build(agent): new-agents-2#7e3bbc iteration
This commit is contained in:
parent
fe6f1c15b0
commit
b05c7aab8b
|
|
@ -0,0 +1,61 @@
|
|||
"""CosmosMesh Interop Pilot
|
||||
|
||||
A small end-to-end demonstration of the CosmosMesh interoperability surface
|
||||
using the CatOpt-like bridge primitives. It creates a minimal LocalProblem,
|
||||
SharedVariables, and PlanDelta, converts to the canonical IR via to_catopt,
|
||||
and back via from_catopt to verify round-tripping semantics.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
|
||||
from cosmosmesh_privacy_preserving_federated.catopt_bridge import (
|
||||
LocalProblem,
|
||||
SharedVariables,
|
||||
PlanDelta,
|
||||
to_catopt,
|
||||
from_catopt,
|
||||
)
|
||||
|
||||
|
||||
def run_pilot():
|
||||
# Build a tiny 2-asset scenario: rover and habitat (represented by IDs)
|
||||
lp = LocalProblem(
|
||||
id="lp-demo-1",
|
||||
domain="space",
|
||||
assets=["rover-alpha", "habitat-beta"],
|
||||
objective={"type": "minimize", "payload": 10},
|
||||
constraints={"energy": {"limit": 1000}},
|
||||
version=1,
|
||||
)
|
||||
|
||||
sv = SharedVariables(
|
||||
forecasts={"energy": 42},
|
||||
priors={"energy": 40},
|
||||
version=1,
|
||||
)
|
||||
|
||||
delta = PlanDelta(
|
||||
delta={"allocation": {"rover-alpha": 0, "habitat-beta": 1}},
|
||||
timestamp="2026-01-01T00:00:00Z",
|
||||
author="pilot",
|
||||
contract_id="demo-contract-1",
|
||||
signature="sig-demo",
|
||||
)
|
||||
|
||||
# Canonical IR
|
||||
catopt = to_catopt(lp, sv, delta)
|
||||
print("Canonical IR (trimmed):")
|
||||
print(json.dumps(catopt, indent=2))
|
||||
|
||||
# Round-trip back from canonical IR
|
||||
recon = from_catopt(catopt)
|
||||
print("Recovered payload:")
|
||||
print(json.dumps(recon, indent=2))
|
||||
|
||||
return catopt, recon
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
run_pilot()
|
||||
|
|
@ -0,0 +1,25 @@
|
|||
import json
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Ensure the local src layout is importable in test runs
|
||||
SRC_DIR = os.path.join(os.path.dirname(os.path.dirname(__file__)), "src")
|
||||
if os.path.isdir(SRC_DIR) and SRC_DIR not in sys.path:
|
||||
sys.path.insert(0, SRC_DIR)
|
||||
|
||||
from cosmosmesh_privacy_preserving_federated.catopt_bridge import to_catopt, from_catopt, LocalProblem, SharedVariables, PlanDelta
|
||||
|
||||
|
||||
def test_pilot_roundtrip_basic():
|
||||
lp = LocalProblem(
|
||||
id="lp-t", domain="space", assets=["rover-1"], objective={"type": "min", "value": 1}, constraints={"time": 60}, version=1
|
||||
)
|
||||
sv = SharedVariables(forecasts={"energy": 5}, priors={"energy": 4}, version=1)
|
||||
delta = PlanDelta(delta={"task": "sample"}, timestamp="2026-01-01T00:00:00Z", author="tester", contract_id="c1", signature="sig")
|
||||
|
||||
catopt = to_catopt(lp, sv, delta)
|
||||
recon = from_catopt(catopt)
|
||||
|
||||
# Basic shape validation of round-trip results
|
||||
assert isinstance(recon.get("LocalProblem"), dict)
|
||||
assert isinstance(recon.get("PlanDelta"), dict)
|
||||
Loading…
Reference in New Issue