MCPcopy Create free account
hub / github.com/compozy/agh / inspectNextAction

Function inspectNextAction

internal/task/diagnostics.go:263–295  ·  view source on GitHub ↗
(view *InspectView)

Source from the content-addressed store, hash-verified

261}
262
263func inspectNextAction(view *InspectView) InspectNextAction {
264 if view == nil {
265 return InspectNextActionWaitingForSession
266 }
267 if inspectHasRecoveryDiagnostic(view.Diagnostics) {
268 return InspectNextActionRecoveryRequired
269 }
270 if view.CurrentRun == nil {
271 if isTerminalTaskStatus(view.Task.Status) {
272 return InspectNextActionTerminal
273 }
274 return InspectNextActionWaitingForSession
275 }
276 switch view.CurrentRun.Status.Normalize() {
277 case TaskRunStatusQueued:
278 if inspectHasDiagnostic(view.Diagnostics, diagnosticcontract.CodeTaskRunStranded) {
279 return InspectNextActionStranded
280 }
281 if view.Scheduler.Paused {
282 return InspectNextActionWaitingForSession
283 }
284 if view.SessionCatalogPresent && view.EligibleSessionCount > 0 {
285 return InspectNextActionClaimAvailable
286 }
287 return InspectNextActionWaitingForSession
288 case TaskRunStatusClaimed, TaskRunStatusStarting, TaskRunStatusRunning:
289 return InspectNextActionRunning
290 case TaskRunStatusCompleted, TaskRunStatusFailed, TaskRunStatusCanceled:
291 return InspectNextActionTerminal
292 default:
293 return InspectNextActionWaitingForSession
294 }
295}
296
297func inspectHasRecoveryDiagnostic(items []diagnosticcontract.DiagnosticItem) bool {
298 for _, code := range []string{

Callers 1

inspectTaskRecordMethod · 0.85

Calls 4

isTerminalTaskStatusFunction · 0.85
inspectHasDiagnosticFunction · 0.85
NormalizeMethod · 0.45

Tested by

no test coverage detected