build(agent): new-agents-4#58ba63 iteration

This commit is contained in:
agent-58ba63c88b4c9625 2026-04-23 23:02:19 +02:00
parent 46c351cde8
commit 2eeec96010
5 changed files with 71 additions and 1 deletions

View File

@ -4,6 +4,7 @@ A minimal, production-oriented MVP scaffold for a cross-venue delta-hedge engine
""" """
from .dsl import Asset, MarketSignal, StrategyDelta, PlanDelta, SharedSignals, DualVariables from .dsl import Asset, MarketSignal, StrategyDelta, PlanDelta, SharedSignals, DualVariables
from .dsl import LocalArbProblem, PrivacyBudget, AuditLog, PolicyBlock
from .coordination import ADMMCoordinator from .coordination import ADMMCoordinator
from .goc_registry import GoCRegistry from .goc_registry import GoCRegistry
from .curator import Curator from .curator import Curator
@ -19,6 +20,10 @@ __all__ = [
"PlanDelta", "PlanDelta",
"SharedSignals", "SharedSignals",
"DualVariables", "DualVariables",
"LocalArbProblem",
"PrivacyBudget",
"AuditLog",
"PolicyBlock",
"ADMMCoordinator", "ADMMCoordinator",
"GoCRegistry", "GoCRegistry",
"Curator", "Curator",

View File

@ -0,0 +1,18 @@
from __future__ import annotations
from typing import List
from ..dsl import Asset, MarketSignal
def generate_venue_signals(symbols: List[str], price_dict: dict) -> List[MarketSignal]:
"""Venue A feed stub: generate MarketSignal objects for given symbols.
This is a minimal adapter to seed interoperability with the EnergiBridge-like IR.
"""
signals: List[MarketSignal] = []
import time
ts = time.time()
for s in symbols:
asset = Asset(symbol=s, asset_type="equity")
price = price_dict.get(s, 100.0)
signals.append(MarketSignal(asset=asset, price=price, timestamp=ts))
return signals

View File

@ -0,0 +1,15 @@
from __future__ import annotations
from typing import List
from ..dsl import Asset, MarketSignal
def generate_venue_signals(symbols: List[str], price_dict: dict) -> List[MarketSignal]:
"""Venue B trade feed stub: generate MarketSignal objects for given symbols."""
signals: List[MarketSignal] = []
import time
ts = time.time()
for s in symbols:
asset = Asset(symbol=s, asset_type="equity")
price = price_dict.get(s, 100.0)
signals.append(MarketSignal(asset=asset, price=price, timestamp=ts))
return signals

View File

@ -50,3 +50,35 @@ class PlanDelta:
steps: List[str] = field(default_factory=list) steps: List[str] = field(default_factory=list)
timestamp: float = 0.0 timestamp: float = 0.0
safety_tags: List[str] = field(default_factory=list) safety_tags: List[str] = field(default_factory=list)
@dataclass
class LocalArbProblem:
"""Canonical local arbitrage problem seed for a venue.
Maps a venue-independent set of assets to objectives and constraints that solvers
can attempt to satisfy locally before enforcing cross-venue coherence.
"""
venue: str
assets: List[Asset]
objectives: Dict[str, float] = field(default_factory=dict)
constraints: Dict[str, float] = field(default_factory=dict)
solver_hint: Optional[str] = None
@dataclass
class PrivacyBudget:
budget: float = 0.0
expiry: float = 0.0
leakage_bound: float = 0.0
@dataclass
class AuditLog:
entries: List[str] = field(default_factory=list)
last_signature: Optional[str] = None
@dataclass
class PolicyBlock:
safety: List[str] = field(default_factory=list)

View File

@ -18,4 +18,4 @@ dependencies = [
readme = "README.md" readme = "README.md"
[tool.setuptools.packages.find] [tool.setuptools.packages.find]
where = ["src"] where = ["deltaforge_skeleton"]