from pydantic import BaseModel class Hypothesis(BaseModel): id: str label: str rationale: str confidence: float related_signal_profiles: list[str] class PlannedNode(BaseModel): module_id: str params: dict[str, object] class PlannedExperiment(BaseModel): hypothesis_id: str | None = None goal: str preferred_chain_id: str | None = None pipeline: list[PlannedNode] expected_evidence: list[str] stop_if: list[str] class StopDecision(BaseModel): should_stop: bool reason: str class OrchestratorPlan(BaseModel): hypotheses: list[Hypothesis] experiments: list[PlannedExperiment] stop_decision: StopDecision notes: list[str] = []