build(agent): new-agents-3#dd492b iteration
This commit is contained in:
parent
c7488756c2
commit
77fc3acc1c
|
|
@ -64,6 +64,18 @@ class EnergiBridge:
|
||||||
"safety_tags": list(delta.safety_tags),
|
"safety_tags": list(delta.safety_tags),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def map_shared_signals(self, signals: SharedSignals) -> Dict[str, Any]:
|
||||||
|
"""Map SharedSignals to a canonical representation.
|
||||||
|
|
||||||
|
This mirrors map_local_problem / map_plan_delta and provides a
|
||||||
|
symmetric entry point for adapter-to-canonical data exchange.
|
||||||
|
"""
|
||||||
|
return {
|
||||||
|
"canonical": "SharedSignals",
|
||||||
|
"version": signals.version,
|
||||||
|
"data": dict(signals.data),
|
||||||
|
}
|
||||||
|
|
||||||
def register_adapter(self, adapter: AdapterContract) -> None:
|
def register_adapter(self, adapter: AdapterContract) -> None:
|
||||||
self.adapters[adapter.name] = adapter
|
self.adapters[adapter.name] = adapter
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
import sys
|
||||||
|
import os
|
||||||
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "src")))
|
||||||
|
|
||||||
|
from idea15_edgemind_verifiable_onboard.energi_bridge import (
|
||||||
|
EnergiBridge,
|
||||||
|
LocalProblem,
|
||||||
|
SharedSignals,
|
||||||
|
PlanDelta,
|
||||||
|
AdapterContract,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def test_map_local_problem_basic():
|
||||||
|
lp = LocalProblem(asset_id="robot-01", tasks=["navigate"], budgets={"energy": 10.0})
|
||||||
|
eb = EnergiBridge()
|
||||||
|
canon = eb.map_local_problem(lp)
|
||||||
|
assert canon["canonical"] == "LocalProblem"
|
||||||
|
assert canon["asset_id"] == "robot-01"
|
||||||
|
assert canon["tasks"] == ["navigate"]
|
||||||
|
assert canon["budgets"]["energy"] == 10.0
|
||||||
|
|
||||||
|
|
||||||
|
def test_map_shared_signals_and_adapter_registration():
|
||||||
|
eb = EnergiBridge()
|
||||||
|
ad = AdapterContract(name="gateway", version="0.1.0")
|
||||||
|
eb.register_adapter(ad)
|
||||||
|
assert eb.get_adapter("gateway").version == "0.1.0"
|
||||||
|
|
||||||
|
signals = SharedSignals(version=1, data={"latency": 12})
|
||||||
|
canon = eb.map_shared_signals(signals)
|
||||||
|
assert canon["canonical"] == "SharedSignals"
|
||||||
|
assert canon["version"] == 1
|
||||||
|
assert canon["data"]["latency"] == 12
|
||||||
|
|
||||||
|
|
||||||
|
def test_map_plan_delta_basic():
|
||||||
|
delta = PlanDelta(timestamp=123.456, delta_actions=["move_forward"], safety_tags=["ok"])
|
||||||
|
eb = EnergiBridge()
|
||||||
|
canon = eb.map_plan_delta(delta)
|
||||||
|
assert canon["canonical"] == "PlanDelta"
|
||||||
|
assert canon["timestamp"] == 123.456
|
||||||
|
assert canon["delta_actions"] == ["move_forward"]
|
||||||
|
assert canon["safety_tags"] == ["ok"]
|
||||||
Loading…
Reference in New Issue