@fleetagent/pi-ai 0.2.2 → 0.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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","sourcesContent":["import Anthropic from \"@anthropic-ai/sdk\";\nimport type {\n\tCacheControlEphemeral,\n\tContentBlockParam,\n\tImageBlockParam,\n\tMessageCreateParamsStreaming,\n\tMessageParam,\n\tRawContentBlockDeltaEvent,\n\tRawContentBlockStartEvent,\n\tRawContentBlockStopEvent,\n\tRawMessageDeltaEvent,\n\tRawMessageStartEvent,\n\tRawMessageStreamEvent,\n\tTextBlockParam,\n} from \"@anthropic-ai/sdk/resources/messages.js\";\nimport { getEnvApiKey } from \"../env-api-keys.ts\";\nimport { calculateCost } from \"../models.ts\";\nimport type {\n\tAnthropicMessagesCompat,\n\tApi,\n\tAssistantContent,\n\tAssistantMessage,\n\tCacheRetention,\n\tContext,\n\tImageContent,\n\tMessage,\n\tModel,\n\tProviderHeaders,\n\tSimpleStreamOptions,\n\tStopReason,\n\tStreamFunction,\n\tStreamOptions,\n\tTextContent,\n\tThinkingContent,\n\tThinkingLevel,\n\tTool,\n\tToolCall,\n\tToolResultMessage,\n\tUserMessage,\n} from \"../types.ts\";\nimport { AssistantMessageEventStream } from \"../utils/event-stream.ts\";\nimport { headersToRecord } from \"../utils/headers.ts\";\nimport { parseJsonWithRepair, parseStreamingJson } from \"../utils/json-parse.ts\";\nimport { retryProviderRequest } from \"../utils/provider-retry.ts\";\nimport { sanitizeSurrogates } from \"../utils/sanitize-unicode.ts\";\n\nimport { resolveCloudflareBaseUrl } from \"./cloudflare.ts\";\nimport { buildCopilotDynamicHeaders, hasCopilotVisionInput } from \"./github-copilot-headers.ts\";\nimport { adjustMaxTokensForThinking, buildBaseOptions } from \"./simple-options.ts\";\nimport { transformMessages } from \"./transform-messages.ts\";\n\n/**\n * Resolve cache retention preference.\n * Defaults to \"short\" and uses PI_CACHE_RETENTION for backward compatibility.\n */\nfunction resolveCacheRetention(cacheRetention?: CacheRetention): CacheRetention {\n\tif (cacheRetention) {\n\t\treturn cacheRetention;\n\t}\n\tif (typeof process !== \"undefined\" && process.env.PI_CACHE_RETENTION === \"long\") {\n\t\treturn \"long\";\n\t}\n\treturn \"short\";\n}\n\ninterface ResolvedAnthropicCacheControl {\n\tretention: CacheRetention;\n\tcacheControl?: CacheControlEphemeral;\n}\n\nfunction getCacheControl(\n\tmodel: Model<\"anthropic-messages\">,\n\tcacheRetention?: CacheRetention,\n): ResolvedAnthropicCacheControl {\n\tconst retention = resolveCacheRetention(cacheRetention);\n\tif (retention === \"none\") {\n\t\treturn { retention };\n\t}\n\tconst ttl = retention === \"long\" && getAnthropicCompat(model).supportsLongCacheRetention ? \"1h\" : undefined;\n\treturn {\n\t\tretention,\n\t\tcacheControl: { type: \"ephemeral\", ...(ttl && { ttl }) },\n\t};\n}\n\n// Stealth mode: Mimic Claude Code's tool naming exactly\nconst claudeCodeVersion = \"2.1.75\";\n\n// Claude Code 2.x tool names (canonical casing)\n// Source: https://cchistory.mariozechner.at/data/prompts-2.1.11.md\n// To update: https://github.com/badlogic/cchistory\nconst claudeCodeTools = [\n\t\"Read\",\n\t\"Write\",\n\t\"Edit\",\n\t\"Bash\",\n\t\"Grep\",\n\t\"Glob\",\n\t\"AskUserQuestion\",\n\t\"EnterPlanMode\",\n\t\"ExitPlanMode\",\n\t\"KillShell\",\n\t\"NotebookEdit\",\n\t\"Skill\",\n\t\"Task\",\n\t\"TaskOutput\",\n\t\"TodoWrite\",\n\t\"WebFetch\",\n\t\"WebSearch\",\n];\n\nconst ccToolLookup = new Map(claudeCodeTools.map((t) => [t.toLowerCase(), t]));\n\n// Convert tool name to CC canonical casing if it matches (case-insensitive)\nconst toClaudeCodeName = (name: string) => ccToolLookup.get(name.toLowerCase()) ?? name;\nconst fromClaudeCodeName = (name: string, tools?: Tool[]) => {\n\tif (tools && tools.length > 0) {\n\t\tconst lowerName = name.toLowerCase();\n\t\tconst matchedTool = tools.find((tool) => tool.name.toLowerCase() === lowerName);\n\t\tif (matchedTool) return matchedTool.name;\n\t}\n\treturn name;\n};\n\n/**\n * Convert content blocks to Anthropic API format\n */\ntype AnthropicInputContent = string | Array<TextBlockParam | ImageBlockParam>;\n\nfunction convertContentBlocks(content: (TextContent | ImageContent)[]): AnthropicInputContent {\n\t// If only text blocks, return as concatenated string for simplicity\n\tconst hasImages = content.some((c) => c.type === \"image\");\n\tif (!hasImages) {\n\t\treturn sanitizeSurrogates(content.map((c) => (c as TextContent).text).join(\"\\n\"));\n\t}\n\n\t// If we have images, convert to content block array\n\tconst blocks = content.map((block) => {\n\t\tif (block.type === \"text\") {\n\t\t\treturn {\n\t\t\t\ttype: \"text\" as const,\n\t\t\t\ttext: sanitizeSurrogates(block.text),\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\ttype: \"image\" as const,\n\t\t\tsource: {\n\t\t\t\ttype: \"base64\" as const,\n\t\t\t\tmedia_type: block.mimeType as \"image/jpeg\" | \"image/png\" | \"image/gif\" | \"image/webp\",\n\t\t\t\tdata: block.data,\n\t\t\t},\n\t\t};\n\t});\n\n\t// If only images (no text), add placeholder text block\n\tconst hasText = blocks.some((b) => b.type === \"text\");\n\tif (!hasText) {\n\t\tblocks.unshift({\n\t\t\ttype: \"text\" as const,\n\t\t\ttext: \"(see attached image)\",\n\t\t});\n\t}\n\n\treturn blocks;\n}\n\nexport type AnthropicEffort = \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\n\nexport type AnthropicThinkingDisplay = \"summarized\" | \"omitted\";\nexport type AnthropicToolChoice = \"auto\" | \"any\" | \"none\" | { type: \"tool\"; name: string };\n\nconst FINE_GRAINED_TOOL_STREAMING_BETA = \"fine-grained-tool-streaming-2025-05-14\";\nconst INTERLEAVED_THINKING_BETA = \"interleaved-thinking-2025-05-14\";\n\nfunction getAnthropicCompat(model: Model<\"anthropic-messages\">): Required<AnthropicMessagesCompat> {\n\t// Auto-detect session affinity and cache control support from provider\n\tconst isFireworks = model.provider === \"fireworks\";\n\tconst isCloudflareAiGatewayAnthropic =\n\t\tmodel.provider === \"cloudflare-ai-gateway\" && model.baseUrl.includes(\"anthropic\");\n\treturn {\n\t\tsupportsEagerToolInputStreaming: model.compat?.supportsEagerToolInputStreaming ?? !isFireworks,\n\t\tsupportsLongCacheRetention: model.compat?.supportsLongCacheRetention ?? !isFireworks,\n\t\tsendSessionAffinityHeaders:\n\t\t\tmodel.compat?.sendSessionAffinityHeaders ?? !!(isFireworks || isCloudflareAiGatewayAnthropic),\n\t\tsupportsCacheControlOnTools: model.compat?.supportsCacheControlOnTools ?? !isFireworks,\n\t\tsupportsTemperature: model.compat?.supportsTemperature ?? true,\n\t\tforceAdaptiveThinking: model.compat?.forceAdaptiveThinking ?? false,\n\t\tallowEmptySignature: model.compat?.allowEmptySignature ?? false,\n\t};\n}\n\nexport interface AnthropicOptions extends StreamOptions {\n\t/**\n\t * Enable extended thinking.\n\t * For Opus 4.6 and Sonnet 4.6: uses adaptive thinking (model decides when/how much to think).\n\t * For older models: uses budget-based thinking with thinkingBudgetTokens.\n\t */\n\tthinkingEnabled?: boolean;\n\t/**\n\t * Token budget for extended thinking (older models only).\n\t * Ignored for Opus 4.6 and Sonnet 4.6, which use adaptive thinking.\n\t */\n\tthinkingBudgetTokens?: number;\n\t/**\n\t * Effort level for adaptive thinking (Opus 4.6+ and Sonnet 4.6).\n\t * Controls how much thinking Claude allocates:\n\t * - \"max\": Always thinks with no constraints (Opus 4.6 only)\n\t * - \"xhigh\": Highest reasoning level (Opus 4.7)\n\t * - \"high\": Always thinks, deep reasoning (default)\n\t * - \"medium\": Moderate thinking, may skip for simple queries\n\t * - \"low\": Minimal thinking, skips for simple tasks\n\t * Ignored for older models.\n\t */\n\teffort?: AnthropicEffort;\n\t/**\n\t * Controls how thinking content is returned in API responses.\n\t * - \"summarized\": Thinking blocks contain summarized thinking text (default here).\n\t * - \"omitted\": Thinking blocks return an empty thinking field; the encrypted\n\t * signature still travels back for multi-turn continuity. Use for faster\n\t * time-to-first-text-token when your UI does not surface thinking.\n\t *\n\t * Note: Anthropic's API default for Claude Opus 4.7 and Claude Mythos Preview\n\t * is \"omitted\". We default to \"summarized\" here to keep behavior consistent\n\t * with older Claude 4 models. Set this explicitly to \"omitted\" to opt in.\n\t */\n\tthinkingDisplay?: AnthropicThinkingDisplay;\n\tinterleavedThinking?: boolean;\n\ttoolChoice?: AnthropicToolChoice;\n\t/**\n\t * Pre-built Anthropic client instance. When provided, skips internal client\n\t * construction entirely. Use this to inject alternative SDK clients such as\n\t * `AnthropicVertex` that shares the same messaging API.\n\t */\n\tclient?: Anthropic;\n}\n\nfunction mergeHeaders(...headerSources: (ProviderHeaders | undefined)[]): ProviderHeaders {\n\tconst merged: ProviderHeaders = {};\n\tfor (const headers of headerSources) {\n\t\tif (headers) {\n\t\t\tObject.assign(merged, headers);\n\t\t}\n\t}\n\treturn merged;\n}\n\ninterface ServerSentEvent {\n\tevent: string | null;\n\tdata: string;\n\traw: string[];\n}\n\ninterface SseDecoderState {\n\tevent: string | null;\n\tdata: string[];\n\traw: string[];\n}\n\nconst ANTHROPIC_MESSAGE_EVENTS: ReadonlySet<string> = new Set([\n\t\"message_start\",\n\t\"message_delta\",\n\t\"message_stop\",\n\t\"content_block_start\",\n\t\"content_block_delta\",\n\t\"content_block_stop\",\n]);\n\nfunction flushSseEvent(state: SseDecoderState): ServerSentEvent | null {\n\tif (!state.event && state.data.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst event: ServerSentEvent = {\n\t\tevent: state.event,\n\t\tdata: state.data.join(\"\\n\"),\n\t\traw: [...state.raw],\n\t};\n\tstate.event = null;\n\tstate.data = [];\n\tstate.raw = [];\n\treturn event;\n}\n\nfunction decodeSseLine(line: string, state: SseDecoderState): ServerSentEvent | null {\n\tif (line === \"\") {\n\t\treturn flushSseEvent(state);\n\t}\n\n\tstate.raw.push(line);\n\tif (line.startsWith(\":\")) {\n\t\treturn null;\n\t}\n\n\tconst delimiterIndex = line.indexOf(\":\");\n\tconst fieldName = delimiterIndex === -1 ? line : line.slice(0, delimiterIndex);\n\tlet value = delimiterIndex === -1 ? \"\" : line.slice(delimiterIndex + 1);\n\tif (value.startsWith(\" \")) {\n\t\tvalue = value.slice(1);\n\t}\n\n\tif (fieldName === \"event\") {\n\t\tstate.event = value;\n\t} else if (fieldName === \"data\") {\n\t\tstate.data.push(value);\n\t}\n\n\treturn null;\n}\n\nfunction nextLineBreakIndex(text: string): number {\n\tconst carriageReturnIndex = text.indexOf(\"\\r\");\n\tconst newlineIndex = text.indexOf(\"\\n\");\n\tif (carriageReturnIndex === -1) {\n\t\treturn newlineIndex;\n\t}\n\tif (newlineIndex === -1) {\n\t\treturn carriageReturnIndex;\n\t}\n\treturn Math.min(carriageReturnIndex, newlineIndex);\n}\n\ninterface ConsumedSseLine {\n\tline: string;\n\trest: string;\n}\n\nfunction consumeLine(text: string): ConsumedSseLine | null {\n\tconst lineBreakIndex = nextLineBreakIndex(text);\n\tif (lineBreakIndex === -1) {\n\t\treturn null;\n\t}\n\n\tlet nextIndex = lineBreakIndex + 1;\n\tif (text[lineBreakIndex] === \"\\r\" && text[nextIndex] === \"\\n\") {\n\t\tnextIndex += 1;\n\t}\n\n\treturn {\n\t\tline: text.slice(0, lineBreakIndex),\n\t\trest: text.slice(nextIndex),\n\t};\n}\n\nfunction* decodeCompleteSseLines(buffer: string, state: SseDecoderState): Generator<ServerSentEvent, string> {\n\tlet consumed = consumeLine(buffer);\n\twhile (consumed) {\n\t\tbuffer = consumed.rest;\n\t\tconst event = decodeSseLine(consumed.line, state);\n\t\tif (event) yield event;\n\t\tconsumed = consumeLine(buffer);\n\t}\n\treturn buffer;\n}\nasync function* iterateSseMessages(\n\tbody: ReadableStream<Uint8Array>,\n\tsignal?: AbortSignal,\n): AsyncGenerator<ServerSentEvent> {\n\tconst reader = body.getReader();\n\tconst decoder = new TextDecoder();\n\tconst state: SseDecoderState = { event: null, data: [], raw: [] };\n\tlet buffer = \"\";\n\n\ttry {\n\t\twhile (true) {\n\t\t\tif (signal?.aborted) {\n\t\t\t\tthrow new Error(\"Request was aborted\");\n\t\t\t}\n\n\t\t\tconst { value, done } = await reader.read();\n\t\t\tif (done) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tbuffer += decoder.decode(value, { stream: true });\n\t\t\tbuffer = yield* decodeCompleteSseLines(buffer, state);\n\t\t}\n\n\t\tbuffer += decoder.decode();\n\t\tbuffer = yield* decodeCompleteSseLines(buffer, state);\n\n\t\tif (buffer.length > 0) {\n\t\t\tconst event = decodeSseLine(buffer, state);\n\t\t\tif (event) {\n\t\t\t\tyield event;\n\t\t\t}\n\t\t}\n\n\t\tconst trailingEvent = flushSseEvent(state);\n\t\tif (trailingEvent) {\n\t\t\tyield trailingEvent;\n\t\t}\n\t} finally {\n\t\treader.releaseLock();\n\t}\n}\ninterface AnthropicMessageLifecycle {\n\tsawStart: boolean;\n\tsawEnd: boolean;\n}\n\nfunction* decodeAnthropicSseEvent(\n\tsse: ServerSentEvent,\n\tlifecycle: AnthropicMessageLifecycle,\n): Generator<RawMessageStreamEvent> {\n\ttry {\n\t\tconst event = parseJsonWithRepair<RawMessageStreamEvent>(sse.data);\n\t\tif (event.type === \"message_start\") lifecycle.sawStart = true;\n\t\telse if (event.type === \"message_stop\") lifecycle.sawEnd = true;\n\t\tyield event;\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tthrow new Error(\n\t\t\t`Could not parse Anthropic SSE event ${sse.event}: ${message}; data=${sse.data}; raw=${sse.raw.join(\"\\\\n\")}`,\n\t\t);\n\t}\n}\n\nasync function* iterateAnthropicEvents(\n\tresponse: Response,\n\tsignal?: AbortSignal,\n): AsyncGenerator<RawMessageStreamEvent> {\n\tif (!response.body) {\n\t\tthrow new Error(\"Attempted to iterate over an Anthropic response with no body\");\n\t}\n\n\tconst lifecycle: AnthropicMessageLifecycle = { sawStart: false, sawEnd: false };\n\n\tfor await (const sse of iterateSseMessages(response.body, signal)) {\n\t\tif (sse.event === \"error\") {\n\t\t\tthrow new Error(sse.data);\n\t\t}\n\n\t\tif (!ANTHROPIC_MESSAGE_EVENTS.has(sse.event ?? \"\")) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tyield* decodeAnthropicSseEvent(sse, lifecycle);\n\t}\n\n\tif (lifecycle.sawStart && !lifecycle.sawEnd) {\n\t\tthrow new Error(\"Anthropic stream ended before message_stop\");\n\t}\n}\n\ntype CompletedAnthropicAssistantMessage = AssistantMessage & { stopReason: \"stop\" | \"length\" | \"toolUse\" };\ntype AnthropicStreamToolCall = ToolCall & { partialJson?: string };\ntype AnthropicStreamBlock = (ThinkingContent | TextContent | AnthropicStreamToolCall) & { index?: number };\n\ninterface AnthropicStreamState {\n\toutput: AssistantMessage;\n\tblocks: AnthropicStreamBlock[];\n\tstream: AssistantMessageEventStream;\n\tmodel: Model<\"anthropic-messages\">;\n\tcontext: Context;\n\tisOAuth: boolean;\n}\n\nfunction createAnthropicStreamState(\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\tstream: AssistantMessageEventStream,\n): AnthropicStreamState {\n\tconst output: AssistantMessage = {\n\t\trole: \"assistant\",\n\t\tcontent: [],\n\t\tapi: model.api as Api,\n\t\tprovider: model.provider,\n\t\tmodel: model.id,\n\t\tusage: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t\ttotalTokens: 0,\n\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t},\n\t\tstopReason: \"stop\",\n\t\ttimestamp: Date.now(),\n\t};\n\treturn { output, blocks: output.content as AnthropicStreamBlock[], stream, model, context, isOAuth: false };\n}\n\nfunction handleAnthropicMessageStart(event: RawMessageStartEvent, state: AnthropicStreamState): void {\n\tstate.output.responseId = event.message.id;\n\tstate.output.usage.input = event.message.usage.input_tokens || 0;\n\tstate.output.usage.output = event.message.usage.output_tokens || 0;\n\tstate.output.usage.cacheRead = event.message.usage.cache_read_input_tokens || 0;\n\tstate.output.usage.cacheWrite = event.message.usage.cache_creation_input_tokens || 0;\n\tstate.output.usage.totalTokens =\n\t\tstate.output.usage.input +\n\t\tstate.output.usage.output +\n\t\tstate.output.usage.cacheRead +\n\t\tstate.output.usage.cacheWrite;\n\tcalculateCost(state.model, state.output.usage);\n}\n\nfunction handleAnthropicContentBlockStart(event: RawContentBlockStartEvent, state: AnthropicStreamState): void {\n\tconst contentIndex = state.output.content.length;\n\tswitch (event.content_block.type) {\n\t\tcase \"text\": {\n\t\t\tconst block: AnthropicStreamBlock = {\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: event.content_block.text ?? \"\",\n\t\t\t\tindex: event.index,\n\t\t\t};\n\t\t\tstate.output.content.push(block);\n\t\t\tstate.stream.push({ type: \"text_start\", contentIndex, partial: state.output });\n\t\t\treturn;\n\t\t}\n\t\tcase \"thinking\": {\n\t\t\tconst block: AnthropicStreamBlock = {\n\t\t\t\ttype: \"thinking\",\n\t\t\t\tthinking: event.content_block.thinking ?? \"\",\n\t\t\t\tthinkingSignature: event.content_block.signature ?? \"\",\n\t\t\t\tindex: event.index,\n\t\t\t};\n\t\t\tstate.output.content.push(block);\n\t\t\tstate.stream.push({ type: \"thinking_start\", contentIndex, partial: state.output });\n\t\t\treturn;\n\t\t}\n\t\tcase \"redacted_thinking\": {\n\t\t\tconst block: AnthropicStreamBlock = {\n\t\t\t\ttype: \"thinking\",\n\t\t\t\tthinking: \"[Reasoning redacted]\",\n\t\t\t\tthinkingSignature: event.content_block.data,\n\t\t\t\tredacted: true,\n\t\t\t\tindex: event.index,\n\t\t\t};\n\t\t\tstate.output.content.push(block);\n\t\t\tstate.stream.push({ type: \"thinking_start\", contentIndex, partial: state.output });\n\t\t\treturn;\n\t\t}\n\t\tcase \"tool_use\": {\n\t\t\tconst block: AnthropicStreamBlock = {\n\t\t\t\ttype: \"toolCall\",\n\t\t\t\tid: event.content_block.id,\n\t\t\t\tname: state.isOAuth\n\t\t\t\t\t? fromClaudeCodeName(event.content_block.name, state.context.tools)\n\t\t\t\t\t: event.content_block.name,\n\t\t\t\targuments: (event.content_block.input as Record<string, unknown>) ?? {},\n\t\t\t\tpartialJson: \"\",\n\t\t\t\tindex: event.index,\n\t\t\t};\n\t\t\tstate.output.content.push(block);\n\t\t\tstate.stream.push({ type: \"toolcall_start\", contentIndex, partial: state.output });\n\t\t}\n\t}\n}\n\nfunction handleAnthropicContentBlockDelta(event: RawContentBlockDeltaEvent, state: AnthropicStreamState): void {\n\tconst index = state.blocks.findIndex((block) => block.index === event.index);\n\tconst block = state.blocks[index];\n\tif (!block) return;\n\n\tswitch (event.delta.type) {\n\t\tcase \"text_delta\":\n\t\t\tif (block.type === \"text\") {\n\t\t\t\tblock.text += event.delta.text;\n\t\t\t\tstate.stream.push({\n\t\t\t\t\ttype: \"text_delta\",\n\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\tdelta: event.delta.text,\n\t\t\t\t\tpartial: state.output,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\tcase \"thinking_delta\":\n\t\t\tif (block.type === \"thinking\") {\n\t\t\t\tblock.thinking += event.delta.thinking;\n\t\t\t\tstate.stream.push({\n\t\t\t\t\ttype: \"thinking_delta\",\n\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\tdelta: event.delta.thinking,\n\t\t\t\t\tpartial: state.output,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\tcase \"input_json_delta\":\n\t\t\tif (block.type === \"toolCall\") {\n\t\t\t\tblock.partialJson = (block.partialJson ?? \"\") + event.delta.partial_json;\n\t\t\t\tblock.arguments = parseStreamingJson(block.partialJson);\n\t\t\t\tstate.stream.push({\n\t\t\t\t\ttype: \"toolcall_delta\",\n\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\tdelta: event.delta.partial_json,\n\t\t\t\t\tpartial: state.output,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\tcase \"signature_delta\":\n\t\t\tif (block.type === \"thinking\") {\n\t\t\t\tblock.thinkingSignature = (block.thinkingSignature || \"\") + event.delta.signature;\n\t\t\t}\n\t}\n}\n\nfunction handleAnthropicContentBlockStop(event: RawContentBlockStopEvent, state: AnthropicStreamState): void {\n\tconst index = state.blocks.findIndex((block) => block.index === event.index);\n\tconst block = state.blocks[index];\n\tif (!block) return;\n\tdelete block.index;\n\n\tswitch (block.type) {\n\t\tcase \"text\":\n\t\t\tstate.stream.push({\n\t\t\t\ttype: \"text_end\",\n\t\t\t\tcontentIndex: index,\n\t\t\t\tcontent: block.text,\n\t\t\t\tpartial: state.output,\n\t\t\t});\n\t\t\treturn;\n\t\tcase \"thinking\":\n\t\t\tstate.stream.push({\n\t\t\t\ttype: \"thinking_end\",\n\t\t\t\tcontentIndex: index,\n\t\t\t\tcontent: block.thinking,\n\t\t\t\tpartial: state.output,\n\t\t\t});\n\t\t\treturn;\n\t\tcase \"toolCall\":\n\t\t\tblock.arguments = parseStreamingJson(block.partialJson ?? \"\");\n\t\t\tdelete block.partialJson;\n\t\t\tstate.stream.push({\n\t\t\t\ttype: \"toolcall_end\",\n\t\t\t\tcontentIndex: index,\n\t\t\t\ttoolCall: block,\n\t\t\t\tpartial: state.output,\n\t\t\t});\n\t}\n}\n\nfunction handleAnthropicMessageDelta(event: RawMessageDeltaEvent, state: AnthropicStreamState): void {\n\tif (event.delta.stop_reason) state.output.stopReason = mapStopReason(event.delta.stop_reason);\n\tif (event.usage.input_tokens != null) state.output.usage.input = event.usage.input_tokens;\n\tif (event.usage.output_tokens != null) state.output.usage.output = event.usage.output_tokens;\n\tif (event.usage.cache_read_input_tokens != null) {\n\t\tstate.output.usage.cacheRead = event.usage.cache_read_input_tokens;\n\t}\n\tif (event.usage.cache_creation_input_tokens != null) {\n\t\tstate.output.usage.cacheWrite = event.usage.cache_creation_input_tokens;\n\t}\n\tstate.output.usage.totalTokens =\n\t\tstate.output.usage.input +\n\t\tstate.output.usage.output +\n\t\tstate.output.usage.cacheRead +\n\t\tstate.output.usage.cacheWrite;\n\tcalculateCost(state.model, state.output.usage);\n}\n\nfunction handleAnthropicStreamEvent(event: RawMessageStreamEvent, state: AnthropicStreamState): void {\n\tswitch (event.type) {\n\t\tcase \"message_start\":\n\t\t\thandleAnthropicMessageStart(event, state);\n\t\t\treturn;\n\t\tcase \"content_block_start\":\n\t\t\thandleAnthropicContentBlockStart(event, state);\n\t\t\treturn;\n\t\tcase \"content_block_delta\":\n\t\t\thandleAnthropicContentBlockDelta(event, state);\n\t\t\treturn;\n\t\tcase \"content_block_stop\":\n\t\t\thandleAnthropicContentBlockStop(event, state);\n\t\t\treturn;\n\t\tcase \"message_delta\":\n\t\t\thandleAnthropicMessageDelta(event, state);\n\t}\n}\n\nfunction resolveAnthropicStreamClient(\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\toptions: AnthropicOptions | undefined,\n): ConfiguredAnthropicClient {\n\tif (options?.client) return { client: options.client, isOAuthToken: false };\n\tconst apiKey = options?.apiKey ?? getEnvApiKey(model.provider) ?? \"\";\n\tconst copilotDynamicHeaders =\n\t\tmodel.provider === \"github-copilot\"\n\t\t\t? buildCopilotDynamicHeaders({\n\t\t\t\t\tmessages: context.messages,\n\t\t\t\t\thasImages: hasCopilotVisionInput(context.messages),\n\t\t\t\t})\n\t\t\t: undefined;\n\tconst cacheRetention = options?.cacheRetention ?? resolveCacheRetention();\n\tconst cacheSessionId = cacheRetention === \"none\" ? undefined : options?.sessionId;\n\treturn createClient(\n\t\tmodel,\n\t\tapiKey,\n\t\toptions?.interleavedThinking ?? true,\n\t\tshouldUseFineGrainedToolStreamingBeta(model, context),\n\t\toptions?.headers,\n\t\tcopilotDynamicHeaders,\n\t\tcacheSessionId,\n\t);\n}\n\nfunction validateAnthropicStreamCompletion(\n\toutput: AssistantMessage,\n\tsignal?: AbortSignal,\n): asserts output is CompletedAnthropicAssistantMessage {\n\tif (signal?.aborted) throw new Error(\"Request was aborted\");\n\tif (output.stopReason === \"pending\") throw new Error(\"Anthropic stream ended without a stop reason\");\n\tif (output.stopReason === \"aborted\" || output.stopReason === \"error\") throw new Error(\"An unknown error occurred\");\n}\n\nasync function executeAnthropicStream(\n\tstate: AnthropicStreamState,\n\toptions: AnthropicOptions | undefined,\n): Promise<void> {\n\tconst configuredClient = resolveAnthropicStreamClient(state.model, state.context, options);\n\tstate.isOAuth = configuredClient.isOAuthToken;\n\tlet params = buildParams(state.model, state.context, state.isOAuth, options);\n\tconst nextParams = await options?.onPayload?.(params, state.model);\n\tif (nextParams !== undefined) params = nextParams as MessageCreateParamsStreaming;\n\tconst requestOptions = {\n\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t...(options?.timeoutMs !== undefined ? { timeout: options.timeoutMs } : {}),\n\t\tmaxRetries: 0,\n\t};\n\tconst response = await retryProviderRequest(\n\t\t() => configuredClient.client.messages.create({ ...params, stream: true }, requestOptions).asResponse(),\n\t\t{\n\t\t\tmaxRetries: options?.maxRetries,\n\t\t\tmaxRetryDelayMs: options?.maxRetryDelayMs,\n\t\t\tsignal: options?.signal,\n\t\t},\n\t);\n\tawait options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, state.model);\n\tstate.stream.push({ type: \"start\", partial: state.output });\n\tfor await (const event of iterateAnthropicEvents(response, options?.signal)) {\n\t\thandleAnthropicStreamEvent(event, state);\n\t}\n\tvalidateAnthropicStreamCompletion(state.output, options?.signal);\n\tstate.stream.push({ type: \"done\", reason: state.output.stopReason, message: state.output });\n\tstate.stream.end();\n}\n\nfunction handleAnthropicStreamFailure(\n\terror: unknown,\n\toptions: AnthropicOptions | undefined,\n\tstate: AnthropicStreamState,\n): void {\n\tfor (const block of state.blocks) {\n\t\tdelete block.index;\n\t\tif (block.type === \"toolCall\") delete block.partialJson;\n\t}\n\tstate.output.stopReason = options?.signal?.aborted ? \"aborted\" : \"error\";\n\tstate.output.errorMessage = error instanceof Error ? error.message : JSON.stringify(error);\n\tstate.stream.push({ type: \"error\", reason: state.output.stopReason, error: state.output });\n\tstate.stream.end();\n}\n\nexport const streamAnthropic: StreamFunction<\"anthropic-messages\", AnthropicOptions> = (\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\toptions?: AnthropicOptions,\n): AssistantMessageEventStream => {\n\tconst stream = new AssistantMessageEventStream();\n\tconst state = createAnthropicStreamState(model, context, stream);\n\t(async () => {\n\t\ttry {\n\t\t\tawait executeAnthropicStream(state, options);\n\t\t} catch (error) {\n\t\t\thandleAnthropicStreamFailure(error, options, state);\n\t\t}\n\t})();\n\treturn stream;\n};\n\n/**\n * Check if a model supports adaptive thinking (Opus 4.6+, Sonnet 4.6)\n */\nfunction supportsAdaptiveThinking(modelId: string): boolean {\n\t// Adaptive-thinking model IDs (with or without date suffix)\n\treturn (\n\t\tmodelId.includes(\"opus-4-6\") ||\n\t\tmodelId.includes(\"opus-4.6\") ||\n\t\tmodelId.includes(\"opus-4-7\") ||\n\t\tmodelId.includes(\"opus-4.7\") ||\n\t\tmodelId.includes(\"sonnet-4-6\") ||\n\t\tmodelId.includes(\"sonnet-4.6\")\n\t);\n}\n\n/**\n * Map ThinkingLevel to Anthropic effort levels for adaptive thinking.\n * Note: effort \"max\" is only valid on Opus 4.6, while Opus 4.7 supports \"xhigh\".\n */\nfunction mapThinkingLevelToEffort(\n\tmodel: Model<\"anthropic-messages\">,\n\tlevel: ThinkingLevel | undefined,\n): AnthropicEffort {\n\tconst mapped = level ? model.thinkingLevelMap?.[level] : undefined;\n\tif (typeof mapped === \"string\") return mapped as AnthropicEffort;\n\n\tswitch (level) {\n\t\tcase \"minimal\":\n\t\tcase \"low\":\n\t\t\treturn \"low\";\n\t\tcase \"medium\":\n\t\t\treturn \"medium\";\n\t\tcase \"high\":\n\t\t\treturn \"high\";\n\t\tdefault:\n\t\t\treturn \"high\";\n\t}\n}\n\nexport const streamSimpleAnthropic: StreamFunction<\"anthropic-messages\", SimpleStreamOptions> = (\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n): AssistantMessageEventStream => {\n\tconst apiKey = options?.apiKey || getEnvApiKey(model.provider);\n\tif (!apiKey) {\n\t\tthrow new Error(`No API key for provider: ${model.provider}`);\n\t}\n\n\tconst base = buildBaseOptions(model, context, options, apiKey);\n\tif (!options?.reasoning) {\n\t\treturn streamAnthropic(model, context, { ...base, thinkingEnabled: false } satisfies AnthropicOptions);\n\t}\n\n\t// For Opus 4.6 and Sonnet 4.6: use adaptive thinking with effort level\n\t// For older models: use budget-based thinking\n\tif (supportsAdaptiveThinking(model.id)) {\n\t\tconst effort = mapThinkingLevelToEffort(model, options.reasoning);\n\t\treturn streamAnthropic(model, context, {\n\t\t\t...base,\n\t\t\tthinkingEnabled: true,\n\t\t\teffort,\n\t\t} satisfies AnthropicOptions);\n\t}\n\n\t// Undefined means the caller did not request an output cap; let the helper use the model cap.\n\t// Do not coerce to 0 here, or the thinking budget would become the entire max_tokens value.\n\tconst adjusted = adjustMaxTokensForThinking(\n\t\tbase.maxTokens,\n\t\tmodel.maxTokens,\n\t\toptions.reasoning,\n\t\toptions.thinkingBudgets,\n\t);\n\n\treturn streamAnthropic(model, context, {\n\t\t...base,\n\t\tmaxTokens: adjusted.maxTokens,\n\t\tthinkingEnabled: true,\n\t\tthinkingBudgetTokens: adjusted.thinkingBudget,\n\t} satisfies AnthropicOptions);\n};\n\nfunction isOAuthToken(apiKey: string): boolean {\n\treturn apiKey.includes(\"sk-ant-oat\");\n}\n\ninterface ConfiguredAnthropicClient {\n\tclient: Anthropic;\n\tisOAuthToken: boolean;\n}\n\nfunction createClient(\n\tmodel: Model<\"anthropic-messages\">,\n\tapiKey: string,\n\tinterleavedThinking: boolean,\n\tuseFineGrainedToolStreamingBeta: boolean,\n\toptionsHeaders?: ProviderHeaders,\n\tdynamicHeaders?: Record<string, string>,\n\tsessionId?: string,\n): ConfiguredAnthropicClient {\n\t// Adaptive thinking models (Opus 4.6, Sonnet 4.6) have interleaved thinking built-in.\n\t// The beta header is deprecated on Opus 4.6 and redundant on Sonnet 4.6, so skip it.\n\tconst needsInterleavedBeta = interleavedThinking && !supportsAdaptiveThinking(model.id);\n\tconst betaFeatures: string[] = [];\n\tif (useFineGrainedToolStreamingBeta) {\n\t\tbetaFeatures.push(FINE_GRAINED_TOOL_STREAMING_BETA);\n\t}\n\tif (needsInterleavedBeta) {\n\t\tbetaFeatures.push(INTERLEAVED_THINKING_BETA);\n\t}\n\n\tif (model.provider === \"cloudflare-ai-gateway\") {\n\t\tconst client = new Anthropic({\n\t\t\tapiKey: null,\n\t\t\tauthToken: null,\n\t\t\tbaseURL: resolveCloudflareBaseUrl(model),\n\t\t\tdangerouslyAllowBrowser: true,\n\t\t\tdefaultHeaders: mergeHeaders(\n\t\t\t\t{\n\t\t\t\t\taccept: \"application/json\",\n\t\t\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t\t\t\"cf-aig-authorization\": `Bearer ${apiKey}`,\n\t\t\t\t\t\"x-api-key\": null,\n\t\t\t\t\tAuthorization: null,\n\t\t\t\t\t...(betaFeatures.length > 0 ? { \"anthropic-beta\": betaFeatures.join(\",\") } : {}),\n\t\t\t\t},\n\t\t\t\tmodel.headers,\n\t\t\t\toptionsHeaders,\n\t\t\t),\n\t\t});\n\n\t\treturn { client, isOAuthToken: false };\n\t}\n\n\t// Copilot: Bearer auth, selective betas.\n\tif (model.provider === \"github-copilot\") {\n\t\tconst client = new Anthropic({\n\t\t\tapiKey: null,\n\t\t\tauthToken: apiKey,\n\t\t\tbaseURL: model.baseUrl,\n\t\t\tdangerouslyAllowBrowser: true,\n\t\t\tdefaultHeaders: mergeHeaders(\n\t\t\t\t{\n\t\t\t\t\taccept: \"application/json\",\n\t\t\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t\t\t...(betaFeatures.length > 0 ? { \"anthropic-beta\": betaFeatures.join(\",\") } : {}),\n\t\t\t\t},\n\t\t\t\tmodel.headers,\n\t\t\t\tdynamicHeaders,\n\t\t\t\toptionsHeaders,\n\t\t\t),\n\t\t});\n\n\t\treturn { client, isOAuthToken: false };\n\t}\n\n\t// OAuth: Bearer auth, Claude Code identity headers\n\tif (isOAuthToken(apiKey)) {\n\t\tconst client = new Anthropic({\n\t\t\tapiKey: null,\n\t\t\tauthToken: apiKey,\n\t\t\tbaseURL: model.baseUrl,\n\t\t\tdangerouslyAllowBrowser: true,\n\t\t\tdefaultHeaders: mergeHeaders(\n\t\t\t\t{\n\t\t\t\t\taccept: \"application/json\",\n\t\t\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t\t\t\"anthropic-beta\": [\"claude-code-20250219\", \"oauth-2025-04-20\", ...betaFeatures].join(\",\"),\n\t\t\t\t\t\"user-agent\": `claude-cli/${claudeCodeVersion}`,\n\t\t\t\t\t\"x-app\": \"cli\",\n\t\t\t\t},\n\t\t\t\tmodel.headers,\n\t\t\t\toptionsHeaders,\n\t\t\t),\n\t\t});\n\n\t\treturn { client, isOAuthToken: true };\n\t}\n\n\t// API key auth\n\tconst sessionAffinityHeaders: Record<string, string | null> =\n\t\tsessionId && getAnthropicCompat(model).sendSessionAffinityHeaders ? { \"x-session-affinity\": sessionId } : {};\n\tconst client = new Anthropic({\n\t\tapiKey,\n\t\tauthToken: null,\n\t\tbaseURL: model.baseUrl,\n\t\tdangerouslyAllowBrowser: true,\n\t\tdefaultHeaders: mergeHeaders(\n\t\t\t{\n\t\t\t\taccept: \"application/json\",\n\t\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t\t...(betaFeatures.length > 0 ? { \"anthropic-beta\": betaFeatures.join(\",\") } : {}),\n\t\t\t},\n\t\t\tsessionAffinityHeaders,\n\t\t\tmodel.headers,\n\t\t\toptionsHeaders,\n\t\t),\n\t});\n\n\treturn { client, isOAuthToken: false };\n}\n\nfunction applyAnthropicSystemPrompt(\n\tparams: MessageCreateParamsStreaming,\n\tcontext: Context,\n\tisOAuthToken: boolean,\n\tcacheControl: CacheControlEphemeral | undefined,\n): void {\n\tif (isOAuthToken) {\n\t\tparams.system = [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: \"You are Claude Code, Anthropic's official CLI for Claude.\",\n\t\t\t\t...(cacheControl ? { cache_control: cacheControl } : {}),\n\t\t\t},\n\t\t];\n\t\tif (context.systemPrompt) {\n\t\t\tparams.system.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: sanitizeSurrogates(context.systemPrompt),\n\t\t\t\t...(cacheControl ? { cache_control: cacheControl } : {}),\n\t\t\t});\n\t\t}\n\t\treturn;\n\t}\n\tif (!context.systemPrompt) return;\n\tparams.system = [\n\t\t{\n\t\t\ttype: \"text\",\n\t\t\ttext: sanitizeSurrogates(context.systemPrompt),\n\t\t\t...(cacheControl ? { cache_control: cacheControl } : {}),\n\t\t},\n\t];\n}\n\nfunction applyAnthropicTemperature(\n\tparams: MessageCreateParamsStreaming,\n\toptions: AnthropicOptions | undefined,\n\tcompat: Required<AnthropicMessagesCompat>,\n): void {\n\tif (options?.temperature !== undefined && !options.thinkingEnabled && compat.supportsTemperature) {\n\t\tparams.temperature = options.temperature;\n\t}\n}\n\nfunction applyAnthropicTools(\n\tparams: MessageCreateParamsStreaming,\n\tcontext: Context,\n\tisOAuthToken: boolean,\n\tcacheControl: CacheControlEphemeral | undefined,\n\tcompat: Required<AnthropicMessagesCompat>,\n): void {\n\tif (!context.tools || context.tools.length === 0) return;\n\tparams.tools = convertTools(\n\t\tcontext.tools,\n\t\tisOAuthToken,\n\t\tcompat.supportsEagerToolInputStreaming,\n\t\tcompat.supportsCacheControlOnTools ? cacheControl : undefined,\n\t);\n}\n\nfunction applyAdaptiveThinkingEffort(params: MessageCreateParamsStreaming, effort: AnthropicEffort | undefined): void {\n\tif (!effort) return;\n\t// The Anthropic SDK types can lag newly supported effort values such as \"xhigh\".\n\tparams.output_config =\n\t\teffort === \"xhigh\"\n\t\t\t? ({ effort } as unknown as NonNullable<MessageCreateParamsStreaming[\"output_config\"]>)\n\t\t\t: { effort };\n}\n\nfunction applyEnabledAnthropicThinking(\n\tparams: MessageCreateParamsStreaming,\n\tmodel: Model<\"anthropic-messages\">,\n\toptions: AnthropicOptions,\n): void {\n\tconst display: AnthropicThinkingDisplay = options.thinkingDisplay ?? \"summarized\";\n\tif (supportsAdaptiveThinking(model.id)) {\n\t\tparams.thinking = { type: \"adaptive\", display };\n\t\tapplyAdaptiveThinkingEffort(params, options.effort);\n\t\treturn;\n\t}\n\tparams.thinking = {\n\t\ttype: \"enabled\",\n\t\tbudget_tokens: options.thinkingBudgetTokens || 1024,\n\t\tdisplay,\n\t};\n}\n\nfunction applyAnthropicThinking(\n\tparams: MessageCreateParamsStreaming,\n\tmodel: Model<\"anthropic-messages\">,\n\toptions: AnthropicOptions | undefined,\n): void {\n\tif (!model.reasoning) return;\n\tif (options?.thinkingEnabled) {\n\t\tapplyEnabledAnthropicThinking(params, model, options);\n\t\treturn;\n\t}\n\tif (options?.thinkingEnabled === false) params.thinking = { type: \"disabled\" };\n}\n\nfunction applyAnthropicMetadata(params: MessageCreateParamsStreaming, options: AnthropicOptions | undefined): void {\n\tconst userId = options?.metadata?.user_id;\n\tif (typeof userId === \"string\") params.metadata = { user_id: userId };\n}\n\nfunction applyAnthropicToolChoice(params: MessageCreateParamsStreaming, options: AnthropicOptions | undefined): void {\n\tif (!options?.toolChoice) return;\n\tparams.tool_choice = typeof options.toolChoice === \"string\" ? { type: options.toolChoice } : options.toolChoice;\n}\n\nfunction buildParams(\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\tisOAuthToken: boolean,\n\toptions?: AnthropicOptions,\n): MessageCreateParamsStreaming {\n\tconst { cacheControl } = getCacheControl(model, options?.cacheRetention);\n\tconst compat = getAnthropicCompat(model);\n\tconst params: MessageCreateParamsStreaming = {\n\t\tmodel: model.id,\n\t\tmessages: convertMessages(context.messages, model, isOAuthToken, cacheControl, compat.allowEmptySignature),\n\t\tmax_tokens: options?.maxTokens ?? model.maxTokens,\n\t\tstream: true,\n\t};\n\tapplyAnthropicSystemPrompt(params, context, isOAuthToken, cacheControl);\n\tapplyAnthropicTemperature(params, options, compat);\n\tapplyAnthropicTools(params, context, isOAuthToken, cacheControl, compat);\n\tapplyAnthropicThinking(params, model, options);\n\tapplyAnthropicMetadata(params, options);\n\tapplyAnthropicToolChoice(params, options);\n\treturn params;\n}\n\n// Normalize tool call IDs to match Anthropic's required pattern and length\nfunction normalizeToolCallId(id: string): string {\n\treturn id.replace(/[^a-zA-Z0-9_-]/g, \"_\").slice(0, 64);\n}\n\nfunction convertAnthropicUserMessage(message: UserMessage): MessageParam | undefined {\n\tif (typeof message.content === \"string\") {\n\t\treturn message.content.trim().length > 0\n\t\t\t? { role: \"user\", content: sanitizeSurrogates(message.content) }\n\t\t\t: undefined;\n\t}\n\tconst content: ContentBlockParam[] = [];\n\tfor (const block of message.content) {\n\t\tif (block.type === \"text\") {\n\t\t\tif (block.text.trim().length > 0) content.push({ type: \"text\", text: sanitizeSurrogates(block.text) });\n\t\t} else {\n\t\t\tcontent.push({\n\t\t\t\ttype: \"image\",\n\t\t\t\tsource: {\n\t\t\t\t\ttype: \"base64\",\n\t\t\t\t\tmedia_type: block.mimeType as \"image/jpeg\" | \"image/png\" | \"image/gif\" | \"image/webp\",\n\t\t\t\t\tdata: block.data,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\treturn content.length > 0 ? { role: \"user\", content } : undefined;\n}\n\nfunction convertAnthropicThinkingBlock(\n\tblock: ThinkingContent,\n\tallowEmptySignature: boolean,\n): ContentBlockParam | undefined {\n\tif (block.redacted) return { type: \"redacted_thinking\", data: block.thinkingSignature! };\n\tif (block.thinking.trim().length === 0) return undefined;\n\tif (!block.thinkingSignature || block.thinkingSignature.trim().length === 0) {\n\t\treturn allowEmptySignature\n\t\t\t? { type: \"thinking\", thinking: sanitizeSurrogates(block.thinking), signature: \"\" }\n\t\t\t: { type: \"text\", text: sanitizeSurrogates(block.thinking) };\n\t}\n\treturn {\n\t\ttype: \"thinking\",\n\t\tthinking: sanitizeSurrogates(block.thinking),\n\t\tsignature: block.thinkingSignature,\n\t};\n}\n\nfunction convertAnthropicAssistantBlock(\n\tblock: AssistantContent,\n\tisOAuthToken: boolean,\n\tallowEmptySignature: boolean,\n): ContentBlockParam | undefined {\n\tswitch (block.type) {\n\t\tcase \"text\":\n\t\t\treturn block.text.trim().length > 0 ? { type: \"text\", text: sanitizeSurrogates(block.text) } : undefined;\n\t\tcase \"thinking\":\n\t\t\treturn convertAnthropicThinkingBlock(block, allowEmptySignature);\n\t\tcase \"toolCall\":\n\t\t\treturn {\n\t\t\t\ttype: \"tool_use\",\n\t\t\t\tid: block.id,\n\t\t\t\tname: isOAuthToken ? toClaudeCodeName(block.name) : block.name,\n\t\t\t\tinput: block.arguments ?? {},\n\t\t\t};\n\t}\n}\n\nfunction convertAnthropicAssistantMessage(\n\tmessage: AssistantMessage,\n\tisOAuthToken: boolean,\n\tallowEmptySignature: boolean,\n): MessageParam | undefined {\n\tconst content: ContentBlockParam[] = [];\n\tfor (const block of message.content) {\n\t\tconst converted = convertAnthropicAssistantBlock(block, isOAuthToken, allowEmptySignature);\n\t\tif (converted) content.push(converted);\n\t}\n\treturn content.length > 0 ? { role: \"assistant\", content } : undefined;\n}\n\nfunction convertAnthropicToolResult(message: ToolResultMessage): ContentBlockParam {\n\treturn {\n\t\ttype: \"tool_result\",\n\t\ttool_use_id: message.toolCallId,\n\t\tcontent: convertContentBlocks(message.content),\n\t\tis_error: message.isError,\n\t};\n}\n\ninterface AnthropicToolResultBatch {\n\tcontent: ContentBlockParam[];\n\tlastIndex: number;\n}\n\nfunction collectAnthropicToolResultBatch(messages: Message[], startIndex: number): AnthropicToolResultBatch {\n\tconst content: ContentBlockParam[] = [];\n\tlet lastIndex = startIndex;\n\tfor (let index = startIndex; index < messages.length; index++) {\n\t\tconst message = messages[index];\n\t\tif (message.role !== \"toolResult\") break;\n\t\tcontent.push(convertAnthropicToolResult(message));\n\t\tlastIndex = index;\n\t}\n\treturn { content, lastIndex };\n}\n\nfunction applyAnthropicConversationCacheControl(\n\tparams: MessageParam[],\n\tcacheControl: CacheControlEphemeral | undefined,\n): void {\n\tif (!cacheControl || params.length === 0) return;\n\tconst lastMessage = params[params.length - 1];\n\tif (lastMessage.role !== \"user\") return;\n\tif (Array.isArray(lastMessage.content)) {\n\t\tconst lastBlock = lastMessage.content[lastMessage.content.length - 1];\n\t\tif (lastBlock && (lastBlock.type === \"text\" || lastBlock.type === \"image\" || lastBlock.type === \"tool_result\")) {\n\t\t\t(lastBlock as any).cache_control = cacheControl;\n\t\t}\n\t\treturn;\n\t}\n\tif (typeof lastMessage.content === \"string\") {\n\t\tlastMessage.content = [{ type: \"text\", text: lastMessage.content, cache_control: cacheControl }] as any;\n\t}\n}\n\nfunction convertMessages(\n\tmessages: Message[],\n\tmodel: Model<\"anthropic-messages\">,\n\tisOAuthToken: boolean,\n\tcacheControl?: CacheControlEphemeral,\n\tallowEmptySignature = false,\n): MessageParam[] {\n\tconst params: MessageParam[] = [];\n\tconst transformedMessages = transformMessages(messages, model, normalizeToolCallId);\n\tfor (let index = 0; index < transformedMessages.length; index++) {\n\t\tconst message = transformedMessages[index];\n\t\tswitch (message.role) {\n\t\t\tcase \"user\": {\n\t\t\t\tconst converted = convertAnthropicUserMessage(message);\n\t\t\t\tif (converted) params.push(converted);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"assistant\": {\n\t\t\t\tconst converted = convertAnthropicAssistantMessage(message, isOAuthToken, allowEmptySignature);\n\t\t\t\tif (converted) params.push(converted);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"toolResult\": {\n\t\t\t\tconst batch = collectAnthropicToolResultBatch(transformedMessages, index);\n\t\t\t\tparams.push({ role: \"user\", content: batch.content });\n\t\t\t\tindex = batch.lastIndex;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tapplyAnthropicConversationCacheControl(params, cacheControl);\n\treturn params;\n}\n\nfunction shouldUseFineGrainedToolStreamingBeta(model: Model<\"anthropic-messages\">, context: Context): boolean {\n\treturn !!context.tools?.length && !getAnthropicCompat(model).supportsEagerToolInputStreaming;\n}\n\nfunction convertTools(\n\ttools: Tool[],\n\tisOAuthToken: boolean,\n\tsupportsEagerToolInputStreaming: boolean,\n\tcacheControl?: CacheControlEphemeral,\n): Anthropic.Messages.Tool[] {\n\tif (!tools) return [];\n\n\treturn tools.map((tool, index) => {\n\t\tconst schema = tool.parameters as { properties?: unknown; required?: string[] };\n\n\t\treturn {\n\t\t\tname: isOAuthToken ? toClaudeCodeName(tool.name) : tool.name,\n\t\t\tdescription: tool.description,\n\t\t\t...(supportsEagerToolInputStreaming ? { eager_input_streaming: true } : {}),\n\t\t\tinput_schema: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tproperties: schema.properties ?? {},\n\t\t\t\trequired: schema.required ?? [],\n\t\t\t},\n\t\t\t...(cacheControl && index === tools.length - 1 ? { cache_control: cacheControl } : {}),\n\t\t};\n\t});\n}\n\nfunction mapStopReason(reason: Anthropic.Messages.StopReason | string): StopReason {\n\tswitch (reason) {\n\t\tcase \"end_turn\":\n\t\t\treturn \"stop\";\n\t\tcase \"max_tokens\":\n\t\t\treturn \"length\";\n\t\tcase \"tool_use\":\n\t\t\treturn \"toolUse\";\n\t\tcase \"refusal\":\n\t\t\treturn \"error\";\n\t\tcase \"pause_turn\": // Stop is good enough -> resubmit\n\t\t\treturn \"stop\";\n\t\tcase \"stop_sequence\":\n\t\t\treturn \"stop\"; // We don't supply stop sequences, so this should never happen\n\t\tcase \"sensitive\": // Content flagged by safety filters (not yet in SDK types)\n\t\t\treturn \"error\";\n\t\tdefault:\n\t\t\t// Handle unknown stop reasons gracefully (API may add new values)\n\t\t\tthrow new Error(`Unhandled stop reason: ${reason}`);\n\t}\n}\n"]}
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../src/providers/anthropic.ts"],"names":[],"mappings":"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","sourcesContent":["import Anthropic from \"@anthropic-ai/sdk\";\nimport type { BetaThinkingConfigAdaptive } from \"@anthropic-ai/sdk/resources/beta/messages/messages.js\";\nimport type {\n\tCacheControlEphemeral,\n\tContentBlockParam,\n\tImageBlockParam,\n\tMessageCreateParamsStreaming,\n\tMessageParam,\n\tRawContentBlockDeltaEvent,\n\tRawContentBlockStartEvent,\n\tRawContentBlockStopEvent,\n\tRawMessageDeltaEvent,\n\tRawMessageStartEvent,\n\tRawMessageStreamEvent,\n\tTextBlockParam,\n} from \"@anthropic-ai/sdk/resources/messages.js\";\nimport { getEnvApiKey } from \"../env-api-keys.ts\";\nimport { calculateCost } from \"../models.ts\";\nimport type {\n\tAnthropicMessagesCompat,\n\tApi,\n\tAssistantContent,\n\tAssistantMessage,\n\tCacheRetention,\n\tContext,\n\tImageContent,\n\tMessage,\n\tModel,\n\tProviderHeaders,\n\tSimpleStreamOptions,\n\tStopReason,\n\tStreamFunction,\n\tStreamOptions,\n\tTextContent,\n\tThinkingContent,\n\tThinkingLevel,\n\tTool,\n\tToolCall,\n\tToolResultMessage,\n\tUserMessage,\n} from \"../types.ts\";\nimport { AssistantMessageEventStream } from \"../utils/event-stream.ts\";\nimport { headersToRecord } from \"../utils/headers.ts\";\nimport { parseJsonWithRepair, parseStreamingJson } from \"../utils/json-parse.ts\";\nimport { retryProviderRequest } from \"../utils/provider-retry.ts\";\nimport { sanitizeSurrogates } from \"../utils/sanitize-unicode.ts\";\nimport { isAnthropicFable51 } from \"./anthropic-fable.ts\";\n\nimport { resolveCloudflareBaseUrl } from \"./cloudflare.ts\";\nimport { buildCopilotDynamicHeaders, hasCopilotVisionInput } from \"./github-copilot-headers.ts\";\nimport { adjustMaxTokensForThinking, buildBaseOptions } from \"./simple-options.ts\";\nimport { transformMessages } from \"./transform-messages.ts\";\n\n/**\n * Resolve cache retention preference.\n * Defaults to \"short\" and uses PI_CACHE_RETENTION for backward compatibility.\n */\nfunction resolveCacheRetention(cacheRetention?: CacheRetention): CacheRetention {\n\tif (cacheRetention) {\n\t\treturn cacheRetention;\n\t}\n\tif (typeof process !== \"undefined\" && process.env.PI_CACHE_RETENTION === \"long\") {\n\t\treturn \"long\";\n\t}\n\treturn \"short\";\n}\n\ninterface ResolvedAnthropicCacheControl {\n\tretention: CacheRetention;\n\tcacheControl?: CacheControlEphemeral;\n}\n\nfunction getCacheControl(\n\tmodel: Model<\"anthropic-messages\">,\n\tcacheRetention?: CacheRetention,\n): ResolvedAnthropicCacheControl {\n\tconst retention = resolveCacheRetention(cacheRetention);\n\tif (retention === \"none\") {\n\t\treturn { retention };\n\t}\n\tconst ttl = retention === \"long\" && getAnthropicCompat(model).supportsLongCacheRetention ? \"1h\" : undefined;\n\treturn {\n\t\tretention,\n\t\tcacheControl: { type: \"ephemeral\", ...(ttl && { ttl }) },\n\t};\n}\n\n// Stealth mode: Mimic Claude Code's tool naming exactly\nconst claudeCodeVersion = \"2.1.251\";\n\n// Claude Code 2.x tool names (canonical casing)\n// Source: https://cchistory.mariozechner.at/data/prompts-2.1.11.md\n// To update: https://github.com/badlogic/cchistory\nconst claudeCodeTools = [\n\t\"Read\",\n\t\"Write\",\n\t\"Edit\",\n\t\"Bash\",\n\t\"Grep\",\n\t\"Glob\",\n\t\"AskUserQuestion\",\n\t\"EnterPlanMode\",\n\t\"ExitPlanMode\",\n\t\"KillShell\",\n\t\"NotebookEdit\",\n\t\"Skill\",\n\t\"Task\",\n\t\"TaskOutput\",\n\t\"TodoWrite\",\n\t\"WebFetch\",\n\t\"WebSearch\",\n];\n\nconst ccToolLookup = new Map(claudeCodeTools.map((t) => [t.toLowerCase(), t]));\n\n// Convert tool name to CC canonical casing if it matches (case-insensitive)\nconst toClaudeCodeName = (name: string) => ccToolLookup.get(name.toLowerCase()) ?? name;\nconst fromClaudeCodeName = (name: string, tools?: Tool[]) => {\n\tif (tools && tools.length > 0) {\n\t\tconst lowerName = name.toLowerCase();\n\t\tconst matchedTool = tools.find((tool) => tool.name.toLowerCase() === lowerName);\n\t\tif (matchedTool) return matchedTool.name;\n\t}\n\treturn name;\n};\n\n/**\n * Convert content blocks to Anthropic API format\n */\ntype AnthropicInputContent = string | Array<TextBlockParam | ImageBlockParam>;\n\nfunction convertContentBlocks(content: (TextContent | ImageContent)[]): AnthropicInputContent {\n\t// If only text blocks, return as concatenated string for simplicity\n\tconst hasImages = content.some((c) => c.type === \"image\");\n\tif (!hasImages) {\n\t\treturn sanitizeSurrogates(content.map((c) => (c as TextContent).text).join(\"\\n\"));\n\t}\n\n\t// If we have images, convert to content block array\n\tconst blocks = content.map((block) => {\n\t\tif (block.type === \"text\") {\n\t\t\treturn {\n\t\t\t\ttype: \"text\" as const,\n\t\t\t\ttext: sanitizeSurrogates(block.text),\n\t\t\t};\n\t\t}\n\t\treturn {\n\t\t\ttype: \"image\" as const,\n\t\t\tsource: {\n\t\t\t\ttype: \"base64\" as const,\n\t\t\t\tmedia_type: block.mimeType as \"image/jpeg\" | \"image/png\" | \"image/gif\" | \"image/webp\",\n\t\t\t\tdata: block.data,\n\t\t\t},\n\t\t};\n\t});\n\n\t// If only images (no text), add placeholder text block\n\tconst hasText = blocks.some((b) => b.type === \"text\");\n\tif (!hasText) {\n\t\tblocks.unshift({\n\t\t\ttype: \"text\" as const,\n\t\t\ttext: \"(see attached image)\",\n\t\t});\n\t}\n\n\treturn blocks;\n}\n\nexport type AnthropicEffort = \"low\" | \"medium\" | \"high\" | \"xhigh\" | \"max\";\n\nexport type AnthropicThinkingDisplay = \"summarized\" | \"omitted\";\nexport type AnthropicToolChoice = \"auto\" | \"any\" | \"none\" | { type: \"tool\"; name: string };\n\nconst FINE_GRAINED_TOOL_STREAMING_BETA = \"fine-grained-tool-streaming-2025-05-14\";\nconst INTERLEAVED_THINKING_BETA = \"interleaved-thinking-2025-05-14\";\n\nfunction getAnthropicCompat(model: Model<\"anthropic-messages\">): Required<AnthropicMessagesCompat> {\n\t// Auto-detect session affinity and cache control support from provider\n\tconst isFireworks = model.provider === \"fireworks\";\n\tconst isCloudflareAiGatewayAnthropic =\n\t\tmodel.provider === \"cloudflare-ai-gateway\" && model.baseUrl.includes(\"anthropic\");\n\treturn {\n\t\tsupportsEagerToolInputStreaming: model.compat?.supportsEagerToolInputStreaming ?? !isFireworks,\n\t\tsupportsLongCacheRetention: model.compat?.supportsLongCacheRetention ?? !isFireworks,\n\t\tsendSessionAffinityHeaders:\n\t\t\tmodel.compat?.sendSessionAffinityHeaders ?? !!(isFireworks || isCloudflareAiGatewayAnthropic),\n\t\tsupportsCacheControlOnTools: model.compat?.supportsCacheControlOnTools ?? !isFireworks,\n\t\tsupportsTemperature: model.compat?.supportsTemperature ?? true,\n\t\tforceAdaptiveThinking: model.compat?.forceAdaptiveThinking ?? false,\n\t\tallowEmptySignature: model.compat?.allowEmptySignature ?? false,\n\t};\n}\n\nexport interface AnthropicOptions extends StreamOptions {\n\t/**\n\t * Enable extended thinking.\n\t * For Opus 4.6 and Sonnet 4.6: uses adaptive thinking (model decides when/how much to think).\n\t * For older models: uses budget-based thinking with thinkingBudgetTokens.\n\t */\n\tthinkingEnabled?: boolean;\n\t/**\n\t * Token budget for extended thinking (older models only).\n\t * Ignored for Opus 4.6 and Sonnet 4.6, which use adaptive thinking.\n\t */\n\tthinkingBudgetTokens?: number;\n\t/**\n\t * Effort level for adaptive thinking (Opus 4.6+ and Sonnet 4.6).\n\t * Controls how much thinking Claude allocates:\n\t * - \"max\": Always thinks with no constraints (Opus 4.6 only)\n\t * - \"xhigh\": Highest reasoning level (Opus 4.7)\n\t * - \"high\": Always thinks, deep reasoning (default)\n\t * - \"medium\": Moderate thinking, may skip for simple queries\n\t * - \"low\": Minimal thinking, skips for simple tasks\n\t * Ignored for older models.\n\t */\n\teffort?: AnthropicEffort;\n\t/**\n\t * Controls how thinking content is returned in API responses.\n\t * - \"summarized\": Thinking blocks contain summarized thinking text (default here).\n\t * - \"omitted\": Thinking blocks return an empty thinking field; the encrypted\n\t * signature still travels back for multi-turn continuity. Use for faster\n\t * time-to-first-text-token when your UI does not surface thinking.\n\t *\n\t * Note: Anthropic's API default for Claude Opus 4.7 and Claude Mythos Preview\n\t * is \"omitted\". We default to \"summarized\" here to keep behavior consistent\n\t * with older Claude 4 models. Set this explicitly to \"omitted\" to opt in.\n\t */\n\tthinkingDisplay?: AnthropicThinkingDisplay;\n\tinterleavedThinking?: boolean;\n\ttoolChoice?: AnthropicToolChoice;\n\t/**\n\t * Pre-built Anthropic client instance. When provided, skips internal client\n\t * construction entirely. Use this to inject alternative SDK clients such as\n\t * `AnthropicVertex` that shares the same messaging API.\n\t */\n\tclient?: Anthropic;\n}\n\nfunction mergeHeaders(...headerSources: (ProviderHeaders | undefined)[]): ProviderHeaders {\n\tconst merged: ProviderHeaders = {};\n\tfor (const headers of headerSources) {\n\t\tif (headers) {\n\t\t\tObject.assign(merged, headers);\n\t\t}\n\t}\n\treturn merged;\n}\n\ninterface ServerSentEvent {\n\tevent: string | null;\n\tdata: string;\n\traw: string[];\n}\n\ninterface SseDecoderState {\n\tevent: string | null;\n\tdata: string[];\n\traw: string[];\n}\n\nconst ANTHROPIC_MESSAGE_EVENTS: ReadonlySet<string> = new Set([\n\t\"message_start\",\n\t\"message_delta\",\n\t\"message_stop\",\n\t\"content_block_start\",\n\t\"content_block_delta\",\n\t\"content_block_stop\",\n]);\n\nfunction flushSseEvent(state: SseDecoderState): ServerSentEvent | null {\n\tif (!state.event && state.data.length === 0) {\n\t\treturn null;\n\t}\n\n\tconst event: ServerSentEvent = {\n\t\tevent: state.event,\n\t\tdata: state.data.join(\"\\n\"),\n\t\traw: [...state.raw],\n\t};\n\tstate.event = null;\n\tstate.data = [];\n\tstate.raw = [];\n\treturn event;\n}\n\nfunction decodeSseLine(line: string, state: SseDecoderState): ServerSentEvent | null {\n\tif (line === \"\") {\n\t\treturn flushSseEvent(state);\n\t}\n\n\tstate.raw.push(line);\n\tif (line.startsWith(\":\")) {\n\t\treturn null;\n\t}\n\n\tconst delimiterIndex = line.indexOf(\":\");\n\tconst fieldName = delimiterIndex === -1 ? line : line.slice(0, delimiterIndex);\n\tlet value = delimiterIndex === -1 ? \"\" : line.slice(delimiterIndex + 1);\n\tif (value.startsWith(\" \")) {\n\t\tvalue = value.slice(1);\n\t}\n\n\tif (fieldName === \"event\") {\n\t\tstate.event = value;\n\t} else if (fieldName === \"data\") {\n\t\tstate.data.push(value);\n\t}\n\n\treturn null;\n}\n\nfunction nextLineBreakIndex(text: string): number {\n\tconst carriageReturnIndex = text.indexOf(\"\\r\");\n\tconst newlineIndex = text.indexOf(\"\\n\");\n\tif (carriageReturnIndex === -1) {\n\t\treturn newlineIndex;\n\t}\n\tif (newlineIndex === -1) {\n\t\treturn carriageReturnIndex;\n\t}\n\treturn Math.min(carriageReturnIndex, newlineIndex);\n}\n\ninterface ConsumedSseLine {\n\tline: string;\n\trest: string;\n}\n\nfunction consumeLine(text: string): ConsumedSseLine | null {\n\tconst lineBreakIndex = nextLineBreakIndex(text);\n\tif (lineBreakIndex === -1) {\n\t\treturn null;\n\t}\n\n\tlet nextIndex = lineBreakIndex + 1;\n\tif (text[lineBreakIndex] === \"\\r\" && text[nextIndex] === \"\\n\") {\n\t\tnextIndex += 1;\n\t}\n\n\treturn {\n\t\tline: text.slice(0, lineBreakIndex),\n\t\trest: text.slice(nextIndex),\n\t};\n}\n\nfunction* decodeCompleteSseLines(buffer: string, state: SseDecoderState): Generator<ServerSentEvent, string> {\n\tlet consumed = consumeLine(buffer);\n\twhile (consumed) {\n\t\tbuffer = consumed.rest;\n\t\tconst event = decodeSseLine(consumed.line, state);\n\t\tif (event) yield event;\n\t\tconsumed = consumeLine(buffer);\n\t}\n\treturn buffer;\n}\nasync function* iterateSseMessages(\n\tbody: ReadableStream<Uint8Array>,\n\tsignal?: AbortSignal,\n): AsyncGenerator<ServerSentEvent> {\n\tconst reader = body.getReader();\n\tconst decoder = new TextDecoder();\n\tconst state: SseDecoderState = { event: null, data: [], raw: [] };\n\tlet buffer = \"\";\n\n\ttry {\n\t\twhile (true) {\n\t\t\tif (signal?.aborted) {\n\t\t\t\tthrow new Error(\"Request was aborted\");\n\t\t\t}\n\n\t\t\tconst { value, done } = await reader.read();\n\t\t\tif (done) {\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tbuffer += decoder.decode(value, { stream: true });\n\t\t\tbuffer = yield* decodeCompleteSseLines(buffer, state);\n\t\t}\n\n\t\tbuffer += decoder.decode();\n\t\tbuffer = yield* decodeCompleteSseLines(buffer, state);\n\n\t\tif (buffer.length > 0) {\n\t\t\tconst event = decodeSseLine(buffer, state);\n\t\t\tif (event) {\n\t\t\t\tyield event;\n\t\t\t}\n\t\t}\n\n\t\tconst trailingEvent = flushSseEvent(state);\n\t\tif (trailingEvent) {\n\t\t\tyield trailingEvent;\n\t\t}\n\t} finally {\n\t\treader.releaseLock();\n\t}\n}\ninterface AnthropicMessageLifecycle {\n\tsawStart: boolean;\n\tsawEnd: boolean;\n}\n\nfunction* decodeAnthropicSseEvent(\n\tsse: ServerSentEvent,\n\tlifecycle: AnthropicMessageLifecycle,\n): Generator<RawMessageStreamEvent> {\n\ttry {\n\t\tconst event = parseJsonWithRepair<RawMessageStreamEvent>(sse.data);\n\t\tif (event.type === \"message_start\") lifecycle.sawStart = true;\n\t\telse if (event.type === \"message_stop\") lifecycle.sawEnd = true;\n\t\tyield event;\n\t} catch (error) {\n\t\tconst message = error instanceof Error ? error.message : String(error);\n\t\tthrow new Error(\n\t\t\t`Could not parse Anthropic SSE event ${sse.event}: ${message}; data=${sse.data}; raw=${sse.raw.join(\"\\\\n\")}`,\n\t\t);\n\t}\n}\n\nasync function* iterateAnthropicEvents(\n\tresponse: Response,\n\tsignal?: AbortSignal,\n): AsyncGenerator<RawMessageStreamEvent> {\n\tif (!response.body) {\n\t\tthrow new Error(\"Attempted to iterate over an Anthropic response with no body\");\n\t}\n\n\tconst lifecycle: AnthropicMessageLifecycle = { sawStart: false, sawEnd: false };\n\n\tfor await (const sse of iterateSseMessages(response.body, signal)) {\n\t\tif (sse.event === \"error\") {\n\t\t\tthrow new Error(sse.data);\n\t\t}\n\n\t\tif (!ANTHROPIC_MESSAGE_EVENTS.has(sse.event ?? \"\")) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tyield* decodeAnthropicSseEvent(sse, lifecycle);\n\t}\n\n\tif (lifecycle.sawStart && !lifecycle.sawEnd) {\n\t\tthrow new Error(\"Anthropic stream ended before message_stop\");\n\t}\n}\n\ntype CompletedAnthropicAssistantMessage = AssistantMessage & { stopReason: \"stop\" | \"length\" | \"toolUse\" };\ntype AnthropicStreamToolCall = ToolCall & { partialJson?: string };\ntype AnthropicStreamBlock = (ThinkingContent | TextContent | AnthropicStreamToolCall) & { index?: number };\n\ninterface AnthropicStreamState {\n\toutput: AssistantMessage;\n\tblocks: AnthropicStreamBlock[];\n\tstream: AssistantMessageEventStream;\n\tmodel: Model<\"anthropic-messages\">;\n\tcontext: Context;\n\tisOAuth: boolean;\n}\n\nfunction createAnthropicStreamState(\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\tstream: AssistantMessageEventStream,\n): AnthropicStreamState {\n\tconst output: AssistantMessage = {\n\t\trole: \"assistant\",\n\t\tcontent: [],\n\t\tapi: model.api as Api,\n\t\tprovider: model.provider,\n\t\tmodel: model.id,\n\t\tusage: {\n\t\t\tinput: 0,\n\t\t\toutput: 0,\n\t\t\tcacheRead: 0,\n\t\t\tcacheWrite: 0,\n\t\t\ttotalTokens: 0,\n\t\t\tcost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0, total: 0 },\n\t\t},\n\t\tstopReason: \"stop\",\n\t\ttimestamp: Date.now(),\n\t};\n\treturn { output, blocks: output.content as AnthropicStreamBlock[], stream, model, context, isOAuth: false };\n}\n\nfunction handleAnthropicMessageStart(event: RawMessageStartEvent, state: AnthropicStreamState): void {\n\tstate.output.responseId = event.message.id;\n\tstate.output.usage.input = event.message.usage.input_tokens || 0;\n\tstate.output.usage.output = event.message.usage.output_tokens || 0;\n\tstate.output.usage.cacheRead = event.message.usage.cache_read_input_tokens || 0;\n\tstate.output.usage.cacheWrite = event.message.usage.cache_creation_input_tokens || 0;\n\tstate.output.usage.totalTokens =\n\t\tstate.output.usage.input +\n\t\tstate.output.usage.output +\n\t\tstate.output.usage.cacheRead +\n\t\tstate.output.usage.cacheWrite;\n\tcalculateCost(state.model, state.output.usage);\n}\n\nfunction handleAnthropicContentBlockStart(event: RawContentBlockStartEvent, state: AnthropicStreamState): void {\n\tconst contentIndex = state.output.content.length;\n\tswitch (event.content_block.type) {\n\t\tcase \"text\": {\n\t\t\tconst block: AnthropicStreamBlock = {\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: event.content_block.text ?? \"\",\n\t\t\t\tindex: event.index,\n\t\t\t};\n\t\t\tstate.output.content.push(block);\n\t\t\tstate.stream.push({ type: \"text_start\", contentIndex, partial: state.output });\n\t\t\treturn;\n\t\t}\n\t\tcase \"thinking\": {\n\t\t\tconst block: AnthropicStreamBlock = {\n\t\t\t\ttype: \"thinking\",\n\t\t\t\tthinking: event.content_block.thinking ?? \"\",\n\t\t\t\tthinkingSignature: event.content_block.signature ?? \"\",\n\t\t\t\tindex: event.index,\n\t\t\t};\n\t\t\tstate.output.content.push(block);\n\t\t\tstate.stream.push({ type: \"thinking_start\", contentIndex, partial: state.output });\n\t\t\treturn;\n\t\t}\n\t\tcase \"redacted_thinking\": {\n\t\t\tconst block: AnthropicStreamBlock = {\n\t\t\t\ttype: \"thinking\",\n\t\t\t\tthinking: \"[Reasoning redacted]\",\n\t\t\t\tthinkingSignature: event.content_block.data,\n\t\t\t\tredacted: true,\n\t\t\t\tindex: event.index,\n\t\t\t};\n\t\t\tstate.output.content.push(block);\n\t\t\tstate.stream.push({ type: \"thinking_start\", contentIndex, partial: state.output });\n\t\t\treturn;\n\t\t}\n\t\tcase \"tool_use\": {\n\t\t\tconst block: AnthropicStreamBlock = {\n\t\t\t\ttype: \"toolCall\",\n\t\t\t\tid: event.content_block.id,\n\t\t\t\tname: state.isOAuth\n\t\t\t\t\t? fromClaudeCodeName(event.content_block.name, state.context.tools)\n\t\t\t\t\t: event.content_block.name,\n\t\t\t\targuments: (event.content_block.input as Record<string, unknown>) ?? {},\n\t\t\t\tpartialJson: \"\",\n\t\t\t\tindex: event.index,\n\t\t\t};\n\t\t\tstate.output.content.push(block);\n\t\t\tstate.stream.push({ type: \"toolcall_start\", contentIndex, partial: state.output });\n\t\t}\n\t}\n}\n\nfunction handleAnthropicContentBlockDelta(event: RawContentBlockDeltaEvent, state: AnthropicStreamState): void {\n\tconst index = state.blocks.findIndex((block) => block.index === event.index);\n\tconst block = state.blocks[index];\n\tif (!block) return;\n\n\tswitch (event.delta.type) {\n\t\tcase \"text_delta\":\n\t\t\tif (block.type === \"text\") {\n\t\t\t\tblock.text += event.delta.text;\n\t\t\t\tstate.stream.push({\n\t\t\t\t\ttype: \"text_delta\",\n\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\tdelta: event.delta.text,\n\t\t\t\t\tpartial: state.output,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\tcase \"thinking_delta\":\n\t\t\tif (block.type === \"thinking\") {\n\t\t\t\tblock.thinking += event.delta.thinking;\n\t\t\t\tstate.stream.push({\n\t\t\t\t\ttype: \"thinking_delta\",\n\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\tdelta: event.delta.thinking,\n\t\t\t\t\tpartial: state.output,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\tcase \"input_json_delta\":\n\t\t\tif (block.type === \"toolCall\") {\n\t\t\t\tblock.partialJson = (block.partialJson ?? \"\") + event.delta.partial_json;\n\t\t\t\tblock.arguments = parseStreamingJson(block.partialJson);\n\t\t\t\tstate.stream.push({\n\t\t\t\t\ttype: \"toolcall_delta\",\n\t\t\t\t\tcontentIndex: index,\n\t\t\t\t\tdelta: event.delta.partial_json,\n\t\t\t\t\tpartial: state.output,\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn;\n\t\tcase \"signature_delta\":\n\t\t\tif (block.type === \"thinking\") {\n\t\t\t\tblock.thinkingSignature = (block.thinkingSignature || \"\") + event.delta.signature;\n\t\t\t}\n\t}\n}\n\nfunction handleAnthropicContentBlockStop(event: RawContentBlockStopEvent, state: AnthropicStreamState): void {\n\tconst index = state.blocks.findIndex((block) => block.index === event.index);\n\tconst block = state.blocks[index];\n\tif (!block) return;\n\tdelete block.index;\n\n\tswitch (block.type) {\n\t\tcase \"text\":\n\t\t\tstate.stream.push({\n\t\t\t\ttype: \"text_end\",\n\t\t\t\tcontentIndex: index,\n\t\t\t\tcontent: block.text,\n\t\t\t\tpartial: state.output,\n\t\t\t});\n\t\t\treturn;\n\t\tcase \"thinking\":\n\t\t\tstate.stream.push({\n\t\t\t\ttype: \"thinking_end\",\n\t\t\t\tcontentIndex: index,\n\t\t\t\tcontent: block.thinking,\n\t\t\t\tpartial: state.output,\n\t\t\t});\n\t\t\treturn;\n\t\tcase \"toolCall\":\n\t\t\tblock.arguments = parseStreamingJson(block.partialJson ?? \"\");\n\t\t\tdelete block.partialJson;\n\t\t\tstate.stream.push({\n\t\t\t\ttype: \"toolcall_end\",\n\t\t\t\tcontentIndex: index,\n\t\t\t\ttoolCall: block,\n\t\t\t\tpartial: state.output,\n\t\t\t});\n\t}\n}\n\nfunction handleAnthropicMessageDelta(event: RawMessageDeltaEvent, state: AnthropicStreamState): void {\n\tif (event.delta.stop_reason) state.output.stopReason = mapStopReason(event.delta.stop_reason);\n\tif (event.usage.input_tokens != null) state.output.usage.input = event.usage.input_tokens;\n\tif (event.usage.output_tokens != null) state.output.usage.output = event.usage.output_tokens;\n\tif (event.usage.cache_read_input_tokens != null) {\n\t\tstate.output.usage.cacheRead = event.usage.cache_read_input_tokens;\n\t}\n\tif (event.usage.cache_creation_input_tokens != null) {\n\t\tstate.output.usage.cacheWrite = event.usage.cache_creation_input_tokens;\n\t}\n\tstate.output.usage.totalTokens =\n\t\tstate.output.usage.input +\n\t\tstate.output.usage.output +\n\t\tstate.output.usage.cacheRead +\n\t\tstate.output.usage.cacheWrite;\n\tcalculateCost(state.model, state.output.usage);\n}\n\nfunction handleAnthropicStreamEvent(event: RawMessageStreamEvent, state: AnthropicStreamState): void {\n\tswitch (event.type) {\n\t\tcase \"message_start\":\n\t\t\thandleAnthropicMessageStart(event, state);\n\t\t\treturn;\n\t\tcase \"content_block_start\":\n\t\t\thandleAnthropicContentBlockStart(event, state);\n\t\t\treturn;\n\t\tcase \"content_block_delta\":\n\t\t\thandleAnthropicContentBlockDelta(event, state);\n\t\t\treturn;\n\t\tcase \"content_block_stop\":\n\t\t\thandleAnthropicContentBlockStop(event, state);\n\t\t\treturn;\n\t\tcase \"message_delta\":\n\t\t\thandleAnthropicMessageDelta(event, state);\n\t}\n}\n\nfunction resolveAnthropicStreamClient(\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\toptions: AnthropicOptions | undefined,\n): ConfiguredAnthropicClient {\n\tif (options?.client) return { client: options.client, isOAuthToken: false };\n\tconst apiKey = options?.apiKey ?? getEnvApiKey(model.provider) ?? \"\";\n\tconst copilotDynamicHeaders =\n\t\tmodel.provider === \"github-copilot\"\n\t\t\t? buildCopilotDynamicHeaders({\n\t\t\t\t\tmessages: context.messages,\n\t\t\t\t\thasImages: hasCopilotVisionInput(context.messages),\n\t\t\t\t})\n\t\t\t: undefined;\n\tconst cacheRetention = options?.cacheRetention ?? resolveCacheRetention();\n\tconst cacheSessionId = cacheRetention === \"none\" ? undefined : options?.sessionId;\n\treturn createClient(\n\t\tmodel,\n\t\tapiKey,\n\t\toptions?.interleavedThinking ?? true,\n\t\tshouldUseFineGrainedToolStreamingBeta(model, context),\n\t\toptions?.headers,\n\t\tcopilotDynamicHeaders,\n\t\tcacheSessionId,\n\t);\n}\n\nfunction validateAnthropicStreamCompletion(\n\toutput: AssistantMessage,\n\tsignal?: AbortSignal,\n): asserts output is CompletedAnthropicAssistantMessage {\n\tif (signal?.aborted) throw new Error(\"Request was aborted\");\n\tif (output.stopReason === \"pending\") throw new Error(\"Anthropic stream ended without a stop reason\");\n\tif (output.stopReason === \"aborted\" || output.stopReason === \"error\") throw new Error(\"An unknown error occurred\");\n}\n\nasync function executeAnthropicStream(\n\tstate: AnthropicStreamState,\n\toptions: AnthropicOptions | undefined,\n): Promise<void> {\n\tconst configuredClient = resolveAnthropicStreamClient(state.model, state.context, options);\n\tstate.isOAuth = configuredClient.isOAuthToken;\n\tlet params = buildParams(state.model, state.context, state.isOAuth, options);\n\tconst nextParams = await options?.onPayload?.(params, state.model);\n\tif (nextParams !== undefined) params = nextParams as MessageCreateParamsStreaming;\n\tconst requestOptions: Anthropic.RequestOptions = {\n\t\t...(options?.signal ? { signal: options.signal } : {}),\n\t\t...(options?.timeoutMs !== undefined ? { timeout: options.timeoutMs } : {}),\n\t\tmaxRetries: 0,\n\t};\n\tif (isAnthropicFable51(state.model)) {\n\t\t// Run after SDK/default header merging, including on injected clients.\n\t\trequestOptions.middleware = [\n\t\t\t(request, next) => {\n\t\t\t\tconst betas = new Set(\n\t\t\t\t\t(request.headers.get(\"anthropic-beta\") ?? \"\")\n\t\t\t\t\t\t.split(\",\")\n\t\t\t\t\t\t.map((value) => value.trim())\n\t\t\t\t\t\t.filter(Boolean),\n\t\t\t\t);\n\t\t\t\tbetas.add(\"thinking-binding-controls-2026-08-01\");\n\t\t\t\trequest.headers.set(\"anthropic-beta\", [...betas].join(\",\"));\n\t\t\t\treturn next(request);\n\t\t\t},\n\t\t];\n\t}\n\tconst response = await retryProviderRequest(\n\t\t() => configuredClient.client.messages.create({ ...params, stream: true }, requestOptions).asResponse(),\n\t\t{\n\t\t\tmaxRetries: options?.maxRetries,\n\t\t\tmaxRetryDelayMs: options?.maxRetryDelayMs,\n\t\t\tsignal: options?.signal,\n\t\t},\n\t);\n\tawait options?.onResponse?.({ status: response.status, headers: headersToRecord(response.headers) }, state.model);\n\tstate.stream.push({ type: \"start\", partial: state.output });\n\tfor await (const event of iterateAnthropicEvents(response, options?.signal)) {\n\t\thandleAnthropicStreamEvent(event, state);\n\t}\n\tvalidateAnthropicStreamCompletion(state.output, options?.signal);\n\tstate.stream.push({ type: \"done\", reason: state.output.stopReason, message: state.output });\n\tstate.stream.end();\n}\n\nfunction handleAnthropicStreamFailure(\n\terror: unknown,\n\toptions: AnthropicOptions | undefined,\n\tstate: AnthropicStreamState,\n): void {\n\tfor (const block of state.blocks) {\n\t\tdelete block.index;\n\t\tif (block.type === \"toolCall\") delete block.partialJson;\n\t}\n\tstate.output.stopReason = options?.signal?.aborted ? \"aborted\" : \"error\";\n\tstate.output.errorMessage = error instanceof Error ? error.message : JSON.stringify(error);\n\tstate.stream.push({ type: \"error\", reason: state.output.stopReason, error: state.output });\n\tstate.stream.end();\n}\n\nexport const streamAnthropic: StreamFunction<\"anthropic-messages\", AnthropicOptions> = (\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\toptions?: AnthropicOptions,\n): AssistantMessageEventStream => {\n\tconst stream = new AssistantMessageEventStream();\n\tconst state = createAnthropicStreamState(model, context, stream);\n\t(async () => {\n\t\ttry {\n\t\t\tawait executeAnthropicStream(state, options);\n\t\t} catch (error) {\n\t\t\thandleAnthropicStreamFailure(error, options, state);\n\t\t}\n\t})();\n\treturn stream;\n};\n\n/**\n * Check if a model supports adaptive thinking (Opus 4.6+, Sonnet 4.6)\n */\nfunction supportsAdaptiveThinking(modelId: string): boolean {\n\t// Adaptive-thinking model IDs (with or without date suffix)\n\treturn (\n\t\tmodelId.includes(\"opus-4-6\") ||\n\t\tmodelId.includes(\"opus-4.6\") ||\n\t\tmodelId.includes(\"opus-4-7\") ||\n\t\tmodelId.includes(\"opus-4.7\") ||\n\t\tmodelId.includes(\"sonnet-4-6\") ||\n\t\tmodelId.includes(\"sonnet-4.6\")\n\t);\n}\n\n/**\n * Map ThinkingLevel to Anthropic effort levels for adaptive thinking.\n * Note: effort \"max\" is only valid on Opus 4.6, while Opus 4.7 supports \"xhigh\".\n */\nfunction mapThinkingLevelToEffort(\n\tmodel: Model<\"anthropic-messages\">,\n\tlevel: ThinkingLevel | undefined,\n): AnthropicEffort {\n\tconst mapped = level ? model.thinkingLevelMap?.[level] : undefined;\n\tif (typeof mapped === \"string\") return mapped as AnthropicEffort;\n\n\tswitch (level) {\n\t\tcase \"minimal\":\n\t\tcase \"low\":\n\t\t\treturn \"low\";\n\t\tcase \"medium\":\n\t\t\treturn \"medium\";\n\t\tcase \"high\":\n\t\t\treturn \"high\";\n\t\tcase \"xhigh\":\n\t\t\treturn isAnthropicFable51(model) ? \"xhigh\" : \"high\";\n\t\tdefault:\n\t\t\treturn \"high\";\n\t}\n}\n\nexport const streamSimpleAnthropic: StreamFunction<\"anthropic-messages\", SimpleStreamOptions> = (\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\toptions?: SimpleStreamOptions,\n): AssistantMessageEventStream => {\n\tconst apiKey = options?.apiKey || getEnvApiKey(model.provider);\n\tif (!apiKey) {\n\t\tthrow new Error(`No API key for provider: ${model.provider}`);\n\t}\n\n\tconst base = buildBaseOptions(model, context, options, apiKey);\n\tif (isAnthropicFable51(model)) {\n\t\treturn streamAnthropic(model, context, {\n\t\t\t...base,\n\t\t\tthinkingEnabled: true,\n\t\t\teffort: options?.reasoning ? mapThinkingLevelToEffort(model, options.reasoning) : \"low\",\n\t\t});\n\t}\n\tif (!options?.reasoning) {\n\t\treturn streamAnthropic(model, context, { ...base, thinkingEnabled: false } satisfies AnthropicOptions);\n\t}\n\n\t// For Opus 4.6 and Sonnet 4.6: use adaptive thinking with effort level\n\t// For older models: use budget-based thinking\n\tif (supportsAdaptiveThinking(model.id)) {\n\t\tconst effort = mapThinkingLevelToEffort(model, options.reasoning);\n\t\treturn streamAnthropic(model, context, {\n\t\t\t...base,\n\t\t\tthinkingEnabled: true,\n\t\t\teffort,\n\t\t} satisfies AnthropicOptions);\n\t}\n\n\t// Undefined means the caller did not request an output cap; let the helper use the model cap.\n\t// Do not coerce to 0 here, or the thinking budget would become the entire max_tokens value.\n\tconst adjusted = adjustMaxTokensForThinking(\n\t\tbase.maxTokens,\n\t\tmodel.maxTokens,\n\t\toptions.reasoning,\n\t\toptions.thinkingBudgets,\n\t);\n\n\treturn streamAnthropic(model, context, {\n\t\t...base,\n\t\tmaxTokens: adjusted.maxTokens,\n\t\tthinkingEnabled: true,\n\t\tthinkingBudgetTokens: adjusted.thinkingBudget,\n\t} satisfies AnthropicOptions);\n};\n\nfunction isOAuthToken(apiKey: string): boolean {\n\treturn apiKey.includes(\"sk-ant-oat\");\n}\n\ninterface ConfiguredAnthropicClient {\n\tclient: Anthropic;\n\tisOAuthToken: boolean;\n}\n\nfunction createClient(\n\tmodel: Model<\"anthropic-messages\">,\n\tapiKey: string,\n\tinterleavedThinking: boolean,\n\tuseFineGrainedToolStreamingBeta: boolean,\n\toptionsHeaders?: ProviderHeaders,\n\tdynamicHeaders?: Record<string, string>,\n\tsessionId?: string,\n): ConfiguredAnthropicClient {\n\t// Adaptive thinking models (Opus 4.6, Sonnet 4.6) have interleaved thinking built-in.\n\t// The beta header is deprecated on Opus 4.6 and redundant on Sonnet 4.6, so skip it.\n\tconst needsInterleavedBeta =\n\t\tinterleavedThinking && !supportsAdaptiveThinking(model.id) && !isAnthropicFable51(model);\n\tconst betaFeatures: string[] = [];\n\tif (useFineGrainedToolStreamingBeta) {\n\t\tbetaFeatures.push(FINE_GRAINED_TOOL_STREAMING_BETA);\n\t}\n\tif (needsInterleavedBeta) {\n\t\tbetaFeatures.push(INTERLEAVED_THINKING_BETA);\n\t}\n\n\tif (model.provider === \"cloudflare-ai-gateway\") {\n\t\tconst client = new Anthropic({\n\t\t\tapiKey: null,\n\t\t\tauthToken: null,\n\t\t\tbaseURL: resolveCloudflareBaseUrl(model),\n\t\t\tdangerouslyAllowBrowser: true,\n\t\t\tdefaultHeaders: mergeHeaders(\n\t\t\t\t{\n\t\t\t\t\taccept: \"application/json\",\n\t\t\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t\t\t\"cf-aig-authorization\": `Bearer ${apiKey}`,\n\t\t\t\t\t\"x-api-key\": null,\n\t\t\t\t\tAuthorization: null,\n\t\t\t\t\t...(betaFeatures.length > 0 ? { \"anthropic-beta\": betaFeatures.join(\",\") } : {}),\n\t\t\t\t},\n\t\t\t\tmodel.headers,\n\t\t\t\toptionsHeaders,\n\t\t\t),\n\t\t});\n\n\t\treturn { client, isOAuthToken: false };\n\t}\n\n\t// Copilot: Bearer auth, selective betas.\n\tif (model.provider === \"github-copilot\") {\n\t\tconst client = new Anthropic({\n\t\t\tapiKey: null,\n\t\t\tauthToken: apiKey,\n\t\t\tbaseURL: model.baseUrl,\n\t\t\tdangerouslyAllowBrowser: true,\n\t\t\tdefaultHeaders: mergeHeaders(\n\t\t\t\t{\n\t\t\t\t\taccept: \"application/json\",\n\t\t\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t\t\t...(betaFeatures.length > 0 ? { \"anthropic-beta\": betaFeatures.join(\",\") } : {}),\n\t\t\t\t},\n\t\t\t\tmodel.headers,\n\t\t\t\tdynamicHeaders,\n\t\t\t\toptionsHeaders,\n\t\t\t),\n\t\t});\n\n\t\treturn { client, isOAuthToken: false };\n\t}\n\n\t// OAuth: Bearer auth, Claude Code identity headers\n\tif (isOAuthToken(apiKey)) {\n\t\tconst client = new Anthropic({\n\t\t\tapiKey: null,\n\t\t\tauthToken: apiKey,\n\t\t\tbaseURL: model.baseUrl,\n\t\t\tdangerouslyAllowBrowser: true,\n\t\t\tdefaultHeaders: mergeHeaders(\n\t\t\t\t{\n\t\t\t\t\taccept: \"application/json\",\n\t\t\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t\t\t\"anthropic-beta\": [\"claude-code-20250219\", \"oauth-2025-04-20\", ...betaFeatures].join(\",\"),\n\t\t\t\t\t\"user-agent\": `claude-cli/${claudeCodeVersion}`,\n\t\t\t\t\t\"x-app\": \"cli\",\n\t\t\t\t},\n\t\t\t\tmodel.headers,\n\t\t\t\toptionsHeaders,\n\t\t\t),\n\t\t});\n\n\t\treturn { client, isOAuthToken: true };\n\t}\n\n\t// API key auth\n\tconst sessionAffinityHeaders: Record<string, string | null> =\n\t\tsessionId && getAnthropicCompat(model).sendSessionAffinityHeaders ? { \"x-session-affinity\": sessionId } : {};\n\tconst client = new Anthropic({\n\t\tapiKey,\n\t\tauthToken: null,\n\t\tbaseURL: model.baseUrl,\n\t\tdangerouslyAllowBrowser: true,\n\t\tdefaultHeaders: mergeHeaders(\n\t\t\t{\n\t\t\t\taccept: \"application/json\",\n\t\t\t\t\"anthropic-dangerous-direct-browser-access\": \"true\",\n\t\t\t\t...(betaFeatures.length > 0 ? { \"anthropic-beta\": betaFeatures.join(\",\") } : {}),\n\t\t\t},\n\t\t\tsessionAffinityHeaders,\n\t\t\tmodel.headers,\n\t\t\toptionsHeaders,\n\t\t),\n\t});\n\n\treturn { client, isOAuthToken: false };\n}\n\nfunction applyAnthropicSystemPrompt(\n\tparams: MessageCreateParamsStreaming,\n\tcontext: Context,\n\tisOAuthToken: boolean,\n\tcacheControl: CacheControlEphemeral | undefined,\n): void {\n\tif (isOAuthToken) {\n\t\tparams.system = [\n\t\t\t{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: \"You are Claude Code, Anthropic's official CLI for Claude.\",\n\t\t\t\t...(cacheControl ? { cache_control: cacheControl } : {}),\n\t\t\t},\n\t\t];\n\t\tif (context.systemPrompt) {\n\t\t\tparams.system.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: sanitizeSurrogates(context.systemPrompt),\n\t\t\t\t...(cacheControl ? { cache_control: cacheControl } : {}),\n\t\t\t});\n\t\t}\n\t\treturn;\n\t}\n\tif (!context.systemPrompt) return;\n\tparams.system = [\n\t\t{\n\t\t\ttype: \"text\",\n\t\t\ttext: sanitizeSurrogates(context.systemPrompt),\n\t\t\t...(cacheControl ? { cache_control: cacheControl } : {}),\n\t\t},\n\t];\n}\n\nfunction applyAnthropicTemperature(\n\tparams: MessageCreateParamsStreaming,\n\toptions: AnthropicOptions | undefined,\n\tcompat: Required<AnthropicMessagesCompat>,\n): void {\n\tif (options?.temperature !== undefined && !options.thinkingEnabled && compat.supportsTemperature) {\n\t\tparams.temperature = options.temperature;\n\t}\n}\n\nfunction applyAnthropicTools(\n\tparams: MessageCreateParamsStreaming,\n\tcontext: Context,\n\tisOAuthToken: boolean,\n\tcacheControl: CacheControlEphemeral | undefined,\n\tcompat: Required<AnthropicMessagesCompat>,\n): void {\n\tif (!context.tools || context.tools.length === 0) return;\n\tparams.tools = convertTools(\n\t\tcontext.tools,\n\t\tisOAuthToken,\n\t\tcompat.supportsEagerToolInputStreaming,\n\t\tcompat.supportsCacheControlOnTools ? cacheControl : undefined,\n\t);\n}\n\nfunction applyAdaptiveThinkingEffort(params: MessageCreateParamsStreaming, effort: AnthropicEffort | undefined): void {\n\tif (!effort) return;\n\t// The Anthropic SDK types can lag newly supported effort values such as \"xhigh\".\n\tparams.output_config =\n\t\teffort === \"xhigh\"\n\t\t\t? ({ effort } as unknown as NonNullable<MessageCreateParamsStreaming[\"output_config\"]>)\n\t\t\t: { effort };\n}\n\nfunction applyEnabledAnthropicThinking(\n\tparams: MessageCreateParamsStreaming,\n\tmodel: Model<\"anthropic-messages\">,\n\toptions: AnthropicOptions,\n): void {\n\tconst display: AnthropicThinkingDisplay = options.thinkingDisplay ?? \"summarized\";\n\tif (supportsAdaptiveThinking(model.id)) {\n\t\tparams.thinking = { type: \"adaptive\", display };\n\t\tapplyAdaptiveThinkingEffort(params, options.effort);\n\t\treturn;\n\t}\n\tparams.thinking = {\n\t\ttype: \"enabled\",\n\t\tbudget_tokens: options.thinkingBudgetTokens || 1024,\n\t\tdisplay,\n\t};\n}\n\nfunction applyAnthropicThinking(\n\tparams: MessageCreateParamsStreaming,\n\tmodel: Model<\"anthropic-messages\">,\n\toptions: AnthropicOptions | undefined,\n): void {\n\tif (isAnthropicFable51(model)) {\n\t\tconst thinking = {\n\t\t\ttype: \"adaptive\",\n\t\t\tdisplay: options?.thinkingDisplay ?? \"summarized\",\n\t\t\tblock_binding: { prefix_mismatch_behavior: \"drop_block\" },\n\t\t} satisfies BetaThinkingConfigAdaptive;\n\t\tparams.thinking = thinking;\n\t\tapplyAdaptiveThinkingEffort(params, options?.thinkingEnabled === false ? \"low\" : (options?.effort ?? \"high\"));\n\t\treturn;\n\t}\n\tif (!model.reasoning) return;\n\tif (options?.thinkingEnabled) {\n\t\tapplyEnabledAnthropicThinking(params, model, options);\n\t\treturn;\n\t}\n\tif (options?.thinkingEnabled === false) params.thinking = { type: \"disabled\" };\n}\n\nfunction applyAnthropicMetadata(params: MessageCreateParamsStreaming, options: AnthropicOptions | undefined): void {\n\tconst userId = options?.metadata?.user_id;\n\tif (typeof userId === \"string\") params.metadata = { user_id: userId };\n}\n\nfunction applyAnthropicToolChoice(params: MessageCreateParamsStreaming, options: AnthropicOptions | undefined): void {\n\tif (!options?.toolChoice) return;\n\tparams.tool_choice = typeof options.toolChoice === \"string\" ? { type: options.toolChoice } : options.toolChoice;\n}\n\nfunction buildParams(\n\tmodel: Model<\"anthropic-messages\">,\n\tcontext: Context,\n\tisOAuthToken: boolean,\n\toptions?: AnthropicOptions,\n): MessageCreateParamsStreaming {\n\tif (\n\t\tisAnthropicFable51(model) &&\n\t\toptions?.toolChoice &&\n\t\toptions.toolChoice !== \"auto\" &&\n\t\toptions.toolChoice !== \"none\"\n\t) {\n\t\tthrow new Error(\"Claude Fable 5.1 does not support forced tool choice; use auto or none.\");\n\t}\n\tconst { cacheControl } = getCacheControl(model, options?.cacheRetention);\n\tconst compat = getAnthropicCompat(model);\n\tconst params: MessageCreateParamsStreaming = {\n\t\tmodel: model.id,\n\t\tmessages: convertMessages(context.messages, model, isOAuthToken, cacheControl, compat.allowEmptySignature),\n\t\tmax_tokens: options?.maxTokens ?? model.maxTokens,\n\t\tstream: true,\n\t};\n\tapplyAnthropicSystemPrompt(params, context, isOAuthToken, cacheControl);\n\tif (!isAnthropicFable51(model)) applyAnthropicTemperature(params, options, compat);\n\tapplyAnthropicTools(params, context, isOAuthToken, cacheControl, compat);\n\tapplyAnthropicThinking(params, model, options);\n\tapplyAnthropicMetadata(params, options);\n\tapplyAnthropicToolChoice(params, options);\n\treturn params;\n}\n\n// Normalize tool call IDs to match Anthropic's required pattern and length\nfunction normalizeToolCallId(id: string): string {\n\treturn id.replace(/[^a-zA-Z0-9_-]/g, \"_\").slice(0, 64);\n}\n\nfunction convertAnthropicUserMessage(message: UserMessage): MessageParam | undefined {\n\tif (typeof message.content === \"string\") {\n\t\treturn message.content.trim().length > 0\n\t\t\t? { role: \"user\", content: sanitizeSurrogates(message.content) }\n\t\t\t: undefined;\n\t}\n\tconst content: ContentBlockParam[] = [];\n\tfor (const block of message.content) {\n\t\tif (block.type === \"text\") {\n\t\t\tif (block.text.trim().length > 0) content.push({ type: \"text\", text: sanitizeSurrogates(block.text) });\n\t\t} else {\n\t\t\tcontent.push({\n\t\t\t\ttype: \"image\",\n\t\t\t\tsource: {\n\t\t\t\t\ttype: \"base64\",\n\t\t\t\t\tmedia_type: block.mimeType as \"image/jpeg\" | \"image/png\" | \"image/gif\" | \"image/webp\",\n\t\t\t\t\tdata: block.data,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\treturn content.length > 0 ? { role: \"user\", content } : undefined;\n}\n\nfunction convertAnthropicThinkingBlock(\n\tblock: ThinkingContent,\n\tallowEmptySignature: boolean,\n): ContentBlockParam | undefined {\n\tif (block.redacted) return { type: \"redacted_thinking\", data: block.thinkingSignature! };\n\tif (block.thinking.trim().length === 0 && !block.thinkingSignature?.trim()) return undefined;\n\tif (!block.thinkingSignature || block.thinkingSignature.trim().length === 0) {\n\t\treturn allowEmptySignature\n\t\t\t? { type: \"thinking\", thinking: sanitizeSurrogates(block.thinking), signature: \"\" }\n\t\t\t: { type: \"text\", text: sanitizeSurrogates(block.thinking) };\n\t}\n\treturn {\n\t\ttype: \"thinking\",\n\t\tthinking: sanitizeSurrogates(block.thinking),\n\t\tsignature: block.thinkingSignature,\n\t};\n}\n\nfunction convertAnthropicAssistantBlock(\n\tblock: AssistantContent,\n\tisOAuthToken: boolean,\n\tallowEmptySignature: boolean,\n): ContentBlockParam | undefined {\n\tswitch (block.type) {\n\t\tcase \"text\":\n\t\t\treturn block.text.trim().length > 0 ? { type: \"text\", text: sanitizeSurrogates(block.text) } : undefined;\n\t\tcase \"thinking\":\n\t\t\treturn convertAnthropicThinkingBlock(block, allowEmptySignature);\n\t\tcase \"toolCall\":\n\t\t\treturn {\n\t\t\t\ttype: \"tool_use\",\n\t\t\t\tid: block.id,\n\t\t\t\tname: isOAuthToken ? toClaudeCodeName(block.name) : block.name,\n\t\t\t\tinput: block.arguments ?? {},\n\t\t\t};\n\t}\n}\n\nfunction convertAnthropicAssistantMessage(\n\tmessage: AssistantMessage,\n\tisOAuthToken: boolean,\n\tallowEmptySignature: boolean,\n): MessageParam | undefined {\n\tconst content: ContentBlockParam[] = [];\n\tfor (const block of message.content) {\n\t\tconst converted = convertAnthropicAssistantBlock(block, isOAuthToken, allowEmptySignature);\n\t\tif (converted) content.push(converted);\n\t}\n\treturn content.length > 0 ? { role: \"assistant\", content } : undefined;\n}\n\nfunction convertAnthropicToolResult(message: ToolResultMessage): ContentBlockParam {\n\treturn {\n\t\ttype: \"tool_result\",\n\t\ttool_use_id: message.toolCallId,\n\t\tcontent: convertContentBlocks(message.content),\n\t\tis_error: message.isError,\n\t};\n}\n\ninterface AnthropicToolResultBatch {\n\tcontent: ContentBlockParam[];\n\tlastIndex: number;\n}\n\nfunction collectAnthropicToolResultBatch(messages: Message[], startIndex: number): AnthropicToolResultBatch {\n\tconst content: ContentBlockParam[] = [];\n\tlet lastIndex = startIndex;\n\tfor (let index = startIndex; index < messages.length; index++) {\n\t\tconst message = messages[index];\n\t\tif (message.role !== \"toolResult\") break;\n\t\tcontent.push(convertAnthropicToolResult(message));\n\t\tlastIndex = index;\n\t}\n\treturn { content, lastIndex };\n}\n\nfunction applyAnthropicConversationCacheControl(\n\tparams: MessageParam[],\n\tcacheControl: CacheControlEphemeral | undefined,\n): void {\n\tif (!cacheControl || params.length === 0) return;\n\tconst lastMessage = params[params.length - 1];\n\tif (lastMessage.role !== \"user\") return;\n\tif (Array.isArray(lastMessage.content)) {\n\t\tconst lastBlock = lastMessage.content[lastMessage.content.length - 1];\n\t\tif (lastBlock && (lastBlock.type === \"text\" || lastBlock.type === \"image\" || lastBlock.type === \"tool_result\")) {\n\t\t\t(lastBlock as any).cache_control = cacheControl;\n\t\t}\n\t\treturn;\n\t}\n\tif (typeof lastMessage.content === \"string\") {\n\t\tlastMessage.content = [{ type: \"text\", text: lastMessage.content, cache_control: cacheControl }] as any;\n\t}\n}\n\nfunction convertMessages(\n\tmessages: Message[],\n\tmodel: Model<\"anthropic-messages\">,\n\tisOAuthToken: boolean,\n\tcacheControl?: CacheControlEphemeral,\n\tallowEmptySignature = false,\n): MessageParam[] {\n\tconst params: MessageParam[] = [];\n\tconst transformedMessages = transformMessages(messages, model, normalizeToolCallId);\n\tfor (let index = 0; index < transformedMessages.length; index++) {\n\t\tconst message = transformedMessages[index];\n\t\tswitch (message.role) {\n\t\t\tcase \"user\": {\n\t\t\t\tconst converted = convertAnthropicUserMessage(message);\n\t\t\t\tif (converted) params.push(converted);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"assistant\": {\n\t\t\t\tconst converted = convertAnthropicAssistantMessage(message, isOAuthToken, allowEmptySignature);\n\t\t\t\tif (converted) params.push(converted);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase \"toolResult\": {\n\t\t\t\tconst batch = collectAnthropicToolResultBatch(transformedMessages, index);\n\t\t\t\tparams.push({ role: \"user\", content: batch.content });\n\t\t\t\tindex = batch.lastIndex;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tapplyAnthropicConversationCacheControl(params, cacheControl);\n\treturn params;\n}\n\nfunction shouldUseFineGrainedToolStreamingBeta(model: Model<\"anthropic-messages\">, context: Context): boolean {\n\treturn !!context.tools?.length && !getAnthropicCompat(model).supportsEagerToolInputStreaming;\n}\n\nfunction convertTools(\n\ttools: Tool[],\n\tisOAuthToken: boolean,\n\tsupportsEagerToolInputStreaming: boolean,\n\tcacheControl?: CacheControlEphemeral,\n): Anthropic.Messages.Tool[] {\n\tif (!tools) return [];\n\n\treturn tools.map((tool, index) => {\n\t\tconst schema = tool.parameters as { properties?: unknown; required?: string[] };\n\n\t\treturn {\n\t\t\tname: isOAuthToken ? toClaudeCodeName(tool.name) : tool.name,\n\t\t\tdescription: tool.description,\n\t\t\t...(supportsEagerToolInputStreaming ? { eager_input_streaming: true } : {}),\n\t\t\tinput_schema: {\n\t\t\t\ttype: \"object\",\n\t\t\t\tproperties: schema.properties ?? {},\n\t\t\t\trequired: schema.required ?? [],\n\t\t\t},\n\t\t\t...(cacheControl && index === tools.length - 1 ? { cache_control: cacheControl } : {}),\n\t\t};\n\t});\n}\n\nfunction mapStopReason(reason: Anthropic.Messages.StopReason | string): StopReason {\n\tswitch (reason) {\n\t\tcase \"end_turn\":\n\t\t\treturn \"stop\";\n\t\tcase \"max_tokens\":\n\t\t\treturn \"length\";\n\t\tcase \"tool_use\":\n\t\t\treturn \"toolUse\";\n\t\tcase \"refusal\":\n\t\t\treturn \"error\";\n\t\tcase \"pause_turn\": // Stop is good enough -> resubmit\n\t\t\treturn \"stop\";\n\t\tcase \"stop_sequence\":\n\t\t\treturn \"stop\"; // We don't supply stop sequences, so this should never happen\n\t\tcase \"sensitive\": // Content flagged by safety filters (not yet in SDK types)\n\t\t\treturn \"error\";\n\t\tdefault:\n\t\t\t// Handle unknown stop reasons gracefully (API may add new values)\n\t\t\tthrow new Error(`Unhandled stop reason: ${reason}`);\n\t}\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fleetagent/pi-ai",
3
- "version": "0.2.2",
3
+ "version": "0.2.4",
4
4
  "description": "Unified LLM API with automatic model discovery and provider configuration",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -67,7 +67,7 @@
67
67
  "prepublishOnly": "npm run clean && npm run build"
68
68
  },
69
69
  "dependencies": {
70
- "@anthropic-ai/sdk": "0.91.1",
70
+ "@anthropic-ai/sdk": "0.124.0",
71
71
  "@aws-sdk/client-bedrock-runtime": "3.1048.0",
72
72
  "@smithy/node-http-handler": "4.7.3",
73
73
  "@google/genai": "1.52.0",