Files
FusionAGI/fusionagi/schemas/witness.py
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

51 lines
1.7 KiB
Python
Raw 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.
"""Witness output schemas: agreement map, transparency report, final response."""
from typing import Any
from pydantic import BaseModel, Field
class AgreementMap(BaseModel):
"""Map of agreed vs disputed claims from heads."""
agreed_claims: list[dict[str, Any]] = Field(
default_factory=list,
description="Claims with consensus support",
)
disputed_claims: list[dict[str, Any]] = Field(
default_factory=list,
description="Conflicting or contested claims",
)
confidence_score: float = Field(..., ge=0.0, le=1.0, description="Overall confidence [0, 1]")
class TransparencyReport(BaseModel):
"""Transparency report produced by Witness."""
head_contributions: list[dict[str, Any]] = Field(
default_factory=list,
description="Per-head contribution (head_id, summary, key_claims)",
)
agreement_map: AgreementMap = Field(..., description="Agreed and disputed claims")
safety_report: str = Field(default="", description="High-level safety/compliance summary")
confidence_score: float = Field(..., ge=0.0, le=1.0, description="Overall confidence [0, 1]")
class FinalResponse(BaseModel):
"""Final user-facing response from Witness arbitration."""
final_answer: str = Field(..., min_length=1, description="Composed narrative answer")
transparency_report: TransparencyReport = Field(..., description="Full transparency payload")
head_contributions: list[dict[str, Any]] = Field(
default_factory=list,
description="Which heads contributed (12 lines each)",
)
confidence_score: float = Field(..., ge=0.0, le=1.0, description="Overall confidence [0, 1]")
__all__ = [
"AgreementMap",
"TransparencyReport",
"FinalResponse",
]