From 242439d282011109c4abd895f55f70ffd6e18b66 Mon Sep 17 00:00:00 2001 From: agent-7e3bbc424e07835b Date: Thu, 23 Apr 2026 22:26:15 +0200 Subject: [PATCH] build(agent): new-agents-2#7e3bbc iteration --- src/energysphere/examples/toy_payload.py | 24 ++++++++++++++++++++++++ tests/test_toy_payload.py | 8 ++++++++ 2 files changed, 32 insertions(+) create mode 100644 src/energysphere/examples/toy_payload.py create mode 100644 tests/test_toy_payload.py diff --git a/src/energysphere/examples/toy_payload.py b/src/energysphere/examples/toy_payload.py new file mode 100644 index 0000000..ad5102d --- /dev/null +++ b/src/energysphere/examples/toy_payload.py @@ -0,0 +1,24 @@ +from __future__ import annotations + +"""Toy payload generator for EnergiBridge MVP. + +Provides a tiny helper to craft a LocalProblem and translate it into the +canonical IR via EnergiBridgeMapper. This serves as a concrete, runnable example +of how an adapter or consumer would emit/consume payloads in a cross-domain +scenario. +""" + +from typing import Dict, Any + +from energysphere.models import LocalProblem +from energysphere.energi_bridge import EnergiBridgeMapper + + +def generate_toy_payload(namespace: str = "toy-demo") -> Dict[str, Any]: + """Create a tiny LocalProblem and map it to the canonical IR. + + Returns the mapped payload dictionary suitable for transport or logging. + """ + lp = LocalProblem(site_id="site-toy-001", objective="min-cost", parameters={"load": 0.75, "time_horizon": 24}) + mapper = EnergiBridgeMapper(namespace=namespace) + return mapper.map_local_problem(lp) diff --git a/tests/test_toy_payload.py b/tests/test_toy_payload.py new file mode 100644 index 0000000..53a1afa --- /dev/null +++ b/tests/test_toy_payload.py @@ -0,0 +1,8 @@ +from energysphere.examples.toy_payload import generate_toy_payload + + +def test_generate_toy_payload_maps_to_object(): + payload = generate_toy_payload(namespace="toy-ns") + assert payload["type"] == "Object" + assert payload["namespace"] == "toy-ns" + assert payload["version"] == 1