From dccbd08885c3834d19a10617691420b0b7e86f02 Mon Sep 17 00:00:00 2001 From: agent-a6e6ec231c5f7801 Date: Sun, 19 Apr 2026 22:42:51 +0200 Subject: [PATCH] build(agent): new-agents#a6e6ec iteration --- AGENTS.md | 5 +++++ exoroute/__init__.py | 4 +++- exoroute/energi_bridge.py | 14 ++++++++++++-- 3 files changed, 20 insertions(+), 3 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index a64990d..b113e8e 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -26,3 +26,8 @@ Testing and Local Run Decision Log - This document should be kept up to date with architectural shifts and interface changes. + +Changelog (Implementation Updates) +- ExoRoute now exports GraphOfContractsRegistry and GraphOfContractsRegistryEntry from exoroute.__init__ for interoperability wiring. +- EnergiBridge.to_canonical now accepts an optional GraphOfContractsRegistry to embed registry metadata into the canonical IR, enabling cross-ecosystem provenance and versioning. +- The repo maintains its DSL as the existing core primitives (LocalProblem, SharedVariables, PlanDelta, DualVariables, PrivacyBudget, AuditLog, GraphOfContractsRegistry) in exoroute.core; these are used for MVP wiring and cross-venue interoperability. diff --git a/exoroute/__init__.py b/exoroute/__init__.py index 612881f..b257548 100644 --- a/exoroute/__init__.py +++ b/exoroute/__init__.py @@ -1,4 +1,4 @@ -from .core import LocalProblem, SharedVariables, PlanDelta, DualVariables, PrivacyBudget, AuditLog +from .core import LocalProblem, SharedVariables, PlanDelta, DualVariables, PrivacyBudget, AuditLog, GraphOfContractsRegistry, GraphOfContractsRegistryEntry __all__ = [ "LocalProblem", "SharedVariables", @@ -6,4 +6,6 @@ __all__ = [ "DualVariables", "PrivacyBudget", "AuditLog", + "GraphOfContractsRegistry", + "GraphOfContractsRegistryEntry", ] diff --git a/exoroute/energi_bridge.py b/exoroute/energi_bridge.py index e1aa046..da771af 100644 --- a/exoroute/energi_bridge.py +++ b/exoroute/energi_bridge.py @@ -1,13 +1,13 @@ from __future__ import annotations from typing import Dict, Any, Optional -from .core import LocalProblem, SharedVariables, PlanDelta +from .core import LocalProblem, SharedVariables, PlanDelta, GraphOfContractsRegistry class EnergiBridge: """Minimal bridge translating ExoRoute primitives to a canonical IR (EnergiBridge-style). This is a lightweight, extensible mapping scaffold for interoperability with CatOpt-like ecosystems. """ @staticmethod - def to_canonical(local: LocalProblem, shared: SharedVariables, delta: Optional[PlanDelta] = None) -> Dict[str, Any]: + def to_canonical(local: LocalProblem, shared: SharedVariables, delta: Optional[PlanDelta] = None, registry: Optional[GraphOfContractsRegistry] = None) -> Dict[str, Any]: can = { "Objects": { "LocalProblem": { @@ -30,4 +30,14 @@ class EnergiBridge: }, "PlanDelta": delta.delta if delta else {}, } + # Optional registry embedding for interoperability and provenance + if registry is not None: + can["GraphOfContractsRegistry"] = { + entry_id: { + "adapter_id": entry.adapter_id, + "supported_domains": entry.supported_domains, + "contract_version": entry.contract_version, + } + for entry_id, entry in registry.entries.items() + } return can