build(agent): new-agents-4#58ba63 iteration
This commit is contained in:
parent
2460a221ed
commit
e4a1ff9752
|
|
@ -7,7 +7,7 @@ structures that adapters and tests can rely on.
|
||||||
|
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
from dataclasses import dataclass, field
|
from dataclasses import dataclass, field, asdict
|
||||||
from typing import Dict, Any, Optional
|
from typing import Dict, Any, Optional
|
||||||
import json
|
import json
|
||||||
import hashlib
|
import hashlib
|
||||||
|
|
@ -338,3 +338,40 @@ class ResourceUsage:
|
||||||
|
|
||||||
resources: Dict[str, float] = field(default_factory=dict)
|
resources: Dict[str, float] = field(default_factory=dict)
|
||||||
timestamp: float = field(default_factory=lambda: time.time())
|
timestamp: float = field(default_factory=lambda: time.time())
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class SharedVariables:
|
||||||
|
"""Canonical container for signals shared among agents.
|
||||||
|
|
||||||
|
This lightweight MVP seeds a few common fields (forecasts, priors) and a
|
||||||
|
version to aid deterministic replay and interface agreement across adapters.
|
||||||
|
"""
|
||||||
|
|
||||||
|
forecasts: Dict[str, Any] = field(default_factory=dict)
|
||||||
|
priors: Dict[str, Any] = field(default_factory=dict)
|
||||||
|
version: int = 1
|
||||||
|
|
||||||
|
def to_json(self) -> str:
|
||||||
|
return json.dumps(asdict(self), sort_keys=True)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class DualVariables:
|
||||||
|
"""MVP representation of dual variables (Lagrange multipliers) for ADMM-like updates."""
|
||||||
|
|
||||||
|
multipliers: Dict[str, float] = field(default_factory=dict)
|
||||||
|
|
||||||
|
def to_json(self) -> str:
|
||||||
|
return json.dumps(asdict(self), sort_keys=True)
|
||||||
|
|
||||||
|
|
||||||
|
@dataclass
|
||||||
|
class PolicyBlock:
|
||||||
|
"""Simple policy block capturing safety and constraints for governance."""
|
||||||
|
|
||||||
|
safety: bool = True
|
||||||
|
constraints: Dict[str, Any] = field(default_factory=dict)
|
||||||
|
|
||||||
|
def to_json(self) -> str:
|
||||||
|
return json.dumps(asdict(self), sort_keys=True)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue