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 LocalArbProblem, PrivacyBudget, AuditLog, PolicyBlock
from .coordination import ADMMCoordinator
from .goc_registry import GoCRegistry
from .curator import Curator
@ -19,6 +20,10 @@ __all__ = [
"PlanDelta",
"SharedSignals",
"DualVariables",
"LocalArbProblem",
"PrivacyBudget",
"AuditLog",
"PolicyBlock",
"ADMMCoordinator",
"GoCRegistry",
"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)
timestamp: float = 0.0
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"
[tool.setuptools.packages.find]
where = ["src"]
where = ["deltaforge_skeleton"]