Generated reference - Generated file. Do not edit. eforge version: 0.7.12 Commit: d616c57 Source: packages/client/src/events.schemas.ts

eforge Event Protocol Reference

All events emitted on the eforge SSE stream conform to the EforgeEvent discriminated union defined in packages/client/src/events.schemas.ts.

Each event carries an optional envelope (sessionId, runId, timestamp) intersected with one of the variant objects below. The type field discriminates the variant.

Event Variants

Total variants: 150

Event type Additional fields
session:start sessionId
session:end result, sessionId
session:profile config, profileName, scope, source
phase:start command, planSet, runId
phase:end result, runId
config:warning details, message, source
planning:warning details, message, planId, source
planning:module:build-config:invalid errors, moduleId, reason
planning:start label, source
planning:skip reason
planning:submission hasMigrations, planCount, totalBodySize
planning:error reason
planning:clarification questions
planning:clarification:answer answers
planning:progress message
planning:continuation attempt, maxContinuations, reason
planning:pipeline compile, defaultBuild, defaultReview, rationale, scope
planning:complete planConfigs, plans
planning:review:start -
planning:review:complete issues
planning:evaluate:start -
planning:evaluate:continuation attempt, maxContinuations
planning:evaluate:complete accepted, rejected, verdicts
planning:architecture:review:start -
planning:architecture:review:complete issues
planning:architecture:evaluate:start -
planning:architecture:evaluate:continuation attempt, maxContinuations
planning:architecture:evaluate:complete accepted, rejected, verdicts
planning:cohesion:start -
planning:cohesion:complete issues
planning:cohesion:evaluate:start -
planning:cohesion:evaluate:continuation attempt, maxContinuations
planning:cohesion:evaluate:complete accepted, rejected, verdicts
plan:build:start planId
plan:build:implement:start planId
plan:build:implement:progress message, planId
plan:build:implement:continuation attempt, maxContinuations, planId, shardId
plan:build:implement:complete planId
plan:build:files_changed baseBranch, diffs, files, planId
plan:build:review:start planId
plan:build:review:complete issues, planId
plan:build:review:parallel:start perspectives, planId
plan:build:review:parallel:perspective:start perspective, planId
plan:build:review:parallel:perspective:complete issues, perspective, planId
plan:build:review:parallel:perspective:error error, perspective, planId
plan:build:review:fix:start issueCount, planId
plan:build:review:fix:complete planId
plan:build:evaluate:start planId
plan:build:evaluate:continuation attempt, maxContinuations, planId
plan:build:evaluate:complete accepted, planId, rejected, verdicts
plan:build:doc-author:start planId
plan:build:doc-author:complete docsAuthored, planId
plan:build:doc-sync:start planId
plan:build:doc-sync:complete docsSynced, planId
plan:build:test:write:start planId
plan:build:test:write:complete planId, testsWritten
plan:build:test:start planId
plan:build:test:complete failed, passed, planId, productionIssues, testBugsFixed
plan:build:complete planId
plan:build:failed error, planId, terminalSubtype
plan:build:progress message, planId
plan:status:change planId, status
plan:error:set error, planId
plan:error:clear planId
schedule:start planIds
plan:schedule:ready planId, reason
plan:merge:start planId
plan:merge:complete commitSha, planId
plan:merge:resolve:start planId
plan:merge:resolve:complete planId, resolved
merge:finalize:start baseBranch, featureBranch
merge:finalize:complete baseBranch, commitSha, featureBranch
merge:finalize:skipped baseBranch, featureBranch, reason
merge:worktree:set path
merge:worktree:clear -
expedition:architecture:complete modules
expedition:wave:start moduleIds, wave
expedition:wave:complete wave
expedition:module:start moduleId
expedition:module:complete moduleId
expedition:compile:start -
expedition:compile:complete plans
agent:start agent, agentId, effort, effortClamped, effortOriginal, effortSource, harness, harnessSource, model, perspective, planId, projectMcpSelection, projectMcpServerNames, thinking, thinkingCoerced, thinkingOriginal, thinkingSource, tier, tierSource, toolbelt, toolbeltSource
agent:warning agent, agentId, code, message, planId
agent:stop agent, agentId, error, planId
agent:usage agent, agentId, costUsd, final, numTurns, planId, usage
agent:message agent, agentId, content, planId
agent:tool_use agent, agentId, input, planId, tool, toolUseId
agent:tool_result agent, agentId, output, planId, tool, toolUseId
agent:result agent, planId, result
agent:retry agent, attempt, label, maxAttempts, planId, shardId, subtype
validation:start commands
validation:command:start command
validation:command:complete command, exitCode, output
validation:command:timeout command, pid, timeoutMs
validation:complete passed
validation:fix:start attempt, maxAttempts
validation:fix:complete attempt
prd_validation:start -
prd_validation:complete completionPercent, gaps, passed
gap_close:start completionPercent, gapCount
gap_close:plan_ready gaps, planBody
gap_close:complete passed
reconciliation:start -
reconciliation:complete report
cleanup:start planSet
cleanup:complete planSet
approval:needed action, details, planId
approval:response approved
enqueue:start source
enqueue:complete filePath, id, planSet, title
enqueue:failed error
enqueue:commit-failed error
recovery:start prdId, setName
recovery:summary prdId, summary
recovery:complete prdId, sidecarJsonPath, sidecarMdPath, verdict
recovery:error error, prdId, rawOutput
recovery:apply:start prdId
recovery:apply:complete noAction, prdId, successorPrdId, verdict
recovery:apply:error message, prdId
daemon:run:upsert run
daemon:auto-build:paused reason
daemon:lifecycle:starting mode, pid, port, version
daemon:lifecycle:ready mode, pid, port, recoveryDurationMs, version
daemon:lifecycle:shutdown:start reason, signal
daemon:lifecycle:shutdown:complete durationMs
daemon:heartbeat autoBuild, queueDepth, runningBuilds, subscribers, uptime
daemon:scheduler:dequeued capacityRemaining, prdId, queueDepth
daemon:scheduler:capacity-blocked limit, queueDepth, runningCount
daemon:scheduler:dependency-blocked blockedBy, prdId
daemon:auto-build:enabled -
daemon:auto-build:resumed -
daemon:auto-build:triggered prdsEnqueued, trigger
daemon:recovery:start -
daemon:recovery:run-marked-failed planSet, reason, runId
daemon:recovery:lock-removed path, pid
daemon:recovery:complete durationMs, locksRemoved, runsFailed
daemon:orphan:reaped pid, planSet, runId, sessionId
daemon:warning details, message, source
daemon:error message, source, stack
queue:start dir, prdCount
queue:prd:start prdId, title
queue:prd:discovered prdId, title
queue:prd:stale justification, prdId, revision, title, verdict
queue:prd:skip prdId, reason
queue:prd:commit-failed error, prdId, title
queue:prd:complete prdId, status
queue:complete processed, skipped
plan:build:decision decision, planId
planning:decision decision, planId

JSON Schema

The complete machine-readable schema is at /schemas/events.schema.json. Use safeParseEforgeEvent(value) from @eforge-build/client to validate at runtime.


Raw Markdown: /reference/events.md | JSON Schema: /schemas/events.schema.json