@mastra/core 1.55.0-alpha.2 → 1.55.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +86 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/durable/index.cjs +1 -1
- package/dist/agent/durable/index.js +1 -1
- package/dist/agent/index.cjs +2 -2
- package/dist/agent/index.js +2 -2
- package/dist/{agent-BvRfRKIt.js → agent-0y2cApTZ.js} +57 -82
- package/dist/agent-0y2cApTZ.js.map +1 -0
- package/dist/agent-builder/ee/index.cjs +1 -1
- package/dist/agent-builder/ee/index.js +1 -1
- package/dist/agent-controller/index.cjs +1 -1
- package/dist/agent-controller/index.js +1 -1
- package/dist/{agent-controller-CM6tQSMj.js → agent-controller-ByW51eCC.js} +5 -5
- package/dist/{agent-controller-CM6tQSMj.js.map → agent-controller-ByW51eCC.js.map} +1 -1
- package/dist/{agent-controller-C75dc544.cjs → agent-controller-DahKlMET.cjs} +5 -5
- package/dist/{agent-controller-C75dc544.cjs.map → agent-controller-DahKlMET.cjs.map} +1 -1
- package/dist/{agent-CwUYflGG.cjs → agent-um2LJs-0.cjs} +57 -82
- package/dist/agent-um2LJs-0.cjs.map +1 -0
- package/dist/background-tasks/index.cjs +1 -1
- package/dist/background-tasks/index.js +1 -1
- package/dist/{background-tasks-AKlv5tIo.js → background-tasks-CM94BIj8.js} +2 -2
- package/dist/{background-tasks-AKlv5tIo.js.map → background-tasks-CM94BIj8.js.map} +1 -1
- package/dist/{background-tasks-Chpan7PB.cjs → background-tasks-CobPW4Z3.cjs} +2 -2
- package/dist/{background-tasks-Chpan7PB.cjs.map → background-tasks-CobPW4Z3.cjs.map} +1 -1
- package/dist/browser/index.cjs +1 -1
- package/dist/browser/index.js +1 -1
- package/dist/channels/index.cjs +2 -2
- package/dist/channels/index.js +2 -2
- package/dist/{channels-BW52ccH_.cjs → channels-BgbloDjB.cjs} +2 -2
- package/dist/{channels-BW52ccH_.cjs.map → channels-BgbloDjB.cjs.map} +1 -1
- package/dist/{channels-Da9lEAi1.js → channels-MegO_4KL.js} +2 -2
- package/dist/{channels-Da9lEAi1.js.map → channels-MegO_4KL.js.map} +1 -1
- package/dist/coding-agent/index.cjs +1 -1
- package/dist/coding-agent/index.js +1 -1
- package/dist/{create-durable-agent-DmTTvoGi.cjs → create-durable-agent-ChmjQwzE.cjs} +8 -8
- package/dist/{create-durable-agent-DmTTvoGi.cjs.map → create-durable-agent-ChmjQwzE.cjs.map} +1 -1
- package/dist/{create-durable-agent-Bd4Bm5FV.js → create-durable-agent-DH_dWTMR.js} +8 -8
- package/dist/{create-durable-agent-Bd4Bm5FV.js.map → create-durable-agent-DH_dWTMR.js.map} +1 -1
- package/dist/datasets/index.cjs +1 -1
- package/dist/datasets/index.js +1 -1
- package/dist/{dist-C077BlAN.js → dist-BZBxELZo.js} +2 -2
- package/dist/{dist-C077BlAN.js.map → dist-BZBxELZo.js.map} +1 -1
- package/dist/{dist-CsR_D1uk.cjs → dist-ftJxyNRx.cjs} +2 -2
- package/dist/{dist-CsR_D1uk.cjs.map → dist-ftJxyNRx.cjs.map} +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/evals/index.cjs +1 -1
- package/dist/evals/index.js +1 -1
- package/dist/evals/scoreTraces/index.cjs +1 -1
- package/dist/evals/scoreTraces/index.js +1 -1
- package/dist/harness/index.cjs +1 -1
- package/dist/harness/index.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/llm/index.cjs +5 -5
- package/dist/llm/index.js +5 -5
- package/dist/{llm-DlVyw1cX.js → llm-DGuYy_Nx.js} +5 -5
- package/dist/{llm-DlVyw1cX.js.map → llm-DGuYy_Nx.js.map} +1 -1
- package/dist/{llm-Bjt2hZ3f.cjs → llm-DmAhSSgh.cjs} +5 -5
- package/dist/{llm-Bjt2hZ3f.cjs.map → llm-DmAhSSgh.cjs.map} +1 -1
- package/dist/loop/index.cjs +1 -1
- package/dist/loop/index.js +1 -1
- package/dist/{manager-CYGpXJfK.js → manager-DDRcONBK.js} +3 -3
- package/dist/{manager-CYGpXJfK.js.map → manager-DDRcONBK.js.map} +1 -1
- package/dist/{manager-BjrFnt_A.cjs → manager-DqHiikx1.cjs} +3 -3
- package/dist/{manager-BjrFnt_A.cjs.map → manager-DqHiikx1.cjs.map} +1 -1
- package/dist/mastra/index.cjs +1 -1
- package/dist/mastra/index.js +1 -1
- package/dist/{mastra-CVLF1dWt.js → mastra-B6CffFOC.js} +9 -9
- package/dist/{mastra-CVLF1dWt.js.map → mastra-B6CffFOC.js.map} +1 -1
- package/dist/{mastra-Bxx9WPf6.cjs → mastra-BlT9srQJ.cjs} +9 -9
- package/dist/{mastra-Bxx9WPf6.cjs.map → mastra-BlT9srQJ.cjs.map} +1 -1
- package/dist/memory/index.cjs +1 -1
- package/dist/memory/index.js +1 -1
- package/dist/{model-CA0WLISt.js → model-DQzxkQqM.js} +2 -2
- package/dist/{model-CA0WLISt.js.map → model-DQzxkQqM.js.map} +1 -1
- package/dist/{model-DMVq6nAS.cjs → model-Iow-mV9i.cjs} +2 -2
- package/dist/{model-DMVq6nAS.cjs.map → model-Iow-mV9i.cjs.map} +1 -1
- package/dist/{models-dev-Cbus1Uh2.js → models-dev-BFOUCgyS.js} +2 -2
- package/dist/{models-dev-Cbus1Uh2.js.map → models-dev-BFOUCgyS.js.map} +1 -1
- package/dist/{models-dev-D_X4VMSu.cjs → models-dev-BUEaCBxL.cjs} +2 -2
- package/dist/{models-dev-D_X4VMSu.cjs.map → models-dev-BUEaCBxL.cjs.map} +1 -1
- package/dist/{netlify-C-nnPVSj.js → netlify-7eHXUkln.js} +2 -2
- package/dist/{netlify-C-nnPVSj.js.map → netlify-7eHXUkln.js.map} +1 -1
- package/dist/{netlify-CUuCnmtd.cjs → netlify-Db5icdAJ.cjs} +2 -2
- package/dist/{netlify-CUuCnmtd.cjs.map → netlify-Db5icdAJ.cjs.map} +1 -1
- package/dist/processor-provider/index.cjs +1 -1
- package/dist/processor-provider/index.js +1 -1
- package/dist/processors/index.cjs +2 -2
- package/dist/processors/index.js +2 -2
- package/dist/processors/processors/index.d.ts +1 -1
- package/dist/processors/processors/index.d.ts.map +1 -1
- package/dist/processors/tool-result-reminder.d.ts +23 -0
- package/dist/processors/tool-result-reminder.d.ts.map +1 -1
- package/dist/{provider-registry-BFknh6Fu.cjs → provider-registry-DRJihW5_.cjs} +6 -6
- package/dist/{provider-registry-BFknh6Fu.cjs.map → provider-registry-DRJihW5_.cjs.map} +1 -1
- package/dist/{provider-registry-DIbls44Z.js → provider-registry-DzSSAz1R.js} +6 -6
- package/dist/{provider-registry-DIbls44Z.js.map → provider-registry-DzSSAz1R.js.map} +1 -1
- package/dist/relevance/index.cjs +2 -2
- package/dist/relevance/index.js +2 -2
- package/dist/stream/index.cjs +3 -3
- package/dist/stream/index.js +3 -3
- package/dist/{stream-tlVjYkAO.cjs → stream-D-cHV05r.cjs} +3 -3
- package/dist/{stream-tlVjYkAO.cjs.map → stream-D-cHV05r.cjs.map} +1 -1
- package/dist/{stream-Cd_isEZJ.js → stream-DJaosaeO.js} +3 -3
- package/dist/{stream-Cd_isEZJ.js.map → stream-DJaosaeO.js.map} +1 -1
- package/dist/test-utils/llm-mock.cjs +1 -1
- package/dist/test-utils/llm-mock.js +1 -1
- package/dist/tool-loop-agent/index.cjs +1 -1
- package/dist/tool-loop-agent/index.js +1 -1
- package/dist/{tool-loop-agent-th9L-ls9.cjs → tool-loop-agent-ByrutV2Q.cjs} +4 -4
- package/dist/{tool-loop-agent-th9L-ls9.cjs.map → tool-loop-agent-ByrutV2Q.cjs.map} +1 -1
- package/dist/{tool-loop-agent-CcT-TTcT.js → tool-loop-agent-BzHXZDL3.js} +4 -4
- package/dist/{tool-loop-agent-CcT-TTcT.js.map → tool-loop-agent-BzHXZDL3.js.map} +1 -1
- package/dist/{trip-wire-Cj0cJivR.js → trip-wire-DxpTS3jV.js} +2 -2
- package/dist/{trip-wire-Cj0cJivR.js.map → trip-wire-DxpTS3jV.js.map} +1 -1
- package/dist/{trip-wire-BNzxirr0.cjs → trip-wire-utCESgMt.cjs} +2 -2
- package/dist/{trip-wire-BNzxirr0.cjs.map → trip-wire-utCESgMt.cjs.map} +1 -1
- package/dist/{utils-BoQofieM.cjs → utils-CPUQn5dX.cjs} +2 -2
- package/dist/{utils-BoQofieM.cjs.map → utils-CPUQn5dX.cjs.map} +1 -1
- package/dist/{utils-DUfAZ4gr.js → utils-CrKEOVUo.js} +2 -2
- package/dist/{utils-DUfAZ4gr.js.map → utils-CrKEOVUo.js.map} +1 -1
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/dist/worker/index.cjs +1 -1
- package/dist/worker/index.js +1 -1
- package/dist/{worker-DwlyX5l8.js → worker-Ciya6mfo.js} +3 -3
- package/dist/{worker-DwlyX5l8.js.map → worker-Ciya6mfo.js.map} +1 -1
- package/dist/{worker-CsbZPhWb.cjs → worker-YT_pMttZ.cjs} +3 -3
- package/dist/{worker-CsbZPhWb.cjs.map → worker-YT_pMttZ.cjs.map} +1 -1
- package/dist/{workflow-BR5D6ij_.cjs → workflow-DcS_0R0Z.cjs} +3 -3
- package/dist/{workflow-BR5D6ij_.cjs.map → workflow-DcS_0R0Z.cjs.map} +1 -1
- package/dist/{workflow-OjZRiiCG.js → workflow-k6s0ESOR.js} +3 -3
- package/dist/{workflow-OjZRiiCG.js.map → workflow-k6s0ESOR.js.map} +1 -1
- package/dist/workflows/evented/index.cjs +1 -1
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/index.cjs +1 -1
- package/dist/workflows/index.js +1 -1
- package/package.json +12 -12
- package/dist/agent-BvRfRKIt.js.map +0 -1
- package/dist/agent-CwUYflGG.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models-dev-Cbus1Uh2.js","names":["VERSION","ZodFirstPartyTypeKind2","ZodFirstPartyTypeKind3","z2","z3","getCacheControl","_exhaustiveCheck","z5","z6","z7","z8","z9","z10","webSearch","z11","z12","getResponseMetadata","prepareTools","UnsupportedFunctionalityError2","_exhaustiveCheck","createJsonErrorResponseHandler","z2","UnsupportedFunctionalityError","_exhaustiveCheck","prepareTools","postJsonToApi","combineHeaders","createJsonResponseHandler","getResponseMetadata","createEventSourceResponseHandler","generateId","InvalidResponseDataError","z3","z4","createJsonErrorResponseHandler2","z5","parseProviderOptions2","UnsupportedFunctionalityError2","postJsonToApi2","combineHeaders2","createJsonResponseHandler2","zodSchema","z6","createJsonErrorResponseHandler3","convertUint8ArrayToBase64","getFirstFrameImage","resolveStartImage","parseProviderOptions3","postJsonToApi3","combineHeaders3","createJsonResponseHandler3","AISDKError","delay","getFromApi","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","combineHeaders","createJsonErrorResponseHandler","createJsonResponseHandler","postJsonToApi","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","zodSchema","z2","prepareTools","getResponseMetadata","createJsonErrorResponseHandler","postJsonToApi","combineHeaders","createJsonResponseHandler","generateId","createEventSourceResponseHandler","InvalidResponseDataError","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","UnsupportedFunctionalityError","_exhaustiveCheck","getResponseMetadata","z2","createJsonErrorResponseHandler","prepareTools","UnsupportedFunctionalityError2","postJsonToApi","combineHeaders","createJsonResponseHandler","generateId","createEventSourceResponseHandler","InvalidResponseDataError","z3","zodSchema","z4","parseProviderOptions2","combineHeaders2","createJsonResponseHandler2","z5","createProviderToolFactory","z6","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","UnsupportedFunctionalityError","_exhaustiveCheck","getResponseMetadata","createJsonErrorResponseHandler","z2","prepareTools","UnsupportedFunctionalityError2","generateId","postJsonToApi","combineHeaders","createJsonResponseHandler","createEventSourceResponseHandler","z3","postJsonToApi2","combineHeaders2","createJsonResponseHandler2","z4","z5","parseProviderOptions2","postToApi","combineHeaders3","createJsonResponseHandler3","z6","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","getTopLevelMediaType","UnsupportedFunctionalityError","convertUint8ArrayToBase64","_exhaustiveCheck","postJsonToApi","combineHeaders","createJsonErrorResponseHandler","createJsonResponseHandler","getResponseMetadata","createEventSourceResponseHandler","VERSION","withUserAgentSuffix","loadApiKey","withoutTrailingSlash","zodSchema","lazySchema2","zodSchema2","z2","postJsonToApi","combineHeaders","createJsonErrorResponseHandler","createJsonResponseHandler","parseProviderOptions2","postJsonToApi2","combineHeaders2","createJsonErrorResponseHandler2","createJsonResponseHandler2","z3","lazySchema3","zodSchema3","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","UnsupportedFunctionalityError","_exhaustiveCheck","z2","z3","createJsonErrorResponseHandler","UnsupportedFunctionalityError2","parseProviderOptions2","postJsonToApi","combineHeaders","createJsonResponseHandler","APICallError","extractResponseHeaders","safeParseJSON","createEventSourceResponseHandler","z4","z5","parseProviderOptions3","postJsonToApi2","combineHeaders2","createJsonResponseHandler2","getFromApi","z6","convertToBase642","parseProviderOptions4","UnsupportedFunctionalityError3","z7","z8","zodSchema","z9","lazySchema2","zodSchema2","z10","createProviderToolFactoryWithOutputSchema2","lazySchema3","zodSchema3","z11","createProviderToolFactoryWithOutputSchema3","lazySchema4","zodSchema4","z12","createProviderToolFactoryWithOutputSchema4","validateTypes","UnsupportedFunctionalityError4","parseProviderOptions5","postJsonToApi3","combineHeaders3","createJsonResponseHandler3","createEventSourceResponseHandler2","z13","createProviderToolFactoryWithOutputSchema5","z14","createProviderToolFactoryWithOutputSchema6","z15","createProviderToolFactoryWithOutputSchema7","z16","lazySchema5","zodSchema5","convertUint8ArrayToBase64","parseProviderOptions6","postJsonToApi4","combineHeaders4","createJsonResponseHandler4","AISDKError","delay","getFromApi2","z17","extractResponseHeaders2","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","createGateway"],"sources":["../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@openrouter/ai-sdk-provider/2.10.0/18d3f9832ff4ac9a3a9a352cee0425d8cce35955845fda7f33277c1ddb538196/node_modules/@openrouter/ai-sdk-provider/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/openai-compatible/2.0.62/b7acbd067f2ec09e10301f2fe9f80cac3c408d768c9a5df1e535b692cd074fce/node_modules/@ai-sdk/openai-compatible/dist/internal/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/alibaba/1.0.40/3dd87e9cbc7db3cb530b442366735ca7cff5faa83b148581e3d80dffe003bd70/node_modules/@ai-sdk/alibaba/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/cerebras/2.0.68/ad9edd427ce2f92b15117702f385ae9f2a5c5d9b32c8532415949d3585655444/node_modules/@ai-sdk/cerebras/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/deepinfra/2.0.66/e790b2aefb19d2c99fba0ba98cd9268e20ebec38724103eb4e293843b7753079/node_modules/@ai-sdk/deepinfra/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/deepseek/2.0.50/642f3b4eebe00099e4da13ced5717f53af89b6b6f1be337920eea87012260ca3/node_modules/@ai-sdk/deepseek/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/groq/3.0.53/06deb36d8a065ea330a85a5d0064a9364cb78a78f8bbc2482339dc2ed2571b58/node_modules/@ai-sdk/groq/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/mistral/3.0.51/062feac1d8fe6b44480ca27f026ea0907a8503f0b878abd9e93b1345b9180a5f/node_modules/@ai-sdk/mistral/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/perplexity/3.0.47/25fe4b24c0887d40fcd2ee80aa45ee248bd3f3d2d66125c6cdeba8fd23fbefab/node_modules/@ai-sdk/perplexity/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/togetherai/2.0.67/2114b549b9a93d670ccbc0dce31f693a408242c823eddea6f84d33d9a32f1c25/node_modules/@ai-sdk/togetherai/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/xai/3.0.110/04d5dd5a5dde08191061832e06e94a943deeb57babf6fa437dd6fe32823bf8b0/node_modules/@ai-sdk/xai/dist/index.mjs","../src/llm/model/gateway-resolver.ts","../src/llm/model/gateways/models-dev.ts"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n\n// node_modules/.pnpm/@ai-sdk+provider@3.0.8/node_modules/@ai-sdk/provider/dist/index.mjs\nvar marker = \"vercel.ai.error\";\nvar symbol = Symbol.for(marker);\nvar _a;\nvar _b;\nvar AISDKError = class _AISDKError extends (_b = Error, _a = symbol, _b) {\n /**\n * Creates an AI SDK Error.\n *\n * @param {Object} params - The parameters for creating the error.\n * @param {string} params.name - The name of the error.\n * @param {string} params.message - The error message.\n * @param {unknown} [params.cause] - The underlying cause of the error.\n */\n constructor({\n name: name142,\n message,\n cause\n }) {\n super(message);\n this[_a] = true;\n this.name = name142;\n this.cause = cause;\n }\n /**\n * Checks if the given error is an AI SDK Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n */\n static isInstance(error) {\n return _AISDKError.hasMarker(error, marker);\n }\n static hasMarker(error, marker152) {\n const markerSymbol = Symbol.for(marker152);\n return error != null && typeof error === \"object\" && markerSymbol in error && typeof error[markerSymbol] === \"boolean\" && error[markerSymbol] === true;\n }\n};\nvar name = \"AI_APICallError\";\nvar marker2 = `vercel.ai.error.${name}`;\nvar symbol2 = Symbol.for(marker2);\nvar _a2;\nvar _b2;\nvar APICallError = class extends (_b2 = AISDKError, _a2 = symbol2, _b2) {\n constructor({\n message,\n url,\n requestBodyValues,\n statusCode,\n responseHeaders,\n responseBody,\n cause,\n isRetryable = statusCode != null && (statusCode === 408 || // request timeout\n statusCode === 409 || // conflict\n statusCode === 429 || // too many requests\n statusCode >= 500),\n // server error\n data\n }) {\n super({ name, message, cause });\n this[_a2] = true;\n this.url = url;\n this.requestBodyValues = requestBodyValues;\n this.statusCode = statusCode;\n this.responseHeaders = responseHeaders;\n this.responseBody = responseBody;\n this.isRetryable = isRetryable;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker2);\n }\n};\nvar name2 = \"AI_EmptyResponseBodyError\";\nvar marker3 = `vercel.ai.error.${name2}`;\nvar symbol3 = Symbol.for(marker3);\nvar _a3;\nvar _b3;\nvar EmptyResponseBodyError = class extends (_b3 = AISDKError, _a3 = symbol3, _b3) {\n // used in isInstance\n constructor({ message = \"Empty response body\" } = {}) {\n super({ name: name2, message });\n this[_a3] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker3);\n }\n};\nfunction getErrorMessage(error) {\n if (error == null) {\n return \"unknown error\";\n }\n if (typeof error === \"string\") {\n return error;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return JSON.stringify(error);\n}\nvar name3 = \"AI_InvalidArgumentError\";\nvar marker4 = `vercel.ai.error.${name3}`;\nvar symbol4 = Symbol.for(marker4);\nvar _a4;\nvar _b4;\nvar InvalidArgumentError = class extends (_b4 = AISDKError, _a4 = symbol4, _b4) {\n constructor({\n message,\n cause,\n argument\n }) {\n super({ name: name3, message, cause });\n this[_a4] = true;\n this.argument = argument;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker4);\n }\n};\nvar name4 = \"AI_InvalidPromptError\";\nvar marker5 = `vercel.ai.error.${name4}`;\nvar symbol5 = Symbol.for(marker5);\nvar _a5;\nvar _b5;\nvar InvalidPromptError = class extends (_b5 = AISDKError, _a5 = symbol5, _b5) {\n constructor({\n prompt,\n message,\n cause\n }) {\n super({ name: name4, message: `Invalid prompt: ${message}`, cause });\n this[_a5] = true;\n this.prompt = prompt;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker5);\n }\n};\nvar name5 = \"AI_InvalidResponseDataError\";\nvar marker6 = `vercel.ai.error.${name5}`;\nvar symbol6 = Symbol.for(marker6);\nvar _a6;\nvar _b6;\nvar InvalidResponseDataError = class extends (_b6 = AISDKError, _a6 = symbol6, _b6) {\n constructor({\n data,\n message = `Invalid response data: ${JSON.stringify(data)}.`\n }) {\n super({ name: name5, message });\n this[_a6] = true;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker6);\n }\n};\nvar name6 = \"AI_JSONParseError\";\nvar marker7 = `vercel.ai.error.${name6}`;\nvar symbol7 = Symbol.for(marker7);\nvar _a7;\nvar _b7;\nvar JSONParseError = class extends (_b7 = AISDKError, _a7 = symbol7, _b7) {\n constructor({ text, cause }) {\n super({\n name: name6,\n message: `JSON parsing failed: Text: ${text}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a7] = true;\n this.text = text;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker7);\n }\n};\nvar name7 = \"AI_LoadAPIKeyError\";\nvar marker8 = `vercel.ai.error.${name7}`;\nvar symbol8 = Symbol.for(marker8);\nvar _a8;\nvar _b8;\nvar LoadAPIKeyError = class extends (_b8 = AISDKError, _a8 = symbol8, _b8) {\n // used in isInstance\n constructor({ message }) {\n super({ name: name7, message });\n this[_a8] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker8);\n }\n};\nvar name8 = \"AI_LoadSettingError\";\nvar marker9 = `vercel.ai.error.${name8}`;\nvar symbol9 = Symbol.for(marker9);\nvar _a9;\nvar _b9;\nvar LoadSettingError = class extends (_b9 = AISDKError, _a9 = symbol9, _b9) {\n // used in isInstance\n constructor({ message }) {\n super({ name: name8, message });\n this[_a9] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker9);\n }\n};\nvar name9 = \"AI_NoContentGeneratedError\";\nvar marker10 = `vercel.ai.error.${name9}`;\nvar symbol10 = Symbol.for(marker10);\nvar _a10;\nvar _b10;\nvar NoContentGeneratedError = class extends (_b10 = AISDKError, _a10 = symbol10, _b10) {\n // used in isInstance\n constructor({\n message = \"No content generated.\"\n } = {}) {\n super({ name: name9, message });\n this[_a10] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker10);\n }\n};\nvar name10 = \"AI_NoSuchModelError\";\nvar marker11 = `vercel.ai.error.${name10}`;\nvar symbol11 = Symbol.for(marker11);\nvar _a11;\nvar _b11;\nvar NoSuchModelError = class extends (_b11 = AISDKError, _a11 = symbol11, _b11) {\n constructor({\n errorName = name10,\n modelId,\n modelType,\n message = `No such ${modelType}: ${modelId}`\n }) {\n super({ name: errorName, message });\n this[_a11] = true;\n this.modelId = modelId;\n this.modelType = modelType;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker11);\n }\n};\nvar name11 = \"AI_TooManyEmbeddingValuesForCallError\";\nvar marker12 = `vercel.ai.error.${name11}`;\nvar symbol12 = Symbol.for(marker12);\nvar _a12;\nvar _b12;\nvar TooManyEmbeddingValuesForCallError = class extends (_b12 = AISDKError, _a12 = symbol12, _b12) {\n constructor(options) {\n super({\n name: name11,\n message: `Too many values for a single embedding call. The ${options.provider} model \"${options.modelId}\" can only embed up to ${options.maxEmbeddingsPerCall} values per call, but ${options.values.length} values were provided.`\n });\n this[_a12] = true;\n this.provider = options.provider;\n this.modelId = options.modelId;\n this.maxEmbeddingsPerCall = options.maxEmbeddingsPerCall;\n this.values = options.values;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker12);\n }\n};\nvar name12 = \"AI_TypeValidationError\";\nvar marker13 = `vercel.ai.error.${name12}`;\nvar symbol13 = Symbol.for(marker13);\nvar _a13;\nvar _b13;\nvar TypeValidationError = class _TypeValidationError extends (_b13 = AISDKError, _a13 = symbol13, _b13) {\n constructor({\n value,\n cause,\n context\n }) {\n let contextPrefix = \"Type validation failed\";\n if (context == null ? void 0 : context.field) {\n contextPrefix += ` for ${context.field}`;\n }\n if ((context == null ? void 0 : context.entityName) || (context == null ? void 0 : context.entityId)) {\n contextPrefix += \" (\";\n const parts = [];\n if (context.entityName) {\n parts.push(context.entityName);\n }\n if (context.entityId) {\n parts.push(`id: \"${context.entityId}\"`);\n }\n contextPrefix += parts.join(\", \");\n contextPrefix += \")\";\n }\n super({\n name: name12,\n message: `${contextPrefix}: Value: ${JSON.stringify(value)}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a13] = true;\n this.value = value;\n this.context = context;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker13);\n }\n /**\n * Wraps an error into a TypeValidationError.\n * If the cause is already a TypeValidationError with the same value and context, it returns the cause.\n * Otherwise, it creates a new TypeValidationError.\n *\n * @param {Object} params - The parameters for wrapping the error.\n * @param {unknown} params.value - The value that failed validation.\n * @param {unknown} params.cause - The original error or cause of the validation failure.\n * @param {TypeValidationContext} params.context - Optional context about what is being validated.\n * @returns {TypeValidationError} A TypeValidationError instance.\n */\n static wrap({\n value,\n cause,\n context\n }) {\n var _a152, _b152, _c;\n if (_TypeValidationError.isInstance(cause) && cause.value === value && ((_a152 = cause.context) == null ? void 0 : _a152.field) === (context == null ? void 0 : context.field) && ((_b152 = cause.context) == null ? void 0 : _b152.entityName) === (context == null ? void 0 : context.entityName) && ((_c = cause.context) == null ? void 0 : _c.entityId) === (context == null ? void 0 : context.entityId)) {\n return cause;\n }\n return new _TypeValidationError({ value, cause, context });\n }\n};\nvar name13 = \"AI_UnsupportedFunctionalityError\";\nvar marker14 = `vercel.ai.error.${name13}`;\nvar symbol14 = Symbol.for(marker14);\nvar _a14;\nvar _b14;\nvar UnsupportedFunctionalityError = class extends (_b14 = AISDKError, _a14 = symbol14, _b14) {\n constructor({\n functionality,\n message = `'${functionality}' functionality not supported.`\n }) {\n super({ name: name13, message });\n this[_a14] = true;\n this.functionality = functionality;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker14);\n }\n};\n\n// node_modules/.pnpm/@ai-sdk+provider-utils@4.0.23_zod@4.3.5/node_modules/@ai-sdk/provider-utils/dist/index.mjs\nimport * as z4 from \"zod/v4\";\nimport { ZodFirstPartyTypeKind as ZodFirstPartyTypeKind3 } from \"zod/v3\";\nimport { ZodFirstPartyTypeKind } from \"zod/v3\";\nimport {\n ZodFirstPartyTypeKind as ZodFirstPartyTypeKind2\n} from \"zod/v3\";\n\n// node_modules/.pnpm/eventsource-parser@3.0.6/node_modules/eventsource-parser/dist/index.js\nvar ParseError = class extends Error {\n constructor(message, options) {\n super(message), this.name = \"ParseError\", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line;\n }\n};\nfunction noop(_arg) {\n}\nfunction createParser(callbacks) {\n if (typeof callbacks == \"function\")\n throw new TypeError(\n \"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?\"\n );\n const { onEvent = noop, onError = noop, onRetry = noop, onComment } = callbacks;\n let incompleteLine = \"\", isFirstChunk = true, id, data = \"\", eventType = \"\";\n function feed(newChunk) {\n const chunk = isFirstChunk ? newChunk.replace(/^\\xEF\\xBB\\xBF/, \"\") : newChunk, [complete, incomplete] = splitLines(`${incompleteLine}${chunk}`);\n for (const line of complete)\n parseLine(line);\n incompleteLine = incomplete, isFirstChunk = false;\n }\n function parseLine(line) {\n if (line === \"\") {\n dispatchEvent();\n return;\n }\n if (line.startsWith(\":\")) {\n onComment && onComment(line.slice(line.startsWith(\": \") ? 2 : 1));\n return;\n }\n const fieldSeparatorIndex = line.indexOf(\":\");\n if (fieldSeparatorIndex !== -1) {\n const field = line.slice(0, fieldSeparatorIndex), offset = line[fieldSeparatorIndex + 1] === \" \" ? 2 : 1, value = line.slice(fieldSeparatorIndex + offset);\n processField(field, value, line);\n return;\n }\n processField(line, \"\", line);\n }\n function processField(field, value, line) {\n switch (field) {\n case \"event\":\n eventType = value;\n break;\n case \"data\":\n data = `${data}${value}\n`;\n break;\n case \"id\":\n id = value.includes(\"\\0\") ? void 0 : value;\n break;\n case \"retry\":\n /^\\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError(\n new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n type: \"invalid-retry\",\n value,\n line\n })\n );\n break;\n default:\n onError(\n new ParseError(\n `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}\\u2026` : field}\"`,\n { type: \"unknown-field\", field, value, line }\n )\n );\n break;\n }\n }\n function dispatchEvent() {\n data.length > 0 && onEvent({\n id,\n event: eventType || void 0,\n // If the data buffer's last character is a U+000A LINE FEED (LF) character,\n // then remove the last character from the data buffer.\n data: data.endsWith(`\n`) ? data.slice(0, -1) : data\n }), id = void 0, data = \"\", eventType = \"\";\n }\n function reset(options = {}) {\n incompleteLine && options.consume && parseLine(incompleteLine), isFirstChunk = true, id = void 0, data = \"\", eventType = \"\", incompleteLine = \"\";\n }\n return { feed, reset };\n}\nfunction splitLines(chunk) {\n const lines = [];\n let incompleteLine = \"\", searchIndex = 0;\n for (; searchIndex < chunk.length; ) {\n const crIndex = chunk.indexOf(\"\\r\", searchIndex), lfIndex = chunk.indexOf(`\n`, searchIndex);\n let lineEnd = -1;\n if (crIndex !== -1 && lfIndex !== -1 ? lineEnd = Math.min(crIndex, lfIndex) : crIndex !== -1 ? crIndex === chunk.length - 1 ? lineEnd = -1 : lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1) {\n incompleteLine = chunk.slice(searchIndex);\n break;\n } else {\n const line = chunk.slice(searchIndex, lineEnd);\n lines.push(line), searchIndex = lineEnd + 1, chunk[searchIndex - 1] === \"\\r\" && chunk[searchIndex] === `\n` && searchIndex++;\n }\n }\n return [lines, incompleteLine];\n}\n\n// node_modules/.pnpm/eventsource-parser@3.0.6/node_modules/eventsource-parser/dist/stream.js\nvar EventSourceParserStream = class extends TransformStream {\n constructor({ onError, onRetry, onComment } = {}) {\n let parser;\n super({\n start(controller) {\n parser = createParser({\n onEvent: (event) => {\n controller.enqueue(event);\n },\n onError(error) {\n onError === \"terminate\" ? controller.error(error) : typeof onError == \"function\" && onError(error);\n },\n onRetry,\n onComment\n });\n },\n transform(chunk) {\n parser.feed(chunk);\n }\n });\n }\n};\n\n// node_modules/.pnpm/@ai-sdk+provider-utils@4.0.23_zod@4.3.5/node_modules/@ai-sdk/provider-utils/dist/index.mjs\nfunction combineHeaders(...headers) {\n return headers.reduce(\n (combinedHeaders, currentHeaders) => __spreadValues(__spreadValues({}, combinedHeaders), currentHeaders != null ? currentHeaders : {}),\n {}\n );\n}\nasync function delay(delayInMs, options) {\n if (delayInMs == null) {\n return Promise.resolve();\n }\n const signal = options == null ? void 0 : options.abortSignal;\n return new Promise((resolve2, reject) => {\n if (signal == null ? void 0 : signal.aborted) {\n reject(createAbortError());\n return;\n }\n const timeoutId = setTimeout(() => {\n cleanup();\n resolve2();\n }, delayInMs);\n const cleanup = () => {\n clearTimeout(timeoutId);\n signal == null ? void 0 : signal.removeEventListener(\"abort\", onAbort);\n };\n const onAbort = () => {\n cleanup();\n reject(createAbortError());\n };\n signal == null ? void 0 : signal.addEventListener(\"abort\", onAbort);\n });\n}\nfunction createAbortError() {\n return new DOMException(\"Delay was aborted\", \"AbortError\");\n}\nfunction extractResponseHeaders(response) {\n return Object.fromEntries([...response.headers]);\n}\nvar { btoa, atob } = globalThis;\nfunction convertUint8ArrayToBase64(array) {\n let latin1string = \"\";\n for (let i = 0; i < array.length; i++) {\n latin1string += String.fromCodePoint(array[i]);\n }\n return btoa(latin1string);\n}\nvar name14 = \"AI_DownloadError\";\nvar marker15 = `vercel.ai.error.${name14}`;\nvar symbol15 = Symbol.for(marker15);\nvar _a15;\nvar _b15;\nvar DownloadError = class extends (_b15 = AISDKError, _a15 = symbol15, _b15) {\n constructor({\n url,\n statusCode,\n statusText,\n cause,\n message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}`\n }) {\n super({ name: name14, message, cause });\n this[_a15] = true;\n this.url = url;\n this.statusCode = statusCode;\n this.statusText = statusText;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker15);\n }\n};\nvar DEFAULT_MAX_DOWNLOAD_SIZE = 2 * 1024 * 1024 * 1024;\nvar createIdGenerator = ({\n prefix,\n size = 16,\n alphabet = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n separator = \"-\"\n} = {}) => {\n const generator = () => {\n const alphabetLength = alphabet.length;\n const chars = new Array(size);\n for (let i = 0; i < size; i++) {\n chars[i] = alphabet[Math.random() * alphabetLength | 0];\n }\n return chars.join(\"\");\n };\n if (prefix == null) {\n return generator;\n }\n if (alphabet.includes(separator)) {\n throw new InvalidArgumentError({\n argument: \"separator\",\n message: `The separator \"${separator}\" must not be part of the alphabet \"${alphabet}\".`\n });\n }\n return () => `${prefix}${separator}${generator()}`;\n};\nvar generateId = createIdGenerator();\nfunction isAbortError(error) {\n return (error instanceof Error || error instanceof DOMException) && (error.name === \"AbortError\" || error.name === \"ResponseAborted\" || // Next.js\n error.name === \"TimeoutError\");\n}\nvar FETCH_FAILED_ERROR_MESSAGES = [\"fetch failed\", \"failed to fetch\"];\nvar BUN_ERROR_CODES = [\n \"ConnectionRefused\",\n \"ConnectionClosed\",\n \"FailedToOpenSocket\",\n \"ECONNRESET\",\n \"ECONNREFUSED\",\n \"ETIMEDOUT\",\n \"EPIPE\"\n];\nfunction isBunNetworkError(error) {\n if (!(error instanceof Error)) {\n return false;\n }\n const code = error.code;\n if (typeof code === \"string\" && BUN_ERROR_CODES.includes(code)) {\n return true;\n }\n return false;\n}\nfunction handleFetchError({\n error,\n url,\n requestBodyValues\n}) {\n if (isAbortError(error)) {\n return error;\n }\n if (error instanceof TypeError && FETCH_FAILED_ERROR_MESSAGES.includes(error.message.toLowerCase())) {\n const cause = error.cause;\n if (cause != null) {\n return new APICallError({\n message: `Cannot connect to API: ${cause.message}`,\n cause,\n url,\n requestBodyValues,\n isRetryable: true\n // retry when network error\n });\n }\n }\n if (isBunNetworkError(error)) {\n return new APICallError({\n message: `Cannot connect to API: ${error.message}`,\n cause: error,\n url,\n requestBodyValues,\n isRetryable: true\n });\n }\n return error;\n}\nfunction getRuntimeEnvironmentUserAgent(globalThisAny = globalThis) {\n var _a22, _b22, _c;\n if (globalThisAny.window) {\n return `runtime/browser`;\n }\n if ((_a22 = globalThisAny.navigator) == null ? void 0 : _a22.userAgent) {\n return `runtime/${globalThisAny.navigator.userAgent.toLowerCase()}`;\n }\n if ((_c = (_b22 = globalThisAny.process) == null ? void 0 : _b22.versions) == null ? void 0 : _c.node) {\n return `runtime/node.js/${globalThisAny.process.version.substring(0)}`;\n }\n if (globalThisAny.EdgeRuntime) {\n return `runtime/vercel-edge`;\n }\n return \"runtime/unknown\";\n}\nfunction normalizeHeaders(headers) {\n if (headers == null) {\n return {};\n }\n const normalized = {};\n if (headers instanceof Headers) {\n headers.forEach((value, key) => {\n normalized[key.toLowerCase()] = value;\n });\n } else {\n if (!Array.isArray(headers)) {\n headers = Object.entries(headers);\n }\n for (const [key, value] of headers) {\n if (value != null) {\n normalized[key.toLowerCase()] = value;\n }\n }\n }\n return normalized;\n}\nfunction withUserAgentSuffix(headers, ...userAgentSuffixParts) {\n const normalizedHeaders = new Headers(normalizeHeaders(headers));\n const currentUserAgentHeader = normalizedHeaders.get(\"user-agent\") || \"\";\n normalizedHeaders.set(\n \"user-agent\",\n [currentUserAgentHeader, ...userAgentSuffixParts].filter(Boolean).join(\" \")\n );\n return Object.fromEntries(normalizedHeaders.entries());\n}\nvar VERSION = true ? \"4.0.23\" : \"0.0.0-test\";\nvar getOriginalFetch = () => globalThis.fetch;\nvar getFromApi = async ({\n url,\n headers = {},\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch: fetch2 = getOriginalFetch()\n}) => {\n try {\n const response = await fetch2(url, {\n method: \"GET\",\n headers: withUserAgentSuffix(\n headers,\n `ai-sdk/provider-utils/${VERSION}`,\n getRuntimeEnvironmentUserAgent()\n ),\n signal: abortSignal\n });\n const responseHeaders = extractResponseHeaders(response);\n if (!response.ok) {\n let errorInformation;\n try {\n errorInformation = await failedResponseHandler({\n response,\n url,\n requestBodyValues: {}\n });\n } catch (error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n throw new APICallError({\n message: \"Failed to process error response\",\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: {}\n });\n }\n throw errorInformation.value;\n }\n try {\n return await successfulResponseHandler({\n response,\n url,\n requestBodyValues: {}\n });\n } catch (error) {\n if (error instanceof Error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n }\n throw new APICallError({\n message: \"Failed to process successful response\",\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: {}\n });\n }\n } catch (error) {\n throw handleFetchError({ error, url, requestBodyValues: {} });\n }\n};\nfunction loadApiKey({\n apiKey,\n environmentVariableName,\n apiKeyParameterName = \"apiKey\",\n description\n}) {\n if (typeof apiKey === \"string\") {\n return apiKey;\n }\n if (apiKey != null) {\n throw new LoadAPIKeyError({\n message: `${description} API key must be a string.`\n });\n }\n if (typeof process === \"undefined\") {\n throw new LoadAPIKeyError({\n message: `${description} API key is missing. Pass it using the '${apiKeyParameterName}' parameter. Environment variables are not supported in this environment.`\n });\n }\n apiKey = process.env[environmentVariableName];\n if (apiKey == null) {\n throw new LoadAPIKeyError({\n message: `${description} API key is missing. Pass it using the '${apiKeyParameterName}' parameter or the ${environmentVariableName} environment variable.`\n });\n }\n if (typeof apiKey !== \"string\") {\n throw new LoadAPIKeyError({\n message: `${description} API key must be a string. The value of the ${environmentVariableName} environment variable is not a string.`\n });\n }\n return apiKey;\n}\nvar suspectProtoRx = /\"(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])\"\\s*:/;\nvar suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nfunction _parse(text) {\n const obj = JSON.parse(text);\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n if (suspectProtoRx.test(text) === false && suspectConstructorRx.test(text) === false) {\n return obj;\n }\n return filter(obj);\n}\nfunction filter(obj) {\n let next = [obj];\n while (next.length) {\n const nodes = next;\n next = [];\n for (const node of nodes) {\n if (Object.prototype.hasOwnProperty.call(node, \"__proto__\")) {\n throw new SyntaxError(\"Object contains forbidden prototype property\");\n }\n if (Object.prototype.hasOwnProperty.call(node, \"constructor\") && node.constructor !== null && typeof node.constructor === \"object\" && Object.prototype.hasOwnProperty.call(node.constructor, \"prototype\")) {\n throw new SyntaxError(\"Object contains forbidden prototype property\");\n }\n for (const key in node) {\n const value = node[key];\n if (value && typeof value === \"object\") {\n next.push(value);\n }\n }\n }\n }\n return obj;\n}\nfunction secureJsonParse(text) {\n const { stackTraceLimit } = Error;\n try {\n Error.stackTraceLimit = 0;\n } catch (e) {\n return _parse(text);\n }\n try {\n return _parse(text);\n } finally {\n Error.stackTraceLimit = stackTraceLimit;\n }\n}\nfunction addAdditionalPropertiesToJsonSchema(jsonSchema2) {\n if (jsonSchema2.type === \"object\" || Array.isArray(jsonSchema2.type) && jsonSchema2.type.includes(\"object\")) {\n jsonSchema2.additionalProperties = false;\n const { properties } = jsonSchema2;\n if (properties != null) {\n for (const key of Object.keys(properties)) {\n properties[key] = visit(properties[key]);\n }\n }\n }\n if (jsonSchema2.items != null) {\n jsonSchema2.items = Array.isArray(jsonSchema2.items) ? jsonSchema2.items.map(visit) : visit(jsonSchema2.items);\n }\n if (jsonSchema2.anyOf != null) {\n jsonSchema2.anyOf = jsonSchema2.anyOf.map(visit);\n }\n if (jsonSchema2.allOf != null) {\n jsonSchema2.allOf = jsonSchema2.allOf.map(visit);\n }\n if (jsonSchema2.oneOf != null) {\n jsonSchema2.oneOf = jsonSchema2.oneOf.map(visit);\n }\n const { definitions } = jsonSchema2;\n if (definitions != null) {\n for (const key of Object.keys(definitions)) {\n definitions[key] = visit(definitions[key]);\n }\n }\n return jsonSchema2;\n}\nfunction visit(def) {\n if (typeof def === \"boolean\") return def;\n return addAdditionalPropertiesToJsonSchema(def);\n}\nvar ignoreOverride = /* @__PURE__ */ Symbol(\n \"Let zodToJsonSchema decide on which parser to use\"\n);\nvar defaultOptions = {\n name: void 0,\n $refStrategy: \"root\",\n basePath: [\"#\"],\n effectStrategy: \"input\",\n pipeStrategy: \"all\",\n dateStrategy: \"format:date-time\",\n mapStrategy: \"entries\",\n removeAdditionalStrategy: \"passthrough\",\n allowedAdditionalProperties: true,\n rejectedAdditionalProperties: false,\n definitionPath: \"definitions\",\n strictUnions: false,\n definitions: {},\n errorMessages: false,\n patternStrategy: \"escape\",\n applyRegexFlags: false,\n emailStrategy: \"format:email\",\n base64Strategy: \"contentEncoding:base64\",\n nameStrategy: \"ref\"\n};\nvar getDefaultOptions = (options) => typeof options === \"string\" ? __spreadProps(__spreadValues({}, defaultOptions), {\n name: options\n}) : __spreadValues(__spreadValues({}, defaultOptions), options);\nfunction parseAnyDef() {\n return {};\n}\nfunction parseArrayDef(def, refs) {\n var _a22, _b22, _c;\n const res = {\n type: \"array\"\n };\n if (((_a22 = def.type) == null ? void 0 : _a22._def) && ((_c = (_b22 = def.type) == null ? void 0 : _b22._def) == null ? void 0 : _c.typeName) !== ZodFirstPartyTypeKind.ZodAny) {\n res.items = parseDef(def.type._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"items\"]\n }));\n }\n if (def.minLength) {\n res.minItems = def.minLength.value;\n }\n if (def.maxLength) {\n res.maxItems = def.maxLength.value;\n }\n if (def.exactLength) {\n res.minItems = def.exactLength.value;\n res.maxItems = def.exactLength.value;\n }\n return res;\n}\nfunction parseBigintDef(def) {\n const res = {\n type: \"integer\",\n format: \"int64\"\n };\n if (!def.checks) return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n if (check.inclusive) {\n res.minimum = check.value;\n } else {\n res.exclusiveMinimum = check.value;\n }\n break;\n case \"max\":\n if (check.inclusive) {\n res.maximum = check.value;\n } else {\n res.exclusiveMaximum = check.value;\n }\n break;\n case \"multipleOf\":\n res.multipleOf = check.value;\n break;\n }\n }\n return res;\n}\nfunction parseBooleanDef() {\n return { type: \"boolean\" };\n}\nfunction parseBrandedDef(_def, refs) {\n return parseDef(_def.type._def, refs);\n}\nvar parseCatchDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\nfunction parseDateDef(def, refs, overrideDateStrategy) {\n const strategy = overrideDateStrategy != null ? overrideDateStrategy : refs.dateStrategy;\n if (Array.isArray(strategy)) {\n return {\n anyOf: strategy.map((item, i) => parseDateDef(def, refs, item))\n };\n }\n switch (strategy) {\n case \"string\":\n case \"format:date-time\":\n return {\n type: \"string\",\n format: \"date-time\"\n };\n case \"format:date\":\n return {\n type: \"string\",\n format: \"date\"\n };\n case \"integer\":\n return integerDateParser(def);\n }\n}\nvar integerDateParser = (def) => {\n const res = {\n type: \"integer\",\n format: \"unix-time\"\n };\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n res.minimum = check.value;\n break;\n case \"max\":\n res.maximum = check.value;\n break;\n }\n }\n return res;\n};\nfunction parseDefaultDef(_def, refs) {\n return __spreadProps(__spreadValues({}, parseDef(_def.innerType._def, refs)), {\n default: _def.defaultValue()\n });\n}\nfunction parseEffectsDef(_def, refs) {\n return refs.effectStrategy === \"input\" ? parseDef(_def.schema._def, refs) : parseAnyDef();\n}\nfunction parseEnumDef(def) {\n return {\n type: \"string\",\n enum: Array.from(def.values)\n };\n}\nvar isJsonSchema7AllOfType = (type) => {\n if (\"type\" in type && type.type === \"string\") return false;\n return \"allOf\" in type;\n};\nfunction parseIntersectionDef(def, refs) {\n const allOf = [\n parseDef(def.left._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"allOf\", \"0\"]\n })),\n parseDef(def.right._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"allOf\", \"1\"]\n }))\n ].filter((x) => !!x);\n const mergedAllOf = [];\n allOf.forEach((schema) => {\n if (isJsonSchema7AllOfType(schema)) {\n mergedAllOf.push(...schema.allOf);\n } else {\n let nestedSchema = schema;\n if (\"additionalProperties\" in schema && schema.additionalProperties === false) {\n const _a16 = schema, { additionalProperties } = _a16, rest = __objRest(_a16, [\"additionalProperties\"]);\n nestedSchema = rest;\n }\n mergedAllOf.push(nestedSchema);\n }\n });\n return mergedAllOf.length ? { allOf: mergedAllOf } : void 0;\n}\nfunction parseLiteralDef(def) {\n const parsedType = typeof def.value;\n if (parsedType !== \"bigint\" && parsedType !== \"number\" && parsedType !== \"boolean\" && parsedType !== \"string\") {\n return {\n type: Array.isArray(def.value) ? \"array\" : \"object\"\n };\n }\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n const: def.value\n };\n}\nvar emojiRegex = void 0;\nvar zodPatterns = {\n /**\n * `c` was changed to `[cC]` to replicate /i flag\n */\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n /**\n * `a-z` was added to replicate /i flag\n */\n email: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n /**\n * Constructed a valid Unicode RegExp\n *\n * Lazily instantiate since this type of regex isn't supported\n * in all envs (e.g. React Native).\n *\n * See:\n * https://github.com/colinhacks/zod/issues/2433\n * Fix in Zod:\n * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n */\n emoji: () => {\n if (emojiRegex === void 0) {\n emojiRegex = RegExp(\n \"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\",\n \"u\"\n );\n }\n return emojiRegex;\n },\n /**\n * Unused\n */\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n /**\n * Unused\n */\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n /**\n * Unused\n */\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/\n};\nfunction parseStringDef(def, refs) {\n const res = {\n type: \"string\"\n };\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n res.minLength = typeof res.minLength === \"number\" ? Math.max(res.minLength, check.value) : check.value;\n break;\n case \"max\":\n res.maxLength = typeof res.maxLength === \"number\" ? Math.min(res.maxLength, check.value) : check.value;\n break;\n case \"email\":\n switch (refs.emailStrategy) {\n case \"format:email\":\n addFormat(res, \"email\", check.message, refs);\n break;\n case \"format:idn-email\":\n addFormat(res, \"idn-email\", check.message, refs);\n break;\n case \"pattern:zod\":\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n break;\n case \"url\":\n addFormat(res, \"uri\", check.message, refs);\n break;\n case \"uuid\":\n addFormat(res, \"uuid\", check.message, refs);\n break;\n case \"regex\":\n addPattern(res, check.regex, check.message, refs);\n break;\n case \"cuid\":\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case \"cuid2\":\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case \"startsWith\":\n addPattern(\n res,\n RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`),\n check.message,\n refs\n );\n break;\n case \"endsWith\":\n addPattern(\n res,\n RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`),\n check.message,\n refs\n );\n break;\n case \"datetime\":\n addFormat(res, \"date-time\", check.message, refs);\n break;\n case \"date\":\n addFormat(res, \"date\", check.message, refs);\n break;\n case \"time\":\n addFormat(res, \"time\", check.message, refs);\n break;\n case \"duration\":\n addFormat(res, \"duration\", check.message, refs);\n break;\n case \"length\":\n res.minLength = typeof res.minLength === \"number\" ? Math.max(res.minLength, check.value) : check.value;\n res.maxLength = typeof res.maxLength === \"number\" ? Math.min(res.maxLength, check.value) : check.value;\n break;\n case \"includes\": {\n addPattern(\n res,\n RegExp(escapeLiteralCheckValue(check.value, refs)),\n check.message,\n refs\n );\n break;\n }\n case \"ip\": {\n if (check.version !== \"v6\") {\n addFormat(res, \"ipv4\", check.message, refs);\n }\n if (check.version !== \"v4\") {\n addFormat(res, \"ipv6\", check.message, refs);\n }\n break;\n }\n case \"base64url\":\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case \"jwt\":\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case \"cidr\": {\n if (check.version !== \"v6\") {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== \"v4\") {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case \"emoji\":\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case \"ulid\": {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case \"base64\": {\n switch (refs.base64Strategy) {\n case \"format:binary\": {\n addFormat(res, \"binary\", check.message, refs);\n break;\n }\n case \"contentEncoding:base64\": {\n res.contentEncoding = \"base64\";\n break;\n }\n case \"pattern:zod\": {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case \"nanoid\": {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case \"toLowerCase\":\n case \"toUpperCase\":\n case \"trim\":\n break;\n default:\n /* @__PURE__ */ ((_) => {\n })(check);\n }\n }\n }\n return res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n return refs.patternStrategy === \"escape\" ? escapeNonAlphaNumeric(literal) : literal;\n}\nvar ALPHA_NUMERIC = new Set(\n \"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\"\n);\nfunction escapeNonAlphaNumeric(source) {\n let result = \"\";\n for (let i = 0; i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += \"\\\\\";\n }\n result += source[i];\n }\n return result;\n}\nfunction addFormat(schema, value, message, refs) {\n var _a22;\n if (schema.format || ((_a22 = schema.anyOf) == null ? void 0 : _a22.some((x) => x.format))) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n if (schema.format) {\n schema.anyOf.push({\n format: schema.format\n });\n delete schema.format;\n }\n schema.anyOf.push(__spreadValues({\n format: value\n }, message && refs.errorMessages && { errorMessage: { format: message } }));\n } else {\n schema.format = value;\n }\n}\nfunction addPattern(schema, regex, message, refs) {\n var _a22;\n if (schema.pattern || ((_a22 = schema.allOf) == null ? void 0 : _a22.some((x) => x.pattern))) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n if (schema.pattern) {\n schema.allOf.push({\n pattern: schema.pattern\n });\n delete schema.pattern;\n }\n schema.allOf.push(__spreadValues({\n pattern: stringifyRegExpWithFlags(regex, refs)\n }, message && refs.errorMessages && { errorMessage: { pattern: message } }));\n } else {\n schema.pattern = stringifyRegExpWithFlags(regex, refs);\n }\n}\nfunction stringifyRegExpWithFlags(regex, refs) {\n var _a22;\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n const flags = {\n i: regex.flags.includes(\"i\"),\n // Case-insensitive\n m: regex.flags.includes(\"m\"),\n // `^` and `$` matches adjacent to newline characters\n s: regex.flags.includes(\"s\")\n // `.` matches newlines\n };\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = \"\";\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n for (let i = 0; i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n } else if (source[i + 1] === \"-\" && ((_a22 = source[i + 2]) == null ? void 0 : _a22.match(/[a-z]/))) {\n pattern += source[i];\n inCharRange = true;\n } else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n } else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n if (flags.m) {\n if (source[i] === \"^\") {\n pattern += `(^|(?<=[\\r\n]))`;\n continue;\n } else if (source[i] === \"$\") {\n pattern += `($|(?=[\\r\n]))`;\n continue;\n }\n }\n if (flags.s && source[i] === \".\") {\n pattern += inCharGroup ? `${source[i]}\\r\n` : `[${source[i]}\\r\n]`;\n continue;\n }\n pattern += source[i];\n if (source[i] === \"\\\\\") {\n isEscaped = true;\n } else if (inCharGroup && source[i] === \"]\") {\n inCharGroup = false;\n } else if (!inCharGroup && source[i] === \"[\") {\n inCharGroup = true;\n }\n }\n try {\n new RegExp(pattern);\n } catch (e) {\n console.warn(\n `Could not convert regex pattern at ${refs.currentPath.join(\n \"/\"\n )} to a flag-independent form! Falling back to the flag-ignorant source`\n );\n return regex.source;\n }\n return pattern;\n}\nfunction parseRecordDef(def, refs) {\n var _a22, _b22, _c, _d, _e, _f;\n const schema = {\n type: \"object\",\n additionalProperties: (_a22 = parseDef(def.valueType._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"additionalProperties\"]\n }))) != null ? _a22 : refs.allowedAdditionalProperties\n };\n if (((_b22 = def.keyType) == null ? void 0 : _b22._def.typeName) === ZodFirstPartyTypeKind2.ZodString && ((_c = def.keyType._def.checks) == null ? void 0 : _c.length)) {\n const _a16 = parseStringDef(def.keyType._def, refs), { type } = _a16, keyType = __objRest(_a16, [\"type\"]);\n return __spreadProps(__spreadValues({}, schema), {\n propertyNames: keyType\n });\n } else if (((_d = def.keyType) == null ? void 0 : _d._def.typeName) === ZodFirstPartyTypeKind2.ZodEnum) {\n return __spreadProps(__spreadValues({}, schema), {\n propertyNames: {\n enum: def.keyType._def.values\n }\n });\n } else if (((_e = def.keyType) == null ? void 0 : _e._def.typeName) === ZodFirstPartyTypeKind2.ZodBranded && def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind2.ZodString && ((_f = def.keyType._def.type._def.checks) == null ? void 0 : _f.length)) {\n const _b16 = parseBrandedDef(\n def.keyType._def,\n refs\n ), { type } = _b16, keyType = __objRest(_b16, [\"type\"]);\n return __spreadProps(__spreadValues({}, schema), {\n propertyNames: keyType\n });\n }\n return schema;\n}\nfunction parseMapDef(def, refs) {\n if (refs.mapStrategy === \"record\") {\n return parseRecordDef(def, refs);\n }\n const keys = parseDef(def.keyType._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"items\", \"items\", \"0\"]\n })) || parseAnyDef();\n const values = parseDef(def.valueType._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"items\", \"items\", \"1\"]\n })) || parseAnyDef();\n return {\n type: \"array\",\n maxItems: 125,\n items: {\n type: \"array\",\n items: [keys, values],\n minItems: 2,\n maxItems: 2\n }\n };\n}\nfunction parseNativeEnumDef(def) {\n const object = def.values;\n const actualKeys = Object.keys(def.values).filter((key) => {\n return typeof object[object[key]] !== \"number\";\n });\n const actualValues = actualKeys.map((key) => object[key]);\n const parsedTypes = Array.from(\n new Set(actualValues.map((values) => typeof values))\n );\n return {\n type: parsedTypes.length === 1 ? parsedTypes[0] === \"string\" ? \"string\" : \"number\" : [\"string\", \"number\"],\n enum: actualValues\n };\n}\nfunction parseNeverDef() {\n return { not: parseAnyDef() };\n}\nfunction parseNullDef() {\n return {\n type: \"null\"\n };\n}\nvar primitiveMappings = {\n ZodString: \"string\",\n ZodNumber: \"number\",\n ZodBigInt: \"integer\",\n ZodBoolean: \"boolean\",\n ZodNull: \"null\"\n};\nfunction parseUnionDef(def, refs) {\n const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n if (options.every(\n (x) => x._def.typeName in primitiveMappings && (!x._def.checks || !x._def.checks.length)\n )) {\n const types = options.reduce((types2, x) => {\n const type = primitiveMappings[x._def.typeName];\n return type && !types2.includes(type) ? [...types2, type] : types2;\n }, []);\n return {\n type: types.length > 1 ? types : types[0]\n };\n } else if (options.every((x) => x._def.typeName === \"ZodLiteral\" && !x.description)) {\n const types = options.reduce(\n (acc, x) => {\n const type = typeof x._def.value;\n switch (type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n return [...acc, type];\n case \"bigint\":\n return [...acc, \"integer\"];\n case \"object\":\n if (x._def.value === null) return [...acc, \"null\"];\n case \"symbol\":\n case \"undefined\":\n case \"function\":\n default:\n return acc;\n }\n },\n []\n );\n if (types.length === options.length) {\n const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n return {\n type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n enum: options.reduce(\n (acc, x) => {\n return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n },\n []\n )\n };\n }\n } else if (options.every((x) => x._def.typeName === \"ZodEnum\")) {\n return {\n type: \"string\",\n enum: options.reduce(\n (acc, x) => [\n ...acc,\n ...x._def.values.filter((x2) => !acc.includes(x2))\n ],\n []\n )\n };\n }\n return asAnyOf(def, refs);\n}\nvar asAnyOf = (def, refs) => {\n const anyOf = (def.options instanceof Map ? Array.from(def.options.values()) : def.options).map(\n (x, i) => parseDef(x._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"anyOf\", `${i}`]\n }))\n ).filter(\n (x) => !!x && (!refs.strictUnions || typeof x === \"object\" && Object.keys(x).length > 0)\n );\n return anyOf.length ? { anyOf } : void 0;\n};\nfunction parseNullableDef(def, refs) {\n if ([\"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodNull\"].includes(\n def.innerType._def.typeName\n ) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {\n return {\n type: [\n primitiveMappings[def.innerType._def.typeName],\n \"null\"\n ]\n };\n }\n const base = parseDef(def.innerType._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"anyOf\", \"0\"]\n }));\n return base && { anyOf: [base, { type: \"null\" }] };\n}\nfunction parseNumberDef(def) {\n const res = {\n type: \"number\"\n };\n if (!def.checks) return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"int\":\n res.type = \"integer\";\n break;\n case \"min\":\n if (check.inclusive) {\n res.minimum = check.value;\n } else {\n res.exclusiveMinimum = check.value;\n }\n break;\n case \"max\":\n if (check.inclusive) {\n res.maximum = check.value;\n } else {\n res.exclusiveMaximum = check.value;\n }\n break;\n case \"multipleOf\":\n res.multipleOf = check.value;\n break;\n }\n }\n return res;\n}\nfunction parseObjectDef(def, refs) {\n const result = {\n type: \"object\",\n properties: {}\n };\n const required = [];\n const shape = def.shape();\n for (const propName in shape) {\n let propDef = shape[propName];\n if (propDef === void 0 || propDef._def === void 0) {\n continue;\n }\n const propOptional = safeIsOptional(propDef);\n const parsedDef = parseDef(propDef._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"properties\", propName],\n propertyPath: [...refs.currentPath, \"properties\", propName]\n }));\n if (parsedDef === void 0) {\n continue;\n }\n result.properties[propName] = parsedDef;\n if (!propOptional) {\n required.push(propName);\n }\n }\n if (required.length) {\n result.required = required;\n }\n const additionalProperties = decideAdditionalProperties(def, refs);\n if (additionalProperties !== void 0) {\n result.additionalProperties = additionalProperties;\n }\n return result;\n}\nfunction decideAdditionalProperties(def, refs) {\n if (def.catchall._def.typeName !== \"ZodNever\") {\n return parseDef(def.catchall._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"additionalProperties\"]\n }));\n }\n switch (def.unknownKeys) {\n case \"passthrough\":\n return refs.allowedAdditionalProperties;\n case \"strict\":\n return refs.rejectedAdditionalProperties;\n case \"strip\":\n return refs.removeAdditionalStrategy === \"strict\" ? refs.allowedAdditionalProperties : refs.rejectedAdditionalProperties;\n }\n}\nfunction safeIsOptional(schema) {\n try {\n return schema.isOptional();\n } catch (e) {\n return true;\n }\n}\nvar parseOptionalDef = (def, refs) => {\n var _a22;\n if (refs.currentPath.toString() === ((_a22 = refs.propertyPath) == null ? void 0 : _a22.toString())) {\n return parseDef(def.innerType._def, refs);\n }\n const innerSchema = parseDef(def.innerType._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"anyOf\", \"1\"]\n }));\n return innerSchema ? { anyOf: [{ not: parseAnyDef() }, innerSchema] } : parseAnyDef();\n};\nvar parsePipelineDef = (def, refs) => {\n if (refs.pipeStrategy === \"input\") {\n return parseDef(def.in._def, refs);\n } else if (refs.pipeStrategy === \"output\") {\n return parseDef(def.out._def, refs);\n }\n const a = parseDef(def.in._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"allOf\", \"0\"]\n }));\n const b = parseDef(def.out._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"allOf\", a ? \"1\" : \"0\"]\n }));\n return {\n allOf: [a, b].filter((x) => x !== void 0)\n };\n};\nfunction parsePromiseDef(def, refs) {\n return parseDef(def.type._def, refs);\n}\nfunction parseSetDef(def, refs) {\n const items = parseDef(def.valueType._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"items\"]\n }));\n const schema = {\n type: \"array\",\n uniqueItems: true,\n items\n };\n if (def.minSize) {\n schema.minItems = def.minSize.value;\n }\n if (def.maxSize) {\n schema.maxItems = def.maxSize.value;\n }\n return schema;\n}\nfunction parseTupleDef(def, refs) {\n if (def.rest) {\n return {\n type: \"array\",\n minItems: def.items.length,\n items: def.items.map(\n (x, i) => parseDef(x._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"items\", `${i}`]\n }))\n ).reduce(\n (acc, x) => x === void 0 ? acc : [...acc, x],\n []\n ),\n additionalItems: parseDef(def.rest._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"additionalItems\"]\n }))\n };\n } else {\n return {\n type: \"array\",\n minItems: def.items.length,\n maxItems: def.items.length,\n items: def.items.map(\n (x, i) => parseDef(x._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"items\", `${i}`]\n }))\n ).reduce(\n (acc, x) => x === void 0 ? acc : [...acc, x],\n []\n )\n };\n }\n}\nfunction parseUndefinedDef() {\n return {\n not: parseAnyDef()\n };\n}\nfunction parseUnknownDef() {\n return parseAnyDef();\n}\nvar parseReadonlyDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\nvar selectParser = (def, typeName, refs) => {\n switch (typeName) {\n case ZodFirstPartyTypeKind3.ZodString:\n return parseStringDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodNumber:\n return parseNumberDef(def);\n case ZodFirstPartyTypeKind3.ZodObject:\n return parseObjectDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodBigInt:\n return parseBigintDef(def);\n case ZodFirstPartyTypeKind3.ZodBoolean:\n return parseBooleanDef();\n case ZodFirstPartyTypeKind3.ZodDate:\n return parseDateDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodUndefined:\n return parseUndefinedDef();\n case ZodFirstPartyTypeKind3.ZodNull:\n return parseNullDef();\n case ZodFirstPartyTypeKind3.ZodArray:\n return parseArrayDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodUnion:\n case ZodFirstPartyTypeKind3.ZodDiscriminatedUnion:\n return parseUnionDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodIntersection:\n return parseIntersectionDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodTuple:\n return parseTupleDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodRecord:\n return parseRecordDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodLiteral:\n return parseLiteralDef(def);\n case ZodFirstPartyTypeKind3.ZodEnum:\n return parseEnumDef(def);\n case ZodFirstPartyTypeKind3.ZodNativeEnum:\n return parseNativeEnumDef(def);\n case ZodFirstPartyTypeKind3.ZodNullable:\n return parseNullableDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodOptional:\n return parseOptionalDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodMap:\n return parseMapDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodSet:\n return parseSetDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodLazy:\n return () => def.getter()._def;\n case ZodFirstPartyTypeKind3.ZodPromise:\n return parsePromiseDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodNaN:\n case ZodFirstPartyTypeKind3.ZodNever:\n return parseNeverDef();\n case ZodFirstPartyTypeKind3.ZodEffects:\n return parseEffectsDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodAny:\n return parseAnyDef();\n case ZodFirstPartyTypeKind3.ZodUnknown:\n return parseUnknownDef();\n case ZodFirstPartyTypeKind3.ZodDefault:\n return parseDefaultDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodBranded:\n return parseBrandedDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodReadonly:\n return parseReadonlyDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodCatch:\n return parseCatchDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodPipeline:\n return parsePipelineDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodFunction:\n case ZodFirstPartyTypeKind3.ZodVoid:\n case ZodFirstPartyTypeKind3.ZodSymbol:\n return void 0;\n default:\n return /* @__PURE__ */ ((_) => void 0)(typeName);\n }\n};\nvar getRelativePath = (pathA, pathB) => {\n let i = 0;\n for (; i < pathA.length && i < pathB.length; i++) {\n if (pathA[i] !== pathB[i]) break;\n }\n return [(pathA.length - i).toString(), ...pathB.slice(i)].join(\"/\");\n};\nfunction parseDef(def, refs, forceResolution = false) {\n var _a22;\n const seenItem = refs.seen.get(def);\n if (refs.override) {\n const overrideResult = (_a22 = refs.override) == null ? void 0 : _a22.call(\n refs,\n def,\n refs,\n seenItem,\n forceResolution\n );\n if (overrideResult !== ignoreOverride) {\n return overrideResult;\n }\n }\n if (seenItem && !forceResolution) {\n const seenSchema = get$ref(seenItem, refs);\n if (seenSchema !== void 0) {\n return seenSchema;\n }\n }\n const newItem = { def, path: refs.currentPath, jsonSchema: void 0 };\n refs.seen.set(def, newItem);\n const jsonSchemaOrGetter = selectParser(def, def.typeName, refs);\n const jsonSchema2 = typeof jsonSchemaOrGetter === \"function\" ? parseDef(jsonSchemaOrGetter(), refs) : jsonSchemaOrGetter;\n if (jsonSchema2) {\n addMeta(def, refs, jsonSchema2);\n }\n if (refs.postProcess) {\n const postProcessResult = refs.postProcess(jsonSchema2, def, refs);\n newItem.jsonSchema = jsonSchema2;\n return postProcessResult;\n }\n newItem.jsonSchema = jsonSchema2;\n return jsonSchema2;\n}\nvar get$ref = (item, refs) => {\n switch (refs.$refStrategy) {\n case \"root\":\n return { $ref: item.path.join(\"/\") };\n case \"relative\":\n return { $ref: getRelativePath(refs.currentPath, item.path) };\n case \"none\":\n case \"seen\": {\n if (item.path.length < refs.currentPath.length && item.path.every((value, index) => refs.currentPath[index] === value)) {\n console.warn(\n `Recursive reference detected at ${refs.currentPath.join(\n \"/\"\n )}! Defaulting to any`\n );\n return parseAnyDef();\n }\n return refs.$refStrategy === \"seen\" ? parseAnyDef() : void 0;\n }\n }\n};\nvar addMeta = (def, refs, jsonSchema2) => {\n if (def.description) {\n jsonSchema2.description = def.description;\n }\n return jsonSchema2;\n};\nvar getRefs = (options) => {\n const _options = getDefaultOptions(options);\n const currentPath = _options.name !== void 0 ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath;\n return __spreadProps(__spreadValues({}, _options), {\n currentPath,\n propertyPath: void 0,\n seen: new Map(\n Object.entries(_options.definitions).map(([name22, def]) => [\n def._def,\n {\n def: def._def,\n path: [..._options.basePath, _options.definitionPath, name22],\n // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.\n jsonSchema: void 0\n }\n ])\n )\n });\n};\nvar zod3ToJsonSchema = (schema, options) => {\n var _a22;\n const refs = getRefs(options);\n let definitions = typeof options === \"object\" && options.definitions ? Object.entries(options.definitions).reduce(\n (acc, [name32, schema2]) => {\n var _a32;\n return __spreadProps(__spreadValues({}, acc), {\n [name32]: (_a32 = parseDef(\n schema2._def,\n __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.basePath, refs.definitionPath, name32]\n }),\n true\n )) != null ? _a32 : parseAnyDef()\n });\n },\n {}\n ) : void 0;\n const name22 = typeof options === \"string\" ? options : (options == null ? void 0 : options.nameStrategy) === \"title\" ? void 0 : options == null ? void 0 : options.name;\n const main = (_a22 = parseDef(\n schema._def,\n name22 === void 0 ? refs : __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.basePath, refs.definitionPath, name22]\n }),\n false\n )) != null ? _a22 : parseAnyDef();\n const title = typeof options === \"object\" && options.name !== void 0 && options.nameStrategy === \"title\" ? options.name : void 0;\n if (title !== void 0) {\n main.title = title;\n }\n const combined = name22 === void 0 ? definitions ? __spreadProps(__spreadValues({}, main), {\n [refs.definitionPath]: definitions\n }) : main : {\n $ref: [\n ...refs.$refStrategy === \"relative\" ? [] : refs.basePath,\n refs.definitionPath,\n name22\n ].join(\"/\"),\n [refs.definitionPath]: __spreadProps(__spreadValues({}, definitions), {\n [name22]: main\n })\n };\n combined.$schema = \"http://json-schema.org/draft-07/schema#\";\n return combined;\n};\nvar schemaSymbol = /* @__PURE__ */ Symbol.for(\"vercel.ai.schema\");\nfunction jsonSchema(jsonSchema2, {\n validate\n} = {}) {\n return {\n [schemaSymbol]: true,\n _type: void 0,\n // should never be used directly\n get jsonSchema() {\n if (typeof jsonSchema2 === \"function\") {\n jsonSchema2 = jsonSchema2();\n }\n return jsonSchema2;\n },\n validate\n };\n}\nfunction isSchema(value) {\n return typeof value === \"object\" && value !== null && schemaSymbol in value && value[schemaSymbol] === true && \"jsonSchema\" in value && \"validate\" in value;\n}\nfunction asSchema(schema) {\n return schema == null ? jsonSchema({ properties: {}, additionalProperties: false }) : isSchema(schema) ? schema : \"~standard\" in schema ? schema[\"~standard\"].vendor === \"zod\" ? zodSchema(schema) : standardSchema(schema) : schema();\n}\nfunction standardSchema(standardSchema2) {\n return jsonSchema(\n () => addAdditionalPropertiesToJsonSchema(\n standardSchema2[\"~standard\"].jsonSchema.input({\n target: \"draft-07\"\n })\n ),\n {\n validate: async (value) => {\n const result = await standardSchema2[\"~standard\"].validate(value);\n return \"value\" in result ? { success: true, value: result.value } : {\n success: false,\n error: new TypeValidationError({\n value,\n cause: result.issues\n })\n };\n }\n }\n );\n}\nfunction zod3Schema(zodSchema2, options) {\n var _a22;\n const useReferences = (_a22 = options == null ? void 0 : options.useReferences) != null ? _a22 : false;\n return jsonSchema(\n // defer json schema creation to avoid unnecessary computation when only validation is needed\n () => zod3ToJsonSchema(zodSchema2, {\n $refStrategy: useReferences ? \"root\" : \"none\"\n }),\n {\n validate: async (value) => {\n const result = await zodSchema2.safeParseAsync(value);\n return result.success ? { success: true, value: result.data } : { success: false, error: result.error };\n }\n }\n );\n}\nfunction zod4Schema(zodSchema2, options) {\n var _a22;\n const useReferences = (_a22 = options == null ? void 0 : options.useReferences) != null ? _a22 : false;\n return jsonSchema(\n // defer json schema creation to avoid unnecessary computation when only validation is needed\n () => addAdditionalPropertiesToJsonSchema(\n z4.toJSONSchema(zodSchema2, {\n target: \"draft-7\",\n io: \"input\",\n reused: useReferences ? \"ref\" : \"inline\"\n })\n ),\n {\n validate: async (value) => {\n const result = await z4.safeParseAsync(zodSchema2, value);\n return result.success ? { success: true, value: result.data } : { success: false, error: result.error };\n }\n }\n );\n}\nfunction isZod4Schema(zodSchema2) {\n return \"_zod\" in zodSchema2;\n}\nfunction zodSchema(zodSchema2, options) {\n if (isZod4Schema(zodSchema2)) {\n return zod4Schema(zodSchema2, options);\n } else {\n return zod3Schema(zodSchema2, options);\n }\n}\nasync function validateTypes({\n value,\n schema,\n context\n}) {\n const result = await safeValidateTypes({ value, schema, context });\n if (!result.success) {\n throw TypeValidationError.wrap({ value, cause: result.error, context });\n }\n return result.value;\n}\nasync function safeValidateTypes({\n value,\n schema,\n context\n}) {\n const actualSchema = asSchema(schema);\n try {\n if (actualSchema.validate == null) {\n return { success: true, value, rawValue: value };\n }\n const result = await actualSchema.validate(value);\n if (result.success) {\n return { success: true, value: result.value, rawValue: value };\n }\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: result.error, context }),\n rawValue: value\n };\n } catch (error) {\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: error, context }),\n rawValue: value\n };\n }\n}\nasync function parseJSON({\n text,\n schema\n}) {\n try {\n const value = secureJsonParse(text);\n if (schema == null) {\n return value;\n }\n return validateTypes({ value, schema });\n } catch (error) {\n if (JSONParseError.isInstance(error) || TypeValidationError.isInstance(error)) {\n throw error;\n }\n throw new JSONParseError({ text, cause: error });\n }\n}\nasync function safeParseJSON({\n text,\n schema\n}) {\n try {\n const value = secureJsonParse(text);\n if (schema == null) {\n return { success: true, value, rawValue: value };\n }\n return await safeValidateTypes({ value, schema });\n } catch (error) {\n return {\n success: false,\n error: JSONParseError.isInstance(error) ? error : new JSONParseError({ text, cause: error }),\n rawValue: void 0\n };\n }\n}\nfunction isParsableJson(input) {\n try {\n secureJsonParse(input);\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction parseJsonEventStream({\n stream,\n schema\n}) {\n return stream.pipeThrough(new TextDecoderStream()).pipeThrough(new EventSourceParserStream()).pipeThrough(\n new TransformStream({\n async transform({ data }, controller) {\n if (data === \"[DONE]\") {\n return;\n }\n controller.enqueue(await safeParseJSON({ text: data, schema }));\n }\n })\n );\n}\nvar getOriginalFetch2 = () => globalThis.fetch;\nvar postJsonToApi = async ({\n url,\n headers,\n body,\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch: fetch2\n}) => postToApi({\n url,\n headers: __spreadValues({\n \"Content-Type\": \"application/json\"\n }, headers),\n body: {\n content: JSON.stringify(body),\n values: body\n },\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch: fetch2\n});\nvar postToApi = async ({\n url,\n headers = {},\n body,\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch: fetch2 = getOriginalFetch2()\n}) => {\n try {\n const response = await fetch2(url, {\n method: \"POST\",\n headers: withUserAgentSuffix(\n headers,\n `ai-sdk/provider-utils/${VERSION}`,\n getRuntimeEnvironmentUserAgent()\n ),\n body: body.content,\n signal: abortSignal\n });\n const responseHeaders = extractResponseHeaders(response);\n if (!response.ok) {\n let errorInformation;\n try {\n errorInformation = await failedResponseHandler({\n response,\n url,\n requestBodyValues: body.values\n });\n } catch (error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n throw new APICallError({\n message: \"Failed to process error response\",\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: body.values\n });\n }\n throw errorInformation.value;\n }\n try {\n return await successfulResponseHandler({\n response,\n url,\n requestBodyValues: body.values\n });\n } catch (error) {\n if (error instanceof Error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n }\n throw new APICallError({\n message: \"Failed to process successful response\",\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: body.values\n });\n }\n } catch (error) {\n throw handleFetchError({ error, url, requestBodyValues: body.values });\n }\n};\nfunction tool(tool2) {\n return tool2;\n}\nfunction createProviderToolFactory({\n id,\n inputSchema\n}) {\n return (_a16) => {\n var _b16 = _a16, {\n execute,\n outputSchema,\n needsApproval,\n toModelOutput,\n onInputStart,\n onInputDelta,\n onInputAvailable\n } = _b16, args = __objRest(_b16, [\n \"execute\",\n \"outputSchema\",\n \"needsApproval\",\n \"toModelOutput\",\n \"onInputStart\",\n \"onInputDelta\",\n \"onInputAvailable\"\n ]);\n return tool({\n type: \"provider\",\n id,\n args,\n inputSchema,\n outputSchema,\n execute,\n needsApproval,\n toModelOutput,\n onInputStart,\n onInputDelta,\n onInputAvailable\n });\n };\n}\nvar createJsonErrorResponseHandler = ({\n errorSchema,\n errorToMessage,\n isRetryable\n}) => async ({ response, url, requestBodyValues }) => {\n const responseBody = await response.text();\n const responseHeaders = extractResponseHeaders(response);\n if (responseBody.trim() === \"\") {\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n isRetryable: isRetryable == null ? void 0 : isRetryable(response)\n })\n };\n }\n try {\n const parsedError = await parseJSON({\n text: responseBody,\n schema: errorSchema\n });\n return {\n responseHeaders,\n value: new APICallError({\n message: errorToMessage(parsedError),\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n data: parsedError,\n isRetryable: isRetryable == null ? void 0 : isRetryable(response, parsedError)\n })\n };\n } catch (parseError) {\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n isRetryable: isRetryable == null ? void 0 : isRetryable(response)\n })\n };\n }\n};\nvar createEventSourceResponseHandler = (chunkSchema) => async ({ response }) => {\n const responseHeaders = extractResponseHeaders(response);\n if (response.body == null) {\n throw new EmptyResponseBodyError({});\n }\n return {\n responseHeaders,\n value: parseJsonEventStream({\n stream: response.body,\n schema: chunkSchema\n })\n };\n};\nvar createJsonResponseHandler = (responseSchema) => async ({ response, url, requestBodyValues }) => {\n const responseBody = await response.text();\n const parsedResult = await safeParseJSON({\n text: responseBody,\n schema: responseSchema\n });\n const responseHeaders = extractResponseHeaders(response);\n if (!parsedResult.success) {\n throw new APICallError({\n message: \"Invalid JSON response\",\n cause: parsedResult.error,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n url,\n requestBodyValues\n });\n }\n return {\n responseHeaders,\n value: parsedResult.value,\n rawValue: parsedResult.rawValue\n };\n};\nfunction withoutTrailingSlash(url) {\n return url == null ? void 0 : url.replace(/\\/$/, \"\");\n}\n\n// src/schemas/reasoning-details.ts\nimport { z } from \"zod/v4\";\n\n// src/utils/type-guards.ts\nfunction isDefinedOrNotNull(value) {\n return value !== null && value !== void 0;\n}\n\n// src/schemas/format.ts\nvar ReasoningFormat = /* @__PURE__ */ ((ReasoningFormat2) => {\n ReasoningFormat2[\"Unknown\"] = \"unknown\";\n ReasoningFormat2[\"OpenAIResponsesV1\"] = \"openai-responses-v1\";\n ReasoningFormat2[\"AzureOpenAIResponsesV1\"] = \"azure-openai-responses-v1\";\n ReasoningFormat2[\"XAIResponsesV1\"] = \"xai-responses-v1\";\n ReasoningFormat2[\"AnthropicClaudeV1\"] = \"anthropic-claude-v1\";\n ReasoningFormat2[\"GoogleGeminiV1\"] = \"google-gemini-v1\";\n return ReasoningFormat2;\n})(ReasoningFormat || {});\nvar DEFAULT_REASONING_FORMAT = \"anthropic-claude-v1\" /* AnthropicClaudeV1 */;\n\n// src/schemas/reasoning-details.ts\nvar CommonReasoningDetailSchema = z.object({\n id: z.string().nullish(),\n format: z.enum(ReasoningFormat).nullish(),\n index: z.number().optional()\n}).loose();\nvar ReasoningDetailSummarySchema = z.object({\n type: z.literal(\"reasoning.summary\" /* Summary */),\n summary: z.string()\n}).extend(CommonReasoningDetailSchema.shape);\nvar ReasoningDetailEncryptedSchema = z.object({\n type: z.literal(\"reasoning.encrypted\" /* Encrypted */),\n data: z.string()\n}).extend(CommonReasoningDetailSchema.shape);\nvar ReasoningDetailTextSchema = z.object({\n type: z.literal(\"reasoning.text\" /* Text */),\n text: z.string().nullish(),\n signature: z.string().nullish()\n}).extend(CommonReasoningDetailSchema.shape);\nvar ReasoningDetailUnionSchema = z.union([\n ReasoningDetailSummarySchema,\n ReasoningDetailEncryptedSchema,\n ReasoningDetailTextSchema\n]);\nvar ReasoningDetailsWithUnknownSchema = z.union([\n ReasoningDetailUnionSchema,\n z.unknown().transform(() => null)\n]);\nvar ReasoningDetailArraySchema = z.array(ReasoningDetailsWithUnknownSchema).transform((d) => d.filter((d2) => !!d2));\nvar OutputUnionToReasoningDetailsSchema = z.union([\n z.object({\n delta: z.object({\n reasoning_details: z.array(ReasoningDetailsWithUnknownSchema)\n })\n }).transform(\n (data) => data.delta.reasoning_details.filter(isDefinedOrNotNull)\n ),\n z.object({\n message: z.object({\n reasoning_details: z.array(ReasoningDetailsWithUnknownSchema)\n })\n }).transform(\n (data) => data.message.reasoning_details.filter(isDefinedOrNotNull)\n ),\n z.object({\n text: z.string(),\n reasoning_details: z.array(ReasoningDetailsWithUnknownSchema)\n }).transform((data) => data.reasoning_details.filter(isDefinedOrNotNull))\n]);\n\n// src/schemas/error-response.ts\nimport { z as z2 } from \"zod/v4\";\nvar OpenRouterErrorResponseSchema = z2.object({\n error: z2.object({\n code: z2.union([z2.string(), z2.number()]).nullable().optional().default(null),\n message: z2.string(),\n type: z2.string().nullable().optional().default(null),\n param: z2.any().nullable().optional().default(null)\n }).passthrough()\n}).passthrough();\nfunction extractErrorMessage(data) {\n const error = data.error;\n const metadata = error.metadata;\n if (!metadata) {\n return data.error.message;\n }\n const parts = [];\n if (typeof metadata.provider_name === \"string\" && metadata.provider_name) {\n parts.push(`[${metadata.provider_name}]`);\n }\n const raw = metadata.raw;\n const rawMessage = extractRawMessage(raw);\n if (rawMessage && rawMessage !== data.error.message) {\n parts.push(rawMessage);\n } else {\n parts.push(data.error.message);\n }\n return parts.join(\" \");\n}\nfunction extractRawMessage(raw) {\n if (typeof raw === \"string\") {\n try {\n const parsed = JSON.parse(raw);\n if (typeof parsed === \"object\" && parsed !== null) {\n return extractRawMessage(parsed);\n }\n return raw;\n } catch (e) {\n return raw;\n }\n }\n if (typeof raw !== \"object\" || raw === null) {\n return void 0;\n }\n const obj = raw;\n for (const field of [\"message\", \"error\", \"detail\", \"details\", \"msg\"]) {\n const value = obj[field];\n if (typeof value === \"string\" && value.length > 0) {\n return value;\n }\n if (typeof value === \"object\" && value !== null) {\n const nested = extractRawMessage(value);\n if (nested) {\n return nested;\n }\n }\n }\n return void 0;\n}\nvar openrouterFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: OpenRouterErrorResponseSchema,\n errorToMessage: extractErrorMessage\n});\n\n// src/schemas/provider-metadata.ts\nimport { z as z3 } from \"zod/v4\";\nvar FileAnnotationSchema = z3.object({\n type: z3.literal(\"file\"),\n file: z3.object({\n hash: z3.string(),\n name: z3.string(),\n content: z3.array(\n z3.object({\n type: z3.string(),\n text: z3.string().optional()\n }).catchall(z3.any())\n ).optional()\n }).catchall(z3.any())\n}).catchall(z3.any());\nvar OpenRouterProviderMetadataSchema = z3.object({\n provider: z3.string(),\n reasoning_details: z3.array(ReasoningDetailUnionSchema).optional(),\n annotations: z3.array(FileAnnotationSchema).optional(),\n usage: z3.object({\n promptTokens: z3.number(),\n promptTokensDetails: z3.object({\n cachedTokens: z3.number()\n }).catchall(z3.any()).optional(),\n completionTokens: z3.number(),\n completionTokensDetails: z3.object({\n reasoningTokens: z3.number()\n }).catchall(z3.any()).optional(),\n totalTokens: z3.number(),\n cost: z3.number().optional(),\n costDetails: z3.object({\n upstreamInferenceCost: z3.number()\n }).catchall(z3.any()).optional()\n }).catchall(z3.any())\n}).catchall(z3.any());\nvar OpenRouterProviderOptionsSchema = z3.object({\n openrouter: z3.object({\n // Use ReasoningDetailArraySchema (with unknown fallback) instead of\n // z.array(ReasoningDetailUnionSchema) so that a single malformed entry\n // (e.g., a future format not yet in the enum) is individually dropped\n // rather than causing the entire array to fail parsing.\n reasoning_details: ReasoningDetailArraySchema.optional(),\n annotations: z3.array(FileAnnotationSchema).optional()\n }).optional()\n}).optional();\n\n// src/utils/compute-token-usage.ts\nfunction computeTokenUsage(usage) {\n var _a16, _b16, _c, _d, _e, _f, _g, _h;\n const promptTokens = (_a16 = usage.prompt_tokens) != null ? _a16 : 0;\n const completionTokens = (_b16 = usage.completion_tokens) != null ? _b16 : 0;\n const cacheReadTokens = (_d = (_c = usage.prompt_tokens_details) == null ? void 0 : _c.cached_tokens) != null ? _d : 0;\n const cacheWriteTokens = (_f = (_e = usage.prompt_tokens_details) == null ? void 0 : _e.cache_write_tokens) != null ? _f : void 0;\n const reasoningTokens = (_h = (_g = usage.completion_tokens_details) == null ? void 0 : _g.reasoning_tokens) != null ? _h : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: cacheWriteTokens\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\nfunction emptyUsage() {\n return {\n inputTokens: {\n total: 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n}\n\n// src/utils/map-finish-reason.ts\nfunction mapToUnified(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\nfunction mapOpenRouterFinishReason(finishReason) {\n return {\n unified: mapToUnified(finishReason),\n raw: finishReason != null ? finishReason : void 0\n };\n}\nfunction createFinishReason(unified, raw) {\n return { unified, raw };\n}\n\n// src/utils/with-stream-error-handling.ts\nfunction withStreamErrorHandling(source, onError) {\n const reader = source.getReader();\n return new ReadableStream({\n async pull(controller) {\n try {\n const { done, value } = await reader.read();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n } catch (err) {\n onError(err);\n reader.cancel().catch(() => {\n });\n controller.close();\n }\n },\n cancel(reason) {\n reader.cancel(reason);\n }\n });\n}\n\n// src/utils/deterministic-stringify.ts\nfunction deterministicStringify(value) {\n return JSON.stringify(sortKeys(value));\n}\nfunction sortKeys(value) {\n if (value === null || value === void 0) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(sortKeys);\n }\n if (typeof value === \"object\") {\n const sorted = {};\n const entries = Object.entries(value);\n entries.sort(([a], [b]) => a.localeCompare(b));\n for (const [key, val] of entries) {\n sorted[key] = sortKeys(val);\n }\n return sorted;\n }\n return value;\n}\n\n// src/utils/reasoning-details-duplicate-tracker.ts\nvar _seenKeys;\nvar ReasoningDetailsDuplicateTracker = class {\n constructor() {\n __privateAdd(this, _seenKeys, /* @__PURE__ */ new Set());\n }\n /**\n * Attempts to track a detail.\n * Returns true if this is a NEW detail (not seen before and has valid key),\n * false if it was skipped (no valid key) or already seen (duplicate).\n */\n upsert(detail) {\n const key = this.getCanonicalKey(detail);\n if (key === null) {\n return false;\n }\n if (__privateGet(this, _seenKeys).has(key)) {\n return false;\n }\n __privateGet(this, _seenKeys).add(key);\n return true;\n }\n getCanonicalKey(detail) {\n switch (detail.type) {\n case \"reasoning.summary\" /* Summary */:\n return detail.summary;\n case \"reasoning.encrypted\" /* Encrypted */:\n if (detail.id) {\n return detail.id;\n }\n return detail.data;\n case \"reasoning.text\" /* Text */: {\n if (detail.text) {\n return detail.text;\n }\n if (detail.signature) {\n return detail.signature;\n }\n return null;\n }\n default: {\n return null;\n }\n }\n }\n};\n_seenKeys = new WeakMap();\n\n// src/types/openrouter-chat-completions-input.ts\nvar OPENROUTER_AUDIO_FORMATS = [\n \"wav\",\n \"mp3\",\n \"aiff\",\n \"aac\",\n \"ogg\",\n \"flac\",\n \"m4a\",\n \"pcm16\",\n \"pcm24\"\n];\n\n// src/chat/is-url.ts\nfunction isUrl({\n url,\n protocols\n}) {\n try {\n const urlObj = new URL(url);\n return protocols.has(urlObj.protocol);\n } catch (_) {\n return false;\n }\n}\n\n// src/chat/file-url-utils.ts\nfunction buildFileDataUrl({\n data,\n mediaType,\n defaultMediaType\n}) {\n if (data instanceof Uint8Array) {\n const base64 = convertUint8ArrayToBase64(data);\n return `data:${mediaType != null ? mediaType : defaultMediaType};base64,${base64}`;\n }\n const stringData = data.toString();\n if (isUrl({\n url: stringData,\n protocols: /* @__PURE__ */ new Set([\"http:\", \"https:\"])\n })) {\n return stringData;\n }\n return stringData.startsWith(\"data:\") ? stringData : `data:${mediaType != null ? mediaType : defaultMediaType};base64,${stringData}`;\n}\nfunction getFileUrl({\n part,\n defaultMediaType\n}) {\n const data = part.data instanceof URL ? part.data.toString() : part.data;\n return buildFileDataUrl({\n data,\n mediaType: part.mediaType,\n defaultMediaType\n });\n}\nfunction getMediaType(dataUrl, defaultMediaType) {\n var _a16;\n const match = dataUrl.match(/^data:([^;]+)/);\n return match ? (_a16 = match[1]) != null ? _a16 : defaultMediaType : defaultMediaType;\n}\nfunction getBase64FromDataUrl(dataUrl) {\n const match = dataUrl.match(/^data:[^;]*;base64,(.+)$/);\n return match ? match[1] : dataUrl;\n}\nvar MIME_TO_FORMAT = {\n // MP3 variants\n mpeg: \"mp3\",\n mp3: \"mp3\",\n // WAV variants\n \"x-wav\": \"wav\",\n wave: \"wav\",\n wav: \"wav\",\n // OGG variants\n ogg: \"ogg\",\n vorbis: \"ogg\",\n // AAC variants\n aac: \"aac\",\n \"x-aac\": \"aac\",\n // M4A variants\n m4a: \"m4a\",\n \"x-m4a\": \"m4a\",\n mp4: \"m4a\",\n // AIFF variants\n aiff: \"aiff\",\n \"x-aiff\": \"aiff\",\n // FLAC\n flac: \"flac\",\n \"x-flac\": \"flac\",\n // PCM variants\n pcm16: \"pcm16\",\n pcm24: \"pcm24\"\n};\nfunction getInputAudioData(part) {\n const fileData = getFileUrl({\n part,\n defaultMediaType: \"audio/mpeg\"\n });\n if (isUrl({\n url: fileData,\n protocols: /* @__PURE__ */ new Set([\"http:\", \"https:\"])\n })) {\n throw new Error(\n `Audio files cannot be provided as URLs.\n\nOpenRouter requires audio to be base64-encoded. Please:\n1. Download the audio file locally\n2. Read it as a Buffer or Uint8Array\n3. Pass it as the data parameter\n\nThe AI SDK will automatically handle base64 encoding.\n\nLearn more: https://openrouter.ai/docs/features/multimodal/audio`\n );\n }\n const data = getBase64FromDataUrl(fileData);\n const mediaType = part.mediaType || \"audio/mpeg\";\n const rawFormat = mediaType.replace(\"audio/\", \"\");\n const format = MIME_TO_FORMAT[rawFormat];\n if (format === void 0) {\n const supportedList = OPENROUTER_AUDIO_FORMATS.join(\", \");\n throw new Error(\n `Unsupported audio format: \"${mediaType}\"\n\nOpenRouter supports the following audio formats: ${supportedList}\n\nLearn more: https://openrouter.ai/docs/features/multimodal/audio`\n );\n }\n return { data, format };\n}\n\n// src/chat/convert-to-openrouter-chat-messages.ts\nfunction getCacheControl(providerMetadata) {\n var _a16, _b16, _c;\n const anthropic = providerMetadata == null ? void 0 : providerMetadata.anthropic;\n const openrouter2 = providerMetadata == null ? void 0 : providerMetadata.openrouter;\n return (_c = (_b16 = (_a16 = openrouter2 == null ? void 0 : openrouter2.cacheControl) != null ? _a16 : openrouter2 == null ? void 0 : openrouter2.cache_control) != null ? _b16 : anthropic == null ? void 0 : anthropic.cacheControl) != null ? _c : anthropic == null ? void 0 : anthropic.cache_control;\n}\nfunction convertToOpenRouterChatMessages(prompt) {\n var _a16, _b16, _c, _d, _e, _f, _g, _h;\n const messages = [];\n const reasoningDetailsTracker = new ReasoningDetailsDuplicateTracker();\n for (const { role, content, providerOptions } of prompt) {\n switch (role) {\n case \"system\": {\n const cacheControl = getCacheControl(providerOptions);\n messages.push({\n role: \"system\",\n content: [\n __spreadValues({\n type: \"text\",\n text: content\n }, cacheControl && { cache_control: cacheControl })\n ]\n });\n break;\n }\n case \"user\": {\n if (content.length === 1 && ((_a16 = content[0]) == null ? void 0 : _a16.type) === \"text\") {\n const cacheControl = (_b16 = getCacheControl(providerOptions)) != null ? _b16 : getCacheControl(content[0].providerOptions);\n const contentWithCacheControl = cacheControl ? [\n {\n type: \"text\",\n text: content[0].text,\n cache_control: cacheControl\n }\n ] : content[0].text;\n messages.push({\n role: \"user\",\n content: contentWithCacheControl\n });\n break;\n }\n const messageCacheControl = getCacheControl(providerOptions);\n let lastTextPartIndex = -1;\n for (let i = content.length - 1; i >= 0; i--) {\n if (((_c = content[i]) == null ? void 0 : _c.type) === \"text\") {\n lastTextPartIndex = i;\n break;\n }\n }\n const contentParts = content.map(\n (part, index) => {\n var _a17, _b17, _c2, _d2, _e2, _f2, _g2;\n const isLastTextPart = part.type === \"text\" && index === lastTextPartIndex;\n const partCacheControl = getCacheControl(part.providerOptions);\n const cacheControl = part.type === \"text\" ? partCacheControl != null ? partCacheControl : isLastTextPart ? messageCacheControl : void 0 : partCacheControl;\n switch (part.type) {\n case \"text\":\n return __spreadValues({\n type: \"text\",\n text: part.text\n }, cacheControl && { cache_control: cacheControl });\n case \"file\": {\n if ((_a17 = part.mediaType) == null ? void 0 : _a17.startsWith(\"image/\")) {\n const url = getFileUrl({\n part,\n defaultMediaType: \"image/jpeg\"\n });\n return __spreadValues({\n type: \"image_url\",\n image_url: {\n url\n }\n }, cacheControl && { cache_control: cacheControl });\n }\n if ((_b17 = part.mediaType) == null ? void 0 : _b17.startsWith(\"video/\")) {\n const url = getFileUrl({\n part,\n defaultMediaType: \"video/mp4\"\n });\n return __spreadValues({\n type: \"video_url\",\n video_url: {\n url\n }\n }, cacheControl && { cache_control: cacheControl });\n }\n if ((_c2 = part.mediaType) == null ? void 0 : _c2.startsWith(\"audio/\")) {\n return __spreadValues({\n type: \"input_audio\",\n input_audio: getInputAudioData(part)\n }, cacheControl && { cache_control: cacheControl });\n }\n const fileName = String(\n (_g2 = (_f2 = (_e2 = (_d2 = part.providerOptions) == null ? void 0 : _d2.openrouter) == null ? void 0 : _e2.filename) != null ? _f2 : part.filename) != null ? _g2 : \"\"\n );\n const fileData = getFileUrl({\n part,\n defaultMediaType: \"application/pdf\"\n });\n if (isUrl({\n url: fileData,\n protocols: /* @__PURE__ */ new Set([\"http:\", \"https:\"])\n })) {\n return {\n type: \"file\",\n file: {\n filename: fileName,\n file_data: fileData\n }\n };\n }\n return __spreadValues({\n type: \"file\",\n file: {\n filename: fileName,\n file_data: fileData\n }\n }, cacheControl && { cache_control: cacheControl });\n }\n default: {\n return __spreadValues({\n type: \"text\",\n text: \"\"\n }, cacheControl && { cache_control: cacheControl });\n }\n }\n }\n );\n messages.push({\n role: \"user\",\n content: contentParts\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n let reasoning = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: deterministicStringify(part.input)\n }\n });\n break;\n }\n case \"reasoning\": {\n reasoning += part.text;\n break;\n }\n case \"file\":\n break;\n default: {\n break;\n }\n }\n }\n const parsedProviderOptions = OpenRouterProviderOptionsSchema.safeParse(providerOptions);\n const messageReasoningDetails = parsedProviderOptions.success ? (_e = (_d = parsedProviderOptions.data) == null ? void 0 : _d.openrouter) == null ? void 0 : _e.reasoning_details : void 0;\n const messageAnnotations = parsedProviderOptions.success ? (_g = (_f = parsedProviderOptions.data) == null ? void 0 : _f.openrouter) == null ? void 0 : _g.annotations : void 0;\n const candidateReasoningDetails = messageReasoningDetails && Array.isArray(messageReasoningDetails) ? messageReasoningDetails : findFirstReasoningDetails(content);\n let finalReasoningDetails;\n if (candidateReasoningDetails) {\n const validDetails = candidateReasoningDetails.filter((detail) => {\n var _a17;\n if (detail.type !== \"reasoning.text\" /* Text */) {\n return true;\n }\n const format = (_a17 = detail.format) != null ? _a17 : DEFAULT_REASONING_FORMAT;\n if (format !== \"anthropic-claude-v1\" /* AnthropicClaudeV1 */ && format !== \"google-gemini-v1\" /* GoogleGeminiV1 */) {\n return true;\n }\n return !!detail.signature;\n });\n if (validDetails.length < candidateReasoningDetails.length) {\n const logger = globalThis.AI_SDK_LOG_WARNINGS;\n if (logger !== false && typeof logger !== \"function\") {\n console.warn(\n \"[openrouter] Some reasoning_details entries were removed because they were missing signatures. See https://github.com/OpenRouterTeam/ai-sdk-provider/issues/423 and https://github.com/OpenRouterTeam/ai-sdk-provider/issues/418 for more details.\"\n );\n }\n }\n const uniqueDetails = [];\n for (const detail of validDetails) {\n if (reasoningDetailsTracker.upsert(detail)) {\n uniqueDetails.push(detail);\n }\n }\n finalReasoningDetails = uniqueDetails;\n }\n const effectiveReasoning = reasoning && finalReasoningDetails && finalReasoningDetails.length > 0 ? reasoning : void 0;\n messages.push({\n role: \"assistant\",\n content: text || null,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0,\n reasoning: effectiveReasoning,\n reasoning_details: finalReasoningDetails,\n annotations: messageAnnotations,\n cache_control: getCacheControl(providerOptions)\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const content2 = getToolResultContent(toolResponse);\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: content2,\n name: toolResponse.toolName,\n cache_control: (_h = getCacheControl(providerOptions)) != null ? _h : getCacheControl(toolResponse.providerOptions)\n });\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n return messages;\n}\nfunction getToolResultContent(input) {\n var _a16;\n switch (input.output.type) {\n case \"text\":\n case \"error-text\":\n return input.output.value;\n case \"json\":\n case \"error-json\":\n return JSON.stringify(input.output.value);\n case \"content\":\n return mapToolResultContentParts(input.output.value);\n case \"execution-denied\":\n return (_a16 = input.output.reason) != null ? _a16 : \"Tool execution denied\";\n }\n}\nfunction mapToolResultContentParts(parts) {\n return parts.map((part) => {\n var _a16, _b16, _c, _d;\n switch (part.type) {\n case \"text\":\n return { type: \"text\", text: part.text };\n case \"image-data\":\n return {\n type: \"image_url\",\n image_url: {\n url: buildFileDataUrl({\n data: part.data,\n mediaType: part.mediaType,\n defaultMediaType: \"image/jpeg\"\n })\n }\n };\n case \"image-url\":\n return {\n type: \"image_url\",\n image_url: { url: part.url }\n };\n case \"file-data\": {\n const dataUrl = buildFileDataUrl({\n data: part.data,\n mediaType: part.mediaType,\n defaultMediaType: \"application/octet-stream\"\n });\n if ((_a16 = part.mediaType) == null ? void 0 : _a16.startsWith(\"image/\")) {\n return {\n type: \"image_url\",\n image_url: { url: dataUrl }\n };\n }\n if ((_b16 = part.mediaType) == null ? void 0 : _b16.startsWith(\"video/\")) {\n return {\n type: \"video_url\",\n video_url: { url: dataUrl }\n };\n }\n if ((_c = part.mediaType) == null ? void 0 : _c.startsWith(\"audio/\")) {\n const rawFormat = part.mediaType.replace(\"audio/\", \"\");\n const format = MIME_TO_FORMAT[rawFormat];\n if (format !== void 0) {\n return {\n type: \"input_audio\",\n input_audio: {\n data: getBase64FromDataUrl(dataUrl),\n format\n }\n };\n }\n }\n return {\n type: \"file\",\n file: {\n filename: (_d = part.filename) != null ? _d : \"\",\n file_data: dataUrl\n }\n };\n }\n case \"file-url\": {\n if (looksLikeImageUrl(part.url)) {\n return {\n type: \"image_url\",\n image_url: { url: part.url }\n };\n }\n return {\n type: \"file\",\n file: {\n filename: filenameFromUrl(part.url),\n file_data: part.url\n }\n };\n }\n case \"file-id\":\n case \"image-file-id\":\n case \"custom\":\n return { type: \"text\", text: JSON.stringify(part) };\n default: {\n const _exhaustiveCheck = part;\n return { type: \"text\", text: JSON.stringify(_exhaustiveCheck) };\n }\n }\n });\n}\nvar IMAGE_EXTENSIONS = /* @__PURE__ */ new Set([\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"gif\",\n \"webp\",\n \"svg\",\n \"bmp\",\n \"ico\",\n \"tif\",\n \"tiff\",\n \"avif\"\n]);\nfunction looksLikeImageUrl(url) {\n var _a16;\n try {\n const pathname = new URL(url).pathname;\n const ext = (_a16 = pathname.split(\".\").pop()) == null ? void 0 : _a16.toLowerCase();\n return ext !== void 0 && IMAGE_EXTENSIONS.has(ext);\n } catch (e) {\n return false;\n }\n}\nfunction filenameFromUrl(url) {\n try {\n const pathname = new URL(url).pathname;\n const last = pathname.split(\"/\").pop();\n return (last == null ? void 0 : last.includes(\".\")) ? last : \"\";\n } catch (e) {\n return \"\";\n }\n}\nfunction findFirstReasoningDetails(content) {\n var _a16, _b16, _c, _d;\n for (const part of content) {\n if (part.type === \"tool-call\") {\n const parsed = OpenRouterProviderOptionsSchema.safeParse(\n part.providerOptions\n );\n if (parsed.success && ((_b16 = (_a16 = parsed.data) == null ? void 0 : _a16.openrouter) == null ? void 0 : _b16.reasoning_details) && parsed.data.openrouter.reasoning_details.length > 0) {\n return parsed.data.openrouter.reasoning_details;\n }\n }\n }\n for (const part of content) {\n if (part.type === \"reasoning\") {\n const parsed = OpenRouterProviderOptionsSchema.safeParse(\n part.providerOptions\n );\n if (parsed.success && ((_d = (_c = parsed.data) == null ? void 0 : _c.openrouter) == null ? void 0 : _d.reasoning_details) && parsed.data.openrouter.reasoning_details.length > 0) {\n return parsed.data.openrouter.reasoning_details;\n }\n }\n }\n return void 0;\n}\n\n// src/chat/get-tool-choice.ts\nimport { z as z5 } from \"zod/v4\";\nvar ChatCompletionToolChoiceSchema = z5.union([\n z5.literal(\"auto\"),\n z5.literal(\"none\"),\n z5.literal(\"required\"),\n z5.object({\n type: z5.literal(\"function\"),\n function: z5.object({\n name: z5.string()\n })\n })\n]);\nfunction getChatCompletionToolChoice(toolChoice) {\n switch (toolChoice.type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return toolChoice.type;\n case \"tool\": {\n return {\n type: \"function\",\n function: { name: toolChoice.toolName }\n };\n }\n default: {\n toolChoice;\n throw new InvalidArgumentError({\n argument: \"toolChoice\",\n message: `Invalid tool choice type: ${JSON.stringify(toolChoice)}`\n });\n }\n }\n}\n\n// src/chat/schemas.ts\nimport { z as z7 } from \"zod/v4\";\n\n// src/schemas/image.ts\nimport { z as z6 } from \"zod/v4\";\nvar ImageResponseSchema = z6.object({\n type: z6.literal(\"image_url\"),\n image_url: z6.object({\n url: z6.string()\n }).passthrough()\n}).passthrough();\nvar ImageResponseWithUnknownSchema = z6.union([\n ImageResponseSchema,\n z6.unknown().transform(() => null)\n]);\nvar ImageResponseArraySchema = z6.array(ImageResponseWithUnknownSchema).transform((d) => d.filter((d2) => !!d2));\n\n// src/chat/schemas.ts\nvar OpenRouterChatCompletionBaseResponseSchema = z7.object({\n id: z7.string().optional(),\n model: z7.string().optional(),\n provider: z7.string().optional(),\n usage: z7.object({\n prompt_tokens: z7.number(),\n prompt_tokens_details: z7.object({\n cached_tokens: z7.number(),\n cache_write_tokens: z7.number().nullish()\n }).passthrough().nullish(),\n completion_tokens: z7.number(),\n completion_tokens_details: z7.object({\n reasoning_tokens: z7.number()\n }).passthrough().nullish(),\n total_tokens: z7.number(),\n cost: z7.number().optional(),\n cost_details: z7.object({\n upstream_inference_cost: z7.number().nullish()\n }).passthrough().nullish()\n }).passthrough().nullish()\n}).passthrough();\nvar OpenRouterNonStreamChatCompletionResponseSchema = z7.union([\n // Success response with choices\n OpenRouterChatCompletionBaseResponseSchema.extend({\n choices: z7.array(\n z7.object({\n message: z7.object({\n role: z7.literal(\"assistant\"),\n content: z7.string().nullable().optional(),\n reasoning: z7.string().nullable().optional(),\n reasoning_details: ReasoningDetailArraySchema.nullish(),\n images: ImageResponseArraySchema.nullish(),\n tool_calls: z7.array(\n z7.object({\n id: z7.string().optional().nullable(),\n type: z7.literal(\"function\"),\n function: z7.object({\n name: z7.string(),\n arguments: z7.string().optional()\n }).passthrough()\n }).passthrough()\n ).optional(),\n annotations: z7.array(\n z7.union([\n // URL citation from web search\n // title, start_index, end_index are optional as some upstream providers may omit them\n z7.object({\n type: z7.literal(\"url_citation\"),\n url_citation: z7.object({\n url: z7.string(),\n title: z7.string().optional(),\n start_index: z7.number().optional(),\n end_index: z7.number().optional(),\n content: z7.string().optional()\n }).passthrough()\n }).passthrough(),\n // File annotation from FileParserPlugin (old format)\n z7.object({\n type: z7.literal(\"file_annotation\"),\n file_annotation: z7.object({\n file_id: z7.string(),\n quote: z7.string().optional()\n }).passthrough()\n }).passthrough(),\n // File annotation from FileParserPlugin (new format)\n z7.object({\n type: z7.literal(\"file\"),\n file: z7.object({\n hash: z7.string(),\n name: z7.string(),\n content: z7.array(\n z7.object({\n type: z7.string(),\n text: z7.string().optional()\n }).passthrough()\n ).optional()\n }).passthrough()\n }).passthrough()\n ])\n ).nullish()\n }).passthrough(),\n index: z7.number().nullish(),\n logprobs: z7.object({\n content: z7.array(\n z7.object({\n token: z7.string(),\n logprob: z7.number(),\n top_logprobs: z7.array(\n z7.object({\n token: z7.string(),\n logprob: z7.number()\n }).passthrough()\n )\n }).passthrough()\n ).nullable()\n }).passthrough().nullable().optional(),\n finish_reason: z7.string().optional().nullable()\n }).passthrough()\n )\n }),\n // Error response (HTTP 200 with error payload)\n OpenRouterErrorResponseSchema.extend({\n user_id: z7.string().optional()\n })\n]);\nvar OpenRouterStreamChatCompletionChunkSchema = z7.union([\n OpenRouterChatCompletionBaseResponseSchema.extend({\n choices: z7.array(\n z7.object({\n delta: z7.object({\n role: z7.enum([\"assistant\"]).optional(),\n content: z7.string().nullish(),\n reasoning: z7.string().nullish().optional(),\n reasoning_details: ReasoningDetailArraySchema.nullish(),\n images: ImageResponseArraySchema.nullish(),\n tool_calls: z7.array(\n z7.object({\n index: z7.number().nullish(),\n id: z7.string().nullish(),\n type: z7.literal(\"function\").optional(),\n function: z7.object({\n name: z7.string().nullish(),\n arguments: z7.string().nullish()\n }).passthrough()\n }).passthrough()\n ).nullish(),\n annotations: z7.array(\n z7.union([\n // URL citation from web search\n // title, start_index, end_index are optional as some upstream providers may omit them\n z7.object({\n type: z7.literal(\"url_citation\"),\n url_citation: z7.object({\n url: z7.string(),\n title: z7.string().optional(),\n start_index: z7.number().optional(),\n end_index: z7.number().optional(),\n content: z7.string().optional()\n }).passthrough()\n }).passthrough(),\n // File annotation from FileParserPlugin (old format)\n z7.object({\n type: z7.literal(\"file_annotation\"),\n file_annotation: z7.object({\n file_id: z7.string(),\n quote: z7.string().optional()\n }).passthrough()\n }).passthrough(),\n // File annotation from FileParserPlugin (new format)\n z7.object({\n type: z7.literal(\"file\"),\n file: z7.object({\n hash: z7.string(),\n name: z7.string(),\n content: z7.array(\n z7.object({\n type: z7.string(),\n text: z7.string().optional()\n }).passthrough()\n ).optional()\n }).passthrough()\n }).passthrough()\n ])\n ).nullish()\n }).passthrough().nullish(),\n logprobs: z7.object({\n content: z7.array(\n z7.object({\n token: z7.string(),\n logprob: z7.number(),\n top_logprobs: z7.array(\n z7.object({\n token: z7.string(),\n logprob: z7.number()\n }).passthrough()\n )\n }).passthrough()\n ).nullable()\n }).passthrough().nullish(),\n finish_reason: z7.string().nullable().optional(),\n index: z7.number().nullish()\n }).passthrough()\n )\n }),\n OpenRouterErrorResponseSchema\n]);\n\n// src/chat/index.ts\nvar OpenRouterChatLanguageModel = class {\n constructor(modelId, settings, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"openrouter\";\n this.defaultObjectGenerationMode = \"tool\";\n this.supportsImageUrls = true;\n this.supportedUrls = {\n \"image/*\": [\n /^data:image\\/[a-zA-Z]+;base64,/,\n /^https?:\\/\\/.+\\.(jpg|jpeg|png|gif|webp)(?:[?#].*)?$/i\n ],\n // 'text/*': [/^data:text\\//, /^https?:\\/\\/.+$/],\n \"application/*\": [/^data:application\\//, /^https?:\\/\\/.+$/]\n };\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n frequencyPenalty,\n presencePenalty,\n seed,\n stopSequences,\n responseFormat,\n topK,\n tools,\n toolChoice\n }) {\n var _a16, _b16, _c, _d;\n const baseArgs = __spreadValues(__spreadValues({\n // model id:\n model: this.modelId,\n models: this.settings.models,\n // model specific settings:\n logit_bias: this.settings.logitBias,\n logprobs: this.settings.logprobs === true || typeof this.settings.logprobs === \"number\" ? true : void 0,\n top_logprobs: typeof this.settings.logprobs === \"number\" ? this.settings.logprobs : typeof this.settings.logprobs === \"boolean\" ? this.settings.logprobs ? 0 : void 0 : void 0,\n user: this.settings.user,\n parallel_tool_calls: this.settings.parallelToolCalls,\n // standardized settings (call-level options override model-level settings):\n max_tokens: maxOutputTokens != null ? maxOutputTokens : this.settings.maxTokens,\n temperature: temperature != null ? temperature : this.settings.temperature,\n top_p: topP != null ? topP : this.settings.topP,\n frequency_penalty: frequencyPenalty != null ? frequencyPenalty : this.settings.frequencyPenalty,\n presence_penalty: presencePenalty != null ? presencePenalty : this.settings.presencePenalty,\n seed,\n stop: stopSequences,\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: __spreadValues({\n schema: responseFormat.schema,\n strict: (_b16 = (_a16 = this.settings.structuredOutputs) == null ? void 0 : _a16.strict) != null ? _b16 : true,\n name: (_c = responseFormat.name) != null ? _c : \"response\"\n }, responseFormat.description && {\n description: responseFormat.description\n })\n } : { type: \"json_object\" } : void 0,\n top_k: topK != null ? topK : this.settings.topK,\n // messages:\n messages: convertToOpenRouterChatMessages(prompt),\n // OpenRouter specific settings:\n include_reasoning: this.settings.includeReasoning,\n reasoning: this.settings.reasoning,\n usage: this.settings.usage,\n // Web search settings:\n plugins: this.settings.plugins,\n web_search_options: this.settings.web_search_options,\n // Provider routing settings:\n provider: this.settings.provider,\n // Debug settings:\n debug: this.settings.debug,\n // Anthropic automatic caching:\n cache_control: this.settings.cache_control\n }, this.config.extraBody), this.settings.extraBody);\n if (tools && tools.length > 0) {\n const mappedTools = [];\n for (const tool2 of tools) {\n if (tool2.type === \"function\") {\n const openrouterOptions = (_d = tool2.providerOptions) == null ? void 0 : _d.openrouter;\n const eagerInputStreaming = openrouterOptions == null ? void 0 : openrouterOptions.eager_input_streaming;\n mappedTools.push(__spreadValues({\n type: \"function\",\n function: {\n name: tool2.name,\n description: tool2.description,\n parameters: tool2.inputSchema\n }\n }, eagerInputStreaming != null && {\n eager_input_streaming: eagerInputStreaming\n }));\n } else if (tool2.type === \"provider\") {\n mappedTools.push(mapProviderTool(tool2));\n }\n }\n return __spreadProps(__spreadValues({}, baseArgs), {\n tools: mappedTools,\n tool_choice: toolChoice ? getChatCompletionToolChoice(toolChoice) : void 0\n });\n }\n return baseArgs;\n }\n async doGenerate(options) {\n var _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v;\n const providerOptions = options.providerOptions || {};\n const openrouterOptions = providerOptions.openrouter || {};\n const _a16 = openrouterOptions, { cacheControl } = _a16, restOpenrouterOptions = __objRest(_a16, [\"cacheControl\"]);\n const args = __spreadValues(__spreadValues(__spreadValues({}, this.getArgs(options)), restOpenrouterOptions), cacheControl != null && !(\"cache_control\" in restOpenrouterOptions) ? { cache_control: cacheControl } : {});\n const { value: responseValue, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n OpenRouterNonStreamChatCompletionResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n if (\"error\" in responseValue) {\n const errorData = responseValue.error;\n throw new APICallError({\n message: errorData.message,\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n requestBodyValues: args,\n statusCode: 200,\n responseHeaders,\n data: errorData\n });\n }\n const response = responseValue;\n const choice = response.choices[0];\n if (!choice) {\n throw new NoContentGeneratedError({\n message: \"No choice in response\"\n });\n }\n const usageInfo = response.usage ? computeTokenUsage(response.usage) : emptyUsage();\n const reasoningDetails = (_b16 = choice.message.reasoning_details) != null ? _b16 : [];\n const reasoning = reasoningDetails.length > 0 ? reasoningDetails.map((detail) => {\n switch (detail.type) {\n case \"reasoning.text\" /* Text */: {\n if (detail.text) {\n return {\n type: \"reasoning\",\n text: detail.text,\n providerMetadata: {\n openrouter: {\n reasoning_details: [detail]\n }\n }\n };\n }\n break;\n }\n case \"reasoning.summary\" /* Summary */: {\n if (detail.summary) {\n return {\n type: \"reasoning\",\n text: detail.summary,\n providerMetadata: {\n openrouter: {\n reasoning_details: [detail]\n }\n }\n };\n }\n break;\n }\n case \"reasoning.encrypted\" /* Encrypted */: {\n break;\n }\n default: {\n detail;\n }\n }\n return null;\n }).filter((p) => p !== null) : choice.message.reasoning ? [\n {\n type: \"reasoning\",\n text: choice.message.reasoning\n }\n ] : [];\n const content = [];\n content.push(...reasoning);\n if (choice.message.content) {\n content.push({\n type: \"text\",\n text: choice.message.content\n });\n }\n if (choice.message.tool_calls) {\n let reasoningDetailsAttachedToToolCall = false;\n const seenToolCallIds = /* @__PURE__ */ new Set();\n for (const toolCall of choice.message.tool_calls) {\n let toolCallId = toolCall.id;\n if (!toolCallId || seenToolCallIds.has(toolCallId)) {\n toolCallId = generateId();\n }\n seenToolCallIds.add(toolCallId);\n content.push({\n type: \"tool-call\",\n toolCallId,\n toolName: toolCall.function.name,\n input: (_c = toolCall.function.arguments) != null ? _c : \"{}\",\n providerMetadata: !reasoningDetailsAttachedToToolCall ? {\n openrouter: {\n reasoning_details: reasoningDetails\n }\n } : void 0\n });\n reasoningDetailsAttachedToToolCall = true;\n }\n }\n if (choice.message.images) {\n for (const image of choice.message.images) {\n content.push({\n type: \"file\",\n mediaType: getMediaType(image.image_url.url, \"image/jpeg\"),\n data: getBase64FromDataUrl(image.image_url.url)\n });\n }\n }\n if (choice.message.annotations) {\n for (const annotation of choice.message.annotations) {\n if (annotation.type === \"url_citation\") {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: annotation.url_citation.url,\n url: annotation.url_citation.url,\n title: (_d = annotation.url_citation.title) != null ? _d : \"\",\n providerMetadata: {\n openrouter: {\n content: (_e = annotation.url_citation.content) != null ? _e : \"\",\n startIndex: (_f = annotation.url_citation.start_index) != null ? _f : 0,\n endIndex: (_g = annotation.url_citation.end_index) != null ? _g : 0\n }\n }\n });\n }\n }\n }\n const fileAnnotations = (_h = choice.message.annotations) == null ? void 0 : _h.filter(\n (a) => a.type === \"file\"\n );\n const hasToolCalls = choice.message.tool_calls && choice.message.tool_calls.length > 0;\n const hasEncryptedReasoning = reasoningDetails.some(\n (d) => d.type === \"reasoning.encrypted\" /* Encrypted */ && d.data\n );\n const shouldOverrideFinishReason = hasToolCalls && hasEncryptedReasoning && choice.finish_reason === \"stop\";\n const mappedFinishReason = shouldOverrideFinishReason ? createFinishReason(\"tool-calls\", (_i = choice.finish_reason) != null ? _i : void 0) : mapOpenRouterFinishReason(choice.finish_reason);\n const effectiveFinishReason = hasToolCalls && mappedFinishReason.unified === \"other\" ? createFinishReason(\"tool-calls\", mappedFinishReason.raw) : mappedFinishReason;\n return {\n content,\n finishReason: effectiveFinishReason,\n usage: usageInfo,\n warnings: [],\n providerMetadata: {\n openrouter: OpenRouterProviderMetadataSchema.parse({\n provider: (_j = response.provider) != null ? _j : \"\",\n reasoning_details: (_k = choice.message.reasoning_details) != null ? _k : [],\n annotations: fileAnnotations && fileAnnotations.length > 0 ? fileAnnotations : void 0,\n usage: __spreadValues(__spreadValues(__spreadValues(__spreadValues({\n promptTokens: (_l = usageInfo.inputTokens.total) != null ? _l : 0,\n completionTokens: (_m = usageInfo.outputTokens.total) != null ? _m : 0,\n totalTokens: ((_n = usageInfo.inputTokens.total) != null ? _n : 0) + ((_o = usageInfo.outputTokens.total) != null ? _o : 0)\n }, ((_p = response.usage) == null ? void 0 : _p.cost) != null ? { cost: response.usage.cost } : {}), ((_r = (_q = response.usage) == null ? void 0 : _q.prompt_tokens_details) == null ? void 0 : _r.cached_tokens) != null ? {\n promptTokensDetails: {\n cachedTokens: response.usage.prompt_tokens_details.cached_tokens\n }\n } : {}), ((_t = (_s = response.usage) == null ? void 0 : _s.completion_tokens_details) == null ? void 0 : _t.reasoning_tokens) != null ? {\n completionTokensDetails: {\n reasoningTokens: response.usage.completion_tokens_details.reasoning_tokens\n }\n } : {}), ((_v = (_u = response.usage) == null ? void 0 : _u.cost_details) == null ? void 0 : _v.upstream_inference_cost) != null ? {\n costDetails: {\n upstreamInferenceCost: response.usage.cost_details.upstream_inference_cost\n }\n } : {})\n })\n },\n request: { body: args },\n response: {\n id: response.id,\n modelId: response.model,\n headers: responseHeaders,\n body: response\n }\n };\n }\n async doStream(options) {\n var _b16;\n const providerOptions = options.providerOptions || {};\n const openrouterOptions = providerOptions.openrouter || {};\n const _a16 = openrouterOptions, { cacheControl } = _a16, restOpenrouterOptions = __objRest(_a16, [\"cacheControl\"]);\n const args = __spreadValues(__spreadValues(__spreadValues({}, this.getArgs(options)), restOpenrouterOptions), cacheControl != null && !(\"cache_control\" in restOpenrouterOptions) ? { cache_control: cacheControl } : {});\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: __spreadProps(__spreadValues({}, args), {\n stream: true,\n // only include stream_options when in strict compatibility mode:\n stream_options: this.config.compatibility === \"strict\" ? __spreadValues({\n include_usage: true\n }, ((_b16 = this.settings.usage) == null ? void 0 : _b16.include) ? { include_usage: true } : {}) : void 0\n }),\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n OpenRouterStreamChatCompletionChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let streamError;\n const safeResponse = withStreamErrorHandling(response, (err) => {\n streamError = err;\n });\n const toolCalls = [];\n const seenToolCallIds = /* @__PURE__ */ new Set();\n let finishReason = createFinishReason(\"other\");\n const usage = {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n const openrouterUsage = {};\n let rawUsage;\n const accumulatedReasoningDetails = [];\n let reasoningDetailsAttachedToToolCall = false;\n const accumulatedFileAnnotations = [];\n let textStarted = false;\n let reasoningStarted = false;\n let textId;\n let reasoningId;\n let openrouterResponseId;\n let provider;\n return {\n stream: safeResponse.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n var _a17, _b17, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = createFinishReason(\"error\");\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = createFinishReason(\"error\");\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (value.provider) {\n provider = value.provider;\n }\n if (value.id) {\n openrouterResponseId = value.id;\n controller.enqueue({\n type: \"response-metadata\",\n id: value.id\n });\n }\n if (value.model) {\n controller.enqueue({\n type: \"response-metadata\",\n modelId: value.model\n });\n }\n if (value.usage != null) {\n const computed = computeTokenUsage(value.usage);\n Object.assign(usage.inputTokens, computed.inputTokens);\n Object.assign(usage.outputTokens, computed.outputTokens);\n rawUsage = value.usage;\n const promptTokens = (_a17 = value.usage.prompt_tokens) != null ? _a17 : 0;\n const completionTokens = (_b17 = value.usage.completion_tokens) != null ? _b17 : 0;\n openrouterUsage.promptTokens = promptTokens;\n if (value.usage.prompt_tokens_details) {\n openrouterUsage.promptTokensDetails = {\n cachedTokens: (_c = value.usage.prompt_tokens_details.cached_tokens) != null ? _c : 0\n };\n }\n openrouterUsage.completionTokens = completionTokens;\n if (value.usage.completion_tokens_details) {\n openrouterUsage.completionTokensDetails = {\n reasoningTokens: (_d = value.usage.completion_tokens_details.reasoning_tokens) != null ? _d : 0\n };\n }\n if (value.usage.cost != null) {\n openrouterUsage.cost = value.usage.cost;\n }\n openrouterUsage.totalTokens = value.usage.total_tokens;\n const upstreamInferenceCost = (_e = value.usage.cost_details) == null ? void 0 : _e.upstream_inference_cost;\n if (upstreamInferenceCost != null) {\n openrouterUsage.costDetails = {\n upstreamInferenceCost\n };\n }\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = mapOpenRouterFinishReason(choice.finish_reason);\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n const emitReasoningChunk = (chunkText) => {\n if (!reasoningStarted) {\n reasoningId = generateId();\n controller.enqueue({\n type: \"reasoning-start\",\n id: reasoningId\n });\n reasoningStarted = true;\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n delta: chunkText,\n id: reasoningId || generateId()\n });\n };\n if (delta.reasoning_details && delta.reasoning_details.length > 0) {\n for (const detail of delta.reasoning_details) {\n if (detail.type === \"reasoning.text\" /* Text */) {\n const lastDetail = accumulatedReasoningDetails[accumulatedReasoningDetails.length - 1];\n if ((lastDetail == null ? void 0 : lastDetail.type) === \"reasoning.text\" /* Text */) {\n lastDetail.text = (lastDetail.text || \"\") + (detail.text || \"\");\n lastDetail.signature = lastDetail.signature || detail.signature;\n lastDetail.format = lastDetail.format || detail.format;\n } else {\n accumulatedReasoningDetails.push(__spreadValues({}, detail));\n }\n } else {\n accumulatedReasoningDetails.push(detail);\n }\n }\n if (!textStarted) {\n for (const detail of delta.reasoning_details) {\n switch (detail.type) {\n case \"reasoning.text\" /* Text */: {\n emitReasoningChunk(detail.text || \"\");\n break;\n }\n case \"reasoning.encrypted\" /* Encrypted */: {\n break;\n }\n case \"reasoning.summary\" /* Summary */: {\n if (detail.summary) {\n emitReasoningChunk(detail.summary);\n }\n break;\n }\n default: {\n detail;\n break;\n }\n }\n }\n }\n } else if (delta.reasoning && !textStarted) {\n emitReasoningChunk(delta.reasoning);\n }\n if (delta.content) {\n if (reasoningStarted && !textStarted) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: reasoningId || generateId(),\n // Always include accumulated reasoning_details so the AI SDK can\n // update the reasoning part's providerMetadata with the correct\n // signature. The signature typically arrives in the last delta,\n // but reasoning-start only carries the first delta's metadata.\n // An empty array is intentional — it signals the provider produced\n // no reasoning tokens this turn (e.g. DeepSeek V4).\n providerMetadata: {\n openrouter: {\n reasoning_details: accumulatedReasoningDetails\n }\n }\n });\n reasoningStarted = false;\n }\n if (!textStarted) {\n textId = openrouterResponseId || generateId();\n controller.enqueue({\n type: \"text-start\",\n id: textId\n });\n textStarted = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n delta: delta.content,\n id: textId || generateId()\n });\n }\n if (delta.annotations) {\n for (const annotation of delta.annotations) {\n if (annotation.type === \"url_citation\") {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: annotation.url_citation.url,\n url: annotation.url_citation.url,\n title: (_f = annotation.url_citation.title) != null ? _f : \"\",\n providerMetadata: {\n openrouter: {\n content: (_g = annotation.url_citation.content) != null ? _g : \"\",\n startIndex: (_h = annotation.url_citation.start_index) != null ? _h : 0,\n endIndex: (_i = annotation.url_citation.end_index) != null ? _i : 0\n }\n }\n });\n } else if (annotation.type === \"file\") {\n const file = annotation.file;\n if (file && typeof file === \"object\" && \"hash\" in file && \"name\" in file) {\n accumulatedFileAnnotations.push(\n annotation\n );\n }\n }\n }\n }\n if (delta.tool_calls != null) {\n for (const toolCallDelta of delta.tool_calls) {\n const index = (_j = toolCallDelta.index) != null ? _j : toolCalls.length - 1;\n if (toolCalls[index] == null) {\n if (toolCallDelta.type !== \"function\") {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function' type.`\n });\n }\n if (((_k = toolCallDelta.function) == null ? void 0 : _k.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n let toolCallId = (_l = toolCallDelta.id) != null ? _l : \"\";\n if (!toolCallId || seenToolCallIds.has(toolCallId)) {\n toolCallId = generateId();\n }\n seenToolCallIds.add(toolCallId);\n toolCalls[index] = {\n id: toolCallId,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_m = toolCallDelta.function.arguments) != null ? _m : \"\"\n },\n inputStarted: false,\n sent: false\n };\n const toolCall2 = toolCalls[index];\n if (toolCall2 == null) {\n throw new InvalidResponseDataError({\n data: { index, toolCallsLength: toolCalls.length },\n message: `Tool call at index ${index} is missing after creation.`\n });\n }\n if (((_n = toolCall2.function) == null ? void 0 : _n.name) != null && ((_o = toolCall2.function) == null ? void 0 : _o.arguments) != null && isParsableJson(toolCall2.function.arguments)) {\n toolCall2.inputStarted = true;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCall2.id,\n toolName: toolCall2.function.name\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall2.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: toolCall2.id,\n toolName: toolCall2.function.name,\n input: toolCall2.function.arguments,\n providerMetadata: !reasoningDetailsAttachedToToolCall ? {\n openrouter: {\n reasoning_details: accumulatedReasoningDetails\n }\n } : void 0\n });\n reasoningDetailsAttachedToToolCall = true;\n toolCall2.sent = true;\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall == null) {\n throw new InvalidResponseDataError({\n data: {\n index,\n toolCallsLength: toolCalls.length,\n toolCallDelta\n },\n message: `Tool call at index ${index} is missing during merge.`\n });\n }\n if (!toolCall.inputStarted) {\n toolCall.inputStarted = true;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCall.id,\n toolName: toolCall.function.name\n });\n if (toolCall.function.arguments) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: toolCall.function.arguments\n });\n }\n }\n if (((_p = toolCallDelta.function) == null ? void 0 : _p.arguments) != null) {\n toolCall.function.arguments += (_r = (_q = toolCallDelta.function) == null ? void 0 : _q.arguments) != null ? _r : \"\";\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: (_s = toolCallDelta.function.arguments) != null ? _s : \"\"\n });\n if (!toolCall.sent && ((_t = toolCall.function) == null ? void 0 : _t.name) != null && ((_u = toolCall.function) == null ? void 0 : _u.arguments) != null && isParsableJson(toolCall.function.arguments)) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments,\n providerMetadata: !reasoningDetailsAttachedToToolCall ? {\n openrouter: {\n reasoning_details: accumulatedReasoningDetails\n }\n } : void 0\n });\n reasoningDetailsAttachedToToolCall = true;\n toolCall.sent = true;\n }\n }\n }\n if (delta.images != null) {\n for (const image of delta.images) {\n controller.enqueue({\n type: \"file\",\n mediaType: getMediaType(image.image_url.url, \"image/jpeg\"),\n data: getBase64FromDataUrl(image.image_url.url)\n });\n }\n }\n },\n flush(controller) {\n const hasToolCalls = toolCalls.length > 0;\n if (streamError != null) {\n finishReason = createFinishReason(\"error\");\n controller.enqueue({ type: \"error\", error: streamError });\n }\n const hasEncryptedReasoning = accumulatedReasoningDetails.some(\n (d) => d.type === \"reasoning.encrypted\" /* Encrypted */ && d.data\n );\n if (hasToolCalls && hasEncryptedReasoning && finishReason.unified === \"stop\") {\n finishReason = createFinishReason(\"tool-calls\", finishReason.raw);\n }\n if (hasToolCalls && finishReason.unified === \"other\") {\n finishReason = createFinishReason(\"tool-calls\", finishReason.raw);\n }\n if (finishReason.unified === \"tool-calls\") {\n for (const toolCall of toolCalls) {\n if (toolCall && !toolCall.sent) {\n const input = isParsableJson(toolCall.function.arguments) ? toolCall.function.arguments : \"{}\";\n if (!toolCall.inputStarted) {\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCall.id,\n toolName: toolCall.function.name\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: input\n });\n }\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input,\n providerMetadata: !reasoningDetailsAttachedToToolCall ? {\n openrouter: {\n reasoning_details: accumulatedReasoningDetails\n }\n } : void 0\n });\n reasoningDetailsAttachedToToolCall = true;\n toolCall.sent = true;\n }\n }\n }\n if (reasoningStarted) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: reasoningId || generateId(),\n // Always include accumulated reasoning_details so the AI SDK can\n // update the reasoning part's providerMetadata. An empty array is\n // intentional — it signals the provider produced no reasoning tokens.\n providerMetadata: {\n openrouter: {\n reasoning_details: accumulatedReasoningDetails\n }\n }\n });\n }\n if (textStarted) {\n controller.enqueue({\n type: \"text-end\",\n id: textId || generateId()\n });\n }\n const openrouterMetadata = {\n usage: openrouterUsage\n };\n if (provider !== void 0) {\n openrouterMetadata.provider = provider;\n }\n openrouterMetadata.reasoning_details = accumulatedReasoningDetails;\n if (accumulatedFileAnnotations.length > 0) {\n openrouterMetadata.annotations = accumulatedFileAnnotations;\n }\n if (usage.inputTokens.total === void 0 && openrouterUsage.promptTokens !== void 0) {\n usage.inputTokens.total = openrouterUsage.promptTokens;\n }\n if (usage.outputTokens.total === void 0 && openrouterUsage.completionTokens !== void 0) {\n usage.outputTokens.total = openrouterUsage.completionTokens;\n }\n usage.raw = rawUsage;\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage,\n providerMetadata: {\n openrouter: openrouterMetadata\n }\n });\n }\n })\n ),\n warnings: [],\n request: { body: args },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction mapProviderTool(tool2) {\n const [provider, toolName] = tool2.id.split(\".\");\n const apiToolType = `${provider}:${toolName}`;\n const mappedArgs = {};\n for (const [key, value] of Object.entries(tool2.args)) {\n if (value !== void 0) {\n mappedArgs[camelToSnake(key)] = value;\n }\n }\n return __spreadValues({\n type: apiToolType\n }, mappedArgs);\n}\nfunction camelToSnake(str) {\n return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);\n}\n\n// src/completion/convert-to-openrouter-completion-prompt.ts\nfunction convertToOpenRouterCompletionPrompt({\n prompt,\n inputFormat,\n user = \"user\",\n assistant = \"assistant\"\n}) {\n if (inputFormat === \"prompt\" && prompt.length === 1 && prompt[0] && prompt[0].role === \"user\" && prompt[0].content.length === 1 && prompt[0].content[0] && prompt[0].content[0].type === \"text\") {\n return { prompt: prompt[0].content[0].text };\n }\n let text = \"\";\n if (prompt[0] && prompt[0].role === \"system\") {\n text += `${prompt[0].content}\n\n`;\n prompt = prompt.slice(1);\n }\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n throw new InvalidPromptError({\n message: `Unexpected system message in prompt: ${content}`,\n prompt\n });\n }\n case \"user\": {\n const userMessage = content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return part.text;\n }\n case \"file\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"file attachments\"\n });\n }\n default: {\n return \"\";\n }\n }\n }).join(\"\");\n text += `${user}:\n${userMessage}\n\n`;\n break;\n }\n case \"assistant\": {\n const assistantMessage = content.map(\n (part) => {\n switch (part.type) {\n case \"text\": {\n return part.text;\n }\n case \"tool-call\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"tool-call messages\"\n });\n }\n case \"tool-result\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"tool-result messages\"\n });\n }\n case \"reasoning\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"reasoning messages\"\n });\n }\n case \"file\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"file attachments\"\n });\n }\n default: {\n return \"\";\n }\n }\n }\n ).join(\"\");\n text += `${assistant}:\n${assistantMessage}\n\n`;\n break;\n }\n case \"tool\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"tool messages\"\n });\n }\n default: {\n break;\n }\n }\n }\n text += `${assistant}:\n`;\n return {\n prompt: text\n };\n}\n\n// src/completion/schemas.ts\nimport { z as z8 } from \"zod/v4\";\nvar OpenRouterCompletionChunkSchema = z8.union([\n z8.object({\n id: z8.string().optional(),\n model: z8.string().optional(),\n provider: z8.string().optional(),\n choices: z8.array(\n z8.object({\n text: z8.string(),\n reasoning: z8.string().nullish().optional(),\n reasoning_details: ReasoningDetailArraySchema.nullish(),\n finish_reason: z8.string().nullish(),\n index: z8.number().nullish(),\n logprobs: z8.object({\n tokens: z8.array(z8.string()),\n token_logprobs: z8.array(z8.number()),\n top_logprobs: z8.array(z8.record(z8.string(), z8.number())).nullable()\n }).passthrough().nullable().optional()\n }).passthrough()\n ),\n usage: z8.object({\n prompt_tokens: z8.number(),\n prompt_tokens_details: z8.object({\n cached_tokens: z8.number(),\n cache_write_tokens: z8.number().nullish()\n }).passthrough().nullish(),\n completion_tokens: z8.number(),\n completion_tokens_details: z8.object({\n reasoning_tokens: z8.number()\n }).passthrough().nullish(),\n total_tokens: z8.number(),\n cost: z8.number().optional(),\n cost_details: z8.object({\n upstream_inference_cost: z8.number().nullish()\n }).passthrough().nullish()\n }).passthrough().nullish()\n }).passthrough(),\n OpenRouterErrorResponseSchema\n]);\n\n// src/completion/index.ts\nvar OpenRouterCompletionLanguageModel = class {\n constructor(modelId, settings, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"openrouter\";\n this.supportsImageUrls = true;\n this.supportedUrls = {\n \"image/*\": [\n /^data:image\\/[a-zA-Z]+;base64,/,\n /^https?:\\/\\/.+\\.(jpg|jpeg|png|gif|webp)(?:[?#].*)?$/i\n ],\n \"text/*\": [/^data:text\\//, /^https?:\\/\\/.+$/],\n \"application/*\": [/^data:application\\//, /^https?:\\/\\/.+$/]\n };\n this.defaultObjectGenerationMode = void 0;\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n frequencyPenalty,\n presencePenalty,\n seed,\n responseFormat,\n topK,\n stopSequences,\n tools,\n toolChoice\n }) {\n const { prompt: completionPrompt } = convertToOpenRouterCompletionPrompt({\n prompt,\n inputFormat: \"prompt\"\n });\n if (tools == null ? void 0 : tools.length) {\n throw new UnsupportedFunctionalityError({\n functionality: \"tools\"\n });\n }\n if (toolChoice) {\n throw new UnsupportedFunctionalityError({\n functionality: \"toolChoice\"\n });\n }\n return __spreadValues(__spreadValues({\n // model id:\n model: this.modelId,\n models: this.settings.models,\n // model specific settings:\n logit_bias: this.settings.logitBias,\n logprobs: typeof this.settings.logprobs === \"number\" ? this.settings.logprobs : typeof this.settings.logprobs === \"boolean\" ? this.settings.logprobs ? 0 : void 0 : void 0,\n suffix: this.settings.suffix,\n user: this.settings.user,\n // standardized settings (call-level options override model-level settings):\n max_tokens: maxOutputTokens != null ? maxOutputTokens : this.settings.maxTokens,\n temperature: temperature != null ? temperature : this.settings.temperature,\n top_p: topP != null ? topP : this.settings.topP,\n frequency_penalty: frequencyPenalty != null ? frequencyPenalty : this.settings.frequencyPenalty,\n presence_penalty: presencePenalty != null ? presencePenalty : this.settings.presencePenalty,\n seed,\n stop: stopSequences,\n response_format: responseFormat,\n top_k: topK != null ? topK : this.settings.topK,\n // prompt:\n prompt: completionPrompt,\n // OpenRouter specific settings:\n include_reasoning: this.settings.includeReasoning,\n reasoning: this.settings.reasoning\n }, this.config.extraBody), this.settings.extraBody);\n }\n async doGenerate(options) {\n var _a16, _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;\n const providerOptions = options.providerOptions || {};\n const openrouterOptions = providerOptions.openrouter || {};\n const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions);\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n OpenRouterCompletionChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n if (\"error\" in response) {\n const errorData = response.error;\n throw new APICallError({\n message: errorData.message,\n url: this.config.url({\n path: \"/completions\",\n modelId: this.modelId\n }),\n requestBodyValues: args,\n statusCode: 200,\n responseHeaders,\n data: errorData\n });\n }\n const choice = response.choices[0];\n if (!choice) {\n throw new NoContentGeneratedError({\n message: \"No choice in OpenRouter completion response\"\n });\n }\n return {\n content: [\n {\n type: \"text\",\n text: (_a16 = choice.text) != null ? _a16 : \"\"\n }\n ],\n finishReason: mapOpenRouterFinishReason(choice.finish_reason),\n usage: response.usage ? computeTokenUsage(response.usage) : emptyUsage(),\n warnings: [],\n providerMetadata: {\n openrouter: OpenRouterProviderMetadataSchema.parse({\n provider: (_b16 = response.provider) != null ? _b16 : \"\",\n usage: __spreadValues(__spreadValues(__spreadValues(__spreadValues({\n promptTokens: (_d = (_c = response.usage) == null ? void 0 : _c.prompt_tokens) != null ? _d : 0,\n completionTokens: (_f = (_e = response.usage) == null ? void 0 : _e.completion_tokens) != null ? _f : 0,\n totalTokens: ((_h = (_g = response.usage) == null ? void 0 : _g.prompt_tokens) != null ? _h : 0) + ((_j = (_i = response.usage) == null ? void 0 : _i.completion_tokens) != null ? _j : 0)\n }, ((_k = response.usage) == null ? void 0 : _k.cost) != null ? { cost: response.usage.cost } : {}), ((_m = (_l = response.usage) == null ? void 0 : _l.prompt_tokens_details) == null ? void 0 : _m.cached_tokens) != null ? {\n promptTokensDetails: {\n cachedTokens: response.usage.prompt_tokens_details.cached_tokens\n }\n } : {}), ((_o = (_n = response.usage) == null ? void 0 : _n.completion_tokens_details) == null ? void 0 : _o.reasoning_tokens) != null ? {\n completionTokensDetails: {\n reasoningTokens: response.usage.completion_tokens_details.reasoning_tokens\n }\n } : {}), ((_q = (_p = response.usage) == null ? void 0 : _p.cost_details) == null ? void 0 : _q.upstream_inference_cost) != null ? {\n costDetails: {\n upstreamInferenceCost: response.usage.cost_details.upstream_inference_cost\n }\n } : {})\n })\n },\n response: {\n headers: responseHeaders\n }\n };\n }\n async doStream(options) {\n const providerOptions = options.providerOptions || {};\n const openrouterOptions = providerOptions.openrouter || {};\n const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions);\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: __spreadProps(__spreadValues({}, args), {\n stream: true,\n // only include stream_options when in strict compatibility mode:\n stream_options: this.config.compatibility === \"strict\" ? { include_usage: true } : void 0\n }),\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n OpenRouterCompletionChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let streamError;\n const safeResponse = withStreamErrorHandling(response, (err) => {\n streamError = err;\n });\n let finishReason = createFinishReason(\"other\");\n const usage = {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n const openrouterUsage = {};\n let provider;\n let rawUsage;\n return {\n stream: safeResponse.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n var _a16, _b16, _c, _d, _e;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = createFinishReason(\"error\");\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = createFinishReason(\"error\");\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (value.provider) {\n provider = value.provider;\n }\n if (value.usage != null) {\n const computed = computeTokenUsage(value.usage);\n Object.assign(usage.inputTokens, computed.inputTokens);\n Object.assign(usage.outputTokens, computed.outputTokens);\n rawUsage = value.usage;\n const promptTokens = (_a16 = value.usage.prompt_tokens) != null ? _a16 : 0;\n const completionTokens = (_b16 = value.usage.completion_tokens) != null ? _b16 : 0;\n openrouterUsage.promptTokens = promptTokens;\n if (value.usage.prompt_tokens_details) {\n openrouterUsage.promptTokensDetails = {\n cachedTokens: (_c = value.usage.prompt_tokens_details.cached_tokens) != null ? _c : 0\n };\n }\n openrouterUsage.completionTokens = completionTokens;\n if (value.usage.completion_tokens_details) {\n openrouterUsage.completionTokensDetails = {\n reasoningTokens: (_d = value.usage.completion_tokens_details.reasoning_tokens) != null ? _d : 0\n };\n }\n if (value.usage.cost != null) {\n openrouterUsage.cost = value.usage.cost;\n }\n openrouterUsage.totalTokens = value.usage.total_tokens;\n const upstreamInferenceCost = (_e = value.usage.cost_details) == null ? void 0 : _e.upstream_inference_cost;\n if (upstreamInferenceCost != null) {\n openrouterUsage.costDetails = {\n upstreamInferenceCost\n };\n }\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = mapOpenRouterFinishReason(choice.finish_reason);\n }\n if ((choice == null ? void 0 : choice.text) != null) {\n controller.enqueue({\n type: \"text-delta\",\n delta: choice.text,\n id: generateId()\n });\n }\n },\n flush(controller) {\n if (streamError != null) {\n finishReason = createFinishReason(\"error\");\n controller.enqueue({ type: \"error\", error: streamError });\n }\n usage.raw = rawUsage;\n const openrouterMetadata = {\n usage: openrouterUsage\n };\n if (provider !== void 0) {\n openrouterMetadata.provider = provider;\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage,\n providerMetadata: {\n openrouter: openrouterMetadata\n }\n });\n }\n })\n ),\n response: {\n headers: responseHeaders\n }\n };\n }\n};\n\n// src/embedding/schemas.ts\nimport { z as z9 } from \"zod/v4\";\nvar openrouterEmbeddingUsageSchema = z9.object({\n prompt_tokens: z9.number(),\n total_tokens: z9.number(),\n cost: z9.number().optional()\n});\nvar openrouterEmbeddingDataSchema = z9.object({\n object: z9.literal(\"embedding\"),\n embedding: z9.array(z9.number()),\n index: z9.number().optional()\n});\nvar OpenRouterEmbeddingResponseSchema = z9.object({\n id: z9.string().optional(),\n object: z9.literal(\"list\"),\n data: z9.array(openrouterEmbeddingDataSchema),\n model: z9.string(),\n provider: z9.string().optional(),\n usage: openrouterEmbeddingUsageSchema.optional()\n});\n\n// src/embedding/index.ts\nvar OpenRouterEmbeddingModel = class {\n constructor(modelId, settings, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"openrouter\";\n this.maxEmbeddingsPerCall = void 0;\n this.supportsParallelCalls = true;\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n async doEmbed(options) {\n var _a16, _b16, _c, _d, _e, _f;\n const { values, abortSignal, headers } = options;\n const args = __spreadValues(__spreadValues({\n model: this.modelId,\n input: values,\n user: this.settings.user,\n provider: this.settings.provider\n }, this.config.extraBody), this.settings.extraBody);\n const { value: responseValue, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/embeddings\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), headers),\n body: args,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n OpenRouterEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n embeddings: responseValue.data.map((item) => item.embedding),\n usage: responseValue.usage ? { tokens: responseValue.usage.prompt_tokens } : void 0,\n providerMetadata: {\n openrouter: OpenRouterProviderMetadataSchema.parse({\n provider: (_a16 = responseValue.provider) != null ? _a16 : \"\",\n usage: __spreadValues({\n promptTokens: (_c = (_b16 = responseValue.usage) == null ? void 0 : _b16.prompt_tokens) != null ? _c : 0,\n completionTokens: 0,\n totalTokens: (_e = (_d = responseValue.usage) == null ? void 0 : _d.total_tokens) != null ? _e : 0\n }, ((_f = responseValue.usage) == null ? void 0 : _f.cost) != null ? { cost: responseValue.usage.cost } : {})\n })\n },\n response: {\n headers: responseHeaders,\n body: responseValue\n },\n warnings: []\n };\n }\n};\n\n// src/facade.ts\nvar OpenRouter = class {\n /**\n * Creates a new OpenRouter provider instance.\n */\n constructor(options = {}) {\n var _a16, _b16;\n this.baseURL = (_b16 = withoutTrailingSlash((_a16 = options.baseURL) != null ? _a16 : options.baseUrl)) != null ? _b16 : \"https://openrouter.ai/api/v1\";\n this.apiKey = options.apiKey;\n this.headers = options.headers;\n this.api_keys = options.api_keys;\n this.appName = options.appName;\n this.appUrl = options.appUrl;\n }\n get baseConfig() {\n return {\n baseURL: this.baseURL,\n headers: () => __spreadValues(__spreadValues(__spreadValues(__spreadValues({\n Authorization: `Bearer ${loadApiKey({\n apiKey: this.apiKey,\n environmentVariableName: \"OPENROUTER_API_KEY\",\n description: \"OpenRouter\"\n })}`\n }, this.appName && { \"X-OpenRouter-Title\": this.appName }), this.appUrl && { \"HTTP-Referer\": this.appUrl }), this.headers), this.api_keys && Object.keys(this.api_keys).length > 0 && {\n \"X-Provider-API-Keys\": JSON.stringify(this.api_keys)\n })\n };\n }\n chat(modelId, settings = {}) {\n return new OpenRouterChatLanguageModel(modelId, settings, __spreadProps(__spreadValues({\n provider: \"openrouter.chat\"\n }, this.baseConfig), {\n compatibility: \"strict\",\n url: ({ path }) => `${this.baseURL}${path}`\n }));\n }\n completion(modelId, settings = {}) {\n return new OpenRouterCompletionLanguageModel(modelId, settings, __spreadProps(__spreadValues({\n provider: \"openrouter.completion\"\n }, this.baseConfig), {\n compatibility: \"strict\",\n url: ({ path }) => `${this.baseURL}${path}`\n }));\n }\n textEmbeddingModel(modelId, settings = {}) {\n return new OpenRouterEmbeddingModel(modelId, settings, __spreadProps(__spreadValues({\n provider: \"openrouter.embedding\"\n }, this.baseConfig), {\n url: ({ path }) => `${this.baseURL}${path}`\n }));\n }\n /**\n * @deprecated Use textEmbeddingModel instead\n */\n embedding(modelId, settings = {}) {\n return this.textEmbeddingModel(modelId, settings);\n }\n};\n\n// src/image/schemas.ts\nimport { z as z10 } from \"zod/v4\";\nvar OpenRouterImageResponseSchema = z10.object({\n created: z10.number().optional(),\n data: z10.array(\n z10.object({\n b64_json: z10.string()\n }).passthrough()\n ),\n usage: z10.object({\n prompt_tokens: z10.number(),\n completion_tokens: z10.number(),\n total_tokens: z10.number()\n }).passthrough().optional()\n}).passthrough();\n\n// src/image/index.ts\nvar OpenRouterImageModel = class {\n constructor(modelId, settings, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"openrouter\";\n this.maxImagesPerCall = 10;\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n async doGenerate(options) {\n const {\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n files,\n mask,\n abortSignal,\n headers,\n providerOptions\n } = options;\n const openrouterOptions = (providerOptions == null ? void 0 : providerOptions.openrouter) || {};\n const warnings = [];\n if (mask !== void 0) {\n throw new UnsupportedFunctionalityError({\n functionality: \"image inpainting (mask parameter)\"\n });\n }\n const hasFiles = files !== void 0 && files.length > 0;\n const inputReferences = hasFiles ? files.map((file) => convertFileToInputReference(file)) : void 0;\n const body = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({\n model: this.modelId,\n prompt: prompt != null ? prompt : \"\"\n }, n !== void 0 && { n }), size !== void 0 && { size }), aspectRatio !== void 0 && { aspect_ratio: aspectRatio }), seed !== void 0 && { seed }), inputReferences !== void 0 && {\n input_references: inputReferences\n }), this.settings.user !== void 0 && { user: this.settings.user }), this.settings.provider !== void 0 && {\n provider: this.settings.provider\n }), this.config.extraBody), this.settings.extraBody), openrouterOptions);\n const { value: responseValue, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/images\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), headers),\n body,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n OpenRouterImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n if (!responseValue.data || responseValue.data.length === 0) {\n throw new NoContentGeneratedError({\n message: \"No images in response\"\n });\n }\n const images = responseValue.data.map((item) => item.b64_json);\n const usage = responseValue.usage ? {\n inputTokens: responseValue.usage.prompt_tokens,\n outputTokens: responseValue.usage.completion_tokens,\n totalTokens: responseValue.usage.total_tokens\n } : void 0;\n return {\n images,\n warnings,\n response: {\n timestamp: /* @__PURE__ */ new Date(),\n modelId: this.modelId,\n headers: responseHeaders\n },\n usage\n };\n }\n};\nvar DEFAULT_IMAGE_MEDIA_TYPE = \"image/png\";\nfunction convertFileToInputReference(file) {\n if (file.type === \"url\") {\n return {\n type: \"image_url\",\n image_url: { url: file.url }\n };\n }\n const url = buildFileDataUrl({\n data: file.data,\n mediaType: file.mediaType,\n defaultMediaType: DEFAULT_IMAGE_MEDIA_TYPE\n });\n return {\n type: \"image_url\",\n image_url: { url }\n };\n}\n\n// src/tool/web-search.ts\nimport { z as z11 } from \"zod/v4\";\nvar webSearchInputSchema = z11.object({\n /** Search results returned by the server tool */\n results: z11.array(z11.unknown()).optional()\n});\nvar webSearch = createProviderToolFactory({\n id: \"openrouter.web_search\",\n inputSchema: webSearchInputSchema\n});\n\n// src/utils/remove-undefined.ts\nfunction removeUndefinedEntries(record) {\n return Object.fromEntries(\n Object.entries(record).filter(([, value]) => value != null)\n );\n}\n\n// src/utils/with-user-agent-suffix.ts\nfunction normalizeHeaders2(headers) {\n if (!headers) {\n return {};\n }\n if (headers instanceof Headers) {\n return Object.fromEntries(headers.entries());\n }\n if (Array.isArray(headers)) {\n return Object.fromEntries(headers);\n }\n return headers;\n}\nfunction findHeaderKey(headers, targetKey) {\n const lowerTarget = targetKey.toLowerCase();\n return Object.keys(headers).find((key) => key.toLowerCase() === lowerTarget);\n}\nfunction withUserAgentSuffix2(headers, ...userAgentSuffixParts) {\n const normalizedHeaders = normalizeHeaders2(headers);\n const cleanedHeaders = removeUndefinedEntries(normalizedHeaders);\n const existingUserAgentKey = findHeaderKey(cleanedHeaders, \"user-agent\");\n const existingUserAgentValue = existingUserAgentKey ? cleanedHeaders[existingUserAgentKey] : void 0;\n const userAgent = (existingUserAgentValue == null ? void 0 : existingUserAgentValue.trim()) ? existingUserAgentValue : userAgentSuffixParts.filter(Boolean).join(\" \");\n const headersWithoutUserAgent = Object.fromEntries(\n Object.entries(cleanedHeaders).filter(\n ([key]) => key.toLowerCase() !== \"user-agent\"\n )\n );\n return __spreadProps(__spreadValues({}, headersWithoutUserAgent), {\n \"user-agent\": userAgent\n });\n}\n\n// src/version.ts\nvar VERSION2 = false ? \"0.0.0-test\" : \"2.10.0\";\n\n// src/video/schemas.ts\nimport { z as z12 } from \"zod/v4\";\nvar VideoGenerationSubmitResponseSchema = z12.object({\n id: z12.string(),\n generation_id: z12.string().optional(),\n polling_url: z12.string(),\n status: z12.string()\n}).passthrough();\nvar VideoGenerationPollResponseSchema = z12.object({\n id: z12.string(),\n generation_id: z12.string().optional(),\n polling_url: z12.string(),\n status: z12.string(),\n unsigned_urls: z12.array(z12.string()).optional(),\n usage: z12.object({\n cost: z12.number().optional(),\n is_byok: z12.boolean().optional()\n }).passthrough().optional(),\n error: z12.string().optional()\n}).passthrough();\n\n// src/video/index.ts\nvar DEFAULT_POLL_INTERVAL_MS = 2e3;\nvar DEFAULT_MAX_POLL_TIME_MS = 6e5;\nvar OpenRouterVideoModel = class {\n constructor(modelId, settings, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"openrouter\";\n this.maxVideosPerCall = 1;\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n async doGenerate(options) {\n var _a16, _b16, _c, _d, _e;\n const {\n prompt,\n n,\n aspectRatio,\n resolution,\n duration,\n seed,\n image,\n abortSignal,\n headers,\n providerOptions\n } = options;\n const warnings = [];\n if (n > 1) {\n warnings.push({\n type: \"unsupported\",\n feature: \"n > 1\",\n details: `OpenRouter video generation returns 1 video per call. Requested ${n} videos.`\n });\n }\n const body = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({\n model: this.modelId,\n prompt: prompt != null ? prompt : \"\"\n }, aspectRatio !== void 0 && { aspect_ratio: aspectRatio }), resolution !== void 0 && { size: resolution }), duration !== void 0 && { duration }), seed !== void 0 && { seed }), this.settings.generateAudio !== void 0 && {\n generate_audio: this.settings.generateAudio\n }), image !== void 0 && {\n frame_images: [convertImageToFrameImage(image)]\n }), this.config.extraBody), this.settings.extraBody), providerOptions.openrouter);\n const mergedHeaders = combineHeaders(this.config.headers(), headers);\n const { value: submitResponse, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/videos\",\n modelId: this.modelId\n }),\n headers: mergedHeaders,\n body,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n VideoGenerationSubmitResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n const pollIntervalMs = (_a16 = this.settings.pollIntervalMs) != null ? _a16 : DEFAULT_POLL_INTERVAL_MS;\n const maxPollTimeMs = (_b16 = this.settings.maxPollTimeMs) != null ? _b16 : DEFAULT_MAX_POLL_TIME_MS;\n const pollResult = await this.pollUntilComplete({\n jobId: submitResponse.id,\n headers: mergedHeaders,\n abortSignal,\n pollIntervalMs,\n maxPollTimeMs\n });\n const videos = [];\n if (pollResult.unsigned_urls) {\n for (const url of pollResult.unsigned_urls) {\n videos.push({\n type: \"url\",\n url,\n mediaType: \"video/mp4\"\n });\n }\n }\n const providerMetadata = {\n openrouter: {\n generationId: (_c = pollResult.generation_id) != null ? _c : null,\n cost: (_e = (_d = pollResult.usage) == null ? void 0 : _d.cost) != null ? _e : null\n }\n };\n return {\n videos,\n warnings,\n providerMetadata,\n response: {\n timestamp: /* @__PURE__ */ new Date(),\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n async pollUntilComplete({\n jobId,\n headers,\n abortSignal,\n pollIntervalMs,\n maxPollTimeMs\n }) {\n var _a16;\n const startTime = Date.now();\n while (Date.now() - startTime < maxPollTimeMs) {\n abortSignal == null ? void 0 : abortSignal.throwIfAborted();\n await delay(pollIntervalMs);\n abortSignal == null ? void 0 : abortSignal.throwIfAborted();\n const { value: pollResponse } = await getFromApi({\n url: this.config.url({\n path: `/videos/${jobId}`,\n modelId: this.modelId\n }),\n headers,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n VideoGenerationPollResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n if (pollResponse.status === \"completed\") {\n return {\n generation_id: pollResponse.generation_id,\n unsigned_urls: pollResponse.unsigned_urls,\n usage: pollResponse.usage\n };\n }\n if (pollResponse.status === \"failed\" || pollResponse.status === \"dead\" || pollResponse.status === \"cancelled\" || pollResponse.status === \"expired\") {\n throw new APICallError({\n message: (_a16 = pollResponse.error) != null ? _a16 : `Video generation failed with status: ${pollResponse.status}`,\n url: this.config.url({\n path: `/videos/${jobId}`,\n modelId: this.modelId\n }),\n requestBodyValues: {},\n statusCode: 500,\n isRetryable: false\n });\n }\n }\n throw new APICallError({\n message: `Video generation timed out after ${maxPollTimeMs}ms`,\n url: this.config.url({\n path: `/videos/${jobId}`,\n modelId: this.modelId\n }),\n requestBodyValues: {},\n statusCode: 408,\n isRetryable: true\n });\n }\n};\nfunction convertImageToFrameImage(file) {\n if (file.type === \"url\") {\n return {\n type: \"image_url\",\n image_url: { url: file.url },\n frame_type: \"first_frame\"\n };\n }\n const url = buildFileDataUrl({\n data: file.data,\n mediaType: file.mediaType,\n defaultMediaType: \"image/png\"\n });\n return {\n type: \"image_url\",\n image_url: { url },\n frame_type: \"first_frame\"\n };\n}\n\n// src/provider.ts\nfunction createOpenRouter(options = {}) {\n var _a16, _b16, _c;\n const baseURL = (_b16 = withoutTrailingSlash((_a16 = options.baseURL) != null ? _a16 : options.baseUrl)) != null ? _b16 : \"https://openrouter.ai/api/v1\";\n const compatibility = (_c = options.compatibility) != null ? _c : \"compatible\";\n const getHeaders = () => withUserAgentSuffix2(\n __spreadValues(__spreadValues(__spreadValues(__spreadValues({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"OPENROUTER_API_KEY\",\n description: \"OpenRouter\"\n })}`\n }, options.appName && { \"X-OpenRouter-Title\": options.appName }), options.appUrl && { \"HTTP-Referer\": options.appUrl }), options.headers), options.api_keys && Object.keys(options.api_keys).length > 0 && {\n \"X-Provider-API-Keys\": JSON.stringify(options.api_keys)\n }),\n `ai-sdk/openrouter/${VERSION2}`\n );\n const createChatModel = (modelId, settings = {}) => new OpenRouterChatLanguageModel(modelId, settings, {\n provider: \"openrouter.chat\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n compatibility,\n fetch: options.fetch,\n extraBody: options.extraBody\n });\n const createCompletionModel = (modelId, settings = {}) => new OpenRouterCompletionLanguageModel(modelId, settings, {\n provider: \"openrouter.completion\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n compatibility,\n fetch: options.fetch,\n extraBody: options.extraBody\n });\n const createEmbeddingModel = (modelId, settings = {}) => new OpenRouterEmbeddingModel(modelId, settings, {\n provider: \"openrouter.embedding\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n extraBody: options.extraBody\n });\n const createImageModel = (modelId, settings = {}) => new OpenRouterImageModel(modelId, settings, {\n provider: \"openrouter.image\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n extraBody: options.extraBody\n });\n const createVideoModel = (modelId, settings = {}) => new OpenRouterVideoModel(modelId, settings, {\n provider: \"openrouter.video\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n extraBody: options.extraBody\n });\n const createLanguageModel = (modelId, settings) => {\n if (new.target) {\n throw new Error(\n \"The OpenRouter model function cannot be called with the new keyword.\"\n );\n }\n if (modelId === \"openai/gpt-3.5-turbo-instruct\") {\n return createCompletionModel(\n modelId,\n settings\n );\n }\n return createChatModel(modelId, settings);\n };\n const provider = (modelId, settings) => createLanguageModel(modelId, settings);\n provider.languageModel = createLanguageModel;\n provider.chat = createChatModel;\n provider.completion = createCompletionModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.embedding = createEmbeddingModel;\n provider.imageModel = createImageModel;\n provider.videoModel = createVideoModel;\n provider.tools = {\n webSearch\n };\n return provider;\n}\nvar openrouter = createOpenRouter({\n compatibility: \"strict\"\n // strict for OpenRouter API\n});\nexport {\n OpenRouter,\n createOpenRouter,\n openrouter\n};\n//# sourceMappingURL=index.mjs.map","// src/chat/convert-to-openai-compatible-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport {\n convertBase64ToUint8Array,\n convertToBase64\n} from \"@ai-sdk/provider-utils\";\nfunction getOpenAIMetadata(message) {\n var _a, _b;\n return (_b = (_a = message == null ? void 0 : message.providerOptions) == null ? void 0 : _a.openaiCompatible) != null ? _b : {};\n}\nfunction getAudioFormat(mediaType) {\n switch (mediaType) {\n case \"audio/wav\":\n return \"wav\";\n case \"audio/mp3\":\n case \"audio/mpeg\":\n return \"mp3\";\n default:\n return null;\n }\n}\nfunction convertToOpenAICompatibleChatMessages(prompt) {\n var _a, _b, _c;\n const messages = [];\n for (const { role, content, ...message } of prompt) {\n const metadata = getOpenAIMetadata({ ...message });\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content, ...metadata });\n break;\n }\n case \"user\": {\n if (content.length === 1 && content[0].type === \"text\") {\n messages.push({\n role: \"user\",\n content: content[0].text,\n ...getOpenAIMetadata(content[0])\n });\n break;\n }\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n var _a2;\n const partMetadata = getOpenAIMetadata(part);\n switch (part.type) {\n case \"text\": {\n return { type: \"text\", text: part.text, ...partMetadata };\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: {\n url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${convertToBase64(part.data)}`\n },\n ...partMetadata\n };\n }\n if (part.mediaType.startsWith(\"audio/\")) {\n if (part.data instanceof URL) {\n throw new UnsupportedFunctionalityError({\n functionality: \"audio file parts with URLs\"\n });\n }\n const format = getAudioFormat(part.mediaType);\n if (format === null) {\n throw new UnsupportedFunctionalityError({\n functionality: `audio media type ${part.mediaType}`\n });\n }\n return {\n type: \"input_audio\",\n input_audio: {\n data: convertToBase64(part.data),\n format\n },\n ...partMetadata\n };\n }\n if (part.mediaType === \"application/pdf\") {\n if (part.data instanceof URL) {\n throw new UnsupportedFunctionalityError({\n functionality: \"PDF file parts with URLs\"\n });\n }\n return {\n type: \"file\",\n file: {\n filename: (_a2 = part.filename) != null ? _a2 : \"document.pdf\",\n file_data: `data:application/pdf;base64,${convertToBase64(part.data)}`\n },\n ...partMetadata\n };\n }\n if (part.mediaType.startsWith(\"text/\")) {\n const textContent = part.data instanceof URL ? part.data.toString() : typeof part.data === \"string\" ? new TextDecoder().decode(\n convertBase64ToUint8Array(part.data)\n ) : new TextDecoder().decode(part.data);\n return {\n type: \"text\",\n text: textContent,\n ...partMetadata\n };\n }\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`\n });\n }\n }\n }),\n ...metadata\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n let reasoning = \"\";\n const toolCalls = [];\n for (const part of content) {\n const partMetadata = getOpenAIMetadata(part);\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"reasoning\": {\n reasoning += part.text;\n break;\n }\n case \"tool-call\": {\n const thoughtSignature = (_b = (_a = part.providerOptions) == null ? void 0 : _a.google) == null ? void 0 : _b.thoughtSignature;\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n },\n ...partMetadata,\n // Include extra_content for Google Gemini thought signatures\n ...thoughtSignature ? {\n extra_content: {\n google: {\n thought_signature: String(thoughtSignature)\n }\n }\n } : {}\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: toolCalls.length > 0 ? text || null : text,\n ...reasoning.length > 0 ? { reasoning_content: reasoning } : {},\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0,\n ...metadata\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_c = output.reason) != null ? _c : \"Tool call execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n const toolResponseMetadata = getOpenAIMetadata(toolResponse);\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: contentValue,\n ...toolResponseMetadata\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/chat/convert-openai-compatible-chat-usage.ts\nfunction convertOpenAICompatibleChatUsage(usage) {\n var _a, _b, _c, _d, _e, _f;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const cacheReadTokens = (_d = (_c = usage.prompt_tokens_details) == null ? void 0 : _c.cached_tokens) != null ? _d : 0;\n const reasoningTokens = (_f = (_e = usage.completion_tokens_details) == null ? void 0 : _e.reasoning_tokens) != null ? _f : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/chat/map-openai-compatible-finish-reason.ts\nfunction mapOpenAICompatibleFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\n\n// src/chat/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/chat/openai-compatible-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const openaiCompatTools = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n } else {\n openaiCompatTools.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: openaiCompatTools, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return { tools: openaiCompatTools, toolChoice: type, toolWarnings };\n case \"tool\":\n return {\n tools: openaiCompatTools,\n toolChoice: {\n type: \"function\",\n function: { name: toolChoice.toolName }\n },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\nexport {\n convertOpenAICompatibleChatUsage,\n convertToOpenAICompatibleChatMessages,\n getResponseMetadata,\n mapOpenAICompatibleFinishReason,\n prepareTools\n};\n//# sourceMappingURL=index.mjs.map","// src/alibaba-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/alibaba-chat-language-model.ts\nimport {\n getResponseMetadata,\n mapOpenAICompatibleFinishReason,\n prepareTools\n} from \"@ai-sdk/openai-compatible/internal\";\nimport {\n InvalidResponseDataError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/alibaba-chat-options.ts\nimport { z } from \"zod/v4\";\nvar alibabaLanguageModelOptions = z.object({\n /**\n * Enable thinking/reasoning mode for supported models.\n * When enabled, the model generates reasoning content before the response.\n *\n * @default false\n */\n enableThinking: z.boolean().optional(),\n /**\n * Maximum number of reasoning tokens to generate.\n */\n thinkingBudget: z.number().positive().optional(),\n /**\n * Whether to enable parallel function calling during tool use.\n *\n * @default true\n */\n parallelToolCalls: z.boolean().optional()\n});\n\n// src/alibaba-error.ts\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar alibabaErrorDataSchema = z2.object({\n error: z2.object({\n message: z2.string(),\n code: z2.string().nullish(),\n type: z2.string().nullish()\n })\n});\nvar alibabaFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: alibabaErrorDataSchema,\n errorToMessage: (data) => data.error.message\n});\n\n// src/convert-alibaba-usage.ts\nimport { convertOpenAICompatibleChatUsage } from \"@ai-sdk/openai-compatible/internal\";\nfunction convertAlibabaUsage(usage) {\n var _a, _b, _c, _d;\n const baseUsage = convertOpenAICompatibleChatUsage(usage);\n const cacheWriteTokens = (_b = (_a = usage == null ? void 0 : usage.prompt_tokens_details) == null ? void 0 : _a.cache_creation_input_tokens) != null ? _b : 0;\n const noCacheTokens = ((_c = baseUsage.inputTokens.total) != null ? _c : 0) - ((_d = baseUsage.inputTokens.cacheRead) != null ? _d : 0) - cacheWriteTokens;\n return {\n ...baseUsage,\n inputTokens: {\n ...baseUsage.inputTokens,\n cacheWrite: cacheWriteTokens,\n noCache: noCacheTokens\n }\n };\n}\n\n// src/convert-to-alibaba-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction formatImageUrl({\n data,\n mediaType\n}) {\n return data instanceof URL ? data.toString() : `data:${mediaType};base64,${convertToBase64(data)}`;\n}\nfunction convertToAlibabaChatMessages({\n prompt,\n cacheControlValidator\n}) {\n var _a, _b;\n const messages = [];\n for (const { role, content, ...message } of prompt) {\n const messageCacheControl = cacheControlValidator == null ? void 0 : cacheControlValidator.getCacheControl(\n message.providerOptions\n );\n switch (role) {\n case \"system\": {\n if (messageCacheControl) {\n messages.push({\n role: \"system\",\n content: [\n {\n type: \"text\",\n text: content,\n cache_control: messageCacheControl\n }\n ]\n });\n } else {\n messages.push({ role: \"system\", content });\n }\n break;\n }\n case \"user\": {\n messages.push({\n role: \"user\",\n content: content.map((part, index) => {\n var _a2;\n const isLastPart = index === content.length - 1;\n const partCacheControl = (_a2 = cacheControlValidator == null ? void 0 : cacheControlValidator.getCacheControl(part.providerOptions)) != null ? _a2 : isLastPart ? messageCacheControl : void 0;\n switch (part.type) {\n case \"text\": {\n return {\n type: \"text\",\n text: part.text,\n ...partCacheControl ? { cache_control: partCacheControl } : {}\n };\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: {\n url: formatImageUrl({ data: part.data, mediaType })\n },\n ...partCacheControl ? { cache_control: partCacheControl } : {}\n };\n } else {\n throw new UnsupportedFunctionalityError({\n functionality: \"Only image file parts are supported\"\n });\n }\n }\n }\n })\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n case \"reasoning\": {\n text += part.text;\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: messageCacheControl ? [{ type: \"text\", text, cache_control: messageCacheControl }] : text || null,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0\n });\n break;\n }\n case \"tool\": {\n const toolResponses = content.filter(\n (r) => r.type !== \"tool-approval-response\"\n );\n for (let i = 0; i < toolResponses.length; i++) {\n const toolResponse = toolResponses[i];\n const output = toolResponse.output;\n const isLastPart = i === toolResponses.length - 1;\n const partCacheControl = (_a = cacheControlValidator == null ? void 0 : cacheControlValidator.getCacheControl(\n toolResponse.providerOptions\n )) != null ? _a : isLastPart ? messageCacheControl : void 0;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_b = output.reason) != null ? _b : \"Tool call execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: partCacheControl ? [\n {\n type: \"text\",\n text: contentValue,\n cache_control: partCacheControl\n }\n ] : contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/get-cache-control.ts\nvar MAX_CACHE_BREAKPOINTS = 4;\nfunction getCacheControl(providerMetadata) {\n var _a;\n const alibaba2 = providerMetadata == null ? void 0 : providerMetadata.alibaba;\n const cacheControlValue = (_a = alibaba2 == null ? void 0 : alibaba2.cacheControl) != null ? _a : alibaba2 == null ? void 0 : alibaba2.cache_control;\n return cacheControlValue;\n}\nvar CacheControlValidator = class {\n constructor() {\n this.breakpointCount = 0;\n this.warnings = [];\n }\n getCacheControl(providerMetadata) {\n const cacheControlValue = getCacheControl(providerMetadata);\n if (!cacheControlValue) {\n return void 0;\n }\n this.breakpointCount++;\n if (this.breakpointCount > MAX_CACHE_BREAKPOINTS) {\n this.warnings.push({\n type: \"other\",\n message: `Max breakpoint limit exceeded. Only the last ${MAX_CACHE_BREAKPOINTS} cache markers will take effect.`\n });\n }\n return cacheControlValue;\n }\n getWarnings() {\n return this.warnings;\n }\n};\n\n// src/alibaba-chat-language-model.ts\nvar AlibabaLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"image/*\": [/^https?:\\/\\/.*$/]\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n /**\n * Builds request arguments for Alibaba API call.\n * Converts AI SDK options to Alibaba API format.\n */\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerOptions,\n tools,\n toolChoice\n }) {\n var _a;\n const warnings = [];\n const cacheControlValidator = new CacheControlValidator();\n const alibabaOptions = await parseProviderOptions({\n provider: \"alibaba\",\n providerOptions,\n schema: alibabaLanguageModelOptions\n });\n if (frequencyPenalty != null) {\n warnings.push({ type: \"unsupported\", feature: \"frequencyPenalty\" });\n }\n const baseArgs = {\n model: this.modelId,\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n top_k: topK,\n presence_penalty: presencePenalty,\n stop: stopSequences,\n seed,\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n name: (_a = responseFormat.name) != null ? _a : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n // Alibaba-specific options\n ...(alibabaOptions == null ? void 0 : alibabaOptions.enableThinking) != null ? { enable_thinking: alibabaOptions.enableThinking } : {},\n ...(alibabaOptions == null ? void 0 : alibabaOptions.thinkingBudget) != null ? { thinking_budget: alibabaOptions.thinkingBudget } : {},\n // Convert messages with cache control support\n messages: convertToAlibabaChatMessages({\n prompt,\n cacheControlValidator\n })\n };\n const {\n tools: alibabaTools,\n toolChoice: alibabaToolChoice,\n toolWarnings\n } = prepareTools({ tools, toolChoice });\n warnings.push(...cacheControlValidator.getWarnings());\n return {\n args: {\n ...baseArgs,\n tools: alibabaTools,\n tool_choice: alibabaToolChoice,\n ...alibabaTools != null && (alibabaOptions == null ? void 0 : alibabaOptions.parallelToolCalls) !== void 0 ? { parallel_tool_calls: alibabaOptions.parallelToolCalls } : {}\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a;\n const { args, warnings } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: alibabaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n alibabaChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n const text = choice.message.content;\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n const reasoning = choice.message.reasoning_content;\n if (reasoning != null && reasoning.length > 0) {\n content.push({\n type: \"reasoning\",\n text: reasoning\n });\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapOpenAICompatibleFinishReason(choice.finish_reason),\n raw: (_a = choice.finish_reason) != null ? _a : void 0\n },\n usage: convertAlibabaUsage(response.usage),\n request: { body: JSON.stringify(args) },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const body = {\n ...args,\n stream: true,\n stream_options: this.config.includeUsage ? { include_usage: true } : void 0\n };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: alibabaFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n alibabaChatChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n let activeText = false;\n let activeReasoningId = null;\n const toolCalls = [];\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (value.usage != null) {\n usage = value.usage;\n }\n if (value.choices.length === 0) {\n return;\n }\n const choice = value.choices[0];\n const delta = choice.delta;\n if (delta.reasoning_content != null && delta.reasoning_content.length > 0) {\n if (activeReasoningId == null) {\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n activeText = false;\n }\n activeReasoningId = generateId();\n controller.enqueue({\n type: \"reasoning-start\",\n id: activeReasoningId\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: activeReasoningId,\n delta: delta.reasoning_content\n });\n }\n if (delta.content != null && delta.content.length > 0) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n activeReasoningId = null;\n }\n if (!activeText) {\n controller.enqueue({ type: \"text-start\", id: \"0\" });\n activeText = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: delta.content\n });\n }\n if (delta.tool_calls != null) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n activeReasoningId = null;\n }\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n activeText = false;\n }\n for (const toolCallDelta of delta.tool_calls) {\n const index = (_a = toolCallDelta.index) != null ? _a : toolCalls.length;\n if (toolCalls[index] == null) {\n if (toolCallDelta.id == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'id' to be a string.`\n });\n }\n if (((_b = toolCallDelta.function) == null ? void 0 : _b.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallDelta.id,\n toolName: toolCallDelta.function.name\n });\n toolCalls[index] = {\n id: toolCallDelta.id,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_c = toolCallDelta.function.arguments) != null ? _c : \"\"\n },\n hasFinished: false\n };\n const toolCall2 = toolCalls[index];\n if (toolCall2.function.arguments.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall.hasFinished) {\n continue;\n }\n if (((_d = toolCallDelta.function) == null ? void 0 : _d.arguments) != null) {\n toolCall.function.arguments += toolCallDelta.function.arguments;\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: toolCallDelta.function.arguments\n });\n }\n }\n }\n if (choice.finish_reason != null) {\n finishReason = {\n unified: mapOpenAICompatibleFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n },\n flush(controller) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n }\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n for (const toolCall of toolCalls) {\n if (!toolCall.hasFinished) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n toolCall.hasFinished = true;\n }\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertAlibabaUsage(usage)\n });\n }\n })\n ),\n request: { body: JSON.stringify(body) },\n response: { headers: responseHeaders }\n };\n }\n};\nvar alibabaUsageSchema = z3.object({\n prompt_tokens: z3.number(),\n completion_tokens: z3.number(),\n total_tokens: z3.number(),\n prompt_tokens_details: z3.object({\n cached_tokens: z3.number().nullish(),\n cache_creation_input_tokens: z3.number().nullish()\n }).nullish(),\n completion_tokens_details: z3.object({\n reasoning_tokens: z3.number().nullish()\n }).nullish()\n});\nvar alibabaChatResponseSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n message: z3.object({\n role: z3.literal(\"assistant\").nullish(),\n content: z3.string().nullish(),\n reasoning_content: z3.string().nullish(),\n // Alibaba thinking mode\n tool_calls: z3.array(\n z3.object({\n id: z3.string(),\n type: z3.literal(\"function\"),\n function: z3.object({\n name: z3.string(),\n arguments: z3.string()\n })\n })\n ).nullish()\n }),\n finish_reason: z3.string().nullish(),\n index: z3.number()\n })\n ),\n usage: alibabaUsageSchema.nullish()\n});\nvar alibabaChatChunkSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n delta: z3.object({\n role: z3.enum([\"assistant\"]).nullish(),\n content: z3.string().nullish(),\n reasoning_content: z3.string().nullish(),\n // Alibaba thinking mode delta\n tool_calls: z3.array(\n z3.object({\n index: z3.number().nullish(),\n // Index for accumulating tool calls\n id: z3.string().nullish(),\n type: z3.literal(\"function\").nullish(),\n function: z3.object({\n name: z3.string().nullish(),\n arguments: z3.string().nullish()\n }).nullish()\n })\n ).nullish()\n }),\n finish_reason: z3.string().nullish(),\n index: z3.number()\n })\n ),\n usage: alibabaUsageSchema.nullish()\n // Usage only appears in final chunk\n});\n\n// src/alibaba-embedding-model.ts\nimport {\n TooManyEmbeddingValuesForCallError,\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders2,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler2,\n createJsonResponseHandler as createJsonResponseHandler2,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/alibaba-embedding-options.ts\nimport { z as z4 } from \"zod/v4\";\nvar alibabaEmbeddingModelOptions = z4.object({\n /**\n * Differentiates query text from document text for asymmetric retrieval tasks.\n * Defaults to `document`.\n */\n textType: z4.enum([\"query\", \"document\"]).optional(),\n /**\n * The dimension of the output embedding vectors. Defaults to 1024.\n *\n * `text-embedding-v4` also supports 1536 and 2048 dimensions.\n */\n dimension: z4.number().optional(),\n /**\n * The output vector type. Defaults to `dense`.\n *\n * Sparse-only output is not supported by the AI SDK embedding interface,\n * which requires dense number arrays.\n */\n outputType: z4.enum([\"dense\", \"sparse\", \"dense&sparse\"]).optional()\n});\n\n// src/alibaba-embedding-model.ts\nvar alibabaEmbeddingFailedResponseHandler = createJsonErrorResponseHandler2({\n errorSchema: z5.object({\n code: z5.string().nullish(),\n message: z5.string(),\n request_id: z5.string().nullish()\n }),\n errorToMessage: (data) => data.message\n});\nvar AlibabaEmbeddingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.maxEmbeddingsPerCall = 10;\n this.supportsParallelCalls = false;\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions\n }) {\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 const alibabaOptions = await parseProviderOptions2({\n provider: \"alibaba\",\n providerOptions,\n schema: alibabaEmbeddingModelOptions\n });\n if ((alibabaOptions == null ? void 0 : alibabaOptions.outputType) === \"sparse\") {\n throw new UnsupportedFunctionalityError2({\n functionality: \"Alibaba embedding outputType 'sparse'\",\n message: \"Alibaba embedding outputType 'sparse' is not supported because AI SDK embeddings require dense number arrays. Use 'dense' or 'dense&sparse' instead.\"\n });\n }\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi2({\n url: `${this.config.baseURL}/services/embeddings/text-embedding/text-embedding`,\n headers: combineHeaders2(this.config.headers(), headers),\n body: {\n model: this.modelId,\n input: {\n texts: values\n },\n parameters: {\n text_type: alibabaOptions == null ? void 0 : alibabaOptions.textType,\n dimension: alibabaOptions == null ? void 0 : alibabaOptions.dimension,\n output_type: alibabaOptions == null ? void 0 : alibabaOptions.outputType\n }\n },\n failedResponseHandler: alibabaEmbeddingFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n alibabaTextEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n const sortedEmbeddings = response.output.embeddings.sort(\n (a, b) => a.text_index - b.text_index\n );\n const sparseEmbeddings = sortedEmbeddings.map(\n (item) => item.sparse_embedding == null ? void 0 : {\n textIndex: item.text_index,\n sparseEmbedding: item.sparse_embedding\n }\n ).filter((item) => item != null);\n return {\n warnings: [],\n embeddings: sortedEmbeddings.map((item) => item.embedding),\n usage: response.usage ? { tokens: response.usage.total_tokens } : void 0,\n providerMetadata: sparseEmbeddings.length > 0 ? {\n alibaba: {\n sparseEmbeddings\n }\n } : void 0,\n response: { headers: responseHeaders, body: rawValue }\n };\n }\n};\nvar alibabaTextEmbeddingSparseEmbeddingSchema = z5.object({\n index: z5.number(),\n value: z5.number(),\n token: z5.string().nullish()\n});\nvar alibabaTextEmbeddingResponseSchema = z5.object({\n output: z5.object({\n embeddings: z5.array(\n z5.object({\n embedding: z5.array(z5.number()),\n text_index: z5.number(),\n sparse_embedding: z5.array(alibabaTextEmbeddingSparseEmbeddingSchema).nullish()\n })\n )\n }),\n usage: z5.object({\n total_tokens: z5.number()\n }).nullish()\n});\n\n// src/alibaba-video-model.ts\nimport {\n AISDKError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders3,\n convertImageModelFileToDataUri,\n convertUint8ArrayToBase64,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler3,\n createJsonResponseHandler as createJsonResponseHandler3,\n delay,\n getFromApi,\n lazySchema,\n parseProviderOptions as parseProviderOptions3,\n postJsonToApi as postJsonToApi3,\n resolve,\n zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar alibabaVideoModelOptionsSchema = lazySchema(\n () => zodSchema(\n z6.object({\n negativePrompt: z6.string().nullish(),\n audioUrl: z6.string().nullish(),\n promptExtend: z6.boolean().nullish(),\n shotType: z6.enum([\"single\", \"multi\"]).nullish(),\n watermark: z6.boolean().nullish(),\n audio: z6.boolean().nullish(),\n referenceUrls: z6.array(z6.string()).nullish(),\n media: z6.array(\n z6.object({\n type: z6.enum([\n \"reference_image\",\n \"reference_video\",\n \"first_frame\"\n ]),\n url: z6.string(),\n referenceVoice: z6.string().nullish()\n })\n ).nullish(),\n ratio: z6.enum([\"16:9\", \"9:16\", \"1:1\", \"4:3\", \"3:4\"]).nullish(),\n pollIntervalMs: z6.number().positive().nullish(),\n pollTimeoutMs: z6.number().positive().nullish()\n }).passthrough()\n )\n);\nvar alibabaVideoErrorSchema = z6.object({\n code: z6.string().nullish(),\n message: z6.string(),\n request_id: z6.string().nullish()\n});\nvar alibabaVideoFailedResponseHandler = createJsonErrorResponseHandler3({\n errorSchema: alibabaVideoErrorSchema,\n errorToMessage: (data) => data.message\n});\nvar alibabaVideoCreateTaskSchema = z6.object({\n output: z6.object({\n task_status: z6.string(),\n task_id: z6.string()\n }).nullish(),\n request_id: z6.string().nullish()\n});\nvar alibabaVideoTaskStatusSchema = z6.object({\n output: z6.object({\n task_id: z6.string(),\n task_status: z6.string(),\n video_url: z6.string().nullish(),\n submit_time: z6.string().nullish(),\n scheduled_time: z6.string().nullish(),\n end_time: z6.string().nullish(),\n orig_prompt: z6.string().nullish(),\n actual_prompt: z6.string().nullish(),\n code: z6.string().nullish(),\n message: z6.string().nullish()\n }).nullish(),\n usage: z6.object({\n duration: z6.number().nullish(),\n output_video_duration: z6.number().nullish(),\n SR: z6.number().nullish(),\n size: z6.string().nullish()\n }).nullish(),\n request_id: z6.string().nullish()\n});\nfunction detectMode(modelId) {\n if (modelId.includes(\"-i2v\")) return \"i2v\";\n if (modelId.includes(\"-r2v\")) return \"r2v\";\n return \"t2v\";\n}\nfunction isWan27Model(modelId) {\n return modelId.startsWith(\"wan2.7\");\n}\nvar resolutionTierMap = {\n \"1280x720\": \"720P\",\n \"720x1280\": \"720P\",\n \"960x960\": \"720P\",\n \"1088x832\": \"720P\",\n \"832x1088\": \"720P\",\n \"1920x1080\": \"1080P\",\n \"1080x1920\": \"1080P\",\n \"1440x1440\": \"1080P\",\n \"1632x1248\": \"1080P\",\n \"1248x1632\": \"1080P\",\n \"832x480\": \"480P\",\n \"480x832\": \"480P\",\n \"624x624\": \"480P\"\n};\nvar supportedRatios = /* @__PURE__ */ new Set([\"16:9\", \"9:16\", \"1:1\", \"4:3\", \"3:4\"]);\nfunction deriveRatioFromResolution(resolution) {\n const [width, height] = resolution.split(\"x\").map(Number);\n if (!Number.isInteger(width) || !Number.isInteger(height) || width <= 0 || height <= 0) {\n return void 0;\n }\n let a = width;\n let b = height;\n while (b !== 0) {\n [a, b] = [b, a % b];\n }\n const ratio = `${width / a}:${height / a}`;\n return supportedRatios.has(ratio) ? ratio : void 0;\n}\nfunction fileToImageString(file) {\n if (file.type === \"url\") {\n return file.url;\n }\n return typeof file.data === \"string\" ? file.data : convertUint8ArrayToBase64(file.data);\n}\nfunction getFirstFrameImage(options) {\n var _a, _b;\n return (_b = (_a = options.frameImages) == null ? void 0 : _a.find((frame) => frame.frameType === \"first_frame\")) == null ? void 0 : _b.image;\n}\nfunction resolveStartImage(options) {\n var _a;\n return (_a = getFirstFrameImage(options)) != null ? _a : options.image;\n}\nfunction isVideoUrl(url) {\n return /\\.(mp4|mov)([?#]|$)/i.test(url);\n}\nfunction resolveMedia(options, alibabaOptions, warnings) {\n var _a;\n if ((alibabaOptions == null ? void 0 : alibabaOptions.media) != null && alibabaOptions.media.length > 0) {\n return alibabaOptions.media.map((item) => ({\n type: item.type,\n url: item.url,\n ...item.referenceVoice != null ? { reference_voice: item.referenceVoice } : {}\n }));\n }\n const media = [];\n for (const reference of (_a = options.inputReferences) != null ? _a : []) {\n if (reference.type === \"url\") {\n media.push({\n type: isVideoUrl(reference.url) ? \"reference_video\" : \"reference_image\",\n url: reference.url\n });\n } else if (reference.mediaType.startsWith(\"image/\")) {\n media.push({\n type: \"reference_image\",\n url: convertImageModelFileToDataUri(reference)\n });\n } else {\n warnings.push({\n type: \"unsupported\",\n feature: \"inputReferences\",\n details: \"Alibaba reference-to-video requires URL references for videos. Non-URL video reference was skipped.\"\n });\n }\n }\n const firstFrame = getFirstFrameImage(options);\n if (firstFrame != null) {\n media.push({\n type: \"first_frame\",\n url: convertImageModelFileToDataUri(firstFrame)\n });\n }\n return media.length > 0 ? media : void 0;\n}\nfunction resolveReferenceUrls(options, alibabaOptions, warnings) {\n var _a;\n if (options.frameImages != null && options.frameImages.length > 0) {\n return void 0;\n }\n if (options.inputReferences != null && options.inputReferences.length > 0) {\n const urls = [];\n for (const reference of options.inputReferences) {\n if (reference.type === \"url\") {\n urls.push(reference.url);\n } else {\n warnings.push({\n type: \"unsupported\",\n feature: \"inputReferences\",\n details: \"Alibaba reference-to-video requires URL references. Non-URL reference was skipped.\"\n });\n }\n }\n return urls.length > 0 ? urls : void 0;\n }\n return (_a = alibabaOptions == null ? void 0 : alibabaOptions.referenceUrls) != null ? _a : void 0;\n}\nvar AlibabaVideoModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxVideosPerCall = 1;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const warnings = [];\n const mode = detectMode(this.modelId);\n const alibabaOptions = await parseProviderOptions3({\n provider: \"alibaba\",\n providerOptions: options.providerOptions,\n schema: alibabaVideoModelOptionsSchema\n });\n const input = {};\n if (options.prompt != null) {\n input.prompt = options.prompt;\n }\n if ((alibabaOptions == null ? void 0 : alibabaOptions.negativePrompt) != null) {\n input.negative_prompt = alibabaOptions.negativePrompt;\n }\n if ((alibabaOptions == null ? void 0 : alibabaOptions.audioUrl) != null) {\n input.audio_url = alibabaOptions.audioUrl;\n }\n const startImage = resolveStartImage(options);\n const wan27 = isWan27Model(this.modelId);\n const supportsRatio = wan27 && mode !== \"i2v\";\n if (mode === \"i2v\" && startImage != null) {\n input.img_url = fileToImageString(startImage);\n }\n if (mode === \"r2v\") {\n if (wan27) {\n const media = resolveMedia(options, alibabaOptions, warnings);\n if (media != null) {\n input.media = media;\n }\n } else {\n const referenceUrls = resolveReferenceUrls(\n options,\n alibabaOptions,\n warnings\n );\n if (referenceUrls != null && referenceUrls.length > 0) {\n input.reference_urls = referenceUrls;\n }\n }\n }\n const lastFrame = (_e = (_d = options.frameImages) == null ? void 0 : _d.find(\n (frame) => frame.frameType === \"last_frame\"\n )) == null ? void 0 : _e.image;\n if (lastFrame != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"frameImages\",\n details: \"This model does not support last_frame. The last frame image was ignored.\"\n });\n }\n if (options.inputReferences != null && options.inputReferences.length > 0 && mode !== \"r2v\") {\n warnings.push({\n type: \"unsupported\",\n feature: \"inputReferences\",\n details: \"Alibaba only supports inputReferences (reference-to-video) on reference-to-video models. The reference images were ignored.\"\n });\n }\n const parameters = {};\n if (options.duration != null) {\n parameters.duration = options.duration;\n }\n if (options.seed != null) {\n parameters.seed = options.seed;\n }\n if (options.resolution != null) {\n if (mode === \"i2v\" || wan27) {\n const resolutionTier = resolutionTierMap[options.resolution] || options.resolution;\n if (wan27 && resolutionTier !== \"720P\" && resolutionTier !== \"1080P\") {\n warnings.push({\n type: \"unsupported\",\n feature: \"resolution\",\n details: `wan2.7 models only support 720P and 1080P resolutions. The resolution \"${options.resolution}\" was ignored.`\n });\n } else {\n parameters.resolution = resolutionTier;\n }\n } else {\n parameters.size = options.resolution.replace(\"x\", \"*\");\n }\n }\n if (supportsRatio) {\n const ratio = (_g = (_f = alibabaOptions == null ? void 0 : alibabaOptions.ratio) != null ? _f : options.aspectRatio) != null ? _g : options.resolution != null ? deriveRatioFromResolution(options.resolution) : void 0;\n if (ratio != null) {\n parameters.ratio = ratio;\n }\n }\n if ((alibabaOptions == null ? void 0 : alibabaOptions.promptExtend) != null) {\n parameters.prompt_extend = alibabaOptions.promptExtend;\n }\n if ((alibabaOptions == null ? void 0 : alibabaOptions.shotType) != null) {\n if (wan27) {\n warnings.push({\n type: \"unsupported\",\n feature: \"shotType\",\n details: \"wan2.7 models do not support the shotType option. Describe the shot structure in the prompt instead.\"\n });\n } else {\n parameters.shot_type = alibabaOptions.shotType;\n }\n }\n if ((alibabaOptions == null ? void 0 : alibabaOptions.watermark) != null) {\n parameters.watermark = alibabaOptions.watermark;\n }\n const audio = (_h = options.generateAudio) != null ? _h : alibabaOptions == null ? void 0 : alibabaOptions.audio;\n if (audio != null) {\n if (wan27) {\n warnings.push({\n type: \"unsupported\",\n feature: \"generateAudio\",\n details: \"wan2.7 models always generate audio. The audio option was ignored.\"\n });\n } else {\n parameters.audio = audio;\n }\n }\n if (options.aspectRatio && !supportsRatio) {\n warnings.push({\n type: \"unsupported\",\n feature: \"aspectRatio\",\n details: \"Alibaba video models use explicit size/resolution dimensions. Use the resolution option or providerOptions.alibaba for size control.\"\n });\n }\n if (options.fps) {\n warnings.push({\n type: \"unsupported\",\n feature: \"fps\",\n details: \"Alibaba video models do not support custom FPS.\"\n });\n }\n if (options.n != null && options.n > 1) {\n warnings.push({\n type: \"unsupported\",\n feature: \"n\",\n details: \"Alibaba video models only support generating 1 video per call.\"\n });\n }\n const { value: createResponse } = await postJsonToApi3({\n url: `${this.config.baseURL}/api/v1/services/aigc/video-generation/video-synthesis`,\n headers: combineHeaders3(\n await resolve(this.config.headers),\n options.headers,\n {\n \"X-DashScope-Async\": \"enable\"\n }\n ),\n body: {\n model: this.modelId,\n input,\n parameters\n },\n successfulResponseHandler: createJsonResponseHandler3(\n alibabaVideoCreateTaskSchema\n ),\n failedResponseHandler: alibabaVideoFailedResponseHandler,\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const taskId = (_i = createResponse.output) == null ? void 0 : _i.task_id;\n if (!taskId) {\n throw new AISDKError({\n name: \"ALIBABA_VIDEO_GENERATION_ERROR\",\n message: `No task_id returned from Alibaba API. Response: ${JSON.stringify(createResponse)}`\n });\n }\n const pollIntervalMs = (_j = alibabaOptions == null ? void 0 : alibabaOptions.pollIntervalMs) != null ? _j : 5e3;\n const pollTimeoutMs = (_k = alibabaOptions == null ? void 0 : alibabaOptions.pollTimeoutMs) != null ? _k : 6e5;\n const startTime = Date.now();\n let finalResponse;\n let responseHeaders;\n while (true) {\n await delay(pollIntervalMs, { abortSignal: options.abortSignal });\n if (Date.now() - startTime > pollTimeoutMs) {\n throw new AISDKError({\n name: \"ALIBABA_VIDEO_GENERATION_TIMEOUT\",\n message: `Video generation timed out after ${pollTimeoutMs}ms`\n });\n }\n const { value: statusResponse, responseHeaders: pollHeaders } = await getFromApi({\n url: `${this.config.baseURL}/api/v1/tasks/${taskId}`,\n headers: combineHeaders3(\n await resolve(this.config.headers),\n options.headers\n ),\n successfulResponseHandler: createJsonResponseHandler3(\n alibabaVideoTaskStatusSchema\n ),\n failedResponseHandler: alibabaVideoFailedResponseHandler,\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n responseHeaders = pollHeaders;\n const taskStatus = (_l = statusResponse.output) == null ? void 0 : _l.task_status;\n if (taskStatus === \"SUCCEEDED\") {\n finalResponse = statusResponse;\n break;\n }\n if (taskStatus === \"FAILED\" || taskStatus === \"CANCELED\") {\n throw new AISDKError({\n name: \"ALIBABA_VIDEO_GENERATION_FAILED\",\n message: `Video generation ${taskStatus.toLowerCase()}. Task ID: ${taskId}. ${(_n = (_m = statusResponse.output) == null ? void 0 : _m.message) != null ? _n : \"\"}`\n });\n }\n }\n const videoUrl = (_o = finalResponse == null ? void 0 : finalResponse.output) == null ? void 0 : _o.video_url;\n if (!videoUrl) {\n throw new AISDKError({\n name: \"ALIBABA_VIDEO_GENERATION_ERROR\",\n message: `No video URL in response. Task ID: ${taskId}`\n });\n }\n return {\n videos: [\n {\n type: \"url\",\n url: videoUrl,\n mediaType: \"video/mp4\"\n }\n ],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n },\n providerMetadata: {\n alibaba: {\n taskId,\n videoUrl,\n ...((_p = finalResponse == null ? void 0 : finalResponse.output) == null ? void 0 : _p.actual_prompt) ? { actualPrompt: finalResponse.output.actual_prompt } : {},\n ...(finalResponse == null ? void 0 : finalResponse.usage) ? {\n usage: {\n duration: finalResponse.usage.duration,\n outputVideoDuration: finalResponse.usage.output_video_duration,\n resolution: finalResponse.usage.SR,\n size: finalResponse.usage.size\n }\n } : {}\n }\n }\n };\n }\n};\n\n// src/version.ts\nvar VERSION = true ? \"1.0.40\" : \"0.0.0-test\";\n\n// src/alibaba-provider.ts\nfunction createAlibaba(options = {}) {\n var _a, _b, _c;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\";\n const videoBaseURL = (_b = withoutTrailingSlash(options.videoBaseURL)) != null ? _b : \"https://dashscope-intl.aliyuncs.com\";\n const embeddingBaseURL = (_c = withoutTrailingSlash(options.embeddingBaseURL)) != null ? _c : \"https://dashscope-intl.aliyuncs.com/api/v1\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"ALIBABA_API_KEY\",\n description: \"Alibaba Cloud (DashScope)\"\n })}`,\n ...options.headers\n },\n `ai-sdk/alibaba/${VERSION}`\n );\n const createLanguageModel = (modelId) => {\n var _a2;\n return new AlibabaLanguageModel(modelId, {\n provider: \"alibaba.chat\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n includeUsage: (_a2 = options.includeUsage) != null ? _a2 : true\n });\n };\n const createEmbeddingModel = (modelId) => new AlibabaEmbeddingModel(modelId, {\n provider: \"alibaba.embedding\",\n baseURL: embeddingBaseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createVideoModel = (modelId) => new AlibabaVideoModel(modelId, {\n provider: \"alibaba.video\",\n baseURL: videoBaseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const provider = function(modelId) {\n if (new.target) {\n throw new Error(\n \"The Alibaba model function cannot be called with the new keyword.\"\n );\n }\n return createLanguageModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.chatModel = createLanguageModel;\n provider.embedding = createEmbeddingModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.video = createVideoModel;\n provider.videoModel = createVideoModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar alibaba = createAlibaba();\nexport {\n VERSION,\n alibaba,\n createAlibaba\n};\n//# sourceMappingURL=index.mjs.map","// src/cerebras-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/cerebras-chat-language-model.ts\nimport { OpenAICompatibleChatLanguageModel } from \"@ai-sdk/openai-compatible\";\nfunction isStructuredOutputWithToolCallsFinishReason({\n rawFinishReason,\n hasText,\n responseFormatType\n}) {\n return responseFormatType === \"json\" && rawFinishReason === \"tool_calls\" && hasText;\n}\nvar CerebrasChatLanguageModel = class extends OpenAICompatibleChatLanguageModel {\n async doGenerate(options) {\n var _a;\n const result = await super.doGenerate(options);\n if (!isStructuredOutputWithToolCallsFinishReason({\n rawFinishReason: result.finishReason.raw,\n hasText: result.content.some(\n (part) => part.type === \"text\" && part.text.length > 0\n ),\n responseFormatType: (_a = options.responseFormat) == null ? void 0 : _a.type\n })) {\n return result;\n }\n return {\n ...result,\n // Cerebras GLM can return valid structured output text while also\n // repeating a tool call. Treat that mixed response as the final answer.\n content: result.content.filter((part) => part.type !== \"tool-call\"),\n finishReason: {\n ...result.finishReason,\n unified: \"stop\"\n }\n };\n }\n async doStream(options) {\n const result = await super.doStream(options);\n let hasText = false;\n return {\n ...result,\n stream: result.stream.pipeThrough(\n new TransformStream({\n transform(part, controller) {\n var _a, _b;\n if (part.type === \"text-delta\" && part.delta.length > 0) {\n hasText = true;\n }\n if (part.type === \"finish\" && isStructuredOutputWithToolCallsFinishReason({\n rawFinishReason: part.finishReason.raw,\n hasText,\n responseFormatType: (_a = options.responseFormat) == null ? void 0 : _a.type\n })) {\n controller.enqueue({\n ...part,\n finishReason: {\n ...part.finishReason,\n unified: \"stop\"\n }\n });\n return;\n }\n if (((_b = options.responseFormat) == null ? void 0 : _b.type) === \"json\" && hasText && (part.type === \"tool-input-start\" || part.type === \"tool-input-delta\" || part.type === \"tool-input-end\" || part.type === \"tool-call\")) {\n return;\n }\n controller.enqueue(part);\n }\n })\n )\n };\n }\n};\n\n// src/cerebras-provider.ts\nimport { z } from \"zod/v4\";\n\n// src/version.ts\nvar VERSION = true ? \"2.0.68\" : \"0.0.0-test\";\n\n// src/cerebras-provider.ts\nvar cerebrasErrorSchema = z.object({\n message: z.string(),\n type: z.string(),\n param: z.string(),\n code: z.string()\n});\nvar cerebrasErrorStructure = {\n errorSchema: cerebrasErrorSchema,\n errorToMessage: (data) => data.message\n};\nfunction transformCerebrasRequestBody(args) {\n return {\n ...args,\n messages: Array.isArray(args.messages) ? args.messages.map((message) => {\n if (message == null || typeof message !== \"object\" || message.role !== \"assistant\" || !(\"reasoning_content\" in message)) {\n return message;\n }\n const { reasoning_content, ...rest } = message;\n return {\n ...rest,\n ...!(\"reasoning\" in rest) && reasoning_content !== void 0 ? { reasoning: reasoning_content } : {}\n };\n }) : args.messages\n };\n}\nfunction createCerebras(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.cerebras.ai/v1\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"CEREBRAS_API_KEY\",\n description: \"Cerebras API key\"\n })}`,\n ...options.headers\n },\n `ai-sdk/cerebras/${VERSION}`\n );\n const createLanguageModel = (modelId) => {\n return new CerebrasChatLanguageModel(modelId, {\n provider: `cerebras.chat`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: cerebrasErrorStructure,\n supportsStructuredOutputs: true,\n transformRequestBody: transformCerebrasRequestBody\n });\n };\n const provider = (modelId) => createLanguageModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.chat = createLanguageModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar cerebras = createCerebras();\nexport {\n VERSION,\n cerebras,\n createCerebras\n};\n//# sourceMappingURL=index.mjs.map","// src/deepinfra-provider.ts\nimport {\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel\n} from \"@ai-sdk/openai-compatible\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/deepinfra-image-model.ts\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n convertToFormData,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n downloadBlob,\n postFormDataToApi,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar DeepInfraImageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxImagesPerCall = 1;\n }\n get provider() {\n return this.config.provider;\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 }) {\n var _a, _b, _c, _d, _e;\n const warnings = [];\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n if (files != null && files.length > 0) {\n const { value: response2, responseHeaders: responseHeaders2 } = await postFormDataToApi({\n url: this.getEditUrl(),\n headers: combineHeaders(this.config.headers(), headers),\n formData: convertToFormData(\n {\n model: this.modelId,\n prompt,\n image: await Promise.all(files.map((file) => fileToBlob(file))),\n mask: mask != null ? await fileToBlob(mask) : void 0,\n n,\n size,\n ...(_d = providerOptions.deepinfra) != null ? _d : {}\n },\n { useArrayBrackets: false }\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: deepInfraEditErrorSchema,\n errorToMessage: (error) => {\n var _a2, _b2;\n return (_b2 = (_a2 = error.error) == null ? void 0 : _a2.message) != null ? _b2 : \"Unknown error\";\n }\n }),\n successfulResponseHandler: createJsonResponseHandler(\n deepInfraEditResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response2.data.map((item) => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders2\n }\n };\n }\n const splitSize = size == null ? void 0 : size.split(\"x\");\n const { value: response, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/${this.modelId}`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n prompt,\n num_images: n,\n ...aspectRatio && { aspect_ratio: aspectRatio },\n ...splitSize && { width: splitSize[0], height: splitSize[1] },\n ...seed != null && { seed },\n ...(_e = providerOptions.deepinfra) != null ? _e : {}\n },\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: deepInfraErrorSchema,\n errorToMessage: (error) => error.detail.error\n }),\n successfulResponseHandler: createJsonResponseHandler(\n deepInfraImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response.images.map(\n (image) => image.replace(/^data:image\\/\\w+;base64,/, \"\")\n ),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n getEditUrl() {\n const baseUrl = this.config.baseURL.replace(\"/inference\", \"/openai\");\n return `${baseUrl}/images/edits`;\n }\n};\nvar deepInfraErrorSchema = z.object({\n detail: z.object({\n error: z.string()\n })\n});\nvar deepInfraImageResponseSchema = z.object({\n images: z.array(z.string())\n});\nvar deepInfraEditErrorSchema = z.object({\n error: z.object({\n message: z.string()\n }).optional()\n});\nvar deepInfraEditResponseSchema = z.object({\n data: z.array(z.object({ b64_json: z.string() }))\n});\nasync function fileToBlob(file) {\n if (file.type === \"url\") {\n return downloadBlob(file.url);\n }\n const data = file.data instanceof Uint8Array ? file.data : convertBase64ToUint8Array(file.data);\n return new Blob([data], { type: file.mediaType });\n}\n\n// src/deepinfra-chat-language-model.ts\nimport { OpenAICompatibleChatLanguageModel } from \"@ai-sdk/openai-compatible\";\nvar DeepInfraChatLanguageModel = class extends OpenAICompatibleChatLanguageModel {\n constructor(modelId, config) {\n super(modelId, config);\n }\n /**\n * Fixes incorrect token usage for Gemini/Gemma models from DeepInfra.\n *\n * DeepInfra's API returns completion_tokens that don't include reasoning_tokens\n * for Gemini/Gemma models, which violates the OpenAI-compatible spec.\n * According to the spec, completion_tokens should include reasoning_tokens.\n *\n * Example of incorrect data from DeepInfra:\n * {\n * \"completion_tokens\": 84, // text-only tokens\n * \"completion_tokens_details\": {\n * \"reasoning_tokens\": 1081 // reasoning tokens not included above\n * }\n * }\n *\n * This would result in negative text tokens: 84 - 1081 = -997\n *\n * The fix: If reasoning_tokens > completion_tokens, add reasoning_tokens\n * to completion_tokens: 84 + 1081 = 1165\n */\n fixUsageForGeminiModels(usage) {\n var _a, _b;\n if (!usage || !((_a = usage.completion_tokens_details) == null ? void 0 : _a.reasoning_tokens)) {\n return usage;\n }\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const reasoningTokens = usage.completion_tokens_details.reasoning_tokens;\n if (reasoningTokens > completionTokens) {\n const correctedCompletionTokens = completionTokens + reasoningTokens;\n return {\n ...usage,\n // Add reasoning_tokens to completion_tokens to get the correct total\n completion_tokens: correctedCompletionTokens,\n // Update total_tokens if present\n total_tokens: usage.total_tokens != null ? usage.total_tokens + reasoningTokens : void 0\n };\n }\n return usage;\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g;\n const result = await super.doGenerate(options);\n if ((_a = result.usage) == null ? void 0 : _a.raw) {\n const fixedRawUsage = this.fixUsageForGeminiModels(result.usage.raw);\n if (fixedRawUsage !== result.usage.raw) {\n const promptTokens = (_b = fixedRawUsage.prompt_tokens) != null ? _b : 0;\n const completionTokens = (_c = fixedRawUsage.completion_tokens) != null ? _c : 0;\n const cacheReadTokens = (_e = (_d = fixedRawUsage.prompt_tokens_details) == null ? void 0 : _d.cached_tokens) != null ? _e : 0;\n const reasoningTokens = (_g = (_f = fixedRawUsage.completion_tokens_details) == null ? void 0 : _f.reasoning_tokens) != null ? _g : 0;\n return {\n ...result,\n usage: {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: fixedRawUsage\n }\n };\n }\n }\n return result;\n }\n async doStream(options) {\n const result = await super.doStream(options);\n const originalStream = result.stream;\n const fixUsage = this.fixUsageForGeminiModels.bind(this);\n const transformedStream = new ReadableStream({\n async start(controller) {\n var _a, _b, _c, _d, _e, _f, _g;\n const reader = originalStream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (value.type === \"finish\" && ((_a = value.usage) == null ? void 0 : _a.raw)) {\n const fixedRawUsage = fixUsage(value.usage.raw);\n if (fixedRawUsage !== value.usage.raw) {\n const promptTokens = (_b = fixedRawUsage.prompt_tokens) != null ? _b : 0;\n const completionTokens = (_c = fixedRawUsage.completion_tokens) != null ? _c : 0;\n const cacheReadTokens = (_e = (_d = fixedRawUsage.prompt_tokens_details) == null ? void 0 : _d.cached_tokens) != null ? _e : 0;\n const reasoningTokens = (_g = (_f = fixedRawUsage.completion_tokens_details) == null ? void 0 : _f.reasoning_tokens) != null ? _g : 0;\n controller.enqueue({\n ...value,\n usage: {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: fixedRawUsage\n }\n });\n } else {\n controller.enqueue(value);\n }\n } else {\n controller.enqueue(value);\n }\n }\n controller.close();\n } catch (error) {\n controller.error(error);\n }\n }\n });\n return {\n ...result,\n stream: transformedStream\n };\n }\n};\n\n// src/version.ts\nvar VERSION = true ? \"2.0.66\" : \"0.0.0-test\";\n\n// src/deepinfra-provider.ts\nfunction createDeepInfra(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.deepinfra.com/v1\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"DEEPINFRA_API_KEY\",\n description: \"DeepInfra's API key\"\n })}`,\n ...options.headers\n },\n `ai-sdk/deepinfra/${VERSION}`\n );\n const getCommonModelConfig = (modelType) => ({\n provider: `deepinfra.${modelType}`,\n url: ({ path }) => `${baseURL}/openai${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createChatModel = (modelId) => {\n return new DeepInfraChatLanguageModel(\n modelId,\n getCommonModelConfig(\"chat\")\n );\n };\n const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(\n modelId,\n getCommonModelConfig(\"completion\")\n );\n const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(\n modelId,\n getCommonModelConfig(\"embedding\")\n );\n const createImageModel = (modelId) => new DeepInfraImageModel(modelId, {\n ...getCommonModelConfig(\"image\"),\n baseURL: baseURL ? `${baseURL}/inference` : \"https://api.deepinfra.com/v1/inference\"\n });\n const provider = (modelId) => createChatModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.completionModel = createCompletionModel;\n provider.chatModel = createChatModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.languageModel = createChatModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n return provider;\n}\nvar deepinfra = createDeepInfra();\nexport {\n VERSION,\n createDeepInfra,\n deepinfra\n};\n//# sourceMappingURL=index.mjs.map","// src/deepseek-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/chat/deepseek-chat-language-model.ts\nimport {\n InvalidResponseDataError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n generateId,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\n\n// src/chat/convert-to-deepseek-chat-messages.ts\nfunction convertToDeepSeekChatMessages({\n prompt,\n responseFormat,\n modelId,\n supportsStructuredOutputs = false\n}) {\n var _a;\n const isDeepSeekV4 = modelId.includes(\"deepseek-v4\");\n const messages = [];\n const warnings = [];\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\") {\n if (responseFormat.schema == null) {\n messages.push({\n role: \"system\",\n content: \"Return JSON.\"\n });\n } else if (!supportsStructuredOutputs) {\n messages.push({\n role: \"system\",\n content: \"Return JSON that conforms to the following schema: \" + JSON.stringify(responseFormat.schema)\n });\n warnings.push({\n type: \"compatibility\",\n feature: \"responseFormat JSON schema\",\n details: \"JSON response schema is injected into the system message.\"\n });\n }\n }\n let lastUserMessageIndex = -1;\n for (let i = prompt.length - 1; i >= 0; i--) {\n if (prompt[i].role === \"user\") {\n lastUserMessageIndex = i;\n break;\n }\n }\n let index = -1;\n for (const { role, content } of prompt) {\n index++;\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n let userContent = \"\";\n for (const part of content) {\n if (part.type === \"text\") {\n userContent += part.text;\n } else {\n warnings.push({\n type: \"unsupported\",\n feature: `user message part type: ${part.type}`\n });\n }\n }\n messages.push({\n role: \"user\",\n content: userContent\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n let reasoning;\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"reasoning\": {\n if (index <= lastUserMessageIndex && !isDeepSeekV4) {\n break;\n }\n if (reasoning == null) {\n reasoning = part.text;\n } else {\n reasoning += part.text;\n }\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n reasoning_content: reasoning != null ? reasoning : isDeepSeekV4 ? \"\" : void 0,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool call execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n warnings.push({\n type: \"unsupported\",\n feature: `message role: ${role}`\n });\n break;\n }\n }\n }\n return { messages, warnings };\n}\n\n// src/chat/convert-to-deepseek-usage.ts\nfunction convertDeepSeekUsage(usage) {\n var _a, _b, _c, _d, _e;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const cacheReadTokens = (_c = usage.prompt_cache_hit_tokens) != null ? _c : 0;\n const reasoningTokens = (_e = (_d = usage.completion_tokens_details) == null ? void 0 : _d.reasoning_tokens) != null ? _e : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/chat/deepseek-chat-api-types.ts\nimport { lazySchema, zodSchema } from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar tokenUsageSchema = z.object({\n prompt_tokens: z.number().nullish(),\n completion_tokens: z.number().nullish(),\n prompt_cache_hit_tokens: z.number().nullish(),\n prompt_cache_miss_tokens: z.number().nullish(),\n total_tokens: z.number().nullish(),\n completion_tokens_details: z.object({\n reasoning_tokens: z.number().nullish()\n }).nullish()\n}).nullish();\nvar deepSeekErrorSchema = z.object({\n error: z.object({\n message: z.string(),\n type: z.string().nullish(),\n param: z.any().nullish(),\n code: z.union([z.string(), z.number()]).nullish()\n })\n});\nvar deepseekChatResponseSchema = z.object({\n id: z.string().nullish(),\n created: z.number().nullish(),\n model: z.string().nullish(),\n choices: z.array(\n z.object({\n message: z.object({\n role: z.literal(\"assistant\").nullish(),\n content: z.string().nullish(),\n reasoning_content: z.string().nullish(),\n tool_calls: z.array(\n z.object({\n id: z.string().nullish(),\n function: z.object({\n name: z.string(),\n arguments: z.string()\n })\n })\n ).nullish()\n }),\n finish_reason: z.string().nullish()\n })\n ),\n usage: tokenUsageSchema\n});\nvar deepseekChatChunkSchema = lazySchema(\n () => zodSchema(\n z.union([\n z.object({\n id: z.string().nullish(),\n created: z.number().nullish(),\n model: z.string().nullish(),\n choices: z.array(\n z.object({\n delta: z.object({\n role: z.enum([\"assistant\"]).nullish(),\n content: z.string().nullish(),\n reasoning_content: z.string().nullish(),\n tool_calls: z.array(\n z.object({\n index: z.number(),\n id: z.string().nullish(),\n function: z.object({\n name: z.string().nullish(),\n arguments: z.string().nullish()\n })\n })\n ).nullish()\n }).nullish(),\n finish_reason: z.string().nullish()\n })\n ),\n usage: tokenUsageSchema\n }),\n deepSeekErrorSchema\n ])\n )\n);\n\n// src/chat/deepseek-chat-options.ts\nimport { z as z2 } from \"zod/v4\";\nvar deepseekLanguageModelOptions = z2.object({\n /**\n * Type of thinking to use. Defaults to `enabled`.\n *\n * See https://api-docs.deepseek.com/guides/thinking_mode for the\n * `adaptive` option, which lets the model decide when to think.\n */\n thinking: z2.object({\n type: z2.enum([\"adaptive\", \"enabled\", \"disabled\"]).optional()\n }).optional(),\n /**\n * Controls the thinking strength for DeepSeek V4 reasoning models.\n *\n * DeepSeek's API accepts `low`, `medium`, `high`, `xhigh`, and `max`.\n * Per their docs, `low` and `medium` are mapped to `high`, and `xhigh`\n * is mapped to `max` server-side for compatibility with other providers.\n */\n reasoningEffort: z2.enum([\"low\", \"medium\", \"high\", \"xhigh\", \"max\"]).optional(),\n /**\n * Whether to use strict JSON schema validation for structured outputs.\n * Only applies when the serving endpoint supports JSON schema response\n * formats (e.g. Azure). Defaults to `true`.\n */\n strictJsonSchema: z2.boolean().optional()\n});\n\n// src/chat/deepseek-prepare-tools.ts\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const deepseekTools = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n } else {\n deepseekTools.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: deepseekTools, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice == null ? void 0 : toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return { tools: deepseekTools, toolChoice: type, toolWarnings };\n case \"tool\":\n return {\n tools: deepseekTools,\n toolChoice: {\n type: \"function\",\n function: { name: toolChoice.toolName }\n },\n toolWarnings\n };\n default: {\n return {\n tools: deepseekTools,\n toolChoice: void 0,\n toolWarnings: [\n ...toolWarnings,\n {\n type: \"unsupported\",\n feature: `tool choice type: ${type}`\n }\n ]\n };\n }\n }\n}\n\n// src/chat/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/chat/map-deepseek-finish-reason.ts\nfunction mapDeepSeekFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"tool_calls\":\n return \"tool-calls\";\n case \"insufficient_system_resource\":\n return \"error\";\n default:\n return \"other\";\n }\n}\n\n// src/chat/deepseek-chat-language-model.ts\nvar DeepSeekChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {};\n this.modelId = modelId;\n this.config = config;\n this.failedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: deepSeekErrorSchema,\n errorToMessage: (error) => error.error.message\n });\n }\n get provider() {\n return this.config.provider;\n }\n get providerOptionsName() {\n return this.config.provider.split(\".\")[0].trim();\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n providerOptions,\n stopSequences,\n responseFormat,\n seed,\n toolChoice,\n tools\n }) {\n var _a, _b, _c, _d;\n const deepseekOptions = (_a = await parseProviderOptions({\n provider: this.providerOptionsName,\n providerOptions,\n schema: deepseekLanguageModelOptions\n })) != null ? _a : {};\n const supportsStructuredOutputs = this.config.supportsStructuredOutputs === true;\n const { messages, warnings } = convertToDeepSeekChatMessages({\n prompt,\n responseFormat,\n modelId: this.modelId,\n supportsStructuredOutputs\n });\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if (seed != null) {\n warnings.push({ type: \"unsupported\", feature: \"seed\" });\n }\n const {\n tools: deepseekTools,\n toolChoice: deepseekToolChoices,\n toolWarnings\n } = prepareTools({\n tools,\n toolChoice\n });\n const thinking = this.config.supportsThinking === false ? void 0 : ((_b = deepseekOptions.thinking) == null ? void 0 : _b.type) != null ? { type: deepseekOptions.thinking.type } : void 0;\n return {\n args: {\n model: this.modelId,\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? supportsStructuredOutputs && responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n strict: (_c = deepseekOptions.strictJsonSchema) != null ? _c : true,\n name: (_d = responseFormat.name) != null ? _d : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n stop: stopSequences,\n messages,\n tools: deepseekTools,\n tool_choice: deepseekToolChoices,\n thinking,\n ...(thinking == null ? void 0 : thinking.type) !== \"disabled\" && deepseekOptions.reasoningEffort != null && {\n reasoning_effort: deepseekOptions.reasoningEffort\n }\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d;\n const { args, warnings } = await this.getArgs({ ...options });\n const {\n responseHeaders,\n value: responseBody,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: this.failedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n deepseekChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = responseBody.choices[0];\n const content = [];\n const reasoning = choice.message.reasoning_content;\n if (reasoning != null && reasoning.length > 0) {\n content.push({\n type: \"reasoning\",\n text: reasoning\n });\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: (_a = toolCall.id) != null ? _a : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n const text = choice.message.content;\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n return {\n content,\n finishReason: {\n unified: mapDeepSeekFinishReason(choice.finish_reason),\n raw: (_b = choice.finish_reason) != null ? _b : void 0\n },\n usage: convertDeepSeekUsage(responseBody.usage),\n providerMetadata: {\n [this.providerOptionsName]: {\n promptCacheHitTokens: (_c = responseBody.usage) == null ? void 0 : _c.prompt_cache_hit_tokens,\n promptCacheMissTokens: (_d = responseBody.usage) == null ? void 0 : _d.prompt_cache_miss_tokens\n }\n },\n request: { body: args },\n response: {\n ...getResponseMetadata(responseBody),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs({ ...options });\n const body = {\n ...args,\n stream: true,\n stream_options: { include_usage: true }\n };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: this.failedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n deepseekChatChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const toolCalls = [];\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n const providerOptionsName = this.providerOptionsName;\n let isActiveReasoning = false;\n let isActiveText = false;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = { unified: \"error\", raw: void 0 };\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = { unified: \"error\", raw: void 0 };\n controller.enqueue({ type: \"error\", error: value.error.message });\n return;\n }\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (value.usage != null) {\n usage = value.usage;\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = {\n unified: mapDeepSeekFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n const reasoningContent = delta.reasoning_content;\n if (reasoningContent) {\n if (!isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-start\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = true;\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: \"reasoning-0\",\n delta: reasoningContent\n });\n }\n if (delta.content) {\n if (!isActiveText) {\n controller.enqueue({ type: \"text-start\", id: \"txt-0\" });\n isActiveText = true;\n }\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = false;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"txt-0\",\n delta: delta.content\n });\n }\n if (delta.tool_calls != null) {\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = false;\n }\n for (const toolCallDelta of delta.tool_calls) {\n const index = toolCallDelta.index;\n if (toolCalls[index] == null) {\n if (toolCallDelta.id == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'id' to be a string.`\n });\n }\n if (((_a = toolCallDelta.function) == null ? void 0 : _a.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallDelta.id,\n toolName: toolCallDelta.function.name\n });\n toolCalls[index] = {\n id: toolCallDelta.id,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_b = toolCallDelta.function.arguments) != null ? _b : \"\"\n },\n hasFinished: false\n };\n const toolCall2 = toolCalls[index];\n if (((_c = toolCall2.function) == null ? void 0 : _c.name) != null && ((_d = toolCall2.function) == null ? void 0 : _d.arguments) != null) {\n if (toolCall2.function.arguments.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n }\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall.hasFinished) {\n continue;\n }\n if (((_e = toolCallDelta.function) == null ? void 0 : _e.arguments) != null) {\n toolCall.function.arguments += (_g = (_f = toolCallDelta.function) == null ? void 0 : _f.arguments) != null ? _g : \"\";\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: (_h = toolCallDelta.function.arguments) != null ? _h : \"\"\n });\n }\n }\n },\n flush(controller) {\n var _a, _b, _c;\n if (isActiveReasoning) {\n controller.enqueue({ type: \"reasoning-end\", id: \"reasoning-0\" });\n }\n if (isActiveText) {\n controller.enqueue({ type: \"text-end\", id: \"txt-0\" });\n }\n for (const toolCall of toolCalls.filter(\n (toolCall2) => !toolCall2.hasFinished\n )) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_a = toolCall.id) != null ? _a : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertDeepSeekUsage(usage),\n providerMetadata: {\n [providerOptionsName]: {\n promptCacheHitTokens: (_b = usage == null ? void 0 : usage.prompt_cache_hit_tokens) != null ? _b : void 0,\n promptCacheMissTokens: (_c = usage == null ? void 0 : usage.prompt_cache_miss_tokens) != null ? _c : void 0\n }\n }\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\n\n// src/version.ts\nvar VERSION = true ? \"2.0.50\" : \"0.0.0-test\";\n\n// src/deepseek-provider.ts\nfunction createDeepSeek(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.deepseek.com\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"DEEPSEEK_API_KEY\",\n description: \"DeepSeek API key\"\n })}`,\n ...options.headers\n },\n `ai-sdk/deepseek/${VERSION}`\n );\n const createLanguageModel = (modelId) => {\n return new DeepSeekChatLanguageModel(modelId, {\n provider: `deepseek.chat`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n };\n const provider = (modelId) => createLanguageModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.chat = createLanguageModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar deepseek = createDeepSeek();\nexport {\n VERSION,\n createDeepSeek,\n deepseek\n};\n//# sourceMappingURL=index.mjs.map","// src/groq-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/groq-chat-language-model.ts\nimport {\n InvalidResponseDataError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/convert-groq-usage.ts\nfunction convertGroqUsage(usage) {\n var _a, _b, _c, _d, _e, _f;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n const cacheReadTokens = (_c = (_b = usage.prompt_tokens_details) == null ? void 0 : _b.cached_tokens) != null ? _c : void 0;\n const completionTokens = (_d = usage.completion_tokens) != null ? _d : 0;\n const reasoningTokens = (_f = (_e = usage.completion_tokens_details) == null ? void 0 : _e.reasoning_tokens) != null ? _f : void 0;\n const textTokens = reasoningTokens != null ? completionTokens - reasoningTokens : completionTokens;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: cacheReadTokens != null ? promptTokens - cacheReadTokens : promptTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: textTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/convert-to-groq-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction convertToGroqChatMessages(prompt) {\n var _a;\n const messages = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n if (content.length === 1 && content[0].type === \"text\") {\n messages.push({ role: \"user\", content: content[0].text });\n break;\n }\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return { type: \"text\", text: part.text };\n }\n case \"file\": {\n if (!part.mediaType.startsWith(\"image/\")) {\n throw new UnsupportedFunctionalityError({\n functionality: \"Non-image file content parts\"\n });\n }\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: {\n url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${convertToBase64(part.data)}`\n }\n };\n }\n }\n })\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n let reasoning = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n // groq supports reasoning for tool-calls in multi-turn conversations\n // https://github.com/vercel/ai/issues/7860\n case \"reasoning\": {\n reasoning += part.text;\n break;\n }\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n ...reasoning.length > 0 ? { reasoning } : null,\n ...toolCalls.length > 0 ? { tool_calls: toolCalls } : null\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool call execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/groq-chat-options.ts\nimport { z } from \"zod/v4\";\nvar groqLanguageModelOptions = z.object({\n reasoningFormat: z.enum([\"parsed\", \"raw\", \"hidden\"]).optional(),\n /**\n * Specifies the reasoning effort level for model inference.\n * @see https://console.groq.com/docs/reasoning#reasoning-effort\n */\n reasoningEffort: z.enum([\"none\", \"default\", \"low\", \"medium\", \"high\"]).optional(),\n /**\n * Whether to enable parallel function calling during tool use. Default to true.\n */\n parallelToolCalls: z.boolean().optional(),\n /**\n * A unique identifier representing your end-user, which can help OpenAI to\n * monitor and detect abuse. Learn more.\n */\n user: z.string().optional(),\n /**\n * Whether to use structured outputs.\n *\n * @default true\n */\n structuredOutputs: z.boolean().optional(),\n /**\n * Whether to use strict JSON schema validation.\n * When true, the model uses constrained decoding to guarantee schema compliance.\n * Only used when structured outputs are enabled and a schema is provided.\n *\n * @default true\n */\n strictJsonSchema: z.boolean().optional(),\n /**\n * Service tier for the request.\n * - 'on_demand': Default tier with consistent performance and fairness\n * - 'performance': Prioritized tier for latency-sensitive workloads\n * - 'flex': Higher throughput tier optimized for workloads that can handle occasional request failures\n * - 'auto': Uses on_demand rate limits, then falls back to flex tier if exceeded\n *\n * @default 'on_demand'\n */\n serviceTier: z.enum([\"on_demand\", \"performance\", \"flex\", \"auto\"]).optional()\n});\n\n// src/groq-error.ts\nimport { z as z2 } from \"zod/v4\";\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nvar groqErrorDataSchema = z2.object({\n error: z2.object({\n message: z2.string(),\n type: z2.string()\n })\n});\nvar groqFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: groqErrorDataSchema,\n errorToMessage: (data) => data.error.message\n});\n\n// src/groq-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\n\n// src/groq-browser-search-models.ts\nvar BROWSER_SEARCH_SUPPORTED_MODELS = [\n \"openai/gpt-oss-20b\",\n \"openai/gpt-oss-120b\"\n];\nfunction isBrowserSearchSupportedModel(modelId) {\n return BROWSER_SEARCH_SUPPORTED_MODELS.includes(modelId);\n}\nfunction getSupportedModelsString() {\n return BROWSER_SEARCH_SUPPORTED_MODELS.join(\", \");\n}\n\n// src/groq-prepare-tools.ts\nfunction prepareTools({\n tools,\n toolChoice,\n modelId\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const groqTools2 = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n if (tool.id === \"groq.browser_search\") {\n if (!isBrowserSearchSupportedModel(modelId)) {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: `Browser search is only supported on the following models: ${getSupportedModelsString()}. Current model: ${modelId}`\n });\n } else {\n groqTools2.push({\n type: \"browser_search\"\n });\n }\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n }\n } else {\n groqTools2.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: groqTools2, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return { tools: groqTools2, toolChoice: type, toolWarnings };\n case \"tool\":\n return {\n tools: groqTools2,\n toolChoice: {\n type: \"function\",\n function: {\n name: toolChoice.toolName\n }\n },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/map-groq-finish-reason.ts\nfunction mapGroqFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\n\n// src/groq-chat-language-model.ts\nvar GroqChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"image/*\": [/^https?:\\/\\/.*$/]\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n stream,\n tools,\n toolChoice,\n providerOptions\n }) {\n var _a, _b, _c;\n const warnings = [];\n const groqOptions = await parseProviderOptions({\n provider: \"groq\",\n providerOptions,\n schema: groqLanguageModelOptions\n });\n const structuredOutputs = (_a = groqOptions == null ? void 0 : groqOptions.structuredOutputs) != null ? _a : true;\n const strictJsonSchema = (_b = groqOptions == null ? void 0 : groqOptions.strictJsonSchema) != null ? _b : true;\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null && !structuredOutputs) {\n warnings.push({\n type: \"unsupported\",\n feature: \"responseFormat\",\n details: \"JSON response format schema is only supported with structuredOutputs\"\n });\n }\n const {\n tools: groqTools2,\n toolChoice: groqToolChoice,\n toolWarnings\n } = prepareTools({ tools, toolChoice, modelId: this.modelId });\n return {\n args: {\n // model id:\n model: this.modelId,\n // model specific settings:\n user: groqOptions == null ? void 0 : groqOptions.user,\n parallel_tool_calls: groqOptions == null ? void 0 : groqOptions.parallelToolCalls,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n stop: stopSequences,\n seed,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? structuredOutputs && responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n strict: strictJsonSchema,\n name: (_c = responseFormat.name) != null ? _c : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n // provider options:\n reasoning_format: groqOptions == null ? void 0 : groqOptions.reasoningFormat,\n reasoning_effort: groqOptions == null ? void 0 : groqOptions.reasoningEffort,\n service_tier: groqOptions == null ? void 0 : groqOptions.serviceTier,\n // messages:\n messages: convertToGroqChatMessages(prompt),\n // tools:\n tools: groqTools2,\n tool_choice: groqToolChoice\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a, _b;\n const { args, warnings } = await this.getArgs({\n ...options,\n stream: false\n });\n const body = JSON.stringify(args);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: groqFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n groqChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n const text = choice.message.content;\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n const reasoning = choice.message.reasoning;\n if (reasoning != null && reasoning.length > 0) {\n content.push({\n type: \"reasoning\",\n text: reasoning\n });\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: (_a = toolCall.id) != null ? _a : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapGroqFinishReason(choice.finish_reason),\n raw: (_b = choice.finish_reason) != null ? _b : void 0\n },\n usage: convertGroqUsage(response.usage),\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings,\n request: { body }\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs({ ...options, stream: true });\n const body = JSON.stringify({ ...args, stream: true });\n const { responseHeaders, value: response } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: {\n ...args,\n stream: true\n },\n failedResponseHandler: groqFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(groqChatChunkSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const toolCalls = [];\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n let isActiveText = false;\n let isActiveReasoning = false;\n let providerMetadata;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = {\n unified: \"error\",\n raw: void 0\n };\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = {\n unified: \"error\",\n raw: void 0\n };\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (((_a = value.x_groq) == null ? void 0 : _a.usage) != null) {\n usage = value.x_groq.usage;\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = {\n unified: mapGroqFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n if (delta.reasoning != null && delta.reasoning.length > 0) {\n if (!isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-start\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = true;\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: \"reasoning-0\",\n delta: delta.reasoning\n });\n }\n if (delta.content != null && delta.content.length > 0) {\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = false;\n }\n if (!isActiveText) {\n controller.enqueue({ type: \"text-start\", id: \"txt-0\" });\n isActiveText = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"txt-0\",\n delta: delta.content\n });\n }\n if (delta.tool_calls != null) {\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = false;\n }\n for (const toolCallDelta of delta.tool_calls) {\n const index = toolCallDelta.index;\n if (toolCalls[index] == null) {\n if (toolCallDelta.type !== \"function\") {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function' type.`\n });\n }\n if (toolCallDelta.id == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'id' to be a string.`\n });\n }\n if (((_b = toolCallDelta.function) == null ? void 0 : _b.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallDelta.id,\n toolName: toolCallDelta.function.name\n });\n toolCalls[index] = {\n id: toolCallDelta.id,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_c = toolCallDelta.function.arguments) != null ? _c : \"\"\n },\n hasFinished: false\n };\n const toolCall2 = toolCalls[index];\n if (((_d = toolCall2.function) == null ? void 0 : _d.name) != null && ((_e = toolCall2.function) == null ? void 0 : _e.arguments) != null) {\n if (toolCall2.function.arguments.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n }\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall.hasFinished) {\n continue;\n }\n if (((_f = toolCallDelta.function) == null ? void 0 : _f.arguments) != null) {\n toolCall.function.arguments += (_h = (_g = toolCallDelta.function) == null ? void 0 : _g.arguments) != null ? _h : \"\";\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: (_i = toolCallDelta.function.arguments) != null ? _i : \"\"\n });\n }\n }\n },\n flush(controller) {\n var _a;\n if (isActiveReasoning) {\n controller.enqueue({ type: \"reasoning-end\", id: \"reasoning-0\" });\n }\n if (isActiveText) {\n controller.enqueue({ type: \"text-end\", id: \"txt-0\" });\n }\n for (const toolCall of toolCalls) {\n if (!toolCall.hasFinished) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_a = toolCall.id) != null ? _a : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n toolCall.hasFinished = true;\n }\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertGroqUsage(usage),\n ...providerMetadata != null ? { providerMetadata } : {}\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nvar groqChatResponseSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n message: z3.object({\n content: z3.string().nullish(),\n reasoning: z3.string().nullish(),\n tool_calls: z3.array(\n z3.object({\n id: z3.string().nullish(),\n type: z3.literal(\"function\"),\n function: z3.object({\n name: z3.string(),\n arguments: z3.string()\n })\n })\n ).nullish()\n }),\n index: z3.number(),\n finish_reason: z3.string().nullish()\n })\n ),\n usage: z3.object({\n prompt_tokens: z3.number().nullish(),\n completion_tokens: z3.number().nullish(),\n total_tokens: z3.number().nullish(),\n prompt_tokens_details: z3.object({\n cached_tokens: z3.number().nullish()\n }).nullish(),\n completion_tokens_details: z3.object({\n reasoning_tokens: z3.number().nullish()\n }).nullish()\n }).nullish()\n});\nvar groqChatChunkSchema = z3.union([\n z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n delta: z3.object({\n content: z3.string().nullish(),\n reasoning: z3.string().nullish(),\n tool_calls: z3.array(\n z3.object({\n index: z3.number(),\n id: z3.string().nullish(),\n type: z3.literal(\"function\").optional(),\n function: z3.object({\n name: z3.string().nullish(),\n arguments: z3.string().nullish()\n })\n })\n ).nullish()\n }).nullish(),\n finish_reason: z3.string().nullable().optional(),\n index: z3.number()\n })\n ),\n x_groq: z3.object({\n usage: z3.object({\n prompt_tokens: z3.number().nullish(),\n completion_tokens: z3.number().nullish(),\n total_tokens: z3.number().nullish(),\n prompt_tokens_details: z3.object({\n cached_tokens: z3.number().nullish()\n }).nullish(),\n completion_tokens_details: z3.object({\n reasoning_tokens: z3.number().nullish()\n }).nullish()\n }).nullish()\n }).nullish()\n }),\n groqErrorDataSchema\n]);\n\n// src/groq-transcription-model.ts\nimport {\n combineHeaders as combineHeaders2,\n convertBase64ToUint8Array,\n createJsonResponseHandler as createJsonResponseHandler2,\n mediaTypeToExtension,\n parseProviderOptions as parseProviderOptions2,\n postFormDataToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/groq-transcription-options.ts\nimport {\n lazySchema,\n zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar groqTranscriptionModelOptions = lazySchema(\n () => zodSchema(\n z4.object({\n language: z4.string().nullish(),\n prompt: z4.string().nullish(),\n responseFormat: z4.string().nullish(),\n temperature: z4.number().min(0).max(1).nullish(),\n timestampGranularities: z4.array(z4.string()).nullish()\n })\n )\n);\n\n// src/groq-transcription-model.ts\nvar GroqTranscriptionModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n audio,\n mediaType,\n providerOptions\n }) {\n var _a, _b, _c, _d, _e;\n const warnings = [];\n const groqOptions = await parseProviderOptions2({\n provider: \"groq\",\n providerOptions,\n schema: groqTranscriptionModelOptions\n });\n const formData = new FormData();\n const blob = audio instanceof Uint8Array ? new Blob([audio]) : new Blob([convertBase64ToUint8Array(audio)]);\n formData.append(\"model\", this.modelId);\n const fileExtension = mediaTypeToExtension(mediaType);\n formData.append(\n \"file\",\n new File([blob], \"audio\", { type: mediaType }),\n `audio.${fileExtension}`\n );\n if (groqOptions) {\n const transcriptionModelOptions = {\n language: (_a = groqOptions.language) != null ? _a : void 0,\n prompt: (_b = groqOptions.prompt) != null ? _b : void 0,\n response_format: (_c = groqOptions.responseFormat) != null ? _c : void 0,\n temperature: (_d = groqOptions.temperature) != null ? _d : void 0,\n timestamp_granularities: (_e = groqOptions.timestampGranularities) != null ? _e : void 0\n };\n for (const key in transcriptionModelOptions) {\n const value = transcriptionModelOptions[key];\n if (value !== void 0) {\n if (Array.isArray(value)) {\n for (const item of value) {\n formData.append(`${key}[]`, String(item));\n }\n } else {\n formData.append(key, String(value));\n }\n }\n }\n }\n return {\n formData,\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const { formData, warnings } = await this.getArgs(options);\n const {\n value: response,\n responseHeaders,\n rawValue: rawResponse\n } = await postFormDataToApi({\n url: this.config.url({\n path: \"/audio/transcriptions\",\n modelId: this.modelId\n }),\n headers: combineHeaders2(this.config.headers(), options.headers),\n formData,\n failedResponseHandler: groqFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n groqTranscriptionResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n return {\n text: response.text,\n segments: (_e = (_d = response.segments) == null ? void 0 : _d.map((segment) => ({\n text: segment.text,\n startSecond: segment.start,\n endSecond: segment.end\n }))) != null ? _e : [],\n language: (_f = response.language) != null ? _f : void 0,\n durationInSeconds: (_g = response.duration) != null ? _g : void 0,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse\n }\n };\n }\n};\nvar groqTranscriptionResponseSchema = z5.object({\n text: z5.string(),\n x_groq: z5.object({\n id: z5.string()\n }),\n // additional properties are returned when `response_format: 'verbose_json'` is\n task: z5.string().nullish(),\n language: z5.string().nullish(),\n duration: z5.number().nullish(),\n segments: z5.array(\n z5.object({\n id: z5.number(),\n seek: z5.number(),\n start: z5.number(),\n end: z5.number(),\n text: z5.string(),\n tokens: z5.array(z5.number()),\n temperature: z5.number(),\n avg_logprob: z5.number(),\n compression_ratio: z5.number(),\n no_speech_prob: z5.number()\n })\n ).nullish()\n});\n\n// src/tool/browser-search.ts\nimport { createProviderToolFactory } from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar browserSearch = createProviderToolFactory({\n id: \"groq.browser_search\",\n inputSchema: z6.object({})\n});\n\n// src/groq-tools.ts\nvar groqTools = {\n browserSearch\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.53\" : \"0.0.0-test\";\n\n// src/groq-provider.ts\nfunction createGroq(options = {}) {\n var _a;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://api.groq.com/openai/v1\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"GROQ_API_KEY\",\n description: \"Groq\"\n })}`,\n ...options.headers\n },\n `ai-sdk/groq/${VERSION}`\n );\n const createChatModel = (modelId) => new GroqChatLanguageModel(modelId, {\n provider: \"groq.chat\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createLanguageModel = (modelId) => {\n if (new.target) {\n throw new Error(\n \"The Groq model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n const createTranscriptionModel = (modelId) => {\n return new GroqTranscriptionModel(modelId, {\n provider: \"groq.transcription\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n };\n const provider = function(modelId) {\n return createLanguageModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.chat = createChatModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n provider.tools = groqTools;\n return provider;\n}\nvar groq = createGroq();\nexport {\n VERSION,\n browserSearch,\n createGroq,\n groq\n};\n//# sourceMappingURL=index.mjs.map","// src/mistral-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/mistral-chat-language-model.ts\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n injectJsonInstructionIntoMessages,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/convert-mistral-usage.ts\nfunction convertMistralUsage(usage) {\n var _a, _b, _c, _d, _e;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = usage.prompt_tokens;\n const completionTokens = usage.completion_tokens;\n const cacheReadTokens = (_e = (_d = (_b = usage.num_cached_tokens) != null ? _b : (_a = usage.prompt_tokens_details) == null ? void 0 : _a.cached_tokens) != null ? _d : (_c = usage.prompt_token_details) == null ? void 0 : _c.cached_tokens) != null ? _e : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens || void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens,\n reasoning: void 0\n },\n raw: usage\n };\n}\n\n// src/convert-to-mistral-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction formatFileUrl({\n data,\n mediaType\n}) {\n return data instanceof URL ? data.toString() : `data:${mediaType};base64,${convertToBase64(data)}`;\n}\nfunction convertToMistralChatMessages(prompt) {\n var _a;\n const messages = [];\n for (let i = 0; i < prompt.length; i++) {\n const { role, content } = prompt[i];\n const isLastMessage = i === prompt.length - 1;\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return { type: \"text\", text: part.text };\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: formatFileUrl({ data: part.data, mediaType })\n };\n } else if (part.mediaType === \"application/pdf\") {\n return {\n type: \"document_url\",\n document_url: formatFileUrl({\n data: part.data,\n mediaType: \"application/pdf\"\n })\n };\n } else {\n throw new UnsupportedFunctionalityError({\n functionality: \"Only images and PDF file parts are supported\"\n });\n }\n }\n }\n })\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n case \"reasoning\": {\n text += part.text;\n break;\n }\n default: {\n throw new Error(\n `Unsupported content type in assistant message: ${part.type}`\n );\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n prefix: isLastMessage ? true : void 0,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool call execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n name: toolResponse.toolName,\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/map-mistral-finish-reason.ts\nfunction mapMistralFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n case \"model_length\":\n return \"length\";\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\n\n// src/mistral-chat-options.ts\nimport { z } from \"zod/v4\";\nvar mistralLanguageModelOptions = z.object({\n /**\n * Whether to inject a safety prompt before all conversations.\n *\n * Defaults to `false`.\n */\n safePrompt: z.boolean().optional(),\n documentImageLimit: z.number().optional(),\n documentPageLimit: z.number().optional(),\n /**\n * Whether to use structured outputs.\n *\n * @default true\n */\n structuredOutputs: z.boolean().optional(),\n /**\n * Whether to use strict JSON schema validation.\n *\n * @default false\n */\n strictJsonSchema: z.boolean().optional(),\n /**\n * Whether to enable parallel function calling during tool use.\n * When set to false, the model will use at most one tool per response.\n *\n * @default true\n */\n parallelToolCalls: z.boolean().optional(),\n /**\n * Controls the reasoning effort for models that support adjustable reasoning.\n *\n * - `'high'`: Enable reasoning\n * - `'none'`: Disable reasoning\n */\n reasoningEffort: z.enum([\"high\", \"none\"]).optional()\n});\n\n// src/mistral-error.ts\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar mistralErrorDataSchema = z2.object({\n object: z2.literal(\"error\"),\n message: z2.string(),\n type: z2.string(),\n param: z2.string().nullable(),\n code: z2.string().nullable()\n});\nvar mistralFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: mistralErrorDataSchema,\n errorToMessage: (data) => data.message\n});\n\n// src/mistral-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const mistralTools = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n } else {\n mistralTools.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: mistralTools, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n return { tools: mistralTools, toolChoice: type, toolWarnings };\n case \"required\":\n return { tools: mistralTools, toolChoice: \"any\", toolWarnings };\n // mistral does not support tool mode directly,\n // so we filter the tools and force the tool choice through 'any'\n case \"tool\":\n return {\n tools: mistralTools.filter(\n (tool) => tool.function.name === toolChoice.toolName\n ),\n toolChoice: \"any\",\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/mistral-chat-language-model.ts\nvar MistralChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"application/pdf\": [/^https:\\/\\/.*$/]\n };\n var _a;\n this.modelId = modelId;\n this.config = config;\n this.generateId = (_a = config.generateId) != null ? _a : generateId;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerOptions,\n tools,\n toolChoice\n }) {\n var _a, _b, _c, _d;\n const warnings = [];\n const options = (_a = await parseProviderOptions({\n provider: \"mistral\",\n providerOptions,\n schema: mistralLanguageModelOptions\n })) != null ? _a : {};\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n const structuredOutputs = (_b = options.structuredOutputs) != null ? _b : true;\n const strictJsonSchema = (_c = options.strictJsonSchema) != null ? _c : false;\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\" && !(responseFormat == null ? void 0 : responseFormat.schema)) {\n prompt = injectJsonInstructionIntoMessages({\n messages: prompt,\n schema: responseFormat.schema\n });\n }\n const baseArgs = {\n // model id:\n model: this.modelId,\n // model specific settings:\n safe_prompt: options.safePrompt,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n ...frequencyPenalty != null ? { frequency_penalty: frequencyPenalty } : {},\n ...presencePenalty != null ? { presence_penalty: presencePenalty } : {},\n stop: stopSequences,\n random_seed: seed,\n reasoning_effort: options.reasoningEffort,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? structuredOutputs && (responseFormat == null ? void 0 : responseFormat.schema) != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n strict: strictJsonSchema,\n name: (_d = responseFormat.name) != null ? _d : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n // mistral-specific provider options:\n document_image_limit: options.documentImageLimit,\n document_page_limit: options.documentPageLimit,\n // messages:\n messages: convertToMistralChatMessages(prompt)\n };\n const {\n tools: mistralTools,\n toolChoice: mistralToolChoice,\n toolWarnings\n } = prepareTools({\n tools,\n toolChoice\n });\n return {\n args: {\n ...baseArgs,\n tools: mistralTools,\n tool_choice: mistralToolChoice,\n ...mistralTools != null && options.parallelToolCalls !== void 0 ? { parallel_tool_calls: options.parallelToolCalls } : {}\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a;\n const { args: body, warnings } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n mistralChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n if (choice.message.content != null && Array.isArray(choice.message.content)) {\n for (const part of choice.message.content) {\n if (part.type === \"thinking\") {\n const reasoningText = extractReasoningContent(part.thinking);\n if (reasoningText.length > 0) {\n content.push({ type: \"reasoning\", text: reasoningText });\n }\n } else if (part.type === \"text\") {\n if (part.text.length > 0) {\n content.push({ type: \"text\", text: part.text });\n }\n }\n }\n } else {\n const text = extractTextContent(choice.message.content);\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapMistralFinishReason(choice.finish_reason),\n raw: (_a = choice.finish_reason) != null ? _a : void 0\n },\n usage: convertMistralUsage(response.usage),\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const body = { ...args, stream: true };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n mistralChatChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n let activeText = false;\n let activeReasoningId = null;\n const generateId2 = this.generateId;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (value.usage != null) {\n usage = value.usage;\n }\n const choice = value.choices[0];\n const delta = choice.delta;\n const textContent = extractTextContent(delta.content);\n if (delta.content != null && Array.isArray(delta.content)) {\n for (const part of delta.content) {\n if (part.type === \"thinking\") {\n const reasoningDelta = extractReasoningContent(part.thinking);\n if (reasoningDelta.length > 0) {\n if (activeReasoningId == null) {\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n activeText = false;\n }\n activeReasoningId = generateId2();\n controller.enqueue({\n type: \"reasoning-start\",\n id: activeReasoningId\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: activeReasoningId,\n delta: reasoningDelta\n });\n }\n }\n }\n }\n if (textContent != null && textContent.length > 0) {\n if (!activeText) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n activeReasoningId = null;\n }\n controller.enqueue({ type: \"text-start\", id: \"0\" });\n activeText = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: textContent\n });\n }\n if ((delta == null ? void 0 : delta.tool_calls) != null) {\n for (const toolCall of delta.tool_calls) {\n const toolCallId = toolCall.id;\n const toolName = toolCall.function.name;\n const input = toolCall.function.arguments;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCallId,\n delta: input\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCallId\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName,\n input\n });\n }\n }\n if (choice.finish_reason != null) {\n finishReason = {\n unified: mapMistralFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n },\n flush(controller) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n }\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertMistralUsage(usage)\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction extractReasoningContent(thinking) {\n return thinking.filter((chunk) => chunk.type === \"text\").map((chunk) => chunk.text).join(\"\");\n}\nfunction extractTextContent(content) {\n if (typeof content === \"string\") {\n return content;\n }\n if (content == null) {\n return void 0;\n }\n const textContent = [];\n for (const chunk of content) {\n const { type } = chunk;\n switch (type) {\n case \"text\":\n textContent.push(chunk.text);\n break;\n case \"thinking\":\n case \"image_url\":\n case \"reference\":\n break;\n default: {\n const _exhaustiveCheck = type;\n throw new Error(`Unsupported type: ${_exhaustiveCheck}`);\n }\n }\n }\n return textContent.length ? textContent.join(\"\") : void 0;\n}\nvar mistralContentSchema = z3.union([\n z3.string(),\n z3.array(\n z3.discriminatedUnion(\"type\", [\n z3.object({\n type: z3.literal(\"text\"),\n text: z3.string()\n }),\n z3.object({\n type: z3.literal(\"image_url\"),\n image_url: z3.union([\n z3.string(),\n z3.object({\n url: z3.string(),\n detail: z3.string().nullable()\n })\n ])\n }),\n z3.object({\n type: z3.literal(\"reference\"),\n reference_ids: z3.array(z3.union([z3.string(), z3.number()]))\n }),\n z3.object({\n type: z3.literal(\"thinking\"),\n thinking: z3.array(\n z3.object({\n type: z3.literal(\"text\"),\n text: z3.string()\n })\n )\n })\n ])\n )\n]).nullish();\nvar mistralUsageSchema = z3.object({\n prompt_tokens: z3.number(),\n completion_tokens: z3.number(),\n total_tokens: z3.number(),\n num_cached_tokens: z3.number().nullish(),\n prompt_tokens_details: z3.object({ cached_tokens: z3.number().nullish() }).nullish(),\n prompt_token_details: z3.object({ cached_tokens: z3.number().nullish() }).nullish()\n});\nvar mistralChatResponseSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n message: z3.object({\n role: z3.literal(\"assistant\"),\n content: mistralContentSchema,\n tool_calls: z3.array(\n z3.object({\n id: z3.string(),\n function: z3.object({ name: z3.string(), arguments: z3.string() })\n })\n ).nullish()\n }),\n index: z3.number(),\n finish_reason: z3.string().nullish()\n })\n ),\n object: z3.literal(\"chat.completion\"),\n usage: mistralUsageSchema\n});\nvar mistralChatChunkSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n delta: z3.object({\n role: z3.enum([\"assistant\"]).optional(),\n content: mistralContentSchema,\n tool_calls: z3.array(\n z3.object({\n id: z3.string(),\n function: z3.object({ name: z3.string(), arguments: z3.string() })\n })\n ).nullish()\n }),\n finish_reason: z3.string().nullish(),\n index: z3.number()\n })\n ),\n usage: mistralUsageSchema.nullish()\n});\n\n// src/mistral-embedding-model.ts\nimport {\n TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders2,\n createJsonResponseHandler as createJsonResponseHandler2,\n postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar MistralEmbeddingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.maxEmbeddingsPerCall = 32;\n this.supportsParallelCalls = false;\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async doEmbed({\n values,\n abortSignal,\n headers\n }) {\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 const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi2({\n url: `${this.config.baseURL}/embeddings`,\n headers: combineHeaders2(this.config.headers(), headers),\n body: {\n model: this.modelId,\n input: values,\n encoding_format: \"float\"\n },\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n MistralTextEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n warnings: [],\n embeddings: response.data.map((item) => item.embedding),\n usage: response.usage ? { tokens: response.usage.prompt_tokens } : void 0,\n response: { headers: responseHeaders, body: rawValue }\n };\n }\n};\nvar MistralTextEmbeddingResponseSchema = z4.object({\n data: z4.array(z4.object({ embedding: z4.array(z4.number()) })),\n usage: z4.object({ prompt_tokens: z4.number() }).nullish()\n});\n\n// src/mistral-speech-model.ts\nimport {\n combineHeaders as combineHeaders3,\n createJsonResponseHandler as createJsonResponseHandler3,\n parseProviderOptions as parseProviderOptions2,\n postToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\n\n// src/mistral-speech-model-options.ts\nimport { z as z5 } from \"zod/v4\";\nvar mistralSpeechModelOptions = z5.object({\n /**\n * Base64-encoded reference audio for one-off voice cloning.\n *\n * When provided, this takes precedence over the standard `voice` option.\n */\n refAudio: z5.string().min(1).optional()\n});\n\n// src/mistral-speech-model.ts\nvar MistralSpeechModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n text,\n voice,\n outputFormat = \"mp3\",\n instructions,\n speed,\n language,\n providerOptions\n }) {\n const warnings = [];\n const mistralOptions = await parseProviderOptions2({\n provider: \"mistral\",\n providerOptions,\n schema: mistralSpeechModelOptions\n });\n let responseFormat = \"mp3\";\n if ([\"pcm\", \"wav\", \"mp3\", \"flac\", \"opus\"].includes(outputFormat)) {\n responseFormat = outputFormat;\n } else {\n warnings.push({\n type: \"unsupported\",\n feature: \"outputFormat\",\n details: `Unsupported output format: ${outputFormat}. Using mp3 instead.`\n });\n }\n if (instructions != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"instructions\",\n details: \"Mistral speech models do not support the `instructions` option. Use a reference audio clip to guide delivery.\"\n });\n }\n if (speed != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"speed\",\n details: \"Mistral speech models do not support the `speed` option. It was ignored.\"\n });\n }\n if (language != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"language\",\n details: \"Mistral speech models do not support the `language` option. Language is inferred from the input text and voice.\"\n });\n }\n const refAudio = mistralOptions == null ? void 0 : mistralOptions.refAudio;\n const requestBody = {\n model: this.modelId,\n input: text,\n voice_id: refAudio == null ? voice : void 0,\n ref_audio: refAudio,\n response_format: responseFormat,\n stream: false\n };\n const requestBodyValues = {\n ...requestBody,\n ref_audio: refAudio == null ? void 0 : \"[redacted]\"\n };\n return { requestBody, requestBodyValues, warnings };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const { requestBody, requestBodyValues, warnings } = await this.getArgs(options);\n const {\n value: response,\n responseHeaders,\n rawValue: rawResponse\n } = await postToApi({\n url: `${this.config.baseURL}/audio/speech`,\n headers: combineHeaders3(\n { \"Content-Type\": \"application/json\" },\n (_e = (_d = this.config).headers) == null ? void 0 : _e.call(_d),\n options.headers\n ),\n body: {\n content: JSON.stringify(requestBody),\n values: requestBodyValues\n },\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler3(\n mistralSpeechResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n return {\n audio: response.audio_data,\n warnings,\n request: {\n body: JSON.stringify(requestBodyValues)\n },\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse\n }\n };\n }\n};\nvar mistralSpeechResponseSchema = z6.object({\n audio_data: z6.string()\n});\n\n// src/version.ts\nvar VERSION = true ? \"3.0.51\" : \"0.0.0-test\";\n\n// src/mistral-provider.ts\nfunction createMistral(options = {}) {\n var _a;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://api.mistral.ai/v1\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"MISTRAL_API_KEY\",\n description: \"Mistral\"\n })}`,\n ...options.headers\n },\n `ai-sdk/mistral/${VERSION}`\n );\n const createChatModel = (modelId) => new MistralChatLanguageModel(modelId, {\n provider: \"mistral.chat\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n generateId: options.generateId\n });\n const createEmbeddingModel = (modelId) => new MistralEmbeddingModel(modelId, {\n provider: \"mistral.embedding\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createSpeechModel = (modelId) => new MistralSpeechModel(modelId, {\n provider: \"mistral.speech\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const provider = function(modelId) {\n if (new.target) {\n throw new Error(\n \"The Mistral model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.embedding = createEmbeddingModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.speech = createSpeechModel;\n provider.speechModel = createSpeechModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar mistral = createMistral();\nexport {\n VERSION,\n createMistral,\n mistral\n};\n//# sourceMappingURL=index.mjs.map","// src/perplexity-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/perplexity-language-model.ts\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\n\n// src/convert-perplexity-usage.ts\nfunction convertPerplexityUsage(usage) {\n var _a, _b, _c;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const reasoningTokens = (_c = usage.reasoning_tokens) != null ? _c : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/convert-to-perplexity-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport {\n convertBase64ToUint8Array,\n convertUint8ArrayToBase64\n} from \"@ai-sdk/provider-utils\";\nfunction convertToPerplexityMessages(prompt) {\n const messages = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\":\n case \"assistant\": {\n const hasMultipartContent = content.some(\n (part) => part.type === \"file\" && part.mediaType.startsWith(\"image/\") || part.type === \"file\" && getTopLevelMediaType(part.mediaType) === \"application\"\n );\n const messageContent = content.map((part, index) => {\n var _a;\n switch (part.type) {\n case \"text\": {\n return {\n type: \"text\",\n text: part.text\n };\n }\n case \"file\": {\n if (getTopLevelMediaType(part.mediaType) === \"application\") {\n const fullMediaType = resolveApplicationMediaType(part);\n if (fullMediaType !== \"application/pdf\") {\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${fullMediaType}`\n });\n }\n return part.data instanceof URL ? {\n type: \"file_url\",\n file_url: {\n url: part.data.toString()\n },\n file_name: part.filename\n } : {\n type: \"file_url\",\n file_url: {\n url: typeof part.data === \"string\" ? part.data : convertUint8ArrayToBase64(part.data)\n },\n file_name: part.filename || `document-${index}.pdf`\n };\n } else if (part.mediaType.startsWith(\"image/\")) {\n return part.data instanceof URL ? {\n type: \"image_url\",\n image_url: {\n url: part.data.toString()\n }\n } : {\n type: \"image_url\",\n image_url: {\n url: `data:${(_a = part.mediaType) != null ? _a : \"image/jpeg\"};base64,${typeof part.data === \"string\" ? part.data : convertUint8ArrayToBase64(part.data)}`\n }\n };\n }\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`\n });\n }\n }\n }).filter(Boolean);\n messages.push({\n role,\n content: hasMultipartContent ? messageContent : messageContent.filter((part) => part.type === \"text\").map((part) => part.text).join(\"\")\n });\n break;\n }\n case \"tool\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"Tool messages\"\n });\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\nfunction getTopLevelMediaType(mediaType) {\n const slashIndex = mediaType.indexOf(\"/\");\n return slashIndex === -1 ? mediaType : mediaType.substring(0, slashIndex);\n}\nfunction isFullMediaType(mediaType) {\n const slashIndex = mediaType.indexOf(\"/\");\n if (slashIndex === -1) {\n return false;\n }\n const subtype = mediaType.substring(slashIndex + 1);\n return subtype.length > 0 && subtype !== \"*\";\n}\nfunction resolveApplicationMediaType(part) {\n if (isFullMediaType(part.mediaType)) {\n return part.mediaType;\n }\n if (part.data instanceof URL) {\n throw new UnsupportedFunctionalityError({\n functionality: `file of media type \"${part.mediaType}\" must specify subtype since it is not passed as inline bytes`\n });\n }\n if (isPdfData(part.data)) {\n return \"application/pdf\";\n }\n throw new UnsupportedFunctionalityError({\n functionality: `file of media type \"${part.mediaType}\" must specify subtype since it could not be auto-detected`\n });\n}\nfunction isPdfData(data) {\n const bytes = typeof data === \"string\" ? convertBase64ToUint8Array(data.substring(0, Math.min(data.length, 8))) : data;\n return bytes.length >= 4 && bytes[0] === 37 && bytes[1] === 80 && bytes[2] === 68 && bytes[3] === 70;\n}\n\n// src/map-perplexity-finish-reason.ts\nfunction mapPerplexityFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n case \"length\":\n return finishReason;\n default:\n return \"other\";\n }\n}\n\n// src/perplexity-language-model.ts\nvar PerplexityLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"perplexity\";\n this.supportedUrls = {\n // No URLs are supported.\n };\n this.modelId = modelId;\n this.config = config;\n }\n getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerOptions\n }) {\n var _a;\n const warnings = [];\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if (stopSequences != null) {\n warnings.push({ type: \"unsupported\", feature: \"stopSequences\" });\n }\n if (seed != null) {\n warnings.push({ type: \"unsupported\", feature: \"seed\" });\n }\n return {\n args: {\n // model id:\n model: this.modelId,\n // standardized settings:\n frequency_penalty: frequencyPenalty,\n max_tokens: maxOutputTokens,\n presence_penalty: presencePenalty,\n temperature,\n top_k: topK,\n top_p: topP,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? {\n type: \"json_schema\",\n json_schema: { schema: responseFormat.schema }\n } : void 0,\n // provider extensions\n ...(_a = providerOptions == null ? void 0 : providerOptions.perplexity) != null ? _a : {},\n // messages:\n messages: convertToPerplexityMessages(prompt)\n },\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const { args: body, warnings } = this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: perplexityErrorSchema,\n errorToMessage\n }),\n successfulResponseHandler: createJsonResponseHandler(\n perplexityResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n const text = choice.message.content;\n if (text.length > 0) {\n content.push({ type: \"text\", text });\n }\n if (response.citations != null) {\n for (const url of response.citations) {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: this.config.generateId(),\n url\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapPerplexityFinishReason(choice.finish_reason),\n raw: (_a = choice.finish_reason) != null ? _a : void 0\n },\n usage: convertPerplexityUsage(response.usage),\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings,\n providerMetadata: {\n perplexity: {\n images: (_c = (_b = response.images) == null ? void 0 : _b.map((image) => ({\n imageUrl: image.image_url,\n originUrl: image.origin_url,\n height: image.height,\n width: image.width\n }))) != null ? _c : null,\n usage: {\n citationTokens: (_e = (_d = response.usage) == null ? void 0 : _d.citation_tokens) != null ? _e : null,\n numSearchQueries: (_g = (_f = response.usage) == null ? void 0 : _f.num_search_queries) != null ? _g : null\n },\n cost: ((_h = response.usage) == null ? void 0 : _h.cost) ? {\n inputTokensCost: (_i = response.usage.cost.input_tokens_cost) != null ? _i : null,\n outputTokensCost: (_j = response.usage.cost.output_tokens_cost) != null ? _j : null,\n requestCost: (_k = response.usage.cost.request_cost) != null ? _k : null,\n totalCost: (_l = response.usage.cost.total_cost) != null ? _l : null\n } : null\n }\n }\n };\n }\n async doStream(options) {\n const { args, warnings } = this.getArgs(options);\n const body = { ...args, stream: true };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: perplexityErrorSchema,\n errorToMessage\n }),\n successfulResponseHandler: createEventSourceResponseHandler(\n perplexityChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n const providerMetadata = {\n perplexity: {\n usage: {\n citationTokens: null,\n numSearchQueries: null\n },\n cost: null,\n images: null\n }\n };\n let isFirstChunk = true;\n let isActive = false;\n const self = this;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isFirstChunk) {\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n (_a = value.citations) == null ? void 0 : _a.forEach((url) => {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: self.config.generateId(),\n url\n });\n });\n isFirstChunk = false;\n }\n if (value.usage != null) {\n usage = value.usage;\n providerMetadata.perplexity.usage = {\n citationTokens: (_b = value.usage.citation_tokens) != null ? _b : null,\n numSearchQueries: (_c = value.usage.num_search_queries) != null ? _c : null\n };\n providerMetadata.perplexity.cost = value.usage.cost ? {\n inputTokensCost: (_d = value.usage.cost.input_tokens_cost) != null ? _d : null,\n outputTokensCost: (_e = value.usage.cost.output_tokens_cost) != null ? _e : null,\n requestCost: (_f = value.usage.cost.request_cost) != null ? _f : null,\n totalCost: (_g = value.usage.cost.total_cost) != null ? _g : null\n } : null;\n }\n if (value.images != null) {\n providerMetadata.perplexity.images = value.images.map((image) => ({\n imageUrl: image.image_url,\n originUrl: image.origin_url,\n height: image.height,\n width: image.width\n }));\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = {\n unified: mapPerplexityFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n const textContent = delta.content;\n if (textContent != null) {\n if (!isActive) {\n controller.enqueue({ type: \"text-start\", id: \"0\" });\n isActive = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: textContent\n });\n }\n },\n flush(controller) {\n if (isActive) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertPerplexityUsage(usage),\n providerMetadata\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id,\n modelId: model,\n timestamp: new Date(created * 1e3)\n };\n}\nvar perplexityCostSchema = z.object({\n input_tokens_cost: z.number().nullish(),\n output_tokens_cost: z.number().nullish(),\n request_cost: z.number().nullish(),\n total_cost: z.number().nullish()\n});\nvar perplexityUsageSchema = z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number().nullish(),\n citation_tokens: z.number().nullish(),\n num_search_queries: z.number().nullish(),\n reasoning_tokens: z.number().nullish(),\n cost: perplexityCostSchema.nullish()\n});\nvar perplexityImageSchema = z.object({\n image_url: z.string(),\n origin_url: z.string(),\n height: z.number(),\n width: z.number()\n});\nvar perplexityResponseSchema = z.object({\n id: z.string(),\n created: z.number(),\n model: z.string(),\n choices: z.array(\n z.object({\n message: z.object({\n role: z.literal(\"assistant\"),\n content: z.string()\n }),\n finish_reason: z.string().nullish()\n })\n ),\n citations: z.array(z.string()).nullish(),\n images: z.array(perplexityImageSchema).nullish(),\n usage: perplexityUsageSchema.nullish()\n});\nvar perplexityChunkSchema = z.object({\n id: z.string(),\n created: z.number(),\n model: z.string(),\n choices: z.array(\n z.object({\n delta: z.object({\n role: z.literal(\"assistant\").optional(),\n content: z.string().nullish()\n }),\n finish_reason: z.string().nullish()\n })\n ),\n citations: z.array(z.string()).nullish(),\n images: z.array(perplexityImageSchema).nullish(),\n usage: perplexityUsageSchema.nullish()\n});\nvar perplexityErrorSchema = z.object({\n error: z.object({\n code: z.number(),\n message: z.string().nullish(),\n type: z.string().nullish()\n })\n});\nvar errorToMessage = (data) => {\n var _a, _b;\n return (_b = (_a = data.error.message) != null ? _a : data.error.type) != null ? _b : \"unknown error\";\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.47\" : \"0.0.0-test\";\n\n// src/perplexity-provider.ts\nfunction createPerplexity(options = {}) {\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"PERPLEXITY_API_KEY\",\n description: \"Perplexity\"\n })}`,\n ...options.headers\n },\n `ai-sdk/perplexity/${VERSION}`\n );\n const createLanguageModel = (modelId) => {\n var _a;\n return new PerplexityLanguageModel(modelId, {\n baseURL: withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.perplexity.ai\"\n ),\n headers: getHeaders,\n generateId,\n fetch: options.fetch\n });\n };\n const provider = (modelId) => createLanguageModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar perplexity = createPerplexity();\nexport {\n VERSION,\n createPerplexity,\n perplexity\n};\n//# sourceMappingURL=index.mjs.map","// src/togetherai-provider.ts\nimport {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel\n} from \"@ai-sdk/openai-compatible\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/reranking/togetherai-reranking-model.ts\nimport {\n combineHeaders,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\n\n// src/reranking/togetherai-reranking-api.ts\nimport { lazySchema, zodSchema } from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar togetheraiErrorSchema = lazySchema(\n () => zodSchema(\n z.object({\n error: z.object({\n message: z.string()\n })\n })\n )\n);\nvar togetheraiRerankingResponseSchema = lazySchema(\n () => zodSchema(\n z.object({\n id: z.string().nullish(),\n model: z.string().nullish(),\n results: z.array(\n z.object({\n index: z.number(),\n relevance_score: z.number()\n })\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number()\n })\n })\n )\n);\n\n// src/reranking/togetherai-reranking-options.ts\nimport {\n lazySchema as lazySchema2,\n zodSchema as zodSchema2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar togetheraiRerankingModelOptionsSchema = lazySchema2(\n () => zodSchema2(\n z2.object({\n rankFields: z2.array(z2.string()).optional()\n })\n )\n);\n\n// src/reranking/togetherai-reranking-model.ts\nvar TogetherAIRerankingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n // see https://docs.together.ai/reference/rerank-1\n async doRerank({\n documents,\n headers,\n query,\n topN,\n abortSignal,\n providerOptions\n }) {\n var _a, _b;\n const rerankingOptions = await parseProviderOptions({\n provider: \"togetherai\",\n providerOptions,\n schema: togetheraiRerankingModelOptionsSchema\n });\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi({\n url: `${this.config.baseURL}/rerank`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n model: this.modelId,\n documents: documents.values,\n query,\n top_n: topN,\n rank_fields: rerankingOptions == null ? void 0 : rerankingOptions.rankFields,\n return_documents: false\n // reduce response size\n },\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: togetheraiErrorSchema,\n errorToMessage: (data) => data.error.message\n }),\n successfulResponseHandler: createJsonResponseHandler(\n togetheraiRerankingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n ranking: response.results.map((result) => ({\n index: result.index,\n relevanceScore: result.relevance_score\n })),\n response: {\n id: (_a = response.id) != null ? _a : void 0,\n modelId: (_b = response.model) != null ? _b : void 0,\n headers: responseHeaders,\n body: rawValue\n }\n };\n }\n};\n\n// src/togetherai-image-model.ts\nimport {\n combineHeaders as combineHeaders2,\n convertImageModelFileToDataUri,\n createJsonResponseHandler as createJsonResponseHandler2,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler2,\n lazySchema as lazySchema3,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi as postJsonToApi2,\n zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\nvar TogetherAIImageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxImagesPerCall = 1;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate({\n prompt,\n n,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask\n }) {\n var _a, _b, _c;\n const warnings = [];\n if (mask != null) {\n throw new Error(\n \"Together AI does not support mask-based image editing. Use FLUX Kontext models (e.g., black-forest-labs/FLUX.1-kontext-pro) with a reference image and descriptive prompt instead.\"\n );\n }\n if (size != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"aspectRatio\",\n details: \"This model does not support the `aspectRatio` option. Use `size` instead.\"\n });\n }\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const togetheraiOptions = await parseProviderOptions2({\n provider: \"togetherai\",\n providerOptions,\n schema: togetheraiImageModelOptionsSchema\n });\n let imageUrl;\n if (files != null && files.length > 0) {\n imageUrl = convertImageModelFileToDataUri(files[0]);\n if (files.length > 1) {\n warnings.push({\n type: \"other\",\n message: \"Together AI only supports a single input image. Additional images are ignored.\"\n });\n }\n }\n const splitSize = size == null ? void 0 : size.split(\"x\");\n const { value: response, responseHeaders } = await postJsonToApi2({\n url: `${this.config.baseURL}/images/generations`,\n headers: combineHeaders2(this.config.headers(), headers),\n body: {\n model: this.modelId,\n prompt,\n ...seed != null ? { seed } : {},\n ...n > 1 ? { n } : {},\n ...splitSize && {\n width: parseInt(splitSize[0]),\n height: parseInt(splitSize[1])\n },\n ...imageUrl != null ? { image_url: imageUrl } : {},\n response_format: \"base64\",\n ...togetheraiOptions != null ? togetheraiOptions : {}\n },\n failedResponseHandler: createJsonErrorResponseHandler2({\n errorSchema: togetheraiErrorSchema2,\n errorToMessage: (data) => data.error.message\n }),\n successfulResponseHandler: createJsonResponseHandler2(\n togetheraiImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response.data.map((item) => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n};\nvar togetheraiImageResponseSchema = z3.object({\n data: z3.array(\n z3.object({\n b64_json: z3.string()\n })\n )\n});\nvar togetheraiErrorSchema2 = z3.object({\n error: z3.object({\n message: z3.string()\n })\n});\nvar togetheraiImageModelOptionsSchema = lazySchema3(\n () => zodSchema3(\n z3.object({\n /**\n * Number of generation steps. Higher values can improve quality.\n */\n steps: z3.number().nullish(),\n /**\n * Guidance scale for image generation.\n */\n guidance: z3.number().nullish(),\n /**\n * Negative prompt to guide what to avoid.\n */\n negative_prompt: z3.string().nullish(),\n /**\n * Disable the safety checker for image generation.\n * When true, the API will not reject images flagged as potentially NSFW.\n * Not available for Flux Schnell Free and Flux Pro models.\n */\n disable_safety_checker: z3.boolean().nullish()\n }).passthrough()\n )\n);\n\n// src/version.ts\nvar VERSION = true ? \"2.0.67\" : \"0.0.0-test\";\n\n// src/togetherai-provider.ts\nfunction loadDeprecatedApiKey() {\n if (typeof process === \"undefined\") {\n return void 0;\n }\n if (typeof process.env.TOGETHER_API_KEY === \"string\") {\n return void 0;\n }\n const key = process.env.TOGETHER_AI_API_KEY;\n if (typeof key === \"string\") {\n console.warn(\n \"TOGETHER_AI_API_KEY is deprecated and will be removed in a future release. Please use TOGETHER_API_KEY instead.\"\n );\n }\n return key;\n}\nfunction createTogetherAI(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.together.xyz/v1/\"\n );\n const getHeaders = () => {\n var _a2;\n return withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: (_a2 = options.apiKey) != null ? _a2 : loadDeprecatedApiKey(),\n environmentVariableName: \"TOGETHER_API_KEY\",\n description: \"TogetherAI\"\n })}`,\n ...options.headers\n },\n `ai-sdk/togetherai/${VERSION}`\n );\n };\n const getCommonModelConfig = (modelType) => ({\n provider: `togetherai.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createChatModel = (modelId) => {\n return new OpenAICompatibleChatLanguageModel(\n modelId,\n getCommonModelConfig(\"chat\")\n );\n };\n const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(\n modelId,\n getCommonModelConfig(\"completion\")\n );\n const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(\n modelId,\n getCommonModelConfig(\"embedding\")\n );\n const createImageModel = (modelId) => new TogetherAIImageModel(modelId, {\n ...getCommonModelConfig(\"image\"),\n baseURL: baseURL != null ? baseURL : \"https://api.together.xyz/v1/\"\n });\n const createRerankingModel = (modelId) => new TogetherAIRerankingModel(modelId, {\n ...getCommonModelConfig(\"reranking\"),\n baseURL: baseURL != null ? baseURL : \"https://api.together.xyz/v1/\"\n });\n const provider = (modelId) => createChatModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.completionModel = createCompletionModel;\n provider.languageModel = createChatModel;\n provider.chatModel = createChatModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.reranking = createRerankingModel;\n provider.rerankingModel = createRerankingModel;\n return provider;\n}\nvar togetherai = createTogetherAI();\nexport {\n VERSION,\n createTogetherAI,\n togetherai\n};\n//# sourceMappingURL=index.mjs.map","// src/xai-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/xai-chat-language-model.ts\nimport {\n APICallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n extractResponseHeaders,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi,\n safeParseJSON\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\n\n// src/convert-to-xai-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64, parseProviderOptions } from \"@ai-sdk/provider-utils\";\n\n// src/xai-file-part-options.ts\nimport { z } from \"zod/v4\";\nvar xaiFilePartProviderOptions = z.object({\n /**\n * Controls the resolution at which the model processes the image.\n * `low` processes the image at reduced resolution and consumes fewer\n * input tokens, `high` processes the image at full resolution, and\n * `auto` lets the API decide. Defaults to full resolution when not set.\n *\n * Note: the xAI API silently ignores invalid values, so the value is\n * validated client-side.\n *\n * @see https://docs.x.ai/developers/model-capabilities/images/understanding\n */\n imageDetail: z.enum([\"low\", \"high\", \"auto\"]).optional()\n});\n\n// src/convert-to-xai-chat-messages.ts\nasync function convertToXaiChatMessages(prompt) {\n var _a;\n const messages = [];\n const warnings = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n if (content.length === 1 && content[0].type === \"text\") {\n messages.push({ role: \"user\", content: content[0].text });\n break;\n }\n const userContent = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n userContent.push({ type: \"text\", text: part.text });\n break;\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n const filePartOptions = await parseProviderOptions({\n provider: \"xai\",\n providerOptions: part.providerOptions,\n schema: xaiFilePartProviderOptions\n });\n userContent.push({\n type: \"image_url\",\n image_url: {\n url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${convertToBase64(part.data)}`,\n ...(filePartOptions == null ? void 0 : filePartOptions.imageDetail) != null && {\n detail: filePartOptions.imageDetail\n }\n }\n });\n } else {\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`\n });\n }\n break;\n }\n }\n }\n messages.push({ role: \"user\", content: userContent });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool call execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return { messages, warnings };\n}\n\n// src/convert-xai-chat-usage.ts\nfunction convertXaiChatUsage(usage) {\n var _a, _b, _c, _d;\n const cacheReadTokens = (_b = (_a = usage.prompt_tokens_details) == null ? void 0 : _a.cached_tokens) != null ? _b : 0;\n const reasoningTokens = (_d = (_c = usage.completion_tokens_details) == null ? void 0 : _c.reasoning_tokens) != null ? _d : 0;\n const promptTokensIncludesCached = cacheReadTokens <= usage.prompt_tokens;\n return {\n inputTokens: {\n total: promptTokensIncludesCached ? usage.prompt_tokens : usage.prompt_tokens + cacheReadTokens,\n noCache: promptTokensIncludesCached ? usage.prompt_tokens - cacheReadTokens : usage.prompt_tokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: usage.completion_tokens + reasoningTokens,\n text: usage.completion_tokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created,\n created_at\n}) {\n const unixTime = created != null ? created : created_at;\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: unixTime != null ? new Date(unixTime * 1e3) : void 0\n };\n}\n\n// src/map-xai-finish-reason.ts\nfunction mapXaiFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"tool_calls\":\n case \"function_call\":\n return \"tool-calls\";\n case \"content_filter\":\n return \"content-filter\";\n default:\n return \"other\";\n }\n}\n\n// src/xai-chat-options.ts\nimport { z as z2 } from \"zod/v4\";\nvar webSourceSchema = z2.object({\n type: z2.literal(\"web\"),\n country: z2.string().length(2).optional(),\n excludedWebsites: z2.array(z2.string()).max(5).optional(),\n allowedWebsites: z2.array(z2.string()).max(5).optional(),\n safeSearch: z2.boolean().optional()\n});\nvar xSourceSchema = z2.object({\n type: z2.literal(\"x\"),\n excludedXHandles: z2.array(z2.string()).optional(),\n includedXHandles: z2.array(z2.string()).optional(),\n postFavoriteCount: z2.number().int().optional(),\n postViewCount: z2.number().int().optional(),\n /**\n * @deprecated use `includedXHandles` instead\n */\n xHandles: z2.array(z2.string()).optional()\n});\nvar newsSourceSchema = z2.object({\n type: z2.literal(\"news\"),\n country: z2.string().length(2).optional(),\n excludedWebsites: z2.array(z2.string()).max(5).optional(),\n safeSearch: z2.boolean().optional()\n});\nvar rssSourceSchema = z2.object({\n type: z2.literal(\"rss\"),\n links: z2.array(z2.string().url()).max(1)\n // currently only supports one RSS link\n});\nvar searchSourceSchema = z2.discriminatedUnion(\"type\", [\n webSourceSchema,\n xSourceSchema,\n newsSourceSchema,\n rssSourceSchema\n]);\nvar xaiLanguageModelChatOptions = z2.object({\n reasoningEffort: z2.enum([\"none\", \"low\", \"medium\", \"high\"]).optional(),\n logprobs: z2.boolean().optional(),\n topLogprobs: z2.number().int().min(0).max(8).optional(),\n /**\n * Whether to enable parallel function calling during tool use.\n * When true, the model can call multiple functions in parallel.\n * When false, the model will call functions sequentially.\n * Defaults to true.\n */\n parallel_function_calling: z2.boolean().optional(),\n /**\n * @deprecated xAI has deprecated Live Search (`search_parameters`) in favor\n * of the Agent Tools API. Requests using this option now return a \"Live\n * search is deprecated\" error. Use the `web_search` / `x_search` tools\n * instead (e.g. `xai.tools.webSearch()`, `xai.tools.xSearch()`) with\n * `xai.responses(modelId)`.\n *\n * @see https://docs.x.ai/docs/guides/tools/overview\n */\n searchParameters: z2.object({\n /**\n * search mode preference\n * - \"off\": disables search completely\n * - \"auto\": model decides whether to search (default)\n * - \"on\": always enables search\n */\n mode: z2.enum([\"off\", \"auto\", \"on\"]),\n /**\n * whether to return citations in the response\n * defaults to true\n */\n returnCitations: z2.boolean().optional(),\n /**\n * start date for search data (ISO8601 format: YYYY-MM-DD)\n */\n fromDate: z2.string().optional(),\n /**\n * end date for search data (ISO8601 format: YYYY-MM-DD)\n */\n toDate: z2.string().optional(),\n /**\n * maximum number of search results to consider\n * defaults to 20\n */\n maxSearchResults: z2.number().min(1).max(50).optional(),\n /**\n * data sources to search from.\n * defaults to [{ type: 'web' }, { type: 'x' }] if not specified.\n *\n * @example\n * sources: [{ type: 'web', country: 'US' }, { type: 'x' }]\n */\n sources: z2.array(searchSourceSchema).optional()\n }).optional()\n});\n\n// src/xai-error.ts\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\nvar chatCompletionsErrorSchema = z3.object({\n error: z3.object({\n message: z3.string(),\n type: z3.string().nullish(),\n param: z3.any().nullish(),\n code: z3.union([z3.string(), z3.number()]).nullish()\n })\n});\nvar responsesErrorSchema = z3.object({\n code: z3.string(),\n error: z3.string()\n});\nvar xaiErrorDataSchema = z3.union([\n chatCompletionsErrorSchema,\n responsesErrorSchema\n]);\nvar xaiFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: xaiErrorDataSchema,\n errorToMessage: (data) => \"code\" in data ? `${data.code}: ${data.error}` : data.error.message\n});\n\n// src/xai-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\n\n// src/remove-additional-properties.ts\nfunction removeAdditionalPropertiesFalse(value) {\n if (Array.isArray(value)) {\n return value.map(removeAdditionalPropertiesFalse);\n }\n if (value == null || typeof value !== \"object\") {\n return value;\n }\n const result = {};\n for (const [key, propertyValue] of Object.entries(value)) {\n if (key === \"additionalProperties\" && propertyValue === false) {\n continue;\n }\n result[key] = removeAdditionalPropertiesFalse(propertyValue);\n }\n return result;\n}\n\n// src/xai-prepare-tools.ts\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const xaiTools2 = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.name}`\n });\n } else {\n xaiTools2.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: removeAdditionalPropertiesFalse(tool.inputSchema),\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: xaiTools2, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n return { tools: xaiTools2, toolChoice: type, toolWarnings };\n case \"required\":\n return { tools: xaiTools2, toolChoice: \"required\", toolWarnings };\n case \"tool\":\n return {\n tools: xaiTools2,\n toolChoice: {\n type: \"function\",\n function: { name: toolChoice.toolName }\n },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/xai-chat-language-model.ts\nvar XaiChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"image/*\": [/^https?:\\/\\/.*$/]\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n seed,\n responseFormat,\n providerOptions,\n tools,\n toolChoice\n }) {\n var _a, _b, _c;\n const warnings = [];\n const options = (_a = await parseProviderOptions2({\n provider: \"xai\",\n providerOptions,\n schema: xaiLanguageModelChatOptions\n })) != null ? _a : {};\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if (frequencyPenalty != null) {\n warnings.push({ type: \"unsupported\", feature: \"frequencyPenalty\" });\n }\n if (presencePenalty != null) {\n warnings.push({ type: \"unsupported\", feature: \"presencePenalty\" });\n }\n if (stopSequences != null) {\n warnings.push({ type: \"unsupported\", feature: \"stopSequences\" });\n }\n const { messages, warnings: messageWarnings } = await convertToXaiChatMessages(prompt);\n warnings.push(...messageWarnings);\n const {\n tools: xaiTools2,\n toolChoice: xaiToolChoice,\n toolWarnings\n } = prepareTools({\n tools,\n toolChoice\n });\n warnings.push(...toolWarnings);\n const baseArgs = {\n // model id\n model: this.modelId,\n // standard generation settings\n logprobs: options.logprobs === true || options.topLogprobs != null ? true : void 0,\n top_logprobs: options.topLogprobs,\n max_completion_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n seed,\n reasoning_effort: options.reasoningEffort,\n // parallel function calling\n parallel_function_calling: options.parallel_function_calling,\n // response format\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: {\n name: (_b = responseFormat.name) != null ? _b : \"response\",\n schema: responseFormat.schema,\n strict: true\n }\n } : { type: \"json_object\" } : void 0,\n // search parameters\n search_parameters: options.searchParameters ? {\n mode: options.searchParameters.mode,\n return_citations: options.searchParameters.returnCitations,\n from_date: options.searchParameters.fromDate,\n to_date: options.searchParameters.toDate,\n max_search_results: options.searchParameters.maxSearchResults,\n sources: (_c = options.searchParameters.sources) == null ? void 0 : _c.map((source) => {\n var _a2;\n return {\n type: source.type,\n ...source.type === \"web\" && {\n country: source.country,\n excluded_websites: source.excludedWebsites,\n allowed_websites: source.allowedWebsites,\n safe_search: source.safeSearch\n },\n ...source.type === \"x\" && {\n excluded_x_handles: source.excludedXHandles,\n included_x_handles: (_a2 = source.includedXHandles) != null ? _a2 : source.xHandles,\n post_favorite_count: source.postFavoriteCount,\n post_view_count: source.postViewCount\n },\n ...source.type === \"news\" && {\n country: source.country,\n excluded_websites: source.excludedWebsites,\n safe_search: source.safeSearch\n },\n ...source.type === \"rss\" && {\n links: source.links\n }\n };\n })\n } : void 0,\n // messages in xai format\n messages,\n // tools in xai format\n tools: xaiTools2,\n tool_choice: xaiToolChoice\n };\n return {\n args: baseArgs,\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b;\n const { args: body, warnings } = await this.getArgs(options);\n const url = `${(_a = this.config.baseURL) != null ? _a : \"https://api.x.ai/v1\"}/chat/completions`;\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n xaiChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n if (response.error != null) {\n throw new APICallError({\n message: response.error,\n url,\n requestBodyValues: body,\n statusCode: 200,\n responseHeaders,\n responseBody: JSON.stringify(rawResponse),\n isRetryable: response.code === \"The service is currently unavailable\"\n });\n }\n const choice = response.choices[0];\n const content = [];\n if (choice.message.content != null && choice.message.content.length > 0) {\n let text = choice.message.content;\n const lastMessage = body.messages[body.messages.length - 1];\n if ((lastMessage == null ? void 0 : lastMessage.role) === \"assistant\" && text === lastMessage.content) {\n text = \"\";\n }\n if (text.length > 0) {\n content.push({ type: \"text\", text });\n }\n }\n if (choice.message.reasoning_content != null && choice.message.reasoning_content.length > 0) {\n content.push({\n type: \"reasoning\",\n text: choice.message.reasoning_content\n });\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n if (response.citations != null) {\n for (const url2 of response.citations) {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: this.config.generateId(),\n url: url2\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapXaiFinishReason(choice.finish_reason),\n raw: (_b = choice.finish_reason) != null ? _b : void 0\n },\n usage: response.usage ? convertXaiChatUsage(response.usage) : {\n inputTokens: { total: 0, noCache: 0, cacheRead: 0, cacheWrite: 0 },\n outputTokens: { total: 0, text: 0, reasoning: 0 }\n },\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n var _a;\n const { args, warnings } = await this.getArgs(options);\n const body = {\n ...args,\n stream: true,\n stream_options: {\n include_usage: true\n }\n };\n const url = `${(_a = this.config.baseURL) != null ? _a : \"https://api.x.ai/v1\"}/chat/completions`;\n const { responseHeaders, value: response } = await postJsonToApi({\n url,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler: async ({ response: response2 }) => {\n const responseHeaders2 = extractResponseHeaders(response2);\n const contentType = response2.headers.get(\"content-type\");\n if (contentType == null ? void 0 : contentType.includes(\"application/json\")) {\n const responseBody = await response2.text();\n const parsedError = await safeParseJSON({\n text: responseBody,\n schema: xaiStreamErrorSchema\n });\n if (parsedError.success) {\n throw new APICallError({\n message: parsedError.value.error,\n url,\n requestBodyValues: body,\n statusCode: 200,\n responseHeaders: responseHeaders2,\n responseBody,\n isRetryable: parsedError.value.code === \"The service is currently unavailable\"\n });\n }\n throw new APICallError({\n message: \"Invalid JSON response\",\n url,\n requestBodyValues: body,\n statusCode: 200,\n responseHeaders: responseHeaders2,\n responseBody\n });\n }\n return createEventSourceResponseHandler(xaiChatChunkSchema)({\n response: response2,\n url,\n requestBodyValues: body\n });\n },\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n const contentBlocks = {};\n const lastReasoningDeltas = {};\n let activeReasoningBlockId = void 0;\n const self = this;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isFirstChunk) {\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n isFirstChunk = false;\n }\n if (value.citations != null) {\n for (const url2 of value.citations) {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: self.config.generateId(),\n url: url2\n });\n }\n }\n if (value.usage != null) {\n usage = convertXaiChatUsage(value.usage);\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = {\n unified: mapXaiFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n const choiceIndex = choice.index;\n if (delta.content != null && delta.content.length > 0) {\n const textContent = delta.content;\n if (activeReasoningBlockId != null && !contentBlocks[activeReasoningBlockId].ended) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningBlockId\n });\n contentBlocks[activeReasoningBlockId].ended = true;\n activeReasoningBlockId = void 0;\n }\n const lastMessage = body.messages[body.messages.length - 1];\n if ((lastMessage == null ? void 0 : lastMessage.role) === \"assistant\" && textContent === lastMessage.content) {\n return;\n }\n const blockId = `text-${value.id || choiceIndex}`;\n if (contentBlocks[blockId] == null) {\n contentBlocks[blockId] = { type: \"text\", ended: false };\n controller.enqueue({\n type: \"text-start\",\n id: blockId\n });\n }\n controller.enqueue({\n type: \"text-delta\",\n id: blockId,\n delta: textContent\n });\n }\n if (delta.reasoning_content != null && delta.reasoning_content.length > 0) {\n const blockId = `reasoning-${value.id || choiceIndex}`;\n if (lastReasoningDeltas[blockId] === delta.reasoning_content) {\n return;\n }\n lastReasoningDeltas[blockId] = delta.reasoning_content;\n if (contentBlocks[blockId] == null) {\n contentBlocks[blockId] = { type: \"reasoning\", ended: false };\n activeReasoningBlockId = blockId;\n controller.enqueue({\n type: \"reasoning-start\",\n id: blockId\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: blockId,\n delta: delta.reasoning_content\n });\n }\n if (delta.tool_calls != null) {\n if (activeReasoningBlockId != null && !contentBlocks[activeReasoningBlockId].ended) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningBlockId\n });\n contentBlocks[activeReasoningBlockId].ended = true;\n activeReasoningBlockId = void 0;\n }\n for (const toolCall of delta.tool_calls) {\n const toolCallId = toolCall.id;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName: toolCall.function.name\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCallId,\n delta: toolCall.function.arguments\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCallId\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n },\n flush(controller) {\n for (const [blockId, block] of Object.entries(contentBlocks)) {\n if (!block.ended) {\n controller.enqueue({\n type: block.type === \"text\" ? \"text-end\" : \"reasoning-end\",\n id: blockId\n });\n }\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: usage != null ? usage : {\n inputTokens: {\n total: 0,\n noCache: 0,\n cacheRead: 0,\n cacheWrite: 0\n },\n outputTokens: { total: 0, text: 0, reasoning: 0 }\n }\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nvar xaiUsageSchema = z4.object({\n prompt_tokens: z4.number(),\n completion_tokens: z4.number(),\n total_tokens: z4.number(),\n prompt_tokens_details: z4.object({\n text_tokens: z4.number().nullish(),\n audio_tokens: z4.number().nullish(),\n image_tokens: z4.number().nullish(),\n cached_tokens: z4.number().nullish()\n }).nullish(),\n completion_tokens_details: z4.object({\n reasoning_tokens: z4.number().nullish(),\n audio_tokens: z4.number().nullish(),\n accepted_prediction_tokens: z4.number().nullish(),\n rejected_prediction_tokens: z4.number().nullish()\n }).nullish()\n});\nvar xaiChatResponseSchema = z4.object({\n id: z4.string().nullish(),\n created: z4.number().nullish(),\n model: z4.string().nullish(),\n choices: z4.array(\n z4.object({\n message: z4.object({\n role: z4.literal(\"assistant\"),\n content: z4.string().nullish(),\n reasoning_content: z4.string().nullish(),\n tool_calls: z4.array(\n z4.object({\n id: z4.string(),\n type: z4.literal(\"function\"),\n function: z4.object({\n name: z4.string(),\n arguments: z4.string()\n })\n })\n ).nullish()\n }),\n index: z4.number(),\n finish_reason: z4.string().nullish()\n })\n ).nullish(),\n object: z4.literal(\"chat.completion\").nullish(),\n usage: xaiUsageSchema.nullish(),\n citations: z4.array(z4.string().url()).nullish(),\n code: z4.string().nullish(),\n error: z4.string().nullish()\n});\nvar xaiChatChunkSchema = z4.object({\n id: z4.string().nullish(),\n created: z4.number().nullish(),\n model: z4.string().nullish(),\n choices: z4.array(\n z4.object({\n delta: z4.object({\n role: z4.enum([\"assistant\"]).optional(),\n content: z4.string().nullish(),\n reasoning_content: z4.string().nullish(),\n tool_calls: z4.array(\n z4.object({\n id: z4.string(),\n type: z4.literal(\"function\"),\n function: z4.object({\n name: z4.string(),\n arguments: z4.string()\n })\n })\n ).nullish()\n }),\n finish_reason: z4.string().nullish(),\n index: z4.number()\n })\n ),\n usage: xaiUsageSchema.nullish(),\n citations: z4.array(z4.string().url()).nullish()\n});\nvar xaiStreamErrorSchema = z4.object({\n code: z4.string(),\n error: z4.string()\n});\n\n// src/xai-image-model.ts\nimport {\n combineHeaders as combineHeaders2,\n convertImageModelFileToDataUri,\n createBinaryResponseHandler,\n createJsonResponseHandler as createJsonResponseHandler2,\n createStatusCodeErrorResponseHandler,\n getFromApi,\n parseProviderOptions as parseProviderOptions3,\n postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\n\n// src/xai-image-options.ts\nimport { z as z5 } from \"zod/v4\";\nvar xaiImageModelOptions = z5.object({\n aspect_ratio: z5.string().optional(),\n output_format: z5.string().optional(),\n sync_mode: z5.boolean().optional(),\n resolution: z5.enum([\"1k\", \"2k\"]).optional(),\n quality: z5.enum([\"low\", \"medium\", \"high\"]).optional(),\n user: z5.string().optional()\n});\n\n// src/xai-image-model.ts\nvar XaiImageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxImagesPerCall = 3;\n }\n get provider() {\n return this.config.provider;\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 }) {\n var _a, _b, _c, _d, _e;\n const warnings = [];\n if (size != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"size\",\n details: \"This model does not support the `size` option. Use `aspectRatio` instead.\"\n });\n }\n if (seed != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"seed\"\n });\n }\n if (mask != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"mask\"\n });\n }\n const xaiOptions = await parseProviderOptions3({\n provider: \"xai\",\n providerOptions,\n schema: xaiImageModelOptions\n });\n const hasFiles = files != null && files.length > 0;\n const imageUrls = hasFiles ? files.map((file) => convertImageModelFileToDataUri(file)) : [];\n const endpoint = hasFiles ? \"/images/edits\" : \"/images/generations\";\n const body = {\n model: this.modelId,\n prompt,\n n,\n response_format: \"b64_json\"\n };\n if (aspectRatio != null) {\n body.aspect_ratio = aspectRatio;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.output_format) != null) {\n body.output_format = xaiOptions.output_format;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.sync_mode) != null) {\n body.sync_mode = xaiOptions.sync_mode;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.aspect_ratio) != null && aspectRatio == null) {\n body.aspect_ratio = xaiOptions.aspect_ratio;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.resolution) != null) {\n body.resolution = xaiOptions.resolution;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.quality) != null) {\n body.quality = xaiOptions.quality;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.user) != null) {\n body.user = xaiOptions.user;\n }\n if (imageUrls.length === 1) {\n body.image = { url: imageUrls[0], type: \"image_url\" };\n } else if (imageUrls.length > 1) {\n body.images = imageUrls.map((url) => ({ url, type: \"image_url\" }));\n }\n const baseURL = (_a = this.config.baseURL) != null ? _a : \"https://api.x.ai/v1\";\n const currentDate = (_d = (_c = (_b = this.config._internal) == null ? void 0 : _b.currentDate) == null ? void 0 : _c.call(_b)) != null ? _d : /* @__PURE__ */ new Date();\n const { value: response, responseHeaders } = await postJsonToApi2({\n url: `${baseURL}${endpoint}`,\n headers: combineHeaders2(this.config.headers(), headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n xaiImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n const hasAllBase64 = response.data.every((image) => image.b64_json != null);\n const images = hasAllBase64 ? response.data.map((image) => image.b64_json) : await Promise.all(\n response.data.map(\n (image) => this.downloadImage(image.url, abortSignal)\n )\n );\n return {\n images,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n },\n providerMetadata: {\n xai: {\n images: response.data.map((item) => ({\n ...item.revised_prompt ? { revisedPrompt: item.revised_prompt } : {}\n })),\n ...((_e = response.usage) == null ? void 0 : _e.cost_in_usd_ticks) != null ? { costInUsdTicks: response.usage.cost_in_usd_ticks } : {}\n }\n }\n };\n }\n async downloadImage(url, abortSignal) {\n const { value } = await getFromApi({\n url,\n abortSignal,\n failedResponseHandler: createStatusCodeErrorResponseHandler(),\n successfulResponseHandler: createBinaryResponseHandler(),\n fetch: this.config.fetch\n });\n return value;\n }\n};\nvar xaiImageResponseSchema = z6.object({\n data: z6.array(\n z6.object({\n url: z6.string().nullish(),\n b64_json: z6.string().nullish(),\n revised_prompt: z6.string().nullish()\n })\n ),\n usage: z6.object({\n cost_in_usd_ticks: z6.number().nullish()\n }).nullish()\n});\n\n// src/responses/xai-responses-language-model.ts\nimport {\n combineHeaders as combineHeaders3,\n createEventSourceResponseHandler as createEventSourceResponseHandler2,\n createJsonResponseHandler as createJsonResponseHandler3,\n parseProviderOptions as parseProviderOptions5,\n postJsonToApi as postJsonToApi3\n} from \"@ai-sdk/provider-utils\";\n\n// src/responses/convert-to-xai-responses-input.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError3\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 as convertToBase642, parseProviderOptions as parseProviderOptions4 } from \"@ai-sdk/provider-utils\";\nasync function convertToXaiResponsesInput({\n prompt\n}) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n const input = [];\n const inputWarnings = [];\n for (const message of prompt) {\n switch (message.role) {\n case \"system\": {\n input.push({\n role: \"system\",\n content: message.content\n });\n break;\n }\n case \"user\": {\n const contentParts = [];\n for (const block of message.content) {\n switch (block.type) {\n case \"text\": {\n contentParts.push({ type: \"input_text\", text: block.text });\n break;\n }\n case \"file\": {\n if (block.mediaType.startsWith(\"image/\")) {\n const mediaType = block.mediaType === \"image/*\" ? \"image/jpeg\" : block.mediaType;\n const imageUrl = block.data instanceof URL ? block.data.toString() : `data:${mediaType};base64,${convertToBase642(block.data)}`;\n const filePartOptions = await parseProviderOptions4({\n provider: \"xai\",\n providerOptions: block.providerOptions,\n schema: xaiFilePartProviderOptions\n });\n contentParts.push({\n type: \"input_image\",\n image_url: imageUrl,\n ...(filePartOptions == null ? void 0 : filePartOptions.imageDetail) != null && {\n detail: filePartOptions.imageDetail\n }\n });\n } else if (block.data instanceof URL) {\n contentParts.push({\n type: \"input_file\",\n file_url: block.data.toString()\n });\n } else {\n throw new UnsupportedFunctionalityError3({\n functionality: `file part media type ${block.mediaType} as inline data (xAI Responses requires a URL or a Files API reference for non-image files)`\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = block;\n inputWarnings.push({\n type: \"other\",\n message: \"xAI Responses API does not support this content type in user messages\"\n });\n }\n }\n }\n input.push({\n role: \"user\",\n content: contentParts\n });\n break;\n }\n case \"assistant\": {\n for (const part of message.content) {\n switch (part.type) {\n case \"text\": {\n const id = typeof ((_b = (_a = part.providerOptions) == null ? void 0 : _a.xai) == null ? void 0 : _b.itemId) === \"string\" ? part.providerOptions.xai.itemId : void 0;\n input.push({\n role: \"assistant\",\n content: part.text,\n id\n });\n break;\n }\n case \"tool-call\": {\n if (part.providerExecuted) {\n break;\n }\n const id = typeof ((_d = (_c = part.providerOptions) == null ? void 0 : _c.xai) == null ? void 0 : _d.itemId) === \"string\" ? part.providerOptions.xai.itemId : void 0;\n input.push({\n type: \"function_call\",\n id: id != null ? id : part.toolCallId,\n call_id: part.toolCallId,\n name: part.toolName,\n arguments: JSON.stringify(part.input),\n status: \"completed\"\n });\n break;\n }\n case \"tool-result\": {\n break;\n }\n case \"reasoning\": {\n const itemId = typeof ((_f = (_e = part.providerOptions) == null ? void 0 : _e.xai) == null ? void 0 : _f.itemId) === \"string\" ? part.providerOptions.xai.itemId : void 0;\n const encryptedContent = typeof ((_h = (_g = part.providerOptions) == null ? void 0 : _g.xai) == null ? void 0 : _h.reasoningEncryptedContent) === \"string\" ? part.providerOptions.xai.reasoningEncryptedContent : void 0;\n if (itemId != null || encryptedContent != null) {\n const summaryParts = [];\n if (part.text.length > 0) {\n summaryParts.push({\n type: \"summary_text\",\n text: part.text\n });\n }\n input.push({\n type: \"reasoning\",\n id: itemId != null ? itemId : \"\",\n summary: summaryParts,\n status: \"completed\",\n ...encryptedContent != null && {\n encrypted_content: encryptedContent\n }\n });\n } else {\n inputWarnings.push({\n type: \"other\",\n message: \"Reasoning parts without itemId or encrypted content cannot be sent back to xAI. Skipping.\"\n });\n }\n break;\n }\n case \"file\": {\n inputWarnings.push({\n type: \"other\",\n message: `xAI Responses API does not support ${part.type} in assistant messages`\n });\n break;\n }\n default: {\n const _exhaustiveCheck = part;\n inputWarnings.push({\n type: \"other\",\n message: \"xAI Responses API does not support this content type in assistant messages\"\n });\n }\n }\n }\n break;\n }\n case \"tool\": {\n for (const part of message.content) {\n if (part.type === \"tool-approval-response\") {\n continue;\n }\n const output = part.output;\n let outputValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n outputValue = output.value;\n break;\n case \"execution-denied\":\n outputValue = (_i = output.reason) != null ? _i : \"tool execution denied\";\n break;\n case \"json\":\n case \"error-json\":\n outputValue = JSON.stringify(output.value);\n break;\n case \"content\":\n outputValue = output.value.map((item) => {\n if (item.type === \"text\") {\n return item.text;\n }\n return \"\";\n }).join(\"\");\n break;\n default: {\n const _exhaustiveCheck = output;\n outputValue = \"\";\n }\n }\n input.push({\n type: \"function_call_output\",\n call_id: part.toolCallId,\n output: outputValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = message;\n inputWarnings.push({\n type: \"other\",\n message: \"unsupported message role\"\n });\n }\n }\n }\n return { input, inputWarnings };\n}\n\n// src/responses/convert-xai-responses-usage.ts\nfunction convertXaiResponsesUsage(usage) {\n var _a, _b, _c, _d;\n const cacheReadTokens = (_b = (_a = usage.input_tokens_details) == null ? void 0 : _a.cached_tokens) != null ? _b : 0;\n const reasoningTokens = (_d = (_c = usage.output_tokens_details) == null ? void 0 : _c.reasoning_tokens) != null ? _d : 0;\n const inputTokensIncludesCached = cacheReadTokens <= usage.input_tokens;\n return {\n inputTokens: {\n total: inputTokensIncludesCached ? usage.input_tokens : usage.input_tokens + cacheReadTokens,\n noCache: inputTokensIncludesCached ? usage.input_tokens - cacheReadTokens : usage.input_tokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: usage.output_tokens,\n text: usage.output_tokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/responses/map-xai-responses-finish-reason.ts\nfunction mapXaiResponsesFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n case \"completed\":\n return \"stop\";\n case \"length\":\n case \"max_output_tokens\":\n return \"length\";\n case \"tool_calls\":\n case \"function_call\":\n return \"tool-calls\";\n case \"content_filter\":\n return \"content-filter\";\n default:\n return \"other\";\n }\n}\n\n// src/responses/xai-responses-api.ts\nimport { z as z7 } from \"zod/v4\";\nvar annotationSchema = z7.union([\n z7.object({\n type: z7.literal(\"url_citation\"),\n url: z7.string(),\n title: z7.string().optional()\n }),\n z7.object({\n type: z7.string()\n })\n]);\nvar messageContentPartSchema = z7.object({\n type: z7.string(),\n text: z7.string().optional(),\n logprobs: z7.array(z7.any()).optional(),\n annotations: z7.array(annotationSchema).optional()\n});\nvar reasoningSummaryPartSchema = z7.object({\n type: z7.string(),\n text: z7.string()\n});\nvar toolCallSchema = z7.object({\n name: z7.string().optional(),\n arguments: z7.string().optional(),\n input: z7.string().optional(),\n call_id: z7.string().optional(),\n id: z7.string(),\n status: z7.string(),\n action: z7.any().optional()\n});\nvar mcpCallSchema = z7.object({\n name: z7.string().optional(),\n arguments: z7.string().optional(),\n output: z7.string().optional(),\n error: z7.string().optional(),\n id: z7.string(),\n status: z7.string(),\n server_label: z7.string().optional()\n});\nvar outputItemSchema = z7.discriminatedUnion(\"type\", [\n z7.object({\n type: z7.literal(\"web_search_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"x_search_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"code_interpreter_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"code_execution_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"view_image_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"view_x_video_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"file_search_call\"),\n id: z7.string(),\n status: z7.string(),\n queries: z7.array(z7.string()).optional(),\n results: z7.array(\n z7.object({\n file_id: z7.string(),\n filename: z7.string(),\n score: z7.number(),\n text: z7.string()\n })\n ).nullish()\n }),\n z7.object({\n type: z7.literal(\"custom_tool_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"mcp_call\"),\n ...mcpCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"message\"),\n role: z7.string(),\n content: z7.array(messageContentPartSchema),\n id: z7.string(),\n status: z7.string()\n }),\n z7.object({\n type: z7.literal(\"function_call\"),\n name: z7.string(),\n arguments: z7.string(),\n call_id: z7.string(),\n id: z7.string()\n }),\n z7.object({\n type: z7.literal(\"reasoning\"),\n id: z7.string(),\n summary: z7.array(reasoningSummaryPartSchema),\n content: z7.array(z7.object({ type: z7.string(), text: z7.string() })).nullish(),\n status: z7.string(),\n encrypted_content: z7.string().nullish()\n })\n]);\nvar xaiResponsesUsageSchema = z7.object({\n input_tokens: z7.number(),\n output_tokens: z7.number(),\n total_tokens: z7.number().optional(),\n input_tokens_details: z7.object({\n cached_tokens: z7.number().optional()\n }).optional(),\n output_tokens_details: z7.object({\n reasoning_tokens: z7.number().optional()\n }).optional(),\n num_sources_used: z7.number().optional(),\n num_server_side_tools_used: z7.number().optional()\n});\nvar xaiResponsesResponseSchema = z7.object({\n id: z7.string().nullish(),\n created_at: z7.number().nullish(),\n model: z7.string().nullish(),\n object: z7.literal(\"response\"),\n output: z7.array(outputItemSchema),\n usage: xaiResponsesUsageSchema.nullish(),\n status: z7.string()\n});\nvar xaiResponsesChunkSchema = z7.union([\n z7.object({\n type: z7.literal(\"response.created\"),\n response: xaiResponsesResponseSchema.partial({ usage: true, status: true })\n }),\n z7.object({\n type: z7.literal(\"response.in_progress\"),\n response: xaiResponsesResponseSchema.partial({ usage: true, status: true })\n }),\n z7.object({\n type: z7.literal(\"response.output_item.added\"),\n item: outputItemSchema,\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.output_item.done\"),\n item: outputItemSchema,\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.content_part.added\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n part: messageContentPartSchema\n }),\n z7.object({\n type: z7.literal(\"response.content_part.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n part: messageContentPartSchema\n }),\n z7.object({\n type: z7.literal(\"response.output_text.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n delta: z7.string(),\n logprobs: z7.array(z7.any()).optional()\n }),\n z7.object({\n type: z7.literal(\"response.output_text.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n text: z7.string(),\n logprobs: z7.array(z7.any()).optional(),\n annotations: z7.array(annotationSchema).optional()\n }),\n z7.object({\n type: z7.literal(\"response.output_text.annotation.added\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n annotation_index: z7.number(),\n annotation: annotationSchema\n }),\n z7.object({\n type: z7.literal(\"response.reasoning_summary_part.added\"),\n item_id: z7.string(),\n output_index: z7.number(),\n summary_index: z7.number(),\n part: reasoningSummaryPartSchema\n }),\n z7.object({\n type: z7.literal(\"response.reasoning_summary_part.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n summary_index: z7.number(),\n part: reasoningSummaryPartSchema\n }),\n z7.object({\n type: z7.literal(\"response.reasoning_summary_text.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n summary_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.reasoning_summary_text.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n summary_index: z7.number(),\n text: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.reasoning_text.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.reasoning_text.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n text: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.web_search_call.in_progress\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.web_search_call.searching\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.web_search_call.completed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.x_search_call.in_progress\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.x_search_call.searching\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.x_search_call.completed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.file_search_call.in_progress\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.file_search_call.searching\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.file_search_call.completed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_execution_call.in_progress\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_execution_call.executing\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_execution_call.completed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_interpreter_call.in_progress\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_interpreter_call.executing\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_interpreter_call.interpreting\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_interpreter_call.completed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n // Code interpreter code streaming events\n z7.object({\n type: z7.literal(\"response.code_interpreter_call_code.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.code_interpreter_call_code.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n code: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.custom_tool_call_input.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.custom_tool_call_input.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n input: z7.string()\n }),\n // Function call arguments streaming events (standard function tools)\n z7.object({\n type: z7.literal(\"response.function_call_arguments.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.function_call_arguments.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n arguments: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call.in_progress\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call.executing\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call.completed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call.failed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call_arguments.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call_arguments.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n arguments: z7.string().optional()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call_output.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call_output.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n output: z7.string().optional()\n }),\n z7.object({\n type: z7.literal(\"response.incomplete\"),\n response: z7.object({\n incomplete_details: z7.object({ reason: z7.string() }).nullish(),\n usage: xaiResponsesUsageSchema.nullish()\n })\n }),\n z7.object({\n type: z7.literal(\"response.failed\"),\n response: z7.object({\n error: z7.object({\n code: z7.string().nullish(),\n message: z7.string()\n }).nullish(),\n incomplete_details: z7.object({ reason: z7.string() }).nullish(),\n usage: xaiResponsesUsageSchema.nullish()\n })\n }),\n z7.object({\n type: z7.literal(\"error\"),\n code: z7.string().nullish(),\n message: z7.string(),\n param: z7.string().nullish()\n }),\n z7.object({\n type: z7.literal(\"response.done\"),\n response: xaiResponsesResponseSchema\n }),\n z7.object({\n type: z7.literal(\"response.completed\"),\n response: xaiResponsesResponseSchema\n })\n]);\n\n// src/responses/xai-responses-options.ts\nimport { z as z8 } from \"zod/v4\";\nvar xaiLanguageModelResponsesOptions = z8.object({\n /**\n * Constrains how hard a reasoning model thinks before responding.\n * Possible values are `none` (disables reasoning), `low` (uses fewer reasoning\n * tokens), `medium` and `high` (uses more reasoning tokens). Not all models\n * support reasoning effort; see xAI's docs for the values each model accepts.\n */\n reasoningEffort: z8.enum([\"none\", \"low\", \"medium\", \"high\"]).optional(),\n logprobs: z8.boolean().optional(),\n topLogprobs: z8.number().int().min(0).max(8).optional(),\n /**\n * Whether to store the input message(s) and model response for later retrieval.\n * Must be set to `false` for teams with Zero Data Retention (ZDR) enabled,\n * otherwise the API will return an error.\n * @default true\n */\n store: z8.boolean().optional(),\n /**\n * The ID of the previous response from the model.\n */\n previousResponseId: z8.string().optional(),\n /**\n * Specify additional output data to include in the model response.\n * Example values: 'file_search_call.results'.\n */\n include: z8.array(z8.enum([\"file_search_call.results\"])).nullish()\n});\n\n// src/responses/xai-responses-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError4\n} from \"@ai-sdk/provider\";\nimport { validateTypes } from \"@ai-sdk/provider-utils\";\n\n// src/tool/file-search.ts\nimport {\n createProviderToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z as z9 } from \"zod/v4\";\nvar fileSearchArgsSchema = lazySchema(\n () => zodSchema(\n z9.object({\n vectorStoreIds: z9.array(z9.string()),\n maxNumResults: z9.number().optional()\n })\n )\n);\nvar fileSearchOutputSchema = lazySchema(\n () => zodSchema(\n z9.object({\n queries: z9.array(z9.string()),\n results: z9.array(\n z9.object({\n fileId: z9.string(),\n filename: z9.string(),\n score: z9.number().min(0).max(1),\n text: z9.string()\n })\n ).nullable()\n })\n )\n);\nvar fileSearchToolFactory = createProviderToolFactoryWithOutputSchema({\n id: \"xai.file_search\",\n inputSchema: lazySchema(() => zodSchema(z9.object({}))),\n outputSchema: fileSearchOutputSchema\n});\nvar fileSearch = (args) => fileSearchToolFactory(args);\n\n// src/tool/mcp-server.ts\nimport {\n createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema2,\n lazySchema as lazySchema2,\n zodSchema as zodSchema2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z10 } from \"zod/v4\";\nvar mcpServerArgsSchema = lazySchema2(\n () => zodSchema2(\n z10.object({\n serverUrl: z10.string().describe(\"The URL of the MCP server\"),\n serverLabel: z10.string().optional().describe(\"A label for the MCP server\"),\n serverDescription: z10.string().optional().describe(\"Description of the MCP server\"),\n allowedTools: z10.array(z10.string()).optional().describe(\"List of allowed tool names\"),\n headers: z10.record(z10.string(), z10.string()).optional().describe(\"Custom headers to send\"),\n authorization: z10.string().optional().describe(\"Authorization header value\")\n })\n )\n);\nvar mcpServerOutputSchema = lazySchema2(\n () => zodSchema2(\n z10.object({\n name: z10.string(),\n arguments: z10.string(),\n result: z10.unknown()\n })\n )\n);\nvar mcpServerToolFactory = createProviderToolFactoryWithOutputSchema2({\n id: \"xai.mcp\",\n inputSchema: lazySchema2(() => zodSchema2(z10.object({}))),\n outputSchema: mcpServerOutputSchema\n});\nvar mcpServer = (args) => mcpServerToolFactory(args);\n\n// src/tool/web-search.ts\nimport {\n createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema3,\n lazySchema as lazySchema3,\n zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nimport { z as z11 } from \"zod/v4\";\nvar webSearchArgsSchema = lazySchema3(\n () => zodSchema3(\n z11.object({\n allowedDomains: z11.array(z11.string()).max(5).optional(),\n excludedDomains: z11.array(z11.string()).max(5).optional(),\n enableImageSearch: z11.boolean().optional(),\n enableImageUnderstanding: z11.boolean().optional()\n })\n )\n);\nvar webSearchOutputSchema = lazySchema3(\n () => zodSchema3(\n z11.object({\n query: z11.string(),\n sources: z11.array(\n z11.object({\n title: z11.string(),\n url: z11.string(),\n snippet: z11.string()\n })\n )\n })\n )\n);\nvar webSearchToolFactory = createProviderToolFactoryWithOutputSchema3({\n id: \"xai.web_search\",\n inputSchema: lazySchema3(() => zodSchema3(z11.object({}))),\n outputSchema: webSearchOutputSchema\n});\nvar webSearch = (args = {}) => webSearchToolFactory(args);\n\n// src/tool/x-search.ts\nimport {\n createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema4,\n lazySchema as lazySchema4,\n zodSchema as zodSchema4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z12 } from \"zod/v4\";\nvar xSearchArgsSchema = lazySchema4(\n () => zodSchema4(\n z12.object({\n allowedXHandles: z12.array(z12.string()).max(10).optional(),\n excludedXHandles: z12.array(z12.string()).max(10).optional(),\n fromDate: z12.string().optional(),\n toDate: z12.string().optional(),\n enableImageUnderstanding: z12.boolean().optional(),\n enableVideoUnderstanding: z12.boolean().optional()\n })\n )\n);\nvar xSearchOutputSchema = lazySchema4(\n () => zodSchema4(\n z12.object({\n query: z12.string(),\n posts: z12.array(\n z12.object({\n author: z12.string(),\n text: z12.string(),\n url: z12.string(),\n likes: z12.number()\n })\n )\n })\n )\n);\nvar xSearchToolFactory = createProviderToolFactoryWithOutputSchema4({\n id: \"xai.x_search\",\n inputSchema: lazySchema4(() => zodSchema4(z12.object({}))),\n outputSchema: xSearchOutputSchema\n});\nvar xSearch = (args = {}) => xSearchToolFactory(args);\n\n// src/responses/xai-responses-prepare-tools.ts\nasync function prepareResponsesTools({\n tools,\n toolChoice\n}) {\n const normalizedTools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (normalizedTools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const xaiTools2 = [];\n const toolByName = /* @__PURE__ */ new Map();\n for (const tool of normalizedTools) {\n toolByName.set(tool.name, tool);\n if (tool.type === \"provider\") {\n switch (tool.id) {\n case \"xai.web_search\": {\n const args = await validateTypes({\n value: tool.args,\n schema: webSearchArgsSchema\n });\n xaiTools2.push({\n type: \"web_search\",\n allowed_domains: args.allowedDomains,\n excluded_domains: args.excludedDomains,\n enable_image_search: args.enableImageSearch,\n enable_image_understanding: args.enableImageUnderstanding\n });\n break;\n }\n case \"xai.x_search\": {\n const args = await validateTypes({\n value: tool.args,\n schema: xSearchArgsSchema\n });\n xaiTools2.push({\n type: \"x_search\",\n allowed_x_handles: args.allowedXHandles,\n excluded_x_handles: args.excludedXHandles,\n from_date: args.fromDate,\n to_date: args.toDate,\n enable_image_understanding: args.enableImageUnderstanding,\n enable_video_understanding: args.enableVideoUnderstanding\n });\n break;\n }\n case \"xai.code_execution\": {\n xaiTools2.push({\n type: \"code_interpreter\"\n });\n break;\n }\n case \"xai.view_image\": {\n xaiTools2.push({\n type: \"view_image\"\n });\n break;\n }\n case \"xai.view_x_video\": {\n xaiTools2.push({\n type: \"view_x_video\"\n });\n break;\n }\n case \"xai.file_search\": {\n const args = await validateTypes({\n value: tool.args,\n schema: fileSearchArgsSchema\n });\n xaiTools2.push({\n type: \"file_search\",\n vector_store_ids: args.vectorStoreIds,\n max_num_results: args.maxNumResults\n });\n break;\n }\n case \"xai.mcp\": {\n const args = await validateTypes({\n value: tool.args,\n schema: mcpServerArgsSchema\n });\n xaiTools2.push({\n type: \"mcp\",\n server_url: args.serverUrl,\n server_label: args.serverLabel,\n server_description: args.serverDescription,\n allowed_tools: args.allowedTools,\n headers: args.headers,\n authorization: args.authorization\n });\n break;\n }\n default: {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.name}`\n });\n break;\n }\n }\n } else {\n xaiTools2.push({\n type: \"function\",\n name: tool.name,\n description: tool.description,\n parameters: removeAdditionalPropertiesFalse(tool.inputSchema),\n ...tool.strict != null ? { strict: tool.strict } : {}\n });\n }\n }\n if (toolChoice == null) {\n return { tools: xaiTools2, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n return { tools: xaiTools2, toolChoice: type, toolWarnings };\n case \"required\":\n return { tools: xaiTools2, toolChoice: \"required\", toolWarnings };\n case \"tool\": {\n const selectedTool = toolByName.get(toolChoice.toolName);\n if (selectedTool == null) {\n return {\n tools: xaiTools2,\n toolChoice: void 0,\n toolWarnings\n };\n }\n if (selectedTool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `toolChoice for server-side tool \"${selectedTool.name}\"`\n });\n return { tools: xaiTools2, toolChoice: void 0, toolWarnings };\n }\n return {\n tools: xaiTools2,\n toolChoice: { type: \"function\", name: selectedTool.name },\n toolWarnings\n };\n }\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError4({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/responses/xai-responses-language-model.ts\nvar XaiResponsesLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"image/*\": [/^https?:\\/\\/.*$/],\n // xAI's Responses API accepts non-image documents (PDF, plain text, CSV, etc.) as\n // `{ type: 'input_file', file_url }`. Keeping these URLs intact here lets them pass\n // through to the converter instead of being downloaded to bytes by the SDK.\n \"application/pdf\": [/^https?:\\/\\/.*$/],\n \"text/*\": [/^https?:\\/\\/.*$/]\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n stopSequences,\n seed,\n responseFormat,\n providerOptions,\n tools,\n toolChoice\n }) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const warnings = [];\n const options = (_a = await parseProviderOptions5({\n provider: \"xai\",\n providerOptions,\n schema: xaiLanguageModelResponsesOptions\n })) != null ? _a : {};\n if (stopSequences != null) {\n warnings.push({ type: \"unsupported\", feature: \"stopSequences\" });\n }\n const webSearchToolName = (_b = tools == null ? void 0 : tools.find(\n (tool) => tool.type === \"provider\" && tool.id === \"xai.web_search\"\n )) == null ? void 0 : _b.name;\n const xSearchToolName = (_c = tools == null ? void 0 : tools.find(\n (tool) => tool.type === \"provider\" && tool.id === \"xai.x_search\"\n )) == null ? void 0 : _c.name;\n const codeExecutionToolName = (_d = tools == null ? void 0 : tools.find(\n (tool) => tool.type === \"provider\" && tool.id === \"xai.code_execution\"\n )) == null ? void 0 : _d.name;\n const mcpToolName = (_e = tools == null ? void 0 : tools.find(\n (tool) => tool.type === \"provider\" && tool.id === \"xai.mcp\"\n )) == null ? void 0 : _e.name;\n const fileSearchToolName = (_f = tools == null ? void 0 : tools.find(\n (tool) => tool.type === \"provider\" && tool.id === \"xai.file_search\"\n )) == null ? void 0 : _f.name;\n const { input, inputWarnings } = await convertToXaiResponsesInput({\n prompt,\n store: (_g = options.store) != null ? _g : true\n });\n warnings.push(...inputWarnings);\n const {\n tools: xaiTools2,\n toolChoice: xaiToolChoice,\n toolWarnings\n } = await prepareResponsesTools({\n tools,\n toolChoice\n });\n warnings.push(...toolWarnings);\n let include = options.include ? [...options.include] : void 0;\n if (options.store === false) {\n if (include == null) {\n include = [\"reasoning.encrypted_content\"];\n } else {\n include = [...include, \"reasoning.encrypted_content\"];\n }\n }\n const baseArgs = {\n model: this.modelId,\n input,\n logprobs: options.logprobs === true || options.topLogprobs != null ? true : void 0,\n top_logprobs: options.topLogprobs,\n max_output_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n seed,\n ...(responseFormat == null ? void 0 : responseFormat.type) === \"json\" && {\n text: {\n format: responseFormat.schema != null ? {\n type: \"json_schema\",\n strict: true,\n name: (_h = responseFormat.name) != null ? _h : \"response\",\n description: responseFormat.description,\n schema: responseFormat.schema\n } : { type: \"json_object\" }\n }\n },\n ...options.reasoningEffort != null && {\n reasoning: { effort: options.reasoningEffort }\n },\n ...options.store === false && {\n store: options.store\n },\n ...include != null && {\n include\n },\n ...options.previousResponseId != null && {\n previous_response_id: options.previousResponseId\n }\n };\n if (xaiTools2 && xaiTools2.length > 0) {\n baseArgs.tools = xaiTools2;\n }\n if (xaiToolChoice != null) {\n baseArgs.tool_choice = xaiToolChoice;\n }\n return {\n args: baseArgs,\n warnings,\n webSearchToolName,\n xSearchToolName,\n codeExecutionToolName,\n mcpToolName,\n fileSearchToolName\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n const {\n args: body,\n warnings,\n webSearchToolName,\n xSearchToolName,\n codeExecutionToolName,\n mcpToolName,\n fileSearchToolName\n } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi3({\n url: `${(_a = this.config.baseURL) != null ? _a : \"https://api.x.ai/v1\"}/responses`,\n headers: combineHeaders3(this.config.headers(), options.headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler3(\n xaiResponsesResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const content = [];\n let hasFunctionCall = false;\n const webSearchSubTools = [\n \"web_search\",\n \"web_search_with_snippets\",\n \"browse_page\"\n ];\n const xSearchSubTools = [\n \"x_user_search\",\n \"x_keyword_search\",\n \"x_semantic_search\",\n \"x_thread_fetch\"\n ];\n for (const part of response.output) {\n if (part.type === \"file_search_call\") {\n const toolName = fileSearchToolName != null ? fileSearchToolName : \"file_search\";\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName,\n input: \"\",\n providerExecuted: true\n });\n content.push({\n type: \"tool-result\",\n toolCallId: part.id,\n toolName,\n result: {\n queries: (_b = part.queries) != null ? _b : [],\n results: (_d = (_c = part.results) == null ? void 0 : _c.map((result) => ({\n fileId: result.file_id,\n filename: result.filename,\n score: result.score,\n text: result.text\n }))) != null ? _d : null\n }\n });\n continue;\n }\n if (part.type === \"web_search_call\" || part.type === \"x_search_call\" || part.type === \"code_interpreter_call\" || part.type === \"code_execution_call\" || part.type === \"view_image_call\" || part.type === \"view_x_video_call\" || part.type === \"custom_tool_call\" || part.type === \"mcp_call\") {\n let toolName = (_e = part.name) != null ? _e : \"\";\n if (webSearchSubTools.includes((_f = part.name) != null ? _f : \"\") || part.type === \"web_search_call\") {\n toolName = webSearchToolName != null ? webSearchToolName : \"web_search\";\n } else if (xSearchSubTools.includes((_g = part.name) != null ? _g : \"\") || part.type === \"x_search_call\") {\n toolName = xSearchToolName != null ? xSearchToolName : \"x_search\";\n } else if (part.name === \"code_execution\" || part.type === \"code_interpreter_call\" || part.type === \"code_execution_call\") {\n toolName = codeExecutionToolName != null ? codeExecutionToolName : \"code_execution\";\n } else if (part.type === \"mcp_call\") {\n toolName = (_h = mcpToolName != null ? mcpToolName : part.name) != null ? _h : \"mcp\";\n }\n const toolInput = part.type === \"custom_tool_call\" ? (_i = part.input) != null ? _i : \"\" : part.type === \"mcp_call\" ? (_j = part.arguments) != null ? _j : \"\" : (_k = part.arguments) != null ? _k : \"\";\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName,\n input: toolInput,\n providerExecuted: true\n });\n continue;\n }\n switch (part.type) {\n case \"message\": {\n for (const contentPart of part.content) {\n if (contentPart.text) {\n content.push({\n type: \"text\",\n text: contentPart.text\n });\n }\n if (contentPart.annotations) {\n for (const annotation of contentPart.annotations) {\n if (annotation.type === \"url_citation\" && \"url\" in annotation) {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: this.config.generateId(),\n url: annotation.url,\n title: (_l = annotation.title) != null ? _l : annotation.url\n });\n }\n }\n }\n }\n break;\n }\n case \"function_call\": {\n hasFunctionCall = true;\n content.push({\n type: \"tool-call\",\n toolCallId: part.call_id,\n toolName: part.name,\n input: part.arguments\n });\n break;\n }\n case \"reasoning\": {\n const texts = part.summary.length > 0 ? part.summary.map((s) => s.text) : ((_m = part.content) != null ? _m : []).map((c) => c.text);\n const reasoningText = texts.filter((text) => text && text.length > 0).join(\"\");\n if (reasoningText || part.encrypted_content) {\n const hasMetadata = part.encrypted_content || part.id;\n content.push({\n type: \"reasoning\",\n text: reasoningText,\n ...hasMetadata && {\n providerMetadata: {\n xai: {\n ...part.encrypted_content && {\n reasoningEncryptedContent: part.encrypted_content\n },\n ...part.id && { itemId: part.id }\n }\n }\n }\n });\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n return {\n content,\n finishReason: {\n unified: hasFunctionCall ? \"tool-calls\" : mapXaiResponsesFinishReason(response.status),\n raw: (_n = response.status) != null ? _n : void 0\n },\n usage: response.usage ? convertXaiResponsesUsage(response.usage) : {\n inputTokens: { total: 0, noCache: 0, cacheRead: 0, cacheWrite: 0 },\n outputTokens: { total: 0, text: 0, reasoning: 0 }\n },\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n var _a;\n const {\n args,\n warnings,\n webSearchToolName,\n xSearchToolName,\n codeExecutionToolName,\n mcpToolName,\n fileSearchToolName\n } = await this.getArgs(options);\n const body = {\n ...args,\n stream: true\n };\n const { responseHeaders, value: response } = await postJsonToApi3({\n url: `${(_a = this.config.baseURL) != null ? _a : \"https://api.x.ai/v1\"}/responses`,\n headers: combineHeaders3(this.config.headers(), options.headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler2(\n xaiResponsesChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let hasFunctionCall = false;\n let usage = void 0;\n let isFirstChunk = true;\n const contentBlocks = {};\n const seenToolCalls = /* @__PURE__ */ new Set();\n const ongoingToolCalls = {};\n const activeReasoning = {};\n const self = this;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const event = chunk.value;\n if (event.type === \"response.created\" || event.type === \"response.in_progress\") {\n if (isFirstChunk) {\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(event.response)\n });\n isFirstChunk = false;\n }\n return;\n }\n if (event.type === \"response.reasoning_summary_part.added\") {\n const blockId = `reasoning-${event.item_id}`;\n if (activeReasoning[event.item_id] == null) {\n activeReasoning[event.item_id] = {};\n controller.enqueue({\n type: \"reasoning-start\",\n id: blockId,\n providerMetadata: {\n xai: {\n itemId: event.item_id\n }\n }\n });\n }\n }\n if (event.type === \"response.reasoning_summary_text.delta\") {\n const blockId = `reasoning-${event.item_id}`;\n controller.enqueue({\n type: \"reasoning-delta\",\n id: blockId,\n delta: event.delta,\n providerMetadata: {\n xai: {\n itemId: event.item_id\n }\n }\n });\n return;\n }\n if (event.type === \"response.reasoning_summary_text.done\") {\n return;\n }\n if (event.type === \"response.reasoning_text.delta\") {\n const blockId = `reasoning-${event.item_id}`;\n if (activeReasoning[event.item_id] == null) {\n activeReasoning[event.item_id] = {};\n controller.enqueue({\n type: \"reasoning-start\",\n id: blockId,\n providerMetadata: {\n xai: {\n itemId: event.item_id\n }\n }\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: blockId,\n delta: event.delta,\n providerMetadata: {\n xai: {\n itemId: event.item_id\n }\n }\n });\n return;\n }\n if (event.type === \"response.reasoning_text.done\") {\n return;\n }\n if (event.type === \"response.output_text.delta\") {\n const blockId = `text-${event.item_id}`;\n if (contentBlocks[blockId] == null) {\n contentBlocks[blockId] = { type: \"text\" };\n controller.enqueue({\n type: \"text-start\",\n id: blockId\n });\n }\n controller.enqueue({\n type: \"text-delta\",\n id: blockId,\n delta: event.delta\n });\n return;\n }\n if (event.type === \"response.output_text.done\") {\n if (event.annotations) {\n for (const annotation of event.annotations) {\n if (annotation.type === \"url_citation\" && \"url\" in annotation) {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: self.config.generateId(),\n url: annotation.url,\n title: (_a2 = annotation.title) != null ? _a2 : annotation.url\n });\n }\n }\n }\n return;\n }\n if (event.type === \"response.output_text.annotation.added\") {\n const annotation = event.annotation;\n if (annotation.type === \"url_citation\" && \"url\" in annotation) {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: self.config.generateId(),\n url: annotation.url,\n title: (_b = annotation.title) != null ? _b : annotation.url\n });\n }\n return;\n }\n if (event.type === \"response.done\" || event.type === \"response.completed\" || event.type === \"response.incomplete\") {\n const response2 = event.response;\n if (response2.usage) {\n usage = convertXaiResponsesUsage(response2.usage);\n }\n if (event.type === \"response.incomplete\") {\n const reason = \"incomplete_details\" in response2 ? (_c = response2.incomplete_details) == null ? void 0 : _c.reason : void 0;\n finishReason = {\n unified: reason ? mapXaiResponsesFinishReason(reason) : \"other\",\n raw: reason != null ? reason : \"incomplete\"\n };\n } else if (\"status\" in response2 && response2.status) {\n finishReason = {\n unified: hasFunctionCall ? \"tool-calls\" : mapXaiResponsesFinishReason(response2.status),\n raw: response2.status\n };\n }\n return;\n }\n if (event.type === \"response.failed\") {\n const reason = (_d = event.response.incomplete_details) == null ? void 0 : _d.reason;\n finishReason = {\n unified: reason ? mapXaiResponsesFinishReason(reason) : \"error\",\n raw: reason != null ? reason : \"error\"\n };\n if (event.response.usage) {\n usage = convertXaiResponsesUsage(event.response.usage);\n }\n return;\n }\n if (event.type === \"error\") {\n controller.enqueue({ type: \"error\", error: event });\n return;\n }\n if (event.type === \"response.custom_tool_call_input.delta\" || event.type === \"response.custom_tool_call_input.done\") {\n return;\n }\n if (event.type === \"response.function_call_arguments.delta\") {\n const toolCall = ongoingToolCalls[event.output_index];\n if (toolCall != null) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.toolCallId,\n delta: event.delta\n });\n }\n return;\n }\n if (event.type === \"response.function_call_arguments.done\") {\n return;\n }\n if (event.type === \"response.output_item.added\" || event.type === \"response.output_item.done\") {\n const part = event.item;\n if (part.type === \"reasoning\") {\n if (event.type === \"response.output_item.done\") {\n const blockId = `reasoning-${part.id}`;\n if (!(part.id in activeReasoning)) {\n activeReasoning[part.id] = {};\n controller.enqueue({\n type: \"reasoning-start\",\n id: blockId,\n providerMetadata: {\n xai: {\n ...part.id && { itemId: part.id }\n }\n }\n });\n }\n controller.enqueue({\n type: \"reasoning-end\",\n id: blockId,\n providerMetadata: {\n xai: {\n ...part.encrypted_content && {\n reasoningEncryptedContent: part.encrypted_content\n },\n ...part.id && { itemId: part.id }\n }\n }\n });\n delete activeReasoning[part.id];\n }\n return;\n }\n if (part.type === \"file_search_call\") {\n const toolName = fileSearchToolName != null ? fileSearchToolName : \"file_search\";\n if (!seenToolCalls.has(part.id)) {\n seenToolCalls.add(part.id);\n controller.enqueue({\n type: \"tool-input-start\",\n id: part.id,\n toolName\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: part.id,\n delta: \"\"\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: part.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName,\n input: \"\",\n providerExecuted: true\n });\n }\n if (event.type === \"response.output_item.done\") {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: part.id,\n toolName,\n result: {\n queries: (_e = part.queries) != null ? _e : [],\n results: (_g = (_f = part.results) == null ? void 0 : _f.map((result) => ({\n fileId: result.file_id,\n filename: result.filename,\n score: result.score,\n text: result.text\n }))) != null ? _g : null\n }\n });\n }\n return;\n }\n if (part.type === \"web_search_call\" || part.type === \"x_search_call\" || part.type === \"code_interpreter_call\" || part.type === \"code_execution_call\" || part.type === \"view_image_call\" || part.type === \"view_x_video_call\" || part.type === \"custom_tool_call\" || part.type === \"mcp_call\") {\n const webSearchSubTools = [\n \"web_search\",\n \"web_search_with_snippets\",\n \"browse_page\"\n ];\n const xSearchSubTools = [\n \"x_user_search\",\n \"x_keyword_search\",\n \"x_semantic_search\",\n \"x_thread_fetch\"\n ];\n let toolName = (_h = part.name) != null ? _h : \"\";\n if (webSearchSubTools.includes((_i = part.name) != null ? _i : \"\") || part.type === \"web_search_call\") {\n toolName = webSearchToolName != null ? webSearchToolName : \"web_search\";\n } else if (xSearchSubTools.includes((_j = part.name) != null ? _j : \"\") || part.type === \"x_search_call\") {\n toolName = xSearchToolName != null ? xSearchToolName : \"x_search\";\n } else if (part.name === \"code_execution\" || part.type === \"code_interpreter_call\" || part.type === \"code_execution_call\") {\n toolName = codeExecutionToolName != null ? codeExecutionToolName : \"code_execution\";\n } else if (part.type === \"mcp_call\") {\n toolName = (_k = mcpToolName != null ? mcpToolName : part.name) != null ? _k : \"mcp\";\n }\n const toolInput = part.type === \"custom_tool_call\" ? (_l = part.input) != null ? _l : \"\" : part.type === \"mcp_call\" ? (_m = part.arguments) != null ? _m : \"\" : (_n = part.arguments) != null ? _n : \"\";\n const shouldEmit = part.type === \"custom_tool_call\" ? event.type === \"response.output_item.done\" : !seenToolCalls.has(part.id);\n if (shouldEmit && !seenToolCalls.has(part.id)) {\n seenToolCalls.add(part.id);\n controller.enqueue({\n type: \"tool-input-start\",\n id: part.id,\n toolName\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: part.id,\n delta: toolInput\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: part.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName,\n input: toolInput,\n providerExecuted: true\n });\n }\n if (event.type === \"response.output_item.done\") {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: part.id,\n toolName,\n result: {}\n });\n }\n return;\n }\n if (part.type === \"message\") {\n for (const contentPart of part.content) {\n if (contentPart.text && contentPart.text.length > 0) {\n const blockId = `text-${part.id}`;\n if (contentBlocks[blockId] == null) {\n contentBlocks[blockId] = { type: \"text\" };\n controller.enqueue({\n type: \"text-start\",\n id: blockId\n });\n controller.enqueue({\n type: \"text-delta\",\n id: blockId,\n delta: contentPart.text\n });\n }\n }\n if (contentPart.annotations) {\n for (const annotation of contentPart.annotations) {\n if (annotation.type === \"url_citation\" && \"url\" in annotation) {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: self.config.generateId(),\n url: annotation.url,\n title: (_o = annotation.title) != null ? _o : annotation.url\n });\n }\n }\n }\n }\n } else if (part.type === \"function_call\") {\n if (event.type === \"response.output_item.added\") {\n ongoingToolCalls[event.output_index] = {\n toolName: part.name,\n toolCallId: part.call_id\n };\n controller.enqueue({\n type: \"tool-input-start\",\n id: part.call_id,\n toolName: part.name\n });\n } else if (event.type === \"response.output_item.done\") {\n hasFunctionCall = true;\n ongoingToolCalls[event.output_index] = void 0;\n controller.enqueue({\n type: \"tool-input-end\",\n id: part.call_id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: part.call_id,\n toolName: part.name,\n input: part.arguments\n });\n }\n }\n }\n },\n flush(controller) {\n for (const [blockId, block] of Object.entries(contentBlocks)) {\n if (block.type === \"text\") {\n controller.enqueue({\n type: \"text-end\",\n id: blockId\n });\n }\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: usage != null ? usage : {\n inputTokens: {\n total: 0,\n noCache: 0,\n cacheRead: 0,\n cacheWrite: 0\n },\n outputTokens: { total: 0, text: 0, reasoning: 0 }\n }\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\n\n// src/tool/code-execution.ts\nimport { createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema5 } from \"@ai-sdk/provider-utils\";\nimport { z as z13 } from \"zod/v4\";\nvar codeExecutionOutputSchema = z13.object({\n output: z13.string().describe(\"the output of the code execution\"),\n error: z13.string().optional().describe(\"any error that occurred\")\n});\nvar codeExecutionToolFactory = createProviderToolFactoryWithOutputSchema5({\n id: \"xai.code_execution\",\n inputSchema: z13.object({}).describe(\"no input parameters\"),\n outputSchema: codeExecutionOutputSchema\n});\nvar codeExecution = (args = {}) => codeExecutionToolFactory(args);\n\n// src/tool/view-image.ts\nimport { createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema6 } from \"@ai-sdk/provider-utils\";\nimport { z as z14 } from \"zod/v4\";\nvar viewImageOutputSchema = z14.object({\n description: z14.string().describe(\"description of the image\"),\n objects: z14.array(z14.string()).optional().describe(\"objects detected in the image\")\n});\nvar viewImageToolFactory = createProviderToolFactoryWithOutputSchema6({\n id: \"xai.view_image\",\n inputSchema: z14.object({}).describe(\"no input parameters\"),\n outputSchema: viewImageOutputSchema\n});\nvar viewImage = (args = {}) => viewImageToolFactory(args);\n\n// src/tool/view-x-video.ts\nimport { createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema7 } from \"@ai-sdk/provider-utils\";\nimport { z as z15 } from \"zod/v4\";\nvar viewXVideoOutputSchema = z15.object({\n transcript: z15.string().optional().describe(\"transcript of the video\"),\n description: z15.string().describe(\"description of the video content\"),\n duration: z15.number().optional().describe(\"duration in seconds\")\n});\nvar viewXVideoToolFactory = createProviderToolFactoryWithOutputSchema7({\n id: \"xai.view_x_video\",\n inputSchema: z15.object({}).describe(\"no input parameters\"),\n outputSchema: viewXVideoOutputSchema\n});\nvar viewXVideo = (args = {}) => viewXVideoToolFactory(args);\n\n// src/tool/index.ts\nvar xaiTools = {\n codeExecution,\n fileSearch,\n mcpServer,\n viewImage,\n viewXVideo,\n webSearch,\n xSearch\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.110\" : \"0.0.0-test\";\n\n// src/xai-video-model.ts\nimport {\n AISDKError\n} from \"@ai-sdk/provider\";\nimport {\n cancelResponseBody,\n combineHeaders as combineHeaders4,\n convertUint8ArrayToBase64,\n createJsonResponseHandler as createJsonResponseHandler4,\n delay,\n extractResponseHeaders as extractResponseHeaders2,\n getFromApi as getFromApi2,\n parseProviderOptions as parseProviderOptions6,\n postJsonToApi as postJsonToApi4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z17 } from \"zod/v4\";\n\n// src/xai-video-options.ts\nimport { lazySchema as lazySchema5, zodSchema as zodSchema5 } from \"@ai-sdk/provider-utils\";\nimport { z as z16 } from \"zod/v4\";\nvar nonEmptyStringSchema = z16.string().min(1);\nvar resolutionSchema = z16.enum([\"480p\", \"720p\"]);\nvar modeSchema = z16.enum([\"edit-video\", \"extend-video\", \"reference-to-video\"]);\nvar baseFields = {\n pollIntervalMs: z16.number().positive().nullish(),\n pollTimeoutMs: z16.number().positive().nullish(),\n resolution: resolutionSchema.nullish()\n};\nvar userField = {\n user: z16.string().optional()\n};\nvar editVideoSchema = z16.object({\n ...baseFields,\n ...userField,\n mode: z16.literal(\"edit-video\"),\n videoUrl: nonEmptyStringSchema,\n referenceImageUrls: z16.undefined().optional()\n});\nvar extendVideoSchema = z16.object({\n ...baseFields,\n mode: z16.literal(\"extend-video\"),\n videoUrl: nonEmptyStringSchema,\n referenceImageUrls: z16.undefined().optional()\n});\nvar referenceToVideoSchema = z16.object({\n ...baseFields,\n ...userField,\n mode: z16.literal(\"reference-to-video\"),\n referenceImageUrls: z16.array(nonEmptyStringSchema).min(1).max(7),\n videoUrl: z16.undefined().optional()\n});\nvar autoDetectSchema = z16.object({\n ...baseFields,\n ...userField,\n mode: z16.undefined().optional(),\n videoUrl: nonEmptyStringSchema.optional(),\n referenceImageUrls: z16.array(nonEmptyStringSchema).min(1).max(7).optional()\n});\nvar xaiVideoModelOptions = z16.union([\n editVideoSchema,\n extendVideoSchema,\n referenceToVideoSchema,\n autoDetectSchema\n]);\nvar runtimeSchema = z16.object({\n mode: modeSchema.optional(),\n videoUrl: nonEmptyStringSchema.optional(),\n referenceImageUrls: z16.array(nonEmptyStringSchema).min(1).max(7).optional(),\n user: z16.string().optional(),\n ...baseFields\n}).passthrough();\nvar xaiVideoModelOptionsSchema = lazySchema5(\n () => zodSchema5(runtimeSchema)\n);\n\n// src/xai-video-model.ts\nvar RESOLUTION_MAP = {\n \"1280x720\": \"720p\",\n \"854x480\": \"480p\",\n \"640x480\": \"480p\"\n};\nfunction getFirstFrameImage(options) {\n var _a, _b;\n return (_b = (_a = options.frameImages) == null ? void 0 : _a.find((frame) => frame.frameType === \"first_frame\")) == null ? void 0 : _b.image;\n}\nfunction getLastFrameImage(options) {\n var _a, _b;\n return (_b = (_a = options.frameImages) == null ? void 0 : _a.find((frame) => frame.frameType === \"last_frame\")) == null ? void 0 : _b.image;\n}\nfunction resolveStartImage(options) {\n var _a;\n return (_a = getFirstFrameImage(options)) != null ? _a : options.image;\n}\nfunction getTopLevelMediaType(mediaType) {\n const slashIndex = mediaType.indexOf(\"/\");\n return slashIndex === -1 ? mediaType : mediaType.substring(0, slashIndex);\n}\nvar isVideoFile = (file) => file.mediaType != null && getTopLevelMediaType(file.mediaType) === \"video\";\nfunction fileToXaiImageUrl(file) {\n if (file.type === \"url\") {\n return file.url;\n }\n const base64Data = typeof file.data === \"string\" ? file.data : convertUint8ArrayToBase64(file.data);\n return `data:${file.mediaType};base64,${base64Data}`;\n}\nfunction resolveReferenceImages(options, xaiOptions, warnings) {\n if (options.inputReferences != null && options.inputReferences.length > 0) {\n const imageReferences = options.inputReferences.filter((reference) => {\n if (isVideoFile(reference)) {\n warnings.push({\n type: \"unsupported\",\n feature: \"inputReferences\",\n details: 'xAI reference-to-video accepts image references only. The video reference was ignored. Use providerOptions.xai.mode \"extend-video\" to continue from a video.'\n });\n return false;\n }\n return true;\n });\n return imageReferences.map((reference) => ({\n url: fileToXaiImageUrl(reference)\n }));\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.referenceImageUrls) != null && xaiOptions.referenceImageUrls.length > 0) {\n return xaiOptions.referenceImageUrls.map((url) => ({ url }));\n }\n return void 0;\n}\nfunction resolveVideoMode(options, xaiOptions) {\n if ((xaiOptions == null ? void 0 : xaiOptions.mode) != null) {\n return xaiOptions.mode;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.videoUrl) != null) {\n return \"edit-video\";\n }\n const hasFrameImages = options.frameImages != null && options.frameImages.length > 0;\n const hasInputReferences = options.inputReferences != null && options.inputReferences.length > 0;\n const hasLegacyReferenceUrls = (xaiOptions == null ? void 0 : xaiOptions.referenceImageUrls) != null && xaiOptions.referenceImageUrls.length > 0;\n if (!hasFrameImages && (hasInputReferences || hasLegacyReferenceUrls)) {\n return \"reference-to-video\";\n }\n return void 0;\n}\nvar XaiVideoModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxVideosPerCall = 1;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const warnings = [];\n const xaiOptions = await parseProviderOptions6({\n provider: \"xai\",\n providerOptions: options.providerOptions,\n schema: xaiVideoModelOptionsSchema\n });\n const effectiveMode = resolveVideoMode(options, xaiOptions);\n const isEdit = effectiveMode === \"edit-video\";\n const isExtension = effectiveMode === \"extend-video\";\n const hasReferenceImages = effectiveMode === \"reference-to-video\";\n if (options.fps != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"fps\",\n details: \"xAI video models do not support custom FPS.\"\n });\n }\n if (options.seed != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"seed\",\n details: \"xAI video models do not support seed.\"\n });\n }\n if (options.n != null && options.n > 1) {\n warnings.push({\n type: \"unsupported\",\n feature: \"n\",\n details: \"xAI video models do not support generating multiple videos per call. Only 1 video will be generated.\"\n });\n }\n if (isEdit && options.duration != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"duration\",\n details: \"xAI video editing does not support custom duration.\"\n });\n }\n if (isEdit && options.aspectRatio != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"aspectRatio\",\n details: \"xAI video editing does not support custom aspect ratio.\"\n });\n }\n if (isEdit && ((xaiOptions == null ? void 0 : xaiOptions.resolution) != null || options.resolution != null)) {\n warnings.push({\n type: \"unsupported\",\n feature: \"resolution\",\n details: \"xAI video editing does not support custom resolution.\"\n });\n }\n if (isExtension && options.aspectRatio != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"aspectRatio\",\n details: \"xAI video extension does not support custom aspect ratio.\"\n });\n }\n if (isExtension && ((xaiOptions == null ? void 0 : xaiOptions.resolution) != null || options.resolution != null)) {\n warnings.push({\n type: \"unsupported\",\n feature: \"resolution\",\n details: \"xAI video extension does not support custom resolution.\"\n });\n }\n const body = {\n model: this.modelId,\n prompt: options.prompt\n };\n const allowDuration = !isEdit;\n const allowAspectRatio = !isEdit && !isExtension;\n const allowResolution = !isEdit && !isExtension;\n if (allowDuration && options.duration != null) {\n body.duration = options.duration;\n }\n if (allowAspectRatio && options.aspectRatio != null) {\n body.aspect_ratio = options.aspectRatio;\n }\n if (allowResolution && (xaiOptions == null ? void 0 : xaiOptions.resolution) != null) {\n body.resolution = xaiOptions.resolution;\n } else if (allowResolution && options.resolution != null) {\n const mapped = RESOLUTION_MAP[options.resolution];\n if (mapped != null) {\n body.resolution = mapped;\n } else {\n warnings.push({\n type: \"unsupported\",\n feature: \"resolution\",\n details: `Unrecognized resolution \"${options.resolution}\". Use providerOptions.xai.resolution with \"480p\" or \"720p\" instead.`\n });\n }\n }\n if (isEdit) {\n body.video = { url: xaiOptions.videoUrl };\n }\n if (isExtension) {\n body.video = { url: xaiOptions.videoUrl };\n }\n const startImage = resolveStartImage(options);\n if (startImage != null) {\n if (isVideoFile(startImage)) {\n const fromFrameImages = getFirstFrameImage(options) != null;\n warnings.push({\n type: \"unsupported\",\n feature: fromFrameImages ? \"frameImages\" : \"image\",\n details: 'xAI does not accept a video as a start/frame image. The video was ignored. Use providerOptions.xai.mode \"extend-video\" to continue from a video instead.'\n });\n } else {\n body.image = { url: fileToXaiImageUrl(startImage) };\n }\n }\n const lastFrameImage = getLastFrameImage(options);\n if (lastFrameImage != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"frameImages\",\n details: isVideoFile(lastFrameImage) ? 'xAI does not accept a video as a start/frame image. The video last frame was ignored. Use providerOptions.xai.mode \"extend-video\" to continue from a video instead.' : `xAI video models do not support last_frame. Use providerOptions.xai.mode \"extend-video\" to continue from a video's last frame. The last frame image was ignored.`\n });\n }\n if (hasReferenceImages) {\n const referenceImages = resolveReferenceImages(\n options,\n xaiOptions,\n warnings\n );\n if (referenceImages != null) {\n body.reference_images = referenceImages;\n }\n }\n if (options.inputReferences != null && options.inputReferences.length > 0 && !hasReferenceImages) {\n warnings.push({\n type: \"unsupported\",\n feature: \"inputReferences\",\n details: \"xAI only supports inputReferences for reference-to-video generation. The reference images were ignored.\"\n });\n }\n if (!isExtension && (xaiOptions == null ? void 0 : xaiOptions.user) !== void 0) {\n body.user = xaiOptions.user;\n }\n if (xaiOptions != null) {\n for (const [key, value] of Object.entries(xaiOptions)) {\n if (![\n \"mode\",\n \"pollIntervalMs\",\n \"pollTimeoutMs\",\n \"resolution\",\n \"videoUrl\",\n \"referenceImageUrls\",\n \"user\"\n ].includes(key)) {\n body[key] = value;\n }\n }\n }\n const baseURL = (_d = this.config.baseURL) != null ? _d : \"https://api.x.ai/v1\";\n let endpoint;\n if (isEdit) {\n endpoint = `${baseURL}/videos/edits`;\n } else if (isExtension) {\n endpoint = `${baseURL}/videos/extensions`;\n } else {\n endpoint = `${baseURL}/videos/generations`;\n }\n const { value: createResponse } = await postJsonToApi4({\n url: endpoint,\n headers: combineHeaders4(this.config.headers(), options.headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler4(\n xaiCreateVideoResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const requestId = createResponse.request_id;\n if (!requestId) {\n throw new AISDKError({\n name: \"XAI_VIDEO_GENERATION_ERROR\",\n message: `No request_id returned from xAI API. Response: ${JSON.stringify(createResponse)}`\n });\n }\n const pollIntervalMs = (_e = xaiOptions == null ? void 0 : xaiOptions.pollIntervalMs) != null ? _e : 5e3;\n const pollTimeoutMs = (_f = xaiOptions == null ? void 0 : xaiOptions.pollTimeoutMs) != null ? _f : 6e5;\n const startTime = Date.now();\n let responseHeaders;\n while (true) {\n await delay(pollIntervalMs, { abortSignal: options.abortSignal });\n if (Date.now() - startTime > pollTimeoutMs) {\n throw new AISDKError({\n name: \"XAI_VIDEO_GENERATION_TIMEOUT\",\n message: `Video generation timed out after ${pollTimeoutMs}ms`\n });\n }\n const { value: statusResponse, responseHeaders: pollHeaders } = await getFromApi2({\n url: `${baseURL}/videos/${requestId}`,\n headers: combineHeaders4(this.config.headers(), options.headers),\n successfulResponseHandler: xaiVideoStatusResponseHandler,\n failedResponseHandler: xaiFailedResponseHandler,\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n responseHeaders = pollHeaders;\n if (statusResponse.status === \"done\" || statusResponse.status == null && ((_g = statusResponse.video) == null ? void 0 : _g.url)) {\n if (((_h = statusResponse.video) == null ? void 0 : _h.respect_moderation) === false) {\n throw new AISDKError({\n name: \"XAI_VIDEO_MODERATION_ERROR\",\n message: \"Video generation was blocked due to a content policy violation.\"\n });\n }\n if (!((_i = statusResponse.video) == null ? void 0 : _i.url)) {\n throw new AISDKError({\n name: \"XAI_VIDEO_GENERATION_ERROR\",\n message: \"Video generation completed but no video URL was returned.\"\n });\n }\n return {\n videos: [\n {\n type: \"url\",\n url: statusResponse.video.url,\n mediaType: \"video/mp4\"\n }\n ],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n },\n providerMetadata: {\n xai: {\n requestId,\n videoUrl: statusResponse.video.url,\n ...statusResponse.video.duration != null ? { duration: statusResponse.video.duration } : {},\n ...((_j = statusResponse.usage) == null ? void 0 : _j.cost_in_usd_ticks) != null ? { costInUsdTicks: statusResponse.usage.cost_in_usd_ticks } : {},\n ...statusResponse.progress != null ? { progress: statusResponse.progress } : {}\n }\n }\n };\n }\n if (statusResponse.status === \"expired\") {\n throw new AISDKError({\n name: \"XAI_VIDEO_GENERATION_EXPIRED\",\n message: \"Video generation request expired.\"\n });\n }\n if (statusResponse.status === \"failed\") {\n throw new AISDKError({\n name: \"XAI_VIDEO_GENERATION_FAILED\",\n message: \"Video generation failed.\"\n });\n }\n }\n }\n};\nvar xaiCreateVideoResponseSchema = z17.object({\n request_id: z17.string().nullish()\n});\nvar xaiVideoStatusResponseSchema = z17.object({\n status: z17.string().nullish(),\n video: z17.object({\n url: z17.string(),\n duration: z17.number().nullish(),\n respect_moderation: z17.boolean().nullish()\n }).nullish(),\n model: z17.string().nullish(),\n usage: z17.object({\n cost_in_usd_ticks: z17.number().nullish()\n }).nullish(),\n progress: z17.number().nullish(),\n error: z17.object({\n code: z17.string().nullish(),\n message: z17.string().nullish()\n }).nullish()\n});\nvar xaiVideoStatusJsonResponseHandler = createJsonResponseHandler4(\n xaiVideoStatusResponseSchema\n);\nvar xaiVideoStatusResponseHandler = async (options) => {\n if (options.response.status === 202) {\n const responseHeaders = extractResponseHeaders2(options.response);\n await cancelResponseBody(options.response);\n return {\n responseHeaders,\n value: { status: \"pending\" }\n };\n }\n return xaiVideoStatusJsonResponseHandler(options);\n};\n\n// src/xai-provider.ts\nfunction createXai(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.x.ai/v1\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"XAI_API_KEY\",\n description: \"xAI API key\"\n })}`,\n ...options.headers\n },\n `ai-sdk/xai/${VERSION}`\n );\n const createChatLanguageModel = (modelId) => {\n return new XaiChatLanguageModel(modelId, {\n provider: \"xai.chat\",\n baseURL,\n headers: getHeaders,\n generateId,\n fetch: options.fetch\n });\n };\n const createResponsesLanguageModel = (modelId) => {\n return new XaiResponsesLanguageModel(modelId, {\n provider: \"xai.responses\",\n baseURL,\n headers: getHeaders,\n generateId,\n fetch: options.fetch\n });\n };\n const createImageModel = (modelId) => {\n return new XaiImageModel(modelId, {\n provider: \"xai.image\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n };\n const createVideoModel = (modelId) => {\n return new XaiVideoModel(modelId, {\n provider: \"xai.video\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n };\n const provider = (modelId) => createChatLanguageModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createChatLanguageModel;\n provider.chat = createChatLanguageModel;\n provider.responses = createResponsesLanguageModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = createImageModel;\n provider.image = createImageModel;\n provider.videoModel = createVideoModel;\n provider.video = createVideoModel;\n provider.tools = xaiTools;\n return provider;\n}\nvar xai = createXai();\nexport {\n VERSION,\n codeExecution,\n createXai,\n mcpServer,\n viewImage,\n viewXVideo,\n webSearch,\n xSearch,\n xai,\n xaiTools\n};\n//# sourceMappingURL=index.mjs.map","export type ResolvedModelConfig = {\n url: string | false;\n headers: Record<string, string>;\n resolvedModelId: string;\n fullModelId: string;\n};\n\nexport function parseModelRouterId(routerId: string, gatewayPrefix?: string): { providerId: string; modelId: string } {\n if (gatewayPrefix && !routerId.startsWith(`${gatewayPrefix}/`)) {\n throw new Error(`Expected ${gatewayPrefix}/ in model router ID ${routerId}`);\n }\n\n const idParts = routerId.split('/');\n\n // Azure OpenAI uses 2-part format (azure-openai/deployment), others use 3-part (gateway/provider/model)\n if (gatewayPrefix === 'azure-openai') {\n if (idParts.length < 2) {\n throw new Error(`Expected format azure-openai/deployment-name, but got ${routerId}`);\n }\n return {\n providerId: 'azure-openai',\n modelId: idParts.slice(1).join('/'), // Deployment name\n };\n }\n\n // Provider-equals-gateway: a gateway whose provider id is the same as its\n // gateway id (e.g. amazon-bedrock) uses a 2-part router id (gateway/model),\n // because there is no separate provider segment to namespace. Catalog ids\n // for such gateways are always two parts (model ids contain no slashes).\n if (gatewayPrefix && idParts.length === 2 && idParts[0] === gatewayPrefix) {\n const modelId = idParts[1];\n if (!modelId) {\n throw new Error(`Expected format ${gatewayPrefix}/model, but got ${routerId}`);\n }\n return {\n providerId: gatewayPrefix,\n modelId,\n };\n }\n\n // Standard 3-part format for other prefixed gateways (Netlify, etc.)\n if (gatewayPrefix && idParts.length < 3) {\n throw new Error(\n `Expected atleast 3 id parts ${gatewayPrefix}/provider/model, but only saw ${idParts.length} in ${routerId}`,\n );\n }\n\n const providerId = idParts.at(gatewayPrefix ? 1 : 0);\n const modelId = idParts.slice(gatewayPrefix ? 2 : 1).join(`/`);\n\n if (!routerId.includes(`/`) || !providerId || !modelId) {\n throw new Error(\n `Attempted to parse provider/model from ${routerId} but this ID doesn't appear to contain a provider`,\n );\n }\n\n return {\n providerId,\n modelId,\n };\n}\n","import { createAlibaba } from '@ai-sdk/alibaba-v6';\nimport { createAnthropic } from '@ai-sdk/anthropic-v6';\nimport { createCerebras } from '@ai-sdk/cerebras-v6';\nimport { createDeepInfra } from '@ai-sdk/deepinfra-v6';\nimport { createDeepSeek } from '@ai-sdk/deepseek-v6';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v6';\nimport { createGroq } from '@ai-sdk/groq-v6';\nimport { createMistral } from '@ai-sdk/mistral-v6';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v6';\nimport { createOpenAI } from '@ai-sdk/openai-v6';\nimport { createPerplexity } from '@ai-sdk/perplexity-v6';\nimport { createTogetherAI } from '@ai-sdk/togetherai-v6';\nimport { createXai } from '@ai-sdk/xai-v6';\nimport { createGateway } from '@internal/ai-v6';\nimport { createOpenRouter } from '@openrouter/ai-sdk-provider-v6';\nimport { parseModelRouterId } from '../gateway-resolver.js';\nimport { MastraModelGateway } from './base.js';\nimport type {\n AttachmentCapabilities,\n GatewayLanguageModel,\n ModelProviderOverride,\n ProviderConfig,\n StructuredOutputCapabilities,\n TemperatureCapabilities,\n} from './base.js';\nimport { EXCLUDED_PROVIDERS, MASTRA_USER_AGENT, PROVIDERS_WITH_INSTALLED_PACKAGES } from './constants.js';\n\ninterface ModelsDevModelInfo {\n id: string;\n name?: string;\n status?: string;\n modalities?: { input?: string[]; output?: string[] };\n attachment?: boolean;\n temperature?: boolean;\n structured_output?: boolean;\n // Per-model endpoint/shape/SDK override (models.dev model `provider` block).\n provider?: { api?: string; shape?: 'responses' | 'completions'; npm?: string };\n [key: string]: unknown;\n}\n\ninterface ModelsDevProviderInfo {\n id: string;\n name: string;\n models: Record<string, ModelsDevModelInfo>;\n env?: string[]; // Array of env var names\n api?: string; // Base API URL\n npm?: string; // NPM package name\n doc?: string; // Documentation URL\n}\n\ninterface ModelsDevResponse {\n [providerId: string]: ModelsDevProviderInfo;\n}\n\nfunction selectApiKeyEnvVar({ envVars, providerId }: { envVars?: string[]; providerId: string }): string {\n const fallbackEnvVar = `${providerId.toUpperCase().replace(/-/g, '_')}_API_KEY`;\n if (!envVars?.length) return fallbackEnvVar;\n\n const suffixPreferences = ['_API_TOKEN', '_API_KEY', '_TOKEN', '_KEY', '_PAT'];\n\n for (const suffix of suffixPreferences) {\n const preferredEnvVar = envVars.find(envVar => envVar.endsWith(suffix));\n if (preferredEnvVar) return preferredEnvVar;\n }\n\n return envVars[0] || fallbackEnvVar;\n}\n\nfunction interpolateUrlTemplate(url: string, envVars?: typeof process.env): string {\n return url.replace(/\\$\\{([^}]+)\\}/g, (_match, envVarName: string) => {\n const key = envVarName.trim();\n const value = envVars?.[key] ?? process.env[key];\n\n if (value === undefined || value === null) {\n throw new Error(`Missing environment variable ${envVarName} required to build provider URL`);\n }\n\n return value;\n });\n}\n\nfunction resolveApiKeyFromEnv(apiKeyEnvVar: ProviderConfig['apiKeyEnvVar']): string | undefined {\n const envVars = Array.isArray(apiKeyEnvVar) ? apiKeyEnvVar : [apiKeyEnvVar];\n\n for (const envVar of envVars) {\n const apiKey = process.env[envVar];\n if (apiKey) return apiKey;\n }\n}\n\n// Provider-specific overrides for URL, npm package, and other config.\n// These take priority over what models.dev returns (e.g. correct base URLs, SDK packages).\n// This constant is ONLY used during generation in fetchProviders() to determine\n// which providers from models.dev should be included in the registry.\n// At runtime, buildUrl() and buildHeaders() use the pre-generated PROVIDER_REGISTRY instead.\nconst PROVIDER_OVERRIDES: Record<string, Partial<ProviderConfig>> = {\n google: {\n apiKeyEnvVar: ['GOOGLE_API_KEY', 'GOOGLE_GENERATIVE_AI_API_KEY'],\n },\n mistral: {\n url: 'https://api.mistral.ai/v1',\n },\n groq: {\n url: 'https://api.groq.com/openai/v1',\n },\n // moonshotai uses Anthropic-compatible API, not OpenAI-compatible\n moonshotai: {\n url: 'https://api.moonshot.ai/anthropic/v1',\n npm: '@ai-sdk/anthropic',\n },\n // moonshotai-cn (China version) also uses Anthropic-compatible API\n 'moonshotai-cn': {\n url: 'https://api.moonshot.cn/anthropic/v1',\n npm: '@ai-sdk/anthropic',\n },\n};\n\nexport class ModelsDevGateway extends MastraModelGateway {\n readonly id = 'models.dev';\n readonly name = 'models.dev';\n\n private providerConfigs: Record<string, ProviderConfig> = {};\n private attachmentCapabilities: AttachmentCapabilities = {};\n private temperatureCapabilities: TemperatureCapabilities = {};\n private structuredOutputCapabilities: StructuredOutputCapabilities = {};\n\n constructor(providerConfigs?: Record<string, ProviderConfig>) {\n super();\n if (providerConfigs) this.providerConfigs = providerConfigs;\n }\n\n async fetchProviders(): Promise<Record<string, ProviderConfig>> {\n const response = await fetch('https://models.dev/api.json');\n if (!response.ok) {\n throw new Error(`Failed to fetch from models.dev: ${response.statusText}`);\n }\n\n const data = (await response.json()) as ModelsDevResponse;\n\n // Reset capability maps so removed providers/models are not retained across syncs\n this.attachmentCapabilities = {};\n this.temperatureCapabilities = {};\n this.structuredOutputCapabilities = {};\n\n const providerConfigs: Record<string, ProviderConfig> = {};\n\n for (const [providerId, providerInfo] of Object.entries(data)) {\n // Skip excluded providers\n if (EXCLUDED_PROVIDERS.includes(providerId)) continue;\n // Skip non-provider entries (if any)\n if (!providerInfo || typeof providerInfo !== 'object' || !providerInfo.models) continue;\n\n // Use provider ID as-is (keep hyphens for consistency)\n const normalizedId = providerId;\n\n // Check if this is OpenAI-compatible based on npm package or overrides\n const isOpenAICompatible =\n providerInfo.npm === '@ai-sdk/openai-compatible' ||\n providerInfo.npm === '@ai-sdk/gateway' || // Vercel AI Gateway is OpenAI-compatible\n normalizedId in PROVIDER_OVERRIDES;\n\n // these have their ai sdk provider package installed and don't use openai-compat\n const hasInstalledPackage = PROVIDERS_WITH_INSTALLED_PACKAGES.includes(providerId);\n\n // Also include providers that have an API URL and env vars (likely OpenAI-compatible)\n const hasApiAndEnv = providerInfo.api && providerInfo.env && providerInfo.env.length > 0;\n\n if (isOpenAICompatible || hasInstalledPackage || hasApiAndEnv) {\n // Get model IDs from the models object.\n //\n // Deprecated models are retained rather than dropped. On models.dev,\n // `status: 'deprecated'` means \"still served, scheduled for retirement\" —\n // not \"removed\". Filtering them out here would break existing users: the\n // generated model-id union would stop type-checking their configured model,\n // and the model would silently lose its capability flags and per-model\n // endpoint/shape overrides (i.e. it would route with provider defaults).\n // They are reported separately via `deprecatedModels` so surfaces that\n // offer models for *new* selection can hide or mark them.\n const allModels = Object.entries(providerInfo.models);\n const modelIds = allModels.map(([modelId]) => modelId).sort();\n const deprecatedModelIds = allModels\n .filter(([, modelInfo]) => modelInfo?.status === 'deprecated')\n .map(([modelId]) => modelId)\n .sort();\n\n // Collect model IDs that support attachments\n const attachmentModels = allModels\n .filter(([, modelInfo]) => modelInfo?.attachment === true)\n .map(([modelId]) => modelId)\n .sort();\n\n // Collect model IDs that support temperature sampling\n const temperatureModels = allModels\n .filter(([, modelInfo]) => modelInfo?.temperature === true)\n .map(([modelId]) => modelId)\n .sort();\n\n const structuredOutputModels = allModels\n .filter(([, modelInfo]) => modelInfo?.structured_output === true)\n .map(([modelId]) => modelId)\n .sort();\n\n // Collect per-model endpoint/shape/SDK overrides. Some providers serve\n // individual models over a different endpoint or request shape than the\n // provider default (e.g. OpenAI Responses vs chat-completions).\n const modelOverrides: Record<string, ModelProviderOverride> = {};\n for (const [modelId, modelInfo] of allModels) {\n const ov = modelInfo?.provider;\n if (ov && (ov.api || ov.shape || ov.npm)) {\n modelOverrides[modelId] = { api: ov.api, shape: ov.shape, npm: ov.npm };\n }\n }\n\n // Get the API URL - overrides take priority over models.dev data\n const url = PROVIDER_OVERRIDES[normalizedId]?.url || providerInfo.api;\n\n // Skip if we don't have a URL\n if (!hasInstalledPackage && !url) {\n continue;\n }\n\n // Prefer auth-like env vars over identifiers already consumed by the URL template.\n const apiKeyEnvVar =\n PROVIDER_OVERRIDES[normalizedId]?.apiKeyEnvVar ||\n selectApiKeyEnvVar({\n envVars: providerInfo.env,\n providerId: normalizedId,\n });\n\n // Determine the API key header (special case for Anthropic)\n const apiKeyHeader = !hasInstalledPackage\n ? PROVIDER_OVERRIDES[normalizedId]?.apiKeyHeader || 'Authorization'\n : undefined;\n\n providerConfigs[normalizedId] = {\n url,\n apiKeyEnvVar,\n apiKeyHeader,\n name: providerInfo.name || providerId.charAt(0).toUpperCase() + providerId.slice(1),\n models: modelIds,\n docUrl: providerInfo.doc, // Include documentation URL if available\n gateway: `models.dev`,\n // Only store npm when it's a non-default SDK (not openai-compatible/gateway) to keep the registry small\n // Overrides take priority (e.g., moonshotai uses @ai-sdk/anthropic, not the openai-compatible listed in models.dev)\n npm:\n PROVIDER_OVERRIDES[normalizedId]?.npm ||\n (providerInfo.npm &&\n providerInfo.npm !== '@ai-sdk/openai-compatible' &&\n providerInfo.npm !== '@ai-sdk/gateway'\n ? providerInfo.npm\n : undefined),\n modelOverrides: Object.keys(modelOverrides).length > 0 ? modelOverrides : undefined,\n deprecatedModels: deprecatedModelIds.length > 0 ? deprecatedModelIds : undefined,\n };\n if (attachmentModels.length > 0) {\n this.attachmentCapabilities[normalizedId] = attachmentModels;\n }\n if (temperatureModels.length > 0) {\n this.temperatureCapabilities[normalizedId] = temperatureModels;\n }\n if (structuredOutputModels.length > 0) {\n this.structuredOutputCapabilities[normalizedId] = structuredOutputModels;\n }\n }\n }\n\n // Store for later use in buildUrl and buildHeaders\n this.providerConfigs = providerConfigs;\n\n return providerConfigs;\n }\n\n /**\n * Return attachment capabilities collected during the last `fetchProviders()` call.\n * Maps provider ID → list of model IDs that support attachments.\n */\n getAttachmentCapabilities(): AttachmentCapabilities {\n return this.attachmentCapabilities;\n }\n\n getTemperatureCapabilities(): TemperatureCapabilities {\n return this.temperatureCapabilities;\n }\n\n getStructuredOutputCapabilities(): StructuredOutputCapabilities {\n return this.structuredOutputCapabilities;\n }\n\n buildUrl(routerId: string, envVars?: typeof process.env): string | undefined {\n const { providerId, modelId } = parseModelRouterId(routerId);\n\n const config = this.providerConfigs[providerId];\n\n // A per-model override may point this model at a different endpoint than the\n // provider default; prefer it when present.\n const perModelApi = config?.modelOverrides?.[modelId]?.api;\n const template = perModelApi ?? config?.url;\n\n if (!template) {\n return;\n }\n\n // Check for custom base URL from env vars (explicit override still wins)\n const baseUrlEnvVar = `${providerId.toUpperCase().replace(/-/g, '_')}_BASE_URL`;\n const customBaseUrl = envVars?.[baseUrlEnvVar] || process.env[baseUrlEnvVar];\n\n return customBaseUrl || interpolateUrlTemplate(template, envVars);\n }\n\n getApiKey(modelId: string): Promise<string> {\n const [provider, model] = modelId.split('/');\n if (!provider || !model) {\n throw new Error(`Could not identify provider from model id ${modelId}`);\n }\n const config = this.providerConfigs[provider];\n\n if (!config) {\n throw new Error(`Could not find config for provider ${provider} with model id ${modelId}`);\n }\n\n const apiKey = resolveApiKeyFromEnv(config.apiKeyEnvVar);\n\n if (!apiKey) {\n const envVarDisplay = Array.isArray(config.apiKeyEnvVar) ? config.apiKeyEnvVar.join(' or ') : config.apiKeyEnvVar;\n throw new Error(`Could not find API key process.env.${envVarDisplay} for model id ${modelId}`);\n }\n\n return Promise.resolve(apiKey);\n }\n\n async resolveLanguageModel({\n modelId,\n providerId,\n apiKey,\n headers,\n }: {\n modelId: string;\n providerId: string;\n apiKey: string;\n headers?: Record<string, string>;\n }): Promise<GatewayLanguageModel> {\n const baseURL = this.buildUrl(`${providerId}/${modelId}`);\n\n const mastraHeaders = { 'User-Agent': MASTRA_USER_AGENT, ...headers };\n\n // Per-model override: a model may be served over a different request shape\n // than its provider default (e.g. the OpenAI Responses API while the provider\n // default is chat-completions). Honor `shape` for any provider.\n const override = this.providerConfigs[providerId]?.modelOverrides?.[modelId];\n if (override?.shape === 'responses') {\n return createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);\n }\n\n switch (providerId) {\n case 'openai':\n return createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);\n case 'gemini':\n case 'google':\n return createGoogleGenerativeAI({ apiKey, baseURL, headers: mastraHeaders }).chat(modelId);\n case 'anthropic':\n return createAnthropic({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'mistral':\n return createMistral({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'groq':\n return createGroq({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'openrouter':\n return createOpenRouter({ apiKey, baseURL, headers: mastraHeaders })(\n modelId,\n ) as unknown as GatewayLanguageModel;\n case 'xai':\n return createXai({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);\n case 'deepseek':\n return createDeepSeek({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'perplexity':\n return createPerplexity({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'cerebras':\n return createCerebras({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'togetherai':\n return createTogetherAI({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'deepinfra':\n return createDeepInfra({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'vercel':\n return createGateway({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'moonshotai':\n case 'moonshotai-cn': {\n // moonshotai uses Anthropic-compatible API endpoint\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createAnthropic({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n }\n default: {\n // Check if this provider uses a specific SDK package (e.g., kimi-for-coding uses @ai-sdk/anthropic).\n // A per-model override wins over the provider default.\n const config = this.providerConfigs[providerId];\n const npm = override?.npm ?? config?.npm;\n\n // Pattern match for any alibaba variant (alibaba, alibaba-cn, alibaba-coding-plan, etc.)\n if (providerId.includes('alibaba')) {\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createAlibaba({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n }\n\n if (npm === '@ai-sdk/anthropic') {\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createAnthropic({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n }\n\n if (npm === '@ai-sdk/openai') {\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).chat(modelId);\n }\n\n if (npm === '@ai-sdk/google') {\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createGoogleGenerativeAI({ apiKey, baseURL, headers: mastraHeaders }).chat(modelId);\n }\n\n if (npm === '@ai-sdk/mistral') {\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createMistral({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n }\n\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createOpenAICompatible({\n name: providerId,\n apiKey,\n baseURL,\n headers: mastraHeaders,\n supportsStructuredOutputs: true,\n }).chatModel(modelId);\n }\n }\n }\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"models-dev-BFOUCgyS.js","names":["VERSION","ZodFirstPartyTypeKind2","ZodFirstPartyTypeKind3","z2","z3","getCacheControl","_exhaustiveCheck","z5","z6","z7","z8","z9","z10","webSearch","z11","z12","getResponseMetadata","prepareTools","UnsupportedFunctionalityError2","_exhaustiveCheck","createJsonErrorResponseHandler","z2","UnsupportedFunctionalityError","_exhaustiveCheck","prepareTools","postJsonToApi","combineHeaders","createJsonResponseHandler","getResponseMetadata","createEventSourceResponseHandler","generateId","InvalidResponseDataError","z3","z4","createJsonErrorResponseHandler2","z5","parseProviderOptions2","UnsupportedFunctionalityError2","postJsonToApi2","combineHeaders2","createJsonResponseHandler2","zodSchema","z6","createJsonErrorResponseHandler3","convertUint8ArrayToBase64","getFirstFrameImage","resolveStartImage","parseProviderOptions3","postJsonToApi3","combineHeaders3","createJsonResponseHandler3","AISDKError","delay","getFromApi","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","combineHeaders","createJsonErrorResponseHandler","createJsonResponseHandler","postJsonToApi","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","zodSchema","z2","prepareTools","getResponseMetadata","createJsonErrorResponseHandler","postJsonToApi","combineHeaders","createJsonResponseHandler","generateId","createEventSourceResponseHandler","InvalidResponseDataError","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","UnsupportedFunctionalityError","_exhaustiveCheck","getResponseMetadata","z2","createJsonErrorResponseHandler","prepareTools","UnsupportedFunctionalityError2","postJsonToApi","combineHeaders","createJsonResponseHandler","generateId","createEventSourceResponseHandler","InvalidResponseDataError","z3","zodSchema","z4","parseProviderOptions2","combineHeaders2","createJsonResponseHandler2","z5","createProviderToolFactory","z6","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","UnsupportedFunctionalityError","_exhaustiveCheck","getResponseMetadata","createJsonErrorResponseHandler","z2","prepareTools","UnsupportedFunctionalityError2","generateId","postJsonToApi","combineHeaders","createJsonResponseHandler","createEventSourceResponseHandler","z3","postJsonToApi2","combineHeaders2","createJsonResponseHandler2","z4","z5","parseProviderOptions2","postToApi","combineHeaders3","createJsonResponseHandler3","z6","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","getTopLevelMediaType","UnsupportedFunctionalityError","convertUint8ArrayToBase64","_exhaustiveCheck","postJsonToApi","combineHeaders","createJsonErrorResponseHandler","createJsonResponseHandler","getResponseMetadata","createEventSourceResponseHandler","VERSION","withUserAgentSuffix","loadApiKey","withoutTrailingSlash","zodSchema","lazySchema2","zodSchema2","z2","postJsonToApi","combineHeaders","createJsonErrorResponseHandler","createJsonResponseHandler","parseProviderOptions2","postJsonToApi2","combineHeaders2","createJsonErrorResponseHandler2","createJsonResponseHandler2","z3","lazySchema3","zodSchema3","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","UnsupportedFunctionalityError","_exhaustiveCheck","z2","z3","createJsonErrorResponseHandler","UnsupportedFunctionalityError2","parseProviderOptions2","postJsonToApi","combineHeaders","createJsonResponseHandler","APICallError","extractResponseHeaders","safeParseJSON","createEventSourceResponseHandler","z4","z5","parseProviderOptions3","postJsonToApi2","combineHeaders2","createJsonResponseHandler2","getFromApi","z6","convertToBase642","parseProviderOptions4","UnsupportedFunctionalityError3","z7","z8","zodSchema","z9","lazySchema2","zodSchema2","z10","createProviderToolFactoryWithOutputSchema2","lazySchema3","zodSchema3","z11","createProviderToolFactoryWithOutputSchema3","lazySchema4","zodSchema4","z12","createProviderToolFactoryWithOutputSchema4","validateTypes","UnsupportedFunctionalityError4","parseProviderOptions5","postJsonToApi3","combineHeaders3","createJsonResponseHandler3","createEventSourceResponseHandler2","z13","createProviderToolFactoryWithOutputSchema5","z14","createProviderToolFactoryWithOutputSchema6","z15","createProviderToolFactoryWithOutputSchema7","z16","lazySchema5","zodSchema5","convertUint8ArrayToBase64","parseProviderOptions6","postJsonToApi4","combineHeaders4","createJsonResponseHandler4","AISDKError","delay","getFromApi2","z17","extractResponseHeaders2","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","createGateway"],"sources":["../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@openrouter/ai-sdk-provider/2.10.0/18d3f9832ff4ac9a3a9a352cee0425d8cce35955845fda7f33277c1ddb538196/node_modules/@openrouter/ai-sdk-provider/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/openai-compatible/2.0.62/b7acbd067f2ec09e10301f2fe9f80cac3c408d768c9a5df1e535b692cd074fce/node_modules/@ai-sdk/openai-compatible/dist/internal/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/alibaba/1.0.40/3dd87e9cbc7db3cb530b442366735ca7cff5faa83b148581e3d80dffe003bd70/node_modules/@ai-sdk/alibaba/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/cerebras/2.0.68/ad9edd427ce2f92b15117702f385ae9f2a5c5d9b32c8532415949d3585655444/node_modules/@ai-sdk/cerebras/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/deepinfra/2.0.66/e790b2aefb19d2c99fba0ba98cd9268e20ebec38724103eb4e293843b7753079/node_modules/@ai-sdk/deepinfra/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/deepseek/2.0.50/642f3b4eebe00099e4da13ced5717f53af89b6b6f1be337920eea87012260ca3/node_modules/@ai-sdk/deepseek/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/groq/3.0.53/06deb36d8a065ea330a85a5d0064a9364cb78a78f8bbc2482339dc2ed2571b58/node_modules/@ai-sdk/groq/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/mistral/3.0.51/062feac1d8fe6b44480ca27f026ea0907a8503f0b878abd9e93b1345b9180a5f/node_modules/@ai-sdk/mistral/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/perplexity/3.0.47/25fe4b24c0887d40fcd2ee80aa45ee248bd3f3d2d66125c6cdeba8fd23fbefab/node_modules/@ai-sdk/perplexity/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/togetherai/2.0.67/2114b549b9a93d670ccbc0dce31f693a408242c823eddea6f84d33d9a32f1c25/node_modules/@ai-sdk/togetherai/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/xai/3.0.110/04d5dd5a5dde08191061832e06e94a943deeb57babf6fa437dd6fe32823bf8b0/node_modules/@ai-sdk/xai/dist/index.mjs","../src/llm/model/gateway-resolver.ts","../src/llm/model/gateways/models-dev.ts"],"sourcesContent":["var __defProp = Object.defineProperty;\nvar __defProps = Object.defineProperties;\nvar __getOwnPropDescs = Object.getOwnPropertyDescriptors;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __typeError = (msg) => {\n throw TypeError(msg);\n};\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\nvar __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));\nvar __objRest = (source, exclude) => {\n var target = {};\n for (var prop in source)\n if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)\n target[prop] = source[prop];\n if (source != null && __getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(source)) {\n if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))\n target[prop] = source[prop];\n }\n return target;\n};\nvar __accessCheck = (obj, member, msg) => member.has(obj) || __typeError(\"Cannot \" + msg);\nvar __privateGet = (obj, member, getter) => (__accessCheck(obj, member, \"read from private field\"), getter ? getter.call(obj) : member.get(obj));\nvar __privateAdd = (obj, member, value) => member.has(obj) ? __typeError(\"Cannot add the same private member more than once\") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);\n\n// node_modules/.pnpm/@ai-sdk+provider@3.0.8/node_modules/@ai-sdk/provider/dist/index.mjs\nvar marker = \"vercel.ai.error\";\nvar symbol = Symbol.for(marker);\nvar _a;\nvar _b;\nvar AISDKError = class _AISDKError extends (_b = Error, _a = symbol, _b) {\n /**\n * Creates an AI SDK Error.\n *\n * @param {Object} params - The parameters for creating the error.\n * @param {string} params.name - The name of the error.\n * @param {string} params.message - The error message.\n * @param {unknown} [params.cause] - The underlying cause of the error.\n */\n constructor({\n name: name142,\n message,\n cause\n }) {\n super(message);\n this[_a] = true;\n this.name = name142;\n this.cause = cause;\n }\n /**\n * Checks if the given error is an AI SDK Error.\n * @param {unknown} error - The error to check.\n * @returns {boolean} True if the error is an AI SDK Error, false otherwise.\n */\n static isInstance(error) {\n return _AISDKError.hasMarker(error, marker);\n }\n static hasMarker(error, marker152) {\n const markerSymbol = Symbol.for(marker152);\n return error != null && typeof error === \"object\" && markerSymbol in error && typeof error[markerSymbol] === \"boolean\" && error[markerSymbol] === true;\n }\n};\nvar name = \"AI_APICallError\";\nvar marker2 = `vercel.ai.error.${name}`;\nvar symbol2 = Symbol.for(marker2);\nvar _a2;\nvar _b2;\nvar APICallError = class extends (_b2 = AISDKError, _a2 = symbol2, _b2) {\n constructor({\n message,\n url,\n requestBodyValues,\n statusCode,\n responseHeaders,\n responseBody,\n cause,\n isRetryable = statusCode != null && (statusCode === 408 || // request timeout\n statusCode === 409 || // conflict\n statusCode === 429 || // too many requests\n statusCode >= 500),\n // server error\n data\n }) {\n super({ name, message, cause });\n this[_a2] = true;\n this.url = url;\n this.requestBodyValues = requestBodyValues;\n this.statusCode = statusCode;\n this.responseHeaders = responseHeaders;\n this.responseBody = responseBody;\n this.isRetryable = isRetryable;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker2);\n }\n};\nvar name2 = \"AI_EmptyResponseBodyError\";\nvar marker3 = `vercel.ai.error.${name2}`;\nvar symbol3 = Symbol.for(marker3);\nvar _a3;\nvar _b3;\nvar EmptyResponseBodyError = class extends (_b3 = AISDKError, _a3 = symbol3, _b3) {\n // used in isInstance\n constructor({ message = \"Empty response body\" } = {}) {\n super({ name: name2, message });\n this[_a3] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker3);\n }\n};\nfunction getErrorMessage(error) {\n if (error == null) {\n return \"unknown error\";\n }\n if (typeof error === \"string\") {\n return error;\n }\n if (error instanceof Error) {\n return error.message;\n }\n return JSON.stringify(error);\n}\nvar name3 = \"AI_InvalidArgumentError\";\nvar marker4 = `vercel.ai.error.${name3}`;\nvar symbol4 = Symbol.for(marker4);\nvar _a4;\nvar _b4;\nvar InvalidArgumentError = class extends (_b4 = AISDKError, _a4 = symbol4, _b4) {\n constructor({\n message,\n cause,\n argument\n }) {\n super({ name: name3, message, cause });\n this[_a4] = true;\n this.argument = argument;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker4);\n }\n};\nvar name4 = \"AI_InvalidPromptError\";\nvar marker5 = `vercel.ai.error.${name4}`;\nvar symbol5 = Symbol.for(marker5);\nvar _a5;\nvar _b5;\nvar InvalidPromptError = class extends (_b5 = AISDKError, _a5 = symbol5, _b5) {\n constructor({\n prompt,\n message,\n cause\n }) {\n super({ name: name4, message: `Invalid prompt: ${message}`, cause });\n this[_a5] = true;\n this.prompt = prompt;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker5);\n }\n};\nvar name5 = \"AI_InvalidResponseDataError\";\nvar marker6 = `vercel.ai.error.${name5}`;\nvar symbol6 = Symbol.for(marker6);\nvar _a6;\nvar _b6;\nvar InvalidResponseDataError = class extends (_b6 = AISDKError, _a6 = symbol6, _b6) {\n constructor({\n data,\n message = `Invalid response data: ${JSON.stringify(data)}.`\n }) {\n super({ name: name5, message });\n this[_a6] = true;\n this.data = data;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker6);\n }\n};\nvar name6 = \"AI_JSONParseError\";\nvar marker7 = `vercel.ai.error.${name6}`;\nvar symbol7 = Symbol.for(marker7);\nvar _a7;\nvar _b7;\nvar JSONParseError = class extends (_b7 = AISDKError, _a7 = symbol7, _b7) {\n constructor({ text, cause }) {\n super({\n name: name6,\n message: `JSON parsing failed: Text: ${text}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a7] = true;\n this.text = text;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker7);\n }\n};\nvar name7 = \"AI_LoadAPIKeyError\";\nvar marker8 = `vercel.ai.error.${name7}`;\nvar symbol8 = Symbol.for(marker8);\nvar _a8;\nvar _b8;\nvar LoadAPIKeyError = class extends (_b8 = AISDKError, _a8 = symbol8, _b8) {\n // used in isInstance\n constructor({ message }) {\n super({ name: name7, message });\n this[_a8] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker8);\n }\n};\nvar name8 = \"AI_LoadSettingError\";\nvar marker9 = `vercel.ai.error.${name8}`;\nvar symbol9 = Symbol.for(marker9);\nvar _a9;\nvar _b9;\nvar LoadSettingError = class extends (_b9 = AISDKError, _a9 = symbol9, _b9) {\n // used in isInstance\n constructor({ message }) {\n super({ name: name8, message });\n this[_a9] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker9);\n }\n};\nvar name9 = \"AI_NoContentGeneratedError\";\nvar marker10 = `vercel.ai.error.${name9}`;\nvar symbol10 = Symbol.for(marker10);\nvar _a10;\nvar _b10;\nvar NoContentGeneratedError = class extends (_b10 = AISDKError, _a10 = symbol10, _b10) {\n // used in isInstance\n constructor({\n message = \"No content generated.\"\n } = {}) {\n super({ name: name9, message });\n this[_a10] = true;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker10);\n }\n};\nvar name10 = \"AI_NoSuchModelError\";\nvar marker11 = `vercel.ai.error.${name10}`;\nvar symbol11 = Symbol.for(marker11);\nvar _a11;\nvar _b11;\nvar NoSuchModelError = class extends (_b11 = AISDKError, _a11 = symbol11, _b11) {\n constructor({\n errorName = name10,\n modelId,\n modelType,\n message = `No such ${modelType}: ${modelId}`\n }) {\n super({ name: errorName, message });\n this[_a11] = true;\n this.modelId = modelId;\n this.modelType = modelType;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker11);\n }\n};\nvar name11 = \"AI_TooManyEmbeddingValuesForCallError\";\nvar marker12 = `vercel.ai.error.${name11}`;\nvar symbol12 = Symbol.for(marker12);\nvar _a12;\nvar _b12;\nvar TooManyEmbeddingValuesForCallError = class extends (_b12 = AISDKError, _a12 = symbol12, _b12) {\n constructor(options) {\n super({\n name: name11,\n message: `Too many values for a single embedding call. The ${options.provider} model \"${options.modelId}\" can only embed up to ${options.maxEmbeddingsPerCall} values per call, but ${options.values.length} values were provided.`\n });\n this[_a12] = true;\n this.provider = options.provider;\n this.modelId = options.modelId;\n this.maxEmbeddingsPerCall = options.maxEmbeddingsPerCall;\n this.values = options.values;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker12);\n }\n};\nvar name12 = \"AI_TypeValidationError\";\nvar marker13 = `vercel.ai.error.${name12}`;\nvar symbol13 = Symbol.for(marker13);\nvar _a13;\nvar _b13;\nvar TypeValidationError = class _TypeValidationError extends (_b13 = AISDKError, _a13 = symbol13, _b13) {\n constructor({\n value,\n cause,\n context\n }) {\n let contextPrefix = \"Type validation failed\";\n if (context == null ? void 0 : context.field) {\n contextPrefix += ` for ${context.field}`;\n }\n if ((context == null ? void 0 : context.entityName) || (context == null ? void 0 : context.entityId)) {\n contextPrefix += \" (\";\n const parts = [];\n if (context.entityName) {\n parts.push(context.entityName);\n }\n if (context.entityId) {\n parts.push(`id: \"${context.entityId}\"`);\n }\n contextPrefix += parts.join(\", \");\n contextPrefix += \")\";\n }\n super({\n name: name12,\n message: `${contextPrefix}: Value: ${JSON.stringify(value)}.\nError message: ${getErrorMessage(cause)}`,\n cause\n });\n this[_a13] = true;\n this.value = value;\n this.context = context;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker13);\n }\n /**\n * Wraps an error into a TypeValidationError.\n * If the cause is already a TypeValidationError with the same value and context, it returns the cause.\n * Otherwise, it creates a new TypeValidationError.\n *\n * @param {Object} params - The parameters for wrapping the error.\n * @param {unknown} params.value - The value that failed validation.\n * @param {unknown} params.cause - The original error or cause of the validation failure.\n * @param {TypeValidationContext} params.context - Optional context about what is being validated.\n * @returns {TypeValidationError} A TypeValidationError instance.\n */\n static wrap({\n value,\n cause,\n context\n }) {\n var _a152, _b152, _c;\n if (_TypeValidationError.isInstance(cause) && cause.value === value && ((_a152 = cause.context) == null ? void 0 : _a152.field) === (context == null ? void 0 : context.field) && ((_b152 = cause.context) == null ? void 0 : _b152.entityName) === (context == null ? void 0 : context.entityName) && ((_c = cause.context) == null ? void 0 : _c.entityId) === (context == null ? void 0 : context.entityId)) {\n return cause;\n }\n return new _TypeValidationError({ value, cause, context });\n }\n};\nvar name13 = \"AI_UnsupportedFunctionalityError\";\nvar marker14 = `vercel.ai.error.${name13}`;\nvar symbol14 = Symbol.for(marker14);\nvar _a14;\nvar _b14;\nvar UnsupportedFunctionalityError = class extends (_b14 = AISDKError, _a14 = symbol14, _b14) {\n constructor({\n functionality,\n message = `'${functionality}' functionality not supported.`\n }) {\n super({ name: name13, message });\n this[_a14] = true;\n this.functionality = functionality;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker14);\n }\n};\n\n// node_modules/.pnpm/@ai-sdk+provider-utils@4.0.23_zod@4.3.5/node_modules/@ai-sdk/provider-utils/dist/index.mjs\nimport * as z4 from \"zod/v4\";\nimport { ZodFirstPartyTypeKind as ZodFirstPartyTypeKind3 } from \"zod/v3\";\nimport { ZodFirstPartyTypeKind } from \"zod/v3\";\nimport {\n ZodFirstPartyTypeKind as ZodFirstPartyTypeKind2\n} from \"zod/v3\";\n\n// node_modules/.pnpm/eventsource-parser@3.0.6/node_modules/eventsource-parser/dist/index.js\nvar ParseError = class extends Error {\n constructor(message, options) {\n super(message), this.name = \"ParseError\", this.type = options.type, this.field = options.field, this.value = options.value, this.line = options.line;\n }\n};\nfunction noop(_arg) {\n}\nfunction createParser(callbacks) {\n if (typeof callbacks == \"function\")\n throw new TypeError(\n \"`callbacks` must be an object, got a function instead. Did you mean `{onEvent: fn}`?\"\n );\n const { onEvent = noop, onError = noop, onRetry = noop, onComment } = callbacks;\n let incompleteLine = \"\", isFirstChunk = true, id, data = \"\", eventType = \"\";\n function feed(newChunk) {\n const chunk = isFirstChunk ? newChunk.replace(/^\\xEF\\xBB\\xBF/, \"\") : newChunk, [complete, incomplete] = splitLines(`${incompleteLine}${chunk}`);\n for (const line of complete)\n parseLine(line);\n incompleteLine = incomplete, isFirstChunk = false;\n }\n function parseLine(line) {\n if (line === \"\") {\n dispatchEvent();\n return;\n }\n if (line.startsWith(\":\")) {\n onComment && onComment(line.slice(line.startsWith(\": \") ? 2 : 1));\n return;\n }\n const fieldSeparatorIndex = line.indexOf(\":\");\n if (fieldSeparatorIndex !== -1) {\n const field = line.slice(0, fieldSeparatorIndex), offset = line[fieldSeparatorIndex + 1] === \" \" ? 2 : 1, value = line.slice(fieldSeparatorIndex + offset);\n processField(field, value, line);\n return;\n }\n processField(line, \"\", line);\n }\n function processField(field, value, line) {\n switch (field) {\n case \"event\":\n eventType = value;\n break;\n case \"data\":\n data = `${data}${value}\n`;\n break;\n case \"id\":\n id = value.includes(\"\\0\") ? void 0 : value;\n break;\n case \"retry\":\n /^\\d+$/.test(value) ? onRetry(parseInt(value, 10)) : onError(\n new ParseError(`Invalid \\`retry\\` value: \"${value}\"`, {\n type: \"invalid-retry\",\n value,\n line\n })\n );\n break;\n default:\n onError(\n new ParseError(\n `Unknown field \"${field.length > 20 ? `${field.slice(0, 20)}\\u2026` : field}\"`,\n { type: \"unknown-field\", field, value, line }\n )\n );\n break;\n }\n }\n function dispatchEvent() {\n data.length > 0 && onEvent({\n id,\n event: eventType || void 0,\n // If the data buffer's last character is a U+000A LINE FEED (LF) character,\n // then remove the last character from the data buffer.\n data: data.endsWith(`\n`) ? data.slice(0, -1) : data\n }), id = void 0, data = \"\", eventType = \"\";\n }\n function reset(options = {}) {\n incompleteLine && options.consume && parseLine(incompleteLine), isFirstChunk = true, id = void 0, data = \"\", eventType = \"\", incompleteLine = \"\";\n }\n return { feed, reset };\n}\nfunction splitLines(chunk) {\n const lines = [];\n let incompleteLine = \"\", searchIndex = 0;\n for (; searchIndex < chunk.length; ) {\n const crIndex = chunk.indexOf(\"\\r\", searchIndex), lfIndex = chunk.indexOf(`\n`, searchIndex);\n let lineEnd = -1;\n if (crIndex !== -1 && lfIndex !== -1 ? lineEnd = Math.min(crIndex, lfIndex) : crIndex !== -1 ? crIndex === chunk.length - 1 ? lineEnd = -1 : lineEnd = crIndex : lfIndex !== -1 && (lineEnd = lfIndex), lineEnd === -1) {\n incompleteLine = chunk.slice(searchIndex);\n break;\n } else {\n const line = chunk.slice(searchIndex, lineEnd);\n lines.push(line), searchIndex = lineEnd + 1, chunk[searchIndex - 1] === \"\\r\" && chunk[searchIndex] === `\n` && searchIndex++;\n }\n }\n return [lines, incompleteLine];\n}\n\n// node_modules/.pnpm/eventsource-parser@3.0.6/node_modules/eventsource-parser/dist/stream.js\nvar EventSourceParserStream = class extends TransformStream {\n constructor({ onError, onRetry, onComment } = {}) {\n let parser;\n super({\n start(controller) {\n parser = createParser({\n onEvent: (event) => {\n controller.enqueue(event);\n },\n onError(error) {\n onError === \"terminate\" ? controller.error(error) : typeof onError == \"function\" && onError(error);\n },\n onRetry,\n onComment\n });\n },\n transform(chunk) {\n parser.feed(chunk);\n }\n });\n }\n};\n\n// node_modules/.pnpm/@ai-sdk+provider-utils@4.0.23_zod@4.3.5/node_modules/@ai-sdk/provider-utils/dist/index.mjs\nfunction combineHeaders(...headers) {\n return headers.reduce(\n (combinedHeaders, currentHeaders) => __spreadValues(__spreadValues({}, combinedHeaders), currentHeaders != null ? currentHeaders : {}),\n {}\n );\n}\nasync function delay(delayInMs, options) {\n if (delayInMs == null) {\n return Promise.resolve();\n }\n const signal = options == null ? void 0 : options.abortSignal;\n return new Promise((resolve2, reject) => {\n if (signal == null ? void 0 : signal.aborted) {\n reject(createAbortError());\n return;\n }\n const timeoutId = setTimeout(() => {\n cleanup();\n resolve2();\n }, delayInMs);\n const cleanup = () => {\n clearTimeout(timeoutId);\n signal == null ? void 0 : signal.removeEventListener(\"abort\", onAbort);\n };\n const onAbort = () => {\n cleanup();\n reject(createAbortError());\n };\n signal == null ? void 0 : signal.addEventListener(\"abort\", onAbort);\n });\n}\nfunction createAbortError() {\n return new DOMException(\"Delay was aborted\", \"AbortError\");\n}\nfunction extractResponseHeaders(response) {\n return Object.fromEntries([...response.headers]);\n}\nvar { btoa, atob } = globalThis;\nfunction convertUint8ArrayToBase64(array) {\n let latin1string = \"\";\n for (let i = 0; i < array.length; i++) {\n latin1string += String.fromCodePoint(array[i]);\n }\n return btoa(latin1string);\n}\nvar name14 = \"AI_DownloadError\";\nvar marker15 = `vercel.ai.error.${name14}`;\nvar symbol15 = Symbol.for(marker15);\nvar _a15;\nvar _b15;\nvar DownloadError = class extends (_b15 = AISDKError, _a15 = symbol15, _b15) {\n constructor({\n url,\n statusCode,\n statusText,\n cause,\n message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}`\n }) {\n super({ name: name14, message, cause });\n this[_a15] = true;\n this.url = url;\n this.statusCode = statusCode;\n this.statusText = statusText;\n }\n static isInstance(error) {\n return AISDKError.hasMarker(error, marker15);\n }\n};\nvar DEFAULT_MAX_DOWNLOAD_SIZE = 2 * 1024 * 1024 * 1024;\nvar createIdGenerator = ({\n prefix,\n size = 16,\n alphabet = \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",\n separator = \"-\"\n} = {}) => {\n const generator = () => {\n const alphabetLength = alphabet.length;\n const chars = new Array(size);\n for (let i = 0; i < size; i++) {\n chars[i] = alphabet[Math.random() * alphabetLength | 0];\n }\n return chars.join(\"\");\n };\n if (prefix == null) {\n return generator;\n }\n if (alphabet.includes(separator)) {\n throw new InvalidArgumentError({\n argument: \"separator\",\n message: `The separator \"${separator}\" must not be part of the alphabet \"${alphabet}\".`\n });\n }\n return () => `${prefix}${separator}${generator()}`;\n};\nvar generateId = createIdGenerator();\nfunction isAbortError(error) {\n return (error instanceof Error || error instanceof DOMException) && (error.name === \"AbortError\" || error.name === \"ResponseAborted\" || // Next.js\n error.name === \"TimeoutError\");\n}\nvar FETCH_FAILED_ERROR_MESSAGES = [\"fetch failed\", \"failed to fetch\"];\nvar BUN_ERROR_CODES = [\n \"ConnectionRefused\",\n \"ConnectionClosed\",\n \"FailedToOpenSocket\",\n \"ECONNRESET\",\n \"ECONNREFUSED\",\n \"ETIMEDOUT\",\n \"EPIPE\"\n];\nfunction isBunNetworkError(error) {\n if (!(error instanceof Error)) {\n return false;\n }\n const code = error.code;\n if (typeof code === \"string\" && BUN_ERROR_CODES.includes(code)) {\n return true;\n }\n return false;\n}\nfunction handleFetchError({\n error,\n url,\n requestBodyValues\n}) {\n if (isAbortError(error)) {\n return error;\n }\n if (error instanceof TypeError && FETCH_FAILED_ERROR_MESSAGES.includes(error.message.toLowerCase())) {\n const cause = error.cause;\n if (cause != null) {\n return new APICallError({\n message: `Cannot connect to API: ${cause.message}`,\n cause,\n url,\n requestBodyValues,\n isRetryable: true\n // retry when network error\n });\n }\n }\n if (isBunNetworkError(error)) {\n return new APICallError({\n message: `Cannot connect to API: ${error.message}`,\n cause: error,\n url,\n requestBodyValues,\n isRetryable: true\n });\n }\n return error;\n}\nfunction getRuntimeEnvironmentUserAgent(globalThisAny = globalThis) {\n var _a22, _b22, _c;\n if (globalThisAny.window) {\n return `runtime/browser`;\n }\n if ((_a22 = globalThisAny.navigator) == null ? void 0 : _a22.userAgent) {\n return `runtime/${globalThisAny.navigator.userAgent.toLowerCase()}`;\n }\n if ((_c = (_b22 = globalThisAny.process) == null ? void 0 : _b22.versions) == null ? void 0 : _c.node) {\n return `runtime/node.js/${globalThisAny.process.version.substring(0)}`;\n }\n if (globalThisAny.EdgeRuntime) {\n return `runtime/vercel-edge`;\n }\n return \"runtime/unknown\";\n}\nfunction normalizeHeaders(headers) {\n if (headers == null) {\n return {};\n }\n const normalized = {};\n if (headers instanceof Headers) {\n headers.forEach((value, key) => {\n normalized[key.toLowerCase()] = value;\n });\n } else {\n if (!Array.isArray(headers)) {\n headers = Object.entries(headers);\n }\n for (const [key, value] of headers) {\n if (value != null) {\n normalized[key.toLowerCase()] = value;\n }\n }\n }\n return normalized;\n}\nfunction withUserAgentSuffix(headers, ...userAgentSuffixParts) {\n const normalizedHeaders = new Headers(normalizeHeaders(headers));\n const currentUserAgentHeader = normalizedHeaders.get(\"user-agent\") || \"\";\n normalizedHeaders.set(\n \"user-agent\",\n [currentUserAgentHeader, ...userAgentSuffixParts].filter(Boolean).join(\" \")\n );\n return Object.fromEntries(normalizedHeaders.entries());\n}\nvar VERSION = true ? \"4.0.23\" : \"0.0.0-test\";\nvar getOriginalFetch = () => globalThis.fetch;\nvar getFromApi = async ({\n url,\n headers = {},\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch: fetch2 = getOriginalFetch()\n}) => {\n try {\n const response = await fetch2(url, {\n method: \"GET\",\n headers: withUserAgentSuffix(\n headers,\n `ai-sdk/provider-utils/${VERSION}`,\n getRuntimeEnvironmentUserAgent()\n ),\n signal: abortSignal\n });\n const responseHeaders = extractResponseHeaders(response);\n if (!response.ok) {\n let errorInformation;\n try {\n errorInformation = await failedResponseHandler({\n response,\n url,\n requestBodyValues: {}\n });\n } catch (error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n throw new APICallError({\n message: \"Failed to process error response\",\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: {}\n });\n }\n throw errorInformation.value;\n }\n try {\n return await successfulResponseHandler({\n response,\n url,\n requestBodyValues: {}\n });\n } catch (error) {\n if (error instanceof Error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n }\n throw new APICallError({\n message: \"Failed to process successful response\",\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: {}\n });\n }\n } catch (error) {\n throw handleFetchError({ error, url, requestBodyValues: {} });\n }\n};\nfunction loadApiKey({\n apiKey,\n environmentVariableName,\n apiKeyParameterName = \"apiKey\",\n description\n}) {\n if (typeof apiKey === \"string\") {\n return apiKey;\n }\n if (apiKey != null) {\n throw new LoadAPIKeyError({\n message: `${description} API key must be a string.`\n });\n }\n if (typeof process === \"undefined\") {\n throw new LoadAPIKeyError({\n message: `${description} API key is missing. Pass it using the '${apiKeyParameterName}' parameter. Environment variables are not supported in this environment.`\n });\n }\n apiKey = process.env[environmentVariableName];\n if (apiKey == null) {\n throw new LoadAPIKeyError({\n message: `${description} API key is missing. Pass it using the '${apiKeyParameterName}' parameter or the ${environmentVariableName} environment variable.`\n });\n }\n if (typeof apiKey !== \"string\") {\n throw new LoadAPIKeyError({\n message: `${description} API key must be a string. The value of the ${environmentVariableName} environment variable is not a string.`\n });\n }\n return apiKey;\n}\nvar suspectProtoRx = /\"(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])(?:p|\\\\u0070)(?:r|\\\\u0072)(?:o|\\\\u006[Ff])(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:_|\\\\u005[Ff])(?:_|\\\\u005[Ff])\"\\s*:/;\nvar suspectConstructorRx = /\"(?:c|\\\\u0063)(?:o|\\\\u006[Ff])(?:n|\\\\u006[Ee])(?:s|\\\\u0073)(?:t|\\\\u0074)(?:r|\\\\u0072)(?:u|\\\\u0075)(?:c|\\\\u0063)(?:t|\\\\u0074)(?:o|\\\\u006[Ff])(?:r|\\\\u0072)\"\\s*:/;\nfunction _parse(text) {\n const obj = JSON.parse(text);\n if (obj === null || typeof obj !== \"object\") {\n return obj;\n }\n if (suspectProtoRx.test(text) === false && suspectConstructorRx.test(text) === false) {\n return obj;\n }\n return filter(obj);\n}\nfunction filter(obj) {\n let next = [obj];\n while (next.length) {\n const nodes = next;\n next = [];\n for (const node of nodes) {\n if (Object.prototype.hasOwnProperty.call(node, \"__proto__\")) {\n throw new SyntaxError(\"Object contains forbidden prototype property\");\n }\n if (Object.prototype.hasOwnProperty.call(node, \"constructor\") && node.constructor !== null && typeof node.constructor === \"object\" && Object.prototype.hasOwnProperty.call(node.constructor, \"prototype\")) {\n throw new SyntaxError(\"Object contains forbidden prototype property\");\n }\n for (const key in node) {\n const value = node[key];\n if (value && typeof value === \"object\") {\n next.push(value);\n }\n }\n }\n }\n return obj;\n}\nfunction secureJsonParse(text) {\n const { stackTraceLimit } = Error;\n try {\n Error.stackTraceLimit = 0;\n } catch (e) {\n return _parse(text);\n }\n try {\n return _parse(text);\n } finally {\n Error.stackTraceLimit = stackTraceLimit;\n }\n}\nfunction addAdditionalPropertiesToJsonSchema(jsonSchema2) {\n if (jsonSchema2.type === \"object\" || Array.isArray(jsonSchema2.type) && jsonSchema2.type.includes(\"object\")) {\n jsonSchema2.additionalProperties = false;\n const { properties } = jsonSchema2;\n if (properties != null) {\n for (const key of Object.keys(properties)) {\n properties[key] = visit(properties[key]);\n }\n }\n }\n if (jsonSchema2.items != null) {\n jsonSchema2.items = Array.isArray(jsonSchema2.items) ? jsonSchema2.items.map(visit) : visit(jsonSchema2.items);\n }\n if (jsonSchema2.anyOf != null) {\n jsonSchema2.anyOf = jsonSchema2.anyOf.map(visit);\n }\n if (jsonSchema2.allOf != null) {\n jsonSchema2.allOf = jsonSchema2.allOf.map(visit);\n }\n if (jsonSchema2.oneOf != null) {\n jsonSchema2.oneOf = jsonSchema2.oneOf.map(visit);\n }\n const { definitions } = jsonSchema2;\n if (definitions != null) {\n for (const key of Object.keys(definitions)) {\n definitions[key] = visit(definitions[key]);\n }\n }\n return jsonSchema2;\n}\nfunction visit(def) {\n if (typeof def === \"boolean\") return def;\n return addAdditionalPropertiesToJsonSchema(def);\n}\nvar ignoreOverride = /* @__PURE__ */ Symbol(\n \"Let zodToJsonSchema decide on which parser to use\"\n);\nvar defaultOptions = {\n name: void 0,\n $refStrategy: \"root\",\n basePath: [\"#\"],\n effectStrategy: \"input\",\n pipeStrategy: \"all\",\n dateStrategy: \"format:date-time\",\n mapStrategy: \"entries\",\n removeAdditionalStrategy: \"passthrough\",\n allowedAdditionalProperties: true,\n rejectedAdditionalProperties: false,\n definitionPath: \"definitions\",\n strictUnions: false,\n definitions: {},\n errorMessages: false,\n patternStrategy: \"escape\",\n applyRegexFlags: false,\n emailStrategy: \"format:email\",\n base64Strategy: \"contentEncoding:base64\",\n nameStrategy: \"ref\"\n};\nvar getDefaultOptions = (options) => typeof options === \"string\" ? __spreadProps(__spreadValues({}, defaultOptions), {\n name: options\n}) : __spreadValues(__spreadValues({}, defaultOptions), options);\nfunction parseAnyDef() {\n return {};\n}\nfunction parseArrayDef(def, refs) {\n var _a22, _b22, _c;\n const res = {\n type: \"array\"\n };\n if (((_a22 = def.type) == null ? void 0 : _a22._def) && ((_c = (_b22 = def.type) == null ? void 0 : _b22._def) == null ? void 0 : _c.typeName) !== ZodFirstPartyTypeKind.ZodAny) {\n res.items = parseDef(def.type._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"items\"]\n }));\n }\n if (def.minLength) {\n res.minItems = def.minLength.value;\n }\n if (def.maxLength) {\n res.maxItems = def.maxLength.value;\n }\n if (def.exactLength) {\n res.minItems = def.exactLength.value;\n res.maxItems = def.exactLength.value;\n }\n return res;\n}\nfunction parseBigintDef(def) {\n const res = {\n type: \"integer\",\n format: \"int64\"\n };\n if (!def.checks) return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n if (check.inclusive) {\n res.minimum = check.value;\n } else {\n res.exclusiveMinimum = check.value;\n }\n break;\n case \"max\":\n if (check.inclusive) {\n res.maximum = check.value;\n } else {\n res.exclusiveMaximum = check.value;\n }\n break;\n case \"multipleOf\":\n res.multipleOf = check.value;\n break;\n }\n }\n return res;\n}\nfunction parseBooleanDef() {\n return { type: \"boolean\" };\n}\nfunction parseBrandedDef(_def, refs) {\n return parseDef(_def.type._def, refs);\n}\nvar parseCatchDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\nfunction parseDateDef(def, refs, overrideDateStrategy) {\n const strategy = overrideDateStrategy != null ? overrideDateStrategy : refs.dateStrategy;\n if (Array.isArray(strategy)) {\n return {\n anyOf: strategy.map((item, i) => parseDateDef(def, refs, item))\n };\n }\n switch (strategy) {\n case \"string\":\n case \"format:date-time\":\n return {\n type: \"string\",\n format: \"date-time\"\n };\n case \"format:date\":\n return {\n type: \"string\",\n format: \"date\"\n };\n case \"integer\":\n return integerDateParser(def);\n }\n}\nvar integerDateParser = (def) => {\n const res = {\n type: \"integer\",\n format: \"unix-time\"\n };\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n res.minimum = check.value;\n break;\n case \"max\":\n res.maximum = check.value;\n break;\n }\n }\n return res;\n};\nfunction parseDefaultDef(_def, refs) {\n return __spreadProps(__spreadValues({}, parseDef(_def.innerType._def, refs)), {\n default: _def.defaultValue()\n });\n}\nfunction parseEffectsDef(_def, refs) {\n return refs.effectStrategy === \"input\" ? parseDef(_def.schema._def, refs) : parseAnyDef();\n}\nfunction parseEnumDef(def) {\n return {\n type: \"string\",\n enum: Array.from(def.values)\n };\n}\nvar isJsonSchema7AllOfType = (type) => {\n if (\"type\" in type && type.type === \"string\") return false;\n return \"allOf\" in type;\n};\nfunction parseIntersectionDef(def, refs) {\n const allOf = [\n parseDef(def.left._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"allOf\", \"0\"]\n })),\n parseDef(def.right._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"allOf\", \"1\"]\n }))\n ].filter((x) => !!x);\n const mergedAllOf = [];\n allOf.forEach((schema) => {\n if (isJsonSchema7AllOfType(schema)) {\n mergedAllOf.push(...schema.allOf);\n } else {\n let nestedSchema = schema;\n if (\"additionalProperties\" in schema && schema.additionalProperties === false) {\n const _a16 = schema, { additionalProperties } = _a16, rest = __objRest(_a16, [\"additionalProperties\"]);\n nestedSchema = rest;\n }\n mergedAllOf.push(nestedSchema);\n }\n });\n return mergedAllOf.length ? { allOf: mergedAllOf } : void 0;\n}\nfunction parseLiteralDef(def) {\n const parsedType = typeof def.value;\n if (parsedType !== \"bigint\" && parsedType !== \"number\" && parsedType !== \"boolean\" && parsedType !== \"string\") {\n return {\n type: Array.isArray(def.value) ? \"array\" : \"object\"\n };\n }\n return {\n type: parsedType === \"bigint\" ? \"integer\" : parsedType,\n const: def.value\n };\n}\nvar emojiRegex = void 0;\nvar zodPatterns = {\n /**\n * `c` was changed to `[cC]` to replicate /i flag\n */\n cuid: /^[cC][^\\s-]{8,}$/,\n cuid2: /^[0-9a-z]+$/,\n ulid: /^[0-9A-HJKMNP-TV-Z]{26}$/,\n /**\n * `a-z` was added to replicate /i flag\n */\n email: /^(?!\\.)(?!.*\\.\\.)([a-zA-Z0-9_'+\\-\\.]*)[a-zA-Z0-9_+-]@([a-zA-Z0-9][a-zA-Z0-9\\-]*\\.)+[a-zA-Z]{2,}$/,\n /**\n * Constructed a valid Unicode RegExp\n *\n * Lazily instantiate since this type of regex isn't supported\n * in all envs (e.g. React Native).\n *\n * See:\n * https://github.com/colinhacks/zod/issues/2433\n * Fix in Zod:\n * https://github.com/colinhacks/zod/commit/9340fd51e48576a75adc919bff65dbc4a5d4c99b\n */\n emoji: () => {\n if (emojiRegex === void 0) {\n emojiRegex = RegExp(\n \"^(\\\\p{Extended_Pictographic}|\\\\p{Emoji_Component})+$\",\n \"u\"\n );\n }\n return emojiRegex;\n },\n /**\n * Unused\n */\n uuid: /^[0-9a-fA-F]{8}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{4}\\b-[0-9a-fA-F]{12}$/,\n /**\n * Unused\n */\n ipv4: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/,\n ipv4Cidr: /^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\/(3[0-2]|[12]?[0-9])$/,\n /**\n * Unused\n */\n ipv6: /^(([a-f0-9]{1,4}:){7}|::([a-f0-9]{1,4}:){0,6}|([a-f0-9]{1,4}:){1}:([a-f0-9]{1,4}:){0,5}|([a-f0-9]{1,4}:){2}:([a-f0-9]{1,4}:){0,4}|([a-f0-9]{1,4}:){3}:([a-f0-9]{1,4}:){0,3}|([a-f0-9]{1,4}:){4}:([a-f0-9]{1,4}:){0,2}|([a-f0-9]{1,4}:){5}:([a-f0-9]{1,4}:){0,1})([a-f0-9]{1,4}|(((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2}))\\.){3}((25[0-5])|(2[0-4][0-9])|(1[0-9]{2})|([0-9]{1,2})))$/,\n ipv6Cidr: /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/,\n base64: /^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/,\n base64url: /^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/,\n nanoid: /^[a-zA-Z0-9_-]{21}$/,\n jwt: /^[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]+\\.[A-Za-z0-9-_]*$/\n};\nfunction parseStringDef(def, refs) {\n const res = {\n type: \"string\"\n };\n if (def.checks) {\n for (const check of def.checks) {\n switch (check.kind) {\n case \"min\":\n res.minLength = typeof res.minLength === \"number\" ? Math.max(res.minLength, check.value) : check.value;\n break;\n case \"max\":\n res.maxLength = typeof res.maxLength === \"number\" ? Math.min(res.maxLength, check.value) : check.value;\n break;\n case \"email\":\n switch (refs.emailStrategy) {\n case \"format:email\":\n addFormat(res, \"email\", check.message, refs);\n break;\n case \"format:idn-email\":\n addFormat(res, \"idn-email\", check.message, refs);\n break;\n case \"pattern:zod\":\n addPattern(res, zodPatterns.email, check.message, refs);\n break;\n }\n break;\n case \"url\":\n addFormat(res, \"uri\", check.message, refs);\n break;\n case \"uuid\":\n addFormat(res, \"uuid\", check.message, refs);\n break;\n case \"regex\":\n addPattern(res, check.regex, check.message, refs);\n break;\n case \"cuid\":\n addPattern(res, zodPatterns.cuid, check.message, refs);\n break;\n case \"cuid2\":\n addPattern(res, zodPatterns.cuid2, check.message, refs);\n break;\n case \"startsWith\":\n addPattern(\n res,\n RegExp(`^${escapeLiteralCheckValue(check.value, refs)}`),\n check.message,\n refs\n );\n break;\n case \"endsWith\":\n addPattern(\n res,\n RegExp(`${escapeLiteralCheckValue(check.value, refs)}$`),\n check.message,\n refs\n );\n break;\n case \"datetime\":\n addFormat(res, \"date-time\", check.message, refs);\n break;\n case \"date\":\n addFormat(res, \"date\", check.message, refs);\n break;\n case \"time\":\n addFormat(res, \"time\", check.message, refs);\n break;\n case \"duration\":\n addFormat(res, \"duration\", check.message, refs);\n break;\n case \"length\":\n res.minLength = typeof res.minLength === \"number\" ? Math.max(res.minLength, check.value) : check.value;\n res.maxLength = typeof res.maxLength === \"number\" ? Math.min(res.maxLength, check.value) : check.value;\n break;\n case \"includes\": {\n addPattern(\n res,\n RegExp(escapeLiteralCheckValue(check.value, refs)),\n check.message,\n refs\n );\n break;\n }\n case \"ip\": {\n if (check.version !== \"v6\") {\n addFormat(res, \"ipv4\", check.message, refs);\n }\n if (check.version !== \"v4\") {\n addFormat(res, \"ipv6\", check.message, refs);\n }\n break;\n }\n case \"base64url\":\n addPattern(res, zodPatterns.base64url, check.message, refs);\n break;\n case \"jwt\":\n addPattern(res, zodPatterns.jwt, check.message, refs);\n break;\n case \"cidr\": {\n if (check.version !== \"v6\") {\n addPattern(res, zodPatterns.ipv4Cidr, check.message, refs);\n }\n if (check.version !== \"v4\") {\n addPattern(res, zodPatterns.ipv6Cidr, check.message, refs);\n }\n break;\n }\n case \"emoji\":\n addPattern(res, zodPatterns.emoji(), check.message, refs);\n break;\n case \"ulid\": {\n addPattern(res, zodPatterns.ulid, check.message, refs);\n break;\n }\n case \"base64\": {\n switch (refs.base64Strategy) {\n case \"format:binary\": {\n addFormat(res, \"binary\", check.message, refs);\n break;\n }\n case \"contentEncoding:base64\": {\n res.contentEncoding = \"base64\";\n break;\n }\n case \"pattern:zod\": {\n addPattern(res, zodPatterns.base64, check.message, refs);\n break;\n }\n }\n break;\n }\n case \"nanoid\": {\n addPattern(res, zodPatterns.nanoid, check.message, refs);\n }\n case \"toLowerCase\":\n case \"toUpperCase\":\n case \"trim\":\n break;\n default:\n /* @__PURE__ */ ((_) => {\n })(check);\n }\n }\n }\n return res;\n}\nfunction escapeLiteralCheckValue(literal, refs) {\n return refs.patternStrategy === \"escape\" ? escapeNonAlphaNumeric(literal) : literal;\n}\nvar ALPHA_NUMERIC = new Set(\n \"ABCDEFGHIJKLMNOPQRSTUVXYZabcdefghijklmnopqrstuvxyz0123456789\"\n);\nfunction escapeNonAlphaNumeric(source) {\n let result = \"\";\n for (let i = 0; i < source.length; i++) {\n if (!ALPHA_NUMERIC.has(source[i])) {\n result += \"\\\\\";\n }\n result += source[i];\n }\n return result;\n}\nfunction addFormat(schema, value, message, refs) {\n var _a22;\n if (schema.format || ((_a22 = schema.anyOf) == null ? void 0 : _a22.some((x) => x.format))) {\n if (!schema.anyOf) {\n schema.anyOf = [];\n }\n if (schema.format) {\n schema.anyOf.push({\n format: schema.format\n });\n delete schema.format;\n }\n schema.anyOf.push(__spreadValues({\n format: value\n }, message && refs.errorMessages && { errorMessage: { format: message } }));\n } else {\n schema.format = value;\n }\n}\nfunction addPattern(schema, regex, message, refs) {\n var _a22;\n if (schema.pattern || ((_a22 = schema.allOf) == null ? void 0 : _a22.some((x) => x.pattern))) {\n if (!schema.allOf) {\n schema.allOf = [];\n }\n if (schema.pattern) {\n schema.allOf.push({\n pattern: schema.pattern\n });\n delete schema.pattern;\n }\n schema.allOf.push(__spreadValues({\n pattern: stringifyRegExpWithFlags(regex, refs)\n }, message && refs.errorMessages && { errorMessage: { pattern: message } }));\n } else {\n schema.pattern = stringifyRegExpWithFlags(regex, refs);\n }\n}\nfunction stringifyRegExpWithFlags(regex, refs) {\n var _a22;\n if (!refs.applyRegexFlags || !regex.flags) {\n return regex.source;\n }\n const flags = {\n i: regex.flags.includes(\"i\"),\n // Case-insensitive\n m: regex.flags.includes(\"m\"),\n // `^` and `$` matches adjacent to newline characters\n s: regex.flags.includes(\"s\")\n // `.` matches newlines\n };\n const source = flags.i ? regex.source.toLowerCase() : regex.source;\n let pattern = \"\";\n let isEscaped = false;\n let inCharGroup = false;\n let inCharRange = false;\n for (let i = 0; i < source.length; i++) {\n if (isEscaped) {\n pattern += source[i];\n isEscaped = false;\n continue;\n }\n if (flags.i) {\n if (inCharGroup) {\n if (source[i].match(/[a-z]/)) {\n if (inCharRange) {\n pattern += source[i];\n pattern += `${source[i - 2]}-${source[i]}`.toUpperCase();\n inCharRange = false;\n } else if (source[i + 1] === \"-\" && ((_a22 = source[i + 2]) == null ? void 0 : _a22.match(/[a-z]/))) {\n pattern += source[i];\n inCharRange = true;\n } else {\n pattern += `${source[i]}${source[i].toUpperCase()}`;\n }\n continue;\n }\n } else if (source[i].match(/[a-z]/)) {\n pattern += `[${source[i]}${source[i].toUpperCase()}]`;\n continue;\n }\n }\n if (flags.m) {\n if (source[i] === \"^\") {\n pattern += `(^|(?<=[\\r\n]))`;\n continue;\n } else if (source[i] === \"$\") {\n pattern += `($|(?=[\\r\n]))`;\n continue;\n }\n }\n if (flags.s && source[i] === \".\") {\n pattern += inCharGroup ? `${source[i]}\\r\n` : `[${source[i]}\\r\n]`;\n continue;\n }\n pattern += source[i];\n if (source[i] === \"\\\\\") {\n isEscaped = true;\n } else if (inCharGroup && source[i] === \"]\") {\n inCharGroup = false;\n } else if (!inCharGroup && source[i] === \"[\") {\n inCharGroup = true;\n }\n }\n try {\n new RegExp(pattern);\n } catch (e) {\n console.warn(\n `Could not convert regex pattern at ${refs.currentPath.join(\n \"/\"\n )} to a flag-independent form! Falling back to the flag-ignorant source`\n );\n return regex.source;\n }\n return pattern;\n}\nfunction parseRecordDef(def, refs) {\n var _a22, _b22, _c, _d, _e, _f;\n const schema = {\n type: \"object\",\n additionalProperties: (_a22 = parseDef(def.valueType._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"additionalProperties\"]\n }))) != null ? _a22 : refs.allowedAdditionalProperties\n };\n if (((_b22 = def.keyType) == null ? void 0 : _b22._def.typeName) === ZodFirstPartyTypeKind2.ZodString && ((_c = def.keyType._def.checks) == null ? void 0 : _c.length)) {\n const _a16 = parseStringDef(def.keyType._def, refs), { type } = _a16, keyType = __objRest(_a16, [\"type\"]);\n return __spreadProps(__spreadValues({}, schema), {\n propertyNames: keyType\n });\n } else if (((_d = def.keyType) == null ? void 0 : _d._def.typeName) === ZodFirstPartyTypeKind2.ZodEnum) {\n return __spreadProps(__spreadValues({}, schema), {\n propertyNames: {\n enum: def.keyType._def.values\n }\n });\n } else if (((_e = def.keyType) == null ? void 0 : _e._def.typeName) === ZodFirstPartyTypeKind2.ZodBranded && def.keyType._def.type._def.typeName === ZodFirstPartyTypeKind2.ZodString && ((_f = def.keyType._def.type._def.checks) == null ? void 0 : _f.length)) {\n const _b16 = parseBrandedDef(\n def.keyType._def,\n refs\n ), { type } = _b16, keyType = __objRest(_b16, [\"type\"]);\n return __spreadProps(__spreadValues({}, schema), {\n propertyNames: keyType\n });\n }\n return schema;\n}\nfunction parseMapDef(def, refs) {\n if (refs.mapStrategy === \"record\") {\n return parseRecordDef(def, refs);\n }\n const keys = parseDef(def.keyType._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"items\", \"items\", \"0\"]\n })) || parseAnyDef();\n const values = parseDef(def.valueType._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"items\", \"items\", \"1\"]\n })) || parseAnyDef();\n return {\n type: \"array\",\n maxItems: 125,\n items: {\n type: \"array\",\n items: [keys, values],\n minItems: 2,\n maxItems: 2\n }\n };\n}\nfunction parseNativeEnumDef(def) {\n const object = def.values;\n const actualKeys = Object.keys(def.values).filter((key) => {\n return typeof object[object[key]] !== \"number\";\n });\n const actualValues = actualKeys.map((key) => object[key]);\n const parsedTypes = Array.from(\n new Set(actualValues.map((values) => typeof values))\n );\n return {\n type: parsedTypes.length === 1 ? parsedTypes[0] === \"string\" ? \"string\" : \"number\" : [\"string\", \"number\"],\n enum: actualValues\n };\n}\nfunction parseNeverDef() {\n return { not: parseAnyDef() };\n}\nfunction parseNullDef() {\n return {\n type: \"null\"\n };\n}\nvar primitiveMappings = {\n ZodString: \"string\",\n ZodNumber: \"number\",\n ZodBigInt: \"integer\",\n ZodBoolean: \"boolean\",\n ZodNull: \"null\"\n};\nfunction parseUnionDef(def, refs) {\n const options = def.options instanceof Map ? Array.from(def.options.values()) : def.options;\n if (options.every(\n (x) => x._def.typeName in primitiveMappings && (!x._def.checks || !x._def.checks.length)\n )) {\n const types = options.reduce((types2, x) => {\n const type = primitiveMappings[x._def.typeName];\n return type && !types2.includes(type) ? [...types2, type] : types2;\n }, []);\n return {\n type: types.length > 1 ? types : types[0]\n };\n } else if (options.every((x) => x._def.typeName === \"ZodLiteral\" && !x.description)) {\n const types = options.reduce(\n (acc, x) => {\n const type = typeof x._def.value;\n switch (type) {\n case \"string\":\n case \"number\":\n case \"boolean\":\n return [...acc, type];\n case \"bigint\":\n return [...acc, \"integer\"];\n case \"object\":\n if (x._def.value === null) return [...acc, \"null\"];\n case \"symbol\":\n case \"undefined\":\n case \"function\":\n default:\n return acc;\n }\n },\n []\n );\n if (types.length === options.length) {\n const uniqueTypes = types.filter((x, i, a) => a.indexOf(x) === i);\n return {\n type: uniqueTypes.length > 1 ? uniqueTypes : uniqueTypes[0],\n enum: options.reduce(\n (acc, x) => {\n return acc.includes(x._def.value) ? acc : [...acc, x._def.value];\n },\n []\n )\n };\n }\n } else if (options.every((x) => x._def.typeName === \"ZodEnum\")) {\n return {\n type: \"string\",\n enum: options.reduce(\n (acc, x) => [\n ...acc,\n ...x._def.values.filter((x2) => !acc.includes(x2))\n ],\n []\n )\n };\n }\n return asAnyOf(def, refs);\n}\nvar asAnyOf = (def, refs) => {\n const anyOf = (def.options instanceof Map ? Array.from(def.options.values()) : def.options).map(\n (x, i) => parseDef(x._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"anyOf\", `${i}`]\n }))\n ).filter(\n (x) => !!x && (!refs.strictUnions || typeof x === \"object\" && Object.keys(x).length > 0)\n );\n return anyOf.length ? { anyOf } : void 0;\n};\nfunction parseNullableDef(def, refs) {\n if ([\"ZodString\", \"ZodNumber\", \"ZodBigInt\", \"ZodBoolean\", \"ZodNull\"].includes(\n def.innerType._def.typeName\n ) && (!def.innerType._def.checks || !def.innerType._def.checks.length)) {\n return {\n type: [\n primitiveMappings[def.innerType._def.typeName],\n \"null\"\n ]\n };\n }\n const base = parseDef(def.innerType._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"anyOf\", \"0\"]\n }));\n return base && { anyOf: [base, { type: \"null\" }] };\n}\nfunction parseNumberDef(def) {\n const res = {\n type: \"number\"\n };\n if (!def.checks) return res;\n for (const check of def.checks) {\n switch (check.kind) {\n case \"int\":\n res.type = \"integer\";\n break;\n case \"min\":\n if (check.inclusive) {\n res.minimum = check.value;\n } else {\n res.exclusiveMinimum = check.value;\n }\n break;\n case \"max\":\n if (check.inclusive) {\n res.maximum = check.value;\n } else {\n res.exclusiveMaximum = check.value;\n }\n break;\n case \"multipleOf\":\n res.multipleOf = check.value;\n break;\n }\n }\n return res;\n}\nfunction parseObjectDef(def, refs) {\n const result = {\n type: \"object\",\n properties: {}\n };\n const required = [];\n const shape = def.shape();\n for (const propName in shape) {\n let propDef = shape[propName];\n if (propDef === void 0 || propDef._def === void 0) {\n continue;\n }\n const propOptional = safeIsOptional(propDef);\n const parsedDef = parseDef(propDef._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"properties\", propName],\n propertyPath: [...refs.currentPath, \"properties\", propName]\n }));\n if (parsedDef === void 0) {\n continue;\n }\n result.properties[propName] = parsedDef;\n if (!propOptional) {\n required.push(propName);\n }\n }\n if (required.length) {\n result.required = required;\n }\n const additionalProperties = decideAdditionalProperties(def, refs);\n if (additionalProperties !== void 0) {\n result.additionalProperties = additionalProperties;\n }\n return result;\n}\nfunction decideAdditionalProperties(def, refs) {\n if (def.catchall._def.typeName !== \"ZodNever\") {\n return parseDef(def.catchall._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"additionalProperties\"]\n }));\n }\n switch (def.unknownKeys) {\n case \"passthrough\":\n return refs.allowedAdditionalProperties;\n case \"strict\":\n return refs.rejectedAdditionalProperties;\n case \"strip\":\n return refs.removeAdditionalStrategy === \"strict\" ? refs.allowedAdditionalProperties : refs.rejectedAdditionalProperties;\n }\n}\nfunction safeIsOptional(schema) {\n try {\n return schema.isOptional();\n } catch (e) {\n return true;\n }\n}\nvar parseOptionalDef = (def, refs) => {\n var _a22;\n if (refs.currentPath.toString() === ((_a22 = refs.propertyPath) == null ? void 0 : _a22.toString())) {\n return parseDef(def.innerType._def, refs);\n }\n const innerSchema = parseDef(def.innerType._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"anyOf\", \"1\"]\n }));\n return innerSchema ? { anyOf: [{ not: parseAnyDef() }, innerSchema] } : parseAnyDef();\n};\nvar parsePipelineDef = (def, refs) => {\n if (refs.pipeStrategy === \"input\") {\n return parseDef(def.in._def, refs);\n } else if (refs.pipeStrategy === \"output\") {\n return parseDef(def.out._def, refs);\n }\n const a = parseDef(def.in._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"allOf\", \"0\"]\n }));\n const b = parseDef(def.out._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"allOf\", a ? \"1\" : \"0\"]\n }));\n return {\n allOf: [a, b].filter((x) => x !== void 0)\n };\n};\nfunction parsePromiseDef(def, refs) {\n return parseDef(def.type._def, refs);\n}\nfunction parseSetDef(def, refs) {\n const items = parseDef(def.valueType._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"items\"]\n }));\n const schema = {\n type: \"array\",\n uniqueItems: true,\n items\n };\n if (def.minSize) {\n schema.minItems = def.minSize.value;\n }\n if (def.maxSize) {\n schema.maxItems = def.maxSize.value;\n }\n return schema;\n}\nfunction parseTupleDef(def, refs) {\n if (def.rest) {\n return {\n type: \"array\",\n minItems: def.items.length,\n items: def.items.map(\n (x, i) => parseDef(x._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"items\", `${i}`]\n }))\n ).reduce(\n (acc, x) => x === void 0 ? acc : [...acc, x],\n []\n ),\n additionalItems: parseDef(def.rest._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"additionalItems\"]\n }))\n };\n } else {\n return {\n type: \"array\",\n minItems: def.items.length,\n maxItems: def.items.length,\n items: def.items.map(\n (x, i) => parseDef(x._def, __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.currentPath, \"items\", `${i}`]\n }))\n ).reduce(\n (acc, x) => x === void 0 ? acc : [...acc, x],\n []\n )\n };\n }\n}\nfunction parseUndefinedDef() {\n return {\n not: parseAnyDef()\n };\n}\nfunction parseUnknownDef() {\n return parseAnyDef();\n}\nvar parseReadonlyDef = (def, refs) => {\n return parseDef(def.innerType._def, refs);\n};\nvar selectParser = (def, typeName, refs) => {\n switch (typeName) {\n case ZodFirstPartyTypeKind3.ZodString:\n return parseStringDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodNumber:\n return parseNumberDef(def);\n case ZodFirstPartyTypeKind3.ZodObject:\n return parseObjectDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodBigInt:\n return parseBigintDef(def);\n case ZodFirstPartyTypeKind3.ZodBoolean:\n return parseBooleanDef();\n case ZodFirstPartyTypeKind3.ZodDate:\n return parseDateDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodUndefined:\n return parseUndefinedDef();\n case ZodFirstPartyTypeKind3.ZodNull:\n return parseNullDef();\n case ZodFirstPartyTypeKind3.ZodArray:\n return parseArrayDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodUnion:\n case ZodFirstPartyTypeKind3.ZodDiscriminatedUnion:\n return parseUnionDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodIntersection:\n return parseIntersectionDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodTuple:\n return parseTupleDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodRecord:\n return parseRecordDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodLiteral:\n return parseLiteralDef(def);\n case ZodFirstPartyTypeKind3.ZodEnum:\n return parseEnumDef(def);\n case ZodFirstPartyTypeKind3.ZodNativeEnum:\n return parseNativeEnumDef(def);\n case ZodFirstPartyTypeKind3.ZodNullable:\n return parseNullableDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodOptional:\n return parseOptionalDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodMap:\n return parseMapDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodSet:\n return parseSetDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodLazy:\n return () => def.getter()._def;\n case ZodFirstPartyTypeKind3.ZodPromise:\n return parsePromiseDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodNaN:\n case ZodFirstPartyTypeKind3.ZodNever:\n return parseNeverDef();\n case ZodFirstPartyTypeKind3.ZodEffects:\n return parseEffectsDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodAny:\n return parseAnyDef();\n case ZodFirstPartyTypeKind3.ZodUnknown:\n return parseUnknownDef();\n case ZodFirstPartyTypeKind3.ZodDefault:\n return parseDefaultDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodBranded:\n return parseBrandedDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodReadonly:\n return parseReadonlyDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodCatch:\n return parseCatchDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodPipeline:\n return parsePipelineDef(def, refs);\n case ZodFirstPartyTypeKind3.ZodFunction:\n case ZodFirstPartyTypeKind3.ZodVoid:\n case ZodFirstPartyTypeKind3.ZodSymbol:\n return void 0;\n default:\n return /* @__PURE__ */ ((_) => void 0)(typeName);\n }\n};\nvar getRelativePath = (pathA, pathB) => {\n let i = 0;\n for (; i < pathA.length && i < pathB.length; i++) {\n if (pathA[i] !== pathB[i]) break;\n }\n return [(pathA.length - i).toString(), ...pathB.slice(i)].join(\"/\");\n};\nfunction parseDef(def, refs, forceResolution = false) {\n var _a22;\n const seenItem = refs.seen.get(def);\n if (refs.override) {\n const overrideResult = (_a22 = refs.override) == null ? void 0 : _a22.call(\n refs,\n def,\n refs,\n seenItem,\n forceResolution\n );\n if (overrideResult !== ignoreOverride) {\n return overrideResult;\n }\n }\n if (seenItem && !forceResolution) {\n const seenSchema = get$ref(seenItem, refs);\n if (seenSchema !== void 0) {\n return seenSchema;\n }\n }\n const newItem = { def, path: refs.currentPath, jsonSchema: void 0 };\n refs.seen.set(def, newItem);\n const jsonSchemaOrGetter = selectParser(def, def.typeName, refs);\n const jsonSchema2 = typeof jsonSchemaOrGetter === \"function\" ? parseDef(jsonSchemaOrGetter(), refs) : jsonSchemaOrGetter;\n if (jsonSchema2) {\n addMeta(def, refs, jsonSchema2);\n }\n if (refs.postProcess) {\n const postProcessResult = refs.postProcess(jsonSchema2, def, refs);\n newItem.jsonSchema = jsonSchema2;\n return postProcessResult;\n }\n newItem.jsonSchema = jsonSchema2;\n return jsonSchema2;\n}\nvar get$ref = (item, refs) => {\n switch (refs.$refStrategy) {\n case \"root\":\n return { $ref: item.path.join(\"/\") };\n case \"relative\":\n return { $ref: getRelativePath(refs.currentPath, item.path) };\n case \"none\":\n case \"seen\": {\n if (item.path.length < refs.currentPath.length && item.path.every((value, index) => refs.currentPath[index] === value)) {\n console.warn(\n `Recursive reference detected at ${refs.currentPath.join(\n \"/\"\n )}! Defaulting to any`\n );\n return parseAnyDef();\n }\n return refs.$refStrategy === \"seen\" ? parseAnyDef() : void 0;\n }\n }\n};\nvar addMeta = (def, refs, jsonSchema2) => {\n if (def.description) {\n jsonSchema2.description = def.description;\n }\n return jsonSchema2;\n};\nvar getRefs = (options) => {\n const _options = getDefaultOptions(options);\n const currentPath = _options.name !== void 0 ? [..._options.basePath, _options.definitionPath, _options.name] : _options.basePath;\n return __spreadProps(__spreadValues({}, _options), {\n currentPath,\n propertyPath: void 0,\n seen: new Map(\n Object.entries(_options.definitions).map(([name22, def]) => [\n def._def,\n {\n def: def._def,\n path: [..._options.basePath, _options.definitionPath, name22],\n // Resolution of references will be forced even though seen, so it's ok that the schema is undefined here for now.\n jsonSchema: void 0\n }\n ])\n )\n });\n};\nvar zod3ToJsonSchema = (schema, options) => {\n var _a22;\n const refs = getRefs(options);\n let definitions = typeof options === \"object\" && options.definitions ? Object.entries(options.definitions).reduce(\n (acc, [name32, schema2]) => {\n var _a32;\n return __spreadProps(__spreadValues({}, acc), {\n [name32]: (_a32 = parseDef(\n schema2._def,\n __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.basePath, refs.definitionPath, name32]\n }),\n true\n )) != null ? _a32 : parseAnyDef()\n });\n },\n {}\n ) : void 0;\n const name22 = typeof options === \"string\" ? options : (options == null ? void 0 : options.nameStrategy) === \"title\" ? void 0 : options == null ? void 0 : options.name;\n const main = (_a22 = parseDef(\n schema._def,\n name22 === void 0 ? refs : __spreadProps(__spreadValues({}, refs), {\n currentPath: [...refs.basePath, refs.definitionPath, name22]\n }),\n false\n )) != null ? _a22 : parseAnyDef();\n const title = typeof options === \"object\" && options.name !== void 0 && options.nameStrategy === \"title\" ? options.name : void 0;\n if (title !== void 0) {\n main.title = title;\n }\n const combined = name22 === void 0 ? definitions ? __spreadProps(__spreadValues({}, main), {\n [refs.definitionPath]: definitions\n }) : main : {\n $ref: [\n ...refs.$refStrategy === \"relative\" ? [] : refs.basePath,\n refs.definitionPath,\n name22\n ].join(\"/\"),\n [refs.definitionPath]: __spreadProps(__spreadValues({}, definitions), {\n [name22]: main\n })\n };\n combined.$schema = \"http://json-schema.org/draft-07/schema#\";\n return combined;\n};\nvar schemaSymbol = /* @__PURE__ */ Symbol.for(\"vercel.ai.schema\");\nfunction jsonSchema(jsonSchema2, {\n validate\n} = {}) {\n return {\n [schemaSymbol]: true,\n _type: void 0,\n // should never be used directly\n get jsonSchema() {\n if (typeof jsonSchema2 === \"function\") {\n jsonSchema2 = jsonSchema2();\n }\n return jsonSchema2;\n },\n validate\n };\n}\nfunction isSchema(value) {\n return typeof value === \"object\" && value !== null && schemaSymbol in value && value[schemaSymbol] === true && \"jsonSchema\" in value && \"validate\" in value;\n}\nfunction asSchema(schema) {\n return schema == null ? jsonSchema({ properties: {}, additionalProperties: false }) : isSchema(schema) ? schema : \"~standard\" in schema ? schema[\"~standard\"].vendor === \"zod\" ? zodSchema(schema) : standardSchema(schema) : schema();\n}\nfunction standardSchema(standardSchema2) {\n return jsonSchema(\n () => addAdditionalPropertiesToJsonSchema(\n standardSchema2[\"~standard\"].jsonSchema.input({\n target: \"draft-07\"\n })\n ),\n {\n validate: async (value) => {\n const result = await standardSchema2[\"~standard\"].validate(value);\n return \"value\" in result ? { success: true, value: result.value } : {\n success: false,\n error: new TypeValidationError({\n value,\n cause: result.issues\n })\n };\n }\n }\n );\n}\nfunction zod3Schema(zodSchema2, options) {\n var _a22;\n const useReferences = (_a22 = options == null ? void 0 : options.useReferences) != null ? _a22 : false;\n return jsonSchema(\n // defer json schema creation to avoid unnecessary computation when only validation is needed\n () => zod3ToJsonSchema(zodSchema2, {\n $refStrategy: useReferences ? \"root\" : \"none\"\n }),\n {\n validate: async (value) => {\n const result = await zodSchema2.safeParseAsync(value);\n return result.success ? { success: true, value: result.data } : { success: false, error: result.error };\n }\n }\n );\n}\nfunction zod4Schema(zodSchema2, options) {\n var _a22;\n const useReferences = (_a22 = options == null ? void 0 : options.useReferences) != null ? _a22 : false;\n return jsonSchema(\n // defer json schema creation to avoid unnecessary computation when only validation is needed\n () => addAdditionalPropertiesToJsonSchema(\n z4.toJSONSchema(zodSchema2, {\n target: \"draft-7\",\n io: \"input\",\n reused: useReferences ? \"ref\" : \"inline\"\n })\n ),\n {\n validate: async (value) => {\n const result = await z4.safeParseAsync(zodSchema2, value);\n return result.success ? { success: true, value: result.data } : { success: false, error: result.error };\n }\n }\n );\n}\nfunction isZod4Schema(zodSchema2) {\n return \"_zod\" in zodSchema2;\n}\nfunction zodSchema(zodSchema2, options) {\n if (isZod4Schema(zodSchema2)) {\n return zod4Schema(zodSchema2, options);\n } else {\n return zod3Schema(zodSchema2, options);\n }\n}\nasync function validateTypes({\n value,\n schema,\n context\n}) {\n const result = await safeValidateTypes({ value, schema, context });\n if (!result.success) {\n throw TypeValidationError.wrap({ value, cause: result.error, context });\n }\n return result.value;\n}\nasync function safeValidateTypes({\n value,\n schema,\n context\n}) {\n const actualSchema = asSchema(schema);\n try {\n if (actualSchema.validate == null) {\n return { success: true, value, rawValue: value };\n }\n const result = await actualSchema.validate(value);\n if (result.success) {\n return { success: true, value: result.value, rawValue: value };\n }\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: result.error, context }),\n rawValue: value\n };\n } catch (error) {\n return {\n success: false,\n error: TypeValidationError.wrap({ value, cause: error, context }),\n rawValue: value\n };\n }\n}\nasync function parseJSON({\n text,\n schema\n}) {\n try {\n const value = secureJsonParse(text);\n if (schema == null) {\n return value;\n }\n return validateTypes({ value, schema });\n } catch (error) {\n if (JSONParseError.isInstance(error) || TypeValidationError.isInstance(error)) {\n throw error;\n }\n throw new JSONParseError({ text, cause: error });\n }\n}\nasync function safeParseJSON({\n text,\n schema\n}) {\n try {\n const value = secureJsonParse(text);\n if (schema == null) {\n return { success: true, value, rawValue: value };\n }\n return await safeValidateTypes({ value, schema });\n } catch (error) {\n return {\n success: false,\n error: JSONParseError.isInstance(error) ? error : new JSONParseError({ text, cause: error }),\n rawValue: void 0\n };\n }\n}\nfunction isParsableJson(input) {\n try {\n secureJsonParse(input);\n return true;\n } catch (e) {\n return false;\n }\n}\nfunction parseJsonEventStream({\n stream,\n schema\n}) {\n return stream.pipeThrough(new TextDecoderStream()).pipeThrough(new EventSourceParserStream()).pipeThrough(\n new TransformStream({\n async transform({ data }, controller) {\n if (data === \"[DONE]\") {\n return;\n }\n controller.enqueue(await safeParseJSON({ text: data, schema }));\n }\n })\n );\n}\nvar getOriginalFetch2 = () => globalThis.fetch;\nvar postJsonToApi = async ({\n url,\n headers,\n body,\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch: fetch2\n}) => postToApi({\n url,\n headers: __spreadValues({\n \"Content-Type\": \"application/json\"\n }, headers),\n body: {\n content: JSON.stringify(body),\n values: body\n },\n failedResponseHandler,\n successfulResponseHandler,\n abortSignal,\n fetch: fetch2\n});\nvar postToApi = async ({\n url,\n headers = {},\n body,\n successfulResponseHandler,\n failedResponseHandler,\n abortSignal,\n fetch: fetch2 = getOriginalFetch2()\n}) => {\n try {\n const response = await fetch2(url, {\n method: \"POST\",\n headers: withUserAgentSuffix(\n headers,\n `ai-sdk/provider-utils/${VERSION}`,\n getRuntimeEnvironmentUserAgent()\n ),\n body: body.content,\n signal: abortSignal\n });\n const responseHeaders = extractResponseHeaders(response);\n if (!response.ok) {\n let errorInformation;\n try {\n errorInformation = await failedResponseHandler({\n response,\n url,\n requestBodyValues: body.values\n });\n } catch (error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n throw new APICallError({\n message: \"Failed to process error response\",\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: body.values\n });\n }\n throw errorInformation.value;\n }\n try {\n return await successfulResponseHandler({\n response,\n url,\n requestBodyValues: body.values\n });\n } catch (error) {\n if (error instanceof Error) {\n if (isAbortError(error) || APICallError.isInstance(error)) {\n throw error;\n }\n }\n throw new APICallError({\n message: \"Failed to process successful response\",\n cause: error,\n statusCode: response.status,\n url,\n responseHeaders,\n requestBodyValues: body.values\n });\n }\n } catch (error) {\n throw handleFetchError({ error, url, requestBodyValues: body.values });\n }\n};\nfunction tool(tool2) {\n return tool2;\n}\nfunction createProviderToolFactory({\n id,\n inputSchema\n}) {\n return (_a16) => {\n var _b16 = _a16, {\n execute,\n outputSchema,\n needsApproval,\n toModelOutput,\n onInputStart,\n onInputDelta,\n onInputAvailable\n } = _b16, args = __objRest(_b16, [\n \"execute\",\n \"outputSchema\",\n \"needsApproval\",\n \"toModelOutput\",\n \"onInputStart\",\n \"onInputDelta\",\n \"onInputAvailable\"\n ]);\n return tool({\n type: \"provider\",\n id,\n args,\n inputSchema,\n outputSchema,\n execute,\n needsApproval,\n toModelOutput,\n onInputStart,\n onInputDelta,\n onInputAvailable\n });\n };\n}\nvar createJsonErrorResponseHandler = ({\n errorSchema,\n errorToMessage,\n isRetryable\n}) => async ({ response, url, requestBodyValues }) => {\n const responseBody = await response.text();\n const responseHeaders = extractResponseHeaders(response);\n if (responseBody.trim() === \"\") {\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n isRetryable: isRetryable == null ? void 0 : isRetryable(response)\n })\n };\n }\n try {\n const parsedError = await parseJSON({\n text: responseBody,\n schema: errorSchema\n });\n return {\n responseHeaders,\n value: new APICallError({\n message: errorToMessage(parsedError),\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n data: parsedError,\n isRetryable: isRetryable == null ? void 0 : isRetryable(response, parsedError)\n })\n };\n } catch (parseError) {\n return {\n responseHeaders,\n value: new APICallError({\n message: response.statusText,\n url,\n requestBodyValues,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n isRetryable: isRetryable == null ? void 0 : isRetryable(response)\n })\n };\n }\n};\nvar createEventSourceResponseHandler = (chunkSchema) => async ({ response }) => {\n const responseHeaders = extractResponseHeaders(response);\n if (response.body == null) {\n throw new EmptyResponseBodyError({});\n }\n return {\n responseHeaders,\n value: parseJsonEventStream({\n stream: response.body,\n schema: chunkSchema\n })\n };\n};\nvar createJsonResponseHandler = (responseSchema) => async ({ response, url, requestBodyValues }) => {\n const responseBody = await response.text();\n const parsedResult = await safeParseJSON({\n text: responseBody,\n schema: responseSchema\n });\n const responseHeaders = extractResponseHeaders(response);\n if (!parsedResult.success) {\n throw new APICallError({\n message: \"Invalid JSON response\",\n cause: parsedResult.error,\n statusCode: response.status,\n responseHeaders,\n responseBody,\n url,\n requestBodyValues\n });\n }\n return {\n responseHeaders,\n value: parsedResult.value,\n rawValue: parsedResult.rawValue\n };\n};\nfunction withoutTrailingSlash(url) {\n return url == null ? void 0 : url.replace(/\\/$/, \"\");\n}\n\n// src/schemas/reasoning-details.ts\nimport { z } from \"zod/v4\";\n\n// src/utils/type-guards.ts\nfunction isDefinedOrNotNull(value) {\n return value !== null && value !== void 0;\n}\n\n// src/schemas/format.ts\nvar ReasoningFormat = /* @__PURE__ */ ((ReasoningFormat2) => {\n ReasoningFormat2[\"Unknown\"] = \"unknown\";\n ReasoningFormat2[\"OpenAIResponsesV1\"] = \"openai-responses-v1\";\n ReasoningFormat2[\"AzureOpenAIResponsesV1\"] = \"azure-openai-responses-v1\";\n ReasoningFormat2[\"XAIResponsesV1\"] = \"xai-responses-v1\";\n ReasoningFormat2[\"AnthropicClaudeV1\"] = \"anthropic-claude-v1\";\n ReasoningFormat2[\"GoogleGeminiV1\"] = \"google-gemini-v1\";\n return ReasoningFormat2;\n})(ReasoningFormat || {});\nvar DEFAULT_REASONING_FORMAT = \"anthropic-claude-v1\" /* AnthropicClaudeV1 */;\n\n// src/schemas/reasoning-details.ts\nvar CommonReasoningDetailSchema = z.object({\n id: z.string().nullish(),\n format: z.enum(ReasoningFormat).nullish(),\n index: z.number().optional()\n}).loose();\nvar ReasoningDetailSummarySchema = z.object({\n type: z.literal(\"reasoning.summary\" /* Summary */),\n summary: z.string()\n}).extend(CommonReasoningDetailSchema.shape);\nvar ReasoningDetailEncryptedSchema = z.object({\n type: z.literal(\"reasoning.encrypted\" /* Encrypted */),\n data: z.string()\n}).extend(CommonReasoningDetailSchema.shape);\nvar ReasoningDetailTextSchema = z.object({\n type: z.literal(\"reasoning.text\" /* Text */),\n text: z.string().nullish(),\n signature: z.string().nullish()\n}).extend(CommonReasoningDetailSchema.shape);\nvar ReasoningDetailUnionSchema = z.union([\n ReasoningDetailSummarySchema,\n ReasoningDetailEncryptedSchema,\n ReasoningDetailTextSchema\n]);\nvar ReasoningDetailsWithUnknownSchema = z.union([\n ReasoningDetailUnionSchema,\n z.unknown().transform(() => null)\n]);\nvar ReasoningDetailArraySchema = z.array(ReasoningDetailsWithUnknownSchema).transform((d) => d.filter((d2) => !!d2));\nvar OutputUnionToReasoningDetailsSchema = z.union([\n z.object({\n delta: z.object({\n reasoning_details: z.array(ReasoningDetailsWithUnknownSchema)\n })\n }).transform(\n (data) => data.delta.reasoning_details.filter(isDefinedOrNotNull)\n ),\n z.object({\n message: z.object({\n reasoning_details: z.array(ReasoningDetailsWithUnknownSchema)\n })\n }).transform(\n (data) => data.message.reasoning_details.filter(isDefinedOrNotNull)\n ),\n z.object({\n text: z.string(),\n reasoning_details: z.array(ReasoningDetailsWithUnknownSchema)\n }).transform((data) => data.reasoning_details.filter(isDefinedOrNotNull))\n]);\n\n// src/schemas/error-response.ts\nimport { z as z2 } from \"zod/v4\";\nvar OpenRouterErrorResponseSchema = z2.object({\n error: z2.object({\n code: z2.union([z2.string(), z2.number()]).nullable().optional().default(null),\n message: z2.string(),\n type: z2.string().nullable().optional().default(null),\n param: z2.any().nullable().optional().default(null)\n }).passthrough()\n}).passthrough();\nfunction extractErrorMessage(data) {\n const error = data.error;\n const metadata = error.metadata;\n if (!metadata) {\n return data.error.message;\n }\n const parts = [];\n if (typeof metadata.provider_name === \"string\" && metadata.provider_name) {\n parts.push(`[${metadata.provider_name}]`);\n }\n const raw = metadata.raw;\n const rawMessage = extractRawMessage(raw);\n if (rawMessage && rawMessage !== data.error.message) {\n parts.push(rawMessage);\n } else {\n parts.push(data.error.message);\n }\n return parts.join(\" \");\n}\nfunction extractRawMessage(raw) {\n if (typeof raw === \"string\") {\n try {\n const parsed = JSON.parse(raw);\n if (typeof parsed === \"object\" && parsed !== null) {\n return extractRawMessage(parsed);\n }\n return raw;\n } catch (e) {\n return raw;\n }\n }\n if (typeof raw !== \"object\" || raw === null) {\n return void 0;\n }\n const obj = raw;\n for (const field of [\"message\", \"error\", \"detail\", \"details\", \"msg\"]) {\n const value = obj[field];\n if (typeof value === \"string\" && value.length > 0) {\n return value;\n }\n if (typeof value === \"object\" && value !== null) {\n const nested = extractRawMessage(value);\n if (nested) {\n return nested;\n }\n }\n }\n return void 0;\n}\nvar openrouterFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: OpenRouterErrorResponseSchema,\n errorToMessage: extractErrorMessage\n});\n\n// src/schemas/provider-metadata.ts\nimport { z as z3 } from \"zod/v4\";\nvar FileAnnotationSchema = z3.object({\n type: z3.literal(\"file\"),\n file: z3.object({\n hash: z3.string(),\n name: z3.string(),\n content: z3.array(\n z3.object({\n type: z3.string(),\n text: z3.string().optional()\n }).catchall(z3.any())\n ).optional()\n }).catchall(z3.any())\n}).catchall(z3.any());\nvar OpenRouterProviderMetadataSchema = z3.object({\n provider: z3.string(),\n reasoning_details: z3.array(ReasoningDetailUnionSchema).optional(),\n annotations: z3.array(FileAnnotationSchema).optional(),\n usage: z3.object({\n promptTokens: z3.number(),\n promptTokensDetails: z3.object({\n cachedTokens: z3.number()\n }).catchall(z3.any()).optional(),\n completionTokens: z3.number(),\n completionTokensDetails: z3.object({\n reasoningTokens: z3.number()\n }).catchall(z3.any()).optional(),\n totalTokens: z3.number(),\n cost: z3.number().optional(),\n costDetails: z3.object({\n upstreamInferenceCost: z3.number()\n }).catchall(z3.any()).optional()\n }).catchall(z3.any())\n}).catchall(z3.any());\nvar OpenRouterProviderOptionsSchema = z3.object({\n openrouter: z3.object({\n // Use ReasoningDetailArraySchema (with unknown fallback) instead of\n // z.array(ReasoningDetailUnionSchema) so that a single malformed entry\n // (e.g., a future format not yet in the enum) is individually dropped\n // rather than causing the entire array to fail parsing.\n reasoning_details: ReasoningDetailArraySchema.optional(),\n annotations: z3.array(FileAnnotationSchema).optional()\n }).optional()\n}).optional();\n\n// src/utils/compute-token-usage.ts\nfunction computeTokenUsage(usage) {\n var _a16, _b16, _c, _d, _e, _f, _g, _h;\n const promptTokens = (_a16 = usage.prompt_tokens) != null ? _a16 : 0;\n const completionTokens = (_b16 = usage.completion_tokens) != null ? _b16 : 0;\n const cacheReadTokens = (_d = (_c = usage.prompt_tokens_details) == null ? void 0 : _c.cached_tokens) != null ? _d : 0;\n const cacheWriteTokens = (_f = (_e = usage.prompt_tokens_details) == null ? void 0 : _e.cache_write_tokens) != null ? _f : void 0;\n const reasoningTokens = (_h = (_g = usage.completion_tokens_details) == null ? void 0 : _g.reasoning_tokens) != null ? _h : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: cacheWriteTokens\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\nfunction emptyUsage() {\n return {\n inputTokens: {\n total: 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n}\n\n// src/utils/map-finish-reason.ts\nfunction mapToUnified(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\nfunction mapOpenRouterFinishReason(finishReason) {\n return {\n unified: mapToUnified(finishReason),\n raw: finishReason != null ? finishReason : void 0\n };\n}\nfunction createFinishReason(unified, raw) {\n return { unified, raw };\n}\n\n// src/utils/with-stream-error-handling.ts\nfunction withStreamErrorHandling(source, onError) {\n const reader = source.getReader();\n return new ReadableStream({\n async pull(controller) {\n try {\n const { done, value } = await reader.read();\n if (done) {\n controller.close();\n } else {\n controller.enqueue(value);\n }\n } catch (err) {\n onError(err);\n reader.cancel().catch(() => {\n });\n controller.close();\n }\n },\n cancel(reason) {\n reader.cancel(reason);\n }\n });\n}\n\n// src/utils/deterministic-stringify.ts\nfunction deterministicStringify(value) {\n return JSON.stringify(sortKeys(value));\n}\nfunction sortKeys(value) {\n if (value === null || value === void 0) {\n return value;\n }\n if (Array.isArray(value)) {\n return value.map(sortKeys);\n }\n if (typeof value === \"object\") {\n const sorted = {};\n const entries = Object.entries(value);\n entries.sort(([a], [b]) => a.localeCompare(b));\n for (const [key, val] of entries) {\n sorted[key] = sortKeys(val);\n }\n return sorted;\n }\n return value;\n}\n\n// src/utils/reasoning-details-duplicate-tracker.ts\nvar _seenKeys;\nvar ReasoningDetailsDuplicateTracker = class {\n constructor() {\n __privateAdd(this, _seenKeys, /* @__PURE__ */ new Set());\n }\n /**\n * Attempts to track a detail.\n * Returns true if this is a NEW detail (not seen before and has valid key),\n * false if it was skipped (no valid key) or already seen (duplicate).\n */\n upsert(detail) {\n const key = this.getCanonicalKey(detail);\n if (key === null) {\n return false;\n }\n if (__privateGet(this, _seenKeys).has(key)) {\n return false;\n }\n __privateGet(this, _seenKeys).add(key);\n return true;\n }\n getCanonicalKey(detail) {\n switch (detail.type) {\n case \"reasoning.summary\" /* Summary */:\n return detail.summary;\n case \"reasoning.encrypted\" /* Encrypted */:\n if (detail.id) {\n return detail.id;\n }\n return detail.data;\n case \"reasoning.text\" /* Text */: {\n if (detail.text) {\n return detail.text;\n }\n if (detail.signature) {\n return detail.signature;\n }\n return null;\n }\n default: {\n return null;\n }\n }\n }\n};\n_seenKeys = new WeakMap();\n\n// src/types/openrouter-chat-completions-input.ts\nvar OPENROUTER_AUDIO_FORMATS = [\n \"wav\",\n \"mp3\",\n \"aiff\",\n \"aac\",\n \"ogg\",\n \"flac\",\n \"m4a\",\n \"pcm16\",\n \"pcm24\"\n];\n\n// src/chat/is-url.ts\nfunction isUrl({\n url,\n protocols\n}) {\n try {\n const urlObj = new URL(url);\n return protocols.has(urlObj.protocol);\n } catch (_) {\n return false;\n }\n}\n\n// src/chat/file-url-utils.ts\nfunction buildFileDataUrl({\n data,\n mediaType,\n defaultMediaType\n}) {\n if (data instanceof Uint8Array) {\n const base64 = convertUint8ArrayToBase64(data);\n return `data:${mediaType != null ? mediaType : defaultMediaType};base64,${base64}`;\n }\n const stringData = data.toString();\n if (isUrl({\n url: stringData,\n protocols: /* @__PURE__ */ new Set([\"http:\", \"https:\"])\n })) {\n return stringData;\n }\n return stringData.startsWith(\"data:\") ? stringData : `data:${mediaType != null ? mediaType : defaultMediaType};base64,${stringData}`;\n}\nfunction getFileUrl({\n part,\n defaultMediaType\n}) {\n const data = part.data instanceof URL ? part.data.toString() : part.data;\n return buildFileDataUrl({\n data,\n mediaType: part.mediaType,\n defaultMediaType\n });\n}\nfunction getMediaType(dataUrl, defaultMediaType) {\n var _a16;\n const match = dataUrl.match(/^data:([^;]+)/);\n return match ? (_a16 = match[1]) != null ? _a16 : defaultMediaType : defaultMediaType;\n}\nfunction getBase64FromDataUrl(dataUrl) {\n const match = dataUrl.match(/^data:[^;]*;base64,(.+)$/);\n return match ? match[1] : dataUrl;\n}\nvar MIME_TO_FORMAT = {\n // MP3 variants\n mpeg: \"mp3\",\n mp3: \"mp3\",\n // WAV variants\n \"x-wav\": \"wav\",\n wave: \"wav\",\n wav: \"wav\",\n // OGG variants\n ogg: \"ogg\",\n vorbis: \"ogg\",\n // AAC variants\n aac: \"aac\",\n \"x-aac\": \"aac\",\n // M4A variants\n m4a: \"m4a\",\n \"x-m4a\": \"m4a\",\n mp4: \"m4a\",\n // AIFF variants\n aiff: \"aiff\",\n \"x-aiff\": \"aiff\",\n // FLAC\n flac: \"flac\",\n \"x-flac\": \"flac\",\n // PCM variants\n pcm16: \"pcm16\",\n pcm24: \"pcm24\"\n};\nfunction getInputAudioData(part) {\n const fileData = getFileUrl({\n part,\n defaultMediaType: \"audio/mpeg\"\n });\n if (isUrl({\n url: fileData,\n protocols: /* @__PURE__ */ new Set([\"http:\", \"https:\"])\n })) {\n throw new Error(\n `Audio files cannot be provided as URLs.\n\nOpenRouter requires audio to be base64-encoded. Please:\n1. Download the audio file locally\n2. Read it as a Buffer or Uint8Array\n3. Pass it as the data parameter\n\nThe AI SDK will automatically handle base64 encoding.\n\nLearn more: https://openrouter.ai/docs/features/multimodal/audio`\n );\n }\n const data = getBase64FromDataUrl(fileData);\n const mediaType = part.mediaType || \"audio/mpeg\";\n const rawFormat = mediaType.replace(\"audio/\", \"\");\n const format = MIME_TO_FORMAT[rawFormat];\n if (format === void 0) {\n const supportedList = OPENROUTER_AUDIO_FORMATS.join(\", \");\n throw new Error(\n `Unsupported audio format: \"${mediaType}\"\n\nOpenRouter supports the following audio formats: ${supportedList}\n\nLearn more: https://openrouter.ai/docs/features/multimodal/audio`\n );\n }\n return { data, format };\n}\n\n// src/chat/convert-to-openrouter-chat-messages.ts\nfunction getCacheControl(providerMetadata) {\n var _a16, _b16, _c;\n const anthropic = providerMetadata == null ? void 0 : providerMetadata.anthropic;\n const openrouter2 = providerMetadata == null ? void 0 : providerMetadata.openrouter;\n return (_c = (_b16 = (_a16 = openrouter2 == null ? void 0 : openrouter2.cacheControl) != null ? _a16 : openrouter2 == null ? void 0 : openrouter2.cache_control) != null ? _b16 : anthropic == null ? void 0 : anthropic.cacheControl) != null ? _c : anthropic == null ? void 0 : anthropic.cache_control;\n}\nfunction convertToOpenRouterChatMessages(prompt) {\n var _a16, _b16, _c, _d, _e, _f, _g, _h;\n const messages = [];\n const reasoningDetailsTracker = new ReasoningDetailsDuplicateTracker();\n for (const { role, content, providerOptions } of prompt) {\n switch (role) {\n case \"system\": {\n const cacheControl = getCacheControl(providerOptions);\n messages.push({\n role: \"system\",\n content: [\n __spreadValues({\n type: \"text\",\n text: content\n }, cacheControl && { cache_control: cacheControl })\n ]\n });\n break;\n }\n case \"user\": {\n if (content.length === 1 && ((_a16 = content[0]) == null ? void 0 : _a16.type) === \"text\") {\n const cacheControl = (_b16 = getCacheControl(providerOptions)) != null ? _b16 : getCacheControl(content[0].providerOptions);\n const contentWithCacheControl = cacheControl ? [\n {\n type: \"text\",\n text: content[0].text,\n cache_control: cacheControl\n }\n ] : content[0].text;\n messages.push({\n role: \"user\",\n content: contentWithCacheControl\n });\n break;\n }\n const messageCacheControl = getCacheControl(providerOptions);\n let lastTextPartIndex = -1;\n for (let i = content.length - 1; i >= 0; i--) {\n if (((_c = content[i]) == null ? void 0 : _c.type) === \"text\") {\n lastTextPartIndex = i;\n break;\n }\n }\n const contentParts = content.map(\n (part, index) => {\n var _a17, _b17, _c2, _d2, _e2, _f2, _g2;\n const isLastTextPart = part.type === \"text\" && index === lastTextPartIndex;\n const partCacheControl = getCacheControl(part.providerOptions);\n const cacheControl = part.type === \"text\" ? partCacheControl != null ? partCacheControl : isLastTextPart ? messageCacheControl : void 0 : partCacheControl;\n switch (part.type) {\n case \"text\":\n return __spreadValues({\n type: \"text\",\n text: part.text\n }, cacheControl && { cache_control: cacheControl });\n case \"file\": {\n if ((_a17 = part.mediaType) == null ? void 0 : _a17.startsWith(\"image/\")) {\n const url = getFileUrl({\n part,\n defaultMediaType: \"image/jpeg\"\n });\n return __spreadValues({\n type: \"image_url\",\n image_url: {\n url\n }\n }, cacheControl && { cache_control: cacheControl });\n }\n if ((_b17 = part.mediaType) == null ? void 0 : _b17.startsWith(\"video/\")) {\n const url = getFileUrl({\n part,\n defaultMediaType: \"video/mp4\"\n });\n return __spreadValues({\n type: \"video_url\",\n video_url: {\n url\n }\n }, cacheControl && { cache_control: cacheControl });\n }\n if ((_c2 = part.mediaType) == null ? void 0 : _c2.startsWith(\"audio/\")) {\n return __spreadValues({\n type: \"input_audio\",\n input_audio: getInputAudioData(part)\n }, cacheControl && { cache_control: cacheControl });\n }\n const fileName = String(\n (_g2 = (_f2 = (_e2 = (_d2 = part.providerOptions) == null ? void 0 : _d2.openrouter) == null ? void 0 : _e2.filename) != null ? _f2 : part.filename) != null ? _g2 : \"\"\n );\n const fileData = getFileUrl({\n part,\n defaultMediaType: \"application/pdf\"\n });\n if (isUrl({\n url: fileData,\n protocols: /* @__PURE__ */ new Set([\"http:\", \"https:\"])\n })) {\n return {\n type: \"file\",\n file: {\n filename: fileName,\n file_data: fileData\n }\n };\n }\n return __spreadValues({\n type: \"file\",\n file: {\n filename: fileName,\n file_data: fileData\n }\n }, cacheControl && { cache_control: cacheControl });\n }\n default: {\n return __spreadValues({\n type: \"text\",\n text: \"\"\n }, cacheControl && { cache_control: cacheControl });\n }\n }\n }\n );\n messages.push({\n role: \"user\",\n content: contentParts\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n let reasoning = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: deterministicStringify(part.input)\n }\n });\n break;\n }\n case \"reasoning\": {\n reasoning += part.text;\n break;\n }\n case \"file\":\n break;\n default: {\n break;\n }\n }\n }\n const parsedProviderOptions = OpenRouterProviderOptionsSchema.safeParse(providerOptions);\n const messageReasoningDetails = parsedProviderOptions.success ? (_e = (_d = parsedProviderOptions.data) == null ? void 0 : _d.openrouter) == null ? void 0 : _e.reasoning_details : void 0;\n const messageAnnotations = parsedProviderOptions.success ? (_g = (_f = parsedProviderOptions.data) == null ? void 0 : _f.openrouter) == null ? void 0 : _g.annotations : void 0;\n const candidateReasoningDetails = messageReasoningDetails && Array.isArray(messageReasoningDetails) ? messageReasoningDetails : findFirstReasoningDetails(content);\n let finalReasoningDetails;\n if (candidateReasoningDetails) {\n const validDetails = candidateReasoningDetails.filter((detail) => {\n var _a17;\n if (detail.type !== \"reasoning.text\" /* Text */) {\n return true;\n }\n const format = (_a17 = detail.format) != null ? _a17 : DEFAULT_REASONING_FORMAT;\n if (format !== \"anthropic-claude-v1\" /* AnthropicClaudeV1 */ && format !== \"google-gemini-v1\" /* GoogleGeminiV1 */) {\n return true;\n }\n return !!detail.signature;\n });\n if (validDetails.length < candidateReasoningDetails.length) {\n const logger = globalThis.AI_SDK_LOG_WARNINGS;\n if (logger !== false && typeof logger !== \"function\") {\n console.warn(\n \"[openrouter] Some reasoning_details entries were removed because they were missing signatures. See https://github.com/OpenRouterTeam/ai-sdk-provider/issues/423 and https://github.com/OpenRouterTeam/ai-sdk-provider/issues/418 for more details.\"\n );\n }\n }\n const uniqueDetails = [];\n for (const detail of validDetails) {\n if (reasoningDetailsTracker.upsert(detail)) {\n uniqueDetails.push(detail);\n }\n }\n finalReasoningDetails = uniqueDetails;\n }\n const effectiveReasoning = reasoning && finalReasoningDetails && finalReasoningDetails.length > 0 ? reasoning : void 0;\n messages.push({\n role: \"assistant\",\n content: text || null,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0,\n reasoning: effectiveReasoning,\n reasoning_details: finalReasoningDetails,\n annotations: messageAnnotations,\n cache_control: getCacheControl(providerOptions)\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const content2 = getToolResultContent(toolResponse);\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: content2,\n name: toolResponse.toolName,\n cache_control: (_h = getCacheControl(providerOptions)) != null ? _h : getCacheControl(toolResponse.providerOptions)\n });\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n return messages;\n}\nfunction getToolResultContent(input) {\n var _a16;\n switch (input.output.type) {\n case \"text\":\n case \"error-text\":\n return input.output.value;\n case \"json\":\n case \"error-json\":\n return JSON.stringify(input.output.value);\n case \"content\":\n return mapToolResultContentParts(input.output.value);\n case \"execution-denied\":\n return (_a16 = input.output.reason) != null ? _a16 : \"Tool execution denied\";\n }\n}\nfunction mapToolResultContentParts(parts) {\n return parts.map((part) => {\n var _a16, _b16, _c, _d;\n switch (part.type) {\n case \"text\":\n return { type: \"text\", text: part.text };\n case \"image-data\":\n return {\n type: \"image_url\",\n image_url: {\n url: buildFileDataUrl({\n data: part.data,\n mediaType: part.mediaType,\n defaultMediaType: \"image/jpeg\"\n })\n }\n };\n case \"image-url\":\n return {\n type: \"image_url\",\n image_url: { url: part.url }\n };\n case \"file-data\": {\n const dataUrl = buildFileDataUrl({\n data: part.data,\n mediaType: part.mediaType,\n defaultMediaType: \"application/octet-stream\"\n });\n if ((_a16 = part.mediaType) == null ? void 0 : _a16.startsWith(\"image/\")) {\n return {\n type: \"image_url\",\n image_url: { url: dataUrl }\n };\n }\n if ((_b16 = part.mediaType) == null ? void 0 : _b16.startsWith(\"video/\")) {\n return {\n type: \"video_url\",\n video_url: { url: dataUrl }\n };\n }\n if ((_c = part.mediaType) == null ? void 0 : _c.startsWith(\"audio/\")) {\n const rawFormat = part.mediaType.replace(\"audio/\", \"\");\n const format = MIME_TO_FORMAT[rawFormat];\n if (format !== void 0) {\n return {\n type: \"input_audio\",\n input_audio: {\n data: getBase64FromDataUrl(dataUrl),\n format\n }\n };\n }\n }\n return {\n type: \"file\",\n file: {\n filename: (_d = part.filename) != null ? _d : \"\",\n file_data: dataUrl\n }\n };\n }\n case \"file-url\": {\n if (looksLikeImageUrl(part.url)) {\n return {\n type: \"image_url\",\n image_url: { url: part.url }\n };\n }\n return {\n type: \"file\",\n file: {\n filename: filenameFromUrl(part.url),\n file_data: part.url\n }\n };\n }\n case \"file-id\":\n case \"image-file-id\":\n case \"custom\":\n return { type: \"text\", text: JSON.stringify(part) };\n default: {\n const _exhaustiveCheck = part;\n return { type: \"text\", text: JSON.stringify(_exhaustiveCheck) };\n }\n }\n });\n}\nvar IMAGE_EXTENSIONS = /* @__PURE__ */ new Set([\n \"jpg\",\n \"jpeg\",\n \"png\",\n \"gif\",\n \"webp\",\n \"svg\",\n \"bmp\",\n \"ico\",\n \"tif\",\n \"tiff\",\n \"avif\"\n]);\nfunction looksLikeImageUrl(url) {\n var _a16;\n try {\n const pathname = new URL(url).pathname;\n const ext = (_a16 = pathname.split(\".\").pop()) == null ? void 0 : _a16.toLowerCase();\n return ext !== void 0 && IMAGE_EXTENSIONS.has(ext);\n } catch (e) {\n return false;\n }\n}\nfunction filenameFromUrl(url) {\n try {\n const pathname = new URL(url).pathname;\n const last = pathname.split(\"/\").pop();\n return (last == null ? void 0 : last.includes(\".\")) ? last : \"\";\n } catch (e) {\n return \"\";\n }\n}\nfunction findFirstReasoningDetails(content) {\n var _a16, _b16, _c, _d;\n for (const part of content) {\n if (part.type === \"tool-call\") {\n const parsed = OpenRouterProviderOptionsSchema.safeParse(\n part.providerOptions\n );\n if (parsed.success && ((_b16 = (_a16 = parsed.data) == null ? void 0 : _a16.openrouter) == null ? void 0 : _b16.reasoning_details) && parsed.data.openrouter.reasoning_details.length > 0) {\n return parsed.data.openrouter.reasoning_details;\n }\n }\n }\n for (const part of content) {\n if (part.type === \"reasoning\") {\n const parsed = OpenRouterProviderOptionsSchema.safeParse(\n part.providerOptions\n );\n if (parsed.success && ((_d = (_c = parsed.data) == null ? void 0 : _c.openrouter) == null ? void 0 : _d.reasoning_details) && parsed.data.openrouter.reasoning_details.length > 0) {\n return parsed.data.openrouter.reasoning_details;\n }\n }\n }\n return void 0;\n}\n\n// src/chat/get-tool-choice.ts\nimport { z as z5 } from \"zod/v4\";\nvar ChatCompletionToolChoiceSchema = z5.union([\n z5.literal(\"auto\"),\n z5.literal(\"none\"),\n z5.literal(\"required\"),\n z5.object({\n type: z5.literal(\"function\"),\n function: z5.object({\n name: z5.string()\n })\n })\n]);\nfunction getChatCompletionToolChoice(toolChoice) {\n switch (toolChoice.type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return toolChoice.type;\n case \"tool\": {\n return {\n type: \"function\",\n function: { name: toolChoice.toolName }\n };\n }\n default: {\n toolChoice;\n throw new InvalidArgumentError({\n argument: \"toolChoice\",\n message: `Invalid tool choice type: ${JSON.stringify(toolChoice)}`\n });\n }\n }\n}\n\n// src/chat/schemas.ts\nimport { z as z7 } from \"zod/v4\";\n\n// src/schemas/image.ts\nimport { z as z6 } from \"zod/v4\";\nvar ImageResponseSchema = z6.object({\n type: z6.literal(\"image_url\"),\n image_url: z6.object({\n url: z6.string()\n }).passthrough()\n}).passthrough();\nvar ImageResponseWithUnknownSchema = z6.union([\n ImageResponseSchema,\n z6.unknown().transform(() => null)\n]);\nvar ImageResponseArraySchema = z6.array(ImageResponseWithUnknownSchema).transform((d) => d.filter((d2) => !!d2));\n\n// src/chat/schemas.ts\nvar OpenRouterChatCompletionBaseResponseSchema = z7.object({\n id: z7.string().optional(),\n model: z7.string().optional(),\n provider: z7.string().optional(),\n usage: z7.object({\n prompt_tokens: z7.number(),\n prompt_tokens_details: z7.object({\n cached_tokens: z7.number(),\n cache_write_tokens: z7.number().nullish()\n }).passthrough().nullish(),\n completion_tokens: z7.number(),\n completion_tokens_details: z7.object({\n reasoning_tokens: z7.number()\n }).passthrough().nullish(),\n total_tokens: z7.number(),\n cost: z7.number().optional(),\n cost_details: z7.object({\n upstream_inference_cost: z7.number().nullish()\n }).passthrough().nullish()\n }).passthrough().nullish()\n}).passthrough();\nvar OpenRouterNonStreamChatCompletionResponseSchema = z7.union([\n // Success response with choices\n OpenRouterChatCompletionBaseResponseSchema.extend({\n choices: z7.array(\n z7.object({\n message: z7.object({\n role: z7.literal(\"assistant\"),\n content: z7.string().nullable().optional(),\n reasoning: z7.string().nullable().optional(),\n reasoning_details: ReasoningDetailArraySchema.nullish(),\n images: ImageResponseArraySchema.nullish(),\n tool_calls: z7.array(\n z7.object({\n id: z7.string().optional().nullable(),\n type: z7.literal(\"function\"),\n function: z7.object({\n name: z7.string(),\n arguments: z7.string().optional()\n }).passthrough()\n }).passthrough()\n ).optional(),\n annotations: z7.array(\n z7.union([\n // URL citation from web search\n // title, start_index, end_index are optional as some upstream providers may omit them\n z7.object({\n type: z7.literal(\"url_citation\"),\n url_citation: z7.object({\n url: z7.string(),\n title: z7.string().optional(),\n start_index: z7.number().optional(),\n end_index: z7.number().optional(),\n content: z7.string().optional()\n }).passthrough()\n }).passthrough(),\n // File annotation from FileParserPlugin (old format)\n z7.object({\n type: z7.literal(\"file_annotation\"),\n file_annotation: z7.object({\n file_id: z7.string(),\n quote: z7.string().optional()\n }).passthrough()\n }).passthrough(),\n // File annotation from FileParserPlugin (new format)\n z7.object({\n type: z7.literal(\"file\"),\n file: z7.object({\n hash: z7.string(),\n name: z7.string(),\n content: z7.array(\n z7.object({\n type: z7.string(),\n text: z7.string().optional()\n }).passthrough()\n ).optional()\n }).passthrough()\n }).passthrough()\n ])\n ).nullish()\n }).passthrough(),\n index: z7.number().nullish(),\n logprobs: z7.object({\n content: z7.array(\n z7.object({\n token: z7.string(),\n logprob: z7.number(),\n top_logprobs: z7.array(\n z7.object({\n token: z7.string(),\n logprob: z7.number()\n }).passthrough()\n )\n }).passthrough()\n ).nullable()\n }).passthrough().nullable().optional(),\n finish_reason: z7.string().optional().nullable()\n }).passthrough()\n )\n }),\n // Error response (HTTP 200 with error payload)\n OpenRouterErrorResponseSchema.extend({\n user_id: z7.string().optional()\n })\n]);\nvar OpenRouterStreamChatCompletionChunkSchema = z7.union([\n OpenRouterChatCompletionBaseResponseSchema.extend({\n choices: z7.array(\n z7.object({\n delta: z7.object({\n role: z7.enum([\"assistant\"]).optional(),\n content: z7.string().nullish(),\n reasoning: z7.string().nullish().optional(),\n reasoning_details: ReasoningDetailArraySchema.nullish(),\n images: ImageResponseArraySchema.nullish(),\n tool_calls: z7.array(\n z7.object({\n index: z7.number().nullish(),\n id: z7.string().nullish(),\n type: z7.literal(\"function\").optional(),\n function: z7.object({\n name: z7.string().nullish(),\n arguments: z7.string().nullish()\n }).passthrough()\n }).passthrough()\n ).nullish(),\n annotations: z7.array(\n z7.union([\n // URL citation from web search\n // title, start_index, end_index are optional as some upstream providers may omit them\n z7.object({\n type: z7.literal(\"url_citation\"),\n url_citation: z7.object({\n url: z7.string(),\n title: z7.string().optional(),\n start_index: z7.number().optional(),\n end_index: z7.number().optional(),\n content: z7.string().optional()\n }).passthrough()\n }).passthrough(),\n // File annotation from FileParserPlugin (old format)\n z7.object({\n type: z7.literal(\"file_annotation\"),\n file_annotation: z7.object({\n file_id: z7.string(),\n quote: z7.string().optional()\n }).passthrough()\n }).passthrough(),\n // File annotation from FileParserPlugin (new format)\n z7.object({\n type: z7.literal(\"file\"),\n file: z7.object({\n hash: z7.string(),\n name: z7.string(),\n content: z7.array(\n z7.object({\n type: z7.string(),\n text: z7.string().optional()\n }).passthrough()\n ).optional()\n }).passthrough()\n }).passthrough()\n ])\n ).nullish()\n }).passthrough().nullish(),\n logprobs: z7.object({\n content: z7.array(\n z7.object({\n token: z7.string(),\n logprob: z7.number(),\n top_logprobs: z7.array(\n z7.object({\n token: z7.string(),\n logprob: z7.number()\n }).passthrough()\n )\n }).passthrough()\n ).nullable()\n }).passthrough().nullish(),\n finish_reason: z7.string().nullable().optional(),\n index: z7.number().nullish()\n }).passthrough()\n )\n }),\n OpenRouterErrorResponseSchema\n]);\n\n// src/chat/index.ts\nvar OpenRouterChatLanguageModel = class {\n constructor(modelId, settings, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"openrouter\";\n this.defaultObjectGenerationMode = \"tool\";\n this.supportsImageUrls = true;\n this.supportedUrls = {\n \"image/*\": [\n /^data:image\\/[a-zA-Z]+;base64,/,\n /^https?:\\/\\/.+\\.(jpg|jpeg|png|gif|webp)(?:[?#].*)?$/i\n ],\n // 'text/*': [/^data:text\\//, /^https?:\\/\\/.+$/],\n \"application/*\": [/^data:application\\//, /^https?:\\/\\/.+$/]\n };\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n frequencyPenalty,\n presencePenalty,\n seed,\n stopSequences,\n responseFormat,\n topK,\n tools,\n toolChoice\n }) {\n var _a16, _b16, _c, _d;\n const baseArgs = __spreadValues(__spreadValues({\n // model id:\n model: this.modelId,\n models: this.settings.models,\n // model specific settings:\n logit_bias: this.settings.logitBias,\n logprobs: this.settings.logprobs === true || typeof this.settings.logprobs === \"number\" ? true : void 0,\n top_logprobs: typeof this.settings.logprobs === \"number\" ? this.settings.logprobs : typeof this.settings.logprobs === \"boolean\" ? this.settings.logprobs ? 0 : void 0 : void 0,\n user: this.settings.user,\n parallel_tool_calls: this.settings.parallelToolCalls,\n // standardized settings (call-level options override model-level settings):\n max_tokens: maxOutputTokens != null ? maxOutputTokens : this.settings.maxTokens,\n temperature: temperature != null ? temperature : this.settings.temperature,\n top_p: topP != null ? topP : this.settings.topP,\n frequency_penalty: frequencyPenalty != null ? frequencyPenalty : this.settings.frequencyPenalty,\n presence_penalty: presencePenalty != null ? presencePenalty : this.settings.presencePenalty,\n seed,\n stop: stopSequences,\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: __spreadValues({\n schema: responseFormat.schema,\n strict: (_b16 = (_a16 = this.settings.structuredOutputs) == null ? void 0 : _a16.strict) != null ? _b16 : true,\n name: (_c = responseFormat.name) != null ? _c : \"response\"\n }, responseFormat.description && {\n description: responseFormat.description\n })\n } : { type: \"json_object\" } : void 0,\n top_k: topK != null ? topK : this.settings.topK,\n // messages:\n messages: convertToOpenRouterChatMessages(prompt),\n // OpenRouter specific settings:\n include_reasoning: this.settings.includeReasoning,\n reasoning: this.settings.reasoning,\n usage: this.settings.usage,\n // Web search settings:\n plugins: this.settings.plugins,\n web_search_options: this.settings.web_search_options,\n // Provider routing settings:\n provider: this.settings.provider,\n // Debug settings:\n debug: this.settings.debug,\n // Anthropic automatic caching:\n cache_control: this.settings.cache_control\n }, this.config.extraBody), this.settings.extraBody);\n if (tools && tools.length > 0) {\n const mappedTools = [];\n for (const tool2 of tools) {\n if (tool2.type === \"function\") {\n const openrouterOptions = (_d = tool2.providerOptions) == null ? void 0 : _d.openrouter;\n const eagerInputStreaming = openrouterOptions == null ? void 0 : openrouterOptions.eager_input_streaming;\n mappedTools.push(__spreadValues({\n type: \"function\",\n function: {\n name: tool2.name,\n description: tool2.description,\n parameters: tool2.inputSchema\n }\n }, eagerInputStreaming != null && {\n eager_input_streaming: eagerInputStreaming\n }));\n } else if (tool2.type === \"provider\") {\n mappedTools.push(mapProviderTool(tool2));\n }\n }\n return __spreadProps(__spreadValues({}, baseArgs), {\n tools: mappedTools,\n tool_choice: toolChoice ? getChatCompletionToolChoice(toolChoice) : void 0\n });\n }\n return baseArgs;\n }\n async doGenerate(options) {\n var _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u, _v;\n const providerOptions = options.providerOptions || {};\n const openrouterOptions = providerOptions.openrouter || {};\n const _a16 = openrouterOptions, { cacheControl } = _a16, restOpenrouterOptions = __objRest(_a16, [\"cacheControl\"]);\n const args = __spreadValues(__spreadValues(__spreadValues({}, this.getArgs(options)), restOpenrouterOptions), cacheControl != null && !(\"cache_control\" in restOpenrouterOptions) ? { cache_control: cacheControl } : {});\n const { value: responseValue, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n OpenRouterNonStreamChatCompletionResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n if (\"error\" in responseValue) {\n const errorData = responseValue.error;\n throw new APICallError({\n message: errorData.message,\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n requestBodyValues: args,\n statusCode: 200,\n responseHeaders,\n data: errorData\n });\n }\n const response = responseValue;\n const choice = response.choices[0];\n if (!choice) {\n throw new NoContentGeneratedError({\n message: \"No choice in response\"\n });\n }\n const usageInfo = response.usage ? computeTokenUsage(response.usage) : emptyUsage();\n const reasoningDetails = (_b16 = choice.message.reasoning_details) != null ? _b16 : [];\n const reasoning = reasoningDetails.length > 0 ? reasoningDetails.map((detail) => {\n switch (detail.type) {\n case \"reasoning.text\" /* Text */: {\n if (detail.text) {\n return {\n type: \"reasoning\",\n text: detail.text,\n providerMetadata: {\n openrouter: {\n reasoning_details: [detail]\n }\n }\n };\n }\n break;\n }\n case \"reasoning.summary\" /* Summary */: {\n if (detail.summary) {\n return {\n type: \"reasoning\",\n text: detail.summary,\n providerMetadata: {\n openrouter: {\n reasoning_details: [detail]\n }\n }\n };\n }\n break;\n }\n case \"reasoning.encrypted\" /* Encrypted */: {\n break;\n }\n default: {\n detail;\n }\n }\n return null;\n }).filter((p) => p !== null) : choice.message.reasoning ? [\n {\n type: \"reasoning\",\n text: choice.message.reasoning\n }\n ] : [];\n const content = [];\n content.push(...reasoning);\n if (choice.message.content) {\n content.push({\n type: \"text\",\n text: choice.message.content\n });\n }\n if (choice.message.tool_calls) {\n let reasoningDetailsAttachedToToolCall = false;\n const seenToolCallIds = /* @__PURE__ */ new Set();\n for (const toolCall of choice.message.tool_calls) {\n let toolCallId = toolCall.id;\n if (!toolCallId || seenToolCallIds.has(toolCallId)) {\n toolCallId = generateId();\n }\n seenToolCallIds.add(toolCallId);\n content.push({\n type: \"tool-call\",\n toolCallId,\n toolName: toolCall.function.name,\n input: (_c = toolCall.function.arguments) != null ? _c : \"{}\",\n providerMetadata: !reasoningDetailsAttachedToToolCall ? {\n openrouter: {\n reasoning_details: reasoningDetails\n }\n } : void 0\n });\n reasoningDetailsAttachedToToolCall = true;\n }\n }\n if (choice.message.images) {\n for (const image of choice.message.images) {\n content.push({\n type: \"file\",\n mediaType: getMediaType(image.image_url.url, \"image/jpeg\"),\n data: getBase64FromDataUrl(image.image_url.url)\n });\n }\n }\n if (choice.message.annotations) {\n for (const annotation of choice.message.annotations) {\n if (annotation.type === \"url_citation\") {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: annotation.url_citation.url,\n url: annotation.url_citation.url,\n title: (_d = annotation.url_citation.title) != null ? _d : \"\",\n providerMetadata: {\n openrouter: {\n content: (_e = annotation.url_citation.content) != null ? _e : \"\",\n startIndex: (_f = annotation.url_citation.start_index) != null ? _f : 0,\n endIndex: (_g = annotation.url_citation.end_index) != null ? _g : 0\n }\n }\n });\n }\n }\n }\n const fileAnnotations = (_h = choice.message.annotations) == null ? void 0 : _h.filter(\n (a) => a.type === \"file\"\n );\n const hasToolCalls = choice.message.tool_calls && choice.message.tool_calls.length > 0;\n const hasEncryptedReasoning = reasoningDetails.some(\n (d) => d.type === \"reasoning.encrypted\" /* Encrypted */ && d.data\n );\n const shouldOverrideFinishReason = hasToolCalls && hasEncryptedReasoning && choice.finish_reason === \"stop\";\n const mappedFinishReason = shouldOverrideFinishReason ? createFinishReason(\"tool-calls\", (_i = choice.finish_reason) != null ? _i : void 0) : mapOpenRouterFinishReason(choice.finish_reason);\n const effectiveFinishReason = hasToolCalls && mappedFinishReason.unified === \"other\" ? createFinishReason(\"tool-calls\", mappedFinishReason.raw) : mappedFinishReason;\n return {\n content,\n finishReason: effectiveFinishReason,\n usage: usageInfo,\n warnings: [],\n providerMetadata: {\n openrouter: OpenRouterProviderMetadataSchema.parse({\n provider: (_j = response.provider) != null ? _j : \"\",\n reasoning_details: (_k = choice.message.reasoning_details) != null ? _k : [],\n annotations: fileAnnotations && fileAnnotations.length > 0 ? fileAnnotations : void 0,\n usage: __spreadValues(__spreadValues(__spreadValues(__spreadValues({\n promptTokens: (_l = usageInfo.inputTokens.total) != null ? _l : 0,\n completionTokens: (_m = usageInfo.outputTokens.total) != null ? _m : 0,\n totalTokens: ((_n = usageInfo.inputTokens.total) != null ? _n : 0) + ((_o = usageInfo.outputTokens.total) != null ? _o : 0)\n }, ((_p = response.usage) == null ? void 0 : _p.cost) != null ? { cost: response.usage.cost } : {}), ((_r = (_q = response.usage) == null ? void 0 : _q.prompt_tokens_details) == null ? void 0 : _r.cached_tokens) != null ? {\n promptTokensDetails: {\n cachedTokens: response.usage.prompt_tokens_details.cached_tokens\n }\n } : {}), ((_t = (_s = response.usage) == null ? void 0 : _s.completion_tokens_details) == null ? void 0 : _t.reasoning_tokens) != null ? {\n completionTokensDetails: {\n reasoningTokens: response.usage.completion_tokens_details.reasoning_tokens\n }\n } : {}), ((_v = (_u = response.usage) == null ? void 0 : _u.cost_details) == null ? void 0 : _v.upstream_inference_cost) != null ? {\n costDetails: {\n upstreamInferenceCost: response.usage.cost_details.upstream_inference_cost\n }\n } : {})\n })\n },\n request: { body: args },\n response: {\n id: response.id,\n modelId: response.model,\n headers: responseHeaders,\n body: response\n }\n };\n }\n async doStream(options) {\n var _b16;\n const providerOptions = options.providerOptions || {};\n const openrouterOptions = providerOptions.openrouter || {};\n const _a16 = openrouterOptions, { cacheControl } = _a16, restOpenrouterOptions = __objRest(_a16, [\"cacheControl\"]);\n const args = __spreadValues(__spreadValues(__spreadValues({}, this.getArgs(options)), restOpenrouterOptions), cacheControl != null && !(\"cache_control\" in restOpenrouterOptions) ? { cache_control: cacheControl } : {});\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: __spreadProps(__spreadValues({}, args), {\n stream: true,\n // only include stream_options when in strict compatibility mode:\n stream_options: this.config.compatibility === \"strict\" ? __spreadValues({\n include_usage: true\n }, ((_b16 = this.settings.usage) == null ? void 0 : _b16.include) ? { include_usage: true } : {}) : void 0\n }),\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n OpenRouterStreamChatCompletionChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let streamError;\n const safeResponse = withStreamErrorHandling(response, (err) => {\n streamError = err;\n });\n const toolCalls = [];\n const seenToolCallIds = /* @__PURE__ */ new Set();\n let finishReason = createFinishReason(\"other\");\n const usage = {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n const openrouterUsage = {};\n let rawUsage;\n const accumulatedReasoningDetails = [];\n let reasoningDetailsAttachedToToolCall = false;\n const accumulatedFileAnnotations = [];\n let textStarted = false;\n let reasoningStarted = false;\n let textId;\n let reasoningId;\n let openrouterResponseId;\n let provider;\n return {\n stream: safeResponse.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n var _a17, _b17, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q, _r, _s, _t, _u;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = createFinishReason(\"error\");\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = createFinishReason(\"error\");\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (value.provider) {\n provider = value.provider;\n }\n if (value.id) {\n openrouterResponseId = value.id;\n controller.enqueue({\n type: \"response-metadata\",\n id: value.id\n });\n }\n if (value.model) {\n controller.enqueue({\n type: \"response-metadata\",\n modelId: value.model\n });\n }\n if (value.usage != null) {\n const computed = computeTokenUsage(value.usage);\n Object.assign(usage.inputTokens, computed.inputTokens);\n Object.assign(usage.outputTokens, computed.outputTokens);\n rawUsage = value.usage;\n const promptTokens = (_a17 = value.usage.prompt_tokens) != null ? _a17 : 0;\n const completionTokens = (_b17 = value.usage.completion_tokens) != null ? _b17 : 0;\n openrouterUsage.promptTokens = promptTokens;\n if (value.usage.prompt_tokens_details) {\n openrouterUsage.promptTokensDetails = {\n cachedTokens: (_c = value.usage.prompt_tokens_details.cached_tokens) != null ? _c : 0\n };\n }\n openrouterUsage.completionTokens = completionTokens;\n if (value.usage.completion_tokens_details) {\n openrouterUsage.completionTokensDetails = {\n reasoningTokens: (_d = value.usage.completion_tokens_details.reasoning_tokens) != null ? _d : 0\n };\n }\n if (value.usage.cost != null) {\n openrouterUsage.cost = value.usage.cost;\n }\n openrouterUsage.totalTokens = value.usage.total_tokens;\n const upstreamInferenceCost = (_e = value.usage.cost_details) == null ? void 0 : _e.upstream_inference_cost;\n if (upstreamInferenceCost != null) {\n openrouterUsage.costDetails = {\n upstreamInferenceCost\n };\n }\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = mapOpenRouterFinishReason(choice.finish_reason);\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n const emitReasoningChunk = (chunkText) => {\n if (!reasoningStarted) {\n reasoningId = generateId();\n controller.enqueue({\n type: \"reasoning-start\",\n id: reasoningId\n });\n reasoningStarted = true;\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n delta: chunkText,\n id: reasoningId || generateId()\n });\n };\n if (delta.reasoning_details && delta.reasoning_details.length > 0) {\n for (const detail of delta.reasoning_details) {\n if (detail.type === \"reasoning.text\" /* Text */) {\n const lastDetail = accumulatedReasoningDetails[accumulatedReasoningDetails.length - 1];\n if ((lastDetail == null ? void 0 : lastDetail.type) === \"reasoning.text\" /* Text */) {\n lastDetail.text = (lastDetail.text || \"\") + (detail.text || \"\");\n lastDetail.signature = lastDetail.signature || detail.signature;\n lastDetail.format = lastDetail.format || detail.format;\n } else {\n accumulatedReasoningDetails.push(__spreadValues({}, detail));\n }\n } else {\n accumulatedReasoningDetails.push(detail);\n }\n }\n if (!textStarted) {\n for (const detail of delta.reasoning_details) {\n switch (detail.type) {\n case \"reasoning.text\" /* Text */: {\n emitReasoningChunk(detail.text || \"\");\n break;\n }\n case \"reasoning.encrypted\" /* Encrypted */: {\n break;\n }\n case \"reasoning.summary\" /* Summary */: {\n if (detail.summary) {\n emitReasoningChunk(detail.summary);\n }\n break;\n }\n default: {\n detail;\n break;\n }\n }\n }\n }\n } else if (delta.reasoning && !textStarted) {\n emitReasoningChunk(delta.reasoning);\n }\n if (delta.content) {\n if (reasoningStarted && !textStarted) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: reasoningId || generateId(),\n // Always include accumulated reasoning_details so the AI SDK can\n // update the reasoning part's providerMetadata with the correct\n // signature. The signature typically arrives in the last delta,\n // but reasoning-start only carries the first delta's metadata.\n // An empty array is intentional — it signals the provider produced\n // no reasoning tokens this turn (e.g. DeepSeek V4).\n providerMetadata: {\n openrouter: {\n reasoning_details: accumulatedReasoningDetails\n }\n }\n });\n reasoningStarted = false;\n }\n if (!textStarted) {\n textId = openrouterResponseId || generateId();\n controller.enqueue({\n type: \"text-start\",\n id: textId\n });\n textStarted = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n delta: delta.content,\n id: textId || generateId()\n });\n }\n if (delta.annotations) {\n for (const annotation of delta.annotations) {\n if (annotation.type === \"url_citation\") {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: annotation.url_citation.url,\n url: annotation.url_citation.url,\n title: (_f = annotation.url_citation.title) != null ? _f : \"\",\n providerMetadata: {\n openrouter: {\n content: (_g = annotation.url_citation.content) != null ? _g : \"\",\n startIndex: (_h = annotation.url_citation.start_index) != null ? _h : 0,\n endIndex: (_i = annotation.url_citation.end_index) != null ? _i : 0\n }\n }\n });\n } else if (annotation.type === \"file\") {\n const file = annotation.file;\n if (file && typeof file === \"object\" && \"hash\" in file && \"name\" in file) {\n accumulatedFileAnnotations.push(\n annotation\n );\n }\n }\n }\n }\n if (delta.tool_calls != null) {\n for (const toolCallDelta of delta.tool_calls) {\n const index = (_j = toolCallDelta.index) != null ? _j : toolCalls.length - 1;\n if (toolCalls[index] == null) {\n if (toolCallDelta.type !== \"function\") {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function' type.`\n });\n }\n if (((_k = toolCallDelta.function) == null ? void 0 : _k.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n let toolCallId = (_l = toolCallDelta.id) != null ? _l : \"\";\n if (!toolCallId || seenToolCallIds.has(toolCallId)) {\n toolCallId = generateId();\n }\n seenToolCallIds.add(toolCallId);\n toolCalls[index] = {\n id: toolCallId,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_m = toolCallDelta.function.arguments) != null ? _m : \"\"\n },\n inputStarted: false,\n sent: false\n };\n const toolCall2 = toolCalls[index];\n if (toolCall2 == null) {\n throw new InvalidResponseDataError({\n data: { index, toolCallsLength: toolCalls.length },\n message: `Tool call at index ${index} is missing after creation.`\n });\n }\n if (((_n = toolCall2.function) == null ? void 0 : _n.name) != null && ((_o = toolCall2.function) == null ? void 0 : _o.arguments) != null && isParsableJson(toolCall2.function.arguments)) {\n toolCall2.inputStarted = true;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCall2.id,\n toolName: toolCall2.function.name\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall2.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: toolCall2.id,\n toolName: toolCall2.function.name,\n input: toolCall2.function.arguments,\n providerMetadata: !reasoningDetailsAttachedToToolCall ? {\n openrouter: {\n reasoning_details: accumulatedReasoningDetails\n }\n } : void 0\n });\n reasoningDetailsAttachedToToolCall = true;\n toolCall2.sent = true;\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall == null) {\n throw new InvalidResponseDataError({\n data: {\n index,\n toolCallsLength: toolCalls.length,\n toolCallDelta\n },\n message: `Tool call at index ${index} is missing during merge.`\n });\n }\n if (!toolCall.inputStarted) {\n toolCall.inputStarted = true;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCall.id,\n toolName: toolCall.function.name\n });\n if (toolCall.function.arguments) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: toolCall.function.arguments\n });\n }\n }\n if (((_p = toolCallDelta.function) == null ? void 0 : _p.arguments) != null) {\n toolCall.function.arguments += (_r = (_q = toolCallDelta.function) == null ? void 0 : _q.arguments) != null ? _r : \"\";\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: (_s = toolCallDelta.function.arguments) != null ? _s : \"\"\n });\n if (!toolCall.sent && ((_t = toolCall.function) == null ? void 0 : _t.name) != null && ((_u = toolCall.function) == null ? void 0 : _u.arguments) != null && isParsableJson(toolCall.function.arguments)) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments,\n providerMetadata: !reasoningDetailsAttachedToToolCall ? {\n openrouter: {\n reasoning_details: accumulatedReasoningDetails\n }\n } : void 0\n });\n reasoningDetailsAttachedToToolCall = true;\n toolCall.sent = true;\n }\n }\n }\n if (delta.images != null) {\n for (const image of delta.images) {\n controller.enqueue({\n type: \"file\",\n mediaType: getMediaType(image.image_url.url, \"image/jpeg\"),\n data: getBase64FromDataUrl(image.image_url.url)\n });\n }\n }\n },\n flush(controller) {\n const hasToolCalls = toolCalls.length > 0;\n if (streamError != null) {\n finishReason = createFinishReason(\"error\");\n controller.enqueue({ type: \"error\", error: streamError });\n }\n const hasEncryptedReasoning = accumulatedReasoningDetails.some(\n (d) => d.type === \"reasoning.encrypted\" /* Encrypted */ && d.data\n );\n if (hasToolCalls && hasEncryptedReasoning && finishReason.unified === \"stop\") {\n finishReason = createFinishReason(\"tool-calls\", finishReason.raw);\n }\n if (hasToolCalls && finishReason.unified === \"other\") {\n finishReason = createFinishReason(\"tool-calls\", finishReason.raw);\n }\n if (finishReason.unified === \"tool-calls\") {\n for (const toolCall of toolCalls) {\n if (toolCall && !toolCall.sent) {\n const input = isParsableJson(toolCall.function.arguments) ? toolCall.function.arguments : \"{}\";\n if (!toolCall.inputStarted) {\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCall.id,\n toolName: toolCall.function.name\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: input\n });\n }\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input,\n providerMetadata: !reasoningDetailsAttachedToToolCall ? {\n openrouter: {\n reasoning_details: accumulatedReasoningDetails\n }\n } : void 0\n });\n reasoningDetailsAttachedToToolCall = true;\n toolCall.sent = true;\n }\n }\n }\n if (reasoningStarted) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: reasoningId || generateId(),\n // Always include accumulated reasoning_details so the AI SDK can\n // update the reasoning part's providerMetadata. An empty array is\n // intentional — it signals the provider produced no reasoning tokens.\n providerMetadata: {\n openrouter: {\n reasoning_details: accumulatedReasoningDetails\n }\n }\n });\n }\n if (textStarted) {\n controller.enqueue({\n type: \"text-end\",\n id: textId || generateId()\n });\n }\n const openrouterMetadata = {\n usage: openrouterUsage\n };\n if (provider !== void 0) {\n openrouterMetadata.provider = provider;\n }\n openrouterMetadata.reasoning_details = accumulatedReasoningDetails;\n if (accumulatedFileAnnotations.length > 0) {\n openrouterMetadata.annotations = accumulatedFileAnnotations;\n }\n if (usage.inputTokens.total === void 0 && openrouterUsage.promptTokens !== void 0) {\n usage.inputTokens.total = openrouterUsage.promptTokens;\n }\n if (usage.outputTokens.total === void 0 && openrouterUsage.completionTokens !== void 0) {\n usage.outputTokens.total = openrouterUsage.completionTokens;\n }\n usage.raw = rawUsage;\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage,\n providerMetadata: {\n openrouter: openrouterMetadata\n }\n });\n }\n })\n ),\n warnings: [],\n request: { body: args },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction mapProviderTool(tool2) {\n const [provider, toolName] = tool2.id.split(\".\");\n const apiToolType = `${provider}:${toolName}`;\n const mappedArgs = {};\n for (const [key, value] of Object.entries(tool2.args)) {\n if (value !== void 0) {\n mappedArgs[camelToSnake(key)] = value;\n }\n }\n return __spreadValues({\n type: apiToolType\n }, mappedArgs);\n}\nfunction camelToSnake(str) {\n return str.replace(/[A-Z]/g, (letter) => `_${letter.toLowerCase()}`);\n}\n\n// src/completion/convert-to-openrouter-completion-prompt.ts\nfunction convertToOpenRouterCompletionPrompt({\n prompt,\n inputFormat,\n user = \"user\",\n assistant = \"assistant\"\n}) {\n if (inputFormat === \"prompt\" && prompt.length === 1 && prompt[0] && prompt[0].role === \"user\" && prompt[0].content.length === 1 && prompt[0].content[0] && prompt[0].content[0].type === \"text\") {\n return { prompt: prompt[0].content[0].text };\n }\n let text = \"\";\n if (prompt[0] && prompt[0].role === \"system\") {\n text += `${prompt[0].content}\n\n`;\n prompt = prompt.slice(1);\n }\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n throw new InvalidPromptError({\n message: `Unexpected system message in prompt: ${content}`,\n prompt\n });\n }\n case \"user\": {\n const userMessage = content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return part.text;\n }\n case \"file\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"file attachments\"\n });\n }\n default: {\n return \"\";\n }\n }\n }).join(\"\");\n text += `${user}:\n${userMessage}\n\n`;\n break;\n }\n case \"assistant\": {\n const assistantMessage = content.map(\n (part) => {\n switch (part.type) {\n case \"text\": {\n return part.text;\n }\n case \"tool-call\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"tool-call messages\"\n });\n }\n case \"tool-result\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"tool-result messages\"\n });\n }\n case \"reasoning\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"reasoning messages\"\n });\n }\n case \"file\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"file attachments\"\n });\n }\n default: {\n return \"\";\n }\n }\n }\n ).join(\"\");\n text += `${assistant}:\n${assistantMessage}\n\n`;\n break;\n }\n case \"tool\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"tool messages\"\n });\n }\n default: {\n break;\n }\n }\n }\n text += `${assistant}:\n`;\n return {\n prompt: text\n };\n}\n\n// src/completion/schemas.ts\nimport { z as z8 } from \"zod/v4\";\nvar OpenRouterCompletionChunkSchema = z8.union([\n z8.object({\n id: z8.string().optional(),\n model: z8.string().optional(),\n provider: z8.string().optional(),\n choices: z8.array(\n z8.object({\n text: z8.string(),\n reasoning: z8.string().nullish().optional(),\n reasoning_details: ReasoningDetailArraySchema.nullish(),\n finish_reason: z8.string().nullish(),\n index: z8.number().nullish(),\n logprobs: z8.object({\n tokens: z8.array(z8.string()),\n token_logprobs: z8.array(z8.number()),\n top_logprobs: z8.array(z8.record(z8.string(), z8.number())).nullable()\n }).passthrough().nullable().optional()\n }).passthrough()\n ),\n usage: z8.object({\n prompt_tokens: z8.number(),\n prompt_tokens_details: z8.object({\n cached_tokens: z8.number(),\n cache_write_tokens: z8.number().nullish()\n }).passthrough().nullish(),\n completion_tokens: z8.number(),\n completion_tokens_details: z8.object({\n reasoning_tokens: z8.number()\n }).passthrough().nullish(),\n total_tokens: z8.number(),\n cost: z8.number().optional(),\n cost_details: z8.object({\n upstream_inference_cost: z8.number().nullish()\n }).passthrough().nullish()\n }).passthrough().nullish()\n }).passthrough(),\n OpenRouterErrorResponseSchema\n]);\n\n// src/completion/index.ts\nvar OpenRouterCompletionLanguageModel = class {\n constructor(modelId, settings, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"openrouter\";\n this.supportsImageUrls = true;\n this.supportedUrls = {\n \"image/*\": [\n /^data:image\\/[a-zA-Z]+;base64,/,\n /^https?:\\/\\/.+\\.(jpg|jpeg|png|gif|webp)(?:[?#].*)?$/i\n ],\n \"text/*\": [/^data:text\\//, /^https?:\\/\\/.+$/],\n \"application/*\": [/^data:application\\//, /^https?:\\/\\/.+$/]\n };\n this.defaultObjectGenerationMode = void 0;\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n frequencyPenalty,\n presencePenalty,\n seed,\n responseFormat,\n topK,\n stopSequences,\n tools,\n toolChoice\n }) {\n const { prompt: completionPrompt } = convertToOpenRouterCompletionPrompt({\n prompt,\n inputFormat: \"prompt\"\n });\n if (tools == null ? void 0 : tools.length) {\n throw new UnsupportedFunctionalityError({\n functionality: \"tools\"\n });\n }\n if (toolChoice) {\n throw new UnsupportedFunctionalityError({\n functionality: \"toolChoice\"\n });\n }\n return __spreadValues(__spreadValues({\n // model id:\n model: this.modelId,\n models: this.settings.models,\n // model specific settings:\n logit_bias: this.settings.logitBias,\n logprobs: typeof this.settings.logprobs === \"number\" ? this.settings.logprobs : typeof this.settings.logprobs === \"boolean\" ? this.settings.logprobs ? 0 : void 0 : void 0,\n suffix: this.settings.suffix,\n user: this.settings.user,\n // standardized settings (call-level options override model-level settings):\n max_tokens: maxOutputTokens != null ? maxOutputTokens : this.settings.maxTokens,\n temperature: temperature != null ? temperature : this.settings.temperature,\n top_p: topP != null ? topP : this.settings.topP,\n frequency_penalty: frequencyPenalty != null ? frequencyPenalty : this.settings.frequencyPenalty,\n presence_penalty: presencePenalty != null ? presencePenalty : this.settings.presencePenalty,\n seed,\n stop: stopSequences,\n response_format: responseFormat,\n top_k: topK != null ? topK : this.settings.topK,\n // prompt:\n prompt: completionPrompt,\n // OpenRouter specific settings:\n include_reasoning: this.settings.includeReasoning,\n reasoning: this.settings.reasoning\n }, this.config.extraBody), this.settings.extraBody);\n }\n async doGenerate(options) {\n var _a16, _b16, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p, _q;\n const providerOptions = options.providerOptions || {};\n const openrouterOptions = providerOptions.openrouter || {};\n const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions);\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n OpenRouterCompletionChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n if (\"error\" in response) {\n const errorData = response.error;\n throw new APICallError({\n message: errorData.message,\n url: this.config.url({\n path: \"/completions\",\n modelId: this.modelId\n }),\n requestBodyValues: args,\n statusCode: 200,\n responseHeaders,\n data: errorData\n });\n }\n const choice = response.choices[0];\n if (!choice) {\n throw new NoContentGeneratedError({\n message: \"No choice in OpenRouter completion response\"\n });\n }\n return {\n content: [\n {\n type: \"text\",\n text: (_a16 = choice.text) != null ? _a16 : \"\"\n }\n ],\n finishReason: mapOpenRouterFinishReason(choice.finish_reason),\n usage: response.usage ? computeTokenUsage(response.usage) : emptyUsage(),\n warnings: [],\n providerMetadata: {\n openrouter: OpenRouterProviderMetadataSchema.parse({\n provider: (_b16 = response.provider) != null ? _b16 : \"\",\n usage: __spreadValues(__spreadValues(__spreadValues(__spreadValues({\n promptTokens: (_d = (_c = response.usage) == null ? void 0 : _c.prompt_tokens) != null ? _d : 0,\n completionTokens: (_f = (_e = response.usage) == null ? void 0 : _e.completion_tokens) != null ? _f : 0,\n totalTokens: ((_h = (_g = response.usage) == null ? void 0 : _g.prompt_tokens) != null ? _h : 0) + ((_j = (_i = response.usage) == null ? void 0 : _i.completion_tokens) != null ? _j : 0)\n }, ((_k = response.usage) == null ? void 0 : _k.cost) != null ? { cost: response.usage.cost } : {}), ((_m = (_l = response.usage) == null ? void 0 : _l.prompt_tokens_details) == null ? void 0 : _m.cached_tokens) != null ? {\n promptTokensDetails: {\n cachedTokens: response.usage.prompt_tokens_details.cached_tokens\n }\n } : {}), ((_o = (_n = response.usage) == null ? void 0 : _n.completion_tokens_details) == null ? void 0 : _o.reasoning_tokens) != null ? {\n completionTokensDetails: {\n reasoningTokens: response.usage.completion_tokens_details.reasoning_tokens\n }\n } : {}), ((_q = (_p = response.usage) == null ? void 0 : _p.cost_details) == null ? void 0 : _q.upstream_inference_cost) != null ? {\n costDetails: {\n upstreamInferenceCost: response.usage.cost_details.upstream_inference_cost\n }\n } : {})\n })\n },\n response: {\n headers: responseHeaders\n }\n };\n }\n async doStream(options) {\n const providerOptions = options.providerOptions || {};\n const openrouterOptions = providerOptions.openrouter || {};\n const args = __spreadValues(__spreadValues({}, this.getArgs(options)), openrouterOptions);\n const { value: response, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: __spreadProps(__spreadValues({}, args), {\n stream: true,\n // only include stream_options when in strict compatibility mode:\n stream_options: this.config.compatibility === \"strict\" ? { include_usage: true } : void 0\n }),\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n OpenRouterCompletionChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let streamError;\n const safeResponse = withStreamErrorHandling(response, (err) => {\n streamError = err;\n });\n let finishReason = createFinishReason(\"other\");\n const usage = {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n const openrouterUsage = {};\n let provider;\n let rawUsage;\n return {\n stream: safeResponse.pipeThrough(\n new TransformStream({\n transform(chunk, controller) {\n var _a16, _b16, _c, _d, _e;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = createFinishReason(\"error\");\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = createFinishReason(\"error\");\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (value.provider) {\n provider = value.provider;\n }\n if (value.usage != null) {\n const computed = computeTokenUsage(value.usage);\n Object.assign(usage.inputTokens, computed.inputTokens);\n Object.assign(usage.outputTokens, computed.outputTokens);\n rawUsage = value.usage;\n const promptTokens = (_a16 = value.usage.prompt_tokens) != null ? _a16 : 0;\n const completionTokens = (_b16 = value.usage.completion_tokens) != null ? _b16 : 0;\n openrouterUsage.promptTokens = promptTokens;\n if (value.usage.prompt_tokens_details) {\n openrouterUsage.promptTokensDetails = {\n cachedTokens: (_c = value.usage.prompt_tokens_details.cached_tokens) != null ? _c : 0\n };\n }\n openrouterUsage.completionTokens = completionTokens;\n if (value.usage.completion_tokens_details) {\n openrouterUsage.completionTokensDetails = {\n reasoningTokens: (_d = value.usage.completion_tokens_details.reasoning_tokens) != null ? _d : 0\n };\n }\n if (value.usage.cost != null) {\n openrouterUsage.cost = value.usage.cost;\n }\n openrouterUsage.totalTokens = value.usage.total_tokens;\n const upstreamInferenceCost = (_e = value.usage.cost_details) == null ? void 0 : _e.upstream_inference_cost;\n if (upstreamInferenceCost != null) {\n openrouterUsage.costDetails = {\n upstreamInferenceCost\n };\n }\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = mapOpenRouterFinishReason(choice.finish_reason);\n }\n if ((choice == null ? void 0 : choice.text) != null) {\n controller.enqueue({\n type: \"text-delta\",\n delta: choice.text,\n id: generateId()\n });\n }\n },\n flush(controller) {\n if (streamError != null) {\n finishReason = createFinishReason(\"error\");\n controller.enqueue({ type: \"error\", error: streamError });\n }\n usage.raw = rawUsage;\n const openrouterMetadata = {\n usage: openrouterUsage\n };\n if (provider !== void 0) {\n openrouterMetadata.provider = provider;\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage,\n providerMetadata: {\n openrouter: openrouterMetadata\n }\n });\n }\n })\n ),\n response: {\n headers: responseHeaders\n }\n };\n }\n};\n\n// src/embedding/schemas.ts\nimport { z as z9 } from \"zod/v4\";\nvar openrouterEmbeddingUsageSchema = z9.object({\n prompt_tokens: z9.number(),\n total_tokens: z9.number(),\n cost: z9.number().optional()\n});\nvar openrouterEmbeddingDataSchema = z9.object({\n object: z9.literal(\"embedding\"),\n embedding: z9.array(z9.number()),\n index: z9.number().optional()\n});\nvar OpenRouterEmbeddingResponseSchema = z9.object({\n id: z9.string().optional(),\n object: z9.literal(\"list\"),\n data: z9.array(openrouterEmbeddingDataSchema),\n model: z9.string(),\n provider: z9.string().optional(),\n usage: openrouterEmbeddingUsageSchema.optional()\n});\n\n// src/embedding/index.ts\nvar OpenRouterEmbeddingModel = class {\n constructor(modelId, settings, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"openrouter\";\n this.maxEmbeddingsPerCall = void 0;\n this.supportsParallelCalls = true;\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n async doEmbed(options) {\n var _a16, _b16, _c, _d, _e, _f;\n const { values, abortSignal, headers } = options;\n const args = __spreadValues(__spreadValues({\n model: this.modelId,\n input: values,\n user: this.settings.user,\n provider: this.settings.provider\n }, this.config.extraBody), this.settings.extraBody);\n const { value: responseValue, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/embeddings\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), headers),\n body: args,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n OpenRouterEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n embeddings: responseValue.data.map((item) => item.embedding),\n usage: responseValue.usage ? { tokens: responseValue.usage.prompt_tokens } : void 0,\n providerMetadata: {\n openrouter: OpenRouterProviderMetadataSchema.parse({\n provider: (_a16 = responseValue.provider) != null ? _a16 : \"\",\n usage: __spreadValues({\n promptTokens: (_c = (_b16 = responseValue.usage) == null ? void 0 : _b16.prompt_tokens) != null ? _c : 0,\n completionTokens: 0,\n totalTokens: (_e = (_d = responseValue.usage) == null ? void 0 : _d.total_tokens) != null ? _e : 0\n }, ((_f = responseValue.usage) == null ? void 0 : _f.cost) != null ? { cost: responseValue.usage.cost } : {})\n })\n },\n response: {\n headers: responseHeaders,\n body: responseValue\n },\n warnings: []\n };\n }\n};\n\n// src/facade.ts\nvar OpenRouter = class {\n /**\n * Creates a new OpenRouter provider instance.\n */\n constructor(options = {}) {\n var _a16, _b16;\n this.baseURL = (_b16 = withoutTrailingSlash((_a16 = options.baseURL) != null ? _a16 : options.baseUrl)) != null ? _b16 : \"https://openrouter.ai/api/v1\";\n this.apiKey = options.apiKey;\n this.headers = options.headers;\n this.api_keys = options.api_keys;\n this.appName = options.appName;\n this.appUrl = options.appUrl;\n }\n get baseConfig() {\n return {\n baseURL: this.baseURL,\n headers: () => __spreadValues(__spreadValues(__spreadValues(__spreadValues({\n Authorization: `Bearer ${loadApiKey({\n apiKey: this.apiKey,\n environmentVariableName: \"OPENROUTER_API_KEY\",\n description: \"OpenRouter\"\n })}`\n }, this.appName && { \"X-OpenRouter-Title\": this.appName }), this.appUrl && { \"HTTP-Referer\": this.appUrl }), this.headers), this.api_keys && Object.keys(this.api_keys).length > 0 && {\n \"X-Provider-API-Keys\": JSON.stringify(this.api_keys)\n })\n };\n }\n chat(modelId, settings = {}) {\n return new OpenRouterChatLanguageModel(modelId, settings, __spreadProps(__spreadValues({\n provider: \"openrouter.chat\"\n }, this.baseConfig), {\n compatibility: \"strict\",\n url: ({ path }) => `${this.baseURL}${path}`\n }));\n }\n completion(modelId, settings = {}) {\n return new OpenRouterCompletionLanguageModel(modelId, settings, __spreadProps(__spreadValues({\n provider: \"openrouter.completion\"\n }, this.baseConfig), {\n compatibility: \"strict\",\n url: ({ path }) => `${this.baseURL}${path}`\n }));\n }\n textEmbeddingModel(modelId, settings = {}) {\n return new OpenRouterEmbeddingModel(modelId, settings, __spreadProps(__spreadValues({\n provider: \"openrouter.embedding\"\n }, this.baseConfig), {\n url: ({ path }) => `${this.baseURL}${path}`\n }));\n }\n /**\n * @deprecated Use textEmbeddingModel instead\n */\n embedding(modelId, settings = {}) {\n return this.textEmbeddingModel(modelId, settings);\n }\n};\n\n// src/image/schemas.ts\nimport { z as z10 } from \"zod/v4\";\nvar OpenRouterImageResponseSchema = z10.object({\n created: z10.number().optional(),\n data: z10.array(\n z10.object({\n b64_json: z10.string()\n }).passthrough()\n ),\n usage: z10.object({\n prompt_tokens: z10.number(),\n completion_tokens: z10.number(),\n total_tokens: z10.number()\n }).passthrough().optional()\n}).passthrough();\n\n// src/image/index.ts\nvar OpenRouterImageModel = class {\n constructor(modelId, settings, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"openrouter\";\n this.maxImagesPerCall = 10;\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n async doGenerate(options) {\n const {\n prompt,\n n,\n size,\n aspectRatio,\n seed,\n files,\n mask,\n abortSignal,\n headers,\n providerOptions\n } = options;\n const openrouterOptions = (providerOptions == null ? void 0 : providerOptions.openrouter) || {};\n const warnings = [];\n if (mask !== void 0) {\n throw new UnsupportedFunctionalityError({\n functionality: \"image inpainting (mask parameter)\"\n });\n }\n const hasFiles = files !== void 0 && files.length > 0;\n const inputReferences = hasFiles ? files.map((file) => convertFileToInputReference(file)) : void 0;\n const body = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({\n model: this.modelId,\n prompt: prompt != null ? prompt : \"\"\n }, n !== void 0 && { n }), size !== void 0 && { size }), aspectRatio !== void 0 && { aspect_ratio: aspectRatio }), seed !== void 0 && { seed }), inputReferences !== void 0 && {\n input_references: inputReferences\n }), this.settings.user !== void 0 && { user: this.settings.user }), this.settings.provider !== void 0 && {\n provider: this.settings.provider\n }), this.config.extraBody), this.settings.extraBody), openrouterOptions);\n const { value: responseValue, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/images\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), headers),\n body,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n OpenRouterImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n if (!responseValue.data || responseValue.data.length === 0) {\n throw new NoContentGeneratedError({\n message: \"No images in response\"\n });\n }\n const images = responseValue.data.map((item) => item.b64_json);\n const usage = responseValue.usage ? {\n inputTokens: responseValue.usage.prompt_tokens,\n outputTokens: responseValue.usage.completion_tokens,\n totalTokens: responseValue.usage.total_tokens\n } : void 0;\n return {\n images,\n warnings,\n response: {\n timestamp: /* @__PURE__ */ new Date(),\n modelId: this.modelId,\n headers: responseHeaders\n },\n usage\n };\n }\n};\nvar DEFAULT_IMAGE_MEDIA_TYPE = \"image/png\";\nfunction convertFileToInputReference(file) {\n if (file.type === \"url\") {\n return {\n type: \"image_url\",\n image_url: { url: file.url }\n };\n }\n const url = buildFileDataUrl({\n data: file.data,\n mediaType: file.mediaType,\n defaultMediaType: DEFAULT_IMAGE_MEDIA_TYPE\n });\n return {\n type: \"image_url\",\n image_url: { url }\n };\n}\n\n// src/tool/web-search.ts\nimport { z as z11 } from \"zod/v4\";\nvar webSearchInputSchema = z11.object({\n /** Search results returned by the server tool */\n results: z11.array(z11.unknown()).optional()\n});\nvar webSearch = createProviderToolFactory({\n id: \"openrouter.web_search\",\n inputSchema: webSearchInputSchema\n});\n\n// src/utils/remove-undefined.ts\nfunction removeUndefinedEntries(record) {\n return Object.fromEntries(\n Object.entries(record).filter(([, value]) => value != null)\n );\n}\n\n// src/utils/with-user-agent-suffix.ts\nfunction normalizeHeaders2(headers) {\n if (!headers) {\n return {};\n }\n if (headers instanceof Headers) {\n return Object.fromEntries(headers.entries());\n }\n if (Array.isArray(headers)) {\n return Object.fromEntries(headers);\n }\n return headers;\n}\nfunction findHeaderKey(headers, targetKey) {\n const lowerTarget = targetKey.toLowerCase();\n return Object.keys(headers).find((key) => key.toLowerCase() === lowerTarget);\n}\nfunction withUserAgentSuffix2(headers, ...userAgentSuffixParts) {\n const normalizedHeaders = normalizeHeaders2(headers);\n const cleanedHeaders = removeUndefinedEntries(normalizedHeaders);\n const existingUserAgentKey = findHeaderKey(cleanedHeaders, \"user-agent\");\n const existingUserAgentValue = existingUserAgentKey ? cleanedHeaders[existingUserAgentKey] : void 0;\n const userAgent = (existingUserAgentValue == null ? void 0 : existingUserAgentValue.trim()) ? existingUserAgentValue : userAgentSuffixParts.filter(Boolean).join(\" \");\n const headersWithoutUserAgent = Object.fromEntries(\n Object.entries(cleanedHeaders).filter(\n ([key]) => key.toLowerCase() !== \"user-agent\"\n )\n );\n return __spreadProps(__spreadValues({}, headersWithoutUserAgent), {\n \"user-agent\": userAgent\n });\n}\n\n// src/version.ts\nvar VERSION2 = false ? \"0.0.0-test\" : \"2.10.0\";\n\n// src/video/schemas.ts\nimport { z as z12 } from \"zod/v4\";\nvar VideoGenerationSubmitResponseSchema = z12.object({\n id: z12.string(),\n generation_id: z12.string().optional(),\n polling_url: z12.string(),\n status: z12.string()\n}).passthrough();\nvar VideoGenerationPollResponseSchema = z12.object({\n id: z12.string(),\n generation_id: z12.string().optional(),\n polling_url: z12.string(),\n status: z12.string(),\n unsigned_urls: z12.array(z12.string()).optional(),\n usage: z12.object({\n cost: z12.number().optional(),\n is_byok: z12.boolean().optional()\n }).passthrough().optional(),\n error: z12.string().optional()\n}).passthrough();\n\n// src/video/index.ts\nvar DEFAULT_POLL_INTERVAL_MS = 2e3;\nvar DEFAULT_MAX_POLL_TIME_MS = 6e5;\nvar OpenRouterVideoModel = class {\n constructor(modelId, settings, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"openrouter\";\n this.maxVideosPerCall = 1;\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n async doGenerate(options) {\n var _a16, _b16, _c, _d, _e;\n const {\n prompt,\n n,\n aspectRatio,\n resolution,\n duration,\n seed,\n image,\n abortSignal,\n headers,\n providerOptions\n } = options;\n const warnings = [];\n if (n > 1) {\n warnings.push({\n type: \"unsupported\",\n feature: \"n > 1\",\n details: `OpenRouter video generation returns 1 video per call. Requested ${n} videos.`\n });\n }\n const body = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({\n model: this.modelId,\n prompt: prompt != null ? prompt : \"\"\n }, aspectRatio !== void 0 && { aspect_ratio: aspectRatio }), resolution !== void 0 && { size: resolution }), duration !== void 0 && { duration }), seed !== void 0 && { seed }), this.settings.generateAudio !== void 0 && {\n generate_audio: this.settings.generateAudio\n }), image !== void 0 && {\n frame_images: [convertImageToFrameImage(image)]\n }), this.config.extraBody), this.settings.extraBody), providerOptions.openrouter);\n const mergedHeaders = combineHeaders(this.config.headers(), headers);\n const { value: submitResponse, responseHeaders } = await postJsonToApi({\n url: this.config.url({\n path: \"/videos\",\n modelId: this.modelId\n }),\n headers: mergedHeaders,\n body,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n VideoGenerationSubmitResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n const pollIntervalMs = (_a16 = this.settings.pollIntervalMs) != null ? _a16 : DEFAULT_POLL_INTERVAL_MS;\n const maxPollTimeMs = (_b16 = this.settings.maxPollTimeMs) != null ? _b16 : DEFAULT_MAX_POLL_TIME_MS;\n const pollResult = await this.pollUntilComplete({\n jobId: submitResponse.id,\n headers: mergedHeaders,\n abortSignal,\n pollIntervalMs,\n maxPollTimeMs\n });\n const videos = [];\n if (pollResult.unsigned_urls) {\n for (const url of pollResult.unsigned_urls) {\n videos.push({\n type: \"url\",\n url,\n mediaType: \"video/mp4\"\n });\n }\n }\n const providerMetadata = {\n openrouter: {\n generationId: (_c = pollResult.generation_id) != null ? _c : null,\n cost: (_e = (_d = pollResult.usage) == null ? void 0 : _d.cost) != null ? _e : null\n }\n };\n return {\n videos,\n warnings,\n providerMetadata,\n response: {\n timestamp: /* @__PURE__ */ new Date(),\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n async pollUntilComplete({\n jobId,\n headers,\n abortSignal,\n pollIntervalMs,\n maxPollTimeMs\n }) {\n var _a16;\n const startTime = Date.now();\n while (Date.now() - startTime < maxPollTimeMs) {\n abortSignal == null ? void 0 : abortSignal.throwIfAborted();\n await delay(pollIntervalMs);\n abortSignal == null ? void 0 : abortSignal.throwIfAborted();\n const { value: pollResponse } = await getFromApi({\n url: this.config.url({\n path: `/videos/${jobId}`,\n modelId: this.modelId\n }),\n headers,\n failedResponseHandler: openrouterFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n VideoGenerationPollResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n if (pollResponse.status === \"completed\") {\n return {\n generation_id: pollResponse.generation_id,\n unsigned_urls: pollResponse.unsigned_urls,\n usage: pollResponse.usage\n };\n }\n if (pollResponse.status === \"failed\" || pollResponse.status === \"dead\" || pollResponse.status === \"cancelled\" || pollResponse.status === \"expired\") {\n throw new APICallError({\n message: (_a16 = pollResponse.error) != null ? _a16 : `Video generation failed with status: ${pollResponse.status}`,\n url: this.config.url({\n path: `/videos/${jobId}`,\n modelId: this.modelId\n }),\n requestBodyValues: {},\n statusCode: 500,\n isRetryable: false\n });\n }\n }\n throw new APICallError({\n message: `Video generation timed out after ${maxPollTimeMs}ms`,\n url: this.config.url({\n path: `/videos/${jobId}`,\n modelId: this.modelId\n }),\n requestBodyValues: {},\n statusCode: 408,\n isRetryable: true\n });\n }\n};\nfunction convertImageToFrameImage(file) {\n if (file.type === \"url\") {\n return {\n type: \"image_url\",\n image_url: { url: file.url },\n frame_type: \"first_frame\"\n };\n }\n const url = buildFileDataUrl({\n data: file.data,\n mediaType: file.mediaType,\n defaultMediaType: \"image/png\"\n });\n return {\n type: \"image_url\",\n image_url: { url },\n frame_type: \"first_frame\"\n };\n}\n\n// src/provider.ts\nfunction createOpenRouter(options = {}) {\n var _a16, _b16, _c;\n const baseURL = (_b16 = withoutTrailingSlash((_a16 = options.baseURL) != null ? _a16 : options.baseUrl)) != null ? _b16 : \"https://openrouter.ai/api/v1\";\n const compatibility = (_c = options.compatibility) != null ? _c : \"compatible\";\n const getHeaders = () => withUserAgentSuffix2(\n __spreadValues(__spreadValues(__spreadValues(__spreadValues({\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"OPENROUTER_API_KEY\",\n description: \"OpenRouter\"\n })}`\n }, options.appName && { \"X-OpenRouter-Title\": options.appName }), options.appUrl && { \"HTTP-Referer\": options.appUrl }), options.headers), options.api_keys && Object.keys(options.api_keys).length > 0 && {\n \"X-Provider-API-Keys\": JSON.stringify(options.api_keys)\n }),\n `ai-sdk/openrouter/${VERSION2}`\n );\n const createChatModel = (modelId, settings = {}) => new OpenRouterChatLanguageModel(modelId, settings, {\n provider: \"openrouter.chat\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n compatibility,\n fetch: options.fetch,\n extraBody: options.extraBody\n });\n const createCompletionModel = (modelId, settings = {}) => new OpenRouterCompletionLanguageModel(modelId, settings, {\n provider: \"openrouter.completion\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n compatibility,\n fetch: options.fetch,\n extraBody: options.extraBody\n });\n const createEmbeddingModel = (modelId, settings = {}) => new OpenRouterEmbeddingModel(modelId, settings, {\n provider: \"openrouter.embedding\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n extraBody: options.extraBody\n });\n const createImageModel = (modelId, settings = {}) => new OpenRouterImageModel(modelId, settings, {\n provider: \"openrouter.image\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n extraBody: options.extraBody\n });\n const createVideoModel = (modelId, settings = {}) => new OpenRouterVideoModel(modelId, settings, {\n provider: \"openrouter.video\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n extraBody: options.extraBody\n });\n const createLanguageModel = (modelId, settings) => {\n if (new.target) {\n throw new Error(\n \"The OpenRouter model function cannot be called with the new keyword.\"\n );\n }\n if (modelId === \"openai/gpt-3.5-turbo-instruct\") {\n return createCompletionModel(\n modelId,\n settings\n );\n }\n return createChatModel(modelId, settings);\n };\n const provider = (modelId, settings) => createLanguageModel(modelId, settings);\n provider.languageModel = createLanguageModel;\n provider.chat = createChatModel;\n provider.completion = createCompletionModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.embedding = createEmbeddingModel;\n provider.imageModel = createImageModel;\n provider.videoModel = createVideoModel;\n provider.tools = {\n webSearch\n };\n return provider;\n}\nvar openrouter = createOpenRouter({\n compatibility: \"strict\"\n // strict for OpenRouter API\n});\nexport {\n OpenRouter,\n createOpenRouter,\n openrouter\n};\n//# sourceMappingURL=index.mjs.map","// src/chat/convert-to-openai-compatible-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport {\n convertBase64ToUint8Array,\n convertToBase64\n} from \"@ai-sdk/provider-utils\";\nfunction getOpenAIMetadata(message) {\n var _a, _b;\n return (_b = (_a = message == null ? void 0 : message.providerOptions) == null ? void 0 : _a.openaiCompatible) != null ? _b : {};\n}\nfunction getAudioFormat(mediaType) {\n switch (mediaType) {\n case \"audio/wav\":\n return \"wav\";\n case \"audio/mp3\":\n case \"audio/mpeg\":\n return \"mp3\";\n default:\n return null;\n }\n}\nfunction convertToOpenAICompatibleChatMessages(prompt) {\n var _a, _b, _c;\n const messages = [];\n for (const { role, content, ...message } of prompt) {\n const metadata = getOpenAIMetadata({ ...message });\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content, ...metadata });\n break;\n }\n case \"user\": {\n if (content.length === 1 && content[0].type === \"text\") {\n messages.push({\n role: \"user\",\n content: content[0].text,\n ...getOpenAIMetadata(content[0])\n });\n break;\n }\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n var _a2;\n const partMetadata = getOpenAIMetadata(part);\n switch (part.type) {\n case \"text\": {\n return { type: \"text\", text: part.text, ...partMetadata };\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: {\n url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${convertToBase64(part.data)}`\n },\n ...partMetadata\n };\n }\n if (part.mediaType.startsWith(\"audio/\")) {\n if (part.data instanceof URL) {\n throw new UnsupportedFunctionalityError({\n functionality: \"audio file parts with URLs\"\n });\n }\n const format = getAudioFormat(part.mediaType);\n if (format === null) {\n throw new UnsupportedFunctionalityError({\n functionality: `audio media type ${part.mediaType}`\n });\n }\n return {\n type: \"input_audio\",\n input_audio: {\n data: convertToBase64(part.data),\n format\n },\n ...partMetadata\n };\n }\n if (part.mediaType === \"application/pdf\") {\n if (part.data instanceof URL) {\n throw new UnsupportedFunctionalityError({\n functionality: \"PDF file parts with URLs\"\n });\n }\n return {\n type: \"file\",\n file: {\n filename: (_a2 = part.filename) != null ? _a2 : \"document.pdf\",\n file_data: `data:application/pdf;base64,${convertToBase64(part.data)}`\n },\n ...partMetadata\n };\n }\n if (part.mediaType.startsWith(\"text/\")) {\n const textContent = part.data instanceof URL ? part.data.toString() : typeof part.data === \"string\" ? new TextDecoder().decode(\n convertBase64ToUint8Array(part.data)\n ) : new TextDecoder().decode(part.data);\n return {\n type: \"text\",\n text: textContent,\n ...partMetadata\n };\n }\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`\n });\n }\n }\n }),\n ...metadata\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n let reasoning = \"\";\n const toolCalls = [];\n for (const part of content) {\n const partMetadata = getOpenAIMetadata(part);\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"reasoning\": {\n reasoning += part.text;\n break;\n }\n case \"tool-call\": {\n const thoughtSignature = (_b = (_a = part.providerOptions) == null ? void 0 : _a.google) == null ? void 0 : _b.thoughtSignature;\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n },\n ...partMetadata,\n // Include extra_content for Google Gemini thought signatures\n ...thoughtSignature ? {\n extra_content: {\n google: {\n thought_signature: String(thoughtSignature)\n }\n }\n } : {}\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: toolCalls.length > 0 ? text || null : text,\n ...reasoning.length > 0 ? { reasoning_content: reasoning } : {},\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0,\n ...metadata\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_c = output.reason) != null ? _c : \"Tool call execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n const toolResponseMetadata = getOpenAIMetadata(toolResponse);\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: contentValue,\n ...toolResponseMetadata\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/chat/convert-openai-compatible-chat-usage.ts\nfunction convertOpenAICompatibleChatUsage(usage) {\n var _a, _b, _c, _d, _e, _f;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const cacheReadTokens = (_d = (_c = usage.prompt_tokens_details) == null ? void 0 : _c.cached_tokens) != null ? _d : 0;\n const reasoningTokens = (_f = (_e = usage.completion_tokens_details) == null ? void 0 : _e.reasoning_tokens) != null ? _f : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/chat/map-openai-compatible-finish-reason.ts\nfunction mapOpenAICompatibleFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\n\n// src/chat/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/chat/openai-compatible-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const openaiCompatTools = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n } else {\n openaiCompatTools.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: openaiCompatTools, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return { tools: openaiCompatTools, toolChoice: type, toolWarnings };\n case \"tool\":\n return {\n tools: openaiCompatTools,\n toolChoice: {\n type: \"function\",\n function: { name: toolChoice.toolName }\n },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\nexport {\n convertOpenAICompatibleChatUsage,\n convertToOpenAICompatibleChatMessages,\n getResponseMetadata,\n mapOpenAICompatibleFinishReason,\n prepareTools\n};\n//# sourceMappingURL=index.mjs.map","// src/alibaba-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/alibaba-chat-language-model.ts\nimport {\n getResponseMetadata,\n mapOpenAICompatibleFinishReason,\n prepareTools\n} from \"@ai-sdk/openai-compatible/internal\";\nimport {\n InvalidResponseDataError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/alibaba-chat-options.ts\nimport { z } from \"zod/v4\";\nvar alibabaLanguageModelOptions = z.object({\n /**\n * Enable thinking/reasoning mode for supported models.\n * When enabled, the model generates reasoning content before the response.\n *\n * @default false\n */\n enableThinking: z.boolean().optional(),\n /**\n * Maximum number of reasoning tokens to generate.\n */\n thinkingBudget: z.number().positive().optional(),\n /**\n * Whether to enable parallel function calling during tool use.\n *\n * @default true\n */\n parallelToolCalls: z.boolean().optional()\n});\n\n// src/alibaba-error.ts\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar alibabaErrorDataSchema = z2.object({\n error: z2.object({\n message: z2.string(),\n code: z2.string().nullish(),\n type: z2.string().nullish()\n })\n});\nvar alibabaFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: alibabaErrorDataSchema,\n errorToMessage: (data) => data.error.message\n});\n\n// src/convert-alibaba-usage.ts\nimport { convertOpenAICompatibleChatUsage } from \"@ai-sdk/openai-compatible/internal\";\nfunction convertAlibabaUsage(usage) {\n var _a, _b, _c, _d;\n const baseUsage = convertOpenAICompatibleChatUsage(usage);\n const cacheWriteTokens = (_b = (_a = usage == null ? void 0 : usage.prompt_tokens_details) == null ? void 0 : _a.cache_creation_input_tokens) != null ? _b : 0;\n const noCacheTokens = ((_c = baseUsage.inputTokens.total) != null ? _c : 0) - ((_d = baseUsage.inputTokens.cacheRead) != null ? _d : 0) - cacheWriteTokens;\n return {\n ...baseUsage,\n inputTokens: {\n ...baseUsage.inputTokens,\n cacheWrite: cacheWriteTokens,\n noCache: noCacheTokens\n }\n };\n}\n\n// src/convert-to-alibaba-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction formatImageUrl({\n data,\n mediaType\n}) {\n return data instanceof URL ? data.toString() : `data:${mediaType};base64,${convertToBase64(data)}`;\n}\nfunction convertToAlibabaChatMessages({\n prompt,\n cacheControlValidator\n}) {\n var _a, _b;\n const messages = [];\n for (const { role, content, ...message } of prompt) {\n const messageCacheControl = cacheControlValidator == null ? void 0 : cacheControlValidator.getCacheControl(\n message.providerOptions\n );\n switch (role) {\n case \"system\": {\n if (messageCacheControl) {\n messages.push({\n role: \"system\",\n content: [\n {\n type: \"text\",\n text: content,\n cache_control: messageCacheControl\n }\n ]\n });\n } else {\n messages.push({ role: \"system\", content });\n }\n break;\n }\n case \"user\": {\n messages.push({\n role: \"user\",\n content: content.map((part, index) => {\n var _a2;\n const isLastPart = index === content.length - 1;\n const partCacheControl = (_a2 = cacheControlValidator == null ? void 0 : cacheControlValidator.getCacheControl(part.providerOptions)) != null ? _a2 : isLastPart ? messageCacheControl : void 0;\n switch (part.type) {\n case \"text\": {\n return {\n type: \"text\",\n text: part.text,\n ...partCacheControl ? { cache_control: partCacheControl } : {}\n };\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: {\n url: formatImageUrl({ data: part.data, mediaType })\n },\n ...partCacheControl ? { cache_control: partCacheControl } : {}\n };\n } else {\n throw new UnsupportedFunctionalityError({\n functionality: \"Only image file parts are supported\"\n });\n }\n }\n }\n })\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n case \"reasoning\": {\n text += part.text;\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: messageCacheControl ? [{ type: \"text\", text, cache_control: messageCacheControl }] : text || null,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0\n });\n break;\n }\n case \"tool\": {\n const toolResponses = content.filter(\n (r) => r.type !== \"tool-approval-response\"\n );\n for (let i = 0; i < toolResponses.length; i++) {\n const toolResponse = toolResponses[i];\n const output = toolResponse.output;\n const isLastPart = i === toolResponses.length - 1;\n const partCacheControl = (_a = cacheControlValidator == null ? void 0 : cacheControlValidator.getCacheControl(\n toolResponse.providerOptions\n )) != null ? _a : isLastPart ? messageCacheControl : void 0;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_b = output.reason) != null ? _b : \"Tool call execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: partCacheControl ? [\n {\n type: \"text\",\n text: contentValue,\n cache_control: partCacheControl\n }\n ] : contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/get-cache-control.ts\nvar MAX_CACHE_BREAKPOINTS = 4;\nfunction getCacheControl(providerMetadata) {\n var _a;\n const alibaba2 = providerMetadata == null ? void 0 : providerMetadata.alibaba;\n const cacheControlValue = (_a = alibaba2 == null ? void 0 : alibaba2.cacheControl) != null ? _a : alibaba2 == null ? void 0 : alibaba2.cache_control;\n return cacheControlValue;\n}\nvar CacheControlValidator = class {\n constructor() {\n this.breakpointCount = 0;\n this.warnings = [];\n }\n getCacheControl(providerMetadata) {\n const cacheControlValue = getCacheControl(providerMetadata);\n if (!cacheControlValue) {\n return void 0;\n }\n this.breakpointCount++;\n if (this.breakpointCount > MAX_CACHE_BREAKPOINTS) {\n this.warnings.push({\n type: \"other\",\n message: `Max breakpoint limit exceeded. Only the last ${MAX_CACHE_BREAKPOINTS} cache markers will take effect.`\n });\n }\n return cacheControlValue;\n }\n getWarnings() {\n return this.warnings;\n }\n};\n\n// src/alibaba-chat-language-model.ts\nvar AlibabaLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"image/*\": [/^https?:\\/\\/.*$/]\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n /**\n * Builds request arguments for Alibaba API call.\n * Converts AI SDK options to Alibaba API format.\n */\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerOptions,\n tools,\n toolChoice\n }) {\n var _a;\n const warnings = [];\n const cacheControlValidator = new CacheControlValidator();\n const alibabaOptions = await parseProviderOptions({\n provider: \"alibaba\",\n providerOptions,\n schema: alibabaLanguageModelOptions\n });\n if (frequencyPenalty != null) {\n warnings.push({ type: \"unsupported\", feature: \"frequencyPenalty\" });\n }\n const baseArgs = {\n model: this.modelId,\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n top_k: topK,\n presence_penalty: presencePenalty,\n stop: stopSequences,\n seed,\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n name: (_a = responseFormat.name) != null ? _a : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n // Alibaba-specific options\n ...(alibabaOptions == null ? void 0 : alibabaOptions.enableThinking) != null ? { enable_thinking: alibabaOptions.enableThinking } : {},\n ...(alibabaOptions == null ? void 0 : alibabaOptions.thinkingBudget) != null ? { thinking_budget: alibabaOptions.thinkingBudget } : {},\n // Convert messages with cache control support\n messages: convertToAlibabaChatMessages({\n prompt,\n cacheControlValidator\n })\n };\n const {\n tools: alibabaTools,\n toolChoice: alibabaToolChoice,\n toolWarnings\n } = prepareTools({ tools, toolChoice });\n warnings.push(...cacheControlValidator.getWarnings());\n return {\n args: {\n ...baseArgs,\n tools: alibabaTools,\n tool_choice: alibabaToolChoice,\n ...alibabaTools != null && (alibabaOptions == null ? void 0 : alibabaOptions.parallelToolCalls) !== void 0 ? { parallel_tool_calls: alibabaOptions.parallelToolCalls } : {}\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a;\n const { args, warnings } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: alibabaFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n alibabaChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n const text = choice.message.content;\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n const reasoning = choice.message.reasoning_content;\n if (reasoning != null && reasoning.length > 0) {\n content.push({\n type: \"reasoning\",\n text: reasoning\n });\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapOpenAICompatibleFinishReason(choice.finish_reason),\n raw: (_a = choice.finish_reason) != null ? _a : void 0\n },\n usage: convertAlibabaUsage(response.usage),\n request: { body: JSON.stringify(args) },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const body = {\n ...args,\n stream: true,\n stream_options: this.config.includeUsage ? { include_usage: true } : void 0\n };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: alibabaFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n alibabaChatChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n let activeText = false;\n let activeReasoningId = null;\n const toolCalls = [];\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (value.usage != null) {\n usage = value.usage;\n }\n if (value.choices.length === 0) {\n return;\n }\n const choice = value.choices[0];\n const delta = choice.delta;\n if (delta.reasoning_content != null && delta.reasoning_content.length > 0) {\n if (activeReasoningId == null) {\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n activeText = false;\n }\n activeReasoningId = generateId();\n controller.enqueue({\n type: \"reasoning-start\",\n id: activeReasoningId\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: activeReasoningId,\n delta: delta.reasoning_content\n });\n }\n if (delta.content != null && delta.content.length > 0) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n activeReasoningId = null;\n }\n if (!activeText) {\n controller.enqueue({ type: \"text-start\", id: \"0\" });\n activeText = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: delta.content\n });\n }\n if (delta.tool_calls != null) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n activeReasoningId = null;\n }\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n activeText = false;\n }\n for (const toolCallDelta of delta.tool_calls) {\n const index = (_a = toolCallDelta.index) != null ? _a : toolCalls.length;\n if (toolCalls[index] == null) {\n if (toolCallDelta.id == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'id' to be a string.`\n });\n }\n if (((_b = toolCallDelta.function) == null ? void 0 : _b.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallDelta.id,\n toolName: toolCallDelta.function.name\n });\n toolCalls[index] = {\n id: toolCallDelta.id,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_c = toolCallDelta.function.arguments) != null ? _c : \"\"\n },\n hasFinished: false\n };\n const toolCall2 = toolCalls[index];\n if (toolCall2.function.arguments.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall.hasFinished) {\n continue;\n }\n if (((_d = toolCallDelta.function) == null ? void 0 : _d.arguments) != null) {\n toolCall.function.arguments += toolCallDelta.function.arguments;\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: toolCallDelta.function.arguments\n });\n }\n }\n }\n if (choice.finish_reason != null) {\n finishReason = {\n unified: mapOpenAICompatibleFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n },\n flush(controller) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n }\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n for (const toolCall of toolCalls) {\n if (!toolCall.hasFinished) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n toolCall.hasFinished = true;\n }\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertAlibabaUsage(usage)\n });\n }\n })\n ),\n request: { body: JSON.stringify(body) },\n response: { headers: responseHeaders }\n };\n }\n};\nvar alibabaUsageSchema = z3.object({\n prompt_tokens: z3.number(),\n completion_tokens: z3.number(),\n total_tokens: z3.number(),\n prompt_tokens_details: z3.object({\n cached_tokens: z3.number().nullish(),\n cache_creation_input_tokens: z3.number().nullish()\n }).nullish(),\n completion_tokens_details: z3.object({\n reasoning_tokens: z3.number().nullish()\n }).nullish()\n});\nvar alibabaChatResponseSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n message: z3.object({\n role: z3.literal(\"assistant\").nullish(),\n content: z3.string().nullish(),\n reasoning_content: z3.string().nullish(),\n // Alibaba thinking mode\n tool_calls: z3.array(\n z3.object({\n id: z3.string(),\n type: z3.literal(\"function\"),\n function: z3.object({\n name: z3.string(),\n arguments: z3.string()\n })\n })\n ).nullish()\n }),\n finish_reason: z3.string().nullish(),\n index: z3.number()\n })\n ),\n usage: alibabaUsageSchema.nullish()\n});\nvar alibabaChatChunkSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n delta: z3.object({\n role: z3.enum([\"assistant\"]).nullish(),\n content: z3.string().nullish(),\n reasoning_content: z3.string().nullish(),\n // Alibaba thinking mode delta\n tool_calls: z3.array(\n z3.object({\n index: z3.number().nullish(),\n // Index for accumulating tool calls\n id: z3.string().nullish(),\n type: z3.literal(\"function\").nullish(),\n function: z3.object({\n name: z3.string().nullish(),\n arguments: z3.string().nullish()\n }).nullish()\n })\n ).nullish()\n }),\n finish_reason: z3.string().nullish(),\n index: z3.number()\n })\n ),\n usage: alibabaUsageSchema.nullish()\n // Usage only appears in final chunk\n});\n\n// src/alibaba-embedding-model.ts\nimport {\n TooManyEmbeddingValuesForCallError,\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders2,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler2,\n createJsonResponseHandler as createJsonResponseHandler2,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/alibaba-embedding-options.ts\nimport { z as z4 } from \"zod/v4\";\nvar alibabaEmbeddingModelOptions = z4.object({\n /**\n * Differentiates query text from document text for asymmetric retrieval tasks.\n * Defaults to `document`.\n */\n textType: z4.enum([\"query\", \"document\"]).optional(),\n /**\n * The dimension of the output embedding vectors. Defaults to 1024.\n *\n * `text-embedding-v4` also supports 1536 and 2048 dimensions.\n */\n dimension: z4.number().optional(),\n /**\n * The output vector type. Defaults to `dense`.\n *\n * Sparse-only output is not supported by the AI SDK embedding interface,\n * which requires dense number arrays.\n */\n outputType: z4.enum([\"dense\", \"sparse\", \"dense&sparse\"]).optional()\n});\n\n// src/alibaba-embedding-model.ts\nvar alibabaEmbeddingFailedResponseHandler = createJsonErrorResponseHandler2({\n errorSchema: z5.object({\n code: z5.string().nullish(),\n message: z5.string(),\n request_id: z5.string().nullish()\n }),\n errorToMessage: (data) => data.message\n});\nvar AlibabaEmbeddingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.maxEmbeddingsPerCall = 10;\n this.supportsParallelCalls = false;\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async doEmbed({\n values,\n headers,\n abortSignal,\n providerOptions\n }) {\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 const alibabaOptions = await parseProviderOptions2({\n provider: \"alibaba\",\n providerOptions,\n schema: alibabaEmbeddingModelOptions\n });\n if ((alibabaOptions == null ? void 0 : alibabaOptions.outputType) === \"sparse\") {\n throw new UnsupportedFunctionalityError2({\n functionality: \"Alibaba embedding outputType 'sparse'\",\n message: \"Alibaba embedding outputType 'sparse' is not supported because AI SDK embeddings require dense number arrays. Use 'dense' or 'dense&sparse' instead.\"\n });\n }\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi2({\n url: `${this.config.baseURL}/services/embeddings/text-embedding/text-embedding`,\n headers: combineHeaders2(this.config.headers(), headers),\n body: {\n model: this.modelId,\n input: {\n texts: values\n },\n parameters: {\n text_type: alibabaOptions == null ? void 0 : alibabaOptions.textType,\n dimension: alibabaOptions == null ? void 0 : alibabaOptions.dimension,\n output_type: alibabaOptions == null ? void 0 : alibabaOptions.outputType\n }\n },\n failedResponseHandler: alibabaEmbeddingFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n alibabaTextEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n const sortedEmbeddings = response.output.embeddings.sort(\n (a, b) => a.text_index - b.text_index\n );\n const sparseEmbeddings = sortedEmbeddings.map(\n (item) => item.sparse_embedding == null ? void 0 : {\n textIndex: item.text_index,\n sparseEmbedding: item.sparse_embedding\n }\n ).filter((item) => item != null);\n return {\n warnings: [],\n embeddings: sortedEmbeddings.map((item) => item.embedding),\n usage: response.usage ? { tokens: response.usage.total_tokens } : void 0,\n providerMetadata: sparseEmbeddings.length > 0 ? {\n alibaba: {\n sparseEmbeddings\n }\n } : void 0,\n response: { headers: responseHeaders, body: rawValue }\n };\n }\n};\nvar alibabaTextEmbeddingSparseEmbeddingSchema = z5.object({\n index: z5.number(),\n value: z5.number(),\n token: z5.string().nullish()\n});\nvar alibabaTextEmbeddingResponseSchema = z5.object({\n output: z5.object({\n embeddings: z5.array(\n z5.object({\n embedding: z5.array(z5.number()),\n text_index: z5.number(),\n sparse_embedding: z5.array(alibabaTextEmbeddingSparseEmbeddingSchema).nullish()\n })\n )\n }),\n usage: z5.object({\n total_tokens: z5.number()\n }).nullish()\n});\n\n// src/alibaba-video-model.ts\nimport {\n AISDKError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders3,\n convertImageModelFileToDataUri,\n convertUint8ArrayToBase64,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler3,\n createJsonResponseHandler as createJsonResponseHandler3,\n delay,\n getFromApi,\n lazySchema,\n parseProviderOptions as parseProviderOptions3,\n postJsonToApi as postJsonToApi3,\n resolve,\n zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar alibabaVideoModelOptionsSchema = lazySchema(\n () => zodSchema(\n z6.object({\n negativePrompt: z6.string().nullish(),\n audioUrl: z6.string().nullish(),\n promptExtend: z6.boolean().nullish(),\n shotType: z6.enum([\"single\", \"multi\"]).nullish(),\n watermark: z6.boolean().nullish(),\n audio: z6.boolean().nullish(),\n referenceUrls: z6.array(z6.string()).nullish(),\n media: z6.array(\n z6.object({\n type: z6.enum([\n \"reference_image\",\n \"reference_video\",\n \"first_frame\"\n ]),\n url: z6.string(),\n referenceVoice: z6.string().nullish()\n })\n ).nullish(),\n ratio: z6.enum([\"16:9\", \"9:16\", \"1:1\", \"4:3\", \"3:4\"]).nullish(),\n pollIntervalMs: z6.number().positive().nullish(),\n pollTimeoutMs: z6.number().positive().nullish()\n }).passthrough()\n )\n);\nvar alibabaVideoErrorSchema = z6.object({\n code: z6.string().nullish(),\n message: z6.string(),\n request_id: z6.string().nullish()\n});\nvar alibabaVideoFailedResponseHandler = createJsonErrorResponseHandler3({\n errorSchema: alibabaVideoErrorSchema,\n errorToMessage: (data) => data.message\n});\nvar alibabaVideoCreateTaskSchema = z6.object({\n output: z6.object({\n task_status: z6.string(),\n task_id: z6.string()\n }).nullish(),\n request_id: z6.string().nullish()\n});\nvar alibabaVideoTaskStatusSchema = z6.object({\n output: z6.object({\n task_id: z6.string(),\n task_status: z6.string(),\n video_url: z6.string().nullish(),\n submit_time: z6.string().nullish(),\n scheduled_time: z6.string().nullish(),\n end_time: z6.string().nullish(),\n orig_prompt: z6.string().nullish(),\n actual_prompt: z6.string().nullish(),\n code: z6.string().nullish(),\n message: z6.string().nullish()\n }).nullish(),\n usage: z6.object({\n duration: z6.number().nullish(),\n output_video_duration: z6.number().nullish(),\n SR: z6.number().nullish(),\n size: z6.string().nullish()\n }).nullish(),\n request_id: z6.string().nullish()\n});\nfunction detectMode(modelId) {\n if (modelId.includes(\"-i2v\")) return \"i2v\";\n if (modelId.includes(\"-r2v\")) return \"r2v\";\n return \"t2v\";\n}\nfunction isWan27Model(modelId) {\n return modelId.startsWith(\"wan2.7\");\n}\nvar resolutionTierMap = {\n \"1280x720\": \"720P\",\n \"720x1280\": \"720P\",\n \"960x960\": \"720P\",\n \"1088x832\": \"720P\",\n \"832x1088\": \"720P\",\n \"1920x1080\": \"1080P\",\n \"1080x1920\": \"1080P\",\n \"1440x1440\": \"1080P\",\n \"1632x1248\": \"1080P\",\n \"1248x1632\": \"1080P\",\n \"832x480\": \"480P\",\n \"480x832\": \"480P\",\n \"624x624\": \"480P\"\n};\nvar supportedRatios = /* @__PURE__ */ new Set([\"16:9\", \"9:16\", \"1:1\", \"4:3\", \"3:4\"]);\nfunction deriveRatioFromResolution(resolution) {\n const [width, height] = resolution.split(\"x\").map(Number);\n if (!Number.isInteger(width) || !Number.isInteger(height) || width <= 0 || height <= 0) {\n return void 0;\n }\n let a = width;\n let b = height;\n while (b !== 0) {\n [a, b] = [b, a % b];\n }\n const ratio = `${width / a}:${height / a}`;\n return supportedRatios.has(ratio) ? ratio : void 0;\n}\nfunction fileToImageString(file) {\n if (file.type === \"url\") {\n return file.url;\n }\n return typeof file.data === \"string\" ? file.data : convertUint8ArrayToBase64(file.data);\n}\nfunction getFirstFrameImage(options) {\n var _a, _b;\n return (_b = (_a = options.frameImages) == null ? void 0 : _a.find((frame) => frame.frameType === \"first_frame\")) == null ? void 0 : _b.image;\n}\nfunction resolveStartImage(options) {\n var _a;\n return (_a = getFirstFrameImage(options)) != null ? _a : options.image;\n}\nfunction isVideoUrl(url) {\n return /\\.(mp4|mov)([?#]|$)/i.test(url);\n}\nfunction resolveMedia(options, alibabaOptions, warnings) {\n var _a;\n if ((alibabaOptions == null ? void 0 : alibabaOptions.media) != null && alibabaOptions.media.length > 0) {\n return alibabaOptions.media.map((item) => ({\n type: item.type,\n url: item.url,\n ...item.referenceVoice != null ? { reference_voice: item.referenceVoice } : {}\n }));\n }\n const media = [];\n for (const reference of (_a = options.inputReferences) != null ? _a : []) {\n if (reference.type === \"url\") {\n media.push({\n type: isVideoUrl(reference.url) ? \"reference_video\" : \"reference_image\",\n url: reference.url\n });\n } else if (reference.mediaType.startsWith(\"image/\")) {\n media.push({\n type: \"reference_image\",\n url: convertImageModelFileToDataUri(reference)\n });\n } else {\n warnings.push({\n type: \"unsupported\",\n feature: \"inputReferences\",\n details: \"Alibaba reference-to-video requires URL references for videos. Non-URL video reference was skipped.\"\n });\n }\n }\n const firstFrame = getFirstFrameImage(options);\n if (firstFrame != null) {\n media.push({\n type: \"first_frame\",\n url: convertImageModelFileToDataUri(firstFrame)\n });\n }\n return media.length > 0 ? media : void 0;\n}\nfunction resolveReferenceUrls(options, alibabaOptions, warnings) {\n var _a;\n if (options.frameImages != null && options.frameImages.length > 0) {\n return void 0;\n }\n if (options.inputReferences != null && options.inputReferences.length > 0) {\n const urls = [];\n for (const reference of options.inputReferences) {\n if (reference.type === \"url\") {\n urls.push(reference.url);\n } else {\n warnings.push({\n type: \"unsupported\",\n feature: \"inputReferences\",\n details: \"Alibaba reference-to-video requires URL references. Non-URL reference was skipped.\"\n });\n }\n }\n return urls.length > 0 ? urls : void 0;\n }\n return (_a = alibabaOptions == null ? void 0 : alibabaOptions.referenceUrls) != null ? _a : void 0;\n}\nvar AlibabaVideoModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxVideosPerCall = 1;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o, _p;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const warnings = [];\n const mode = detectMode(this.modelId);\n const alibabaOptions = await parseProviderOptions3({\n provider: \"alibaba\",\n providerOptions: options.providerOptions,\n schema: alibabaVideoModelOptionsSchema\n });\n const input = {};\n if (options.prompt != null) {\n input.prompt = options.prompt;\n }\n if ((alibabaOptions == null ? void 0 : alibabaOptions.negativePrompt) != null) {\n input.negative_prompt = alibabaOptions.negativePrompt;\n }\n if ((alibabaOptions == null ? void 0 : alibabaOptions.audioUrl) != null) {\n input.audio_url = alibabaOptions.audioUrl;\n }\n const startImage = resolveStartImage(options);\n const wan27 = isWan27Model(this.modelId);\n const supportsRatio = wan27 && mode !== \"i2v\";\n if (mode === \"i2v\" && startImage != null) {\n input.img_url = fileToImageString(startImage);\n }\n if (mode === \"r2v\") {\n if (wan27) {\n const media = resolveMedia(options, alibabaOptions, warnings);\n if (media != null) {\n input.media = media;\n }\n } else {\n const referenceUrls = resolveReferenceUrls(\n options,\n alibabaOptions,\n warnings\n );\n if (referenceUrls != null && referenceUrls.length > 0) {\n input.reference_urls = referenceUrls;\n }\n }\n }\n const lastFrame = (_e = (_d = options.frameImages) == null ? void 0 : _d.find(\n (frame) => frame.frameType === \"last_frame\"\n )) == null ? void 0 : _e.image;\n if (lastFrame != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"frameImages\",\n details: \"This model does not support last_frame. The last frame image was ignored.\"\n });\n }\n if (options.inputReferences != null && options.inputReferences.length > 0 && mode !== \"r2v\") {\n warnings.push({\n type: \"unsupported\",\n feature: \"inputReferences\",\n details: \"Alibaba only supports inputReferences (reference-to-video) on reference-to-video models. The reference images were ignored.\"\n });\n }\n const parameters = {};\n if (options.duration != null) {\n parameters.duration = options.duration;\n }\n if (options.seed != null) {\n parameters.seed = options.seed;\n }\n if (options.resolution != null) {\n if (mode === \"i2v\" || wan27) {\n const resolutionTier = resolutionTierMap[options.resolution] || options.resolution;\n if (wan27 && resolutionTier !== \"720P\" && resolutionTier !== \"1080P\") {\n warnings.push({\n type: \"unsupported\",\n feature: \"resolution\",\n details: `wan2.7 models only support 720P and 1080P resolutions. The resolution \"${options.resolution}\" was ignored.`\n });\n } else {\n parameters.resolution = resolutionTier;\n }\n } else {\n parameters.size = options.resolution.replace(\"x\", \"*\");\n }\n }\n if (supportsRatio) {\n const ratio = (_g = (_f = alibabaOptions == null ? void 0 : alibabaOptions.ratio) != null ? _f : options.aspectRatio) != null ? _g : options.resolution != null ? deriveRatioFromResolution(options.resolution) : void 0;\n if (ratio != null) {\n parameters.ratio = ratio;\n }\n }\n if ((alibabaOptions == null ? void 0 : alibabaOptions.promptExtend) != null) {\n parameters.prompt_extend = alibabaOptions.promptExtend;\n }\n if ((alibabaOptions == null ? void 0 : alibabaOptions.shotType) != null) {\n if (wan27) {\n warnings.push({\n type: \"unsupported\",\n feature: \"shotType\",\n details: \"wan2.7 models do not support the shotType option. Describe the shot structure in the prompt instead.\"\n });\n } else {\n parameters.shot_type = alibabaOptions.shotType;\n }\n }\n if ((alibabaOptions == null ? void 0 : alibabaOptions.watermark) != null) {\n parameters.watermark = alibabaOptions.watermark;\n }\n const audio = (_h = options.generateAudio) != null ? _h : alibabaOptions == null ? void 0 : alibabaOptions.audio;\n if (audio != null) {\n if (wan27) {\n warnings.push({\n type: \"unsupported\",\n feature: \"generateAudio\",\n details: \"wan2.7 models always generate audio. The audio option was ignored.\"\n });\n } else {\n parameters.audio = audio;\n }\n }\n if (options.aspectRatio && !supportsRatio) {\n warnings.push({\n type: \"unsupported\",\n feature: \"aspectRatio\",\n details: \"Alibaba video models use explicit size/resolution dimensions. Use the resolution option or providerOptions.alibaba for size control.\"\n });\n }\n if (options.fps) {\n warnings.push({\n type: \"unsupported\",\n feature: \"fps\",\n details: \"Alibaba video models do not support custom FPS.\"\n });\n }\n if (options.n != null && options.n > 1) {\n warnings.push({\n type: \"unsupported\",\n feature: \"n\",\n details: \"Alibaba video models only support generating 1 video per call.\"\n });\n }\n const { value: createResponse } = await postJsonToApi3({\n url: `${this.config.baseURL}/api/v1/services/aigc/video-generation/video-synthesis`,\n headers: combineHeaders3(\n await resolve(this.config.headers),\n options.headers,\n {\n \"X-DashScope-Async\": \"enable\"\n }\n ),\n body: {\n model: this.modelId,\n input,\n parameters\n },\n successfulResponseHandler: createJsonResponseHandler3(\n alibabaVideoCreateTaskSchema\n ),\n failedResponseHandler: alibabaVideoFailedResponseHandler,\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const taskId = (_i = createResponse.output) == null ? void 0 : _i.task_id;\n if (!taskId) {\n throw new AISDKError({\n name: \"ALIBABA_VIDEO_GENERATION_ERROR\",\n message: `No task_id returned from Alibaba API. Response: ${JSON.stringify(createResponse)}`\n });\n }\n const pollIntervalMs = (_j = alibabaOptions == null ? void 0 : alibabaOptions.pollIntervalMs) != null ? _j : 5e3;\n const pollTimeoutMs = (_k = alibabaOptions == null ? void 0 : alibabaOptions.pollTimeoutMs) != null ? _k : 6e5;\n const startTime = Date.now();\n let finalResponse;\n let responseHeaders;\n while (true) {\n await delay(pollIntervalMs, { abortSignal: options.abortSignal });\n if (Date.now() - startTime > pollTimeoutMs) {\n throw new AISDKError({\n name: \"ALIBABA_VIDEO_GENERATION_TIMEOUT\",\n message: `Video generation timed out after ${pollTimeoutMs}ms`\n });\n }\n const { value: statusResponse, responseHeaders: pollHeaders } = await getFromApi({\n url: `${this.config.baseURL}/api/v1/tasks/${taskId}`,\n headers: combineHeaders3(\n await resolve(this.config.headers),\n options.headers\n ),\n successfulResponseHandler: createJsonResponseHandler3(\n alibabaVideoTaskStatusSchema\n ),\n failedResponseHandler: alibabaVideoFailedResponseHandler,\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n responseHeaders = pollHeaders;\n const taskStatus = (_l = statusResponse.output) == null ? void 0 : _l.task_status;\n if (taskStatus === \"SUCCEEDED\") {\n finalResponse = statusResponse;\n break;\n }\n if (taskStatus === \"FAILED\" || taskStatus === \"CANCELED\") {\n throw new AISDKError({\n name: \"ALIBABA_VIDEO_GENERATION_FAILED\",\n message: `Video generation ${taskStatus.toLowerCase()}. Task ID: ${taskId}. ${(_n = (_m = statusResponse.output) == null ? void 0 : _m.message) != null ? _n : \"\"}`\n });\n }\n }\n const videoUrl = (_o = finalResponse == null ? void 0 : finalResponse.output) == null ? void 0 : _o.video_url;\n if (!videoUrl) {\n throw new AISDKError({\n name: \"ALIBABA_VIDEO_GENERATION_ERROR\",\n message: `No video URL in response. Task ID: ${taskId}`\n });\n }\n return {\n videos: [\n {\n type: \"url\",\n url: videoUrl,\n mediaType: \"video/mp4\"\n }\n ],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n },\n providerMetadata: {\n alibaba: {\n taskId,\n videoUrl,\n ...((_p = finalResponse == null ? void 0 : finalResponse.output) == null ? void 0 : _p.actual_prompt) ? { actualPrompt: finalResponse.output.actual_prompt } : {},\n ...(finalResponse == null ? void 0 : finalResponse.usage) ? {\n usage: {\n duration: finalResponse.usage.duration,\n outputVideoDuration: finalResponse.usage.output_video_duration,\n resolution: finalResponse.usage.SR,\n size: finalResponse.usage.size\n }\n } : {}\n }\n }\n };\n }\n};\n\n// src/version.ts\nvar VERSION = true ? \"1.0.40\" : \"0.0.0-test\";\n\n// src/alibaba-provider.ts\nfunction createAlibaba(options = {}) {\n var _a, _b, _c;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://dashscope-intl.aliyuncs.com/compatible-mode/v1\";\n const videoBaseURL = (_b = withoutTrailingSlash(options.videoBaseURL)) != null ? _b : \"https://dashscope-intl.aliyuncs.com\";\n const embeddingBaseURL = (_c = withoutTrailingSlash(options.embeddingBaseURL)) != null ? _c : \"https://dashscope-intl.aliyuncs.com/api/v1\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"ALIBABA_API_KEY\",\n description: \"Alibaba Cloud (DashScope)\"\n })}`,\n ...options.headers\n },\n `ai-sdk/alibaba/${VERSION}`\n );\n const createLanguageModel = (modelId) => {\n var _a2;\n return new AlibabaLanguageModel(modelId, {\n provider: \"alibaba.chat\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n includeUsage: (_a2 = options.includeUsage) != null ? _a2 : true\n });\n };\n const createEmbeddingModel = (modelId) => new AlibabaEmbeddingModel(modelId, {\n provider: \"alibaba.embedding\",\n baseURL: embeddingBaseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createVideoModel = (modelId) => new AlibabaVideoModel(modelId, {\n provider: \"alibaba.video\",\n baseURL: videoBaseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const provider = function(modelId) {\n if (new.target) {\n throw new Error(\n \"The Alibaba model function cannot be called with the new keyword.\"\n );\n }\n return createLanguageModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.chatModel = createLanguageModel;\n provider.embedding = createEmbeddingModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.video = createVideoModel;\n provider.videoModel = createVideoModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar alibaba = createAlibaba();\nexport {\n VERSION,\n alibaba,\n createAlibaba\n};\n//# sourceMappingURL=index.mjs.map","// src/cerebras-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/cerebras-chat-language-model.ts\nimport { OpenAICompatibleChatLanguageModel } from \"@ai-sdk/openai-compatible\";\nfunction isStructuredOutputWithToolCallsFinishReason({\n rawFinishReason,\n hasText,\n responseFormatType\n}) {\n return responseFormatType === \"json\" && rawFinishReason === \"tool_calls\" && hasText;\n}\nvar CerebrasChatLanguageModel = class extends OpenAICompatibleChatLanguageModel {\n async doGenerate(options) {\n var _a;\n const result = await super.doGenerate(options);\n if (!isStructuredOutputWithToolCallsFinishReason({\n rawFinishReason: result.finishReason.raw,\n hasText: result.content.some(\n (part) => part.type === \"text\" && part.text.length > 0\n ),\n responseFormatType: (_a = options.responseFormat) == null ? void 0 : _a.type\n })) {\n return result;\n }\n return {\n ...result,\n // Cerebras GLM can return valid structured output text while also\n // repeating a tool call. Treat that mixed response as the final answer.\n content: result.content.filter((part) => part.type !== \"tool-call\"),\n finishReason: {\n ...result.finishReason,\n unified: \"stop\"\n }\n };\n }\n async doStream(options) {\n const result = await super.doStream(options);\n let hasText = false;\n return {\n ...result,\n stream: result.stream.pipeThrough(\n new TransformStream({\n transform(part, controller) {\n var _a, _b;\n if (part.type === \"text-delta\" && part.delta.length > 0) {\n hasText = true;\n }\n if (part.type === \"finish\" && isStructuredOutputWithToolCallsFinishReason({\n rawFinishReason: part.finishReason.raw,\n hasText,\n responseFormatType: (_a = options.responseFormat) == null ? void 0 : _a.type\n })) {\n controller.enqueue({\n ...part,\n finishReason: {\n ...part.finishReason,\n unified: \"stop\"\n }\n });\n return;\n }\n if (((_b = options.responseFormat) == null ? void 0 : _b.type) === \"json\" && hasText && (part.type === \"tool-input-start\" || part.type === \"tool-input-delta\" || part.type === \"tool-input-end\" || part.type === \"tool-call\")) {\n return;\n }\n controller.enqueue(part);\n }\n })\n )\n };\n }\n};\n\n// src/cerebras-provider.ts\nimport { z } from \"zod/v4\";\n\n// src/version.ts\nvar VERSION = true ? \"2.0.68\" : \"0.0.0-test\";\n\n// src/cerebras-provider.ts\nvar cerebrasErrorSchema = z.object({\n message: z.string(),\n type: z.string(),\n param: z.string(),\n code: z.string()\n});\nvar cerebrasErrorStructure = {\n errorSchema: cerebrasErrorSchema,\n errorToMessage: (data) => data.message\n};\nfunction transformCerebrasRequestBody(args) {\n return {\n ...args,\n messages: Array.isArray(args.messages) ? args.messages.map((message) => {\n if (message == null || typeof message !== \"object\" || message.role !== \"assistant\" || !(\"reasoning_content\" in message)) {\n return message;\n }\n const { reasoning_content, ...rest } = message;\n return {\n ...rest,\n ...!(\"reasoning\" in rest) && reasoning_content !== void 0 ? { reasoning: reasoning_content } : {}\n };\n }) : args.messages\n };\n}\nfunction createCerebras(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.cerebras.ai/v1\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"CEREBRAS_API_KEY\",\n description: \"Cerebras API key\"\n })}`,\n ...options.headers\n },\n `ai-sdk/cerebras/${VERSION}`\n );\n const createLanguageModel = (modelId) => {\n return new CerebrasChatLanguageModel(modelId, {\n provider: `cerebras.chat`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch,\n errorStructure: cerebrasErrorStructure,\n supportsStructuredOutputs: true,\n transformRequestBody: transformCerebrasRequestBody\n });\n };\n const provider = (modelId) => createLanguageModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.chat = createLanguageModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar cerebras = createCerebras();\nexport {\n VERSION,\n cerebras,\n createCerebras\n};\n//# sourceMappingURL=index.mjs.map","// src/deepinfra-provider.ts\nimport {\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel\n} from \"@ai-sdk/openai-compatible\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/deepinfra-image-model.ts\nimport {\n combineHeaders,\n convertBase64ToUint8Array,\n convertToFormData,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n downloadBlob,\n postFormDataToApi,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar DeepInfraImageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxImagesPerCall = 1;\n }\n get provider() {\n return this.config.provider;\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 }) {\n var _a, _b, _c, _d, _e;\n const warnings = [];\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n if (files != null && files.length > 0) {\n const { value: response2, responseHeaders: responseHeaders2 } = await postFormDataToApi({\n url: this.getEditUrl(),\n headers: combineHeaders(this.config.headers(), headers),\n formData: convertToFormData(\n {\n model: this.modelId,\n prompt,\n image: await Promise.all(files.map((file) => fileToBlob(file))),\n mask: mask != null ? await fileToBlob(mask) : void 0,\n n,\n size,\n ...(_d = providerOptions.deepinfra) != null ? _d : {}\n },\n { useArrayBrackets: false }\n ),\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: deepInfraEditErrorSchema,\n errorToMessage: (error) => {\n var _a2, _b2;\n return (_b2 = (_a2 = error.error) == null ? void 0 : _a2.message) != null ? _b2 : \"Unknown error\";\n }\n }),\n successfulResponseHandler: createJsonResponseHandler(\n deepInfraEditResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response2.data.map((item) => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders2\n }\n };\n }\n const splitSize = size == null ? void 0 : size.split(\"x\");\n const { value: response, responseHeaders } = await postJsonToApi({\n url: `${this.config.baseURL}/${this.modelId}`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n prompt,\n num_images: n,\n ...aspectRatio && { aspect_ratio: aspectRatio },\n ...splitSize && { width: splitSize[0], height: splitSize[1] },\n ...seed != null && { seed },\n ...(_e = providerOptions.deepinfra) != null ? _e : {}\n },\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: deepInfraErrorSchema,\n errorToMessage: (error) => error.detail.error\n }),\n successfulResponseHandler: createJsonResponseHandler(\n deepInfraImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response.images.map(\n (image) => image.replace(/^data:image\\/\\w+;base64,/, \"\")\n ),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n getEditUrl() {\n const baseUrl = this.config.baseURL.replace(\"/inference\", \"/openai\");\n return `${baseUrl}/images/edits`;\n }\n};\nvar deepInfraErrorSchema = z.object({\n detail: z.object({\n error: z.string()\n })\n});\nvar deepInfraImageResponseSchema = z.object({\n images: z.array(z.string())\n});\nvar deepInfraEditErrorSchema = z.object({\n error: z.object({\n message: z.string()\n }).optional()\n});\nvar deepInfraEditResponseSchema = z.object({\n data: z.array(z.object({ b64_json: z.string() }))\n});\nasync function fileToBlob(file) {\n if (file.type === \"url\") {\n return downloadBlob(file.url);\n }\n const data = file.data instanceof Uint8Array ? file.data : convertBase64ToUint8Array(file.data);\n return new Blob([data], { type: file.mediaType });\n}\n\n// src/deepinfra-chat-language-model.ts\nimport { OpenAICompatibleChatLanguageModel } from \"@ai-sdk/openai-compatible\";\nvar DeepInfraChatLanguageModel = class extends OpenAICompatibleChatLanguageModel {\n constructor(modelId, config) {\n super(modelId, config);\n }\n /**\n * Fixes incorrect token usage for Gemini/Gemma models from DeepInfra.\n *\n * DeepInfra's API returns completion_tokens that don't include reasoning_tokens\n * for Gemini/Gemma models, which violates the OpenAI-compatible spec.\n * According to the spec, completion_tokens should include reasoning_tokens.\n *\n * Example of incorrect data from DeepInfra:\n * {\n * \"completion_tokens\": 84, // text-only tokens\n * \"completion_tokens_details\": {\n * \"reasoning_tokens\": 1081 // reasoning tokens not included above\n * }\n * }\n *\n * This would result in negative text tokens: 84 - 1081 = -997\n *\n * The fix: If reasoning_tokens > completion_tokens, add reasoning_tokens\n * to completion_tokens: 84 + 1081 = 1165\n */\n fixUsageForGeminiModels(usage) {\n var _a, _b;\n if (!usage || !((_a = usage.completion_tokens_details) == null ? void 0 : _a.reasoning_tokens)) {\n return usage;\n }\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const reasoningTokens = usage.completion_tokens_details.reasoning_tokens;\n if (reasoningTokens > completionTokens) {\n const correctedCompletionTokens = completionTokens + reasoningTokens;\n return {\n ...usage,\n // Add reasoning_tokens to completion_tokens to get the correct total\n completion_tokens: correctedCompletionTokens,\n // Update total_tokens if present\n total_tokens: usage.total_tokens != null ? usage.total_tokens + reasoningTokens : void 0\n };\n }\n return usage;\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g;\n const result = await super.doGenerate(options);\n if ((_a = result.usage) == null ? void 0 : _a.raw) {\n const fixedRawUsage = this.fixUsageForGeminiModels(result.usage.raw);\n if (fixedRawUsage !== result.usage.raw) {\n const promptTokens = (_b = fixedRawUsage.prompt_tokens) != null ? _b : 0;\n const completionTokens = (_c = fixedRawUsage.completion_tokens) != null ? _c : 0;\n const cacheReadTokens = (_e = (_d = fixedRawUsage.prompt_tokens_details) == null ? void 0 : _d.cached_tokens) != null ? _e : 0;\n const reasoningTokens = (_g = (_f = fixedRawUsage.completion_tokens_details) == null ? void 0 : _f.reasoning_tokens) != null ? _g : 0;\n return {\n ...result,\n usage: {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: fixedRawUsage\n }\n };\n }\n }\n return result;\n }\n async doStream(options) {\n const result = await super.doStream(options);\n const originalStream = result.stream;\n const fixUsage = this.fixUsageForGeminiModels.bind(this);\n const transformedStream = new ReadableStream({\n async start(controller) {\n var _a, _b, _c, _d, _e, _f, _g;\n const reader = originalStream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) break;\n if (value.type === \"finish\" && ((_a = value.usage) == null ? void 0 : _a.raw)) {\n const fixedRawUsage = fixUsage(value.usage.raw);\n if (fixedRawUsage !== value.usage.raw) {\n const promptTokens = (_b = fixedRawUsage.prompt_tokens) != null ? _b : 0;\n const completionTokens = (_c = fixedRawUsage.completion_tokens) != null ? _c : 0;\n const cacheReadTokens = (_e = (_d = fixedRawUsage.prompt_tokens_details) == null ? void 0 : _d.cached_tokens) != null ? _e : 0;\n const reasoningTokens = (_g = (_f = fixedRawUsage.completion_tokens_details) == null ? void 0 : _f.reasoning_tokens) != null ? _g : 0;\n controller.enqueue({\n ...value,\n usage: {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: fixedRawUsage\n }\n });\n } else {\n controller.enqueue(value);\n }\n } else {\n controller.enqueue(value);\n }\n }\n controller.close();\n } catch (error) {\n controller.error(error);\n }\n }\n });\n return {\n ...result,\n stream: transformedStream\n };\n }\n};\n\n// src/version.ts\nvar VERSION = true ? \"2.0.66\" : \"0.0.0-test\";\n\n// src/deepinfra-provider.ts\nfunction createDeepInfra(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.deepinfra.com/v1\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"DEEPINFRA_API_KEY\",\n description: \"DeepInfra's API key\"\n })}`,\n ...options.headers\n },\n `ai-sdk/deepinfra/${VERSION}`\n );\n const getCommonModelConfig = (modelType) => ({\n provider: `deepinfra.${modelType}`,\n url: ({ path }) => `${baseURL}/openai${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createChatModel = (modelId) => {\n return new DeepInfraChatLanguageModel(\n modelId,\n getCommonModelConfig(\"chat\")\n );\n };\n const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(\n modelId,\n getCommonModelConfig(\"completion\")\n );\n const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(\n modelId,\n getCommonModelConfig(\"embedding\")\n );\n const createImageModel = (modelId) => new DeepInfraImageModel(modelId, {\n ...getCommonModelConfig(\"image\"),\n baseURL: baseURL ? `${baseURL}/inference` : \"https://api.deepinfra.com/v1/inference\"\n });\n const provider = (modelId) => createChatModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.completionModel = createCompletionModel;\n provider.chatModel = createChatModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.languageModel = createChatModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n return provider;\n}\nvar deepinfra = createDeepInfra();\nexport {\n VERSION,\n createDeepInfra,\n deepinfra\n};\n//# sourceMappingURL=index.mjs.map","// src/deepseek-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/chat/deepseek-chat-language-model.ts\nimport {\n InvalidResponseDataError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n generateId,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\n\n// src/chat/convert-to-deepseek-chat-messages.ts\nfunction convertToDeepSeekChatMessages({\n prompt,\n responseFormat,\n modelId,\n supportsStructuredOutputs = false\n}) {\n var _a;\n const isDeepSeekV4 = modelId.includes(\"deepseek-v4\");\n const messages = [];\n const warnings = [];\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\") {\n if (responseFormat.schema == null) {\n messages.push({\n role: \"system\",\n content: \"Return JSON.\"\n });\n } else if (!supportsStructuredOutputs) {\n messages.push({\n role: \"system\",\n content: \"Return JSON that conforms to the following schema: \" + JSON.stringify(responseFormat.schema)\n });\n warnings.push({\n type: \"compatibility\",\n feature: \"responseFormat JSON schema\",\n details: \"JSON response schema is injected into the system message.\"\n });\n }\n }\n let lastUserMessageIndex = -1;\n for (let i = prompt.length - 1; i >= 0; i--) {\n if (prompt[i].role === \"user\") {\n lastUserMessageIndex = i;\n break;\n }\n }\n let index = -1;\n for (const { role, content } of prompt) {\n index++;\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n let userContent = \"\";\n for (const part of content) {\n if (part.type === \"text\") {\n userContent += part.text;\n } else {\n warnings.push({\n type: \"unsupported\",\n feature: `user message part type: ${part.type}`\n });\n }\n }\n messages.push({\n role: \"user\",\n content: userContent\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n let reasoning;\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"reasoning\": {\n if (index <= lastUserMessageIndex && !isDeepSeekV4) {\n break;\n }\n if (reasoning == null) {\n reasoning = part.text;\n } else {\n reasoning += part.text;\n }\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n reasoning_content: reasoning != null ? reasoning : isDeepSeekV4 ? \"\" : void 0,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool call execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n warnings.push({\n type: \"unsupported\",\n feature: `message role: ${role}`\n });\n break;\n }\n }\n }\n return { messages, warnings };\n}\n\n// src/chat/convert-to-deepseek-usage.ts\nfunction convertDeepSeekUsage(usage) {\n var _a, _b, _c, _d, _e;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const cacheReadTokens = (_c = usage.prompt_cache_hit_tokens) != null ? _c : 0;\n const reasoningTokens = (_e = (_d = usage.completion_tokens_details) == null ? void 0 : _d.reasoning_tokens) != null ? _e : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/chat/deepseek-chat-api-types.ts\nimport { lazySchema, zodSchema } from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar tokenUsageSchema = z.object({\n prompt_tokens: z.number().nullish(),\n completion_tokens: z.number().nullish(),\n prompt_cache_hit_tokens: z.number().nullish(),\n prompt_cache_miss_tokens: z.number().nullish(),\n total_tokens: z.number().nullish(),\n completion_tokens_details: z.object({\n reasoning_tokens: z.number().nullish()\n }).nullish()\n}).nullish();\nvar deepSeekErrorSchema = z.object({\n error: z.object({\n message: z.string(),\n type: z.string().nullish(),\n param: z.any().nullish(),\n code: z.union([z.string(), z.number()]).nullish()\n })\n});\nvar deepseekChatResponseSchema = z.object({\n id: z.string().nullish(),\n created: z.number().nullish(),\n model: z.string().nullish(),\n choices: z.array(\n z.object({\n message: z.object({\n role: z.literal(\"assistant\").nullish(),\n content: z.string().nullish(),\n reasoning_content: z.string().nullish(),\n tool_calls: z.array(\n z.object({\n id: z.string().nullish(),\n function: z.object({\n name: z.string(),\n arguments: z.string()\n })\n })\n ).nullish()\n }),\n finish_reason: z.string().nullish()\n })\n ),\n usage: tokenUsageSchema\n});\nvar deepseekChatChunkSchema = lazySchema(\n () => zodSchema(\n z.union([\n z.object({\n id: z.string().nullish(),\n created: z.number().nullish(),\n model: z.string().nullish(),\n choices: z.array(\n z.object({\n delta: z.object({\n role: z.enum([\"assistant\"]).nullish(),\n content: z.string().nullish(),\n reasoning_content: z.string().nullish(),\n tool_calls: z.array(\n z.object({\n index: z.number(),\n id: z.string().nullish(),\n function: z.object({\n name: z.string().nullish(),\n arguments: z.string().nullish()\n })\n })\n ).nullish()\n }).nullish(),\n finish_reason: z.string().nullish()\n })\n ),\n usage: tokenUsageSchema\n }),\n deepSeekErrorSchema\n ])\n )\n);\n\n// src/chat/deepseek-chat-options.ts\nimport { z as z2 } from \"zod/v4\";\nvar deepseekLanguageModelOptions = z2.object({\n /**\n * Type of thinking to use. Defaults to `enabled`.\n *\n * See https://api-docs.deepseek.com/guides/thinking_mode for the\n * `adaptive` option, which lets the model decide when to think.\n */\n thinking: z2.object({\n type: z2.enum([\"adaptive\", \"enabled\", \"disabled\"]).optional()\n }).optional(),\n /**\n * Controls the thinking strength for DeepSeek V4 reasoning models.\n *\n * DeepSeek's API accepts `low`, `medium`, `high`, `xhigh`, and `max`.\n * Per their docs, `low` and `medium` are mapped to `high`, and `xhigh`\n * is mapped to `max` server-side for compatibility with other providers.\n */\n reasoningEffort: z2.enum([\"low\", \"medium\", \"high\", \"xhigh\", \"max\"]).optional(),\n /**\n * Whether to use strict JSON schema validation for structured outputs.\n * Only applies when the serving endpoint supports JSON schema response\n * formats (e.g. Azure). Defaults to `true`.\n */\n strictJsonSchema: z2.boolean().optional()\n});\n\n// src/chat/deepseek-prepare-tools.ts\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const deepseekTools = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n } else {\n deepseekTools.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: deepseekTools, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice == null ? void 0 : toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return { tools: deepseekTools, toolChoice: type, toolWarnings };\n case \"tool\":\n return {\n tools: deepseekTools,\n toolChoice: {\n type: \"function\",\n function: { name: toolChoice.toolName }\n },\n toolWarnings\n };\n default: {\n return {\n tools: deepseekTools,\n toolChoice: void 0,\n toolWarnings: [\n ...toolWarnings,\n {\n type: \"unsupported\",\n feature: `tool choice type: ${type}`\n }\n ]\n };\n }\n }\n}\n\n// src/chat/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/chat/map-deepseek-finish-reason.ts\nfunction mapDeepSeekFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"tool_calls\":\n return \"tool-calls\";\n case \"insufficient_system_resource\":\n return \"error\";\n default:\n return \"other\";\n }\n}\n\n// src/chat/deepseek-chat-language-model.ts\nvar DeepSeekChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {};\n this.modelId = modelId;\n this.config = config;\n this.failedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: deepSeekErrorSchema,\n errorToMessage: (error) => error.error.message\n });\n }\n get provider() {\n return this.config.provider;\n }\n get providerOptionsName() {\n return this.config.provider.split(\".\")[0].trim();\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n providerOptions,\n stopSequences,\n responseFormat,\n seed,\n toolChoice,\n tools\n }) {\n var _a, _b, _c, _d;\n const deepseekOptions = (_a = await parseProviderOptions({\n provider: this.providerOptionsName,\n providerOptions,\n schema: deepseekLanguageModelOptions\n })) != null ? _a : {};\n const supportsStructuredOutputs = this.config.supportsStructuredOutputs === true;\n const { messages, warnings } = convertToDeepSeekChatMessages({\n prompt,\n responseFormat,\n modelId: this.modelId,\n supportsStructuredOutputs\n });\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if (seed != null) {\n warnings.push({ type: \"unsupported\", feature: \"seed\" });\n }\n const {\n tools: deepseekTools,\n toolChoice: deepseekToolChoices,\n toolWarnings\n } = prepareTools({\n tools,\n toolChoice\n });\n const thinking = this.config.supportsThinking === false ? void 0 : ((_b = deepseekOptions.thinking) == null ? void 0 : _b.type) != null ? { type: deepseekOptions.thinking.type } : void 0;\n return {\n args: {\n model: this.modelId,\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? supportsStructuredOutputs && responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n strict: (_c = deepseekOptions.strictJsonSchema) != null ? _c : true,\n name: (_d = responseFormat.name) != null ? _d : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n stop: stopSequences,\n messages,\n tools: deepseekTools,\n tool_choice: deepseekToolChoices,\n thinking,\n ...(thinking == null ? void 0 : thinking.type) !== \"disabled\" && deepseekOptions.reasoningEffort != null && {\n reasoning_effort: deepseekOptions.reasoningEffort\n }\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d;\n const { args, warnings } = await this.getArgs({ ...options });\n const {\n responseHeaders,\n value: responseBody,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: this.failedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n deepseekChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = responseBody.choices[0];\n const content = [];\n const reasoning = choice.message.reasoning_content;\n if (reasoning != null && reasoning.length > 0) {\n content.push({\n type: \"reasoning\",\n text: reasoning\n });\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: (_a = toolCall.id) != null ? _a : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n const text = choice.message.content;\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n return {\n content,\n finishReason: {\n unified: mapDeepSeekFinishReason(choice.finish_reason),\n raw: (_b = choice.finish_reason) != null ? _b : void 0\n },\n usage: convertDeepSeekUsage(responseBody.usage),\n providerMetadata: {\n [this.providerOptionsName]: {\n promptCacheHitTokens: (_c = responseBody.usage) == null ? void 0 : _c.prompt_cache_hit_tokens,\n promptCacheMissTokens: (_d = responseBody.usage) == null ? void 0 : _d.prompt_cache_miss_tokens\n }\n },\n request: { body: args },\n response: {\n ...getResponseMetadata(responseBody),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs({ ...options });\n const body = {\n ...args,\n stream: true,\n stream_options: { include_usage: true }\n };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: this.failedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n deepseekChatChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const toolCalls = [];\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n const providerOptionsName = this.providerOptionsName;\n let isActiveReasoning = false;\n let isActiveText = false;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = { unified: \"error\", raw: void 0 };\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = { unified: \"error\", raw: void 0 };\n controller.enqueue({ type: \"error\", error: value.error.message });\n return;\n }\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (value.usage != null) {\n usage = value.usage;\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = {\n unified: mapDeepSeekFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n const reasoningContent = delta.reasoning_content;\n if (reasoningContent) {\n if (!isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-start\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = true;\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: \"reasoning-0\",\n delta: reasoningContent\n });\n }\n if (delta.content) {\n if (!isActiveText) {\n controller.enqueue({ type: \"text-start\", id: \"txt-0\" });\n isActiveText = true;\n }\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = false;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"txt-0\",\n delta: delta.content\n });\n }\n if (delta.tool_calls != null) {\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = false;\n }\n for (const toolCallDelta of delta.tool_calls) {\n const index = toolCallDelta.index;\n if (toolCalls[index] == null) {\n if (toolCallDelta.id == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'id' to be a string.`\n });\n }\n if (((_a = toolCallDelta.function) == null ? void 0 : _a.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallDelta.id,\n toolName: toolCallDelta.function.name\n });\n toolCalls[index] = {\n id: toolCallDelta.id,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_b = toolCallDelta.function.arguments) != null ? _b : \"\"\n },\n hasFinished: false\n };\n const toolCall2 = toolCalls[index];\n if (((_c = toolCall2.function) == null ? void 0 : _c.name) != null && ((_d = toolCall2.function) == null ? void 0 : _d.arguments) != null) {\n if (toolCall2.function.arguments.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n }\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall.hasFinished) {\n continue;\n }\n if (((_e = toolCallDelta.function) == null ? void 0 : _e.arguments) != null) {\n toolCall.function.arguments += (_g = (_f = toolCallDelta.function) == null ? void 0 : _f.arguments) != null ? _g : \"\";\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: (_h = toolCallDelta.function.arguments) != null ? _h : \"\"\n });\n }\n }\n },\n flush(controller) {\n var _a, _b, _c;\n if (isActiveReasoning) {\n controller.enqueue({ type: \"reasoning-end\", id: \"reasoning-0\" });\n }\n if (isActiveText) {\n controller.enqueue({ type: \"text-end\", id: \"txt-0\" });\n }\n for (const toolCall of toolCalls.filter(\n (toolCall2) => !toolCall2.hasFinished\n )) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_a = toolCall.id) != null ? _a : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertDeepSeekUsage(usage),\n providerMetadata: {\n [providerOptionsName]: {\n promptCacheHitTokens: (_b = usage == null ? void 0 : usage.prompt_cache_hit_tokens) != null ? _b : void 0,\n promptCacheMissTokens: (_c = usage == null ? void 0 : usage.prompt_cache_miss_tokens) != null ? _c : void 0\n }\n }\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\n\n// src/version.ts\nvar VERSION = true ? \"2.0.50\" : \"0.0.0-test\";\n\n// src/deepseek-provider.ts\nfunction createDeepSeek(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.deepseek.com\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"DEEPSEEK_API_KEY\",\n description: \"DeepSeek API key\"\n })}`,\n ...options.headers\n },\n `ai-sdk/deepseek/${VERSION}`\n );\n const createLanguageModel = (modelId) => {\n return new DeepSeekChatLanguageModel(modelId, {\n provider: `deepseek.chat`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n };\n const provider = (modelId) => createLanguageModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.chat = createLanguageModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar deepseek = createDeepSeek();\nexport {\n VERSION,\n createDeepSeek,\n deepseek\n};\n//# sourceMappingURL=index.mjs.map","// src/groq-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/groq-chat-language-model.ts\nimport {\n InvalidResponseDataError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/convert-groq-usage.ts\nfunction convertGroqUsage(usage) {\n var _a, _b, _c, _d, _e, _f;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n const cacheReadTokens = (_c = (_b = usage.prompt_tokens_details) == null ? void 0 : _b.cached_tokens) != null ? _c : void 0;\n const completionTokens = (_d = usage.completion_tokens) != null ? _d : 0;\n const reasoningTokens = (_f = (_e = usage.completion_tokens_details) == null ? void 0 : _e.reasoning_tokens) != null ? _f : void 0;\n const textTokens = reasoningTokens != null ? completionTokens - reasoningTokens : completionTokens;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: cacheReadTokens != null ? promptTokens - cacheReadTokens : promptTokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: textTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/convert-to-groq-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction convertToGroqChatMessages(prompt) {\n var _a;\n const messages = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n if (content.length === 1 && content[0].type === \"text\") {\n messages.push({ role: \"user\", content: content[0].text });\n break;\n }\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return { type: \"text\", text: part.text };\n }\n case \"file\": {\n if (!part.mediaType.startsWith(\"image/\")) {\n throw new UnsupportedFunctionalityError({\n functionality: \"Non-image file content parts\"\n });\n }\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: {\n url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${convertToBase64(part.data)}`\n }\n };\n }\n }\n })\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n let reasoning = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n // groq supports reasoning for tool-calls in multi-turn conversations\n // https://github.com/vercel/ai/issues/7860\n case \"reasoning\": {\n reasoning += part.text;\n break;\n }\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n ...reasoning.length > 0 ? { reasoning } : null,\n ...toolCalls.length > 0 ? { tool_calls: toolCalls } : null\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool call execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/groq-chat-options.ts\nimport { z } from \"zod/v4\";\nvar groqLanguageModelOptions = z.object({\n reasoningFormat: z.enum([\"parsed\", \"raw\", \"hidden\"]).optional(),\n /**\n * Specifies the reasoning effort level for model inference.\n * @see https://console.groq.com/docs/reasoning#reasoning-effort\n */\n reasoningEffort: z.enum([\"none\", \"default\", \"low\", \"medium\", \"high\"]).optional(),\n /**\n * Whether to enable parallel function calling during tool use. Default to true.\n */\n parallelToolCalls: z.boolean().optional(),\n /**\n * A unique identifier representing your end-user, which can help OpenAI to\n * monitor and detect abuse. Learn more.\n */\n user: z.string().optional(),\n /**\n * Whether to use structured outputs.\n *\n * @default true\n */\n structuredOutputs: z.boolean().optional(),\n /**\n * Whether to use strict JSON schema validation.\n * When true, the model uses constrained decoding to guarantee schema compliance.\n * Only used when structured outputs are enabled and a schema is provided.\n *\n * @default true\n */\n strictJsonSchema: z.boolean().optional(),\n /**\n * Service tier for the request.\n * - 'on_demand': Default tier with consistent performance and fairness\n * - 'performance': Prioritized tier for latency-sensitive workloads\n * - 'flex': Higher throughput tier optimized for workloads that can handle occasional request failures\n * - 'auto': Uses on_demand rate limits, then falls back to flex tier if exceeded\n *\n * @default 'on_demand'\n */\n serviceTier: z.enum([\"on_demand\", \"performance\", \"flex\", \"auto\"]).optional()\n});\n\n// src/groq-error.ts\nimport { z as z2 } from \"zod/v4\";\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nvar groqErrorDataSchema = z2.object({\n error: z2.object({\n message: z2.string(),\n type: z2.string()\n })\n});\nvar groqFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: groqErrorDataSchema,\n errorToMessage: (data) => data.error.message\n});\n\n// src/groq-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\n\n// src/groq-browser-search-models.ts\nvar BROWSER_SEARCH_SUPPORTED_MODELS = [\n \"openai/gpt-oss-20b\",\n \"openai/gpt-oss-120b\"\n];\nfunction isBrowserSearchSupportedModel(modelId) {\n return BROWSER_SEARCH_SUPPORTED_MODELS.includes(modelId);\n}\nfunction getSupportedModelsString() {\n return BROWSER_SEARCH_SUPPORTED_MODELS.join(\", \");\n}\n\n// src/groq-prepare-tools.ts\nfunction prepareTools({\n tools,\n toolChoice,\n modelId\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const groqTools2 = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n if (tool.id === \"groq.browser_search\") {\n if (!isBrowserSearchSupportedModel(modelId)) {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`,\n details: `Browser search is only supported on the following models: ${getSupportedModelsString()}. Current model: ${modelId}`\n });\n } else {\n groqTools2.push({\n type: \"browser_search\"\n });\n }\n } else {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n }\n } else {\n groqTools2.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: groqTools2, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n case \"required\":\n return { tools: groqTools2, toolChoice: type, toolWarnings };\n case \"tool\":\n return {\n tools: groqTools2,\n toolChoice: {\n type: \"function\",\n function: {\n name: toolChoice.toolName\n }\n },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/map-groq-finish-reason.ts\nfunction mapGroqFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"content_filter\":\n return \"content-filter\";\n case \"function_call\":\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\n\n// src/groq-chat-language-model.ts\nvar GroqChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"image/*\": [/^https?:\\/\\/.*$/]\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n stream,\n tools,\n toolChoice,\n providerOptions\n }) {\n var _a, _b, _c;\n const warnings = [];\n const groqOptions = await parseProviderOptions({\n provider: \"groq\",\n providerOptions,\n schema: groqLanguageModelOptions\n });\n const structuredOutputs = (_a = groqOptions == null ? void 0 : groqOptions.structuredOutputs) != null ? _a : true;\n const strictJsonSchema = (_b = groqOptions == null ? void 0 : groqOptions.strictJsonSchema) != null ? _b : true;\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\" && responseFormat.schema != null && !structuredOutputs) {\n warnings.push({\n type: \"unsupported\",\n feature: \"responseFormat\",\n details: \"JSON response format schema is only supported with structuredOutputs\"\n });\n }\n const {\n tools: groqTools2,\n toolChoice: groqToolChoice,\n toolWarnings\n } = prepareTools({ tools, toolChoice, modelId: this.modelId });\n return {\n args: {\n // model id:\n model: this.modelId,\n // model specific settings:\n user: groqOptions == null ? void 0 : groqOptions.user,\n parallel_tool_calls: groqOptions == null ? void 0 : groqOptions.parallelToolCalls,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n frequency_penalty: frequencyPenalty,\n presence_penalty: presencePenalty,\n stop: stopSequences,\n seed,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? structuredOutputs && responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n strict: strictJsonSchema,\n name: (_c = responseFormat.name) != null ? _c : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n // provider options:\n reasoning_format: groqOptions == null ? void 0 : groqOptions.reasoningFormat,\n reasoning_effort: groqOptions == null ? void 0 : groqOptions.reasoningEffort,\n service_tier: groqOptions == null ? void 0 : groqOptions.serviceTier,\n // messages:\n messages: convertToGroqChatMessages(prompt),\n // tools:\n tools: groqTools2,\n tool_choice: groqToolChoice\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a, _b;\n const { args, warnings } = await this.getArgs({\n ...options,\n stream: false\n });\n const body = JSON.stringify(args);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: args,\n failedResponseHandler: groqFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n groqChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n const text = choice.message.content;\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n const reasoning = choice.message.reasoning;\n if (reasoning != null && reasoning.length > 0) {\n content.push({\n type: \"reasoning\",\n text: reasoning\n });\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: (_a = toolCall.id) != null ? _a : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapGroqFinishReason(choice.finish_reason),\n raw: (_b = choice.finish_reason) != null ? _b : void 0\n },\n usage: convertGroqUsage(response.usage),\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings,\n request: { body }\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs({ ...options, stream: true });\n const body = JSON.stringify({ ...args, stream: true });\n const { responseHeaders, value: response } = await postJsonToApi({\n url: this.config.url({\n path: \"/chat/completions\",\n modelId: this.modelId\n }),\n headers: combineHeaders(this.config.headers(), options.headers),\n body: {\n ...args,\n stream: true\n },\n failedResponseHandler: groqFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(groqChatChunkSchema),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const toolCalls = [];\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n let isActiveText = false;\n let isActiveReasoning = false;\n let providerMetadata;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n finishReason = {\n unified: \"error\",\n raw: void 0\n };\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (\"error\" in value) {\n finishReason = {\n unified: \"error\",\n raw: void 0\n };\n controller.enqueue({ type: \"error\", error: value.error });\n return;\n }\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (((_a = value.x_groq) == null ? void 0 : _a.usage) != null) {\n usage = value.x_groq.usage;\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = {\n unified: mapGroqFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n if (delta.reasoning != null && delta.reasoning.length > 0) {\n if (!isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-start\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = true;\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: \"reasoning-0\",\n delta: delta.reasoning\n });\n }\n if (delta.content != null && delta.content.length > 0) {\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = false;\n }\n if (!isActiveText) {\n controller.enqueue({ type: \"text-start\", id: \"txt-0\" });\n isActiveText = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"txt-0\",\n delta: delta.content\n });\n }\n if (delta.tool_calls != null) {\n if (isActiveReasoning) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: \"reasoning-0\"\n });\n isActiveReasoning = false;\n }\n for (const toolCallDelta of delta.tool_calls) {\n const index = toolCallDelta.index;\n if (toolCalls[index] == null) {\n if (toolCallDelta.type !== \"function\") {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function' type.`\n });\n }\n if (toolCallDelta.id == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'id' to be a string.`\n });\n }\n if (((_b = toolCallDelta.function) == null ? void 0 : _b.name) == null) {\n throw new InvalidResponseDataError({\n data: toolCallDelta,\n message: `Expected 'function.name' to be a string.`\n });\n }\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallDelta.id,\n toolName: toolCallDelta.function.name\n });\n toolCalls[index] = {\n id: toolCallDelta.id,\n type: \"function\",\n function: {\n name: toolCallDelta.function.name,\n arguments: (_c = toolCallDelta.function.arguments) != null ? _c : \"\"\n },\n hasFinished: false\n };\n const toolCall2 = toolCalls[index];\n if (((_d = toolCall2.function) == null ? void 0 : _d.name) != null && ((_e = toolCall2.function) == null ? void 0 : _e.arguments) != null) {\n if (toolCall2.function.arguments.length > 0) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall2.id,\n delta: toolCall2.function.arguments\n });\n }\n }\n continue;\n }\n const toolCall = toolCalls[index];\n if (toolCall.hasFinished) {\n continue;\n }\n if (((_f = toolCallDelta.function) == null ? void 0 : _f.arguments) != null) {\n toolCall.function.arguments += (_h = (_g = toolCallDelta.function) == null ? void 0 : _g.arguments) != null ? _h : \"\";\n }\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.id,\n delta: (_i = toolCallDelta.function.arguments) != null ? _i : \"\"\n });\n }\n }\n },\n flush(controller) {\n var _a;\n if (isActiveReasoning) {\n controller.enqueue({ type: \"reasoning-end\", id: \"reasoning-0\" });\n }\n if (isActiveText) {\n controller.enqueue({ type: \"text-end\", id: \"txt-0\" });\n }\n for (const toolCall of toolCalls) {\n if (!toolCall.hasFinished) {\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCall.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: (_a = toolCall.id) != null ? _a : generateId(),\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n toolCall.hasFinished = true;\n }\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertGroqUsage(usage),\n ...providerMetadata != null ? { providerMetadata } : {}\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nvar groqChatResponseSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n message: z3.object({\n content: z3.string().nullish(),\n reasoning: z3.string().nullish(),\n tool_calls: z3.array(\n z3.object({\n id: z3.string().nullish(),\n type: z3.literal(\"function\"),\n function: z3.object({\n name: z3.string(),\n arguments: z3.string()\n })\n })\n ).nullish()\n }),\n index: z3.number(),\n finish_reason: z3.string().nullish()\n })\n ),\n usage: z3.object({\n prompt_tokens: z3.number().nullish(),\n completion_tokens: z3.number().nullish(),\n total_tokens: z3.number().nullish(),\n prompt_tokens_details: z3.object({\n cached_tokens: z3.number().nullish()\n }).nullish(),\n completion_tokens_details: z3.object({\n reasoning_tokens: z3.number().nullish()\n }).nullish()\n }).nullish()\n});\nvar groqChatChunkSchema = z3.union([\n z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n delta: z3.object({\n content: z3.string().nullish(),\n reasoning: z3.string().nullish(),\n tool_calls: z3.array(\n z3.object({\n index: z3.number(),\n id: z3.string().nullish(),\n type: z3.literal(\"function\").optional(),\n function: z3.object({\n name: z3.string().nullish(),\n arguments: z3.string().nullish()\n })\n })\n ).nullish()\n }).nullish(),\n finish_reason: z3.string().nullable().optional(),\n index: z3.number()\n })\n ),\n x_groq: z3.object({\n usage: z3.object({\n prompt_tokens: z3.number().nullish(),\n completion_tokens: z3.number().nullish(),\n total_tokens: z3.number().nullish(),\n prompt_tokens_details: z3.object({\n cached_tokens: z3.number().nullish()\n }).nullish(),\n completion_tokens_details: z3.object({\n reasoning_tokens: z3.number().nullish()\n }).nullish()\n }).nullish()\n }).nullish()\n }),\n groqErrorDataSchema\n]);\n\n// src/groq-transcription-model.ts\nimport {\n combineHeaders as combineHeaders2,\n convertBase64ToUint8Array,\n createJsonResponseHandler as createJsonResponseHandler2,\n mediaTypeToExtension,\n parseProviderOptions as parseProviderOptions2,\n postFormDataToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z5 } from \"zod/v4\";\n\n// src/groq-transcription-options.ts\nimport {\n lazySchema,\n zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar groqTranscriptionModelOptions = lazySchema(\n () => zodSchema(\n z4.object({\n language: z4.string().nullish(),\n prompt: z4.string().nullish(),\n responseFormat: z4.string().nullish(),\n temperature: z4.number().min(0).max(1).nullish(),\n timestampGranularities: z4.array(z4.string()).nullish()\n })\n )\n);\n\n// src/groq-transcription-model.ts\nvar GroqTranscriptionModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n audio,\n mediaType,\n providerOptions\n }) {\n var _a, _b, _c, _d, _e;\n const warnings = [];\n const groqOptions = await parseProviderOptions2({\n provider: \"groq\",\n providerOptions,\n schema: groqTranscriptionModelOptions\n });\n const formData = new FormData();\n const blob = audio instanceof Uint8Array ? new Blob([audio]) : new Blob([convertBase64ToUint8Array(audio)]);\n formData.append(\"model\", this.modelId);\n const fileExtension = mediaTypeToExtension(mediaType);\n formData.append(\n \"file\",\n new File([blob], \"audio\", { type: mediaType }),\n `audio.${fileExtension}`\n );\n if (groqOptions) {\n const transcriptionModelOptions = {\n language: (_a = groqOptions.language) != null ? _a : void 0,\n prompt: (_b = groqOptions.prompt) != null ? _b : void 0,\n response_format: (_c = groqOptions.responseFormat) != null ? _c : void 0,\n temperature: (_d = groqOptions.temperature) != null ? _d : void 0,\n timestamp_granularities: (_e = groqOptions.timestampGranularities) != null ? _e : void 0\n };\n for (const key in transcriptionModelOptions) {\n const value = transcriptionModelOptions[key];\n if (value !== void 0) {\n if (Array.isArray(value)) {\n for (const item of value) {\n formData.append(`${key}[]`, String(item));\n }\n } else {\n formData.append(key, String(value));\n }\n }\n }\n }\n return {\n formData,\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const { formData, warnings } = await this.getArgs(options);\n const {\n value: response,\n responseHeaders,\n rawValue: rawResponse\n } = await postFormDataToApi({\n url: this.config.url({\n path: \"/audio/transcriptions\",\n modelId: this.modelId\n }),\n headers: combineHeaders2(this.config.headers(), options.headers),\n formData,\n failedResponseHandler: groqFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n groqTranscriptionResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n return {\n text: response.text,\n segments: (_e = (_d = response.segments) == null ? void 0 : _d.map((segment) => ({\n text: segment.text,\n startSecond: segment.start,\n endSecond: segment.end\n }))) != null ? _e : [],\n language: (_f = response.language) != null ? _f : void 0,\n durationInSeconds: (_g = response.duration) != null ? _g : void 0,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse\n }\n };\n }\n};\nvar groqTranscriptionResponseSchema = z5.object({\n text: z5.string(),\n x_groq: z5.object({\n id: z5.string()\n }),\n // additional properties are returned when `response_format: 'verbose_json'` is\n task: z5.string().nullish(),\n language: z5.string().nullish(),\n duration: z5.number().nullish(),\n segments: z5.array(\n z5.object({\n id: z5.number(),\n seek: z5.number(),\n start: z5.number(),\n end: z5.number(),\n text: z5.string(),\n tokens: z5.array(z5.number()),\n temperature: z5.number(),\n avg_logprob: z5.number(),\n compression_ratio: z5.number(),\n no_speech_prob: z5.number()\n })\n ).nullish()\n});\n\n// src/tool/browser-search.ts\nimport { createProviderToolFactory } from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\nvar browserSearch = createProviderToolFactory({\n id: \"groq.browser_search\",\n inputSchema: z6.object({})\n});\n\n// src/groq-tools.ts\nvar groqTools = {\n browserSearch\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.53\" : \"0.0.0-test\";\n\n// src/groq-provider.ts\nfunction createGroq(options = {}) {\n var _a;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://api.groq.com/openai/v1\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"GROQ_API_KEY\",\n description: \"Groq\"\n })}`,\n ...options.headers\n },\n `ai-sdk/groq/${VERSION}`\n );\n const createChatModel = (modelId) => new GroqChatLanguageModel(modelId, {\n provider: \"groq.chat\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createLanguageModel = (modelId) => {\n if (new.target) {\n throw new Error(\n \"The Groq model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n const createTranscriptionModel = (modelId) => {\n return new GroqTranscriptionModel(modelId, {\n provider: \"groq.transcription\",\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n };\n const provider = function(modelId) {\n return createLanguageModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.chat = createChatModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n provider.transcription = createTranscriptionModel;\n provider.transcriptionModel = createTranscriptionModel;\n provider.tools = groqTools;\n return provider;\n}\nvar groq = createGroq();\nexport {\n VERSION,\n browserSearch,\n createGroq,\n groq\n};\n//# sourceMappingURL=index.mjs.map","// src/mistral-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/mistral-chat-language-model.ts\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n generateId,\n injectJsonInstructionIntoMessages,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\n\n// src/convert-mistral-usage.ts\nfunction convertMistralUsage(usage) {\n var _a, _b, _c, _d, _e;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = usage.prompt_tokens;\n const completionTokens = usage.completion_tokens;\n const cacheReadTokens = (_e = (_d = (_b = usage.num_cached_tokens) != null ? _b : (_a = usage.prompt_tokens_details) == null ? void 0 : _a.cached_tokens) != null ? _d : (_c = usage.prompt_token_details) == null ? void 0 : _c.cached_tokens) != null ? _e : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens - cacheReadTokens,\n cacheRead: cacheReadTokens || void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens,\n reasoning: void 0\n },\n raw: usage\n };\n}\n\n// src/convert-to-mistral-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 } from \"@ai-sdk/provider-utils\";\nfunction formatFileUrl({\n data,\n mediaType\n}) {\n return data instanceof URL ? data.toString() : `data:${mediaType};base64,${convertToBase64(data)}`;\n}\nfunction convertToMistralChatMessages(prompt) {\n var _a;\n const messages = [];\n for (let i = 0; i < prompt.length; i++) {\n const { role, content } = prompt[i];\n const isLastMessage = i === prompt.length - 1;\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n messages.push({\n role: \"user\",\n content: content.map((part) => {\n switch (part.type) {\n case \"text\": {\n return { type: \"text\", text: part.text };\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n return {\n type: \"image_url\",\n image_url: formatFileUrl({ data: part.data, mediaType })\n };\n } else if (part.mediaType === \"application/pdf\") {\n return {\n type: \"document_url\",\n document_url: formatFileUrl({\n data: part.data,\n mediaType: \"application/pdf\"\n })\n };\n } else {\n throw new UnsupportedFunctionalityError({\n functionality: \"Only images and PDF file parts are supported\"\n });\n }\n }\n }\n })\n });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n case \"reasoning\": {\n text += part.text;\n break;\n }\n default: {\n throw new Error(\n `Unsupported content type in assistant message: ${part.type}`\n );\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n prefix: isLastMessage ? true : void 0,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool call execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n name: toolResponse.toolName,\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\n\n// src/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: created != null ? new Date(created * 1e3) : void 0\n };\n}\n\n// src/map-mistral-finish-reason.ts\nfunction mapMistralFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n case \"model_length\":\n return \"length\";\n case \"tool_calls\":\n return \"tool-calls\";\n default:\n return \"other\";\n }\n}\n\n// src/mistral-chat-options.ts\nimport { z } from \"zod/v4\";\nvar mistralLanguageModelOptions = z.object({\n /**\n * Whether to inject a safety prompt before all conversations.\n *\n * Defaults to `false`.\n */\n safePrompt: z.boolean().optional(),\n documentImageLimit: z.number().optional(),\n documentPageLimit: z.number().optional(),\n /**\n * Whether to use structured outputs.\n *\n * @default true\n */\n structuredOutputs: z.boolean().optional(),\n /**\n * Whether to use strict JSON schema validation.\n *\n * @default false\n */\n strictJsonSchema: z.boolean().optional(),\n /**\n * Whether to enable parallel function calling during tool use.\n * When set to false, the model will use at most one tool per response.\n *\n * @default true\n */\n parallelToolCalls: z.boolean().optional(),\n /**\n * Controls the reasoning effort for models that support adjustable reasoning.\n *\n * - `'high'`: Enable reasoning\n * - `'none'`: Disable reasoning\n */\n reasoningEffort: z.enum([\"high\", \"none\"]).optional()\n});\n\n// src/mistral-error.ts\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar mistralErrorDataSchema = z2.object({\n object: z2.literal(\"error\"),\n message: z2.string(),\n type: z2.string(),\n param: z2.string().nullable(),\n code: z2.string().nullable()\n});\nvar mistralFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: mistralErrorDataSchema,\n errorToMessage: (data) => data.message\n});\n\n// src/mistral-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const mistralTools = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.id}`\n });\n } else {\n mistralTools.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: tool.inputSchema,\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: mistralTools, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n return { tools: mistralTools, toolChoice: type, toolWarnings };\n case \"required\":\n return { tools: mistralTools, toolChoice: \"any\", toolWarnings };\n // mistral does not support tool mode directly,\n // so we filter the tools and force the tool choice through 'any'\n case \"tool\":\n return {\n tools: mistralTools.filter(\n (tool) => tool.function.name === toolChoice.toolName\n ),\n toolChoice: \"any\",\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/mistral-chat-language-model.ts\nvar MistralChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"application/pdf\": [/^https:\\/\\/.*$/]\n };\n var _a;\n this.modelId = modelId;\n this.config = config;\n this.generateId = (_a = config.generateId) != null ? _a : generateId;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerOptions,\n tools,\n toolChoice\n }) {\n var _a, _b, _c, _d;\n const warnings = [];\n const options = (_a = await parseProviderOptions({\n provider: \"mistral\",\n providerOptions,\n schema: mistralLanguageModelOptions\n })) != null ? _a : {};\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n const structuredOutputs = (_b = options.structuredOutputs) != null ? _b : true;\n const strictJsonSchema = (_c = options.strictJsonSchema) != null ? _c : false;\n if ((responseFormat == null ? void 0 : responseFormat.type) === \"json\" && !(responseFormat == null ? void 0 : responseFormat.schema)) {\n prompt = injectJsonInstructionIntoMessages({\n messages: prompt,\n schema: responseFormat.schema\n });\n }\n const baseArgs = {\n // model id:\n model: this.modelId,\n // model specific settings:\n safe_prompt: options.safePrompt,\n // standardized settings:\n max_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n ...frequencyPenalty != null ? { frequency_penalty: frequencyPenalty } : {},\n ...presencePenalty != null ? { presence_penalty: presencePenalty } : {},\n stop: stopSequences,\n random_seed: seed,\n reasoning_effort: options.reasoningEffort,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? structuredOutputs && (responseFormat == null ? void 0 : responseFormat.schema) != null ? {\n type: \"json_schema\",\n json_schema: {\n schema: responseFormat.schema,\n strict: strictJsonSchema,\n name: (_d = responseFormat.name) != null ? _d : \"response\",\n description: responseFormat.description\n }\n } : { type: \"json_object\" } : void 0,\n // mistral-specific provider options:\n document_image_limit: options.documentImageLimit,\n document_page_limit: options.documentPageLimit,\n // messages:\n messages: convertToMistralChatMessages(prompt)\n };\n const {\n tools: mistralTools,\n toolChoice: mistralToolChoice,\n toolWarnings\n } = prepareTools({\n tools,\n toolChoice\n });\n return {\n args: {\n ...baseArgs,\n tools: mistralTools,\n tool_choice: mistralToolChoice,\n ...mistralTools != null && options.parallelToolCalls !== void 0 ? { parallel_tool_calls: options.parallelToolCalls } : {}\n },\n warnings: [...warnings, ...toolWarnings]\n };\n }\n async doGenerate(options) {\n var _a;\n const { args: body, warnings } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n mistralChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n if (choice.message.content != null && Array.isArray(choice.message.content)) {\n for (const part of choice.message.content) {\n if (part.type === \"thinking\") {\n const reasoningText = extractReasoningContent(part.thinking);\n if (reasoningText.length > 0) {\n content.push({ type: \"reasoning\", text: reasoningText });\n }\n } else if (part.type === \"text\") {\n if (part.text.length > 0) {\n content.push({ type: \"text\", text: part.text });\n }\n }\n }\n } else {\n const text = extractTextContent(choice.message.content);\n if (text != null && text.length > 0) {\n content.push({ type: \"text\", text });\n }\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapMistralFinishReason(choice.finish_reason),\n raw: (_a = choice.finish_reason) != null ? _a : void 0\n },\n usage: convertMistralUsage(response.usage),\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n const { args, warnings } = await this.getArgs(options);\n const body = { ...args, stream: true };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler(\n mistralChatChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n let activeText = false;\n let activeReasoningId = null;\n const generateId2 = this.generateId;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isFirstChunk) {\n isFirstChunk = false;\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n }\n if (value.usage != null) {\n usage = value.usage;\n }\n const choice = value.choices[0];\n const delta = choice.delta;\n const textContent = extractTextContent(delta.content);\n if (delta.content != null && Array.isArray(delta.content)) {\n for (const part of delta.content) {\n if (part.type === \"thinking\") {\n const reasoningDelta = extractReasoningContent(part.thinking);\n if (reasoningDelta.length > 0) {\n if (activeReasoningId == null) {\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n activeText = false;\n }\n activeReasoningId = generateId2();\n controller.enqueue({\n type: \"reasoning-start\",\n id: activeReasoningId\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: activeReasoningId,\n delta: reasoningDelta\n });\n }\n }\n }\n }\n if (textContent != null && textContent.length > 0) {\n if (!activeText) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n activeReasoningId = null;\n }\n controller.enqueue({ type: \"text-start\", id: \"0\" });\n activeText = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: textContent\n });\n }\n if ((delta == null ? void 0 : delta.tool_calls) != null) {\n for (const toolCall of delta.tool_calls) {\n const toolCallId = toolCall.id;\n const toolName = toolCall.function.name;\n const input = toolCall.function.arguments;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCallId,\n delta: input\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCallId\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName,\n input\n });\n }\n }\n if (choice.finish_reason != null) {\n finishReason = {\n unified: mapMistralFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n },\n flush(controller) {\n if (activeReasoningId != null) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningId\n });\n }\n if (activeText) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertMistralUsage(usage)\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction extractReasoningContent(thinking) {\n return thinking.filter((chunk) => chunk.type === \"text\").map((chunk) => chunk.text).join(\"\");\n}\nfunction extractTextContent(content) {\n if (typeof content === \"string\") {\n return content;\n }\n if (content == null) {\n return void 0;\n }\n const textContent = [];\n for (const chunk of content) {\n const { type } = chunk;\n switch (type) {\n case \"text\":\n textContent.push(chunk.text);\n break;\n case \"thinking\":\n case \"image_url\":\n case \"reference\":\n break;\n default: {\n const _exhaustiveCheck = type;\n throw new Error(`Unsupported type: ${_exhaustiveCheck}`);\n }\n }\n }\n return textContent.length ? textContent.join(\"\") : void 0;\n}\nvar mistralContentSchema = z3.union([\n z3.string(),\n z3.array(\n z3.discriminatedUnion(\"type\", [\n z3.object({\n type: z3.literal(\"text\"),\n text: z3.string()\n }),\n z3.object({\n type: z3.literal(\"image_url\"),\n image_url: z3.union([\n z3.string(),\n z3.object({\n url: z3.string(),\n detail: z3.string().nullable()\n })\n ])\n }),\n z3.object({\n type: z3.literal(\"reference\"),\n reference_ids: z3.array(z3.union([z3.string(), z3.number()]))\n }),\n z3.object({\n type: z3.literal(\"thinking\"),\n thinking: z3.array(\n z3.object({\n type: z3.literal(\"text\"),\n text: z3.string()\n })\n )\n })\n ])\n )\n]).nullish();\nvar mistralUsageSchema = z3.object({\n prompt_tokens: z3.number(),\n completion_tokens: z3.number(),\n total_tokens: z3.number(),\n num_cached_tokens: z3.number().nullish(),\n prompt_tokens_details: z3.object({ cached_tokens: z3.number().nullish() }).nullish(),\n prompt_token_details: z3.object({ cached_tokens: z3.number().nullish() }).nullish()\n});\nvar mistralChatResponseSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n message: z3.object({\n role: z3.literal(\"assistant\"),\n content: mistralContentSchema,\n tool_calls: z3.array(\n z3.object({\n id: z3.string(),\n function: z3.object({ name: z3.string(), arguments: z3.string() })\n })\n ).nullish()\n }),\n index: z3.number(),\n finish_reason: z3.string().nullish()\n })\n ),\n object: z3.literal(\"chat.completion\"),\n usage: mistralUsageSchema\n});\nvar mistralChatChunkSchema = z3.object({\n id: z3.string().nullish(),\n created: z3.number().nullish(),\n model: z3.string().nullish(),\n choices: z3.array(\n z3.object({\n delta: z3.object({\n role: z3.enum([\"assistant\"]).optional(),\n content: mistralContentSchema,\n tool_calls: z3.array(\n z3.object({\n id: z3.string(),\n function: z3.object({ name: z3.string(), arguments: z3.string() })\n })\n ).nullish()\n }),\n finish_reason: z3.string().nullish(),\n index: z3.number()\n })\n ),\n usage: mistralUsageSchema.nullish()\n});\n\n// src/mistral-embedding-model.ts\nimport {\n TooManyEmbeddingValuesForCallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders as combineHeaders2,\n createJsonResponseHandler as createJsonResponseHandler2,\n postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\nvar MistralEmbeddingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.maxEmbeddingsPerCall = 32;\n this.supportsParallelCalls = false;\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async doEmbed({\n values,\n abortSignal,\n headers\n }) {\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 const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi2({\n url: `${this.config.baseURL}/embeddings`,\n headers: combineHeaders2(this.config.headers(), headers),\n body: {\n model: this.modelId,\n input: values,\n encoding_format: \"float\"\n },\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n MistralTextEmbeddingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n warnings: [],\n embeddings: response.data.map((item) => item.embedding),\n usage: response.usage ? { tokens: response.usage.prompt_tokens } : void 0,\n response: { headers: responseHeaders, body: rawValue }\n };\n }\n};\nvar MistralTextEmbeddingResponseSchema = z4.object({\n data: z4.array(z4.object({ embedding: z4.array(z4.number()) })),\n usage: z4.object({ prompt_tokens: z4.number() }).nullish()\n});\n\n// src/mistral-speech-model.ts\nimport {\n combineHeaders as combineHeaders3,\n createJsonResponseHandler as createJsonResponseHandler3,\n parseProviderOptions as parseProviderOptions2,\n postToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\n\n// src/mistral-speech-model-options.ts\nimport { z as z5 } from \"zod/v4\";\nvar mistralSpeechModelOptions = z5.object({\n /**\n * Base64-encoded reference audio for one-off voice cloning.\n *\n * When provided, this takes precedence over the standard `voice` option.\n */\n refAudio: z5.string().min(1).optional()\n});\n\n// src/mistral-speech-model.ts\nvar MistralSpeechModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n text,\n voice,\n outputFormat = \"mp3\",\n instructions,\n speed,\n language,\n providerOptions\n }) {\n const warnings = [];\n const mistralOptions = await parseProviderOptions2({\n provider: \"mistral\",\n providerOptions,\n schema: mistralSpeechModelOptions\n });\n let responseFormat = \"mp3\";\n if ([\"pcm\", \"wav\", \"mp3\", \"flac\", \"opus\"].includes(outputFormat)) {\n responseFormat = outputFormat;\n } else {\n warnings.push({\n type: \"unsupported\",\n feature: \"outputFormat\",\n details: `Unsupported output format: ${outputFormat}. Using mp3 instead.`\n });\n }\n if (instructions != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"instructions\",\n details: \"Mistral speech models do not support the `instructions` option. Use a reference audio clip to guide delivery.\"\n });\n }\n if (speed != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"speed\",\n details: \"Mistral speech models do not support the `speed` option. It was ignored.\"\n });\n }\n if (language != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"language\",\n details: \"Mistral speech models do not support the `language` option. Language is inferred from the input text and voice.\"\n });\n }\n const refAudio = mistralOptions == null ? void 0 : mistralOptions.refAudio;\n const requestBody = {\n model: this.modelId,\n input: text,\n voice_id: refAudio == null ? voice : void 0,\n ref_audio: refAudio,\n response_format: responseFormat,\n stream: false\n };\n const requestBodyValues = {\n ...requestBody,\n ref_audio: refAudio == null ? void 0 : \"[redacted]\"\n };\n return { requestBody, requestBodyValues, warnings };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const { requestBody, requestBodyValues, warnings } = await this.getArgs(options);\n const {\n value: response,\n responseHeaders,\n rawValue: rawResponse\n } = await postToApi({\n url: `${this.config.baseURL}/audio/speech`,\n headers: combineHeaders3(\n { \"Content-Type\": \"application/json\" },\n (_e = (_d = this.config).headers) == null ? void 0 : _e.call(_d),\n options.headers\n ),\n body: {\n content: JSON.stringify(requestBody),\n values: requestBodyValues\n },\n failedResponseHandler: mistralFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler3(\n mistralSpeechResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n return {\n audio: response.audio_data,\n warnings,\n request: {\n body: JSON.stringify(requestBodyValues)\n },\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders,\n body: rawResponse\n }\n };\n }\n};\nvar mistralSpeechResponseSchema = z6.object({\n audio_data: z6.string()\n});\n\n// src/version.ts\nvar VERSION = true ? \"3.0.51\" : \"0.0.0-test\";\n\n// src/mistral-provider.ts\nfunction createMistral(options = {}) {\n var _a;\n const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : \"https://api.mistral.ai/v1\";\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"MISTRAL_API_KEY\",\n description: \"Mistral\"\n })}`,\n ...options.headers\n },\n `ai-sdk/mistral/${VERSION}`\n );\n const createChatModel = (modelId) => new MistralChatLanguageModel(modelId, {\n provider: \"mistral.chat\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch,\n generateId: options.generateId\n });\n const createEmbeddingModel = (modelId) => new MistralEmbeddingModel(modelId, {\n provider: \"mistral.embedding\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createSpeechModel = (modelId) => new MistralSpeechModel(modelId, {\n provider: \"mistral.speech\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n const provider = function(modelId) {\n if (new.target) {\n throw new Error(\n \"The Mistral model function cannot be called with the new keyword.\"\n );\n }\n return createChatModel(modelId);\n };\n provider.specificationVersion = \"v3\";\n provider.languageModel = createChatModel;\n provider.chat = createChatModel;\n provider.embedding = createEmbeddingModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbedding = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.speech = createSpeechModel;\n provider.speechModel = createSpeechModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar mistral = createMistral();\nexport {\n VERSION,\n createMistral,\n mistral\n};\n//# sourceMappingURL=index.mjs.map","// src/perplexity-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/perplexity-language-model.ts\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\n\n// src/convert-perplexity-usage.ts\nfunction convertPerplexityUsage(usage) {\n var _a, _b, _c;\n if (usage == null) {\n return {\n inputTokens: {\n total: void 0,\n noCache: void 0,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: void 0,\n text: void 0,\n reasoning: void 0\n },\n raw: void 0\n };\n }\n const promptTokens = (_a = usage.prompt_tokens) != null ? _a : 0;\n const completionTokens = (_b = usage.completion_tokens) != null ? _b : 0;\n const reasoningTokens = (_c = usage.reasoning_tokens) != null ? _c : 0;\n return {\n inputTokens: {\n total: promptTokens,\n noCache: promptTokens,\n cacheRead: void 0,\n cacheWrite: void 0\n },\n outputTokens: {\n total: completionTokens,\n text: completionTokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/convert-to-perplexity-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport {\n convertBase64ToUint8Array,\n convertUint8ArrayToBase64\n} from \"@ai-sdk/provider-utils\";\nfunction convertToPerplexityMessages(prompt) {\n const messages = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\":\n case \"assistant\": {\n const hasMultipartContent = content.some(\n (part) => part.type === \"file\" && part.mediaType.startsWith(\"image/\") || part.type === \"file\" && getTopLevelMediaType(part.mediaType) === \"application\"\n );\n const messageContent = content.map((part, index) => {\n var _a;\n switch (part.type) {\n case \"text\": {\n return {\n type: \"text\",\n text: part.text\n };\n }\n case \"file\": {\n if (getTopLevelMediaType(part.mediaType) === \"application\") {\n const fullMediaType = resolveApplicationMediaType(part);\n if (fullMediaType !== \"application/pdf\") {\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${fullMediaType}`\n });\n }\n return part.data instanceof URL ? {\n type: \"file_url\",\n file_url: {\n url: part.data.toString()\n },\n file_name: part.filename\n } : {\n type: \"file_url\",\n file_url: {\n url: typeof part.data === \"string\" ? part.data : convertUint8ArrayToBase64(part.data)\n },\n file_name: part.filename || `document-${index}.pdf`\n };\n } else if (part.mediaType.startsWith(\"image/\")) {\n return part.data instanceof URL ? {\n type: \"image_url\",\n image_url: {\n url: part.data.toString()\n }\n } : {\n type: \"image_url\",\n image_url: {\n url: `data:${(_a = part.mediaType) != null ? _a : \"image/jpeg\"};base64,${typeof part.data === \"string\" ? part.data : convertUint8ArrayToBase64(part.data)}`\n }\n };\n }\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`\n });\n }\n }\n }).filter(Boolean);\n messages.push({\n role,\n content: hasMultipartContent ? messageContent : messageContent.filter((part) => part.type === \"text\").map((part) => part.text).join(\"\")\n });\n break;\n }\n case \"tool\": {\n throw new UnsupportedFunctionalityError({\n functionality: \"Tool messages\"\n });\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return messages;\n}\nfunction getTopLevelMediaType(mediaType) {\n const slashIndex = mediaType.indexOf(\"/\");\n return slashIndex === -1 ? mediaType : mediaType.substring(0, slashIndex);\n}\nfunction isFullMediaType(mediaType) {\n const slashIndex = mediaType.indexOf(\"/\");\n if (slashIndex === -1) {\n return false;\n }\n const subtype = mediaType.substring(slashIndex + 1);\n return subtype.length > 0 && subtype !== \"*\";\n}\nfunction resolveApplicationMediaType(part) {\n if (isFullMediaType(part.mediaType)) {\n return part.mediaType;\n }\n if (part.data instanceof URL) {\n throw new UnsupportedFunctionalityError({\n functionality: `file of media type \"${part.mediaType}\" must specify subtype since it is not passed as inline bytes`\n });\n }\n if (isPdfData(part.data)) {\n return \"application/pdf\";\n }\n throw new UnsupportedFunctionalityError({\n functionality: `file of media type \"${part.mediaType}\" must specify subtype since it could not be auto-detected`\n });\n}\nfunction isPdfData(data) {\n const bytes = typeof data === \"string\" ? convertBase64ToUint8Array(data.substring(0, Math.min(data.length, 8))) : data;\n return bytes.length >= 4 && bytes[0] === 37 && bytes[1] === 80 && bytes[2] === 68 && bytes[3] === 70;\n}\n\n// src/map-perplexity-finish-reason.ts\nfunction mapPerplexityFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n case \"length\":\n return finishReason;\n default:\n return \"other\";\n }\n}\n\n// src/perplexity-language-model.ts\nvar PerplexityLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.provider = \"perplexity\";\n this.supportedUrls = {\n // No URLs are supported.\n };\n this.modelId = modelId;\n this.config = config;\n }\n getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n providerOptions\n }) {\n var _a;\n const warnings = [];\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if (stopSequences != null) {\n warnings.push({ type: \"unsupported\", feature: \"stopSequences\" });\n }\n if (seed != null) {\n warnings.push({ type: \"unsupported\", feature: \"seed\" });\n }\n return {\n args: {\n // model id:\n model: this.modelId,\n // standardized settings:\n frequency_penalty: frequencyPenalty,\n max_tokens: maxOutputTokens,\n presence_penalty: presencePenalty,\n temperature,\n top_k: topK,\n top_p: topP,\n // response format:\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? {\n type: \"json_schema\",\n json_schema: { schema: responseFormat.schema }\n } : void 0,\n // provider extensions\n ...(_a = providerOptions == null ? void 0 : providerOptions.perplexity) != null ? _a : {},\n // messages:\n messages: convertToPerplexityMessages(prompt)\n },\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l;\n const { args: body, warnings } = this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: perplexityErrorSchema,\n errorToMessage\n }),\n successfulResponseHandler: createJsonResponseHandler(\n perplexityResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const choice = response.choices[0];\n const content = [];\n const text = choice.message.content;\n if (text.length > 0) {\n content.push({ type: \"text\", text });\n }\n if (response.citations != null) {\n for (const url of response.citations) {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: this.config.generateId(),\n url\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapPerplexityFinishReason(choice.finish_reason),\n raw: (_a = choice.finish_reason) != null ? _a : void 0\n },\n usage: convertPerplexityUsage(response.usage),\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings,\n providerMetadata: {\n perplexity: {\n images: (_c = (_b = response.images) == null ? void 0 : _b.map((image) => ({\n imageUrl: image.image_url,\n originUrl: image.origin_url,\n height: image.height,\n width: image.width\n }))) != null ? _c : null,\n usage: {\n citationTokens: (_e = (_d = response.usage) == null ? void 0 : _d.citation_tokens) != null ? _e : null,\n numSearchQueries: (_g = (_f = response.usage) == null ? void 0 : _f.num_search_queries) != null ? _g : null\n },\n cost: ((_h = response.usage) == null ? void 0 : _h.cost) ? {\n inputTokensCost: (_i = response.usage.cost.input_tokens_cost) != null ? _i : null,\n outputTokensCost: (_j = response.usage.cost.output_tokens_cost) != null ? _j : null,\n requestCost: (_k = response.usage.cost.request_cost) != null ? _k : null,\n totalCost: (_l = response.usage.cost.total_cost) != null ? _l : null\n } : null\n }\n }\n };\n }\n async doStream(options) {\n const { args, warnings } = this.getArgs(options);\n const body = { ...args, stream: true };\n const { responseHeaders, value: response } = await postJsonToApi({\n url: `${this.config.baseURL}/chat/completions`,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: perplexityErrorSchema,\n errorToMessage\n }),\n successfulResponseHandler: createEventSourceResponseHandler(\n perplexityChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n const providerMetadata = {\n perplexity: {\n usage: {\n citationTokens: null,\n numSearchQueries: null\n },\n cost: null,\n images: null\n }\n };\n let isFirstChunk = true;\n let isActive = false;\n const self = this;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isFirstChunk) {\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n (_a = value.citations) == null ? void 0 : _a.forEach((url) => {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: self.config.generateId(),\n url\n });\n });\n isFirstChunk = false;\n }\n if (value.usage != null) {\n usage = value.usage;\n providerMetadata.perplexity.usage = {\n citationTokens: (_b = value.usage.citation_tokens) != null ? _b : null,\n numSearchQueries: (_c = value.usage.num_search_queries) != null ? _c : null\n };\n providerMetadata.perplexity.cost = value.usage.cost ? {\n inputTokensCost: (_d = value.usage.cost.input_tokens_cost) != null ? _d : null,\n outputTokensCost: (_e = value.usage.cost.output_tokens_cost) != null ? _e : null,\n requestCost: (_f = value.usage.cost.request_cost) != null ? _f : null,\n totalCost: (_g = value.usage.cost.total_cost) != null ? _g : null\n } : null;\n }\n if (value.images != null) {\n providerMetadata.perplexity.images = value.images.map((image) => ({\n imageUrl: image.image_url,\n originUrl: image.origin_url,\n height: image.height,\n width: image.width\n }));\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = {\n unified: mapPerplexityFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n const textContent = delta.content;\n if (textContent != null) {\n if (!isActive) {\n controller.enqueue({ type: \"text-start\", id: \"0\" });\n isActive = true;\n }\n controller.enqueue({\n type: \"text-delta\",\n id: \"0\",\n delta: textContent\n });\n }\n },\n flush(controller) {\n if (isActive) {\n controller.enqueue({ type: \"text-end\", id: \"0\" });\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: convertPerplexityUsage(usage),\n providerMetadata\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nfunction getResponseMetadata({\n id,\n model,\n created\n}) {\n return {\n id,\n modelId: model,\n timestamp: new Date(created * 1e3)\n };\n}\nvar perplexityCostSchema = z.object({\n input_tokens_cost: z.number().nullish(),\n output_tokens_cost: z.number().nullish(),\n request_cost: z.number().nullish(),\n total_cost: z.number().nullish()\n});\nvar perplexityUsageSchema = z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number().nullish(),\n citation_tokens: z.number().nullish(),\n num_search_queries: z.number().nullish(),\n reasoning_tokens: z.number().nullish(),\n cost: perplexityCostSchema.nullish()\n});\nvar perplexityImageSchema = z.object({\n image_url: z.string(),\n origin_url: z.string(),\n height: z.number(),\n width: z.number()\n});\nvar perplexityResponseSchema = z.object({\n id: z.string(),\n created: z.number(),\n model: z.string(),\n choices: z.array(\n z.object({\n message: z.object({\n role: z.literal(\"assistant\"),\n content: z.string()\n }),\n finish_reason: z.string().nullish()\n })\n ),\n citations: z.array(z.string()).nullish(),\n images: z.array(perplexityImageSchema).nullish(),\n usage: perplexityUsageSchema.nullish()\n});\nvar perplexityChunkSchema = z.object({\n id: z.string(),\n created: z.number(),\n model: z.string(),\n choices: z.array(\n z.object({\n delta: z.object({\n role: z.literal(\"assistant\").optional(),\n content: z.string().nullish()\n }),\n finish_reason: z.string().nullish()\n })\n ),\n citations: z.array(z.string()).nullish(),\n images: z.array(perplexityImageSchema).nullish(),\n usage: perplexityUsageSchema.nullish()\n});\nvar perplexityErrorSchema = z.object({\n error: z.object({\n code: z.number(),\n message: z.string().nullish(),\n type: z.string().nullish()\n })\n});\nvar errorToMessage = (data) => {\n var _a, _b;\n return (_b = (_a = data.error.message) != null ? _a : data.error.type) != null ? _b : \"unknown error\";\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.47\" : \"0.0.0-test\";\n\n// src/perplexity-provider.ts\nfunction createPerplexity(options = {}) {\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"PERPLEXITY_API_KEY\",\n description: \"Perplexity\"\n })}`,\n ...options.headers\n },\n `ai-sdk/perplexity/${VERSION}`\n );\n const createLanguageModel = (modelId) => {\n var _a;\n return new PerplexityLanguageModel(modelId, {\n baseURL: withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.perplexity.ai\"\n ),\n headers: getHeaders,\n generateId,\n fetch: options.fetch\n });\n };\n const provider = (modelId) => createLanguageModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createLanguageModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"imageModel\" });\n };\n return provider;\n}\nvar perplexity = createPerplexity();\nexport {\n VERSION,\n createPerplexity,\n perplexity\n};\n//# sourceMappingURL=index.mjs.map","// src/togetherai-provider.ts\nimport {\n OpenAICompatibleChatLanguageModel,\n OpenAICompatibleCompletionLanguageModel,\n OpenAICompatibleEmbeddingModel\n} from \"@ai-sdk/openai-compatible\";\nimport {\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/reranking/togetherai-reranking-model.ts\nimport {\n combineHeaders,\n createJsonErrorResponseHandler,\n createJsonResponseHandler,\n parseProviderOptions,\n postJsonToApi\n} from \"@ai-sdk/provider-utils\";\n\n// src/reranking/togetherai-reranking-api.ts\nimport { lazySchema, zodSchema } from \"@ai-sdk/provider-utils\";\nimport { z } from \"zod/v4\";\nvar togetheraiErrorSchema = lazySchema(\n () => zodSchema(\n z.object({\n error: z.object({\n message: z.string()\n })\n })\n )\n);\nvar togetheraiRerankingResponseSchema = lazySchema(\n () => zodSchema(\n z.object({\n id: z.string().nullish(),\n model: z.string().nullish(),\n results: z.array(\n z.object({\n index: z.number(),\n relevance_score: z.number()\n })\n ),\n usage: z.object({\n prompt_tokens: z.number(),\n completion_tokens: z.number(),\n total_tokens: z.number()\n })\n })\n )\n);\n\n// src/reranking/togetherai-reranking-options.ts\nimport {\n lazySchema as lazySchema2,\n zodSchema as zodSchema2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z2 } from \"zod/v4\";\nvar togetheraiRerankingModelOptionsSchema = lazySchema2(\n () => zodSchema2(\n z2.object({\n rankFields: z2.array(z2.string()).optional()\n })\n )\n);\n\n// src/reranking/togetherai-reranking-model.ts\nvar TogetherAIRerankingModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n // see https://docs.together.ai/reference/rerank-1\n async doRerank({\n documents,\n headers,\n query,\n topN,\n abortSignal,\n providerOptions\n }) {\n var _a, _b;\n const rerankingOptions = await parseProviderOptions({\n provider: \"togetherai\",\n providerOptions,\n schema: togetheraiRerankingModelOptionsSchema\n });\n const {\n responseHeaders,\n value: response,\n rawValue\n } = await postJsonToApi({\n url: `${this.config.baseURL}/rerank`,\n headers: combineHeaders(this.config.headers(), headers),\n body: {\n model: this.modelId,\n documents: documents.values,\n query,\n top_n: topN,\n rank_fields: rerankingOptions == null ? void 0 : rerankingOptions.rankFields,\n return_documents: false\n // reduce response size\n },\n failedResponseHandler: createJsonErrorResponseHandler({\n errorSchema: togetheraiErrorSchema,\n errorToMessage: (data) => data.error.message\n }),\n successfulResponseHandler: createJsonResponseHandler(\n togetheraiRerankingResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n ranking: response.results.map((result) => ({\n index: result.index,\n relevanceScore: result.relevance_score\n })),\n response: {\n id: (_a = response.id) != null ? _a : void 0,\n modelId: (_b = response.model) != null ? _b : void 0,\n headers: responseHeaders,\n body: rawValue\n }\n };\n }\n};\n\n// src/togetherai-image-model.ts\nimport {\n combineHeaders as combineHeaders2,\n convertImageModelFileToDataUri,\n createJsonResponseHandler as createJsonResponseHandler2,\n createJsonErrorResponseHandler as createJsonErrorResponseHandler2,\n lazySchema as lazySchema3,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi as postJsonToApi2,\n zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\nvar TogetherAIImageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxImagesPerCall = 1;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate({\n prompt,\n n,\n size,\n seed,\n providerOptions,\n headers,\n abortSignal,\n files,\n mask\n }) {\n var _a, _b, _c;\n const warnings = [];\n if (mask != null) {\n throw new Error(\n \"Together AI does not support mask-based image editing. Use FLUX Kontext models (e.g., black-forest-labs/FLUX.1-kontext-pro) with a reference image and descriptive prompt instead.\"\n );\n }\n if (size != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"aspectRatio\",\n details: \"This model does not support the `aspectRatio` option. Use `size` instead.\"\n });\n }\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const togetheraiOptions = await parseProviderOptions2({\n provider: \"togetherai\",\n providerOptions,\n schema: togetheraiImageModelOptionsSchema\n });\n let imageUrl;\n if (files != null && files.length > 0) {\n imageUrl = convertImageModelFileToDataUri(files[0]);\n if (files.length > 1) {\n warnings.push({\n type: \"other\",\n message: \"Together AI only supports a single input image. Additional images are ignored.\"\n });\n }\n }\n const splitSize = size == null ? void 0 : size.split(\"x\");\n const { value: response, responseHeaders } = await postJsonToApi2({\n url: `${this.config.baseURL}/images/generations`,\n headers: combineHeaders2(this.config.headers(), headers),\n body: {\n model: this.modelId,\n prompt,\n ...seed != null ? { seed } : {},\n ...n > 1 ? { n } : {},\n ...splitSize && {\n width: parseInt(splitSize[0]),\n height: parseInt(splitSize[1])\n },\n ...imageUrl != null ? { image_url: imageUrl } : {},\n response_format: \"base64\",\n ...togetheraiOptions != null ? togetheraiOptions : {}\n },\n failedResponseHandler: createJsonErrorResponseHandler2({\n errorSchema: togetheraiErrorSchema2,\n errorToMessage: (data) => data.error.message\n }),\n successfulResponseHandler: createJsonResponseHandler2(\n togetheraiImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n return {\n images: response.data.map((item) => item.b64_json),\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n }\n };\n }\n};\nvar togetheraiImageResponseSchema = z3.object({\n data: z3.array(\n z3.object({\n b64_json: z3.string()\n })\n )\n});\nvar togetheraiErrorSchema2 = z3.object({\n error: z3.object({\n message: z3.string()\n })\n});\nvar togetheraiImageModelOptionsSchema = lazySchema3(\n () => zodSchema3(\n z3.object({\n /**\n * Number of generation steps. Higher values can improve quality.\n */\n steps: z3.number().nullish(),\n /**\n * Guidance scale for image generation.\n */\n guidance: z3.number().nullish(),\n /**\n * Negative prompt to guide what to avoid.\n */\n negative_prompt: z3.string().nullish(),\n /**\n * Disable the safety checker for image generation.\n * When true, the API will not reject images flagged as potentially NSFW.\n * Not available for Flux Schnell Free and Flux Pro models.\n */\n disable_safety_checker: z3.boolean().nullish()\n }).passthrough()\n )\n);\n\n// src/version.ts\nvar VERSION = true ? \"2.0.67\" : \"0.0.0-test\";\n\n// src/togetherai-provider.ts\nfunction loadDeprecatedApiKey() {\n if (typeof process === \"undefined\") {\n return void 0;\n }\n if (typeof process.env.TOGETHER_API_KEY === \"string\") {\n return void 0;\n }\n const key = process.env.TOGETHER_AI_API_KEY;\n if (typeof key === \"string\") {\n console.warn(\n \"TOGETHER_AI_API_KEY is deprecated and will be removed in a future release. Please use TOGETHER_API_KEY instead.\"\n );\n }\n return key;\n}\nfunction createTogetherAI(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.together.xyz/v1/\"\n );\n const getHeaders = () => {\n var _a2;\n return withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: (_a2 = options.apiKey) != null ? _a2 : loadDeprecatedApiKey(),\n environmentVariableName: \"TOGETHER_API_KEY\",\n description: \"TogetherAI\"\n })}`,\n ...options.headers\n },\n `ai-sdk/togetherai/${VERSION}`\n );\n };\n const getCommonModelConfig = (modelType) => ({\n provider: `togetherai.${modelType}`,\n url: ({ path }) => `${baseURL}${path}`,\n headers: getHeaders,\n fetch: options.fetch\n });\n const createChatModel = (modelId) => {\n return new OpenAICompatibleChatLanguageModel(\n modelId,\n getCommonModelConfig(\"chat\")\n );\n };\n const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(\n modelId,\n getCommonModelConfig(\"completion\")\n );\n const createEmbeddingModel = (modelId) => new OpenAICompatibleEmbeddingModel(\n modelId,\n getCommonModelConfig(\"embedding\")\n );\n const createImageModel = (modelId) => new TogetherAIImageModel(modelId, {\n ...getCommonModelConfig(\"image\"),\n baseURL: baseURL != null ? baseURL : \"https://api.together.xyz/v1/\"\n });\n const createRerankingModel = (modelId) => new TogetherAIRerankingModel(modelId, {\n ...getCommonModelConfig(\"reranking\"),\n baseURL: baseURL != null ? baseURL : \"https://api.together.xyz/v1/\"\n });\n const provider = (modelId) => createChatModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.completionModel = createCompletionModel;\n provider.languageModel = createChatModel;\n provider.chatModel = createChatModel;\n provider.embeddingModel = createEmbeddingModel;\n provider.textEmbeddingModel = createEmbeddingModel;\n provider.image = createImageModel;\n provider.imageModel = createImageModel;\n provider.reranking = createRerankingModel;\n provider.rerankingModel = createRerankingModel;\n return provider;\n}\nvar togetherai = createTogetherAI();\nexport {\n VERSION,\n createTogetherAI,\n togetherai\n};\n//# sourceMappingURL=index.mjs.map","// src/xai-provider.ts\nimport {\n NoSuchModelError\n} from \"@ai-sdk/provider\";\nimport {\n generateId,\n loadApiKey,\n withoutTrailingSlash,\n withUserAgentSuffix\n} from \"@ai-sdk/provider-utils\";\n\n// src/xai-chat-language-model.ts\nimport {\n APICallError\n} from \"@ai-sdk/provider\";\nimport {\n combineHeaders,\n createEventSourceResponseHandler,\n createJsonResponseHandler,\n extractResponseHeaders,\n parseProviderOptions as parseProviderOptions2,\n postJsonToApi,\n safeParseJSON\n} from \"@ai-sdk/provider-utils\";\nimport { z as z4 } from \"zod/v4\";\n\n// src/convert-to-xai-chat-messages.ts\nimport {\n UnsupportedFunctionalityError\n} from \"@ai-sdk/provider\";\nimport { convertToBase64, parseProviderOptions } from \"@ai-sdk/provider-utils\";\n\n// src/xai-file-part-options.ts\nimport { z } from \"zod/v4\";\nvar xaiFilePartProviderOptions = z.object({\n /**\n * Controls the resolution at which the model processes the image.\n * `low` processes the image at reduced resolution and consumes fewer\n * input tokens, `high` processes the image at full resolution, and\n * `auto` lets the API decide. Defaults to full resolution when not set.\n *\n * Note: the xAI API silently ignores invalid values, so the value is\n * validated client-side.\n *\n * @see https://docs.x.ai/developers/model-capabilities/images/understanding\n */\n imageDetail: z.enum([\"low\", \"high\", \"auto\"]).optional()\n});\n\n// src/convert-to-xai-chat-messages.ts\nasync function convertToXaiChatMessages(prompt) {\n var _a;\n const messages = [];\n const warnings = [];\n for (const { role, content } of prompt) {\n switch (role) {\n case \"system\": {\n messages.push({ role: \"system\", content });\n break;\n }\n case \"user\": {\n if (content.length === 1 && content[0].type === \"text\") {\n messages.push({ role: \"user\", content: content[0].text });\n break;\n }\n const userContent = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n userContent.push({ type: \"text\", text: part.text });\n break;\n }\n case \"file\": {\n if (part.mediaType.startsWith(\"image/\")) {\n const mediaType = part.mediaType === \"image/*\" ? \"image/jpeg\" : part.mediaType;\n const filePartOptions = await parseProviderOptions({\n provider: \"xai\",\n providerOptions: part.providerOptions,\n schema: xaiFilePartProviderOptions\n });\n userContent.push({\n type: \"image_url\",\n image_url: {\n url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${convertToBase64(part.data)}`,\n ...(filePartOptions == null ? void 0 : filePartOptions.imageDetail) != null && {\n detail: filePartOptions.imageDetail\n }\n }\n });\n } else {\n throw new UnsupportedFunctionalityError({\n functionality: `file part media type ${part.mediaType}`\n });\n }\n break;\n }\n }\n }\n messages.push({ role: \"user\", content: userContent });\n break;\n }\n case \"assistant\": {\n let text = \"\";\n const toolCalls = [];\n for (const part of content) {\n switch (part.type) {\n case \"text\": {\n text += part.text;\n break;\n }\n case \"tool-call\": {\n toolCalls.push({\n id: part.toolCallId,\n type: \"function\",\n function: {\n name: part.toolName,\n arguments: JSON.stringify(part.input)\n }\n });\n break;\n }\n }\n }\n messages.push({\n role: \"assistant\",\n content: text,\n tool_calls: toolCalls.length > 0 ? toolCalls : void 0\n });\n break;\n }\n case \"tool\": {\n for (const toolResponse of content) {\n if (toolResponse.type === \"tool-approval-response\") {\n continue;\n }\n const output = toolResponse.output;\n let contentValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n contentValue = output.value;\n break;\n case \"execution-denied\":\n contentValue = (_a = output.reason) != null ? _a : \"Tool call execution denied.\";\n break;\n case \"content\":\n case \"json\":\n case \"error-json\":\n contentValue = JSON.stringify(output.value);\n break;\n }\n messages.push({\n role: \"tool\",\n tool_call_id: toolResponse.toolCallId,\n content: contentValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = role;\n throw new Error(`Unsupported role: ${_exhaustiveCheck}`);\n }\n }\n }\n return { messages, warnings };\n}\n\n// src/convert-xai-chat-usage.ts\nfunction convertXaiChatUsage(usage) {\n var _a, _b, _c, _d;\n const cacheReadTokens = (_b = (_a = usage.prompt_tokens_details) == null ? void 0 : _a.cached_tokens) != null ? _b : 0;\n const reasoningTokens = (_d = (_c = usage.completion_tokens_details) == null ? void 0 : _c.reasoning_tokens) != null ? _d : 0;\n const promptTokensIncludesCached = cacheReadTokens <= usage.prompt_tokens;\n return {\n inputTokens: {\n total: promptTokensIncludesCached ? usage.prompt_tokens : usage.prompt_tokens + cacheReadTokens,\n noCache: promptTokensIncludesCached ? usage.prompt_tokens - cacheReadTokens : usage.prompt_tokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: usage.completion_tokens + reasoningTokens,\n text: usage.completion_tokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/get-response-metadata.ts\nfunction getResponseMetadata({\n id,\n model,\n created,\n created_at\n}) {\n const unixTime = created != null ? created : created_at;\n return {\n id: id != null ? id : void 0,\n modelId: model != null ? model : void 0,\n timestamp: unixTime != null ? new Date(unixTime * 1e3) : void 0\n };\n}\n\n// src/map-xai-finish-reason.ts\nfunction mapXaiFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n return \"stop\";\n case \"length\":\n return \"length\";\n case \"tool_calls\":\n case \"function_call\":\n return \"tool-calls\";\n case \"content_filter\":\n return \"content-filter\";\n default:\n return \"other\";\n }\n}\n\n// src/xai-chat-options.ts\nimport { z as z2 } from \"zod/v4\";\nvar webSourceSchema = z2.object({\n type: z2.literal(\"web\"),\n country: z2.string().length(2).optional(),\n excludedWebsites: z2.array(z2.string()).max(5).optional(),\n allowedWebsites: z2.array(z2.string()).max(5).optional(),\n safeSearch: z2.boolean().optional()\n});\nvar xSourceSchema = z2.object({\n type: z2.literal(\"x\"),\n excludedXHandles: z2.array(z2.string()).optional(),\n includedXHandles: z2.array(z2.string()).optional(),\n postFavoriteCount: z2.number().int().optional(),\n postViewCount: z2.number().int().optional(),\n /**\n * @deprecated use `includedXHandles` instead\n */\n xHandles: z2.array(z2.string()).optional()\n});\nvar newsSourceSchema = z2.object({\n type: z2.literal(\"news\"),\n country: z2.string().length(2).optional(),\n excludedWebsites: z2.array(z2.string()).max(5).optional(),\n safeSearch: z2.boolean().optional()\n});\nvar rssSourceSchema = z2.object({\n type: z2.literal(\"rss\"),\n links: z2.array(z2.string().url()).max(1)\n // currently only supports one RSS link\n});\nvar searchSourceSchema = z2.discriminatedUnion(\"type\", [\n webSourceSchema,\n xSourceSchema,\n newsSourceSchema,\n rssSourceSchema\n]);\nvar xaiLanguageModelChatOptions = z2.object({\n reasoningEffort: z2.enum([\"none\", \"low\", \"medium\", \"high\"]).optional(),\n logprobs: z2.boolean().optional(),\n topLogprobs: z2.number().int().min(0).max(8).optional(),\n /**\n * Whether to enable parallel function calling during tool use.\n * When true, the model can call multiple functions in parallel.\n * When false, the model will call functions sequentially.\n * Defaults to true.\n */\n parallel_function_calling: z2.boolean().optional(),\n /**\n * @deprecated xAI has deprecated Live Search (`search_parameters`) in favor\n * of the Agent Tools API. Requests using this option now return a \"Live\n * search is deprecated\" error. Use the `web_search` / `x_search` tools\n * instead (e.g. `xai.tools.webSearch()`, `xai.tools.xSearch()`) with\n * `xai.responses(modelId)`.\n *\n * @see https://docs.x.ai/docs/guides/tools/overview\n */\n searchParameters: z2.object({\n /**\n * search mode preference\n * - \"off\": disables search completely\n * - \"auto\": model decides whether to search (default)\n * - \"on\": always enables search\n */\n mode: z2.enum([\"off\", \"auto\", \"on\"]),\n /**\n * whether to return citations in the response\n * defaults to true\n */\n returnCitations: z2.boolean().optional(),\n /**\n * start date for search data (ISO8601 format: YYYY-MM-DD)\n */\n fromDate: z2.string().optional(),\n /**\n * end date for search data (ISO8601 format: YYYY-MM-DD)\n */\n toDate: z2.string().optional(),\n /**\n * maximum number of search results to consider\n * defaults to 20\n */\n maxSearchResults: z2.number().min(1).max(50).optional(),\n /**\n * data sources to search from.\n * defaults to [{ type: 'web' }, { type: 'x' }] if not specified.\n *\n * @example\n * sources: [{ type: 'web', country: 'US' }, { type: 'x' }]\n */\n sources: z2.array(searchSourceSchema).optional()\n }).optional()\n});\n\n// src/xai-error.ts\nimport { createJsonErrorResponseHandler } from \"@ai-sdk/provider-utils\";\nimport { z as z3 } from \"zod/v4\";\nvar chatCompletionsErrorSchema = z3.object({\n error: z3.object({\n message: z3.string(),\n type: z3.string().nullish(),\n param: z3.any().nullish(),\n code: z3.union([z3.string(), z3.number()]).nullish()\n })\n});\nvar responsesErrorSchema = z3.object({\n code: z3.string(),\n error: z3.string()\n});\nvar xaiErrorDataSchema = z3.union([\n chatCompletionsErrorSchema,\n responsesErrorSchema\n]);\nvar xaiFailedResponseHandler = createJsonErrorResponseHandler({\n errorSchema: xaiErrorDataSchema,\n errorToMessage: (data) => \"code\" in data ? `${data.code}: ${data.error}` : data.error.message\n});\n\n// src/xai-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError2\n} from \"@ai-sdk/provider\";\n\n// src/remove-additional-properties.ts\nfunction removeAdditionalPropertiesFalse(value) {\n if (Array.isArray(value)) {\n return value.map(removeAdditionalPropertiesFalse);\n }\n if (value == null || typeof value !== \"object\") {\n return value;\n }\n const result = {};\n for (const [key, propertyValue] of Object.entries(value)) {\n if (key === \"additionalProperties\" && propertyValue === false) {\n continue;\n }\n result[key] = removeAdditionalPropertiesFalse(propertyValue);\n }\n return result;\n}\n\n// src/xai-prepare-tools.ts\nfunction prepareTools({\n tools,\n toolChoice\n}) {\n tools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (tools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const xaiTools2 = [];\n for (const tool of tools) {\n if (tool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.name}`\n });\n } else {\n xaiTools2.push({\n type: \"function\",\n function: {\n name: tool.name,\n description: tool.description,\n parameters: removeAdditionalPropertiesFalse(tool.inputSchema),\n ...tool.strict != null ? { strict: tool.strict } : {}\n }\n });\n }\n }\n if (toolChoice == null) {\n return { tools: xaiTools2, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n return { tools: xaiTools2, toolChoice: type, toolWarnings };\n case \"required\":\n return { tools: xaiTools2, toolChoice: \"required\", toolWarnings };\n case \"tool\":\n return {\n tools: xaiTools2,\n toolChoice: {\n type: \"function\",\n function: { name: toolChoice.toolName }\n },\n toolWarnings\n };\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError2({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/xai-chat-language-model.ts\nvar XaiChatLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"image/*\": [/^https?:\\/\\/.*$/]\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n seed,\n responseFormat,\n providerOptions,\n tools,\n toolChoice\n }) {\n var _a, _b, _c;\n const warnings = [];\n const options = (_a = await parseProviderOptions2({\n provider: \"xai\",\n providerOptions,\n schema: xaiLanguageModelChatOptions\n })) != null ? _a : {};\n if (topK != null) {\n warnings.push({ type: \"unsupported\", feature: \"topK\" });\n }\n if (frequencyPenalty != null) {\n warnings.push({ type: \"unsupported\", feature: \"frequencyPenalty\" });\n }\n if (presencePenalty != null) {\n warnings.push({ type: \"unsupported\", feature: \"presencePenalty\" });\n }\n if (stopSequences != null) {\n warnings.push({ type: \"unsupported\", feature: \"stopSequences\" });\n }\n const { messages, warnings: messageWarnings } = await convertToXaiChatMessages(prompt);\n warnings.push(...messageWarnings);\n const {\n tools: xaiTools2,\n toolChoice: xaiToolChoice,\n toolWarnings\n } = prepareTools({\n tools,\n toolChoice\n });\n warnings.push(...toolWarnings);\n const baseArgs = {\n // model id\n model: this.modelId,\n // standard generation settings\n logprobs: options.logprobs === true || options.topLogprobs != null ? true : void 0,\n top_logprobs: options.topLogprobs,\n max_completion_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n seed,\n reasoning_effort: options.reasoningEffort,\n // parallel function calling\n parallel_function_calling: options.parallel_function_calling,\n // response format\n response_format: (responseFormat == null ? void 0 : responseFormat.type) === \"json\" ? responseFormat.schema != null ? {\n type: \"json_schema\",\n json_schema: {\n name: (_b = responseFormat.name) != null ? _b : \"response\",\n schema: responseFormat.schema,\n strict: true\n }\n } : { type: \"json_object\" } : void 0,\n // search parameters\n search_parameters: options.searchParameters ? {\n mode: options.searchParameters.mode,\n return_citations: options.searchParameters.returnCitations,\n from_date: options.searchParameters.fromDate,\n to_date: options.searchParameters.toDate,\n max_search_results: options.searchParameters.maxSearchResults,\n sources: (_c = options.searchParameters.sources) == null ? void 0 : _c.map((source) => {\n var _a2;\n return {\n type: source.type,\n ...source.type === \"web\" && {\n country: source.country,\n excluded_websites: source.excludedWebsites,\n allowed_websites: source.allowedWebsites,\n safe_search: source.safeSearch\n },\n ...source.type === \"x\" && {\n excluded_x_handles: source.excludedXHandles,\n included_x_handles: (_a2 = source.includedXHandles) != null ? _a2 : source.xHandles,\n post_favorite_count: source.postFavoriteCount,\n post_view_count: source.postViewCount\n },\n ...source.type === \"news\" && {\n country: source.country,\n excluded_websites: source.excludedWebsites,\n safe_search: source.safeSearch\n },\n ...source.type === \"rss\" && {\n links: source.links\n }\n };\n })\n } : void 0,\n // messages in xai format\n messages,\n // tools in xai format\n tools: xaiTools2,\n tool_choice: xaiToolChoice\n };\n return {\n args: baseArgs,\n warnings\n };\n }\n async doGenerate(options) {\n var _a, _b;\n const { args: body, warnings } = await this.getArgs(options);\n const url = `${(_a = this.config.baseURL) != null ? _a : \"https://api.x.ai/v1\"}/chat/completions`;\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi({\n url,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler(\n xaiChatResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n if (response.error != null) {\n throw new APICallError({\n message: response.error,\n url,\n requestBodyValues: body,\n statusCode: 200,\n responseHeaders,\n responseBody: JSON.stringify(rawResponse),\n isRetryable: response.code === \"The service is currently unavailable\"\n });\n }\n const choice = response.choices[0];\n const content = [];\n if (choice.message.content != null && choice.message.content.length > 0) {\n let text = choice.message.content;\n const lastMessage = body.messages[body.messages.length - 1];\n if ((lastMessage == null ? void 0 : lastMessage.role) === \"assistant\" && text === lastMessage.content) {\n text = \"\";\n }\n if (text.length > 0) {\n content.push({ type: \"text\", text });\n }\n }\n if (choice.message.reasoning_content != null && choice.message.reasoning_content.length > 0) {\n content.push({\n type: \"reasoning\",\n text: choice.message.reasoning_content\n });\n }\n if (choice.message.tool_calls != null) {\n for (const toolCall of choice.message.tool_calls) {\n content.push({\n type: \"tool-call\",\n toolCallId: toolCall.id,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n if (response.citations != null) {\n for (const url2 of response.citations) {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: this.config.generateId(),\n url: url2\n });\n }\n }\n return {\n content,\n finishReason: {\n unified: mapXaiFinishReason(choice.finish_reason),\n raw: (_b = choice.finish_reason) != null ? _b : void 0\n },\n usage: response.usage ? convertXaiChatUsage(response.usage) : {\n inputTokens: { total: 0, noCache: 0, cacheRead: 0, cacheWrite: 0 },\n outputTokens: { total: 0, text: 0, reasoning: 0 }\n },\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n var _a;\n const { args, warnings } = await this.getArgs(options);\n const body = {\n ...args,\n stream: true,\n stream_options: {\n include_usage: true\n }\n };\n const url = `${(_a = this.config.baseURL) != null ? _a : \"https://api.x.ai/v1\"}/chat/completions`;\n const { responseHeaders, value: response } = await postJsonToApi({\n url,\n headers: combineHeaders(this.config.headers(), options.headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler: async ({ response: response2 }) => {\n const responseHeaders2 = extractResponseHeaders(response2);\n const contentType = response2.headers.get(\"content-type\");\n if (contentType == null ? void 0 : contentType.includes(\"application/json\")) {\n const responseBody = await response2.text();\n const parsedError = await safeParseJSON({\n text: responseBody,\n schema: xaiStreamErrorSchema\n });\n if (parsedError.success) {\n throw new APICallError({\n message: parsedError.value.error,\n url,\n requestBodyValues: body,\n statusCode: 200,\n responseHeaders: responseHeaders2,\n responseBody,\n isRetryable: parsedError.value.code === \"The service is currently unavailable\"\n });\n }\n throw new APICallError({\n message: \"Invalid JSON response\",\n url,\n requestBodyValues: body,\n statusCode: 200,\n responseHeaders: responseHeaders2,\n responseBody\n });\n }\n return createEventSourceResponseHandler(xaiChatChunkSchema)({\n response: response2,\n url,\n requestBodyValues: body\n });\n },\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let usage = void 0;\n let isFirstChunk = true;\n const contentBlocks = {};\n const lastReasoningDeltas = {};\n let activeReasoningBlockId = void 0;\n const self = this;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const value = chunk.value;\n if (isFirstChunk) {\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(value)\n });\n isFirstChunk = false;\n }\n if (value.citations != null) {\n for (const url2 of value.citations) {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: self.config.generateId(),\n url: url2\n });\n }\n }\n if (value.usage != null) {\n usage = convertXaiChatUsage(value.usage);\n }\n const choice = value.choices[0];\n if ((choice == null ? void 0 : choice.finish_reason) != null) {\n finishReason = {\n unified: mapXaiFinishReason(choice.finish_reason),\n raw: choice.finish_reason\n };\n }\n if ((choice == null ? void 0 : choice.delta) == null) {\n return;\n }\n const delta = choice.delta;\n const choiceIndex = choice.index;\n if (delta.content != null && delta.content.length > 0) {\n const textContent = delta.content;\n if (activeReasoningBlockId != null && !contentBlocks[activeReasoningBlockId].ended) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningBlockId\n });\n contentBlocks[activeReasoningBlockId].ended = true;\n activeReasoningBlockId = void 0;\n }\n const lastMessage = body.messages[body.messages.length - 1];\n if ((lastMessage == null ? void 0 : lastMessage.role) === \"assistant\" && textContent === lastMessage.content) {\n return;\n }\n const blockId = `text-${value.id || choiceIndex}`;\n if (contentBlocks[blockId] == null) {\n contentBlocks[blockId] = { type: \"text\", ended: false };\n controller.enqueue({\n type: \"text-start\",\n id: blockId\n });\n }\n controller.enqueue({\n type: \"text-delta\",\n id: blockId,\n delta: textContent\n });\n }\n if (delta.reasoning_content != null && delta.reasoning_content.length > 0) {\n const blockId = `reasoning-${value.id || choiceIndex}`;\n if (lastReasoningDeltas[blockId] === delta.reasoning_content) {\n return;\n }\n lastReasoningDeltas[blockId] = delta.reasoning_content;\n if (contentBlocks[blockId] == null) {\n contentBlocks[blockId] = { type: \"reasoning\", ended: false };\n activeReasoningBlockId = blockId;\n controller.enqueue({\n type: \"reasoning-start\",\n id: blockId\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: blockId,\n delta: delta.reasoning_content\n });\n }\n if (delta.tool_calls != null) {\n if (activeReasoningBlockId != null && !contentBlocks[activeReasoningBlockId].ended) {\n controller.enqueue({\n type: \"reasoning-end\",\n id: activeReasoningBlockId\n });\n contentBlocks[activeReasoningBlockId].ended = true;\n activeReasoningBlockId = void 0;\n }\n for (const toolCall of delta.tool_calls) {\n const toolCallId = toolCall.id;\n controller.enqueue({\n type: \"tool-input-start\",\n id: toolCallId,\n toolName: toolCall.function.name\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCallId,\n delta: toolCall.function.arguments\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: toolCallId\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId,\n toolName: toolCall.function.name,\n input: toolCall.function.arguments\n });\n }\n }\n },\n flush(controller) {\n for (const [blockId, block] of Object.entries(contentBlocks)) {\n if (!block.ended) {\n controller.enqueue({\n type: block.type === \"text\" ? \"text-end\" : \"reasoning-end\",\n id: blockId\n });\n }\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: usage != null ? usage : {\n inputTokens: {\n total: 0,\n noCache: 0,\n cacheRead: 0,\n cacheWrite: 0\n },\n outputTokens: { total: 0, text: 0, reasoning: 0 }\n }\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\nvar xaiUsageSchema = z4.object({\n prompt_tokens: z4.number(),\n completion_tokens: z4.number(),\n total_tokens: z4.number(),\n prompt_tokens_details: z4.object({\n text_tokens: z4.number().nullish(),\n audio_tokens: z4.number().nullish(),\n image_tokens: z4.number().nullish(),\n cached_tokens: z4.number().nullish()\n }).nullish(),\n completion_tokens_details: z4.object({\n reasoning_tokens: z4.number().nullish(),\n audio_tokens: z4.number().nullish(),\n accepted_prediction_tokens: z4.number().nullish(),\n rejected_prediction_tokens: z4.number().nullish()\n }).nullish()\n});\nvar xaiChatResponseSchema = z4.object({\n id: z4.string().nullish(),\n created: z4.number().nullish(),\n model: z4.string().nullish(),\n choices: z4.array(\n z4.object({\n message: z4.object({\n role: z4.literal(\"assistant\"),\n content: z4.string().nullish(),\n reasoning_content: z4.string().nullish(),\n tool_calls: z4.array(\n z4.object({\n id: z4.string(),\n type: z4.literal(\"function\"),\n function: z4.object({\n name: z4.string(),\n arguments: z4.string()\n })\n })\n ).nullish()\n }),\n index: z4.number(),\n finish_reason: z4.string().nullish()\n })\n ).nullish(),\n object: z4.literal(\"chat.completion\").nullish(),\n usage: xaiUsageSchema.nullish(),\n citations: z4.array(z4.string().url()).nullish(),\n code: z4.string().nullish(),\n error: z4.string().nullish()\n});\nvar xaiChatChunkSchema = z4.object({\n id: z4.string().nullish(),\n created: z4.number().nullish(),\n model: z4.string().nullish(),\n choices: z4.array(\n z4.object({\n delta: z4.object({\n role: z4.enum([\"assistant\"]).optional(),\n content: z4.string().nullish(),\n reasoning_content: z4.string().nullish(),\n tool_calls: z4.array(\n z4.object({\n id: z4.string(),\n type: z4.literal(\"function\"),\n function: z4.object({\n name: z4.string(),\n arguments: z4.string()\n })\n })\n ).nullish()\n }),\n finish_reason: z4.string().nullish(),\n index: z4.number()\n })\n ),\n usage: xaiUsageSchema.nullish(),\n citations: z4.array(z4.string().url()).nullish()\n});\nvar xaiStreamErrorSchema = z4.object({\n code: z4.string(),\n error: z4.string()\n});\n\n// src/xai-image-model.ts\nimport {\n combineHeaders as combineHeaders2,\n convertImageModelFileToDataUri,\n createBinaryResponseHandler,\n createJsonResponseHandler as createJsonResponseHandler2,\n createStatusCodeErrorResponseHandler,\n getFromApi,\n parseProviderOptions as parseProviderOptions3,\n postJsonToApi as postJsonToApi2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z6 } from \"zod/v4\";\n\n// src/xai-image-options.ts\nimport { z as z5 } from \"zod/v4\";\nvar xaiImageModelOptions = z5.object({\n aspect_ratio: z5.string().optional(),\n output_format: z5.string().optional(),\n sync_mode: z5.boolean().optional(),\n resolution: z5.enum([\"1k\", \"2k\"]).optional(),\n quality: z5.enum([\"low\", \"medium\", \"high\"]).optional(),\n user: z5.string().optional()\n});\n\n// src/xai-image-model.ts\nvar XaiImageModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxImagesPerCall = 3;\n }\n get provider() {\n return this.config.provider;\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 }) {\n var _a, _b, _c, _d, _e;\n const warnings = [];\n if (size != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"size\",\n details: \"This model does not support the `size` option. Use `aspectRatio` instead.\"\n });\n }\n if (seed != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"seed\"\n });\n }\n if (mask != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"mask\"\n });\n }\n const xaiOptions = await parseProviderOptions3({\n provider: \"xai\",\n providerOptions,\n schema: xaiImageModelOptions\n });\n const hasFiles = files != null && files.length > 0;\n const imageUrls = hasFiles ? files.map((file) => convertImageModelFileToDataUri(file)) : [];\n const endpoint = hasFiles ? \"/images/edits\" : \"/images/generations\";\n const body = {\n model: this.modelId,\n prompt,\n n,\n response_format: \"b64_json\"\n };\n if (aspectRatio != null) {\n body.aspect_ratio = aspectRatio;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.output_format) != null) {\n body.output_format = xaiOptions.output_format;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.sync_mode) != null) {\n body.sync_mode = xaiOptions.sync_mode;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.aspect_ratio) != null && aspectRatio == null) {\n body.aspect_ratio = xaiOptions.aspect_ratio;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.resolution) != null) {\n body.resolution = xaiOptions.resolution;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.quality) != null) {\n body.quality = xaiOptions.quality;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.user) != null) {\n body.user = xaiOptions.user;\n }\n if (imageUrls.length === 1) {\n body.image = { url: imageUrls[0], type: \"image_url\" };\n } else if (imageUrls.length > 1) {\n body.images = imageUrls.map((url) => ({ url, type: \"image_url\" }));\n }\n const baseURL = (_a = this.config.baseURL) != null ? _a : \"https://api.x.ai/v1\";\n const currentDate = (_d = (_c = (_b = this.config._internal) == null ? void 0 : _b.currentDate) == null ? void 0 : _c.call(_b)) != null ? _d : /* @__PURE__ */ new Date();\n const { value: response, responseHeaders } = await postJsonToApi2({\n url: `${baseURL}${endpoint}`,\n headers: combineHeaders2(this.config.headers(), headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler2(\n xaiImageResponseSchema\n ),\n abortSignal,\n fetch: this.config.fetch\n });\n const hasAllBase64 = response.data.every((image) => image.b64_json != null);\n const images = hasAllBase64 ? response.data.map((image) => image.b64_json) : await Promise.all(\n response.data.map(\n (image) => this.downloadImage(image.url, abortSignal)\n )\n );\n return {\n images,\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n },\n providerMetadata: {\n xai: {\n images: response.data.map((item) => ({\n ...item.revised_prompt ? { revisedPrompt: item.revised_prompt } : {}\n })),\n ...((_e = response.usage) == null ? void 0 : _e.cost_in_usd_ticks) != null ? { costInUsdTicks: response.usage.cost_in_usd_ticks } : {}\n }\n }\n };\n }\n async downloadImage(url, abortSignal) {\n const { value } = await getFromApi({\n url,\n abortSignal,\n failedResponseHandler: createStatusCodeErrorResponseHandler(),\n successfulResponseHandler: createBinaryResponseHandler(),\n fetch: this.config.fetch\n });\n return value;\n }\n};\nvar xaiImageResponseSchema = z6.object({\n data: z6.array(\n z6.object({\n url: z6.string().nullish(),\n b64_json: z6.string().nullish(),\n revised_prompt: z6.string().nullish()\n })\n ),\n usage: z6.object({\n cost_in_usd_ticks: z6.number().nullish()\n }).nullish()\n});\n\n// src/responses/xai-responses-language-model.ts\nimport {\n combineHeaders as combineHeaders3,\n createEventSourceResponseHandler as createEventSourceResponseHandler2,\n createJsonResponseHandler as createJsonResponseHandler3,\n parseProviderOptions as parseProviderOptions5,\n postJsonToApi as postJsonToApi3\n} from \"@ai-sdk/provider-utils\";\n\n// src/responses/convert-to-xai-responses-input.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError3\n} from \"@ai-sdk/provider\";\nimport { convertToBase64 as convertToBase642, parseProviderOptions as parseProviderOptions4 } from \"@ai-sdk/provider-utils\";\nasync function convertToXaiResponsesInput({\n prompt\n}) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i;\n const input = [];\n const inputWarnings = [];\n for (const message of prompt) {\n switch (message.role) {\n case \"system\": {\n input.push({\n role: \"system\",\n content: message.content\n });\n break;\n }\n case \"user\": {\n const contentParts = [];\n for (const block of message.content) {\n switch (block.type) {\n case \"text\": {\n contentParts.push({ type: \"input_text\", text: block.text });\n break;\n }\n case \"file\": {\n if (block.mediaType.startsWith(\"image/\")) {\n const mediaType = block.mediaType === \"image/*\" ? \"image/jpeg\" : block.mediaType;\n const imageUrl = block.data instanceof URL ? block.data.toString() : `data:${mediaType};base64,${convertToBase642(block.data)}`;\n const filePartOptions = await parseProviderOptions4({\n provider: \"xai\",\n providerOptions: block.providerOptions,\n schema: xaiFilePartProviderOptions\n });\n contentParts.push({\n type: \"input_image\",\n image_url: imageUrl,\n ...(filePartOptions == null ? void 0 : filePartOptions.imageDetail) != null && {\n detail: filePartOptions.imageDetail\n }\n });\n } else if (block.data instanceof URL) {\n contentParts.push({\n type: \"input_file\",\n file_url: block.data.toString()\n });\n } else {\n throw new UnsupportedFunctionalityError3({\n functionality: `file part media type ${block.mediaType} as inline data (xAI Responses requires a URL or a Files API reference for non-image files)`\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = block;\n inputWarnings.push({\n type: \"other\",\n message: \"xAI Responses API does not support this content type in user messages\"\n });\n }\n }\n }\n input.push({\n role: \"user\",\n content: contentParts\n });\n break;\n }\n case \"assistant\": {\n for (const part of message.content) {\n switch (part.type) {\n case \"text\": {\n const id = typeof ((_b = (_a = part.providerOptions) == null ? void 0 : _a.xai) == null ? void 0 : _b.itemId) === \"string\" ? part.providerOptions.xai.itemId : void 0;\n input.push({\n role: \"assistant\",\n content: part.text,\n id\n });\n break;\n }\n case \"tool-call\": {\n if (part.providerExecuted) {\n break;\n }\n const id = typeof ((_d = (_c = part.providerOptions) == null ? void 0 : _c.xai) == null ? void 0 : _d.itemId) === \"string\" ? part.providerOptions.xai.itemId : void 0;\n input.push({\n type: \"function_call\",\n id: id != null ? id : part.toolCallId,\n call_id: part.toolCallId,\n name: part.toolName,\n arguments: JSON.stringify(part.input),\n status: \"completed\"\n });\n break;\n }\n case \"tool-result\": {\n break;\n }\n case \"reasoning\": {\n const itemId = typeof ((_f = (_e = part.providerOptions) == null ? void 0 : _e.xai) == null ? void 0 : _f.itemId) === \"string\" ? part.providerOptions.xai.itemId : void 0;\n const encryptedContent = typeof ((_h = (_g = part.providerOptions) == null ? void 0 : _g.xai) == null ? void 0 : _h.reasoningEncryptedContent) === \"string\" ? part.providerOptions.xai.reasoningEncryptedContent : void 0;\n if (itemId != null || encryptedContent != null) {\n const summaryParts = [];\n if (part.text.length > 0) {\n summaryParts.push({\n type: \"summary_text\",\n text: part.text\n });\n }\n input.push({\n type: \"reasoning\",\n id: itemId != null ? itemId : \"\",\n summary: summaryParts,\n status: \"completed\",\n ...encryptedContent != null && {\n encrypted_content: encryptedContent\n }\n });\n } else {\n inputWarnings.push({\n type: \"other\",\n message: \"Reasoning parts without itemId or encrypted content cannot be sent back to xAI. Skipping.\"\n });\n }\n break;\n }\n case \"file\": {\n inputWarnings.push({\n type: \"other\",\n message: `xAI Responses API does not support ${part.type} in assistant messages`\n });\n break;\n }\n default: {\n const _exhaustiveCheck = part;\n inputWarnings.push({\n type: \"other\",\n message: \"xAI Responses API does not support this content type in assistant messages\"\n });\n }\n }\n }\n break;\n }\n case \"tool\": {\n for (const part of message.content) {\n if (part.type === \"tool-approval-response\") {\n continue;\n }\n const output = part.output;\n let outputValue;\n switch (output.type) {\n case \"text\":\n case \"error-text\":\n outputValue = output.value;\n break;\n case \"execution-denied\":\n outputValue = (_i = output.reason) != null ? _i : \"tool execution denied\";\n break;\n case \"json\":\n case \"error-json\":\n outputValue = JSON.stringify(output.value);\n break;\n case \"content\":\n outputValue = output.value.map((item) => {\n if (item.type === \"text\") {\n return item.text;\n }\n return \"\";\n }).join(\"\");\n break;\n default: {\n const _exhaustiveCheck = output;\n outputValue = \"\";\n }\n }\n input.push({\n type: \"function_call_output\",\n call_id: part.toolCallId,\n output: outputValue\n });\n }\n break;\n }\n default: {\n const _exhaustiveCheck = message;\n inputWarnings.push({\n type: \"other\",\n message: \"unsupported message role\"\n });\n }\n }\n }\n return { input, inputWarnings };\n}\n\n// src/responses/convert-xai-responses-usage.ts\nfunction convertXaiResponsesUsage(usage) {\n var _a, _b, _c, _d;\n const cacheReadTokens = (_b = (_a = usage.input_tokens_details) == null ? void 0 : _a.cached_tokens) != null ? _b : 0;\n const reasoningTokens = (_d = (_c = usage.output_tokens_details) == null ? void 0 : _c.reasoning_tokens) != null ? _d : 0;\n const inputTokensIncludesCached = cacheReadTokens <= usage.input_tokens;\n return {\n inputTokens: {\n total: inputTokensIncludesCached ? usage.input_tokens : usage.input_tokens + cacheReadTokens,\n noCache: inputTokensIncludesCached ? usage.input_tokens - cacheReadTokens : usage.input_tokens,\n cacheRead: cacheReadTokens,\n cacheWrite: void 0\n },\n outputTokens: {\n total: usage.output_tokens,\n text: usage.output_tokens - reasoningTokens,\n reasoning: reasoningTokens\n },\n raw: usage\n };\n}\n\n// src/responses/map-xai-responses-finish-reason.ts\nfunction mapXaiResponsesFinishReason(finishReason) {\n switch (finishReason) {\n case \"stop\":\n case \"completed\":\n return \"stop\";\n case \"length\":\n case \"max_output_tokens\":\n return \"length\";\n case \"tool_calls\":\n case \"function_call\":\n return \"tool-calls\";\n case \"content_filter\":\n return \"content-filter\";\n default:\n return \"other\";\n }\n}\n\n// src/responses/xai-responses-api.ts\nimport { z as z7 } from \"zod/v4\";\nvar annotationSchema = z7.union([\n z7.object({\n type: z7.literal(\"url_citation\"),\n url: z7.string(),\n title: z7.string().optional()\n }),\n z7.object({\n type: z7.string()\n })\n]);\nvar messageContentPartSchema = z7.object({\n type: z7.string(),\n text: z7.string().optional(),\n logprobs: z7.array(z7.any()).optional(),\n annotations: z7.array(annotationSchema).optional()\n});\nvar reasoningSummaryPartSchema = z7.object({\n type: z7.string(),\n text: z7.string()\n});\nvar toolCallSchema = z7.object({\n name: z7.string().optional(),\n arguments: z7.string().optional(),\n input: z7.string().optional(),\n call_id: z7.string().optional(),\n id: z7.string(),\n status: z7.string(),\n action: z7.any().optional()\n});\nvar mcpCallSchema = z7.object({\n name: z7.string().optional(),\n arguments: z7.string().optional(),\n output: z7.string().optional(),\n error: z7.string().optional(),\n id: z7.string(),\n status: z7.string(),\n server_label: z7.string().optional()\n});\nvar outputItemSchema = z7.discriminatedUnion(\"type\", [\n z7.object({\n type: z7.literal(\"web_search_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"x_search_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"code_interpreter_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"code_execution_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"view_image_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"view_x_video_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"file_search_call\"),\n id: z7.string(),\n status: z7.string(),\n queries: z7.array(z7.string()).optional(),\n results: z7.array(\n z7.object({\n file_id: z7.string(),\n filename: z7.string(),\n score: z7.number(),\n text: z7.string()\n })\n ).nullish()\n }),\n z7.object({\n type: z7.literal(\"custom_tool_call\"),\n ...toolCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"mcp_call\"),\n ...mcpCallSchema.shape\n }),\n z7.object({\n type: z7.literal(\"message\"),\n role: z7.string(),\n content: z7.array(messageContentPartSchema),\n id: z7.string(),\n status: z7.string()\n }),\n z7.object({\n type: z7.literal(\"function_call\"),\n name: z7.string(),\n arguments: z7.string(),\n call_id: z7.string(),\n id: z7.string()\n }),\n z7.object({\n type: z7.literal(\"reasoning\"),\n id: z7.string(),\n summary: z7.array(reasoningSummaryPartSchema),\n content: z7.array(z7.object({ type: z7.string(), text: z7.string() })).nullish(),\n status: z7.string(),\n encrypted_content: z7.string().nullish()\n })\n]);\nvar xaiResponsesUsageSchema = z7.object({\n input_tokens: z7.number(),\n output_tokens: z7.number(),\n total_tokens: z7.number().optional(),\n input_tokens_details: z7.object({\n cached_tokens: z7.number().optional()\n }).optional(),\n output_tokens_details: z7.object({\n reasoning_tokens: z7.number().optional()\n }).optional(),\n num_sources_used: z7.number().optional(),\n num_server_side_tools_used: z7.number().optional()\n});\nvar xaiResponsesResponseSchema = z7.object({\n id: z7.string().nullish(),\n created_at: z7.number().nullish(),\n model: z7.string().nullish(),\n object: z7.literal(\"response\"),\n output: z7.array(outputItemSchema),\n usage: xaiResponsesUsageSchema.nullish(),\n status: z7.string()\n});\nvar xaiResponsesChunkSchema = z7.union([\n z7.object({\n type: z7.literal(\"response.created\"),\n response: xaiResponsesResponseSchema.partial({ usage: true, status: true })\n }),\n z7.object({\n type: z7.literal(\"response.in_progress\"),\n response: xaiResponsesResponseSchema.partial({ usage: true, status: true })\n }),\n z7.object({\n type: z7.literal(\"response.output_item.added\"),\n item: outputItemSchema,\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.output_item.done\"),\n item: outputItemSchema,\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.content_part.added\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n part: messageContentPartSchema\n }),\n z7.object({\n type: z7.literal(\"response.content_part.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n part: messageContentPartSchema\n }),\n z7.object({\n type: z7.literal(\"response.output_text.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n delta: z7.string(),\n logprobs: z7.array(z7.any()).optional()\n }),\n z7.object({\n type: z7.literal(\"response.output_text.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n text: z7.string(),\n logprobs: z7.array(z7.any()).optional(),\n annotations: z7.array(annotationSchema).optional()\n }),\n z7.object({\n type: z7.literal(\"response.output_text.annotation.added\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n annotation_index: z7.number(),\n annotation: annotationSchema\n }),\n z7.object({\n type: z7.literal(\"response.reasoning_summary_part.added\"),\n item_id: z7.string(),\n output_index: z7.number(),\n summary_index: z7.number(),\n part: reasoningSummaryPartSchema\n }),\n z7.object({\n type: z7.literal(\"response.reasoning_summary_part.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n summary_index: z7.number(),\n part: reasoningSummaryPartSchema\n }),\n z7.object({\n type: z7.literal(\"response.reasoning_summary_text.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n summary_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.reasoning_summary_text.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n summary_index: z7.number(),\n text: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.reasoning_text.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.reasoning_text.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n content_index: z7.number(),\n text: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.web_search_call.in_progress\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.web_search_call.searching\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.web_search_call.completed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.x_search_call.in_progress\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.x_search_call.searching\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.x_search_call.completed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.file_search_call.in_progress\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.file_search_call.searching\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.file_search_call.completed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_execution_call.in_progress\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_execution_call.executing\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_execution_call.completed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_interpreter_call.in_progress\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_interpreter_call.executing\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_interpreter_call.interpreting\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.code_interpreter_call.completed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n // Code interpreter code streaming events\n z7.object({\n type: z7.literal(\"response.code_interpreter_call_code.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.code_interpreter_call_code.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n code: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.custom_tool_call_input.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.custom_tool_call_input.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n input: z7.string()\n }),\n // Function call arguments streaming events (standard function tools)\n z7.object({\n type: z7.literal(\"response.function_call_arguments.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.function_call_arguments.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n arguments: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call.in_progress\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call.executing\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call.completed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call.failed\"),\n item_id: z7.string(),\n output_index: z7.number()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call_arguments.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call_arguments.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n arguments: z7.string().optional()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call_output.delta\"),\n item_id: z7.string(),\n output_index: z7.number(),\n delta: z7.string()\n }),\n z7.object({\n type: z7.literal(\"response.mcp_call_output.done\"),\n item_id: z7.string(),\n output_index: z7.number(),\n output: z7.string().optional()\n }),\n z7.object({\n type: z7.literal(\"response.incomplete\"),\n response: z7.object({\n incomplete_details: z7.object({ reason: z7.string() }).nullish(),\n usage: xaiResponsesUsageSchema.nullish()\n })\n }),\n z7.object({\n type: z7.literal(\"response.failed\"),\n response: z7.object({\n error: z7.object({\n code: z7.string().nullish(),\n message: z7.string()\n }).nullish(),\n incomplete_details: z7.object({ reason: z7.string() }).nullish(),\n usage: xaiResponsesUsageSchema.nullish()\n })\n }),\n z7.object({\n type: z7.literal(\"error\"),\n code: z7.string().nullish(),\n message: z7.string(),\n param: z7.string().nullish()\n }),\n z7.object({\n type: z7.literal(\"response.done\"),\n response: xaiResponsesResponseSchema\n }),\n z7.object({\n type: z7.literal(\"response.completed\"),\n response: xaiResponsesResponseSchema\n })\n]);\n\n// src/responses/xai-responses-options.ts\nimport { z as z8 } from \"zod/v4\";\nvar xaiLanguageModelResponsesOptions = z8.object({\n /**\n * Constrains how hard a reasoning model thinks before responding.\n * Possible values are `none` (disables reasoning), `low` (uses fewer reasoning\n * tokens), `medium` and `high` (uses more reasoning tokens). Not all models\n * support reasoning effort; see xAI's docs for the values each model accepts.\n */\n reasoningEffort: z8.enum([\"none\", \"low\", \"medium\", \"high\"]).optional(),\n logprobs: z8.boolean().optional(),\n topLogprobs: z8.number().int().min(0).max(8).optional(),\n /**\n * Whether to store the input message(s) and model response for later retrieval.\n * Must be set to `false` for teams with Zero Data Retention (ZDR) enabled,\n * otherwise the API will return an error.\n * @default true\n */\n store: z8.boolean().optional(),\n /**\n * The ID of the previous response from the model.\n */\n previousResponseId: z8.string().optional(),\n /**\n * Specify additional output data to include in the model response.\n * Example values: 'file_search_call.results'.\n */\n include: z8.array(z8.enum([\"file_search_call.results\"])).nullish()\n});\n\n// src/responses/xai-responses-prepare-tools.ts\nimport {\n UnsupportedFunctionalityError as UnsupportedFunctionalityError4\n} from \"@ai-sdk/provider\";\nimport { validateTypes } from \"@ai-sdk/provider-utils\";\n\n// src/tool/file-search.ts\nimport {\n createProviderToolFactoryWithOutputSchema,\n lazySchema,\n zodSchema\n} from \"@ai-sdk/provider-utils\";\nimport { z as z9 } from \"zod/v4\";\nvar fileSearchArgsSchema = lazySchema(\n () => zodSchema(\n z9.object({\n vectorStoreIds: z9.array(z9.string()),\n maxNumResults: z9.number().optional()\n })\n )\n);\nvar fileSearchOutputSchema = lazySchema(\n () => zodSchema(\n z9.object({\n queries: z9.array(z9.string()),\n results: z9.array(\n z9.object({\n fileId: z9.string(),\n filename: z9.string(),\n score: z9.number().min(0).max(1),\n text: z9.string()\n })\n ).nullable()\n })\n )\n);\nvar fileSearchToolFactory = createProviderToolFactoryWithOutputSchema({\n id: \"xai.file_search\",\n inputSchema: lazySchema(() => zodSchema(z9.object({}))),\n outputSchema: fileSearchOutputSchema\n});\nvar fileSearch = (args) => fileSearchToolFactory(args);\n\n// src/tool/mcp-server.ts\nimport {\n createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema2,\n lazySchema as lazySchema2,\n zodSchema as zodSchema2\n} from \"@ai-sdk/provider-utils\";\nimport { z as z10 } from \"zod/v4\";\nvar mcpServerArgsSchema = lazySchema2(\n () => zodSchema2(\n z10.object({\n serverUrl: z10.string().describe(\"The URL of the MCP server\"),\n serverLabel: z10.string().optional().describe(\"A label for the MCP server\"),\n serverDescription: z10.string().optional().describe(\"Description of the MCP server\"),\n allowedTools: z10.array(z10.string()).optional().describe(\"List of allowed tool names\"),\n headers: z10.record(z10.string(), z10.string()).optional().describe(\"Custom headers to send\"),\n authorization: z10.string().optional().describe(\"Authorization header value\")\n })\n )\n);\nvar mcpServerOutputSchema = lazySchema2(\n () => zodSchema2(\n z10.object({\n name: z10.string(),\n arguments: z10.string(),\n result: z10.unknown()\n })\n )\n);\nvar mcpServerToolFactory = createProviderToolFactoryWithOutputSchema2({\n id: \"xai.mcp\",\n inputSchema: lazySchema2(() => zodSchema2(z10.object({}))),\n outputSchema: mcpServerOutputSchema\n});\nvar mcpServer = (args) => mcpServerToolFactory(args);\n\n// src/tool/web-search.ts\nimport {\n createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema3,\n lazySchema as lazySchema3,\n zodSchema as zodSchema3\n} from \"@ai-sdk/provider-utils\";\nimport { z as z11 } from \"zod/v4\";\nvar webSearchArgsSchema = lazySchema3(\n () => zodSchema3(\n z11.object({\n allowedDomains: z11.array(z11.string()).max(5).optional(),\n excludedDomains: z11.array(z11.string()).max(5).optional(),\n enableImageSearch: z11.boolean().optional(),\n enableImageUnderstanding: z11.boolean().optional()\n })\n )\n);\nvar webSearchOutputSchema = lazySchema3(\n () => zodSchema3(\n z11.object({\n query: z11.string(),\n sources: z11.array(\n z11.object({\n title: z11.string(),\n url: z11.string(),\n snippet: z11.string()\n })\n )\n })\n )\n);\nvar webSearchToolFactory = createProviderToolFactoryWithOutputSchema3({\n id: \"xai.web_search\",\n inputSchema: lazySchema3(() => zodSchema3(z11.object({}))),\n outputSchema: webSearchOutputSchema\n});\nvar webSearch = (args = {}) => webSearchToolFactory(args);\n\n// src/tool/x-search.ts\nimport {\n createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema4,\n lazySchema as lazySchema4,\n zodSchema as zodSchema4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z12 } from \"zod/v4\";\nvar xSearchArgsSchema = lazySchema4(\n () => zodSchema4(\n z12.object({\n allowedXHandles: z12.array(z12.string()).max(10).optional(),\n excludedXHandles: z12.array(z12.string()).max(10).optional(),\n fromDate: z12.string().optional(),\n toDate: z12.string().optional(),\n enableImageUnderstanding: z12.boolean().optional(),\n enableVideoUnderstanding: z12.boolean().optional()\n })\n )\n);\nvar xSearchOutputSchema = lazySchema4(\n () => zodSchema4(\n z12.object({\n query: z12.string(),\n posts: z12.array(\n z12.object({\n author: z12.string(),\n text: z12.string(),\n url: z12.string(),\n likes: z12.number()\n })\n )\n })\n )\n);\nvar xSearchToolFactory = createProviderToolFactoryWithOutputSchema4({\n id: \"xai.x_search\",\n inputSchema: lazySchema4(() => zodSchema4(z12.object({}))),\n outputSchema: xSearchOutputSchema\n});\nvar xSearch = (args = {}) => xSearchToolFactory(args);\n\n// src/responses/xai-responses-prepare-tools.ts\nasync function prepareResponsesTools({\n tools,\n toolChoice\n}) {\n const normalizedTools = (tools == null ? void 0 : tools.length) ? tools : void 0;\n const toolWarnings = [];\n if (normalizedTools == null) {\n return { tools: void 0, toolChoice: void 0, toolWarnings };\n }\n const xaiTools2 = [];\n const toolByName = /* @__PURE__ */ new Map();\n for (const tool of normalizedTools) {\n toolByName.set(tool.name, tool);\n if (tool.type === \"provider\") {\n switch (tool.id) {\n case \"xai.web_search\": {\n const args = await validateTypes({\n value: tool.args,\n schema: webSearchArgsSchema\n });\n xaiTools2.push({\n type: \"web_search\",\n allowed_domains: args.allowedDomains,\n excluded_domains: args.excludedDomains,\n enable_image_search: args.enableImageSearch,\n enable_image_understanding: args.enableImageUnderstanding\n });\n break;\n }\n case \"xai.x_search\": {\n const args = await validateTypes({\n value: tool.args,\n schema: xSearchArgsSchema\n });\n xaiTools2.push({\n type: \"x_search\",\n allowed_x_handles: args.allowedXHandles,\n excluded_x_handles: args.excludedXHandles,\n from_date: args.fromDate,\n to_date: args.toDate,\n enable_image_understanding: args.enableImageUnderstanding,\n enable_video_understanding: args.enableVideoUnderstanding\n });\n break;\n }\n case \"xai.code_execution\": {\n xaiTools2.push({\n type: \"code_interpreter\"\n });\n break;\n }\n case \"xai.view_image\": {\n xaiTools2.push({\n type: \"view_image\"\n });\n break;\n }\n case \"xai.view_x_video\": {\n xaiTools2.push({\n type: \"view_x_video\"\n });\n break;\n }\n case \"xai.file_search\": {\n const args = await validateTypes({\n value: tool.args,\n schema: fileSearchArgsSchema\n });\n xaiTools2.push({\n type: \"file_search\",\n vector_store_ids: args.vectorStoreIds,\n max_num_results: args.maxNumResults\n });\n break;\n }\n case \"xai.mcp\": {\n const args = await validateTypes({\n value: tool.args,\n schema: mcpServerArgsSchema\n });\n xaiTools2.push({\n type: \"mcp\",\n server_url: args.serverUrl,\n server_label: args.serverLabel,\n server_description: args.serverDescription,\n allowed_tools: args.allowedTools,\n headers: args.headers,\n authorization: args.authorization\n });\n break;\n }\n default: {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `provider-defined tool ${tool.name}`\n });\n break;\n }\n }\n } else {\n xaiTools2.push({\n type: \"function\",\n name: tool.name,\n description: tool.description,\n parameters: removeAdditionalPropertiesFalse(tool.inputSchema),\n ...tool.strict != null ? { strict: tool.strict } : {}\n });\n }\n }\n if (toolChoice == null) {\n return { tools: xaiTools2, toolChoice: void 0, toolWarnings };\n }\n const type = toolChoice.type;\n switch (type) {\n case \"auto\":\n case \"none\":\n return { tools: xaiTools2, toolChoice: type, toolWarnings };\n case \"required\":\n return { tools: xaiTools2, toolChoice: \"required\", toolWarnings };\n case \"tool\": {\n const selectedTool = toolByName.get(toolChoice.toolName);\n if (selectedTool == null) {\n return {\n tools: xaiTools2,\n toolChoice: void 0,\n toolWarnings\n };\n }\n if (selectedTool.type === \"provider\") {\n toolWarnings.push({\n type: \"unsupported\",\n feature: `toolChoice for server-side tool \"${selectedTool.name}\"`\n });\n return { tools: xaiTools2, toolChoice: void 0, toolWarnings };\n }\n return {\n tools: xaiTools2,\n toolChoice: { type: \"function\", name: selectedTool.name },\n toolWarnings\n };\n }\n default: {\n const _exhaustiveCheck = type;\n throw new UnsupportedFunctionalityError4({\n functionality: `tool choice type: ${_exhaustiveCheck}`\n });\n }\n }\n}\n\n// src/responses/xai-responses-language-model.ts\nvar XaiResponsesLanguageModel = class {\n constructor(modelId, config) {\n this.specificationVersion = \"v3\";\n this.supportedUrls = {\n \"image/*\": [/^https?:\\/\\/.*$/],\n // xAI's Responses API accepts non-image documents (PDF, plain text, CSV, etc.) as\n // `{ type: 'input_file', file_url }`. Keeping these URLs intact here lets them pass\n // through to the converter instead of being downloaded to bytes by the SDK.\n \"application/pdf\": [/^https?:\\/\\/.*$/],\n \"text/*\": [/^https?:\\/\\/.*$/]\n };\n this.modelId = modelId;\n this.config = config;\n }\n get provider() {\n return this.config.provider;\n }\n async getArgs({\n prompt,\n maxOutputTokens,\n temperature,\n topP,\n stopSequences,\n seed,\n responseFormat,\n providerOptions,\n tools,\n toolChoice\n }) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const warnings = [];\n const options = (_a = await parseProviderOptions5({\n provider: \"xai\",\n providerOptions,\n schema: xaiLanguageModelResponsesOptions\n })) != null ? _a : {};\n if (stopSequences != null) {\n warnings.push({ type: \"unsupported\", feature: \"stopSequences\" });\n }\n const webSearchToolName = (_b = tools == null ? void 0 : tools.find(\n (tool) => tool.type === \"provider\" && tool.id === \"xai.web_search\"\n )) == null ? void 0 : _b.name;\n const xSearchToolName = (_c = tools == null ? void 0 : tools.find(\n (tool) => tool.type === \"provider\" && tool.id === \"xai.x_search\"\n )) == null ? void 0 : _c.name;\n const codeExecutionToolName = (_d = tools == null ? void 0 : tools.find(\n (tool) => tool.type === \"provider\" && tool.id === \"xai.code_execution\"\n )) == null ? void 0 : _d.name;\n const mcpToolName = (_e = tools == null ? void 0 : tools.find(\n (tool) => tool.type === \"provider\" && tool.id === \"xai.mcp\"\n )) == null ? void 0 : _e.name;\n const fileSearchToolName = (_f = tools == null ? void 0 : tools.find(\n (tool) => tool.type === \"provider\" && tool.id === \"xai.file_search\"\n )) == null ? void 0 : _f.name;\n const { input, inputWarnings } = await convertToXaiResponsesInput({\n prompt,\n store: (_g = options.store) != null ? _g : true\n });\n warnings.push(...inputWarnings);\n const {\n tools: xaiTools2,\n toolChoice: xaiToolChoice,\n toolWarnings\n } = await prepareResponsesTools({\n tools,\n toolChoice\n });\n warnings.push(...toolWarnings);\n let include = options.include ? [...options.include] : void 0;\n if (options.store === false) {\n if (include == null) {\n include = [\"reasoning.encrypted_content\"];\n } else {\n include = [...include, \"reasoning.encrypted_content\"];\n }\n }\n const baseArgs = {\n model: this.modelId,\n input,\n logprobs: options.logprobs === true || options.topLogprobs != null ? true : void 0,\n top_logprobs: options.topLogprobs,\n max_output_tokens: maxOutputTokens,\n temperature,\n top_p: topP,\n seed,\n ...(responseFormat == null ? void 0 : responseFormat.type) === \"json\" && {\n text: {\n format: responseFormat.schema != null ? {\n type: \"json_schema\",\n strict: true,\n name: (_h = responseFormat.name) != null ? _h : \"response\",\n description: responseFormat.description,\n schema: responseFormat.schema\n } : { type: \"json_object\" }\n }\n },\n ...options.reasoningEffort != null && {\n reasoning: { effort: options.reasoningEffort }\n },\n ...options.store === false && {\n store: options.store\n },\n ...include != null && {\n include\n },\n ...options.previousResponseId != null && {\n previous_response_id: options.previousResponseId\n }\n };\n if (xaiTools2 && xaiTools2.length > 0) {\n baseArgs.tools = xaiTools2;\n }\n if (xaiToolChoice != null) {\n baseArgs.tool_choice = xaiToolChoice;\n }\n return {\n args: baseArgs,\n warnings,\n webSearchToolName,\n xSearchToolName,\n codeExecutionToolName,\n mcpToolName,\n fileSearchToolName\n };\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n;\n const {\n args: body,\n warnings,\n webSearchToolName,\n xSearchToolName,\n codeExecutionToolName,\n mcpToolName,\n fileSearchToolName\n } = await this.getArgs(options);\n const {\n responseHeaders,\n value: response,\n rawValue: rawResponse\n } = await postJsonToApi3({\n url: `${(_a = this.config.baseURL) != null ? _a : \"https://api.x.ai/v1\"}/responses`,\n headers: combineHeaders3(this.config.headers(), options.headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler3(\n xaiResponsesResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const content = [];\n let hasFunctionCall = false;\n const webSearchSubTools = [\n \"web_search\",\n \"web_search_with_snippets\",\n \"browse_page\"\n ];\n const xSearchSubTools = [\n \"x_user_search\",\n \"x_keyword_search\",\n \"x_semantic_search\",\n \"x_thread_fetch\"\n ];\n for (const part of response.output) {\n if (part.type === \"file_search_call\") {\n const toolName = fileSearchToolName != null ? fileSearchToolName : \"file_search\";\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName,\n input: \"\",\n providerExecuted: true\n });\n content.push({\n type: \"tool-result\",\n toolCallId: part.id,\n toolName,\n result: {\n queries: (_b = part.queries) != null ? _b : [],\n results: (_d = (_c = part.results) == null ? void 0 : _c.map((result) => ({\n fileId: result.file_id,\n filename: result.filename,\n score: result.score,\n text: result.text\n }))) != null ? _d : null\n }\n });\n continue;\n }\n if (part.type === \"web_search_call\" || part.type === \"x_search_call\" || part.type === \"code_interpreter_call\" || part.type === \"code_execution_call\" || part.type === \"view_image_call\" || part.type === \"view_x_video_call\" || part.type === \"custom_tool_call\" || part.type === \"mcp_call\") {\n let toolName = (_e = part.name) != null ? _e : \"\";\n if (webSearchSubTools.includes((_f = part.name) != null ? _f : \"\") || part.type === \"web_search_call\") {\n toolName = webSearchToolName != null ? webSearchToolName : \"web_search\";\n } else if (xSearchSubTools.includes((_g = part.name) != null ? _g : \"\") || part.type === \"x_search_call\") {\n toolName = xSearchToolName != null ? xSearchToolName : \"x_search\";\n } else if (part.name === \"code_execution\" || part.type === \"code_interpreter_call\" || part.type === \"code_execution_call\") {\n toolName = codeExecutionToolName != null ? codeExecutionToolName : \"code_execution\";\n } else if (part.type === \"mcp_call\") {\n toolName = (_h = mcpToolName != null ? mcpToolName : part.name) != null ? _h : \"mcp\";\n }\n const toolInput = part.type === \"custom_tool_call\" ? (_i = part.input) != null ? _i : \"\" : part.type === \"mcp_call\" ? (_j = part.arguments) != null ? _j : \"\" : (_k = part.arguments) != null ? _k : \"\";\n content.push({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName,\n input: toolInput,\n providerExecuted: true\n });\n continue;\n }\n switch (part.type) {\n case \"message\": {\n for (const contentPart of part.content) {\n if (contentPart.text) {\n content.push({\n type: \"text\",\n text: contentPart.text\n });\n }\n if (contentPart.annotations) {\n for (const annotation of contentPart.annotations) {\n if (annotation.type === \"url_citation\" && \"url\" in annotation) {\n content.push({\n type: \"source\",\n sourceType: \"url\",\n id: this.config.generateId(),\n url: annotation.url,\n title: (_l = annotation.title) != null ? _l : annotation.url\n });\n }\n }\n }\n }\n break;\n }\n case \"function_call\": {\n hasFunctionCall = true;\n content.push({\n type: \"tool-call\",\n toolCallId: part.call_id,\n toolName: part.name,\n input: part.arguments\n });\n break;\n }\n case \"reasoning\": {\n const texts = part.summary.length > 0 ? part.summary.map((s) => s.text) : ((_m = part.content) != null ? _m : []).map((c) => c.text);\n const reasoningText = texts.filter((text) => text && text.length > 0).join(\"\");\n if (reasoningText || part.encrypted_content) {\n const hasMetadata = part.encrypted_content || part.id;\n content.push({\n type: \"reasoning\",\n text: reasoningText,\n ...hasMetadata && {\n providerMetadata: {\n xai: {\n ...part.encrypted_content && {\n reasoningEncryptedContent: part.encrypted_content\n },\n ...part.id && { itemId: part.id }\n }\n }\n }\n });\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n return {\n content,\n finishReason: {\n unified: hasFunctionCall ? \"tool-calls\" : mapXaiResponsesFinishReason(response.status),\n raw: (_n = response.status) != null ? _n : void 0\n },\n usage: response.usage ? convertXaiResponsesUsage(response.usage) : {\n inputTokens: { total: 0, noCache: 0, cacheRead: 0, cacheWrite: 0 },\n outputTokens: { total: 0, text: 0, reasoning: 0 }\n },\n request: { body },\n response: {\n ...getResponseMetadata(response),\n headers: responseHeaders,\n body: rawResponse\n },\n warnings\n };\n }\n async doStream(options) {\n var _a;\n const {\n args,\n warnings,\n webSearchToolName,\n xSearchToolName,\n codeExecutionToolName,\n mcpToolName,\n fileSearchToolName\n } = await this.getArgs(options);\n const body = {\n ...args,\n stream: true\n };\n const { responseHeaders, value: response } = await postJsonToApi3({\n url: `${(_a = this.config.baseURL) != null ? _a : \"https://api.x.ai/v1\"}/responses`,\n headers: combineHeaders3(this.config.headers(), options.headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler: createEventSourceResponseHandler2(\n xaiResponsesChunkSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n let finishReason = {\n unified: \"other\",\n raw: void 0\n };\n let hasFunctionCall = false;\n let usage = void 0;\n let isFirstChunk = true;\n const contentBlocks = {};\n const seenToolCalls = /* @__PURE__ */ new Set();\n const ongoingToolCalls = {};\n const activeReasoning = {};\n const self = this;\n return {\n stream: response.pipeThrough(\n new TransformStream({\n start(controller) {\n controller.enqueue({ type: \"stream-start\", warnings });\n },\n transform(chunk, controller) {\n var _a2, _b, _c, _d, _e, _f, _g, _h, _i, _j, _k, _l, _m, _n, _o;\n if (options.includeRawChunks) {\n controller.enqueue({ type: \"raw\", rawValue: chunk.rawValue });\n }\n if (!chunk.success) {\n controller.enqueue({ type: \"error\", error: chunk.error });\n return;\n }\n const event = chunk.value;\n if (event.type === \"response.created\" || event.type === \"response.in_progress\") {\n if (isFirstChunk) {\n controller.enqueue({\n type: \"response-metadata\",\n ...getResponseMetadata(event.response)\n });\n isFirstChunk = false;\n }\n return;\n }\n if (event.type === \"response.reasoning_summary_part.added\") {\n const blockId = `reasoning-${event.item_id}`;\n if (activeReasoning[event.item_id] == null) {\n activeReasoning[event.item_id] = {};\n controller.enqueue({\n type: \"reasoning-start\",\n id: blockId,\n providerMetadata: {\n xai: {\n itemId: event.item_id\n }\n }\n });\n }\n }\n if (event.type === \"response.reasoning_summary_text.delta\") {\n const blockId = `reasoning-${event.item_id}`;\n controller.enqueue({\n type: \"reasoning-delta\",\n id: blockId,\n delta: event.delta,\n providerMetadata: {\n xai: {\n itemId: event.item_id\n }\n }\n });\n return;\n }\n if (event.type === \"response.reasoning_summary_text.done\") {\n return;\n }\n if (event.type === \"response.reasoning_text.delta\") {\n const blockId = `reasoning-${event.item_id}`;\n if (activeReasoning[event.item_id] == null) {\n activeReasoning[event.item_id] = {};\n controller.enqueue({\n type: \"reasoning-start\",\n id: blockId,\n providerMetadata: {\n xai: {\n itemId: event.item_id\n }\n }\n });\n }\n controller.enqueue({\n type: \"reasoning-delta\",\n id: blockId,\n delta: event.delta,\n providerMetadata: {\n xai: {\n itemId: event.item_id\n }\n }\n });\n return;\n }\n if (event.type === \"response.reasoning_text.done\") {\n return;\n }\n if (event.type === \"response.output_text.delta\") {\n const blockId = `text-${event.item_id}`;\n if (contentBlocks[blockId] == null) {\n contentBlocks[blockId] = { type: \"text\" };\n controller.enqueue({\n type: \"text-start\",\n id: blockId\n });\n }\n controller.enqueue({\n type: \"text-delta\",\n id: blockId,\n delta: event.delta\n });\n return;\n }\n if (event.type === \"response.output_text.done\") {\n if (event.annotations) {\n for (const annotation of event.annotations) {\n if (annotation.type === \"url_citation\" && \"url\" in annotation) {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: self.config.generateId(),\n url: annotation.url,\n title: (_a2 = annotation.title) != null ? _a2 : annotation.url\n });\n }\n }\n }\n return;\n }\n if (event.type === \"response.output_text.annotation.added\") {\n const annotation = event.annotation;\n if (annotation.type === \"url_citation\" && \"url\" in annotation) {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: self.config.generateId(),\n url: annotation.url,\n title: (_b = annotation.title) != null ? _b : annotation.url\n });\n }\n return;\n }\n if (event.type === \"response.done\" || event.type === \"response.completed\" || event.type === \"response.incomplete\") {\n const response2 = event.response;\n if (response2.usage) {\n usage = convertXaiResponsesUsage(response2.usage);\n }\n if (event.type === \"response.incomplete\") {\n const reason = \"incomplete_details\" in response2 ? (_c = response2.incomplete_details) == null ? void 0 : _c.reason : void 0;\n finishReason = {\n unified: reason ? mapXaiResponsesFinishReason(reason) : \"other\",\n raw: reason != null ? reason : \"incomplete\"\n };\n } else if (\"status\" in response2 && response2.status) {\n finishReason = {\n unified: hasFunctionCall ? \"tool-calls\" : mapXaiResponsesFinishReason(response2.status),\n raw: response2.status\n };\n }\n return;\n }\n if (event.type === \"response.failed\") {\n const reason = (_d = event.response.incomplete_details) == null ? void 0 : _d.reason;\n finishReason = {\n unified: reason ? mapXaiResponsesFinishReason(reason) : \"error\",\n raw: reason != null ? reason : \"error\"\n };\n if (event.response.usage) {\n usage = convertXaiResponsesUsage(event.response.usage);\n }\n return;\n }\n if (event.type === \"error\") {\n controller.enqueue({ type: \"error\", error: event });\n return;\n }\n if (event.type === \"response.custom_tool_call_input.delta\" || event.type === \"response.custom_tool_call_input.done\") {\n return;\n }\n if (event.type === \"response.function_call_arguments.delta\") {\n const toolCall = ongoingToolCalls[event.output_index];\n if (toolCall != null) {\n controller.enqueue({\n type: \"tool-input-delta\",\n id: toolCall.toolCallId,\n delta: event.delta\n });\n }\n return;\n }\n if (event.type === \"response.function_call_arguments.done\") {\n return;\n }\n if (event.type === \"response.output_item.added\" || event.type === \"response.output_item.done\") {\n const part = event.item;\n if (part.type === \"reasoning\") {\n if (event.type === \"response.output_item.done\") {\n const blockId = `reasoning-${part.id}`;\n if (!(part.id in activeReasoning)) {\n activeReasoning[part.id] = {};\n controller.enqueue({\n type: \"reasoning-start\",\n id: blockId,\n providerMetadata: {\n xai: {\n ...part.id && { itemId: part.id }\n }\n }\n });\n }\n controller.enqueue({\n type: \"reasoning-end\",\n id: blockId,\n providerMetadata: {\n xai: {\n ...part.encrypted_content && {\n reasoningEncryptedContent: part.encrypted_content\n },\n ...part.id && { itemId: part.id }\n }\n }\n });\n delete activeReasoning[part.id];\n }\n return;\n }\n if (part.type === \"file_search_call\") {\n const toolName = fileSearchToolName != null ? fileSearchToolName : \"file_search\";\n if (!seenToolCalls.has(part.id)) {\n seenToolCalls.add(part.id);\n controller.enqueue({\n type: \"tool-input-start\",\n id: part.id,\n toolName\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: part.id,\n delta: \"\"\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: part.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName,\n input: \"\",\n providerExecuted: true\n });\n }\n if (event.type === \"response.output_item.done\") {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: part.id,\n toolName,\n result: {\n queries: (_e = part.queries) != null ? _e : [],\n results: (_g = (_f = part.results) == null ? void 0 : _f.map((result) => ({\n fileId: result.file_id,\n filename: result.filename,\n score: result.score,\n text: result.text\n }))) != null ? _g : null\n }\n });\n }\n return;\n }\n if (part.type === \"web_search_call\" || part.type === \"x_search_call\" || part.type === \"code_interpreter_call\" || part.type === \"code_execution_call\" || part.type === \"view_image_call\" || part.type === \"view_x_video_call\" || part.type === \"custom_tool_call\" || part.type === \"mcp_call\") {\n const webSearchSubTools = [\n \"web_search\",\n \"web_search_with_snippets\",\n \"browse_page\"\n ];\n const xSearchSubTools = [\n \"x_user_search\",\n \"x_keyword_search\",\n \"x_semantic_search\",\n \"x_thread_fetch\"\n ];\n let toolName = (_h = part.name) != null ? _h : \"\";\n if (webSearchSubTools.includes((_i = part.name) != null ? _i : \"\") || part.type === \"web_search_call\") {\n toolName = webSearchToolName != null ? webSearchToolName : \"web_search\";\n } else if (xSearchSubTools.includes((_j = part.name) != null ? _j : \"\") || part.type === \"x_search_call\") {\n toolName = xSearchToolName != null ? xSearchToolName : \"x_search\";\n } else if (part.name === \"code_execution\" || part.type === \"code_interpreter_call\" || part.type === \"code_execution_call\") {\n toolName = codeExecutionToolName != null ? codeExecutionToolName : \"code_execution\";\n } else if (part.type === \"mcp_call\") {\n toolName = (_k = mcpToolName != null ? mcpToolName : part.name) != null ? _k : \"mcp\";\n }\n const toolInput = part.type === \"custom_tool_call\" ? (_l = part.input) != null ? _l : \"\" : part.type === \"mcp_call\" ? (_m = part.arguments) != null ? _m : \"\" : (_n = part.arguments) != null ? _n : \"\";\n const shouldEmit = part.type === \"custom_tool_call\" ? event.type === \"response.output_item.done\" : !seenToolCalls.has(part.id);\n if (shouldEmit && !seenToolCalls.has(part.id)) {\n seenToolCalls.add(part.id);\n controller.enqueue({\n type: \"tool-input-start\",\n id: part.id,\n toolName\n });\n controller.enqueue({\n type: \"tool-input-delta\",\n id: part.id,\n delta: toolInput\n });\n controller.enqueue({\n type: \"tool-input-end\",\n id: part.id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: part.id,\n toolName,\n input: toolInput,\n providerExecuted: true\n });\n }\n if (event.type === \"response.output_item.done\") {\n controller.enqueue({\n type: \"tool-result\",\n toolCallId: part.id,\n toolName,\n result: {}\n });\n }\n return;\n }\n if (part.type === \"message\") {\n for (const contentPart of part.content) {\n if (contentPart.text && contentPart.text.length > 0) {\n const blockId = `text-${part.id}`;\n if (contentBlocks[blockId] == null) {\n contentBlocks[blockId] = { type: \"text\" };\n controller.enqueue({\n type: \"text-start\",\n id: blockId\n });\n controller.enqueue({\n type: \"text-delta\",\n id: blockId,\n delta: contentPart.text\n });\n }\n }\n if (contentPart.annotations) {\n for (const annotation of contentPart.annotations) {\n if (annotation.type === \"url_citation\" && \"url\" in annotation) {\n controller.enqueue({\n type: \"source\",\n sourceType: \"url\",\n id: self.config.generateId(),\n url: annotation.url,\n title: (_o = annotation.title) != null ? _o : annotation.url\n });\n }\n }\n }\n }\n } else if (part.type === \"function_call\") {\n if (event.type === \"response.output_item.added\") {\n ongoingToolCalls[event.output_index] = {\n toolName: part.name,\n toolCallId: part.call_id\n };\n controller.enqueue({\n type: \"tool-input-start\",\n id: part.call_id,\n toolName: part.name\n });\n } else if (event.type === \"response.output_item.done\") {\n hasFunctionCall = true;\n ongoingToolCalls[event.output_index] = void 0;\n controller.enqueue({\n type: \"tool-input-end\",\n id: part.call_id\n });\n controller.enqueue({\n type: \"tool-call\",\n toolCallId: part.call_id,\n toolName: part.name,\n input: part.arguments\n });\n }\n }\n }\n },\n flush(controller) {\n for (const [blockId, block] of Object.entries(contentBlocks)) {\n if (block.type === \"text\") {\n controller.enqueue({\n type: \"text-end\",\n id: blockId\n });\n }\n }\n controller.enqueue({\n type: \"finish\",\n finishReason,\n usage: usage != null ? usage : {\n inputTokens: {\n total: 0,\n noCache: 0,\n cacheRead: 0,\n cacheWrite: 0\n },\n outputTokens: { total: 0, text: 0, reasoning: 0 }\n }\n });\n }\n })\n ),\n request: { body },\n response: { headers: responseHeaders }\n };\n }\n};\n\n// src/tool/code-execution.ts\nimport { createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema5 } from \"@ai-sdk/provider-utils\";\nimport { z as z13 } from \"zod/v4\";\nvar codeExecutionOutputSchema = z13.object({\n output: z13.string().describe(\"the output of the code execution\"),\n error: z13.string().optional().describe(\"any error that occurred\")\n});\nvar codeExecutionToolFactory = createProviderToolFactoryWithOutputSchema5({\n id: \"xai.code_execution\",\n inputSchema: z13.object({}).describe(\"no input parameters\"),\n outputSchema: codeExecutionOutputSchema\n});\nvar codeExecution = (args = {}) => codeExecutionToolFactory(args);\n\n// src/tool/view-image.ts\nimport { createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema6 } from \"@ai-sdk/provider-utils\";\nimport { z as z14 } from \"zod/v4\";\nvar viewImageOutputSchema = z14.object({\n description: z14.string().describe(\"description of the image\"),\n objects: z14.array(z14.string()).optional().describe(\"objects detected in the image\")\n});\nvar viewImageToolFactory = createProviderToolFactoryWithOutputSchema6({\n id: \"xai.view_image\",\n inputSchema: z14.object({}).describe(\"no input parameters\"),\n outputSchema: viewImageOutputSchema\n});\nvar viewImage = (args = {}) => viewImageToolFactory(args);\n\n// src/tool/view-x-video.ts\nimport { createProviderToolFactoryWithOutputSchema as createProviderToolFactoryWithOutputSchema7 } from \"@ai-sdk/provider-utils\";\nimport { z as z15 } from \"zod/v4\";\nvar viewXVideoOutputSchema = z15.object({\n transcript: z15.string().optional().describe(\"transcript of the video\"),\n description: z15.string().describe(\"description of the video content\"),\n duration: z15.number().optional().describe(\"duration in seconds\")\n});\nvar viewXVideoToolFactory = createProviderToolFactoryWithOutputSchema7({\n id: \"xai.view_x_video\",\n inputSchema: z15.object({}).describe(\"no input parameters\"),\n outputSchema: viewXVideoOutputSchema\n});\nvar viewXVideo = (args = {}) => viewXVideoToolFactory(args);\n\n// src/tool/index.ts\nvar xaiTools = {\n codeExecution,\n fileSearch,\n mcpServer,\n viewImage,\n viewXVideo,\n webSearch,\n xSearch\n};\n\n// src/version.ts\nvar VERSION = true ? \"3.0.110\" : \"0.0.0-test\";\n\n// src/xai-video-model.ts\nimport {\n AISDKError\n} from \"@ai-sdk/provider\";\nimport {\n cancelResponseBody,\n combineHeaders as combineHeaders4,\n convertUint8ArrayToBase64,\n createJsonResponseHandler as createJsonResponseHandler4,\n delay,\n extractResponseHeaders as extractResponseHeaders2,\n getFromApi as getFromApi2,\n parseProviderOptions as parseProviderOptions6,\n postJsonToApi as postJsonToApi4\n} from \"@ai-sdk/provider-utils\";\nimport { z as z17 } from \"zod/v4\";\n\n// src/xai-video-options.ts\nimport { lazySchema as lazySchema5, zodSchema as zodSchema5 } from \"@ai-sdk/provider-utils\";\nimport { z as z16 } from \"zod/v4\";\nvar nonEmptyStringSchema = z16.string().min(1);\nvar resolutionSchema = z16.enum([\"480p\", \"720p\"]);\nvar modeSchema = z16.enum([\"edit-video\", \"extend-video\", \"reference-to-video\"]);\nvar baseFields = {\n pollIntervalMs: z16.number().positive().nullish(),\n pollTimeoutMs: z16.number().positive().nullish(),\n resolution: resolutionSchema.nullish()\n};\nvar userField = {\n user: z16.string().optional()\n};\nvar editVideoSchema = z16.object({\n ...baseFields,\n ...userField,\n mode: z16.literal(\"edit-video\"),\n videoUrl: nonEmptyStringSchema,\n referenceImageUrls: z16.undefined().optional()\n});\nvar extendVideoSchema = z16.object({\n ...baseFields,\n mode: z16.literal(\"extend-video\"),\n videoUrl: nonEmptyStringSchema,\n referenceImageUrls: z16.undefined().optional()\n});\nvar referenceToVideoSchema = z16.object({\n ...baseFields,\n ...userField,\n mode: z16.literal(\"reference-to-video\"),\n referenceImageUrls: z16.array(nonEmptyStringSchema).min(1).max(7),\n videoUrl: z16.undefined().optional()\n});\nvar autoDetectSchema = z16.object({\n ...baseFields,\n ...userField,\n mode: z16.undefined().optional(),\n videoUrl: nonEmptyStringSchema.optional(),\n referenceImageUrls: z16.array(nonEmptyStringSchema).min(1).max(7).optional()\n});\nvar xaiVideoModelOptions = z16.union([\n editVideoSchema,\n extendVideoSchema,\n referenceToVideoSchema,\n autoDetectSchema\n]);\nvar runtimeSchema = z16.object({\n mode: modeSchema.optional(),\n videoUrl: nonEmptyStringSchema.optional(),\n referenceImageUrls: z16.array(nonEmptyStringSchema).min(1).max(7).optional(),\n user: z16.string().optional(),\n ...baseFields\n}).passthrough();\nvar xaiVideoModelOptionsSchema = lazySchema5(\n () => zodSchema5(runtimeSchema)\n);\n\n// src/xai-video-model.ts\nvar RESOLUTION_MAP = {\n \"1280x720\": \"720p\",\n \"854x480\": \"480p\",\n \"640x480\": \"480p\"\n};\nfunction getFirstFrameImage(options) {\n var _a, _b;\n return (_b = (_a = options.frameImages) == null ? void 0 : _a.find((frame) => frame.frameType === \"first_frame\")) == null ? void 0 : _b.image;\n}\nfunction getLastFrameImage(options) {\n var _a, _b;\n return (_b = (_a = options.frameImages) == null ? void 0 : _a.find((frame) => frame.frameType === \"last_frame\")) == null ? void 0 : _b.image;\n}\nfunction resolveStartImage(options) {\n var _a;\n return (_a = getFirstFrameImage(options)) != null ? _a : options.image;\n}\nfunction getTopLevelMediaType(mediaType) {\n const slashIndex = mediaType.indexOf(\"/\");\n return slashIndex === -1 ? mediaType : mediaType.substring(0, slashIndex);\n}\nvar isVideoFile = (file) => file.mediaType != null && getTopLevelMediaType(file.mediaType) === \"video\";\nfunction fileToXaiImageUrl(file) {\n if (file.type === \"url\") {\n return file.url;\n }\n const base64Data = typeof file.data === \"string\" ? file.data : convertUint8ArrayToBase64(file.data);\n return `data:${file.mediaType};base64,${base64Data}`;\n}\nfunction resolveReferenceImages(options, xaiOptions, warnings) {\n if (options.inputReferences != null && options.inputReferences.length > 0) {\n const imageReferences = options.inputReferences.filter((reference) => {\n if (isVideoFile(reference)) {\n warnings.push({\n type: \"unsupported\",\n feature: \"inputReferences\",\n details: 'xAI reference-to-video accepts image references only. The video reference was ignored. Use providerOptions.xai.mode \"extend-video\" to continue from a video.'\n });\n return false;\n }\n return true;\n });\n return imageReferences.map((reference) => ({\n url: fileToXaiImageUrl(reference)\n }));\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.referenceImageUrls) != null && xaiOptions.referenceImageUrls.length > 0) {\n return xaiOptions.referenceImageUrls.map((url) => ({ url }));\n }\n return void 0;\n}\nfunction resolveVideoMode(options, xaiOptions) {\n if ((xaiOptions == null ? void 0 : xaiOptions.mode) != null) {\n return xaiOptions.mode;\n }\n if ((xaiOptions == null ? void 0 : xaiOptions.videoUrl) != null) {\n return \"edit-video\";\n }\n const hasFrameImages = options.frameImages != null && options.frameImages.length > 0;\n const hasInputReferences = options.inputReferences != null && options.inputReferences.length > 0;\n const hasLegacyReferenceUrls = (xaiOptions == null ? void 0 : xaiOptions.referenceImageUrls) != null && xaiOptions.referenceImageUrls.length > 0;\n if (!hasFrameImages && (hasInputReferences || hasLegacyReferenceUrls)) {\n return \"reference-to-video\";\n }\n return void 0;\n}\nvar XaiVideoModel = class {\n constructor(modelId, config) {\n this.modelId = modelId;\n this.config = config;\n this.specificationVersion = \"v3\";\n this.maxVideosPerCall = 1;\n }\n get provider() {\n return this.config.provider;\n }\n async doGenerate(options) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _i, _j;\n const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();\n const warnings = [];\n const xaiOptions = await parseProviderOptions6({\n provider: \"xai\",\n providerOptions: options.providerOptions,\n schema: xaiVideoModelOptionsSchema\n });\n const effectiveMode = resolveVideoMode(options, xaiOptions);\n const isEdit = effectiveMode === \"edit-video\";\n const isExtension = effectiveMode === \"extend-video\";\n const hasReferenceImages = effectiveMode === \"reference-to-video\";\n if (options.fps != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"fps\",\n details: \"xAI video models do not support custom FPS.\"\n });\n }\n if (options.seed != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"seed\",\n details: \"xAI video models do not support seed.\"\n });\n }\n if (options.n != null && options.n > 1) {\n warnings.push({\n type: \"unsupported\",\n feature: \"n\",\n details: \"xAI video models do not support generating multiple videos per call. Only 1 video will be generated.\"\n });\n }\n if (isEdit && options.duration != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"duration\",\n details: \"xAI video editing does not support custom duration.\"\n });\n }\n if (isEdit && options.aspectRatio != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"aspectRatio\",\n details: \"xAI video editing does not support custom aspect ratio.\"\n });\n }\n if (isEdit && ((xaiOptions == null ? void 0 : xaiOptions.resolution) != null || options.resolution != null)) {\n warnings.push({\n type: \"unsupported\",\n feature: \"resolution\",\n details: \"xAI video editing does not support custom resolution.\"\n });\n }\n if (isExtension && options.aspectRatio != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"aspectRatio\",\n details: \"xAI video extension does not support custom aspect ratio.\"\n });\n }\n if (isExtension && ((xaiOptions == null ? void 0 : xaiOptions.resolution) != null || options.resolution != null)) {\n warnings.push({\n type: \"unsupported\",\n feature: \"resolution\",\n details: \"xAI video extension does not support custom resolution.\"\n });\n }\n const body = {\n model: this.modelId,\n prompt: options.prompt\n };\n const allowDuration = !isEdit;\n const allowAspectRatio = !isEdit && !isExtension;\n const allowResolution = !isEdit && !isExtension;\n if (allowDuration && options.duration != null) {\n body.duration = options.duration;\n }\n if (allowAspectRatio && options.aspectRatio != null) {\n body.aspect_ratio = options.aspectRatio;\n }\n if (allowResolution && (xaiOptions == null ? void 0 : xaiOptions.resolution) != null) {\n body.resolution = xaiOptions.resolution;\n } else if (allowResolution && options.resolution != null) {\n const mapped = RESOLUTION_MAP[options.resolution];\n if (mapped != null) {\n body.resolution = mapped;\n } else {\n warnings.push({\n type: \"unsupported\",\n feature: \"resolution\",\n details: `Unrecognized resolution \"${options.resolution}\". Use providerOptions.xai.resolution with \"480p\" or \"720p\" instead.`\n });\n }\n }\n if (isEdit) {\n body.video = { url: xaiOptions.videoUrl };\n }\n if (isExtension) {\n body.video = { url: xaiOptions.videoUrl };\n }\n const startImage = resolveStartImage(options);\n if (startImage != null) {\n if (isVideoFile(startImage)) {\n const fromFrameImages = getFirstFrameImage(options) != null;\n warnings.push({\n type: \"unsupported\",\n feature: fromFrameImages ? \"frameImages\" : \"image\",\n details: 'xAI does not accept a video as a start/frame image. The video was ignored. Use providerOptions.xai.mode \"extend-video\" to continue from a video instead.'\n });\n } else {\n body.image = { url: fileToXaiImageUrl(startImage) };\n }\n }\n const lastFrameImage = getLastFrameImage(options);\n if (lastFrameImage != null) {\n warnings.push({\n type: \"unsupported\",\n feature: \"frameImages\",\n details: isVideoFile(lastFrameImage) ? 'xAI does not accept a video as a start/frame image. The video last frame was ignored. Use providerOptions.xai.mode \"extend-video\" to continue from a video instead.' : `xAI video models do not support last_frame. Use providerOptions.xai.mode \"extend-video\" to continue from a video's last frame. The last frame image was ignored.`\n });\n }\n if (hasReferenceImages) {\n const referenceImages = resolveReferenceImages(\n options,\n xaiOptions,\n warnings\n );\n if (referenceImages != null) {\n body.reference_images = referenceImages;\n }\n }\n if (options.inputReferences != null && options.inputReferences.length > 0 && !hasReferenceImages) {\n warnings.push({\n type: \"unsupported\",\n feature: \"inputReferences\",\n details: \"xAI only supports inputReferences for reference-to-video generation. The reference images were ignored.\"\n });\n }\n if (!isExtension && (xaiOptions == null ? void 0 : xaiOptions.user) !== void 0) {\n body.user = xaiOptions.user;\n }\n if (xaiOptions != null) {\n for (const [key, value] of Object.entries(xaiOptions)) {\n if (![\n \"mode\",\n \"pollIntervalMs\",\n \"pollTimeoutMs\",\n \"resolution\",\n \"videoUrl\",\n \"referenceImageUrls\",\n \"user\"\n ].includes(key)) {\n body[key] = value;\n }\n }\n }\n const baseURL = (_d = this.config.baseURL) != null ? _d : \"https://api.x.ai/v1\";\n let endpoint;\n if (isEdit) {\n endpoint = `${baseURL}/videos/edits`;\n } else if (isExtension) {\n endpoint = `${baseURL}/videos/extensions`;\n } else {\n endpoint = `${baseURL}/videos/generations`;\n }\n const { value: createResponse } = await postJsonToApi4({\n url: endpoint,\n headers: combineHeaders4(this.config.headers(), options.headers),\n body,\n failedResponseHandler: xaiFailedResponseHandler,\n successfulResponseHandler: createJsonResponseHandler4(\n xaiCreateVideoResponseSchema\n ),\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n const requestId = createResponse.request_id;\n if (!requestId) {\n throw new AISDKError({\n name: \"XAI_VIDEO_GENERATION_ERROR\",\n message: `No request_id returned from xAI API. Response: ${JSON.stringify(createResponse)}`\n });\n }\n const pollIntervalMs = (_e = xaiOptions == null ? void 0 : xaiOptions.pollIntervalMs) != null ? _e : 5e3;\n const pollTimeoutMs = (_f = xaiOptions == null ? void 0 : xaiOptions.pollTimeoutMs) != null ? _f : 6e5;\n const startTime = Date.now();\n let responseHeaders;\n while (true) {\n await delay(pollIntervalMs, { abortSignal: options.abortSignal });\n if (Date.now() - startTime > pollTimeoutMs) {\n throw new AISDKError({\n name: \"XAI_VIDEO_GENERATION_TIMEOUT\",\n message: `Video generation timed out after ${pollTimeoutMs}ms`\n });\n }\n const { value: statusResponse, responseHeaders: pollHeaders } = await getFromApi2({\n url: `${baseURL}/videos/${requestId}`,\n headers: combineHeaders4(this.config.headers(), options.headers),\n successfulResponseHandler: xaiVideoStatusResponseHandler,\n failedResponseHandler: xaiFailedResponseHandler,\n abortSignal: options.abortSignal,\n fetch: this.config.fetch\n });\n responseHeaders = pollHeaders;\n if (statusResponse.status === \"done\" || statusResponse.status == null && ((_g = statusResponse.video) == null ? void 0 : _g.url)) {\n if (((_h = statusResponse.video) == null ? void 0 : _h.respect_moderation) === false) {\n throw new AISDKError({\n name: \"XAI_VIDEO_MODERATION_ERROR\",\n message: \"Video generation was blocked due to a content policy violation.\"\n });\n }\n if (!((_i = statusResponse.video) == null ? void 0 : _i.url)) {\n throw new AISDKError({\n name: \"XAI_VIDEO_GENERATION_ERROR\",\n message: \"Video generation completed but no video URL was returned.\"\n });\n }\n return {\n videos: [\n {\n type: \"url\",\n url: statusResponse.video.url,\n mediaType: \"video/mp4\"\n }\n ],\n warnings,\n response: {\n timestamp: currentDate,\n modelId: this.modelId,\n headers: responseHeaders\n },\n providerMetadata: {\n xai: {\n requestId,\n videoUrl: statusResponse.video.url,\n ...statusResponse.video.duration != null ? { duration: statusResponse.video.duration } : {},\n ...((_j = statusResponse.usage) == null ? void 0 : _j.cost_in_usd_ticks) != null ? { costInUsdTicks: statusResponse.usage.cost_in_usd_ticks } : {},\n ...statusResponse.progress != null ? { progress: statusResponse.progress } : {}\n }\n }\n };\n }\n if (statusResponse.status === \"expired\") {\n throw new AISDKError({\n name: \"XAI_VIDEO_GENERATION_EXPIRED\",\n message: \"Video generation request expired.\"\n });\n }\n if (statusResponse.status === \"failed\") {\n throw new AISDKError({\n name: \"XAI_VIDEO_GENERATION_FAILED\",\n message: \"Video generation failed.\"\n });\n }\n }\n }\n};\nvar xaiCreateVideoResponseSchema = z17.object({\n request_id: z17.string().nullish()\n});\nvar xaiVideoStatusResponseSchema = z17.object({\n status: z17.string().nullish(),\n video: z17.object({\n url: z17.string(),\n duration: z17.number().nullish(),\n respect_moderation: z17.boolean().nullish()\n }).nullish(),\n model: z17.string().nullish(),\n usage: z17.object({\n cost_in_usd_ticks: z17.number().nullish()\n }).nullish(),\n progress: z17.number().nullish(),\n error: z17.object({\n code: z17.string().nullish(),\n message: z17.string().nullish()\n }).nullish()\n});\nvar xaiVideoStatusJsonResponseHandler = createJsonResponseHandler4(\n xaiVideoStatusResponseSchema\n);\nvar xaiVideoStatusResponseHandler = async (options) => {\n if (options.response.status === 202) {\n const responseHeaders = extractResponseHeaders2(options.response);\n await cancelResponseBody(options.response);\n return {\n responseHeaders,\n value: { status: \"pending\" }\n };\n }\n return xaiVideoStatusJsonResponseHandler(options);\n};\n\n// src/xai-provider.ts\nfunction createXai(options = {}) {\n var _a;\n const baseURL = withoutTrailingSlash(\n (_a = options.baseURL) != null ? _a : \"https://api.x.ai/v1\"\n );\n const getHeaders = () => withUserAgentSuffix(\n {\n Authorization: `Bearer ${loadApiKey({\n apiKey: options.apiKey,\n environmentVariableName: \"XAI_API_KEY\",\n description: \"xAI API key\"\n })}`,\n ...options.headers\n },\n `ai-sdk/xai/${VERSION}`\n );\n const createChatLanguageModel = (modelId) => {\n return new XaiChatLanguageModel(modelId, {\n provider: \"xai.chat\",\n baseURL,\n headers: getHeaders,\n generateId,\n fetch: options.fetch\n });\n };\n const createResponsesLanguageModel = (modelId) => {\n return new XaiResponsesLanguageModel(modelId, {\n provider: \"xai.responses\",\n baseURL,\n headers: getHeaders,\n generateId,\n fetch: options.fetch\n });\n };\n const createImageModel = (modelId) => {\n return new XaiImageModel(modelId, {\n provider: \"xai.image\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n };\n const createVideoModel = (modelId) => {\n return new XaiVideoModel(modelId, {\n provider: \"xai.video\",\n baseURL,\n headers: getHeaders,\n fetch: options.fetch\n });\n };\n const provider = (modelId) => createChatLanguageModel(modelId);\n provider.specificationVersion = \"v3\";\n provider.languageModel = createChatLanguageModel;\n provider.chat = createChatLanguageModel;\n provider.responses = createResponsesLanguageModel;\n provider.embeddingModel = (modelId) => {\n throw new NoSuchModelError({ modelId, modelType: \"embeddingModel\" });\n };\n provider.textEmbeddingModel = provider.embeddingModel;\n provider.imageModel = createImageModel;\n provider.image = createImageModel;\n provider.videoModel = createVideoModel;\n provider.video = createVideoModel;\n provider.tools = xaiTools;\n return provider;\n}\nvar xai = createXai();\nexport {\n VERSION,\n codeExecution,\n createXai,\n mcpServer,\n viewImage,\n viewXVideo,\n webSearch,\n xSearch,\n xai,\n xaiTools\n};\n//# sourceMappingURL=index.mjs.map","export type ResolvedModelConfig = {\n url: string | false;\n headers: Record<string, string>;\n resolvedModelId: string;\n fullModelId: string;\n};\n\nexport function parseModelRouterId(routerId: string, gatewayPrefix?: string): { providerId: string; modelId: string } {\n if (gatewayPrefix && !routerId.startsWith(`${gatewayPrefix}/`)) {\n throw new Error(`Expected ${gatewayPrefix}/ in model router ID ${routerId}`);\n }\n\n const idParts = routerId.split('/');\n\n // Azure OpenAI uses 2-part format (azure-openai/deployment), others use 3-part (gateway/provider/model)\n if (gatewayPrefix === 'azure-openai') {\n if (idParts.length < 2) {\n throw new Error(`Expected format azure-openai/deployment-name, but got ${routerId}`);\n }\n return {\n providerId: 'azure-openai',\n modelId: idParts.slice(1).join('/'), // Deployment name\n };\n }\n\n // Provider-equals-gateway: a gateway whose provider id is the same as its\n // gateway id (e.g. amazon-bedrock) uses a 2-part router id (gateway/model),\n // because there is no separate provider segment to namespace. Catalog ids\n // for such gateways are always two parts (model ids contain no slashes).\n if (gatewayPrefix && idParts.length === 2 && idParts[0] === gatewayPrefix) {\n const modelId = idParts[1];\n if (!modelId) {\n throw new Error(`Expected format ${gatewayPrefix}/model, but got ${routerId}`);\n }\n return {\n providerId: gatewayPrefix,\n modelId,\n };\n }\n\n // Standard 3-part format for other prefixed gateways (Netlify, etc.)\n if (gatewayPrefix && idParts.length < 3) {\n throw new Error(\n `Expected atleast 3 id parts ${gatewayPrefix}/provider/model, but only saw ${idParts.length} in ${routerId}`,\n );\n }\n\n const providerId = idParts.at(gatewayPrefix ? 1 : 0);\n const modelId = idParts.slice(gatewayPrefix ? 2 : 1).join(`/`);\n\n if (!routerId.includes(`/`) || !providerId || !modelId) {\n throw new Error(\n `Attempted to parse provider/model from ${routerId} but this ID doesn't appear to contain a provider`,\n );\n }\n\n return {\n providerId,\n modelId,\n };\n}\n","import { createAlibaba } from '@ai-sdk/alibaba-v6';\nimport { createAnthropic } from '@ai-sdk/anthropic-v6';\nimport { createCerebras } from '@ai-sdk/cerebras-v6';\nimport { createDeepInfra } from '@ai-sdk/deepinfra-v6';\nimport { createDeepSeek } from '@ai-sdk/deepseek-v6';\nimport { createGoogleGenerativeAI } from '@ai-sdk/google-v6';\nimport { createGroq } from '@ai-sdk/groq-v6';\nimport { createMistral } from '@ai-sdk/mistral-v6';\nimport { createOpenAICompatible } from '@ai-sdk/openai-compatible-v6';\nimport { createOpenAI } from '@ai-sdk/openai-v6';\nimport { createPerplexity } from '@ai-sdk/perplexity-v6';\nimport { createTogetherAI } from '@ai-sdk/togetherai-v6';\nimport { createXai } from '@ai-sdk/xai-v6';\nimport { createGateway } from '@internal/ai-v6';\nimport { createOpenRouter } from '@openrouter/ai-sdk-provider-v6';\nimport { parseModelRouterId } from '../gateway-resolver.js';\nimport { MastraModelGateway } from './base.js';\nimport type {\n AttachmentCapabilities,\n GatewayLanguageModel,\n ModelProviderOverride,\n ProviderConfig,\n StructuredOutputCapabilities,\n TemperatureCapabilities,\n} from './base.js';\nimport { EXCLUDED_PROVIDERS, MASTRA_USER_AGENT, PROVIDERS_WITH_INSTALLED_PACKAGES } from './constants.js';\n\ninterface ModelsDevModelInfo {\n id: string;\n name?: string;\n status?: string;\n modalities?: { input?: string[]; output?: string[] };\n attachment?: boolean;\n temperature?: boolean;\n structured_output?: boolean;\n // Per-model endpoint/shape/SDK override (models.dev model `provider` block).\n provider?: { api?: string; shape?: 'responses' | 'completions'; npm?: string };\n [key: string]: unknown;\n}\n\ninterface ModelsDevProviderInfo {\n id: string;\n name: string;\n models: Record<string, ModelsDevModelInfo>;\n env?: string[]; // Array of env var names\n api?: string; // Base API URL\n npm?: string; // NPM package name\n doc?: string; // Documentation URL\n}\n\ninterface ModelsDevResponse {\n [providerId: string]: ModelsDevProviderInfo;\n}\n\nfunction selectApiKeyEnvVar({ envVars, providerId }: { envVars?: string[]; providerId: string }): string {\n const fallbackEnvVar = `${providerId.toUpperCase().replace(/-/g, '_')}_API_KEY`;\n if (!envVars?.length) return fallbackEnvVar;\n\n const suffixPreferences = ['_API_TOKEN', '_API_KEY', '_TOKEN', '_KEY', '_PAT'];\n\n for (const suffix of suffixPreferences) {\n const preferredEnvVar = envVars.find(envVar => envVar.endsWith(suffix));\n if (preferredEnvVar) return preferredEnvVar;\n }\n\n return envVars[0] || fallbackEnvVar;\n}\n\nfunction interpolateUrlTemplate(url: string, envVars?: typeof process.env): string {\n return url.replace(/\\$\\{([^}]+)\\}/g, (_match, envVarName: string) => {\n const key = envVarName.trim();\n const value = envVars?.[key] ?? process.env[key];\n\n if (value === undefined || value === null) {\n throw new Error(`Missing environment variable ${envVarName} required to build provider URL`);\n }\n\n return value;\n });\n}\n\nfunction resolveApiKeyFromEnv(apiKeyEnvVar: ProviderConfig['apiKeyEnvVar']): string | undefined {\n const envVars = Array.isArray(apiKeyEnvVar) ? apiKeyEnvVar : [apiKeyEnvVar];\n\n for (const envVar of envVars) {\n const apiKey = process.env[envVar];\n if (apiKey) return apiKey;\n }\n}\n\n// Provider-specific overrides for URL, npm package, and other config.\n// These take priority over what models.dev returns (e.g. correct base URLs, SDK packages).\n// This constant is ONLY used during generation in fetchProviders() to determine\n// which providers from models.dev should be included in the registry.\n// At runtime, buildUrl() and buildHeaders() use the pre-generated PROVIDER_REGISTRY instead.\nconst PROVIDER_OVERRIDES: Record<string, Partial<ProviderConfig>> = {\n google: {\n apiKeyEnvVar: ['GOOGLE_API_KEY', 'GOOGLE_GENERATIVE_AI_API_KEY'],\n },\n mistral: {\n url: 'https://api.mistral.ai/v1',\n },\n groq: {\n url: 'https://api.groq.com/openai/v1',\n },\n // moonshotai uses Anthropic-compatible API, not OpenAI-compatible\n moonshotai: {\n url: 'https://api.moonshot.ai/anthropic/v1',\n npm: '@ai-sdk/anthropic',\n },\n // moonshotai-cn (China version) also uses Anthropic-compatible API\n 'moonshotai-cn': {\n url: 'https://api.moonshot.cn/anthropic/v1',\n npm: '@ai-sdk/anthropic',\n },\n};\n\nexport class ModelsDevGateway extends MastraModelGateway {\n readonly id = 'models.dev';\n readonly name = 'models.dev';\n\n private providerConfigs: Record<string, ProviderConfig> = {};\n private attachmentCapabilities: AttachmentCapabilities = {};\n private temperatureCapabilities: TemperatureCapabilities = {};\n private structuredOutputCapabilities: StructuredOutputCapabilities = {};\n\n constructor(providerConfigs?: Record<string, ProviderConfig>) {\n super();\n if (providerConfigs) this.providerConfigs = providerConfigs;\n }\n\n async fetchProviders(): Promise<Record<string, ProviderConfig>> {\n const response = await fetch('https://models.dev/api.json');\n if (!response.ok) {\n throw new Error(`Failed to fetch from models.dev: ${response.statusText}`);\n }\n\n const data = (await response.json()) as ModelsDevResponse;\n\n // Reset capability maps so removed providers/models are not retained across syncs\n this.attachmentCapabilities = {};\n this.temperatureCapabilities = {};\n this.structuredOutputCapabilities = {};\n\n const providerConfigs: Record<string, ProviderConfig> = {};\n\n for (const [providerId, providerInfo] of Object.entries(data)) {\n // Skip excluded providers\n if (EXCLUDED_PROVIDERS.includes(providerId)) continue;\n // Skip non-provider entries (if any)\n if (!providerInfo || typeof providerInfo !== 'object' || !providerInfo.models) continue;\n\n // Use provider ID as-is (keep hyphens for consistency)\n const normalizedId = providerId;\n\n // Check if this is OpenAI-compatible based on npm package or overrides\n const isOpenAICompatible =\n providerInfo.npm === '@ai-sdk/openai-compatible' ||\n providerInfo.npm === '@ai-sdk/gateway' || // Vercel AI Gateway is OpenAI-compatible\n normalizedId in PROVIDER_OVERRIDES;\n\n // these have their ai sdk provider package installed and don't use openai-compat\n const hasInstalledPackage = PROVIDERS_WITH_INSTALLED_PACKAGES.includes(providerId);\n\n // Also include providers that have an API URL and env vars (likely OpenAI-compatible)\n const hasApiAndEnv = providerInfo.api && providerInfo.env && providerInfo.env.length > 0;\n\n if (isOpenAICompatible || hasInstalledPackage || hasApiAndEnv) {\n // Get model IDs from the models object.\n //\n // Deprecated models are retained rather than dropped. On models.dev,\n // `status: 'deprecated'` means \"still served, scheduled for retirement\" —\n // not \"removed\". Filtering them out here would break existing users: the\n // generated model-id union would stop type-checking their configured model,\n // and the model would silently lose its capability flags and per-model\n // endpoint/shape overrides (i.e. it would route with provider defaults).\n // They are reported separately via `deprecatedModels` so surfaces that\n // offer models for *new* selection can hide or mark them.\n const allModels = Object.entries(providerInfo.models);\n const modelIds = allModels.map(([modelId]) => modelId).sort();\n const deprecatedModelIds = allModels\n .filter(([, modelInfo]) => modelInfo?.status === 'deprecated')\n .map(([modelId]) => modelId)\n .sort();\n\n // Collect model IDs that support attachments\n const attachmentModels = allModels\n .filter(([, modelInfo]) => modelInfo?.attachment === true)\n .map(([modelId]) => modelId)\n .sort();\n\n // Collect model IDs that support temperature sampling\n const temperatureModels = allModels\n .filter(([, modelInfo]) => modelInfo?.temperature === true)\n .map(([modelId]) => modelId)\n .sort();\n\n const structuredOutputModels = allModels\n .filter(([, modelInfo]) => modelInfo?.structured_output === true)\n .map(([modelId]) => modelId)\n .sort();\n\n // Collect per-model endpoint/shape/SDK overrides. Some providers serve\n // individual models over a different endpoint or request shape than the\n // provider default (e.g. OpenAI Responses vs chat-completions).\n const modelOverrides: Record<string, ModelProviderOverride> = {};\n for (const [modelId, modelInfo] of allModels) {\n const ov = modelInfo?.provider;\n if (ov && (ov.api || ov.shape || ov.npm)) {\n modelOverrides[modelId] = { api: ov.api, shape: ov.shape, npm: ov.npm };\n }\n }\n\n // Get the API URL - overrides take priority over models.dev data\n const url = PROVIDER_OVERRIDES[normalizedId]?.url || providerInfo.api;\n\n // Skip if we don't have a URL\n if (!hasInstalledPackage && !url) {\n continue;\n }\n\n // Prefer auth-like env vars over identifiers already consumed by the URL template.\n const apiKeyEnvVar =\n PROVIDER_OVERRIDES[normalizedId]?.apiKeyEnvVar ||\n selectApiKeyEnvVar({\n envVars: providerInfo.env,\n providerId: normalizedId,\n });\n\n // Determine the API key header (special case for Anthropic)\n const apiKeyHeader = !hasInstalledPackage\n ? PROVIDER_OVERRIDES[normalizedId]?.apiKeyHeader || 'Authorization'\n : undefined;\n\n providerConfigs[normalizedId] = {\n url,\n apiKeyEnvVar,\n apiKeyHeader,\n name: providerInfo.name || providerId.charAt(0).toUpperCase() + providerId.slice(1),\n models: modelIds,\n docUrl: providerInfo.doc, // Include documentation URL if available\n gateway: `models.dev`,\n // Only store npm when it's a non-default SDK (not openai-compatible/gateway) to keep the registry small\n // Overrides take priority (e.g., moonshotai uses @ai-sdk/anthropic, not the openai-compatible listed in models.dev)\n npm:\n PROVIDER_OVERRIDES[normalizedId]?.npm ||\n (providerInfo.npm &&\n providerInfo.npm !== '@ai-sdk/openai-compatible' &&\n providerInfo.npm !== '@ai-sdk/gateway'\n ? providerInfo.npm\n : undefined),\n modelOverrides: Object.keys(modelOverrides).length > 0 ? modelOverrides : undefined,\n deprecatedModels: deprecatedModelIds.length > 0 ? deprecatedModelIds : undefined,\n };\n if (attachmentModels.length > 0) {\n this.attachmentCapabilities[normalizedId] = attachmentModels;\n }\n if (temperatureModels.length > 0) {\n this.temperatureCapabilities[normalizedId] = temperatureModels;\n }\n if (structuredOutputModels.length > 0) {\n this.structuredOutputCapabilities[normalizedId] = structuredOutputModels;\n }\n }\n }\n\n // Store for later use in buildUrl and buildHeaders\n this.providerConfigs = providerConfigs;\n\n return providerConfigs;\n }\n\n /**\n * Return attachment capabilities collected during the last `fetchProviders()` call.\n * Maps provider ID → list of model IDs that support attachments.\n */\n getAttachmentCapabilities(): AttachmentCapabilities {\n return this.attachmentCapabilities;\n }\n\n getTemperatureCapabilities(): TemperatureCapabilities {\n return this.temperatureCapabilities;\n }\n\n getStructuredOutputCapabilities(): StructuredOutputCapabilities {\n return this.structuredOutputCapabilities;\n }\n\n buildUrl(routerId: string, envVars?: typeof process.env): string | undefined {\n const { providerId, modelId } = parseModelRouterId(routerId);\n\n const config = this.providerConfigs[providerId];\n\n // A per-model override may point this model at a different endpoint than the\n // provider default; prefer it when present.\n const perModelApi = config?.modelOverrides?.[modelId]?.api;\n const template = perModelApi ?? config?.url;\n\n if (!template) {\n return;\n }\n\n // Check for custom base URL from env vars (explicit override still wins)\n const baseUrlEnvVar = `${providerId.toUpperCase().replace(/-/g, '_')}_BASE_URL`;\n const customBaseUrl = envVars?.[baseUrlEnvVar] || process.env[baseUrlEnvVar];\n\n return customBaseUrl || interpolateUrlTemplate(template, envVars);\n }\n\n getApiKey(modelId: string): Promise<string> {\n const [provider, model] = modelId.split('/');\n if (!provider || !model) {\n throw new Error(`Could not identify provider from model id ${modelId}`);\n }\n const config = this.providerConfigs[provider];\n\n if (!config) {\n throw new Error(`Could not find config for provider ${provider} with model id ${modelId}`);\n }\n\n const apiKey = resolveApiKeyFromEnv(config.apiKeyEnvVar);\n\n if (!apiKey) {\n const envVarDisplay = Array.isArray(config.apiKeyEnvVar) ? config.apiKeyEnvVar.join(' or ') : config.apiKeyEnvVar;\n throw new Error(`Could not find API key process.env.${envVarDisplay} for model id ${modelId}`);\n }\n\n return Promise.resolve(apiKey);\n }\n\n async resolveLanguageModel({\n modelId,\n providerId,\n apiKey,\n headers,\n }: {\n modelId: string;\n providerId: string;\n apiKey: string;\n headers?: Record<string, string>;\n }): Promise<GatewayLanguageModel> {\n const baseURL = this.buildUrl(`${providerId}/${modelId}`);\n\n const mastraHeaders = { 'User-Agent': MASTRA_USER_AGENT, ...headers };\n\n // Per-model override: a model may be served over a different request shape\n // than its provider default (e.g. the OpenAI Responses API while the provider\n // default is chat-completions). Honor `shape` for any provider.\n const override = this.providerConfigs[providerId]?.modelOverrides?.[modelId];\n if (override?.shape === 'responses') {\n return createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);\n }\n\n switch (providerId) {\n case 'openai':\n return createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);\n case 'gemini':\n case 'google':\n return createGoogleGenerativeAI({ apiKey, baseURL, headers: mastraHeaders }).chat(modelId);\n case 'anthropic':\n return createAnthropic({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'mistral':\n return createMistral({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'groq':\n return createGroq({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'openrouter':\n return createOpenRouter({ apiKey, baseURL, headers: mastraHeaders })(\n modelId,\n ) as unknown as GatewayLanguageModel;\n case 'xai':\n return createXai({ apiKey, baseURL, headers: mastraHeaders }).responses(modelId);\n case 'deepseek':\n return createDeepSeek({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'perplexity':\n return createPerplexity({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'cerebras':\n return createCerebras({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'togetherai':\n return createTogetherAI({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'deepinfra':\n return createDeepInfra({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'vercel':\n return createGateway({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n case 'moonshotai':\n case 'moonshotai-cn': {\n // moonshotai uses Anthropic-compatible API endpoint\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createAnthropic({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n }\n default: {\n // Check if this provider uses a specific SDK package (e.g., kimi-for-coding uses @ai-sdk/anthropic).\n // A per-model override wins over the provider default.\n const config = this.providerConfigs[providerId];\n const npm = override?.npm ?? config?.npm;\n\n // Pattern match for any alibaba variant (alibaba, alibaba-cn, alibaba-coding-plan, etc.)\n if (providerId.includes('alibaba')) {\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createAlibaba({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n }\n\n if (npm === '@ai-sdk/anthropic') {\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createAnthropic({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n }\n\n if (npm === '@ai-sdk/openai') {\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createOpenAI({ apiKey, baseURL, headers: mastraHeaders }).chat(modelId);\n }\n\n if (npm === '@ai-sdk/google') {\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createGoogleGenerativeAI({ apiKey, baseURL, headers: mastraHeaders }).chat(modelId);\n }\n\n if (npm === '@ai-sdk/mistral') {\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createMistral({ apiKey, baseURL, headers: mastraHeaders })(modelId);\n }\n\n if (!baseURL) throw new Error(`No API URL found for ${providerId}/${modelId}`);\n return createOpenAICompatible({\n name: providerId,\n apiKey,\n baseURL,\n headers: mastraHeaders,\n supportsStructuredOutputs: true,\n }).chatModel(modelId);\n }\n }\n }\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10],"mappings":"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"}
|