package work type OrchestrationState string type SearchOptionKind string const ( OrchestrationSearching OrchestrationState = "SEARCHING" OrchestrationExecuting OrchestrationState = "EXECUTING" OrchestrationVerifying OrchestrationState = "VERIFYING" OrchestrationWaiting OrchestrationState = "WAITING" OrchestrationCompleted OrchestrationState = "COMPLETED" OrchestrationCancelled OrchestrationState = "CANCELLED" SearchOptionAgents SearchOptionKind = "AGENT_TEAM" SearchOptionCapability SearchOptionKind = "CAPABILITY_DISCOVERY" SearchOptionResearch SearchOptionKind = "TRUTH_RESEARCH" SearchOptionReflection SearchOptionKind = "REFLECTION_MEMORY" SearchOptionHuman SearchOptionKind = "HUMAN_ATTENTION" ) // SolutionSearchInput is the durable orchestration snapshot. The scheduler // stores the graph/goal separately; this value only decides the next bounded // search wave and never grants authority by itself. type SolutionSearchInput struct { GoalID GoalID GoalState GoalState SearchRound int MaxRound int CancelRequested bool ActiveOptionCount int VerificationReady bool Unresolved bool } type SolutionSearchDecision struct { GoalID GoalID State OrchestrationState ContinueSearching bool NextSearchRound int Options []SearchOptionKind Reason string } type SolutionSearchWaveRequest struct { Input SolutionSearchInput `json:"input"` GraphID string `json:"graph_id"` IdempotencyPrefix string `json:"idempotency_prefix"` Dispatches []SolutionSearchDispatch `json:"dispatches"` Budget GraphBudget `json:"budget"` ParentGraphID string `json:"parent_graph_id,omitempty"` ParentGraphRevision int64 `json:"parent_graph_revision,omitempty"` TriggerEvidenceRef string `json:"trigger_evidence_ref,omitempty"` NowUnixMillis int64 `json:"now_unix_millis"` } type SolutionSearchDispatch struct { Option SearchOptionKind `json:"option"` Intent AgentDispatchIntent `json:"intent"` } type SolutionSearchWaveResult struct { Decision SolutionSearchDecision `json:"decision"` Graph WorkGraph `json:"graph"` ScheduledNodeIDs []GraphNodeID `json:"scheduled_node_ids,omitempty"` GraphMaterialized bool `json:"graph_materialized"` }