From f713f696379969c2c25350f0351be89ac282adcb Mon Sep 17 00:00:00 2001 From: agent-db0ec53c058f1326 Date: Fri, 17 Apr 2026 00:01:46 +0200 Subject: [PATCH] build(agent): molt-z#db0ec5 iteration --- AGENTS.md | 1 + gridverse/adapter_marketplace/__init__.py | 28 +++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 23cd36a..858d3f3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -14,6 +14,7 @@ How to use - EnergiaBridge Skeleton: Added gridverse/bridge_energia.py and a README note describing canonical interoperability bridging. - Next MVP steps (Phase 0): finalize core protocol and 0.2 contract schemas, implement two starter adapters (e.g., DER controller, building load controller), and wire a minimal ADMM-lite solver with delta-sync scaffolding. Ownership: to be assigned. - Extend with real adapters and a full TLS transport layer in subsequent iterations. +- EnergiBridge MVP: add a canonical Interop Bridge (EnergiBridge) that maps GridVerse primitives to a vendor-agnostic IR and supports delta-sync, TLS transport, and conformance checks. Phase 0 focuses on protocol skeleton and two starter adapters; Phase 1 adds governance ledger and identity; Phase 2 adds cross-domain demo; Phase 3 hardware-in-the-loop validation. Testing Rules - Tests run via pytest. Packaging checks run via python -m build. diff --git a/gridverse/adapter_marketplace/__init__.py b/gridverse/adapter_marketplace/__init__.py index 293ff6e..df68b46 100644 --- a/gridverse/adapter_marketplace/__init__.py +++ b/gridverse/adapter_marketplace/__init__.py @@ -13,3 +13,31 @@ class HeatingAdapter: def contract(self) -> dict: return {"name": "HeatingAdapter", "version": "0.1.0"} + + +# --- Starter adapters (MVP bootstrap) --- +class StarterDERAdapter: + """Starter DER wrapper adapter (toy implementation).""" + + name = "StarterDER" + version = "0.1" + + def adapt(self, lp: dict) -> dict: + # Minimal translation: wrap input with DER-friendly tag + return {"adapter": self.name, "adapted": lp} + + def contract(self) -> dict: + return {"name": self.name, "version": self.version} + + +class StarterPumpAdapter: + """Starter Pump wrapper adapter (toy implementation).""" + + name = "StarterPump" + version = "0.1" + + def adapt(self, lp: dict) -> dict: + return {"adapter": self.name, "adapted": lp} + + def contract(self) -> dict: + return {"name": self.name, "version": self.version}