ExecutionEvent
ExecutionEvent = {
at:string;execution_id:string;kind:"started"; } | {at:string;execution_id:string;iteration?:number;kind:"node_started";node_id:string; } | {at:string;execution_id:string;iteration?:number;kind:"node_succeeded";node_id:string;output:unknown; } | {at:string;error:string;execution_id:string;iteration?:number;kind:"node_failed";node_id:string; } | {at:string;execution_id:string;iteration?:number;kind:"node_skipped";node_id:string;reason:string; } | {at:string;execution_id:string;kind:"node_log";line:string;node_id:string;stream:LogStream; } | {at:string;execution_id:string;kind:"tool_call";name:string;node_id:string;summary:string; } | {at:string;execution_id:string;kind:"iteration_capped";node_id:string;visits:number; } | {at:string;execution_id:string;kind:"paused"; } | {at:string;execution_id:string;kind:"resumed"; } | {action:string;at:string;execution_id:string;kind:"awaiting_confirmation";node_id:string; } | {at:string;contract_version:string|null;execution_id:string;input:string;kind:"ai_invocation";model:string;node_id:string;provider:string; } | {at:string;confidence:number|null;contract_version:string;decision:string;execution_id:string;kind:"ai_routing_decision";node_id:string;threshold:string; } | {at:string;confidence:number;execution_id:string;kind:"ai_review_required";node_id:string;primary_output:string;reasoning:string|null; } | {approved:boolean;at:string;execution_id:string;kind:"ai_review_resolved";node_id:string; } | {at:string;decision_id:string;dsl:string;edge_count:number;execution_id:string;kind:"review_required";node_count:number;plan?:string|null; } | {at:string;attempt:number;cap:number;decision_id:string;error:string;execution_id:string;kind:"fix_required";node_id:string;prior_dsl:string;proposed_dsl:string;proposed_plan?:string|null;summary:string; } | {at:string;execution_id:string;kind:"workflow_summary";summary:WorkflowSummary; } | {at:string;execution_id:string;kind:"done";status:string; }
Union Members
Section titled “Union Members”Type Literal
Section titled “Type Literal”{ at: string; execution_id: string; kind: "started"; }
Type Literal
Section titled “Type Literal”{ at: string; execution_id: string; iteration?: number; kind: "node_started"; node_id: string; }
at:
string
execution_id
Section titled “execution_id”execution_id:
string
iteration?
Section titled “iteration?”
optionaliteration?:number
0-based execution count for this node; > 0 when a bounded loop re-enters it.
kind:
"node_started"
node_id
Section titled “node_id”node_id:
string
Type Literal
Section titled “Type Literal”{ at: string; execution_id: string; iteration?: number; kind: "node_succeeded"; node_id: string; output: unknown; }
Type Literal
Section titled “Type Literal”{ at: string; error: string; execution_id: string; iteration?: number; kind: "node_failed"; node_id: string; }
Type Literal
Section titled “Type Literal”{ at: string; execution_id: string; iteration?: number; kind: "node_skipped"; node_id: string; reason: string; }
Type Literal
Section titled “Type Literal”{ at: string; execution_id: string; kind: "node_log"; line: string; node_id: string; stream: LogStream; }
Streaming log line from a streaming-capable adapter (the shell adapter is the first). Renders into the bottom Log Panel as it arrives.
Type Literal
Section titled “Type Literal”{ at: string; execution_id: string; kind: "tool_call"; name: string; node_id: string; summary: string; }
A model tool call dispatched inside an AI node’s in-node tool-use loop
(an ai node bound to adapters), emitted just before the tool runs so the
UI shows live tool-call granularity mid-turn. UX layer, like node_log:
not persisted. name is the full tool id (fs__edit-file); summary is
a one-line human-readable form (edit-file src/foo.rs).
Type Literal
Section titled “Type Literal”{ at: string; execution_id: string; kind: "iteration_capped"; node_id: string; visits: number; }
A bounded loop hit the per-node visit cap; the node will not run again
and the run finishes with partial status. Diagnostic only.
Type Literal
Section titled “Type Literal”{ at: string; execution_id: string; kind: "paused"; }
The run reached a node-boundary checkpoint while paused and is now suspended until resumed or cancelled.
Type Literal
Section titled “Type Literal”{ at: string; execution_id: string; kind: "resumed"; }
A paused run was released and scheduling continues.
Type Literal
Section titled “Type Literal”{ action: string; at: string; execution_id: string; kind: "awaiting_confirmation"; node_id: string; }
A node about to run performs a destructive operation and the per-step
confirmation gate is on. The run self-paused; the user confirms (resume)
or cancels (stop). action summarizes what the node would do.
Type Literal
Section titled “Type Literal”{ at: string; contract_version: string | null; execution_id: string; input: string; kind: "ai_invocation"; model: string; node_id: string; provider: string; }
An AI node is invoking its model. Audit-layer event: records the
provider/model and the post-sanitizer input (preview-only for cloud nodes
without auditContent). contract_version is set when the node is
contract-bound.
Type Literal
Section titled “Type Literal”{ at: string; confidence: number | null; contract_version: string; decision: string; execution_id: string; kind: "ai_routing_decision"; node_id: string; threshold: string; }
The engine routed a contract-bound AI output by the node contract’s
thresholds. decision is auto_approve / human_review / suppress /
contract_violation; threshold names the rule that applied.
Type Literal
Section titled “Type Literal”{ at: string; confidence: number; execution_id: string; kind: "ai_review_required"; node_id: string; primary_output: string; reasoning: string | null; }
A contract-bound AI output landed in the human review band (or the model
escalated). The run self-paused; the user approves or rejects via
resolve_ai_review.
Type Literal
Section titled “Type Literal”{ approved: boolean; at: string; execution_id: string; kind: "ai_review_resolved"; node_id: string; }
A human resolved an AI review gate. Recorded as a system event.
Type Literal
Section titled “Type Literal”{ at: string; decision_id: string; dsl: string; edge_count: number; execution_id: string; kind: "review_required"; node_count: number; plan?: string | null; }
at:
string
decision_id
Section titled “decision_id”decision_id:
string
dsl:
string
edge_count
Section titled “edge_count”edge_count:
number
execution_id
Section titled “execution_id”execution_id:
string
kind:
"review_required"
The agentic workflow generated a flow and awaits a review verdict
(manual mode). Reply via submit_workflow_decision(decision_id, ...).
node_count
Section titled “node_count”node_count:
number
optionalplan?:string|null
Type Literal
Section titled “Type Literal”{ at: string; attempt: number; cap: number; decision_id: string; error: string; execution_id: string; kind: "fix_required"; node_id: string; prior_dsl: string; proposed_dsl: string; proposed_plan?: string | null; summary: string; }
at:
string
attempt
Section titled “attempt”attempt:
number
cap:
number
decision_id
Section titled “decision_id”decision_id:
string
error:
string
execution_id
Section titled “execution_id”execution_id:
string
kind:
"fix_required"
The workflow monitor proposed a fix and awaits a verdict (manual).
node_id
Section titled “node_id”node_id:
string
prior_dsl
Section titled “prior_dsl”prior_dsl:
string
proposed_dsl
Section titled “proposed_dsl”proposed_dsl:
string
proposed_plan?
Section titled “proposed_plan?”
optionalproposed_plan?:string|null
summary
Section titled “summary”summary:
string
Type Literal
Section titled “Type Literal”{ at: string; execution_id: string; kind: "workflow_summary"; summary: WorkflowSummary; }
at:
string
execution_id
Section titled “execution_id”execution_id:
string
kind:
"workflow_summary"
The agentic workflow finished; carries the completion overview.
summary
Section titled “summary”summary:
WorkflowSummary
Type Literal
Section titled “Type Literal”{ at: string; execution_id: string; kind: "done"; status: string; }