from pydantic import BaseModel, Field from app.schemas.conclusion import ConclusionSummary from app.schemas.evidence import EvidenceSummary from app.schemas.experiment import ExperimentSummary from app.schemas.observation import ObservationSummary from app.schemas.orchestration import Hypothesis class AnalysisSessionCreateRequest(BaseModel): observation_id: str = Field(..., min_length=1) mode: str = Field(default="initial_analysis", min_length=1) class AnalysisSessionResponse(BaseModel): session_id: str observation_id: str status: str message: str class AnalysisSessionSnapshot(BaseModel): session_id: str observation_id: str status: str mode: str observation: ObservationSummary hypotheses: list[Hypothesis] probe_evidence: list[EvidenceSummary] experiments: list[ExperimentSummary] conclusion: ConclusionSummary class AnalysisSessionListResponse(BaseModel): items: list[AnalysisSessionResponse]