Skip to main content
All events follow the pattern category:action. They are delivered via SSE and webhooks.

Task events

EventPayload
task:created{ task }
task:transition{ taskId, from, to, task }
task:updated{ taskId, task }
task:removed{ taskId }
task:retry{ taskId, attempt, maxRetries }
task:retry:blocked{ taskId, reason }
task:fix{ taskId, attempt, maxFix }
task:maxRetries{ taskId }
task:timeout{ taskId, elapsed, timeout }
task:recovered{ taskId, title, previousStatus }
task:question{ taskId, question }
task:answered{ taskId, question, answer }

Agent events

EventPayload
agent:spawned{ taskId, agentName, taskTitle }
agent:finished{ taskId, agentName, exitCode, duration, sessionId? }
agent:activity{ taskId, agentName, tool?, file?, summary? }
agent:stale{ taskId, agentName, idleMs, action }

Assessment events

EventPayload
assessment:started{ taskId }
assessment:progress{ taskId, message }
assessment:check:started{ taskId, index, total, type, label }
assessment:check:complete{ taskId, index, total, type, label, passed, message? }
assessment:complete{ taskId, passed, scores?, globalScore?, message? }
assessment:corrected{ taskId, corrections }

Mission events

EventPayload
mission:saved{ missionId, name, status }
mission:executed{ missionId, group, taskCount }
mission:completed{ missionId, group, allPassed, report }
mission:resumed{ missionId, name, retried, pending }
mission:deleted{ missionId, deletedTasks? }

Orchestrator events

EventPayload
orchestrator:started{ project, agents }
orchestrator:tick{ pending, running, done, failed, queued }
orchestrator:deadlock{ taskIds }
orchestrator:shutdown{}

Deadlock events

EventPayload
deadlock:detected{ taskIds, resolvableCount }
deadlock:resolving{ taskId, failedDepId }
deadlock:resolved{ taskId, failedDepId, action, reason }
deadlock:unresolvable{ taskId, reason }

Session events

EventPayload
session:created{ sessionId, title? }
message:added{ sessionId, messageId, role }

Approval events

EventPayload
approval:requested{ requestId, gateId, gateName, taskId?, missionId? }
approval:resolved{ requestId, status, resolvedBy? }
approval:rejected{ requestId, taskId?, feedback, rejectionCount, resolvedBy? }
approval:timeout{ requestId, action }

Escalation events

EventPayload
escalation:triggered{ taskId, level, handler, target? }
escalation:resolved{ taskId, level, action }
escalation:human{ taskId, message, channels? }

SLA events

EventPayload
sla:warning{ entityId, entityType, deadline, elapsed, remaining, percentUsed }
sla:violated{ entityId, entityType, deadline, overdueMs }
sla:met{ entityId, entityType, deadline, marginMs }

Checkpoint & delay events

EventPayload
checkpoint:reached{ missionId?, group, checkpointName, message?, afterTasks, blocksTasks, reachedAt }
checkpoint:resumed{ missionId?, group, checkpointName }
delay:started{ missionId?, group, delayName, duration, message?, afterTasks, blocksTasks, startedAt, expiresAt }
delay:expired{ missionId?, group, delayName }

Quality gate events

EventPayload
quality:gate:passed{ missionId, gateName, avgScore? }
quality:gate:failed{ missionId, gateName, avgScore?, reason }
quality:threshold:failed{ missionId, avgScore, threshold }

Schedule events

EventPayload
schedule:triggered{ scheduleId, missionId, expression }
schedule:created{ scheduleId, missionId, nextRunAt? }
schedule:completed{ scheduleId, missionId }
schedule:expired{ scheduleId, missionId, endDate? }

Notification events

EventPayload
notification:sent{ ruleId, channel, event }
notification:failed{ ruleId, channel, error }

Gateway & peer events

EventPayload
gateway:started{ channels }
gateway:stopped{}
peer:paired{ peer, channel }
peer:message{ peerId, channel, text, sessionId }
peer:blocked{ peerId, channel, reason }
peer:presence{ peerId, channel, status }

Other events

EventPayload
config:reloaded{ timestamp }
file:changed{ path, dir, action, source }
watcher:created{ watcherId, taskId, targetStatus }
watcher:fired{ watcherId, taskId, targetStatus, actionType }
watcher:removed{ watcherId }
action:triggered{ ruleId, actionType, result?, error? }
log{ level, message }