idea176-goc-synth-automated/idea176_goc_synth_automated/dsl.py

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"