# Node execution records

> Execution facts, measured usage, cache decisions, and durable resume projections.

Archon captures a node's execution facts in `nodeExecutionRecordSchema`. The shared public facts use `nodeExecutionMetadataSchema`; cache decisions use `nodeCacheRecordSchema`. Their source is [`packages/workflows/src/schemas/node-execution.ts`](https://github.com/coleam00/Archon/blob/dev/packages/workflows/src/schemas/node-execution.ts). The generated tables below come from these schemas and the separate persisted projection, `serializedNodeDataSchema` in [`node-record-serialization.ts`](https://github.com/coleam00/Archon/blob/dev/packages/workflows/src/node-record-serialization.ts).

## Identity and execution context

The node descriptor identifies the authored node and its kind; `path` identifies its location in the run, including composed structure. An invocation identifies the logical execution, while an attempt identifies one execution attempt within it. Retrying can create another attempt without creating another invocation. `invocation.loopPath` identifies enclosing loop groups and iterations.

The invocation's checkout observation captures the checkout at its first attempt. Later attempts and resumed continuations retain it; each attempt can also have its own checkout observation. An observation describes Git content, a positively established non-Git directory, or an unavailable observation. It is evidence, not a policy against dirty starts.

The binding records the provider, requested model, provider-resolved model, tier, effort, session preview, and session origin when available. Requested and resolved models are distinct: Archon does not substitute the requested model for an unreported resolved model. A session preview is for display, not a resume token. The full `sessionId` is excluded by `executionMetadata`; the durable `session_id` is not a public session-resume token surface.

Timing describes the attempt's start and observed duration. Lifecycle describes start, completion, failure, skip, or suspension. Output can carry runtime text, structured output, declared output paths, and persisted preview/truncation/spill provenance. Diagnostics carry additional execution observations; they are excluded from shared execution metadata along with output and the full session ID.

## Measurements and accounting

A measurement is either a reported value (`source: provider`) or explicitly unavailable. A genuine reported zero is a value; absence never becomes zero. `startNodeExecution` initializes availability from provider capabilities: `unsupported` means the provider declares no support, `not_reported` means support is declared but no value arrived, `unknown` means support is undeclared, and `not_applicable` means no provider call happened: the node has no provider, or the attempt failed before calling it. `finishNodeExecution` retains availability for omitted observations and marks rejected token or non-finite numeric observations `invalid`. An explicit provider `tokensUnknown` signal marks token accounting `incomplete`: at least one paid interval cannot be counted, so retries, resumed loops, and run or fan-out totals stay unavailable while cost continues to accumulate. Ordinary omitted measurements do not invalidate a token total.

The [provider capability matrix](/reference/provider-capabilities/) is the per-provider reporting reference. Support does not guarantee a value on every result or complete nested-agent usage. Archon does not estimate cost or infer turns from event counts.

`nodeCostScope` maps `accounting: node` to `own` and other accounting kinds to `total`. Historical rows fall back to `aggregate: true` for `total`, otherwise `own`. This scope is a projection rule, not an execution-record field. A total restates spend that other rows may carry, so summing every event double-counts it.

The engine's resume fold treats composed-instance terminal usage as authoritative for that instance's scope: its inner observability rows can be missing after a crash. Other aggregate rows restate leaf usage. Use engine-produced run totals rather than constructing an independent client aggregation rule.

## Cache decisions and skips

Cache decisions carry no new attempt, provider binding, timing, or newly consumed spend. `serializeNodeStateRecord` projects them as follows. The workflows conformance test checks these action-to-event names against the serializer:

- Replayed: `node_skipped_prior_success`, with the reusable output under the normal output keys.
- Reset: `node_always_run_reset`, with prior output and its truncation/spill provenance under `prior_*` keys.
- Invalidated: `node_prior_cache_invalidated`, with prior output, prior structured output when present, `reason: stale_dependency`, and `invalidating_deps`.

A skipped execution instead carries a lifecycle reason and typed `cause`. The cause identifies condition evaluation, a condition parse error, timeout, or an upstream failure/skip with its origin. Cache records and skip lifecycle records are separate contracts.

## Where the facts are exposed

| Surface | Payload |
| --- | --- |
| `archon workflow get <run-id> --json` | Run and terminal information; no full execution record |
| `archon workflow get <run-id> --json --verbose` | Node summaries with execution metadata reconstructed from durable events when present |
| `archon workflow get <run-id> --json --verbose --events` | Durable event envelopes and serialized `data` |
| `GET /api/workflows/runs/{runId}` | Serialized events, with event-level `cost_scope` when `data.cost_usd` is numeric; separate run terminal/node summaries |
| Live emitter and JSONL transcript | Shared `executionMetadata`, excluding output, diagnostics, and the full session ID |

The terminal record's `nodes` are lifecycle summaries from `foldNodeEvents` and `runNodeStateSchema`, not embedded full execution metadata. Historical rows may lack execution metadata. See the [API reference](/reference/api/#runs) for the detail endpoint and the [CLI reference](/reference/cli/) for command options.

## Persisted data and resume compatibility

`recordNodeState` serializes a captured record into durable events and derived transcript/emitter facts. The durable projection keeps both nested execution facts and existing flat wire keys. Event envelopes supply run identity, node path, and event type; the persisted-data table below describes `data`, not the envelope or a full in-memory execution record.

[`getDagResumeSnapshot`](https://github.com/coleam00/Archon/blob/dev/packages/core/src/db/workflow-events.ts) reads ordered persisted events through [`readNodeRecordEvent`](https://github.com/coleam00/Archon/blob/dev/packages/workflows/src/node-record-reader.ts). It restores unfinished invocation metadata and completion metadata, reusable completion output, truncation and spill provenance, structured output, declared output paths, and accounting/usage. Legacy `declared_fields` are converted to root output paths when `declared_output_paths` is absent. Failed rows can contribute usage without becoming reusable success. Cache replay inherits reusable completion facts and contributes no new spend; reset and invalidation remove reusable output.

The reader reconstructs lifecycle from the event type and the corresponding error, retryability, typed failure, skip reason/cause, or suspension point. If modern execution metadata is present, its required groups must be complete and its lifecycle valid. The persisted projection also carries diagnostics; being readable does not mean every diagnostic drives resume.

`fan_out_instances` is a separate durable event: its `data.instances` restores the first valid instance snapshot for the fan-out wrapper. It is outside the node-record data schema and the tables below.

Persisted keys and event/envelope identities are compatibility contracts. Older rows must remain readable, and older binaries may open the same database. This reference changes no schema, key, or behavior. See the [database reference](/reference/database/) for persistence context.

## Schema field tables

<!-- BEGIN GENERATED NODE EXECUTION TABLES -->

Generated from the owning Zod schemas with `z.toJSONSchema` (input mode). Regenerate with `bun run generate:node-execution-reference`; verify with `bun run check:node-execution-reference`. The workflows conformance test enforces this block in the repository test suite.

Presence is relative to the containing object: a required child of an optional parent exists only when that parent exists. Array items use `[]`; union rows state their alternative. `unknown` is unconstrained data. These tables describe fields and alternatives, not every validation constraint.

### Execution record

#### runId

| Field path | Type / values | Presence | Alternative |
| ---------- | ------------- | -------- | ----------- |
| `runId`    | `string`      | required | —           |

#### path

| Field path | Type / values | Presence | Alternative |
| ---------- | ------------- | -------- | ----------- |
| `path`     | `string`      | required | —           |

#### node

| Field path         | Type / values                | Presence | Alternative                                         |
| ------------------ | ---------------------------- | -------- | --------------------------------------------------- |
| `node`             | `object`                     | required | `node.kind = "agent"`                               |
| `node.id`          | `string`                     | required | `node.kind = "agent"`                               |
| `node.kind`        | `"agent"`                    | required | `node.kind = "agent"`                               |
| `node.source`      | `object`                     | required | `node.kind = "agent"; node.source.kind = "inline"`  |
| `node.source.kind` | `"inline"`                   | required | `node.kind = "agent"; node.source.kind = "inline"`  |
| `node.source`      | `object`                     | required | `node.kind = "agent"; node.source.kind = "command"` |
| `node.source.kind` | `"command"`                  | required | `node.kind = "agent"; node.source.kind = "command"` |
| `node.source.name` | `string`                     | required | `node.kind = "agent"; node.source.kind = "command"` |
| `node`             | `object`                     | required | `node.kind = "exec"`                                |
| `node.id`          | `string`                     | required | `node.kind = "exec"`                                |
| `node.kind`        | `"exec"`                     | required | `node.kind = "exec"`                                |
| `node.runtime`     | `"sh" \| "bun" \| "uv"`      | required | `node.kind = "exec"`                                |
| `node`             | `object`                     | required | `node.kind = "loop"`                                |
| `node.id`          | `string`                     | required | `node.kind = "loop"`                                |
| `node.kind`        | `"loop"`                     | required | `node.kind = "loop"`                                |
| `node.command`     | `string`                     | optional | `node.kind = "loop"`                                |
| `node`             | `object`                     | required | `node.kind = "loop_group"`                          |
| `node.id`          | `string`                     | required | `node.kind = "loop_group"`                          |
| `node.kind`        | `"loop_group"`               | required | `node.kind = "loop_group"`                          |
| `node`             | `object`                     | required | `node.kind = "gate"`                                |
| `node.id`          | `string`                     | required | `node.kind = "gate"`                                |
| `node.kind`        | `"gate"`                     | required | `node.kind = "gate"`                                |
| `node`             | `object`                     | required | `node.kind = "halt"`                                |
| `node.id`          | `string`                     | required | `node.kind = "halt"`                                |
| `node.kind`        | `"halt"`                     | required | `node.kind = "halt"`                                |
| `node`             | `object`                     | required | `node.kind = "wait"`                                |
| `node.id`          | `string`                     | required | `node.kind = "wait"`                                |
| `node.kind`        | `"wait"`                     | required | `node.kind = "wait"`                                |
| `node`             | `object`                     | required | `node.kind = "workflow"`                            |
| `node.id`          | `string`                     | required | `node.kind = "workflow"`                            |
| `node.kind`        | `"workflow"`                 | required | `node.kind = "workflow"`                            |
| `node.fanOut`      | `true`                       | optional | `node.kind = "workflow"`                            |
| `node`             | `object`                     | required | `node.kind = "compose_fan_out"`                     |
| `node.id`          | `string`                     | required | `node.kind = "compose_fan_out"`                     |
| `node.kind`        | `"compose_fan_out"`          | required | `node.kind = "compose_fan_out"`                     |
| `node`             | `object`                     | required | `node.kind = "compose_fan_out_instance"`            |
| `node.kind`        | `"compose_fan_out_instance"` | required | `node.kind = "compose_fan_out_instance"`            |
| `node.id`          | `string`                     | required | `node.kind = "compose_fan_out_instance"`            |

#### invocation

| Field path                                                  | Type / values                                             | Presence | Alternative                                                                                 |
| ----------------------------------------------------------- | --------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------- |
| `invocation`                                                | `object`                                                  | required | —                                                                                           |
| `invocation.id`                                             | `string`                                                  | required | —                                                                                           |
| `invocation.startedAt`                                      | `string`                                                  | required | —                                                                                           |
| `invocation.loopPath`                                       | `array<object>`                                           | required | —                                                                                           |
| `invocation.loopPath[]`                                     | `object`                                                  | item     | —                                                                                           |
| `invocation.loopPath[].groupId`                             | `string`                                                  | required | —                                                                                           |
| `invocation.loopPath[].iteration`                           | `integer`                                                 | required | —                                                                                           |
| `invocation.checkoutStart`                                  | `object`                                                  | optional | `invocation.checkoutStart.kind = "git"`                                                     |
| `invocation.checkoutStart.kind`                             | `"git"`                                                   | required | `invocation.checkoutStart.kind = "git"`                                                     |
| `invocation.checkoutStart.sampledAt`                        | `string`                                                  | required | `invocation.checkoutStart.kind = "git"`                                                     |
| `invocation.checkoutStart.commit`                           | `string`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.commit alternative 1`      |
| `invocation.checkoutStart.commit`                           | `null`                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.commit alternative 2`      |
| `invocation.checkoutStart.tree`                             | `string`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.tree alternative 1`        |
| `invocation.checkoutStart.tree`                             | `null`                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.tree alternative 2`        |
| `invocation.checkoutStart.worktree`                         | `object`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "clean"` |
| `invocation.checkoutStart.worktree.status`                  | `"clean"`                                                 | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "clean"` |
| `invocation.checkoutStart.worktree`                         | `object`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.status`                  | `"dirty"`                                                 | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.content`                 | `"complete" \| "incomplete"`                              | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.staged`                  | `integer`                                                 | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.unstaged`                | `integer`                                                 | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.untracked`               | `integer`                                                 | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest`                | `object`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.pointer`        | `object`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.pointer.type`   | `"archon_artifact"`                                       | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.pointer.run_id` | `string`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.pointer.path`   | `string`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.sha256`         | `string`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.entries`        | `integer`                                                 | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.cutFromCommit`                    | `string`                                                  | optional | `invocation.checkoutStart.kind = "git"`                                                     |
| `invocation.checkoutStart`                                  | `object`                                                  | optional | `invocation.checkoutStart.kind = "not_git"`                                                 |
| `invocation.checkoutStart.kind`                             | `"not_git"`                                               | required | `invocation.checkoutStart.kind = "not_git"`                                                 |
| `invocation.checkoutStart.sampledAt`                        | `string`                                                  | required | `invocation.checkoutStart.kind = "not_git"`                                                 |
| `invocation.checkoutStart`                                  | `object`                                                  | optional | `invocation.checkoutStart.kind = "unavailable"`                                             |
| `invocation.checkoutStart.kind`                             | `"unavailable"`                                           | required | `invocation.checkoutStart.kind = "unavailable"`                                             |
| `invocation.checkoutStart.sampledAt`                        | `string`                                                  | required | `invocation.checkoutStart.kind = "unavailable"`                                             |
| `invocation.checkoutStart.reason`                           | `"git_failed" \| "unsupported_backend" \| "probe_failed"` | required | `invocation.checkoutStart.kind = "unavailable"`                                             |

#### attempt

| Field path                                               | Type / values                                             | Presence | Alternative                                                                           |
| -------------------------------------------------------- | --------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------- |
| `attempt`                                                | `object`                                                  | required | —                                                                                     |
| `attempt.id`                                             | `string`                                                  | required | —                                                                                     |
| `attempt.startedAt`                                      | `string`                                                  | required | —                                                                                     |
| `attempt.checkoutStart`                                  | `object`                                                  | optional | `attempt.checkoutStart.kind = "git"`                                                  |
| `attempt.checkoutStart.kind`                             | `"git"`                                                   | required | `attempt.checkoutStart.kind = "git"`                                                  |
| `attempt.checkoutStart.sampledAt`                        | `string`                                                  | required | `attempt.checkoutStart.kind = "git"`                                                  |
| `attempt.checkoutStart.commit`                           | `string`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.commit alternative 1`      |
| `attempt.checkoutStart.commit`                           | `null`                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.commit alternative 2`      |
| `attempt.checkoutStart.tree`                             | `string`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.tree alternative 1`        |
| `attempt.checkoutStart.tree`                             | `null`                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.tree alternative 2`        |
| `attempt.checkoutStart.worktree`                         | `object`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "clean"` |
| `attempt.checkoutStart.worktree.status`                  | `"clean"`                                                 | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "clean"` |
| `attempt.checkoutStart.worktree`                         | `object`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.status`                  | `"dirty"`                                                 | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.content`                 | `"complete" \| "incomplete"`                              | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.staged`                  | `integer`                                                 | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.unstaged`                | `integer`                                                 | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.untracked`               | `integer`                                                 | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest`                | `object`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest.pointer`        | `object`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest.pointer.type`   | `"archon_artifact"`                                       | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest.pointer.run_id` | `string`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest.pointer.path`   | `string`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest.sha256`         | `string`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest.entries`        | `integer`                                                 | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.cutFromCommit`                    | `string`                                                  | optional | `attempt.checkoutStart.kind = "git"`                                                  |
| `attempt.checkoutStart`                                  | `object`                                                  | optional | `attempt.checkoutStart.kind = "not_git"`                                              |
| `attempt.checkoutStart.kind`                             | `"not_git"`                                               | required | `attempt.checkoutStart.kind = "not_git"`                                              |
| `attempt.checkoutStart.sampledAt`                        | `string`                                                  | required | `attempt.checkoutStart.kind = "not_git"`                                              |
| `attempt.checkoutStart`                                  | `object`                                                  | optional | `attempt.checkoutStart.kind = "unavailable"`                                          |
| `attempt.checkoutStart.kind`                             | `"unavailable"`                                           | required | `attempt.checkoutStart.kind = "unavailable"`                                          |
| `attempt.checkoutStart.sampledAt`                        | `string`                                                  | required | `attempt.checkoutStart.kind = "unavailable"`                                          |
| `attempt.checkoutStart.reason`                           | `"git_failed" \| "unsupported_backend" \| "probe_failed"` | required | `attempt.checkoutStart.kind = "unavailable"`                                          |

#### binding

| Field path                      | Type / values                                                                                   | Presence | Alternative                                     |
| ------------------------------- | ----------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------- |
| `binding`                       | `object`                                                                                        | required | —                                               |
| `binding.provider`              | `string`                                                                                        | optional | —                                               |
| `binding.model`                 | `object`                                                                                        | optional | —                                               |
| `binding.model.requested`       | `string`                                                                                        | optional | —                                               |
| `binding.model.resolved`        | `object`                                                                                        | required | `binding.model.resolved.source = "provider"`    |
| `binding.model.resolved.source` | `"provider"`                                                                                    | required | `binding.model.resolved.source = "provider"`    |
| `binding.model.resolved.value`  | `string`                                                                                        | required | `binding.model.resolved.source = "provider"`    |
| `binding.model.resolved`        | `object`                                                                                        | required | `binding.model.resolved.source = "unavailable"` |
| `binding.model.resolved.source` | `"unavailable"`                                                                                 | required | `binding.model.resolved.source = "unavailable"` |
| `binding.model.resolved.reason` | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"` | required | `binding.model.resolved.source = "unavailable"` |
| `binding.tier`                  | `"small" \| "medium" \| "large"`                                                                | optional | —                                               |
| `binding.effort`                | `"minimal" \| "low" \| "medium" \| "high" \| "xhigh" \| "max" \| "ultra" \| "persistent"`       | optional | —                                               |
| `binding.sessionPreview`        | `string`                                                                                        | optional | —                                               |
| `binding.sessionOrigin`         | `"fresh" \| "resumed" \| "resume-failed-cold"`                                                  | optional | —                                               |

#### timing

| Field path          | Type / values | Presence | Alternative |
| ------------------- | ------------- | -------- | ----------- |
| `timing`            | `object`      | required | —           |
| `timing.startedAt`  | `string`      | required | —           |
| `timing.durationMs` | `number`      | optional | —           |

#### spend

| Field path                        | Type / values                                                                                   | Presence | Alternative                               |
| --------------------------------- | ----------------------------------------------------------------------------------------------- | -------- | ----------------------------------------- |
| `spend`                           | `object`                                                                                        | required | —                                         |
| `spend.tokens`                    | `object`                                                                                        | required | `spend.tokens.source = "provider"`        |
| `spend.tokens.source`             | `"provider"`                                                                                    | required | `spend.tokens.source = "provider"`        |
| `spend.tokens.value`              | `object`                                                                                        | required | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.input`        | `number`                                                                                        | required | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.output`       | `number`                                                                                        | required | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.cacheRead`    | `number`                                                                                        | optional | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.cacheWrite`   | `number`                                                                                        | optional | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.cachePartial` | `true`                                                                                          | optional | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.total`        | `number`                                                                                        | optional | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.cost`         | `number`                                                                                        | optional | `spend.tokens.source = "provider"`        |
| `spend.tokens`                    | `object`                                                                                        | required | `spend.tokens.source = "unavailable"`     |
| `spend.tokens.source`             | `"unavailable"`                                                                                 | required | `spend.tokens.source = "unavailable"`     |
| `spend.tokens.reason`             | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"` | required | `spend.tokens.source = "unavailable"`     |
| `spend.costUsd`                   | `object`                                                                                        | required | `spend.costUsd.source = "provider"`       |
| `spend.costUsd.source`            | `"provider"`                                                                                    | required | `spend.costUsd.source = "provider"`       |
| `spend.costUsd.value`             | `number`                                                                                        | required | `spend.costUsd.source = "provider"`       |
| `spend.costUsd.partial`           | `true`                                                                                          | optional | `spend.costUsd.source = "provider"`       |
| `spend.costUsd`                   | `object`                                                                                        | required | `spend.costUsd.source = "unavailable"`    |
| `spend.costUsd.source`            | `"unavailable"`                                                                                 | required | `spend.costUsd.source = "unavailable"`    |
| `spend.costUsd.reason`            | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"` | required | `spend.costUsd.source = "unavailable"`    |
| `spend.stopReason`                | `object`                                                                                        | required | `spend.stopReason.source = "provider"`    |
| `spend.stopReason.source`         | `"provider"`                                                                                    | required | `spend.stopReason.source = "provider"`    |
| `spend.stopReason.value`          | `string`                                                                                        | required | `spend.stopReason.source = "provider"`    |
| `spend.stopReason`                | `object`                                                                                        | required | `spend.stopReason.source = "unavailable"` |
| `spend.stopReason.source`         | `"unavailable"`                                                                                 | required | `spend.stopReason.source = "unavailable"` |
| `spend.stopReason.reason`         | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"` | required | `spend.stopReason.source = "unavailable"` |
| `spend.numTurns`                  | `object`                                                                                        | required | `spend.numTurns.source = "provider"`      |
| `spend.numTurns.source`           | `"provider"`                                                                                    | required | `spend.numTurns.source = "provider"`      |
| `spend.numTurns.value`            | `number`                                                                                        | required | `spend.numTurns.source = "provider"`      |
| `spend.numTurns`                  | `object`                                                                                        | required | `spend.numTurns.source = "unavailable"`   |
| `spend.numTurns.source`           | `"unavailable"`                                                                                 | required | `spend.numTurns.source = "unavailable"`   |
| `spend.numTurns.reason`           | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"` | required | `spend.numTurns.source = "unavailable"`   |

#### accounting

| Field path   | Type / values                                        | Presence | Alternative |
| ------------ | ---------------------------------------------------- | -------- | ----------- |
| `accounting` | `"node" \| "aggregate" \| "instance" \| "amendment"` | required | —           |

#### lifecycle

| Field path                               | Type / values                                                                                                                                                                               | Presence | Alternative                                                                    |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------ |
| `lifecycle`                              | `object`                                                                                                                                                                                    | required | `lifecycle.status = "started"`                                                 |
| `lifecycle.status`                       | `"started"`                                                                                                                                                                                 | required | `lifecycle.status = "started"`                                                 |
| `lifecycle`                              | `object`                                                                                                                                                                                    | required | `lifecycle.status = "completed"`                                               |
| `lifecycle.status`                       | `"completed"`                                                                                                                                                                               | required | `lifecycle.status = "completed"`                                               |
| `lifecycle`                              | `object`                                                                                                                                                                                    | required | `lifecycle.status = "failed"`                                                  |
| `lifecycle.status`                       | `"failed"`                                                                                                                                                                                  | required | `lifecycle.status = "failed"`                                                  |
| `lifecycle.error`                        | `string`                                                                                                                                                                                    | required | `lifecycle.status = "failed"`                                                  |
| `lifecycle.retryable`                    | `false`                                                                                                                                                                                     | optional | `lifecycle.status = "failed"`                                                  |
| `lifecycle.failureKind`                  | `"fatal" \| "transient" \| "unknown" \| "rate_limited" \| "overloaded" \| "timeout" \| "exec_failed" \| "output_contract" \| "max_iterations" \| "child_failed" \| "cancelled" \| "config"` | optional | `lifecycle.status = "failed"`                                                  |
| `lifecycle.providerFailure`              | `object`                                                                                                                                                                                    | optional | `lifecycle.status = "failed"`                                                  |
| `lifecycle.providerFailure.class`        | `"auth" \| "quota_exhausted" \| "budget_exceeded" \| "misconfigured" \| "rate_limited" \| "overloaded" \| "transient" \| "unknown"`                                                         | required | `lifecycle.status = "failed"`                                                  |
| `lifecycle.providerFailure.retryAfterMs` | `integer`                                                                                                                                                                                   | optional | `lifecycle.status = "failed"`                                                  |
| `lifecycle.providerFailure.resetAt`      | `string`                                                                                                                                                                                    | optional | `lifecycle.status = "failed"`                                                  |
| `lifecycle.providerFailure.evidence`     | `string`                                                                                                                                                                                    | required | `lifecycle.status = "failed"`                                                  |
| `lifecycle`                              | `object`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"`                                                 |
| `lifecycle.status`                       | `"skipped"`                                                                                                                                                                                 | required | `lifecycle.status = "skipped"`                                                 |
| `lifecycle.reason`                       | `"prior_success" \| "when_condition" \| "when_condition_parse_error" \| "trigger_rule" \| "timeout"`                                                                                        | required | `lifecycle.status = "skipped"`                                                 |
| `lifecycle.cause`                        | `object`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "condition"`             |
| `lifecycle.cause.kind`                   | `"condition"`                                                                                                                                                                               | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "condition"`             |
| `lifecycle.cause.expr`                   | `string`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "condition"`             |
| `lifecycle.cause`                        | `object`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "condition_parse_error"` |
| `lifecycle.cause.kind`                   | `"condition_parse_error"`                                                                                                                                                                   | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "condition_parse_error"` |
| `lifecycle.cause.expr`                   | `string`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "condition_parse_error"` |
| `lifecycle.cause`                        | `object`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "timeout"`               |
| `lifecycle.cause.kind`                   | `"timeout"`                                                                                                                                                                                 | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "timeout"`               |
| `lifecycle.cause`                        | `object`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "upstream_failed"`       |
| `lifecycle.cause.kind`                   | `"upstream_failed"`                                                                                                                                                                         | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "upstream_failed"`       |
| `lifecycle.cause.origin`                 | `string`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "upstream_failed"`       |
| `lifecycle.cause`                        | `object`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "upstream_skipped"`      |
| `lifecycle.cause.kind`                   | `"upstream_skipped"`                                                                                                                                                                        | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "upstream_skipped"`      |
| `lifecycle.cause.origin`                 | `string`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "upstream_skipped"`      |
| `lifecycle`                              | `object`                                                                                                                                                                                    | required | `lifecycle.status = "suspended"`                                               |
| `lifecycle.status`                       | `"suspended"`                                                                                                                                                                               | required | `lifecycle.status = "suspended"`                                               |
| `lifecycle.point`                        | `"approval" \| "interactive_loop" \| "writeback" \| "child_workflow" \| "fan_out"`                                                                                                          | required | `lifecycle.status = "suspended"; lifecycle.point alternative 1`                |
| `lifecycle.point`                        | `"wait"`                                                                                                                                                                                    | required | `lifecycle.status = "suspended"; lifecycle.point alternative 2`                |

#### output

| Field path                       | Type / values          | Presence | Alternative |
| -------------------------------- | ---------------------- | -------- | ----------- |
| `output`                         | `object`               | optional | —           |
| `output.text`                    | `string`               | required | —           |
| `output.structured`              | `unknown`              | optional | —           |
| `output.declaredOutputPaths`     | `array<array<string>>` | optional | —           |
| `output.declaredOutputPaths[]`   | `array<string>`        | item     | —           |
| `output.declaredOutputPaths[][]` | `string`               | item     | —           |
| `output.persisted`               | `object`               | optional | —           |
| `output.persisted.text`          | `string`               | required | —           |
| `output.persisted.truncated`     | `boolean`              | required | —           |
| `output.persisted.originalBytes` | `number`               | optional | —           |
| `output.persisted.spillPath`     | `string`               | optional | —           |

#### diagnostics

| Field path                                | Type / values                                | Presence | Alternative |
| ----------------------------------------- | -------------------------------------------- | -------- | ----------- |
| `diagnostics`                             | `object`                                     | optional | —           |
| `diagnostics.iteration`                   | `number`                                     | optional | —           |
| `diagnostics.loopIterations`              | `number`                                     | optional | —           |
| `diagnostics.outputType`                  | `string`                                     | optional | —           |
| `diagnostics.command`                     | `string`                                     | optional | —           |
| `diagnostics.status`                      | `string`                                     | optional | —           |
| `diagnostics.maxIterations`               | `number`                                     | optional | —           |
| `diagnostics.sessionSourceNodeId`         | `string`                                     | optional | —           |
| `diagnostics.sessionForkRequested`        | `boolean`                                    | optional | —           |
| `diagnostics.sessionForked`               | `boolean`                                    | optional | —           |
| `diagnostics.backgroundTasksIncomplete`   | `array<string>`                              | optional | —           |
| `diagnostics.backgroundTasksIncomplete[]` | `string`                                     | item     | —           |
| `diagnostics.childRunId`                  | `string`                                     | optional | —           |
| `diagnostics.blockedOnChildRunId`         | `string`                                     | optional | —           |
| `diagnostics.fanOut`                      | `boolean`                                    | optional | —           |
| `diagnostics.identity`                    | `string`                                     | optional | —           |
| `diagnostics.ordinal`                     | `number`                                     | optional | —           |
| `diagnostics.approvalDecision`            | `string`                                     | optional | —           |
| `diagnostics.expr`                        | `string`                                     | optional | —           |
| `diagnostics.mcpUnavailable`              | `object`                                     | optional | —           |
| `diagnostics.mcpUnavailable.path`         | `string`                                     | required | —           |
| `diagnostics.mcpUnavailable.reason`       | `"provider_unsupported" \| "config_missing"` | required | —           |
| `diagnostics.mcpUnavailable.servers`      | `array<string>`                              | optional | —           |
| `diagnostics.mcpUnavailable.servers[]`    | `string`                                     | item     | —           |

#### sessionId

| Field path  | Type / values | Presence | Alternative |
| ----------- | ------------- | -------- | ----------- |
| `sessionId` | `string`      | optional | —           |

### Execution metadata

#### runId

| Field path | Type / values | Presence | Alternative |
| ---------- | ------------- | -------- | ----------- |
| `runId`    | `string`      | required | —           |

#### path

| Field path | Type / values | Presence | Alternative |
| ---------- | ------------- | -------- | ----------- |
| `path`     | `string`      | required | —           |

#### node

| Field path         | Type / values                | Presence | Alternative                                         |
| ------------------ | ---------------------------- | -------- | --------------------------------------------------- |
| `node`             | `object`                     | required | `node.kind = "agent"`                               |
| `node.id`          | `string`                     | required | `node.kind = "agent"`                               |
| `node.kind`        | `"agent"`                    | required | `node.kind = "agent"`                               |
| `node.source`      | `object`                     | required | `node.kind = "agent"; node.source.kind = "inline"`  |
| `node.source.kind` | `"inline"`                   | required | `node.kind = "agent"; node.source.kind = "inline"`  |
| `node.source`      | `object`                     | required | `node.kind = "agent"; node.source.kind = "command"` |
| `node.source.kind` | `"command"`                  | required | `node.kind = "agent"; node.source.kind = "command"` |
| `node.source.name` | `string`                     | required | `node.kind = "agent"; node.source.kind = "command"` |
| `node`             | `object`                     | required | `node.kind = "exec"`                                |
| `node.id`          | `string`                     | required | `node.kind = "exec"`                                |
| `node.kind`        | `"exec"`                     | required | `node.kind = "exec"`                                |
| `node.runtime`     | `"sh" \| "bun" \| "uv"`      | required | `node.kind = "exec"`                                |
| `node`             | `object`                     | required | `node.kind = "loop"`                                |
| `node.id`          | `string`                     | required | `node.kind = "loop"`                                |
| `node.kind`        | `"loop"`                     | required | `node.kind = "loop"`                                |
| `node.command`     | `string`                     | optional | `node.kind = "loop"`                                |
| `node`             | `object`                     | required | `node.kind = "loop_group"`                          |
| `node.id`          | `string`                     | required | `node.kind = "loop_group"`                          |
| `node.kind`        | `"loop_group"`               | required | `node.kind = "loop_group"`                          |
| `node`             | `object`                     | required | `node.kind = "gate"`                                |
| `node.id`          | `string`                     | required | `node.kind = "gate"`                                |
| `node.kind`        | `"gate"`                     | required | `node.kind = "gate"`                                |
| `node`             | `object`                     | required | `node.kind = "halt"`                                |
| `node.id`          | `string`                     | required | `node.kind = "halt"`                                |
| `node.kind`        | `"halt"`                     | required | `node.kind = "halt"`                                |
| `node`             | `object`                     | required | `node.kind = "wait"`                                |
| `node.id`          | `string`                     | required | `node.kind = "wait"`                                |
| `node.kind`        | `"wait"`                     | required | `node.kind = "wait"`                                |
| `node`             | `object`                     | required | `node.kind = "workflow"`                            |
| `node.id`          | `string`                     | required | `node.kind = "workflow"`                            |
| `node.kind`        | `"workflow"`                 | required | `node.kind = "workflow"`                            |
| `node.fanOut`      | `true`                       | optional | `node.kind = "workflow"`                            |
| `node`             | `object`                     | required | `node.kind = "compose_fan_out"`                     |
| `node.id`          | `string`                     | required | `node.kind = "compose_fan_out"`                     |
| `node.kind`        | `"compose_fan_out"`          | required | `node.kind = "compose_fan_out"`                     |
| `node`             | `object`                     | required | `node.kind = "compose_fan_out_instance"`            |
| `node.kind`        | `"compose_fan_out_instance"` | required | `node.kind = "compose_fan_out_instance"`            |
| `node.id`          | `string`                     | required | `node.kind = "compose_fan_out_instance"`            |

#### invocation

| Field path                                                  | Type / values                                             | Presence | Alternative                                                                                 |
| ----------------------------------------------------------- | --------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------- |
| `invocation`                                                | `object`                                                  | required | —                                                                                           |
| `invocation.id`                                             | `string`                                                  | required | —                                                                                           |
| `invocation.startedAt`                                      | `string`                                                  | required | —                                                                                           |
| `invocation.loopPath`                                       | `array<object>`                                           | required | —                                                                                           |
| `invocation.loopPath[]`                                     | `object`                                                  | item     | —                                                                                           |
| `invocation.loopPath[].groupId`                             | `string`                                                  | required | —                                                                                           |
| `invocation.loopPath[].iteration`                           | `integer`                                                 | required | —                                                                                           |
| `invocation.checkoutStart`                                  | `object`                                                  | optional | `invocation.checkoutStart.kind = "git"`                                                     |
| `invocation.checkoutStart.kind`                             | `"git"`                                                   | required | `invocation.checkoutStart.kind = "git"`                                                     |
| `invocation.checkoutStart.sampledAt`                        | `string`                                                  | required | `invocation.checkoutStart.kind = "git"`                                                     |
| `invocation.checkoutStart.commit`                           | `string`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.commit alternative 1`      |
| `invocation.checkoutStart.commit`                           | `null`                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.commit alternative 2`      |
| `invocation.checkoutStart.tree`                             | `string`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.tree alternative 1`        |
| `invocation.checkoutStart.tree`                             | `null`                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.tree alternative 2`        |
| `invocation.checkoutStart.worktree`                         | `object`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "clean"` |
| `invocation.checkoutStart.worktree.status`                  | `"clean"`                                                 | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "clean"` |
| `invocation.checkoutStart.worktree`                         | `object`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.status`                  | `"dirty"`                                                 | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.content`                 | `"complete" \| "incomplete"`                              | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.staged`                  | `integer`                                                 | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.unstaged`                | `integer`                                                 | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.untracked`               | `integer`                                                 | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest`                | `object`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.pointer`        | `object`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.pointer.type`   | `"archon_artifact"`                                       | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.pointer.run_id` | `string`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.pointer.path`   | `string`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.sha256`         | `string`                                                  | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.entries`        | `integer`                                                 | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.cutFromCommit`                    | `string`                                                  | optional | `invocation.checkoutStart.kind = "git"`                                                     |
| `invocation.checkoutStart`                                  | `object`                                                  | optional | `invocation.checkoutStart.kind = "not_git"`                                                 |
| `invocation.checkoutStart.kind`                             | `"not_git"`                                               | required | `invocation.checkoutStart.kind = "not_git"`                                                 |
| `invocation.checkoutStart.sampledAt`                        | `string`                                                  | required | `invocation.checkoutStart.kind = "not_git"`                                                 |
| `invocation.checkoutStart`                                  | `object`                                                  | optional | `invocation.checkoutStart.kind = "unavailable"`                                             |
| `invocation.checkoutStart.kind`                             | `"unavailable"`                                           | required | `invocation.checkoutStart.kind = "unavailable"`                                             |
| `invocation.checkoutStart.sampledAt`                        | `string`                                                  | required | `invocation.checkoutStart.kind = "unavailable"`                                             |
| `invocation.checkoutStart.reason`                           | `"git_failed" \| "unsupported_backend" \| "probe_failed"` | required | `invocation.checkoutStart.kind = "unavailable"`                                             |

#### attempt

| Field path                                               | Type / values                                             | Presence | Alternative                                                                           |
| -------------------------------------------------------- | --------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------- |
| `attempt`                                                | `object`                                                  | required | —                                                                                     |
| `attempt.id`                                             | `string`                                                  | required | —                                                                                     |
| `attempt.startedAt`                                      | `string`                                                  | required | —                                                                                     |
| `attempt.checkoutStart`                                  | `object`                                                  | optional | `attempt.checkoutStart.kind = "git"`                                                  |
| `attempt.checkoutStart.kind`                             | `"git"`                                                   | required | `attempt.checkoutStart.kind = "git"`                                                  |
| `attempt.checkoutStart.sampledAt`                        | `string`                                                  | required | `attempt.checkoutStart.kind = "git"`                                                  |
| `attempt.checkoutStart.commit`                           | `string`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.commit alternative 1`      |
| `attempt.checkoutStart.commit`                           | `null`                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.commit alternative 2`      |
| `attempt.checkoutStart.tree`                             | `string`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.tree alternative 1`        |
| `attempt.checkoutStart.tree`                             | `null`                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.tree alternative 2`        |
| `attempt.checkoutStart.worktree`                         | `object`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "clean"` |
| `attempt.checkoutStart.worktree.status`                  | `"clean"`                                                 | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "clean"` |
| `attempt.checkoutStart.worktree`                         | `object`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.status`                  | `"dirty"`                                                 | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.content`                 | `"complete" \| "incomplete"`                              | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.staged`                  | `integer`                                                 | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.unstaged`                | `integer`                                                 | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.untracked`               | `integer`                                                 | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest`                | `object`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest.pointer`        | `object`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest.pointer.type`   | `"archon_artifact"`                                       | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest.pointer.run_id` | `string`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest.pointer.path`   | `string`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest.sha256`         | `string`                                                  | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.worktree.manifest.entries`        | `integer`                                                 | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"` |
| `attempt.checkoutStart.cutFromCommit`                    | `string`                                                  | optional | `attempt.checkoutStart.kind = "git"`                                                  |
| `attempt.checkoutStart`                                  | `object`                                                  | optional | `attempt.checkoutStart.kind = "not_git"`                                              |
| `attempt.checkoutStart.kind`                             | `"not_git"`                                               | required | `attempt.checkoutStart.kind = "not_git"`                                              |
| `attempt.checkoutStart.sampledAt`                        | `string`                                                  | required | `attempt.checkoutStart.kind = "not_git"`                                              |
| `attempt.checkoutStart`                                  | `object`                                                  | optional | `attempt.checkoutStart.kind = "unavailable"`                                          |
| `attempt.checkoutStart.kind`                             | `"unavailable"`                                           | required | `attempt.checkoutStart.kind = "unavailable"`                                          |
| `attempt.checkoutStart.sampledAt`                        | `string`                                                  | required | `attempt.checkoutStart.kind = "unavailable"`                                          |
| `attempt.checkoutStart.reason`                           | `"git_failed" \| "unsupported_backend" \| "probe_failed"` | required | `attempt.checkoutStart.kind = "unavailable"`                                          |

#### binding

| Field path                      | Type / values                                                                                   | Presence | Alternative                                     |
| ------------------------------- | ----------------------------------------------------------------------------------------------- | -------- | ----------------------------------------------- |
| `binding`                       | `object`                                                                                        | required | —                                               |
| `binding.provider`              | `string`                                                                                        | optional | —                                               |
| `binding.model`                 | `object`                                                                                        | optional | —                                               |
| `binding.model.requested`       | `string`                                                                                        | optional | —                                               |
| `binding.model.resolved`        | `object`                                                                                        | required | `binding.model.resolved.source = "provider"`    |
| `binding.model.resolved.source` | `"provider"`                                                                                    | required | `binding.model.resolved.source = "provider"`    |
| `binding.model.resolved.value`  | `string`                                                                                        | required | `binding.model.resolved.source = "provider"`    |
| `binding.model.resolved`        | `object`                                                                                        | required | `binding.model.resolved.source = "unavailable"` |
| `binding.model.resolved.source` | `"unavailable"`                                                                                 | required | `binding.model.resolved.source = "unavailable"` |
| `binding.model.resolved.reason` | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"` | required | `binding.model.resolved.source = "unavailable"` |
| `binding.tier`                  | `"small" \| "medium" \| "large"`                                                                | optional | —                                               |
| `binding.effort`                | `"minimal" \| "low" \| "medium" \| "high" \| "xhigh" \| "max" \| "ultra" \| "persistent"`       | optional | —                                               |
| `binding.sessionPreview`        | `string`                                                                                        | optional | —                                               |
| `binding.sessionOrigin`         | `"fresh" \| "resumed" \| "resume-failed-cold"`                                                  | optional | —                                               |

#### timing

| Field path          | Type / values | Presence | Alternative |
| ------------------- | ------------- | -------- | ----------- |
| `timing`            | `object`      | required | —           |
| `timing.startedAt`  | `string`      | required | —           |
| `timing.durationMs` | `number`      | optional | —           |

#### spend

| Field path                        | Type / values                                                                                   | Presence | Alternative                               |
| --------------------------------- | ----------------------------------------------------------------------------------------------- | -------- | ----------------------------------------- |
| `spend`                           | `object`                                                                                        | required | —                                         |
| `spend.tokens`                    | `object`                                                                                        | required | `spend.tokens.source = "provider"`        |
| `spend.tokens.source`             | `"provider"`                                                                                    | required | `spend.tokens.source = "provider"`        |
| `spend.tokens.value`              | `object`                                                                                        | required | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.input`        | `number`                                                                                        | required | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.output`       | `number`                                                                                        | required | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.cacheRead`    | `number`                                                                                        | optional | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.cacheWrite`   | `number`                                                                                        | optional | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.cachePartial` | `true`                                                                                          | optional | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.total`        | `number`                                                                                        | optional | `spend.tokens.source = "provider"`        |
| `spend.tokens.value.cost`         | `number`                                                                                        | optional | `spend.tokens.source = "provider"`        |
| `spend.tokens`                    | `object`                                                                                        | required | `spend.tokens.source = "unavailable"`     |
| `spend.tokens.source`             | `"unavailable"`                                                                                 | required | `spend.tokens.source = "unavailable"`     |
| `spend.tokens.reason`             | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"` | required | `spend.tokens.source = "unavailable"`     |
| `spend.costUsd`                   | `object`                                                                                        | required | `spend.costUsd.source = "provider"`       |
| `spend.costUsd.source`            | `"provider"`                                                                                    | required | `spend.costUsd.source = "provider"`       |
| `spend.costUsd.value`             | `number`                                                                                        | required | `spend.costUsd.source = "provider"`       |
| `spend.costUsd.partial`           | `true`                                                                                          | optional | `spend.costUsd.source = "provider"`       |
| `spend.costUsd`                   | `object`                                                                                        | required | `spend.costUsd.source = "unavailable"`    |
| `spend.costUsd.source`            | `"unavailable"`                                                                                 | required | `spend.costUsd.source = "unavailable"`    |
| `spend.costUsd.reason`            | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"` | required | `spend.costUsd.source = "unavailable"`    |
| `spend.stopReason`                | `object`                                                                                        | required | `spend.stopReason.source = "provider"`    |
| `spend.stopReason.source`         | `"provider"`                                                                                    | required | `spend.stopReason.source = "provider"`    |
| `spend.stopReason.value`          | `string`                                                                                        | required | `spend.stopReason.source = "provider"`    |
| `spend.stopReason`                | `object`                                                                                        | required | `spend.stopReason.source = "unavailable"` |
| `spend.stopReason.source`         | `"unavailable"`                                                                                 | required | `spend.stopReason.source = "unavailable"` |
| `spend.stopReason.reason`         | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"` | required | `spend.stopReason.source = "unavailable"` |
| `spend.numTurns`                  | `object`                                                                                        | required | `spend.numTurns.source = "provider"`      |
| `spend.numTurns.source`           | `"provider"`                                                                                    | required | `spend.numTurns.source = "provider"`      |
| `spend.numTurns.value`            | `number`                                                                                        | required | `spend.numTurns.source = "provider"`      |
| `spend.numTurns`                  | `object`                                                                                        | required | `spend.numTurns.source = "unavailable"`   |
| `spend.numTurns.source`           | `"unavailable"`                                                                                 | required | `spend.numTurns.source = "unavailable"`   |
| `spend.numTurns.reason`           | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"` | required | `spend.numTurns.source = "unavailable"`   |

#### accounting

| Field path   | Type / values                                        | Presence | Alternative |
| ------------ | ---------------------------------------------------- | -------- | ----------- |
| `accounting` | `"node" \| "aggregate" \| "instance" \| "amendment"` | required | —           |

#### lifecycle

| Field path                               | Type / values                                                                                                                                                                               | Presence | Alternative                                                                    |
| ---------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------ |
| `lifecycle`                              | `object`                                                                                                                                                                                    | required | `lifecycle.status = "started"`                                                 |
| `lifecycle.status`                       | `"started"`                                                                                                                                                                                 | required | `lifecycle.status = "started"`                                                 |
| `lifecycle`                              | `object`                                                                                                                                                                                    | required | `lifecycle.status = "completed"`                                               |
| `lifecycle.status`                       | `"completed"`                                                                                                                                                                               | required | `lifecycle.status = "completed"`                                               |
| `lifecycle`                              | `object`                                                                                                                                                                                    | required | `lifecycle.status = "failed"`                                                  |
| `lifecycle.status`                       | `"failed"`                                                                                                                                                                                  | required | `lifecycle.status = "failed"`                                                  |
| `lifecycle.error`                        | `string`                                                                                                                                                                                    | required | `lifecycle.status = "failed"`                                                  |
| `lifecycle.retryable`                    | `false`                                                                                                                                                                                     | optional | `lifecycle.status = "failed"`                                                  |
| `lifecycle.failureKind`                  | `"fatal" \| "transient" \| "unknown" \| "rate_limited" \| "overloaded" \| "timeout" \| "exec_failed" \| "output_contract" \| "max_iterations" \| "child_failed" \| "cancelled" \| "config"` | optional | `lifecycle.status = "failed"`                                                  |
| `lifecycle.providerFailure`              | `object`                                                                                                                                                                                    | optional | `lifecycle.status = "failed"`                                                  |
| `lifecycle.providerFailure.class`        | `"auth" \| "quota_exhausted" \| "budget_exceeded" \| "misconfigured" \| "rate_limited" \| "overloaded" \| "transient" \| "unknown"`                                                         | required | `lifecycle.status = "failed"`                                                  |
| `lifecycle.providerFailure.retryAfterMs` | `integer`                                                                                                                                                                                   | optional | `lifecycle.status = "failed"`                                                  |
| `lifecycle.providerFailure.resetAt`      | `string`                                                                                                                                                                                    | optional | `lifecycle.status = "failed"`                                                  |
| `lifecycle.providerFailure.evidence`     | `string`                                                                                                                                                                                    | required | `lifecycle.status = "failed"`                                                  |
| `lifecycle`                              | `object`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"`                                                 |
| `lifecycle.status`                       | `"skipped"`                                                                                                                                                                                 | required | `lifecycle.status = "skipped"`                                                 |
| `lifecycle.reason`                       | `"prior_success" \| "when_condition" \| "when_condition_parse_error" \| "trigger_rule" \| "timeout"`                                                                                        | required | `lifecycle.status = "skipped"`                                                 |
| `lifecycle.cause`                        | `object`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "condition"`             |
| `lifecycle.cause.kind`                   | `"condition"`                                                                                                                                                                               | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "condition"`             |
| `lifecycle.cause.expr`                   | `string`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "condition"`             |
| `lifecycle.cause`                        | `object`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "condition_parse_error"` |
| `lifecycle.cause.kind`                   | `"condition_parse_error"`                                                                                                                                                                   | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "condition_parse_error"` |
| `lifecycle.cause.expr`                   | `string`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "condition_parse_error"` |
| `lifecycle.cause`                        | `object`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "timeout"`               |
| `lifecycle.cause.kind`                   | `"timeout"`                                                                                                                                                                                 | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "timeout"`               |
| `lifecycle.cause`                        | `object`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "upstream_failed"`       |
| `lifecycle.cause.kind`                   | `"upstream_failed"`                                                                                                                                                                         | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "upstream_failed"`       |
| `lifecycle.cause.origin`                 | `string`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "upstream_failed"`       |
| `lifecycle.cause`                        | `object`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "upstream_skipped"`      |
| `lifecycle.cause.kind`                   | `"upstream_skipped"`                                                                                                                                                                        | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "upstream_skipped"`      |
| `lifecycle.cause.origin`                 | `string`                                                                                                                                                                                    | required | `lifecycle.status = "skipped"; lifecycle.cause.kind = "upstream_skipped"`      |
| `lifecycle`                              | `object`                                                                                                                                                                                    | required | `lifecycle.status = "suspended"`                                               |
| `lifecycle.status`                       | `"suspended"`                                                                                                                                                                               | required | `lifecycle.status = "suspended"`                                               |
| `lifecycle.point`                        | `"approval" \| "interactive_loop" \| "writeback" \| "child_workflow" \| "fan_out"`                                                                                                          | required | `lifecycle.status = "suspended"; lifecycle.point alternative 1`                |
| `lifecycle.point`                        | `"wait"`                                                                                                                                                                                    | required | `lifecycle.status = "suspended"; lifecycle.point alternative 2`                |

### Cache record

| Field path                             | Type / values                | Presence | Alternative                                         |
| -------------------------------------- | ---------------------------- | -------- | --------------------------------------------------- |
| `runId`                                | `string`                     | required | —                                                   |
| `path`                                 | `string`                     | required | —                                                   |
| `node`                                 | `object`                     | required | `node.kind = "agent"`                               |
| `node.id`                              | `string`                     | required | `node.kind = "agent"`                               |
| `node.kind`                            | `"agent"`                    | required | `node.kind = "agent"`                               |
| `node.source`                          | `object`                     | required | `node.kind = "agent"; node.source.kind = "inline"`  |
| `node.source.kind`                     | `"inline"`                   | required | `node.kind = "agent"; node.source.kind = "inline"`  |
| `node.source`                          | `object`                     | required | `node.kind = "agent"; node.source.kind = "command"` |
| `node.source.kind`                     | `"command"`                  | required | `node.kind = "agent"; node.source.kind = "command"` |
| `node.source.name`                     | `string`                     | required | `node.kind = "agent"; node.source.kind = "command"` |
| `node`                                 | `object`                     | required | `node.kind = "exec"`                                |
| `node.id`                              | `string`                     | required | `node.kind = "exec"`                                |
| `node.kind`                            | `"exec"`                     | required | `node.kind = "exec"`                                |
| `node.runtime`                         | `"sh" \| "bun" \| "uv"`      | required | `node.kind = "exec"`                                |
| `node`                                 | `object`                     | required | `node.kind = "loop"`                                |
| `node.id`                              | `string`                     | required | `node.kind = "loop"`                                |
| `node.kind`                            | `"loop"`                     | required | `node.kind = "loop"`                                |
| `node.command`                         | `string`                     | optional | `node.kind = "loop"`                                |
| `node`                                 | `object`                     | required | `node.kind = "loop_group"`                          |
| `node.id`                              | `string`                     | required | `node.kind = "loop_group"`                          |
| `node.kind`                            | `"loop_group"`               | required | `node.kind = "loop_group"`                          |
| `node`                                 | `object`                     | required | `node.kind = "gate"`                                |
| `node.id`                              | `string`                     | required | `node.kind = "gate"`                                |
| `node.kind`                            | `"gate"`                     | required | `node.kind = "gate"`                                |
| `node`                                 | `object`                     | required | `node.kind = "halt"`                                |
| `node.id`                              | `string`                     | required | `node.kind = "halt"`                                |
| `node.kind`                            | `"halt"`                     | required | `node.kind = "halt"`                                |
| `node`                                 | `object`                     | required | `node.kind = "wait"`                                |
| `node.id`                              | `string`                     | required | `node.kind = "wait"`                                |
| `node.kind`                            | `"wait"`                     | required | `node.kind = "wait"`                                |
| `node`                                 | `object`                     | required | `node.kind = "workflow"`                            |
| `node.id`                              | `string`                     | required | `node.kind = "workflow"`                            |
| `node.kind`                            | `"workflow"`                 | required | `node.kind = "workflow"`                            |
| `node.fanOut`                          | `true`                       | optional | `node.kind = "workflow"`                            |
| `node`                                 | `object`                     | required | `node.kind = "compose_fan_out"`                     |
| `node.id`                              | `string`                     | required | `node.kind = "compose_fan_out"`                     |
| `node.kind`                            | `"compose_fan_out"`          | required | `node.kind = "compose_fan_out"`                     |
| `node`                                 | `object`                     | required | `node.kind = "compose_fan_out_instance"`            |
| `node.kind`                            | `"compose_fan_out_instance"` | required | `node.kind = "compose_fan_out_instance"`            |
| `node.id`                              | `string`                     | required | `node.kind = "compose_fan_out_instance"`            |
| `cache`                                | `object`                     | required | `cache.action = "replayed"`                         |
| `cache.action`                         | `"replayed"`                 | required | `cache.action = "replayed"`                         |
| `cache.output`                         | `object`                     | required | `cache.action = "replayed"`                         |
| `cache.output.text`                    | `string`                     | required | `cache.action = "replayed"`                         |
| `cache.output.structured`              | `unknown`                    | optional | `cache.action = "replayed"`                         |
| `cache.output.declaredOutputPaths`     | `array<array<string>>`       | optional | `cache.action = "replayed"`                         |
| `cache.output.declaredOutputPaths[]`   | `array<string>`              | item     | `cache.action = "replayed"`                         |
| `cache.output.declaredOutputPaths[][]` | `string`                     | item     | `cache.action = "replayed"`                         |
| `cache.output.persisted`               | `object`                     | optional | `cache.action = "replayed"`                         |
| `cache.output.persisted.text`          | `string`                     | required | `cache.action = "replayed"`                         |
| `cache.output.persisted.truncated`     | `boolean`                    | required | `cache.action = "replayed"`                         |
| `cache.output.persisted.originalBytes` | `number`                     | optional | `cache.action = "replayed"`                         |
| `cache.output.persisted.spillPath`     | `string`                     | optional | `cache.action = "replayed"`                         |
| `cache`                                | `object`                     | required | `cache.action = "reset"`                            |
| `cache.action`                         | `"reset"`                    | required | `cache.action = "reset"`                            |
| `cache.prior`                          | `object`                     | required | `cache.action = "reset"`                            |
| `cache.prior.text`                     | `string`                     | required | `cache.action = "reset"`                            |
| `cache.prior.structured`               | `unknown`                    | optional | `cache.action = "reset"`                            |
| `cache.prior.declaredOutputPaths`      | `array<array<string>>`       | optional | `cache.action = "reset"`                            |
| `cache.prior.declaredOutputPaths[]`    | `array<string>`              | item     | `cache.action = "reset"`                            |
| `cache.prior.declaredOutputPaths[][]`  | `string`                     | item     | `cache.action = "reset"`                            |
| `cache.prior.persisted`                | `object`                     | optional | `cache.action = "reset"`                            |
| `cache.prior.persisted.text`           | `string`                     | required | `cache.action = "reset"`                            |
| `cache.prior.persisted.truncated`      | `boolean`                    | required | `cache.action = "reset"`                            |
| `cache.prior.persisted.originalBytes`  | `number`                     | optional | `cache.action = "reset"`                            |
| `cache.prior.persisted.spillPath`      | `string`                     | optional | `cache.action = "reset"`                            |
| `cache`                                | `object`                     | required | `cache.action = "invalidated"`                      |
| `cache.action`                         | `"invalidated"`              | required | `cache.action = "invalidated"`                      |
| `cache.prior`                          | `object`                     | required | `cache.action = "invalidated"`                      |
| `cache.prior.text`                     | `string`                     | required | `cache.action = "invalidated"`                      |
| `cache.prior.structured`               | `unknown`                    | optional | `cache.action = "invalidated"`                      |
| `cache.prior.declaredOutputPaths`      | `array<array<string>>`       | optional | `cache.action = "invalidated"`                      |
| `cache.prior.declaredOutputPaths[]`    | `array<string>`              | item     | `cache.action = "invalidated"`                      |
| `cache.prior.declaredOutputPaths[][]`  | `string`                     | item     | `cache.action = "invalidated"`                      |
| `cache.prior.persisted`                | `object`                     | optional | `cache.action = "invalidated"`                      |
| `cache.prior.persisted.text`           | `string`                     | required | `cache.action = "invalidated"`                      |
| `cache.prior.persisted.truncated`      | `boolean`                    | required | `cache.action = "invalidated"`                      |
| `cache.prior.persisted.originalBytes`  | `number`                     | optional | `cache.action = "invalidated"`                      |
| `cache.prior.persisted.spillPath`      | `string`                     | optional | `cache.action = "invalidated"`                      |
| `cache.invalidatingDeps`               | `array<string>`              | required | `cache.action = "invalidated"`                      |
| `cache.invalidatingDeps[]`             | `string`                     | item     | `cache.action = "invalidated"`                      |

### Persisted event data

| Field path                                                  | Type / values                                                                                                                                                                               | Presence | Alternative                                                                                 |
| ----------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------- | ------------------------------------------------------------------------------------------- |
| `node`                                                      | `object`                                                                                                                                                                                    | optional | `node.kind = "agent"`                                                                       |
| `node.id`                                                   | `string`                                                                                                                                                                                    | required | `node.kind = "agent"`                                                                       |
| `node.kind`                                                 | `"agent"`                                                                                                                                                                                   | required | `node.kind = "agent"`                                                                       |
| `node.source`                                               | `object`                                                                                                                                                                                    | required | `node.kind = "agent"; node.source.kind = "inline"`                                          |
| `node.source.kind`                                          | `"inline"`                                                                                                                                                                                  | required | `node.kind = "agent"; node.source.kind = "inline"`                                          |
| `node.source`                                               | `object`                                                                                                                                                                                    | required | `node.kind = "agent"; node.source.kind = "command"`                                         |
| `node.source.kind`                                          | `"command"`                                                                                                                                                                                 | required | `node.kind = "agent"; node.source.kind = "command"`                                         |
| `node.source.name`                                          | `string`                                                                                                                                                                                    | required | `node.kind = "agent"; node.source.kind = "command"`                                         |
| `node`                                                      | `object`                                                                                                                                                                                    | optional | `node.kind = "exec"`                                                                        |
| `node.id`                                                   | `string`                                                                                                                                                                                    | required | `node.kind = "exec"`                                                                        |
| `node.kind`                                                 | `"exec"`                                                                                                                                                                                    | required | `node.kind = "exec"`                                                                        |
| `node.runtime`                                              | `"sh" \| "bun" \| "uv"`                                                                                                                                                                     | required | `node.kind = "exec"`                                                                        |
| `node`                                                      | `object`                                                                                                                                                                                    | optional | `node.kind = "loop"`                                                                        |
| `node.id`                                                   | `string`                                                                                                                                                                                    | required | `node.kind = "loop"`                                                                        |
| `node.kind`                                                 | `"loop"`                                                                                                                                                                                    | required | `node.kind = "loop"`                                                                        |
| `node.command`                                              | `string`                                                                                                                                                                                    | optional | `node.kind = "loop"`                                                                        |
| `node`                                                      | `object`                                                                                                                                                                                    | optional | `node.kind = "loop_group"`                                                                  |
| `node.id`                                                   | `string`                                                                                                                                                                                    | required | `node.kind = "loop_group"`                                                                  |
| `node.kind`                                                 | `"loop_group"`                                                                                                                                                                              | required | `node.kind = "loop_group"`                                                                  |
| `node`                                                      | `object`                                                                                                                                                                                    | optional | `node.kind = "gate"`                                                                        |
| `node.id`                                                   | `string`                                                                                                                                                                                    | required | `node.kind = "gate"`                                                                        |
| `node.kind`                                                 | `"gate"`                                                                                                                                                                                    | required | `node.kind = "gate"`                                                                        |
| `node`                                                      | `object`                                                                                                                                                                                    | optional | `node.kind = "halt"`                                                                        |
| `node.id`                                                   | `string`                                                                                                                                                                                    | required | `node.kind = "halt"`                                                                        |
| `node.kind`                                                 | `"halt"`                                                                                                                                                                                    | required | `node.kind = "halt"`                                                                        |
| `node`                                                      | `object`                                                                                                                                                                                    | optional | `node.kind = "wait"`                                                                        |
| `node.id`                                                   | `string`                                                                                                                                                                                    | required | `node.kind = "wait"`                                                                        |
| `node.kind`                                                 | `"wait"`                                                                                                                                                                                    | required | `node.kind = "wait"`                                                                        |
| `node`                                                      | `object`                                                                                                                                                                                    | optional | `node.kind = "workflow"`                                                                    |
| `node.id`                                                   | `string`                                                                                                                                                                                    | required | `node.kind = "workflow"`                                                                    |
| `node.kind`                                                 | `"workflow"`                                                                                                                                                                                | required | `node.kind = "workflow"`                                                                    |
| `node.fanOut`                                               | `true`                                                                                                                                                                                      | optional | `node.kind = "workflow"`                                                                    |
| `node`                                                      | `object`                                                                                                                                                                                    | optional | `node.kind = "compose_fan_out"`                                                             |
| `node.id`                                                   | `string`                                                                                                                                                                                    | required | `node.kind = "compose_fan_out"`                                                             |
| `node.kind`                                                 | `"compose_fan_out"`                                                                                                                                                                         | required | `node.kind = "compose_fan_out"`                                                             |
| `node`                                                      | `object`                                                                                                                                                                                    | optional | `node.kind = "compose_fan_out_instance"`                                                    |
| `node.kind`                                                 | `"compose_fan_out_instance"`                                                                                                                                                                | required | `node.kind = "compose_fan_out_instance"`                                                    |
| `node.id`                                                   | `string`                                                                                                                                                                                    | required | `node.kind = "compose_fan_out_instance"`                                                    |
| `invocation`                                                | `object`                                                                                                                                                                                    | optional | —                                                                                           |
| `invocation.id`                                             | `string`                                                                                                                                                                                    | required | —                                                                                           |
| `invocation.startedAt`                                      | `string`                                                                                                                                                                                    | required | —                                                                                           |
| `invocation.loopPath`                                       | `array<object>`                                                                                                                                                                             | required | —                                                                                           |
| `invocation.loopPath[]`                                     | `object`                                                                                                                                                                                    | item     | —                                                                                           |
| `invocation.loopPath[].groupId`                             | `string`                                                                                                                                                                                    | required | —                                                                                           |
| `invocation.loopPath[].iteration`                           | `integer`                                                                                                                                                                                   | required | —                                                                                           |
| `invocation.checkoutStart`                                  | `object`                                                                                                                                                                                    | optional | `invocation.checkoutStart.kind = "git"`                                                     |
| `invocation.checkoutStart.kind`                             | `"git"`                                                                                                                                                                                     | required | `invocation.checkoutStart.kind = "git"`                                                     |
| `invocation.checkoutStart.sampledAt`                        | `string`                                                                                                                                                                                    | required | `invocation.checkoutStart.kind = "git"`                                                     |
| `invocation.checkoutStart.commit`                           | `string`                                                                                                                                                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.commit alternative 1`      |
| `invocation.checkoutStart.commit`                           | `null`                                                                                                                                                                                      | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.commit alternative 2`      |
| `invocation.checkoutStart.tree`                             | `string`                                                                                                                                                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.tree alternative 1`        |
| `invocation.checkoutStart.tree`                             | `null`                                                                                                                                                                                      | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.tree alternative 2`        |
| `invocation.checkoutStart.worktree`                         | `object`                                                                                                                                                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "clean"` |
| `invocation.checkoutStart.worktree.status`                  | `"clean"`                                                                                                                                                                                   | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "clean"` |
| `invocation.checkoutStart.worktree`                         | `object`                                                                                                                                                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.status`                  | `"dirty"`                                                                                                                                                                                   | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.content`                 | `"complete" \| "incomplete"`                                                                                                                                                                | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.staged`                  | `integer`                                                                                                                                                                                   | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.unstaged`                | `integer`                                                                                                                                                                                   | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.untracked`               | `integer`                                                                                                                                                                                   | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest`                | `object`                                                                                                                                                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.pointer`        | `object`                                                                                                                                                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.pointer.type`   | `"archon_artifact"`                                                                                                                                                                         | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.pointer.run_id` | `string`                                                                                                                                                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.pointer.path`   | `string`                                                                                                                                                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.sha256`         | `string`                                                                                                                                                                                    | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.worktree.manifest.entries`        | `integer`                                                                                                                                                                                   | required | `invocation.checkoutStart.kind = "git"; invocation.checkoutStart.worktree.status = "dirty"` |
| `invocation.checkoutStart.cutFromCommit`                    | `string`                                                                                                                                                                                    | optional | `invocation.checkoutStart.kind = "git"`                                                     |
| `invocation.checkoutStart`                                  | `object`                                                                                                                                                                                    | optional | `invocation.checkoutStart.kind = "not_git"`                                                 |
| `invocation.checkoutStart.kind`                             | `"not_git"`                                                                                                                                                                                 | required | `invocation.checkoutStart.kind = "not_git"`                                                 |
| `invocation.checkoutStart.sampledAt`                        | `string`                                                                                                                                                                                    | required | `invocation.checkoutStart.kind = "not_git"`                                                 |
| `invocation.checkoutStart`                                  | `object`                                                                                                                                                                                    | optional | `invocation.checkoutStart.kind = "unavailable"`                                             |
| `invocation.checkoutStart.kind`                             | `"unavailable"`                                                                                                                                                                             | required | `invocation.checkoutStart.kind = "unavailable"`                                             |
| `invocation.checkoutStart.sampledAt`                        | `string`                                                                                                                                                                                    | required | `invocation.checkoutStart.kind = "unavailable"`                                             |
| `invocation.checkoutStart.reason`                           | `"git_failed" \| "unsupported_backend" \| "probe_failed"`                                                                                                                                   | required | `invocation.checkoutStart.kind = "unavailable"`                                             |
| `attempt`                                                   | `object`                                                                                                                                                                                    | optional | —                                                                                           |
| `attempt.id`                                                | `string`                                                                                                                                                                                    | required | —                                                                                           |
| `attempt.startedAt`                                         | `string`                                                                                                                                                                                    | required | —                                                                                           |
| `attempt.checkoutStart`                                     | `object`                                                                                                                                                                                    | optional | `attempt.checkoutStart.kind = "git"`                                                        |
| `attempt.checkoutStart.kind`                                | `"git"`                                                                                                                                                                                     | required | `attempt.checkoutStart.kind = "git"`                                                        |
| `attempt.checkoutStart.sampledAt`                           | `string`                                                                                                                                                                                    | required | `attempt.checkoutStart.kind = "git"`                                                        |
| `attempt.checkoutStart.commit`                              | `string`                                                                                                                                                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.commit alternative 1`            |
| `attempt.checkoutStart.commit`                              | `null`                                                                                                                                                                                      | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.commit alternative 2`            |
| `attempt.checkoutStart.tree`                                | `string`                                                                                                                                                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.tree alternative 1`              |
| `attempt.checkoutStart.tree`                                | `null`                                                                                                                                                                                      | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.tree alternative 2`              |
| `attempt.checkoutStart.worktree`                            | `object`                                                                                                                                                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "clean"`       |
| `attempt.checkoutStart.worktree.status`                     | `"clean"`                                                                                                                                                                                   | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "clean"`       |
| `attempt.checkoutStart.worktree`                            | `object`                                                                                                                                                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.worktree.status`                     | `"dirty"`                                                                                                                                                                                   | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.worktree.content`                    | `"complete" \| "incomplete"`                                                                                                                                                                | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.worktree.staged`                     | `integer`                                                                                                                                                                                   | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.worktree.unstaged`                   | `integer`                                                                                                                                                                                   | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.worktree.untracked`                  | `integer`                                                                                                                                                                                   | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.worktree.manifest`                   | `object`                                                                                                                                                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.worktree.manifest.pointer`           | `object`                                                                                                                                                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.worktree.manifest.pointer.type`      | `"archon_artifact"`                                                                                                                                                                         | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.worktree.manifest.pointer.run_id`    | `string`                                                                                                                                                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.worktree.manifest.pointer.path`      | `string`                                                                                                                                                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.worktree.manifest.sha256`            | `string`                                                                                                                                                                                    | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.worktree.manifest.entries`           | `integer`                                                                                                                                                                                   | required | `attempt.checkoutStart.kind = "git"; attempt.checkoutStart.worktree.status = "dirty"`       |
| `attempt.checkoutStart.cutFromCommit`                       | `string`                                                                                                                                                                                    | optional | `attempt.checkoutStart.kind = "git"`                                                        |
| `attempt.checkoutStart`                                     | `object`                                                                                                                                                                                    | optional | `attempt.checkoutStart.kind = "not_git"`                                                    |
| `attempt.checkoutStart.kind`                                | `"not_git"`                                                                                                                                                                                 | required | `attempt.checkoutStart.kind = "not_git"`                                                    |
| `attempt.checkoutStart.sampledAt`                           | `string`                                                                                                                                                                                    | required | `attempt.checkoutStart.kind = "not_git"`                                                    |
| `attempt.checkoutStart`                                     | `object`                                                                                                                                                                                    | optional | `attempt.checkoutStart.kind = "unavailable"`                                                |
| `attempt.checkoutStart.kind`                                | `"unavailable"`                                                                                                                                                                             | required | `attempt.checkoutStart.kind = "unavailable"`                                                |
| `attempt.checkoutStart.sampledAt`                           | `string`                                                                                                                                                                                    | required | `attempt.checkoutStart.kind = "unavailable"`                                                |
| `attempt.checkoutStart.reason`                              | `"git_failed" \| "unsupported_backend" \| "probe_failed"`                                                                                                                                   | required | `attempt.checkoutStart.kind = "unavailable"`                                                |
| `binding`                                                   | `object`                                                                                                                                                                                    | optional | —                                                                                           |
| `binding.provider`                                          | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `binding.model`                                             | `object`                                                                                                                                                                                    | optional | —                                                                                           |
| `binding.model.requested`                                   | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `binding.model.resolved`                                    | `object`                                                                                                                                                                                    | required | `binding.model.resolved.source = "provider"`                                                |
| `binding.model.resolved.source`                             | `"provider"`                                                                                                                                                                                | required | `binding.model.resolved.source = "provider"`                                                |
| `binding.model.resolved.value`                              | `string`                                                                                                                                                                                    | required | `binding.model.resolved.source = "provider"`                                                |
| `binding.model.resolved`                                    | `object`                                                                                                                                                                                    | required | `binding.model.resolved.source = "unavailable"`                                             |
| `binding.model.resolved.source`                             | `"unavailable"`                                                                                                                                                                             | required | `binding.model.resolved.source = "unavailable"`                                             |
| `binding.model.resolved.reason`                             | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"`                                                                                             | required | `binding.model.resolved.source = "unavailable"`                                             |
| `binding.tier`                                              | `"small" \| "medium" \| "large"`                                                                                                                                                            | optional | —                                                                                           |
| `binding.effort`                                            | `"minimal" \| "low" \| "medium" \| "high" \| "xhigh" \| "max" \| "ultra" \| "persistent"`                                                                                                   | optional | —                                                                                           |
| `binding.sessionPreview`                                    | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `binding.sessionOrigin`                                     | `"fresh" \| "resumed" \| "resume-failed-cold"`                                                                                                                                              | optional | —                                                                                           |
| `timing`                                                    | `object`                                                                                                                                                                                    | optional | —                                                                                           |
| `timing.startedAt`                                          | `string`                                                                                                                                                                                    | required | —                                                                                           |
| `timing.durationMs`                                         | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `spend`                                                     | `object`                                                                                                                                                                                    | optional | —                                                                                           |
| `spend.tokens`                                              | `object`                                                                                                                                                                                    | required | `spend.tokens.source = "provider"`                                                          |
| `spend.tokens.source`                                       | `"provider"`                                                                                                                                                                                | required | `spend.tokens.source = "provider"`                                                          |
| `spend.tokens.value`                                        | `object`                                                                                                                                                                                    | required | `spend.tokens.source = "provider"`                                                          |
| `spend.tokens.value.input`                                  | `number`                                                                                                                                                                                    | required | `spend.tokens.source = "provider"`                                                          |
| `spend.tokens.value.output`                                 | `number`                                                                                                                                                                                    | required | `spend.tokens.source = "provider"`                                                          |
| `spend.tokens.value.cacheRead`                              | `number`                                                                                                                                                                                    | optional | `spend.tokens.source = "provider"`                                                          |
| `spend.tokens.value.cacheWrite`                             | `number`                                                                                                                                                                                    | optional | `spend.tokens.source = "provider"`                                                          |
| `spend.tokens.value.cachePartial`                           | `true`                                                                                                                                                                                      | optional | `spend.tokens.source = "provider"`                                                          |
| `spend.tokens.value.total`                                  | `number`                                                                                                                                                                                    | optional | `spend.tokens.source = "provider"`                                                          |
| `spend.tokens.value.cost`                                   | `number`                                                                                                                                                                                    | optional | `spend.tokens.source = "provider"`                                                          |
| `spend.tokens`                                              | `object`                                                                                                                                                                                    | required | `spend.tokens.source = "unavailable"`                                                       |
| `spend.tokens.source`                                       | `"unavailable"`                                                                                                                                                                             | required | `spend.tokens.source = "unavailable"`                                                       |
| `spend.tokens.reason`                                       | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"`                                                                                             | required | `spend.tokens.source = "unavailable"`                                                       |
| `spend.costUsd`                                             | `object`                                                                                                                                                                                    | required | `spend.costUsd.source = "provider"`                                                         |
| `spend.costUsd.source`                                      | `"provider"`                                                                                                                                                                                | required | `spend.costUsd.source = "provider"`                                                         |
| `spend.costUsd.value`                                       | `number`                                                                                                                                                                                    | required | `spend.costUsd.source = "provider"`                                                         |
| `spend.costUsd.partial`                                     | `true`                                                                                                                                                                                      | optional | `spend.costUsd.source = "provider"`                                                         |
| `spend.costUsd`                                             | `object`                                                                                                                                                                                    | required | `spend.costUsd.source = "unavailable"`                                                      |
| `spend.costUsd.source`                                      | `"unavailable"`                                                                                                                                                                             | required | `spend.costUsd.source = "unavailable"`                                                      |
| `spend.costUsd.reason`                                      | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"`                                                                                             | required | `spend.costUsd.source = "unavailable"`                                                      |
| `spend.stopReason`                                          | `object`                                                                                                                                                                                    | required | `spend.stopReason.source = "provider"`                                                      |
| `spend.stopReason.source`                                   | `"provider"`                                                                                                                                                                                | required | `spend.stopReason.source = "provider"`                                                      |
| `spend.stopReason.value`                                    | `string`                                                                                                                                                                                    | required | `spend.stopReason.source = "provider"`                                                      |
| `spend.stopReason`                                          | `object`                                                                                                                                                                                    | required | `spend.stopReason.source = "unavailable"`                                                   |
| `spend.stopReason.source`                                   | `"unavailable"`                                                                                                                                                                             | required | `spend.stopReason.source = "unavailable"`                                                   |
| `spend.stopReason.reason`                                   | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"`                                                                                             | required | `spend.stopReason.source = "unavailable"`                                                   |
| `spend.numTurns`                                            | `object`                                                                                                                                                                                    | required | `spend.numTurns.source = "provider"`                                                        |
| `spend.numTurns.source`                                     | `"provider"`                                                                                                                                                                                | required | `spend.numTurns.source = "provider"`                                                        |
| `spend.numTurns.value`                                      | `number`                                                                                                                                                                                    | required | `spend.numTurns.source = "provider"`                                                        |
| `spend.numTurns`                                            | `object`                                                                                                                                                                                    | required | `spend.numTurns.source = "unavailable"`                                                     |
| `spend.numTurns.source`                                     | `"unavailable"`                                                                                                                                                                             | required | `spend.numTurns.source = "unavailable"`                                                     |
| `spend.numTurns.reason`                                     | `"unsupported" \| "not_reported" \| "unknown" \| "not_applicable" \| "invalid" \| "incomplete"`                                                                                             | required | `spend.numTurns.source = "unavailable"`                                                     |
| `accounting`                                                | `"node" \| "aggregate" \| "instance" \| "amendment"`                                                                                                                                        | optional | —                                                                                           |
| `type`                                                      | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `command`                                                   | `string`                                                                                                                                                                                    | optional | `command alternative 1`                                                                     |
| `command`                                                   | `null`                                                                                                                                                                                      | optional | `command alternative 2`                                                                     |
| `runtime`                                                   | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `provider`                                                  | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `model`                                                     | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `tier`                                                      | `"small" \| "medium" \| "large"`                                                                                                                                                            | optional | —                                                                                           |
| `effort`                                                    | `"minimal" \| "low" \| "medium" \| "high" \| "xhigh" \| "max" \| "ultra" \| "persistent"`                                                                                                   | optional | —                                                                                           |
| `duration_ms`                                               | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `tokens`                                                    | `object`                                                                                                                                                                                    | optional | —                                                                                           |
| `tokens.input`                                              | `number`                                                                                                                                                                                    | required | —                                                                                           |
| `tokens.output`                                             | `number`                                                                                                                                                                                    | required | —                                                                                           |
| `tokens.cacheRead`                                          | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `tokens.cacheWrite`                                         | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `tokens.cachePartial`                                       | `true`                                                                                                                                                                                      | optional | —                                                                                           |
| `tokens.total`                                              | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `tokens.cost`                                               | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `cost_usd`                                                  | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `stop_reason`                                               | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `num_turns`                                                 | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `model_usage`                                               | `object`                                                                                                                                                                                    | optional | —                                                                                           |
| `model_usage.requested`                                     | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `model_usage.resolved`                                      | `string`                                                                                                                                                                                    | required | —                                                                                           |
| `error`                                                     | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `retryable`                                                 | `false`                                                                                                                                                                                     | optional | —                                                                                           |
| `failure_kind`                                              | `"fatal" \| "transient" \| "unknown" \| "rate_limited" \| "overloaded" \| "timeout" \| "exec_failed" \| "output_contract" \| "max_iterations" \| "child_failed" \| "cancelled" \| "config"` | optional | —                                                                                           |
| `provider_failure`                                          | `object`                                                                                                                                                                                    | optional | —                                                                                           |
| `provider_failure.class`                                    | `"auth" \| "quota_exhausted" \| "budget_exceeded" \| "misconfigured" \| "rate_limited" \| "overloaded" \| "transient" \| "unknown"`                                                         | required | —                                                                                           |
| `provider_failure.retryAfterMs`                             | `integer`                                                                                                                                                                                   | optional | —                                                                                           |
| `provider_failure.resetAt`                                  | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `provider_failure.evidence`                                 | `string`                                                                                                                                                                                    | required | —                                                                                           |
| `reason`                                                    | `"prior_success" \| "when_condition" \| "when_condition_parse_error" \| "trigger_rule" \| "timeout"`                                                                                        | optional | `reason alternative 1`                                                                      |
| `reason`                                                    | `"stale_dependency"`                                                                                                                                                                        | optional | `reason alternative 2`                                                                      |
| `cause`                                                     | `object`                                                                                                                                                                                    | optional | `cause.kind = "condition"`                                                                  |
| `cause.kind`                                                | `"condition"`                                                                                                                                                                               | required | `cause.kind = "condition"`                                                                  |
| `cause.expr`                                                | `string`                                                                                                                                                                                    | required | `cause.kind = "condition"`                                                                  |
| `cause`                                                     | `object`                                                                                                                                                                                    | optional | `cause.kind = "condition_parse_error"`                                                      |
| `cause.kind`                                                | `"condition_parse_error"`                                                                                                                                                                   | required | `cause.kind = "condition_parse_error"`                                                      |
| `cause.expr`                                                | `string`                                                                                                                                                                                    | required | `cause.kind = "condition_parse_error"`                                                      |
| `cause`                                                     | `object`                                                                                                                                                                                    | optional | `cause.kind = "timeout"`                                                                    |
| `cause.kind`                                                | `"timeout"`                                                                                                                                                                                 | required | `cause.kind = "timeout"`                                                                    |
| `cause`                                                     | `object`                                                                                                                                                                                    | optional | `cause.kind = "upstream_failed"`                                                            |
| `cause.kind`                                                | `"upstream_failed"`                                                                                                                                                                         | required | `cause.kind = "upstream_failed"`                                                            |
| `cause.origin`                                              | `string`                                                                                                                                                                                    | required | `cause.kind = "upstream_failed"`                                                            |
| `cause`                                                     | `object`                                                                                                                                                                                    | optional | `cause.kind = "upstream_skipped"`                                                           |
| `cause.kind`                                                | `"upstream_skipped"`                                                                                                                                                                        | required | `cause.kind = "upstream_skipped"`                                                           |
| `cause.origin`                                              | `string`                                                                                                                                                                                    | required | `cause.kind = "upstream_skipped"`                                                           |
| `expr`                                                      | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `suspend_point`                                             | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `node_output`                                               | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `node_output_truncated`                                     | `boolean`                                                                                                                                                                                   | optional | —                                                                                           |
| `node_output_original_bytes`                                | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `node_output_spill_path`                                    | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `structured_output`                                         | `unknown`                                                                                                                                                                                   | optional | —                                                                                           |
| `declared_fields`                                           | `array<string>`                                                                                                                                                                             | optional | —                                                                                           |
| `declared_fields[]`                                         | `string`                                                                                                                                                                                    | item     | —                                                                                           |
| `declared_output_paths`                                     | `array<array<string>>`                                                                                                                                                                      | optional | —                                                                                           |
| `declared_output_paths[]`                                   | `array<string>`                                                                                                                                                                             | item     | —                                                                                           |
| `declared_output_paths[][]`                                 | `string`                                                                                                                                                                                    | item     | —                                                                                           |
| `prior_output`                                              | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `prior_output_truncated`                                    | `boolean`                                                                                                                                                                                   | optional | —                                                                                           |
| `prior_output_original_bytes`                               | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `prior_output_spill_path`                                   | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `prior_structured_output`                                   | `unknown`                                                                                                                                                                                   | optional | —                                                                                           |
| `invalidating_deps`                                         | `array<string>`                                                                                                                                                                             | optional | —                                                                                           |
| `invalidating_deps[]`                                       | `string`                                                                                                                                                                                    | item     | —                                                                                           |
| `aggregate`                                                 | `boolean`                                                                                                                                                                                   | optional | —                                                                                           |
| `iteration`                                                 | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `output_type`                                               | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `status`                                                    | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `maxIterations`                                             | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `session_source_node_id`                                    | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `session_fork_requested`                                    | `boolean`                                                                                                                                                                                   | optional | —                                                                                           |
| `session_forked`                                            | `boolean`                                                                                                                                                                                   | optional | —                                                                                           |
| `background_tasks_incomplete`                               | `array<string>`                                                                                                                                                                             | optional | —                                                                                           |
| `background_tasks_incomplete[]`                             | `string`                                                                                                                                                                                    | item     | —                                                                                           |
| `child_run_id`                                              | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `blocked_on_child_run_id`                                   | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `fan_out`                                                   | `boolean`                                                                                                                                                                                   | optional | —                                                                                           |
| `identity`                                                  | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `ordinal`                                                   | `number`                                                                                                                                                                                    | optional | —                                                                                           |
| `approval_decision`                                         | `string`                                                                                                                                                                                    | optional | —                                                                                           |
| `mcp_unavailable`                                           | `object`                                                                                                                                                                                    | optional | —                                                                                           |
| `mcp_unavailable.path`                                      | `string`                                                                                                                                                                                    | required | —                                                                                           |
| `mcp_unavailable.reason`                                    | `"provider_unsupported" \| "config_missing"`                                                                                                                                                | required | —                                                                                           |
| `mcp_unavailable.servers`                                   | `array<string>`                                                                                                                                                                             | optional | —                                                                                           |
| `mcp_unavailable.servers[]`                                 | `string`                                                                                                                                                                                    | item     | —                                                                                           |
| `session_id`                                                | `string`                                                                                                                                                                                    | optional | —                                                                                           |

<!-- END GENERATED NODE EXECUTION TABLES -->