One event in the stream-json trajectory (one JSON object per line).
The stream is a self-sufficient, replayable source of the whole run: Init
carries the base prompt + tool specs + model, and each Event::Message carries a
full turn — so reconstruct_conversation rebuilds the entire history with nothing
else. (Claude Code’s stream omits system/tools, forcing a proxy capture to
recover them; Init closes that gap.) #[non_exhaustive] so events can be added
(e.g. per-turn markers) without a breaking change.
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
An approver resolution at the dispatch gate (ADR-0017) — grok’s journal
shape (PermissionResolved). Emitted for every consulted call,
allowed or denied, so interactive traces are complete; wait_ms (human
decision latency) is unrecoverable from any other artifact.