63 lines
1.6 KiB
Python
63 lines
1.6 KiB
Python
from __future__ import annotations
|
|
|
|
from typing import Any, Dict, List, Optional
|
|
|
|
from pydantic import BaseModel, ConfigDict, Field
|
|
|
|
|
|
class DslModel(BaseModel):
|
|
model_config = ConfigDict(extra="forbid", validate_assignment=True)
|
|
|
|
def to_dict(self) -> Dict[str, Any]:
|
|
return self.model_dump(mode="json", exclude_none=True)
|
|
|
|
|
|
class LocalProblem(DslModel):
|
|
domain: str
|
|
objective: str
|
|
constraints: Dict[str, Any] = Field(default_factory=dict)
|
|
metadata: Dict[str, Any] = Field(default_factory=dict)
|
|
|
|
|
|
class SharedVariables(DslModel):
|
|
variables: Dict[str, Any] = Field(default_factory=dict)
|
|
|
|
|
|
class PlanDelta(DslModel):
|
|
changes: Dict[str, Any] = Field(default_factory=dict)
|
|
|
|
|
|
class DualVariables(DslModel):
|
|
alphas: Dict[str, float] = Field(default_factory=dict)
|
|
|
|
|
|
class PrivacyBudget(DslModel):
|
|
budget: Dict[str, Any] = Field(default_factory=dict)
|
|
|
|
|
|
class AuditLog(DslModel):
|
|
entries: List[str] = Field(default_factory=list)
|
|
|
|
|
|
class PolicyBlock(DslModel):
|
|
policy: Dict[str, Any] = Field(default_factory=dict)
|
|
|
|
|
|
class GraphOfContractsSeed(DslModel):
|
|
name: str
|
|
seeds: Dict[str, Any] = Field(default_factory=dict)
|
|
domains: List[str] = Field(default_factory=lambda: ["Energy", "Robotics"])
|
|
did: Optional[str] = None
|
|
governance_anchor: Optional[str] = None
|
|
transport: str = "tls"
|
|
|
|
|
|
class RegistryEntry(DslModel):
|
|
name: str
|
|
domains: List[str]
|
|
artifacts: Dict[str, str]
|
|
seed_summary: Dict[str, Any] = Field(default_factory=dict)
|
|
did_binding: Dict[str, str] = Field(default_factory=dict)
|
|
governance_anchor: Dict[str, Any] = Field(default_factory=dict)
|
|
transport: str = "tls"
|