Files
defiQUG c052b07662
Some checks failed
Tests / test (3.10) (push) Has been cancelled
Tests / test (3.11) (push) Has been cancelled
Tests / test (3.12) (push) Has been cancelled
Tests / lint (push) Has been cancelled
Tests / docker (push) Has been cancelled
Initial commit: add .gitignore and README
2026-02-09 21:51:42 -08:00

62 lines
2.1 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
"""Dvādaśa head output schemas: claims, risks, structured outputs per head."""
from enum import Enum
from typing import Any
from pydantic import BaseModel, Field
from fusionagi.schemas.grounding import Citation
class HeadId(str, Enum):
"""Identifiers for the 11 content heads plus Witness meta-controller."""
LOGIC = "logic"
RESEARCH = "research"
SYSTEMS = "systems"
STRATEGY = "strategy"
PRODUCT = "product"
SECURITY = "security"
SAFETY = "safety"
RELIABILITY = "reliability"
COST = "cost"
DATA = "data"
DEVEX = "devex"
WITNESS = "witness"
class HeadClaim(BaseModel):
"""Atomic statement from a head with confidence and evidence."""
claim_text: str = Field(..., min_length=1, description="The atomic claim statement")
confidence: float = Field(..., ge=0.0, le=1.0, description="Confidence in [0, 1]")
evidence: list[Citation] = Field(default_factory=list, description="Citations, tool results, reasoning steps")
assumptions: list[str] = Field(default_factory=list, description="Assumptions made")
class HeadRisk(BaseModel):
"""Risk or failure mode identified by a head."""
description: str = Field(..., min_length=1, description="Description of the risk")
severity: str = Field(default="medium", description="low, medium, high, critical")
class HeadOutput(BaseModel):
"""Structured output from a Dvādaśa head."""
head_id: HeadId = Field(..., description="Which head produced this")
summary: str = Field(..., min_length=1, description="13 sentence summary")
claims: list[HeadClaim] = Field(default_factory=list, description="Atomic claims with confidence")
risks: list[HeadRisk] = Field(default_factory=list, description="Failure modes identified")
questions: list[str] = Field(default_factory=list, description="Only if absolutely necessary")
recommended_actions: list[str] = Field(default_factory=list, description="Suggested next steps")
tone_guidance: str = Field(default="", description="For persona consistency")
__all__ = [
"HeadId",
"HeadClaim",
"HeadRisk",
"HeadOutput",
]