package work type LongRunningWorkID string type LongRunningState string const ( LongRunningProposed LongRunningState = "PROPOSED" LongRunningRunning LongRunningState = "RUNNING" LongRunningPaused LongRunningState = "PAUSED" LongRunningBlocked LongRunningState = "BLOCKED" LongRunningCompleted LongRunningState = "COMPLETED" LongRunningExhausted LongRunningState = "EXHAUSTED" LongRunningCancelled LongRunningState = "CANCELLED" ) type Investigation struct { ID LongRunningWorkID Objective string HypothesisRefs []EvidenceRef AttemptRefs []AgentRunID FindingRefs []EvidenceRef Blockers []string CheckpointRefs []AgentCheckpointID NextStep string State LongRunningState Revision int64 TimeBudgetMillis int64 CostBudgetMicros int64 MaxAttempts int RecordedAtUnixMillis int64 } func (w Investigation) Valid() bool { return w.ID != "" && w.Objective != "" && w.State != "" && w.Revision > 0 && w.TimeBudgetMillis >= 0 && w.CostBudgetMicros >= 0 && w.MaxAttempts >= 0 && w.RecordedAtUnixMillis > 0 }