@ai-sdk/amazon-bedrock 4.0.175 → 4.0.177
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.
- package/CHANGELOG.md +16 -0
- package/dist/anthropic/index.d.mts +3 -1
- package/dist/anthropic/index.d.ts +3 -1
- package/dist/anthropic/index.js +59 -24
- package/dist/anthropic/index.js.map +1 -1
- package/dist/anthropic/index.mjs +53 -16
- package/dist/anthropic/index.mjs.map +1 -1
- package/dist/index.d.mts +15 -4
- package/dist/index.d.ts +15 -4
- package/dist/index.js +112 -57
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +110 -53
- package/dist/index.mjs.map +1 -1
- package/dist/mantle/index.js +1 -1
- package/dist/mantle/index.mjs +1 -1
- package/docs/08-amazon-bedrock.mdx +43 -0
- package/package.json +3 -3
- package/src/anthropic/bedrock-anthropic-provider.ts +13 -7
- package/src/bedrock-anthropic-model-support.ts +19 -0
- package/src/bedrock-chat-language-model.ts +13 -7
- package/src/bedrock-chat-options.ts +10 -0
- package/src/bedrock-prepare-tools.ts +14 -2
- package/src/bedrock-provider.ts +44 -18
- package/src/index.ts +1 -0
- package/src/resolve-bedrock-base-url.ts +51 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/anthropic/bedrock-anthropic-provider.ts","../../src/bedrock-sigv4-fetch.ts","../../src/version.ts","../../src/bedrock-anthropic-model-support.ts","../../src/anthropic/bedrock-anthropic-fetch.ts","../../src/bedrock-event-stream-decoder.ts"],"sourcesContent":["import {\n NoSuchModelError,\n type LanguageModelV3,\n type ProviderV3,\n} from '@ai-sdk/provider';\nimport {\n loadOptionalSetting,\n loadSetting,\n resolve,\n withoutTrailingSlash,\n withUserAgentSuffix,\n type FetchFunction,\n type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport {\n anthropicTools,\n AnthropicMessagesLanguageModel,\n} from '@ai-sdk/anthropic/internal';\nimport {\n createApiKeyFetchFunction,\n createSigV4FetchFunction,\n type BedrockCredentials,\n} from '../bedrock-sigv4-fetch';\nimport {\n supportsNativeStructuredOutput,\n supportsStrictTools,\n} from '../bedrock-anthropic-model-support';\nimport { createBedrockAnthropicFetch } from './bedrock-anthropic-fetch';\nimport type { BedrockAnthropicModelId } from './bedrock-anthropic-options';\nimport { VERSION } from '../version';\n\n// Bedrock requires newer tool versions than the default Anthropic SDK versions\nconst BEDROCK_TOOL_VERSION_MAP = {\n bash_20241022: 'bash_20250124',\n text_editor_20241022: 'text_editor_20250728',\n computer_20241022: 'computer_20250124',\n} as const;\n\n// Tool name mappings when upgrading versions (text_editor_20250728 requires different name)\nconst BEDROCK_TOOL_NAME_MAP: Record<string, string> = {\n text_editor_20250728: 'str_replace_based_edit_tool',\n};\n\n// Map tool types to required anthropic_beta values for Bedrock\nconst BEDROCK_TOOL_BETA_MAP: Record<string, string> = {\n bash_20250124: 'computer-use-2025-01-24',\n bash_20241022: 'computer-use-2024-10-22',\n text_editor_20250124: 'computer-use-2025-01-24',\n text_editor_20241022: 'computer-use-2024-10-22',\n text_editor_20250429: 'computer-use-2025-01-24',\n text_editor_20250728: 'computer-use-2025-01-24',\n computer_20250124: 'computer-use-2025-01-24',\n computer_20241022: 'computer-use-2024-10-22',\n tool_search_tool_regex_20251119: 'tool-search-tool-2025-10-19',\n // BM25 is not currently supported on Bedrock, but including the beta flag\n // so that Bedrock returns a more useful error message if it's used.\n tool_search_tool_bm25_20251119: 'tool-search-tool-2025-10-19',\n};\n\nexport interface BedrockAnthropicProvider extends ProviderV3 {\n /**\n * Creates a model for text generation.\n */\n (modelId: BedrockAnthropicModelId): LanguageModelV3;\n\n /**\n * Creates a model for text generation.\n */\n languageModel(modelId: BedrockAnthropicModelId): LanguageModelV3;\n\n /**\n * Anthropic-specific computer use tool.\n */\n tools: typeof anthropicTools;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface BedrockAnthropicProviderSettings {\n /**\n * The AWS region to use for the Bedrock provider. Defaults to the value of the\n * `AWS_REGION` environment variable.\n */\n region?: string;\n\n /**\n * API key for authenticating requests using Bearer token authentication.\n * When provided, this will be used instead of AWS SigV4 authentication.\n * Defaults to the value of the `AWS_BEARER_TOKEN_BEDROCK` environment variable.\n */\n apiKey?: string;\n\n /**\n * The AWS access key ID to use for the Bedrock provider. Defaults to the value of the\n * `AWS_ACCESS_KEY_ID` environment variable.\n */\n accessKeyId?: string;\n\n /**\n * The AWS secret access key to use for the Bedrock provider. Defaults to the value of the\n * `AWS_SECRET_ACCESS_KEY` environment variable.\n */\n secretAccessKey?: string;\n\n /**\n * The AWS session token to use for the Bedrock provider. Defaults to the value of the\n * `AWS_SESSION_TOKEN` environment variable.\n */\n sessionToken?: string;\n\n /**\n * Base URL for the Bedrock API calls.\n */\n baseURL?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Resolvable<Record<string, string | undefined>>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n\n /**\n * The AWS credential provider to use for the Bedrock provider to get dynamic\n * credentials similar to the AWS SDK. Setting a provider here will cause its\n * credential values to be used instead of the `accessKeyId`, `secretAccessKey`,\n * and `sessionToken` settings.\n */\n credentialProvider?: () => PromiseLike<Omit<BedrockCredentials, 'region'>>;\n}\n\n/**\n * Create an Amazon Bedrock Anthropic provider instance.\n * This provider uses the native Anthropic API through Bedrock's InvokeModel endpoint,\n * bypassing the Converse API for better feature compatibility.\n */\nexport function createBedrockAnthropic(\n options: BedrockAnthropicProviderSettings = {},\n): BedrockAnthropicProvider {\n // Check for API key authentication first\n const rawApiKey = loadOptionalSetting({\n settingValue: options.apiKey,\n environmentVariableName: 'AWS_BEARER_TOKEN_BEDROCK',\n });\n\n // Only use API key if it's a non-empty, non-whitespace string\n const apiKey =\n rawApiKey && rawApiKey.trim().length > 0 ? rawApiKey.trim() : undefined;\n\n // Use API key authentication if available, otherwise fall back to SigV4\n const baseFetchFunction = apiKey\n ? createApiKeyFetchFunction(apiKey, options.fetch)\n : createSigV4FetchFunction(async () => {\n const region = loadSetting({\n settingValue: options.region,\n settingName: 'region',\n environmentVariableName: 'AWS_REGION',\n description: 'AWS region',\n });\n\n // If a credential provider is provided, use it to get the credentials.\n if (options.credentialProvider) {\n try {\n return {\n ...(await options.credentialProvider()),\n region,\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n throw new Error(\n `AWS credential provider failed: ${errorMessage}. ` +\n 'Please ensure your credential provider returns valid AWS credentials ' +\n 'with accessKeyId and secretAccessKey properties.',\n );\n }\n }\n\n try {\n return {\n region,\n accessKeyId: loadSetting({\n settingValue: options.accessKeyId,\n settingName: 'accessKeyId',\n environmentVariableName: 'AWS_ACCESS_KEY_ID',\n description: 'AWS access key ID',\n }),\n secretAccessKey: loadSetting({\n settingValue: options.secretAccessKey,\n settingName: 'secretAccessKey',\n environmentVariableName: 'AWS_SECRET_ACCESS_KEY',\n description: 'AWS secret access key',\n }),\n sessionToken: loadOptionalSetting({\n settingValue: options.sessionToken,\n environmentVariableName: 'AWS_SESSION_TOKEN',\n }),\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n if (\n errorMessage.includes('AWS_ACCESS_KEY_ID') ||\n errorMessage.includes('accessKeyId')\n ) {\n throw new Error(\n 'AWS SigV4 authentication requires AWS credentials. Please provide either:\\n' +\n '1. Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables\\n' +\n '2. Provide accessKeyId and secretAccessKey in options\\n' +\n '3. Use a credentialProvider function\\n' +\n '4. Use API key authentication with AWS_BEARER_TOKEN_BEDROCK or apiKey option\\n' +\n `Original error: ${errorMessage}`,\n );\n }\n if (\n errorMessage.includes('AWS_SECRET_ACCESS_KEY') ||\n errorMessage.includes('secretAccessKey')\n ) {\n throw new Error(\n 'AWS SigV4 authentication requires both AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. ' +\n 'Please ensure both credentials are provided.\\n' +\n `Original error: ${errorMessage}`,\n );\n }\n throw error;\n }\n }, options.fetch);\n\n // Wrap with Bedrock event stream to SSE transformer for streaming support\n const fetchFunction = createBedrockAnthropicFetch(baseFetchFunction);\n\n const getBaseURL = (): string =>\n withoutTrailingSlash(\n options.baseURL ??\n `https://bedrock-runtime.${loadSetting({\n settingValue: options.region,\n settingName: 'region',\n environmentVariableName: 'AWS_REGION',\n description: 'AWS region',\n })}.amazonaws.com`,\n ) ?? 'https://bedrock-runtime.us-east-1.amazonaws.com';\n\n const getHeaders = async () => {\n const baseHeaders = (await resolve(options.headers)) ?? {};\n return withUserAgentSuffix(baseHeaders, `ai-sdk/amazon-bedrock/${VERSION}`);\n };\n\n const createChatModel = (modelId: BedrockAnthropicModelId) =>\n new AnthropicMessagesLanguageModel(modelId, {\n provider: 'bedrock.anthropic.messages',\n baseURL: getBaseURL(),\n headers: getHeaders,\n fetch: fetchFunction,\n\n buildRequestUrl: (baseURL, isStreaming) =>\n `${baseURL}/model/${encodeURIComponent(modelId)}/${\n isStreaming ? 'invoke-with-response-stream' : 'invoke'\n }`,\n\n transformRequestBody: (args, betas) => {\n const { model, stream, tool_choice, tools, ...rest } = args;\n\n const transformedToolChoice =\n tool_choice != null\n ? {\n type: tool_choice.type,\n ...(tool_choice.name != null ? { name: tool_choice.name } : {}),\n }\n : undefined;\n\n const requiredBetas = new Set<string>(betas);\n const transformedTools = tools?.map(\n (rawTool: Record<string, unknown>) => {\n // Bedrock rejects the per-tool eager_input_streaming field even when\n // the fine-grained-tool-streaming beta is declared, but the beta alone\n // enables the same behavior, so translate the field into the beta\n const { eager_input_streaming: eagerInputStreaming, ...tool } =\n rawTool;\n if (eagerInputStreaming === true) {\n requiredBetas.add('fine-grained-tool-streaming-2025-05-14');\n }\n\n const toolType = tool.type as string | undefined;\n\n if (toolType && toolType in BEDROCK_TOOL_VERSION_MAP) {\n const newType =\n BEDROCK_TOOL_VERSION_MAP[\n toolType as keyof typeof BEDROCK_TOOL_VERSION_MAP\n ];\n if (newType in BEDROCK_TOOL_BETA_MAP) {\n requiredBetas.add(BEDROCK_TOOL_BETA_MAP[newType]);\n }\n const newName =\n newType in BEDROCK_TOOL_NAME_MAP\n ? BEDROCK_TOOL_NAME_MAP[newType]\n : tool.name;\n return {\n ...tool,\n type: newType,\n name: newName,\n };\n }\n\n if (toolType && toolType in BEDROCK_TOOL_BETA_MAP) {\n requiredBetas.add(BEDROCK_TOOL_BETA_MAP[toolType]);\n }\n\n if (toolType && toolType in BEDROCK_TOOL_NAME_MAP) {\n return {\n ...tool,\n name: BEDROCK_TOOL_NAME_MAP[toolType],\n };\n }\n\n return tool;\n },\n );\n\n return {\n ...rest,\n ...(transformedTools != null ? { tools: transformedTools } : {}),\n ...(transformedToolChoice != null\n ? { tool_choice: transformedToolChoice }\n : {}),\n ...(requiredBetas.size > 0\n ? { anthropic_beta: Array.from(requiredBetas) }\n : {}),\n anthropic_version: 'bedrock-2023-05-31',\n };\n },\n\n // Bedrock Anthropic doesn't support URL sources, force download and base64 conversion\n supportedUrls: () => ({}),\n supportsNativeStructuredOutput: supportsNativeStructuredOutput(modelId),\n supportsStrictTools: supportsStrictTools(modelId),\n });\n\n const provider = function (modelId: BedrockAnthropicModelId) {\n if (new.target) {\n throw new Error(\n 'The Bedrock Anthropic model function cannot be called with the new keyword.',\n );\n }\n\n return createChatModel(modelId);\n };\n\n provider.specificationVersion = 'v3' as const;\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.messages = createChatModel;\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n };\n\n provider.tools = anthropicTools;\n\n return provider;\n}\n\n/**\n * Default Bedrock Anthropic provider instance.\n */\nexport const bedrockAnthropic = createBedrockAnthropic();\n","import {\n combineHeaders,\n normalizeHeaders,\n withUserAgentSuffix,\n getRuntimeEnvironmentUserAgent,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { AwsV4Signer } from 'aws4fetch';\nimport { VERSION } from './version';\n\nexport interface BedrockCredentials {\n region: string;\n accessKeyId: string;\n secretAccessKey: string;\n sessionToken?: string;\n}\n\n/**\n * Creates a fetch function that applies AWS Signature Version 4 signing.\n *\n * @param getCredentials - Function that returns the AWS credentials to use when signing.\n * @param fetch - Optional original fetch implementation to wrap. Defaults to global fetch.\n * @param service - The AWS service name to use for SigV4 signing scope. Defaults to 'bedrock'.\n * @returns A FetchFunction that signs requests before passing them to the underlying fetch.\n */\nexport function createSigV4FetchFunction(\n getCredentials: () => BedrockCredentials | PromiseLike<BedrockCredentials>,\n fetch?: FetchFunction,\n service: string = 'bedrock',\n): FetchFunction {\n return async (\n input: RequestInfo | URL,\n init?: RequestInit,\n ): Promise<Response> => {\n // avoid caching globalThis.fetch in case it is patched by other libraries\n const effectiveFetch = fetch ?? globalThis.fetch;\n const request = input instanceof Request ? input : undefined;\n const originalHeaders = combineHeaders(\n normalizeHeaders(request?.headers),\n normalizeHeaders(init?.headers),\n );\n const headersWithUserAgent = withUserAgentSuffix(\n originalHeaders,\n `ai-sdk/amazon-bedrock/${VERSION}`,\n getRuntimeEnvironmentUserAgent(),\n );\n\n let effectiveBody: BodyInit | undefined = init?.body ?? undefined;\n if (effectiveBody === undefined && request && request.body !== null) {\n try {\n effectiveBody = await request.clone().text();\n } catch {}\n }\n\n const effectiveMethod = init?.method ?? request?.method;\n\n if (effectiveMethod?.toUpperCase() !== 'POST' || !effectiveBody) {\n return effectiveFetch(input, {\n ...init,\n headers: headersWithUserAgent as HeadersInit,\n });\n }\n\n const url =\n typeof input === 'string'\n ? input\n : input instanceof URL\n ? input.href\n : input.url;\n\n const body = prepareBodyString(effectiveBody);\n const credentials = await getCredentials();\n const signer = new AwsV4Signer({\n url,\n method: 'POST',\n headers: Object.entries(headersWithUserAgent),\n body,\n region: credentials.region,\n accessKeyId: credentials.accessKeyId,\n secretAccessKey: credentials.secretAccessKey,\n sessionToken: credentials.sessionToken,\n service,\n });\n\n const signingResult = await signer.sign();\n const signedHeaders = normalizeHeaders(signingResult.headers);\n\n // Use the combined headers directly as HeadersInit\n const combinedHeaders = combineHeaders(headersWithUserAgent, signedHeaders);\n\n return effectiveFetch(input, {\n ...init,\n body,\n headers: combinedHeaders as HeadersInit,\n });\n };\n}\n\nfunction prepareBodyString(body: BodyInit | undefined): string {\n if (typeof body === 'string') {\n return body;\n } else if (body instanceof Uint8Array) {\n return new TextDecoder().decode(body);\n } else if (body instanceof ArrayBuffer) {\n return new TextDecoder().decode(new Uint8Array(body));\n } else {\n return JSON.stringify(body);\n }\n}\n\n/**\n * Creates a fetch function that applies Bearer token authentication.\n *\n * @param apiKey - The API key to use for Bearer token authentication.\n * @param fetch - Optional original fetch implementation to wrap. Defaults to global fetch.\n * @returns A FetchFunction that adds Authorization header with Bearer token to requests.\n */\nexport function createApiKeyFetchFunction(\n apiKey: string,\n fetch?: FetchFunction,\n): FetchFunction {\n return async (\n input: RequestInfo | URL,\n init?: RequestInit,\n ): Promise<Response> => {\n // avoid caching globalThis.fetch in case it is patched by other libraries\n const effectiveFetch = fetch ?? globalThis.fetch;\n const originalHeaders = normalizeHeaders(init?.headers);\n const headersWithUserAgent = withUserAgentSuffix(\n originalHeaders,\n `ai-sdk/amazon-bedrock/${VERSION}`,\n getRuntimeEnvironmentUserAgent(),\n );\n\n const finalHeaders = combineHeaders(headersWithUserAgent, {\n Authorization: `Bearer ${apiKey}`,\n });\n\n return effectiveFetch(input, {\n ...init,\n headers: finalHeaders as HeadersInit,\n });\n };\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n","export function supportsStrictTools(modelId: string): boolean {\n return !matchesModel(modelId, MODELS_WITHOUT_STRICT_TOOL_SUPPORT);\n}\n\nexport function supportsNativeStructuredOutput(modelId: string): boolean {\n return !matchesModel(\n modelId,\n MODELS_WITHOUT_RELIABLE_NATIVE_STRUCTURED_OUTPUT,\n );\n}\n\n// Bedrock validates against its own copy of the Messages schema, which rejects\n// `output_config.format` and tool `strict` for the newest Claude models\nconst MODELS_WITHOUT_STRICT_TOOL_SUPPORT = [\n 'claude-opus-4-7',\n 'claude-opus-4-8',\n 'claude-opus-5',\n 'claude-fable-5',\n 'claude-sonnet-5',\n];\n\n// Native structured output is unreliable for additional models even though\n// their strict tool support remains available. Sonnet 4.6 can fail to adhere\n// to complex schemas, while Haiku 4.5 support varies between Bedrock accounts.\nconst MODELS_WITHOUT_RELIABLE_NATIVE_STRUCTURED_OUTPUT = [\n ...MODELS_WITHOUT_STRICT_TOOL_SUPPORT,\n 'claude-sonnet-4-6',\n 'claude-haiku-4-5',\n];\n\nfunction matchesModel(modelId: string, models: string[]): boolean {\n return models.some(model => modelId.includes(model));\n}\n","import {\n convertBase64ToUint8Array,\n safeParseJSON,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { createBedrockEventStreamDecoder } from '../bedrock-event-stream-decoder';\n\nconst bedrockErrorSchema = z.looseObject({\n message: z.string().optional(),\n});\n\nexport function createBedrockAnthropicFetch(\n baseFetch: FetchFunction,\n): FetchFunction {\n return async (url, options) => {\n const response = await baseFetch(url, options);\n\n // Transform Bedrock error responses into Anthropic error format\n // so that anthropicFailedResponseHandler can extract the message.\n if (!response.ok) {\n const text = await response.text();\n const parsed = await safeParseJSON({ text, schema: bedrockErrorSchema });\n\n const message =\n parsed.success && parsed.value.message ? parsed.value.message : text;\n\n const anthropicError = JSON.stringify({\n type: 'error',\n error: { type: 'error', message },\n });\n\n return new Response(anthropicError, {\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n });\n }\n\n const contentType = response.headers.get('content-type');\n if (\n contentType?.includes('application/vnd.amazon.eventstream') &&\n response.body != null\n ) {\n const transformedBody = transformBedrockEventStreamToSSE(response.body);\n\n return new Response(transformedBody, {\n status: response.status,\n statusText: response.statusText,\n headers: new Headers({\n ...Object.fromEntries(response.headers.entries()),\n 'content-type': 'text/event-stream',\n }),\n });\n }\n\n return response;\n };\n}\n\nfunction transformBedrockEventStreamToSSE(\n body: ReadableStream<Uint8Array>,\n): ReadableStream<Uint8Array> {\n const textEncoder = new TextEncoder();\n\n return createBedrockEventStreamDecoder(body, async (event, controller) => {\n if (event.messageType === 'event') {\n if (event.eventType === 'chunk') {\n const parsed = await safeParseJSON({ text: event.data });\n if (!parsed.success) {\n controller.enqueue(textEncoder.encode(`data: ${event.data}\\n\\n`));\n return;\n }\n const bytes = (parsed.value as { bytes?: string }).bytes;\n if (bytes) {\n const anthropicEvent = new TextDecoder().decode(\n convertBase64ToUint8Array(bytes),\n );\n controller.enqueue(textEncoder.encode(`data: ${anthropicEvent}\\n\\n`));\n } else {\n controller.enqueue(textEncoder.encode(`data: ${event.data}\\n\\n`));\n }\n } else if (event.eventType === 'messageStop') {\n controller.enqueue(textEncoder.encode('data: [DONE]\\n\\n'));\n }\n } else if (event.messageType === 'exception') {\n controller.enqueue(\n textEncoder.encode(\n `data: ${JSON.stringify({ type: 'error', error: event.data })}\\n\\n`,\n ),\n );\n }\n });\n}\n","import { EventStreamCodec } from '@smithy/eventstream-codec';\nimport { toUtf8, fromUtf8 } from '@smithy/util-utf8';\n\nexport interface DecodedEvent {\n messageType: string;\n eventType?: string;\n exceptionType?: string;\n data: string;\n}\n\nexport function createBedrockEventStreamDecoder<T>(\n body: ReadableStream<Uint8Array>,\n processEvent: (\n event: DecodedEvent,\n controller: TransformStreamDefaultController<T>,\n ) => void | Promise<void>,\n): ReadableStream<T> {\n const codec = new EventStreamCodec(toUtf8, fromUtf8);\n let buffer = new Uint8Array(0);\n const textDecoder = new TextDecoder();\n\n return body.pipeThrough(\n new TransformStream<Uint8Array, T>({\n async transform(chunk, controller) {\n const newBuffer = new Uint8Array(buffer.length + chunk.length);\n newBuffer.set(buffer);\n newBuffer.set(chunk, buffer.length);\n buffer = newBuffer;\n\n while (buffer.length >= 4) {\n const totalLength = new DataView(\n buffer.buffer,\n buffer.byteOffset,\n buffer.byteLength,\n ).getUint32(0, false);\n\n if (buffer.length < totalLength) {\n break;\n }\n\n const subView = buffer.subarray(0, totalLength);\n const decoded = codec.decode(subView);\n\n buffer = buffer.slice(totalLength);\n\n const messageType = decoded.headers[':message-type']?.value as string;\n const eventType = decoded.headers[':event-type']?.value as\n | string\n | undefined;\n const exceptionType = decoded.headers[':exception-type']?.value as\n | string\n | undefined;\n const data = textDecoder.decode(decoded.body);\n\n await processEvent(\n { messageType, eventType, exceptionType, data },\n controller,\n );\n }\n },\n flush() {\n if (buffer.length > 0) {\n throw new Error(\n `Incomplete Amazon Bedrock event-stream frame: ${buffer.length} buffered bytes remain at end of stream.`,\n );\n }\n },\n }),\n );\n}\n"],"mappings":";AAAA;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,uBAAAA;AAAA,OAGK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;;;ACjBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,mBAAmB;;;ACLrB,IAAM,UACX,OACI,YACA;;;ADoBC,SAAS,yBACd,gBACA,OACA,UAAkB,WACH;AACf,SAAO,OACL,OACA,SACsB;AAjC1B;AAmCI,UAAM,iBAAiB,wBAAS,WAAW;AAC3C,UAAM,UAAU,iBAAiB,UAAU,QAAQ;AACnD,UAAM,kBAAkB;AAAA,MACtB,iBAAiB,mCAAS,OAAO;AAAA,MACjC,iBAAiB,6BAAM,OAAO;AAAA,IAChC;AACA,UAAM,uBAAuB;AAAA,MAC3B;AAAA,MACA,yBAAyB,OAAO;AAAA,MAChC,+BAA+B;AAAA,IACjC;AAEA,QAAI,iBAAsC,kCAAM,SAAN,YAAc;AACxD,QAAI,kBAAkB,UAAa,WAAW,QAAQ,SAAS,MAAM;AACnE,UAAI;AACF,wBAAgB,MAAM,QAAQ,MAAM,EAAE,KAAK;AAAA,MAC7C,SAAQ;AAAA,MAAC;AAAA,IACX;AAEA,UAAM,mBAAkB,kCAAM,WAAN,YAAgB,mCAAS;AAEjD,SAAI,mDAAiB,mBAAkB,UAAU,CAAC,eAAe;AAC/D,aAAO,eAAe,OAAO;AAAA,QAC3B,GAAG;AAAA,QACH,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,UAAM,MACJ,OAAO,UAAU,WACb,QACA,iBAAiB,MACf,MAAM,OACN,MAAM;AAEd,UAAM,OAAO,kBAAkB,aAAa;AAC5C,UAAM,cAAc,MAAM,eAAe;AACzC,UAAM,SAAS,IAAI,YAAY;AAAA,MAC7B;AAAA,MACA,QAAQ;AAAA,MACR,SAAS,OAAO,QAAQ,oBAAoB;AAAA,MAC5C;AAAA,MACA,QAAQ,YAAY;AAAA,MACpB,aAAa,YAAY;AAAA,MACzB,iBAAiB,YAAY;AAAA,MAC7B,cAAc,YAAY;AAAA,MAC1B;AAAA,IACF,CAAC;AAED,UAAM,gBAAgB,MAAM,OAAO,KAAK;AACxC,UAAM,gBAAgB,iBAAiB,cAAc,OAAO;AAG5D,UAAM,kBAAkB,eAAe,sBAAsB,aAAa;AAE1E,WAAO,eAAe,OAAO;AAAA,MAC3B,GAAG;AAAA,MACH;AAAA,MACA,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF;AAEA,SAAS,kBAAkB,MAAoC;AAC7D,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO;AAAA,EACT,WAAW,gBAAgB,YAAY;AACrC,WAAO,IAAI,YAAY,EAAE,OAAO,IAAI;AAAA,EACtC,WAAW,gBAAgB,aAAa;AACtC,WAAO,IAAI,YAAY,EAAE,OAAO,IAAI,WAAW,IAAI,CAAC;AAAA,EACtD,OAAO;AACL,WAAO,KAAK,UAAU,IAAI;AAAA,EAC5B;AACF;AASO,SAAS,0BACd,QACA,OACe;AACf,SAAO,OACL,OACA,SACsB;AAEtB,UAAM,iBAAiB,wBAAS,WAAW;AAC3C,UAAM,kBAAkB,iBAAiB,6BAAM,OAAO;AACtD,UAAM,uBAAuB;AAAA,MAC3B;AAAA,MACA,yBAAyB,OAAO;AAAA,MAChC,+BAA+B;AAAA,IACjC;AAEA,UAAM,eAAe,eAAe,sBAAsB;AAAA,MACxD,eAAe,UAAU,MAAM;AAAA,IACjC,CAAC;AAED,WAAO,eAAe,OAAO;AAAA,MAC3B,GAAG;AAAA,MACH,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF;;;AE/IO,SAAS,oBAAoB,SAA0B;AAC5D,SAAO,CAAC,aAAa,SAAS,kCAAkC;AAClE;AAEO,SAAS,+BAA+B,SAA0B;AACvE,SAAO,CAAC;AAAA,IACN;AAAA,IACA;AAAA,EACF;AACF;AAIA,IAAM,qCAAqC;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAKA,IAAM,mDAAmD;AAAA,EACvD,GAAG;AAAA,EACH;AAAA,EACA;AACF;AAEA,SAAS,aAAa,SAAiB,QAA2B;AAChE,SAAO,OAAO,KAAK,WAAS,QAAQ,SAAS,KAAK,CAAC;AACrD;;;AChCA;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,SAAS;;;ACLlB,SAAS,wBAAwB;AACjC,SAAS,QAAQ,gBAAgB;AAS1B,SAAS,gCACd,MACA,cAImB;AACnB,QAAM,QAAQ,IAAI,iBAAiB,QAAQ,QAAQ;AACnD,MAAI,SAAS,IAAI,WAAW,CAAC;AAC7B,QAAM,cAAc,IAAI,YAAY;AAEpC,SAAO,KAAK;AAAA,IACV,IAAI,gBAA+B;AAAA,MACjC,MAAM,UAAU,OAAO,YAAY;AAvBzC;AAwBQ,cAAM,YAAY,IAAI,WAAW,OAAO,SAAS,MAAM,MAAM;AAC7D,kBAAU,IAAI,MAAM;AACpB,kBAAU,IAAI,OAAO,OAAO,MAAM;AAClC,iBAAS;AAET,eAAO,OAAO,UAAU,GAAG;AACzB,gBAAM,cAAc,IAAI;AAAA,YACtB,OAAO;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,UACT,EAAE,UAAU,GAAG,KAAK;AAEpB,cAAI,OAAO,SAAS,aAAa;AAC/B;AAAA,UACF;AAEA,gBAAM,UAAU,OAAO,SAAS,GAAG,WAAW;AAC9C,gBAAM,UAAU,MAAM,OAAO,OAAO;AAEpC,mBAAS,OAAO,MAAM,WAAW;AAEjC,gBAAM,eAAc,aAAQ,QAAQ,eAAe,MAA/B,mBAAkC;AACtD,gBAAM,aAAY,aAAQ,QAAQ,aAAa,MAA7B,mBAAgC;AAGlD,gBAAM,iBAAgB,aAAQ,QAAQ,iBAAiB,MAAjC,mBAAoC;AAG1D,gBAAM,OAAO,YAAY,OAAO,QAAQ,IAAI;AAE5C,gBAAM;AAAA,YACJ,EAAE,aAAa,WAAW,eAAe,KAAK;AAAA,YAC9C;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,QAAQ;AACN,YAAI,OAAO,SAAS,GAAG;AACrB,gBAAM,IAAI;AAAA,YACR,iDAAiD,OAAO,MAAM;AAAA,UAChE;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;AD7DA,IAAM,qBAAqB,EAAE,YAAY;AAAA,EACvC,SAAS,EAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAEM,SAAS,4BACd,WACe;AACf,SAAO,OAAO,KAAK,YAAY;AAC7B,UAAM,WAAW,MAAM,UAAU,KAAK,OAAO;AAI7C,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,YAAM,SAAS,MAAM,cAAc,EAAE,MAAM,QAAQ,mBAAmB,CAAC;AAEvE,YAAM,UACJ,OAAO,WAAW,OAAO,MAAM,UAAU,OAAO,MAAM,UAAU;AAElE,YAAM,iBAAiB,KAAK,UAAU;AAAA,QACpC,MAAM;AAAA,QACN,OAAO,EAAE,MAAM,SAAS,QAAQ;AAAA,MAClC,CAAC;AAED,aAAO,IAAI,SAAS,gBAAgB;AAAA,QAClC,QAAQ,SAAS;AAAA,QACjB,YAAY,SAAS;AAAA,QACrB,SAAS,SAAS;AAAA,MACpB,CAAC;AAAA,IACH;AAEA,UAAM,cAAc,SAAS,QAAQ,IAAI,cAAc;AACvD,SACE,2CAAa,SAAS,0CACtB,SAAS,QAAQ,MACjB;AACA,YAAM,kBAAkB,iCAAiC,SAAS,IAAI;AAEtE,aAAO,IAAI,SAAS,iBAAiB;AAAA,QACnC,QAAQ,SAAS;AAAA,QACjB,YAAY,SAAS;AAAA,QACrB,SAAS,IAAI,QAAQ;AAAA,UACnB,GAAG,OAAO,YAAY,SAAS,QAAQ,QAAQ,CAAC;AAAA,UAChD,gBAAgB;AAAA,QAClB,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AACF;AAEA,SAAS,iCACP,MAC4B;AAC5B,QAAM,cAAc,IAAI,YAAY;AAEpC,SAAO,gCAAgC,MAAM,OAAO,OAAO,eAAe;AACxE,QAAI,MAAM,gBAAgB,SAAS;AACjC,UAAI,MAAM,cAAc,SAAS;AAC/B,cAAM,SAAS,MAAM,cAAc,EAAE,MAAM,MAAM,KAAK,CAAC;AACvD,YAAI,CAAC,OAAO,SAAS;AACnB,qBAAW,QAAQ,YAAY,OAAO,SAAS,MAAM,IAAI;AAAA;AAAA,CAAM,CAAC;AAChE;AAAA,QACF;AACA,cAAM,QAAS,OAAO,MAA6B;AACnD,YAAI,OAAO;AACT,gBAAM,iBAAiB,IAAI,YAAY,EAAE;AAAA,YACvC,0BAA0B,KAAK;AAAA,UACjC;AACA,qBAAW,QAAQ,YAAY,OAAO,SAAS,cAAc;AAAA;AAAA,CAAM,CAAC;AAAA,QACtE,OAAO;AACL,qBAAW,QAAQ,YAAY,OAAO,SAAS,MAAM,IAAI;AAAA;AAAA,CAAM,CAAC;AAAA,QAClE;AAAA,MACF,WAAW,MAAM,cAAc,eAAe;AAC5C,mBAAW,QAAQ,YAAY,OAAO,kBAAkB,CAAC;AAAA,MAC3D;AAAA,IACF,WAAW,MAAM,gBAAgB,aAAa;AAC5C,iBAAW;AAAA,QACT,YAAY;AAAA,UACV,SAAS,KAAK,UAAU,EAAE,MAAM,SAAS,OAAO,MAAM,KAAK,CAAC,CAAC;AAAA;AAAA;AAAA,QAC/D;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;AJ7DA,IAAM,2BAA2B;AAAA,EAC/B,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,mBAAmB;AACrB;AAGA,IAAM,wBAAgD;AAAA,EACpD,sBAAsB;AACxB;AAGA,IAAM,wBAAgD;AAAA,EACpD,eAAe;AAAA,EACf,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,iCAAiC;AAAA;AAAA;AAAA,EAGjC,gCAAgC;AAClC;AAsFO,SAAS,uBACd,UAA4C,CAAC,GACnB;AAE1B,QAAM,YAAY,oBAAoB;AAAA,IACpC,cAAc,QAAQ;AAAA,IACtB,yBAAyB;AAAA,EAC3B,CAAC;AAGD,QAAM,SACJ,aAAa,UAAU,KAAK,EAAE,SAAS,IAAI,UAAU,KAAK,IAAI;AAGhE,QAAM,oBAAoB,SACtB,0BAA0B,QAAQ,QAAQ,KAAK,IAC/C,yBAAyB,YAAY;AACnC,UAAM,SAAS,YAAY;AAAA,MACzB,cAAc,QAAQ;AAAA,MACtB,aAAa;AAAA,MACb,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC;AAGD,QAAI,QAAQ,oBAAoB;AAC9B,UAAI;AACF,eAAO;AAAA,UACL,GAAI,MAAM,QAAQ,mBAAmB;AAAA,UACrC;AAAA,QACF;AAAA,MACF,SAAS,OAAO;AACd,cAAM,eACJ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACvD,cAAM,IAAI;AAAA,UACR,mCAAmC,YAAY;AAAA,QAGjD;AAAA,MACF;AAAA,IACF;AAEA,QAAI;AACF,aAAO;AAAA,QACL;AAAA,QACA,aAAa,YAAY;AAAA,UACvB,cAAc,QAAQ;AAAA,UACtB,aAAa;AAAA,UACb,yBAAyB;AAAA,UACzB,aAAa;AAAA,QACf,CAAC;AAAA,QACD,iBAAiB,YAAY;AAAA,UAC3B,cAAc,QAAQ;AAAA,UACtB,aAAa;AAAA,UACb,yBAAyB;AAAA,UACzB,aAAa;AAAA,QACf,CAAC;AAAA,QACD,cAAc,oBAAoB;AAAA,UAChC,cAAc,QAAQ;AAAA,UACtB,yBAAyB;AAAA,QAC3B,CAAC;AAAA,MACH;AAAA,IACF,SAAS,OAAO;AACd,YAAM,eACJ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACvD,UACE,aAAa,SAAS,mBAAmB,KACzC,aAAa,SAAS,aAAa,GACnC;AACA,cAAM,IAAI;AAAA,UACR;AAAA;AAAA;AAAA;AAAA;AAAA,kBAKqB,YAAY;AAAA,QACnC;AAAA,MACF;AACA,UACE,aAAa,SAAS,uBAAuB,KAC7C,aAAa,SAAS,iBAAiB,GACvC;AACA,cAAM,IAAI;AAAA,UACR;AAAA,kBAEqB,YAAY;AAAA,QACnC;AAAA,MACF;AACA,YAAM;AAAA,IACR;AAAA,EACF,GAAG,QAAQ,KAAK;AAGpB,QAAM,gBAAgB,4BAA4B,iBAAiB;AAEnE,QAAM,aAAa,MAAW;AA9OhC;AA+OI;AAAA,OACE,aAAQ,YAAR,YACE,2BAA2B,YAAY;AAAA,QACrC,cAAc,QAAQ;AAAA,QACtB,aAAa;AAAA,QACb,yBAAyB;AAAA,QACzB,aAAa;AAAA,MACf,CAAC,CAAC;AAAA,IACN,MARA,YAQK;AAAA;AAEP,QAAM,aAAa,YAAY;AAzPjC;AA0PI,UAAM,eAAe,WAAM,QAAQ,QAAQ,OAAO,MAA7B,YAAmC,CAAC;AACzD,WAAOC,qBAAoB,aAAa,yBAAyB,OAAO,EAAE;AAAA,EAC5E;AAEA,QAAM,kBAAkB,CAAC,YACvB,IAAI,+BAA+B,SAAS;AAAA,IAC1C,UAAU;AAAA,IACV,SAAS,WAAW;AAAA,IACpB,SAAS;AAAA,IACT,OAAO;AAAA,IAEP,iBAAiB,CAAC,SAAS,gBACzB,GAAG,OAAO,UAAU,mBAAmB,OAAO,CAAC,IAC7C,cAAc,gCAAgC,QAChD;AAAA,IAEF,sBAAsB,CAAC,MAAM,UAAU;AACrC,YAAM,EAAE,OAAO,QAAQ,aAAa,OAAO,GAAG,KAAK,IAAI;AAEvD,YAAM,wBACJ,eAAe,OACX;AAAA,QACE,MAAM,YAAY;AAAA,QAClB,GAAI,YAAY,QAAQ,OAAO,EAAE,MAAM,YAAY,KAAK,IAAI,CAAC;AAAA,MAC/D,IACA;AAEN,YAAM,gBAAgB,IAAI,IAAY,KAAK;AAC3C,YAAM,mBAAmB,+BAAO;AAAA,QAC9B,CAAC,YAAqC;AAIpC,gBAAM,EAAE,uBAAuB,qBAAqB,GAAG,KAAK,IAC1D;AACF,cAAI,wBAAwB,MAAM;AAChC,0BAAc,IAAI,wCAAwC;AAAA,UAC5D;AAEA,gBAAM,WAAW,KAAK;AAEtB,cAAI,YAAY,YAAY,0BAA0B;AACpD,kBAAM,UACJ,yBACE,QACF;AACF,gBAAI,WAAW,uBAAuB;AACpC,4BAAc,IAAI,sBAAsB,OAAO,CAAC;AAAA,YAClD;AACA,kBAAM,UACJ,WAAW,wBACP,sBAAsB,OAAO,IAC7B,KAAK;AACX,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,MAAM;AAAA,cACN,MAAM;AAAA,YACR;AAAA,UACF;AAEA,cAAI,YAAY,YAAY,uBAAuB;AACjD,0BAAc,IAAI,sBAAsB,QAAQ,CAAC;AAAA,UACnD;AAEA,cAAI,YAAY,YAAY,uBAAuB;AACjD,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,MAAM,sBAAsB,QAAQ;AAAA,YACtC;AAAA,UACF;AAEA,iBAAO;AAAA,QACT;AAAA;AAGF,aAAO;AAAA,QACL,GAAG;AAAA,QACH,GAAI,oBAAoB,OAAO,EAAE,OAAO,iBAAiB,IAAI,CAAC;AAAA,QAC9D,GAAI,yBAAyB,OACzB,EAAE,aAAa,sBAAsB,IACrC,CAAC;AAAA,QACL,GAAI,cAAc,OAAO,IACrB,EAAE,gBAAgB,MAAM,KAAK,aAAa,EAAE,IAC5C,CAAC;AAAA,QACL,mBAAmB;AAAA,MACrB;AAAA,IACF;AAAA;AAAA,IAGA,eAAe,OAAO,CAAC;AAAA,IACvB,gCAAgC,+BAA+B,OAAO;AAAA,IACtE,qBAAqB,oBAAoB,OAAO;AAAA,EAClD,CAAC;AAEH,QAAM,WAAW,SAAU,SAAkC;AAC3D,QAAI,YAAY;AACd,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO,gBAAgB,OAAO;AAAA,EAChC;AAEA,WAAS,uBAAuB;AAChC,WAAS,gBAAgB;AACzB,WAAS,OAAO;AAChB,WAAS,WAAW;AAEpB,WAAS,iBAAiB,CAAC,YAAoB;AAC7C,UAAM,IAAI,iBAAiB,EAAE,SAAS,WAAW,iBAAiB,CAAC;AAAA,EACrE;AACA,WAAS,qBAAqB,SAAS;AACvC,WAAS,aAAa,CAAC,YAAoB;AACzC,UAAM,IAAI,iBAAiB,EAAE,SAAS,WAAW,aAAa,CAAC;AAAA,EACjE;AAEA,WAAS,QAAQ;AAEjB,SAAO;AACT;AAKO,IAAM,mBAAmB,uBAAuB;","names":["withUserAgentSuffix","withUserAgentSuffix"]}
|
|
1
|
+
{"version":3,"sources":["../../src/anthropic/bedrock-anthropic-provider.ts","../../src/bedrock-sigv4-fetch.ts","../../src/version.ts","../../src/bedrock-anthropic-model-support.ts","../../src/resolve-bedrock-base-url.ts","../../src/anthropic/bedrock-anthropic-fetch.ts","../../src/bedrock-event-stream-decoder.ts"],"sourcesContent":["import {\n NoSuchModelError,\n type LanguageModelV3,\n type ProviderV3,\n} from '@ai-sdk/provider';\nimport {\n loadOptionalSetting,\n loadSetting,\n resolve,\n withUserAgentSuffix,\n type FetchFunction,\n type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport {\n anthropicTools,\n AnthropicMessagesLanguageModel,\n} from '@ai-sdk/anthropic/internal';\nimport {\n createApiKeyFetchFunction,\n createSigV4FetchFunction,\n type BedrockCredentials,\n} from '../bedrock-sigv4-fetch';\nimport {\n supportsNativeStructuredOutput,\n supportsStrictTools,\n} from '../bedrock-anthropic-model-support';\nimport { resolveBedrockBaseURL } from '../resolve-bedrock-base-url';\nimport { createBedrockAnthropicFetch } from './bedrock-anthropic-fetch';\nimport type { BedrockAnthropicModelId } from './bedrock-anthropic-options';\nimport { VERSION } from '../version';\n\n// Bedrock requires newer tool versions than the default Anthropic SDK versions\nconst BEDROCK_TOOL_VERSION_MAP = {\n bash_20241022: 'bash_20250124',\n text_editor_20241022: 'text_editor_20250728',\n computer_20241022: 'computer_20250124',\n} as const;\n\n// Tool name mappings when upgrading versions (text_editor_20250728 requires different name)\nconst BEDROCK_TOOL_NAME_MAP: Record<string, string> = {\n text_editor_20250728: 'str_replace_based_edit_tool',\n};\n\n// Map tool types to required anthropic_beta values for Bedrock\nconst BEDROCK_TOOL_BETA_MAP: Record<string, string> = {\n bash_20250124: 'computer-use-2025-01-24',\n bash_20241022: 'computer-use-2024-10-22',\n text_editor_20250124: 'computer-use-2025-01-24',\n text_editor_20241022: 'computer-use-2024-10-22',\n text_editor_20250429: 'computer-use-2025-01-24',\n text_editor_20250728: 'computer-use-2025-01-24',\n computer_20250124: 'computer-use-2025-01-24',\n computer_20241022: 'computer-use-2024-10-22',\n tool_search_tool_regex_20251119: 'tool-search-tool-2025-10-19',\n // BM25 is not currently supported on Bedrock, but including the beta flag\n // so that Bedrock returns a more useful error message if it's used.\n tool_search_tool_bm25_20251119: 'tool-search-tool-2025-10-19',\n};\n\nexport interface BedrockAnthropicProvider extends ProviderV3 {\n /**\n * Creates a model for text generation.\n */\n (modelId: BedrockAnthropicModelId): LanguageModelV3;\n\n /**\n * Creates a model for text generation.\n */\n languageModel(modelId: BedrockAnthropicModelId): LanguageModelV3;\n\n /**\n * Anthropic-specific computer use tool.\n */\n tools: typeof anthropicTools;\n\n /**\n * @deprecated Use `embeddingModel` instead.\n */\n textEmbeddingModel(modelId: string): never;\n}\n\nexport interface BedrockAnthropicProviderSettings {\n /**\n * The AWS region to use for the Bedrock provider. Defaults to the value of the\n * `AWS_REGION` environment variable.\n */\n region?: string;\n\n /**\n * API key for authenticating requests using Bearer token authentication.\n * When provided, this will be used instead of AWS SigV4 authentication.\n * Defaults to the value of the `AWS_BEARER_TOKEN_BEDROCK` environment variable.\n */\n apiKey?: string;\n\n /**\n * The AWS access key ID to use for the Bedrock provider. Defaults to the value of the\n * `AWS_ACCESS_KEY_ID` environment variable.\n */\n accessKeyId?: string;\n\n /**\n * The AWS secret access key to use for the Bedrock provider. Defaults to the value of the\n * `AWS_SECRET_ACCESS_KEY` environment variable.\n */\n secretAccessKey?: string;\n\n /**\n * The AWS session token to use for the Bedrock provider. Defaults to the value of the\n * `AWS_SESSION_TOKEN` environment variable.\n */\n sessionToken?: string;\n\n /**\n * Base URL for the Bedrock API calls. When omitted, the provider uses\n * `AWS_ENDPOINT_URL_BEDROCK_RUNTIME`, then `AWS_ENDPOINT_URL`, before\n * generating an endpoint from the AWS region.\n */\n baseURL?: string;\n\n /**\n * Custom headers to include in the requests.\n */\n headers?: Resolvable<Record<string, string | undefined>>;\n\n /**\n * Custom fetch implementation. You can use it as a middleware to intercept requests,\n * or to provide a custom fetch implementation for e.g. testing.\n */\n fetch?: FetchFunction;\n\n /**\n * The AWS credential provider to use for the Bedrock provider to get dynamic\n * credentials similar to the AWS SDK. Setting a provider here will cause its\n * credential values to be used instead of the `accessKeyId`, `secretAccessKey`,\n * and `sessionToken` settings.\n */\n credentialProvider?: () => PromiseLike<Omit<BedrockCredentials, 'region'>>;\n}\n\n/**\n * Create an Amazon Bedrock Anthropic provider instance.\n * This provider uses the native Anthropic API through Bedrock's InvokeModel endpoint,\n * bypassing the Converse API for better feature compatibility.\n */\nexport function createBedrockAnthropic(\n options: BedrockAnthropicProviderSettings = {},\n): BedrockAnthropicProvider {\n // Check for API key authentication first\n const rawApiKey = loadOptionalSetting({\n settingValue: options.apiKey,\n environmentVariableName: 'AWS_BEARER_TOKEN_BEDROCK',\n });\n\n // Only use API key if it's a non-empty, non-whitespace string\n const apiKey =\n rawApiKey && rawApiKey.trim().length > 0 ? rawApiKey.trim() : undefined;\n\n // Use API key authentication if available, otherwise fall back to SigV4\n const baseFetchFunction = apiKey\n ? createApiKeyFetchFunction(apiKey, options.fetch)\n : createSigV4FetchFunction(async () => {\n const region = loadSetting({\n settingValue: options.region,\n settingName: 'region',\n environmentVariableName: 'AWS_REGION',\n description: 'AWS region',\n });\n\n // If a credential provider is provided, use it to get the credentials.\n if (options.credentialProvider) {\n try {\n return {\n ...(await options.credentialProvider()),\n region,\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n throw new Error(\n `AWS credential provider failed: ${errorMessage}. ` +\n 'Please ensure your credential provider returns valid AWS credentials ' +\n 'with accessKeyId and secretAccessKey properties.',\n );\n }\n }\n\n try {\n return {\n region,\n accessKeyId: loadSetting({\n settingValue: options.accessKeyId,\n settingName: 'accessKeyId',\n environmentVariableName: 'AWS_ACCESS_KEY_ID',\n description: 'AWS access key ID',\n }),\n secretAccessKey: loadSetting({\n settingValue: options.secretAccessKey,\n settingName: 'secretAccessKey',\n environmentVariableName: 'AWS_SECRET_ACCESS_KEY',\n description: 'AWS secret access key',\n }),\n sessionToken: loadOptionalSetting({\n settingValue: options.sessionToken,\n environmentVariableName: 'AWS_SESSION_TOKEN',\n }),\n };\n } catch (error) {\n const errorMessage =\n error instanceof Error ? error.message : String(error);\n if (\n errorMessage.includes('AWS_ACCESS_KEY_ID') ||\n errorMessage.includes('accessKeyId')\n ) {\n throw new Error(\n 'AWS SigV4 authentication requires AWS credentials. Please provide either:\\n' +\n '1. Set AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY environment variables\\n' +\n '2. Provide accessKeyId and secretAccessKey in options\\n' +\n '3. Use a credentialProvider function\\n' +\n '4. Use API key authentication with AWS_BEARER_TOKEN_BEDROCK or apiKey option\\n' +\n `Original error: ${errorMessage}`,\n );\n }\n if (\n errorMessage.includes('AWS_SECRET_ACCESS_KEY') ||\n errorMessage.includes('secretAccessKey')\n ) {\n throw new Error(\n 'AWS SigV4 authentication requires both AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY. ' +\n 'Please ensure both credentials are provided.\\n' +\n `Original error: ${errorMessage}`,\n );\n }\n throw error;\n }\n }, options.fetch);\n\n // Wrap with Bedrock event stream to SSE transformer for streaming support\n const fetchFunction = createBedrockAnthropicFetch(baseFetchFunction);\n\n const getBaseURL = (): string =>\n resolveBedrockBaseURL({\n baseURL: options.baseURL,\n getRegion: () =>\n loadSetting({\n settingValue: options.region,\n settingName: 'region',\n environmentVariableName: 'AWS_REGION',\n description: 'AWS region',\n }),\n service: 'bedrock-runtime',\n serviceEndpointUrlEnvironmentVariableName:\n 'AWS_ENDPOINT_URL_BEDROCK_RUNTIME',\n });\n\n const getHeaders = async () => {\n const baseHeaders = (await resolve(options.headers)) ?? {};\n return withUserAgentSuffix(baseHeaders, `ai-sdk/amazon-bedrock/${VERSION}`);\n };\n\n const createChatModel = (modelId: BedrockAnthropicModelId) =>\n new AnthropicMessagesLanguageModel(modelId, {\n provider: 'bedrock.anthropic.messages',\n baseURL: getBaseURL(),\n headers: getHeaders,\n fetch: fetchFunction,\n\n buildRequestUrl: (baseURL, isStreaming) =>\n `${baseURL}/model/${encodeURIComponent(modelId)}/${\n isStreaming ? 'invoke-with-response-stream' : 'invoke'\n }`,\n\n transformRequestBody: (args, betas) => {\n const { model, stream, tool_choice, tools, ...rest } = args;\n\n const transformedToolChoice =\n tool_choice != null\n ? {\n type: tool_choice.type,\n ...(tool_choice.name != null ? { name: tool_choice.name } : {}),\n }\n : undefined;\n\n const requiredBetas = new Set<string>(betas);\n const transformedTools = tools?.map(\n (rawTool: Record<string, unknown>) => {\n // Bedrock rejects the per-tool eager_input_streaming field even when\n // the fine-grained-tool-streaming beta is declared, but the beta alone\n // enables the same behavior, so translate the field into the beta\n const { eager_input_streaming: eagerInputStreaming, ...tool } =\n rawTool;\n if (eagerInputStreaming === true) {\n requiredBetas.add('fine-grained-tool-streaming-2025-05-14');\n }\n\n const toolType = tool.type as string | undefined;\n\n if (toolType && toolType in BEDROCK_TOOL_VERSION_MAP) {\n const newType =\n BEDROCK_TOOL_VERSION_MAP[\n toolType as keyof typeof BEDROCK_TOOL_VERSION_MAP\n ];\n if (newType in BEDROCK_TOOL_BETA_MAP) {\n requiredBetas.add(BEDROCK_TOOL_BETA_MAP[newType]);\n }\n const newName =\n newType in BEDROCK_TOOL_NAME_MAP\n ? BEDROCK_TOOL_NAME_MAP[newType]\n : tool.name;\n return {\n ...tool,\n type: newType,\n name: newName,\n };\n }\n\n if (toolType && toolType in BEDROCK_TOOL_BETA_MAP) {\n requiredBetas.add(BEDROCK_TOOL_BETA_MAP[toolType]);\n }\n\n if (toolType && toolType in BEDROCK_TOOL_NAME_MAP) {\n return {\n ...tool,\n name: BEDROCK_TOOL_NAME_MAP[toolType],\n };\n }\n\n return tool;\n },\n );\n\n return {\n ...rest,\n ...(transformedTools != null ? { tools: transformedTools } : {}),\n ...(transformedToolChoice != null\n ? { tool_choice: transformedToolChoice }\n : {}),\n ...(requiredBetas.size > 0\n ? { anthropic_beta: Array.from(requiredBetas) }\n : {}),\n anthropic_version: 'bedrock-2023-05-31',\n };\n },\n\n // Bedrock Anthropic doesn't support URL sources, force download and base64 conversion\n supportedUrls: () => ({}),\n supportsNativeStructuredOutput: supportsNativeStructuredOutput(modelId),\n supportsStrictTools: supportsStrictTools(modelId),\n });\n\n const provider = function (modelId: BedrockAnthropicModelId) {\n if (new.target) {\n throw new Error(\n 'The Bedrock Anthropic model function cannot be called with the new keyword.',\n );\n }\n\n return createChatModel(modelId);\n };\n\n provider.specificationVersion = 'v3' as const;\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.messages = createChatModel;\n\n provider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n };\n\n provider.tools = anthropicTools;\n\n return provider;\n}\n\n/**\n * Default Bedrock Anthropic provider instance.\n */\nexport const bedrockAnthropic = createBedrockAnthropic();\n","import {\n combineHeaders,\n normalizeHeaders,\n withUserAgentSuffix,\n getRuntimeEnvironmentUserAgent,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { AwsV4Signer } from 'aws4fetch';\nimport { VERSION } from './version';\n\nexport interface BedrockCredentials {\n region: string;\n accessKeyId: string;\n secretAccessKey: string;\n sessionToken?: string;\n}\n\n/**\n * Creates a fetch function that applies AWS Signature Version 4 signing.\n *\n * @param getCredentials - Function that returns the AWS credentials to use when signing.\n * @param fetch - Optional original fetch implementation to wrap. Defaults to global fetch.\n * @param service - The AWS service name to use for SigV4 signing scope. Defaults to 'bedrock'.\n * @returns A FetchFunction that signs requests before passing them to the underlying fetch.\n */\nexport function createSigV4FetchFunction(\n getCredentials: () => BedrockCredentials | PromiseLike<BedrockCredentials>,\n fetch?: FetchFunction,\n service: string = 'bedrock',\n): FetchFunction {\n return async (\n input: RequestInfo | URL,\n init?: RequestInit,\n ): Promise<Response> => {\n // avoid caching globalThis.fetch in case it is patched by other libraries\n const effectiveFetch = fetch ?? globalThis.fetch;\n const request = input instanceof Request ? input : undefined;\n const originalHeaders = combineHeaders(\n normalizeHeaders(request?.headers),\n normalizeHeaders(init?.headers),\n );\n const headersWithUserAgent = withUserAgentSuffix(\n originalHeaders,\n `ai-sdk/amazon-bedrock/${VERSION}`,\n getRuntimeEnvironmentUserAgent(),\n );\n\n let effectiveBody: BodyInit | undefined = init?.body ?? undefined;\n if (effectiveBody === undefined && request && request.body !== null) {\n try {\n effectiveBody = await request.clone().text();\n } catch {}\n }\n\n const effectiveMethod = init?.method ?? request?.method;\n\n if (effectiveMethod?.toUpperCase() !== 'POST' || !effectiveBody) {\n return effectiveFetch(input, {\n ...init,\n headers: headersWithUserAgent as HeadersInit,\n });\n }\n\n const url =\n typeof input === 'string'\n ? input\n : input instanceof URL\n ? input.href\n : input.url;\n\n const body = prepareBodyString(effectiveBody);\n const credentials = await getCredentials();\n const signer = new AwsV4Signer({\n url,\n method: 'POST',\n headers: Object.entries(headersWithUserAgent),\n body,\n region: credentials.region,\n accessKeyId: credentials.accessKeyId,\n secretAccessKey: credentials.secretAccessKey,\n sessionToken: credentials.sessionToken,\n service,\n });\n\n const signingResult = await signer.sign();\n const signedHeaders = normalizeHeaders(signingResult.headers);\n\n // Use the combined headers directly as HeadersInit\n const combinedHeaders = combineHeaders(headersWithUserAgent, signedHeaders);\n\n return effectiveFetch(input, {\n ...init,\n body,\n headers: combinedHeaders as HeadersInit,\n });\n };\n}\n\nfunction prepareBodyString(body: BodyInit | undefined): string {\n if (typeof body === 'string') {\n return body;\n } else if (body instanceof Uint8Array) {\n return new TextDecoder().decode(body);\n } else if (body instanceof ArrayBuffer) {\n return new TextDecoder().decode(new Uint8Array(body));\n } else {\n return JSON.stringify(body);\n }\n}\n\n/**\n * Creates a fetch function that applies Bearer token authentication.\n *\n * @param apiKey - The API key to use for Bearer token authentication.\n * @param fetch - Optional original fetch implementation to wrap. Defaults to global fetch.\n * @returns A FetchFunction that adds Authorization header with Bearer token to requests.\n */\nexport function createApiKeyFetchFunction(\n apiKey: string,\n fetch?: FetchFunction,\n): FetchFunction {\n return async (\n input: RequestInfo | URL,\n init?: RequestInit,\n ): Promise<Response> => {\n // avoid caching globalThis.fetch in case it is patched by other libraries\n const effectiveFetch = fetch ?? globalThis.fetch;\n const originalHeaders = normalizeHeaders(init?.headers);\n const headersWithUserAgent = withUserAgentSuffix(\n originalHeaders,\n `ai-sdk/amazon-bedrock/${VERSION}`,\n getRuntimeEnvironmentUserAgent(),\n );\n\n const finalHeaders = combineHeaders(headersWithUserAgent, {\n Authorization: `Bearer ${apiKey}`,\n });\n\n return effectiveFetch(input, {\n ...init,\n headers: finalHeaders as HeadersInit,\n });\n };\n}\n","// Version string of this package injected at build time.\ndeclare const __PACKAGE_VERSION__: string | undefined;\nexport const VERSION: string =\n typeof __PACKAGE_VERSION__ !== 'undefined'\n ? __PACKAGE_VERSION__\n : '0.0.0-test';\n","import type { AmazonBedrockChatModelSettings } from './bedrock-chat-options';\n\nexport function isAnthropicModel({\n modelId,\n modelFamily,\n reasoningBudgetTokens,\n}: {\n modelId: string;\n modelFamily?: AmazonBedrockChatModelSettings['modelFamily'];\n reasoningBudgetTokens?: number;\n}): boolean {\n return (\n modelFamily === 'anthropic' ||\n modelId.includes('anthropic') ||\n (modelId.includes(':application-inference-profile/') &&\n reasoningBudgetTokens != null)\n );\n}\n\nexport function supportsStrictTools(modelId: string): boolean {\n return !matchesModel(modelId, MODELS_WITHOUT_STRICT_TOOL_SUPPORT);\n}\n\nexport function supportsNativeStructuredOutput(modelId: string): boolean {\n return !matchesModel(\n modelId,\n MODELS_WITHOUT_RELIABLE_NATIVE_STRUCTURED_OUTPUT,\n );\n}\n\n// Bedrock validates against its own copy of the Messages schema, which rejects\n// `output_config.format` and tool `strict` for the newest Claude models\nconst MODELS_WITHOUT_STRICT_TOOL_SUPPORT = [\n 'claude-opus-4-7',\n 'claude-opus-4-8',\n 'claude-opus-5',\n 'claude-fable-5',\n 'claude-sonnet-5',\n];\n\n// Native structured output is unreliable for additional models even though\n// their strict tool support remains available. Sonnet 4.6 can fail to adhere\n// to complex schemas, while Haiku 4.5 support varies between Bedrock accounts.\nconst MODELS_WITHOUT_RELIABLE_NATIVE_STRUCTURED_OUTPUT = [\n ...MODELS_WITHOUT_STRICT_TOOL_SUPPORT,\n 'claude-sonnet-4-6',\n 'claude-haiku-4-5',\n];\n\nfunction matchesModel(modelId: string, models: string[]): boolean {\n return models.some(model => modelId.includes(model));\n}\n","import {\n loadOptionalSetting,\n withoutTrailingSlash,\n} from '@ai-sdk/provider-utils';\n\nconst AWS_PARTITION_DNS_SUFFIXES = [\n { regionPrefix: 'cn-', dnsSuffix: 'amazonaws.com.cn' },\n { regionPrefix: 'us-iso-', dnsSuffix: 'c2s.ic.gov' },\n { regionPrefix: 'us-isob-', dnsSuffix: 'sc2s.sgov.gov' },\n { regionPrefix: 'eu-isoe-', dnsSuffix: 'cloud.adc-e.uk' },\n { regionPrefix: 'us-isof-', dnsSuffix: 'csp.hci.ic.gov' },\n { regionPrefix: 'eusc-', dnsSuffix: 'amazonaws.eu' },\n] as const;\n\nexport function resolveBedrockBaseURL({\n baseURL,\n getRegion,\n service,\n serviceEndpointUrlEnvironmentVariableName,\n}: {\n baseURL: string | undefined;\n getRegion: () => string;\n service: 'bedrock-runtime' | 'bedrock-agent-runtime';\n serviceEndpointUrlEnvironmentVariableName:\n | 'AWS_ENDPOINT_URL_BEDROCK_RUNTIME'\n | 'AWS_ENDPOINT_URL_BEDROCK_AGENT_RUNTIME';\n}): string {\n const resolvedBaseURL =\n baseURL ??\n loadOptionalSetting({\n settingValue: undefined,\n environmentVariableName: serviceEndpointUrlEnvironmentVariableName,\n }) ??\n loadOptionalSetting({\n settingValue: undefined,\n environmentVariableName: 'AWS_ENDPOINT_URL',\n });\n\n if (resolvedBaseURL != null) {\n return withoutTrailingSlash(resolvedBaseURL) ?? resolvedBaseURL;\n }\n\n const region = getRegion();\n const dnsSuffix =\n AWS_PARTITION_DNS_SUFFIXES.find(({ regionPrefix }) =>\n region.startsWith(regionPrefix),\n )?.dnsSuffix ?? 'amazonaws.com';\n const generatedBaseURL = `https://${service}.${region}.${dnsSuffix}`;\n\n return withoutTrailingSlash(generatedBaseURL) ?? generatedBaseURL;\n}\n","import {\n convertBase64ToUint8Array,\n safeParseJSON,\n type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport { createBedrockEventStreamDecoder } from '../bedrock-event-stream-decoder';\n\nconst bedrockErrorSchema = z.looseObject({\n message: z.string().optional(),\n});\n\nexport function createBedrockAnthropicFetch(\n baseFetch: FetchFunction,\n): FetchFunction {\n return async (url, options) => {\n const response = await baseFetch(url, options);\n\n // Transform Bedrock error responses into Anthropic error format\n // so that anthropicFailedResponseHandler can extract the message.\n if (!response.ok) {\n const text = await response.text();\n const parsed = await safeParseJSON({ text, schema: bedrockErrorSchema });\n\n const message =\n parsed.success && parsed.value.message ? parsed.value.message : text;\n\n const anthropicError = JSON.stringify({\n type: 'error',\n error: { type: 'error', message },\n });\n\n return new Response(anthropicError, {\n status: response.status,\n statusText: response.statusText,\n headers: response.headers,\n });\n }\n\n const contentType = response.headers.get('content-type');\n if (\n contentType?.includes('application/vnd.amazon.eventstream') &&\n response.body != null\n ) {\n const transformedBody = transformBedrockEventStreamToSSE(response.body);\n\n return new Response(transformedBody, {\n status: response.status,\n statusText: response.statusText,\n headers: new Headers({\n ...Object.fromEntries(response.headers.entries()),\n 'content-type': 'text/event-stream',\n }),\n });\n }\n\n return response;\n };\n}\n\nfunction transformBedrockEventStreamToSSE(\n body: ReadableStream<Uint8Array>,\n): ReadableStream<Uint8Array> {\n const textEncoder = new TextEncoder();\n\n return createBedrockEventStreamDecoder(body, async (event, controller) => {\n if (event.messageType === 'event') {\n if (event.eventType === 'chunk') {\n const parsed = await safeParseJSON({ text: event.data });\n if (!parsed.success) {\n controller.enqueue(textEncoder.encode(`data: ${event.data}\\n\\n`));\n return;\n }\n const bytes = (parsed.value as { bytes?: string }).bytes;\n if (bytes) {\n const anthropicEvent = new TextDecoder().decode(\n convertBase64ToUint8Array(bytes),\n );\n controller.enqueue(textEncoder.encode(`data: ${anthropicEvent}\\n\\n`));\n } else {\n controller.enqueue(textEncoder.encode(`data: ${event.data}\\n\\n`));\n }\n } else if (event.eventType === 'messageStop') {\n controller.enqueue(textEncoder.encode('data: [DONE]\\n\\n'));\n }\n } else if (event.messageType === 'exception') {\n controller.enqueue(\n textEncoder.encode(\n `data: ${JSON.stringify({ type: 'error', error: event.data })}\\n\\n`,\n ),\n );\n }\n });\n}\n","import { EventStreamCodec } from '@smithy/eventstream-codec';\nimport { toUtf8, fromUtf8 } from '@smithy/util-utf8';\n\nexport interface DecodedEvent {\n messageType: string;\n eventType?: string;\n exceptionType?: string;\n data: string;\n}\n\nexport function createBedrockEventStreamDecoder<T>(\n body: ReadableStream<Uint8Array>,\n processEvent: (\n event: DecodedEvent,\n controller: TransformStreamDefaultController<T>,\n ) => void | Promise<void>,\n): ReadableStream<T> {\n const codec = new EventStreamCodec(toUtf8, fromUtf8);\n let buffer = new Uint8Array(0);\n const textDecoder = new TextDecoder();\n\n return body.pipeThrough(\n new TransformStream<Uint8Array, T>({\n async transform(chunk, controller) {\n const newBuffer = new Uint8Array(buffer.length + chunk.length);\n newBuffer.set(buffer);\n newBuffer.set(chunk, buffer.length);\n buffer = newBuffer;\n\n while (buffer.length >= 4) {\n const totalLength = new DataView(\n buffer.buffer,\n buffer.byteOffset,\n buffer.byteLength,\n ).getUint32(0, false);\n\n if (buffer.length < totalLength) {\n break;\n }\n\n const subView = buffer.subarray(0, totalLength);\n const decoded = codec.decode(subView);\n\n buffer = buffer.slice(totalLength);\n\n const messageType = decoded.headers[':message-type']?.value as string;\n const eventType = decoded.headers[':event-type']?.value as\n | string\n | undefined;\n const exceptionType = decoded.headers[':exception-type']?.value as\n | string\n | undefined;\n const data = textDecoder.decode(decoded.body);\n\n await processEvent(\n { messageType, eventType, exceptionType, data },\n controller,\n );\n }\n },\n flush() {\n if (buffer.length > 0) {\n throw new Error(\n `Incomplete Amazon Bedrock event-stream frame: ${buffer.length} buffered bytes remain at end of stream.`,\n );\n }\n },\n }),\n );\n}\n"],"mappings":";AAAA;AAAA,EACE;AAAA,OAGK;AACP;AAAA,EACE,uBAAAA;AAAA,EACA;AAAA,EACA;AAAA,EACA,uBAAAC;AAAA,OAGK;AACP;AAAA,EACE;AAAA,EACA;AAAA,OACK;;;AChBP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAEK;AACP,SAAS,mBAAmB;;;ACLrB,IAAM,UACX,OACI,YACA;;;ADoBC,SAAS,yBACd,gBACA,OACA,UAAkB,WACH;AACf,SAAO,OACL,OACA,SACsB;AAjC1B;AAmCI,UAAM,iBAAiB,wBAAS,WAAW;AAC3C,UAAM,UAAU,iBAAiB,UAAU,QAAQ;AACnD,UAAM,kBAAkB;AAAA,MACtB,iBAAiB,mCAAS,OAAO;AAAA,MACjC,iBAAiB,6BAAM,OAAO;AAAA,IAChC;AACA,UAAM,uBAAuB;AAAA,MAC3B;AAAA,MACA,yBAAyB,OAAO;AAAA,MAChC,+BAA+B;AAAA,IACjC;AAEA,QAAI,iBAAsC,kCAAM,SAAN,YAAc;AACxD,QAAI,kBAAkB,UAAa,WAAW,QAAQ,SAAS,MAAM;AACnE,UAAI;AACF,wBAAgB,MAAM,QAAQ,MAAM,EAAE,KAAK;AAAA,MAC7C,SAAQ;AAAA,MAAC;AAAA,IACX;AAEA,UAAM,mBAAkB,kCAAM,WAAN,YAAgB,mCAAS;AAEjD,SAAI,mDAAiB,mBAAkB,UAAU,CAAC,eAAe;AAC/D,aAAO,eAAe,OAAO;AAAA,QAC3B,GAAG;AAAA,QACH,SAAS;AAAA,MACX,CAAC;AAAA,IACH;AAEA,UAAM,MACJ,OAAO,UAAU,WACb,QACA,iBAAiB,MACf,MAAM,OACN,MAAM;AAEd,UAAM,OAAO,kBAAkB,aAAa;AAC5C,UAAM,cAAc,MAAM,eAAe;AACzC,UAAM,SAAS,IAAI,YAAY;AAAA,MAC7B;AAAA,MACA,QAAQ;AAAA,MACR,SAAS,OAAO,QAAQ,oBAAoB;AAAA,MAC5C;AAAA,MACA,QAAQ,YAAY;AAAA,MACpB,aAAa,YAAY;AAAA,MACzB,iBAAiB,YAAY;AAAA,MAC7B,cAAc,YAAY;AAAA,MAC1B;AAAA,IACF,CAAC;AAED,UAAM,gBAAgB,MAAM,OAAO,KAAK;AACxC,UAAM,gBAAgB,iBAAiB,cAAc,OAAO;AAG5D,UAAM,kBAAkB,eAAe,sBAAsB,aAAa;AAE1E,WAAO,eAAe,OAAO;AAAA,MAC3B,GAAG;AAAA,MACH;AAAA,MACA,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF;AAEA,SAAS,kBAAkB,MAAoC;AAC7D,MAAI,OAAO,SAAS,UAAU;AAC5B,WAAO;AAAA,EACT,WAAW,gBAAgB,YAAY;AACrC,WAAO,IAAI,YAAY,EAAE,OAAO,IAAI;AAAA,EACtC,WAAW,gBAAgB,aAAa;AACtC,WAAO,IAAI,YAAY,EAAE,OAAO,IAAI,WAAW,IAAI,CAAC;AAAA,EACtD,OAAO;AACL,WAAO,KAAK,UAAU,IAAI;AAAA,EAC5B;AACF;AASO,SAAS,0BACd,QACA,OACe;AACf,SAAO,OACL,OACA,SACsB;AAEtB,UAAM,iBAAiB,wBAAS,WAAW;AAC3C,UAAM,kBAAkB,iBAAiB,6BAAM,OAAO;AACtD,UAAM,uBAAuB;AAAA,MAC3B;AAAA,MACA,yBAAyB,OAAO;AAAA,MAChC,+BAA+B;AAAA,IACjC;AAEA,UAAM,eAAe,eAAe,sBAAsB;AAAA,MACxD,eAAe,UAAU,MAAM;AAAA,IACjC,CAAC;AAED,WAAO,eAAe,OAAO;AAAA,MAC3B,GAAG;AAAA,MACH,SAAS;AAAA,IACX,CAAC;AAAA,EACH;AACF;;;AE5HO,SAAS,oBAAoB,SAA0B;AAC5D,SAAO,CAAC,aAAa,SAAS,kCAAkC;AAClE;AAEO,SAAS,+BAA+B,SAA0B;AACvE,SAAO,CAAC;AAAA,IACN;AAAA,IACA;AAAA,EACF;AACF;AAIA,IAAM,qCAAqC;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAKA,IAAM,mDAAmD;AAAA,EACvD,GAAG;AAAA,EACH;AAAA,EACA;AACF;AAEA,SAAS,aAAa,SAAiB,QAA2B;AAChE,SAAO,OAAO,KAAK,WAAS,QAAQ,SAAS,KAAK,CAAC;AACrD;;;ACnDA;AAAA,EACE;AAAA,EACA;AAAA,OACK;AAEP,IAAM,6BAA6B;AAAA,EACjC,EAAE,cAAc,OAAO,WAAW,mBAAmB;AAAA,EACrD,EAAE,cAAc,WAAW,WAAW,aAAa;AAAA,EACnD,EAAE,cAAc,YAAY,WAAW,gBAAgB;AAAA,EACvD,EAAE,cAAc,YAAY,WAAW,iBAAiB;AAAA,EACxD,EAAE,cAAc,YAAY,WAAW,iBAAiB;AAAA,EACxD,EAAE,cAAc,SAAS,WAAW,eAAe;AACrD;AAEO,SAAS,sBAAsB;AAAA,EACpC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAOW;AA1BX;AA2BE,QAAM,mBACJ,iCACA,oBAAoB;AAAA,IAClB,cAAc;AAAA,IACd,yBAAyB;AAAA,EAC3B,CAAC,MAJD,YAKA,oBAAoB;AAAA,IAClB,cAAc;AAAA,IACd,yBAAyB;AAAA,EAC3B,CAAC;AAEH,MAAI,mBAAmB,MAAM;AAC3B,YAAO,0BAAqB,eAAe,MAApC,YAAyC;AAAA,EAClD;AAEA,QAAM,SAAS,UAAU;AACzB,QAAM,aACJ,sCAA2B;AAAA,IAAK,CAAC,EAAE,aAAa,MAC9C,OAAO,WAAW,YAAY;AAAA,EAChC,MAFA,mBAEG,cAFH,YAEgB;AAClB,QAAM,mBAAmB,WAAW,OAAO,IAAI,MAAM,IAAI,SAAS;AAElE,UAAO,0BAAqB,gBAAgB,MAArC,YAA0C;AACnD;;;AClDA;AAAA,EACE;AAAA,EACA;AAAA,OAEK;AACP,SAAS,SAAS;;;ACLlB,SAAS,wBAAwB;AACjC,SAAS,QAAQ,gBAAgB;AAS1B,SAAS,gCACd,MACA,cAImB;AACnB,QAAM,QAAQ,IAAI,iBAAiB,QAAQ,QAAQ;AACnD,MAAI,SAAS,IAAI,WAAW,CAAC;AAC7B,QAAM,cAAc,IAAI,YAAY;AAEpC,SAAO,KAAK;AAAA,IACV,IAAI,gBAA+B;AAAA,MACjC,MAAM,UAAU,OAAO,YAAY;AAvBzC;AAwBQ,cAAM,YAAY,IAAI,WAAW,OAAO,SAAS,MAAM,MAAM;AAC7D,kBAAU,IAAI,MAAM;AACpB,kBAAU,IAAI,OAAO,OAAO,MAAM;AAClC,iBAAS;AAET,eAAO,OAAO,UAAU,GAAG;AACzB,gBAAM,cAAc,IAAI;AAAA,YACtB,OAAO;AAAA,YACP,OAAO;AAAA,YACP,OAAO;AAAA,UACT,EAAE,UAAU,GAAG,KAAK;AAEpB,cAAI,OAAO,SAAS,aAAa;AAC/B;AAAA,UACF;AAEA,gBAAM,UAAU,OAAO,SAAS,GAAG,WAAW;AAC9C,gBAAM,UAAU,MAAM,OAAO,OAAO;AAEpC,mBAAS,OAAO,MAAM,WAAW;AAEjC,gBAAM,eAAc,aAAQ,QAAQ,eAAe,MAA/B,mBAAkC;AACtD,gBAAM,aAAY,aAAQ,QAAQ,aAAa,MAA7B,mBAAgC;AAGlD,gBAAM,iBAAgB,aAAQ,QAAQ,iBAAiB,MAAjC,mBAAoC;AAG1D,gBAAM,OAAO,YAAY,OAAO,QAAQ,IAAI;AAE5C,gBAAM;AAAA,YACJ,EAAE,aAAa,WAAW,eAAe,KAAK;AAAA,YAC9C;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,MACA,QAAQ;AACN,YAAI,OAAO,SAAS,GAAG;AACrB,gBAAM,IAAI;AAAA,YACR,iDAAiD,OAAO,MAAM;AAAA,UAChE;AAAA,QACF;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AACF;;;AD7DA,IAAM,qBAAqB,EAAE,YAAY;AAAA,EACvC,SAAS,EAAE,OAAO,EAAE,SAAS;AAC/B,CAAC;AAEM,SAAS,4BACd,WACe;AACf,SAAO,OAAO,KAAK,YAAY;AAC7B,UAAM,WAAW,MAAM,UAAU,KAAK,OAAO;AAI7C,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,OAAO,MAAM,SAAS,KAAK;AACjC,YAAM,SAAS,MAAM,cAAc,EAAE,MAAM,QAAQ,mBAAmB,CAAC;AAEvE,YAAM,UACJ,OAAO,WAAW,OAAO,MAAM,UAAU,OAAO,MAAM,UAAU;AAElE,YAAM,iBAAiB,KAAK,UAAU;AAAA,QACpC,MAAM;AAAA,QACN,OAAO,EAAE,MAAM,SAAS,QAAQ;AAAA,MAClC,CAAC;AAED,aAAO,IAAI,SAAS,gBAAgB;AAAA,QAClC,QAAQ,SAAS;AAAA,QACjB,YAAY,SAAS;AAAA,QACrB,SAAS,SAAS;AAAA,MACpB,CAAC;AAAA,IACH;AAEA,UAAM,cAAc,SAAS,QAAQ,IAAI,cAAc;AACvD,SACE,2CAAa,SAAS,0CACtB,SAAS,QAAQ,MACjB;AACA,YAAM,kBAAkB,iCAAiC,SAAS,IAAI;AAEtE,aAAO,IAAI,SAAS,iBAAiB;AAAA,QACnC,QAAQ,SAAS;AAAA,QACjB,YAAY,SAAS;AAAA,QACrB,SAAS,IAAI,QAAQ;AAAA,UACnB,GAAG,OAAO,YAAY,SAAS,QAAQ,QAAQ,CAAC;AAAA,UAChD,gBAAgB;AAAA,QAClB,CAAC;AAAA,MACH,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,EACT;AACF;AAEA,SAAS,iCACP,MAC4B;AAC5B,QAAM,cAAc,IAAI,YAAY;AAEpC,SAAO,gCAAgC,MAAM,OAAO,OAAO,eAAe;AACxE,QAAI,MAAM,gBAAgB,SAAS;AACjC,UAAI,MAAM,cAAc,SAAS;AAC/B,cAAM,SAAS,MAAM,cAAc,EAAE,MAAM,MAAM,KAAK,CAAC;AACvD,YAAI,CAAC,OAAO,SAAS;AACnB,qBAAW,QAAQ,YAAY,OAAO,SAAS,MAAM,IAAI;AAAA;AAAA,CAAM,CAAC;AAChE;AAAA,QACF;AACA,cAAM,QAAS,OAAO,MAA6B;AACnD,YAAI,OAAO;AACT,gBAAM,iBAAiB,IAAI,YAAY,EAAE;AAAA,YACvC,0BAA0B,KAAK;AAAA,UACjC;AACA,qBAAW,QAAQ,YAAY,OAAO,SAAS,cAAc;AAAA;AAAA,CAAM,CAAC;AAAA,QACtE,OAAO;AACL,qBAAW,QAAQ,YAAY,OAAO,SAAS,MAAM,IAAI;AAAA;AAAA,CAAM,CAAC;AAAA,QAClE;AAAA,MACF,WAAW,MAAM,cAAc,eAAe;AAC5C,mBAAW,QAAQ,YAAY,OAAO,kBAAkB,CAAC;AAAA,MAC3D;AAAA,IACF,WAAW,MAAM,gBAAgB,aAAa;AAC5C,iBAAW;AAAA,QACT,YAAY;AAAA,UACV,SAAS,KAAK,UAAU,EAAE,MAAM,SAAS,OAAO,MAAM,KAAK,CAAC,CAAC;AAAA;AAAA;AAAA,QAC/D;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAC;AACH;;;AL7DA,IAAM,2BAA2B;AAAA,EAC/B,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,mBAAmB;AACrB;AAGA,IAAM,wBAAgD;AAAA,EACpD,sBAAsB;AACxB;AAGA,IAAM,wBAAgD;AAAA,EACpD,eAAe;AAAA,EACf,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,iCAAiC;AAAA;AAAA;AAAA,EAGjC,gCAAgC;AAClC;AAwFO,SAAS,uBACd,UAA4C,CAAC,GACnB;AAE1B,QAAM,YAAYC,qBAAoB;AAAA,IACpC,cAAc,QAAQ;AAAA,IACtB,yBAAyB;AAAA,EAC3B,CAAC;AAGD,QAAM,SACJ,aAAa,UAAU,KAAK,EAAE,SAAS,IAAI,UAAU,KAAK,IAAI;AAGhE,QAAM,oBAAoB,SACtB,0BAA0B,QAAQ,QAAQ,KAAK,IAC/C,yBAAyB,YAAY;AACnC,UAAM,SAAS,YAAY;AAAA,MACzB,cAAc,QAAQ;AAAA,MACtB,aAAa;AAAA,MACb,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC;AAGD,QAAI,QAAQ,oBAAoB;AAC9B,UAAI;AACF,eAAO;AAAA,UACL,GAAI,MAAM,QAAQ,mBAAmB;AAAA,UACrC;AAAA,QACF;AAAA,MACF,SAAS,OAAO;AACd,cAAM,eACJ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACvD,cAAM,IAAI;AAAA,UACR,mCAAmC,YAAY;AAAA,QAGjD;AAAA,MACF;AAAA,IACF;AAEA,QAAI;AACF,aAAO;AAAA,QACL;AAAA,QACA,aAAa,YAAY;AAAA,UACvB,cAAc,QAAQ;AAAA,UACtB,aAAa;AAAA,UACb,yBAAyB;AAAA,UACzB,aAAa;AAAA,QACf,CAAC;AAAA,QACD,iBAAiB,YAAY;AAAA,UAC3B,cAAc,QAAQ;AAAA,UACtB,aAAa;AAAA,UACb,yBAAyB;AAAA,UACzB,aAAa;AAAA,QACf,CAAC;AAAA,QACD,cAAcA,qBAAoB;AAAA,UAChC,cAAc,QAAQ;AAAA,UACtB,yBAAyB;AAAA,QAC3B,CAAC;AAAA,MACH;AAAA,IACF,SAAS,OAAO;AACd,YAAM,eACJ,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AACvD,UACE,aAAa,SAAS,mBAAmB,KACzC,aAAa,SAAS,aAAa,GACnC;AACA,cAAM,IAAI;AAAA,UACR;AAAA;AAAA;AAAA;AAAA;AAAA,kBAKqB,YAAY;AAAA,QACnC;AAAA,MACF;AACA,UACE,aAAa,SAAS,uBAAuB,KAC7C,aAAa,SAAS,iBAAiB,GACvC;AACA,cAAM,IAAI;AAAA,UACR;AAAA,kBAEqB,YAAY;AAAA,QACnC;AAAA,MACF;AACA,YAAM;AAAA,IACR;AAAA,EACF,GAAG,QAAQ,KAAK;AAGpB,QAAM,gBAAgB,4BAA4B,iBAAiB;AAEnE,QAAM,aAAa,MACjB,sBAAsB;AAAA,IACpB,SAAS,QAAQ;AAAA,IACjB,WAAW,MACT,YAAY;AAAA,MACV,cAAc,QAAQ;AAAA,MACtB,aAAa;AAAA,MACb,yBAAyB;AAAA,MACzB,aAAa;AAAA,IACf,CAAC;AAAA,IACH,SAAS;AAAA,IACT,2CACE;AAAA,EACJ,CAAC;AAEH,QAAM,aAAa,YAAY;AA/PjC;AAgQI,UAAM,eAAe,WAAM,QAAQ,QAAQ,OAAO,MAA7B,YAAmC,CAAC;AACzD,WAAOC,qBAAoB,aAAa,yBAAyB,OAAO,EAAE;AAAA,EAC5E;AAEA,QAAM,kBAAkB,CAAC,YACvB,IAAI,+BAA+B,SAAS;AAAA,IAC1C,UAAU;AAAA,IACV,SAAS,WAAW;AAAA,IACpB,SAAS;AAAA,IACT,OAAO;AAAA,IAEP,iBAAiB,CAAC,SAAS,gBACzB,GAAG,OAAO,UAAU,mBAAmB,OAAO,CAAC,IAC7C,cAAc,gCAAgC,QAChD;AAAA,IAEF,sBAAsB,CAAC,MAAM,UAAU;AACrC,YAAM,EAAE,OAAO,QAAQ,aAAa,OAAO,GAAG,KAAK,IAAI;AAEvD,YAAM,wBACJ,eAAe,OACX;AAAA,QACE,MAAM,YAAY;AAAA,QAClB,GAAI,YAAY,QAAQ,OAAO,EAAE,MAAM,YAAY,KAAK,IAAI,CAAC;AAAA,MAC/D,IACA;AAEN,YAAM,gBAAgB,IAAI,IAAY,KAAK;AAC3C,YAAM,mBAAmB,+BAAO;AAAA,QAC9B,CAAC,YAAqC;AAIpC,gBAAM,EAAE,uBAAuB,qBAAqB,GAAG,KAAK,IAC1D;AACF,cAAI,wBAAwB,MAAM;AAChC,0BAAc,IAAI,wCAAwC;AAAA,UAC5D;AAEA,gBAAM,WAAW,KAAK;AAEtB,cAAI,YAAY,YAAY,0BAA0B;AACpD,kBAAM,UACJ,yBACE,QACF;AACF,gBAAI,WAAW,uBAAuB;AACpC,4BAAc,IAAI,sBAAsB,OAAO,CAAC;AAAA,YAClD;AACA,kBAAM,UACJ,WAAW,wBACP,sBAAsB,OAAO,IAC7B,KAAK;AACX,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,MAAM;AAAA,cACN,MAAM;AAAA,YACR;AAAA,UACF;AAEA,cAAI,YAAY,YAAY,uBAAuB;AACjD,0BAAc,IAAI,sBAAsB,QAAQ,CAAC;AAAA,UACnD;AAEA,cAAI,YAAY,YAAY,uBAAuB;AACjD,mBAAO;AAAA,cACL,GAAG;AAAA,cACH,MAAM,sBAAsB,QAAQ;AAAA,YACtC;AAAA,UACF;AAEA,iBAAO;AAAA,QACT;AAAA;AAGF,aAAO;AAAA,QACL,GAAG;AAAA,QACH,GAAI,oBAAoB,OAAO,EAAE,OAAO,iBAAiB,IAAI,CAAC;AAAA,QAC9D,GAAI,yBAAyB,OACzB,EAAE,aAAa,sBAAsB,IACrC,CAAC;AAAA,QACL,GAAI,cAAc,OAAO,IACrB,EAAE,gBAAgB,MAAM,KAAK,aAAa,EAAE,IAC5C,CAAC;AAAA,QACL,mBAAmB;AAAA,MACrB;AAAA,IACF;AAAA;AAAA,IAGA,eAAe,OAAO,CAAC;AAAA,IACvB,gCAAgC,+BAA+B,OAAO;AAAA,IACtE,qBAAqB,oBAAoB,OAAO;AAAA,EAClD,CAAC;AAEH,QAAM,WAAW,SAAU,SAAkC;AAC3D,QAAI,YAAY;AACd,YAAM,IAAI;AAAA,QACR;AAAA,MACF;AAAA,IACF;AAEA,WAAO,gBAAgB,OAAO;AAAA,EAChC;AAEA,WAAS,uBAAuB;AAChC,WAAS,gBAAgB;AACzB,WAAS,OAAO;AAChB,WAAS,WAAW;AAEpB,WAAS,iBAAiB,CAAC,YAAoB;AAC7C,UAAM,IAAI,iBAAiB,EAAE,SAAS,WAAW,iBAAiB,CAAC;AAAA,EACrE;AACA,WAAS,qBAAqB,SAAS;AACvC,WAAS,aAAa,CAAC,YAAoB;AACzC,UAAM,IAAI,iBAAiB,EAAE,SAAS,WAAW,aAAa,CAAC;AAAA,EACjE;AAEA,WAAS,QAAQ;AAEjB,SAAO;AACT;AAKO,IAAM,mBAAmB,uBAAuB;","names":["loadOptionalSetting","withUserAgentSuffix","loadOptionalSetting","withUserAgentSuffix"]}
|
package/dist/index.d.mts
CHANGED
|
@@ -45,6 +45,15 @@ declare const amazonBedrockEmbeddingModelOptionsSchema: z.ZodObject<{
|
|
|
45
45
|
type AmazonBedrockEmbeddingModelOptions = z.infer<typeof amazonBedrockEmbeddingModelOptionsSchema>;
|
|
46
46
|
|
|
47
47
|
type BedrockChatModelId = 'amazon.titan-tg1-large' | 'amazon.titan-text-express-v1' | 'anthropic.claude-v2' | 'anthropic.claude-v2:1' | 'anthropic.claude-instant-v1' | 'anthropic.claude-sonnet-5' | 'anthropic.claude-fable-5' | 'anthropic.claude-opus-4-8' | 'anthropic.claude-opus-4-7' | 'anthropic.claude-opus-4-6-v1' | 'anthropic.claude-sonnet-4-6-v1' | 'anthropic.claude-opus-4-5-20251101-v1:0' | 'anthropic.claude-haiku-4-5-20251001-v1:0' | 'anthropic.claude-sonnet-4-5-20250929-v1:0' | 'anthropic.claude-sonnet-4-20250514-v1:0' | 'anthropic.claude-opus-4-20250514-v1:0' | 'anthropic.claude-opus-4-1-20250805-v1:0' | 'anthropic.claude-3-7-sonnet-20250219-v1:0' | 'anthropic.claude-3-5-sonnet-20240620-v1:0' | 'anthropic.claude-3-5-sonnet-20241022-v2:0' | 'anthropic.claude-3-5-haiku-20241022-v1:0' | 'anthropic.claude-3-sonnet-20240229-v1:0' | 'anthropic.claude-3-haiku-20240307-v1:0' | 'anthropic.claude-3-opus-20240229-v1:0' | 'cohere.command-text-v14' | 'cohere.command-light-text-v14' | 'cohere.command-r-v1:0' | 'cohere.command-r-plus-v1:0' | 'meta.llama3-70b-instruct-v1:0' | 'meta.llama3-8b-instruct-v1:0' | 'meta.llama3-1-405b-instruct-v1:0' | 'meta.llama3-1-70b-instruct-v1:0' | 'meta.llama3-1-8b-instruct-v1:0' | 'meta.llama3-2-11b-instruct-v1:0' | 'meta.llama3-2-1b-instruct-v1:0' | 'meta.llama3-2-3b-instruct-v1:0' | 'meta.llama3-2-90b-instruct-v1:0' | 'mistral.mistral-7b-instruct-v0:2' | 'mistral.mixtral-8x7b-instruct-v0:1' | 'mistral.mistral-large-2402-v1:0' | 'mistral.mistral-small-2402-v1:0' | 'openai.gpt-oss-120b-1:0' | 'openai.gpt-oss-20b-1:0' | 'amazon.titan-text-express-v1' | 'amazon.titan-text-lite-v1' | 'us.amazon.nova-premier-v1:0' | 'us.amazon.nova-pro-v1:0' | 'us.amazon.nova-micro-v1:0' | 'us.amazon.nova-lite-v1:0' | 'us.anthropic.claude-3-sonnet-20240229-v1:0' | 'us.anthropic.claude-3-opus-20240229-v1:0' | 'us.anthropic.claude-3-haiku-20240307-v1:0' | 'us.anthropic.claude-3-5-sonnet-20240620-v1:0' | 'us.anthropic.claude-3-5-haiku-20241022-v1:0' | 'us.anthropic.claude-3-5-sonnet-20241022-v2:0' | 'us.anthropic.claude-3-7-sonnet-20250219-v1:0' | 'us.anthropic.claude-sonnet-5' | 'us.anthropic.claude-fable-5' | 'us.anthropic.claude-opus-4-8' | 'us.anthropic.claude-opus-4-7' | 'us.anthropic.claude-opus-4-6-v1' | 'us.anthropic.claude-sonnet-4-6-v1' | 'us.anthropic.claude-opus-4-5-20251101-v1:0' | 'us.anthropic.claude-sonnet-4-5-20250929-v1:0' | 'us.anthropic.claude-sonnet-4-20250514-v1:0' | 'us.anthropic.claude-opus-4-20250514-v1:0' | 'us.anthropic.claude-opus-4-1-20250805-v1:0' | 'us.anthropic.claude-haiku-4-5-20251001-v1:0' | 'us.meta.llama3-2-11b-instruct-v1:0' | 'us.meta.llama3-2-3b-instruct-v1:0' | 'us.meta.llama3-2-90b-instruct-v1:0' | 'us.meta.llama3-2-1b-instruct-v1:0' | 'us.meta.llama3-1-8b-instruct-v1:0' | 'us.meta.llama3-1-70b-instruct-v1:0' | 'us.meta.llama3-3-70b-instruct-v1:0' | 'us.deepseek.r1-v1:0' | 'us.mistral.pixtral-large-2502-v1:0' | 'us.meta.llama4-scout-17b-instruct-v1:0' | 'us.meta.llama4-maverick-17b-instruct-v1:0' | (string & {});
|
|
48
|
+
type AmazonBedrockChatModelSettings = {
|
|
49
|
+
/**
|
|
50
|
+
* The chat model family.
|
|
51
|
+
*
|
|
52
|
+
* Specify this when the model ID does not identify the underlying model,
|
|
53
|
+
* such as an application inference profile ARN.
|
|
54
|
+
*/
|
|
55
|
+
modelFamily?: 'anthropic';
|
|
56
|
+
};
|
|
48
57
|
declare const amazonBedrockLanguageModelOptions: z.ZodObject<{
|
|
49
58
|
structuredOutputMode: z.ZodOptional<z.ZodEnum<{
|
|
50
59
|
outputFormat: "outputFormat";
|
|
@@ -146,7 +155,9 @@ interface AmazonBedrockProviderSettings {
|
|
|
146
155
|
*/
|
|
147
156
|
sessionToken?: string;
|
|
148
157
|
/**
|
|
149
|
-
* Base URL for the Bedrock API calls.
|
|
158
|
+
* Base URL for the Bedrock API calls. When omitted, the provider uses
|
|
159
|
+
* service-specific AWS endpoint environment variables, then `AWS_ENDPOINT_URL`,
|
|
160
|
+
* before generating an endpoint from the AWS region.
|
|
150
161
|
*/
|
|
151
162
|
baseURL?: string;
|
|
152
163
|
/**
|
|
@@ -168,8 +179,8 @@ interface AmazonBedrockProviderSettings {
|
|
|
168
179
|
generateId?: () => string;
|
|
169
180
|
}
|
|
170
181
|
interface AmazonBedrockProvider extends ProviderV3 {
|
|
171
|
-
(modelId: BedrockChatModelId): LanguageModelV3;
|
|
172
|
-
languageModel(modelId: BedrockChatModelId): LanguageModelV3;
|
|
182
|
+
(modelId: BedrockChatModelId, settings?: AmazonBedrockChatModelSettings): LanguageModelV3;
|
|
183
|
+
languageModel(modelId: BedrockChatModelId, settings?: AmazonBedrockChatModelSettings): LanguageModelV3;
|
|
173
184
|
/**
|
|
174
185
|
* Creates a model for text embeddings.
|
|
175
186
|
*/
|
|
@@ -218,4 +229,4 @@ declare const bedrock: AmazonBedrockProvider;
|
|
|
218
229
|
|
|
219
230
|
declare const VERSION: string;
|
|
220
231
|
|
|
221
|
-
export { type AmazonBedrockEmbeddingModelOptions, type AmazonBedrockEmbeddingModelSettings, type AmazonBedrockLanguageModelOptions, type AmazonBedrockProvider, type AmazonBedrockProviderSettings, type AmazonBedrockRerankingModelOptions, type AmazonBedrockLanguageModelOptions as BedrockProviderOptions, type AmazonBedrockRerankingModelOptions as BedrockRerankingOptions, VERSION, bedrock, createAmazonBedrock };
|
|
232
|
+
export { type AmazonBedrockChatModelSettings, type AmazonBedrockEmbeddingModelOptions, type AmazonBedrockEmbeddingModelSettings, type AmazonBedrockLanguageModelOptions, type AmazonBedrockProvider, type AmazonBedrockProviderSettings, type AmazonBedrockRerankingModelOptions, type AmazonBedrockLanguageModelOptions as BedrockProviderOptions, type AmazonBedrockRerankingModelOptions as BedrockRerankingOptions, VERSION, bedrock, createAmazonBedrock };
|
package/dist/index.d.ts
CHANGED
|
@@ -45,6 +45,15 @@ declare const amazonBedrockEmbeddingModelOptionsSchema: z.ZodObject<{
|
|
|
45
45
|
type AmazonBedrockEmbeddingModelOptions = z.infer<typeof amazonBedrockEmbeddingModelOptionsSchema>;
|
|
46
46
|
|
|
47
47
|
type BedrockChatModelId = 'amazon.titan-tg1-large' | 'amazon.titan-text-express-v1' | 'anthropic.claude-v2' | 'anthropic.claude-v2:1' | 'anthropic.claude-instant-v1' | 'anthropic.claude-sonnet-5' | 'anthropic.claude-fable-5' | 'anthropic.claude-opus-4-8' | 'anthropic.claude-opus-4-7' | 'anthropic.claude-opus-4-6-v1' | 'anthropic.claude-sonnet-4-6-v1' | 'anthropic.claude-opus-4-5-20251101-v1:0' | 'anthropic.claude-haiku-4-5-20251001-v1:0' | 'anthropic.claude-sonnet-4-5-20250929-v1:0' | 'anthropic.claude-sonnet-4-20250514-v1:0' | 'anthropic.claude-opus-4-20250514-v1:0' | 'anthropic.claude-opus-4-1-20250805-v1:0' | 'anthropic.claude-3-7-sonnet-20250219-v1:0' | 'anthropic.claude-3-5-sonnet-20240620-v1:0' | 'anthropic.claude-3-5-sonnet-20241022-v2:0' | 'anthropic.claude-3-5-haiku-20241022-v1:0' | 'anthropic.claude-3-sonnet-20240229-v1:0' | 'anthropic.claude-3-haiku-20240307-v1:0' | 'anthropic.claude-3-opus-20240229-v1:0' | 'cohere.command-text-v14' | 'cohere.command-light-text-v14' | 'cohere.command-r-v1:0' | 'cohere.command-r-plus-v1:0' | 'meta.llama3-70b-instruct-v1:0' | 'meta.llama3-8b-instruct-v1:0' | 'meta.llama3-1-405b-instruct-v1:0' | 'meta.llama3-1-70b-instruct-v1:0' | 'meta.llama3-1-8b-instruct-v1:0' | 'meta.llama3-2-11b-instruct-v1:0' | 'meta.llama3-2-1b-instruct-v1:0' | 'meta.llama3-2-3b-instruct-v1:0' | 'meta.llama3-2-90b-instruct-v1:0' | 'mistral.mistral-7b-instruct-v0:2' | 'mistral.mixtral-8x7b-instruct-v0:1' | 'mistral.mistral-large-2402-v1:0' | 'mistral.mistral-small-2402-v1:0' | 'openai.gpt-oss-120b-1:0' | 'openai.gpt-oss-20b-1:0' | 'amazon.titan-text-express-v1' | 'amazon.titan-text-lite-v1' | 'us.amazon.nova-premier-v1:0' | 'us.amazon.nova-pro-v1:0' | 'us.amazon.nova-micro-v1:0' | 'us.amazon.nova-lite-v1:0' | 'us.anthropic.claude-3-sonnet-20240229-v1:0' | 'us.anthropic.claude-3-opus-20240229-v1:0' | 'us.anthropic.claude-3-haiku-20240307-v1:0' | 'us.anthropic.claude-3-5-sonnet-20240620-v1:0' | 'us.anthropic.claude-3-5-haiku-20241022-v1:0' | 'us.anthropic.claude-3-5-sonnet-20241022-v2:0' | 'us.anthropic.claude-3-7-sonnet-20250219-v1:0' | 'us.anthropic.claude-sonnet-5' | 'us.anthropic.claude-fable-5' | 'us.anthropic.claude-opus-4-8' | 'us.anthropic.claude-opus-4-7' | 'us.anthropic.claude-opus-4-6-v1' | 'us.anthropic.claude-sonnet-4-6-v1' | 'us.anthropic.claude-opus-4-5-20251101-v1:0' | 'us.anthropic.claude-sonnet-4-5-20250929-v1:0' | 'us.anthropic.claude-sonnet-4-20250514-v1:0' | 'us.anthropic.claude-opus-4-20250514-v1:0' | 'us.anthropic.claude-opus-4-1-20250805-v1:0' | 'us.anthropic.claude-haiku-4-5-20251001-v1:0' | 'us.meta.llama3-2-11b-instruct-v1:0' | 'us.meta.llama3-2-3b-instruct-v1:0' | 'us.meta.llama3-2-90b-instruct-v1:0' | 'us.meta.llama3-2-1b-instruct-v1:0' | 'us.meta.llama3-1-8b-instruct-v1:0' | 'us.meta.llama3-1-70b-instruct-v1:0' | 'us.meta.llama3-3-70b-instruct-v1:0' | 'us.deepseek.r1-v1:0' | 'us.mistral.pixtral-large-2502-v1:0' | 'us.meta.llama4-scout-17b-instruct-v1:0' | 'us.meta.llama4-maverick-17b-instruct-v1:0' | (string & {});
|
|
48
|
+
type AmazonBedrockChatModelSettings = {
|
|
49
|
+
/**
|
|
50
|
+
* The chat model family.
|
|
51
|
+
*
|
|
52
|
+
* Specify this when the model ID does not identify the underlying model,
|
|
53
|
+
* such as an application inference profile ARN.
|
|
54
|
+
*/
|
|
55
|
+
modelFamily?: 'anthropic';
|
|
56
|
+
};
|
|
48
57
|
declare const amazonBedrockLanguageModelOptions: z.ZodObject<{
|
|
49
58
|
structuredOutputMode: z.ZodOptional<z.ZodEnum<{
|
|
50
59
|
outputFormat: "outputFormat";
|
|
@@ -146,7 +155,9 @@ interface AmazonBedrockProviderSettings {
|
|
|
146
155
|
*/
|
|
147
156
|
sessionToken?: string;
|
|
148
157
|
/**
|
|
149
|
-
* Base URL for the Bedrock API calls.
|
|
158
|
+
* Base URL for the Bedrock API calls. When omitted, the provider uses
|
|
159
|
+
* service-specific AWS endpoint environment variables, then `AWS_ENDPOINT_URL`,
|
|
160
|
+
* before generating an endpoint from the AWS region.
|
|
150
161
|
*/
|
|
151
162
|
baseURL?: string;
|
|
152
163
|
/**
|
|
@@ -168,8 +179,8 @@ interface AmazonBedrockProviderSettings {
|
|
|
168
179
|
generateId?: () => string;
|
|
169
180
|
}
|
|
170
181
|
interface AmazonBedrockProvider extends ProviderV3 {
|
|
171
|
-
(modelId: BedrockChatModelId): LanguageModelV3;
|
|
172
|
-
languageModel(modelId: BedrockChatModelId): LanguageModelV3;
|
|
182
|
+
(modelId: BedrockChatModelId, settings?: AmazonBedrockChatModelSettings): LanguageModelV3;
|
|
183
|
+
languageModel(modelId: BedrockChatModelId, settings?: AmazonBedrockChatModelSettings): LanguageModelV3;
|
|
173
184
|
/**
|
|
174
185
|
* Creates a model for text embeddings.
|
|
175
186
|
*/
|
|
@@ -218,4 +229,4 @@ declare const bedrock: AmazonBedrockProvider;
|
|
|
218
229
|
|
|
219
230
|
declare const VERSION: string;
|
|
220
231
|
|
|
221
|
-
export { type AmazonBedrockEmbeddingModelOptions, type AmazonBedrockEmbeddingModelSettings, type AmazonBedrockLanguageModelOptions, type AmazonBedrockProvider, type AmazonBedrockProviderSettings, type AmazonBedrockRerankingModelOptions, type AmazonBedrockLanguageModelOptions as BedrockProviderOptions, type AmazonBedrockRerankingModelOptions as BedrockRerankingOptions, VERSION, bedrock, createAmazonBedrock };
|
|
232
|
+
export { type AmazonBedrockChatModelSettings, type AmazonBedrockEmbeddingModelOptions, type AmazonBedrockEmbeddingModelSettings, type AmazonBedrockLanguageModelOptions, type AmazonBedrockProvider, type AmazonBedrockProviderSettings, type AmazonBedrockRerankingModelOptions, type AmazonBedrockLanguageModelOptions as BedrockProviderOptions, type AmazonBedrockRerankingModelOptions as BedrockRerankingOptions, VERSION, bedrock, createAmazonBedrock };
|
package/dist/index.js
CHANGED
|
@@ -28,7 +28,7 @@ module.exports = __toCommonJS(index_exports);
|
|
|
28
28
|
|
|
29
29
|
// src/bedrock-provider.ts
|
|
30
30
|
var import_internal3 = require("@ai-sdk/anthropic/internal");
|
|
31
|
-
var
|
|
31
|
+
var import_provider_utils12 = require("@ai-sdk/provider-utils");
|
|
32
32
|
|
|
33
33
|
// src/bedrock-chat-language-model.ts
|
|
34
34
|
var import_provider_utils4 = require("@ai-sdk/provider-utils");
|
|
@@ -122,6 +122,13 @@ var amazonBedrockLanguageModelOptions = import_v4.z.object({
|
|
|
122
122
|
});
|
|
123
123
|
|
|
124
124
|
// src/bedrock-anthropic-model-support.ts
|
|
125
|
+
function isAnthropicModel({
|
|
126
|
+
modelId,
|
|
127
|
+
modelFamily,
|
|
128
|
+
reasoningBudgetTokens
|
|
129
|
+
}) {
|
|
130
|
+
return modelFamily === "anthropic" || modelId.includes("anthropic") || modelId.includes(":application-inference-profile/") && reasoningBudgetTokens != null;
|
|
131
|
+
}
|
|
125
132
|
function supportsStrictTools(modelId) {
|
|
126
133
|
return !matchesModel(modelId, MODELS_WITHOUT_STRICT_TOOL_SUPPORT);
|
|
127
134
|
}
|
|
@@ -256,6 +263,8 @@ async function prepareTools({
|
|
|
256
263
|
tools,
|
|
257
264
|
toolChoice,
|
|
258
265
|
modelId,
|
|
266
|
+
modelFamily,
|
|
267
|
+
reasoningBudgetTokens,
|
|
259
268
|
disableParallelToolUse
|
|
260
269
|
}) {
|
|
261
270
|
var _a;
|
|
@@ -288,12 +297,16 @@ async function prepareTools({
|
|
|
288
297
|
toolWarnings
|
|
289
298
|
};
|
|
290
299
|
}
|
|
291
|
-
const
|
|
300
|
+
const isAnthropicModel2 = isAnthropicModel({
|
|
301
|
+
modelId,
|
|
302
|
+
modelFamily,
|
|
303
|
+
reasoningBudgetTokens
|
|
304
|
+
});
|
|
292
305
|
const ProviderTools = supportedTools.filter((t) => t.type === "provider");
|
|
293
306
|
const functionTools = supportedTools.filter((t) => t.type === "function");
|
|
294
307
|
let additionalTools = void 0;
|
|
295
308
|
const bedrockTools = [];
|
|
296
|
-
const usingAnthropicTools =
|
|
309
|
+
const usingAnthropicTools = isAnthropicModel2 && ProviderTools.length > 0;
|
|
297
310
|
if (usingAnthropicTools) {
|
|
298
311
|
const {
|
|
299
312
|
toolChoice: preparedAnthropicToolChoice,
|
|
@@ -358,7 +371,7 @@ async function prepareTools({
|
|
|
358
371
|
}
|
|
359
372
|
});
|
|
360
373
|
}
|
|
361
|
-
if (
|
|
374
|
+
if (isAnthropicModel2 && !usingAnthropicTools && disableParallelToolUse && bedrockTools.length > 0 && (toolChoice == null ? void 0 : toolChoice.type) !== "none") {
|
|
362
375
|
additionalTools = {
|
|
363
376
|
tool_choice: (toolChoice == null ? void 0 : toolChoice.type) === "required" ? { type: "any", disable_parallel_tool_use: true } : (toolChoice == null ? void 0 : toolChoice.type) === "tool" ? {
|
|
364
377
|
type: "tool",
|
|
@@ -959,7 +972,7 @@ var BedrockChatLanguageModel = class {
|
|
|
959
972
|
toolChoice,
|
|
960
973
|
providerOptions
|
|
961
974
|
}) {
|
|
962
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s;
|
|
975
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t;
|
|
963
976
|
const bedrockOptions = (_a = await (0, import_provider_utils4.parseProviderOptions)({
|
|
964
977
|
provider: "bedrock",
|
|
965
978
|
providerOptions,
|
|
@@ -1011,7 +1024,11 @@ var BedrockChatLanguageModel = class {
|
|
|
1011
1024
|
details: "Only text and json response formats are supported."
|
|
1012
1025
|
});
|
|
1013
1026
|
}
|
|
1014
|
-
const
|
|
1027
|
+
const isAnthropicModel2 = isAnthropicModel({
|
|
1028
|
+
modelId: this.modelId,
|
|
1029
|
+
modelFamily: this.config.modelFamily,
|
|
1030
|
+
reasoningBudgetTokens: (_b = bedrockOptions.reasoningConfig) == null ? void 0 : _b.budgetTokens
|
|
1031
|
+
});
|
|
1015
1032
|
const openAIModelId = (_c = /^(?:[^.]+\.)?(openai\..+)$/.exec(this.modelId)) == null ? void 0 : _c[1];
|
|
1016
1033
|
const isOpenAIModel = openAIModelId != null;
|
|
1017
1034
|
const isOpenAIGptOssModel = (_d = openAIModelId == null ? void 0 : openAIModelId.startsWith("openai.gpt-oss-")) != null ? _d : false;
|
|
@@ -1034,9 +1051,9 @@ var BedrockChatLanguageModel = class {
|
|
|
1034
1051
|
bedrockOptions.additionalModelRequestFields = additionalModelRequestFields;
|
|
1035
1052
|
}
|
|
1036
1053
|
}
|
|
1037
|
-
const modelSupportsNativeStructuredOutput = supportsNativeStructuredOutput(this.modelId) && (modelSupportsStructuredOutput || isThinkingEnabled);
|
|
1038
|
-
const useNativeStructuredOutput =
|
|
1039
|
-
const useJsonInstructionForStructuredOutput = !useNativeStructuredOutput && structuredOutputMode !== "jsonTool" &&
|
|
1054
|
+
const modelSupportsNativeStructuredOutput = supportsNativeStructuredOutput(this.modelId) && (modelSupportsStructuredOutput || isThinkingEnabled || this.config.modelFamily === "anthropic");
|
|
1055
|
+
const useNativeStructuredOutput = isAnthropicModel2 && (responseFormat == null ? void 0 : responseFormat.type) === "json" && responseFormat.schema != null && (structuredOutputMode === "outputFormat" || structuredOutputMode === "auto" && modelSupportsNativeStructuredOutput);
|
|
1056
|
+
const useJsonInstructionForStructuredOutput = !useNativeStructuredOutput && structuredOutputMode !== "jsonTool" && isAnthropicModel2 && !supportsStrictTools(this.modelId) && (responseFormat == null ? void 0 : responseFormat.type) === "json" && responseFormat.schema != null && tools != null && tools.length > 0;
|
|
1040
1057
|
const jsonResponseTool = (responseFormat == null ? void 0 : responseFormat.type) === "json" && responseFormat.schema != null && !useNativeStructuredOutput && !useJsonInstructionForStructuredOutput ? {
|
|
1041
1058
|
type: "function",
|
|
1042
1059
|
name: "json",
|
|
@@ -1047,6 +1064,8 @@ var BedrockChatLanguageModel = class {
|
|
|
1047
1064
|
tools: jsonResponseTool ? [...tools != null ? tools : [], jsonResponseTool] : tools,
|
|
1048
1065
|
toolChoice: jsonResponseTool != null ? { type: "required" } : toolChoice,
|
|
1049
1066
|
modelId: this.modelId,
|
|
1067
|
+
modelFamily: this.config.modelFamily,
|
|
1068
|
+
reasoningBudgetTokens: (_i = bedrockOptions.reasoningConfig) == null ? void 0 : _i.budgetTokens,
|
|
1050
1069
|
disableParallelToolUse: anthropicOptions == null ? void 0 : anthropicOptions.disableParallelToolUse
|
|
1051
1070
|
});
|
|
1052
1071
|
warnings.push(...toolWarnings);
|
|
@@ -1057,17 +1076,17 @@ var BedrockChatLanguageModel = class {
|
|
|
1057
1076
|
};
|
|
1058
1077
|
}
|
|
1059
1078
|
if (betas.size > 0 || bedrockOptions.anthropicBeta) {
|
|
1060
|
-
const existingBetas = (
|
|
1079
|
+
const existingBetas = (_j = bedrockOptions.anthropicBeta) != null ? _j : [];
|
|
1061
1080
|
const mergedBetas = betas.size > 0 ? [...existingBetas, ...Array.from(betas)] : existingBetas;
|
|
1062
1081
|
bedrockOptions.additionalModelRequestFields = {
|
|
1063
1082
|
...bedrockOptions.additionalModelRequestFields,
|
|
1064
1083
|
anthropic_beta: mergedBetas
|
|
1065
1084
|
};
|
|
1066
1085
|
}
|
|
1067
|
-
const thinkingType = (
|
|
1068
|
-
const thinkingBudget = thinkingType === "enabled" ? (
|
|
1069
|
-
const thinkingDisplay = thinkingType === "adaptive" ? (
|
|
1070
|
-
const isAnthropicThinkingEnabled =
|
|
1086
|
+
const thinkingType = (_k = bedrockOptions.reasoningConfig) == null ? void 0 : _k.type;
|
|
1087
|
+
const thinkingBudget = thinkingType === "enabled" ? (_l = bedrockOptions.reasoningConfig) == null ? void 0 : _l.budgetTokens : void 0;
|
|
1088
|
+
const thinkingDisplay = thinkingType === "adaptive" ? (_m = bedrockOptions.reasoningConfig) == null ? void 0 : _m.display : void 0;
|
|
1089
|
+
const isAnthropicThinkingEnabled = isAnthropicModel2 && isThinkingEnabled;
|
|
1071
1090
|
const inferenceConfig = {
|
|
1072
1091
|
...maxOutputTokens != null && { maxTokens: maxOutputTokens },
|
|
1073
1092
|
...temperature != null && { temperature },
|
|
@@ -1098,8 +1117,8 @@ var BedrockChatLanguageModel = class {
|
|
|
1098
1117
|
}
|
|
1099
1118
|
};
|
|
1100
1119
|
}
|
|
1101
|
-
} else if (!
|
|
1102
|
-
if (((
|
|
1120
|
+
} else if (!isAnthropicModel2) {
|
|
1121
|
+
if (((_n = bedrockOptions.reasoningConfig) == null ? void 0 : _n.budgetTokens) != null) {
|
|
1103
1122
|
warnings.push({
|
|
1104
1123
|
type: "unsupported",
|
|
1105
1124
|
feature: "budgetTokens",
|
|
@@ -1114,13 +1133,13 @@ var BedrockChatLanguageModel = class {
|
|
|
1114
1133
|
});
|
|
1115
1134
|
}
|
|
1116
1135
|
}
|
|
1117
|
-
const maxReasoningEffort = (
|
|
1136
|
+
const maxReasoningEffort = (_o = bedrockOptions.reasoningConfig) == null ? void 0 : _o.maxReasoningEffort;
|
|
1118
1137
|
if (maxReasoningEffort != null) {
|
|
1119
|
-
if (
|
|
1138
|
+
if (isAnthropicModel2) {
|
|
1120
1139
|
bedrockOptions.additionalModelRequestFields = {
|
|
1121
1140
|
...bedrockOptions.additionalModelRequestFields,
|
|
1122
1141
|
output_config: {
|
|
1123
|
-
...(
|
|
1142
|
+
...(_p = bedrockOptions.additionalModelRequestFields) == null ? void 0 : _p.output_config,
|
|
1124
1143
|
effort: maxReasoningEffort
|
|
1125
1144
|
}
|
|
1126
1145
|
};
|
|
@@ -1131,7 +1150,7 @@ var BedrockChatLanguageModel = class {
|
|
|
1131
1150
|
} : {
|
|
1132
1151
|
...bedrockOptions.additionalModelRequestFields,
|
|
1133
1152
|
reasoning: {
|
|
1134
|
-
...(
|
|
1153
|
+
...(_q = bedrockOptions.additionalModelRequestFields) == null ? void 0 : _q.reasoning,
|
|
1135
1154
|
effort: maxReasoningEffort
|
|
1136
1155
|
}
|
|
1137
1156
|
};
|
|
@@ -1150,7 +1169,7 @@ var BedrockChatLanguageModel = class {
|
|
|
1150
1169
|
bedrockOptions.additionalModelRequestFields = {
|
|
1151
1170
|
...bedrockOptions.additionalModelRequestFields,
|
|
1152
1171
|
output_config: {
|
|
1153
|
-
...(
|
|
1172
|
+
...(_r = bedrockOptions.additionalModelRequestFields) == null ? void 0 : _r.output_config,
|
|
1154
1173
|
format: {
|
|
1155
1174
|
type: "json_schema",
|
|
1156
1175
|
schema: (0, import_internal2.sanitizeJsonSchema)(responseFormat.schema)
|
|
@@ -1182,7 +1201,7 @@ var BedrockChatLanguageModel = class {
|
|
|
1182
1201
|
details: "topK is not supported when thinking is enabled"
|
|
1183
1202
|
});
|
|
1184
1203
|
}
|
|
1185
|
-
const hasAnyTools = ((
|
|
1204
|
+
const hasAnyTools = ((_t = (_s = toolConfig.tools) == null ? void 0 : _s.length) != null ? _t : 0) > 0 || additionalTools;
|
|
1186
1205
|
let filteredPrompt = prompt;
|
|
1187
1206
|
if (!hasAnyTools) {
|
|
1188
1207
|
const hasToolContent = prompt.some(
|
|
@@ -1227,7 +1246,7 @@ var BedrockChatLanguageModel = class {
|
|
|
1227
1246
|
structuredOutputMode: ____,
|
|
1228
1247
|
...filteredBedrockOptions
|
|
1229
1248
|
} = (providerOptions == null ? void 0 : providerOptions.bedrock) || {};
|
|
1230
|
-
const additionalModelResponseFieldPaths =
|
|
1249
|
+
const additionalModelResponseFieldPaths = isAnthropicModel2 ? ["/delta/stop_sequence"] : void 0;
|
|
1231
1250
|
return {
|
|
1232
1251
|
command: {
|
|
1233
1252
|
system,
|
|
@@ -2341,7 +2360,7 @@ var import_provider_utils7 = require("@ai-sdk/provider-utils");
|
|
|
2341
2360
|
var import_aws4fetch = require("aws4fetch");
|
|
2342
2361
|
|
|
2343
2362
|
// src/version.ts
|
|
2344
|
-
var VERSION = true ? "4.0.
|
|
2363
|
+
var VERSION = true ? "4.0.177" : "0.0.0-test";
|
|
2345
2364
|
|
|
2346
2365
|
// src/bedrock-sigv4-fetch.ts
|
|
2347
2366
|
function createSigV4FetchFunction(getCredentials, fetch, service = "bedrock") {
|
|
@@ -2543,15 +2562,50 @@ var BedrockRerankingModel = class {
|
|
|
2543
2562
|
}
|
|
2544
2563
|
};
|
|
2545
2564
|
|
|
2565
|
+
// src/resolve-bedrock-base-url.ts
|
|
2566
|
+
var import_provider_utils11 = require("@ai-sdk/provider-utils");
|
|
2567
|
+
var AWS_PARTITION_DNS_SUFFIXES = [
|
|
2568
|
+
{ regionPrefix: "cn-", dnsSuffix: "amazonaws.com.cn" },
|
|
2569
|
+
{ regionPrefix: "us-iso-", dnsSuffix: "c2s.ic.gov" },
|
|
2570
|
+
{ regionPrefix: "us-isob-", dnsSuffix: "sc2s.sgov.gov" },
|
|
2571
|
+
{ regionPrefix: "eu-isoe-", dnsSuffix: "cloud.adc-e.uk" },
|
|
2572
|
+
{ regionPrefix: "us-isof-", dnsSuffix: "csp.hci.ic.gov" },
|
|
2573
|
+
{ regionPrefix: "eusc-", dnsSuffix: "amazonaws.eu" }
|
|
2574
|
+
];
|
|
2575
|
+
function resolveBedrockBaseURL({
|
|
2576
|
+
baseURL,
|
|
2577
|
+
getRegion,
|
|
2578
|
+
service,
|
|
2579
|
+
serviceEndpointUrlEnvironmentVariableName
|
|
2580
|
+
}) {
|
|
2581
|
+
var _a, _b, _c, _d, _e;
|
|
2582
|
+
const resolvedBaseURL = (_a = baseURL != null ? baseURL : (0, import_provider_utils11.loadOptionalSetting)({
|
|
2583
|
+
settingValue: void 0,
|
|
2584
|
+
environmentVariableName: serviceEndpointUrlEnvironmentVariableName
|
|
2585
|
+
})) != null ? _a : (0, import_provider_utils11.loadOptionalSetting)({
|
|
2586
|
+
settingValue: void 0,
|
|
2587
|
+
environmentVariableName: "AWS_ENDPOINT_URL"
|
|
2588
|
+
});
|
|
2589
|
+
if (resolvedBaseURL != null) {
|
|
2590
|
+
return (_b = (0, import_provider_utils11.withoutTrailingSlash)(resolvedBaseURL)) != null ? _b : resolvedBaseURL;
|
|
2591
|
+
}
|
|
2592
|
+
const region = getRegion();
|
|
2593
|
+
const dnsSuffix = (_d = (_c = AWS_PARTITION_DNS_SUFFIXES.find(
|
|
2594
|
+
({ regionPrefix }) => region.startsWith(regionPrefix)
|
|
2595
|
+
)) == null ? void 0 : _c.dnsSuffix) != null ? _d : "amazonaws.com";
|
|
2596
|
+
const generatedBaseURL = `https://${service}.${region}.${dnsSuffix}`;
|
|
2597
|
+
return (_e = (0, import_provider_utils11.withoutTrailingSlash)(generatedBaseURL)) != null ? _e : generatedBaseURL;
|
|
2598
|
+
}
|
|
2599
|
+
|
|
2546
2600
|
// src/bedrock-provider.ts
|
|
2547
2601
|
function createAmazonBedrock(options = {}) {
|
|
2548
|
-
const rawApiKey = (0,
|
|
2602
|
+
const rawApiKey = (0, import_provider_utils12.loadOptionalSetting)({
|
|
2549
2603
|
settingValue: options.apiKey,
|
|
2550
2604
|
environmentVariableName: "AWS_BEARER_TOKEN_BEDROCK"
|
|
2551
2605
|
});
|
|
2552
2606
|
const apiKey = rawApiKey && rawApiKey.trim().length > 0 ? rawApiKey.trim() : void 0;
|
|
2553
2607
|
const fetchFunction = apiKey ? createApiKeyFetchFunction(apiKey, options.fetch) : createSigV4FetchFunction(async () => {
|
|
2554
|
-
const region = (0,
|
|
2608
|
+
const region = (0, import_provider_utils12.loadSetting)({
|
|
2555
2609
|
settingValue: options.region,
|
|
2556
2610
|
settingName: "region",
|
|
2557
2611
|
environmentVariableName: "AWS_REGION",
|
|
@@ -2573,19 +2627,19 @@ function createAmazonBedrock(options = {}) {
|
|
|
2573
2627
|
try {
|
|
2574
2628
|
return {
|
|
2575
2629
|
region,
|
|
2576
|
-
accessKeyId: (0,
|
|
2630
|
+
accessKeyId: (0, import_provider_utils12.loadSetting)({
|
|
2577
2631
|
settingValue: options.accessKeyId,
|
|
2578
2632
|
settingName: "accessKeyId",
|
|
2579
2633
|
environmentVariableName: "AWS_ACCESS_KEY_ID",
|
|
2580
2634
|
description: "AWS access key ID"
|
|
2581
2635
|
}),
|
|
2582
|
-
secretAccessKey: (0,
|
|
2636
|
+
secretAccessKey: (0, import_provider_utils12.loadSetting)({
|
|
2583
2637
|
settingValue: options.secretAccessKey,
|
|
2584
2638
|
settingName: "secretAccessKey",
|
|
2585
2639
|
environmentVariableName: "AWS_SECRET_ACCESS_KEY",
|
|
2586
2640
|
description: "AWS secret access key"
|
|
2587
2641
|
}),
|
|
2588
|
-
sessionToken: options.accessKeyId != null && options.secretAccessKey != null ? options.sessionToken : (0,
|
|
2642
|
+
sessionToken: options.accessKeyId != null && options.secretAccessKey != null ? options.sessionToken : (0, import_provider_utils12.loadOptionalSetting)({
|
|
2589
2643
|
settingValue: options.sessionToken,
|
|
2590
2644
|
environmentVariableName: "AWS_SESSION_TOKEN"
|
|
2591
2645
|
})
|
|
@@ -2614,43 +2668,44 @@ Original error: ${errorMessage}`
|
|
|
2614
2668
|
const getHeaders = () => {
|
|
2615
2669
|
var _a;
|
|
2616
2670
|
const baseHeaders = (_a = options.headers) != null ? _a : {};
|
|
2617
|
-
return (0,
|
|
2618
|
-
};
|
|
2619
|
-
const getBedrockRuntimeBaseUrl = () => {
|
|
2620
|
-
var _a, _b;
|
|
2621
|
-
return (_b = (0, import_provider_utils11.withoutTrailingSlash)(
|
|
2622
|
-
(_a = options.baseURL) != null ? _a : `https://bedrock-runtime.${(0, import_provider_utils11.loadSetting)({
|
|
2623
|
-
settingValue: options.region,
|
|
2624
|
-
settingName: "region",
|
|
2625
|
-
environmentVariableName: "AWS_REGION",
|
|
2626
|
-
description: "AWS region"
|
|
2627
|
-
})}.amazonaws.com`
|
|
2628
|
-
)) != null ? _b : `https://bedrock-runtime.us-east-1.amazonaws.com`;
|
|
2629
|
-
};
|
|
2630
|
-
const getBedrockAgentRuntimeBaseUrl = () => {
|
|
2631
|
-
var _a, _b;
|
|
2632
|
-
return (_b = (0, import_provider_utils11.withoutTrailingSlash)(
|
|
2633
|
-
(_a = options.baseURL) != null ? _a : `https://bedrock-agent-runtime.${(0, import_provider_utils11.loadSetting)({
|
|
2634
|
-
settingValue: options.region,
|
|
2635
|
-
settingName: "region",
|
|
2636
|
-
environmentVariableName: "AWS_REGION",
|
|
2637
|
-
description: "AWS region"
|
|
2638
|
-
})}.amazonaws.com`
|
|
2639
|
-
)) != null ? _b : `https://bedrock-agent-runtime.us-west-2.amazonaws.com`;
|
|
2671
|
+
return (0, import_provider_utils12.withUserAgentSuffix)(baseHeaders, `ai-sdk/amazon-bedrock/${VERSION}`);
|
|
2640
2672
|
};
|
|
2641
|
-
const
|
|
2673
|
+
const getBedrockRuntimeBaseUrl = () => resolveBedrockBaseURL({
|
|
2674
|
+
baseURL: options.baseURL,
|
|
2675
|
+
getRegion: () => (0, import_provider_utils12.loadSetting)({
|
|
2676
|
+
settingValue: options.region,
|
|
2677
|
+
settingName: "region",
|
|
2678
|
+
environmentVariableName: "AWS_REGION",
|
|
2679
|
+
description: "AWS region"
|
|
2680
|
+
}),
|
|
2681
|
+
service: "bedrock-runtime",
|
|
2682
|
+
serviceEndpointUrlEnvironmentVariableName: "AWS_ENDPOINT_URL_BEDROCK_RUNTIME"
|
|
2683
|
+
});
|
|
2684
|
+
const getBedrockAgentRuntimeBaseUrl = () => resolveBedrockBaseURL({
|
|
2685
|
+
baseURL: options.baseURL,
|
|
2686
|
+
getRegion: () => (0, import_provider_utils12.loadSetting)({
|
|
2687
|
+
settingValue: options.region,
|
|
2688
|
+
settingName: "region",
|
|
2689
|
+
environmentVariableName: "AWS_REGION",
|
|
2690
|
+
description: "AWS region"
|
|
2691
|
+
}),
|
|
2692
|
+
service: "bedrock-agent-runtime",
|
|
2693
|
+
serviceEndpointUrlEnvironmentVariableName: "AWS_ENDPOINT_URL_BEDROCK_AGENT_RUNTIME"
|
|
2694
|
+
});
|
|
2695
|
+
const createChatModel = (modelId, settings = {}) => new BedrockChatLanguageModel(modelId, {
|
|
2642
2696
|
baseUrl: getBedrockRuntimeBaseUrl,
|
|
2643
2697
|
headers: getHeaders,
|
|
2644
2698
|
fetch: fetchFunction,
|
|
2645
|
-
generateId:
|
|
2699
|
+
generateId: import_provider_utils12.generateId,
|
|
2700
|
+
modelFamily: settings.modelFamily
|
|
2646
2701
|
});
|
|
2647
|
-
const provider = function(modelId) {
|
|
2702
|
+
const provider = function(modelId, settings) {
|
|
2648
2703
|
if (new.target) {
|
|
2649
2704
|
throw new Error(
|
|
2650
2705
|
"The Amazon Bedrock model function cannot be called with the new keyword."
|
|
2651
2706
|
);
|
|
2652
2707
|
}
|
|
2653
|
-
return createChatModel(modelId);
|
|
2708
|
+
return createChatModel(modelId, settings);
|
|
2654
2709
|
};
|
|
2655
2710
|
const createEmbeddingModel = (modelId, settings = {}) => new BedrockEmbeddingModel(modelId, {
|
|
2656
2711
|
baseUrl: getBedrockRuntimeBaseUrl,
|
|
@@ -2665,7 +2720,7 @@ Original error: ${errorMessage}`
|
|
|
2665
2720
|
});
|
|
2666
2721
|
const createRerankingModel = (modelId) => new BedrockRerankingModel(modelId, {
|
|
2667
2722
|
baseUrl: getBedrockAgentRuntimeBaseUrl,
|
|
2668
|
-
region: (0,
|
|
2723
|
+
region: (0, import_provider_utils12.loadSetting)({
|
|
2669
2724
|
settingValue: options.region,
|
|
2670
2725
|
settingName: "region",
|
|
2671
2726
|
environmentVariableName: "AWS_REGION",
|