@opencode-ai/cli-linux-x64 0.0.0-beta-202606050000

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (137) hide show
  1. package/bin/chunk-01tb5qes.js.map +131 -0
  2. package/bin/chunk-06d8aa69.js.map +10 -0
  3. package/bin/chunk-07w2xsfy.js.map +50 -0
  4. package/bin/chunk-0azwkk9z.js.map +12 -0
  5. package/bin/chunk-0d9ja06r.js.map +9 -0
  6. package/bin/chunk-14kv2kjk.js.map +13 -0
  7. package/bin/chunk-17j53wgt.js.map +11 -0
  8. package/bin/chunk-191djt7z.js.map +113 -0
  9. package/bin/chunk-1brm44vt.js.map +10 -0
  10. package/bin/chunk-1jb1dn9p.js.map +10 -0
  11. package/bin/chunk-1paeax4j.js.map +56 -0
  12. package/bin/chunk-1wb39pye.js.map +9 -0
  13. package/bin/chunk-2mjmecen.js.map +10 -0
  14. package/bin/chunk-2wqpg9fb.js.map +10 -0
  15. package/bin/chunk-32ewzcjk.js.map +10 -0
  16. package/bin/chunk-334z6v35.js.map +9 -0
  17. package/bin/chunk-3jqjf0hd.js.map +10 -0
  18. package/bin/chunk-3n6vddyq.js.map +73 -0
  19. package/bin/chunk-3zmvhepw.js.map +10 -0
  20. package/bin/chunk-4980h0t7.js.map +37 -0
  21. package/bin/chunk-4q5k6a0e.js.map +10 -0
  22. package/bin/chunk-5ft9zwf9.js.map +10 -0
  23. package/bin/chunk-6ttpn29p.js.map +10 -0
  24. package/bin/chunk-7fvpf4bs.js.map +10 -0
  25. package/bin/chunk-7vb6kdat.js.map +10 -0
  26. package/bin/chunk-84amh6xf.js.map +11 -0
  27. package/bin/chunk-8akfq1ty.js.map +19 -0
  28. package/bin/chunk-8rd9r1gb.js.map +11 -0
  29. package/bin/chunk-8x80qvzn.js.map +10 -0
  30. package/bin/chunk-943th5qs.js.map +10 -0
  31. package/bin/chunk-94yf089p.js.map +10 -0
  32. package/bin/chunk-98cxndhz.js.map +9 -0
  33. package/bin/chunk-9f8tmby0.js.map +9 -0
  34. package/bin/chunk-9fbstsnw.js.map +9 -0
  35. package/bin/chunk-9hq8aywf.js.map +10 -0
  36. package/bin/chunk-9m7hf7ms.js.map +10 -0
  37. package/bin/chunk-9vf55fj3.js.map +10 -0
  38. package/bin/chunk-9w9rk9en.js.map +20 -0
  39. package/bin/chunk-9y4hgfns.js.map +10 -0
  40. package/bin/chunk-aag5p1fp.js.map +10 -0
  41. package/bin/chunk-axy1v6wd.js.map +27 -0
  42. package/bin/chunk-bj9msmj2.js.map +10 -0
  43. package/bin/chunk-bt0r89ee.js.map +9 -0
  44. package/bin/chunk-c2gsyspz.js.map +10 -0
  45. package/bin/chunk-c8hr0q5n.js.map +10 -0
  46. package/bin/chunk-cab6ccj0.js.map +10 -0
  47. package/bin/chunk-ck4nkjtx.js.map +193 -0
  48. package/bin/chunk-cvm4kr56.js.map +23 -0
  49. package/bin/chunk-cyb9bpgm.js.map +10 -0
  50. package/bin/chunk-d1p8awq6.js.map +10 -0
  51. package/bin/chunk-d6nz1m6v.js.map +10 -0
  52. package/bin/chunk-d9g5798m.js.map +81 -0
  53. package/bin/chunk-dcn0azxw.js.map +10 -0
  54. package/bin/chunk-dd9pfwmr.js.map +10 -0
  55. package/bin/chunk-dk4qekzk.js.map +10 -0
  56. package/bin/chunk-dk9tgwkh.js.map +9 -0
  57. package/bin/chunk-dzzhxh1c.js.map +10 -0
  58. package/bin/chunk-efsmps94.js.map +9 -0
  59. package/bin/chunk-fdw7znt6.js.map +11 -0
  60. package/bin/chunk-fs6t8jdg.js.map +10 -0
  61. package/bin/chunk-fzcqzwx5.js.map +10 -0
  62. package/bin/chunk-g4fcmhkj.js.map +11 -0
  63. package/bin/chunk-g4ff66n8.js.map +10 -0
  64. package/bin/chunk-g8mpn6ke.js.map +11 -0
  65. package/bin/chunk-gahs293a.js.map +10 -0
  66. package/bin/chunk-gh9dcqbv.js.map +10 -0
  67. package/bin/chunk-grvxd8zq.js.map +10 -0
  68. package/bin/chunk-gv6nagng.js.map +10 -0
  69. package/bin/chunk-h1vz14ze.js.map +167 -0
  70. package/bin/chunk-hav16yge.js.map +10 -0
  71. package/bin/chunk-hp5nnq6f.js.map +11 -0
  72. package/bin/chunk-hrcbafh3.js.map +9 -0
  73. package/bin/chunk-hxfsfpek.js.map +10 -0
  74. package/bin/chunk-jcqp2wmf.js.map +10 -0
  75. package/bin/chunk-jt9t8203.js.map +9 -0
  76. package/bin/chunk-k0980eb5.js.map +10 -0
  77. package/bin/chunk-kghptcgb.js.map +9 -0
  78. package/bin/chunk-kkvk5eez.js.map +10 -0
  79. package/bin/chunk-kv0b3sh5.js.map +10 -0
  80. package/bin/chunk-kvfs5rat.js.map +10 -0
  81. package/bin/chunk-mf0qqhvb.js.map +10 -0
  82. package/bin/chunk-mkze6twx.js.map +10 -0
  83. package/bin/chunk-mzjs3qj3.js.map +10 -0
  84. package/bin/chunk-n10mj2m3.js.map +17 -0
  85. package/bin/chunk-n2fbt143.js.map +9 -0
  86. package/bin/chunk-n6a0rctn.js.map +9 -0
  87. package/bin/chunk-nd3yv9bg.js.map +388 -0
  88. package/bin/chunk-njn9a3jp.js.map +13 -0
  89. package/bin/chunk-nkhzpsnk.js.map +13 -0
  90. package/bin/chunk-ny5cyeha.js.map +10 -0
  91. package/bin/chunk-p3nkd9t2.js.map +10 -0
  92. package/bin/chunk-p3pr1t3k.js.map +10 -0
  93. package/bin/chunk-p7j7e7hb.js.map +10 -0
  94. package/bin/chunk-p89bk96c.js.map +10 -0
  95. package/bin/chunk-pnkd37ss.js.map +20 -0
  96. package/bin/chunk-prat77ba.js.map +577 -0
  97. package/bin/chunk-q6nf6fka.js.map +10 -0
  98. package/bin/chunk-qbpebjh2.js.map +10 -0
  99. package/bin/chunk-qzx2gre7.js.map +13 -0
  100. package/bin/chunk-r55kafff.js.map +9 -0
  101. package/bin/chunk-rrwp4x01.js.map +10 -0
  102. package/bin/chunk-rt02k446.js.map +11 -0
  103. package/bin/chunk-s39nwv01.js.map +9 -0
  104. package/bin/chunk-s983v0dp.js.map +10 -0
  105. package/bin/chunk-san15sca.js.map +10 -0
  106. package/bin/chunk-sfk73pp2.js.map +10 -0
  107. package/bin/chunk-sjd3wbjd.js.map +10 -0
  108. package/bin/chunk-swbdmja3.js.map +10 -0
  109. package/bin/chunk-tc8tvjey.js.map +33 -0
  110. package/bin/chunk-tcqtz83b.js.map +10 -0
  111. package/bin/chunk-tgxxchfy.js.map +28 -0
  112. package/bin/chunk-tvxakxv2.js.map +10 -0
  113. package/bin/chunk-v81ta3tx.js.map +15 -0
  114. package/bin/chunk-va2h4xya.js.map +37 -0
  115. package/bin/chunk-vezq3hc4.js.map +9 -0
  116. package/bin/chunk-vmbpvmpg.js.map +10 -0
  117. package/bin/chunk-w7p62pb6.js.map +17 -0
  118. package/bin/chunk-wr4x72qd.js.map +13 -0
  119. package/bin/chunk-x3ywttp7.js.map +10 -0
  120. package/bin/chunk-x988wmrk.js.map +10 -0
  121. package/bin/chunk-x9zjg1f7.js.map +20 -0
  122. package/bin/chunk-xaqrhtz6.js.map +10 -0
  123. package/bin/chunk-xd2mrkwy.js.map +10 -0
  124. package/bin/chunk-xfh2377b.js.map +10 -0
  125. package/bin/chunk-xs0ras4j.js.map +51 -0
  126. package/bin/chunk-xt7ap9fb.js.map +10 -0
  127. package/bin/chunk-xya5qk3h.js.map +16 -0
  128. package/bin/chunk-yg7w4jgd.js.map +10 -0
  129. package/bin/chunk-yhpv46tb.js.map +20 -0
  130. package/bin/chunk-ymy66kr8.js.map +15 -0
  131. package/bin/chunk-yx4z6xsb.js.map +11 -0
  132. package/bin/chunk-yymwxqpy.js.map +10 -0
  133. package/bin/chunk-z70c75xe.js.map +11 -0
  134. package/bin/chunk-zkqyr3hc.js.map +10 -0
  135. package/bin/index.js.map +12 -0
  136. package/bin/lildax +0 -0
  137. package/package.json +15 -0
@@ -0,0 +1,10 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../node_modules/.bun/@openrouter+ai-sdk-provider@2.9.0+8804bef819b3813f/node_modules/@openrouter/ai-sdk-provider/dist/index.mjs"],
4
+ "sourcesContent": [
5
+ "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,\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 id: z10.string().optional(),\n object: z10.string().optional(),\n created: z10.number().optional(),\n model: z10.string(),\n choices: z10.array(\n z10.object({\n index: z10.number(),\n message: z10.object({\n role: z10.string(),\n content: z10.string().nullable().optional(),\n images: z10.array(\n z10.object({\n type: z10.literal(\"image_url\"),\n image_url: z10.object({\n url: z10.string()\n })\n }).passthrough()\n ).optional()\n }).passthrough(),\n finish_reason: z10.string().nullable().optional()\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 = 1;\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n async doGenerate(options) {\n var _a16;\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 if (n > 1) {\n warnings.push({\n type: \"unsupported\",\n feature: \"n > 1\",\n details: `OpenRouter image generation returns 1 image per call. Requested ${n} images.`\n });\n }\n if (size !== void 0) {\n warnings.push({\n type: \"unsupported\",\n feature: \"size\",\n details: \"Use aspectRatio instead. Size parameter is not supported by OpenRouter image generation.\"\n });\n }\n const imageConfig = aspectRatio !== void 0 ? { aspect_ratio: aspectRatio } : void 0;\n const hasFiles = files !== void 0 && files.length > 0;\n const userContent = hasFiles ? [\n ...files.map(\n (file) => convertImageFileToContentPart(file)\n ),\n { type: \"text\", text: prompt != null ? prompt : \"\" }\n ] : prompt != null ? prompt : \"\";\n const body = __spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues(__spreadValues({\n model: this.modelId,\n messages: [\n {\n role: \"user\",\n content: userContent\n }\n ],\n modalities: [\"image\", \"text\"]\n }, imageConfig !== void 0 && { image_config: imageConfig }), seed !== void 0 && { seed }), 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: \"/chat/completions\",\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 const choice = responseValue.choices[0];\n if (!choice) {\n throw new NoContentGeneratedError({\n message: \"No choice in response\"\n });\n }\n const images = [];\n if ((_a16 = choice.message) == null ? void 0 : _a16.images) {\n for (const image of choice.message.images) {\n const dataUrl = image.image_url.url;\n images.push(getBase64FromDataUrl(dataUrl));\n }\n }\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: responseValue.model,\n headers: responseHeaders\n },\n usage\n };\n }\n};\nvar DEFAULT_IMAGE_MEDIA_TYPE = \"image/png\";\nfunction convertImageFileToContentPart(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.9.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"
6
+ ],
7
+ "mappings": "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",
8
+ "debugId": "74D3B554E94F672064756E2164756E21",
9
+ "names": []
10
+ }