@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
JavaScript
"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()