{"version":3,"sources":["../../node_modules/@ai-sdk/anthropic/src/anthropic-error.ts","../../node_modules/@ai-sdk/anthropic/src/anthropic-messages-api.ts","../../node_modules/@ai-sdk/anthropic/src/anthropic-messages-options.ts","../../node_modules/@ai-sdk/anthropic/src/get-cache-control.ts","../../node_modules/@ai-sdk/anthropic/src/tool/text-editor_20250728.ts","../../node_modules/@ai-sdk/anthropic/src/tool/web-search_20260209.ts","../../node_modules/@ai-sdk/anthropic/src/tool/web-search_20250305.ts","../../node_modules/@ai-sdk/anthropic/src/tool/web-fetch-20260209.ts","../../node_modules/@ai-sdk/anthropic/src/tool/web-fetch-20250910.ts","../../node_modules/@ai-sdk/anthropic/src/anthropic-prepare-tools.ts","../../node_modules/@ai-sdk/anthropic/src/tool/code-execution_20250522.ts","../../node_modules/@ai-sdk/anthropic/src/tool/code-execution_20250825.ts","../../node_modules/@ai-sdk/anthropic/src/tool/code-execution_20260120.ts","../../node_modules/@ai-sdk/anthropic/src/tool/tool-search-regex_20251119.ts","../../node_modules/@ai-sdk/anthropic/src/tool/bash_20241022.ts","../../node_modules/@ai-sdk/anthropic/src/tool/bash_20250124.ts","../../node_modules/@ai-sdk/anthropic/src/tool/computer_20241022.ts","../../node_modules/@ai-sdk/anthropic/src/tool/computer_20250124.ts","../../node_modules/@ai-sdk/anthropic/src/tool/computer_20251124.ts","../../node_modules/@ai-sdk/anthropic/src/tool/memory_20250818.ts","../../node_modules/@ai-sdk/anthropic/src/tool/text-editor_20241022.ts","../../node_modules/@ai-sdk/anthropic/src/tool/text-editor_20250124.ts","../../node_modules/@ai-sdk/anthropic/src/tool/text-editor_20250429.ts","../../node_modules/@ai-sdk/anthropic/src/tool/tool-search-bm25_20251119.ts","../../node_modules/@ai-sdk/anthropic/src/anthropic-tools.ts","../../node_modules/tslib/tslib.es6.mjs","../../node_modules/@aws-crypto/util/node_modules/@smithy/util-buffer-from/dist-es/index.js","../../node_modules/@aws-crypto/util/node_modules/@smithy/util-utf8/dist-es/fromUtf8.js","../../node_modules/@aws-crypto/util/src/convertToBuffer.ts","../../node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts","../../node_modules/@aws-crypto/crc32/src/index.ts","../../node_modules/@smithy/util-hex-encoding/dist-es/index.js","../../node_modules/@smithy/eventstream-codec/dist-es/Int64.js","../../node_modules/@smithy/eventstream-codec/dist-es/HeaderMarshaller.js","../../node_modules/@smithy/eventstream-codec/dist-es/splitMessage.js","../../node_modules/@smithy/eventstream-codec/dist-es/EventStreamCodec.js","../../node_modules/@smithy/is-array-buffer/dist-es/index.js","../../node_modules/@smithy/util-buffer-from/dist-es/index.js","../../node_modules/@smithy/util-utf8/dist-es/fromUtf8.js","../../node_modules/@smithy/util-utf8/dist-es/toUtf8.js","../../node_modules/aws4fetch/dist/aws4fetch.esm.mjs","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-api-types.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-chat-options.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-error.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-event-stream-decoder.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-event-stream-response-handler.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-prepare-tools.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/convert-bedrock-usage.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-reasoning-metadata.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/normalize-tool-call-id.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/convert-to-bedrock-chat-messages.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/map-bedrock-finish-reason.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-chat-language-model.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-embedding-options.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-embedding-model.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-image-settings.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-image-model.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/version.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-sigv4-fetch.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/reranking/bedrock-reranking-api.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/reranking/bedrock-reranking-options.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/reranking/bedrock-reranking-model.ts","../../node_modules/@ai-sdk/amazon-bedrock/src/bedrock-provider.ts"],"names":["lazySchema","zodSchema","z","createJsonErrorResponseHandler","createProviderToolFactory","factory","createProviderToolFactoryWithOutputSchema","anthropicTools","validateTypes","UnsupportedFunctionalityError","Buffer","a_lookUpTable","Crc32","toUtf8","fromUtf8","HEADER_VALUE_TYPE","isArrayBuffer","fromArrayBuffer","fromString","match","extractResponseHeaders","EmptyResponseBodyError","safeParseJSON","safeValidateTypes","prepareTools","asSchema","parseProviderOptions","convertToBase64","stripFileExtension","k","combineHeaders","resolve","postJsonToApi","_a","createJsonResponseHandler","TooManyEmbeddingValuesForCallError","convertUint8ArrayToBase64","fetch","normalizeHeaders","withUserAgentSuffix","getRuntimeEnvironmentUserAgent","loadOptionalSetting","loadSetting","withoutTrailingSlash","generateId"],"mappings":"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AY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,QAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,QAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,QAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,SAAA;AAAY,EAAA,UAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,QAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,QAAA;AACpC,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAAA,UAAA;AAAY,EAA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","file":"dist-N6P753TN.cjs","sourcesContent":["import {\n  createJsonErrorResponseHandler,\n  lazySchema,\n  zodSchema,\n  type InferSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const anthropicErrorDataSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      type: z.literal('error'),\n      error: z.object({\n        type: z.string(),\n        message: z.string(),\n      }),\n    }),\n  ),\n);\n\nexport type AnthropicErrorData = InferSchema<typeof anthropicErrorDataSchema>;\n\nexport const anthropicFailedResponseHandler = createJsonErrorResponseHandler({\n  errorSchema: anthropicErrorDataSchema,\n  errorToMessage: data => data.error.message,\n});\n","import type { JSONSchema7 } from '@ai-sdk/provider';\nimport {\n  lazySchema,\n  zodSchema,\n  type InferSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport type AnthropicMessagesPrompt = {\n  system: Array<AnthropicTextContent> | undefined;\n  messages: AnthropicMessage[];\n};\n\nexport type AnthropicMessage = AnthropicUserMessage | AnthropicAssistantMessage;\n\nexport type AnthropicCacheControl = {\n  type: 'ephemeral';\n  ttl?: '5m' | '1h';\n};\n\nexport interface AnthropicUserMessage {\n  role: 'user';\n  content: Array<\n    | AnthropicTextContent\n    | AnthropicImageContent\n    | AnthropicDocumentContent\n    | AnthropicToolResultContent\n  >;\n}\n\nexport interface AnthropicAssistantMessage {\n  role: 'assistant';\n  content: Array<\n    | AnthropicTextContent\n    | AnthropicThinkingContent\n    | AnthropicRedactedThinkingContent\n    | AnthropicToolCallContent\n    | AnthropicServerToolUseContent\n    | AnthropicCodeExecutionToolResultContent\n    | AnthropicWebFetchToolResultContent\n    | AnthropicWebSearchToolResultContent\n    | AnthropicToolSearchToolResultContent\n    | AnthropicBashCodeExecutionToolResultContent\n    | AnthropicTextEditorCodeExecutionToolResultContent\n    | AnthropicMcpToolUseContent\n    | AnthropicMcpToolResultContent\n    | AnthropicCompactionContent\n  >;\n}\n\nexport interface AnthropicCompactionContent {\n  type: 'compaction';\n  content: string;\n  cache_control?: AnthropicCacheControl;\n}\n\nexport interface AnthropicTextContent {\n  type: 'text';\n  text: string;\n  cache_control: AnthropicCacheControl | undefined;\n}\n\nexport interface AnthropicThinkingContent {\n  type: 'thinking';\n  thinking: string;\n  signature: string;\n  // Note: thinking blocks cannot be directly cached with cache_control.\n  // They are cached implicitly when appearing in previous assistant turns.\n  cache_control?: never;\n}\n\nexport interface AnthropicRedactedThinkingContent {\n  type: 'redacted_thinking';\n  data: string;\n  // Note: redacted thinking blocks cannot be directly cached with cache_control.\n  // They are cached implicitly when appearing in previous assistant turns.\n  cache_control?: never;\n}\n\ntype AnthropicContentSource =\n  | {\n      type: 'base64';\n      media_type: string;\n      data: string;\n    }\n  | {\n      type: 'url';\n      url: string;\n    }\n  | {\n      type: 'text';\n      media_type: 'text/plain';\n      data: string;\n    };\n\nexport interface AnthropicImageContent {\n  type: 'image';\n  source: AnthropicContentSource;\n  cache_control: AnthropicCacheControl | undefined;\n}\n\nexport interface AnthropicDocumentContent {\n  type: 'document';\n  source: AnthropicContentSource;\n  title?: string;\n  context?: string;\n  citations?: { enabled: boolean };\n  cache_control: AnthropicCacheControl | undefined;\n}\n\n/**\n * The caller information for programmatic tool calling.\n * Present when a tool is called from within code execution.\n */\nexport type AnthropicToolCallCaller =\n  | {\n      type: 'code_execution_20250825';\n      tool_id: string;\n    }\n  | {\n      type: 'code_execution_20260120';\n      tool_id: string;\n    }\n  | {\n      type: 'direct';\n    };\n\nexport interface AnthropicToolCallContent {\n  type: 'tool_use';\n  id: string;\n  name: string;\n  input: unknown;\n  /**\n   * Present when this tool call was triggered by a server-executed tool\n   * (e.g., code execution calling a user-defined tool programmatically).\n   */\n  caller?: AnthropicToolCallCaller;\n  cache_control: AnthropicCacheControl | undefined;\n}\n\nexport interface AnthropicServerToolUseContent {\n  type: 'server_tool_use';\n  id: string;\n  name:\n    | 'web_fetch'\n    | 'web_search'\n    // code execution 20250522:\n    | 'code_execution'\n    // code execution 20250825:\n    | 'bash_code_execution'\n    | 'text_editor_code_execution'\n    // tool search:\n    | 'tool_search_tool_regex'\n    | 'tool_search_tool_bm25';\n  input: unknown;\n  cache_control: AnthropicCacheControl | undefined;\n}\n\n// Nested content types for tool results (without cache_control)\n// Sub-content blocks cannot be cached directly according to Anthropic docs\ntype AnthropicNestedTextContent = Omit<\n  AnthropicTextContent,\n  'cache_control'\n> & {\n  cache_control?: never;\n};\n\ntype AnthropicNestedImageContent = Omit<\n  AnthropicImageContent,\n  'cache_control'\n> & {\n  cache_control?: never;\n};\n\ntype AnthropicNestedDocumentContent = Omit<\n  AnthropicDocumentContent,\n  'cache_control'\n> & {\n  cache_control?: never;\n};\n\nexport interface AnthropicToolReferenceContent {\n  type: 'tool_reference';\n  tool_name: string;\n}\n\nexport interface AnthropicToolResultContent {\n  type: 'tool_result';\n  tool_use_id: string;\n  content:\n    | string\n    | Array<\n        | AnthropicNestedTextContent\n        | AnthropicNestedImageContent\n        | AnthropicNestedDocumentContent\n        | AnthropicToolReferenceContent\n      >;\n  is_error: boolean | undefined;\n  cache_control: AnthropicCacheControl | undefined;\n}\n\nexport interface AnthropicWebSearchToolResultContent {\n  type: 'web_search_tool_result';\n  tool_use_id: string;\n  content: Array<{\n    url: string;\n    title: string | null;\n    page_age: string | null;\n    encrypted_content: string;\n    type: string;\n  }>;\n  cache_control: AnthropicCacheControl | undefined;\n}\n\nexport interface AnthropicToolSearchToolResultContent {\n  type: 'tool_search_tool_result';\n  tool_use_id: string;\n  content:\n    | {\n        type: 'tool_search_tool_search_result';\n        tool_references: Array<{\n          type: 'tool_reference';\n          tool_name: string;\n        }>;\n      }\n    | {\n        type: 'tool_search_tool_result_error';\n        error_code: string;\n      };\n  cache_control: AnthropicCacheControl | undefined;\n}\n\n// code execution results for code_execution_20250522 tool:\nexport interface AnthropicCodeExecutionToolResultContent {\n  type: 'code_execution_tool_result';\n  tool_use_id: string;\n  content:\n    | {\n        type: 'code_execution_result';\n        stdout: string;\n        stderr: string;\n        return_code: number;\n        content: Array<{ type: 'code_execution_output'; file_id: string }>;\n      }\n    | {\n        type: 'encrypted_code_execution_result';\n        encrypted_stdout: string;\n        stderr: string;\n        return_code: number;\n        content: Array<{ type: 'code_execution_output'; file_id: string }>;\n      }\n    | {\n        type: 'code_execution_tool_result_error';\n        error_code: string;\n      };\n  cache_control: AnthropicCacheControl | undefined;\n}\n\n// text editor code execution results for code_execution_20250825 tool:\nexport interface AnthropicTextEditorCodeExecutionToolResultContent {\n  type: 'text_editor_code_execution_tool_result';\n  tool_use_id: string;\n  content:\n    | {\n        type: 'text_editor_code_execution_tool_result_error';\n        error_code: string;\n      }\n    | {\n        type: 'text_editor_code_execution_create_result';\n        is_file_update: boolean;\n      }\n    | {\n        type: 'text_editor_code_execution_view_result';\n        content: string;\n        file_type: string;\n        num_lines: number | null;\n        start_line: number | null;\n        total_lines: number | null;\n      }\n    | {\n        type: 'text_editor_code_execution_str_replace_result';\n        lines: string[] | null;\n        new_lines: number | null;\n        new_start: number | null;\n        old_lines: number | null;\n        old_start: number | null;\n      };\n  cache_control: AnthropicCacheControl | undefined;\n}\n\n// bash code execution results for code_execution_20250825 tool:\nexport interface AnthropicBashCodeExecutionToolResultContent {\n  type: 'bash_code_execution_tool_result';\n  tool_use_id: string;\n  content:\n    | {\n        type: 'bash_code_execution_result';\n        stdout: string;\n        stderr: string;\n        return_code: number;\n        content: {\n          type: 'bash_code_execution_output';\n          file_id: string;\n        }[];\n      }\n    | {\n        type: 'bash_code_execution_tool_result_error';\n        error_code: string;\n      };\n  cache_control: AnthropicCacheControl | undefined;\n}\n\nexport interface AnthropicWebFetchToolResultContent {\n  type: 'web_fetch_tool_result';\n  tool_use_id: string;\n  content:\n    | {\n        type: 'web_fetch_result';\n        url: string;\n        retrieved_at: string | null;\n        content: {\n          type: 'document';\n          title: string | null;\n          citations?: { enabled: boolean };\n          source:\n            | { type: 'base64'; media_type: 'application/pdf'; data: string }\n            | { type: 'text'; media_type: 'text/plain'; data: string };\n        };\n      }\n    | {\n        type: 'web_fetch_tool_result_error';\n        error_code: string;\n      };\n  cache_control: AnthropicCacheControl | undefined;\n}\nexport interface AnthropicMcpToolUseContent {\n  type: 'mcp_tool_use';\n  id: string;\n  name: string;\n  server_name: string;\n  input: unknown;\n  cache_control: AnthropicCacheControl | undefined;\n}\n\nexport interface AnthropicMcpToolResultContent {\n  type: 'mcp_tool_result';\n  tool_use_id: string;\n  is_error: boolean;\n  content: string | Array<{ type: 'text'; text: string }>;\n  cache_control: AnthropicCacheControl | undefined;\n}\n\nexport type AnthropicTool =\n  | {\n      name: string;\n      description: string | undefined;\n      input_schema: JSONSchema7;\n      cache_control: AnthropicCacheControl | undefined;\n      eager_input_streaming?: boolean;\n      strict?: boolean;\n      /**\n       * When true, this tool is deferred and will only be loaded when\n       * discovered via the tool search tool.\n       */\n      defer_loading?: boolean;\n      /**\n       * Programmatic tool calling: specifies which server-executed tools\n       * are allowed to call this tool. When set, only the specified callers\n       * can invoke this tool programmatically.\n       *\n       * @example ['code_execution_20250825']\n       */\n      allowed_callers?: Array<\n        'direct' | 'code_execution_20250825' | 'code_execution_20260120'\n      >;\n    }\n  | {\n      type: 'code_execution_20250522';\n      name: string;\n      cache_control: AnthropicCacheControl | undefined;\n    }\n  | {\n      type: 'code_execution_20250825';\n      name: string;\n    }\n  | {\n      type: 'code_execution_20260120';\n      name: string;\n    }\n  | {\n      name: string;\n      type: 'computer_20250124' | 'computer_20241022';\n      display_width_px: number;\n      display_height_px: number;\n      display_number: number;\n      cache_control: AnthropicCacheControl | undefined;\n    }\n  | {\n      name: string;\n      type: 'computer_20251124';\n      display_width_px: number;\n      display_height_px: number;\n      display_number: number;\n      enable_zoom?: boolean;\n      cache_control: AnthropicCacheControl | undefined;\n    }\n  | {\n      name: string;\n      type:\n        | 'text_editor_20250124'\n        | 'text_editor_20241022'\n        | 'text_editor_20250429';\n      cache_control: AnthropicCacheControl | undefined;\n    }\n  | {\n      name: string;\n      type: 'text_editor_20250728';\n      max_characters?: number;\n      cache_control: AnthropicCacheControl | undefined;\n    }\n  | {\n      name: string;\n      type: 'bash_20250124' | 'bash_20241022';\n      cache_control: AnthropicCacheControl | undefined;\n    }\n  | {\n      name: string;\n      type: 'memory_20250818';\n    }\n  | {\n      type: 'web_fetch_20250910' | 'web_fetch_20260209';\n      name: string;\n      max_uses?: number;\n      allowed_domains?: string[];\n      blocked_domains?: string[];\n      citations?: { enabled: boolean };\n      max_content_tokens?: number;\n      cache_control: AnthropicCacheControl | undefined;\n    }\n  | {\n      type: 'web_search_20250305' | 'web_search_20260209';\n      name: string;\n      max_uses?: number;\n      allowed_domains?: string[];\n      blocked_domains?: string[];\n      user_location?: {\n        type: 'approximate';\n        city?: string;\n        region?: string;\n        country?: string;\n        timezone?: string;\n      };\n      cache_control: AnthropicCacheControl | undefined;\n    }\n  | {\n      type: 'tool_search_tool_regex_20251119';\n      name: string;\n    }\n  | {\n      type: 'tool_search_tool_bm25_20251119';\n      name: string;\n    };\n\nexport type AnthropicSpeed = 'fast' | 'standard';\n\nexport type AnthropicToolChoice =\n  | { type: 'auto' | 'any'; disable_parallel_tool_use?: boolean }\n  | { type: 'tool'; name: string; disable_parallel_tool_use?: boolean };\n\nexport type AnthropicContainer = {\n  id?: string | null;\n  skills?: Array<{\n    type: 'anthropic' | 'custom';\n    skill_id: string;\n    version?: string;\n  }> | null;\n};\n\nexport type AnthropicInputTokensTrigger = {\n  type: 'input_tokens';\n  value: number;\n};\n\nexport type AnthropicToolUsesTrigger = {\n  type: 'tool_uses';\n  value: number;\n};\n\nexport type AnthropicContextManagementTrigger =\n  | AnthropicInputTokensTrigger\n  | AnthropicToolUsesTrigger;\n\nexport type AnthropicClearToolUsesEdit = {\n  type: 'clear_tool_uses_20250919';\n  trigger?: AnthropicContextManagementTrigger;\n  keep?: {\n    type: 'tool_uses';\n    value: number;\n  };\n  clear_at_least?: {\n    type: 'input_tokens';\n    value: number;\n  };\n  clear_tool_inputs?: boolean;\n  exclude_tools?: string[];\n};\n\nexport type AnthropicClearThinkingBlockEdit = {\n  type: 'clear_thinking_20251015';\n  keep?: 'all' | { type: 'thinking_turns'; value: number };\n};\n\nexport type AnthropicCompactEdit = {\n  type: 'compact_20260112';\n  trigger?: AnthropicInputTokensTrigger;\n  pause_after_compaction?: boolean;\n  instructions?: string;\n};\n\nexport type AnthropicContextManagementEdit =\n  | AnthropicClearToolUsesEdit\n  | AnthropicClearThinkingBlockEdit\n  | AnthropicCompactEdit;\n\nexport type AnthropicContextManagementConfig = {\n  edits: AnthropicContextManagementEdit[];\n};\n\nexport type AnthropicResponseClearToolUsesEdit = {\n  type: 'clear_tool_uses_20250919';\n  cleared_tool_uses: number;\n  cleared_input_tokens: number;\n};\n\nexport type AnthropicResponseClearThinkingBlockEdit = {\n  type: 'clear_thinking_20251015';\n  cleared_thinking_turns: number;\n  cleared_input_tokens: number;\n};\n\nexport type AnthropicResponseCompactEdit = {\n  type: 'compact_20260112';\n};\n\nexport type AnthropicResponseContextManagementEdit =\n  | AnthropicResponseClearToolUsesEdit\n  | AnthropicResponseClearThinkingBlockEdit\n  | AnthropicResponseCompactEdit;\n\nexport type AnthropicResponseContextManagement = {\n  applied_edits: AnthropicResponseContextManagementEdit[];\n};\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const anthropicMessagesResponseSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      type: z.literal('message'),\n      id: z.string().nullish(),\n      model: z.string().nullish(),\n      content: z.array(\n        z.discriminatedUnion('type', [\n          z.object({\n            type: z.literal('text'),\n            text: z.string(),\n            citations: z\n              .array(\n                z.discriminatedUnion('type', [\n                  z.object({\n                    type: z.literal('web_search_result_location'),\n                    cited_text: z.string(),\n                    url: z.string(),\n                    title: z.string(),\n                    encrypted_index: z.string(),\n                  }),\n                  z.object({\n                    type: z.literal('page_location'),\n                    cited_text: z.string(),\n                    document_index: z.number(),\n                    document_title: z.string().nullable(),\n                    start_page_number: z.number(),\n                    end_page_number: z.number(),\n                  }),\n                  z.object({\n                    type: z.literal('char_location'),\n                    cited_text: z.string(),\n                    document_index: z.number(),\n                    document_title: z.string().nullable(),\n                    start_char_index: z.number(),\n                    end_char_index: z.number(),\n                  }),\n                ]),\n              )\n              .optional(),\n          }),\n          z.object({\n            type: z.literal('thinking'),\n            thinking: z.string(),\n            signature: z.string(),\n          }),\n          z.object({\n            type: z.literal('redacted_thinking'),\n            data: z.string(),\n          }),\n          z.object({\n            type: z.literal('compaction'),\n            content: z.string(),\n          }),\n          z.object({\n            type: z.literal('tool_use'),\n            id: z.string(),\n            name: z.string(),\n            input: z.unknown(),\n            // Programmatic tool calling: caller info when triggered from code execution\n            caller: z\n              .union([\n                z.object({\n                  type: z.literal('code_execution_20250825'),\n                  tool_id: z.string(),\n                }),\n                z.object({\n                  type: z.literal('code_execution_20260120'),\n                  tool_id: z.string(),\n                }),\n                z.object({\n                  type: z.literal('direct'),\n                }),\n              ])\n              .optional(),\n          }),\n          z.object({\n            type: z.literal('server_tool_use'),\n            id: z.string(),\n            name: z.string(),\n            input: z.record(z.string(), z.unknown()).nullish(),\n            caller: z\n              .union([\n                z.object({\n                  type: z.literal('code_execution_20260120'),\n                  tool_id: z.string(),\n                }),\n                z.object({\n                  type: z.literal('direct'),\n                }),\n              ])\n              .optional(),\n          }),\n          z.object({\n            type: z.literal('mcp_tool_use'),\n            id: z.string(),\n            name: z.string(),\n            input: z.unknown(),\n            server_name: z.string(),\n          }),\n          z.object({\n            type: z.literal('mcp_tool_result'),\n            tool_use_id: z.string(),\n            is_error: z.boolean(),\n            content: z.array(\n              z.union([\n                z.string(),\n                z.object({ type: z.literal('text'), text: z.string() }),\n              ]),\n            ),\n          }),\n          z.object({\n            type: z.literal('web_fetch_tool_result'),\n            tool_use_id: z.string(),\n            content: z.union([\n              z.object({\n                type: z.literal('web_fetch_result'),\n                url: z.string(),\n                retrieved_at: z.string(),\n                content: z.object({\n                  type: z.literal('document'),\n                  title: z.string().nullable(),\n                  citations: z.object({ enabled: z.boolean() }).optional(),\n                  source: z.union([\n                    z.object({\n                      type: z.literal('base64'),\n                      media_type: z.literal('application/pdf'),\n                      data: z.string(),\n                    }),\n                    z.object({\n                      type: z.literal('text'),\n                      media_type: z.literal('text/plain'),\n                      data: z.string(),\n                    }),\n                  ]),\n                }),\n              }),\n              z.object({\n                type: z.literal('web_fetch_tool_result_error'),\n                error_code: z.string(),\n              }),\n            ]),\n          }),\n          z.object({\n            type: z.literal('web_search_tool_result'),\n            tool_use_id: z.string(),\n            content: z.union([\n              z.array(\n                z.object({\n                  type: z.literal('web_search_result'),\n                  url: z.string(),\n                  title: z.string(),\n                  encrypted_content: z.string(),\n                  page_age: z.string().nullish(),\n                }),\n              ),\n              z.object({\n                type: z.literal('web_search_tool_result_error'),\n                error_code: z.string(),\n              }),\n            ]),\n          }),\n          // code execution results for code_execution_20250522 tool:\n          z.object({\n            type: z.literal('code_execution_tool_result'),\n            tool_use_id: z.string(),\n            content: z.union([\n              z.object({\n                type: z.literal('code_execution_result'),\n                stdout: z.string(),\n                stderr: z.string(),\n                return_code: z.number(),\n                content: z\n                  .array(\n                    z.object({\n                      type: z.literal('code_execution_output'),\n                      file_id: z.string(),\n                    }),\n                  )\n                  .optional()\n                  .default([]),\n              }),\n              z.object({\n                type: z.literal('encrypted_code_execution_result'),\n                encrypted_stdout: z.string(),\n                stderr: z.string(),\n                return_code: z.number(),\n                content: z\n                  .array(\n                    z.object({\n                      type: z.literal('code_execution_output'),\n                      file_id: z.string(),\n                    }),\n                  )\n                  .optional()\n                  .default([]),\n              }),\n              z.object({\n                type: z.literal('code_execution_tool_result_error'),\n                error_code: z.string(),\n              }),\n            ]),\n          }),\n          // bash code execution results for code_execution_20250825 tool:\n          z.object({\n            type: z.literal('bash_code_execution_tool_result'),\n            tool_use_id: z.string(),\n            content: z.discriminatedUnion('type', [\n              z.object({\n                type: z.literal('bash_code_execution_result'),\n                content: z.array(\n                  z.object({\n                    type: z.literal('bash_code_execution_output'),\n                    file_id: z.string(),\n                  }),\n                ),\n                stdout: z.string(),\n                stderr: z.string(),\n                return_code: z.number(),\n              }),\n              z.object({\n                type: z.literal('bash_code_execution_tool_result_error'),\n                error_code: z.string(),\n              }),\n            ]),\n          }),\n          // text editor code execution results for code_execution_20250825 tool:\n          z.object({\n            type: z.literal('text_editor_code_execution_tool_result'),\n            tool_use_id: z.string(),\n            content: z.discriminatedUnion('type', [\n              z.object({\n                type: z.literal('text_editor_code_execution_tool_result_error'),\n                error_code: z.string(),\n              }),\n              z.object({\n                type: z.literal('text_editor_code_execution_view_result'),\n                content: z.string(),\n                file_type: z.string(),\n                num_lines: z.number().nullable(),\n                start_line: z.number().nullable(),\n                total_lines: z.number().nullable(),\n              }),\n              z.object({\n                type: z.literal('text_editor_code_execution_create_result'),\n                is_file_update: z.boolean(),\n              }),\n              z.object({\n                type: z.literal(\n                  'text_editor_code_execution_str_replace_result',\n                ),\n                lines: z.array(z.string()).nullable(),\n                new_lines: z.number().nullable(),\n                new_start: z.number().nullable(),\n                old_lines: z.number().nullable(),\n                old_start: z.number().nullable(),\n              }),\n            ]),\n          }),\n          // tool search tool results for tool_search_tool_regex_20251119 and tool_search_tool_bm25_20251119:\n          z.object({\n            type: z.literal('tool_search_tool_result'),\n            tool_use_id: z.string(),\n            content: z.union([\n              z.object({\n                type: z.literal('tool_search_tool_search_result'),\n                tool_references: z.array(\n                  z.object({\n                    type: z.literal('tool_reference'),\n                    tool_name: z.string(),\n                  }),\n                ),\n              }),\n              z.object({\n                type: z.literal('tool_search_tool_result_error'),\n                error_code: z.string(),\n              }),\n            ]),\n          }),\n        ]),\n      ),\n      stop_reason: z.string().nullish(),\n      stop_sequence: z.string().nullish(),\n      usage: z.looseObject({\n        input_tokens: z.number(),\n        output_tokens: z.number(),\n        cache_creation_input_tokens: z.number().nullish(),\n        cache_read_input_tokens: z.number().nullish(),\n        iterations: z\n          .array(\n            z.object({\n              type: z.union([z.literal('compaction'), z.literal('message')]),\n              input_tokens: z.number(),\n              output_tokens: z.number(),\n            }),\n          )\n          .nullish(),\n      }),\n      container: z\n        .object({\n          expires_at: z.string(),\n          id: z.string(),\n          skills: z\n            .array(\n              z.object({\n                type: z.union([z.literal('anthropic'), z.literal('custom')]),\n                skill_id: z.string(),\n                version: z.string(),\n              }),\n            )\n            .nullish(),\n        })\n        .nullish(),\n      context_management: z\n        .object({\n          applied_edits: z.array(\n            z.union([\n              z.object({\n                type: z.literal('clear_tool_uses_20250919'),\n                cleared_tool_uses: z.number(),\n                cleared_input_tokens: z.number(),\n              }),\n              z.object({\n                type: z.literal('clear_thinking_20251015'),\n                cleared_thinking_turns: z.number(),\n                cleared_input_tokens: z.number(),\n              }),\n              z.object({\n                type: z.literal('compact_20260112'),\n              }),\n            ]),\n          ),\n        })\n        .nullish(),\n    }),\n  ),\n);\n\n// limited version of the schema, focused on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nexport const anthropicMessagesChunkSchema = lazySchema(() =>\n  zodSchema(\n    z.discriminatedUnion('type', [\n      z.object({\n        type: z.literal('message_start'),\n        message: z.object({\n          id: z.string().nullish(),\n          model: z.string().nullish(),\n          role: z.string().nullish(),\n          usage: z.looseObject({\n            input_tokens: z.number(),\n            cache_creation_input_tokens: z.number().nullish(),\n            cache_read_input_tokens: z.number().nullish(),\n          }),\n          // Programmatic tool calling: content may be pre-populated for deferred tool calls\n          content: z\n            .array(\n              z.discriminatedUnion('type', [\n                z.object({\n                  type: z.literal('tool_use'),\n                  id: z.string(),\n                  name: z.string(),\n                  input: z.unknown(),\n                  caller: z\n                    .union([\n                      z.object({\n                        type: z.literal('code_execution_20250825'),\n                        tool_id: z.string(),\n                      }),\n                      z.object({\n                        type: z.literal('code_execution_20260120'),\n                        tool_id: z.string(),\n                      }),\n                      z.object({\n                        type: z.literal('direct'),\n                      }),\n                    ])\n                    .optional(),\n                }),\n              ]),\n            )\n            .nullish(),\n          stop_reason: z.string().nullish(),\n          container: z\n            .object({\n              expires_at: z.string(),\n              id: z.string(),\n            })\n            .nullish(),\n        }),\n      }),\n      z.object({\n        type: z.literal('content_block_start'),\n        index: z.number(),\n        content_block: z.discriminatedUnion('type', [\n          z.object({\n            type: z.literal('text'),\n            text: z.string(),\n          }),\n          z.object({\n            type: z.literal('thinking'),\n            thinking: z.string(),\n          }),\n          z.object({\n            type: z.literal('tool_use'),\n            id: z.string(),\n            name: z.string(),\n            // Programmatic tool calling: input may be present directly for deferred tool calls\n            input: z.record(z.string(), z.unknown()).optional(),\n            // Programmatic tool calling: caller info when triggered from code execution\n            caller: z\n              .union([\n                z.object({\n                  type: z.literal('code_execution_20250825'),\n                  tool_id: z.string(),\n                }),\n                z.object({\n                  type: z.literal('code_execution_20260120'),\n                  tool_id: z.string(),\n                }),\n                z.object({\n                  type: z.literal('direct'),\n                }),\n              ])\n              .optional(),\n          }),\n          z.object({\n            type: z.literal('redacted_thinking'),\n            data: z.string(),\n          }),\n          z.object({\n            type: z.literal('compaction'),\n            content: z.string().nullish(),\n          }),\n          z.object({\n            type: z.literal('server_tool_use'),\n            id: z.string(),\n            name: z.string(),\n            input: z.record(z.string(), z.unknown()).nullish(),\n            caller: z\n              .union([\n                z.object({\n                  type: z.literal('code_execution_20260120'),\n                  tool_id: z.string(),\n                }),\n                z.object({\n                  type: z.literal('direct'),\n                }),\n              ])\n              .optional(),\n          }),\n          z.object({\n            type: z.literal('mcp_tool_use'),\n            id: z.string(),\n            name: z.string(),\n            input: z.unknown(),\n            server_name: z.string(),\n          }),\n          z.object({\n            type: z.literal('mcp_tool_result'),\n            tool_use_id: z.string(),\n            is_error: z.boolean(),\n            content: z.array(\n              z.union([\n                z.string(),\n                z.object({ type: z.literal('text'), text: z.string() }),\n              ]),\n            ),\n          }),\n          z.object({\n            type: z.literal('web_fetch_tool_result'),\n            tool_use_id: z.string(),\n            content: z.union([\n              z.object({\n                type: z.literal('web_fetch_result'),\n                url: z.string(),\n                retrieved_at: z.string(),\n                content: z.object({\n                  type: z.literal('document'),\n                  title: z.string().nullable(),\n                  citations: z.object({ enabled: z.boolean() }).optional(),\n                  source: z.union([\n                    z.object({\n                      type: z.literal('base64'),\n                      media_type: z.literal('application/pdf'),\n                      data: z.string(),\n                    }),\n                    z.object({\n                      type: z.literal('text'),\n                      media_type: z.literal('text/plain'),\n                      data: z.string(),\n                    }),\n                  ]),\n                }),\n              }),\n              z.object({\n                type: z.literal('web_fetch_tool_result_error'),\n                error_code: z.string(),\n              }),\n            ]),\n          }),\n          z.object({\n            type: z.literal('web_search_tool_result'),\n            tool_use_id: z.string(),\n            content: z.union([\n              z.array(\n                z.object({\n                  type: z.literal('web_search_result'),\n                  url: z.string(),\n                  title: z.string(),\n                  encrypted_content: z.string(),\n                  page_age: z.string().nullish(),\n                }),\n              ),\n              z.object({\n                type: z.literal('web_search_tool_result_error'),\n                error_code: z.string(),\n              }),\n            ]),\n          }),\n          // code execution results for code_execution_20250522 tool:\n          z.object({\n            type: z.literal('code_execution_tool_result'),\n            tool_use_id: z.string(),\n            content: z.union([\n              z.object({\n                type: z.literal('code_execution_result'),\n                stdout: z.string(),\n                stderr: z.string(),\n                return_code: z.number(),\n                content: z\n                  .array(\n                    z.object({\n                      type: z.literal('code_execution_output'),\n                      file_id: z.string(),\n                    }),\n                  )\n                  .optional()\n                  .default([]),\n              }),\n              z.object({\n                type: z.literal('encrypted_code_execution_result'),\n                encrypted_stdout: z.string(),\n                stderr: z.string(),\n                return_code: z.number(),\n                content: z\n                  .array(\n                    z.object({\n                      type: z.literal('code_execution_output'),\n                      file_id: z.string(),\n                    }),\n                  )\n                  .optional()\n                  .default([]),\n              }),\n              z.object({\n                type: z.literal('code_execution_tool_result_error'),\n                error_code: z.string(),\n              }),\n            ]),\n          }),\n          // bash code execution results for code_execution_20250825 tool:\n          z.object({\n            type: z.literal('bash_code_execution_tool_result'),\n            tool_use_id: z.string(),\n            content: z.discriminatedUnion('type', [\n              z.object({\n                type: z.literal('bash_code_execution_result'),\n                content: z.array(\n                  z.object({\n                    type: z.literal('bash_code_execution_output'),\n                    file_id: z.string(),\n                  }),\n                ),\n                stdout: z.string(),\n                stderr: z.string(),\n                return_code: z.number(),\n              }),\n              z.object({\n                type: z.literal('bash_code_execution_tool_result_error'),\n                error_code: z.string(),\n              }),\n            ]),\n          }),\n          // text editor code execution results for code_execution_20250825 tool:\n          z.object({\n            type: z.literal('text_editor_code_execution_tool_result'),\n            tool_use_id: z.string(),\n            content: z.discriminatedUnion('type', [\n              z.object({\n                type: z.literal('text_editor_code_execution_tool_result_error'),\n                error_code: z.string(),\n              }),\n              z.object({\n                type: z.literal('text_editor_code_execution_view_result'),\n                content: z.string(),\n                file_type: z.string(),\n                num_lines: z.number().nullable(),\n                start_line: z.number().nullable(),\n                total_lines: z.number().nullable(),\n              }),\n              z.object({\n                type: z.literal('text_editor_code_execution_create_result'),\n                is_file_update: z.boolean(),\n              }),\n              z.object({\n                type: z.literal(\n                  'text_editor_code_execution_str_replace_result',\n                ),\n                lines: z.array(z.string()).nullable(),\n                new_lines: z.number().nullable(),\n                new_start: z.number().nullable(),\n                old_lines: z.number().nullable(),\n                old_start: z.number().nullable(),\n              }),\n            ]),\n          }),\n          // tool search tool results for tool_search_tool_regex_20251119 and tool_search_tool_bm25_20251119:\n          z.object({\n            type: z.literal('tool_search_tool_result'),\n            tool_use_id: z.string(),\n            content: z.union([\n              z.object({\n                type: z.literal('tool_search_tool_search_result'),\n                tool_references: z.array(\n                  z.object({\n                    type: z.literal('tool_reference'),\n                    tool_name: z.string(),\n                  }),\n                ),\n              }),\n              z.object({\n                type: z.literal('tool_search_tool_result_error'),\n                error_code: z.string(),\n              }),\n            ]),\n          }),\n        ]),\n      }),\n      z.object({\n        type: z.literal('content_block_delta'),\n        index: z.number(),\n        delta: z.discriminatedUnion('type', [\n          z.object({\n            type: z.literal('input_json_delta'),\n            partial_json: z.string(),\n          }),\n          z.object({\n            type: z.literal('text_delta'),\n            text: z.string(),\n          }),\n          z.object({\n            type: z.literal('thinking_delta'),\n            thinking: z.string(),\n          }),\n          z.object({\n            type: z.literal('signature_delta'),\n            signature: z.string(),\n          }),\n          z.object({\n            type: z.literal('compaction_delta'),\n            content: z.string().nullish(),\n          }),\n          z.object({\n            type: z.literal('citations_delta'),\n            citation: z.discriminatedUnion('type', [\n              z.object({\n                type: z.literal('web_search_result_location'),\n                cited_text: z.string(),\n                url: z.string(),\n                title: z.string(),\n                encrypted_index: z.string(),\n              }),\n              z.object({\n                type: z.literal('page_location'),\n                cited_text: z.string(),\n                document_index: z.number(),\n                document_title: z.string().nullable(),\n                start_page_number: z.number(),\n                end_page_number: z.number(),\n              }),\n              z.object({\n                type: z.literal('char_location'),\n                cited_text: z.string(),\n                document_index: z.number(),\n                document_title: z.string().nullable(),\n                start_char_index: z.number(),\n                end_char_index: z.number(),\n              }),\n            ]),\n          }),\n        ]),\n      }),\n      z.object({\n        type: z.literal('content_block_stop'),\n        index: z.number(),\n      }),\n      z.object({\n        type: z.literal('error'),\n        error: z.object({\n          type: z.string(),\n          message: z.string(),\n        }),\n      }),\n      z.object({\n        type: z.literal('message_delta'),\n        delta: z.object({\n          stop_reason: z.string().nullish(),\n          stop_sequence: z.string().nullish(),\n          container: z\n            .object({\n              expires_at: z.string(),\n              id: z.string(),\n              skills: z\n                .array(\n                  z.object({\n                    type: z.union([\n                      z.literal('anthropic'),\n                      z.literal('custom'),\n                    ]),\n                    skill_id: z.string(),\n                    version: z.string(),\n                  }),\n                )\n                .nullish(),\n            })\n            .nullish(),\n        }),\n        usage: z.looseObject({\n          input_tokens: z.number().nullish(),\n          output_tokens: z.number(),\n          cache_creation_input_tokens: z.number().nullish(),\n          cache_read_input_tokens: z.number().nullish(),\n          iterations: z\n            .array(\n              z.object({\n                type: z.union([z.literal('compaction'), z.literal('message')]),\n                input_tokens: z.number(),\n                output_tokens: z.number(),\n              }),\n            )\n            .nullish(),\n        }),\n        context_management: z\n          .object({\n            applied_edits: z.array(\n              z.union([\n                z.object({\n                  type: z.literal('clear_tool_uses_20250919'),\n                  cleared_tool_uses: z.number(),\n                  cleared_input_tokens: z.number(),\n                }),\n                z.object({\n                  type: z.literal('clear_thinking_20251015'),\n                  cleared_thinking_turns: z.number(),\n                  cleared_input_tokens: z.number(),\n                }),\n                z.object({\n                  type: z.literal('compact_20260112'),\n                }),\n              ]),\n            ),\n          })\n          .nullish(),\n      }),\n      z.object({\n        type: z.literal('message_stop'),\n      }),\n      z.object({\n        type: z.literal('ping'),\n      }),\n    ]),\n  ),\n);\n\nexport const anthropicReasoningMetadataSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      signature: z.string().optional(),\n      redactedData: z.string().optional(),\n    }),\n  ),\n);\n\nexport type AnthropicReasoningMetadata = InferSchema<\n  typeof anthropicReasoningMetadataSchema\n>;\n\nexport type Citation = NonNullable<\n  (InferSchema<typeof anthropicMessagesResponseSchema>['content'][number] & {\n    type: 'text';\n  })['citations']\n>[number];\n","import { z } from 'zod/v4';\n\n// https://docs.claude.com/en/docs/about-claude/models/overview\nexport type AnthropicMessagesModelId =\n  | 'claude-3-haiku-20240307'\n  | 'claude-haiku-4-5-20251001'\n  | 'claude-haiku-4-5'\n  | 'claude-opus-4-0'\n  | 'claude-opus-4-20250514'\n  | 'claude-opus-4-1-20250805'\n  | 'claude-opus-4-1'\n  | 'claude-opus-4-5'\n  | 'claude-opus-4-5-20251101'\n  | 'claude-sonnet-4-0'\n  | 'claude-sonnet-4-20250514'\n  | 'claude-sonnet-4-5-20250929'\n  | 'claude-sonnet-4-5'\n  | 'claude-sonnet-4-6'\n  | 'claude-opus-4-6'\n  | 'claude-opus-4-7'\n  | (string & {});\n\n/**\n * Anthropic file part provider options for document-specific features.\n * These options apply to individual file parts (documents).\n */\nexport const anthropicFilePartProviderOptions = z.object({\n  /**\n   * Citation configuration for this document.\n   * When enabled, this document will generate citations in the response.\n   */\n  citations: z\n    .object({\n      /**\n       * Enable citations for this document\n       */\n      enabled: z.boolean(),\n    })\n    .optional(),\n\n  /**\n   * Custom title for the document.\n   * If not provided, the filename will be used.\n   */\n  title: z.string().optional(),\n\n  /**\n   * Context about the document that will be passed to the model\n   * but not used towards cited content.\n   * Useful for storing document metadata as text or stringified JSON.\n   */\n  context: z.string().optional(),\n});\n\nexport type AnthropicFilePartProviderOptions = z.infer<\n  typeof anthropicFilePartProviderOptions\n>;\n\nexport const anthropicLanguageModelOptions = z.object({\n  /**\n   * Whether to send reasoning to the model.\n   *\n   * This allows you to deactivate reasoning inputs for models that do not support them.\n   */\n  sendReasoning: z.boolean().optional(),\n\n  /**\n   * Determines how structured outputs are generated.\n   *\n   * - `outputFormat`: Use the `output_config.format` parameter to specify the structured output format.\n   * - `jsonTool`: Use a special 'json' tool to specify the structured output format.\n   * - `auto`: Use 'outputFormat' when supported, otherwise use 'jsonTool' (default).\n   */\n  structuredOutputMode: z.enum(['outputFormat', 'jsonTool', 'auto']).optional(),\n\n  /**\n   * Configuration for enabling Claude's extended thinking.\n   *\n   * When enabled, responses include thinking content blocks showing Claude's thinking process before the final answer.\n   * Requires a minimum budget of 1,024 tokens and counts towards the `max_tokens` limit.\n   */\n  thinking: z\n    .discriminatedUnion('type', [\n      z.object({\n        /** for Sonnet 4.6, Opus 4.6, and newer models */\n        type: z.literal('adaptive'),\n        /**\n         * Controls whether thinking content is included in the response.\n         * - `\"omitted\"`: Thinking blocks are present but text is empty (default for Opus 4.7+).\n         * - `\"summarized\"`: Thinking content is returned. Required to see reasoning output.\n         */\n        display: z.enum(['omitted', 'summarized']).optional(),\n      }),\n      z.object({\n        /** for models before Opus 4.6, except Sonnet 4.6 still supports it */\n        type: z.literal('enabled'),\n        budgetTokens: z.number().optional(),\n      }),\n      z.object({\n        type: z.literal('disabled'),\n      }),\n    ])\n    .optional(),\n\n  /**\n   * Whether to disable parallel function calling during tool use. Default is false.\n   * When set to true, Claude will use at most one tool per response.\n   */\n  disableParallelToolUse: z.boolean().optional(),\n\n  /**\n   * Cache control settings for this message.\n   * See https://docs.anthropic.com/en/docs/build-with-claude/prompt-caching\n   */\n  cacheControl: z\n    .object({\n      type: z.literal('ephemeral'),\n      ttl: z.union([z.literal('5m'), z.literal('1h')]).optional(),\n    })\n    .optional(),\n\n  /**\n   * Metadata to include with the request.\n   *\n   * See https://platform.claude.com/docs/en/api/messages/create for details.\n   */\n  metadata: z\n    .object({\n      /**\n       * An external identifier for the user associated with the request.\n       *\n       * Should be a UUID, hash value, or other opaque identifier.\n       * Must not contain PII (name, email, phone number, etc.).\n       */\n      userId: z.string().optional(),\n    })\n    .optional(),\n\n  /**\n   * MCP servers to be utilized in this request.\n   */\n  mcpServers: z\n    .array(\n      z.object({\n        type: z.literal('url'),\n        name: z.string(),\n        url: z.string(),\n        authorizationToken: z.string().nullish(),\n        toolConfiguration: z\n          .object({\n            enabled: z.boolean().nullish(),\n            allowedTools: z.array(z.string()).nullish(),\n          })\n          .nullish(),\n      }),\n    )\n    .optional(),\n\n  /**\n   * Agent Skills configuration. Skills enable Claude to perform specialized tasks\n   * like document processing (PPTX, DOCX, PDF, XLSX) and data analysis.\n   * Requires code execution tool to be enabled.\n   */\n  container: z\n    .object({\n      id: z.string().optional(),\n      skills: z\n        .array(\n          z.object({\n            type: z.union([z.literal('anthropic'), z.literal('custom')]),\n            skillId: z.string(),\n            version: z.string().optional(),\n          }),\n        )\n        .optional(),\n    })\n    .optional(),\n\n  /**\n   * Whether to enable fine-grained (eager) streaming of tool call inputs\n   * and structured outputs for every function tool in the request. When\n   * true (the default), each function tool receives a default of\n   * `eager_input_streaming: true` unless it explicitly sets\n   * `providerOptions.anthropic.eagerInputStreaming`.\n   *\n   * @default true\n   */\n  toolStreaming: z.boolean().optional(),\n\n  /**\n   * @default 'high'\n   */\n  effort: z.enum(['low', 'medium', 'high', 'xhigh', 'max']).optional(),\n\n  /**\n   * Task budget for agentic turns. Informs the model of the total token budget\n   * available for the current task, allowing it to prioritize work and wind down\n   * gracefully as the budget is consumed.\n   *\n   * Advisory only — does not enforce a hard token limit.\n   */\n  taskBudget: z\n    .object({\n      type: z.literal('tokens'),\n      total: z.number().int().min(20000),\n      remaining: z.number().int().min(0).optional(),\n    })\n    .optional(),\n\n  /**\n   * Enable fast mode for faster inference (2.5x faster output token speeds).\n   * Only supported with claude-opus-4-6.\n   */\n  speed: z.enum(['fast', 'standard']).optional(),\n\n  /**\n   * Controls where model inference runs for this request.\n   *\n   * - `\"global\"`: Inference may run in any available geography (default).\n   * - `\"us\"`: Inference runs only in US-based infrastructure.\n   *\n   * See https://platform.claude.com/docs/en/build-with-claude/data-residency\n   */\n  inferenceGeo: z.enum(['us', 'global']).optional(),\n\n  /**\n   * A set of beta features to enable.\n   * Allow a provider to receive the full `betas` set if it needs it.\n   */\n  anthropicBeta: z.array(z.string()).optional(),\n\n  contextManagement: z\n    .object({\n      edits: z.array(\n        z.discriminatedUnion('type', [\n          z.object({\n            type: z.literal('clear_tool_uses_20250919'),\n            trigger: z\n              .discriminatedUnion('type', [\n                z.object({\n                  type: z.literal('input_tokens'),\n                  value: z.number(),\n                }),\n                z.object({\n                  type: z.literal('tool_uses'),\n                  value: z.number(),\n                }),\n              ])\n              .optional(),\n            keep: z\n              .object({\n                type: z.literal('tool_uses'),\n                value: z.number(),\n              })\n              .optional(),\n            clearAtLeast: z\n              .object({\n                type: z.literal('input_tokens'),\n                value: z.number(),\n              })\n              .optional(),\n            clearToolInputs: z.boolean().optional(),\n            excludeTools: z.array(z.string()).optional(),\n          }),\n          z.object({\n            type: z.literal('clear_thinking_20251015'),\n            keep: z\n              .union([\n                z.literal('all'),\n                z.object({\n                  type: z.literal('thinking_turns'),\n                  value: z.number(),\n                }),\n              ])\n              .optional(),\n          }),\n          z.object({\n            type: z.literal('compact_20260112'),\n            trigger: z\n              .object({\n                type: z.literal('input_tokens'),\n                value: z.number(),\n              })\n              .optional(),\n            pauseAfterCompaction: z.boolean().optional(),\n            instructions: z.string().optional(),\n          }),\n        ]),\n      ),\n    })\n    .optional(),\n});\n\nexport type AnthropicLanguageModelOptions = z.infer<\n  typeof anthropicLanguageModelOptions\n>;\n","import type {\n  SharedV3Warning,\n  SharedV3ProviderMetadata,\n} from '@ai-sdk/provider';\nimport type { AnthropicCacheControl } from './anthropic-messages-api';\n\n// Anthropic allows a maximum of 4 cache breakpoints per request\nconst MAX_CACHE_BREAKPOINTS = 4;\n\n// Helper function to extract cache_control from provider metadata\n// Allows both cacheControl and cache_control for flexibility\nfunction getCacheControl(\n  providerMetadata: SharedV3ProviderMetadata | undefined,\n): AnthropicCacheControl | undefined {\n  const anthropic = providerMetadata?.anthropic;\n\n  // allow both cacheControl and cache_control:\n  const cacheControlValue = anthropic?.cacheControl ?? anthropic?.cache_control;\n\n  // Pass through value assuming it is of the correct type.\n  // The Anthropic API will validate the value.\n  return cacheControlValue as AnthropicCacheControl | undefined;\n}\n\nexport class CacheControlValidator {\n  private breakpointCount = 0;\n  private warnings: SharedV3Warning[] = [];\n\n  getCacheControl(\n    providerMetadata: SharedV3ProviderMetadata | undefined,\n    context: { type: string; canCache: boolean },\n  ): AnthropicCacheControl | undefined {\n    const cacheControlValue = getCacheControl(providerMetadata);\n\n    if (!cacheControlValue) {\n      return undefined;\n    }\n\n    // Validate that cache_control is allowed in this context\n    if (!context.canCache) {\n      this.warnings.push({\n        type: 'unsupported',\n        feature: 'cache_control on non-cacheable context',\n        details: `cache_control cannot be set on ${context.type}. It will be ignored.`,\n      });\n      return undefined;\n    }\n\n    // Validate cache breakpoint limit\n    this.breakpointCount++;\n    if (this.breakpointCount > MAX_CACHE_BREAKPOINTS) {\n      this.warnings.push({\n        type: 'unsupported',\n        feature: 'cacheControl breakpoint limit',\n        details: `Maximum ${MAX_CACHE_BREAKPOINTS} cache breakpoints exceeded (found ${this.breakpointCount}). This breakpoint will be ignored.`,\n      });\n      return undefined;\n    }\n\n    return cacheControlValue;\n  }\n\n  getWarnings(): SharedV3Warning[] {\n    return this.warnings;\n  }\n}\n","import {\n  createProviderToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const textEditor_20250728ArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      maxCharacters: z.number().optional(),\n    }),\n  ),\n);\n\nconst textEditor_20250728InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      command: z.enum(['view', 'create', 'str_replace', 'insert']),\n      path: z.string(),\n      file_text: z.string().optional(),\n      insert_line: z.number().int().optional(),\n      new_str: z.string().optional(),\n      insert_text: z.string().optional(),\n      old_str: z.string().optional(),\n      view_range: z.array(z.number().int()).optional(),\n    }),\n  ),\n);\n\nconst factory = createProviderToolFactory<\n  {\n    /**\n     * The commands to run. Allowed options are: `view`, `create`, `str_replace`, `insert`.\n     * Note: `undo_edit` is not supported in Claude 4 models.\n     */\n    command: 'view' | 'create' | 'str_replace' | 'insert';\n\n    /**\n     * Absolute path to file or directory, e.g. `/repo/file.py` or `/repo`.\n     */\n    path: string;\n\n    /**\n     * Required parameter of `create` command, with the content of the file to be created.\n     */\n    file_text?: string;\n\n    /**\n     * Required parameter of `insert` command. The `new_str` will be inserted AFTER the line `insert_line` of `path`.\n     */\n    insert_line?: number;\n\n    /**\n     * Optional parameter of `str_replace` command containing the new string (if not given, no string will be added).\n     */\n    new_str?: string;\n\n    /**\n     * Required parameter of `insert` command containing the text to insert.\n     */\n    insert_text?: string;\n\n    /**\n     * Required parameter of `str_replace` command containing the string in `path` to replace.\n     */\n    old_str?: string;\n\n    /**\n     * Optional parameter of `view` command when `path` points to a file. If none is given, the full file is shown. If provided, the file will be shown in the indicated line number range, e.g. [11, 12] will show lines 11 and 12. Indexing at 1 to start. Setting `[start_line, -1]` shows all lines from `start_line` to the end of the file.\n     */\n    view_range?: number[];\n  },\n  {\n    /**\n     * Optional parameter to control truncation when viewing large files. Only compatible with text_editor_20250728 and later versions.\n     */\n    maxCharacters?: number;\n  }\n>({\n  id: 'anthropic.text_editor_20250728',\n  inputSchema: textEditor_20250728InputSchema,\n});\n\nexport const textEditor_20250728 = (\n  args: Parameters<typeof factory>[0] = {}, // default\n) => {\n  return factory(args);\n};\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const webSearch_20260209ArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      maxUses: z.number().optional(),\n      allowedDomains: z.array(z.string()).optional(),\n      blockedDomains: z.array(z.string()).optional(),\n      userLocation: z\n        .object({\n          type: z.literal('approximate'),\n          city: z.string().optional(),\n          region: z.string().optional(),\n          country: z.string().optional(),\n          timezone: z.string().optional(),\n        })\n        .optional(),\n    }),\n  ),\n);\n\nexport const webSearch_20260209OutputSchema = lazySchema(() =>\n  zodSchema(\n    z.array(\n      z.object({\n        url: z.string(),\n        title: z.string().nullable(),\n        pageAge: z.string().nullable(),\n        encryptedContent: z.string(),\n        type: z.literal('web_search_result'),\n      }),\n    ),\n  ),\n);\n\nconst webSearch_20260209InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      query: z.string(),\n    }),\n  ),\n);\n\nconst factory = createProviderToolFactoryWithOutputSchema<\n  {\n    /**\n     * The search query to execute.\n     */\n    query: string;\n  },\n  Array<{\n    type: 'web_search_result';\n\n    /**\n     * The URL of the source page.\n     */\n    url: string;\n\n    /**\n     * The title of the source page.\n     */\n    title: string | null;\n\n    /**\n     * When the site was last updated\n     */\n    pageAge: string | null;\n\n    /**\n     * Encrypted content that must be passed back in multi-turn conversations for citations\n     */\n    encryptedContent: string;\n  }>,\n  {\n    /**\n     * Maximum number of web searches Claude can perform during the conversation.\n     */\n    maxUses?: number;\n\n    /**\n     * Optional list of domains that Claude is allowed to search.\n     */\n    allowedDomains?: string[];\n\n    /**\n     * Optional list of domains that Claude should avoid when searching.\n     */\n    blockedDomains?: string[];\n\n    /**\n     * Optional user location information to provide geographically relevant search results.\n     */\n    userLocation?: {\n      /**\n       * The type of location (must be approximate)\n       */\n      type: 'approximate';\n\n      /**\n       * The city name\n       */\n      city?: string;\n\n      /**\n       * The region or state\n       */\n      region?: string;\n\n      /**\n       * The country\n       */\n      country?: string;\n\n      /**\n       * The IANA timezone ID.\n       */\n      timezone?: string;\n    };\n  }\n>({\n  id: 'anthropic.web_search_20260209',\n  inputSchema: webSearch_20260209InputSchema,\n  outputSchema: webSearch_20260209OutputSchema,\n  supportsDeferredResults: true,\n});\n\nexport const webSearch_20260209 = (\n  args: Parameters<typeof factory>[0] = {}, // default\n) => {\n  return factory(args);\n};\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const webSearch_20250305ArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      maxUses: z.number().optional(),\n      allowedDomains: z.array(z.string()).optional(),\n      blockedDomains: z.array(z.string()).optional(),\n      userLocation: z\n        .object({\n          type: z.literal('approximate'),\n          city: z.string().optional(),\n          region: z.string().optional(),\n          country: z.string().optional(),\n          timezone: z.string().optional(),\n        })\n        .optional(),\n    }),\n  ),\n);\n\nexport const webSearch_20250305OutputSchema = lazySchema(() =>\n  zodSchema(\n    z.array(\n      z.object({\n        url: z.string(),\n        title: z.string().nullable(),\n        pageAge: z.string().nullable(),\n        encryptedContent: z.string(),\n        type: z.literal('web_search_result'),\n      }),\n    ),\n  ),\n);\n\nconst webSearch_20250305InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      query: z.string(),\n    }),\n  ),\n);\n\nconst factory = createProviderToolFactoryWithOutputSchema<\n  {\n    /**\n     * The search query to execute.\n     */\n    query: string;\n  },\n  Array<{\n    type: 'web_search_result';\n\n    /**\n     * The URL of the source page.\n     */\n    url: string;\n\n    /**\n     * The title of the source page.\n     */\n    title: string | null;\n\n    /**\n     * When the site was last updated\n     */\n    pageAge: string | null;\n\n    /**\n     * Encrypted content that must be passed back in multi-turn conversations for citations\n     */\n    encryptedContent: string;\n  }>,\n  {\n    /**\n     * Maximum number of web searches Claude can perform during the conversation.\n     */\n    maxUses?: number;\n\n    /**\n     * Optional list of domains that Claude is allowed to search.\n     */\n    allowedDomains?: string[];\n\n    /**\n     * Optional list of domains that Claude should avoid when searching.\n     */\n    blockedDomains?: string[];\n\n    /**\n     * Optional user location information to provide geographically relevant search results.\n     */\n    userLocation?: {\n      /**\n       * The type of location (must be approximate)\n       */\n      type: 'approximate';\n\n      /**\n       * The city name\n       */\n      city?: string;\n\n      /**\n       * The region or state\n       */\n      region?: string;\n\n      /**\n       * The country\n       */\n      country?: string;\n\n      /**\n       * The IANA timezone ID.\n       */\n      timezone?: string;\n    };\n  }\n>({\n  id: 'anthropic.web_search_20250305',\n  inputSchema: webSearch_20250305InputSchema,\n  outputSchema: webSearch_20250305OutputSchema,\n  supportsDeferredResults: true,\n});\n\nexport const webSearch_20250305 = (\n  args: Parameters<typeof factory>[0] = {}, // default\n) => {\n  return factory(args);\n};\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const webFetch_20260209ArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      maxUses: z.number().optional(),\n      allowedDomains: z.array(z.string()).optional(),\n      blockedDomains: z.array(z.string()).optional(),\n      citations: z.object({ enabled: z.boolean() }).optional(),\n      maxContentTokens: z.number().optional(),\n    }),\n  ),\n);\n\nexport const webFetch_20260209OutputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      type: z.literal('web_fetch_result'),\n      url: z.string(),\n      content: z.object({\n        type: z.literal('document'),\n        title: z.string().nullable(),\n        citations: z.object({ enabled: z.boolean() }).optional(),\n        source: z.union([\n          z.object({\n            type: z.literal('base64'),\n            mediaType: z.literal('application/pdf'),\n            data: z.string(),\n          }),\n          z.object({\n            type: z.literal('text'),\n            mediaType: z.literal('text/plain'),\n            data: z.string(),\n          }),\n        ]),\n      }),\n      retrievedAt: z.string().nullable(),\n    }),\n  ),\n);\n\nconst webFetch_20260209InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      url: z.string(),\n    }),\n  ),\n);\n\nconst factory = createProviderToolFactoryWithOutputSchema<\n  {\n    /**\n     * The URL to fetch.\n     */\n    url: string;\n  },\n  {\n    type: 'web_fetch_result';\n\n    /**\n     * Fetched content URL\n     */\n    url: string;\n\n    /**\n     * Fetched content.\n     */\n    content: {\n      type: 'document';\n\n      /**\n       * Title of the document\n       */\n      title: string | null;\n\n      /**\n       * Citation configuration for the document\n       */\n      citations?: { enabled: boolean };\n\n      source:\n        | {\n            type: 'base64';\n            mediaType: 'application/pdf';\n            data: string;\n          }\n        | {\n            type: 'text';\n            mediaType: 'text/plain';\n            data: string;\n          };\n    };\n\n    /**\n     * ISO 8601 timestamp when the content was retrieved\n     */\n    retrievedAt: string | null;\n  },\n  {\n    /**\n     * The maxUses parameter limits the number of web fetches performed\n     */\n    maxUses?: number;\n\n    /**\n     * Only fetch from these domains\n     */\n    allowedDomains?: string[];\n\n    /**\n     * Never fetch from these domains\n     */\n    blockedDomains?: string[];\n\n    /**\n     * Unlike web search where citations are always enabled, citations are optional for\n     * web fetch. Set \"citations\": {\"enabled\": true} to enable Claude to cite specific passages\n     * from fetched documents.\n     */\n    citations?: {\n      enabled: boolean;\n    };\n\n    /**\n     * The maxContentTokens parameter limits the amount of content that will be included in the context.\n     */\n    maxContentTokens?: number;\n  }\n>({\n  id: 'anthropic.web_fetch_20260209',\n  inputSchema: webFetch_20260209InputSchema,\n  outputSchema: webFetch_20260209OutputSchema,\n  supportsDeferredResults: true,\n});\n\nexport const webFetch_20260209 = (\n  args: Parameters<typeof factory>[0] = {}, // default\n) => {\n  return factory(args);\n};\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const webFetch_20250910ArgsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      maxUses: z.number().optional(),\n      allowedDomains: z.array(z.string()).optional(),\n      blockedDomains: z.array(z.string()).optional(),\n      citations: z.object({ enabled: z.boolean() }).optional(),\n      maxContentTokens: z.number().optional(),\n    }),\n  ),\n);\n\nexport const webFetch_20250910OutputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      type: z.literal('web_fetch_result'),\n      url: z.string(),\n      content: z.object({\n        type: z.literal('document'),\n        title: z.string().nullable(),\n        citations: z.object({ enabled: z.boolean() }).optional(),\n        source: z.union([\n          z.object({\n            type: z.literal('base64'),\n            mediaType: z.literal('application/pdf'),\n            data: z.string(),\n          }),\n          z.object({\n            type: z.literal('text'),\n            mediaType: z.literal('text/plain'),\n            data: z.string(),\n          }),\n        ]),\n      }),\n      retrievedAt: z.string().nullable(),\n    }),\n  ),\n);\n\nconst webFetch_20250910InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      url: z.string(),\n    }),\n  ),\n);\n\nconst factory = createProviderToolFactoryWithOutputSchema<\n  {\n    /**\n     * The URL to fetch.\n     */\n    url: string;\n  },\n  {\n    type: 'web_fetch_result';\n\n    /**\n     * Fetched content URL\n     */\n    url: string;\n\n    /**\n     * Fetched content.\n     */\n    content: {\n      type: 'document';\n\n      /**\n       * Title of the document\n       */\n      title: string | null;\n\n      /**\n       * Citation configuration for the document\n       */\n      citations?: { enabled: boolean };\n\n      source:\n        | {\n            type: 'base64';\n            mediaType: 'application/pdf';\n            data: string;\n          }\n        | {\n            type: 'text';\n            mediaType: 'text/plain';\n            data: string;\n          };\n    };\n\n    /**\n     * ISO 8601 timestamp when the content was retrieved\n     */\n    retrievedAt: string | null;\n  },\n  {\n    /**\n     * The maxUses parameter limits the number of web fetches performed\n     */\n    maxUses?: number;\n\n    /**\n     * Only fetch from these domains\n     */\n    allowedDomains?: string[];\n\n    /**\n     * Never fetch from these domains\n     */\n    blockedDomains?: string[];\n\n    /**\n     * Unlike web search where citations are always enabled, citations are optional for\n     * web fetch. Set \"citations\": {\"enabled\": true} to enable Claude to cite specific passages\n     * from fetched documents.\n     */\n    citations?: {\n      enabled: boolean;\n    };\n\n    /**\n     * The maxContentTokens parameter limits the amount of content that will be included in the context.\n     */\n    maxContentTokens?: number;\n  }\n>({\n  id: 'anthropic.web_fetch_20250910',\n  inputSchema: webFetch_20250910InputSchema,\n  outputSchema: webFetch_20250910OutputSchema,\n  supportsDeferredResults: true,\n});\n\nexport const webFetch_20250910 = (\n  args: Parameters<typeof factory>[0] = {}, // default\n) => {\n  return factory(args);\n};\n","import {\n  UnsupportedFunctionalityError,\n  type LanguageModelV3CallOptions,\n  type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport type {\n  AnthropicTool,\n  AnthropicToolChoice,\n} from './anthropic-messages-api';\nimport { CacheControlValidator } from './get-cache-control';\nimport { textEditor_20250728ArgsSchema } from './tool/text-editor_20250728';\nimport { webSearch_20260209ArgsSchema } from './tool/web-search_20260209';\nimport { webSearch_20250305ArgsSchema } from './tool/web-search_20250305';\nimport { webFetch_20260209ArgsSchema } from './tool/web-fetch-20260209';\nimport { webFetch_20250910ArgsSchema } from './tool/web-fetch-20250910';\nimport { validateTypes } from '@ai-sdk/provider-utils';\n\nexport interface AnthropicToolOptions {\n  deferLoading?: boolean;\n  allowedCallers?: Array<\n    'direct' | 'code_execution_20250825' | 'code_execution_20260120'\n  >;\n  eagerInputStreaming?: boolean;\n}\n\nexport async function prepareTools({\n  tools,\n  toolChoice,\n  disableParallelToolUse,\n  cacheControlValidator,\n  supportsStructuredOutput,\n  supportsStrictTools,\n  defaultEagerInputStreaming = false,\n}: {\n  tools: LanguageModelV3CallOptions['tools'];\n  toolChoice: LanguageModelV3CallOptions['toolChoice'] | undefined;\n  disableParallelToolUse?: boolean;\n  cacheControlValidator?: CacheControlValidator;\n\n  /**\n   * Whether the model supports native structured output response format.\n   */\n  supportsStructuredOutput: boolean;\n\n  /**\n   * Whether the model supports strict mode on tool definitions.\n   */\n  supportsStrictTools: boolean;\n\n  /**\n   * Default for `eager_input_streaming` on function tools that do not set\n   * it explicitly. Driven by the model-level `toolStreaming` option.\n   */\n  defaultEagerInputStreaming?: boolean;\n}): Promise<{\n  tools: Array<AnthropicTool> | undefined;\n  toolChoice: AnthropicToolChoice | undefined;\n  toolWarnings: SharedV3Warning[];\n  betas: Set<string>;\n}> {\n  // when the tools array is empty, change it to undefined to prevent errors:\n  tools = tools?.length ? tools : undefined;\n\n  const toolWarnings: SharedV3Warning[] = [];\n  const betas = new Set<string>();\n  const validator = cacheControlValidator || new CacheControlValidator();\n\n  if (tools == null) {\n    return { tools: undefined, toolChoice: undefined, toolWarnings, betas };\n  }\n\n  const anthropicTools: AnthropicTool[] = [];\n\n  for (const tool of tools) {\n    switch (tool.type) {\n      case 'function': {\n        const cacheControl = validator.getCacheControl(tool.providerOptions, {\n          type: 'tool definition',\n          canCache: true,\n        });\n\n        // Read Anthropic-specific provider options\n        const anthropicOptions = tool.providerOptions?.anthropic as\n          | AnthropicToolOptions\n          | undefined;\n        // eager_input_streaming is only supported on custom (function) tools.\n        // Fall back to the model-level default when the tool doesn't set it.\n        const eagerInputStreaming =\n          anthropicOptions?.eagerInputStreaming ?? defaultEagerInputStreaming;\n        const deferLoading = anthropicOptions?.deferLoading;\n        const allowedCallers = anthropicOptions?.allowedCallers;\n\n        if (!supportsStrictTools && tool.strict != null) {\n          toolWarnings.push({\n            type: 'unsupported',\n            feature: 'strict',\n            details: `Tool '${tool.name}' has strict: ${tool.strict}, but strict mode is not supported by this provider. The strict property will be ignored.`,\n          });\n        }\n\n        anthropicTools.push({\n          name: tool.name,\n          description: tool.description,\n          input_schema: tool.inputSchema,\n          cache_control: cacheControl,\n          ...(eagerInputStreaming ? { eager_input_streaming: true } : {}),\n          ...(supportsStrictTools === true && tool.strict != null\n            ? { strict: tool.strict }\n            : {}),\n          ...(deferLoading != null ? { defer_loading: deferLoading } : {}),\n          ...(allowedCallers != null\n            ? { allowed_callers: allowedCallers }\n            : {}),\n          ...(tool.inputExamples != null\n            ? {\n                input_examples: tool.inputExamples.map(\n                  example => example.input,\n                ),\n              }\n            : {}),\n        });\n\n        if (supportsStructuredOutput === true) {\n          betas.add('structured-outputs-2025-11-13');\n        }\n\n        if (tool.inputExamples != null || allowedCallers != null) {\n          betas.add('advanced-tool-use-2025-11-20');\n        }\n\n        break;\n      }\n\n      case 'provider': {\n        // Note: Provider-defined tools don't currently support providerOptions in the SDK,\n        // so cache_control cannot be set on them. The Anthropic API supports caching all tools,\n        // but the SDK would need to be updated to expose providerOptions on provider-defined tools.\n        switch (tool.id) {\n          case 'anthropic.code_execution_20250522': {\n            betas.add('code-execution-2025-05-22');\n            anthropicTools.push({\n              type: 'code_execution_20250522',\n              name: 'code_execution',\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.code_execution_20250825': {\n            betas.add('code-execution-2025-08-25');\n            anthropicTools.push({\n              type: 'code_execution_20250825',\n              name: 'code_execution',\n            });\n            break;\n          }\n          case 'anthropic.code_execution_20260120': {\n            anthropicTools.push({\n              type: 'code_execution_20260120',\n              name: 'code_execution',\n            });\n            break;\n          }\n          case 'anthropic.computer_20250124': {\n            betas.add('computer-use-2025-01-24');\n            anthropicTools.push({\n              name: 'computer',\n              type: 'computer_20250124',\n              display_width_px: tool.args.displayWidthPx as number,\n              display_height_px: tool.args.displayHeightPx as number,\n              display_number: tool.args.displayNumber as number,\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.computer_20251124': {\n            betas.add('computer-use-2025-11-24');\n            anthropicTools.push({\n              name: 'computer',\n              type: 'computer_20251124',\n              display_width_px: tool.args.displayWidthPx as number,\n              display_height_px: tool.args.displayHeightPx as number,\n              display_number: tool.args.displayNumber as number,\n              enable_zoom: tool.args.enableZoom as boolean,\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.computer_20241022': {\n            betas.add('computer-use-2024-10-22');\n            anthropicTools.push({\n              name: 'computer',\n              type: 'computer_20241022',\n              display_width_px: tool.args.displayWidthPx as number,\n              display_height_px: tool.args.displayHeightPx as number,\n              display_number: tool.args.displayNumber as number,\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.text_editor_20250124': {\n            betas.add('computer-use-2025-01-24');\n            anthropicTools.push({\n              name: 'str_replace_editor',\n              type: 'text_editor_20250124',\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.text_editor_20241022': {\n            betas.add('computer-use-2024-10-22');\n            anthropicTools.push({\n              name: 'str_replace_editor',\n              type: 'text_editor_20241022',\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.text_editor_20250429': {\n            betas.add('computer-use-2025-01-24');\n            anthropicTools.push({\n              name: 'str_replace_based_edit_tool',\n              type: 'text_editor_20250429',\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.text_editor_20250728': {\n            const args = await validateTypes({\n              value: tool.args,\n              schema: textEditor_20250728ArgsSchema,\n            });\n            anthropicTools.push({\n              name: 'str_replace_based_edit_tool',\n              type: 'text_editor_20250728',\n              max_characters: args.maxCharacters,\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.bash_20250124': {\n            betas.add('computer-use-2025-01-24');\n            anthropicTools.push({\n              name: 'bash',\n              type: 'bash_20250124',\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.bash_20241022': {\n            betas.add('computer-use-2024-10-22');\n            anthropicTools.push({\n              name: 'bash',\n              type: 'bash_20241022',\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.memory_20250818': {\n            betas.add('context-management-2025-06-27');\n            anthropicTools.push({\n              name: 'memory',\n              type: 'memory_20250818',\n            });\n            break;\n          }\n          case 'anthropic.web_fetch_20250910': {\n            betas.add('web-fetch-2025-09-10');\n            const args = await validateTypes({\n              value: tool.args,\n              schema: webFetch_20250910ArgsSchema,\n            });\n            anthropicTools.push({\n              type: 'web_fetch_20250910',\n              name: 'web_fetch',\n              max_uses: args.maxUses,\n              allowed_domains: args.allowedDomains,\n              blocked_domains: args.blockedDomains,\n              citations: args.citations,\n              max_content_tokens: args.maxContentTokens,\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.web_fetch_20260209': {\n            betas.add('code-execution-web-tools-2026-02-09');\n            const args = await validateTypes({\n              value: tool.args,\n              schema: webFetch_20260209ArgsSchema,\n            });\n            anthropicTools.push({\n              type: 'web_fetch_20260209',\n              name: 'web_fetch',\n              max_uses: args.maxUses,\n              allowed_domains: args.allowedDomains,\n              blocked_domains: args.blockedDomains,\n              citations: args.citations,\n              max_content_tokens: args.maxContentTokens,\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.web_search_20250305': {\n            const args = await validateTypes({\n              value: tool.args,\n              schema: webSearch_20250305ArgsSchema,\n            });\n            anthropicTools.push({\n              type: 'web_search_20250305',\n              name: 'web_search',\n              max_uses: args.maxUses,\n              allowed_domains: args.allowedDomains,\n              blocked_domains: args.blockedDomains,\n              user_location: args.userLocation,\n              cache_control: undefined,\n            });\n            break;\n          }\n          case 'anthropic.web_search_20260209': {\n            betas.add('code-execution-web-tools-2026-02-09');\n            const args = await validateTypes({\n              value: tool.args,\n              schema: webSearch_20260209ArgsSchema,\n            });\n            anthropicTools.push({\n              type: 'web_search_20260209',\n              name: 'web_search',\n              max_uses: args.maxUses,\n              allowed_domains: args.allowedDomains,\n              blocked_domains: args.blockedDomains,\n              user_location: args.userLocation,\n              cache_control: undefined,\n            });\n            break;\n          }\n\n          case 'anthropic.tool_search_regex_20251119': {\n            anthropicTools.push({\n              type: 'tool_search_tool_regex_20251119',\n              name: 'tool_search_tool_regex',\n            });\n            break;\n          }\n\n          case 'anthropic.tool_search_bm25_20251119': {\n            anthropicTools.push({\n              type: 'tool_search_tool_bm25_20251119',\n              name: 'tool_search_tool_bm25',\n            });\n            break;\n          }\n\n          default: {\n            toolWarnings.push({\n              type: 'unsupported',\n              feature: `provider-defined tool ${tool.id}`,\n            });\n            break;\n          }\n        }\n        break;\n      }\n\n      default: {\n        toolWarnings.push({\n          type: 'unsupported',\n          feature: `tool ${tool}`,\n        });\n        break;\n      }\n    }\n  }\n\n  if (toolChoice == null) {\n    return {\n      tools: anthropicTools,\n      toolChoice: disableParallelToolUse\n        ? { type: 'auto', disable_parallel_tool_use: disableParallelToolUse }\n        : undefined,\n      toolWarnings,\n      betas,\n    };\n  }\n\n  const type = toolChoice.type;\n\n  switch (type) {\n    case 'auto':\n      return {\n        tools: anthropicTools,\n        toolChoice: {\n          type: 'auto',\n          disable_parallel_tool_use: disableParallelToolUse,\n        },\n        toolWarnings,\n        betas,\n      };\n    case 'required':\n      return {\n        tools: anthropicTools,\n        toolChoice: {\n          type: 'any',\n          disable_parallel_tool_use: disableParallelToolUse,\n        },\n        toolWarnings,\n        betas,\n      };\n    case 'none':\n      // Anthropic does not support 'none' tool choice, so we remove the tools:\n      return { tools: undefined, toolChoice: undefined, toolWarnings, betas };\n    case 'tool':\n      return {\n        tools: anthropicTools,\n        toolChoice: {\n          type: 'tool',\n          name: toolChoice.toolName,\n          disable_parallel_tool_use: disableParallelToolUse,\n        },\n        toolWarnings,\n        betas,\n      };\n    default: {\n      const _exhaustiveCheck: never = type;\n      throw new UnsupportedFunctionalityError({\n        functionality: `tool choice type: ${_exhaustiveCheck}`,\n      });\n    }\n  }\n}\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const codeExecution_20250522OutputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      type: z.literal('code_execution_result'),\n      stdout: z.string(),\n      stderr: z.string(),\n      return_code: z.number(),\n      content: z\n        .array(\n          z.object({\n            type: z.literal('code_execution_output'),\n            file_id: z.string(),\n          }),\n        )\n        .optional()\n        .default([]),\n    }),\n  ),\n);\n\nconst codeExecution_20250522InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      code: z.string(),\n    }),\n  ),\n);\n\nconst factory = createProviderToolFactoryWithOutputSchema<\n  {\n    /**\n     * The Python code to execute.\n     */\n    code: string;\n  },\n  {\n    type: 'code_execution_result';\n    stdout: string;\n    stderr: string;\n    return_code: number;\n    content: Array<{ type: 'code_execution_output'; file_id: string }>;\n  },\n  {}\n>({\n  id: 'anthropic.code_execution_20250522',\n  inputSchema: codeExecution_20250522InputSchema,\n  outputSchema: codeExecution_20250522OutputSchema,\n});\n\nexport const codeExecution_20250522 = (\n  args: Parameters<typeof factory>[0] = {},\n) => {\n  return factory(args);\n};\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const codeExecution_20250825OutputSchema = lazySchema(() =>\n  zodSchema(\n    z.discriminatedUnion('type', [\n      z.object({\n        type: z.literal('code_execution_result'),\n        stdout: z.string(),\n        stderr: z.string(),\n        return_code: z.number(),\n        content: z\n          .array(\n            z.object({\n              type: z.literal('code_execution_output'),\n              file_id: z.string(),\n            }),\n          )\n          .optional()\n          .default([]),\n      }),\n      z.object({\n        type: z.literal('bash_code_execution_result'),\n        content: z.array(\n          z.object({\n            type: z.literal('bash_code_execution_output'),\n            file_id: z.string(),\n          }),\n        ),\n        stdout: z.string(),\n        stderr: z.string(),\n        return_code: z.number(),\n      }),\n      z.object({\n        type: z.literal('bash_code_execution_tool_result_error'),\n        error_code: z.string(),\n      }),\n      z.object({\n        type: z.literal('text_editor_code_execution_tool_result_error'),\n        error_code: z.string(),\n      }),\n      z.object({\n        type: z.literal('text_editor_code_execution_view_result'),\n        content: z.string(),\n        file_type: z.string(),\n        num_lines: z.number().nullable(),\n        start_line: z.number().nullable(),\n        total_lines: z.number().nullable(),\n      }),\n      z.object({\n        type: z.literal('text_editor_code_execution_create_result'),\n        is_file_update: z.boolean(),\n      }),\n      z.object({\n        type: z.literal('text_editor_code_execution_str_replace_result'),\n        lines: z.array(z.string()).nullable(),\n        new_lines: z.number().nullable(),\n        new_start: z.number().nullable(),\n        old_lines: z.number().nullable(),\n        old_start: z.number().nullable(),\n      }),\n    ]),\n  ),\n);\n\nexport const codeExecution_20250825InputSchema = lazySchema(() =>\n  zodSchema(\n    z.discriminatedUnion('type', [\n      // Programmatic tool calling format (mapped from { code } by AI SDK)\n      z.object({\n        type: z.literal('programmatic-tool-call'),\n        code: z.string(),\n      }),\n      z.object({\n        type: z.literal('bash_code_execution'),\n        command: z.string(),\n      }),\n      z.discriminatedUnion('command', [\n        z.object({\n          type: z.literal('text_editor_code_execution'),\n          command: z.literal('view'),\n          path: z.string(),\n        }),\n        z.object({\n          type: z.literal('text_editor_code_execution'),\n          command: z.literal('create'),\n          path: z.string(),\n          file_text: z.string().nullish(),\n        }),\n        z.object({\n          type: z.literal('text_editor_code_execution'),\n          command: z.literal('str_replace'),\n          path: z.string(),\n          old_str: z.string(),\n          new_str: z.string(),\n        }),\n      ]),\n    ]),\n  ),\n);\n\nconst factory = createProviderToolFactoryWithOutputSchema<\n  | {\n      type: 'programmatic-tool-call';\n      /**\n       * Programmatic tool calling: Python code to execute when code_execution\n       * is used with allowedCallers to trigger client-executed tools.\n       */\n      code: string;\n    }\n  | {\n      type: 'bash_code_execution';\n\n      /**\n       * Shell command to execute.\n       */\n      command: string;\n    }\n  | {\n      type: 'text_editor_code_execution';\n      command: 'view';\n\n      /**\n       * The path to the file to view.\n       */\n      path: string;\n    }\n  | {\n      type: 'text_editor_code_execution';\n      command: 'create';\n\n      /**\n       * The path to the file to edit.\n       */\n      path: string;\n\n      /**\n       * The text of the file to edit.\n       */\n      file_text?: string | null;\n    }\n  | {\n      type: 'text_editor_code_execution';\n      command: 'str_replace';\n\n      /**\n       * The path to the file to edit.\n       */\n      path: string;\n\n      /**\n       * The string to replace.\n       */\n      old_str: string;\n\n      /**\n       * The new string to replace the old string with.\n       */\n      new_str: string;\n    },\n  | {\n      /**\n       * Programmatic tool calling result: returned when code_execution runs code\n       * that calls client-executed tools via allowedCallers.\n       */\n      type: 'code_execution_result';\n\n      /**\n       * Output from successful execution\n       */\n      stdout: string;\n\n      /**\n       * Error messages if execution fails\n       */\n      stderr: string;\n\n      /**\n       * 0 for success, non-zero for failure\n       */\n      return_code: number;\n\n      /**\n       * Output file Id list\n       */\n      content: Array<{ type: 'code_execution_output'; file_id: string }>;\n    }\n  | {\n      type: 'bash_code_execution_result';\n\n      /**\n       * Output file Id list\n       */\n      content: Array<{\n        type: 'bash_code_execution_output';\n        file_id: string;\n      }>;\n\n      /**\n       * Output from successful execution\n       */\n      stdout: string;\n\n      /**\n       * Error messages if execution fails\n       */\n      stderr: string;\n\n      /**\n       * 0 for success, non-zero for failure\n       */\n      return_code: number;\n    }\n  | {\n      type: 'bash_code_execution_tool_result_error';\n\n      /**\n       * Available options: invalid_tool_input, unavailable, too_many_requests,\n       * execution_time_exceeded, output_file_too_large.\n       */\n      error_code: string;\n    }\n  | {\n      type: 'text_editor_code_execution_tool_result_error';\n\n      /**\n       * Available options: invalid_tool_input, unavailable, too_many_requests,\n       * execution_time_exceeded, file_not_found.\n       */\n      error_code: string;\n    }\n  | {\n      type: 'text_editor_code_execution_view_result';\n\n      content: string;\n\n      /**\n       * The type of the file. Available options: text, image, pdf.\n       */\n      file_type: string;\n\n      num_lines: number | null;\n      start_line: number | null;\n      total_lines: number | null;\n    }\n  | {\n      type: 'text_editor_code_execution_create_result';\n\n      is_file_update: boolean;\n    }\n  | {\n      type: 'text_editor_code_execution_str_replace_result';\n\n      lines: string[] | null;\n      new_lines: number | null;\n      new_start: number | null;\n      old_lines: number | null;\n      old_start: number | null;\n    },\n  {\n    // no arguments\n  }\n>({\n  id: 'anthropic.code_execution_20250825',\n  inputSchema: codeExecution_20250825InputSchema,\n  outputSchema: codeExecution_20250825OutputSchema,\n  // Programmatic tool calling: tool results may be deferred to a later turn\n  // when code execution triggers a client-executed tool that needs to be\n  // resolved before the code execution result can be returned.\n  supportsDeferredResults: true,\n});\n\nexport const codeExecution_20250825 = (\n  args: Parameters<typeof factory>[0] = {},\n) => {\n  return factory(args);\n};\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nexport const codeExecution_20260120OutputSchema = lazySchema(() =>\n  zodSchema(\n    z.discriminatedUnion('type', [\n      z.object({\n        type: z.literal('code_execution_result'),\n        stdout: z.string(),\n        stderr: z.string(),\n        return_code: z.number(),\n        content: z\n          .array(\n            z.object({\n              type: z.literal('code_execution_output'),\n              file_id: z.string(),\n            }),\n          )\n          .optional()\n          .default([]),\n      }),\n      z.object({\n        type: z.literal('encrypted_code_execution_result'),\n        encrypted_stdout: z.string(),\n        stderr: z.string(),\n        return_code: z.number(),\n        content: z\n          .array(\n            z.object({\n              type: z.literal('code_execution_output'),\n              file_id: z.string(),\n            }),\n          )\n          .optional()\n          .default([]),\n      }),\n      z.object({\n        type: z.literal('bash_code_execution_result'),\n        content: z.array(\n          z.object({\n            type: z.literal('bash_code_execution_output'),\n            file_id: z.string(),\n          }),\n        ),\n        stdout: z.string(),\n        stderr: z.string(),\n        return_code: z.number(),\n      }),\n      z.object({\n        type: z.literal('bash_code_execution_tool_result_error'),\n        error_code: z.string(),\n      }),\n      z.object({\n        type: z.literal('text_editor_code_execution_tool_result_error'),\n        error_code: z.string(),\n      }),\n      z.object({\n        type: z.literal('text_editor_code_execution_view_result'),\n        content: z.string(),\n        file_type: z.string(),\n        num_lines: z.number().nullable(),\n        start_line: z.number().nullable(),\n        total_lines: z.number().nullable(),\n      }),\n      z.object({\n        type: z.literal('text_editor_code_execution_create_result'),\n        is_file_update: z.boolean(),\n      }),\n      z.object({\n        type: z.literal('text_editor_code_execution_str_replace_result'),\n        lines: z.array(z.string()).nullable(),\n        new_lines: z.number().nullable(),\n        new_start: z.number().nullable(),\n        old_lines: z.number().nullable(),\n        old_start: z.number().nullable(),\n      }),\n    ]),\n  ),\n);\n\nexport const codeExecution_20260120InputSchema = lazySchema(() =>\n  zodSchema(\n    z.discriminatedUnion('type', [\n      z.object({\n        type: z.literal('programmatic-tool-call'),\n        code: z.string(),\n      }),\n      z.object({\n        type: z.literal('bash_code_execution'),\n        command: z.string(),\n      }),\n      z.discriminatedUnion('command', [\n        z.object({\n          type: z.literal('text_editor_code_execution'),\n          command: z.literal('view'),\n          path: z.string(),\n        }),\n        z.object({\n          type: z.literal('text_editor_code_execution'),\n          command: z.literal('create'),\n          path: z.string(),\n          file_text: z.string().nullish(),\n        }),\n        z.object({\n          type: z.literal('text_editor_code_execution'),\n          command: z.literal('str_replace'),\n          path: z.string(),\n          old_str: z.string(),\n          new_str: z.string(),\n        }),\n      ]),\n    ]),\n  ),\n);\n\nconst factory = createProviderToolFactoryWithOutputSchema<\n  | {\n      type: 'programmatic-tool-call';\n      /**\n       * Programmatic tool calling: Python code to execute when code_execution\n       * is used with allowedCallers to trigger client-executed tools.\n       */\n      code: string;\n    }\n  | {\n      type: 'bash_code_execution';\n\n      /**\n       * Shell command to execute.\n       */\n      command: string;\n    }\n  | {\n      type: 'text_editor_code_execution';\n      command: 'view';\n\n      /**\n       * The path to the file to view.\n       */\n      path: string;\n    }\n  | {\n      type: 'text_editor_code_execution';\n      command: 'create';\n\n      /**\n       * The path to the file to edit.\n       */\n      path: string;\n\n      /**\n       * The text of the file to edit.\n       */\n      file_text?: string | null;\n    }\n  | {\n      type: 'text_editor_code_execution';\n      command: 'str_replace';\n\n      /**\n       * The path to the file to edit.\n       */\n      path: string;\n\n      /**\n       * The string to replace.\n       */\n      old_str: string;\n\n      /**\n       * The new string to replace the old string with.\n       */\n      new_str: string;\n    },\n  | {\n      /**\n       * Programmatic tool calling result: returned when code_execution runs code\n       * that calls client-executed tools via allowedCallers.\n       */\n      type: 'code_execution_result';\n\n      /**\n       * Output from successful execution\n       */\n      stdout: string;\n\n      /**\n       * Error messages if execution fails\n       */\n      stderr: string;\n\n      /**\n       * 0 for success, non-zero for failure\n       */\n      return_code: number;\n\n      /**\n       * Output file Id list\n       */\n      content: Array<{ type: 'code_execution_output'; file_id: string }>;\n    }\n  | {\n      type: 'encrypted_code_execution_result';\n\n      /**\n       * Encrypted output from successful execution\n       */\n      encrypted_stdout: string;\n\n      /**\n       * Error messages if execution fails\n       */\n      stderr: string;\n\n      /**\n       * 0 for success, non-zero for failure\n       */\n      return_code: number;\n\n      /**\n       * Output file Id list\n       */\n      content: Array<{ type: 'code_execution_output'; file_id: string }>;\n    }\n  | {\n      type: 'bash_code_execution_result';\n\n      /**\n       * Output file Id list\n       */\n      content: Array<{\n        type: 'bash_code_execution_output';\n        file_id: string;\n      }>;\n\n      /**\n       * Output from successful execution\n       */\n      stdout: string;\n\n      /**\n       * Error messages if execution fails\n       */\n      stderr: string;\n\n      /**\n       * 0 for success, non-zero for failure\n       */\n      return_code: number;\n    }\n  | {\n      type: 'bash_code_execution_tool_result_error';\n\n      /**\n       * Available options: invalid_tool_input, unavailable, too_many_requests,\n       * execution_time_exceeded, output_file_too_large.\n       */\n      error_code: string;\n    }\n  | {\n      type: 'text_editor_code_execution_tool_result_error';\n\n      /**\n       * Available options: invalid_tool_input, unavailable, too_many_requests,\n       * execution_time_exceeded, file_not_found.\n       */\n      error_code: string;\n    }\n  | {\n      type: 'text_editor_code_execution_view_result';\n\n      content: string;\n\n      /**\n       * The type of the file. Available options: text, image, pdf.\n       */\n      file_type: string;\n\n      num_lines: number | null;\n      start_line: number | null;\n      total_lines: number | null;\n    }\n  | {\n      type: 'text_editor_code_execution_create_result';\n\n      is_file_update: boolean;\n    }\n  | {\n      type: 'text_editor_code_execution_str_replace_result';\n\n      lines: string[] | null;\n      new_lines: number | null;\n      new_start: number | null;\n      old_lines: number | null;\n      old_start: number | null;\n    },\n  {\n    // no arguments\n  }\n>({\n  id: 'anthropic.code_execution_20260120',\n  inputSchema: codeExecution_20260120InputSchema,\n  outputSchema: codeExecution_20260120OutputSchema,\n  supportsDeferredResults: true,\n});\n\nexport const codeExecution_20260120 = (\n  args: Parameters<typeof factory>[0] = {},\n) => {\n  return factory(args);\n};\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n/**\n * Output schema for tool search results - returns tool references\n * that are automatically expanded into full tool definitions by the API.\n */\nexport const toolSearchRegex_20251119OutputSchema = lazySchema(() =>\n  zodSchema(\n    z.array(\n      z.object({\n        type: z.literal('tool_reference'),\n        toolName: z.string(),\n      }),\n    ),\n  ),\n);\n\n/**\n * Input schema for regex-based tool search.\n * Claude constructs regex patterns using Python's re.search() syntax.\n */\nconst toolSearchRegex_20251119InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      /**\n       * A regex pattern to search for tools.\n       * Uses Python re.search() syntax. Maximum 200 characters.\n       *\n       * Examples:\n       * - \"weather\" - matches tool names/descriptions containing \"weather\"\n       * - \"get_.*_data\" - matches tools like get_user_data, get_weather_data\n       * - \"database.*query|query.*database\" - OR patterns for flexibility\n       * - \"(?i)slack\" - case-insensitive search\n       */\n      pattern: z.string(),\n      /**\n       * Maximum number of tools to return. Optional.\n       */\n      limit: z.number().optional(),\n    }),\n  ),\n);\n\nconst factory = createProviderToolFactoryWithOutputSchema<\n  {\n    /**\n     * A regex pattern to search for tools.\n     * Uses Python re.search() syntax. Maximum 200 characters.\n     *\n     * Examples:\n     * - \"weather\" - matches tool names/descriptions containing \"weather\"\n     * - \"get_.*_data\" - matches tools like get_user_data, get_weather_data\n     * - \"database.*query|query.*database\" - OR patterns for flexibility\n     * - \"(?i)slack\" - case-insensitive search\n     */\n    pattern: string;\n    /**\n     * Maximum number of tools to return. Optional.\n     */\n    limit?: number;\n  },\n  Array<{\n    type: 'tool_reference';\n    /**\n     * The name of the discovered tool.\n     */\n    toolName: string;\n  }>,\n  {}\n>({\n  id: 'anthropic.tool_search_regex_20251119',\n  inputSchema: toolSearchRegex_20251119InputSchema,\n  outputSchema: toolSearchRegex_20251119OutputSchema,\n  supportsDeferredResults: true,\n});\n\n/**\n * Creates a tool search tool that uses regex patterns to find tools.\n *\n * The tool search tool enables Claude to work with hundreds or thousands of tools\n * by dynamically discovering and loading them on-demand. Instead of loading all\n * tool definitions into the context window upfront, Claude searches your tool\n * catalog and loads only the tools it needs.\n *\n * When Claude uses this tool, it constructs regex patterns using Python's\n * re.search() syntax (NOT natural language queries).\n *\n * **Important**: This tool should never have `deferLoading: true` in providerOptions.\n *\n * @example\n * ```ts\n * import { anthropicTools } from '@ai-sdk/anthropic';\n *\n * const tools = {\n *   toolSearch: anthropicTools.toolSearchRegex_20251119(),\n *   // Other tools with deferLoading...\n * };\n * ```\n *\n * @see https://docs.anthropic.com/en/docs/agents-and-tools/tool-search-tool\n */\nexport const toolSearchRegex_20251119 = (\n  args: Parameters<typeof factory>[0] = {},\n) => {\n  return factory(args);\n};\n","import {\n  createProviderToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst bash_20241022InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      command: z.string(),\n      restart: z.boolean().optional(),\n    }),\n  ),\n);\n\nexport const bash_20241022 = createProviderToolFactory<\n  {\n    /**\n     * The bash command to run. Required unless the tool is being restarted.\n     */\n    command: string;\n\n    /**\n     * Specifying true will restart this tool. Otherwise, leave this unspecified.\n     */\n    restart?: boolean;\n  },\n  {}\n>({\n  id: 'anthropic.bash_20241022',\n  inputSchema: bash_20241022InputSchema,\n});\n","import {\n  createProviderToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst bash_20250124InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      command: z.string(),\n      restart: z.boolean().optional(),\n    }),\n  ),\n);\n\nexport const bash_20250124 = createProviderToolFactory<\n  {\n    /**\n     * The bash command to run. Required unless the tool is being restarted.\n     */\n    command: string;\n\n    /**\n     * Specifying true will restart this tool. Otherwise, leave this unspecified.\n     */\n    restart?: boolean;\n  },\n  {}\n>({\n  id: 'anthropic.bash_20250124',\n  inputSchema: bash_20250124InputSchema,\n});\n","import {\n  createProviderToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst computer_20241022InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      action: z.enum([\n        'key',\n        'type',\n        'mouse_move',\n        'left_click',\n        'left_click_drag',\n        'right_click',\n        'middle_click',\n        'double_click',\n        'screenshot',\n        'cursor_position',\n      ]),\n      coordinate: z.array(z.number().int()).optional(),\n      text: z.string().optional(),\n    }),\n  ),\n);\n\nexport const computer_20241022 = createProviderToolFactory<\n  {\n    /**\n     * The action to perform. The available actions are:\n     * - `key`: Press a key or key-combination on the keyboard.\n     *   - This supports xdotool's `key` syntax.\n     *   - Examples: \"a\", \"Return\", \"alt+Tab\", \"ctrl+s\", \"Up\", \"KP_0\" (for the numpad 0 key).\n     * - `type`: Type a string of text on the keyboard.\n     * - `cursor_position`: Get the current (x, y) pixel coordinate of the cursor on the screen.\n     * - `mouse_move`: Move the cursor to a specified (x, y) pixel coordinate on the screen.\n     * - `left_click`: Click the left mouse button.\n     * - `left_click_drag`: Click and drag the cursor to a specified (x, y) pixel coordinate on the screen.\n     * - `right_click`: Click the right mouse button.\n     * - `middle_click`: Click the middle mouse button.\n     * - `double_click`: Double-click the left mouse button.\n     * - `screenshot`: Take a screenshot of the screen.\n     */\n    action:\n      | 'key'\n      | 'type'\n      | 'mouse_move'\n      | 'left_click'\n      | 'left_click_drag'\n      | 'right_click'\n      | 'middle_click'\n      | 'double_click'\n      | 'screenshot'\n      | 'cursor_position';\n\n    /**\n     * (x, y): The x (pixels from the left edge) and y (pixels from the top edge) coordinates to move the mouse to. Required only by `action=mouse_move` and `action=left_click_drag`.\n     */\n    coordinate?: number[];\n\n    /**\n     * Required only by `action=type` and `action=key`.\n     */\n    text?: string;\n  },\n  {\n    /**\n     * The width of the display being controlled by the model in pixels.\n     */\n    displayWidthPx: number;\n\n    /**\n     * The height of the display being controlled by the model in pixels.\n     */\n    displayHeightPx: number;\n\n    /**\n     * The display number to control (only relevant for X11 environments). If specified, the tool will be provided a display number in the tool definition.\n     */\n    displayNumber?: number;\n  }\n>({\n  id: 'anthropic.computer_20241022',\n  inputSchema: computer_20241022InputSchema,\n});\n","import {\n  createProviderToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst computer_20250124InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      action: z.enum([\n        'key',\n        'hold_key',\n        'type',\n        'cursor_position',\n        'mouse_move',\n        'left_mouse_down',\n        'left_mouse_up',\n        'left_click',\n        'left_click_drag',\n        'right_click',\n        'middle_click',\n        'double_click',\n        'triple_click',\n        'scroll',\n        'wait',\n        'screenshot',\n      ]),\n      coordinate: z.tuple([z.number().int(), z.number().int()]).optional(),\n      duration: z.number().optional(),\n      scroll_amount: z.number().optional(),\n      scroll_direction: z.enum(['up', 'down', 'left', 'right']).optional(),\n      start_coordinate: z\n        .tuple([z.number().int(), z.number().int()])\n        .optional(),\n      text: z.string().optional(),\n    }),\n  ),\n);\n\nexport const computer_20250124 = createProviderToolFactory<\n  {\n    /**\n     * - `key`: Press a key or key-combination on the keyboard.\n     *   - This supports xdotool's `key` syntax.\n     *   - Examples: \"a\", \"Return\", \"alt+Tab\", \"ctrl+s\", \"Up\", \"KP_0\" (for the numpad 0 key).\n     * - `hold_key`: Hold down a key or multiple keys for a specified duration (in seconds). Supports the same syntax as `key`.\n     * - `type`: Type a string of text on the keyboard.\n     * - `cursor_position`: Get the current (x, y) pixel coordinate of the cursor on the screen.\n     * - `mouse_move`: Move the cursor to a specified (x, y) pixel coordinate on the screen.\n     * - `left_mouse_down`: Press the left mouse button.\n     * - `left_mouse_up`: Release the left mouse button.\n     * - `left_click`: Click the left mouse button at the specified (x, y) pixel coordinate on the screen. You can also include a key combination to hold down while clicking using the `text` parameter.\n     * - `left_click_drag`: Click and drag the cursor from `start_coordinate` to a specified (x, y) pixel coordinate on the screen.\n     * - `right_click`: Click the right mouse button at the specified (x, y) pixel coordinate on the screen.\n     * - `middle_click`: Click the middle mouse button at the specified (x, y) pixel coordinate on the screen.\n     * - `double_click`: Double-click the left mouse button at the specified (x, y) pixel coordinate on the screen.\n     * - `triple_click`: Triple-click the left mouse button at the specified (x, y) pixel coordinate on the screen.\n     * - `scroll`: Scroll the screen in a specified direction by a specified amount of clicks of the scroll wheel, at the specified (x, y) pixel coordinate. DO NOT use PageUp/PageDown to scroll.\n     * - `wait`: Wait for a specified duration (in seconds).\n     * - `screenshot`: Take a screenshot of the screen.\n     */\n    action:\n      | 'key'\n      | 'hold_key'\n      | 'type'\n      | 'cursor_position'\n      | 'mouse_move'\n      | 'left_mouse_down'\n      | 'left_mouse_up'\n      | 'left_click'\n      | 'left_click_drag'\n      | 'right_click'\n      | 'middle_click'\n      | 'double_click'\n      | 'triple_click'\n      | 'scroll'\n      | 'wait'\n      | 'screenshot';\n\n    /**\n     * (x, y): The x (pixels from the left edge) and y (pixels from the top edge) coordinates to move the mouse to. Required only by `action=mouse_move` and `action=left_click_drag`.\n     */\n    coordinate?: [number, number];\n\n    /**\n     * The duration to hold the key down for. Required only by `action=hold_key` and `action=wait`.\n     */\n    duration?: number;\n\n    /**\n     * The number of 'clicks' to scroll. Required only by `action=scroll`.\n     */\n    scroll_amount?: number;\n\n    /**\n     * The direction to scroll the screen. Required only by `action=scroll`.\n     */\n    scroll_direction?: 'up' | 'down' | 'left' | 'right';\n\n    /**\n     * (x, y): The x (pixels from the left edge) and y (pixels from the top edge) coordinates to start the drag from. Required only by `action=left_click_drag`.\n     */\n    start_coordinate?: [number, number];\n\n    /**\n     * Required only by `action=type`, `action=key`, and `action=hold_key`. Can also be used by click or scroll actions to hold down keys while clicking or scrolling.\n     */\n    text?: string;\n  },\n  {\n    /**\n     * The width of the display being controlled by the model in pixels.\n     */\n    displayWidthPx: number;\n\n    /**\n     * The height of the display being controlled by the model in pixels.\n     */\n    displayHeightPx: number;\n\n    /**\n     * The display number to control (only relevant for X11 environments). If specified, the tool will be provided a display number in the tool definition.\n     */\n    displayNumber?: number;\n  }\n>({\n  id: 'anthropic.computer_20250124',\n  inputSchema: computer_20250124InputSchema,\n});\n","import {\n  createProviderToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst computer_20251124InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      action: z.enum([\n        'key',\n        'hold_key',\n        'type',\n        'cursor_position',\n        'mouse_move',\n        'left_mouse_down',\n        'left_mouse_up',\n        'left_click',\n        'left_click_drag',\n        'right_click',\n        'middle_click',\n        'double_click',\n        'triple_click',\n        'scroll',\n        'wait',\n        'screenshot',\n        'zoom',\n      ]),\n      coordinate: z.tuple([z.number().int(), z.number().int()]).optional(),\n      duration: z.number().optional(),\n      region: z\n        .tuple([\n          z.number().int(),\n          z.number().int(),\n          z.number().int(),\n          z.number().int(),\n        ])\n        .optional(),\n      scroll_amount: z.number().optional(),\n      scroll_direction: z.enum(['up', 'down', 'left', 'right']).optional(),\n      start_coordinate: z\n        .tuple([z.number().int(), z.number().int()])\n        .optional(),\n      text: z.string().optional(),\n    }),\n  ),\n);\n\nexport const computer_20251124 = createProviderToolFactory<\n  {\n    /**\n     * - `key`: Press a key or key-combination on the keyboard.\n     *   - This supports xdotool's `key` syntax.\n     *   - Examples: \"a\", \"Return\", \"alt+Tab\", \"ctrl+s\", \"Up\", \"KP_0\" (for the numpad 0 key).\n     * - `hold_key`: Hold down a key or multiple keys for a specified duration (in seconds). Supports the same syntax as `key`.\n     * - `type`: Type a string of text on the keyboard.\n     * - `cursor_position`: Get the current (x, y) pixel coordinate of the cursor on the screen.\n     * - `mouse_move`: Move the cursor to a specified (x, y) pixel coordinate on the screen.\n     * - `left_mouse_down`: Press the left mouse button.\n     * - `left_mouse_up`: Release the left mouse button.\n     * - `left_click`: Click the left mouse button at the specified (x, y) pixel coordinate on the screen. You can also include a key combination to hold down while clicking using the `text` parameter.\n     * - `left_click_drag`: Click and drag the cursor from `start_coordinate` to a specified (x, y) pixel coordinate on the screen.\n     * - `right_click`: Click the right mouse button at the specified (x, y) pixel coordinate on the screen.\n     * - `middle_click`: Click the middle mouse button at the specified (x, y) pixel coordinate on the screen.\n     * - `double_click`: Double-click the left mouse button at the specified (x, y) pixel coordinate on the screen.\n     * - `triple_click`: Triple-click the left mouse button at the specified (x, y) pixel coordinate on the screen.\n     * - `scroll`: Scroll the screen in a specified direction by a specified amount of clicks of the scroll wheel, at the specified (x, y) pixel coordinate. DO NOT use PageUp/PageDown to scroll.\n     * - `wait`: Wait for a specified duration (in seconds).\n     * - `screenshot`: Take a screenshot of the screen.\n     * - `zoom`: View a specific region of the screen at full resolution. Requires `enableZoom: true` in tool definition. Takes a `region` parameter with coordinates `[x1, y1, x2, y2]` defining top-left and bottom-right corners of the area to inspect.\n     */\n    action:\n      | 'key'\n      | 'hold_key'\n      | 'type'\n      | 'cursor_position'\n      | 'mouse_move'\n      | 'left_mouse_down'\n      | 'left_mouse_up'\n      | 'left_click'\n      | 'left_click_drag'\n      | 'right_click'\n      | 'middle_click'\n      | 'double_click'\n      | 'triple_click'\n      | 'scroll'\n      | 'wait'\n      | 'screenshot'\n      | 'zoom';\n\n    /**\n     * (x, y): The x (pixels from the left edge) and y (pixels from the top edge) coordinates to move the mouse to. Required only by `action=mouse_move` and `action=left_click_drag`.\n     */\n    coordinate?: [number, number];\n\n    /**\n     * The duration to hold the key down for. Required only by `action=hold_key` and `action=wait`.\n     */\n    duration?: number;\n\n    /**\n     * [x1, y1, x2, y2]: The coordinates defining the region to zoom into. x1, y1 is the top-left corner and x2, y2 is the bottom-right corner. Required only by `action=zoom`.\n     */\n    region?: [number, number, number, number];\n\n    /**\n     * The number of 'clicks' to scroll. Required only by `action=scroll`.\n     */\n    scroll_amount?: number;\n\n    /**\n     * The direction to scroll the screen. Required only by `action=scroll`.\n     */\n    scroll_direction?: 'up' | 'down' | 'left' | 'right';\n\n    /**\n     * (x, y): The x (pixels from the left edge) and y (pixels from the top edge) coordinates to start the drag from. Required only by `action=left_click_drag`.\n     */\n    start_coordinate?: [number, number];\n\n    /**\n     * Required only by `action=type`, `action=key`, and `action=hold_key`. Can also be used by click or scroll actions to hold down keys while clicking or scrolling.\n     */\n    text?: string;\n  },\n  {\n    /**\n     * The width of the display being controlled by the model in pixels.\n     */\n    displayWidthPx: number;\n\n    /**\n     * The height of the display being controlled by the model in pixels.\n     */\n    displayHeightPx: number;\n\n    /**\n     * The display number to control (only relevant for X11 environments). If specified, the tool will be provided a display number in the tool definition.\n     */\n    displayNumber?: number;\n\n    /**\n     * Enable zoom action. Set to true to allow Claude to zoom into specific screen regions. Default: false.\n     */\n    enableZoom?: boolean;\n  }\n>({\n  id: 'anthropic.computer_20251124',\n  inputSchema: computer_20251124InputSchema,\n});\n","import {\n  createProviderToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst memory_20250818InputSchema = lazySchema(() =>\n  zodSchema(\n    z.discriminatedUnion('command', [\n      z.object({\n        command: z.literal('view'),\n        path: z.string(),\n        view_range: z.tuple([z.number(), z.number()]).optional(),\n      }),\n      z.object({\n        command: z.literal('create'),\n        path: z.string(),\n        file_text: z.string(),\n      }),\n      z.object({\n        command: z.literal('str_replace'),\n        path: z.string(),\n        old_str: z.string(),\n        new_str: z.string(),\n      }),\n      z.object({\n        command: z.literal('insert'),\n        path: z.string(),\n        insert_line: z.number(),\n        insert_text: z.string(),\n      }),\n      z.object({\n        command: z.literal('delete'),\n        path: z.string(),\n      }),\n      z.object({\n        command: z.literal('rename'),\n        old_path: z.string(),\n        new_path: z.string(),\n      }),\n    ]),\n  ),\n);\n\nexport const memory_20250818 = createProviderToolFactory<\n  | { command: 'view'; path: string; view_range?: [number, number] }\n  | { command: 'create'; path: string; file_text: string }\n  | { command: 'str_replace'; path: string; old_str: string; new_str: string }\n  | {\n      command: 'insert';\n      path: string;\n      insert_line: number;\n      insert_text: string;\n    }\n  | { command: 'delete'; path: string }\n  | { command: 'rename'; old_path: string; new_path: string },\n  {}\n>({\n  id: 'anthropic.memory_20250818',\n  inputSchema: memory_20250818InputSchema,\n});\n","import {\n  createProviderToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst textEditor_20241022InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      command: z.enum(['view', 'create', 'str_replace', 'insert', 'undo_edit']),\n      path: z.string(),\n      file_text: z.string().optional(),\n      insert_line: z.number().int().optional(),\n      new_str: z.string().optional(),\n      insert_text: z.string().optional(),\n      old_str: z.string().optional(),\n      view_range: z.array(z.number().int()).optional(),\n    }),\n  ),\n);\n\nexport const textEditor_20241022 = createProviderToolFactory<\n  {\n    /**\n     * The commands to run. Allowed options are: `view`, `create`, `str_replace`, `insert`, `undo_edit`.\n     */\n    command: 'view' | 'create' | 'str_replace' | 'insert' | 'undo_edit';\n\n    /**\n     * Absolute path to file or directory, e.g. `/repo/file.py` or `/repo`.\n     */\n    path: string;\n\n    /**\n     * Required parameter of `create` command, with the content of the file to be created.\n     */\n    file_text?: string;\n\n    /**\n     * Required parameter of `insert` command. The `new_str` will be inserted AFTER the line `insert_line` of `path`.\n     */\n    insert_line?: number;\n\n    /**\n     * Optional parameter of `str_replace` command containing the new string (if not given, no string will be added).\n     */\n    new_str?: string;\n\n    /**\n     * Required parameter of `insert` command containing the text to insert.\n     */\n    insert_text?: string;\n\n    /**\n     * Required parameter of `str_replace` command containing the string in `path` to replace.\n     */\n    old_str?: string;\n\n    /**\n     * Optional parameter of `view` command when `path` points to a file. If none is given, the full file is shown. If provided, the file will be shown in the indicated line number range, e.g. [11, 12] will show lines 11 and 12. Indexing at 1 to start. Setting `[start_line, -1]` shows all lines from `start_line` to the end of the file.\n     */\n    view_range?: number[];\n  },\n  {}\n>({\n  id: 'anthropic.text_editor_20241022',\n  inputSchema: textEditor_20241022InputSchema,\n});\n","import {\n  createProviderToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst textEditor_20250124InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      command: z.enum(['view', 'create', 'str_replace', 'insert', 'undo_edit']),\n      path: z.string(),\n      file_text: z.string().optional(),\n      insert_line: z.number().int().optional(),\n      new_str: z.string().optional(),\n      insert_text: z.string().optional(),\n      old_str: z.string().optional(),\n      view_range: z.array(z.number().int()).optional(),\n    }),\n  ),\n);\n\nexport const textEditor_20250124 = createProviderToolFactory<\n  {\n    /**\n     * The commands to run. Allowed options are: `view`, `create`, `str_replace`, `insert`, `undo_edit`.\n     */\n    command: 'view' | 'create' | 'str_replace' | 'insert' | 'undo_edit';\n\n    /**\n     * Absolute path to file or directory, e.g. `/repo/file.py` or `/repo`.\n     */\n    path: string;\n\n    /**\n     * Required parameter of `create` command, with the content of the file to be created.\n     */\n    file_text?: string;\n\n    /**\n     * Required parameter of `insert` command. The `new_str` will be inserted AFTER the line `insert_line` of `path`.\n     */\n    insert_line?: number;\n\n    /**\n     * Optional parameter of `str_replace` command containing the new string (if not given, no string will be added).\n     */\n    new_str?: string;\n\n    /**\n     * Required parameter of `insert` command containing the text to insert.\n     */\n    insert_text?: string;\n\n    /**\n     * Required parameter of `str_replace` command containing the string in `path` to replace.\n     */\n    old_str?: string;\n\n    /**\n     * Optional parameter of `view` command when `path` points to a file. If none is given, the full file is shown. If provided, the file will be shown in the indicated line number range, e.g. [11, 12] will show lines 11 and 12. Indexing at 1 to start. Setting `[start_line, -1]` shows all lines from `start_line` to the end of the file.\n     */\n    view_range?: number[];\n  },\n  {}\n>({\n  id: 'anthropic.text_editor_20250124',\n  inputSchema: textEditor_20250124InputSchema,\n});\n","import {\n  createProviderToolFactory,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\nconst textEditor_20250429InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      command: z.enum(['view', 'create', 'str_replace', 'insert']),\n      path: z.string(),\n      file_text: z.string().optional(),\n      insert_line: z.number().int().optional(),\n      new_str: z.string().optional(),\n      insert_text: z.string().optional(),\n      old_str: z.string().optional(),\n      view_range: z.array(z.number().int()).optional(),\n    }),\n  ),\n);\n\nexport const textEditor_20250429 = createProviderToolFactory<\n  {\n    /**\n     * The commands to run. Allowed options are: `view`, `create`, `str_replace`, `insert`.\n     * Note: `undo_edit` is not supported in Claude 4 models.\n     */\n    command: 'view' | 'create' | 'str_replace' | 'insert';\n\n    /**\n     * Absolute path to file or directory, e.g. `/repo/file.py` or `/repo`.\n     */\n    path: string;\n\n    /**\n     * Required parameter of `create` command, with the content of the file to be created.\n     */\n    file_text?: string;\n\n    /**\n     * Required parameter of `insert` command. The `new_str` will be inserted AFTER the line `insert_line` of `path`.\n     */\n    insert_line?: number;\n\n    /**\n     * Optional parameter of `str_replace` command containing the new string (if not given, no string will be added).\n     */\n    new_str?: string;\n\n    /**\n     * Required parameter of `insert` command containing the text to insert.\n     */\n    insert_text?: string;\n\n    /**\n     * Required parameter of `str_replace` command containing the string in `path` to replace.\n     */\n    old_str?: string;\n\n    /**\n     * Optional parameter of `view` command when `path` points to a file. If none is given, the full file is shown. If provided, the file will be shown in the indicated line number range, e.g. [11, 12] will show lines 11 and 12. Indexing at 1 to start. Setting `[start_line, -1]` shows all lines from `start_line` to the end of the file.\n     */\n    view_range?: number[];\n  },\n  {}\n>({\n  id: 'anthropic.text_editor_20250429',\n  inputSchema: textEditor_20250429InputSchema,\n});\n","import {\n  createProviderToolFactoryWithOutputSchema,\n  lazySchema,\n  zodSchema,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n/**\n * Output schema for tool search results - returns tool references\n * that are automatically expanded into full tool definitions by the API.\n */\nexport const toolSearchBm25_20251119OutputSchema = lazySchema(() =>\n  zodSchema(\n    z.array(\n      z.object({\n        type: z.literal('tool_reference'),\n        toolName: z.string(),\n      }),\n    ),\n  ),\n);\n\n/**\n * Input schema for BM25-based tool search.\n * Claude uses natural language queries to search for tools.\n */\nconst toolSearchBm25_20251119InputSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      /**\n       * A natural language query to search for tools.\n       * Claude will use BM25 text search to find relevant tools.\n       */\n      query: z.string(),\n      /**\n       * Maximum number of tools to return. Optional.\n       */\n      limit: z.number().optional(),\n    }),\n  ),\n);\n\nconst factory = createProviderToolFactoryWithOutputSchema<\n  {\n    /**\n     * A natural language query to search for tools.\n     * Claude will use BM25 text search to find relevant tools.\n     */\n    query: string;\n    /**\n     * Maximum number of tools to return. Optional.\n     */\n    limit?: number;\n  },\n  Array<{\n    type: 'tool_reference';\n    /**\n     * The name of the discovered tool.\n     */\n    toolName: string;\n  }>,\n  {}\n>({\n  id: 'anthropic.tool_search_bm25_20251119',\n  inputSchema: toolSearchBm25_20251119InputSchema,\n  outputSchema: toolSearchBm25_20251119OutputSchema,\n  supportsDeferredResults: true,\n});\n\n/**\n * Creates a tool search tool that uses BM25 (natural language) to find tools.\n *\n * The tool search tool enables Claude to work with hundreds or thousands of tools\n * by dynamically discovering and loading them on-demand. Instead of loading all\n * tool definitions into the context window upfront, Claude searches your tool\n * catalog and loads only the tools it needs.\n *\n * When Claude uses this tool, it uses natural language queries (NOT regex patterns)\n * to search for tools using BM25 text search.\n *\n * **Important**: This tool should never have `deferLoading: true` in providerOptions.\n *\n * @example\n * ```ts\n * import { anthropicTools } from '@ai-sdk/anthropic';\n *\n * const tools = {\n *   toolSearch: anthropicTools.toolSearchBm25_20251119(),\n *   // Other tools with deferLoading...\n * };\n * ```\n *\n * @see https://docs.anthropic.com/en/docs/agents-and-tools/tool-search-tool\n */\nexport const toolSearchBm25_20251119 = (\n  args: Parameters<typeof factory>[0] = {},\n) => {\n  return factory(args);\n};\n","import { bash_20241022 } from './tool/bash_20241022';\nimport { bash_20250124 } from './tool/bash_20250124';\nimport { codeExecution_20250522 } from './tool/code-execution_20250522';\nimport { codeExecution_20250825 } from './tool/code-execution_20250825';\nimport { codeExecution_20260120 } from './tool/code-execution_20260120';\nimport { computer_20241022 } from './tool/computer_20241022';\nimport { computer_20250124 } from './tool/computer_20250124';\nimport { computer_20251124 } from './tool/computer_20251124';\nimport { memory_20250818 } from './tool/memory_20250818';\nimport { textEditor_20241022 } from './tool/text-editor_20241022';\nimport { textEditor_20250124 } from './tool/text-editor_20250124';\nimport { textEditor_20250429 } from './tool/text-editor_20250429';\nimport { textEditor_20250728 } from './tool/text-editor_20250728';\nimport { toolSearchBm25_20251119 } from './tool/tool-search-bm25_20251119';\nimport { toolSearchRegex_20251119 } from './tool/tool-search-regex_20251119';\nimport { webFetch_20260209 } from './tool/web-fetch-20260209';\nimport { webFetch_20250910 } from './tool/web-fetch-20250910';\nimport { webSearch_20260209 } from './tool/web-search_20260209';\nimport { webSearch_20250305 } from './tool/web-search_20250305';\n\nexport const anthropicTools = {\n  /**\n   * The bash tool enables Claude to execute shell commands in a persistent bash session,\n   * allowing system operations, script execution, and command-line automation.\n   *\n   * Image results are supported.\n   */\n  bash_20241022,\n\n  /**\n   * The bash tool enables Claude to execute shell commands in a persistent bash session,\n   * allowing system operations, script execution, and command-line automation.\n   *\n   * Image results are supported.\n   */\n  bash_20250124,\n\n  /**\n   * Claude can analyze data, create visualizations, perform complex calculations,\n   * run system commands, create and edit files, and process uploaded files directly within\n   * the API conversation.\n   *\n   * The code execution tool allows Claude to run Bash commands and manipulate files,\n   * including writing code, in a secure, sandboxed environment.\n   */\n  codeExecution_20250522,\n\n  /**\n   * Claude can analyze data, create visualizations, perform complex calculations,\n   * run system commands, create and edit files, and process uploaded files directly within\n   * the API conversation.\n   *\n   * The code execution tool allows Claude to run both Python and Bash commands and manipulate files,\n   * including writing code, in a secure, sandboxed environment.\n   *\n   * This is the latest version with enhanced Bash support and file operations.\n   */\n  codeExecution_20250825,\n\n  /**\n   * Claude can analyze data, create visualizations, perform complex calculations,\n   * run system commands, create and edit files, and process uploaded files directly within\n   * the API conversation.\n   *\n   * The code execution tool allows Claude to run both Python and Bash commands and manipulate files,\n   * including writing code, in a secure, sandboxed environment.\n   *\n   * This is the recommended version. Does not require a beta header.\n   *\n   * Supported models: Claude Opus 4.6, Sonnet 4.6, Sonnet 4.5, Opus 4.5\n   */\n  codeExecution_20260120,\n\n  /**\n   * Claude can interact with computer environments through the computer use tool, which\n   * provides screenshot capabilities and mouse/keyboard control for autonomous desktop interaction.\n   *\n   * Image results are supported.\n   *\n   * @param displayWidthPx - The width of the display being controlled by the model in pixels.\n   * @param displayHeightPx - The height of the display being controlled by the model in pixels.\n   * @param displayNumber - The display number to control (only relevant for X11 environments). If specified, the tool will be provided a display number in the tool definition.\n   */\n  computer_20241022,\n\n  /**\n   * Claude can interact with computer environments through the computer use tool, which\n   * provides screenshot capabilities and mouse/keyboard control for autonomous desktop interaction.\n   *\n   * Image results are supported.\n   *\n   * @param displayWidthPx - The width of the display being controlled by the model in pixels.\n   * @param displayHeightPx - The height of the display being controlled by the model in pixels.\n   * @param displayNumber - The display number to control (only relevant for X11 environments). If specified, the tool will be provided a display number in the tool definition.\n   */\n  computer_20250124,\n\n  /**\n   * Claude can interact with computer environments through the computer use tool, which\n   * provides screenshot capabilities and mouse/keyboard control for autonomous desktop interaction.\n   *\n   * This version adds the zoom action for detailed screen region inspection.\n   *\n   * Image results are supported.\n   *\n   * Supported models: Claude Opus 4.5\n   *\n   * @param displayWidthPx - The width of the display being controlled by the model in pixels.\n   * @param displayHeightPx - The height of the display being controlled by the model in pixels.\n   * @param displayNumber - The display number to control (only relevant for X11 environments). If specified, the tool will be provided a display number in the tool definition.\n   * @param enableZoom - Enable zoom action. Set to true to allow Claude to zoom into specific screen regions. Default: false.\n   */\n  computer_20251124,\n\n  /**\n   * The memory tool enables Claude to store and retrieve information across conversations through a memory file directory.\n   * Claude can create, read, update, and delete files that persist between sessions,\n   * allowing it to build knowledge over time without keeping everything in the context window.\n   * The memory tool operates client-side—you control where and how the data is stored through your own infrastructure.\n   *\n   * Supported models: Claude Sonnet 4.5, Claude Sonnet 4, Claude Opus 4.1, Claude Opus 4.\n   */\n  memory_20250818,\n\n  /**\n   * Claude can use an Anthropic-defined text editor tool to view and modify text files,\n   * helping you debug, fix, and improve your code or other text documents. This allows Claude\n   * to directly interact with your files, providing hands-on assistance rather than just suggesting changes.\n   *\n   * Supported models: Claude Sonnet 3.5\n   */\n  textEditor_20241022,\n\n  /**\n   * Claude can use an Anthropic-defined text editor tool to view and modify text files,\n   * helping you debug, fix, and improve your code or other text documents. This allows Claude\n   * to directly interact with your files, providing hands-on assistance rather than just suggesting changes.\n   *\n   * Supported models: Claude Sonnet 3.7\n   */\n  textEditor_20250124,\n\n  /**\n   * Claude can use an Anthropic-defined text editor tool to view and modify text files,\n   * helping you debug, fix, and improve your code or other text documents. This allows Claude\n   * to directly interact with your files, providing hands-on assistance rather than just suggesting changes.\n   *\n   * Note: This version does not support the \"undo_edit\" command.\n   *\n   * @deprecated Use textEditor_20250728 instead\n   */\n  textEditor_20250429,\n\n  /**\n   * Claude can use an Anthropic-defined text editor tool to view and modify text files,\n   * helping you debug, fix, and improve your code or other text documents. This allows Claude\n   * to directly interact with your files, providing hands-on assistance rather than just suggesting changes.\n   *\n   * Note: This version does not support the \"undo_edit\" command and adds optional max_characters parameter.\n   *\n   * Supported models: Claude Sonnet 4, Opus 4, and Opus 4.1\n   *\n   * @param maxCharacters - Optional maximum number of characters to view in the file\n   */\n  textEditor_20250728,\n\n  /**\n   * Creates a web fetch tool that gives Claude direct access to real-time web content.\n   *\n   * @param maxUses - The max_uses parameter limits the number of web fetches performed\n   * @param allowedDomains - Only fetch from these domains\n   * @param blockedDomains - Never fetch from these domains\n   * @param citations - Unlike web search where citations are always enabled, citations are optional for web fetch. Set \"citations\": {\"enabled\": true} to enable Claude to cite specific passages from fetched documents.\n   * @param maxContentTokens - The max_content_tokens parameter limits the amount of content that will be included in the context.\n   */\n  webFetch_20250910,\n\n  /**\n   * Creates a web fetch tool that gives Claude direct access to real-time web content.\n   *\n   * @param maxUses - The max_uses parameter limits the number of web fetches performed\n   * @param allowedDomains - Only fetch from these domains\n   * @param blockedDomains - Never fetch from these domains\n   * @param citations - Unlike web search where citations are always enabled, citations are optional for web fetch. Set \"citations\": {\"enabled\": true} to enable Claude to cite specific passages from fetched documents.\n   * @param maxContentTokens - The max_content_tokens parameter limits the amount of content that will be included in the context.\n   */\n  webFetch_20260209,\n\n  /**\n   * Creates a web search tool that gives Claude direct access to real-time web content.\n   *\n   * @param maxUses - Maximum number of web searches Claude can perform during the conversation.\n   * @param allowedDomains - Optional list of domains that Claude is allowed to search.\n   * @param blockedDomains - Optional list of domains that Claude should avoid when searching.\n   * @param userLocation - Optional user location information to provide geographically relevant search results.\n   */\n  webSearch_20250305,\n\n  /**\n   * Creates a web search tool that gives Claude direct access to real-time web content.\n   *\n   * @param maxUses - Maximum number of web searches Claude can perform during the conversation.\n   * @param allowedDomains - Optional list of domains that Claude is allowed to search.\n   * @param blockedDomains - Optional list of domains that Claude should avoid when searching.\n   * @param userLocation - Optional user location information to provide geographically relevant search results.\n   */\n  webSearch_20260209,\n\n  /**\n   * Creates a tool search tool that uses regex patterns to find tools.\n   *\n   * The tool search tool enables Claude to work with hundreds or thousands of tools\n   * by dynamically discovering and loading them on-demand. Instead of loading all\n   * tool definitions into the context window upfront, Claude searches your tool\n   * catalog and loads only the tools it needs.\n   *\n   * Use `providerOptions: { anthropic: { deferLoading: true } }` on other tools\n   * to mark them for deferred loading.\n   *\n   * Supported models: Claude Opus 4.5, Claude Sonnet 4.5\n   */\n  toolSearchRegex_20251119,\n\n  /**\n   * Creates a tool search tool that uses BM25 (natural language) to find tools.\n   *\n   * The tool search tool enables Claude to work with hundreds or thousands of tools\n   * by dynamically discovering and loading them on-demand. Instead of loading all\n   * tool definitions into the context window upfront, Claude searches your tool\n   * catalog and loads only the tools it needs.\n   *\n   * Use `providerOptions: { anthropic: { deferLoading: true } }` on other tools\n   * to mark them for deferred loading.\n   *\n   * Supported models: Claude Opus 4.5, Claude Sonnet 4.5\n   */\n  toolSearchBm25_20251119,\n};\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n  extendStatics = Object.setPrototypeOf ||\n      ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n      function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n  return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n  if (typeof b !== \"function\" && b !== null)\n      throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n  extendStatics(d, b);\n  function __() { this.constructor = d; }\n  d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n  __assign = Object.assign || function __assign(t) {\n      for (var s, i = 1, n = arguments.length; i < n; i++) {\n          s = arguments[i];\n          for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n      }\n      return t;\n  }\n  return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n  var t = {};\n  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n      t[p] = s[p];\n  if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n      for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n          if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n              t[p[i]] = s[p[i]];\n      }\n  return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n  if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n  return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n  return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n  function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n  var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n  var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n  var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n  var _, done = false;\n  for (var i = decorators.length - 1; i >= 0; i--) {\n      var context = {};\n      for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n      for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n      context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n      var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n      if (kind === \"accessor\") {\n          if (result === void 0) continue;\n          if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n          if (_ = accept(result.get)) descriptor.get = _;\n          if (_ = accept(result.set)) descriptor.set = _;\n          if (_ = accept(result.init)) initializers.unshift(_);\n      }\n      else if (_ = accept(result)) {\n          if (kind === \"field\") initializers.unshift(_);\n          else descriptor[key] = _;\n      }\n  }\n  if (target) Object.defineProperty(target, contextIn.name, descriptor);\n  done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n  var useValue = arguments.length > 2;\n  for (var i = 0; i < initializers.length; i++) {\n      value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n  }\n  return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n  return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n  if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n  return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n  if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n  return new (P || (P = Promise))(function (resolve, reject) {\n      function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n      function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n      function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n      step((generator = generator.apply(thisArg, _arguments || [])).next());\n  });\n}\n\nexport function __generator(thisArg, body) {\n  var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n  return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n  function verb(n) { return function (v) { return step([n, v]); }; }\n  function step(op) {\n      if (f) throw new TypeError(\"Generator is already executing.\");\n      while (g && (g = 0, op[0] && (_ = 0)), _) try {\n          if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n          if (y = 0, t) op = [op[0] & 2, t.value];\n          switch (op[0]) {\n              case 0: case 1: t = op; break;\n              case 4: _.label++; return { value: op[1], done: false };\n              case 5: _.label++; y = op[1]; op = [0]; continue;\n              case 7: op = _.ops.pop(); _.trys.pop(); continue;\n              default:\n                  if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n                  if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n                  if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n                  if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n                  if (t[2]) _.ops.pop();\n                  _.trys.pop(); continue;\n          }\n          op = body.call(thisArg, _);\n      } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n      if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n  }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  var desc = Object.getOwnPropertyDescriptor(m, k);\n  if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n      desc = { enumerable: true, get: function() { return m[k]; } };\n  }\n  Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n  if (k2 === undefined) k2 = k;\n  o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n  for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n  var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n  if (m) return m.call(o);\n  if (o && typeof o.length === \"number\") return {\n      next: function () {\n          if (o && i >= o.length) o = void 0;\n          return { value: o && o[i++], done: !o };\n      }\n  };\n  throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n  var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n  if (!m) return o;\n  var i = m.call(o), r, ar = [], e;\n  try {\n      while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n  }\n  catch (error) { e = { error: error }; }\n  finally {\n      try {\n          if (r && !r.done && (m = i[\"return\"])) m.call(i);\n      }\n      finally { if (e) throw e.error; }\n  }\n  return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n  for (var ar = [], i = 0; i < arguments.length; i++)\n      ar = ar.concat(__read(arguments[i]));\n  return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n  for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n  for (var r = Array(s), k = 0, i = 0; i < il; i++)\n      for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n          r[k] = a[j];\n  return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n      if (ar || !(i in from)) {\n          if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n          ar[i] = from[i];\n      }\n  }\n  return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n  return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var g = generator.apply(thisArg, _arguments || []), i, q = [];\n  return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n  function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n  function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n  function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n  function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n  function fulfill(value) { resume(\"next\", value); }\n  function reject(value) { resume(\"throw\", value); }\n  function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n  var i, p;\n  return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n  function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n  if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n  var m = o[Symbol.asyncIterator], i;\n  return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n  function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n  function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n  if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n  return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n  Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n  o[\"default\"] = v;\n};\n\nvar ownKeys = function(o) {\n  ownKeys = Object.getOwnPropertyNames || function (o) {\n    var ar = [];\n    for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;\n    return ar;\n  };\n  return ownKeys(o);\n};\n\nexport function __importStar(mod) {\n  if (mod && mod.__esModule) return mod;\n  var result = {};\n  if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== \"default\") __createBinding(result, mod, k[i]);\n  __setModuleDefault(result, mod);\n  return result;\n}\n\nexport function __importDefault(mod) {\n  return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n  return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n  if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n  if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n  if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n  return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n  if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n  return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n  if (value !== null && value !== void 0) {\n    if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n    var dispose, inner;\n    if (async) {\n      if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n      dispose = value[Symbol.asyncDispose];\n    }\n    if (dispose === void 0) {\n      if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n      dispose = value[Symbol.dispose];\n      if (async) inner = dispose;\n    }\n    if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n    if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n    env.stack.push({ value: value, dispose: dispose, async: async });\n  }\n  else if (async) {\n    env.stack.push({ async: true });\n  }\n  return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n  var e = new Error(message);\n  return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n  function fail(e) {\n    env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n    env.hasError = true;\n  }\n  var r, s = 0;\n  function next() {\n    while (r = env.stack.pop()) {\n      try {\n        if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n        if (r.dispose) {\n          var result = r.dispose.call(r.value);\n          if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n        }\n        else s |= 1;\n      }\n      catch (e) {\n        fail(e);\n      }\n    }\n    if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n    if (env.hasError) throw env.error;\n  }\n  return next();\n}\n\nexport function __rewriteRelativeImportExtension(path, preserveJsx) {\n  if (typeof path === \"string\" && /^\\.\\.?\\//.test(path)) {\n      return path.replace(/\\.(tsx)$|((?:\\.d)?)((?:\\.[^./]+?)?)\\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {\n          return tsx ? preserveJsx ? \".jsx\" : \".js\" : d && (!ext || !cm) ? m : (d + ext + \".\" + cm.toLowerCase() + \"js\");\n      });\n  }\n  return path;\n}\n\nexport default {\n  __extends,\n  __assign,\n  __rest,\n  __decorate,\n  __param,\n  __esDecorate,\n  __runInitializers,\n  __propKey,\n  __setFunctionName,\n  __metadata,\n  __awaiter,\n  __generator,\n  __createBinding,\n  __exportStar,\n  __values,\n  __read,\n  __spread,\n  __spreadArrays,\n  __spreadArray,\n  __await,\n  __asyncGenerator,\n  __asyncDelegator,\n  __asyncValues,\n  __makeTemplateObject,\n  __importStar,\n  __importDefault,\n  __classPrivateFieldGet,\n  __classPrivateFieldSet,\n  __classPrivateFieldIn,\n  __addDisposableResource,\n  __disposeResources,\n  __rewriteRelativeImportExtension,\n};\n","import { isArrayBuffer } from \"@smithy/is-array-buffer\";\nimport { Buffer } from \"buffer\";\nexport const fromArrayBuffer = (input, offset = 0, length = input.byteLength - offset) => {\n    if (!isArrayBuffer(input)) {\n        throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n    }\n    return Buffer.from(input, offset, length);\n};\nexport const fromString = (input, encoding) => {\n    if (typeof input !== \"string\") {\n        throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n    }\n    return encoding ? Buffer.from(input, encoding) : Buffer.from(input);\n};\n","import { fromString } from \"@smithy/util-buffer-from\";\nexport const fromUtf8 = (input) => {\n    const buf = fromString(input, \"utf8\");\n    return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n};\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@smithy/util-utf8\";\n\n// Quick polyfill\nconst fromUtf8 =\n  typeof Buffer !== \"undefined\" && Buffer.from\n    ? (input: string) => Buffer.from(input, \"utf8\")\n    : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n  // Already a Uint8, do nothing\n  if (data instanceof Uint8Array) return data;\n\n  if (typeof data === \"string\") {\n    return fromUtf8(data);\n  }\n\n  if (ArrayBuffer.isView(data)) {\n    return new Uint8Array(\n      data.buffer,\n      data.byteOffset,\n      data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n    );\n  }\n\n  return new Uint8Array(data);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array<number>): Uint32Array {\n  if (!Uint32Array.from) {\n    const return_array = new Uint32Array(a_lookUpTable.length)\n    let a_index = 0\n    while (a_index < a_lookUpTable.length) {\n      return_array[a_index] = a_lookUpTable[a_index]\n      a_index += 1\n    }\n    return return_array\n  }\n  return Uint32Array.from(a_lookUpTable)\n}\n","import {uint32ArrayFrom} from \"@aws-crypto/util\";\n\nexport function crc32(data: Uint8Array): number {\n  return new Crc32().update(data).digest();\n}\n\nexport class Crc32 {\n  private checksum = 0xffffffff;\n\n  update(data: Uint8Array): this {\n    for (const byte of data) {\n      this.checksum =\n        (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n    }\n\n    return this;\n  }\n\n  digest(): number {\n    return (this.checksum ^ 0xffffffff) >>> 0;\n  }\n}\n\n// prettier-ignore\nconst a_lookUpTable = [\n  0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n  0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n  0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n  0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n  0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n  0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n  0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n  0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n  0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n  0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n  0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n  0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n  0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n  0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n  0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n  0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n  0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n  0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n  0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n  0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n  0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n  0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n  0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n  0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n  0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n  0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n  0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n  0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n  0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n  0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n  0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n  0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n  0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n  0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n  0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n  0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n  0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n  0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n  0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n  0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n  0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n  0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n  0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n  0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n  0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n  0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n  0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n  0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n  0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n  0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n  0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n  0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n  0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n  0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n  0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n  0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n  0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n  0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n  0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n  0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n  0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n  0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n  0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n  0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nconst lookupTable: Uint32Array = uint32ArrayFrom(a_lookUpTable)\nexport { AwsCrc32 } from \"./aws_crc32\";\n","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n    let encodedByte = i.toString(16).toLowerCase();\n    if (encodedByte.length === 1) {\n        encodedByte = `0${encodedByte}`;\n    }\n    SHORT_TO_HEX[i] = encodedByte;\n    HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n    if (encoded.length % 2 !== 0) {\n        throw new Error(\"Hex encoded strings must have an even number length\");\n    }\n    const out = new Uint8Array(encoded.length / 2);\n    for (let i = 0; i < encoded.length; i += 2) {\n        const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n        if (encodedByte in HEX_TO_SHORT) {\n            out[i / 2] = HEX_TO_SHORT[encodedByte];\n        }\n        else {\n            throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n        }\n    }\n    return out;\n}\nexport function toHex(bytes) {\n    let out = \"\";\n    for (let i = 0; i < bytes.byteLength; i++) {\n        out += SHORT_TO_HEX[bytes[i]];\n    }\n    return out;\n}\n","import { toHex } from \"@smithy/util-hex-encoding\";\nexport class Int64 {\n    bytes;\n    constructor(bytes) {\n        this.bytes = bytes;\n        if (bytes.byteLength !== 8) {\n            throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n        }\n    }\n    static fromNumber(number) {\n        if (number > 9_223_372_036_854_775_807 || number < -9_223_372_036_854_775_808) {\n            throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n        }\n        const bytes = new Uint8Array(8);\n        for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n            bytes[i] = remaining;\n        }\n        if (number < 0) {\n            negate(bytes);\n        }\n        return new Int64(bytes);\n    }\n    valueOf() {\n        const bytes = this.bytes.slice(0);\n        const negative = bytes[0] & 0b10000000;\n        if (negative) {\n            negate(bytes);\n        }\n        return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n    }\n    toString() {\n        return String(this.valueOf());\n    }\n}\nfunction negate(bytes) {\n    for (let i = 0; i < 8; i++) {\n        bytes[i] ^= 0xff;\n    }\n    for (let i = 7; i > -1; i--) {\n        bytes[i]++;\n        if (bytes[i] !== 0)\n            break;\n    }\n}\n","import { fromHex, toHex } from \"@smithy/util-hex-encoding\";\nimport { Int64 } from \"./Int64\";\nexport class HeaderMarshaller {\n    toUtf8;\n    fromUtf8;\n    constructor(toUtf8, fromUtf8) {\n        this.toUtf8 = toUtf8;\n        this.fromUtf8 = fromUtf8;\n    }\n    format(headers) {\n        const chunks = [];\n        for (const headerName of Object.keys(headers)) {\n            const bytes = this.fromUtf8(headerName);\n            chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n        }\n        const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n        let position = 0;\n        for (const chunk of chunks) {\n            out.set(chunk, position);\n            position += chunk.byteLength;\n        }\n        return out;\n    }\n    formatHeaderValue(header) {\n        switch (header.type) {\n            case \"boolean\":\n                return Uint8Array.from([header.value ? 0 : 1]);\n            case \"byte\":\n                return Uint8Array.from([2, header.value]);\n            case \"short\":\n                const shortView = new DataView(new ArrayBuffer(3));\n                shortView.setUint8(0, 3);\n                shortView.setInt16(1, header.value, false);\n                return new Uint8Array(shortView.buffer);\n            case \"integer\":\n                const intView = new DataView(new ArrayBuffer(5));\n                intView.setUint8(0, 4);\n                intView.setInt32(1, header.value, false);\n                return new Uint8Array(intView.buffer);\n            case \"long\":\n                const longBytes = new Uint8Array(9);\n                longBytes[0] = 5;\n                longBytes.set(header.value.bytes, 1);\n                return longBytes;\n            case \"binary\":\n                const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n                binView.setUint8(0, 6);\n                binView.setUint16(1, header.value.byteLength, false);\n                const binBytes = new Uint8Array(binView.buffer);\n                binBytes.set(header.value, 3);\n                return binBytes;\n            case \"string\":\n                const utf8Bytes = this.fromUtf8(header.value);\n                const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n                strView.setUint8(0, 7);\n                strView.setUint16(1, utf8Bytes.byteLength, false);\n                const strBytes = new Uint8Array(strView.buffer);\n                strBytes.set(utf8Bytes, 3);\n                return strBytes;\n            case \"timestamp\":\n                const tsBytes = new Uint8Array(9);\n                tsBytes[0] = 8;\n                tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n                return tsBytes;\n            case \"uuid\":\n                if (!UUID_PATTERN.test(header.value)) {\n                    throw new Error(`Invalid UUID received: ${header.value}`);\n                }\n                const uuidBytes = new Uint8Array(17);\n                uuidBytes[0] = 9;\n                uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n                return uuidBytes;\n        }\n    }\n    parse(headers) {\n        const out = {};\n        let position = 0;\n        while (position < headers.byteLength) {\n            const nameLength = headers.getUint8(position++);\n            const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n            position += nameLength;\n            switch (headers.getUint8(position++)) {\n                case 0:\n                    out[name] = {\n                        type: BOOLEAN_TAG,\n                        value: true,\n                    };\n                    break;\n                case 1:\n                    out[name] = {\n                        type: BOOLEAN_TAG,\n                        value: false,\n                    };\n                    break;\n                case 2:\n                    out[name] = {\n                        type: BYTE_TAG,\n                        value: headers.getInt8(position++),\n                    };\n                    break;\n                case 3:\n                    out[name] = {\n                        type: SHORT_TAG,\n                        value: headers.getInt16(position, false),\n                    };\n                    position += 2;\n                    break;\n                case 4:\n                    out[name] = {\n                        type: INT_TAG,\n                        value: headers.getInt32(position, false),\n                    };\n                    position += 4;\n                    break;\n                case 5:\n                    out[name] = {\n                        type: LONG_TAG,\n                        value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n                    };\n                    position += 8;\n                    break;\n                case 6:\n                    const binaryLength = headers.getUint16(position, false);\n                    position += 2;\n                    out[name] = {\n                        type: BINARY_TAG,\n                        value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n                    };\n                    position += binaryLength;\n                    break;\n                case 7:\n                    const stringLength = headers.getUint16(position, false);\n                    position += 2;\n                    out[name] = {\n                        type: STRING_TAG,\n                        value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n                    };\n                    position += stringLength;\n                    break;\n                case 8:\n                    out[name] = {\n                        type: TIMESTAMP_TAG,\n                        value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n                    };\n                    position += 8;\n                    break;\n                case 9:\n                    const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n                    position += 16;\n                    out[name] = {\n                        type: UUID_TAG,\n                        value: `${toHex(uuidBytes.subarray(0, 4))}-${toHex(uuidBytes.subarray(4, 6))}-${toHex(uuidBytes.subarray(6, 8))}-${toHex(uuidBytes.subarray(8, 10))}-${toHex(uuidBytes.subarray(10))}`,\n                    };\n                    break;\n                default:\n                    throw new Error(`Unrecognized header type tag`);\n            }\n        }\n        return out;\n    }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n    HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst BOOLEAN_TAG = \"boolean\";\nconst BYTE_TAG = \"byte\";\nconst SHORT_TAG = \"short\";\nconst INT_TAG = \"integer\";\nconst LONG_TAG = \"long\";\nconst BINARY_TAG = \"binary\";\nconst STRING_TAG = \"string\";\nconst TIMESTAMP_TAG = \"timestamp\";\nconst UUID_TAG = \"uuid\";\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n","import { Crc32 } from \"@aws-crypto/crc32\";\nconst PRELUDE_MEMBER_LENGTH = 4;\nconst PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\nconst CHECKSUM_LENGTH = 4;\nconst MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\nexport function splitMessage({ byteLength, byteOffset, buffer }) {\n    if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n        throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n    }\n    const view = new DataView(buffer, byteOffset, byteLength);\n    const messageLength = view.getUint32(0, false);\n    if (byteLength !== messageLength) {\n        throw new Error(\"Reported message length does not match received message length\");\n    }\n    const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n    const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n    const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n    const checksummer = new Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n    if (expectedPreludeChecksum !== checksummer.digest()) {\n        throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`);\n    }\n    checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n    if (expectedMessageChecksum !== checksummer.digest()) {\n        throw new Error(`The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`);\n    }\n    return {\n        headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n        body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)),\n    };\n}\n","import { Crc32 } from \"@aws-crypto/crc32\";\nimport { HeaderMarshaller } from \"./HeaderMarshaller\";\nimport { splitMessage } from \"./splitMessage\";\nexport class EventStreamCodec {\n    headerMarshaller;\n    messageBuffer;\n    isEndOfStream;\n    constructor(toUtf8, fromUtf8) {\n        this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n        this.messageBuffer = [];\n        this.isEndOfStream = false;\n    }\n    feed(message) {\n        this.messageBuffer.push(this.decode(message));\n    }\n    endOfStream() {\n        this.isEndOfStream = true;\n    }\n    getMessage() {\n        const message = this.messageBuffer.pop();\n        const isEndOfStream = this.isEndOfStream;\n        return {\n            getMessage() {\n                return message;\n            },\n            isEndOfStream() {\n                return isEndOfStream;\n            },\n        };\n    }\n    getAvailableMessages() {\n        const messages = this.messageBuffer;\n        this.messageBuffer = [];\n        const isEndOfStream = this.isEndOfStream;\n        return {\n            getMessages() {\n                return messages;\n            },\n            isEndOfStream() {\n                return isEndOfStream;\n            },\n        };\n    }\n    encode({ headers: rawHeaders, body }) {\n        const headers = this.headerMarshaller.format(rawHeaders);\n        const length = headers.byteLength + body.byteLength + 16;\n        const out = new Uint8Array(length);\n        const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n        const checksum = new Crc32();\n        view.setUint32(0, length, false);\n        view.setUint32(4, headers.byteLength, false);\n        view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n        out.set(headers, 12);\n        out.set(body, headers.byteLength + 12);\n        view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n        return out;\n    }\n    decode(message) {\n        const { headers, body } = splitMessage(message);\n        return { headers: this.headerMarshaller.parse(headers), body };\n    }\n    formatHeaders(rawHeaders) {\n        return this.headerMarshaller.format(rawHeaders);\n    }\n}\n","export const isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n    Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n","import { isArrayBuffer } from \"@smithy/is-array-buffer\";\nimport { Buffer } from \"buffer\";\nexport const fromArrayBuffer = (input, offset = 0, length = input.byteLength - offset) => {\n    if (!isArrayBuffer(input)) {\n        throw new TypeError(`The \"input\" argument must be ArrayBuffer. Received type ${typeof input} (${input})`);\n    }\n    return Buffer.from(input, offset, length);\n};\nexport const fromString = (input, encoding) => {\n    if (typeof input !== \"string\") {\n        throw new TypeError(`The \"input\" argument must be of type string. Received type ${typeof input} (${input})`);\n    }\n    return encoding ? Buffer.from(input, encoding) : Buffer.from(input);\n};\n","import { fromString } from \"@smithy/util-buffer-from\";\nexport const fromUtf8 = (input) => {\n    const buf = fromString(input, \"utf8\");\n    return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n};\n","import { fromArrayBuffer } from \"@smithy/util-buffer-from\";\nexport const toUtf8 = (input) => {\n    if (typeof input === \"string\") {\n        return input;\n    }\n    if (typeof input !== \"object\" || typeof input.byteOffset !== \"number\" || typeof input.byteLength !== \"number\") {\n        throw new Error(\"@smithy/util-utf8: toUtf8 encoder function only accepts string | Uint8Array.\");\n    }\n    return fromArrayBuffer(input.buffer, input.byteOffset, input.byteLength).toString(\"utf8\");\n};\n","/**\n * @license MIT <https://opensource.org/licenses/MIT>\n * @copyright Michael Hart 2024\n */\nconst encoder = new TextEncoder();\nconst HOST_SERVICES = {\n  appstream2: 'appstream',\n  cloudhsmv2: 'cloudhsm',\n  email: 'ses',\n  marketplace: 'aws-marketplace',\n  mobile: 'AWSMobileHubService',\n  pinpoint: 'mobiletargeting',\n  queue: 'sqs',\n  'git-codecommit': 'codecommit',\n  'mturk-requester-sandbox': 'mturk-requester',\n  'personalize-runtime': 'personalize',\n};\nconst UNSIGNABLE_HEADERS = new Set([\n  'authorization',\n  'content-type',\n  'content-length',\n  'user-agent',\n  'presigned-expires',\n  'expect',\n  'x-amzn-trace-id',\n  'range',\n  'connection',\n]);\nclass AwsClient {\n  constructor({ accessKeyId, secretAccessKey, sessionToken, service, region, cache, retries, initRetryMs }) {\n    if (accessKeyId == null) throw new TypeError('accessKeyId is a required option')\n    if (secretAccessKey == null) throw new TypeError('secretAccessKey is a required option')\n    this.accessKeyId = accessKeyId;\n    this.secretAccessKey = secretAccessKey;\n    this.sessionToken = sessionToken;\n    this.service = service;\n    this.region = region;\n    this.cache = cache || new Map();\n    this.retries = retries != null ? retries : 10;\n    this.initRetryMs = initRetryMs || 50;\n  }\n  async sign(input, init) {\n    if (input instanceof Request) {\n      const { method, url, headers, body } = input;\n      init = Object.assign({ method, url, headers }, init);\n      if (init.body == null && headers.has('Content-Type')) {\n        init.body = body != null && headers.has('X-Amz-Content-Sha256') ? body : await input.clone().arrayBuffer();\n      }\n      input = url;\n    }\n    const signer = new AwsV4Signer(Object.assign({ url: input.toString() }, init, this, init && init.aws));\n    const signed = Object.assign({}, init, await signer.sign());\n    delete signed.aws;\n    try {\n      return new Request(signed.url.toString(), signed)\n    } catch (e) {\n      if (e instanceof TypeError) {\n        return new Request(signed.url.toString(), Object.assign({ duplex: 'half' }, signed))\n      }\n      throw e\n    }\n  }\n  async fetch(input, init) {\n    for (let i = 0; i <= this.retries; i++) {\n      const fetched = fetch(await this.sign(input, init));\n      if (i === this.retries) {\n        return fetched\n      }\n      const res = await fetched;\n      if (res.status < 500 && res.status !== 429) {\n        return res\n      }\n      await new Promise(resolve => setTimeout(resolve, Math.random() * this.initRetryMs * Math.pow(2, i)));\n    }\n    throw new Error('An unknown error occurred, ensure retries is not negative')\n  }\n}\nclass AwsV4Signer {\n  constructor({ method, url, headers, body, accessKeyId, secretAccessKey, sessionToken, service, region, cache, datetime, signQuery, appendSessionToken, allHeaders, singleEncode }) {\n    if (url == null) throw new TypeError('url is a required option')\n    if (accessKeyId == null) throw new TypeError('accessKeyId is a required option')\n    if (secretAccessKey == null) throw new TypeError('secretAccessKey is a required option')\n    this.method = method || (body ? 'POST' : 'GET');\n    this.url = new URL(url);\n    this.headers = new Headers(headers || {});\n    this.body = body;\n    this.accessKeyId = accessKeyId;\n    this.secretAccessKey = secretAccessKey;\n    this.sessionToken = sessionToken;\n    let guessedService, guessedRegion;\n    if (!service || !region) {\n[guessedService, guessedRegion] = guessServiceRegion(this.url, this.headers);\n    }\n    this.service = service || guessedService || '';\n    this.region = region || guessedRegion || 'us-east-1';\n    this.cache = cache || new Map();\n    this.datetime = datetime || new Date().toISOString().replace(/[:-]|\\.\\d{3}/g, '');\n    this.signQuery = signQuery;\n    this.appendSessionToken = appendSessionToken || this.service === 'iotdevicegateway';\n    this.headers.delete('Host');\n    if (this.service === 's3' && !this.signQuery && !this.headers.has('X-Amz-Content-Sha256')) {\n      this.headers.set('X-Amz-Content-Sha256', 'UNSIGNED-PAYLOAD');\n    }\n    const params = this.signQuery ? this.url.searchParams : this.headers;\n    params.set('X-Amz-Date', this.datetime);\n    if (this.sessionToken && !this.appendSessionToken) {\n      params.set('X-Amz-Security-Token', this.sessionToken);\n    }\n    this.signableHeaders = ['host', ...this.headers.keys()]\n      .filter(header => allHeaders || !UNSIGNABLE_HEADERS.has(header))\n      .sort();\n    this.signedHeaders = this.signableHeaders.join(';');\n    this.canonicalHeaders = this.signableHeaders\n      .map(header => header + ':' + (header === 'host' ? this.url.host : (this.headers.get(header) || '').replace(/\\s+/g, ' ')))\n      .join('\\n');\n    this.credentialString = [this.datetime.slice(0, 8), this.region, this.service, 'aws4_request'].join('/');\n    if (this.signQuery) {\n      if (this.service === 's3' && !params.has('X-Amz-Expires')) {\n        params.set('X-Amz-Expires', '86400');\n      }\n      params.set('X-Amz-Algorithm', 'AWS4-HMAC-SHA256');\n      params.set('X-Amz-Credential', this.accessKeyId + '/' + this.credentialString);\n      params.set('X-Amz-SignedHeaders', this.signedHeaders);\n    }\n    if (this.service === 's3') {\n      try {\n        this.encodedPath = decodeURIComponent(this.url.pathname.replace(/\\+/g, ' '));\n      } catch (e) {\n        this.encodedPath = this.url.pathname;\n      }\n    } else {\n      this.encodedPath = this.url.pathname.replace(/\\/+/g, '/');\n    }\n    if (!singleEncode) {\n      this.encodedPath = encodeURIComponent(this.encodedPath).replace(/%2F/g, '/');\n    }\n    this.encodedPath = encodeRfc3986(this.encodedPath);\n    const seenKeys = new Set();\n    this.encodedSearch = [...this.url.searchParams]\n      .filter(([k]) => {\n        if (!k) return false\n        if (this.service === 's3') {\n          if (seenKeys.has(k)) return false\n          seenKeys.add(k);\n        }\n        return true\n      })\n      .map(pair => pair.map(p => encodeRfc3986(encodeURIComponent(p))))\n      .sort(([k1, v1], [k2, v2]) => k1 < k2 ? -1 : k1 > k2 ? 1 : v1 < v2 ? -1 : v1 > v2 ? 1 : 0)\n      .map(pair => pair.join('='))\n      .join('&');\n  }\n  async sign() {\n    if (this.signQuery) {\n      this.url.searchParams.set('X-Amz-Signature', await this.signature());\n      if (this.sessionToken && this.appendSessionToken) {\n        this.url.searchParams.set('X-Amz-Security-Token', this.sessionToken);\n      }\n    } else {\n      this.headers.set('Authorization', await this.authHeader());\n    }\n    return {\n      method: this.method,\n      url: this.url,\n      headers: this.headers,\n      body: this.body,\n    }\n  }\n  async authHeader() {\n    return [\n      'AWS4-HMAC-SHA256 Credential=' + this.accessKeyId + '/' + this.credentialString,\n      'SignedHeaders=' + this.signedHeaders,\n      'Signature=' + (await this.signature()),\n    ].join(', ')\n  }\n  async signature() {\n    const date = this.datetime.slice(0, 8);\n    const cacheKey = [this.secretAccessKey, date, this.region, this.service].join();\n    let kCredentials = this.cache.get(cacheKey);\n    if (!kCredentials) {\n      const kDate = await hmac('AWS4' + this.secretAccessKey, date);\n      const kRegion = await hmac(kDate, this.region);\n      const kService = await hmac(kRegion, this.service);\n      kCredentials = await hmac(kService, 'aws4_request');\n      this.cache.set(cacheKey, kCredentials);\n    }\n    return buf2hex(await hmac(kCredentials, await this.stringToSign()))\n  }\n  async stringToSign() {\n    return [\n      'AWS4-HMAC-SHA256',\n      this.datetime,\n      this.credentialString,\n      buf2hex(await hash(await this.canonicalString())),\n    ].join('\\n')\n  }\n  async canonicalString() {\n    return [\n      this.method.toUpperCase(),\n      this.encodedPath,\n      this.encodedSearch,\n      this.canonicalHeaders + '\\n',\n      this.signedHeaders,\n      await this.hexBodyHash(),\n    ].join('\\n')\n  }\n  async hexBodyHash() {\n    let hashHeader = this.headers.get('X-Amz-Content-Sha256') || (this.service === 's3' && this.signQuery ? 'UNSIGNED-PAYLOAD' : null);\n    if (hashHeader == null) {\n      if (this.body && typeof this.body !== 'string' && !('byteLength' in this.body)) {\n        throw new Error('body must be a string, ArrayBuffer or ArrayBufferView, unless you include the X-Amz-Content-Sha256 header')\n      }\n      hashHeader = buf2hex(await hash(this.body || ''));\n    }\n    return hashHeader\n  }\n}\nasync function hmac(key, string) {\n  const cryptoKey = await crypto.subtle.importKey(\n    'raw',\n    typeof key === 'string' ? encoder.encode(key) : key,\n    { name: 'HMAC', hash: { name: 'SHA-256' } },\n    false,\n    ['sign'],\n  );\n  return crypto.subtle.sign('HMAC', cryptoKey, encoder.encode(string))\n}\nasync function hash(content) {\n  return crypto.subtle.digest('SHA-256', typeof content === 'string' ? encoder.encode(content) : content)\n}\nconst HEX_CHARS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];\nfunction buf2hex(arrayBuffer) {\n  const buffer = new Uint8Array(arrayBuffer);\n  let out = '';\n  for (let idx = 0; idx < buffer.length; idx++) {\n    const n = buffer[idx];\n    out += HEX_CHARS[(n >>> 4) & 0xF];\n    out += HEX_CHARS[n & 0xF];\n  }\n  return out\n}\nfunction encodeRfc3986(urlEncodedStr) {\n  return urlEncodedStr.replace(/[!'()*]/g, c => '%' + c.charCodeAt(0).toString(16).toUpperCase())\n}\nfunction guessServiceRegion(url, headers) {\n  const { hostname, pathname } = url;\n  if (hostname.endsWith('.on.aws')) {\n    const match = hostname.match(/^[^.]{1,63}\\.lambda-url\\.([^.]{1,63})\\.on\\.aws$/);\n    return match != null ? ['lambda', match[1] || ''] : ['', '']\n  }\n  if (hostname.endsWith('.r2.cloudflarestorage.com')) {\n    return ['s3', 'auto']\n  }\n  if (hostname.endsWith('.backblazeb2.com')) {\n    const match = hostname.match(/^(?:[^.]{1,63}\\.)?s3\\.([^.]{1,63})\\.backblazeb2\\.com$/);\n    return match != null ? ['s3', match[1] || ''] : ['', '']\n  }\n  const match = hostname.replace('dualstack.', '').match(/([^.]{1,63})\\.(?:([^.]{0,63})\\.)?amazonaws\\.com(?:\\.cn)?$/);\n  let service = (match && match[1]) || '';\n  let region = match && match[2];\n  if (region === 'us-gov') {\n    region = 'us-gov-west-1';\n  } else if (region === 's3' || region === 's3-accelerate') {\n    region = 'us-east-1';\n    service = 's3';\n  } else if (service === 'iot') {\n    if (hostname.startsWith('iot.')) {\n      service = 'execute-api';\n    } else if (hostname.startsWith('data.jobs.iot.')) {\n      service = 'iot-jobs-data';\n    } else {\n      service = pathname === '/mqtt' ? 'iotdevicegateway' : 'iotdata';\n    }\n  } else if (service === 'autoscaling') {\n    const targetPrefix = (headers.get('X-Amz-Target') || '').split('.')[0];\n    if (targetPrefix === 'AnyScaleFrontendService') {\n      service = 'application-autoscaling';\n    } else if (targetPrefix === 'AnyScaleScalingPlannerFrontendService') {\n      service = 'autoscaling-plans';\n    }\n  } else if (region == null && service.startsWith('s3-')) {\n    region = service.slice(3).replace(/^fips-|^external-1/, '');\n    service = 's3';\n  } else if (service.endsWith('-fips')) {\n    service = service.slice(0, -5);\n  } else if (region && /-\\d$/.test(service) && !/-\\d$/.test(region)) {\n[service, region] = [region, service];\n  }\n  return [HOST_SERVICES[service] || service, region || '']\n}\n\nexport { AwsClient, AwsV4Signer };\n","import type { JSONObject } from '@ai-sdk/provider';\n\nexport interface BedrockConverseInput {\n  system?: BedrockSystemMessages;\n  messages: BedrockMessages;\n  toolConfig?: BedrockToolConfiguration;\n  inferenceConfig?: {\n    maxOutputTokens?: number;\n    temperature?: number;\n    topP?: number;\n    topK?: number;\n    stopSequences?: string[];\n  };\n  additionalModelRequestFields?: Record<string, unknown>;\n  additionalModelResponseFieldPaths?: string[];\n  serviceTier?: {\n    type: string;\n  };\n  guardrailConfig?:\n    | BedrockGuardrailConfiguration\n    | BedrockGuardrailStreamConfiguration\n    | undefined;\n}\n\nexport type BedrockSystemMessages = Array<BedrockSystemContentBlock>;\n\nexport type BedrockMessages = Array<\n  BedrockAssistantMessage | BedrockUserMessage\n>;\n\nexport interface BedrockAssistantMessage {\n  role: 'assistant';\n  content: Array<BedrockContentBlock>;\n}\n\nexport interface BedrockUserMessage {\n  role: 'user';\n  content: Array<BedrockContentBlock>;\n}\n\n/**\n * Cache TTL options for Bedrock prompt caching.\n * @see https://docs.aws.amazon.com/bedrock/latest/userguide/prompt-caching.html\n *\n * - '5m': 5-minute TTL (default, supported by all models)\n * - '1h': 1-hour TTL (supported by Claude Opus 4.5, Claude Haiku 4.5, Claude Sonnet 4.5)\n */\nexport type BedrockCacheTTL = '5m' | '1h';\n\nexport type BedrockCachePoint = {\n  cachePoint: { type: 'default'; ttl?: BedrockCacheTTL };\n};\n\n/**\n * Creates a cache point with an optional TTL.\n * @param ttl - Cache TTL ('5m' or '1h'). If not provided, uses the default 5-minute TTL.\n */\nexport function createBedrockCachePoint(\n  ttl?: BedrockCacheTTL,\n): BedrockCachePoint {\n  return {\n    cachePoint: { type: 'default', ttl },\n  };\n}\n\nexport type BedrockSystemContentBlock = { text: string } | BedrockCachePoint;\n\nexport interface BedrockGuardrailConfiguration {\n  guardrails?: Array<{\n    name: string;\n    description?: string;\n    parameters?: Record<string, unknown>;\n  }>;\n}\n\nexport type BedrockGuardrailStreamConfiguration = BedrockGuardrailConfiguration;\n\nexport interface BedrockToolInputSchema {\n  json: Record<string, unknown>;\n}\n\nexport interface BedrockTool {\n  toolSpec: {\n    name: string;\n    description?: string;\n    strict?: boolean;\n    inputSchema: { json: JSONObject };\n  };\n}\n\nexport interface BedrockToolConfiguration {\n  tools?: Array<BedrockTool | BedrockCachePoint>;\n  toolChoice?:\n    | { tool: { name: string } }\n    | { auto: {} }\n    | { any: {} }\n    | undefined;\n}\n\nexport const BEDROCK_STOP_REASONS = [\n  'stop',\n  'stop_sequence',\n  'end_turn',\n  'length',\n  'max_tokens',\n  'content-filter',\n  'content_filtered',\n  'guardrail_intervened',\n  'tool-calls',\n  'tool_use',\n] as const;\n\nexport type BedrockStopReason = (typeof BEDROCK_STOP_REASONS)[number];\n\n/**\n * @see https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_ImageBlock.html\n */\nexport const BEDROCK_IMAGE_MIME_TYPES = {\n  'image/jpeg': 'jpeg',\n  'image/png': 'png',\n  'image/gif': 'gif',\n  'image/webp': 'webp',\n} as const;\ntype BedrockImageFormats = typeof BEDROCK_IMAGE_MIME_TYPES;\nexport type BedrockImageFormat = BedrockImageFormats[keyof BedrockImageFormats];\nexport type BedrockImageMimeType = keyof BedrockImageFormats;\n\n/**\n * @see https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_DocumentBlock.html\n */\nexport const BEDROCK_DOCUMENT_MIME_TYPES = {\n  'application/pdf': 'pdf',\n  'text/csv': 'csv',\n  'application/msword': 'doc',\n  'application/vnd.openxmlformats-officedocument.wordprocessingml.document':\n    'docx',\n  'application/vnd.ms-excel': 'xls',\n  'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet': 'xlsx',\n  'text/html': 'html',\n  'text/plain': 'txt',\n  'text/markdown': 'md',\n} as const;\ntype BedrockDocumentFormats = typeof BEDROCK_DOCUMENT_MIME_TYPES;\nexport type BedrockDocumentFormat =\n  BedrockDocumentFormats[keyof BedrockDocumentFormats];\nexport type BedrockDocumentMimeType = keyof BedrockDocumentFormats;\n\nexport interface BedrockDocumentBlock {\n  document: {\n    format: BedrockDocumentFormat;\n    name: string;\n    source: {\n      bytes: string;\n    };\n    citations?: {\n      enabled: boolean;\n    };\n  };\n}\n\nexport interface BedrockGuardrailConverseContentBlock {\n  guardContent: unknown;\n}\n\nexport interface BedrockImageBlock {\n  image: {\n    format: BedrockImageFormat;\n    source: {\n      bytes: string;\n    };\n  };\n}\n\nexport interface BedrockToolResultBlock {\n  toolResult: {\n    toolUseId: string;\n    content: Array<BedrockTextBlock | BedrockImageBlock>;\n  };\n}\n\nexport interface BedrockToolUseBlock {\n  toolUse: {\n    toolUseId: string;\n    name: string;\n    input: Record<string, unknown>;\n  };\n}\n\nexport interface BedrockTextBlock {\n  text: string;\n}\n\nexport interface BedrockReasoningContentBlock {\n  reasoningContent: {\n    reasoningText: {\n      text: string;\n      signature?: string;\n    };\n  };\n}\n\nexport interface BedrockRedactedReasoningContentBlock {\n  reasoningContent: {\n    redactedReasoning: {\n      data: string;\n    };\n  };\n}\n\nexport type BedrockContentBlock =\n  | BedrockDocumentBlock\n  | BedrockGuardrailConverseContentBlock\n  | BedrockImageBlock\n  | BedrockTextBlock\n  | BedrockToolResultBlock\n  | BedrockToolUseBlock\n  | BedrockReasoningContentBlock\n  | BedrockRedactedReasoningContentBlock\n  | BedrockCachePoint;\n","import { z } from 'zod/v4';\n\n// https://docs.aws.amazon.com/bedrock/latest/userguide/model-ids.html\nexport type BedrockChatModelId =\n  | 'amazon.titan-tg1-large'\n  | 'amazon.titan-text-express-v1'\n  | 'anthropic.claude-v2'\n  | 'anthropic.claude-v2:1'\n  | 'anthropic.claude-instant-v1'\n  | 'anthropic.claude-opus-4-7'\n  | 'anthropic.claude-opus-4-6-v1'\n  | 'anthropic.claude-sonnet-4-6-v1'\n  | 'anthropic.claude-opus-4-5-20251101-v1:0'\n  | 'anthropic.claude-haiku-4-5-20251001-v1:0'\n  | 'anthropic.claude-sonnet-4-5-20250929-v1:0'\n  | 'anthropic.claude-sonnet-4-20250514-v1:0'\n  | 'anthropic.claude-opus-4-20250514-v1:0'\n  | 'anthropic.claude-opus-4-1-20250805-v1:0'\n  | 'anthropic.claude-3-7-sonnet-20250219-v1:0'\n  | 'anthropic.claude-3-5-sonnet-20240620-v1:0'\n  | 'anthropic.claude-3-5-sonnet-20241022-v2:0'\n  | 'anthropic.claude-3-5-haiku-20241022-v1:0'\n  | 'anthropic.claude-3-sonnet-20240229-v1:0'\n  | 'anthropic.claude-3-haiku-20240307-v1:0'\n  | 'anthropic.claude-3-opus-20240229-v1:0'\n  | 'cohere.command-text-v14'\n  | 'cohere.command-light-text-v14'\n  | 'cohere.command-r-v1:0'\n  | 'cohere.command-r-plus-v1:0'\n  | 'meta.llama3-70b-instruct-v1:0'\n  | 'meta.llama3-8b-instruct-v1:0'\n  | 'meta.llama3-1-405b-instruct-v1:0'\n  | 'meta.llama3-1-70b-instruct-v1:0'\n  | 'meta.llama3-1-8b-instruct-v1:0'\n  | 'meta.llama3-2-11b-instruct-v1:0'\n  | 'meta.llama3-2-1b-instruct-v1:0'\n  | 'meta.llama3-2-3b-instruct-v1:0'\n  | 'meta.llama3-2-90b-instruct-v1:0'\n  | 'mistral.mistral-7b-instruct-v0:2'\n  | 'mistral.mixtral-8x7b-instruct-v0:1'\n  | 'mistral.mistral-large-2402-v1:0'\n  | 'mistral.mistral-small-2402-v1:0'\n  | 'openai.gpt-oss-120b-1:0'\n  | 'openai.gpt-oss-20b-1:0'\n  | 'amazon.titan-text-express-v1'\n  | 'amazon.titan-text-lite-v1'\n  | 'us.amazon.nova-premier-v1:0'\n  | 'us.amazon.nova-pro-v1:0'\n  | 'us.amazon.nova-micro-v1:0'\n  | 'us.amazon.nova-lite-v1:0'\n  | 'us.anthropic.claude-3-sonnet-20240229-v1:0'\n  | 'us.anthropic.claude-3-opus-20240229-v1:0'\n  | 'us.anthropic.claude-3-haiku-20240307-v1:0'\n  | 'us.anthropic.claude-3-5-sonnet-20240620-v1:0'\n  | 'us.anthropic.claude-3-5-haiku-20241022-v1:0'\n  | 'us.anthropic.claude-3-5-sonnet-20241022-v2:0'\n  | 'us.anthropic.claude-3-7-sonnet-20250219-v1:0'\n  | 'us.anthropic.claude-opus-4-7'\n  | 'us.anthropic.claude-opus-4-6-v1'\n  | 'us.anthropic.claude-sonnet-4-6-v1'\n  | 'us.anthropic.claude-opus-4-5-20251101-v1:0'\n  | 'us.anthropic.claude-sonnet-4-5-20250929-v1:0'\n  | 'us.anthropic.claude-sonnet-4-20250514-v1:0'\n  | 'us.anthropic.claude-opus-4-20250514-v1:0'\n  | 'us.anthropic.claude-opus-4-1-20250805-v1:0'\n  | 'us.anthropic.claude-haiku-4-5-20251001-v1:0'\n  | 'us.meta.llama3-2-11b-instruct-v1:0'\n  | 'us.meta.llama3-2-3b-instruct-v1:0'\n  | 'us.meta.llama3-2-90b-instruct-v1:0'\n  | 'us.meta.llama3-2-1b-instruct-v1:0'\n  | 'us.meta.llama3-1-8b-instruct-v1:0'\n  | 'us.meta.llama3-1-70b-instruct-v1:0'\n  | 'us.meta.llama3-3-70b-instruct-v1:0'\n  | 'us.deepseek.r1-v1:0'\n  | 'us.mistral.pixtral-large-2502-v1:0'\n  | 'us.meta.llama4-scout-17b-instruct-v1:0'\n  | 'us.meta.llama4-maverick-17b-instruct-v1:0'\n  | (string & {});\n\n/**\n * Bedrock file part provider options for document-specific features.\n * These options apply to individual file parts (documents).\n */\nexport const bedrockFilePartProviderOptions = z.object({\n  /**\n   * Citation configuration for this document.\n   * When enabled, this document will generate citations in the response.\n   */\n  citations: z\n    .object({\n      /**\n       * Enable citations for this document\n       */\n      enabled: z.boolean(),\n    })\n    .optional(),\n});\n\nexport type BedrockFilePartProviderOptions = z.infer<\n  typeof bedrockFilePartProviderOptions\n>;\n\nexport const amazonBedrockLanguageModelOptions = z.object({\n  /**\n   * Additional inference parameters that the model supports,\n   * beyond the base set of inference parameters that Converse\n   * supports in the inferenceConfig field\n   */\n  additionalModelRequestFields: z.record(z.string(), z.any()).optional(),\n  reasoningConfig: z\n    .object({\n      type: z\n        .union([\n          z.literal('enabled'),\n          z.literal('disabled'),\n          z.literal('adaptive'),\n        ])\n        .optional(),\n      budgetTokens: z.number().optional(),\n      maxReasoningEffort: z\n        .enum(['low', 'medium', 'high', 'xhigh', 'max'])\n        .optional(),\n      display: z.enum(['omitted', 'summarized']).optional(),\n    })\n    .optional(),\n  /**\n   * Anthropic beta features to enable\n   */\n  anthropicBeta: z.array(z.string()).optional(),\n  /**\n   * Service tier for the request.\n   * @see https://docs.aws.amazon.com/bedrock/latest/userguide/service-tiers-inference.html\n   *\n   * - 'reserved': Uses provisioned throughput capacity\n   * - 'priority': Prioritizes low-latency inference when capacity is available\n   * - 'default': Standard on-demand tier\n   * - 'flex': Lower-cost tier for flexible latency workloads\n   */\n  serviceTier: z.enum(['reserved', 'priority', 'default', 'flex']).optional(),\n});\n\nexport type AmazonBedrockLanguageModelOptions = z.infer<\n  typeof amazonBedrockLanguageModelOptions\n>;\n","import { z } from 'zod/v4';\n\nexport const BedrockErrorSchema = z.object({\n  message: z.string(),\n  type: z.string().nullish(),\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  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          try {\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']\n              ?.value as string;\n            const eventType = decoded.headers[':event-type']?.value as string;\n            const data = textDecoder.decode(decoded.body);\n\n            await processEvent({ messageType, eventType, data }, controller);\n          } catch {\n            break;\n          }\n        }\n      },\n    }),\n  );\n}\n","import { EmptyResponseBodyError } from '@ai-sdk/provider';\nimport {\n  safeParseJSON,\n  extractResponseHeaders,\n  safeValidateTypes,\n  type ParseResult,\n  type ResponseHandler,\n} from '@ai-sdk/provider-utils';\nimport type { ZodType } from 'zod/v4';\nimport { createBedrockEventStreamDecoder } from './bedrock-event-stream-decoder';\n\nexport const createBedrockEventStreamResponseHandler =\n  <T>(\n    chunkSchema: ZodType<T, any>,\n  ): ResponseHandler<ReadableStream<ParseResult<T>>> =>\n  async ({ response }: { response: Response }) => {\n    const responseHeaders = extractResponseHeaders(response);\n\n    if (response.body == null) {\n      throw new EmptyResponseBodyError({});\n    }\n\n    return {\n      responseHeaders,\n      value: createBedrockEventStreamDecoder<ParseResult<T>>(\n        response.body,\n        async (event, controller) => {\n          if (event.messageType === 'event') {\n            const parsedDataResult = await safeParseJSON({ text: event.data });\n            if (!parsedDataResult.success) {\n              controller.enqueue(parsedDataResult);\n              return;\n            }\n\n            delete (parsedDataResult.value as any).p;\n            const wrappedData = {\n              [event.eventType]: parsedDataResult.value,\n            };\n\n            const validatedWrappedData = await safeValidateTypes<T>({\n              value: wrappedData,\n              schema: chunkSchema,\n            });\n            if (!validatedWrappedData.success) {\n              controller.enqueue(validatedWrappedData);\n            } else {\n              controller.enqueue({\n                success: true,\n                value: validatedWrappedData.value,\n                rawValue: wrappedData,\n              });\n            }\n          }\n        },\n      ),\n    };\n  };\n","import {\n  UnsupportedFunctionalityError,\n  type JSONObject,\n  type LanguageModelV3CallOptions,\n  type SharedV3Warning,\n} from '@ai-sdk/provider';\nimport { asSchema } from '@ai-sdk/provider-utils';\nimport {\n  anthropicTools,\n  prepareTools as prepareAnthropicTools,\n} from '@ai-sdk/anthropic/internal';\nimport type {\n  BedrockTool,\n  BedrockToolConfiguration,\n} from './bedrock-api-types';\n\nexport async function prepareTools({\n  tools,\n  toolChoice,\n  modelId,\n}: {\n  tools: LanguageModelV3CallOptions['tools'];\n  toolChoice?: LanguageModelV3CallOptions['toolChoice'];\n  modelId: string;\n}): Promise<{\n  toolConfig: BedrockToolConfiguration;\n  additionalTools: Record<string, unknown> | undefined;\n  betas: Set<string>;\n  toolWarnings: SharedV3Warning[];\n}> {\n  const toolWarnings: SharedV3Warning[] = [];\n  const betas = new Set<string>();\n\n  if (tools == null || tools.length === 0) {\n    return {\n      toolConfig: {},\n      additionalTools: undefined,\n      betas,\n      toolWarnings,\n    };\n  }\n\n  // Filter out unsupported web_search tool and add a warning\n  const supportedTools = tools.filter(tool => {\n    if (\n      tool.type === 'provider' &&\n      tool.id === 'anthropic.web_search_20250305'\n    ) {\n      toolWarnings.push({\n        type: 'unsupported',\n        feature: 'web_search_20250305 tool',\n        details:\n          'The web_search_20250305 tool is not supported on Amazon Bedrock.',\n      });\n      return false; // Exclude this tool\n    }\n    return true; // Include all other tools\n  });\n\n  if (supportedTools.length === 0) {\n    return {\n      toolConfig: {},\n      additionalTools: undefined,\n      betas,\n      toolWarnings,\n    };\n  }\n\n  const isAnthropicModel = modelId.includes('anthropic.');\n  const ProviderTools = supportedTools.filter(t => t.type === 'provider');\n  const functionTools = supportedTools.filter(t => t.type === 'function');\n\n  let additionalTools: Record<string, unknown> | undefined = undefined;\n  const bedrockTools: BedrockTool[] = [];\n\n  const usingAnthropicTools = isAnthropicModel && ProviderTools.length > 0;\n\n  // Handle Anthropic provider-defined tools for Anthropic models on Bedrock\n  if (usingAnthropicTools) {\n    const {\n      toolChoice: preparedAnthropicToolChoice,\n      toolWarnings: anthropicToolWarnings,\n      betas: anthropicBetas,\n    } = await prepareAnthropicTools({\n      tools: ProviderTools,\n      toolChoice,\n      supportsStructuredOutput: false,\n      supportsStrictTools: false,\n    });\n\n    toolWarnings.push(...anthropicToolWarnings);\n    anthropicBetas.forEach(beta => betas.add(beta));\n\n    // For Anthropic tools on Bedrock, only the 'tool_choice' goes into additional fields.\n    // The tool definitions themselves are sent in the standard 'toolConfig'.\n    if (preparedAnthropicToolChoice) {\n      additionalTools = {\n        tool_choice: preparedAnthropicToolChoice,\n      };\n    }\n\n    // Create a standard Bedrock tool representation for validation purposes\n    for (const tool of ProviderTools) {\n      const toolFactory = Object.values(anthropicTools).find(factory => {\n        const instance = (factory as (args: any) => any)({});\n        return instance.id === tool.id;\n      });\n\n      if (toolFactory != null) {\n        const fullToolDefinition = (toolFactory as (args: any) => any)({});\n        bedrockTools.push({\n          toolSpec: {\n            name: tool.name,\n            inputSchema: {\n              json: (await asSchema(fullToolDefinition.inputSchema)\n                .jsonSchema) as JSONObject,\n            },\n          },\n        });\n      } else {\n        toolWarnings.push({ type: 'unsupported', feature: 'tool ${tool.id}' });\n      }\n    }\n  } else {\n    // Report unsupported provider-defined tools for non-anthropic models\n    for (const tool of ProviderTools) {\n      toolWarnings.push({ type: 'unsupported', feature: `tool ${tool.id}` });\n    }\n  }\n\n  const filteredFunctionTools =\n    toolChoice?.type === 'tool'\n      ? functionTools.filter(t => t.name === toolChoice.toolName)\n      : functionTools;\n\n  for (const tool of filteredFunctionTools) {\n    bedrockTools.push({\n      toolSpec: {\n        name: tool.name,\n        ...(tool.description?.trim() !== ''\n          ? { description: tool.description }\n          : {}),\n        ...(tool.strict != null ? { strict: tool.strict } : {}),\n        inputSchema: {\n          json: tool.inputSchema as JSONObject,\n        },\n      },\n    });\n  }\n\n  // Handle toolChoice for standard Bedrock tools, but NOT for Anthropic provider-defined tools\n  let bedrockToolChoice: BedrockToolConfiguration['toolChoice'] = undefined;\n  if (!usingAnthropicTools && bedrockTools.length > 0 && toolChoice) {\n    const type = toolChoice.type;\n    switch (type) {\n      case 'auto':\n        bedrockToolChoice = { auto: {} };\n        break;\n      case 'required':\n        bedrockToolChoice = { any: {} };\n        break;\n      case 'none':\n        bedrockTools.length = 0;\n        bedrockToolChoice = undefined;\n        break;\n      case 'tool':\n        bedrockToolChoice = { tool: { name: toolChoice.toolName } };\n        break;\n      default: {\n        const _exhaustiveCheck: never = type;\n        throw new UnsupportedFunctionalityError({\n          functionality: `tool choice type: ${_exhaustiveCheck}`,\n        });\n      }\n    }\n  }\n\n  const toolConfig: BedrockToolConfiguration =\n    bedrockTools.length > 0\n      ? { tools: bedrockTools, toolChoice: bedrockToolChoice }\n      : {};\n\n  return {\n    toolConfig,\n    additionalTools,\n    betas,\n    toolWarnings,\n  };\n}\n","import type { LanguageModelV3Usage } from '@ai-sdk/provider';\n\nexport type BedrockUsage = {\n  inputTokens: number;\n  outputTokens: number;\n  totalTokens?: number;\n  cacheReadInputTokens?: number | null;\n  cacheWriteInputTokens?: number | null;\n};\n\nexport function convertBedrockUsage(\n  usage: BedrockUsage | undefined | null,\n): LanguageModelV3Usage {\n  if (usage == null) {\n    return {\n      inputTokens: {\n        total: undefined,\n        noCache: undefined,\n        cacheRead: undefined,\n        cacheWrite: undefined,\n      },\n      outputTokens: {\n        total: undefined,\n        text: undefined,\n        reasoning: undefined,\n      },\n      raw: undefined,\n    };\n  }\n\n  const inputTokens = usage.inputTokens;\n  const outputTokens = usage.outputTokens;\n  const cacheReadTokens = usage.cacheReadInputTokens ?? 0;\n  const cacheWriteTokens = usage.cacheWriteInputTokens ?? 0;\n\n  return {\n    inputTokens: {\n      total: inputTokens + cacheReadTokens + cacheWriteTokens,\n      noCache: inputTokens,\n      cacheRead: cacheReadTokens,\n      cacheWrite: cacheWriteTokens,\n    },\n    outputTokens: {\n      total: outputTokens,\n      text: outputTokens,\n      reasoning: undefined,\n    },\n    raw: usage,\n  };\n}\n","import { z } from 'zod/v4';\n\nexport const bedrockReasoningMetadataSchema = z.object({\n  signature: z.string().optional(),\n  redactedData: z.string().optional(),\n});\n\nexport type BedrockReasoningMetadata = z.infer<\n  typeof bedrockReasoningMetadataSchema\n>;\n","/**\n * Checks if the given model ID is a Mistral model.\n * Mistral models on Bedrock are prefixed with 'mistral.' or region-prefixed like 'us.mistral.'.\n */\nexport function isMistralModel(modelId: string): boolean {\n  return modelId.includes('mistral.');\n}\n\n/**\n * Normalizes a tool call ID for Mistral models.\n *\n * Mistral models require tool call IDs to match the regex `^[a-zA-Z0-9]{9}$`:\n * - Exactly 9 characters\n * - Alphanumeric only (no underscores, hyphens, or other characters)\n *\n * Bedrock generates tool call IDs in formats like `tooluse_bpe71yCfRu2b5i-nKGDr5g`,\n * which are incompatible with Mistral's requirements.\n *\n * This function extracts the first 9 alphanumeric characters from the ID.\n *\n * @param toolCallId - The original tool call ID from Bedrock\n * @param isMistral - Whether the model is a Mistral model\n * @returns The normalized tool call ID (9 alphanumeric chars) if Mistral, otherwise the original ID\n */\nexport function normalizeToolCallId(\n  toolCallId: string,\n  isMistral: boolean,\n): string {\n  if (!isMistral) {\n    return toolCallId;\n  }\n\n  // Extract only alphanumeric characters and take first 9\n  const alphanumericChars = toolCallId.replace(/[^a-zA-Z0-9]/g, '');\n  return alphanumericChars.slice(0, 9);\n}\n","import {\n  UnsupportedFunctionalityError,\n  type JSONObject,\n  type LanguageModelV3Message,\n  type LanguageModelV3Prompt,\n  type SharedV3ProviderMetadata,\n} from '@ai-sdk/provider';\nimport {\n  convertToBase64,\n  parseProviderOptions,\n  stripFileExtension,\n} from '@ai-sdk/provider-utils';\nimport {\n  BEDROCK_DOCUMENT_MIME_TYPES,\n  BEDROCK_IMAGE_MIME_TYPES,\n  type BedrockAssistantMessage,\n  type BedrockCachePoint,\n  type BedrockDocumentFormat,\n  type BedrockDocumentMimeType,\n  type BedrockImageFormat,\n  type BedrockImageMimeType,\n  type BedrockMessages,\n  type BedrockSystemMessages,\n  type BedrockUserMessage,\n} from './bedrock-api-types';\nimport { bedrockReasoningMetadataSchema } from './bedrock-reasoning-metadata';\nimport { bedrockFilePartProviderOptions } from './bedrock-chat-options';\nimport { normalizeToolCallId } from './normalize-tool-call-id';\n\nfunction getCachePoint(\n  providerMetadata: SharedV3ProviderMetadata | undefined,\n): BedrockCachePoint | undefined {\n  const cachePointConfig = providerMetadata?.bedrock?.cachePoint as\n    | BedrockCachePoint['cachePoint']\n    | undefined;\n\n  if (!cachePointConfig) {\n    return undefined;\n  }\n\n  return { cachePoint: cachePointConfig };\n}\n\nfunction pushCachePoint(\n  content: BedrockUserMessage['content'] | BedrockAssistantMessage['content'],\n  providerMetadata: SharedV3ProviderMetadata | undefined,\n) {\n  const cachePoint = getCachePoint(providerMetadata);\n  if (cachePoint) {\n    content.push(cachePoint);\n  }\n}\n\nasync function shouldEnableCitations(\n  providerMetadata: SharedV3ProviderMetadata | undefined,\n): Promise<boolean> {\n  const bedrockOptions = await parseProviderOptions({\n    provider: 'bedrock',\n    providerOptions: providerMetadata,\n    schema: bedrockFilePartProviderOptions,\n  });\n\n  return bedrockOptions?.citations?.enabled ?? false;\n}\n\nexport async function convertToBedrockChatMessages(\n  prompt: LanguageModelV3Prompt,\n  isMistral: boolean = false,\n): Promise<{\n  system: BedrockSystemMessages;\n  messages: BedrockMessages;\n}> {\n  const blocks = groupIntoBlocks(prompt);\n\n  let system: BedrockSystemMessages = [];\n  const messages: BedrockMessages = [];\n\n  let documentCounter = 0;\n  const generateDocumentName = () => `document-${++documentCounter}`;\n\n  for (let i = 0; i < blocks.length; i++) {\n    const block = blocks[i];\n    const isLastBlock = i === blocks.length - 1;\n    const type = block.type;\n\n    switch (type) {\n      case 'system': {\n        if (messages.length > 0) {\n          throw new UnsupportedFunctionalityError({\n            functionality:\n              'Multiple system messages that are separated by user/assistant messages',\n          });\n        }\n\n        for (const message of block.messages) {\n          system.push({ text: message.content });\n          const cachePoint = getCachePoint(message.providerOptions);\n          if (cachePoint) {\n            system.push(cachePoint);\n          }\n        }\n        break;\n      }\n\n      case 'user': {\n        // combines all user and tool messages in this block into a single message:\n        const bedrockContent: BedrockUserMessage['content'] = [];\n\n        for (const message of block.messages) {\n          const { role, content, providerOptions } = message;\n          switch (role) {\n            case 'user': {\n              for (let j = 0; j < content.length; j++) {\n                const part = content[j];\n\n                switch (part.type) {\n                  case 'text': {\n                    bedrockContent.push({\n                      text: part.text,\n                    });\n                    break;\n                  }\n\n                  case 'file': {\n                    if (part.data instanceof URL) {\n                      // The AI SDK automatically downloads files for user file parts with URLs\n                      throw new UnsupportedFunctionalityError({\n                        functionality: 'File URL data',\n                      });\n                    }\n\n                    if (part.mediaType.startsWith('image/')) {\n                      bedrockContent.push({\n                        image: {\n                          format: getBedrockImageFormat(part.mediaType),\n                          source: { bytes: convertToBase64(part.data) },\n                        },\n                      });\n                    } else {\n                      if (!part.mediaType) {\n                        throw new UnsupportedFunctionalityError({\n                          functionality: 'file without mime type',\n                          message:\n                            'File mime type is required in user message part content',\n                        });\n                      }\n\n                      const enableCitations = await shouldEnableCitations(\n                        part.providerOptions,\n                      );\n\n                      bedrockContent.push({\n                        document: {\n                          format: getBedrockDocumentFormat(part.mediaType),\n                          name: part.filename\n                            ? stripFileExtension(part.filename)\n                            : generateDocumentName(),\n                          source: { bytes: convertToBase64(part.data) },\n                          ...(enableCitations && {\n                            citations: { enabled: true },\n                          }),\n                        },\n                      });\n                    }\n\n                    break;\n                  }\n                }\n\n                pushCachePoint(bedrockContent, part.providerOptions);\n              }\n\n              break;\n            }\n            case 'tool': {\n              for (const part of content) {\n                if (part.type === 'tool-approval-response') {\n                  continue;\n                }\n                let toolResultContent;\n\n                const output = part.output;\n                switch (output.type) {\n                  case 'content': {\n                    toolResultContent = output.value.map(contentPart => {\n                      switch (contentPart.type) {\n                        case 'text':\n                          return { text: contentPart.text };\n                        case 'image-data':\n                          if (!contentPart.mediaType.startsWith('image/')) {\n                            throw new UnsupportedFunctionalityError({\n                              functionality: `media type: ${contentPart.mediaType}`,\n                            });\n                          }\n\n                          const format = getBedrockImageFormat(\n                            contentPart.mediaType,\n                          );\n\n                          return {\n                            image: {\n                              format,\n                              source: { bytes: contentPart.data },\n                            },\n                          };\n                        default: {\n                          throw new UnsupportedFunctionalityError({\n                            functionality: `unsupported tool content part type: ${contentPart.type}`,\n                          });\n                        }\n                      }\n                    });\n                    break;\n                  }\n                  case 'text':\n                  case 'error-text':\n                    toolResultContent = [{ text: output.value }];\n                    break;\n                  case 'execution-denied':\n                    toolResultContent = [\n                      { text: output.reason ?? 'Tool execution denied.' },\n                    ];\n                    break;\n                  case 'json':\n                  case 'error-json':\n                  default:\n                    toolResultContent = [\n                      { text: JSON.stringify(output.value) },\n                    ];\n                    break;\n                }\n\n                bedrockContent.push({\n                  toolResult: {\n                    toolUseId: normalizeToolCallId(part.toolCallId, isMistral),\n                    content: toolResultContent,\n                  },\n                });\n                pushCachePoint(bedrockContent, part.providerOptions);\n              }\n\n              break;\n            }\n            default: {\n              const _exhaustiveCheck: never = role;\n              throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n            }\n          }\n\n          pushCachePoint(bedrockContent, providerOptions);\n        }\n\n        messages.push({ role: 'user', content: bedrockContent });\n\n        break;\n      }\n\n      case 'assistant': {\n        // combines multiple assistant messages in this block into a single message:\n        const bedrockContent: BedrockAssistantMessage['content'] = [];\n\n        for (let j = 0; j < block.messages.length; j++) {\n          const message = block.messages[j];\n          const isLastMessage = j === block.messages.length - 1;\n          const { content } = message;\n          const hasReasoningBlocks = content.some(\n            part => part.type === 'reasoning',\n          );\n\n          for (let k = 0; k < content.length; k++) {\n            const part = content[k];\n            const isLastContentPart = k === content.length - 1;\n\n            switch (part.type) {\n              case 'text': {\n                // Skip empty text blocks unless reasoning blocks are present\n                if (!part.text.trim() && !hasReasoningBlocks) {\n                  break;\n                }\n\n                bedrockContent.push({\n                  text:\n                    // trim the last text part if it's the last message in the block\n                    // because Bedrock does not allow trailing whitespace\n                    // in pre-filled assistant responses\n                    trimIfLast(\n                      isLastBlock,\n                      isLastMessage,\n                      isLastContentPart,\n                      part.text,\n                    ),\n                });\n                break;\n              }\n\n              case 'reasoning': {\n                const reasoningMetadata = await parseProviderOptions({\n                  provider: 'bedrock',\n                  providerOptions: part.providerOptions,\n                  schema: bedrockReasoningMetadataSchema,\n                });\n\n                if (reasoningMetadata?.signature != null) {\n                  // do not trim reasoning text when a signature is present:\n                  // the signature validates the exact original bytes\n                  bedrockContent.push({\n                    reasoningContent: {\n                      reasoningText: {\n                        text: part.text,\n                        signature: reasoningMetadata.signature,\n                      },\n                    },\n                  });\n                } else if (reasoningMetadata?.redactedData != null) {\n                  bedrockContent.push({\n                    reasoningContent: {\n                      redactedReasoning: {\n                        data: reasoningMetadata.redactedData,\n                      },\n                    },\n                  });\n                } else if (\n                  part.providerOptions == null ||\n                  Object.keys(part.providerOptions).every(\n                    k => k === 'bedrock' || k === 'amazonBedrock',\n                  )\n                ) {\n                  // No foreign-provider metadata — preserve text. This covers\n                  // the prefill case where the caller hand-crafts a reasoning\n                  // block without a signature. Forwarding reasoning that was\n                  // signed by a different provider (e.g. anthropic) would\n                  // cause Bedrock to reject with\n                  // `thinking.signature: Field required`, so we drop those.\n                  // trim the last text part if it's the last message in the\n                  // block because Bedrock does not allow trailing whitespace\n                  // in pre-filled assistant responses\n                  bedrockContent.push({\n                    reasoningContent: {\n                      reasoningText: {\n                        text: trimIfLast(\n                          isLastBlock,\n                          isLastMessage,\n                          isLastContentPart,\n                          part.text,\n                        ),\n                      },\n                    },\n                  });\n                }\n\n                break;\n              }\n\n              case 'tool-call': {\n                bedrockContent.push({\n                  toolUse: {\n                    toolUseId: normalizeToolCallId(part.toolCallId, isMistral),\n                    name: part.toolName,\n                    input: part.input as JSONObject,\n                  },\n                });\n                break;\n              }\n            }\n\n            pushCachePoint(bedrockContent, part.providerOptions);\n          }\n          pushCachePoint(bedrockContent, message.providerOptions);\n        }\n\n        messages.push({ role: 'assistant', content: bedrockContent });\n\n        break;\n      }\n\n      default: {\n        const _exhaustiveCheck: never = type;\n        throw new Error(`Unsupported type: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n\n  return { system, messages };\n}\n\nfunction isBedrockImageFormat(format: string): format is BedrockImageFormat {\n  return Object.values(BEDROCK_IMAGE_MIME_TYPES).includes(\n    format as BedrockImageFormat,\n  );\n}\n\nfunction getBedrockImageFormat(mimeType?: string): BedrockImageFormat {\n  if (!mimeType) {\n    throw new UnsupportedFunctionalityError({\n      functionality: 'image without mime type',\n      message: 'Image mime type is required in user message part content',\n    });\n  }\n\n  const format = BEDROCK_IMAGE_MIME_TYPES[mimeType as BedrockImageMimeType];\n  if (!format) {\n    throw new UnsupportedFunctionalityError({\n      functionality: `image mime type: ${mimeType}`,\n      message: `Unsupported image mime type: ${mimeType}, expected one of: ${Object.keys(BEDROCK_IMAGE_MIME_TYPES).join(', ')}`,\n    });\n  }\n\n  return format;\n}\n\nfunction getBedrockDocumentFormat(mimeType: string): BedrockDocumentFormat {\n  const format =\n    BEDROCK_DOCUMENT_MIME_TYPES[mimeType as BedrockDocumentMimeType];\n  if (!format) {\n    throw new UnsupportedFunctionalityError({\n      functionality: `file mime type: ${mimeType}`,\n      message: `Unsupported file mime type: ${mimeType}, expected one of: ${Object.keys(BEDROCK_DOCUMENT_MIME_TYPES).join(', ')}`,\n    });\n  }\n  return format;\n}\n\nfunction trimIfLast(\n  isLastBlock: boolean,\n  isLastMessage: boolean,\n  isLastContentPart: boolean,\n  text: string,\n) {\n  return isLastBlock && isLastMessage && isLastContentPart ? text.trim() : text;\n}\n\ntype SystemBlock = {\n  type: 'system';\n  messages: Array<LanguageModelV3Message & { role: 'system' }>;\n};\ntype AssistantBlock = {\n  type: 'assistant';\n  messages: Array<LanguageModelV3Message & { role: 'assistant' }>;\n};\ntype UserBlock = {\n  type: 'user';\n  messages: Array<LanguageModelV3Message & { role: 'user' | 'tool' }>;\n};\n\nfunction groupIntoBlocks(\n  prompt: LanguageModelV3Prompt,\n): Array<SystemBlock | AssistantBlock | UserBlock> {\n  const blocks: Array<SystemBlock | AssistantBlock | UserBlock> = [];\n  let currentBlock: SystemBlock | AssistantBlock | UserBlock | undefined =\n    undefined;\n\n  for (const message of prompt) {\n    const { role } = message;\n    switch (role) {\n      case 'system': {\n        if (currentBlock?.type !== 'system') {\n          currentBlock = { type: 'system', messages: [] };\n          blocks.push(currentBlock);\n        }\n\n        currentBlock.messages.push(message);\n        break;\n      }\n      case 'assistant': {\n        if (currentBlock?.type !== 'assistant') {\n          currentBlock = { type: 'assistant', messages: [] };\n          blocks.push(currentBlock);\n        }\n\n        currentBlock.messages.push(message);\n        break;\n      }\n      case 'user': {\n        if (currentBlock?.type !== 'user') {\n          currentBlock = { type: 'user', messages: [] };\n          blocks.push(currentBlock);\n        }\n\n        currentBlock.messages.push(message);\n        break;\n      }\n      case 'tool': {\n        if (currentBlock?.type !== 'user') {\n          currentBlock = { type: 'user', messages: [] };\n          blocks.push(currentBlock);\n        }\n\n        currentBlock.messages.push(message);\n        break;\n      }\n      default: {\n        const _exhaustiveCheck: never = role;\n        throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n      }\n    }\n  }\n\n  return blocks;\n}\n","import type { LanguageModelV3FinishReason } from '@ai-sdk/provider';\nimport type { BedrockStopReason } from './bedrock-api-types';\n\nexport function mapBedrockFinishReason(\n  finishReason: BedrockStopReason,\n  isJsonResponseFromTool?: boolean,\n): LanguageModelV3FinishReason['unified'] {\n  switch (finishReason) {\n    case 'stop_sequence':\n    case 'end_turn':\n      return 'stop';\n    case 'max_tokens':\n      return 'length';\n    case 'content_filtered':\n    case 'guardrail_intervened':\n      return 'content-filter';\n    case 'tool_use':\n      return isJsonResponseFromTool ? 'stop' : 'tool-calls';\n    default:\n      return 'other';\n  }\n}\n","import type {\n  JSONObject,\n  LanguageModelV3,\n  LanguageModelV3CallOptions,\n  LanguageModelV3Content,\n  LanguageModelV3FinishReason,\n  LanguageModelV3FunctionTool,\n  LanguageModelV3GenerateResult,\n  LanguageModelV3Reasoning,\n  LanguageModelV3StreamPart,\n  LanguageModelV3StreamResult,\n  SharedV3ProviderMetadata,\n  SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  parseProviderOptions,\n  postJsonToApi,\n  resolve,\n  type FetchFunction,\n  type ParseResult,\n  type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\nimport {\n  BEDROCK_STOP_REASONS,\n  type BedrockConverseInput,\n  type BedrockStopReason,\n} from './bedrock-api-types';\nimport {\n  amazonBedrockLanguageModelOptions,\n  type BedrockChatModelId,\n} from './bedrock-chat-options';\nimport { BedrockErrorSchema } from './bedrock-error';\nimport { createBedrockEventStreamResponseHandler } from './bedrock-event-stream-response-handler';\nimport { prepareTools } from './bedrock-prepare-tools';\nimport {\n  convertBedrockUsage,\n  type BedrockUsage,\n} from './convert-bedrock-usage';\nimport { convertToBedrockChatMessages } from './convert-to-bedrock-chat-messages';\nimport { mapBedrockFinishReason } from './map-bedrock-finish-reason';\nimport { isMistralModel, normalizeToolCallId } from './normalize-tool-call-id';\nimport type { BedrockReasoningMetadata } from './bedrock-reasoning-metadata';\n\ntype BedrockChatConfig = {\n  baseUrl: () => string;\n  headers: Resolvable<Record<string, string | undefined>>;\n  fetch?: FetchFunction;\n  generateId: () => string;\n};\n\nexport class BedrockChatLanguageModel implements LanguageModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly provider = 'amazon-bedrock';\n\n  constructor(\n    readonly modelId: BedrockChatModelId,\n    private readonly config: BedrockChatConfig,\n  ) {}\n\n  private async getArgs({\n    prompt,\n    maxOutputTokens,\n    temperature,\n    topP,\n    topK,\n    frequencyPenalty,\n    presencePenalty,\n    stopSequences,\n    responseFormat,\n    seed,\n    tools,\n    toolChoice,\n    providerOptions,\n  }: LanguageModelV3CallOptions): Promise<{\n    command: BedrockConverseInput;\n    warnings: SharedV3Warning[];\n    usesJsonResponseTool: boolean;\n    betas: Set<string>;\n  }> {\n    // Parse provider options\n    const bedrockOptions =\n      (await parseProviderOptions({\n        provider: 'bedrock',\n        providerOptions,\n        schema: amazonBedrockLanguageModelOptions,\n      })) ?? {};\n\n    const warnings: SharedV3Warning[] = [];\n\n    if (frequencyPenalty != null) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'frequencyPenalty',\n      });\n    }\n\n    if (presencePenalty != null) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'presencePenalty',\n      });\n    }\n\n    if (seed != null) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'seed',\n      });\n    }\n\n    if (temperature != null && temperature > 1) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'temperature',\n        details: `${temperature} exceeds bedrock maximum of 1.0. clamped to 1.0`,\n      });\n      temperature = 1;\n    } else if (temperature != null && temperature < 0) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'temperature',\n        details: `${temperature} is below bedrock minimum of 0. clamped to 0`,\n      });\n      temperature = 0;\n    }\n\n    if (\n      responseFormat != null &&\n      responseFormat.type !== 'text' &&\n      responseFormat.type !== 'json'\n    ) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'responseFormat',\n        details: 'Only text and json response formats are supported.',\n      });\n    }\n\n    const isAnthropicModel = this.modelId.includes('anthropic');\n    const isThinkingEnabled =\n      bedrockOptions.reasoningConfig?.type === 'enabled' ||\n      bedrockOptions.reasoningConfig?.type === 'adaptive';\n\n    const useNativeStructuredOutput =\n      isAnthropicModel &&\n      isThinkingEnabled &&\n      responseFormat?.type === 'json' &&\n      responseFormat.schema != null;\n\n    const jsonResponseTool: LanguageModelV3FunctionTool | undefined =\n      responseFormat?.type === 'json' &&\n      responseFormat.schema != null &&\n      !useNativeStructuredOutput\n        ? {\n            type: 'function',\n            name: 'json',\n            description: 'Respond with a JSON object.',\n            inputSchema: responseFormat.schema,\n          }\n        : undefined;\n\n    const { toolConfig, additionalTools, toolWarnings, betas } =\n      await prepareTools({\n        tools: jsonResponseTool ? [...(tools ?? []), jsonResponseTool] : tools,\n        toolChoice:\n          jsonResponseTool != null ? { type: 'required' } : toolChoice,\n        modelId: this.modelId,\n      });\n\n    warnings.push(...toolWarnings);\n\n    if (additionalTools) {\n      bedrockOptions.additionalModelRequestFields = {\n        ...bedrockOptions.additionalModelRequestFields,\n        ...additionalTools,\n      };\n    }\n\n    if (betas.size > 0 || bedrockOptions.anthropicBeta) {\n      const existingBetas = bedrockOptions.anthropicBeta ?? [];\n      const mergedBetas =\n        betas.size > 0\n          ? [...existingBetas, ...Array.from(betas)]\n          : existingBetas;\n\n      bedrockOptions.additionalModelRequestFields = {\n        ...bedrockOptions.additionalModelRequestFields,\n        anthropic_beta: mergedBetas,\n      };\n    }\n\n    const thinkingType = bedrockOptions.reasoningConfig?.type;\n    const thinkingBudget =\n      thinkingType === 'enabled'\n        ? bedrockOptions.reasoningConfig?.budgetTokens\n        : undefined;\n    const thinkingDisplay =\n      thinkingType === 'adaptive'\n        ? bedrockOptions.reasoningConfig?.display\n        : undefined;\n    const isAnthropicThinkingEnabled = isAnthropicModel && isThinkingEnabled;\n\n    const inferenceConfig = {\n      ...(maxOutputTokens != null && { maxTokens: maxOutputTokens }),\n      ...(temperature != null && { temperature }),\n      ...(topP != null && { topP }),\n      ...(topK != null && { topK }),\n      ...(stopSequences != null && { stopSequences }),\n    };\n\n    if (isAnthropicThinkingEnabled) {\n      if (thinkingBudget != null) {\n        if (inferenceConfig.maxTokens != null) {\n          inferenceConfig.maxTokens += thinkingBudget;\n        } else {\n          inferenceConfig.maxTokens = thinkingBudget + 4096; // Default + thinking budget maxTokens = 4096, TODO update default in v5\n        }\n        bedrockOptions.additionalModelRequestFields = {\n          ...bedrockOptions.additionalModelRequestFields,\n          thinking: {\n            type: 'enabled',\n            budget_tokens: thinkingBudget,\n          },\n        };\n      } else if (thinkingType === 'adaptive') {\n        bedrockOptions.additionalModelRequestFields = {\n          ...bedrockOptions.additionalModelRequestFields,\n          thinking: {\n            type: 'adaptive',\n            ...(thinkingDisplay != null && { display: thinkingDisplay }),\n          },\n        };\n      }\n    } else if (!isAnthropicModel) {\n      if (bedrockOptions.reasoningConfig?.budgetTokens != null) {\n        warnings.push({\n          type: 'unsupported',\n          feature: 'budgetTokens',\n          details:\n            'budgetTokens applies only to Anthropic models on Bedrock and will be ignored for this model.',\n        });\n      }\n      if (thinkingType === 'adaptive') {\n        warnings.push({\n          type: 'unsupported',\n          feature: 'adaptive thinking',\n          details:\n            'adaptive thinking type applies only to Anthropic models on Bedrock.',\n        });\n      }\n    }\n\n    const maxReasoningEffort =\n      bedrockOptions.reasoningConfig?.maxReasoningEffort;\n    const isOpenAIModel = this.modelId.startsWith('openai.');\n\n    if (maxReasoningEffort != null) {\n      if (isAnthropicModel) {\n        bedrockOptions.additionalModelRequestFields = {\n          ...bedrockOptions.additionalModelRequestFields,\n          output_config: {\n            ...bedrockOptions.additionalModelRequestFields?.output_config,\n            effort: maxReasoningEffort,\n          },\n        };\n      } else if (isOpenAIModel) {\n        // OpenAI models on Bedrock expect `reasoning_effort` as a flat value\n        bedrockOptions.additionalModelRequestFields = {\n          ...bedrockOptions.additionalModelRequestFields,\n          reasoning_effort: maxReasoningEffort,\n        };\n      } else {\n        // other models (such as Nova 2) use reasoningConfig format\n        bedrockOptions.additionalModelRequestFields = {\n          ...bedrockOptions.additionalModelRequestFields,\n          reasoningConfig: {\n            ...(thinkingType != null &&\n              thinkingType !== 'adaptive' && { type: thinkingType }),\n            ...(thinkingBudget != null && { budgetTokens: thinkingBudget }),\n            maxReasoningEffort,\n          },\n        };\n      }\n    }\n\n    if (useNativeStructuredOutput) {\n      bedrockOptions.additionalModelRequestFields = {\n        ...bedrockOptions.additionalModelRequestFields,\n        output_config: {\n          ...bedrockOptions.additionalModelRequestFields?.output_config,\n          format: {\n            type: 'json_schema',\n            schema: responseFormat!.schema,\n          },\n        },\n      };\n    }\n\n    if (isAnthropicThinkingEnabled && inferenceConfig.temperature != null) {\n      delete inferenceConfig.temperature;\n      warnings.push({\n        type: 'unsupported',\n        feature: 'temperature',\n        details: 'temperature is not supported when thinking is enabled',\n      });\n    }\n\n    if (isAnthropicThinkingEnabled && inferenceConfig.topP != null) {\n      delete inferenceConfig.topP;\n      warnings.push({\n        type: 'unsupported',\n        feature: 'topP',\n        details: 'topP is not supported when thinking is enabled',\n      });\n    }\n\n    if (isAnthropicThinkingEnabled && inferenceConfig.topK != null) {\n      delete inferenceConfig.topK;\n      warnings.push({\n        type: 'unsupported',\n        feature: 'topK',\n        details: 'topK is not supported when thinking is enabled',\n      });\n    }\n\n    // Filter tool content from prompt when no tools are available\n    const hasAnyTools = (toolConfig.tools?.length ?? 0) > 0 || additionalTools;\n    let filteredPrompt = prompt;\n\n    if (!hasAnyTools) {\n      const hasToolContent = prompt.some(\n        message =>\n          'content' in message &&\n          Array.isArray(message.content) &&\n          message.content.some(\n            part => part.type === 'tool-call' || part.type === 'tool-result',\n          ),\n      );\n\n      if (hasToolContent) {\n        filteredPrompt = prompt\n          .map(message =>\n            message.role === 'system'\n              ? message\n              : {\n                  ...message,\n                  content: message.content.filter(\n                    part =>\n                      part.type !== 'tool-call' && part.type !== 'tool-result',\n                  ),\n                },\n          )\n          .filter(\n            message => message.role === 'system' || message.content.length > 0,\n          ) as typeof prompt;\n\n        warnings.push({\n          type: 'unsupported',\n          feature: 'toolContent',\n          details:\n            'Tool calls and results removed from conversation because Bedrock does not support tool content without active tools.',\n        });\n      }\n    }\n\n    const isMistral = isMistralModel(this.modelId);\n    const { system, messages } = await convertToBedrockChatMessages(\n      filteredPrompt,\n      isMistral,\n    );\n\n    // Filter out reasoningConfig from providerOptions.bedrock to prevent sending it to Bedrock API\n    const {\n      reasoningConfig: _,\n      additionalModelRequestFields: __,\n      serviceTier: ___,\n      ...filteredBedrockOptions\n    } = providerOptions?.bedrock || {};\n\n    const additionalModelResponseFieldPaths = isAnthropicModel\n      ? ['/delta/stop_sequence']\n      : undefined;\n\n    return {\n      command: {\n        system,\n        messages,\n        additionalModelRequestFields:\n          bedrockOptions.additionalModelRequestFields,\n        ...(additionalModelResponseFieldPaths && {\n          additionalModelResponseFieldPaths,\n        }),\n        ...(Object.keys(inferenceConfig).length > 0 && {\n          inferenceConfig,\n        }),\n        ...(bedrockOptions.serviceTier != null && {\n          serviceTier: {\n            type: bedrockOptions.serviceTier,\n          },\n        }),\n        ...filteredBedrockOptions,\n        ...(toolConfig.tools !== undefined && toolConfig.tools.length > 0\n          ? { toolConfig }\n          : {}),\n      },\n      warnings,\n      usesJsonResponseTool: jsonResponseTool != null,\n      betas,\n    };\n  }\n\n  readonly supportedUrls: Record<string, RegExp[]> = {\n    // no supported urls for bedrock\n  };\n\n  private async getHeaders({\n    headers,\n  }: {\n    headers: Record<string, string | undefined> | undefined;\n  }) {\n    return combineHeaders(await resolve(this.config.headers), headers);\n  }\n\n  async doGenerate(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3GenerateResult> {\n    const {\n      command: args,\n      warnings,\n      usesJsonResponseTool,\n    } = await this.getArgs(options);\n\n    const url = `${this.getUrl(this.modelId)}/converse`;\n    const { value: response, responseHeaders } = await postJsonToApi({\n      url,\n      headers: await this.getHeaders({ headers: options.headers }),\n      body: args,\n      failedResponseHandler: createJsonErrorResponseHandler({\n        errorSchema: BedrockErrorSchema,\n        errorToMessage: error => `${error.message ?? 'Unknown error'}`,\n      }),\n      successfulResponseHandler: createJsonResponseHandler(\n        BedrockResponseSchema,\n      ),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    const content: Array<LanguageModelV3Content> = [];\n    let isJsonResponseFromTool = false;\n\n    // map response content to content array\n    for (const part of response.output.message.content) {\n      // text\n      if (part.text != null) {\n        content.push({ type: 'text', text: part.text });\n      }\n\n      // reasoning\n      if (part.reasoningContent) {\n        if ('reasoningText' in part.reasoningContent) {\n          const reasoning: LanguageModelV3Reasoning = {\n            type: 'reasoning',\n            text: part.reasoningContent.reasoningText.text,\n          };\n\n          if (part.reasoningContent.reasoningText.signature) {\n            reasoning.providerMetadata = {\n              bedrock: {\n                signature: part.reasoningContent.reasoningText.signature,\n              } satisfies BedrockReasoningMetadata,\n            };\n          }\n\n          content.push(reasoning);\n        } else if ('redactedReasoning' in part.reasoningContent) {\n          content.push({\n            type: 'reasoning',\n            text: '',\n            providerMetadata: {\n              bedrock: {\n                redactedData:\n                  part.reasoningContent.redactedReasoning.data ?? '',\n              } satisfies BedrockReasoningMetadata,\n            },\n          });\n        }\n      }\n\n      // tool calls\n      if (part.toolUse) {\n        const isJsonResponseTool =\n          usesJsonResponseTool && part.toolUse.name === 'json';\n\n        if (isJsonResponseTool) {\n          isJsonResponseFromTool = true;\n          // when a json response tool is used, the tool call becomes the text:\n          content.push({\n            type: 'text',\n            text: JSON.stringify(part.toolUse.input),\n          });\n        } else {\n          const isMistral = isMistralModel(this.modelId);\n          const rawToolCallId =\n            part.toolUse?.toolUseId ?? this.config.generateId();\n          content.push({\n            type: 'tool-call' as const,\n            toolCallId: normalizeToolCallId(rawToolCallId, isMistral),\n            toolName: part.toolUse?.name ?? `tool-${this.config.generateId()}`,\n            input: JSON.stringify(part.toolUse?.input ?? {}),\n          });\n        }\n      }\n    }\n\n    // provider metadata:\n    const stopSequence =\n      response.additionalModelResponseFields?.delta?.stop_sequence ?? null;\n\n    const providerMetadata =\n      response.trace ||\n      response.usage ||\n      response.performanceConfig ||\n      response.serviceTier ||\n      isJsonResponseFromTool ||\n      stopSequence\n        ? {\n            bedrock: {\n              ...(response.trace && typeof response.trace === 'object'\n                ? { trace: response.trace as JSONObject }\n                : {}),\n              ...(response.performanceConfig && {\n                performanceConfig: response.performanceConfig,\n              }),\n              ...(response.serviceTier && {\n                serviceTier: response.serviceTier,\n              }),\n              ...((response.usage?.cacheWriteInputTokens != null ||\n                response.usage?.cacheDetails != null) && {\n                usage: {\n                  ...(response.usage.cacheWriteInputTokens != null && {\n                    cacheWriteInputTokens: response.usage.cacheWriteInputTokens,\n                  }),\n                  ...(response.usage.cacheDetails != null && {\n                    cacheDetails: response.usage.cacheDetails,\n                  }),\n                },\n              }),\n              ...(isJsonResponseFromTool && { isJsonResponseFromTool: true }),\n              stopSequence,\n            },\n          }\n        : undefined;\n\n    return {\n      content,\n      finishReason: {\n        unified: mapBedrockFinishReason(\n          response.stopReason as BedrockStopReason,\n          isJsonResponseFromTool,\n        ),\n        raw: response.stopReason ?? undefined,\n      },\n      usage: convertBedrockUsage(response.usage),\n      response: {\n        id: responseHeaders?.['x-amzn-requestid'] ?? undefined,\n        timestamp:\n          responseHeaders?.['date'] != null\n            ? new Date(responseHeaders['date'])\n            : undefined,\n        modelId: this.modelId,\n        headers: responseHeaders,\n      },\n      warnings,\n      ...(providerMetadata && { providerMetadata }),\n    };\n  }\n\n  async doStream(\n    options: LanguageModelV3CallOptions,\n  ): Promise<LanguageModelV3StreamResult> {\n    const {\n      command: args,\n      warnings,\n      usesJsonResponseTool,\n    } = await this.getArgs(options);\n    const modelId = this.modelId;\n    const isMistral = isMistralModel(modelId);\n    const url = `${this.getUrl(modelId)}/converse-stream`;\n\n    const { value: response, responseHeaders } = await postJsonToApi({\n      url,\n      headers: await this.getHeaders({ headers: options.headers }),\n      body: args,\n      failedResponseHandler: createJsonErrorResponseHandler({\n        errorSchema: BedrockErrorSchema,\n        errorToMessage: error => `${error.type}: ${error.message}`,\n      }),\n      successfulResponseHandler:\n        createBedrockEventStreamResponseHandler(BedrockStreamSchema),\n      abortSignal: options.abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    let finishReason: LanguageModelV3FinishReason = {\n      unified: 'other',\n      raw: undefined,\n    };\n    let usage: BedrockUsage | undefined = undefined;\n    let providerMetadata: SharedV3ProviderMetadata | undefined = undefined;\n    let isJsonResponseFromTool = false;\n    let stopSequence: string | null = null;\n\n    const contentBlocks: Record<\n      number,\n      | {\n          type: 'tool-call';\n          toolCallId: string;\n          toolName: string;\n          jsonText: string;\n          isJsonResponseTool?: boolean;\n        }\n      | { type: 'text' | 'reasoning' }\n    > = {};\n\n    return {\n      stream: response.pipeThrough(\n        new TransformStream<\n          ParseResult<z.infer<typeof BedrockStreamSchema>>,\n          LanguageModelV3StreamPart\n        >({\n          start(controller) {\n            controller.enqueue({ type: 'stream-start', warnings });\n            controller.enqueue({\n              type: 'response-metadata',\n              id: responseHeaders?.['x-amzn-requestid'] ?? undefined,\n              timestamp:\n                responseHeaders?.['date'] != null\n                  ? new Date(responseHeaders['date'])\n                  : undefined,\n              modelId,\n            });\n          },\n\n          transform(chunk, controller) {\n            function enqueueError(bedrockError: Record<string, any>) {\n              finishReason = { unified: 'error', raw: undefined };\n              controller.enqueue({ type: 'error', error: bedrockError });\n            }\n\n            // Emit raw chunk if requested (before anything else)\n            if (options.includeRawChunks) {\n              controller.enqueue({ type: 'raw', rawValue: chunk.rawValue });\n            }\n\n            // handle failed chunk parsing / validation:\n            if (!chunk.success) {\n              enqueueError(chunk.error);\n              return;\n            }\n\n            const value = chunk.value;\n\n            // handle errors:\n            if (value.internalServerException) {\n              enqueueError(value.internalServerException);\n              return;\n            }\n            if (value.modelStreamErrorException) {\n              enqueueError(value.modelStreamErrorException);\n              return;\n            }\n            if (value.throttlingException) {\n              enqueueError(value.throttlingException);\n              return;\n            }\n            if (value.validationException) {\n              enqueueError(value.validationException);\n              return;\n            }\n\n            if (value.messageStop) {\n              finishReason = {\n                unified: mapBedrockFinishReason(\n                  value.messageStop.stopReason as BedrockStopReason,\n                  isJsonResponseFromTool,\n                ),\n                raw: value.messageStop.stopReason ?? undefined,\n              };\n              stopSequence =\n                value.messageStop.additionalModelResponseFields?.delta\n                  ?.stop_sequence ?? null;\n            }\n\n            if (value.metadata) {\n              if (value.metadata.usage) {\n                usage = value.metadata.usage;\n              }\n\n              const cacheUsage =\n                value.metadata.usage?.cacheWriteInputTokens != null ||\n                value.metadata.usage?.cacheDetails != null\n                  ? {\n                      usage: {\n                        ...(value.metadata.usage?.cacheWriteInputTokens !=\n                          null && {\n                          cacheWriteInputTokens:\n                            value.metadata.usage.cacheWriteInputTokens,\n                        }),\n                        ...(value.metadata.usage?.cacheDetails != null && {\n                          cacheDetails: value.metadata.usage.cacheDetails,\n                        }),\n                      },\n                    }\n                  : undefined;\n\n              const trace = value.metadata.trace\n                ? {\n                    trace: value.metadata.trace as JSONObject,\n                  }\n                : undefined;\n\n              if (\n                cacheUsage ||\n                trace ||\n                value.metadata.performanceConfig ||\n                value.metadata.serviceTier\n              ) {\n                providerMetadata = {\n                  bedrock: {\n                    ...cacheUsage,\n                    ...trace,\n                    ...(value.metadata.performanceConfig && {\n                      performanceConfig: value.metadata.performanceConfig,\n                    }),\n                    ...(value.metadata.serviceTier && {\n                      serviceTier: value.metadata.serviceTier,\n                    }),\n                  },\n                };\n              }\n            }\n\n            if (\n              value.contentBlockStart?.contentBlockIndex != null &&\n              !value.contentBlockStart?.start?.toolUse\n            ) {\n              const blockIndex = value.contentBlockStart.contentBlockIndex;\n              contentBlocks[blockIndex] = { type: 'text' };\n              controller.enqueue({\n                type: 'text-start',\n                id: String(blockIndex),\n              });\n            }\n\n            if (\n              value.contentBlockDelta?.delta &&\n              'text' in value.contentBlockDelta.delta &&\n              value.contentBlockDelta.delta.text\n            ) {\n              const blockIndex = value.contentBlockDelta.contentBlockIndex || 0;\n\n              if (contentBlocks[blockIndex] == null) {\n                contentBlocks[blockIndex] = { type: 'text' };\n\n                controller.enqueue({\n                  type: 'text-start',\n                  id: String(blockIndex),\n                });\n              }\n\n              controller.enqueue({\n                type: 'text-delta',\n                id: String(blockIndex),\n                delta: value.contentBlockDelta.delta.text,\n              });\n            }\n\n            if (value.contentBlockStop?.contentBlockIndex != null) {\n              const blockIndex = value.contentBlockStop.contentBlockIndex;\n              const contentBlock = contentBlocks[blockIndex];\n\n              if (contentBlock != null) {\n                if (contentBlock.type === 'reasoning') {\n                  controller.enqueue({\n                    type: 'reasoning-end',\n                    id: String(blockIndex),\n                  });\n                } else if (contentBlock.type === 'text') {\n                  controller.enqueue({\n                    type: 'text-end',\n                    id: String(blockIndex),\n                  });\n                } else if (contentBlock.type === 'tool-call') {\n                  if (contentBlock.isJsonResponseTool) {\n                    isJsonResponseFromTool = true;\n                    // when this specific tool is the json response tool, emit the tool input as text\n                    controller.enqueue({\n                      type: 'text-start',\n                      id: String(blockIndex),\n                    });\n                    controller.enqueue({\n                      type: 'text-delta',\n                      id: String(blockIndex),\n                      delta: contentBlock.jsonText,\n                    });\n                    controller.enqueue({\n                      type: 'text-end',\n                      id: String(blockIndex),\n                    });\n                  } else {\n                    controller.enqueue({\n                      type: 'tool-input-end',\n                      id: contentBlock.toolCallId,\n                    });\n                    controller.enqueue({\n                      type: 'tool-call',\n                      toolCallId: contentBlock.toolCallId,\n                      toolName: contentBlock.toolName,\n                      input:\n                        contentBlock.jsonText === ''\n                          ? '{}'\n                          : contentBlock.jsonText,\n                    });\n                  }\n                }\n\n                delete contentBlocks[blockIndex];\n              }\n            }\n\n            if (\n              value.contentBlockDelta?.delta &&\n              'reasoningContent' in value.contentBlockDelta.delta &&\n              value.contentBlockDelta.delta.reasoningContent\n            ) {\n              const blockIndex = value.contentBlockDelta.contentBlockIndex || 0;\n              const reasoningContent =\n                value.contentBlockDelta.delta.reasoningContent;\n\n              if ('text' in reasoningContent && reasoningContent.text) {\n                if (contentBlocks[blockIndex] == null) {\n                  contentBlocks[blockIndex] = { type: 'reasoning' };\n                  controller.enqueue({\n                    type: 'reasoning-start',\n                    id: String(blockIndex),\n                  });\n                }\n\n                controller.enqueue({\n                  type: 'reasoning-delta',\n                  id: String(blockIndex),\n                  delta: reasoningContent.text,\n                });\n              } else if (\n                'signature' in reasoningContent &&\n                reasoningContent.signature\n              ) {\n                if (contentBlocks[blockIndex] == null) {\n                  contentBlocks[blockIndex] = { type: 'reasoning' };\n                  controller.enqueue({\n                    type: 'reasoning-start',\n                    id: String(blockIndex),\n                  });\n                }\n                controller.enqueue({\n                  type: 'reasoning-delta',\n                  id: String(blockIndex),\n                  delta: '',\n                  providerMetadata: {\n                    bedrock: {\n                      signature: reasoningContent.signature,\n                    } satisfies BedrockReasoningMetadata,\n                  },\n                });\n              } else if ('data' in reasoningContent && reasoningContent.data) {\n                if (contentBlocks[blockIndex] == null) {\n                  contentBlocks[blockIndex] = { type: 'reasoning' };\n                  controller.enqueue({\n                    type: 'reasoning-start',\n                    id: String(blockIndex),\n                  });\n                }\n                controller.enqueue({\n                  type: 'reasoning-delta',\n                  id: String(blockIndex),\n                  delta: '',\n                  providerMetadata: {\n                    bedrock: {\n                      redactedData: reasoningContent.data,\n                    } satisfies BedrockReasoningMetadata,\n                  },\n                });\n              }\n            }\n\n            const contentBlockStart = value.contentBlockStart;\n            if (contentBlockStart?.start?.toolUse != null) {\n              const toolUse = contentBlockStart.start.toolUse;\n              const blockIndex = contentBlockStart.contentBlockIndex!;\n              const isJsonResponseTool =\n                usesJsonResponseTool && toolUse.name === 'json';\n\n              const normalizedToolCallId = normalizeToolCallId(\n                toolUse.toolUseId!,\n                isMistral,\n              );\n              contentBlocks[blockIndex] = {\n                type: 'tool-call',\n                toolCallId: normalizedToolCallId,\n                toolName: toolUse.name!,\n                jsonText: '',\n                isJsonResponseTool,\n              };\n\n              // when this specific tool is the json response tool, we don't emit tool events\n              if (!isJsonResponseTool) {\n                controller.enqueue({\n                  type: 'tool-input-start',\n                  id: normalizedToolCallId,\n                  toolName: toolUse.name!,\n                });\n              }\n            }\n\n            const contentBlockDelta = value.contentBlockDelta;\n            if (\n              contentBlockDelta?.delta &&\n              'toolUse' in contentBlockDelta.delta &&\n              contentBlockDelta.delta.toolUse\n            ) {\n              const blockIndex = contentBlockDelta.contentBlockIndex!;\n              const contentBlock = contentBlocks[blockIndex];\n\n              if (contentBlock?.type === 'tool-call') {\n                const delta = contentBlockDelta.delta.toolUse.input ?? '';\n\n                // when this specific tool is the json response tool, we don't emit tool events\n                if (!contentBlock.isJsonResponseTool) {\n                  controller.enqueue({\n                    type: 'tool-input-delta',\n                    id: contentBlock.toolCallId,\n                    delta: delta,\n                  });\n                }\n\n                contentBlock.jsonText += delta;\n              }\n            }\n          },\n          flush(controller) {\n            // Update provider metadata with isJsonResponseFromTool and stopSequence if needed\n            if (isJsonResponseFromTool || stopSequence != null) {\n              if (providerMetadata) {\n                providerMetadata.bedrock = {\n                  ...providerMetadata.bedrock,\n                  ...(isJsonResponseFromTool && {\n                    isJsonResponseFromTool: true,\n                  }),\n                  stopSequence,\n                };\n              } else {\n                providerMetadata = {\n                  bedrock: {\n                    ...(isJsonResponseFromTool && {\n                      isJsonResponseFromTool: true,\n                    }),\n                    stopSequence,\n                  },\n                };\n              }\n            }\n\n            controller.enqueue({\n              type: 'finish',\n              finishReason,\n              usage: convertBedrockUsage(usage),\n              ...(providerMetadata && { providerMetadata }),\n            });\n          },\n        }),\n      ),\n      // TODO request?\n      response: { headers: responseHeaders },\n    };\n  }\n\n  private getUrl(modelId: string) {\n    const encodedModelId = encodeURIComponent(modelId);\n    return `${this.config.baseUrl()}/model/${encodedModelId}`;\n  }\n}\n\nconst BedrockStopReasonSchema = z.union([\n  z.enum(BEDROCK_STOP_REASONS),\n  z.string(),\n]);\n\nconst BedrockAdditionalModelResponseFieldsSchema = z\n  .object({\n    delta: z\n      .object({\n        stop_sequence: z.string().nullish(),\n      })\n      .nullish(),\n  })\n  .catchall(z.unknown());\n\nconst BedrockToolUseSchema = z.object({\n  toolUseId: z.string(),\n  name: z.string(),\n  input: z.unknown().optional(),\n});\n\nconst BedrockReasoningTextSchema = z.object({\n  signature: z.string().nullish(),\n  text: z.string(),\n});\n\nconst BedrockRedactedReasoningSchema = z.object({\n  data: z.string(),\n});\n\n// limited version of the schema, focused on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst BedrockResponseSchema = z.object({\n  metrics: z\n    .object({\n      latencyMs: z.number(),\n    })\n    .nullish(),\n  output: z.object({\n    message: z.object({\n      content: z.array(\n        z.object({\n          text: z.string().nullish(),\n          toolUse: BedrockToolUseSchema.nullish(),\n          reasoningContent: z\n            .union([\n              z.object({\n                reasoningText: BedrockReasoningTextSchema,\n              }),\n              z.object({\n                redactedReasoning: BedrockRedactedReasoningSchema,\n              }),\n            ])\n            .nullish(),\n        }),\n      ),\n      role: z.string(),\n    }),\n  }),\n  stopReason: BedrockStopReasonSchema,\n  additionalModelResponseFields:\n    BedrockAdditionalModelResponseFieldsSchema.nullish(),\n  trace: z.unknown().nullish(),\n  performanceConfig: z.object({ latency: z.string() }).nullish(),\n  serviceTier: z.object({ type: z.string() }).nullish(),\n  usage: z.object({\n    inputTokens: z.number(),\n    outputTokens: z.number(),\n    totalTokens: z.number(),\n    cacheReadInputTokens: z.number().nullish(),\n    cacheWriteInputTokens: z.number().nullish(),\n    cacheDetails: z\n      .array(z.object({ inputTokens: z.number(), ttl: z.string() }))\n      .nullish(),\n  }),\n});\n\n// limited version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst BedrockStreamSchema = z.object({\n  contentBlockDelta: z\n    .object({\n      contentBlockIndex: z.number(),\n      delta: z\n        .union([\n          z.object({ text: z.string() }),\n          z.object({ toolUse: z.object({ input: z.string() }) }),\n          z.object({\n            reasoningContent: z.object({ text: z.string() }),\n          }),\n          z.object({\n            reasoningContent: z.object({\n              signature: z.string(),\n            }),\n          }),\n          z.object({\n            reasoningContent: z.object({ data: z.string() }),\n          }),\n        ])\n        .nullish(),\n    })\n    .nullish(),\n  contentBlockStart: z\n    .object({\n      contentBlockIndex: z.number(),\n      start: z\n        .object({\n          toolUse: BedrockToolUseSchema.nullish(),\n        })\n        .nullish(),\n    })\n    .nullish(),\n  contentBlockStop: z\n    .object({\n      contentBlockIndex: z.number(),\n    })\n    .nullish(),\n  internalServerException: z.record(z.string(), z.unknown()).nullish(),\n  messageStop: z\n    .object({\n      additionalModelResponseFields:\n        BedrockAdditionalModelResponseFieldsSchema.nullish(),\n      stopReason: BedrockStopReasonSchema,\n    })\n    .nullish(),\n  metadata: z\n    .object({\n      trace: z.unknown().nullish(),\n      performanceConfig: z.object({ latency: z.string() }).nullish(),\n      serviceTier: z.object({ type: z.string() }).nullish(),\n      usage: z\n        .object({\n          cacheReadInputTokens: z.number().nullish(),\n          cacheWriteInputTokens: z.number().nullish(),\n          cacheDetails: z\n            .array(z.object({ inputTokens: z.number(), ttl: z.string() }))\n            .nullish(),\n          inputTokens: z.number(),\n          outputTokens: z.number(),\n        })\n        .nullish(),\n    })\n    .nullish(),\n  modelStreamErrorException: z.record(z.string(), z.unknown()).nullish(),\n  throttlingException: z.record(z.string(), z.unknown()).nullish(),\n  validationException: z.record(z.string(), z.unknown()).nullish(),\n});\n\nexport {\n  bedrockReasoningMetadataSchema,\n  type BedrockReasoningMetadata,\n} from './bedrock-reasoning-metadata';\n","import { z } from 'zod/v4';\n\nexport type BedrockEmbeddingModelId =\n  | 'amazon.titan-embed-text-v1'\n  | 'amazon.titan-embed-text-v2:0'\n  | 'cohere.embed-english-v3'\n  | 'cohere.embed-multilingual-v3'\n  | (string & {});\n\nexport const amazonBedrockEmbeddingModelOptionsSchema = z.object({\n  /**\n   * The number of dimensions the resulting output embeddings should have (defaults to 1024).\n   * Only supported in amazon.titan-embed-text-v2:0.\n   */\n  dimensions: z\n    .union([z.literal(1024), z.literal(512), z.literal(256)])\n    .optional(),\n\n  /**\n   * Flag indicating whether or not to normalize the output embeddings. Defaults to true.\n   * Only supported in amazon.titan-embed-text-v2:0.\n   */\n  normalize: z.boolean().optional(),\n\n  /**\n   * The number of dimensions for Nova embedding models (defaults to 1024).\n   * Supported values: 256, 384, 1024, 3072.\n   * Only supported in amazon.nova-* embedding models.\n   */\n  embeddingDimension: z\n    .union([z.literal(256), z.literal(384), z.literal(1024), z.literal(3072)])\n    .optional(),\n\n  /**\n   * The purpose of the embedding. Defaults to 'GENERIC_INDEX'.\n   * Only supported in amazon.nova-* embedding models.\n   */\n  embeddingPurpose: z\n    .enum([\n      'GENERIC_INDEX',\n      'TEXT_RETRIEVAL',\n      'IMAGE_RETRIEVAL',\n      'VIDEO_RETRIEVAL',\n      'DOCUMENT_RETRIEVAL',\n      'AUDIO_RETRIEVAL',\n      'GENERIC_RETRIEVAL',\n      'CLASSIFICATION',\n      'CLUSTERING',\n    ])\n    .optional(),\n\n  /**\n   * Input type for Cohere embedding models on Bedrock.\n   * Common values: `search_document`, `search_query`, `classification`, `clustering`.\n   * If not set, the provider defaults to `search_query`.\n   */\n  inputType: z\n    .enum(['search_document', 'search_query', 'classification', 'clustering'])\n    .optional(),\n\n  /**\n   * Truncation behavior when input exceeds the model's context length.\n   * Supported in Cohere and Nova embedding models. Defaults to 'END' for Nova models.\n   */\n  truncate: z.enum(['NONE', 'START', 'END']).optional(),\n\n  /**\n   * The number of dimensions the resulting output embeddings should have (defaults to 1536).\n   * Only supported in cohere.embed-v4:0 and newer Cohere embedding models.\n   */\n  outputDimension: z\n    .union([z.literal(256), z.literal(512), z.literal(1024), z.literal(1536)])\n    .optional(),\n});\n\nexport type AmazonBedrockEmbeddingModelOptions = z.infer<\n  typeof amazonBedrockEmbeddingModelOptionsSchema\n>;\n","import {\n  TooManyEmbeddingValuesForCallError,\n  type EmbeddingModelV3,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  parseProviderOptions,\n  postJsonToApi,\n  resolve,\n  type FetchFunction,\n  type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport {\n  amazonBedrockEmbeddingModelOptionsSchema,\n  type BedrockEmbeddingModelId,\n} from './bedrock-embedding-options';\nimport { BedrockErrorSchema } from './bedrock-error';\nimport { z } from 'zod/v4';\n\ntype BedrockEmbeddingConfig = {\n  baseUrl: () => string;\n  headers: Resolvable<Record<string, string | undefined>>;\n  fetch?: FetchFunction;\n};\n\ntype DoEmbedResponse = Awaited<ReturnType<EmbeddingModelV3['doEmbed']>>;\n\nexport class BedrockEmbeddingModel implements EmbeddingModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly provider = 'amazon-bedrock';\n  readonly maxEmbeddingsPerCall = 1;\n  readonly supportsParallelCalls = true;\n\n  constructor(\n    readonly modelId: BedrockEmbeddingModelId,\n    private readonly config: BedrockEmbeddingConfig,\n  ) {}\n\n  private getUrl(modelId: string): string {\n    const encodedModelId = encodeURIComponent(modelId);\n    return `${this.config.baseUrl()}/model/${encodedModelId}/invoke`;\n  }\n\n  async doEmbed({\n    values,\n    headers,\n    abortSignal,\n    providerOptions,\n  }: Parameters<EmbeddingModelV3['doEmbed']>[0]): Promise<DoEmbedResponse> {\n    if (values.length > this.maxEmbeddingsPerCall) {\n      throw new TooManyEmbeddingValuesForCallError({\n        provider: this.provider,\n        modelId: this.modelId,\n        maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,\n        values,\n      });\n    }\n\n    // Parse provider options\n    const bedrockOptions =\n      (await parseProviderOptions({\n        provider: 'bedrock',\n        providerOptions,\n        schema: amazonBedrockEmbeddingModelOptionsSchema,\n      })) ?? {};\n\n    // https://docs.aws.amazon.com/bedrock/latest/APIReference/API_runtime_InvokeModel.html\n    //\n    // Note: Different embedding model families expect different request/response\n    // payloads (e.g. Titan vs Cohere vs Nova). We keep the public interface stable and\n    // adapt here based on the modelId.\n    const isNovaModel =\n      this.modelId.startsWith('amazon.nova-') && this.modelId.includes('embed');\n    const isCohereModel = this.modelId.startsWith('cohere.embed-');\n\n    const args = isNovaModel\n      ? {\n          taskType: 'SINGLE_EMBEDDING',\n          singleEmbeddingParams: {\n            embeddingPurpose:\n              bedrockOptions.embeddingPurpose ?? 'GENERIC_INDEX',\n            embeddingDimension: bedrockOptions.embeddingDimension ?? 1024,\n            text: {\n              truncationMode: bedrockOptions.truncate ?? 'END',\n              value: values[0],\n            },\n          },\n        }\n      : isCohereModel\n        ? {\n            // Cohere embedding models on Bedrock require `input_type`.\n            // Without it, the service attempts other schema branches and rejects the request.\n            input_type: bedrockOptions.inputType ?? 'search_query',\n            texts: [values[0]],\n            truncate: bedrockOptions.truncate,\n            output_dimension: bedrockOptions.outputDimension,\n          }\n        : {\n            inputText: values[0],\n            dimensions: bedrockOptions.dimensions,\n            normalize: bedrockOptions.normalize,\n          };\n\n    const url = this.getUrl(this.modelId);\n    const { value: response } = await postJsonToApi({\n      url,\n      headers: await resolve(\n        combineHeaders(await resolve(this.config.headers), headers),\n      ),\n      body: args,\n      failedResponseHandler: createJsonErrorResponseHandler({\n        errorSchema: BedrockErrorSchema,\n        errorToMessage: error => `${error.type}: ${error.message}`,\n      }),\n      successfulResponseHandler: createJsonResponseHandler(\n        BedrockEmbeddingResponseSchema,\n      ),\n      fetch: this.config.fetch,\n      abortSignal,\n    });\n\n    // Extract embedding based on response format\n    let embedding: number[];\n    if ('embedding' in response) {\n      // Titan response\n      embedding = response.embedding;\n    } else if (Array.isArray(response.embeddings)) {\n      const firstEmbedding = response.embeddings[0];\n      if (\n        typeof firstEmbedding === 'object' &&\n        firstEmbedding !== null &&\n        'embeddingType' in firstEmbedding\n      ) {\n        // Nova response\n        embedding = firstEmbedding.embedding;\n      } else {\n        // Cohere v3 response\n        embedding = firstEmbedding as number[];\n      }\n    } else {\n      // Cohere v4 response\n      embedding = response.embeddings.float[0];\n    }\n\n    // Extract token count based on response format\n    const tokens =\n      'inputTextTokenCount' in response\n        ? response.inputTextTokenCount // Titan response\n        : 'inputTokenCount' in response\n          ? (response.inputTokenCount ?? 0) // Nova response\n          : NaN; // Cohere doesn't return token count\n\n    return {\n      embeddings: [embedding],\n      usage: { tokens },\n      warnings: [],\n    };\n  }\n}\n\nconst BedrockEmbeddingResponseSchema = z.union([\n  // Titan-style response\n  z.object({\n    embedding: z.array(z.number()),\n    inputTextTokenCount: z.number(),\n  }),\n  // Nova-style response\n  z.object({\n    embeddings: z.array(\n      z.object({\n        embeddingType: z.string(),\n        embedding: z.array(z.number()),\n      }),\n    ),\n    inputTokenCount: z.number().optional(),\n  }),\n  // Cohere v3-style response\n  z.object({\n    embeddings: z.array(z.array(z.number())),\n  }),\n  // Cohere v4-style response\n  z.object({\n    embeddings: z.object({\n      float: z.array(z.array(z.number())),\n    }),\n  }),\n]);\n","export type BedrockImageModelId = 'amazon.nova-canvas-v1:0' | (string & {});\n\n// https://docs.aws.amazon.com/nova/latest/userguide/image-gen-req-resp-structure.html\nexport const modelMaxImagesPerCall: Record<BedrockImageModelId, number> = {\n  'amazon.nova-canvas-v1:0': 5,\n};\n","import type {\n  ImageModelV3,\n  ImageModelV3File,\n  SharedV3Warning,\n} from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  convertUint8ArrayToBase64,\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  postJsonToApi,\n  resolve,\n  type FetchFunction,\n  type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport {\n  modelMaxImagesPerCall,\n  type BedrockImageModelId,\n} from './bedrock-image-settings';\nimport { BedrockErrorSchema } from './bedrock-error';\nimport { z } from 'zod/v4';\n\ntype BedrockImageModelConfig = {\n  baseUrl: () => string;\n  headers: Resolvable<Record<string, string | undefined>>;\n  fetch?: FetchFunction;\n  _internal?: {\n    currentDate?: () => Date;\n  };\n};\n\nexport class BedrockImageModel implements ImageModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly provider = 'amazon-bedrock';\n\n  get maxImagesPerCall(): number {\n    return modelMaxImagesPerCall[this.modelId] ?? 1;\n  }\n\n  private getUrl(modelId: string): string {\n    const encodedModelId = encodeURIComponent(modelId);\n    return `${this.config.baseUrl()}/model/${encodedModelId}/invoke`;\n  }\n\n  constructor(\n    readonly modelId: BedrockImageModelId,\n    private readonly config: BedrockImageModelConfig,\n  ) {}\n\n  async doGenerate({\n    prompt,\n    n,\n    size,\n    aspectRatio,\n    seed,\n    providerOptions,\n    headers,\n    abortSignal,\n    files,\n    mask,\n  }: Parameters<ImageModelV3['doGenerate']>[0]): Promise<\n    Awaited<ReturnType<ImageModelV3['doGenerate']>>\n  > {\n    const warnings: Array<SharedV3Warning> = [];\n    const [width, height] = size ? size.split('x').map(Number) : [];\n\n    const hasFiles = files != null && files.length > 0;\n\n    // Build image generation config (common to most modes)\n    const imageGenerationConfig = {\n      ...(width ? { width } : {}),\n      ...(height ? { height } : {}),\n      ...(seed ? { seed } : {}),\n      ...(n ? { numberOfImages: n } : {}),\n      ...(providerOptions?.bedrock?.quality\n        ? { quality: providerOptions.bedrock.quality }\n        : {}),\n      ...(providerOptions?.bedrock?.cfgScale\n        ? { cfgScale: providerOptions.bedrock.cfgScale }\n        : {}),\n    };\n\n    let args: Record<string, unknown>;\n\n    if (hasFiles) {\n      // Check if mask is actually provided (has valid data, not just an empty object)\n      const hasMask = mask?.type != null;\n      const hasMaskPrompt = providerOptions?.bedrock?.maskPrompt != null;\n\n      // Determine task type from provider options, or infer from mask presence\n      const taskType =\n        providerOptions?.bedrock?.taskType ??\n        (hasMask || hasMaskPrompt ? 'INPAINTING' : 'IMAGE_VARIATION');\n\n      const sourceImageBase64 = getBase64Data(files[0]);\n\n      switch (taskType) {\n        case 'INPAINTING': {\n          const inPaintingParams: Record<string, unknown> = {\n            image: sourceImageBase64,\n            ...(prompt ? { text: prompt } : {}),\n            ...(providerOptions?.bedrock?.negativeText\n              ? { negativeText: providerOptions.bedrock.negativeText }\n              : {}),\n          };\n\n          // Handle mask - can be either a maskImage or maskPrompt\n          if (hasMask) {\n            inPaintingParams.maskImage = getBase64Data(mask);\n          } else if (hasMaskPrompt) {\n            inPaintingParams.maskPrompt = providerOptions.bedrock.maskPrompt;\n          }\n\n          args = {\n            taskType: 'INPAINTING',\n            inPaintingParams,\n            imageGenerationConfig,\n          };\n          break;\n        }\n\n        case 'OUTPAINTING': {\n          const outPaintingParams: Record<string, unknown> = {\n            image: sourceImageBase64,\n            ...(prompt ? { text: prompt } : {}),\n            ...(providerOptions?.bedrock?.negativeText\n              ? { negativeText: providerOptions.bedrock.negativeText }\n              : {}),\n            ...(providerOptions?.bedrock?.outPaintingMode\n              ? { outPaintingMode: providerOptions.bedrock.outPaintingMode }\n              : {}),\n          };\n\n          // Outpainting requires a maskImage (white pixels = area to change)\n          if (hasMask) {\n            outPaintingParams.maskImage = getBase64Data(mask);\n          } else if (hasMaskPrompt) {\n            outPaintingParams.maskPrompt = providerOptions.bedrock.maskPrompt;\n          }\n\n          args = {\n            taskType: 'OUTPAINTING',\n            outPaintingParams,\n            imageGenerationConfig,\n          };\n          break;\n        }\n\n        case 'BACKGROUND_REMOVAL': {\n          // Background removal only needs the image, no other params\n          args = {\n            taskType: 'BACKGROUND_REMOVAL',\n            backgroundRemovalParams: {\n              image: sourceImageBase64,\n            },\n          };\n          break;\n        }\n\n        case 'IMAGE_VARIATION': {\n          // Image variation can use multiple images\n          const images = files.map(file => getBase64Data(file));\n\n          const imageVariationParams: Record<string, unknown> = {\n            images,\n            ...(prompt ? { text: prompt } : {}),\n            ...(providerOptions?.bedrock?.negativeText\n              ? { negativeText: providerOptions.bedrock.negativeText }\n              : {}),\n            ...(providerOptions?.bedrock?.similarityStrength != null\n              ? {\n                  similarityStrength:\n                    providerOptions.bedrock.similarityStrength,\n                }\n              : {}),\n          };\n\n          args = {\n            taskType: 'IMAGE_VARIATION',\n            imageVariationParams,\n            imageGenerationConfig,\n          };\n          break;\n        }\n\n        default:\n          throw new Error(`Unsupported task type: ${taskType}`);\n      }\n    } else {\n      // Standard image generation mode\n      args = {\n        taskType: 'TEXT_IMAGE',\n        textToImageParams: {\n          text: prompt,\n          ...(providerOptions?.bedrock?.negativeText\n            ? {\n                negativeText: providerOptions.bedrock.negativeText,\n              }\n            : {}),\n          ...(providerOptions?.bedrock?.style\n            ? {\n                style: providerOptions.bedrock.style,\n              }\n            : {}),\n        },\n        imageGenerationConfig,\n      };\n    }\n\n    if (aspectRatio != undefined) {\n      warnings.push({\n        type: 'unsupported',\n        feature: 'aspectRatio',\n        details:\n          'This model does not support aspect ratio. Use `size` instead.',\n      });\n    }\n\n    const currentDate = this.config._internal?.currentDate?.() ?? new Date();\n    const { value: response, responseHeaders } = await postJsonToApi({\n      url: this.getUrl(this.modelId),\n      headers: await resolve(\n        combineHeaders(await resolve(this.config.headers), headers),\n      ),\n      body: args,\n      failedResponseHandler: createJsonErrorResponseHandler({\n        errorSchema: BedrockErrorSchema,\n        errorToMessage: error => `${error.type}: ${error.message}`,\n      }),\n      successfulResponseHandler: createJsonResponseHandler(\n        bedrockImageResponseSchema,\n      ),\n      abortSignal,\n      fetch: this.config.fetch,\n    });\n\n    // Handle moderated/blocked requests\n    if (response.status === 'Request Moderated') {\n      const moderationReasons = response.details?.['Moderation Reasons'];\n      const reasons = Array.isArray(moderationReasons)\n        ? moderationReasons\n        : ['Unknown'];\n      throw new Error(\n        `Amazon Bedrock request was moderated: ${reasons.join(', ')}`,\n      );\n    }\n\n    // Check if images are present\n    if (!response.images || response.images.length === 0) {\n      throw new Error(\n        'Amazon Bedrock returned no images. ' +\n          (response.status ? `Status: ${response.status}` : ''),\n      );\n    }\n\n    return {\n      images: response.images,\n      warnings,\n      response: {\n        timestamp: currentDate,\n        modelId: this.modelId,\n        headers: responseHeaders,\n      },\n    };\n  }\n}\n\nfunction getBase64Data(file: ImageModelV3File): string {\n  if (file.type === 'url') {\n    throw new Error(\n      'URL-based images are not supported for Amazon Bedrock image editing. ' +\n        'Please provide the image data directly.',\n    );\n  }\n\n  if (file.data instanceof Uint8Array) {\n    return convertUint8ArrayToBase64(file.data);\n  }\n\n  // Already base64 string\n  return file.data;\n}\n\n// minimal version of the schema, focussed on what is needed for the implementation\n// this approach limits breakages when the API changes and increases efficiency\nconst bedrockImageResponseSchema = z.object({\n  // Normal successful response\n  images: z.array(z.string()).optional(),\n\n  // Moderation response fields\n  id: z.string().optional(),\n  status: z.string().optional(),\n  result: z.unknown().optional(),\n  progress: z.unknown().optional(),\n  details: z.record(z.string(), z.unknown()).optional(),\n  preview: z.unknown().optional(),\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 {\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 * @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): 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: 'bedrock',\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","import { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://docs.aws.amazon.com/bedrock/latest/APIReference/API_agent-runtime_Rerank.html\nexport type BedrockRerankingInput = {\n  nextToken?: string;\n  queries: [{ type: 'TEXT'; textQuery: { text: string } }];\n  rerankingConfiguration: {\n    type: 'BEDROCK_RERANKING_MODEL';\n    bedrockRerankingConfiguration: {\n      modelConfiguration: {\n        modelArn: string;\n        additionalModelRequestFields?: Record<string, unknown>;\n      };\n      numberOfResults?: number;\n    };\n  };\n  sources: {\n    type: 'INLINE';\n    inlineDocumentSource:\n      | {\n          type: 'TEXT';\n          textDocument: { text: string };\n        }\n      | {\n          type: 'JSON';\n          jsonDocument: unknown;\n        };\n  }[];\n};\n\nexport const bedrockRerankingResponseSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      results: z.array(\n        z.object({\n          index: z.number(),\n          relevanceScore: z.number(),\n        }),\n      ),\n      nextToken: z.string().optional(),\n    }),\n  ),\n);\n","import { lazySchema, zodSchema } from '@ai-sdk/provider-utils';\nimport { z } from 'zod/v4';\n\n// https://docs.aws.amazon.com/bedrock/latest/userguide/rerank-supported.html\nexport type BedrockRerankingModelId =\n  | 'amazon.rerank-v1:0'\n  | 'cohere.rerank-v3-5:0'\n  | (string & {});\n\nexport type AmazonBedrockRerankingModelOptions = {\n  /**\n   * If the total number of results was greater than could fit in a response, a token is returned in the nextToken field. You can enter that token in this field to return the next batch of results.\n   */\n  nextToken?: string;\n\n  /**\n   * Additional model request fields to pass to the model.\n   */\n  additionalModelRequestFields?: Record<string, unknown>;\n};\n\nexport const amazonBedrockRerankingModelOptionsSchema = lazySchema(() =>\n  zodSchema(\n    z.object({\n      /**\n       * If the total number of results was greater than could fit in a response, a token is returned in the nextToken field. You can enter that token in this field to return the next batch of results.\n       */\n      nextToken: z.string().optional(),\n\n      /**\n       * Additional model request fields to pass to the model.\n       */\n      additionalModelRequestFields: z.record(z.string(), z.any()).optional(),\n    }),\n  ),\n);\n","import type { RerankingModelV3 } from '@ai-sdk/provider';\nimport {\n  combineHeaders,\n  createJsonErrorResponseHandler,\n  createJsonResponseHandler,\n  parseProviderOptions,\n  postJsonToApi,\n  resolve,\n  type FetchFunction,\n  type Resolvable,\n} from '@ai-sdk/provider-utils';\nimport { BedrockErrorSchema } from '../bedrock-error';\nimport {\n  bedrockRerankingResponseSchema,\n  type BedrockRerankingInput,\n} from './bedrock-reranking-api';\nimport {\n  amazonBedrockRerankingModelOptionsSchema,\n  type BedrockRerankingModelId,\n} from './bedrock-reranking-options';\n\ntype BedrockRerankingConfig = {\n  baseUrl: () => string;\n  region: string;\n  headers: Resolvable<Record<string, string | undefined>>;\n  fetch?: FetchFunction;\n};\n\ntype DoRerankResponse = Awaited<ReturnType<RerankingModelV3['doRerank']>>;\n\nexport class BedrockRerankingModel implements RerankingModelV3 {\n  readonly specificationVersion = 'v3';\n  readonly provider = 'amazon-bedrock';\n\n  constructor(\n    readonly modelId: BedrockRerankingModelId,\n    private readonly config: BedrockRerankingConfig,\n  ) {}\n\n  async doRerank({\n    documents,\n    headers,\n    query,\n    topN,\n    abortSignal,\n    providerOptions,\n  }: Parameters<RerankingModelV3['doRerank']>[0]): Promise<DoRerankResponse> {\n    const bedrockOptions = await parseProviderOptions({\n      provider: 'bedrock',\n      providerOptions,\n      schema: amazonBedrockRerankingModelOptionsSchema,\n    });\n\n    const {\n      value: response,\n      responseHeaders,\n      rawValue,\n    } = await postJsonToApi({\n      url: `${this.config.baseUrl()}/rerank`,\n      headers: await resolve(\n        combineHeaders(await resolve(this.config.headers), headers),\n      ),\n      body: {\n        nextToken: bedrockOptions?.nextToken,\n        queries: [\n          {\n            textQuery: { text: query },\n            type: 'TEXT',\n          },\n        ],\n        rerankingConfiguration: {\n          bedrockRerankingConfiguration: {\n            modelConfiguration: {\n              modelArn: `arn:aws:bedrock:${this.config.region}::foundation-model/${this.modelId}`,\n              additionalModelRequestFields:\n                bedrockOptions?.additionalModelRequestFields,\n            },\n            numberOfResults: topN,\n          },\n          type: 'BEDROCK_RERANKING_MODEL',\n        },\n        sources: documents.values.map(value => ({\n          type: 'INLINE' as const,\n          inlineDocumentSource:\n            documents.type === 'text'\n              ? {\n                  type: 'TEXT' as const,\n                  textDocument: { text: value as string },\n                }\n              : {\n                  type: 'JSON' as const,\n                  jsonDocument: value,\n                },\n        })),\n      } satisfies BedrockRerankingInput,\n      failedResponseHandler: createJsonErrorResponseHandler({\n        errorSchema: BedrockErrorSchema,\n        errorToMessage: error => `${error.type}: ${error.message}`,\n      }),\n      successfulResponseHandler: createJsonResponseHandler(\n        bedrockRerankingResponseSchema,\n      ),\n      fetch: this.config.fetch,\n      abortSignal,\n    });\n\n    return {\n      ranking: response.results,\n      response: {\n        headers: responseHeaders,\n        body: rawValue,\n      },\n    };\n  }\n}\n","import { anthropicTools } from '@ai-sdk/anthropic/internal';\nimport type {\n  EmbeddingModelV3,\n  ImageModelV3,\n  LanguageModelV3,\n  ProviderV3,\n  RerankingModelV3,\n} from '@ai-sdk/provider';\nimport {\n  generateId,\n  loadOptionalSetting,\n  loadSetting,\n  withoutTrailingSlash,\n  withUserAgentSuffix,\n  type FetchFunction,\n} from '@ai-sdk/provider-utils';\nimport { BedrockChatLanguageModel } from './bedrock-chat-language-model';\nimport type { BedrockChatModelId } from './bedrock-chat-options';\nimport { BedrockEmbeddingModel } from './bedrock-embedding-model';\nimport type { BedrockEmbeddingModelId } from './bedrock-embedding-options';\nimport { BedrockImageModel } from './bedrock-image-model';\nimport type { BedrockImageModelId } from './bedrock-image-settings';\nimport {\n  createApiKeyFetchFunction,\n  createSigV4FetchFunction,\n  type BedrockCredentials,\n} from './bedrock-sigv4-fetch';\nimport { BedrockRerankingModel } from './reranking/bedrock-reranking-model';\nimport type { BedrockRerankingModelId } from './reranking/bedrock-reranking-options';\nimport { VERSION } from './version';\n\nexport interface AmazonBedrockProviderSettings {\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   * @example\n   * ```typescript\n   * // Using API key directly\n   * const bedrock = createAmazonBedrock({\n   * apiKey: 'your-api-key-here',\n   * region: 'us-east-1'\n   * });\n   *\n   * // Using environment variable AWS_BEARER_TOKEN_BEDROCK\n   * const bedrock = createAmazonBedrock({\n   * region: 'us-east-1'\n   * });\n   * ```\n   *\n   * Note: When `apiKey` is provided, it takes precedence over AWS SigV4 authentication.\n   * If neither `apiKey` nor `AWS_BEARER_TOKEN_BEDROCK` environment variable is set,\n   * the provider will fall back to AWS SigV4 authentication using AWS credentials.\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. When `accessKeyId` and\n   * `secretAccessKey` are both passed explicitly as options, only this field is used\n   * If either access key field is omitted and resolved from the environment, the\n   * session token also falls back to `AWS_SESSION_TOKEN` when not set here.\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?: Record<string, string>;\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  // for testing\n  generateId?: () => string;\n}\n\nexport interface AmazonBedrockProvider extends ProviderV3 {\n  (modelId: BedrockChatModelId): LanguageModelV3;\n\n  languageModel(modelId: BedrockChatModelId): LanguageModelV3;\n\n  /**\n   * Creates a model for text embeddings.\n   */\n  embedding(modelId: BedrockEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * Creates a model for text embeddings.\n   */\n  embeddingModel(modelId: BedrockEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * @deprecated Use `embedding` instead.\n   */\n  textEmbedding(modelId: BedrockEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * @deprecated Use `embeddingModel` instead.\n   */\n  textEmbeddingModel(modelId: BedrockEmbeddingModelId): EmbeddingModelV3;\n\n  /**\n   * Creates a model for image generation.\n   */\n  image(modelId: BedrockImageModelId): ImageModelV3;\n\n  /**\n   * Creates a model for image generation.\n   */\n  imageModel(modelId: BedrockImageModelId): ImageModelV3;\n\n  /**\n   * Creates a model for reranking documents.\n   */\n  reranking(modelId: BedrockRerankingModelId): RerankingModelV3;\n\n  /**\n   * Creates a model for reranking documents.\n   */\n  rerankingModel(modelId: BedrockRerankingModelId): RerankingModelV3;\n\n  /**\n   * Anthropic-specific tools that can be used with Anthropic models on Bedrock.\n   */\n  tools: typeof anthropicTools;\n}\n\n/**\n * Create an Amazon Bedrock provider instance.\n */\nexport function createAmazonBedrock(\n  options: AmazonBedrockProviderSettings = {},\n): AmazonBedrockProvider {\n  // Check for API key authentication first\n  const rawApiKey = loadOptionalSetting({\n    settingValue: options.apiKey,\n    environmentVariableName: 'AWS_BEARER_TOKEN_BEDROCK',\n  });\n\n  // FIX 1: Validate API key to ensure proper fallback to SigV4\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 fetchFunction = 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            // Error handling for credential provider failures\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        // Enhanced error handling for SigV4 credential loading\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:\n              options.accessKeyId != null && options.secretAccessKey != null\n                ? options.sessionToken\n                : loadOptionalSetting({\n                    settingValue: options.sessionToken,\n                    environmentVariableName: 'AWS_SESSION_TOKEN',\n                  }),\n          };\n        } catch (error) {\n          // Provide helpful error message for missing AWS credentials\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          // Re-throw other errors as-is\n          throw error;\n        }\n      }, options.fetch);\n\n  const getHeaders = () => {\n    const baseHeaders = options.headers ?? {};\n    return withUserAgentSuffix(baseHeaders, `ai-sdk/amazon-bedrock/${VERSION}`);\n  };\n\n  const getBedrockRuntimeBaseUrl = (): 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 getBedrockAgentRuntimeBaseUrl = (): string =>\n    withoutTrailingSlash(\n      options.baseURL ??\n        `https://bedrock-agent-runtime.${loadSetting({\n          settingValue: options.region,\n          settingName: 'region',\n          environmentVariableName: 'AWS_REGION',\n          description: 'AWS region',\n        })}.amazonaws.com`,\n    ) ?? `https://bedrock-agent-runtime.us-west-2.amazonaws.com`;\n\n  const createChatModel = (modelId: BedrockChatModelId) =>\n    new BedrockChatLanguageModel(modelId, {\n      baseUrl: getBedrockRuntimeBaseUrl,\n      headers: getHeaders,\n      fetch: fetchFunction,\n      generateId,\n    });\n\n  const provider = function (modelId: BedrockChatModelId) {\n    if (new.target) {\n      throw new Error(\n        'The Amazon Bedrock model function cannot be called with the new keyword.',\n      );\n    }\n\n    return createChatModel(modelId);\n  };\n\n  const createEmbeddingModel = (modelId: BedrockEmbeddingModelId) =>\n    new BedrockEmbeddingModel(modelId, {\n      baseUrl: getBedrockRuntimeBaseUrl,\n      headers: getHeaders,\n      fetch: fetchFunction,\n    });\n\n  const createImageModel = (modelId: BedrockImageModelId) =>\n    new BedrockImageModel(modelId, {\n      baseUrl: getBedrockRuntimeBaseUrl,\n      headers: getHeaders,\n      fetch: fetchFunction,\n    });\n\n  const createRerankingModel = (modelId: BedrockRerankingModelId) =>\n    new BedrockRerankingModel(modelId, {\n      baseUrl: getBedrockAgentRuntimeBaseUrl,\n      region: loadSetting({\n        settingValue: options.region,\n        settingName: 'region',\n        environmentVariableName: 'AWS_REGION',\n        description: 'AWS region',\n      }),\n      headers: getHeaders,\n      fetch: fetchFunction,\n    });\n\n  provider.specificationVersion = 'v3' as const;\n  provider.languageModel = createChatModel;\n  provider.embedding = createEmbeddingModel;\n  provider.embeddingModel = createEmbeddingModel;\n  provider.textEmbedding = createEmbeddingModel;\n  provider.textEmbeddingModel = createEmbeddingModel;\n  provider.image = createImageModel;\n  provider.imageModel = createImageModel;\n  provider.reranking = createRerankingModel;\n  provider.rerankingModel = createRerankingModel;\n  provider.tools = anthropicTools;\n\n  return provider;\n}\n\n/**\n * Default Bedrock provider instance.\n */\nexport const bedrock = createAmazonBedrock();\n"]}