Initial commit: add .gitignore and README
This commit is contained in:
41
fusionagi/maa/schemas/dlt.py
Normal file
41
fusionagi/maa/schemas/dlt.py
Normal file
@@ -0,0 +1,41 @@
|
||||
"""Deterministic Decision Logic Tree schema: node, contract, families."""
|
||||
|
||||
from enum import Enum
|
||||
from typing import Any
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class DLTFamily(str, Enum):
|
||||
"""DLT families: intent, geometry, physics, process, machine."""
|
||||
|
||||
INT = "DLT-INT"
|
||||
GEO = "DLT-GEO"
|
||||
PHY = "DLT-PHY"
|
||||
PROC = "DLT-PROC"
|
||||
MACH = "DLT-MACH"
|
||||
|
||||
|
||||
class DLTNode(BaseModel):
|
||||
"""Single node in a DLT: deterministic, evidence-backed, fail-closed."""
|
||||
|
||||
node_id: str = Field(..., description="Unique node id within tree")
|
||||
family: DLTFamily = Field(...)
|
||||
condition: str = Field(..., description="Deterministic condition expression or ref")
|
||||
evidence_ref: str | None = Field(default=None)
|
||||
fail_closed: bool = Field(default=True, description="On failure, reject (fail closed)")
|
||||
children: list[str] = Field(default_factory=list, description="Child node ids")
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
|
||||
class DLTContract(BaseModel):
|
||||
"""Immutable, versioned DLT contract."""
|
||||
|
||||
contract_id: str = Field(..., description="Contract identifier")
|
||||
version: int = Field(default=1)
|
||||
family: DLTFamily = Field(...)
|
||||
root_id: str = Field(..., description="Root node id")
|
||||
nodes: dict[str, DLTNode] = Field(default_factory=dict)
|
||||
metadata: dict[str, Any] = Field(default_factory=dict)
|
||||
|
||||
model_config = {"frozen": False}
|
||||
Reference in New Issue
Block a user