build(agent): new-agents-2#7e3bbc iteration
This commit is contained in:
parent
37f6fa38f0
commit
e3db872f6a
|
|
@ -4,11 +4,20 @@ orchestrator suitable for offline-first operation in space habitats.
|
|||
"""
|
||||
|
||||
from .federated import Client, Server
|
||||
from .dsl import PrivacyBudget, AuditLog # export governance primitives for adapters
|
||||
try:
|
||||
# Optional: Expose registry helpers for MVP interoperability without
|
||||
# forcing a hard dependency in tests that only exercise federation.
|
||||
from .go_registry import register_contract, get_contract_schema, list_contracts # type: ignore
|
||||
__all__ = ["Client", "Server", "register_contract", "get_contract_schema", "list_contracts"]
|
||||
__all__ = [
|
||||
"Client",
|
||||
"Server",
|
||||
"PrivacyBudget",
|
||||
"AuditLog",
|
||||
"register_contract",
|
||||
"get_contract_schema",
|
||||
"list_contracts",
|
||||
]
|
||||
except Exception:
|
||||
# If registry is not available for some environments, still expose the core APIs.
|
||||
__all__ = ["Client", "Server"]
|
||||
__all__ = ["Client", "Server", "PrivacyBudget", "AuditLog"]
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ from __future__ import annotations
|
|||
|
||||
from typing import Any, Dict, List
|
||||
|
||||
from ..dsl import LocalProblem, SharedVariables, PlanDelta
|
||||
from ..dsl import LocalProblem, SharedVariables, PlanDelta, PrivacyBudget, AuditLog
|
||||
|
||||
|
||||
class CanonicalAdapter:
|
||||
|
|
@ -24,3 +24,23 @@ class CanonicalAdapter:
|
|||
|
||||
def map_plan_delta(self, version: int, delta: Dict[str, Any], insight: str | None = None) -> PlanDelta:
|
||||
return PlanDelta(version=version, delta=delta, insight=insight)
|
||||
|
||||
def map_privacy_budget(self, budget: PrivacyBudget) -> Dict[str, Any]:
|
||||
"""Serialize PrivacyBudget into a contract-friendly dict."""
|
||||
return {
|
||||
"type": "PrivacyBudget",
|
||||
"signal": budget.signal,
|
||||
"budget": budget.budget,
|
||||
"expiry": budget.expiry,
|
||||
}
|
||||
|
||||
def map_audit_log(self, audit: AuditLog) -> Dict[str, Any]:
|
||||
"""Serialize AuditLog into a contract-friendly dict."""
|
||||
return {
|
||||
"type": "AuditLog",
|
||||
"entry": audit.entry,
|
||||
"signer": audit.signer,
|
||||
"timestamp": audit.timestamp,
|
||||
"contract_id": audit.contract_id,
|
||||
"version": audit.version,
|
||||
}
|
||||
|
|
|
|||
|
|
@ -39,3 +39,21 @@ class PlanDelta:
|
|||
version: int
|
||||
delta: Dict[str, Any] = field(default_factory=dict)
|
||||
insight: Optional[str] = None
|
||||
|
||||
|
||||
@dataclass
|
||||
class PrivacyBudget:
|
||||
"""Governance/privacy budget block for a contract message."""
|
||||
signal: str
|
||||
budget: float
|
||||
expiry: Optional[float] = None
|
||||
|
||||
|
||||
@dataclass
|
||||
class AuditLog:
|
||||
"""Tamper-evident audit log entry for governance provenance."""
|
||||
entry: str
|
||||
signer: str
|
||||
timestamp: float
|
||||
contract_id: str
|
||||
version: str
|
||||
|
|
|
|||
Loading…
Reference in New Issue