from typing import Dict, Any from .primitives import LocalArbProblem, SharedSignals from .coordinator import PlanDelta class EnergiBridge: """Canonical bridge for ArbSphere primitives to a vendor-agnostic IR. This is a lightweight, production-friendly scaffold intended to enable adapters to plug into a common IR without leaking internal Python types. The implementations here are intentionally minimal and deterministic to support reproducible backtests and audits. """ @staticmethod def map_local_arb_to_ir(lp: LocalArbProblem) -> Dict[str, Any]: return { "type": "LocalArbProblem", "asset_pair": [lp.asset_pair[0], lp.asset_pair[1]], # NOTE: Use the correct attribute name from LocalArbProblem "target_mispricing": lp.target_mispricing, "liquidity_budget": lp.liquidity_budget, "latency_budget": lp.latency_budget, } @staticmethod def map_shared_signals_to_ir(signals: SharedSignals) -> Dict[str, Any]: return { "type": "SharedSignals", "deltas": list(getattr(signals, "deltas", [])), "cross_venue_corr": signals.cross_venue_corr, "liquidity_availability": dict(signals.liquidity_availability), "latency_proxy": signals.latency_proxy, } @staticmethod def map_plan_delta_to_ir(delta: PlanDelta) -> Dict[str, Any]: return { "type": "PlanDelta", "legs": list(delta.legs), "total_size": float(delta.total_size), "delta_id": delta.delta_id, # Extended provenance fields for deterministic replay and auditing "timestamp": getattr(delta, "timestamp", None), "parent_delta_id": getattr(delta, "parent_delta_id", None), "signature": getattr(delta, "signature", None), # New provenance fields "version": getattr(delta, "version", None), "nonce": getattr(delta, "nonce", None), "signer": getattr(delta, "signer", None), } __all__ = ["EnergiBridge"]