@mastra/core 1.0.0-beta.11 → 1.0.0-beta.13

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 (394) hide show
  1. package/CHANGELOG.md +173 -0
  2. package/dist/_types/@internal_ai-sdk-v4/dist/index.d.ts +7549 -0
  3. package/dist/_types/@internal_ai-sdk-v4/dist/test.d.ts +65 -0
  4. package/dist/_types/@internal_ai-sdk-v5/dist/index.d.ts +8396 -0
  5. package/dist/_types/@internal_ai-sdk-v5/dist/test.d.ts +1708 -0
  6. package/dist/_types/@internal_external-types/dist/index.d.ts +858 -0
  7. package/dist/agent/agent-legacy.d.ts +1 -1
  8. package/dist/agent/agent.d.ts +1 -1
  9. package/dist/agent/agent.d.ts.map +1 -1
  10. package/dist/agent/agent.types.d.ts +5 -1
  11. package/dist/agent/agent.types.d.ts.map +1 -1
  12. package/dist/agent/index.cjs +9 -9
  13. package/dist/agent/index.js +2 -2
  14. package/dist/agent/message-list/index.cjs +3 -3
  15. package/dist/agent/message-list/index.d.ts +4 -3
  16. package/dist/agent/message-list/index.d.ts.map +1 -1
  17. package/dist/agent/message-list/index.js +1 -1
  18. package/dist/agent/message-list/prompt/attachments-to-parts.d.ts +1 -1
  19. package/dist/agent/message-list/prompt/invalid-content-error.d.ts +1 -1
  20. package/dist/agent/message-list/types.d.ts +3 -3
  21. package/dist/agent/message-list/types.d.ts.map +1 -1
  22. package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts +1 -1
  23. package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts +1 -1
  24. package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts +2 -2
  25. package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts.map +1 -1
  26. package/dist/agent/message-list/utils/convert-messages.d.ts +2 -2
  27. package/dist/agent/message-list/utils/convert-messages.d.ts.map +1 -1
  28. package/dist/agent/types.d.ts +3 -3
  29. package/dist/agent/utils.d.ts +3 -3
  30. package/dist/agent/utils.d.ts.map +1 -1
  31. package/dist/agent/workflows/prepare-stream/index.d.ts +2 -1
  32. package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
  33. package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
  34. package/dist/agent/workflows/prepare-stream/stream-step.d.ts +3 -1
  35. package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
  36. package/dist/bundler/types.d.ts +14 -1
  37. package/dist/bundler/types.d.ts.map +1 -1
  38. package/dist/{chunk-U3XOLEPX.js → chunk-2IU4RGU5.js} +6 -32
  39. package/dist/chunk-2IU4RGU5.js.map +1 -0
  40. package/dist/chunk-2SQB3WBT.js +4574 -0
  41. package/dist/chunk-2SQB3WBT.js.map +1 -0
  42. package/dist/{chunk-THZTRBFS.js → chunk-373OC54J.js} +8 -8
  43. package/dist/chunk-373OC54J.js.map +1 -0
  44. package/dist/{chunk-F2GAJSBI.js → chunk-4BC5FUAO.js} +8 -6
  45. package/dist/{chunk-F2GAJSBI.js.map → chunk-4BC5FUAO.js.map} +1 -1
  46. package/dist/chunk-55VPMN3N.js +250 -0
  47. package/dist/chunk-55VPMN3N.js.map +1 -0
  48. package/dist/{chunk-QM5SRDJX.js → chunk-5PTZG26U.js} +66 -84
  49. package/dist/chunk-5PTZG26U.js.map +1 -0
  50. package/dist/chunk-5VZGJTPR.js +4837 -0
  51. package/dist/chunk-5VZGJTPR.js.map +1 -0
  52. package/dist/{chunk-C36YRTZ6.js → chunk-62Q7K656.js} +6 -7
  53. package/dist/chunk-62Q7K656.js.map +1 -0
  54. package/dist/chunk-6PMMP3FR.js +7 -0
  55. package/dist/chunk-6PMMP3FR.js.map +1 -0
  56. package/dist/{chunk-DZUJEN5N.cjs → chunk-6SZKM6EC.cjs} +10 -3
  57. package/dist/{chunk-DZUJEN5N.cjs.map → chunk-6SZKM6EC.cjs.map} +1 -1
  58. package/dist/{chunk-5WRI5ZAA.js → chunk-7D4SUZUM.js} +10 -4
  59. package/dist/{chunk-5WRI5ZAA.js.map → chunk-7D4SUZUM.js.map} +1 -1
  60. package/dist/{chunk-YWMMBIOM.cjs → chunk-7HEAVZRS.cjs} +15 -15
  61. package/dist/{chunk-YWMMBIOM.cjs.map → chunk-7HEAVZRS.cjs.map} +1 -1
  62. package/dist/{chunk-BUKY6CTR.cjs → chunk-AGHLXC4I.cjs} +106 -36
  63. package/dist/chunk-AGHLXC4I.cjs.map +1 -0
  64. package/dist/{chunk-PK2A5WBG.js → chunk-ARAQIW6E.js} +222 -604
  65. package/dist/chunk-ARAQIW6E.js.map +1 -0
  66. package/dist/{chunk-US2U7ECW.js → chunk-BQDZIQ3G.js} +156 -90
  67. package/dist/chunk-BQDZIQ3G.js.map +1 -0
  68. package/dist/chunk-D22XABFZ.js +79 -0
  69. package/dist/chunk-D22XABFZ.js.map +1 -0
  70. package/dist/{chunk-2ULLRN4Y.js → chunk-E5BQRAJK.js} +943 -626
  71. package/dist/chunk-E5BQRAJK.js.map +1 -0
  72. package/dist/chunk-FST2G2FQ.cjs +84 -0
  73. package/dist/chunk-FST2G2FQ.cjs.map +1 -0
  74. package/dist/chunk-FVQTJUBD.cjs +2120 -0
  75. package/dist/chunk-FVQTJUBD.cjs.map +1 -0
  76. package/dist/chunk-G6E6V2Z4.js +2070 -0
  77. package/dist/chunk-G6E6V2Z4.js.map +1 -0
  78. package/dist/{chunk-7P6BNIJH.js → chunk-GIWC35YQ.js} +105 -35
  79. package/dist/chunk-GIWC35YQ.js.map +1 -0
  80. package/dist/{chunk-4JKEUSCC.cjs → chunk-H4VUIOWU.cjs} +22 -20
  81. package/dist/chunk-H4VUIOWU.cjs.map +1 -0
  82. package/dist/{chunk-TWH4PTDG.cjs → chunk-HWMMIRIF.cjs} +32 -27
  83. package/dist/chunk-HWMMIRIF.cjs.map +1 -0
  84. package/dist/chunk-IXZ2T2QX.cjs +448 -0
  85. package/dist/chunk-IXZ2T2QX.cjs.map +1 -0
  86. package/dist/chunk-L3NKIMF5.cjs +10 -0
  87. package/dist/chunk-L3NKIMF5.cjs.map +1 -0
  88. package/dist/chunk-L4JCRWDY.cjs +252 -0
  89. package/dist/chunk-L4JCRWDY.cjs.map +1 -0
  90. package/dist/{chunk-BJXKH4LG.cjs → chunk-LGB4VNZI.cjs} +43 -78
  91. package/dist/chunk-LGB4VNZI.cjs.map +1 -0
  92. package/dist/{chunk-PG5H6QIO.cjs → chunk-MLKE7HRS.cjs} +41 -21
  93. package/dist/chunk-MLKE7HRS.cjs.map +1 -0
  94. package/dist/{chunk-OEIVMCWX.js → chunk-MRRFTNF4.js} +2537 -84
  95. package/dist/chunk-MRRFTNF4.js.map +1 -0
  96. package/dist/chunk-MXBVP7HX.cjs +4842 -0
  97. package/dist/chunk-MXBVP7HX.cjs.map +1 -0
  98. package/dist/chunk-NESKUIRE.cjs +4586 -0
  99. package/dist/chunk-NESKUIRE.cjs.map +1 -0
  100. package/dist/{chunk-SVLMF4UZ.cjs → chunk-NIOEY3N3.cjs} +66 -85
  101. package/dist/chunk-NIOEY3N3.cjs.map +1 -0
  102. package/dist/{chunk-CZEJQSWB.cjs → chunk-OWIEOL55.cjs} +295 -677
  103. package/dist/chunk-OWIEOL55.cjs.map +1 -0
  104. package/dist/{chunk-WTSZBHIZ.cjs → chunk-PJAK4U6R.cjs} +24 -24
  105. package/dist/{chunk-WTSZBHIZ.cjs.map → chunk-PJAK4U6R.cjs.map} +1 -1
  106. package/dist/{chunk-52RSUALV.cjs → chunk-R5AJGM55.cjs} +1314 -995
  107. package/dist/chunk-R5AJGM55.cjs.map +1 -0
  108. package/dist/{chunk-IVV5TOMD.js → chunk-RCJLMMTO.js} +32 -12
  109. package/dist/chunk-RCJLMMTO.js.map +1 -0
  110. package/dist/{chunk-S73Z3PBJ.cjs → chunk-SZYSDJTN.cjs} +27 -28
  111. package/dist/chunk-SZYSDJTN.cjs.map +1 -0
  112. package/dist/{chunk-YC6PJEPH.cjs → chunk-U4CSOY6T.cjs} +188 -122
  113. package/dist/chunk-U4CSOY6T.cjs.map +1 -0
  114. package/dist/chunk-UBSPZTQX.js +434 -0
  115. package/dist/chunk-UBSPZTQX.js.map +1 -0
  116. package/dist/{chunk-SCUWP4II.cjs → chunk-VEPP75C4.cjs} +47 -74
  117. package/dist/chunk-VEPP75C4.cjs.map +1 -0
  118. package/dist/{chunk-JIGDJK2O.js → chunk-VETAQUW3.js} +4 -39
  119. package/dist/chunk-VETAQUW3.js.map +1 -0
  120. package/dist/{chunk-Z57R5WS4.js → chunk-WPTTKULS.js} +4 -4
  121. package/dist/{chunk-Z57R5WS4.js.map → chunk-WPTTKULS.js.map} +1 -1
  122. package/dist/{chunk-O2BJW7YA.js → chunk-WYGUWVTF.js} +5 -5
  123. package/dist/{chunk-O2BJW7YA.js.map → chunk-WYGUWVTF.js.map} +1 -1
  124. package/dist/{chunk-SXNQRJQD.js → chunk-WYWRMIQC.js} +127 -22
  125. package/dist/chunk-WYWRMIQC.js.map +1 -0
  126. package/dist/{chunk-5Q6WAYEY.cjs → chunk-X6IBA7FP.cjs} +137 -50
  127. package/dist/chunk-X6IBA7FP.cjs.map +1 -0
  128. package/dist/{chunk-MRFUISXC.cjs → chunk-Y7MZ5LJT.cjs} +2632 -179
  129. package/dist/chunk-Y7MZ5LJT.cjs.map +1 -0
  130. package/dist/{chunk-JJ5O45LH.js → chunk-YPLZDWG7.js} +32 -27
  131. package/dist/chunk-YPLZDWG7.js.map +1 -0
  132. package/dist/{chunk-MGCGWPQJ.cjs → chunk-Z55SJVEC.cjs} +8 -8
  133. package/dist/chunk-Z55SJVEC.cjs.map +1 -0
  134. package/dist/error/index.cjs +6 -6
  135. package/dist/error/index.d.ts +26 -20
  136. package/dist/error/index.d.ts.map +1 -1
  137. package/dist/error/index.js +1 -1
  138. package/dist/error/utils.d.ts +19 -5
  139. package/dist/error/utils.d.ts.map +1 -1
  140. package/dist/evals/index.cjs +4 -4
  141. package/dist/evals/index.js +1 -1
  142. package/dist/evals/run/index.d.ts +1 -1
  143. package/dist/evals/scoreTraces/index.cjs +8 -8
  144. package/dist/evals/scoreTraces/index.js +2 -2
  145. package/dist/evals/types.d.ts +1 -1
  146. package/dist/events/event-emitter.d.ts +6 -1
  147. package/dist/events/event-emitter.d.ts.map +1 -1
  148. package/dist/index.cjs +2 -2
  149. package/dist/index.js +1 -1
  150. package/dist/integration/index.cjs +2 -2
  151. package/dist/integration/index.js +1 -1
  152. package/dist/llm/index.cjs +15 -15
  153. package/dist/llm/index.d.ts +2 -2
  154. package/dist/llm/index.d.ts.map +1 -1
  155. package/dist/llm/index.js +5 -5
  156. package/dist/llm/model/aisdk/v5/model.d.ts +1 -1
  157. package/dist/llm/model/base.types.d.ts +2 -2
  158. package/dist/llm/model/model.d.ts +1 -1
  159. package/dist/llm/model/model.d.ts.map +1 -1
  160. package/dist/llm/model/model.loop.d.ts +2 -2
  161. package/dist/llm/model/model.loop.d.ts.map +1 -1
  162. package/dist/llm/model/model.loop.types.d.ts +1 -1
  163. package/dist/llm/model/model.loop.types.d.ts.map +1 -1
  164. package/dist/llm/model/provider-types.generated.d.ts +51 -11
  165. package/dist/llm/model/shared.types.d.ts +1 -1
  166. package/dist/loop/index.cjs +2 -2
  167. package/dist/loop/index.js +1 -1
  168. package/dist/loop/loop.d.ts +2 -2
  169. package/dist/loop/loop.d.ts.map +1 -1
  170. package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts +1 -1
  171. package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts.map +1 -1
  172. package/dist/loop/test-utils/options.d.ts.map +1 -1
  173. package/dist/loop/test-utils/streamObject.d.ts +1 -1
  174. package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
  175. package/dist/loop/test-utils/tools.d.ts.map +1 -1
  176. package/dist/loop/types.d.ts +3 -1
  177. package/dist/loop/types.d.ts.map +1 -1
  178. package/dist/loop/workflows/agentic-execution/index.d.ts +13 -13
  179. package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
  180. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +10 -10
  181. package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
  182. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +5 -5
  183. package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
  184. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts +22 -21
  185. package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
  186. package/dist/loop/workflows/agentic-loop/index.d.ts +13 -13
  187. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  188. package/dist/loop/workflows/schema.d.ts +6 -6
  189. package/dist/loop/workflows/schema.d.ts.map +1 -1
  190. package/dist/loop/workflows/stream.d.ts +2 -2
  191. package/dist/loop/workflows/stream.d.ts.map +1 -1
  192. package/dist/mastra/index.cjs +2 -2
  193. package/dist/mastra/index.js +1 -1
  194. package/dist/mcp/index.cjs +4 -4
  195. package/dist/mcp/index.js +1 -1
  196. package/dist/memory/index.cjs +6 -6
  197. package/dist/memory/index.js +1 -1
  198. package/dist/memory/memory.d.ts +1 -1
  199. package/dist/memory/types.d.ts +3 -3
  200. package/dist/memory/types.d.ts.map +1 -1
  201. package/dist/models-dev-D3EKFGAO.cjs +12 -0
  202. package/dist/{models-dev-EO3SUIY2.cjs.map → models-dev-D3EKFGAO.cjs.map} +1 -1
  203. package/dist/models-dev-EO22XOXQ.js +3 -0
  204. package/dist/{models-dev-23RN2WHG.js.map → models-dev-EO22XOXQ.js.map} +1 -1
  205. package/dist/netlify-AE4LNCAI.js +3 -0
  206. package/dist/{netlify-GXJ5D5DD.js.map → netlify-AE4LNCAI.js.map} +1 -1
  207. package/dist/netlify-WE42TZIT.cjs +12 -0
  208. package/dist/{netlify-KJLY3GFS.cjs.map → netlify-WE42TZIT.cjs.map} +1 -1
  209. package/dist/processors/index.cjs +37 -37
  210. package/dist/processors/index.d.ts +2 -2
  211. package/dist/processors/index.d.ts.map +1 -1
  212. package/dist/processors/index.js +1 -1
  213. package/dist/processors/step-schema.d.ts +1267 -1267
  214. package/dist/processors/step-schema.d.ts.map +1 -1
  215. package/dist/provider-registry-6LF3NGC5.js +3 -0
  216. package/dist/{provider-registry-F67Y6OF2.js.map → provider-registry-6LF3NGC5.js.map} +1 -1
  217. package/dist/provider-registry-73FKMXJV.cjs +40 -0
  218. package/dist/{provider-registry-3TG2KUD2.cjs.map → provider-registry-73FKMXJV.cjs.map} +1 -1
  219. package/dist/provider-registry.json +100 -30
  220. package/dist/{registry-generator-UMTNPBJX.js → registry-generator-AVQXI3GX.js} +2 -2
  221. package/dist/{registry-generator-UMTNPBJX.js.map → registry-generator-AVQXI3GX.js.map} +1 -1
  222. package/dist/{registry-generator-34SC4TAU.cjs → registry-generator-KOFNIIWJ.cjs} +2 -2
  223. package/dist/{registry-generator-34SC4TAU.cjs.map → registry-generator-KOFNIIWJ.cjs.map} +1 -1
  224. package/dist/relevance/index.cjs +2 -2
  225. package/dist/relevance/index.js +1 -1
  226. package/dist/server/index.cjs +5 -5
  227. package/dist/server/index.js +1 -1
  228. package/dist/storage/base.d.ts +2 -10
  229. package/dist/storage/base.d.ts.map +1 -1
  230. package/dist/storage/domains/workflows/base.d.ts +2 -8
  231. package/dist/storage/domains/workflows/base.d.ts.map +1 -1
  232. package/dist/storage/domains/workflows/inmemory.d.ts +2 -8
  233. package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
  234. package/dist/storage/index.cjs +38 -38
  235. package/dist/storage/index.js +1 -1
  236. package/dist/storage/mock.d.ts +2 -8
  237. package/dist/storage/mock.d.ts.map +1 -1
  238. package/dist/storage/types.d.ts +9 -1
  239. package/dist/storage/types.d.ts.map +1 -1
  240. package/dist/stream/RunOutput.d.ts +1 -1
  241. package/dist/stream/aisdk/v4/input.d.ts +1 -1
  242. package/dist/stream/aisdk/v5/compat/content.d.ts +1 -1
  243. package/dist/stream/aisdk/v5/compat/content.d.ts.map +1 -1
  244. package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts +1 -1
  245. package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
  246. package/dist/stream/aisdk/v5/compat/ui-message.d.ts +1 -1
  247. package/dist/stream/aisdk/v5/compat/ui-message.d.ts.map +1 -1
  248. package/dist/stream/aisdk/v5/compat/validation.d.ts +1 -1
  249. package/dist/stream/aisdk/v5/compat/validation.d.ts.map +1 -1
  250. package/dist/stream/aisdk/v5/execute.d.ts +2 -2
  251. package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
  252. package/dist/stream/aisdk/v5/input.d.ts +1 -1
  253. package/dist/stream/aisdk/v5/input.d.ts.map +1 -1
  254. package/dist/stream/aisdk/v5/output-helpers.d.ts +12 -27
  255. package/dist/stream/aisdk/v5/output-helpers.d.ts.map +1 -1
  256. package/dist/stream/aisdk/v5/output.d.ts +41 -91
  257. package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
  258. package/dist/stream/aisdk/v5/transform.d.ts +1 -1
  259. package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
  260. package/dist/stream/base/input.d.ts +1 -1
  261. package/dist/stream/base/output.d.ts +9 -31
  262. package/dist/stream/base/output.d.ts.map +1 -1
  263. package/dist/stream/base/schema.d.ts +2 -2
  264. package/dist/stream/base/schema.d.ts.map +1 -1
  265. package/dist/stream/index.cjs +12 -12
  266. package/dist/stream/index.js +2 -2
  267. package/dist/stream/types.d.ts +3 -2
  268. package/dist/stream/types.d.ts.map +1 -1
  269. package/dist/test-utils/llm-mock.cjs +14587 -14
  270. package/dist/test-utils/llm-mock.cjs.map +1 -1
  271. package/dist/test-utils/llm-mock.d.ts +3 -3
  272. package/dist/test-utils/llm-mock.d.ts.map +1 -1
  273. package/dist/test-utils/llm-mock.js +14577 -4
  274. package/dist/test-utils/llm-mock.js.map +1 -1
  275. package/dist/token-6GSAFR2W-SGVIXFCP.cjs +63 -0
  276. package/dist/token-6GSAFR2W-SGVIXFCP.cjs.map +1 -0
  277. package/dist/token-6GSAFR2W-SPYPLMBM.js +61 -0
  278. package/dist/token-6GSAFR2W-SPYPLMBM.js.map +1 -0
  279. package/dist/token-util-NEHG7TUY-7GMW5FXI.cjs +10 -0
  280. package/dist/token-util-NEHG7TUY-7GMW5FXI.cjs.map +1 -0
  281. package/dist/token-util-NEHG7TUY-JRJTGTAB.js +8 -0
  282. package/dist/token-util-NEHG7TUY-JRJTGTAB.js.map +1 -0
  283. package/dist/tools/index.cjs +4 -4
  284. package/dist/tools/index.js +1 -1
  285. package/dist/tools/is-vercel-tool.cjs +2 -2
  286. package/dist/tools/is-vercel-tool.js +1 -1
  287. package/dist/tools/tool-builder/builder.d.ts +2 -1
  288. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  289. package/dist/tools/tool.d.ts.map +1 -1
  290. package/dist/tools/types.d.ts +5 -5
  291. package/dist/tools/types.d.ts.map +1 -1
  292. package/dist/utils.cjs +22 -22
  293. package/dist/utils.d.ts +3 -3
  294. package/dist/utils.d.ts.map +1 -1
  295. package/dist/utils.js +1 -1
  296. package/dist/vector/embed.d.ts +2 -2
  297. package/dist/vector/embed.d.ts.map +1 -1
  298. package/dist/vector/index.cjs +11 -11
  299. package/dist/vector/index.js +3 -3
  300. package/dist/vector/vector.d.ts +1 -1
  301. package/dist/voice/aisdk/speech.d.ts +1 -1
  302. package/dist/voice/aisdk/speech.d.ts.map +1 -1
  303. package/dist/voice/aisdk/transcription.d.ts +1 -1
  304. package/dist/voice/aisdk/transcription.d.ts.map +1 -1
  305. package/dist/voice/composite-voice.d.ts +1 -1
  306. package/dist/voice/composite-voice.d.ts.map +1 -1
  307. package/dist/voice/index.cjs +6 -6
  308. package/dist/voice/index.js +1 -1
  309. package/dist/workflows/constants.cjs +4 -4
  310. package/dist/workflows/constants.d.ts +1 -1
  311. package/dist/workflows/constants.d.ts.map +1 -1
  312. package/dist/workflows/constants.js +1 -1
  313. package/dist/workflows/default.d.ts +9 -16
  314. package/dist/workflows/default.d.ts.map +1 -1
  315. package/dist/workflows/evented/execution-engine.d.ts +3 -2
  316. package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
  317. package/dist/workflows/evented/index.cjs +10 -10
  318. package/dist/workflows/evented/index.js +1 -1
  319. package/dist/workflows/evented/step-executor.d.ts +1 -1
  320. package/dist/workflows/evented/step-executor.d.ts.map +1 -1
  321. package/dist/workflows/evented/workflow-event-processor/index.d.ts +1 -1
  322. package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
  323. package/dist/workflows/evented/workflow.d.ts +15 -0
  324. package/dist/workflows/evented/workflow.d.ts.map +1 -1
  325. package/dist/workflows/execution-engine.d.ts +25 -2
  326. package/dist/workflows/execution-engine.d.ts.map +1 -1
  327. package/dist/workflows/handlers/control-flow.d.ts +6 -5
  328. package/dist/workflows/handlers/control-flow.d.ts.map +1 -1
  329. package/dist/workflows/handlers/entry.d.ts +5 -3
  330. package/dist/workflows/handlers/entry.d.ts.map +1 -1
  331. package/dist/workflows/handlers/sleep.d.ts +4 -3
  332. package/dist/workflows/handlers/sleep.d.ts.map +1 -1
  333. package/dist/workflows/handlers/step.d.ts +5 -3
  334. package/dist/workflows/handlers/step.d.ts.map +1 -1
  335. package/dist/workflows/index.cjs +26 -22
  336. package/dist/workflows/index.js +1 -1
  337. package/dist/workflows/step.d.ts +5 -4
  338. package/dist/workflows/step.d.ts.map +1 -1
  339. package/dist/workflows/types.d.ts +66 -14
  340. package/dist/workflows/types.d.ts.map +1 -1
  341. package/dist/workflows/utils.d.ts +11 -0
  342. package/dist/workflows/utils.d.ts.map +1 -1
  343. package/dist/workflows/workflow.d.ts +26 -8
  344. package/dist/workflows/workflow.d.ts.map +1 -1
  345. package/package.json +12 -11
  346. package/src/llm/model/provider-types.generated.d.ts +51 -11
  347. package/dist/agent/__tests__/mock-model.d.ts +0 -8
  348. package/dist/agent/__tests__/mock-model.d.ts.map +0 -1
  349. package/dist/agent/agent-types.test-d.d.ts +0 -2
  350. package/dist/agent/agent-types.test-d.d.ts.map +0 -1
  351. package/dist/ai-sdk.types.d.ts +0 -4705
  352. package/dist/chunk-2ULLRN4Y.js.map +0 -1
  353. package/dist/chunk-3E3ILV6T.cjs +0 -518
  354. package/dist/chunk-3E3ILV6T.cjs.map +0 -1
  355. package/dist/chunk-4JKEUSCC.cjs.map +0 -1
  356. package/dist/chunk-52RSUALV.cjs.map +0 -1
  357. package/dist/chunk-5PAEYE3Q.js +0 -513
  358. package/dist/chunk-5PAEYE3Q.js.map +0 -1
  359. package/dist/chunk-5Q6WAYEY.cjs.map +0 -1
  360. package/dist/chunk-7P6BNIJH.js.map +0 -1
  361. package/dist/chunk-ABJOUEVA.cjs +0 -10
  362. package/dist/chunk-ABJOUEVA.cjs.map +0 -1
  363. package/dist/chunk-BJXKH4LG.cjs.map +0 -1
  364. package/dist/chunk-BUKY6CTR.cjs.map +0 -1
  365. package/dist/chunk-C36YRTZ6.js.map +0 -1
  366. package/dist/chunk-CZEJQSWB.cjs.map +0 -1
  367. package/dist/chunk-IVV5TOMD.js.map +0 -1
  368. package/dist/chunk-JIGDJK2O.js.map +0 -1
  369. package/dist/chunk-JJ5O45LH.js.map +0 -1
  370. package/dist/chunk-MGCGWPQJ.cjs.map +0 -1
  371. package/dist/chunk-MRFUISXC.cjs.map +0 -1
  372. package/dist/chunk-NLNKQD2T.js +0 -7
  373. package/dist/chunk-NLNKQD2T.js.map +0 -1
  374. package/dist/chunk-OEIVMCWX.js.map +0 -1
  375. package/dist/chunk-PG5H6QIO.cjs.map +0 -1
  376. package/dist/chunk-PK2A5WBG.js.map +0 -1
  377. package/dist/chunk-QM5SRDJX.js.map +0 -1
  378. package/dist/chunk-S73Z3PBJ.cjs.map +0 -1
  379. package/dist/chunk-SCUWP4II.cjs.map +0 -1
  380. package/dist/chunk-SVLMF4UZ.cjs.map +0 -1
  381. package/dist/chunk-SXNQRJQD.js.map +0 -1
  382. package/dist/chunk-THZTRBFS.js.map +0 -1
  383. package/dist/chunk-TWH4PTDG.cjs.map +0 -1
  384. package/dist/chunk-U3XOLEPX.js.map +0 -1
  385. package/dist/chunk-US2U7ECW.js.map +0 -1
  386. package/dist/chunk-YC6PJEPH.cjs.map +0 -1
  387. package/dist/models-dev-23RN2WHG.js +0 -3
  388. package/dist/models-dev-EO3SUIY2.cjs +0 -12
  389. package/dist/netlify-GXJ5D5DD.js +0 -3
  390. package/dist/netlify-KJLY3GFS.cjs +0 -12
  391. package/dist/provider-registry-3TG2KUD2.cjs +0 -40
  392. package/dist/provider-registry-F67Y6OF2.js +0 -3
  393. package/dist/tools/tool-stream-types.test-d.d.ts +0 -2
  394. package/dist/tools/tool-stream-types.test-d.d.ts.map +0 -1
@@ -0,0 +1,4574 @@
1
+ import { __commonJS, require_token_error, __toESM } from './chunk-D22XABFZ.js';
2
+ import { lazyValidator, zodSchema, createIdGenerator, withoutTrailingSlash, resolve, postJsonToApi, createJsonErrorResponseHandler, createJsonResponseHandler, combineHeaders, createEventSourceResponseHandler, loadOptionalSetting, withUserAgentSuffix, APICallError, safeValidateTypes, safeParseJSON, asSchema, getErrorMessage2, generateId, AISDKError, convertBase64ToUint8Array, getRuntimeEnvironmentUserAgent, getErrorMessage, getFromApi, isAbortError, delay, convertUint8ArrayToBase64, validateTypes } from './chunk-G6E6V2Z4.js';
3
+ import { z } from 'zod/v4';
4
+
5
+ var require_get_context = __commonJS({
6
+ "../../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/get-context.js"(exports, module) {
7
+ var __defProp2 = Object.defineProperty;
8
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
9
+ var __getOwnPropNames = Object.getOwnPropertyNames;
10
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
11
+ var __export2 = (target, all) => {
12
+ for (var name16 in all)
13
+ __defProp2(target, name16, { get: all[name16], enumerable: true });
14
+ };
15
+ var __copyProps = (to, from, except, desc) => {
16
+ if (from && typeof from === "object" || typeof from === "function") {
17
+ for (let key of __getOwnPropNames(from))
18
+ if (!__hasOwnProp.call(to, key) && key !== except)
19
+ __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
20
+ }
21
+ return to;
22
+ };
23
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
24
+ var get_context_exports = {};
25
+ __export2(get_context_exports, {
26
+ SYMBOL_FOR_REQ_CONTEXT: () => SYMBOL_FOR_REQ_CONTEXT,
27
+ getContext: () => getContext3
28
+ });
29
+ module.exports = __toCommonJS(get_context_exports);
30
+ var SYMBOL_FOR_REQ_CONTEXT = Symbol.for("@vercel/request-context");
31
+ function getContext3() {
32
+ const fromSymbol = globalThis;
33
+ return fromSymbol[SYMBOL_FOR_REQ_CONTEXT]?.get?.() ?? {};
34
+ }
35
+ }
36
+ });
37
+ var require_get_vercel_oidc_token = __commonJS({
38
+ "../../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/get-vercel-oidc-token.js"(exports, module) {
39
+ var __defProp2 = Object.defineProperty;
40
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
41
+ var __getOwnPropNames = Object.getOwnPropertyNames;
42
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
43
+ var __export2 = (target, all) => {
44
+ for (var name16 in all)
45
+ __defProp2(target, name16, { get: all[name16], enumerable: true });
46
+ };
47
+ var __copyProps = (to, from, except, desc) => {
48
+ if (from && typeof from === "object" || typeof from === "function") {
49
+ for (let key of __getOwnPropNames(from))
50
+ if (!__hasOwnProp.call(to, key) && key !== except)
51
+ __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
52
+ }
53
+ return to;
54
+ };
55
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
56
+ var get_vercel_oidc_token_exports = {};
57
+ __export2(get_vercel_oidc_token_exports, {
58
+ getVercelOidcToken: () => getVercelOidcToken3,
59
+ getVercelOidcTokenSync: () => getVercelOidcTokenSync2
60
+ });
61
+ module.exports = __toCommonJS(get_vercel_oidc_token_exports);
62
+ var import_get_context = require_get_context();
63
+ var import_token_error = require_token_error();
64
+ async function getVercelOidcToken3() {
65
+ let token = "";
66
+ let err;
67
+ try {
68
+ token = getVercelOidcTokenSync2();
69
+ } catch (error) {
70
+ err = error;
71
+ }
72
+ try {
73
+ const [{ getTokenPayload, isExpired }, { refreshToken }] = await Promise.all([
74
+ await import('./token-util-NEHG7TUY-JRJTGTAB.js'),
75
+ await import('./token-6GSAFR2W-SPYPLMBM.js')
76
+ ]);
77
+ if (!token || isExpired(getTokenPayload(token))) {
78
+ await refreshToken();
79
+ token = getVercelOidcTokenSync2();
80
+ }
81
+ } catch (error) {
82
+ if (err?.message && error instanceof Error) {
83
+ error.message = `${err.message}
84
+ ${error.message}`;
85
+ }
86
+ throw new import_token_error.VercelOidcTokenError(`Failed to refresh OIDC token`, error);
87
+ }
88
+ return token;
89
+ }
90
+ function getVercelOidcTokenSync2() {
91
+ const token = (0, import_get_context.getContext)().headers?.["x-vercel-oidc-token"] ?? process.env.VERCEL_OIDC_TOKEN;
92
+ if (!token) {
93
+ throw new Error(
94
+ `The 'x-vercel-oidc-token' header is missing from the request. Do you have the OIDC option enabled in the Vercel project settings?`
95
+ );
96
+ }
97
+ return token;
98
+ }
99
+ }
100
+ });
101
+ var require_dist = __commonJS({
102
+ "../../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/index.js"(exports, module) {
103
+ var __defProp2 = Object.defineProperty;
104
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
105
+ var __getOwnPropNames = Object.getOwnPropertyNames;
106
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
107
+ var __export2 = (target, all) => {
108
+ for (var name16 in all)
109
+ __defProp2(target, name16, { get: all[name16], enumerable: true });
110
+ };
111
+ var __copyProps = (to, from, except, desc) => {
112
+ if (from && typeof from === "object" || typeof from === "function") {
113
+ for (let key of __getOwnPropNames(from))
114
+ if (!__hasOwnProp.call(to, key) && key !== except)
115
+ __defProp2(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
116
+ }
117
+ return to;
118
+ };
119
+ var __toCommonJS = (mod) => __copyProps(__defProp2({}, "__esModule", { value: true }), mod);
120
+ var src_exports = {};
121
+ __export2(src_exports, {
122
+ getContext: () => import_get_context.getContext,
123
+ getVercelOidcToken: () => import_get_vercel_oidc_token.getVercelOidcToken,
124
+ getVercelOidcTokenSync: () => import_get_vercel_oidc_token.getVercelOidcTokenSync
125
+ });
126
+ module.exports = __toCommonJS(src_exports);
127
+ var import_get_vercel_oidc_token = require_get_vercel_oidc_token();
128
+ var import_get_context = require_get_context();
129
+ }
130
+ });
131
+ var import_oidc = __toESM(require_dist(), 1);
132
+ var import_oidc2 = __toESM(require_dist(), 1);
133
+ var marker = "vercel.ai.gateway.error";
134
+ var symbol = Symbol.for(marker);
135
+ var _a;
136
+ var _b;
137
+ var GatewayError = class _GatewayError extends (_b = Error, _a = symbol, _b) {
138
+ constructor({
139
+ message,
140
+ statusCode = 500,
141
+ cause
142
+ }) {
143
+ super(message);
144
+ this[_a] = true;
145
+ this.statusCode = statusCode;
146
+ this.cause = cause;
147
+ }
148
+ /**
149
+ * Checks if the given error is a Gateway Error.
150
+ * @param {unknown} error - The error to check.
151
+ * @returns {boolean} True if the error is a Gateway Error, false otherwise.
152
+ */
153
+ static isInstance(error) {
154
+ return _GatewayError.hasMarker(error);
155
+ }
156
+ static hasMarker(error) {
157
+ return typeof error === "object" && error !== null && symbol in error && error[symbol] === true;
158
+ }
159
+ };
160
+ var name = "GatewayAuthenticationError";
161
+ var marker2 = `vercel.ai.gateway.error.${name}`;
162
+ var symbol2 = Symbol.for(marker2);
163
+ var _a2;
164
+ var _b2;
165
+ var GatewayAuthenticationError = class _GatewayAuthenticationError extends (_b2 = GatewayError, _a2 = symbol2, _b2) {
166
+ constructor({
167
+ message = "Authentication failed",
168
+ statusCode = 401,
169
+ cause
170
+ } = {}) {
171
+ super({ message, statusCode, cause });
172
+ this[_a2] = true;
173
+ this.name = name;
174
+ this.type = "authentication_error";
175
+ }
176
+ static isInstance(error) {
177
+ return GatewayError.hasMarker(error) && symbol2 in error;
178
+ }
179
+ /**
180
+ * Creates a contextual error message when authentication fails
181
+ */
182
+ static createContextualError({
183
+ apiKeyProvided,
184
+ oidcTokenProvided,
185
+ message = "Authentication failed",
186
+ statusCode = 401,
187
+ cause
188
+ }) {
189
+ let contextualMessage;
190
+ if (apiKeyProvided) {
191
+ contextualMessage = `AI Gateway authentication failed: Invalid API key.
192
+
193
+ Create a new API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
194
+
195
+ Provide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.`;
196
+ } else if (oidcTokenProvided) {
197
+ contextualMessage = `AI Gateway authentication failed: Invalid OIDC token.
198
+
199
+ Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.
200
+
201
+ Alternatively, use an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys`;
202
+ } else {
203
+ contextualMessage = `AI Gateway authentication failed: No authentication provided.
204
+
205
+ Option 1 - API key:
206
+ Create an API key: https://vercel.com/d?to=%2F%5Bteam%5D%2F%7E%2Fai%2Fapi-keys
207
+ Provide via 'apiKey' option or 'AI_GATEWAY_API_KEY' environment variable.
208
+
209
+ Option 2 - OIDC token:
210
+ Run 'npx vercel link' to link your project, then 'vc env pull' to fetch the token.`;
211
+ }
212
+ return new _GatewayAuthenticationError({
213
+ message: contextualMessage,
214
+ statusCode,
215
+ cause
216
+ });
217
+ }
218
+ };
219
+ var name2 = "GatewayInvalidRequestError";
220
+ var marker3 = `vercel.ai.gateway.error.${name2}`;
221
+ var symbol3 = Symbol.for(marker3);
222
+ var _a3;
223
+ var _b3;
224
+ var GatewayInvalidRequestError = class extends (_b3 = GatewayError, _a3 = symbol3, _b3) {
225
+ constructor({
226
+ message = "Invalid request",
227
+ statusCode = 400,
228
+ cause
229
+ } = {}) {
230
+ super({ message, statusCode, cause });
231
+ this[_a3] = true;
232
+ this.name = name2;
233
+ this.type = "invalid_request_error";
234
+ }
235
+ static isInstance(error) {
236
+ return GatewayError.hasMarker(error) && symbol3 in error;
237
+ }
238
+ };
239
+ var name3 = "GatewayRateLimitError";
240
+ var marker4 = `vercel.ai.gateway.error.${name3}`;
241
+ var symbol4 = Symbol.for(marker4);
242
+ var _a4;
243
+ var _b4;
244
+ var GatewayRateLimitError = class extends (_b4 = GatewayError, _a4 = symbol4, _b4) {
245
+ constructor({
246
+ message = "Rate limit exceeded",
247
+ statusCode = 429,
248
+ cause
249
+ } = {}) {
250
+ super({ message, statusCode, cause });
251
+ this[_a4] = true;
252
+ this.name = name3;
253
+ this.type = "rate_limit_exceeded";
254
+ }
255
+ static isInstance(error) {
256
+ return GatewayError.hasMarker(error) && symbol4 in error;
257
+ }
258
+ };
259
+ var name4 = "GatewayModelNotFoundError";
260
+ var marker5 = `vercel.ai.gateway.error.${name4}`;
261
+ var symbol5 = Symbol.for(marker5);
262
+ var modelNotFoundParamSchema = lazyValidator(
263
+ () => zodSchema(
264
+ z.object({
265
+ modelId: z.string()
266
+ })
267
+ )
268
+ );
269
+ var _a5;
270
+ var _b5;
271
+ var GatewayModelNotFoundError = class extends (_b5 = GatewayError, _a5 = symbol5, _b5) {
272
+ constructor({
273
+ message = "Model not found",
274
+ statusCode = 404,
275
+ modelId,
276
+ cause
277
+ } = {}) {
278
+ super({ message, statusCode, cause });
279
+ this[_a5] = true;
280
+ this.name = name4;
281
+ this.type = "model_not_found";
282
+ this.modelId = modelId;
283
+ }
284
+ static isInstance(error) {
285
+ return GatewayError.hasMarker(error) && symbol5 in error;
286
+ }
287
+ };
288
+ var name5 = "GatewayInternalServerError";
289
+ var marker6 = `vercel.ai.gateway.error.${name5}`;
290
+ var symbol6 = Symbol.for(marker6);
291
+ var _a6;
292
+ var _b6;
293
+ var GatewayInternalServerError = class extends (_b6 = GatewayError, _a6 = symbol6, _b6) {
294
+ constructor({
295
+ message = "Internal server error",
296
+ statusCode = 500,
297
+ cause
298
+ } = {}) {
299
+ super({ message, statusCode, cause });
300
+ this[_a6] = true;
301
+ this.name = name5;
302
+ this.type = "internal_server_error";
303
+ }
304
+ static isInstance(error) {
305
+ return GatewayError.hasMarker(error) && symbol6 in error;
306
+ }
307
+ };
308
+ var name6 = "GatewayResponseError";
309
+ var marker7 = `vercel.ai.gateway.error.${name6}`;
310
+ var symbol7 = Symbol.for(marker7);
311
+ var _a7;
312
+ var _b7;
313
+ var GatewayResponseError = class extends (_b7 = GatewayError, _a7 = symbol7, _b7) {
314
+ constructor({
315
+ message = "Invalid response from Gateway",
316
+ statusCode = 502,
317
+ response,
318
+ validationError,
319
+ cause
320
+ } = {}) {
321
+ super({ message, statusCode, cause });
322
+ this[_a7] = true;
323
+ this.name = name6;
324
+ this.type = "response_error";
325
+ this.response = response;
326
+ this.validationError = validationError;
327
+ }
328
+ static isInstance(error) {
329
+ return GatewayError.hasMarker(error) && symbol7 in error;
330
+ }
331
+ };
332
+ async function createGatewayErrorFromResponse({
333
+ response,
334
+ statusCode,
335
+ defaultMessage = "Gateway request failed",
336
+ cause,
337
+ authMethod
338
+ }) {
339
+ const parseResult = await safeValidateTypes({
340
+ value: response,
341
+ schema: gatewayErrorResponseSchema
342
+ });
343
+ if (!parseResult.success) {
344
+ return new GatewayResponseError({
345
+ message: `Invalid error response format: ${defaultMessage}`,
346
+ statusCode,
347
+ response,
348
+ validationError: parseResult.error,
349
+ cause
350
+ });
351
+ }
352
+ const validatedResponse = parseResult.value;
353
+ const errorType = validatedResponse.error.type;
354
+ const message = validatedResponse.error.message;
355
+ switch (errorType) {
356
+ case "authentication_error":
357
+ return GatewayAuthenticationError.createContextualError({
358
+ apiKeyProvided: authMethod === "api-key",
359
+ oidcTokenProvided: authMethod === "oidc",
360
+ statusCode,
361
+ cause
362
+ });
363
+ case "invalid_request_error":
364
+ return new GatewayInvalidRequestError({ message, statusCode, cause });
365
+ case "rate_limit_exceeded":
366
+ return new GatewayRateLimitError({ message, statusCode, cause });
367
+ case "model_not_found": {
368
+ const modelResult = await safeValidateTypes({
369
+ value: validatedResponse.error.param,
370
+ schema: modelNotFoundParamSchema
371
+ });
372
+ return new GatewayModelNotFoundError({
373
+ message,
374
+ statusCode,
375
+ modelId: modelResult.success ? modelResult.value.modelId : void 0,
376
+ cause
377
+ });
378
+ }
379
+ case "internal_server_error":
380
+ return new GatewayInternalServerError({ message, statusCode, cause });
381
+ default:
382
+ return new GatewayInternalServerError({ message, statusCode, cause });
383
+ }
384
+ }
385
+ var gatewayErrorResponseSchema = lazyValidator(
386
+ () => zodSchema(
387
+ z.object({
388
+ error: z.object({
389
+ message: z.string(),
390
+ type: z.string().nullish(),
391
+ param: z.unknown().nullish(),
392
+ code: z.union([z.string(), z.number()]).nullish()
393
+ })
394
+ })
395
+ )
396
+ );
397
+ function asGatewayError(error, authMethod) {
398
+ var _a83;
399
+ if (GatewayError.isInstance(error)) {
400
+ return error;
401
+ }
402
+ if (APICallError.isInstance(error)) {
403
+ return createGatewayErrorFromResponse({
404
+ response: extractApiCallResponse(error),
405
+ statusCode: (_a83 = error.statusCode) != null ? _a83 : 500,
406
+ defaultMessage: "Gateway request failed",
407
+ cause: error,
408
+ authMethod
409
+ });
410
+ }
411
+ return createGatewayErrorFromResponse({
412
+ response: {},
413
+ statusCode: 500,
414
+ defaultMessage: error instanceof Error ? `Gateway request failed: ${error.message}` : "Unknown Gateway error",
415
+ cause: error,
416
+ authMethod
417
+ });
418
+ }
419
+ function extractApiCallResponse(error) {
420
+ if (error.data !== void 0) {
421
+ return error.data;
422
+ }
423
+ if (error.responseBody != null) {
424
+ try {
425
+ return JSON.parse(error.responseBody);
426
+ } catch (e) {
427
+ return error.responseBody;
428
+ }
429
+ }
430
+ return {};
431
+ }
432
+ var GATEWAY_AUTH_METHOD_HEADER = "ai-gateway-auth-method";
433
+ async function parseAuthMethod(headers) {
434
+ const result = await safeValidateTypes({
435
+ value: headers[GATEWAY_AUTH_METHOD_HEADER],
436
+ schema: gatewayAuthMethodSchema
437
+ });
438
+ return result.success ? result.value : void 0;
439
+ }
440
+ var gatewayAuthMethodSchema = lazyValidator(
441
+ () => zodSchema(z.union([z.literal("api-key"), z.literal("oidc")]))
442
+ );
443
+ var GatewayFetchMetadata = class {
444
+ constructor(config) {
445
+ this.config = config;
446
+ }
447
+ async getAvailableModels() {
448
+ try {
449
+ const { value } = await getFromApi({
450
+ url: `${this.config.baseURL}/config`,
451
+ headers: await resolve(this.config.headers()),
452
+ successfulResponseHandler: createJsonResponseHandler(
453
+ gatewayAvailableModelsResponseSchema
454
+ ),
455
+ failedResponseHandler: createJsonErrorResponseHandler({
456
+ errorSchema: z.any(),
457
+ errorToMessage: (data) => data
458
+ }),
459
+ fetch: this.config.fetch
460
+ });
461
+ return value;
462
+ } catch (error) {
463
+ throw await asGatewayError(error);
464
+ }
465
+ }
466
+ async getCredits() {
467
+ try {
468
+ const baseUrl = new URL(this.config.baseURL);
469
+ const { value } = await getFromApi({
470
+ url: `${baseUrl.origin}/v1/credits`,
471
+ headers: await resolve(this.config.headers()),
472
+ successfulResponseHandler: createJsonResponseHandler(
473
+ gatewayCreditsResponseSchema
474
+ ),
475
+ failedResponseHandler: createJsonErrorResponseHandler({
476
+ errorSchema: z.any(),
477
+ errorToMessage: (data) => data
478
+ }),
479
+ fetch: this.config.fetch
480
+ });
481
+ return value;
482
+ } catch (error) {
483
+ throw await asGatewayError(error);
484
+ }
485
+ }
486
+ };
487
+ var gatewayAvailableModelsResponseSchema = lazyValidator(
488
+ () => zodSchema(
489
+ z.object({
490
+ models: z.array(
491
+ z.object({
492
+ id: z.string(),
493
+ name: z.string(),
494
+ description: z.string().nullish(),
495
+ pricing: z.object({
496
+ input: z.string(),
497
+ output: z.string(),
498
+ input_cache_read: z.string().nullish(),
499
+ input_cache_write: z.string().nullish()
500
+ }).transform(
501
+ ({ input, output, input_cache_read, input_cache_write }) => ({
502
+ input,
503
+ output,
504
+ ...input_cache_read ? { cachedInputTokens: input_cache_read } : {},
505
+ ...input_cache_write ? { cacheCreationInputTokens: input_cache_write } : {}
506
+ })
507
+ ).nullish(),
508
+ specification: z.object({
509
+ specificationVersion: z.literal("v2"),
510
+ provider: z.string(),
511
+ modelId: z.string()
512
+ }),
513
+ modelType: z.enum(["language", "embedding", "image"]).nullish()
514
+ })
515
+ )
516
+ })
517
+ )
518
+ );
519
+ var gatewayCreditsResponseSchema = lazyValidator(
520
+ () => zodSchema(
521
+ z.object({
522
+ balance: z.string(),
523
+ total_used: z.string()
524
+ }).transform(({ balance, total_used }) => ({
525
+ balance,
526
+ totalUsed: total_used
527
+ }))
528
+ )
529
+ );
530
+ var GatewayLanguageModel = class {
531
+ constructor(modelId, config) {
532
+ this.modelId = modelId;
533
+ this.config = config;
534
+ this.specificationVersion = "v2";
535
+ this.supportedUrls = { "*/*": [/.*/] };
536
+ }
537
+ get provider() {
538
+ return this.config.provider;
539
+ }
540
+ async getArgs(options) {
541
+ const { abortSignal: _abortSignal, ...optionsWithoutSignal } = options;
542
+ return {
543
+ args: this.maybeEncodeFileParts(optionsWithoutSignal),
544
+ warnings: []
545
+ };
546
+ }
547
+ async doGenerate(options) {
548
+ const { args, warnings } = await this.getArgs(options);
549
+ const { abortSignal } = options;
550
+ const resolvedHeaders = await resolve(this.config.headers());
551
+ try {
552
+ const {
553
+ responseHeaders,
554
+ value: responseBody,
555
+ rawValue: rawResponse
556
+ } = await postJsonToApi({
557
+ url: this.getUrl(),
558
+ headers: combineHeaders(
559
+ resolvedHeaders,
560
+ options.headers,
561
+ this.getModelConfigHeaders(this.modelId, false),
562
+ await resolve(this.config.o11yHeaders)
563
+ ),
564
+ body: args,
565
+ successfulResponseHandler: createJsonResponseHandler(z.any()),
566
+ failedResponseHandler: createJsonErrorResponseHandler({
567
+ errorSchema: z.any(),
568
+ errorToMessage: (data) => data
569
+ }),
570
+ ...abortSignal && { abortSignal },
571
+ fetch: this.config.fetch
572
+ });
573
+ return {
574
+ ...responseBody,
575
+ request: { body: args },
576
+ response: { headers: responseHeaders, body: rawResponse },
577
+ warnings
578
+ };
579
+ } catch (error) {
580
+ throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));
581
+ }
582
+ }
583
+ async doStream(options) {
584
+ const { args, warnings } = await this.getArgs(options);
585
+ const { abortSignal } = options;
586
+ const resolvedHeaders = await resolve(this.config.headers());
587
+ try {
588
+ const { value: response, responseHeaders } = await postJsonToApi({
589
+ url: this.getUrl(),
590
+ headers: combineHeaders(
591
+ resolvedHeaders,
592
+ options.headers,
593
+ this.getModelConfigHeaders(this.modelId, true),
594
+ await resolve(this.config.o11yHeaders)
595
+ ),
596
+ body: args,
597
+ successfulResponseHandler: createEventSourceResponseHandler(z.any()),
598
+ failedResponseHandler: createJsonErrorResponseHandler({
599
+ errorSchema: z.any(),
600
+ errorToMessage: (data) => data
601
+ }),
602
+ ...abortSignal && { abortSignal },
603
+ fetch: this.config.fetch
604
+ });
605
+ return {
606
+ stream: response.pipeThrough(
607
+ new TransformStream({
608
+ start(controller) {
609
+ if (warnings.length > 0) {
610
+ controller.enqueue({ type: "stream-start", warnings });
611
+ }
612
+ },
613
+ transform(chunk, controller) {
614
+ if (chunk.success) {
615
+ const streamPart = chunk.value;
616
+ if (streamPart.type === "raw" && !options.includeRawChunks) {
617
+ return;
618
+ }
619
+ if (streamPart.type === "response-metadata" && streamPart.timestamp && typeof streamPart.timestamp === "string") {
620
+ streamPart.timestamp = new Date(streamPart.timestamp);
621
+ }
622
+ controller.enqueue(streamPart);
623
+ } else {
624
+ controller.error(
625
+ chunk.error
626
+ );
627
+ }
628
+ }
629
+ })
630
+ ),
631
+ request: { body: args },
632
+ response: { headers: responseHeaders }
633
+ };
634
+ } catch (error) {
635
+ throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));
636
+ }
637
+ }
638
+ isFilePart(part) {
639
+ return part && typeof part === "object" && "type" in part && part.type === "file";
640
+ }
641
+ /**
642
+ * Encodes file parts in the prompt to base64. Mutates the passed options
643
+ * instance directly to avoid copying the file data.
644
+ * @param options - The options to encode.
645
+ * @returns The options with the file parts encoded.
646
+ */
647
+ maybeEncodeFileParts(options) {
648
+ for (const message of options.prompt) {
649
+ for (const part of message.content) {
650
+ if (this.isFilePart(part)) {
651
+ const filePart = part;
652
+ if (filePart.data instanceof Uint8Array) {
653
+ const buffer = Uint8Array.from(filePart.data);
654
+ const base64Data = Buffer.from(buffer).toString("base64");
655
+ filePart.data = new URL(
656
+ `data:${filePart.mediaType || "application/octet-stream"};base64,${base64Data}`
657
+ );
658
+ }
659
+ }
660
+ }
661
+ }
662
+ return options;
663
+ }
664
+ getUrl() {
665
+ return `${this.config.baseURL}/language-model`;
666
+ }
667
+ getModelConfigHeaders(modelId, streaming) {
668
+ return {
669
+ "ai-language-model-specification-version": "2",
670
+ "ai-language-model-id": modelId,
671
+ "ai-language-model-streaming": String(streaming)
672
+ };
673
+ }
674
+ };
675
+ var GatewayEmbeddingModel = class {
676
+ constructor(modelId, config) {
677
+ this.modelId = modelId;
678
+ this.config = config;
679
+ this.specificationVersion = "v2";
680
+ this.maxEmbeddingsPerCall = 2048;
681
+ this.supportsParallelCalls = true;
682
+ }
683
+ get provider() {
684
+ return this.config.provider;
685
+ }
686
+ async doEmbed({
687
+ values,
688
+ headers,
689
+ abortSignal,
690
+ providerOptions
691
+ }) {
692
+ var _a83;
693
+ const resolvedHeaders = await resolve(this.config.headers());
694
+ try {
695
+ const {
696
+ responseHeaders,
697
+ value: responseBody,
698
+ rawValue
699
+ } = await postJsonToApi({
700
+ url: this.getUrl(),
701
+ headers: combineHeaders(
702
+ resolvedHeaders,
703
+ headers != null ? headers : {},
704
+ this.getModelConfigHeaders(),
705
+ await resolve(this.config.o11yHeaders)
706
+ ),
707
+ body: {
708
+ input: values.length === 1 ? values[0] : values,
709
+ ...providerOptions ? { providerOptions } : {}
710
+ },
711
+ successfulResponseHandler: createJsonResponseHandler(
712
+ gatewayEmbeddingResponseSchema
713
+ ),
714
+ failedResponseHandler: createJsonErrorResponseHandler({
715
+ errorSchema: z.any(),
716
+ errorToMessage: (data) => data
717
+ }),
718
+ ...abortSignal && { abortSignal },
719
+ fetch: this.config.fetch
720
+ });
721
+ return {
722
+ embeddings: responseBody.embeddings,
723
+ usage: (_a83 = responseBody.usage) != null ? _a83 : void 0,
724
+ providerMetadata: responseBody.providerMetadata,
725
+ response: { headers: responseHeaders, body: rawValue }
726
+ };
727
+ } catch (error) {
728
+ throw await asGatewayError(error, await parseAuthMethod(resolvedHeaders));
729
+ }
730
+ }
731
+ getUrl() {
732
+ return `${this.config.baseURL}/embedding-model`;
733
+ }
734
+ getModelConfigHeaders() {
735
+ return {
736
+ "ai-embedding-model-specification-version": "2",
737
+ "ai-model-id": this.modelId
738
+ };
739
+ }
740
+ };
741
+ var gatewayEmbeddingResponseSchema = lazyValidator(
742
+ () => zodSchema(
743
+ z.object({
744
+ embeddings: z.array(z.array(z.number())),
745
+ usage: z.object({ tokens: z.number() }).nullish(),
746
+ providerMetadata: z.record(z.string(), z.record(z.string(), z.unknown())).optional()
747
+ })
748
+ )
749
+ );
750
+ var GatewayImageModel = class {
751
+ constructor(modelId, config) {
752
+ this.modelId = modelId;
753
+ this.config = config;
754
+ this.specificationVersion = "v2";
755
+ this.maxImagesPerCall = Number.MAX_SAFE_INTEGER;
756
+ }
757
+ get provider() {
758
+ return this.config.provider;
759
+ }
760
+ async doGenerate({
761
+ prompt,
762
+ n,
763
+ size,
764
+ aspectRatio,
765
+ seed,
766
+ providerOptions,
767
+ headers,
768
+ abortSignal
769
+ }) {
770
+ var _a83;
771
+ const resolvedHeaders = await resolve(this.config.headers());
772
+ try {
773
+ const {
774
+ responseHeaders,
775
+ value: responseBody
776
+ } = await postJsonToApi({
777
+ url: this.getUrl(),
778
+ headers: combineHeaders(
779
+ resolvedHeaders,
780
+ headers != null ? headers : {},
781
+ this.getModelConfigHeaders(),
782
+ await resolve(this.config.o11yHeaders)
783
+ ),
784
+ body: {
785
+ prompt,
786
+ n,
787
+ ...size && { size },
788
+ ...aspectRatio && { aspectRatio },
789
+ ...seed && { seed },
790
+ ...providerOptions && { providerOptions }
791
+ },
792
+ successfulResponseHandler: createJsonResponseHandler(
793
+ gatewayImageResponseSchema
794
+ ),
795
+ failedResponseHandler: createJsonErrorResponseHandler({
796
+ errorSchema: z.any(),
797
+ errorToMessage: (data) => data
798
+ }),
799
+ ...abortSignal && { abortSignal },
800
+ fetch: this.config.fetch
801
+ });
802
+ return {
803
+ images: responseBody.images,
804
+ // Always base64 strings from server
805
+ warnings: (_a83 = responseBody.warnings) != null ? _a83 : [],
806
+ providerMetadata: responseBody.providerMetadata,
807
+ response: {
808
+ timestamp: /* @__PURE__ */ new Date(),
809
+ modelId: this.modelId,
810
+ headers: responseHeaders
811
+ }
812
+ };
813
+ } catch (error) {
814
+ throw asGatewayError(error, await parseAuthMethod(resolvedHeaders));
815
+ }
816
+ }
817
+ getUrl() {
818
+ return `${this.config.baseURL}/image-model`;
819
+ }
820
+ getModelConfigHeaders() {
821
+ return {
822
+ "ai-image-model-specification-version": "2",
823
+ "ai-model-id": this.modelId
824
+ };
825
+ }
826
+ };
827
+ var providerMetadataEntrySchema = z.object({
828
+ images: z.array(z.unknown()).optional()
829
+ }).catchall(z.unknown());
830
+ var gatewayImageResponseSchema = z.object({
831
+ images: z.array(z.string()),
832
+ // Always base64 strings over the wire
833
+ warnings: z.array(
834
+ z.object({
835
+ type: z.literal("other"),
836
+ message: z.string()
837
+ })
838
+ ).optional(),
839
+ providerMetadata: z.record(z.string(), providerMetadataEntrySchema).optional()
840
+ });
841
+ async function getVercelRequestId() {
842
+ var _a83;
843
+ return (_a83 = (0, import_oidc.getContext)().headers) == null ? void 0 : _a83["x-vercel-id"];
844
+ }
845
+ var VERSION = "2.0.15";
846
+ var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";
847
+ function createGatewayProvider(options = {}) {
848
+ var _a83, _b8;
849
+ let pendingMetadata = null;
850
+ let metadataCache = null;
851
+ const cacheRefreshMillis = (_a83 = options.metadataCacheRefreshMillis) != null ? _a83 : 1e3 * 60 * 5;
852
+ let lastFetchTime = 0;
853
+ const baseURL = (_b8 = withoutTrailingSlash(options.baseURL)) != null ? _b8 : "https://ai-gateway.vercel.sh/v1/ai";
854
+ const getHeaders = async () => {
855
+ const auth = await getGatewayAuthToken(options);
856
+ if (auth) {
857
+ return withUserAgentSuffix(
858
+ {
859
+ Authorization: `Bearer ${auth.token}`,
860
+ "ai-gateway-protocol-version": AI_GATEWAY_PROTOCOL_VERSION,
861
+ [GATEWAY_AUTH_METHOD_HEADER]: auth.authMethod,
862
+ ...options.headers
863
+ },
864
+ `ai-sdk/gateway/${VERSION}`
865
+ );
866
+ }
867
+ throw GatewayAuthenticationError.createContextualError({
868
+ apiKeyProvided: false,
869
+ oidcTokenProvided: false,
870
+ statusCode: 401
871
+ });
872
+ };
873
+ const createO11yHeaders = () => {
874
+ const deploymentId = loadOptionalSetting({
875
+ settingValue: void 0,
876
+ environmentVariableName: "VERCEL_DEPLOYMENT_ID"
877
+ });
878
+ const environment = loadOptionalSetting({
879
+ settingValue: void 0,
880
+ environmentVariableName: "VERCEL_ENV"
881
+ });
882
+ const region = loadOptionalSetting({
883
+ settingValue: void 0,
884
+ environmentVariableName: "VERCEL_REGION"
885
+ });
886
+ return async () => {
887
+ const requestId = await getVercelRequestId();
888
+ return {
889
+ ...deploymentId && { "ai-o11y-deployment-id": deploymentId },
890
+ ...environment && { "ai-o11y-environment": environment },
891
+ ...region && { "ai-o11y-region": region },
892
+ ...requestId && { "ai-o11y-request-id": requestId }
893
+ };
894
+ };
895
+ };
896
+ const createLanguageModel = (modelId) => {
897
+ return new GatewayLanguageModel(modelId, {
898
+ provider: "gateway",
899
+ baseURL,
900
+ headers: getHeaders,
901
+ fetch: options.fetch,
902
+ o11yHeaders: createO11yHeaders()
903
+ });
904
+ };
905
+ const getAvailableModels = async () => {
906
+ var _a92, _b9, _c;
907
+ const now2 = (_c = (_b9 = (_a92 = options._internal) == null ? void 0 : _a92.currentDate) == null ? void 0 : _b9.call(_a92).getTime()) != null ? _c : Date.now();
908
+ if (!pendingMetadata || now2 - lastFetchTime > cacheRefreshMillis) {
909
+ lastFetchTime = now2;
910
+ pendingMetadata = new GatewayFetchMetadata({
911
+ baseURL,
912
+ headers: getHeaders,
913
+ fetch: options.fetch
914
+ }).getAvailableModels().then((metadata) => {
915
+ metadataCache = metadata;
916
+ return metadata;
917
+ }).catch(async (error) => {
918
+ throw await asGatewayError(
919
+ error,
920
+ await parseAuthMethod(await getHeaders())
921
+ );
922
+ });
923
+ }
924
+ return metadataCache ? Promise.resolve(metadataCache) : pendingMetadata;
925
+ };
926
+ const getCredits = async () => {
927
+ return new GatewayFetchMetadata({
928
+ baseURL,
929
+ headers: getHeaders,
930
+ fetch: options.fetch
931
+ }).getCredits().catch(async (error) => {
932
+ throw await asGatewayError(
933
+ error,
934
+ await parseAuthMethod(await getHeaders())
935
+ );
936
+ });
937
+ };
938
+ const provider = function(modelId) {
939
+ if (new.target) {
940
+ throw new Error(
941
+ "The Gateway Provider model function cannot be called with the new keyword."
942
+ );
943
+ }
944
+ return createLanguageModel(modelId);
945
+ };
946
+ provider.getAvailableModels = getAvailableModels;
947
+ provider.getCredits = getCredits;
948
+ provider.imageModel = (modelId) => {
949
+ return new GatewayImageModel(modelId, {
950
+ provider: "gateway",
951
+ baseURL,
952
+ headers: getHeaders,
953
+ fetch: options.fetch,
954
+ o11yHeaders: createO11yHeaders()
955
+ });
956
+ };
957
+ provider.languageModel = createLanguageModel;
958
+ provider.textEmbeddingModel = (modelId) => {
959
+ return new GatewayEmbeddingModel(modelId, {
960
+ provider: "gateway",
961
+ baseURL,
962
+ headers: getHeaders,
963
+ fetch: options.fetch,
964
+ o11yHeaders: createO11yHeaders()
965
+ });
966
+ };
967
+ return provider;
968
+ }
969
+ var gateway = createGatewayProvider();
970
+ async function getGatewayAuthToken(options) {
971
+ const apiKey = loadOptionalSetting({
972
+ settingValue: options.apiKey,
973
+ environmentVariableName: "AI_GATEWAY_API_KEY"
974
+ });
975
+ if (apiKey) {
976
+ return {
977
+ token: apiKey,
978
+ authMethod: "api-key"
979
+ };
980
+ }
981
+ try {
982
+ const oidcToken = await (0, import_oidc2.getVercelOidcToken)();
983
+ return {
984
+ token: oidcToken,
985
+ authMethod: "oidc"
986
+ };
987
+ } catch (e) {
988
+ return null;
989
+ }
990
+ }
991
+ var _globalThis = typeof globalThis === "object" ? globalThis : global;
992
+ var VERSION2 = "1.9.0";
993
+ var re = /^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;
994
+ function _makeCompatibilityCheck(ownVersion) {
995
+ var acceptedVersions = /* @__PURE__ */ new Set([ownVersion]);
996
+ var rejectedVersions = /* @__PURE__ */ new Set();
997
+ var myVersionMatch = ownVersion.match(re);
998
+ if (!myVersionMatch) {
999
+ return function() {
1000
+ return false;
1001
+ };
1002
+ }
1003
+ var ownVersionParsed = {
1004
+ major: +myVersionMatch[1],
1005
+ minor: +myVersionMatch[2],
1006
+ patch: +myVersionMatch[3],
1007
+ prerelease: myVersionMatch[4]
1008
+ };
1009
+ if (ownVersionParsed.prerelease != null) {
1010
+ return function isExactmatch(globalVersion) {
1011
+ return globalVersion === ownVersion;
1012
+ };
1013
+ }
1014
+ function _reject(v) {
1015
+ rejectedVersions.add(v);
1016
+ return false;
1017
+ }
1018
+ function _accept(v) {
1019
+ acceptedVersions.add(v);
1020
+ return true;
1021
+ }
1022
+ return function isCompatible2(globalVersion) {
1023
+ if (acceptedVersions.has(globalVersion)) {
1024
+ return true;
1025
+ }
1026
+ if (rejectedVersions.has(globalVersion)) {
1027
+ return false;
1028
+ }
1029
+ var globalVersionMatch = globalVersion.match(re);
1030
+ if (!globalVersionMatch) {
1031
+ return _reject(globalVersion);
1032
+ }
1033
+ var globalVersionParsed = {
1034
+ major: +globalVersionMatch[1],
1035
+ minor: +globalVersionMatch[2],
1036
+ patch: +globalVersionMatch[3],
1037
+ prerelease: globalVersionMatch[4]
1038
+ };
1039
+ if (globalVersionParsed.prerelease != null) {
1040
+ return _reject(globalVersion);
1041
+ }
1042
+ if (ownVersionParsed.major !== globalVersionParsed.major) {
1043
+ return _reject(globalVersion);
1044
+ }
1045
+ if (ownVersionParsed.major === 0) {
1046
+ if (ownVersionParsed.minor === globalVersionParsed.minor && ownVersionParsed.patch <= globalVersionParsed.patch) {
1047
+ return _accept(globalVersion);
1048
+ }
1049
+ return _reject(globalVersion);
1050
+ }
1051
+ if (ownVersionParsed.minor <= globalVersionParsed.minor) {
1052
+ return _accept(globalVersion);
1053
+ }
1054
+ return _reject(globalVersion);
1055
+ };
1056
+ }
1057
+ var isCompatible = _makeCompatibilityCheck(VERSION2);
1058
+ var major = VERSION2.split(".")[0];
1059
+ var GLOBAL_OPENTELEMETRY_API_KEY = Symbol.for("opentelemetry.js.api." + major);
1060
+ var _global = _globalThis;
1061
+ function registerGlobal(type, instance, diag, allowOverride) {
1062
+ var _a16;
1063
+ if (allowOverride === void 0) {
1064
+ allowOverride = false;
1065
+ }
1066
+ var api = _global[GLOBAL_OPENTELEMETRY_API_KEY] = (_a16 = _global[GLOBAL_OPENTELEMETRY_API_KEY]) !== null && _a16 !== void 0 ? _a16 : {
1067
+ version: VERSION2
1068
+ };
1069
+ if (!allowOverride && api[type]) {
1070
+ var err = new Error("@opentelemetry/api: Attempted duplicate registration of API: " + type);
1071
+ diag.error(err.stack || err.message);
1072
+ return false;
1073
+ }
1074
+ if (api.version !== VERSION2) {
1075
+ var err = new Error("@opentelemetry/api: Registration of version v" + api.version + " for " + type + " does not match previously registered API v" + VERSION2);
1076
+ diag.error(err.stack || err.message);
1077
+ return false;
1078
+ }
1079
+ api[type] = instance;
1080
+ diag.debug("@opentelemetry/api: Registered a global for " + type + " v" + VERSION2 + ".");
1081
+ return true;
1082
+ }
1083
+ function getGlobal(type) {
1084
+ var _a16, _b8;
1085
+ var globalVersion = (_a16 = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _a16 === void 0 ? void 0 : _a16.version;
1086
+ if (!globalVersion || !isCompatible(globalVersion)) {
1087
+ return;
1088
+ }
1089
+ return (_b8 = _global[GLOBAL_OPENTELEMETRY_API_KEY]) === null || _b8 === void 0 ? void 0 : _b8[type];
1090
+ }
1091
+ function unregisterGlobal(type, diag) {
1092
+ diag.debug("@opentelemetry/api: Unregistering a global for " + type + " v" + VERSION2 + ".");
1093
+ var api = _global[GLOBAL_OPENTELEMETRY_API_KEY];
1094
+ if (api) {
1095
+ delete api[type];
1096
+ }
1097
+ }
1098
+ var __read = function(o, n) {
1099
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
1100
+ if (!m) return o;
1101
+ var i = m.call(o), r, ar = [], e;
1102
+ try {
1103
+ while (!(r = i.next()).done) ar.push(r.value);
1104
+ } catch (error) {
1105
+ e = { error };
1106
+ } finally {
1107
+ try {
1108
+ if (r && !r.done && (m = i["return"])) m.call(i);
1109
+ } finally {
1110
+ if (e) throw e.error;
1111
+ }
1112
+ }
1113
+ return ar;
1114
+ };
1115
+ var __spreadArray = function(to, from, pack) {
1116
+ if (arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1117
+ if (ar || !(i in from)) {
1118
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1119
+ ar[i] = from[i];
1120
+ }
1121
+ }
1122
+ return to.concat(ar || Array.prototype.slice.call(from));
1123
+ };
1124
+ var DiagComponentLogger = (
1125
+ /** @class */
1126
+ (function() {
1127
+ function DiagComponentLogger2(props) {
1128
+ this._namespace = props.namespace || "DiagComponentLogger";
1129
+ }
1130
+ DiagComponentLogger2.prototype.debug = function() {
1131
+ var args = [];
1132
+ for (var _i = 0; _i < arguments.length; _i++) {
1133
+ args[_i] = arguments[_i];
1134
+ }
1135
+ return logProxy("debug", this._namespace, args);
1136
+ };
1137
+ DiagComponentLogger2.prototype.error = function() {
1138
+ var args = [];
1139
+ for (var _i = 0; _i < arguments.length; _i++) {
1140
+ args[_i] = arguments[_i];
1141
+ }
1142
+ return logProxy("error", this._namespace, args);
1143
+ };
1144
+ DiagComponentLogger2.prototype.info = function() {
1145
+ var args = [];
1146
+ for (var _i = 0; _i < arguments.length; _i++) {
1147
+ args[_i] = arguments[_i];
1148
+ }
1149
+ return logProxy("info", this._namespace, args);
1150
+ };
1151
+ DiagComponentLogger2.prototype.warn = function() {
1152
+ var args = [];
1153
+ for (var _i = 0; _i < arguments.length; _i++) {
1154
+ args[_i] = arguments[_i];
1155
+ }
1156
+ return logProxy("warn", this._namespace, args);
1157
+ };
1158
+ DiagComponentLogger2.prototype.verbose = function() {
1159
+ var args = [];
1160
+ for (var _i = 0; _i < arguments.length; _i++) {
1161
+ args[_i] = arguments[_i];
1162
+ }
1163
+ return logProxy("verbose", this._namespace, args);
1164
+ };
1165
+ return DiagComponentLogger2;
1166
+ })()
1167
+ );
1168
+ function logProxy(funcName, namespace, args) {
1169
+ var logger = getGlobal("diag");
1170
+ if (!logger) {
1171
+ return;
1172
+ }
1173
+ args.unshift(namespace);
1174
+ return logger[funcName].apply(logger, __spreadArray([], __read(args), false));
1175
+ }
1176
+ var DiagLogLevel;
1177
+ (function(DiagLogLevel2) {
1178
+ DiagLogLevel2[DiagLogLevel2["NONE"] = 0] = "NONE";
1179
+ DiagLogLevel2[DiagLogLevel2["ERROR"] = 30] = "ERROR";
1180
+ DiagLogLevel2[DiagLogLevel2["WARN"] = 50] = "WARN";
1181
+ DiagLogLevel2[DiagLogLevel2["INFO"] = 60] = "INFO";
1182
+ DiagLogLevel2[DiagLogLevel2["DEBUG"] = 70] = "DEBUG";
1183
+ DiagLogLevel2[DiagLogLevel2["VERBOSE"] = 80] = "VERBOSE";
1184
+ DiagLogLevel2[DiagLogLevel2["ALL"] = 9999] = "ALL";
1185
+ })(DiagLogLevel || (DiagLogLevel = {}));
1186
+ function createLogLevelDiagLogger(maxLevel, logger) {
1187
+ if (maxLevel < DiagLogLevel.NONE) {
1188
+ maxLevel = DiagLogLevel.NONE;
1189
+ } else if (maxLevel > DiagLogLevel.ALL) {
1190
+ maxLevel = DiagLogLevel.ALL;
1191
+ }
1192
+ logger = logger || {};
1193
+ function _filterFunc(funcName, theLevel) {
1194
+ var theFunc = logger[funcName];
1195
+ if (typeof theFunc === "function" && maxLevel >= theLevel) {
1196
+ return theFunc.bind(logger);
1197
+ }
1198
+ return function() {
1199
+ };
1200
+ }
1201
+ return {
1202
+ error: _filterFunc("error", DiagLogLevel.ERROR),
1203
+ warn: _filterFunc("warn", DiagLogLevel.WARN),
1204
+ info: _filterFunc("info", DiagLogLevel.INFO),
1205
+ debug: _filterFunc("debug", DiagLogLevel.DEBUG),
1206
+ verbose: _filterFunc("verbose", DiagLogLevel.VERBOSE)
1207
+ };
1208
+ }
1209
+ var __read2 = function(o, n) {
1210
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
1211
+ if (!m) return o;
1212
+ var i = m.call(o), r, ar = [], e;
1213
+ try {
1214
+ while (!(r = i.next()).done) ar.push(r.value);
1215
+ } catch (error) {
1216
+ e = { error };
1217
+ } finally {
1218
+ try {
1219
+ if (r && !r.done && (m = i["return"])) m.call(i);
1220
+ } finally {
1221
+ if (e) throw e.error;
1222
+ }
1223
+ }
1224
+ return ar;
1225
+ };
1226
+ var __spreadArray2 = function(to, from, pack) {
1227
+ if (arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1228
+ if (ar || !(i in from)) {
1229
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1230
+ ar[i] = from[i];
1231
+ }
1232
+ }
1233
+ return to.concat(ar || Array.prototype.slice.call(from));
1234
+ };
1235
+ var API_NAME = "diag";
1236
+ var DiagAPI = (
1237
+ /** @class */
1238
+ (function() {
1239
+ function DiagAPI2() {
1240
+ function _logProxy(funcName) {
1241
+ return function() {
1242
+ var args = [];
1243
+ for (var _i = 0; _i < arguments.length; _i++) {
1244
+ args[_i] = arguments[_i];
1245
+ }
1246
+ var logger = getGlobal("diag");
1247
+ if (!logger)
1248
+ return;
1249
+ return logger[funcName].apply(logger, __spreadArray2([], __read2(args), false));
1250
+ };
1251
+ }
1252
+ var self = this;
1253
+ var setLogger = function(logger, optionsOrLogLevel) {
1254
+ var _a16, _b8, _c;
1255
+ if (optionsOrLogLevel === void 0) {
1256
+ optionsOrLogLevel = { logLevel: DiagLogLevel.INFO };
1257
+ }
1258
+ if (logger === self) {
1259
+ var err = new Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");
1260
+ self.error((_a16 = err.stack) !== null && _a16 !== void 0 ? _a16 : err.message);
1261
+ return false;
1262
+ }
1263
+ if (typeof optionsOrLogLevel === "number") {
1264
+ optionsOrLogLevel = {
1265
+ logLevel: optionsOrLogLevel
1266
+ };
1267
+ }
1268
+ var oldLogger = getGlobal("diag");
1269
+ var newLogger = createLogLevelDiagLogger((_b8 = optionsOrLogLevel.logLevel) !== null && _b8 !== void 0 ? _b8 : DiagLogLevel.INFO, logger);
1270
+ if (oldLogger && !optionsOrLogLevel.suppressOverrideMessage) {
1271
+ var stack = (_c = new Error().stack) !== null && _c !== void 0 ? _c : "<failed to generate stacktrace>";
1272
+ oldLogger.warn("Current logger will be overwritten from " + stack);
1273
+ newLogger.warn("Current logger will overwrite one already registered from " + stack);
1274
+ }
1275
+ return registerGlobal("diag", newLogger, self, true);
1276
+ };
1277
+ self.setLogger = setLogger;
1278
+ self.disable = function() {
1279
+ unregisterGlobal(API_NAME, self);
1280
+ };
1281
+ self.createComponentLogger = function(options) {
1282
+ return new DiagComponentLogger(options);
1283
+ };
1284
+ self.verbose = _logProxy("verbose");
1285
+ self.debug = _logProxy("debug");
1286
+ self.info = _logProxy("info");
1287
+ self.warn = _logProxy("warn");
1288
+ self.error = _logProxy("error");
1289
+ }
1290
+ DiagAPI2.instance = function() {
1291
+ if (!this._instance) {
1292
+ this._instance = new DiagAPI2();
1293
+ }
1294
+ return this._instance;
1295
+ };
1296
+ return DiagAPI2;
1297
+ })()
1298
+ );
1299
+ function createContextKey(description) {
1300
+ return Symbol.for(description);
1301
+ }
1302
+ var BaseContext = (
1303
+ /** @class */
1304
+ /* @__PURE__ */ (function() {
1305
+ function BaseContext2(parentContext) {
1306
+ var self = this;
1307
+ self._currentContext = parentContext ? new Map(parentContext) : /* @__PURE__ */ new Map();
1308
+ self.getValue = function(key) {
1309
+ return self._currentContext.get(key);
1310
+ };
1311
+ self.setValue = function(key, value) {
1312
+ var context = new BaseContext2(self._currentContext);
1313
+ context._currentContext.set(key, value);
1314
+ return context;
1315
+ };
1316
+ self.deleteValue = function(key) {
1317
+ var context = new BaseContext2(self._currentContext);
1318
+ context._currentContext.delete(key);
1319
+ return context;
1320
+ };
1321
+ }
1322
+ return BaseContext2;
1323
+ })()
1324
+ );
1325
+ var ROOT_CONTEXT = new BaseContext();
1326
+ var __read3 = function(o, n) {
1327
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
1328
+ if (!m) return o;
1329
+ var i = m.call(o), r, ar = [], e;
1330
+ try {
1331
+ while (!(r = i.next()).done) ar.push(r.value);
1332
+ } catch (error) {
1333
+ e = { error };
1334
+ } finally {
1335
+ try {
1336
+ if (r && !r.done && (m = i["return"])) m.call(i);
1337
+ } finally {
1338
+ if (e) throw e.error;
1339
+ }
1340
+ }
1341
+ return ar;
1342
+ };
1343
+ var __spreadArray3 = function(to, from, pack) {
1344
+ if (arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1345
+ if (ar || !(i in from)) {
1346
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1347
+ ar[i] = from[i];
1348
+ }
1349
+ }
1350
+ return to.concat(ar || Array.prototype.slice.call(from));
1351
+ };
1352
+ var NoopContextManager = (
1353
+ /** @class */
1354
+ (function() {
1355
+ function NoopContextManager2() {
1356
+ }
1357
+ NoopContextManager2.prototype.active = function() {
1358
+ return ROOT_CONTEXT;
1359
+ };
1360
+ NoopContextManager2.prototype.with = function(_context, fn, thisArg) {
1361
+ var args = [];
1362
+ for (var _i = 3; _i < arguments.length; _i++) {
1363
+ args[_i - 3] = arguments[_i];
1364
+ }
1365
+ return fn.call.apply(fn, __spreadArray3([thisArg], __read3(args), false));
1366
+ };
1367
+ NoopContextManager2.prototype.bind = function(_context, target) {
1368
+ return target;
1369
+ };
1370
+ NoopContextManager2.prototype.enable = function() {
1371
+ return this;
1372
+ };
1373
+ NoopContextManager2.prototype.disable = function() {
1374
+ return this;
1375
+ };
1376
+ return NoopContextManager2;
1377
+ })()
1378
+ );
1379
+ var __read4 = function(o, n) {
1380
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
1381
+ if (!m) return o;
1382
+ var i = m.call(o), r, ar = [], e;
1383
+ try {
1384
+ while (!(r = i.next()).done) ar.push(r.value);
1385
+ } catch (error) {
1386
+ e = { error };
1387
+ } finally {
1388
+ try {
1389
+ if (r && !r.done && (m = i["return"])) m.call(i);
1390
+ } finally {
1391
+ if (e) throw e.error;
1392
+ }
1393
+ }
1394
+ return ar;
1395
+ };
1396
+ var __spreadArray4 = function(to, from, pack) {
1397
+ if (arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
1398
+ if (ar || !(i in from)) {
1399
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
1400
+ ar[i] = from[i];
1401
+ }
1402
+ }
1403
+ return to.concat(ar || Array.prototype.slice.call(from));
1404
+ };
1405
+ var API_NAME2 = "context";
1406
+ var NOOP_CONTEXT_MANAGER = new NoopContextManager();
1407
+ var ContextAPI = (
1408
+ /** @class */
1409
+ (function() {
1410
+ function ContextAPI2() {
1411
+ }
1412
+ ContextAPI2.getInstance = function() {
1413
+ if (!this._instance) {
1414
+ this._instance = new ContextAPI2();
1415
+ }
1416
+ return this._instance;
1417
+ };
1418
+ ContextAPI2.prototype.setGlobalContextManager = function(contextManager) {
1419
+ return registerGlobal(API_NAME2, contextManager, DiagAPI.instance());
1420
+ };
1421
+ ContextAPI2.prototype.active = function() {
1422
+ return this._getContextManager().active();
1423
+ };
1424
+ ContextAPI2.prototype.with = function(context, fn, thisArg) {
1425
+ var _a16;
1426
+ var args = [];
1427
+ for (var _i = 3; _i < arguments.length; _i++) {
1428
+ args[_i - 3] = arguments[_i];
1429
+ }
1430
+ return (_a16 = this._getContextManager()).with.apply(_a16, __spreadArray4([context, fn, thisArg], __read4(args), false));
1431
+ };
1432
+ ContextAPI2.prototype.bind = function(context, target) {
1433
+ return this._getContextManager().bind(context, target);
1434
+ };
1435
+ ContextAPI2.prototype._getContextManager = function() {
1436
+ return getGlobal(API_NAME2) || NOOP_CONTEXT_MANAGER;
1437
+ };
1438
+ ContextAPI2.prototype.disable = function() {
1439
+ this._getContextManager().disable();
1440
+ unregisterGlobal(API_NAME2, DiagAPI.instance());
1441
+ };
1442
+ return ContextAPI2;
1443
+ })()
1444
+ );
1445
+ var TraceFlags;
1446
+ (function(TraceFlags2) {
1447
+ TraceFlags2[TraceFlags2["NONE"] = 0] = "NONE";
1448
+ TraceFlags2[TraceFlags2["SAMPLED"] = 1] = "SAMPLED";
1449
+ })(TraceFlags || (TraceFlags = {}));
1450
+ var INVALID_SPANID = "0000000000000000";
1451
+ var INVALID_TRACEID = "00000000000000000000000000000000";
1452
+ var INVALID_SPAN_CONTEXT = {
1453
+ traceId: INVALID_TRACEID,
1454
+ spanId: INVALID_SPANID,
1455
+ traceFlags: TraceFlags.NONE
1456
+ };
1457
+ var NonRecordingSpan = (
1458
+ /** @class */
1459
+ (function() {
1460
+ function NonRecordingSpan2(_spanContext) {
1461
+ if (_spanContext === void 0) {
1462
+ _spanContext = INVALID_SPAN_CONTEXT;
1463
+ }
1464
+ this._spanContext = _spanContext;
1465
+ }
1466
+ NonRecordingSpan2.prototype.spanContext = function() {
1467
+ return this._spanContext;
1468
+ };
1469
+ NonRecordingSpan2.prototype.setAttribute = function(_key, _value) {
1470
+ return this;
1471
+ };
1472
+ NonRecordingSpan2.prototype.setAttributes = function(_attributes) {
1473
+ return this;
1474
+ };
1475
+ NonRecordingSpan2.prototype.addEvent = function(_name, _attributes) {
1476
+ return this;
1477
+ };
1478
+ NonRecordingSpan2.prototype.addLink = function(_link) {
1479
+ return this;
1480
+ };
1481
+ NonRecordingSpan2.prototype.addLinks = function(_links) {
1482
+ return this;
1483
+ };
1484
+ NonRecordingSpan2.prototype.setStatus = function(_status) {
1485
+ return this;
1486
+ };
1487
+ NonRecordingSpan2.prototype.updateName = function(_name) {
1488
+ return this;
1489
+ };
1490
+ NonRecordingSpan2.prototype.end = function(_endTime) {
1491
+ };
1492
+ NonRecordingSpan2.prototype.isRecording = function() {
1493
+ return false;
1494
+ };
1495
+ NonRecordingSpan2.prototype.recordException = function(_exception, _time) {
1496
+ };
1497
+ return NonRecordingSpan2;
1498
+ })()
1499
+ );
1500
+ var SPAN_KEY = createContextKey("OpenTelemetry Context Key SPAN");
1501
+ function getSpan(context) {
1502
+ return context.getValue(SPAN_KEY) || void 0;
1503
+ }
1504
+ function getActiveSpan() {
1505
+ return getSpan(ContextAPI.getInstance().active());
1506
+ }
1507
+ function setSpan(context, span) {
1508
+ return context.setValue(SPAN_KEY, span);
1509
+ }
1510
+ function deleteSpan(context) {
1511
+ return context.deleteValue(SPAN_KEY);
1512
+ }
1513
+ function setSpanContext(context, spanContext) {
1514
+ return setSpan(context, new NonRecordingSpan(spanContext));
1515
+ }
1516
+ function getSpanContext(context) {
1517
+ var _a16;
1518
+ return (_a16 = getSpan(context)) === null || _a16 === void 0 ? void 0 : _a16.spanContext();
1519
+ }
1520
+ var VALID_TRACEID_REGEX = /^([0-9a-f]{32})$/i;
1521
+ var VALID_SPANID_REGEX = /^[0-9a-f]{16}$/i;
1522
+ function isValidTraceId(traceId) {
1523
+ return VALID_TRACEID_REGEX.test(traceId) && traceId !== INVALID_TRACEID;
1524
+ }
1525
+ function isValidSpanId(spanId) {
1526
+ return VALID_SPANID_REGEX.test(spanId) && spanId !== INVALID_SPANID;
1527
+ }
1528
+ function isSpanContextValid(spanContext) {
1529
+ return isValidTraceId(spanContext.traceId) && isValidSpanId(spanContext.spanId);
1530
+ }
1531
+ function wrapSpanContext(spanContext) {
1532
+ return new NonRecordingSpan(spanContext);
1533
+ }
1534
+ var contextApi = ContextAPI.getInstance();
1535
+ var NoopTracer = (
1536
+ /** @class */
1537
+ (function() {
1538
+ function NoopTracer2() {
1539
+ }
1540
+ NoopTracer2.prototype.startSpan = function(name16, options, context) {
1541
+ if (context === void 0) {
1542
+ context = contextApi.active();
1543
+ }
1544
+ var root = Boolean(options === null || options === void 0 ? void 0 : options.root);
1545
+ if (root) {
1546
+ return new NonRecordingSpan();
1547
+ }
1548
+ var parentFromContext = context && getSpanContext(context);
1549
+ if (isSpanContext(parentFromContext) && isSpanContextValid(parentFromContext)) {
1550
+ return new NonRecordingSpan(parentFromContext);
1551
+ } else {
1552
+ return new NonRecordingSpan();
1553
+ }
1554
+ };
1555
+ NoopTracer2.prototype.startActiveSpan = function(name16, arg2, arg3, arg4) {
1556
+ var opts;
1557
+ var ctx;
1558
+ var fn;
1559
+ if (arguments.length < 2) {
1560
+ return;
1561
+ } else if (arguments.length === 2) {
1562
+ fn = arg2;
1563
+ } else if (arguments.length === 3) {
1564
+ opts = arg2;
1565
+ fn = arg3;
1566
+ } else {
1567
+ opts = arg2;
1568
+ ctx = arg3;
1569
+ fn = arg4;
1570
+ }
1571
+ var parentContext = ctx !== null && ctx !== void 0 ? ctx : contextApi.active();
1572
+ var span = this.startSpan(name16, opts, parentContext);
1573
+ var contextWithSpanSet = setSpan(parentContext, span);
1574
+ return contextApi.with(contextWithSpanSet, fn, void 0, span);
1575
+ };
1576
+ return NoopTracer2;
1577
+ })()
1578
+ );
1579
+ function isSpanContext(spanContext) {
1580
+ return typeof spanContext === "object" && typeof spanContext["spanId"] === "string" && typeof spanContext["traceId"] === "string" && typeof spanContext["traceFlags"] === "number";
1581
+ }
1582
+ var NOOP_TRACER = new NoopTracer();
1583
+ var ProxyTracer = (
1584
+ /** @class */
1585
+ (function() {
1586
+ function ProxyTracer2(_provider, name16, version, options) {
1587
+ this._provider = _provider;
1588
+ this.name = name16;
1589
+ this.version = version;
1590
+ this.options = options;
1591
+ }
1592
+ ProxyTracer2.prototype.startSpan = function(name16, options, context) {
1593
+ return this._getTracer().startSpan(name16, options, context);
1594
+ };
1595
+ ProxyTracer2.prototype.startActiveSpan = function(_name, _options, _context, _fn) {
1596
+ var tracer = this._getTracer();
1597
+ return Reflect.apply(tracer.startActiveSpan, tracer, arguments);
1598
+ };
1599
+ ProxyTracer2.prototype._getTracer = function() {
1600
+ if (this._delegate) {
1601
+ return this._delegate;
1602
+ }
1603
+ var tracer = this._provider.getDelegateTracer(this.name, this.version, this.options);
1604
+ if (!tracer) {
1605
+ return NOOP_TRACER;
1606
+ }
1607
+ this._delegate = tracer;
1608
+ return this._delegate;
1609
+ };
1610
+ return ProxyTracer2;
1611
+ })()
1612
+ );
1613
+ var NoopTracerProvider = (
1614
+ /** @class */
1615
+ (function() {
1616
+ function NoopTracerProvider2() {
1617
+ }
1618
+ NoopTracerProvider2.prototype.getTracer = function(_name, _version, _options) {
1619
+ return new NoopTracer();
1620
+ };
1621
+ return NoopTracerProvider2;
1622
+ })()
1623
+ );
1624
+ var NOOP_TRACER_PROVIDER = new NoopTracerProvider();
1625
+ var ProxyTracerProvider = (
1626
+ /** @class */
1627
+ (function() {
1628
+ function ProxyTracerProvider2() {
1629
+ }
1630
+ ProxyTracerProvider2.prototype.getTracer = function(name16, version, options) {
1631
+ var _a16;
1632
+ return (_a16 = this.getDelegateTracer(name16, version, options)) !== null && _a16 !== void 0 ? _a16 : new ProxyTracer(this, name16, version, options);
1633
+ };
1634
+ ProxyTracerProvider2.prototype.getDelegate = function() {
1635
+ var _a16;
1636
+ return (_a16 = this._delegate) !== null && _a16 !== void 0 ? _a16 : NOOP_TRACER_PROVIDER;
1637
+ };
1638
+ ProxyTracerProvider2.prototype.setDelegate = function(delegate) {
1639
+ this._delegate = delegate;
1640
+ };
1641
+ ProxyTracerProvider2.prototype.getDelegateTracer = function(name16, version, options) {
1642
+ var _a16;
1643
+ return (_a16 = this._delegate) === null || _a16 === void 0 ? void 0 : _a16.getTracer(name16, version, options);
1644
+ };
1645
+ return ProxyTracerProvider2;
1646
+ })()
1647
+ );
1648
+ var SpanStatusCode;
1649
+ (function(SpanStatusCode2) {
1650
+ SpanStatusCode2[SpanStatusCode2["UNSET"] = 0] = "UNSET";
1651
+ SpanStatusCode2[SpanStatusCode2["OK"] = 1] = "OK";
1652
+ SpanStatusCode2[SpanStatusCode2["ERROR"] = 2] = "ERROR";
1653
+ })(SpanStatusCode || (SpanStatusCode = {}));
1654
+ var API_NAME3 = "trace";
1655
+ var TraceAPI = (
1656
+ /** @class */
1657
+ (function() {
1658
+ function TraceAPI2() {
1659
+ this._proxyTracerProvider = new ProxyTracerProvider();
1660
+ this.wrapSpanContext = wrapSpanContext;
1661
+ this.isSpanContextValid = isSpanContextValid;
1662
+ this.deleteSpan = deleteSpan;
1663
+ this.getSpan = getSpan;
1664
+ this.getActiveSpan = getActiveSpan;
1665
+ this.getSpanContext = getSpanContext;
1666
+ this.setSpan = setSpan;
1667
+ this.setSpanContext = setSpanContext;
1668
+ }
1669
+ TraceAPI2.getInstance = function() {
1670
+ if (!this._instance) {
1671
+ this._instance = new TraceAPI2();
1672
+ }
1673
+ return this._instance;
1674
+ };
1675
+ TraceAPI2.prototype.setGlobalTracerProvider = function(provider) {
1676
+ var success = registerGlobal(API_NAME3, this._proxyTracerProvider, DiagAPI.instance());
1677
+ if (success) {
1678
+ this._proxyTracerProvider.setDelegate(provider);
1679
+ }
1680
+ return success;
1681
+ };
1682
+ TraceAPI2.prototype.getTracerProvider = function() {
1683
+ return getGlobal(API_NAME3) || this._proxyTracerProvider;
1684
+ };
1685
+ TraceAPI2.prototype.getTracer = function(name16, version) {
1686
+ return this.getTracerProvider().getTracer(name16, version);
1687
+ };
1688
+ TraceAPI2.prototype.disable = function() {
1689
+ unregisterGlobal(API_NAME3, DiagAPI.instance());
1690
+ this._proxyTracerProvider = new ProxyTracerProvider();
1691
+ };
1692
+ return TraceAPI2;
1693
+ })()
1694
+ );
1695
+ var trace = TraceAPI.getInstance();
1696
+ var __defProp = Object.defineProperty;
1697
+ var __export = (target, all) => {
1698
+ for (var name16 in all)
1699
+ __defProp(target, name16, { get: all[name16], enumerable: true });
1700
+ };
1701
+ function formatWarning(warning) {
1702
+ const prefix = "AI SDK Warning:";
1703
+ switch (warning.type) {
1704
+ case "unsupported-setting": {
1705
+ let message = `${prefix} The "${warning.setting}" setting is not supported by this model`;
1706
+ if (warning.details) {
1707
+ message += ` - ${warning.details}`;
1708
+ }
1709
+ return message;
1710
+ }
1711
+ case "unsupported-tool": {
1712
+ const toolName = "name" in warning.tool ? warning.tool.name : "unknown tool";
1713
+ let message = `${prefix} The tool "${toolName}" is not supported by this model`;
1714
+ if (warning.details) {
1715
+ message += ` - ${warning.details}`;
1716
+ }
1717
+ return message;
1718
+ }
1719
+ case "other": {
1720
+ return `${prefix} ${warning.message}`;
1721
+ }
1722
+ default: {
1723
+ return `${prefix} ${JSON.stringify(warning, null, 2)}`;
1724
+ }
1725
+ }
1726
+ }
1727
+ var FIRST_WARNING_INFO_MESSAGE = "AI SDK Warning System: To turn off warning logging, set the AI_SDK_LOG_WARNINGS global to false.";
1728
+ var hasLoggedBefore = false;
1729
+ var logWarnings = (warnings) => {
1730
+ if (warnings.length === 0) {
1731
+ return;
1732
+ }
1733
+ const logger = globalThis.AI_SDK_LOG_WARNINGS;
1734
+ if (logger === false) {
1735
+ return;
1736
+ }
1737
+ if (typeof logger === "function") {
1738
+ logger(warnings);
1739
+ return;
1740
+ }
1741
+ if (!hasLoggedBefore) {
1742
+ hasLoggedBefore = true;
1743
+ console.info(FIRST_WARNING_INFO_MESSAGE);
1744
+ }
1745
+ for (const warning of warnings) {
1746
+ console.warn(formatWarning(warning));
1747
+ }
1748
+ };
1749
+ var name22 = "AI_InvalidArgumentError";
1750
+ var marker22 = `vercel.ai.error.${name22}`;
1751
+ var symbol22 = Symbol.for(marker22);
1752
+ var _a22;
1753
+ var InvalidArgumentError2 = class extends AISDKError {
1754
+ constructor({
1755
+ parameter,
1756
+ value,
1757
+ message
1758
+ }) {
1759
+ super({
1760
+ name: name22,
1761
+ message: `Invalid argument for parameter ${parameter}: ${message}`
1762
+ });
1763
+ this[_a22] = true;
1764
+ this.parameter = parameter;
1765
+ this.value = value;
1766
+ }
1767
+ static isInstance(error) {
1768
+ return AISDKError.hasMarker(error, marker22);
1769
+ }
1770
+ };
1771
+ _a22 = symbol22;
1772
+ var name62 = "AI_NoObjectGeneratedError";
1773
+ var marker62 = `vercel.ai.error.${name62}`;
1774
+ var symbol62 = Symbol.for(marker62);
1775
+ var _a62;
1776
+ var NoObjectGeneratedError = class extends AISDKError {
1777
+ constructor({
1778
+ message = "No object generated.",
1779
+ cause,
1780
+ text: text2,
1781
+ response,
1782
+ usage,
1783
+ finishReason
1784
+ }) {
1785
+ super({ name: name62, message, cause });
1786
+ this[_a62] = true;
1787
+ this.text = text2;
1788
+ this.response = response;
1789
+ this.usage = usage;
1790
+ this.finishReason = finishReason;
1791
+ }
1792
+ static isInstance(error) {
1793
+ return AISDKError.hasMarker(error, marker62);
1794
+ }
1795
+ };
1796
+ _a62 = symbol62;
1797
+ var NoSpeechGeneratedError = class extends AISDKError {
1798
+ constructor(options) {
1799
+ super({
1800
+ name: "AI_NoSpeechGeneratedError",
1801
+ message: "No speech audio generated."
1802
+ });
1803
+ this.responses = options.responses;
1804
+ }
1805
+ };
1806
+ var UnsupportedModelVersionError = class extends AISDKError {
1807
+ constructor(options) {
1808
+ super({
1809
+ name: "AI_UnsupportedModelVersionError",
1810
+ message: `Unsupported model version ${options.version} for provider "${options.provider}" and model "${options.modelId}". AI SDK 5 only supports models that implement specification version "v2".`
1811
+ });
1812
+ this.version = options.version;
1813
+ this.provider = options.provider;
1814
+ this.modelId = options.modelId;
1815
+ }
1816
+ };
1817
+ var name10 = "AI_InvalidDataContentError";
1818
+ var marker10 = `vercel.ai.error.${name10}`;
1819
+ var symbol10 = Symbol.for(marker10);
1820
+ var _a10;
1821
+ var InvalidDataContentError = class extends AISDKError {
1822
+ constructor({
1823
+ content,
1824
+ cause,
1825
+ message = `Invalid data content. Expected a base64 string, Uint8Array, ArrayBuffer, or Buffer, but got ${typeof content}.`
1826
+ }) {
1827
+ super({ name: name10, message, cause });
1828
+ this[_a10] = true;
1829
+ this.content = content;
1830
+ }
1831
+ static isInstance(error) {
1832
+ return AISDKError.hasMarker(error, marker10);
1833
+ }
1834
+ };
1835
+ _a10 = symbol10;
1836
+ var name12 = "AI_MessageConversionError";
1837
+ var marker12 = `vercel.ai.error.${name12}`;
1838
+ var symbol12 = Symbol.for(marker12);
1839
+ var _a12;
1840
+ var MessageConversionError = class extends AISDKError {
1841
+ constructor({
1842
+ originalMessage,
1843
+ message
1844
+ }) {
1845
+ super({ name: name12, message });
1846
+ this[_a12] = true;
1847
+ this.originalMessage = originalMessage;
1848
+ }
1849
+ static isInstance(error) {
1850
+ return AISDKError.hasMarker(error, marker12);
1851
+ }
1852
+ };
1853
+ _a12 = symbol12;
1854
+ var name13 = "AI_DownloadError";
1855
+ var marker13 = `vercel.ai.error.${name13}`;
1856
+ var symbol13 = Symbol.for(marker13);
1857
+ var _a13;
1858
+ var DownloadError = class extends AISDKError {
1859
+ constructor({
1860
+ url,
1861
+ statusCode,
1862
+ statusText,
1863
+ cause,
1864
+ message = cause == null ? `Failed to download ${url}: ${statusCode} ${statusText}` : `Failed to download ${url}: ${cause}`
1865
+ }) {
1866
+ super({ name: name13, message, cause });
1867
+ this[_a13] = true;
1868
+ this.url = url;
1869
+ this.statusCode = statusCode;
1870
+ this.statusText = statusText;
1871
+ }
1872
+ static isInstance(error) {
1873
+ return AISDKError.hasMarker(error, marker13);
1874
+ }
1875
+ };
1876
+ _a13 = symbol13;
1877
+ var name14 = "AI_RetryError";
1878
+ var marker14 = `vercel.ai.error.${name14}`;
1879
+ var symbol14 = Symbol.for(marker14);
1880
+ var _a14;
1881
+ var RetryError = class extends AISDKError {
1882
+ constructor({
1883
+ message,
1884
+ reason,
1885
+ errors
1886
+ }) {
1887
+ super({ name: name14, message });
1888
+ this[_a14] = true;
1889
+ this.reason = reason;
1890
+ this.errors = errors;
1891
+ this.lastError = errors[errors.length - 1];
1892
+ }
1893
+ static isInstance(error) {
1894
+ return AISDKError.hasMarker(error, marker14);
1895
+ }
1896
+ };
1897
+ _a14 = symbol14;
1898
+ function resolveEmbeddingModel(model) {
1899
+ if (typeof model !== "string") {
1900
+ if (model.specificationVersion !== "v2") {
1901
+ throw new UnsupportedModelVersionError({
1902
+ version: model.specificationVersion,
1903
+ provider: model.provider,
1904
+ modelId: model.modelId
1905
+ });
1906
+ }
1907
+ return model;
1908
+ }
1909
+ return getGlobalProvider().textEmbeddingModel(
1910
+ model
1911
+ );
1912
+ }
1913
+ function getGlobalProvider() {
1914
+ var _a16;
1915
+ return (_a16 = globalThis.AI_SDK_DEFAULT_PROVIDER) != null ? _a16 : gateway;
1916
+ }
1917
+ var audioMediaTypeSignatures = [
1918
+ {
1919
+ mediaType: "audio/mpeg",
1920
+ bytesPrefix: [255, 251]
1921
+ },
1922
+ {
1923
+ mediaType: "audio/mpeg",
1924
+ bytesPrefix: [255, 250]
1925
+ },
1926
+ {
1927
+ mediaType: "audio/mpeg",
1928
+ bytesPrefix: [255, 243]
1929
+ },
1930
+ {
1931
+ mediaType: "audio/mpeg",
1932
+ bytesPrefix: [255, 242]
1933
+ },
1934
+ {
1935
+ mediaType: "audio/mpeg",
1936
+ bytesPrefix: [255, 227]
1937
+ },
1938
+ {
1939
+ mediaType: "audio/mpeg",
1940
+ bytesPrefix: [255, 226]
1941
+ },
1942
+ {
1943
+ mediaType: "audio/wav",
1944
+ bytesPrefix: [
1945
+ 82,
1946
+ // R
1947
+ 73,
1948
+ // I
1949
+ 70,
1950
+ // F
1951
+ 70,
1952
+ // F
1953
+ null,
1954
+ null,
1955
+ null,
1956
+ null,
1957
+ 87,
1958
+ // W
1959
+ 65,
1960
+ // A
1961
+ 86,
1962
+ // V
1963
+ 69
1964
+ // E
1965
+ ]
1966
+ },
1967
+ {
1968
+ mediaType: "audio/ogg",
1969
+ bytesPrefix: [79, 103, 103, 83]
1970
+ },
1971
+ {
1972
+ mediaType: "audio/flac",
1973
+ bytesPrefix: [102, 76, 97, 67]
1974
+ },
1975
+ {
1976
+ mediaType: "audio/aac",
1977
+ bytesPrefix: [64, 21, 0, 0]
1978
+ },
1979
+ {
1980
+ mediaType: "audio/mp4",
1981
+ bytesPrefix: [102, 116, 121, 112]
1982
+ },
1983
+ {
1984
+ mediaType: "audio/webm",
1985
+ bytesPrefix: [26, 69, 223, 163]
1986
+ }
1987
+ ];
1988
+ var stripID3 = (data) => {
1989
+ const bytes = typeof data === "string" ? convertBase64ToUint8Array(data) : data;
1990
+ const id3Size = (bytes[6] & 127) << 21 | (bytes[7] & 127) << 14 | (bytes[8] & 127) << 7 | bytes[9] & 127;
1991
+ return bytes.slice(id3Size + 10);
1992
+ };
1993
+ function stripID3TagsIfPresent(data) {
1994
+ const hasId3 = typeof data === "string" && data.startsWith("SUQz") || typeof data !== "string" && data.length > 10 && data[0] === 73 && // 'I'
1995
+ data[1] === 68 && // 'D'
1996
+ data[2] === 51;
1997
+ return hasId3 ? stripID3(data) : data;
1998
+ }
1999
+ function detectMediaType({
2000
+ data,
2001
+ signatures
2002
+ }) {
2003
+ const processedData = stripID3TagsIfPresent(data);
2004
+ const bytes = typeof processedData === "string" ? convertBase64ToUint8Array(
2005
+ processedData.substring(0, Math.min(processedData.length, 24))
2006
+ ) : processedData;
2007
+ for (const signature of signatures) {
2008
+ if (bytes.length >= signature.bytesPrefix.length && signature.bytesPrefix.every(
2009
+ (byte, index) => byte === null || bytes[index] === byte
2010
+ )) {
2011
+ return signature.mediaType;
2012
+ }
2013
+ }
2014
+ return void 0;
2015
+ }
2016
+ var VERSION3 = "5.0.101";
2017
+ var download = async ({ url }) => {
2018
+ var _a16;
2019
+ const urlText = url.toString();
2020
+ try {
2021
+ const response = await fetch(urlText, {
2022
+ headers: withUserAgentSuffix(
2023
+ {},
2024
+ `ai-sdk/${VERSION3}`,
2025
+ getRuntimeEnvironmentUserAgent()
2026
+ )
2027
+ });
2028
+ if (!response.ok) {
2029
+ throw new DownloadError({
2030
+ url: urlText,
2031
+ statusCode: response.status,
2032
+ statusText: response.statusText
2033
+ });
2034
+ }
2035
+ return {
2036
+ data: new Uint8Array(await response.arrayBuffer()),
2037
+ mediaType: (_a16 = response.headers.get("content-type")) != null ? _a16 : void 0
2038
+ };
2039
+ } catch (error) {
2040
+ if (DownloadError.isInstance(error)) {
2041
+ throw error;
2042
+ }
2043
+ throw new DownloadError({ url: urlText, cause: error });
2044
+ }
2045
+ };
2046
+ var dataContentSchema = z.union([
2047
+ z.string(),
2048
+ z.instanceof(Uint8Array),
2049
+ z.instanceof(ArrayBuffer),
2050
+ z.custom(
2051
+ // Buffer might not be available in some environments such as CloudFlare:
2052
+ (value) => {
2053
+ var _a16, _b8;
2054
+ return (_b8 = (_a16 = globalThis.Buffer) == null ? void 0 : _a16.isBuffer(value)) != null ? _b8 : false;
2055
+ },
2056
+ { message: "Must be a Buffer" }
2057
+ )
2058
+ ]);
2059
+ function convertDataContentToUint8Array(content) {
2060
+ if (content instanceof Uint8Array) {
2061
+ return content;
2062
+ }
2063
+ if (typeof content === "string") {
2064
+ try {
2065
+ return convertBase64ToUint8Array(content);
2066
+ } catch (error) {
2067
+ throw new InvalidDataContentError({
2068
+ message: "Invalid data content. Content string is not a base64-encoded media.",
2069
+ content,
2070
+ cause: error
2071
+ });
2072
+ }
2073
+ }
2074
+ if (content instanceof ArrayBuffer) {
2075
+ return new Uint8Array(content);
2076
+ }
2077
+ throw new InvalidDataContentError({ content });
2078
+ }
2079
+ var jsonValueSchema = z.lazy(
2080
+ () => z.union([
2081
+ z.null(),
2082
+ z.string(),
2083
+ z.number(),
2084
+ z.boolean(),
2085
+ z.record(z.string(), jsonValueSchema),
2086
+ z.array(jsonValueSchema)
2087
+ ])
2088
+ );
2089
+ var providerMetadataSchema = z.record(
2090
+ z.string(),
2091
+ z.record(z.string(), jsonValueSchema)
2092
+ );
2093
+ var textPartSchema = z.object({
2094
+ type: z.literal("text"),
2095
+ text: z.string(),
2096
+ providerOptions: providerMetadataSchema.optional()
2097
+ });
2098
+ var imagePartSchema = z.object({
2099
+ type: z.literal("image"),
2100
+ image: z.union([dataContentSchema, z.instanceof(URL)]),
2101
+ mediaType: z.string().optional(),
2102
+ providerOptions: providerMetadataSchema.optional()
2103
+ });
2104
+ var filePartSchema = z.object({
2105
+ type: z.literal("file"),
2106
+ data: z.union([dataContentSchema, z.instanceof(URL)]),
2107
+ filename: z.string().optional(),
2108
+ mediaType: z.string(),
2109
+ providerOptions: providerMetadataSchema.optional()
2110
+ });
2111
+ var reasoningPartSchema = z.object({
2112
+ type: z.literal("reasoning"),
2113
+ text: z.string(),
2114
+ providerOptions: providerMetadataSchema.optional()
2115
+ });
2116
+ var toolCallPartSchema = z.object({
2117
+ type: z.literal("tool-call"),
2118
+ toolCallId: z.string(),
2119
+ toolName: z.string(),
2120
+ input: z.unknown(),
2121
+ providerOptions: providerMetadataSchema.optional(),
2122
+ providerExecuted: z.boolean().optional()
2123
+ });
2124
+ var outputSchema = z.discriminatedUnion("type", [
2125
+ z.object({
2126
+ type: z.literal("text"),
2127
+ value: z.string()
2128
+ }),
2129
+ z.object({
2130
+ type: z.literal("json"),
2131
+ value: jsonValueSchema
2132
+ }),
2133
+ z.object({
2134
+ type: z.literal("error-text"),
2135
+ value: z.string()
2136
+ }),
2137
+ z.object({
2138
+ type: z.literal("error-json"),
2139
+ value: jsonValueSchema
2140
+ }),
2141
+ z.object({
2142
+ type: z.literal("content"),
2143
+ value: z.array(
2144
+ z.union([
2145
+ z.object({
2146
+ type: z.literal("text"),
2147
+ text: z.string()
2148
+ }),
2149
+ z.object({
2150
+ type: z.literal("media"),
2151
+ data: z.string(),
2152
+ mediaType: z.string()
2153
+ })
2154
+ ])
2155
+ )
2156
+ })
2157
+ ]);
2158
+ var toolResultPartSchema = z.object({
2159
+ type: z.literal("tool-result"),
2160
+ toolCallId: z.string(),
2161
+ toolName: z.string(),
2162
+ output: outputSchema,
2163
+ providerOptions: providerMetadataSchema.optional()
2164
+ });
2165
+ var systemModelMessageSchema = z.object(
2166
+ {
2167
+ role: z.literal("system"),
2168
+ content: z.string(),
2169
+ providerOptions: providerMetadataSchema.optional()
2170
+ }
2171
+ );
2172
+ var userModelMessageSchema = z.object({
2173
+ role: z.literal("user"),
2174
+ content: z.union([
2175
+ z.string(),
2176
+ z.array(z.union([textPartSchema, imagePartSchema, filePartSchema]))
2177
+ ]),
2178
+ providerOptions: providerMetadataSchema.optional()
2179
+ });
2180
+ var assistantModelMessageSchema = z.object({
2181
+ role: z.literal("assistant"),
2182
+ content: z.union([
2183
+ z.string(),
2184
+ z.array(
2185
+ z.union([
2186
+ textPartSchema,
2187
+ filePartSchema,
2188
+ reasoningPartSchema,
2189
+ toolCallPartSchema,
2190
+ toolResultPartSchema
2191
+ ])
2192
+ )
2193
+ ]),
2194
+ providerOptions: providerMetadataSchema.optional()
2195
+ });
2196
+ var toolModelMessageSchema = z.object({
2197
+ role: z.literal("tool"),
2198
+ content: z.array(toolResultPartSchema),
2199
+ providerOptions: providerMetadataSchema.optional()
2200
+ });
2201
+ z.union([
2202
+ systemModelMessageSchema,
2203
+ userModelMessageSchema,
2204
+ assistantModelMessageSchema,
2205
+ toolModelMessageSchema
2206
+ ]);
2207
+ function assembleOperationName({
2208
+ operationId,
2209
+ telemetry
2210
+ }) {
2211
+ return {
2212
+ // standardized operation and resource name:
2213
+ "operation.name": `${operationId}${(telemetry == null ? void 0 : telemetry.functionId) != null ? ` ${telemetry.functionId}` : ""}`,
2214
+ "resource.name": telemetry == null ? void 0 : telemetry.functionId,
2215
+ // detailed, AI SDK specific data:
2216
+ "ai.operationId": operationId,
2217
+ "ai.telemetry.functionId": telemetry == null ? void 0 : telemetry.functionId
2218
+ };
2219
+ }
2220
+ function getBaseTelemetryAttributes({
2221
+ model,
2222
+ settings,
2223
+ telemetry,
2224
+ headers
2225
+ }) {
2226
+ var _a16;
2227
+ return {
2228
+ "ai.model.provider": model.provider,
2229
+ "ai.model.id": model.modelId,
2230
+ // settings:
2231
+ ...Object.entries(settings).reduce((attributes, [key, value]) => {
2232
+ attributes[`ai.settings.${key}`] = value;
2233
+ return attributes;
2234
+ }, {}),
2235
+ // add metadata as attributes:
2236
+ ...Object.entries((_a16 = telemetry == null ? void 0 : telemetry.metadata) != null ? _a16 : {}).reduce(
2237
+ (attributes, [key, value]) => {
2238
+ attributes[`ai.telemetry.metadata.${key}`] = value;
2239
+ return attributes;
2240
+ },
2241
+ {}
2242
+ ),
2243
+ // request headers
2244
+ ...Object.entries(headers != null ? headers : {}).reduce((attributes, [key, value]) => {
2245
+ if (value !== void 0) {
2246
+ attributes[`ai.request.headers.${key}`] = value;
2247
+ }
2248
+ return attributes;
2249
+ }, {})
2250
+ };
2251
+ }
2252
+ var noopTracer = {
2253
+ startSpan() {
2254
+ return noopSpan;
2255
+ },
2256
+ startActiveSpan(name16, arg1, arg2, arg3) {
2257
+ if (typeof arg1 === "function") {
2258
+ return arg1(noopSpan);
2259
+ }
2260
+ if (typeof arg2 === "function") {
2261
+ return arg2(noopSpan);
2262
+ }
2263
+ if (typeof arg3 === "function") {
2264
+ return arg3(noopSpan);
2265
+ }
2266
+ }
2267
+ };
2268
+ var noopSpan = {
2269
+ spanContext() {
2270
+ return noopSpanContext;
2271
+ },
2272
+ setAttribute() {
2273
+ return this;
2274
+ },
2275
+ setAttributes() {
2276
+ return this;
2277
+ },
2278
+ addEvent() {
2279
+ return this;
2280
+ },
2281
+ addLink() {
2282
+ return this;
2283
+ },
2284
+ addLinks() {
2285
+ return this;
2286
+ },
2287
+ setStatus() {
2288
+ return this;
2289
+ },
2290
+ updateName() {
2291
+ return this;
2292
+ },
2293
+ end() {
2294
+ return this;
2295
+ },
2296
+ isRecording() {
2297
+ return false;
2298
+ },
2299
+ recordException() {
2300
+ return this;
2301
+ }
2302
+ };
2303
+ var noopSpanContext = {
2304
+ traceId: "",
2305
+ spanId: "",
2306
+ traceFlags: 0
2307
+ };
2308
+ function getTracer({
2309
+ isEnabled = false,
2310
+ tracer
2311
+ } = {}) {
2312
+ if (!isEnabled) {
2313
+ return noopTracer;
2314
+ }
2315
+ if (tracer) {
2316
+ return tracer;
2317
+ }
2318
+ return trace.getTracer("ai");
2319
+ }
2320
+ function recordSpan({
2321
+ name: name16,
2322
+ tracer,
2323
+ attributes,
2324
+ fn,
2325
+ endWhenDone = true
2326
+ }) {
2327
+ return tracer.startActiveSpan(name16, { attributes }, async (span) => {
2328
+ try {
2329
+ const result = await fn(span);
2330
+ if (endWhenDone) {
2331
+ span.end();
2332
+ }
2333
+ return result;
2334
+ } catch (error) {
2335
+ try {
2336
+ recordErrorOnSpan(span, error);
2337
+ } finally {
2338
+ span.end();
2339
+ }
2340
+ throw error;
2341
+ }
2342
+ });
2343
+ }
2344
+ function recordErrorOnSpan(span, error) {
2345
+ if (error instanceof Error) {
2346
+ span.recordException({
2347
+ name: error.name,
2348
+ message: error.message,
2349
+ stack: error.stack
2350
+ });
2351
+ span.setStatus({
2352
+ code: SpanStatusCode.ERROR,
2353
+ message: error.message
2354
+ });
2355
+ } else {
2356
+ span.setStatus({ code: SpanStatusCode.ERROR });
2357
+ }
2358
+ }
2359
+ function selectTelemetryAttributes({
2360
+ telemetry,
2361
+ attributes
2362
+ }) {
2363
+ if ((telemetry == null ? void 0 : telemetry.isEnabled) !== true) {
2364
+ return {};
2365
+ }
2366
+ return Object.entries(attributes).reduce((attributes2, [key, value]) => {
2367
+ if (value == null) {
2368
+ return attributes2;
2369
+ }
2370
+ if (typeof value === "object" && "input" in value && typeof value.input === "function") {
2371
+ if ((telemetry == null ? void 0 : telemetry.recordInputs) === false) {
2372
+ return attributes2;
2373
+ }
2374
+ const result = value.input();
2375
+ return result == null ? attributes2 : { ...attributes2, [key]: result };
2376
+ }
2377
+ if (typeof value === "object" && "output" in value && typeof value.output === "function") {
2378
+ if ((telemetry == null ? void 0 : telemetry.recordOutputs) === false) {
2379
+ return attributes2;
2380
+ }
2381
+ const result = value.output();
2382
+ return result == null ? attributes2 : { ...attributes2, [key]: result };
2383
+ }
2384
+ return { ...attributes2, [key]: value };
2385
+ }, {});
2386
+ }
2387
+ function getRetryDelayInMs({
2388
+ error,
2389
+ exponentialBackoffDelay
2390
+ }) {
2391
+ const headers = error.responseHeaders;
2392
+ if (!headers)
2393
+ return exponentialBackoffDelay;
2394
+ let ms;
2395
+ const retryAfterMs = headers["retry-after-ms"];
2396
+ if (retryAfterMs) {
2397
+ const timeoutMs = parseFloat(retryAfterMs);
2398
+ if (!Number.isNaN(timeoutMs)) {
2399
+ ms = timeoutMs;
2400
+ }
2401
+ }
2402
+ const retryAfter = headers["retry-after"];
2403
+ if (retryAfter && ms === void 0) {
2404
+ const timeoutSeconds = parseFloat(retryAfter);
2405
+ if (!Number.isNaN(timeoutSeconds)) {
2406
+ ms = timeoutSeconds * 1e3;
2407
+ } else {
2408
+ ms = Date.parse(retryAfter) - Date.now();
2409
+ }
2410
+ }
2411
+ if (ms != null && !Number.isNaN(ms) && 0 <= ms && (ms < 60 * 1e3 || ms < exponentialBackoffDelay)) {
2412
+ return ms;
2413
+ }
2414
+ return exponentialBackoffDelay;
2415
+ }
2416
+ var retryWithExponentialBackoffRespectingRetryHeaders = ({
2417
+ maxRetries = 2,
2418
+ initialDelayInMs = 2e3,
2419
+ backoffFactor = 2,
2420
+ abortSignal
2421
+ } = {}) => async (f) => _retryWithExponentialBackoff(f, {
2422
+ maxRetries,
2423
+ delayInMs: initialDelayInMs,
2424
+ backoffFactor,
2425
+ abortSignal
2426
+ });
2427
+ async function _retryWithExponentialBackoff(f, {
2428
+ maxRetries,
2429
+ delayInMs,
2430
+ backoffFactor,
2431
+ abortSignal
2432
+ }, errors = []) {
2433
+ try {
2434
+ return await f();
2435
+ } catch (error) {
2436
+ if (isAbortError(error)) {
2437
+ throw error;
2438
+ }
2439
+ if (maxRetries === 0) {
2440
+ throw error;
2441
+ }
2442
+ const errorMessage = getErrorMessage2(error);
2443
+ const newErrors = [...errors, error];
2444
+ const tryNumber = newErrors.length;
2445
+ if (tryNumber > maxRetries) {
2446
+ throw new RetryError({
2447
+ message: `Failed after ${tryNumber} attempts. Last error: ${errorMessage}`,
2448
+ reason: "maxRetriesExceeded",
2449
+ errors: newErrors
2450
+ });
2451
+ }
2452
+ if (error instanceof Error && APICallError.isInstance(error) && error.isRetryable === true && tryNumber <= maxRetries) {
2453
+ await delay(
2454
+ getRetryDelayInMs({
2455
+ error,
2456
+ exponentialBackoffDelay: delayInMs
2457
+ }),
2458
+ { abortSignal }
2459
+ );
2460
+ return _retryWithExponentialBackoff(
2461
+ f,
2462
+ {
2463
+ maxRetries,
2464
+ delayInMs: backoffFactor * delayInMs,
2465
+ backoffFactor,
2466
+ abortSignal
2467
+ },
2468
+ newErrors
2469
+ );
2470
+ }
2471
+ if (tryNumber === 1) {
2472
+ throw error;
2473
+ }
2474
+ throw new RetryError({
2475
+ message: `Failed after ${tryNumber} attempts with non-retryable error: '${errorMessage}'`,
2476
+ reason: "errorNotRetryable",
2477
+ errors: newErrors
2478
+ });
2479
+ }
2480
+ }
2481
+ function prepareRetries({
2482
+ maxRetries,
2483
+ abortSignal
2484
+ }) {
2485
+ if (maxRetries != null) {
2486
+ if (!Number.isInteger(maxRetries)) {
2487
+ throw new InvalidArgumentError2({
2488
+ parameter: "maxRetries",
2489
+ value: maxRetries,
2490
+ message: "maxRetries must be an integer"
2491
+ });
2492
+ }
2493
+ if (maxRetries < 0) {
2494
+ throw new InvalidArgumentError2({
2495
+ parameter: "maxRetries",
2496
+ value: maxRetries,
2497
+ message: "maxRetries must be >= 0"
2498
+ });
2499
+ }
2500
+ }
2501
+ const maxRetriesResult = maxRetries != null ? maxRetries : 2;
2502
+ return {
2503
+ maxRetries: maxRetriesResult,
2504
+ retry: retryWithExponentialBackoffRespectingRetryHeaders({
2505
+ maxRetries: maxRetriesResult,
2506
+ abortSignal
2507
+ })
2508
+ };
2509
+ }
2510
+ var DefaultGeneratedFile = class {
2511
+ constructor({
2512
+ data,
2513
+ mediaType
2514
+ }) {
2515
+ const isUint8Array = data instanceof Uint8Array;
2516
+ this.base64Data = isUint8Array ? void 0 : data;
2517
+ this.uint8ArrayData = isUint8Array ? data : void 0;
2518
+ this.mediaType = mediaType;
2519
+ }
2520
+ // lazy conversion with caching to avoid unnecessary conversion overhead:
2521
+ get base64() {
2522
+ if (this.base64Data == null) {
2523
+ this.base64Data = convertUint8ArrayToBase64(this.uint8ArrayData);
2524
+ }
2525
+ return this.base64Data;
2526
+ }
2527
+ // lazy conversion with caching to avoid unnecessary conversion overhead:
2528
+ get uint8Array() {
2529
+ if (this.uint8ArrayData == null) {
2530
+ this.uint8ArrayData = convertBase64ToUint8Array(this.base64Data);
2531
+ }
2532
+ return this.uint8ArrayData;
2533
+ }
2534
+ };
2535
+ function stepCountIs(stepCount) {
2536
+ return ({ steps }) => steps.length === stepCount;
2537
+ }
2538
+ function createToolModelOutput({
2539
+ output,
2540
+ tool: tool2,
2541
+ errorMode
2542
+ }) {
2543
+ if (errorMode === "text") {
2544
+ return { type: "error-text", value: getErrorMessage(output) };
2545
+ } else if (errorMode === "json") {
2546
+ return { type: "error-json", value: toJSONValue(output) };
2547
+ }
2548
+ if (tool2 == null ? void 0 : tool2.toModelOutput) {
2549
+ return tool2.toModelOutput(output);
2550
+ }
2551
+ return typeof output === "string" ? { type: "text", value: output } : { type: "json", value: toJSONValue(output) };
2552
+ }
2553
+ function toJSONValue(value) {
2554
+ return value === void 0 ? null : value;
2555
+ }
2556
+ createIdGenerator({
2557
+ prefix: "aitxt",
2558
+ size: 24
2559
+ });
2560
+ function prepareHeaders(headers, defaultHeaders) {
2561
+ const responseHeaders = new Headers(headers != null ? headers : {});
2562
+ for (const [key, value] of Object.entries(defaultHeaders)) {
2563
+ if (!responseHeaders.has(key)) {
2564
+ responseHeaders.set(key, value);
2565
+ }
2566
+ }
2567
+ return responseHeaders;
2568
+ }
2569
+ function createTextStreamResponse({
2570
+ status,
2571
+ statusText,
2572
+ headers,
2573
+ textStream
2574
+ }) {
2575
+ return new Response(textStream.pipeThrough(new TextEncoderStream()), {
2576
+ status: status != null ? status : 200,
2577
+ statusText,
2578
+ headers: prepareHeaders(headers, {
2579
+ "content-type": "text/plain; charset=utf-8"
2580
+ })
2581
+ });
2582
+ }
2583
+ var JsonToSseTransformStream = class extends TransformStream {
2584
+ constructor() {
2585
+ super({
2586
+ transform(part, controller) {
2587
+ controller.enqueue(`data: ${JSON.stringify(part)}
2588
+
2589
+ `);
2590
+ },
2591
+ flush(controller) {
2592
+ controller.enqueue("data: [DONE]\n\n");
2593
+ }
2594
+ });
2595
+ }
2596
+ };
2597
+ var UI_MESSAGE_STREAM_HEADERS = {
2598
+ "content-type": "text/event-stream",
2599
+ "cache-control": "no-cache",
2600
+ connection: "keep-alive",
2601
+ "x-vercel-ai-ui-message-stream": "v1",
2602
+ "x-accel-buffering": "no"
2603
+ // disable nginx buffering
2604
+ };
2605
+ function createUIMessageStreamResponse({
2606
+ status,
2607
+ statusText,
2608
+ headers,
2609
+ stream,
2610
+ consumeSseStream
2611
+ }) {
2612
+ let sseStream = stream.pipeThrough(new JsonToSseTransformStream());
2613
+ if (consumeSseStream) {
2614
+ const [stream1, stream2] = sseStream.tee();
2615
+ sseStream = stream1;
2616
+ consumeSseStream({ stream: stream2 });
2617
+ }
2618
+ return new Response(sseStream.pipeThrough(new TextEncoderStream()), {
2619
+ status,
2620
+ statusText,
2621
+ headers: prepareHeaders(headers, UI_MESSAGE_STREAM_HEADERS)
2622
+ });
2623
+ }
2624
+ lazyValidator(
2625
+ () => zodSchema(
2626
+ z.union([
2627
+ z.strictObject({
2628
+ type: z.literal("text-start"),
2629
+ id: z.string(),
2630
+ providerMetadata: providerMetadataSchema.optional()
2631
+ }),
2632
+ z.strictObject({
2633
+ type: z.literal("text-delta"),
2634
+ id: z.string(),
2635
+ delta: z.string(),
2636
+ providerMetadata: providerMetadataSchema.optional()
2637
+ }),
2638
+ z.strictObject({
2639
+ type: z.literal("text-end"),
2640
+ id: z.string(),
2641
+ providerMetadata: providerMetadataSchema.optional()
2642
+ }),
2643
+ z.strictObject({
2644
+ type: z.literal("error"),
2645
+ errorText: z.string()
2646
+ }),
2647
+ z.strictObject({
2648
+ type: z.literal("tool-input-start"),
2649
+ toolCallId: z.string(),
2650
+ toolName: z.string(),
2651
+ providerExecuted: z.boolean().optional(),
2652
+ dynamic: z.boolean().optional()
2653
+ }),
2654
+ z.strictObject({
2655
+ type: z.literal("tool-input-delta"),
2656
+ toolCallId: z.string(),
2657
+ inputTextDelta: z.string()
2658
+ }),
2659
+ z.strictObject({
2660
+ type: z.literal("tool-input-available"),
2661
+ toolCallId: z.string(),
2662
+ toolName: z.string(),
2663
+ input: z.unknown(),
2664
+ providerExecuted: z.boolean().optional(),
2665
+ providerMetadata: providerMetadataSchema.optional(),
2666
+ dynamic: z.boolean().optional()
2667
+ }),
2668
+ z.strictObject({
2669
+ type: z.literal("tool-input-error"),
2670
+ toolCallId: z.string(),
2671
+ toolName: z.string(),
2672
+ input: z.unknown(),
2673
+ providerExecuted: z.boolean().optional(),
2674
+ providerMetadata: providerMetadataSchema.optional(),
2675
+ dynamic: z.boolean().optional(),
2676
+ errorText: z.string()
2677
+ }),
2678
+ z.strictObject({
2679
+ type: z.literal("tool-output-available"),
2680
+ toolCallId: z.string(),
2681
+ output: z.unknown(),
2682
+ providerExecuted: z.boolean().optional(),
2683
+ dynamic: z.boolean().optional(),
2684
+ preliminary: z.boolean().optional()
2685
+ }),
2686
+ z.strictObject({
2687
+ type: z.literal("tool-output-error"),
2688
+ toolCallId: z.string(),
2689
+ errorText: z.string(),
2690
+ providerExecuted: z.boolean().optional(),
2691
+ dynamic: z.boolean().optional()
2692
+ }),
2693
+ z.strictObject({
2694
+ type: z.literal("reasoning-start"),
2695
+ id: z.string(),
2696
+ providerMetadata: providerMetadataSchema.optional()
2697
+ }),
2698
+ z.strictObject({
2699
+ type: z.literal("reasoning-delta"),
2700
+ id: z.string(),
2701
+ delta: z.string(),
2702
+ providerMetadata: providerMetadataSchema.optional()
2703
+ }),
2704
+ z.strictObject({
2705
+ type: z.literal("reasoning-end"),
2706
+ id: z.string(),
2707
+ providerMetadata: providerMetadataSchema.optional()
2708
+ }),
2709
+ z.strictObject({
2710
+ type: z.literal("source-url"),
2711
+ sourceId: z.string(),
2712
+ url: z.string(),
2713
+ title: z.string().optional(),
2714
+ providerMetadata: providerMetadataSchema.optional()
2715
+ }),
2716
+ z.strictObject({
2717
+ type: z.literal("source-document"),
2718
+ sourceId: z.string(),
2719
+ mediaType: z.string(),
2720
+ title: z.string(),
2721
+ filename: z.string().optional(),
2722
+ providerMetadata: providerMetadataSchema.optional()
2723
+ }),
2724
+ z.strictObject({
2725
+ type: z.literal("file"),
2726
+ url: z.string(),
2727
+ mediaType: z.string(),
2728
+ providerMetadata: providerMetadataSchema.optional()
2729
+ }),
2730
+ z.strictObject({
2731
+ type: z.custom(
2732
+ (value) => typeof value === "string" && value.startsWith("data-"),
2733
+ { message: 'Type must start with "data-"' }
2734
+ ),
2735
+ id: z.string().optional(),
2736
+ data: z.unknown(),
2737
+ transient: z.boolean().optional()
2738
+ }),
2739
+ z.strictObject({
2740
+ type: z.literal("start-step")
2741
+ }),
2742
+ z.strictObject({
2743
+ type: z.literal("finish-step")
2744
+ }),
2745
+ z.strictObject({
2746
+ type: z.literal("start"),
2747
+ messageId: z.string().optional(),
2748
+ messageMetadata: z.unknown().optional()
2749
+ }),
2750
+ z.strictObject({
2751
+ type: z.literal("finish"),
2752
+ finishReason: z.enum([
2753
+ "stop",
2754
+ "length",
2755
+ "content-filter",
2756
+ "tool-calls",
2757
+ "error",
2758
+ "other",
2759
+ "unknown"
2760
+ ]).optional(),
2761
+ messageMetadata: z.unknown().optional()
2762
+ }),
2763
+ z.strictObject({
2764
+ type: z.literal("abort")
2765
+ }),
2766
+ z.strictObject({
2767
+ type: z.literal("message-metadata"),
2768
+ messageMetadata: z.unknown()
2769
+ })
2770
+ ])
2771
+ )
2772
+ );
2773
+ function isDataUIMessageChunk(chunk) {
2774
+ return chunk.type.startsWith("data-");
2775
+ }
2776
+ function mergeObjects(base, overrides) {
2777
+ if (base === void 0 && overrides === void 0) {
2778
+ return void 0;
2779
+ }
2780
+ if (base === void 0) {
2781
+ return overrides;
2782
+ }
2783
+ if (overrides === void 0) {
2784
+ return base;
2785
+ }
2786
+ const result = { ...base };
2787
+ for (const key in overrides) {
2788
+ if (Object.prototype.hasOwnProperty.call(overrides, key)) {
2789
+ const overridesValue = overrides[key];
2790
+ if (overridesValue === void 0)
2791
+ continue;
2792
+ const baseValue = key in base ? base[key] : void 0;
2793
+ const isSourceObject = overridesValue !== null && typeof overridesValue === "object" && !Array.isArray(overridesValue) && !(overridesValue instanceof Date) && !(overridesValue instanceof RegExp);
2794
+ const isTargetObject = baseValue !== null && baseValue !== void 0 && typeof baseValue === "object" && !Array.isArray(baseValue) && !(baseValue instanceof Date) && !(baseValue instanceof RegExp);
2795
+ if (isSourceObject && isTargetObject) {
2796
+ result[key] = mergeObjects(
2797
+ baseValue,
2798
+ overridesValue
2799
+ );
2800
+ } else {
2801
+ result[key] = overridesValue;
2802
+ }
2803
+ }
2804
+ }
2805
+ return result;
2806
+ }
2807
+ function fixJson(input) {
2808
+ const stack = ["ROOT"];
2809
+ let lastValidIndex = -1;
2810
+ let literalStart = null;
2811
+ function processValueStart(char, i, swapState) {
2812
+ {
2813
+ switch (char) {
2814
+ case '"': {
2815
+ lastValidIndex = i;
2816
+ stack.pop();
2817
+ stack.push(swapState);
2818
+ stack.push("INSIDE_STRING");
2819
+ break;
2820
+ }
2821
+ case "f":
2822
+ case "t":
2823
+ case "n": {
2824
+ lastValidIndex = i;
2825
+ literalStart = i;
2826
+ stack.pop();
2827
+ stack.push(swapState);
2828
+ stack.push("INSIDE_LITERAL");
2829
+ break;
2830
+ }
2831
+ case "-": {
2832
+ stack.pop();
2833
+ stack.push(swapState);
2834
+ stack.push("INSIDE_NUMBER");
2835
+ break;
2836
+ }
2837
+ case "0":
2838
+ case "1":
2839
+ case "2":
2840
+ case "3":
2841
+ case "4":
2842
+ case "5":
2843
+ case "6":
2844
+ case "7":
2845
+ case "8":
2846
+ case "9": {
2847
+ lastValidIndex = i;
2848
+ stack.pop();
2849
+ stack.push(swapState);
2850
+ stack.push("INSIDE_NUMBER");
2851
+ break;
2852
+ }
2853
+ case "{": {
2854
+ lastValidIndex = i;
2855
+ stack.pop();
2856
+ stack.push(swapState);
2857
+ stack.push("INSIDE_OBJECT_START");
2858
+ break;
2859
+ }
2860
+ case "[": {
2861
+ lastValidIndex = i;
2862
+ stack.pop();
2863
+ stack.push(swapState);
2864
+ stack.push("INSIDE_ARRAY_START");
2865
+ break;
2866
+ }
2867
+ }
2868
+ }
2869
+ }
2870
+ function processAfterObjectValue(char, i) {
2871
+ switch (char) {
2872
+ case ",": {
2873
+ stack.pop();
2874
+ stack.push("INSIDE_OBJECT_AFTER_COMMA");
2875
+ break;
2876
+ }
2877
+ case "}": {
2878
+ lastValidIndex = i;
2879
+ stack.pop();
2880
+ break;
2881
+ }
2882
+ }
2883
+ }
2884
+ function processAfterArrayValue(char, i) {
2885
+ switch (char) {
2886
+ case ",": {
2887
+ stack.pop();
2888
+ stack.push("INSIDE_ARRAY_AFTER_COMMA");
2889
+ break;
2890
+ }
2891
+ case "]": {
2892
+ lastValidIndex = i;
2893
+ stack.pop();
2894
+ break;
2895
+ }
2896
+ }
2897
+ }
2898
+ for (let i = 0; i < input.length; i++) {
2899
+ const char = input[i];
2900
+ const currentState = stack[stack.length - 1];
2901
+ switch (currentState) {
2902
+ case "ROOT":
2903
+ processValueStart(char, i, "FINISH");
2904
+ break;
2905
+ case "INSIDE_OBJECT_START": {
2906
+ switch (char) {
2907
+ case '"': {
2908
+ stack.pop();
2909
+ stack.push("INSIDE_OBJECT_KEY");
2910
+ break;
2911
+ }
2912
+ case "}": {
2913
+ lastValidIndex = i;
2914
+ stack.pop();
2915
+ break;
2916
+ }
2917
+ }
2918
+ break;
2919
+ }
2920
+ case "INSIDE_OBJECT_AFTER_COMMA": {
2921
+ switch (char) {
2922
+ case '"': {
2923
+ stack.pop();
2924
+ stack.push("INSIDE_OBJECT_KEY");
2925
+ break;
2926
+ }
2927
+ }
2928
+ break;
2929
+ }
2930
+ case "INSIDE_OBJECT_KEY": {
2931
+ switch (char) {
2932
+ case '"': {
2933
+ stack.pop();
2934
+ stack.push("INSIDE_OBJECT_AFTER_KEY");
2935
+ break;
2936
+ }
2937
+ }
2938
+ break;
2939
+ }
2940
+ case "INSIDE_OBJECT_AFTER_KEY": {
2941
+ switch (char) {
2942
+ case ":": {
2943
+ stack.pop();
2944
+ stack.push("INSIDE_OBJECT_BEFORE_VALUE");
2945
+ break;
2946
+ }
2947
+ }
2948
+ break;
2949
+ }
2950
+ case "INSIDE_OBJECT_BEFORE_VALUE": {
2951
+ processValueStart(char, i, "INSIDE_OBJECT_AFTER_VALUE");
2952
+ break;
2953
+ }
2954
+ case "INSIDE_OBJECT_AFTER_VALUE": {
2955
+ processAfterObjectValue(char, i);
2956
+ break;
2957
+ }
2958
+ case "INSIDE_STRING": {
2959
+ switch (char) {
2960
+ case '"': {
2961
+ stack.pop();
2962
+ lastValidIndex = i;
2963
+ break;
2964
+ }
2965
+ case "\\": {
2966
+ stack.push("INSIDE_STRING_ESCAPE");
2967
+ break;
2968
+ }
2969
+ default: {
2970
+ lastValidIndex = i;
2971
+ }
2972
+ }
2973
+ break;
2974
+ }
2975
+ case "INSIDE_ARRAY_START": {
2976
+ switch (char) {
2977
+ case "]": {
2978
+ lastValidIndex = i;
2979
+ stack.pop();
2980
+ break;
2981
+ }
2982
+ default: {
2983
+ lastValidIndex = i;
2984
+ processValueStart(char, i, "INSIDE_ARRAY_AFTER_VALUE");
2985
+ break;
2986
+ }
2987
+ }
2988
+ break;
2989
+ }
2990
+ case "INSIDE_ARRAY_AFTER_VALUE": {
2991
+ switch (char) {
2992
+ case ",": {
2993
+ stack.pop();
2994
+ stack.push("INSIDE_ARRAY_AFTER_COMMA");
2995
+ break;
2996
+ }
2997
+ case "]": {
2998
+ lastValidIndex = i;
2999
+ stack.pop();
3000
+ break;
3001
+ }
3002
+ default: {
3003
+ lastValidIndex = i;
3004
+ break;
3005
+ }
3006
+ }
3007
+ break;
3008
+ }
3009
+ case "INSIDE_ARRAY_AFTER_COMMA": {
3010
+ processValueStart(char, i, "INSIDE_ARRAY_AFTER_VALUE");
3011
+ break;
3012
+ }
3013
+ case "INSIDE_STRING_ESCAPE": {
3014
+ stack.pop();
3015
+ lastValidIndex = i;
3016
+ break;
3017
+ }
3018
+ case "INSIDE_NUMBER": {
3019
+ switch (char) {
3020
+ case "0":
3021
+ case "1":
3022
+ case "2":
3023
+ case "3":
3024
+ case "4":
3025
+ case "5":
3026
+ case "6":
3027
+ case "7":
3028
+ case "8":
3029
+ case "9": {
3030
+ lastValidIndex = i;
3031
+ break;
3032
+ }
3033
+ case "e":
3034
+ case "E":
3035
+ case "-":
3036
+ case ".": {
3037
+ break;
3038
+ }
3039
+ case ",": {
3040
+ stack.pop();
3041
+ if (stack[stack.length - 1] === "INSIDE_ARRAY_AFTER_VALUE") {
3042
+ processAfterArrayValue(char, i);
3043
+ }
3044
+ if (stack[stack.length - 1] === "INSIDE_OBJECT_AFTER_VALUE") {
3045
+ processAfterObjectValue(char, i);
3046
+ }
3047
+ break;
3048
+ }
3049
+ case "}": {
3050
+ stack.pop();
3051
+ if (stack[stack.length - 1] === "INSIDE_OBJECT_AFTER_VALUE") {
3052
+ processAfterObjectValue(char, i);
3053
+ }
3054
+ break;
3055
+ }
3056
+ case "]": {
3057
+ stack.pop();
3058
+ if (stack[stack.length - 1] === "INSIDE_ARRAY_AFTER_VALUE") {
3059
+ processAfterArrayValue(char, i);
3060
+ }
3061
+ break;
3062
+ }
3063
+ default: {
3064
+ stack.pop();
3065
+ break;
3066
+ }
3067
+ }
3068
+ break;
3069
+ }
3070
+ case "INSIDE_LITERAL": {
3071
+ const partialLiteral = input.substring(literalStart, i + 1);
3072
+ if (!"false".startsWith(partialLiteral) && !"true".startsWith(partialLiteral) && !"null".startsWith(partialLiteral)) {
3073
+ stack.pop();
3074
+ if (stack[stack.length - 1] === "INSIDE_OBJECT_AFTER_VALUE") {
3075
+ processAfterObjectValue(char, i);
3076
+ } else if (stack[stack.length - 1] === "INSIDE_ARRAY_AFTER_VALUE") {
3077
+ processAfterArrayValue(char, i);
3078
+ }
3079
+ } else {
3080
+ lastValidIndex = i;
3081
+ }
3082
+ break;
3083
+ }
3084
+ }
3085
+ }
3086
+ let result = input.slice(0, lastValidIndex + 1);
3087
+ for (let i = stack.length - 1; i >= 0; i--) {
3088
+ const state = stack[i];
3089
+ switch (state) {
3090
+ case "INSIDE_STRING": {
3091
+ result += '"';
3092
+ break;
3093
+ }
3094
+ case "INSIDE_OBJECT_KEY":
3095
+ case "INSIDE_OBJECT_AFTER_KEY":
3096
+ case "INSIDE_OBJECT_AFTER_COMMA":
3097
+ case "INSIDE_OBJECT_START":
3098
+ case "INSIDE_OBJECT_BEFORE_VALUE":
3099
+ case "INSIDE_OBJECT_AFTER_VALUE": {
3100
+ result += "}";
3101
+ break;
3102
+ }
3103
+ case "INSIDE_ARRAY_START":
3104
+ case "INSIDE_ARRAY_AFTER_COMMA":
3105
+ case "INSIDE_ARRAY_AFTER_VALUE": {
3106
+ result += "]";
3107
+ break;
3108
+ }
3109
+ case "INSIDE_LITERAL": {
3110
+ const partialLiteral = input.substring(literalStart, input.length);
3111
+ if ("true".startsWith(partialLiteral)) {
3112
+ result += "true".slice(partialLiteral.length);
3113
+ } else if ("false".startsWith(partialLiteral)) {
3114
+ result += "false".slice(partialLiteral.length);
3115
+ } else if ("null".startsWith(partialLiteral)) {
3116
+ result += "null".slice(partialLiteral.length);
3117
+ }
3118
+ }
3119
+ }
3120
+ }
3121
+ return result;
3122
+ }
3123
+ async function parsePartialJson(jsonText) {
3124
+ if (jsonText === void 0) {
3125
+ return { value: void 0, state: "undefined-input" };
3126
+ }
3127
+ let result = await safeParseJSON({ text: jsonText });
3128
+ if (result.success) {
3129
+ return { value: result.value, state: "successful-parse" };
3130
+ }
3131
+ result = await safeParseJSON({ text: fixJson(jsonText) });
3132
+ if (result.success) {
3133
+ return { value: result.value, state: "repaired-parse" };
3134
+ }
3135
+ return { value: void 0, state: "failed-parse" };
3136
+ }
3137
+ function isDataUIPart(part) {
3138
+ return part.type.startsWith("data-");
3139
+ }
3140
+ function isTextUIPart(part) {
3141
+ return part.type === "text";
3142
+ }
3143
+ function isFileUIPart(part) {
3144
+ return part.type === "file";
3145
+ }
3146
+ function isReasoningUIPart(part) {
3147
+ return part.type === "reasoning";
3148
+ }
3149
+ function isToolUIPart(part) {
3150
+ return part.type.startsWith("tool-");
3151
+ }
3152
+ function isDynamicToolUIPart(part) {
3153
+ return part.type === "dynamic-tool";
3154
+ }
3155
+ function isToolOrDynamicToolUIPart(part) {
3156
+ return isToolUIPart(part) || isDynamicToolUIPart(part);
3157
+ }
3158
+ function getToolName(part) {
3159
+ return part.type.split("-").slice(1).join("-");
3160
+ }
3161
+ function getToolOrDynamicToolName(part) {
3162
+ return isDynamicToolUIPart(part) ? part.toolName : getToolName(part);
3163
+ }
3164
+ function createStreamingUIMessageState({
3165
+ lastMessage,
3166
+ messageId
3167
+ }) {
3168
+ return {
3169
+ message: (lastMessage == null ? void 0 : lastMessage.role) === "assistant" ? lastMessage : {
3170
+ id: messageId,
3171
+ metadata: void 0,
3172
+ role: "assistant",
3173
+ parts: []
3174
+ },
3175
+ activeTextParts: {},
3176
+ activeReasoningParts: {},
3177
+ partialToolCalls: {}
3178
+ };
3179
+ }
3180
+ function processUIMessageStream({
3181
+ stream,
3182
+ messageMetadataSchema,
3183
+ dataPartSchemas,
3184
+ runUpdateMessageJob,
3185
+ onError,
3186
+ onToolCall,
3187
+ onData
3188
+ }) {
3189
+ return stream.pipeThrough(
3190
+ new TransformStream({
3191
+ async transform(chunk, controller) {
3192
+ await runUpdateMessageJob(async ({ state, write }) => {
3193
+ var _a16, _b8, _c, _d;
3194
+ function getToolInvocation(toolCallId) {
3195
+ const toolInvocations = state.message.parts.filter(isToolUIPart);
3196
+ const toolInvocation = toolInvocations.find(
3197
+ (invocation) => invocation.toolCallId === toolCallId
3198
+ );
3199
+ if (toolInvocation == null) {
3200
+ throw new Error(
3201
+ "tool-output-error must be preceded by a tool-input-available"
3202
+ );
3203
+ }
3204
+ return toolInvocation;
3205
+ }
3206
+ function getDynamicToolInvocation(toolCallId) {
3207
+ const toolInvocations = state.message.parts.filter(
3208
+ (part) => part.type === "dynamic-tool"
3209
+ );
3210
+ const toolInvocation = toolInvocations.find(
3211
+ (invocation) => invocation.toolCallId === toolCallId
3212
+ );
3213
+ if (toolInvocation == null) {
3214
+ throw new Error(
3215
+ "tool-output-error must be preceded by a tool-input-available"
3216
+ );
3217
+ }
3218
+ return toolInvocation;
3219
+ }
3220
+ function updateToolPart(options) {
3221
+ var _a17;
3222
+ const part = state.message.parts.find(
3223
+ (part2) => isToolUIPart(part2) && part2.toolCallId === options.toolCallId
3224
+ );
3225
+ const anyOptions = options;
3226
+ const anyPart = part;
3227
+ if (part != null) {
3228
+ part.state = options.state;
3229
+ anyPart.input = anyOptions.input;
3230
+ anyPart.output = anyOptions.output;
3231
+ anyPart.errorText = anyOptions.errorText;
3232
+ anyPart.rawInput = anyOptions.rawInput;
3233
+ anyPart.preliminary = anyOptions.preliminary;
3234
+ anyPart.providerExecuted = (_a17 = anyOptions.providerExecuted) != null ? _a17 : part.providerExecuted;
3235
+ if (anyOptions.providerMetadata != null && part.state === "input-available") {
3236
+ part.callProviderMetadata = anyOptions.providerMetadata;
3237
+ }
3238
+ } else {
3239
+ state.message.parts.push({
3240
+ type: `tool-${options.toolName}`,
3241
+ toolCallId: options.toolCallId,
3242
+ state: options.state,
3243
+ input: anyOptions.input,
3244
+ output: anyOptions.output,
3245
+ rawInput: anyOptions.rawInput,
3246
+ errorText: anyOptions.errorText,
3247
+ providerExecuted: anyOptions.providerExecuted,
3248
+ preliminary: anyOptions.preliminary,
3249
+ ...anyOptions.providerMetadata != null ? { callProviderMetadata: anyOptions.providerMetadata } : {}
3250
+ });
3251
+ }
3252
+ }
3253
+ function updateDynamicToolPart(options) {
3254
+ var _a17, _b22;
3255
+ const part = state.message.parts.find(
3256
+ (part2) => part2.type === "dynamic-tool" && part2.toolCallId === options.toolCallId
3257
+ );
3258
+ const anyOptions = options;
3259
+ const anyPart = part;
3260
+ if (part != null) {
3261
+ part.state = options.state;
3262
+ anyPart.toolName = options.toolName;
3263
+ anyPart.input = anyOptions.input;
3264
+ anyPart.output = anyOptions.output;
3265
+ anyPart.errorText = anyOptions.errorText;
3266
+ anyPart.rawInput = (_a17 = anyOptions.rawInput) != null ? _a17 : anyPart.rawInput;
3267
+ anyPart.preliminary = anyOptions.preliminary;
3268
+ anyPart.providerExecuted = (_b22 = anyOptions.providerExecuted) != null ? _b22 : part.providerExecuted;
3269
+ if (anyOptions.providerMetadata != null && part.state === "input-available") {
3270
+ part.callProviderMetadata = anyOptions.providerMetadata;
3271
+ }
3272
+ } else {
3273
+ state.message.parts.push({
3274
+ type: "dynamic-tool",
3275
+ toolName: options.toolName,
3276
+ toolCallId: options.toolCallId,
3277
+ state: options.state,
3278
+ input: anyOptions.input,
3279
+ output: anyOptions.output,
3280
+ errorText: anyOptions.errorText,
3281
+ preliminary: anyOptions.preliminary,
3282
+ providerExecuted: anyOptions.providerExecuted,
3283
+ ...anyOptions.providerMetadata != null ? { callProviderMetadata: anyOptions.providerMetadata } : {}
3284
+ });
3285
+ }
3286
+ }
3287
+ async function updateMessageMetadata(metadata) {
3288
+ if (metadata != null) {
3289
+ const mergedMetadata = state.message.metadata != null ? mergeObjects(state.message.metadata, metadata) : metadata;
3290
+ if (messageMetadataSchema != null) {
3291
+ await validateTypes({
3292
+ value: mergedMetadata,
3293
+ schema: messageMetadataSchema
3294
+ });
3295
+ }
3296
+ state.message.metadata = mergedMetadata;
3297
+ }
3298
+ }
3299
+ switch (chunk.type) {
3300
+ case "text-start": {
3301
+ const textPart = {
3302
+ type: "text",
3303
+ text: "",
3304
+ providerMetadata: chunk.providerMetadata,
3305
+ state: "streaming"
3306
+ };
3307
+ state.activeTextParts[chunk.id] = textPart;
3308
+ state.message.parts.push(textPart);
3309
+ write();
3310
+ break;
3311
+ }
3312
+ case "text-delta": {
3313
+ const textPart = state.activeTextParts[chunk.id];
3314
+ textPart.text += chunk.delta;
3315
+ textPart.providerMetadata = (_a16 = chunk.providerMetadata) != null ? _a16 : textPart.providerMetadata;
3316
+ write();
3317
+ break;
3318
+ }
3319
+ case "text-end": {
3320
+ const textPart = state.activeTextParts[chunk.id];
3321
+ textPart.state = "done";
3322
+ textPart.providerMetadata = (_b8 = chunk.providerMetadata) != null ? _b8 : textPart.providerMetadata;
3323
+ delete state.activeTextParts[chunk.id];
3324
+ write();
3325
+ break;
3326
+ }
3327
+ case "reasoning-start": {
3328
+ const reasoningPart = {
3329
+ type: "reasoning",
3330
+ text: "",
3331
+ providerMetadata: chunk.providerMetadata,
3332
+ state: "streaming"
3333
+ };
3334
+ state.activeReasoningParts[chunk.id] = reasoningPart;
3335
+ state.message.parts.push(reasoningPart);
3336
+ write();
3337
+ break;
3338
+ }
3339
+ case "reasoning-delta": {
3340
+ const reasoningPart = state.activeReasoningParts[chunk.id];
3341
+ reasoningPart.text += chunk.delta;
3342
+ reasoningPart.providerMetadata = (_c = chunk.providerMetadata) != null ? _c : reasoningPart.providerMetadata;
3343
+ write();
3344
+ break;
3345
+ }
3346
+ case "reasoning-end": {
3347
+ const reasoningPart = state.activeReasoningParts[chunk.id];
3348
+ reasoningPart.providerMetadata = (_d = chunk.providerMetadata) != null ? _d : reasoningPart.providerMetadata;
3349
+ reasoningPart.state = "done";
3350
+ delete state.activeReasoningParts[chunk.id];
3351
+ write();
3352
+ break;
3353
+ }
3354
+ case "file": {
3355
+ state.message.parts.push({
3356
+ type: "file",
3357
+ mediaType: chunk.mediaType,
3358
+ url: chunk.url
3359
+ });
3360
+ write();
3361
+ break;
3362
+ }
3363
+ case "source-url": {
3364
+ state.message.parts.push({
3365
+ type: "source-url",
3366
+ sourceId: chunk.sourceId,
3367
+ url: chunk.url,
3368
+ title: chunk.title,
3369
+ providerMetadata: chunk.providerMetadata
3370
+ });
3371
+ write();
3372
+ break;
3373
+ }
3374
+ case "source-document": {
3375
+ state.message.parts.push({
3376
+ type: "source-document",
3377
+ sourceId: chunk.sourceId,
3378
+ mediaType: chunk.mediaType,
3379
+ title: chunk.title,
3380
+ filename: chunk.filename,
3381
+ providerMetadata: chunk.providerMetadata
3382
+ });
3383
+ write();
3384
+ break;
3385
+ }
3386
+ case "tool-input-start": {
3387
+ const toolInvocations = state.message.parts.filter(isToolUIPart);
3388
+ state.partialToolCalls[chunk.toolCallId] = {
3389
+ text: "",
3390
+ toolName: chunk.toolName,
3391
+ index: toolInvocations.length,
3392
+ dynamic: chunk.dynamic
3393
+ };
3394
+ if (chunk.dynamic) {
3395
+ updateDynamicToolPart({
3396
+ toolCallId: chunk.toolCallId,
3397
+ toolName: chunk.toolName,
3398
+ state: "input-streaming",
3399
+ input: void 0,
3400
+ providerExecuted: chunk.providerExecuted
3401
+ });
3402
+ } else {
3403
+ updateToolPart({
3404
+ toolCallId: chunk.toolCallId,
3405
+ toolName: chunk.toolName,
3406
+ state: "input-streaming",
3407
+ input: void 0,
3408
+ providerExecuted: chunk.providerExecuted
3409
+ });
3410
+ }
3411
+ write();
3412
+ break;
3413
+ }
3414
+ case "tool-input-delta": {
3415
+ const partialToolCall = state.partialToolCalls[chunk.toolCallId];
3416
+ partialToolCall.text += chunk.inputTextDelta;
3417
+ const { value: partialArgs } = await parsePartialJson(
3418
+ partialToolCall.text
3419
+ );
3420
+ if (partialToolCall.dynamic) {
3421
+ updateDynamicToolPart({
3422
+ toolCallId: chunk.toolCallId,
3423
+ toolName: partialToolCall.toolName,
3424
+ state: "input-streaming",
3425
+ input: partialArgs
3426
+ });
3427
+ } else {
3428
+ updateToolPart({
3429
+ toolCallId: chunk.toolCallId,
3430
+ toolName: partialToolCall.toolName,
3431
+ state: "input-streaming",
3432
+ input: partialArgs
3433
+ });
3434
+ }
3435
+ write();
3436
+ break;
3437
+ }
3438
+ case "tool-input-available": {
3439
+ if (chunk.dynamic) {
3440
+ updateDynamicToolPart({
3441
+ toolCallId: chunk.toolCallId,
3442
+ toolName: chunk.toolName,
3443
+ state: "input-available",
3444
+ input: chunk.input,
3445
+ providerExecuted: chunk.providerExecuted,
3446
+ providerMetadata: chunk.providerMetadata
3447
+ });
3448
+ } else {
3449
+ updateToolPart({
3450
+ toolCallId: chunk.toolCallId,
3451
+ toolName: chunk.toolName,
3452
+ state: "input-available",
3453
+ input: chunk.input,
3454
+ providerExecuted: chunk.providerExecuted,
3455
+ providerMetadata: chunk.providerMetadata
3456
+ });
3457
+ }
3458
+ write();
3459
+ if (onToolCall && !chunk.providerExecuted) {
3460
+ await onToolCall({
3461
+ toolCall: chunk
3462
+ });
3463
+ }
3464
+ break;
3465
+ }
3466
+ case "tool-input-error": {
3467
+ if (chunk.dynamic) {
3468
+ updateDynamicToolPart({
3469
+ toolCallId: chunk.toolCallId,
3470
+ toolName: chunk.toolName,
3471
+ state: "output-error",
3472
+ input: chunk.input,
3473
+ errorText: chunk.errorText,
3474
+ providerExecuted: chunk.providerExecuted,
3475
+ providerMetadata: chunk.providerMetadata
3476
+ });
3477
+ } else {
3478
+ updateToolPart({
3479
+ toolCallId: chunk.toolCallId,
3480
+ toolName: chunk.toolName,
3481
+ state: "output-error",
3482
+ input: void 0,
3483
+ rawInput: chunk.input,
3484
+ errorText: chunk.errorText,
3485
+ providerExecuted: chunk.providerExecuted,
3486
+ providerMetadata: chunk.providerMetadata
3487
+ });
3488
+ }
3489
+ write();
3490
+ break;
3491
+ }
3492
+ case "tool-output-available": {
3493
+ if (chunk.dynamic) {
3494
+ const toolInvocation = getDynamicToolInvocation(
3495
+ chunk.toolCallId
3496
+ );
3497
+ updateDynamicToolPart({
3498
+ toolCallId: chunk.toolCallId,
3499
+ toolName: toolInvocation.toolName,
3500
+ state: "output-available",
3501
+ input: toolInvocation.input,
3502
+ output: chunk.output,
3503
+ preliminary: chunk.preliminary
3504
+ });
3505
+ } else {
3506
+ const toolInvocation = getToolInvocation(chunk.toolCallId);
3507
+ updateToolPart({
3508
+ toolCallId: chunk.toolCallId,
3509
+ toolName: getToolName(toolInvocation),
3510
+ state: "output-available",
3511
+ input: toolInvocation.input,
3512
+ output: chunk.output,
3513
+ providerExecuted: chunk.providerExecuted,
3514
+ preliminary: chunk.preliminary
3515
+ });
3516
+ }
3517
+ write();
3518
+ break;
3519
+ }
3520
+ case "tool-output-error": {
3521
+ if (chunk.dynamic) {
3522
+ const toolInvocation = getDynamicToolInvocation(
3523
+ chunk.toolCallId
3524
+ );
3525
+ updateDynamicToolPart({
3526
+ toolCallId: chunk.toolCallId,
3527
+ toolName: toolInvocation.toolName,
3528
+ state: "output-error",
3529
+ input: toolInvocation.input,
3530
+ errorText: chunk.errorText,
3531
+ providerExecuted: chunk.providerExecuted
3532
+ });
3533
+ } else {
3534
+ const toolInvocation = getToolInvocation(chunk.toolCallId);
3535
+ updateToolPart({
3536
+ toolCallId: chunk.toolCallId,
3537
+ toolName: getToolName(toolInvocation),
3538
+ state: "output-error",
3539
+ input: toolInvocation.input,
3540
+ rawInput: toolInvocation.rawInput,
3541
+ errorText: chunk.errorText,
3542
+ providerExecuted: chunk.providerExecuted
3543
+ });
3544
+ }
3545
+ write();
3546
+ break;
3547
+ }
3548
+ case "start-step": {
3549
+ state.message.parts.push({ type: "step-start" });
3550
+ break;
3551
+ }
3552
+ case "finish-step": {
3553
+ state.activeTextParts = {};
3554
+ state.activeReasoningParts = {};
3555
+ break;
3556
+ }
3557
+ case "start": {
3558
+ if (chunk.messageId != null) {
3559
+ state.message.id = chunk.messageId;
3560
+ }
3561
+ await updateMessageMetadata(chunk.messageMetadata);
3562
+ if (chunk.messageId != null || chunk.messageMetadata != null) {
3563
+ write();
3564
+ }
3565
+ break;
3566
+ }
3567
+ case "finish": {
3568
+ if (chunk.finishReason != null) {
3569
+ state.finishReason = chunk.finishReason;
3570
+ }
3571
+ await updateMessageMetadata(chunk.messageMetadata);
3572
+ if (chunk.messageMetadata != null) {
3573
+ write();
3574
+ }
3575
+ break;
3576
+ }
3577
+ case "message-metadata": {
3578
+ await updateMessageMetadata(chunk.messageMetadata);
3579
+ if (chunk.messageMetadata != null) {
3580
+ write();
3581
+ }
3582
+ break;
3583
+ }
3584
+ case "error": {
3585
+ onError == null ? void 0 : onError(new Error(chunk.errorText));
3586
+ break;
3587
+ }
3588
+ default: {
3589
+ if (isDataUIMessageChunk(chunk)) {
3590
+ if ((dataPartSchemas == null ? void 0 : dataPartSchemas[chunk.type]) != null) {
3591
+ await validateTypes({
3592
+ value: chunk.data,
3593
+ schema: dataPartSchemas[chunk.type]
3594
+ });
3595
+ }
3596
+ const dataChunk = chunk;
3597
+ if (dataChunk.transient) {
3598
+ onData == null ? void 0 : onData(dataChunk);
3599
+ break;
3600
+ }
3601
+ const existingUIPart = dataChunk.id != null ? state.message.parts.find(
3602
+ (chunkArg) => dataChunk.type === chunkArg.type && dataChunk.id === chunkArg.id
3603
+ ) : void 0;
3604
+ if (existingUIPart != null) {
3605
+ existingUIPart.data = dataChunk.data;
3606
+ } else {
3607
+ state.message.parts.push(dataChunk);
3608
+ }
3609
+ onData == null ? void 0 : onData(dataChunk);
3610
+ write();
3611
+ }
3612
+ }
3613
+ }
3614
+ controller.enqueue(chunk);
3615
+ });
3616
+ }
3617
+ })
3618
+ );
3619
+ }
3620
+ function handleUIMessageStreamFinish({
3621
+ messageId,
3622
+ originalMessages = [],
3623
+ onFinish,
3624
+ onError,
3625
+ stream
3626
+ }) {
3627
+ let lastMessage = originalMessages == null ? void 0 : originalMessages[originalMessages.length - 1];
3628
+ if ((lastMessage == null ? void 0 : lastMessage.role) !== "assistant") {
3629
+ lastMessage = void 0;
3630
+ } else {
3631
+ messageId = lastMessage.id;
3632
+ }
3633
+ let isAborted = false;
3634
+ const idInjectedStream = stream.pipeThrough(
3635
+ new TransformStream({
3636
+ transform(chunk, controller) {
3637
+ if (chunk.type === "start") {
3638
+ const startChunk = chunk;
3639
+ if (startChunk.messageId == null && messageId != null) {
3640
+ startChunk.messageId = messageId;
3641
+ }
3642
+ }
3643
+ if (chunk.type === "abort") {
3644
+ isAborted = true;
3645
+ }
3646
+ controller.enqueue(chunk);
3647
+ }
3648
+ })
3649
+ );
3650
+ if (onFinish == null) {
3651
+ return idInjectedStream;
3652
+ }
3653
+ const state = createStreamingUIMessageState({
3654
+ lastMessage: lastMessage ? structuredClone(lastMessage) : void 0,
3655
+ messageId: messageId != null ? messageId : ""
3656
+ // will be overridden by the stream
3657
+ });
3658
+ const runUpdateMessageJob = async (job) => {
3659
+ await job({ state, write: () => {
3660
+ } });
3661
+ };
3662
+ let finishCalled = false;
3663
+ const callOnFinish = async () => {
3664
+ if (finishCalled || !onFinish) {
3665
+ return;
3666
+ }
3667
+ finishCalled = true;
3668
+ const isContinuation = state.message.id === (lastMessage == null ? void 0 : lastMessage.id);
3669
+ await onFinish({
3670
+ isAborted,
3671
+ isContinuation,
3672
+ responseMessage: state.message,
3673
+ messages: [
3674
+ ...isContinuation ? originalMessages.slice(0, -1) : originalMessages,
3675
+ state.message
3676
+ ],
3677
+ finishReason: state.finishReason
3678
+ });
3679
+ };
3680
+ return processUIMessageStream({
3681
+ stream: idInjectedStream,
3682
+ runUpdateMessageJob,
3683
+ onError
3684
+ }).pipeThrough(
3685
+ new TransformStream({
3686
+ transform(chunk, controller) {
3687
+ controller.enqueue(chunk);
3688
+ },
3689
+ // @ts-expect-error cancel is still new and missing from types https://developer.mozilla.org/en-US/docs/Web/API/TransformStream#browser_compatibility
3690
+ async cancel() {
3691
+ await callOnFinish();
3692
+ },
3693
+ async flush() {
3694
+ await callOnFinish();
3695
+ }
3696
+ })
3697
+ );
3698
+ }
3699
+ createIdGenerator({
3700
+ prefix: "aitxt",
3701
+ size: 24
3702
+ });
3703
+ function convertToModelMessages(messages, options) {
3704
+ const modelMessages = [];
3705
+ if (options == null ? void 0 : options.ignoreIncompleteToolCalls) {
3706
+ messages = messages.map((message) => ({
3707
+ ...message,
3708
+ parts: message.parts.filter(
3709
+ (part) => !isToolOrDynamicToolUIPart(part) || part.state !== "input-streaming" && part.state !== "input-available"
3710
+ )
3711
+ }));
3712
+ }
3713
+ for (const message of messages) {
3714
+ switch (message.role) {
3715
+ case "system": {
3716
+ const textParts = message.parts.filter(
3717
+ (part) => part.type === "text"
3718
+ );
3719
+ const providerMetadata = textParts.reduce((acc, part) => {
3720
+ if (part.providerMetadata != null) {
3721
+ return { ...acc, ...part.providerMetadata };
3722
+ }
3723
+ return acc;
3724
+ }, {});
3725
+ modelMessages.push({
3726
+ role: "system",
3727
+ content: textParts.map((part) => part.text).join(""),
3728
+ ...Object.keys(providerMetadata).length > 0 ? { providerOptions: providerMetadata } : {}
3729
+ });
3730
+ break;
3731
+ }
3732
+ case "user": {
3733
+ modelMessages.push({
3734
+ role: "user",
3735
+ content: message.parts.map((part) => {
3736
+ var _a16;
3737
+ if (isTextUIPart(part)) {
3738
+ return {
3739
+ type: "text",
3740
+ text: part.text,
3741
+ ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
3742
+ };
3743
+ }
3744
+ if (isFileUIPart(part)) {
3745
+ return {
3746
+ type: "file",
3747
+ mediaType: part.mediaType,
3748
+ filename: part.filename,
3749
+ data: part.url,
3750
+ ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
3751
+ };
3752
+ }
3753
+ if (isDataUIPart(part)) {
3754
+ return (_a16 = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _a16.call(
3755
+ options,
3756
+ part
3757
+ );
3758
+ }
3759
+ }).filter((part) => part != null)
3760
+ });
3761
+ break;
3762
+ }
3763
+ case "assistant": {
3764
+ if (message.parts != null) {
3765
+ let processBlock2 = function() {
3766
+ var _a16, _b8, _c;
3767
+ if (block.length === 0) {
3768
+ return;
3769
+ }
3770
+ const content = [];
3771
+ for (const part of block) {
3772
+ if (isTextUIPart(part)) {
3773
+ content.push({
3774
+ type: "text",
3775
+ text: part.text,
3776
+ ...part.providerMetadata != null ? { providerOptions: part.providerMetadata } : {}
3777
+ });
3778
+ } else if (isFileUIPart(part)) {
3779
+ content.push({
3780
+ type: "file",
3781
+ mediaType: part.mediaType,
3782
+ filename: part.filename,
3783
+ data: part.url
3784
+ });
3785
+ } else if (isReasoningUIPart(part)) {
3786
+ content.push({
3787
+ type: "reasoning",
3788
+ text: part.text,
3789
+ providerOptions: part.providerMetadata
3790
+ });
3791
+ } else if (isDynamicToolUIPart(part)) {
3792
+ const toolName = part.toolName;
3793
+ if (part.state !== "input-streaming") {
3794
+ content.push({
3795
+ type: "tool-call",
3796
+ toolCallId: part.toolCallId,
3797
+ toolName,
3798
+ input: part.input,
3799
+ ...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
3800
+ });
3801
+ }
3802
+ } else if (isToolUIPart(part)) {
3803
+ const toolName = getToolName(part);
3804
+ if (part.state !== "input-streaming") {
3805
+ content.push({
3806
+ type: "tool-call",
3807
+ toolCallId: part.toolCallId,
3808
+ toolName,
3809
+ input: part.state === "output-error" ? (_a16 = part.input) != null ? _a16 : part.rawInput : part.input,
3810
+ providerExecuted: part.providerExecuted,
3811
+ ...part.callProviderMetadata != null ? { providerOptions: part.callProviderMetadata } : {}
3812
+ });
3813
+ if (part.providerExecuted === true && (part.state === "output-available" || part.state === "output-error")) {
3814
+ content.push({
3815
+ type: "tool-result",
3816
+ toolCallId: part.toolCallId,
3817
+ toolName,
3818
+ output: createToolModelOutput({
3819
+ output: part.state === "output-error" ? part.errorText : part.output,
3820
+ tool: (_b8 = options == null ? void 0 : options.tools) == null ? void 0 : _b8[toolName],
3821
+ errorMode: part.state === "output-error" ? "json" : "none"
3822
+ })
3823
+ });
3824
+ }
3825
+ }
3826
+ } else if (isDataUIPart(part)) {
3827
+ const dataPart = (_c = options == null ? void 0 : options.convertDataPart) == null ? void 0 : _c.call(
3828
+ options,
3829
+ part
3830
+ );
3831
+ if (dataPart != null) {
3832
+ content.push(dataPart);
3833
+ }
3834
+ } else {
3835
+ const _exhaustiveCheck = part;
3836
+ throw new Error(`Unsupported part: ${_exhaustiveCheck}`);
3837
+ }
3838
+ }
3839
+ modelMessages.push({
3840
+ role: "assistant",
3841
+ content
3842
+ });
3843
+ const toolParts = block.filter(
3844
+ (part) => isToolUIPart(part) && part.providerExecuted !== true || part.type === "dynamic-tool"
3845
+ );
3846
+ if (toolParts.length > 0) {
3847
+ modelMessages.push({
3848
+ role: "tool",
3849
+ content: toolParts.map((toolPart) => {
3850
+ var _a17;
3851
+ switch (toolPart.state) {
3852
+ case "output-error":
3853
+ case "output-available": {
3854
+ const toolName = getToolOrDynamicToolName(toolPart);
3855
+ return {
3856
+ type: "tool-result",
3857
+ toolCallId: toolPart.toolCallId,
3858
+ toolName,
3859
+ output: createToolModelOutput({
3860
+ output: toolPart.state === "output-error" ? toolPart.errorText : toolPart.output,
3861
+ tool: (_a17 = options == null ? void 0 : options.tools) == null ? void 0 : _a17[toolName],
3862
+ errorMode: toolPart.state === "output-error" ? "text" : "none"
3863
+ })
3864
+ };
3865
+ }
3866
+ default: {
3867
+ return null;
3868
+ }
3869
+ }
3870
+ }).filter(
3871
+ (output) => output != null
3872
+ )
3873
+ });
3874
+ }
3875
+ block = [];
3876
+ };
3877
+ let block = [];
3878
+ for (const part of message.parts) {
3879
+ if (isTextUIPart(part) || isReasoningUIPart(part) || isFileUIPart(part) || isToolOrDynamicToolUIPart(part) || isDataUIPart(part)) {
3880
+ block.push(part);
3881
+ } else if (part.type === "step-start") {
3882
+ processBlock2();
3883
+ }
3884
+ }
3885
+ processBlock2();
3886
+ break;
3887
+ }
3888
+ break;
3889
+ }
3890
+ default: {
3891
+ const _exhaustiveCheck = message.role;
3892
+ throw new MessageConversionError({
3893
+ originalMessage: message,
3894
+ message: `Unsupported role: ${_exhaustiveCheck}`
3895
+ });
3896
+ }
3897
+ }
3898
+ }
3899
+ return modelMessages;
3900
+ }
3901
+ async function embed({
3902
+ model: modelArg,
3903
+ value,
3904
+ providerOptions,
3905
+ maxRetries: maxRetriesArg,
3906
+ abortSignal,
3907
+ headers,
3908
+ experimental_telemetry: telemetry
3909
+ }) {
3910
+ const model = resolveEmbeddingModel(modelArg);
3911
+ const { maxRetries, retry } = prepareRetries({
3912
+ maxRetries: maxRetriesArg,
3913
+ abortSignal
3914
+ });
3915
+ const headersWithUserAgent = withUserAgentSuffix(
3916
+ headers != null ? headers : {},
3917
+ `ai/${VERSION3}`
3918
+ );
3919
+ const baseTelemetryAttributes = getBaseTelemetryAttributes({
3920
+ model,
3921
+ telemetry,
3922
+ headers: headersWithUserAgent,
3923
+ settings: { maxRetries }
3924
+ });
3925
+ const tracer = getTracer(telemetry);
3926
+ return recordSpan({
3927
+ name: "ai.embed",
3928
+ attributes: selectTelemetryAttributes({
3929
+ telemetry,
3930
+ attributes: {
3931
+ ...assembleOperationName({ operationId: "ai.embed", telemetry }),
3932
+ ...baseTelemetryAttributes,
3933
+ "ai.value": { input: () => JSON.stringify(value) }
3934
+ }
3935
+ }),
3936
+ tracer,
3937
+ fn: async (span) => {
3938
+ const { embedding, usage, response, providerMetadata } = await retry(
3939
+ () => (
3940
+ // nested spans to align with the embedMany telemetry data:
3941
+ recordSpan({
3942
+ name: "ai.embed.doEmbed",
3943
+ attributes: selectTelemetryAttributes({
3944
+ telemetry,
3945
+ attributes: {
3946
+ ...assembleOperationName({
3947
+ operationId: "ai.embed.doEmbed",
3948
+ telemetry
3949
+ }),
3950
+ ...baseTelemetryAttributes,
3951
+ // specific settings that only make sense on the outer level:
3952
+ "ai.values": { input: () => [JSON.stringify(value)] }
3953
+ }
3954
+ }),
3955
+ tracer,
3956
+ fn: async (doEmbedSpan) => {
3957
+ var _a16;
3958
+ const modelResponse = await model.doEmbed({
3959
+ values: [value],
3960
+ abortSignal,
3961
+ headers: headersWithUserAgent,
3962
+ providerOptions
3963
+ });
3964
+ const embedding2 = modelResponse.embeddings[0];
3965
+ const usage2 = (_a16 = modelResponse.usage) != null ? _a16 : { tokens: NaN };
3966
+ doEmbedSpan.setAttributes(
3967
+ selectTelemetryAttributes({
3968
+ telemetry,
3969
+ attributes: {
3970
+ "ai.embeddings": {
3971
+ output: () => modelResponse.embeddings.map(
3972
+ (embedding3) => JSON.stringify(embedding3)
3973
+ )
3974
+ },
3975
+ "ai.usage.tokens": usage2.tokens
3976
+ }
3977
+ })
3978
+ );
3979
+ return {
3980
+ embedding: embedding2,
3981
+ usage: usage2,
3982
+ providerMetadata: modelResponse.providerMetadata,
3983
+ response: modelResponse.response
3984
+ };
3985
+ }
3986
+ })
3987
+ )
3988
+ );
3989
+ span.setAttributes(
3990
+ selectTelemetryAttributes({
3991
+ telemetry,
3992
+ attributes: {
3993
+ "ai.embedding": { output: () => JSON.stringify(embedding) },
3994
+ "ai.usage.tokens": usage.tokens
3995
+ }
3996
+ })
3997
+ );
3998
+ return new DefaultEmbedResult({
3999
+ value,
4000
+ embedding,
4001
+ usage,
4002
+ providerMetadata,
4003
+ response
4004
+ });
4005
+ }
4006
+ });
4007
+ }
4008
+ var DefaultEmbedResult = class {
4009
+ constructor(options) {
4010
+ this.value = options.value;
4011
+ this.embedding = options.embedding;
4012
+ this.usage = options.usage;
4013
+ this.providerMetadata = options.providerMetadata;
4014
+ this.response = options.response;
4015
+ }
4016
+ };
4017
+ createIdGenerator({ prefix: "aiobj", size: 24 });
4018
+ function isDeepEqualData(obj1, obj2) {
4019
+ if (obj1 === obj2)
4020
+ return true;
4021
+ if (obj1 == null || obj2 == null)
4022
+ return false;
4023
+ if (typeof obj1 !== "object" && typeof obj2 !== "object")
4024
+ return obj1 === obj2;
4025
+ if (obj1.constructor !== obj2.constructor)
4026
+ return false;
4027
+ if (obj1 instanceof Date && obj2 instanceof Date) {
4028
+ return obj1.getTime() === obj2.getTime();
4029
+ }
4030
+ if (Array.isArray(obj1)) {
4031
+ if (obj1.length !== obj2.length)
4032
+ return false;
4033
+ for (let i = 0; i < obj1.length; i++) {
4034
+ if (!isDeepEqualData(obj1[i], obj2[i]))
4035
+ return false;
4036
+ }
4037
+ return true;
4038
+ }
4039
+ const keys1 = Object.keys(obj1);
4040
+ const keys2 = Object.keys(obj2);
4041
+ if (keys1.length !== keys2.length)
4042
+ return false;
4043
+ for (const key of keys1) {
4044
+ if (!keys2.includes(key))
4045
+ return false;
4046
+ if (!isDeepEqualData(obj1[key], obj2[key]))
4047
+ return false;
4048
+ }
4049
+ return true;
4050
+ }
4051
+ createIdGenerator({ prefix: "aiobj", size: 24 });
4052
+ var DefaultGeneratedAudioFile = class extends DefaultGeneratedFile {
4053
+ constructor({
4054
+ data,
4055
+ mediaType
4056
+ }) {
4057
+ super({ data, mediaType });
4058
+ let format = "mp3";
4059
+ if (mediaType) {
4060
+ const mediaTypeParts = mediaType.split("/");
4061
+ if (mediaTypeParts.length === 2) {
4062
+ if (mediaType !== "audio/mpeg") {
4063
+ format = mediaTypeParts[1];
4064
+ }
4065
+ }
4066
+ }
4067
+ if (!format) {
4068
+ throw new Error(
4069
+ "Audio format must be provided or determinable from media type"
4070
+ );
4071
+ }
4072
+ this.format = format;
4073
+ }
4074
+ };
4075
+ async function generateSpeech({
4076
+ model,
4077
+ text: text2,
4078
+ voice,
4079
+ outputFormat,
4080
+ instructions,
4081
+ speed,
4082
+ language,
4083
+ providerOptions = {},
4084
+ maxRetries: maxRetriesArg,
4085
+ abortSignal,
4086
+ headers
4087
+ }) {
4088
+ var _a16;
4089
+ if (model.specificationVersion !== "v2") {
4090
+ throw new UnsupportedModelVersionError({
4091
+ version: model.specificationVersion,
4092
+ provider: model.provider,
4093
+ modelId: model.modelId
4094
+ });
4095
+ }
4096
+ const headersWithUserAgent = withUserAgentSuffix(
4097
+ headers != null ? headers : {},
4098
+ `ai/${VERSION3}`
4099
+ );
4100
+ const { retry } = prepareRetries({
4101
+ maxRetries: maxRetriesArg,
4102
+ abortSignal
4103
+ });
4104
+ const result = await retry(
4105
+ () => model.doGenerate({
4106
+ text: text2,
4107
+ voice,
4108
+ outputFormat,
4109
+ instructions,
4110
+ speed,
4111
+ language,
4112
+ abortSignal,
4113
+ headers: headersWithUserAgent,
4114
+ providerOptions
4115
+ })
4116
+ );
4117
+ if (!result.audio || result.audio.length === 0) {
4118
+ throw new NoSpeechGeneratedError({ responses: [result.response] });
4119
+ }
4120
+ logWarnings(result.warnings);
4121
+ return new DefaultSpeechResult({
4122
+ audio: new DefaultGeneratedAudioFile({
4123
+ data: result.audio,
4124
+ mediaType: (_a16 = detectMediaType({
4125
+ data: result.audio,
4126
+ signatures: audioMediaTypeSignatures
4127
+ })) != null ? _a16 : "audio/mp3"
4128
+ }),
4129
+ warnings: result.warnings,
4130
+ responses: [result.response],
4131
+ providerMetadata: result.providerMetadata
4132
+ });
4133
+ }
4134
+ var DefaultSpeechResult = class {
4135
+ constructor(options) {
4136
+ var _a16;
4137
+ this.audio = options.audio;
4138
+ this.warnings = options.warnings;
4139
+ this.responses = options.responses;
4140
+ this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
4141
+ }
4142
+ };
4143
+ var output_exports = {};
4144
+ __export(output_exports, {
4145
+ object: () => object,
4146
+ text: () => text
4147
+ });
4148
+ var text = () => ({
4149
+ type: "text",
4150
+ responseFormat: { type: "text" },
4151
+ async parsePartial({ text: text2 }) {
4152
+ return { partial: text2 };
4153
+ },
4154
+ async parseOutput({ text: text2 }) {
4155
+ return text2;
4156
+ }
4157
+ });
4158
+ var object = ({
4159
+ schema: inputSchema
4160
+ }) => {
4161
+ const schema = asSchema(inputSchema);
4162
+ return {
4163
+ type: "object",
4164
+ responseFormat: {
4165
+ type: "json",
4166
+ schema: schema.jsonSchema
4167
+ },
4168
+ async parsePartial({ text: text2 }) {
4169
+ const result = await parsePartialJson(text2);
4170
+ switch (result.state) {
4171
+ case "failed-parse":
4172
+ case "undefined-input":
4173
+ return void 0;
4174
+ case "repaired-parse":
4175
+ case "successful-parse":
4176
+ return {
4177
+ // Note: currently no validation of partial results:
4178
+ partial: result.value
4179
+ };
4180
+ default: {
4181
+ const _exhaustiveCheck = result.state;
4182
+ throw new Error(`Unsupported parse state: ${_exhaustiveCheck}`);
4183
+ }
4184
+ }
4185
+ },
4186
+ async parseOutput({ text: text2 }, context) {
4187
+ const parseResult = await safeParseJSON({ text: text2 });
4188
+ if (!parseResult.success) {
4189
+ throw new NoObjectGeneratedError({
4190
+ message: "No object generated: could not parse the response.",
4191
+ cause: parseResult.error,
4192
+ text: text2,
4193
+ response: context.response,
4194
+ usage: context.usage,
4195
+ finishReason: context.finishReason
4196
+ });
4197
+ }
4198
+ const validationResult = await safeValidateTypes({
4199
+ value: parseResult.value,
4200
+ schema
4201
+ });
4202
+ if (!validationResult.success) {
4203
+ throw new NoObjectGeneratedError({
4204
+ message: "No object generated: response did not match schema.",
4205
+ cause: validationResult.error,
4206
+ text: text2,
4207
+ response: context.response,
4208
+ usage: context.usage,
4209
+ finishReason: context.finishReason
4210
+ });
4211
+ }
4212
+ return validationResult.value;
4213
+ }
4214
+ };
4215
+ };
4216
+ var NoTranscriptGeneratedError = class extends AISDKError {
4217
+ constructor(options) {
4218
+ super({
4219
+ name: "AI_NoTranscriptGeneratedError",
4220
+ message: "No transcript generated."
4221
+ });
4222
+ this.responses = options.responses;
4223
+ }
4224
+ };
4225
+ async function transcribe({
4226
+ model,
4227
+ audio,
4228
+ providerOptions = {},
4229
+ maxRetries: maxRetriesArg,
4230
+ abortSignal,
4231
+ headers
4232
+ }) {
4233
+ if (model.specificationVersion !== "v2") {
4234
+ throw new UnsupportedModelVersionError({
4235
+ version: model.specificationVersion,
4236
+ provider: model.provider,
4237
+ modelId: model.modelId
4238
+ });
4239
+ }
4240
+ const { retry } = prepareRetries({
4241
+ maxRetries: maxRetriesArg,
4242
+ abortSignal
4243
+ });
4244
+ const headersWithUserAgent = withUserAgentSuffix(
4245
+ headers != null ? headers : {},
4246
+ `ai/${VERSION3}`
4247
+ );
4248
+ const audioData = audio instanceof URL ? (await download({ url: audio })).data : convertDataContentToUint8Array(audio);
4249
+ const result = await retry(
4250
+ () => {
4251
+ var _a16;
4252
+ return model.doGenerate({
4253
+ audio: audioData,
4254
+ abortSignal,
4255
+ headers: headersWithUserAgent,
4256
+ providerOptions,
4257
+ mediaType: (_a16 = detectMediaType({
4258
+ data: audioData,
4259
+ signatures: audioMediaTypeSignatures
4260
+ })) != null ? _a16 : "audio/wav"
4261
+ });
4262
+ }
4263
+ );
4264
+ logWarnings(result.warnings);
4265
+ if (!result.text) {
4266
+ throw new NoTranscriptGeneratedError({ responses: [result.response] });
4267
+ }
4268
+ return new DefaultTranscriptionResult({
4269
+ text: result.text,
4270
+ segments: result.segments,
4271
+ language: result.language,
4272
+ durationInSeconds: result.durationInSeconds,
4273
+ warnings: result.warnings,
4274
+ responses: [result.response],
4275
+ providerMetadata: result.providerMetadata
4276
+ });
4277
+ }
4278
+ var DefaultTranscriptionResult = class {
4279
+ constructor(options) {
4280
+ var _a16;
4281
+ this.text = options.text;
4282
+ this.segments = options.segments;
4283
+ this.language = options.language;
4284
+ this.durationInSeconds = options.durationInSeconds;
4285
+ this.warnings = options.warnings;
4286
+ this.responses = options.responses;
4287
+ this.providerMetadata = (_a16 = options.providerMetadata) != null ? _a16 : {};
4288
+ }
4289
+ };
4290
+ lazyValidator(
4291
+ () => zodSchema(
4292
+ z.array(
4293
+ z.object({
4294
+ id: z.string(),
4295
+ role: z.enum(["system", "user", "assistant"]),
4296
+ metadata: z.unknown().optional(),
4297
+ parts: z.array(
4298
+ z.union([
4299
+ z.object({
4300
+ type: z.literal("text"),
4301
+ text: z.string(),
4302
+ state: z.enum(["streaming", "done"]).optional(),
4303
+ providerMetadata: providerMetadataSchema.optional()
4304
+ }),
4305
+ z.object({
4306
+ type: z.literal("reasoning"),
4307
+ text: z.string(),
4308
+ state: z.enum(["streaming", "done"]).optional(),
4309
+ providerMetadata: providerMetadataSchema.optional()
4310
+ }),
4311
+ z.object({
4312
+ type: z.literal("source-url"),
4313
+ sourceId: z.string(),
4314
+ url: z.string(),
4315
+ title: z.string().optional(),
4316
+ providerMetadata: providerMetadataSchema.optional()
4317
+ }),
4318
+ z.object({
4319
+ type: z.literal("source-document"),
4320
+ sourceId: z.string(),
4321
+ mediaType: z.string(),
4322
+ title: z.string(),
4323
+ filename: z.string().optional(),
4324
+ providerMetadata: providerMetadataSchema.optional()
4325
+ }),
4326
+ z.object({
4327
+ type: z.literal("file"),
4328
+ mediaType: z.string(),
4329
+ filename: z.string().optional(),
4330
+ url: z.string(),
4331
+ providerMetadata: providerMetadataSchema.optional()
4332
+ }),
4333
+ z.object({
4334
+ type: z.literal("step-start")
4335
+ }),
4336
+ z.object({
4337
+ type: z.string().startsWith("data-"),
4338
+ id: z.string().optional(),
4339
+ data: z.unknown()
4340
+ }),
4341
+ z.object({
4342
+ type: z.literal("dynamic-tool"),
4343
+ toolName: z.string(),
4344
+ toolCallId: z.string(),
4345
+ state: z.literal("input-streaming"),
4346
+ input: z.unknown().optional(),
4347
+ providerExecuted: z.boolean().optional(),
4348
+ output: z.never().optional(),
4349
+ errorText: z.never().optional()
4350
+ }),
4351
+ z.object({
4352
+ type: z.literal("dynamic-tool"),
4353
+ toolName: z.string(),
4354
+ toolCallId: z.string(),
4355
+ state: z.literal("input-available"),
4356
+ input: z.unknown(),
4357
+ providerExecuted: z.boolean().optional(),
4358
+ output: z.never().optional(),
4359
+ errorText: z.never().optional(),
4360
+ callProviderMetadata: providerMetadataSchema.optional()
4361
+ }),
4362
+ z.object({
4363
+ type: z.literal("dynamic-tool"),
4364
+ toolName: z.string(),
4365
+ toolCallId: z.string(),
4366
+ state: z.literal("output-available"),
4367
+ input: z.unknown(),
4368
+ providerExecuted: z.boolean().optional(),
4369
+ output: z.unknown(),
4370
+ errorText: z.never().optional(),
4371
+ callProviderMetadata: providerMetadataSchema.optional(),
4372
+ preliminary: z.boolean().optional()
4373
+ }),
4374
+ z.object({
4375
+ type: z.literal("dynamic-tool"),
4376
+ toolName: z.string(),
4377
+ toolCallId: z.string(),
4378
+ state: z.literal("output-error"),
4379
+ input: z.unknown(),
4380
+ providerExecuted: z.boolean().optional(),
4381
+ output: z.never().optional(),
4382
+ errorText: z.string(),
4383
+ callProviderMetadata: providerMetadataSchema.optional()
4384
+ }),
4385
+ z.object({
4386
+ type: z.string().startsWith("tool-"),
4387
+ toolCallId: z.string(),
4388
+ state: z.literal("input-streaming"),
4389
+ providerExecuted: z.boolean().optional(),
4390
+ input: z.unknown().optional(),
4391
+ output: z.never().optional(),
4392
+ errorText: z.never().optional(),
4393
+ approval: z.never().optional()
4394
+ }),
4395
+ z.object({
4396
+ type: z.string().startsWith("tool-"),
4397
+ toolCallId: z.string(),
4398
+ state: z.literal("input-available"),
4399
+ providerExecuted: z.boolean().optional(),
4400
+ input: z.unknown(),
4401
+ output: z.never().optional(),
4402
+ errorText: z.never().optional(),
4403
+ callProviderMetadata: providerMetadataSchema.optional(),
4404
+ approval: z.never().optional()
4405
+ }),
4406
+ z.object({
4407
+ type: z.string().startsWith("tool-"),
4408
+ toolCallId: z.string(),
4409
+ state: z.literal("approval-requested"),
4410
+ input: z.unknown(),
4411
+ providerExecuted: z.boolean().optional(),
4412
+ output: z.never().optional(),
4413
+ errorText: z.never().optional(),
4414
+ callProviderMetadata: providerMetadataSchema.optional(),
4415
+ approval: z.object({
4416
+ id: z.string(),
4417
+ approved: z.never().optional(),
4418
+ reason: z.never().optional()
4419
+ })
4420
+ }),
4421
+ z.object({
4422
+ type: z.string().startsWith("tool-"),
4423
+ toolCallId: z.string(),
4424
+ state: z.literal("approval-responded"),
4425
+ input: z.unknown(),
4426
+ providerExecuted: z.boolean().optional(),
4427
+ output: z.never().optional(),
4428
+ errorText: z.never().optional(),
4429
+ callProviderMetadata: providerMetadataSchema.optional(),
4430
+ approval: z.object({
4431
+ id: z.string(),
4432
+ approved: z.boolean(),
4433
+ reason: z.string().optional()
4434
+ })
4435
+ }),
4436
+ z.object({
4437
+ type: z.string().startsWith("tool-"),
4438
+ toolCallId: z.string(),
4439
+ state: z.literal("output-available"),
4440
+ providerExecuted: z.boolean().optional(),
4441
+ input: z.unknown(),
4442
+ output: z.unknown(),
4443
+ errorText: z.never().optional(),
4444
+ callProviderMetadata: providerMetadataSchema.optional(),
4445
+ preliminary: z.boolean().optional(),
4446
+ approval: z.object({
4447
+ id: z.string(),
4448
+ approved: z.literal(true),
4449
+ reason: z.string().optional()
4450
+ }).optional()
4451
+ }),
4452
+ z.object({
4453
+ type: z.string().startsWith("tool-"),
4454
+ toolCallId: z.string(),
4455
+ state: z.literal("output-error"),
4456
+ providerExecuted: z.boolean().optional(),
4457
+ input: z.unknown(),
4458
+ output: z.never().optional(),
4459
+ errorText: z.string(),
4460
+ callProviderMetadata: providerMetadataSchema.optional(),
4461
+ approval: z.object({
4462
+ id: z.string(),
4463
+ approved: z.literal(true),
4464
+ reason: z.string().optional()
4465
+ }).optional()
4466
+ }),
4467
+ z.object({
4468
+ type: z.string().startsWith("tool-"),
4469
+ toolCallId: z.string(),
4470
+ state: z.literal("output-denied"),
4471
+ providerExecuted: z.boolean().optional(),
4472
+ input: z.unknown(),
4473
+ output: z.never().optional(),
4474
+ errorText: z.never().optional(),
4475
+ callProviderMetadata: providerMetadataSchema.optional(),
4476
+ approval: z.object({
4477
+ id: z.string(),
4478
+ approved: z.literal(false),
4479
+ reason: z.string().optional()
4480
+ })
4481
+ })
4482
+ ])
4483
+ ).nonempty("Message must contain at least one part")
4484
+ })
4485
+ ).nonempty("Messages array must not be empty")
4486
+ )
4487
+ );
4488
+ function createUIMessageStream({
4489
+ execute,
4490
+ onError = getErrorMessage2,
4491
+ originalMessages,
4492
+ onFinish,
4493
+ generateId: generateId3 = generateId
4494
+ }) {
4495
+ let controller;
4496
+ const ongoingStreamPromises = [];
4497
+ const stream = new ReadableStream({
4498
+ start(controllerArg) {
4499
+ controller = controllerArg;
4500
+ }
4501
+ });
4502
+ function safeEnqueue(data) {
4503
+ try {
4504
+ controller.enqueue(data);
4505
+ } catch (error) {
4506
+ }
4507
+ }
4508
+ try {
4509
+ const result = execute({
4510
+ writer: {
4511
+ write(part) {
4512
+ safeEnqueue(part);
4513
+ },
4514
+ merge(streamArg) {
4515
+ ongoingStreamPromises.push(
4516
+ (async () => {
4517
+ const reader = streamArg.getReader();
4518
+ while (true) {
4519
+ const { done, value } = await reader.read();
4520
+ if (done)
4521
+ break;
4522
+ safeEnqueue(value);
4523
+ }
4524
+ })().catch((error) => {
4525
+ safeEnqueue({
4526
+ type: "error",
4527
+ errorText: onError(error)
4528
+ });
4529
+ })
4530
+ );
4531
+ },
4532
+ onError
4533
+ }
4534
+ });
4535
+ if (result) {
4536
+ ongoingStreamPromises.push(
4537
+ result.catch((error) => {
4538
+ safeEnqueue({
4539
+ type: "error",
4540
+ errorText: onError(error)
4541
+ });
4542
+ })
4543
+ );
4544
+ }
4545
+ } catch (error) {
4546
+ safeEnqueue({
4547
+ type: "error",
4548
+ errorText: onError(error)
4549
+ });
4550
+ }
4551
+ const waitForStreams = new Promise(async (resolve2) => {
4552
+ while (ongoingStreamPromises.length > 0) {
4553
+ await ongoingStreamPromises.shift();
4554
+ }
4555
+ resolve2();
4556
+ });
4557
+ waitForStreams.finally(() => {
4558
+ try {
4559
+ controller.close();
4560
+ } catch (error) {
4561
+ }
4562
+ });
4563
+ return handleUIMessageStreamFinish({
4564
+ stream,
4565
+ messageId: generateId3(),
4566
+ originalMessages,
4567
+ onFinish,
4568
+ onError
4569
+ });
4570
+ }
4571
+
4572
+ export { convertToModelMessages, createTextStreamResponse, createUIMessageStream, createUIMessageStreamResponse, embed, generateSpeech, isDeepEqualData, isToolUIPart, parsePartialJson, stepCountIs, transcribe };
4573
+ //# sourceMappingURL=chunk-2SQB3WBT.js.map
4574
+ //# sourceMappingURL=chunk-2SQB3WBT.js.map