//! The Claude Code driver: `claude -p` speaking stream-json on stdio, //! translated into the common event model. //! //! Wire format pinned against CLI 2.1.237 by probing (2026-08-24; scripts //! summarized here since they live outside the repo): //! //! - Outbound: `system/init` (carries `session_id`, the `--resume` token), //! `stream_event` (raw API deltas; `text_delta` is the streaming text), //! consolidated `assistant` messages (their `tool_use` blocks have the //! complete input), `user` messages with `tool_result` blocks, a `result` //! per turn (usage + cost), `control_request` for anything needing a //! human, `control_response` answering ours. //! - Permission prompts require the hidden `--permission-prompt-tool stdio` //! flag; they arrive as `control_request{subtype:can_use_tool}` and are //! answered with `{behavior:"allow",updatedInput}` or //! `{behavior:"deny",message}`. `AskUserQuestion` uses the same shape, //! with the chosen labels added to `updatedInput` as //! `answers:{: