Some checks failed
- Integrate GPU scoring inline into reasoning/multi_path.py (auto-uses GPU when available) - Integrate GPU deduplication into multi_agent/consensus_engine.py - Add semantic_search() method to memory/semantic_graph.py with GPU acceleration - Integrate GPU training into self_improvement/training.py AutoTrainer - Fix all 758 ruff lint issues (whitespace, import sorting, unused imports, ambiguous vars, undefined names) - Fix all 40 mypy type errors across the codebase (no-any-return, union-attr, arg-type, etc.) - Fix deprecated ruff config keys (select/ignore -> [tool.ruff.lint]) - Add .dockerignore to exclude .venv/, tests/, docs/ from Docker builds - Add type hints and docstrings to verification/outcome.py - Fix E402 import ordering in witness_agent.py - Fix F821 undefined names in vector_pgvector.py and native.py - Fix E741 ambiguous variable names in reflective.py and recommender.py All 276 tests pass. 0 ruff errors. 0 mypy errors. Co-Authored-By: Nakamoto, S <defi@defi-oracle.io>
61 lines
2.1 KiB
Python
61 lines
2.1 KiB
Python
"""Dvādaśa head output schemas: claims, risks, structured outputs per head."""
|
||
|
||
from enum import Enum
|
||
|
||
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="1–3 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",
|
||
]
|