orchestration.py 709 B

1234567891011121314151617181920212223242526272829303132333435
  1. from pydantic import BaseModel
  2. class Hypothesis(BaseModel):
  3. id: str
  4. label: str
  5. rationale: str
  6. confidence: float
  7. related_signal_profiles: list[str]
  8. class PlannedNode(BaseModel):
  9. module_id: str
  10. params: dict[str, object]
  11. class PlannedExperiment(BaseModel):
  12. hypothesis_id: str | None = None
  13. goal: str
  14. preferred_chain_id: str | None = None
  15. pipeline: list[PlannedNode]
  16. expected_evidence: list[str]
  17. stop_if: list[str]
  18. class StopDecision(BaseModel):
  19. should_stop: bool
  20. reason: str
  21. class OrchestratorPlan(BaseModel):
  22. hypotheses: list[Hypothesis]
  23. experiments: list[PlannedExperiment]
  24. stop_decision: StopDecision
  25. notes: list[str] = []