idea93-gridguard-verifiable.../energi_bridge/schemas.py

58 lines
1.3 KiB
Python

from dataclasses import dataclass, field
from typing import Any, Dict, List, Optional
from datetime import datetime
@dataclass
class LocalProblem:
id: str
domain: str
assets: List[str]
constraints: Dict[str, Any] = field(default_factory=dict)
objective: Dict[str, Any] = field(default_factory=dict)
solver_hint: Optional[str] = None
@dataclass
class SharedVariables:
version: int
signals: Dict[str, Any] = field(default_factory=dict)
privacy_tag: Optional[str] = None
aggregation_method: str = "mean"
@dataclass
class PlanDelta:
delta: Dict[str, Any]
timestamp: datetime
author: str
contract_id: str
signature: Optional[str] = None
safety_tags: Optional[List[str]] = None
@dataclass
class DualVariables:
lagrange_multipliers: Dict[str, float] = field(default_factory=dict)
convergence_status: Optional[str] = None
@dataclass
class AuditLog:
entries: List[Dict[str, Any]] = field(default_factory=list)
last_updated: Optional[datetime] = None
@dataclass
class PrivacyBudget:
budget: float
spent: float = 0.0
policy: Dict[str, Any] = field(default_factory=dict)
@dataclass
class RegistryMetadata:
contract_version: str
adapter_id: str
replay_hint: Optional[str] = None