UNPKG

@ai-sdk/anthropic

Version:

The **[Anthropic provider](https://ai-sdk.dev/providers/ai-sdk-providers/anthropic)** for the [AI SDK](https://ai-sdk.dev/docs) contains language model support for the [Anthropic Messages API](https://docs.anthropic.com/claude/reference/messages_post).

1,236 lines (1,221 loc) 206 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); // src/index.ts var src_exports = {}; __export(src_exports, { VERSION: () => VERSION, anthropic: () => anthropic, createAnthropic: () => createAnthropic, forwardAnthropicContainerIdFromLastStep: () => forwardAnthropicContainerIdFromLastStep }); module.exports = __toCommonJS(src_exports); // src/anthropic-provider.ts var import_provider4 = require("@ai-sdk/provider"); var import_provider_utils26 = require("@ai-sdk/provider-utils"); // src/version.ts var VERSION = true ? "3.0.58" : "0.0.0-test"; // src/anthropic-messages-language-model.ts var import_provider3 = require("@ai-sdk/provider"); var import_provider_utils15 = require("@ai-sdk/provider-utils"); // src/anthropic-error.ts var import_provider_utils = require("@ai-sdk/provider-utils"); var import_v4 = require("zod/v4"); var anthropicErrorDataSchema = (0, import_provider_utils.lazySchema)( () => (0, import_provider_utils.zodSchema)( import_v4.z.object({ type: import_v4.z.literal("error"), error: import_v4.z.object({ type: import_v4.z.string(), message: import_v4.z.string() }) }) ) ); var anthropicFailedResponseHandler = (0, import_provider_utils.createJsonErrorResponseHandler)({ errorSchema: anthropicErrorDataSchema, errorToMessage: (data) => data.error.message }); // src/anthropic-messages-api.ts var import_provider_utils2 = require("@ai-sdk/provider-utils"); var import_v42 = require("zod/v4"); var anthropicMessagesResponseSchema = (0, import_provider_utils2.lazySchema)( () => (0, import_provider_utils2.zodSchema)( import_v42.z.object({ type: import_v42.z.literal("message"), id: import_v42.z.string().nullish(), model: import_v42.z.string().nullish(), content: import_v42.z.array( import_v42.z.discriminatedUnion("type", [ import_v42.z.object({ type: import_v42.z.literal("text"), text: import_v42.z.string(), citations: import_v42.z.array( import_v42.z.discriminatedUnion("type", [ import_v42.z.object({ type: import_v42.z.literal("web_search_result_location"), cited_text: import_v42.z.string(), url: import_v42.z.string(), title: import_v42.z.string(), encrypted_index: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("page_location"), cited_text: import_v42.z.string(), document_index: import_v42.z.number(), document_title: import_v42.z.string().nullable(), start_page_number: import_v42.z.number(), end_page_number: import_v42.z.number() }), import_v42.z.object({ type: import_v42.z.literal("char_location"), cited_text: import_v42.z.string(), document_index: import_v42.z.number(), document_title: import_v42.z.string().nullable(), start_char_index: import_v42.z.number(), end_char_index: import_v42.z.number() }) ]) ).optional() }), import_v42.z.object({ type: import_v42.z.literal("thinking"), thinking: import_v42.z.string(), signature: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("redacted_thinking"), data: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("compaction"), content: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("tool_use"), id: import_v42.z.string(), name: import_v42.z.string(), input: import_v42.z.unknown(), // Programmatic tool calling: caller info when triggered from code execution caller: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("code_execution_20250825"), tool_id: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("code_execution_20260120"), tool_id: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("direct") }) ]).optional() }), import_v42.z.object({ type: import_v42.z.literal("server_tool_use"), id: import_v42.z.string(), name: import_v42.z.string(), input: import_v42.z.record(import_v42.z.string(), import_v42.z.unknown()).nullish(), caller: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("code_execution_20260120"), tool_id: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("direct") }) ]).optional() }), import_v42.z.object({ type: import_v42.z.literal("mcp_tool_use"), id: import_v42.z.string(), name: import_v42.z.string(), input: import_v42.z.unknown(), server_name: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("mcp_tool_result"), tool_use_id: import_v42.z.string(), is_error: import_v42.z.boolean(), content: import_v42.z.array( import_v42.z.union([ import_v42.z.string(), import_v42.z.object({ type: import_v42.z.literal("text"), text: import_v42.z.string() }) ]) ) }), import_v42.z.object({ type: import_v42.z.literal("web_fetch_tool_result"), tool_use_id: import_v42.z.string(), content: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("web_fetch_result"), url: import_v42.z.string(), retrieved_at: import_v42.z.string(), content: import_v42.z.object({ type: import_v42.z.literal("document"), title: import_v42.z.string().nullable(), citations: import_v42.z.object({ enabled: import_v42.z.boolean() }).optional(), source: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("base64"), media_type: import_v42.z.literal("application/pdf"), data: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("text"), media_type: import_v42.z.literal("text/plain"), data: import_v42.z.string() }) ]) }) }), import_v42.z.object({ type: import_v42.z.literal("web_fetch_tool_result_error"), error_code: import_v42.z.string() }) ]) }), import_v42.z.object({ type: import_v42.z.literal("web_search_tool_result"), tool_use_id: import_v42.z.string(), content: import_v42.z.union([ import_v42.z.array( import_v42.z.object({ type: import_v42.z.literal("web_search_result"), url: import_v42.z.string(), title: import_v42.z.string(), encrypted_content: import_v42.z.string(), page_age: import_v42.z.string().nullish() }) ), import_v42.z.object({ type: import_v42.z.literal("web_search_tool_result_error"), error_code: import_v42.z.string() }) ]) }), // code execution results for code_execution_20250522 tool: import_v42.z.object({ type: import_v42.z.literal("code_execution_tool_result"), tool_use_id: import_v42.z.string(), content: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("code_execution_result"), stdout: import_v42.z.string(), stderr: import_v42.z.string(), return_code: import_v42.z.number(), content: import_v42.z.array( import_v42.z.object({ type: import_v42.z.literal("code_execution_output"), file_id: import_v42.z.string() }) ).optional().default([]) }), import_v42.z.object({ type: import_v42.z.literal("encrypted_code_execution_result"), encrypted_stdout: import_v42.z.string(), stderr: import_v42.z.string(), return_code: import_v42.z.number(), content: import_v42.z.array( import_v42.z.object({ type: import_v42.z.literal("code_execution_output"), file_id: import_v42.z.string() }) ).optional().default([]) }), import_v42.z.object({ type: import_v42.z.literal("code_execution_tool_result_error"), error_code: import_v42.z.string() }) ]) }), // bash code execution results for code_execution_20250825 tool: import_v42.z.object({ type: import_v42.z.literal("bash_code_execution_tool_result"), tool_use_id: import_v42.z.string(), content: import_v42.z.discriminatedUnion("type", [ import_v42.z.object({ type: import_v42.z.literal("bash_code_execution_result"), content: import_v42.z.array( import_v42.z.object({ type: import_v42.z.literal("bash_code_execution_output"), file_id: import_v42.z.string() }) ), stdout: import_v42.z.string(), stderr: import_v42.z.string(), return_code: import_v42.z.number() }), import_v42.z.object({ type: import_v42.z.literal("bash_code_execution_tool_result_error"), error_code: import_v42.z.string() }) ]) }), // text editor code execution results for code_execution_20250825 tool: import_v42.z.object({ type: import_v42.z.literal("text_editor_code_execution_tool_result"), tool_use_id: import_v42.z.string(), content: import_v42.z.discriminatedUnion("type", [ import_v42.z.object({ type: import_v42.z.literal("text_editor_code_execution_tool_result_error"), error_code: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("text_editor_code_execution_view_result"), content: import_v42.z.string(), file_type: import_v42.z.string(), num_lines: import_v42.z.number().nullable(), start_line: import_v42.z.number().nullable(), total_lines: import_v42.z.number().nullable() }), import_v42.z.object({ type: import_v42.z.literal("text_editor_code_execution_create_result"), is_file_update: import_v42.z.boolean() }), import_v42.z.object({ type: import_v42.z.literal( "text_editor_code_execution_str_replace_result" ), lines: import_v42.z.array(import_v42.z.string()).nullable(), new_lines: import_v42.z.number().nullable(), new_start: import_v42.z.number().nullable(), old_lines: import_v42.z.number().nullable(), old_start: import_v42.z.number().nullable() }) ]) }), // tool search tool results for tool_search_tool_regex_20251119 and tool_search_tool_bm25_20251119: import_v42.z.object({ type: import_v42.z.literal("tool_search_tool_result"), tool_use_id: import_v42.z.string(), content: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("tool_search_tool_search_result"), tool_references: import_v42.z.array( import_v42.z.object({ type: import_v42.z.literal("tool_reference"), tool_name: import_v42.z.string() }) ) }), import_v42.z.object({ type: import_v42.z.literal("tool_search_tool_result_error"), error_code: import_v42.z.string() }) ]) }) ]) ), stop_reason: import_v42.z.string().nullish(), stop_sequence: import_v42.z.string().nullish(), usage: import_v42.z.looseObject({ input_tokens: import_v42.z.number(), output_tokens: import_v42.z.number(), cache_creation_input_tokens: import_v42.z.number().nullish(), cache_read_input_tokens: import_v42.z.number().nullish(), iterations: import_v42.z.array( import_v42.z.object({ type: import_v42.z.union([import_v42.z.literal("compaction"), import_v42.z.literal("message")]), input_tokens: import_v42.z.number(), output_tokens: import_v42.z.number() }) ).nullish() }), container: import_v42.z.object({ expires_at: import_v42.z.string(), id: import_v42.z.string(), skills: import_v42.z.array( import_v42.z.object({ type: import_v42.z.union([import_v42.z.literal("anthropic"), import_v42.z.literal("custom")]), skill_id: import_v42.z.string(), version: import_v42.z.string() }) ).nullish() }).nullish(), context_management: import_v42.z.object({ applied_edits: import_v42.z.array( import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("clear_tool_uses_20250919"), cleared_tool_uses: import_v42.z.number(), cleared_input_tokens: import_v42.z.number() }), import_v42.z.object({ type: import_v42.z.literal("clear_thinking_20251015"), cleared_thinking_turns: import_v42.z.number(), cleared_input_tokens: import_v42.z.number() }), import_v42.z.object({ type: import_v42.z.literal("compact_20260112") }) ]) ) }).nullish() }) ) ); var anthropicMessagesChunkSchema = (0, import_provider_utils2.lazySchema)( () => (0, import_provider_utils2.zodSchema)( import_v42.z.discriminatedUnion("type", [ import_v42.z.object({ type: import_v42.z.literal("message_start"), message: import_v42.z.object({ id: import_v42.z.string().nullish(), model: import_v42.z.string().nullish(), role: import_v42.z.string().nullish(), usage: import_v42.z.looseObject({ input_tokens: import_v42.z.number(), cache_creation_input_tokens: import_v42.z.number().nullish(), cache_read_input_tokens: import_v42.z.number().nullish() }), // Programmatic tool calling: content may be pre-populated for deferred tool calls content: import_v42.z.array( import_v42.z.discriminatedUnion("type", [ import_v42.z.object({ type: import_v42.z.literal("tool_use"), id: import_v42.z.string(), name: import_v42.z.string(), input: import_v42.z.unknown(), caller: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("code_execution_20250825"), tool_id: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("code_execution_20260120"), tool_id: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("direct") }) ]).optional() }) ]) ).nullish(), stop_reason: import_v42.z.string().nullish(), container: import_v42.z.object({ expires_at: import_v42.z.string(), id: import_v42.z.string() }).nullish() }) }), import_v42.z.object({ type: import_v42.z.literal("content_block_start"), index: import_v42.z.number(), content_block: import_v42.z.discriminatedUnion("type", [ import_v42.z.object({ type: import_v42.z.literal("text"), text: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("thinking"), thinking: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("tool_use"), id: import_v42.z.string(), name: import_v42.z.string(), // Programmatic tool calling: input may be present directly for deferred tool calls input: import_v42.z.record(import_v42.z.string(), import_v42.z.unknown()).optional(), // Programmatic tool calling: caller info when triggered from code execution caller: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("code_execution_20250825"), tool_id: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("code_execution_20260120"), tool_id: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("direct") }) ]).optional() }), import_v42.z.object({ type: import_v42.z.literal("redacted_thinking"), data: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("compaction"), content: import_v42.z.string().nullish() }), import_v42.z.object({ type: import_v42.z.literal("server_tool_use"), id: import_v42.z.string(), name: import_v42.z.string(), input: import_v42.z.record(import_v42.z.string(), import_v42.z.unknown()).nullish(), caller: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("code_execution_20260120"), tool_id: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("direct") }) ]).optional() }), import_v42.z.object({ type: import_v42.z.literal("mcp_tool_use"), id: import_v42.z.string(), name: import_v42.z.string(), input: import_v42.z.unknown(), server_name: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("mcp_tool_result"), tool_use_id: import_v42.z.string(), is_error: import_v42.z.boolean(), content: import_v42.z.array( import_v42.z.union([ import_v42.z.string(), import_v42.z.object({ type: import_v42.z.literal("text"), text: import_v42.z.string() }) ]) ) }), import_v42.z.object({ type: import_v42.z.literal("web_fetch_tool_result"), tool_use_id: import_v42.z.string(), content: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("web_fetch_result"), url: import_v42.z.string(), retrieved_at: import_v42.z.string(), content: import_v42.z.object({ type: import_v42.z.literal("document"), title: import_v42.z.string().nullable(), citations: import_v42.z.object({ enabled: import_v42.z.boolean() }).optional(), source: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("base64"), media_type: import_v42.z.literal("application/pdf"), data: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("text"), media_type: import_v42.z.literal("text/plain"), data: import_v42.z.string() }) ]) }) }), import_v42.z.object({ type: import_v42.z.literal("web_fetch_tool_result_error"), error_code: import_v42.z.string() }) ]) }), import_v42.z.object({ type: import_v42.z.literal("web_search_tool_result"), tool_use_id: import_v42.z.string(), content: import_v42.z.union([ import_v42.z.array( import_v42.z.object({ type: import_v42.z.literal("web_search_result"), url: import_v42.z.string(), title: import_v42.z.string(), encrypted_content: import_v42.z.string(), page_age: import_v42.z.string().nullish() }) ), import_v42.z.object({ type: import_v42.z.literal("web_search_tool_result_error"), error_code: import_v42.z.string() }) ]) }), // code execution results for code_execution_20250522 tool: import_v42.z.object({ type: import_v42.z.literal("code_execution_tool_result"), tool_use_id: import_v42.z.string(), content: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("code_execution_result"), stdout: import_v42.z.string(), stderr: import_v42.z.string(), return_code: import_v42.z.number(), content: import_v42.z.array( import_v42.z.object({ type: import_v42.z.literal("code_execution_output"), file_id: import_v42.z.string() }) ).optional().default([]) }), import_v42.z.object({ type: import_v42.z.literal("encrypted_code_execution_result"), encrypted_stdout: import_v42.z.string(), stderr: import_v42.z.string(), return_code: import_v42.z.number(), content: import_v42.z.array( import_v42.z.object({ type: import_v42.z.literal("code_execution_output"), file_id: import_v42.z.string() }) ).optional().default([]) }), import_v42.z.object({ type: import_v42.z.literal("code_execution_tool_result_error"), error_code: import_v42.z.string() }) ]) }), // bash code execution results for code_execution_20250825 tool: import_v42.z.object({ type: import_v42.z.literal("bash_code_execution_tool_result"), tool_use_id: import_v42.z.string(), content: import_v42.z.discriminatedUnion("type", [ import_v42.z.object({ type: import_v42.z.literal("bash_code_execution_result"), content: import_v42.z.array( import_v42.z.object({ type: import_v42.z.literal("bash_code_execution_output"), file_id: import_v42.z.string() }) ), stdout: import_v42.z.string(), stderr: import_v42.z.string(), return_code: import_v42.z.number() }), import_v42.z.object({ type: import_v42.z.literal("bash_code_execution_tool_result_error"), error_code: import_v42.z.string() }) ]) }), // text editor code execution results for code_execution_20250825 tool: import_v42.z.object({ type: import_v42.z.literal("text_editor_code_execution_tool_result"), tool_use_id: import_v42.z.string(), content: import_v42.z.discriminatedUnion("type", [ import_v42.z.object({ type: import_v42.z.literal("text_editor_code_execution_tool_result_error"), error_code: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("text_editor_code_execution_view_result"), content: import_v42.z.string(), file_type: import_v42.z.string(), num_lines: import_v42.z.number().nullable(), start_line: import_v42.z.number().nullable(), total_lines: import_v42.z.number().nullable() }), import_v42.z.object({ type: import_v42.z.literal("text_editor_code_execution_create_result"), is_file_update: import_v42.z.boolean() }), import_v42.z.object({ type: import_v42.z.literal( "text_editor_code_execution_str_replace_result" ), lines: import_v42.z.array(import_v42.z.string()).nullable(), new_lines: import_v42.z.number().nullable(), new_start: import_v42.z.number().nullable(), old_lines: import_v42.z.number().nullable(), old_start: import_v42.z.number().nullable() }) ]) }), // tool search tool results for tool_search_tool_regex_20251119 and tool_search_tool_bm25_20251119: import_v42.z.object({ type: import_v42.z.literal("tool_search_tool_result"), tool_use_id: import_v42.z.string(), content: import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("tool_search_tool_search_result"), tool_references: import_v42.z.array( import_v42.z.object({ type: import_v42.z.literal("tool_reference"), tool_name: import_v42.z.string() }) ) }), import_v42.z.object({ type: import_v42.z.literal("tool_search_tool_result_error"), error_code: import_v42.z.string() }) ]) }) ]) }), import_v42.z.object({ type: import_v42.z.literal("content_block_delta"), index: import_v42.z.number(), delta: import_v42.z.discriminatedUnion("type", [ import_v42.z.object({ type: import_v42.z.literal("input_json_delta"), partial_json: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("text_delta"), text: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("thinking_delta"), thinking: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("signature_delta"), signature: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("compaction_delta"), content: import_v42.z.string().nullish() }), import_v42.z.object({ type: import_v42.z.literal("citations_delta"), citation: import_v42.z.discriminatedUnion("type", [ import_v42.z.object({ type: import_v42.z.literal("web_search_result_location"), cited_text: import_v42.z.string(), url: import_v42.z.string(), title: import_v42.z.string(), encrypted_index: import_v42.z.string() }), import_v42.z.object({ type: import_v42.z.literal("page_location"), cited_text: import_v42.z.string(), document_index: import_v42.z.number(), document_title: import_v42.z.string().nullable(), start_page_number: import_v42.z.number(), end_page_number: import_v42.z.number() }), import_v42.z.object({ type: import_v42.z.literal("char_location"), cited_text: import_v42.z.string(), document_index: import_v42.z.number(), document_title: import_v42.z.string().nullable(), start_char_index: import_v42.z.number(), end_char_index: import_v42.z.number() }) ]) }) ]) }), import_v42.z.object({ type: import_v42.z.literal("content_block_stop"), index: import_v42.z.number() }), import_v42.z.object({ type: import_v42.z.literal("error"), error: import_v42.z.object({ type: import_v42.z.string(), message: import_v42.z.string() }) }), import_v42.z.object({ type: import_v42.z.literal("message_delta"), delta: import_v42.z.object({ stop_reason: import_v42.z.string().nullish(), stop_sequence: import_v42.z.string().nullish(), container: import_v42.z.object({ expires_at: import_v42.z.string(), id: import_v42.z.string(), skills: import_v42.z.array( import_v42.z.object({ type: import_v42.z.union([ import_v42.z.literal("anthropic"), import_v42.z.literal("custom") ]), skill_id: import_v42.z.string(), version: import_v42.z.string() }) ).nullish() }).nullish() }), usage: import_v42.z.looseObject({ input_tokens: import_v42.z.number().nullish(), output_tokens: import_v42.z.number(), cache_creation_input_tokens: import_v42.z.number().nullish(), cache_read_input_tokens: import_v42.z.number().nullish(), iterations: import_v42.z.array( import_v42.z.object({ type: import_v42.z.union([import_v42.z.literal("compaction"), import_v42.z.literal("message")]), input_tokens: import_v42.z.number(), output_tokens: import_v42.z.number() }) ).nullish() }), context_management: import_v42.z.object({ applied_edits: import_v42.z.array( import_v42.z.union([ import_v42.z.object({ type: import_v42.z.literal("clear_tool_uses_20250919"), cleared_tool_uses: import_v42.z.number(), cleared_input_tokens: import_v42.z.number() }), import_v42.z.object({ type: import_v42.z.literal("clear_thinking_20251015"), cleared_thinking_turns: import_v42.z.number(), cleared_input_tokens: import_v42.z.number() }), import_v42.z.object({ type: import_v42.z.literal("compact_20260112") }) ]) ) }).nullish() }), import_v42.z.object({ type: import_v42.z.literal("message_stop") }), import_v42.z.object({ type: import_v42.z.literal("ping") }) ]) ) ); var anthropicReasoningMetadataSchema = (0, import_provider_utils2.lazySchema)( () => (0, import_provider_utils2.zodSchema)( import_v42.z.object({ signature: import_v42.z.string().optional(), redactedData: import_v42.z.string().optional() }) ) ); // src/anthropic-messages-options.ts var import_v43 = require("zod/v4"); var anthropicFilePartProviderOptions = import_v43.z.object({ /** * Citation configuration for this document. * When enabled, this document will generate citations in the response. */ citations: import_v43.z.object({ /** * Enable citations for this document */ enabled: import_v43.z.boolean() }).optional(), /** * Custom title for the document. * If not provided, the filename will be used. */ title: import_v43.z.string().optional(), /** * Context about the document that will be passed to the model * but not used towards cited content. * Useful for storing document metadata as text or stringified JSON. */ context: import_v43.z.string().optional() }); var anthropicLanguageModelOptions = import_v43.z.object({ /** * Whether to send reasoning to the model. * * This allows you to deactivate reasoning inputs for models that do not support them. */ sendReasoning: import_v43.z.boolean().optional(), /** * Determines how structured outputs are generated. * * - `outputFormat`: Use the `output_config.format` parameter to specify the structured output format. * - `jsonTool`: Use a special 'json' tool to specify the structured output format. * - `auto`: Use 'outputFormat' when supported, otherwise use 'jsonTool' (default). */ structuredOutputMode: import_v43.z.enum(["outputFormat", "jsonTool", "auto"]).optional(), /** * Configuration for enabling Claude's extended thinking. * * When enabled, responses include thinking content blocks showing Claude's thinking process before the final answer. * Requires a minimum budget of 1,024 tokens and counts towards the `max_tokens` limit. */ thinking: import_v43.z.discriminatedUnion("type", [ import_v43.z.object({ /** for Sonnet 4.6, Opus 4.6, and newer models */ type: import_v43.z.literal("adaptive") }), import_v43.z.object({ /** for models before Opus 4.6, except Sonnet 4.6 still supports it */ type: import_v43.z.literal("enabled"), budgetTokens: import_v43.z.number().optional() }), import_v43.z.object({ type: import_v43.z.literal("disabled") }) ]).optional(), /** * Whether to disable parallel function calling during tool use. Default is false. * When set to true, Claude will use at most one tool per response. */ disableParallelToolUse: import_v43.z.boolean().optional(), /** * Cache control settings for this message. * See https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching */ cacheControl: import_v43.z.object({ type: import_v43.z.literal("ephemeral"), ttl: import_v43.z.union([import_v43.z.literal("5m"), import_v43.z.literal("1h")]).optional() }).optional(), /** * MCP servers to be utilized in this request. */ mcpServers: import_v43.z.array( import_v43.z.object({ type: import_v43.z.literal("url"), name: import_v43.z.string(), url: import_v43.z.string(), authorizationToken: import_v43.z.string().nullish(), toolConfiguration: import_v43.z.object({ enabled: import_v43.z.boolean().nullish(), allowedTools: import_v43.z.array(import_v43.z.string()).nullish() }).nullish() }) ).optional(), /** * Agent Skills configuration. Skills enable Claude to perform specialized tasks * like document processing (PPTX, DOCX, PDF, XLSX) and data analysis. * Requires code execution tool to be enabled. */ container: import_v43.z.object({ id: import_v43.z.string().optional(), skills: import_v43.z.array( import_v43.z.object({ type: import_v43.z.union([import_v43.z.literal("anthropic"), import_v43.z.literal("custom")]), skillId: import_v43.z.string(), version: import_v43.z.string().optional() }) ).optional() }).optional(), /** * Whether to enable tool streaming (and structured output streaming). * * When set to false, the model will return all tool calls and results * at once after a delay. * * @default true */ toolStreaming: import_v43.z.boolean().optional(), /** * @default 'high' */ effort: import_v43.z.enum(["low", "medium", "high", "max"]).optional(), /** * Enable fast mode for faster inference (2.5x faster output token speeds). * Only supported with claude-opus-4-6. */ speed: import_v43.z.enum(["fast", "standard"]).optional(), /** * A set of beta features to enable. * Allow a provider to receive the full `betas` set if it needs it. */ anthropicBeta: import_v43.z.array(import_v43.z.string()).optional(), contextManagement: import_v43.z.object({ edits: import_v43.z.array( import_v43.z.discriminatedUnion("type", [ import_v43.z.object({ type: import_v43.z.literal("clear_tool_uses_20250919"), trigger: import_v43.z.discriminatedUnion("type", [ import_v43.z.object({ type: import_v43.z.literal("input_tokens"), value: import_v43.z.number() }), import_v43.z.object({ type: import_v43.z.literal("tool_uses"), value: import_v43.z.number() }) ]).optional(), keep: import_v43.z.object({ type: import_v43.z.literal("tool_uses"), value: import_v43.z.number() }).optional(), clearAtLeast: import_v43.z.object({ type: import_v43.z.literal("input_tokens"), value: import_v43.z.number() }).optional(), clearToolInputs: import_v43.z.boolean().optional(), excludeTools: import_v43.z.array(import_v43.z.string()).optional() }), import_v43.z.object({ type: import_v43.z.literal("clear_thinking_20251015"), keep: import_v43.z.union([ import_v43.z.literal("all"), import_v43.z.object({ type: import_v43.z.literal("thinking_turns"), value: import_v43.z.number() }) ]).optional() }), import_v43.z.object({ type: import_v43.z.literal("compact_20260112"), trigger: import_v43.z.object({ type: import_v43.z.literal("input_tokens"), value: import_v43.z.number() }).optional(), pauseAfterCompaction: import_v43.z.boolean().optional(), instructions: import_v43.z.string().optional() }) ]) ) }).optional() }); // src/anthropic-prepare-tools.ts var import_provider = require("@ai-sdk/provider"); // src/get-cache-control.ts var MAX_CACHE_BREAKPOINTS = 4; function getCacheControl(providerMetadata) { var _a; const anthropic2 = providerMetadata == null ? void 0 : providerMetadata.anthropic; const cacheControlValue = (_a = anthropic2 == null ? void 0 : anthropic2.cacheControl) != null ? _a : anthropic2 == null ? void 0 : anthropic2.cache_control; return cacheControlValue; } var CacheControlValidator = class { constructor() { this.breakpointCount = 0; this.warnings = []; } getCacheControl(providerMetadata, context) { const cacheControlValue = getCacheControl(providerMetadata); if (!cacheControlValue) { return void 0; } if (!context.canCache) { this.warnings.push({ type: "unsupported", feature: "cache_control on non-cacheable context", details: `cache_control cannot be set on ${context.type}. It will be ignored.` }); return void 0; } this.breakpointCount++; if (this.breakpointCount > MAX_CACHE_BREAKPOINTS) { this.warnings.push({ type: "unsupported", feature: "cacheControl breakpoint limit", details: `Maximum ${MAX_CACHE_BREAKPOINTS} cache breakpoints exceeded (found ${this.breakpointCount}). This breakpoint will be ignored.` }); return void 0; } return cacheControlValue; } getWarnings() { return this.warnings; } }; // src/tool/text-editor_20250728.ts var import_provider_utils3 = require("@ai-sdk/provider-utils"); var import_v44 = require("zod/v4"); var import_provider_utils4 = require("@ai-sdk/provider-utils"); var textEditor_20250728ArgsSchema = (0, import_provider_utils4.lazySchema)( () => (0, import_provider_utils4.zodSchema)( import_v44.z.object({ maxCharacters: import_v44.z.number().optional() }) ) ); var textEditor_20250728InputSchema = (0, import_provider_utils4.lazySchema)( () => (0, import_provider_utils4.zodSchema)( import_v44.z.object({ command: import_v44.z.enum(["view", "create", "str_replace", "insert"]), path: import_v44.z.string(), file_text: import_v44.z.string().optional(), insert_line: import_v44.z.number().int().optional(), new_str: import_v44.z.string().optional(), insert_text: import_v44.z.string().optional(), old_str: import_v44.z.string().optional(), view_range: import_v44.z.array(import_v44.z.number().int()).optional() }) ) ); var factory = (0, import_provider_utils3.createProviderToolFactory)({ id: "anthropic.text_editor_20250728", inputSchema: textEditor_20250728InputSchema }); var textEditor_20250728 = (args = {}) => { return factory(args); }; // src/tool/web-search_20260209.ts var import_provider_utils5 = require("@ai-sdk/provider-utils"); var import_v45 = require("zod/v4"); var webSearch_20260209ArgsSchema = (0, import_provider_utils5.lazySchema)( () => (0, import_provider_utils5.zodSchema)( import_v45.z.object({ maxUses: import_v45.z.number().optional(), allowedDomains: import_v45.z.array(import_v45.z.string()).optional(), blockedDomains: import_v45.z.array(import_v45.z.string()).optional(), userLocation: import_v45.z.object({ type: import_v45.z.literal("approximate"), city: import_v45.z.string().optional(), region: import_v45.z.string().optional(), country: import_v45.z.string().optional(), timezone: import_v45.z.string().optional() }).optional() }) ) ); var webSearch_20260209OutputSchema = (0, import_provider_utils5.lazySchema)( () => (0, import_provider_utils5.zodSchema)( import_v45.z.array( import_v45.z.object({ url: import_v45.z.string(), title: import_v45.z.string().nullable(), pageAge: import_v45.z.string().nullable(), encryptedContent: import_v45.z.string(), type: import_v45.z.literal("web_search_result") }) ) ) ); var webSearch_20260209InputSchema = (0, import_provider_utils5.lazySchema)( () => (0, import_provider_utils5.zodSchema)( import_v45.z.object({ query: import_v45.z.string() }) ) ); var factory2 = (0, import_provider_utils5.createProviderToolFactoryWithOutputSchema)({ id: "anthropic.web_search_20260209", inputSchema: webSearch_20260209InputSchema, outputSchema: webSearch_20260209OutputSchema, supportsDeferredResults: true }); var webSearch_20260209 = (args = {}) => { return factory2(args); }; // src/tool/web-search_20250305.ts var import_provider_utils6 = require("@ai-sdk/provider-utils"); var import_v46 = require("zod/v4"); var webSearch_20250305ArgsSchema = (0, import_provider_utils6.lazySchema)( () => (0, import_provider_utils6.zodSchema)( import_v46.z.object({ maxUses: import_v46.z.number().optional(), allowedDomains: import_v46.z.array(import_v46.z.string()).optional(), blockedDomains: import_v46.z.array(import_v46.z.string()).optional(), userLocation: import_v46.z.object({ type: import_v46.z.literal("approximate"), city: import_v46.z.string().optional(), region: import_v46.z.string().optional(), country: import_v46.z.string().optional(), timezone: import_v46.z.string().optional() }).optional() }) ) ); var webSearch_20250305OutputSchema = (0, import_provider_utils6.lazySchema)( () => (0, import_provider_utils6.zodSchema)( import_v46.z.array( import_v46.z.object({ url: import_v46.z.string(), title: import_v46.z.string().nullable(), pageAge: import_v46.z.string().nullable(), encryptedContent: import_v46.z.string(), type: import_v46.z.literal("web_search_result") }) ) ) ); var webSearch_20250305InputSchema = (0, import_provider_utils6.lazySchema)( () => (0, import_provider_utils6.zodSchema)( import_v46.z.object({ query: import_v46.z.string() }) ) ); var factory3 = (0, import_provider_utils6.createProviderToolFactoryWithOutputSchema)({ id: "anthropic.web_search_20250305", inputSchema: webSearch_20250305InputSchema, outputSchema: webSearch_20250305OutputSchema, supportsDeferredResults: true }); var webSearch_20250305 = (args = {}) => { return factory3(args); }; // src/tool/web-fetch-20260209.ts var import_provider_utils7 = require("@ai-sdk/provider-utils"); var import_v47 = require("zod/v4"); var webFetch_20260209ArgsSchema = (0, import_provider_utils7.lazySchema)( () => (0, import_provider_utils7.zodSchema)( import_v47.z.object({ maxUses: import_v47.z.number().optional(), allowedDomains: import_v47.z.array(import_v47.z.string()).optional(), blockedDomains: import_v47.z.array(import_v47.z.string()).optional(), citations: import_v47.z.object({ enabled: import_v47.z.boolean() }).optional(), maxContentTokens: import_v47.z.number().optional() }) ) ); var webFetch_20260209OutputSchema = (0, import_provider_utils7.lazySchema)( () => (0, import_provider_utils7.zodSchema)( import_v47.z.object({ type: import_v47.z.literal("web_fetch_result"), url: import_v47.z.string(), content: import_v47.z.object({ type: import_v47.z.literal("document"), title: import_v47.z.string().nullable(), citations: import_v47.z.object({ enabled: import_v47.z.boolean() }).optional(), source: import_v47.z.union([ import_v47.z.object({ type: import_v47.z.literal("base64"), mediaType: import_v47.z.literal("application/pdf"), data: import_v47.z.string() }), import_v47.z.object({ type: import_v47.z.literal("text"), mediaType: import_v47.z.literal("text/plain"), data: import_v47.z.string() }) ]) }), retrievedAt: import_v47.z.string().nullable() }) ) ); var webFetch_20260209InputSchema = (0, import_provider_utils7.lazySchema)( () => (0, import_provider_utils7.zodSchema)( import_v47.z.object({ url: import_v47.z.string() }) ) ); var factory4 = (0, import_provider_utils7.createProviderToolFactoryWithOutputSchema)({ id: "anthropic.web_fetch_20260209", inputSchema: webFetch_20260209InputSchema, outputSchema: webFetch_20260209OutputSchema, supportsDeferredResults: true }); var webFetch_20260209 = (args = {}) => { return factory4(args); }; // src/tool/web-fetch-20250910.ts var import_provider_utils8 = require("@ai-sdk/provider-utils"); var import_v48 = require("zod/v4"); var webFetch_20250910ArgsSchema = (0, import_provider_utils8.lazySchema)( () => (0, import_provider_utils8.zodSchema)( import_v48.z.object({ maxUses: import_v48.z.number().optional(), allowedDomains: import_v48.z.array(import_v48.z.string()).optional(), blockedDomains: import_v48.z.array(import_v48.z.string()).optional(), citations: import_v48.z.object({ enabled: import_v48.z.boolean() }).optional(), maxContentTokens: import_v48.z.number().optional() }) ) ); var webFetch_20250910OutputSchema = (0, import_provider_utils8.lazySchema)( () => (0, import_provider_utils8.zodSchema)( import_v48.z.object({ type: import_v48.z.literal("web_fetch_result"), url: import_v48.z.string(), content: import_v48.z.object({ type: import_v48.z.literal("document"), title: import_v48.z.string().nullable(), citations: import_v48.z.object({ enabled: import_v48.z.boolean() }).optional(), source: import_v48.z.union([ import_v48.z.object({ type: import_v48.z.literal("base64"), mediaType: import_v48.z.literal("application/pdf"), data: import_v48.z.string()