/** * Claude Code normalizer — ADR 0062 slice 3, reference dialect B. * * Driven with `claude -p --output-format stream-json` (paired with * `--input-format stream-json` to feed it), Claude Code streams one JSON object * per line. A turn arrives as an `assistant` frame whose `message.content` is an * array of typed parts — `text`, `thinking` (with an encrypted `signature`), * `tool_use` — and tool outputs come back as a `user` frame carrying * `tool_result` parts. Restore is the native `--resume ` (`-c` continues the * latest, `--from-pr` seeds from a PR — both resume-by-latest, not by-id, so the * id-restore shim is `--resume`). Streaming + resume-by-id → `durable-resume`. * * ## Resume-critical fidelity: `thinking.signature` * * Claude's `thinking` parts carry a `signature`: the provider's opaque, encrypted * reasoning-continuation token that must be replayed verbatim to continue * extended thinking across a resume (ADR 0062 §5). We map it to the canonical * `ReasoningEvent.providerContinuation`, so the native transcript remains the * authoritative restore path for Claude just as it does for Copilot. */ import { type HarnessNormalizer } from "./types.ts"; /** The Claude Code fallback normalizer. Streaming + resume-by-id → durable. */ export declare const claudeNormalizer: HarnessNormalizer;