67 lines
2.5 KiB
Go
67 lines
2.5 KiB
Go
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"`
|
|
}
|