{"version":3,"file":"models-dev-B-wg68cr.cjs","names":["VERSION","ZodFirstPartyTypeKind","ZodFirstPartyTypeKind2","ZodFirstPartyTypeKind3","z4","z","z2","z3","getCacheControl","_exhaustiveCheck","z5","z6","z7","z8","z9","z10","webSearch","z11","z12","getResponseMetadata","prepareTools","UnsupportedFunctionalityError2","_exhaustiveCheck","z","createJsonErrorResponseHandler","z2","convertToBase64","UnsupportedFunctionalityError","_exhaustiveCheck","parseProviderOptions","prepareTools","postJsonToApi","combineHeaders","createJsonResponseHandler","getResponseMetadata","createEventSourceResponseHandler","generateId","InvalidResponseDataError","z3","z4","createJsonErrorResponseHandler2","z5","TooManyEmbeddingValuesForCallError","parseProviderOptions2","UnsupportedFunctionalityError2","postJsonToApi2","combineHeaders2","createJsonResponseHandler2","lazySchema","zodSchema","z6","createJsonErrorResponseHandler3","convertUint8ArrayToBase64","getFirstFrameImage","resolveStartImage","convertImageModelFileToDataUri","parseProviderOptions3","postJsonToApi3","combineHeaders3","resolve","createJsonResponseHandler3","AISDKError","delay","getFromApi","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","NoSuchModelError","OpenAICompatibleChatLanguageModel","VERSION","z","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","NoSuchModelError","postFormDataToApi","combineHeaders","convertToFormData","createJsonErrorResponseHandler","createJsonResponseHandler","postJsonToApi","z","downloadBlob","convertBase64ToUint8Array","OpenAICompatibleChatLanguageModel","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","OpenAICompatibleCompletionLanguageModel","OpenAICompatibleEmbeddingModel","z","lazySchema","zodSchema","z2","prepareTools","getResponseMetadata","createJsonErrorResponseHandler","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","generateId","createEventSourceResponseHandler","InvalidResponseDataError","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","NoSuchModelError","UnsupportedFunctionalityError","convertToBase64","_exhaustiveCheck","getResponseMetadata","z","z2","createJsonErrorResponseHandler","prepareTools","UnsupportedFunctionalityError2","parseProviderOptions","postJsonToApi","combineHeaders","createJsonResponseHandler","generateId","createEventSourceResponseHandler","InvalidResponseDataError","z3","lazySchema","zodSchema","z4","parseProviderOptions2","convertBase64ToUint8Array","mediaTypeToExtension","postFormDataToApi","combineHeaders2","createJsonResponseHandler2","z5","createProviderToolFactory","z6","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","NoSuchModelError","convertToBase64","UnsupportedFunctionalityError","_exhaustiveCheck","getResponseMetadata","z","createJsonErrorResponseHandler","z2","prepareTools","UnsupportedFunctionalityError2","generateId","parseProviderOptions","injectJsonInstructionIntoMessages","postJsonToApi","combineHeaders","createJsonResponseHandler","createEventSourceResponseHandler","z3","TooManyEmbeddingValuesForCallError","postJsonToApi2","combineHeaders2","createJsonResponseHandler2","z4","z5","parseProviderOptions2","postToApi","combineHeaders3","createJsonResponseHandler3","z6","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","NoSuchModelError","getTopLevelMediaType","UnsupportedFunctionalityError","convertUint8ArrayToBase64","_exhaustiveCheck","convertBase64ToUint8Array","postJsonToApi","combineHeaders","createJsonErrorResponseHandler","createJsonResponseHandler","getResponseMetadata","createEventSourceResponseHandler","z","VERSION","withUserAgentSuffix","loadApiKey","withoutTrailingSlash","NoSuchModelError","lazySchema","zodSchema","z","lazySchema2","zodSchema2","z2","parseProviderOptions","postJsonToApi","combineHeaders","createJsonErrorResponseHandler","createJsonResponseHandler","parseProviderOptions2","convertImageModelFileToDataUri","postJsonToApi2","combineHeaders2","createJsonErrorResponseHandler2","createJsonResponseHandler2","z3","lazySchema3","zodSchema3","VERSION","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","OpenAICompatibleChatLanguageModel","OpenAICompatibleCompletionLanguageModel","OpenAICompatibleEmbeddingModel","z","parseProviderOptions","convertToBase64","UnsupportedFunctionalityError","_exhaustiveCheck","z2","z3","createJsonErrorResponseHandler","UnsupportedFunctionalityError2","parseProviderOptions2","postJsonToApi","combineHeaders","createJsonResponseHandler","APICallError","extractResponseHeaders","safeParseJSON","createEventSourceResponseHandler","z4","z5","parseProviderOptions3","convertImageModelFileToDataUri","postJsonToApi2","combineHeaders2","createJsonResponseHandler2","getFromApi","createStatusCodeErrorResponseHandler","createBinaryResponseHandler","z6","convertToBase642","parseProviderOptions4","UnsupportedFunctionalityError3","z7","z8","lazySchema","zodSchema","z9","createProviderToolFactoryWithOutputSchema","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","cancelResponseBody","withoutTrailingSlash","withUserAgentSuffix","loadApiKey","NoSuchModelError","MastraModelGateway","EXCLUDED_PROVIDERS","PROVIDERS_WITH_INSTALLED_PACKAGES","MASTRA_USER_AGENT","createOpenAI","createGoogleGenerativeAI","createAnthropic","createGateway","createOpenAICompatible"],"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.52/78006bd23f3ea5409902e7b3a4968c20e0292dbaa3b023758563c98335e08c86/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.68/1f1a69efbdf1dfa75ef2ac77593ff164f649677e4199133a7e8c5be96d36b78f/node_modules/@ai-sdk/togetherai/dist/index.mjs","../../../../../../setup-pnpm/node_modules/.bin/store/v11/links/@ai-sdk/xai/3.0.111/02c72a24320a41054253d09a97d4e2f89f7e24d75c868c879a78e7642bccc95f/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        let hasReasoning = false;\n        const contentParts = [];\n        const toolCalls = [];\n        for (const part of content) {\n          switch (part.type) {\n            case \"text\": {\n              text += part.text;\n              contentParts.push({ type: \"text\", 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              hasReasoning = true;\n              contentParts.push({\n                type: \"thinking\",\n                thinking: [{ type: \"text\", text: part.text }],\n                closed: true\n              });\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: hasReasoning ? contentParts : 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.52\" : \"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.68\" : \"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(modelId, {\n      ...getCommonModelConfig(\"chat\"),\n      includeUsage: true\n    });\n  };\n  const createCompletionModel = (modelId) => new OpenAICompatibleCompletionLanguageModel(modelId, {\n    ...getCommonModelConfig(\"completion\"),\n    includeUsage: true\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 = [];\n              for (const item of output.value) {\n                switch (item.type) {\n                  case \"text\": {\n                    outputValue.push({\n                      type: \"input_text\",\n                      text: item.text\n                    });\n                    break;\n                  }\n                  case \"image-data\": {\n                    outputValue.push({\n                      type: \"input_image\",\n                      image_url: `data:${item.mediaType};base64,${item.data}`\n                    });\n                    break;\n                  }\n                  case \"image-url\": {\n                    outputValue.push({\n                      type: \"input_image\",\n                      image_url: item.url\n                    });\n                    break;\n                  }\n                  case \"file-data\":\n                  case \"file-url\":\n                  case \"file-id\":\n                  case \"image-file-id\":\n                  case \"custom\": {\n                    break;\n                  }\n                  default: {\n                    const _exhaustiveCheck = item;\n                  }\n                }\n              }\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.111\" : \"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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"}