@mastra/server 0.0.0-inject-middleware-20250528222017 → 0.0.0-interpolate-reporter-url-20250910180021

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 (329) hide show
  1. package/CHANGELOG.md +3569 -0
  2. package/LICENSE.md +11 -42
  3. package/dist/{chunk-5SN4U5AC.cjs → chunk-3THIIWWW.cjs} +113 -137
  4. package/dist/chunk-3THIIWWW.cjs.map +1 -0
  5. package/dist/{chunk-H5PTF3Y4.js → chunk-4QCXUEAT.js} +11 -2
  6. package/dist/chunk-4QCXUEAT.js.map +1 -0
  7. package/dist/chunk-4RRMWXQ2.js +3522 -0
  8. package/dist/chunk-4RRMWXQ2.js.map +1 -0
  9. package/dist/chunk-5DP5XZH6.cjs +928 -0
  10. package/dist/chunk-5DP5XZH6.cjs.map +1 -0
  11. package/dist/{chunk-P6SCPDYW.js → chunk-5QUKZCEF.js} +112 -136
  12. package/dist/chunk-5QUKZCEF.js.map +1 -0
  13. package/dist/chunk-66YYHFGF.js +761 -0
  14. package/dist/chunk-66YYHFGF.js.map +1 -0
  15. package/dist/chunk-6GMFZ5LK.js +2774 -0
  16. package/dist/chunk-6GMFZ5LK.js.map +1 -0
  17. package/dist/chunk-6LUKYSWE.cjs +610 -0
  18. package/dist/chunk-6LUKYSWE.cjs.map +1 -0
  19. package/dist/chunk-743UIDHI.cjs +2013 -0
  20. package/dist/chunk-743UIDHI.cjs.map +1 -0
  21. package/dist/{chunk-OCWPVYNI.cjs → chunk-7NADHFD2.cjs} +3 -0
  22. package/dist/chunk-7NADHFD2.cjs.map +1 -0
  23. package/dist/chunk-7QEJ5QG5.js +151 -0
  24. package/dist/chunk-7QEJ5QG5.js.map +1 -0
  25. package/dist/chunk-A3AL7EWJ.js +83 -0
  26. package/dist/chunk-A3AL7EWJ.js.map +1 -0
  27. package/dist/{chunk-HFWCEP5S.js → chunk-A75S4TDD.js} +36 -11
  28. package/dist/chunk-A75S4TDD.js.map +1 -0
  29. package/dist/chunk-AK2FXLLB.cjs +849 -0
  30. package/dist/chunk-AK2FXLLB.cjs.map +1 -0
  31. package/dist/chunk-B2V3PUB7.js +591 -0
  32. package/dist/chunk-B2V3PUB7.js.map +1 -0
  33. package/dist/chunk-CY4TP3FK.js +16 -0
  34. package/dist/chunk-CY4TP3FK.js.map +1 -0
  35. package/dist/chunk-EMMSS5I5.cjs +37 -0
  36. package/dist/chunk-EMMSS5I5.cjs.map +1 -0
  37. package/dist/chunk-EMNGA4R4.js +845 -0
  38. package/dist/chunk-EMNGA4R4.js.map +1 -0
  39. package/dist/chunk-FALVL2VV.cjs +3525 -0
  40. package/dist/chunk-FALVL2VV.cjs.map +1 -0
  41. package/dist/chunk-FQNT7PI4.js +937 -0
  42. package/dist/chunk-FQNT7PI4.js.map +1 -0
  43. package/dist/chunk-G3PMV62Z.js +33 -0
  44. package/dist/chunk-G3PMV62Z.js.map +1 -0
  45. package/dist/chunk-G4PUALCE.cjs +28 -0
  46. package/dist/chunk-G4PUALCE.cjs.map +1 -0
  47. package/dist/chunk-GU4EWMZB.cjs +769 -0
  48. package/dist/chunk-GU4EWMZB.cjs.map +1 -0
  49. package/dist/chunk-GUI3CROV.cjs +159 -0
  50. package/dist/chunk-GUI3CROV.cjs.map +1 -0
  51. package/dist/chunk-HJQKWRKQ.cjs +764 -0
  52. package/dist/chunk-HJQKWRKQ.cjs.map +1 -0
  53. package/dist/{chunk-YWLUOY3D.cjs → chunk-HVBBFCDH.cjs} +1110 -793
  54. package/dist/chunk-HVBBFCDH.cjs.map +1 -0
  55. package/dist/chunk-HZJRQ5L3.cjs +1411 -0
  56. package/dist/chunk-HZJRQ5L3.cjs.map +1 -0
  57. package/dist/chunk-IGFMAZZ5.cjs +1150 -0
  58. package/dist/chunk-IGFMAZZ5.cjs.map +1 -0
  59. package/dist/chunk-IOQGI4ML.js +931 -0
  60. package/dist/chunk-IOQGI4ML.js.map +1 -0
  61. package/dist/{chunk-VPNDC2DI.cjs → chunk-IY34NOLA.cjs} +16 -14
  62. package/dist/chunk-IY34NOLA.cjs.map +1 -0
  63. package/dist/chunk-J7BPKKOG.cjs +163 -0
  64. package/dist/chunk-J7BPKKOG.cjs.map +1 -0
  65. package/dist/{chunk-YIOVBYZH.cjs → chunk-KNGXRN26.cjs} +48 -45
  66. package/dist/chunk-KNGXRN26.cjs.map +1 -0
  67. package/dist/{chunk-OR3CIE2H.js → chunk-KV6VHX4V.js} +29 -7
  68. package/dist/chunk-KV6VHX4V.js.map +1 -0
  69. package/dist/chunk-L265APUD.cjs +69 -0
  70. package/dist/chunk-L265APUD.cjs.map +1 -0
  71. package/dist/chunk-LF2ZLOFP.js +767 -0
  72. package/dist/chunk-LF2ZLOFP.js.map +1 -0
  73. package/dist/chunk-LYPU75T6.js +1147 -0
  74. package/dist/chunk-LYPU75T6.js.map +1 -0
  75. package/dist/chunk-M2YFWHSB.js +455 -0
  76. package/dist/chunk-M2YFWHSB.js.map +1 -0
  77. package/dist/chunk-MLGHQDZZ.js +15671 -0
  78. package/dist/chunk-MLGHQDZZ.js.map +1 -0
  79. package/dist/{chunk-NYN7KFXL.js → chunk-MMROOK5J.js} +3 -0
  80. package/dist/chunk-MMROOK5J.js.map +1 -0
  81. package/dist/{chunk-LIVAK2DM.js → chunk-N7F33WAD.js} +1083 -794
  82. package/dist/chunk-N7F33WAD.js.map +1 -0
  83. package/dist/chunk-NG5IVLEZ.js +1012 -0
  84. package/dist/chunk-NG5IVLEZ.js.map +1 -0
  85. package/dist/chunk-OGW6HHVI.js +1408 -0
  86. package/dist/chunk-OGW6HHVI.js.map +1 -0
  87. package/dist/chunk-OZLRIVC4.cjs +588 -0
  88. package/dist/chunk-OZLRIVC4.cjs.map +1 -0
  89. package/dist/chunk-P7CIEIJ3.js +925 -0
  90. package/dist/chunk-P7CIEIJ3.js.map +1 -0
  91. package/dist/chunk-P7RBMCBE.cjs +934 -0
  92. package/dist/chunk-P7RBMCBE.cjs.map +1 -0
  93. package/dist/chunk-PPYGWINI.cjs +2777 -0
  94. package/dist/chunk-PPYGWINI.cjs.map +1 -0
  95. package/dist/{chunk-MHKNLNAN.cjs → chunk-PWTXZZTR.cjs} +33 -10
  96. package/dist/chunk-PWTXZZTR.cjs.map +1 -0
  97. package/dist/chunk-R7NOGUZG.js +65 -0
  98. package/dist/chunk-R7NOGUZG.js.map +1 -0
  99. package/dist/chunk-RCHEPTZZ.js +2006 -0
  100. package/dist/chunk-RCHEPTZZ.js.map +1 -0
  101. package/dist/chunk-RE4RPXT2.cjs +18 -0
  102. package/dist/chunk-RE4RPXT2.cjs.map +1 -0
  103. package/dist/chunk-RW2D3G4K.cjs +470 -0
  104. package/dist/chunk-RW2D3G4K.cjs.map +1 -0
  105. package/dist/chunk-SIGXR3JT.cjs +1043 -0
  106. package/dist/chunk-SIGXR3JT.cjs.map +1 -0
  107. package/dist/chunk-SPLSYTYW.cjs +88 -0
  108. package/dist/chunk-SPLSYTYW.cjs.map +1 -0
  109. package/dist/chunk-SQY4T6EJ.js +571 -0
  110. package/dist/chunk-SQY4T6EJ.js.map +1 -0
  111. package/dist/{chunk-TJKLBTFB.js → chunk-SYRRSBGL.js} +51 -27
  112. package/dist/chunk-SYRRSBGL.js.map +1 -0
  113. package/dist/{chunk-BNEY4P4P.cjs → chunk-T3TIA3O6.cjs} +20 -18
  114. package/dist/chunk-T3TIA3O6.cjs.map +1 -0
  115. package/dist/{chunk-W7VCKPAD.js → chunk-TTHEEIZ3.js} +19 -16
  116. package/dist/chunk-TTHEEIZ3.js.map +1 -0
  117. package/dist/chunk-TVSIG4JE.cjs +940 -0
  118. package/dist/chunk-TVSIG4JE.cjs.map +1 -0
  119. package/dist/{chunk-C7564HUT.js → chunk-U46VIX2V.js} +6 -4
  120. package/dist/chunk-U46VIX2V.js.map +1 -0
  121. package/dist/{chunk-55DOQLP6.js → chunk-WHN4VX55.js} +5 -3
  122. package/dist/chunk-WHN4VX55.js.map +1 -0
  123. package/dist/chunk-WZC6CIVD.cjs +120 -0
  124. package/dist/chunk-WZC6CIVD.cjs.map +1 -0
  125. package/dist/chunk-YITREQVN.cjs +15707 -0
  126. package/dist/chunk-YITREQVN.cjs.map +1 -0
  127. package/dist/dist-26HWEQY6.js +3 -0
  128. package/dist/dist-26HWEQY6.js.map +1 -0
  129. package/dist/dist-3A5DXB37.cjs +20 -0
  130. package/dist/dist-3A5DXB37.cjs.map +1 -0
  131. package/dist/dist-3SJKQJGY.cjs +16 -0
  132. package/dist/dist-3SJKQJGY.cjs.map +1 -0
  133. package/dist/dist-4ZQSPE5K.js +3 -0
  134. package/dist/dist-4ZQSPE5K.js.map +1 -0
  135. package/dist/dist-5W5QNRTD.js +3 -0
  136. package/dist/dist-5W5QNRTD.js.map +1 -0
  137. package/dist/dist-653SRMPL.js +3 -0
  138. package/dist/dist-653SRMPL.js.map +1 -0
  139. package/dist/dist-6U6EFC5C.cjs +16 -0
  140. package/dist/dist-6U6EFC5C.cjs.map +1 -0
  141. package/dist/dist-7IHNNYMF.cjs +16 -0
  142. package/dist/dist-7IHNNYMF.cjs.map +1 -0
  143. package/dist/dist-B5IPRF6W.js +3 -0
  144. package/dist/dist-B5IPRF6W.js.map +1 -0
  145. package/dist/dist-EOMYFT4Y.cjs +16 -0
  146. package/dist/dist-EOMYFT4Y.cjs.map +1 -0
  147. package/dist/dist-EZZMMMNT.cjs +16 -0
  148. package/dist/dist-EZZMMMNT.cjs.map +1 -0
  149. package/dist/dist-F2ET4MNO.cjs +16 -0
  150. package/dist/dist-F2ET4MNO.cjs.map +1 -0
  151. package/dist/dist-H64VX6DE.js +3 -0
  152. package/dist/dist-H64VX6DE.js.map +1 -0
  153. package/dist/dist-HY7RMLJQ.cjs +16 -0
  154. package/dist/dist-HY7RMLJQ.cjs.map +1 -0
  155. package/dist/dist-M6S4P3FJ.js +3 -0
  156. package/dist/dist-M6S4P3FJ.js.map +1 -0
  157. package/dist/dist-NR7QSCQT.js +3 -0
  158. package/dist/dist-NR7QSCQT.js.map +1 -0
  159. package/dist/dist-QLFMCMCX.js +3 -0
  160. package/dist/dist-QLFMCMCX.js.map +1 -0
  161. package/dist/dist-UY46BFRP.js +3 -0
  162. package/dist/dist-UY46BFRP.js.map +1 -0
  163. package/dist/dist-WCQDRTIV.cjs +16 -0
  164. package/dist/dist-WCQDRTIV.cjs.map +1 -0
  165. package/dist/dist-WKYB3LTJ.cjs +16 -0
  166. package/dist/dist-WKYB3LTJ.cjs.map +1 -0
  167. package/dist/index.cjs +2 -0
  168. package/dist/index.cjs.map +1 -0
  169. package/dist/index.d.ts +1 -0
  170. package/dist/index.d.ts.map +1 -0
  171. package/dist/index.js +2 -0
  172. package/dist/index.js.map +1 -0
  173. package/dist/server/a2a/protocol.d.ts +8 -0
  174. package/dist/server/a2a/protocol.d.ts.map +1 -0
  175. package/dist/server/a2a/store.cjs +25 -0
  176. package/dist/server/a2a/store.cjs.map +1 -0
  177. package/dist/server/a2a/store.d.ts +14 -0
  178. package/dist/server/a2a/store.d.ts.map +1 -0
  179. package/dist/server/a2a/store.js +23 -0
  180. package/dist/server/a2a/store.js.map +1 -0
  181. package/dist/server/a2a/tasks.d.ts +20 -0
  182. package/dist/server/a2a/tasks.d.ts.map +1 -0
  183. package/dist/server/handlers/a2a.cjs +13 -11
  184. package/dist/server/handlers/a2a.cjs.map +1 -0
  185. package/dist/server/handlers/a2a.d.ts +68 -6
  186. package/dist/server/handlers/a2a.d.ts.map +1 -0
  187. package/dist/server/handlers/a2a.js +3 -1
  188. package/dist/server/handlers/a2a.js.map +1 -0
  189. package/dist/server/handlers/agent-builder.cjs +68 -0
  190. package/dist/server/handlers/agent-builder.cjs.map +1 -0
  191. package/dist/server/handlers/agent-builder.d.ts +87 -0
  192. package/dist/server/handlers/agent-builder.d.ts.map +1 -0
  193. package/dist/server/handlers/agent-builder.js +3 -0
  194. package/dist/server/handlers/agent-builder.js.map +1 -0
  195. package/dist/server/handlers/agents.cjs +37 -7
  196. package/dist/server/handlers/agents.cjs.map +1 -0
  197. package/dist/server/handlers/agents.d.ts +129 -6
  198. package/dist/server/handlers/agents.d.ts.map +1 -0
  199. package/dist/server/handlers/agents.js +3 -1
  200. package/dist/server/handlers/agents.js.map +1 -0
  201. package/dist/server/handlers/error.cjs +4 -2
  202. package/dist/server/handlers/error.cjs.map +1 -0
  203. package/dist/server/handlers/error.d.ts +2 -1
  204. package/dist/server/handlers/error.d.ts.map +1 -0
  205. package/dist/server/handlers/error.js +3 -1
  206. package/dist/server/handlers/error.js.map +1 -0
  207. package/dist/server/handlers/legacyWorkflows.cjs +13 -11
  208. package/dist/server/handlers/legacyWorkflows.cjs.map +1 -0
  209. package/dist/server/handlers/legacyWorkflows.d.ts +59 -10
  210. package/dist/server/handlers/legacyWorkflows.d.ts.map +1 -0
  211. package/dist/server/handlers/legacyWorkflows.js +3 -1
  212. package/dist/server/handlers/legacyWorkflows.js.map +1 -0
  213. package/dist/server/handlers/logs.cjs +6 -4
  214. package/dist/server/handlers/logs.cjs.map +1 -0
  215. package/dist/server/handlers/logs.d.ts +34 -3
  216. package/dist/server/handlers/logs.d.ts.map +1 -0
  217. package/dist/server/handlers/logs.js +3 -1
  218. package/dist/server/handlers/logs.js.map +1 -0
  219. package/dist/server/handlers/memory.cjs +39 -9
  220. package/dist/server/handlers/memory.cjs.map +1 -0
  221. package/dist/server/handlers/memory.d.ts +118 -8
  222. package/dist/server/handlers/memory.d.ts.map +1 -0
  223. package/dist/server/handlers/memory.js +3 -1
  224. package/dist/server/handlers/memory.js.map +1 -0
  225. package/dist/server/handlers/network.cjs +7 -5
  226. package/dist/server/handlers/network.cjs.map +1 -0
  227. package/dist/server/handlers/network.d.ts +50 -4
  228. package/dist/server/handlers/network.d.ts.map +1 -0
  229. package/dist/server/handlers/network.js +3 -1
  230. package/dist/server/handlers/network.js.map +1 -0
  231. package/dist/server/handlers/observability.cjs +16 -0
  232. package/dist/server/handlers/observability.cjs.map +1 -0
  233. package/dist/server/handlers/observability.d.ts +23 -0
  234. package/dist/server/handlers/observability.d.ts.map +1 -0
  235. package/dist/server/handlers/observability.js +3 -0
  236. package/dist/server/handlers/observability.js.map +1 -0
  237. package/dist/server/handlers/scores.cjs +32 -0
  238. package/dist/server/handlers/scores.cjs.map +1 -0
  239. package/dist/server/handlers/scores.d.ts +49 -0
  240. package/dist/server/handlers/scores.d.ts.map +1 -0
  241. package/dist/server/handlers/scores.js +3 -0
  242. package/dist/server/handlers/scores.js.map +1 -0
  243. package/dist/server/handlers/telemetry.cjs +9 -3
  244. package/dist/server/handlers/telemetry.cjs.map +1 -0
  245. package/dist/server/handlers/telemetry.d.ts +33 -2
  246. package/dist/server/handlers/telemetry.d.ts.map +1 -0
  247. package/dist/server/handlers/telemetry.js +3 -1
  248. package/dist/server/handlers/telemetry.js.map +1 -0
  249. package/dist/server/handlers/tools.cjs +11 -5
  250. package/dist/server/handlers/tools.cjs.map +1 -0
  251. package/dist/server/handlers/tools.d.ts +25 -4
  252. package/dist/server/handlers/tools.d.ts.map +1 -0
  253. package/dist/server/handlers/tools.js +3 -1
  254. package/dist/server/handlers/tools.js.map +1 -0
  255. package/dist/server/handlers/utils.cjs +8 -2
  256. package/dist/server/handlers/utils.cjs.map +1 -0
  257. package/dist/server/handlers/utils.d.ts +8 -1
  258. package/dist/server/handlers/utils.d.ts.map +1 -0
  259. package/dist/server/handlers/utils.js +3 -1
  260. package/dist/server/handlers/utils.js.map +1 -0
  261. package/dist/server/handlers/vNextNetwork.cjs +220 -0
  262. package/dist/server/handlers/vNextNetwork.cjs.map +1 -0
  263. package/dist/server/handlers/vNextNetwork.d.ts +179 -0
  264. package/dist/server/handlers/vNextNetwork.d.ts.map +1 -0
  265. package/dist/server/handlers/vNextNetwork.js +213 -0
  266. package/dist/server/handlers/vNextNetwork.js.map +1 -0
  267. package/dist/server/handlers/vector.cjs +9 -7
  268. package/dist/server/handlers/vector.cjs.map +1 -0
  269. package/dist/server/handlers/vector.d.ts +51 -6
  270. package/dist/server/handlers/vector.d.ts.map +1 -0
  271. package/dist/server/handlers/vector.js +3 -1
  272. package/dist/server/handlers/vector.js.map +1 -0
  273. package/dist/server/handlers/voice.cjs +10 -4
  274. package/dist/server/handlers/voice.cjs.map +1 -0
  275. package/dist/server/handlers/voice.d.ts +39 -3
  276. package/dist/server/handlers/voice.d.ts.map +1 -0
  277. package/dist/server/handlers/voice.js +3 -1
  278. package/dist/server/handlers/voice.js.map +1 -0
  279. package/dist/server/handlers/workflows.cjs +30 -12
  280. package/dist/server/handlers/workflows.cjs.map +1 -0
  281. package/dist/server/handlers/workflows.d.ts +73 -11
  282. package/dist/server/handlers/workflows.d.ts.map +1 -0
  283. package/dist/server/handlers/workflows.js +3 -1
  284. package/dist/server/handlers/workflows.js.map +1 -0
  285. package/dist/server/handlers.cjs +49 -32
  286. package/dist/server/handlers.cjs.map +1 -0
  287. package/dist/server/handlers.d.ts +15 -11
  288. package/dist/server/handlers.d.ts.map +1 -0
  289. package/dist/server/handlers.js +16 -11
  290. package/dist/server/handlers.js.map +1 -0
  291. package/dist/server/http-exception.d.ts +87 -0
  292. package/dist/server/http-exception.d.ts.map +1 -0
  293. package/dist/server/types.d.ts +10 -0
  294. package/dist/server/types.d.ts.map +1 -0
  295. package/dist/server/utils.d.ts +42 -0
  296. package/dist/server/utils.d.ts.map +1 -0
  297. package/package.json +51 -21
  298. package/dist/_tsup-dts-rollup.d.cts +0 -830
  299. package/dist/_tsup-dts-rollup.d.ts +0 -830
  300. package/dist/chunk-57CJTIPW.cjs +0 -18
  301. package/dist/chunk-64U3UDTH.cjs +0 -13
  302. package/dist/chunk-75ZPJI57.cjs +0 -9
  303. package/dist/chunk-A3KDUGS7.cjs +0 -239
  304. package/dist/chunk-DJJIUEL2.js +0 -211
  305. package/dist/chunk-DQLE3DVM.js +0 -49
  306. package/dist/chunk-J3PKLB3A.js +0 -231
  307. package/dist/chunk-KUNQFY2W.js +0 -365
  308. package/dist/chunk-M5ABIP7D.js +0 -11
  309. package/dist/chunk-MLKGABMK.js +0 -7
  310. package/dist/chunk-MMO2HDM6.cjs +0 -378
  311. package/dist/chunk-NEOOQUKW.cjs +0 -54
  312. package/dist/chunk-Y7UWRW5X.cjs +0 -221
  313. package/dist/chunk-YBVOQN4M.cjs +0 -94
  314. package/dist/chunk-ZE5AAC4I.cjs +0 -138
  315. package/dist/index.d.cts +0 -1
  316. package/dist/server/handlers/a2a.d.cts +0 -6
  317. package/dist/server/handlers/agents.d.cts +0 -6
  318. package/dist/server/handlers/error.d.cts +0 -1
  319. package/dist/server/handlers/legacyWorkflows.d.cts +0 -10
  320. package/dist/server/handlers/logs.d.cts +0 -3
  321. package/dist/server/handlers/memory.d.cts +0 -8
  322. package/dist/server/handlers/network.d.cts +0 -4
  323. package/dist/server/handlers/telemetry.d.cts +0 -2
  324. package/dist/server/handlers/tools.d.cts +0 -4
  325. package/dist/server/handlers/utils.d.cts +0 -1
  326. package/dist/server/handlers/vector.d.cts +0 -6
  327. package/dist/server/handlers/voice.d.cts +0 -3
  328. package/dist/server/handlers/workflows.d.cts +0 -11
  329. package/dist/server/handlers.d.cts +0 -11
@@ -0,0 +1,934 @@
1
+ 'use strict';
2
+
3
+ var chunkHVBBFCDH_cjs = require('./chunk-HVBBFCDH.cjs');
4
+ var v4 = require('zod/v4');
5
+
6
+ v4.z.object({
7
+ /**
8
+ * A unique identifier representing your end-user, which can help the provider to
9
+ * monitor and detect abuse.
10
+ */
11
+ user: v4.z.string().optional(),
12
+ /**
13
+ * Reasoning effort for reasoning models. Defaults to `medium`.
14
+ */
15
+ reasoningEffort: v4.z.string().optional()
16
+ });
17
+ var openaiCompatibleErrorDataSchema = v4.z.object({
18
+ error: v4.z.object({
19
+ message: v4.z.string(),
20
+ // The additional information below is handled loosely to support
21
+ // OpenAI-compatible providers that have slightly different error
22
+ // responses:
23
+ type: v4.z.string().nullish(),
24
+ param: v4.z.any().nullish(),
25
+ code: v4.z.union([v4.z.string(), v4.z.number()]).nullish()
26
+ })
27
+ });
28
+ var defaultOpenAICompatibleErrorStructure = {
29
+ errorSchema: openaiCompatibleErrorDataSchema,
30
+ errorToMessage: (data) => data.error.message
31
+ };
32
+ var openaiCompatibleTokenUsageSchema = v4.z.object({
33
+ prompt_tokens: v4.z.number().nullish(),
34
+ completion_tokens: v4.z.number().nullish(),
35
+ total_tokens: v4.z.number().nullish(),
36
+ prompt_tokens_details: v4.z.object({
37
+ cached_tokens: v4.z.number().nullish()
38
+ }).nullish(),
39
+ completion_tokens_details: v4.z.object({
40
+ reasoning_tokens: v4.z.number().nullish(),
41
+ accepted_prediction_tokens: v4.z.number().nullish(),
42
+ rejected_prediction_tokens: v4.z.number().nullish()
43
+ }).nullish()
44
+ }).nullish();
45
+ v4.z.object({
46
+ id: v4.z.string().nullish(),
47
+ created: v4.z.number().nullish(),
48
+ model: v4.z.string().nullish(),
49
+ choices: v4.z.array(
50
+ v4.z.object({
51
+ message: v4.z.object({
52
+ role: v4.z.literal("assistant").nullish(),
53
+ content: v4.z.string().nullish(),
54
+ reasoning_content: v4.z.string().nullish(),
55
+ reasoning: v4.z.string().nullish(),
56
+ tool_calls: v4.z.array(
57
+ v4.z.object({
58
+ id: v4.z.string().nullish(),
59
+ function: v4.z.object({
60
+ name: v4.z.string(),
61
+ arguments: v4.z.string()
62
+ })
63
+ })
64
+ ).nullish()
65
+ }),
66
+ finish_reason: v4.z.string().nullish()
67
+ })
68
+ ),
69
+ usage: openaiCompatibleTokenUsageSchema
70
+ });
71
+ v4.z.object({
72
+ /**
73
+ * Echo back the prompt in addition to the completion.
74
+ */
75
+ echo: v4.z.boolean().optional(),
76
+ /**
77
+ * Modify the likelihood of specified tokens appearing in the completion.
78
+ *
79
+ * Accepts a JSON object that maps tokens (specified by their token ID in
80
+ * the GPT tokenizer) to an associated bias value from -100 to 100.
81
+ */
82
+ logitBias: v4.z.record(v4.z.string(), v4.z.number()).optional(),
83
+ /**
84
+ * The suffix that comes after a completion of inserted text.
85
+ */
86
+ suffix: v4.z.string().optional(),
87
+ /**
88
+ * A unique identifier representing your end-user, which can help providers to
89
+ * monitor and detect abuse.
90
+ */
91
+ user: v4.z.string().optional()
92
+ });
93
+ var usageSchema = v4.z.object({
94
+ prompt_tokens: v4.z.number(),
95
+ completion_tokens: v4.z.number(),
96
+ total_tokens: v4.z.number()
97
+ });
98
+ v4.z.object({
99
+ id: v4.z.string().nullish(),
100
+ created: v4.z.number().nullish(),
101
+ model: v4.z.string().nullish(),
102
+ choices: v4.z.array(
103
+ v4.z.object({
104
+ text: v4.z.string(),
105
+ finish_reason: v4.z.string()
106
+ })
107
+ ),
108
+ usage: usageSchema.nullish()
109
+ });
110
+ v4.z.object({
111
+ /**
112
+ * The number of dimensions the resulting output embeddings should have.
113
+ * Only supported in text-embedding-3 and later models.
114
+ */
115
+ dimensions: v4.z.number().optional(),
116
+ /**
117
+ * A unique identifier representing your end-user, which can help providers to
118
+ * monitor and detect abuse.
119
+ */
120
+ user: v4.z.string().optional()
121
+ });
122
+ v4.z.object({
123
+ data: v4.z.array(v4.z.object({ embedding: v4.z.array(v4.z.number()) })),
124
+ usage: v4.z.object({ prompt_tokens: v4.z.number() }).nullish(),
125
+ providerMetadata: v4.z.record(v4.z.string(), v4.z.record(v4.z.string(), v4.z.any())).optional()
126
+ });
127
+ var OpenAICompatibleImageModel = class {
128
+ constructor(modelId, config) {
129
+ this.modelId = modelId;
130
+ this.config = config;
131
+ this.specificationVersion = "v2";
132
+ this.maxImagesPerCall = 10;
133
+ }
134
+ get provider() {
135
+ return this.config.provider;
136
+ }
137
+ async doGenerate({
138
+ prompt,
139
+ n,
140
+ size,
141
+ aspectRatio,
142
+ seed,
143
+ providerOptions,
144
+ headers,
145
+ abortSignal
146
+ }) {
147
+ var _a, _b, _c, _d, _e;
148
+ const warnings = [];
149
+ if (aspectRatio != null) {
150
+ warnings.push({
151
+ type: "unsupported-setting",
152
+ setting: "aspectRatio",
153
+ details: "This model does not support aspect ratio. Use `size` instead."
154
+ });
155
+ }
156
+ if (seed != null) {
157
+ warnings.push({ type: "unsupported-setting", setting: "seed" });
158
+ }
159
+ const currentDate = (_c = (_b = (_a = this.config._internal) == null ? void 0 : _a.currentDate) == null ? void 0 : _b.call(_a)) != null ? _c : /* @__PURE__ */ new Date();
160
+ const { value: response, responseHeaders } = await chunkHVBBFCDH_cjs.postJsonToApi({
161
+ url: this.config.url({
162
+ path: "/images/generations",
163
+ modelId: this.modelId
164
+ }),
165
+ headers: chunkHVBBFCDH_cjs.combineHeaders(this.config.headers(), headers),
166
+ body: {
167
+ model: this.modelId,
168
+ prompt,
169
+ n,
170
+ size,
171
+ ...(_d = providerOptions.openai) != null ? _d : {},
172
+ response_format: "b64_json"
173
+ },
174
+ failedResponseHandler: chunkHVBBFCDH_cjs.createJsonErrorResponseHandler(
175
+ (_e = this.config.errorStructure) != null ? _e : defaultOpenAICompatibleErrorStructure
176
+ ),
177
+ successfulResponseHandler: chunkHVBBFCDH_cjs.createJsonResponseHandler(
178
+ openaiCompatibleImageResponseSchema
179
+ ),
180
+ abortSignal,
181
+ fetch: this.config.fetch
182
+ });
183
+ return {
184
+ images: response.data.map((item) => item.b64_json),
185
+ warnings,
186
+ response: {
187
+ timestamp: currentDate,
188
+ modelId: this.modelId,
189
+ headers: responseHeaders
190
+ }
191
+ };
192
+ }
193
+ };
194
+ var openaiCompatibleImageResponseSchema = v4.z.object({
195
+ data: v4.z.array(v4.z.object({ b64_json: v4.z.string() }))
196
+ });
197
+ function convertToXaiChatMessages(prompt) {
198
+ const messages = [];
199
+ const warnings = [];
200
+ for (const { role, content } of prompt) {
201
+ switch (role) {
202
+ case "system": {
203
+ messages.push({ role: "system", content });
204
+ break;
205
+ }
206
+ case "user": {
207
+ if (content.length === 1 && content[0].type === "text") {
208
+ messages.push({ role: "user", content: content[0].text });
209
+ break;
210
+ }
211
+ messages.push({
212
+ role: "user",
213
+ content: content.map((part) => {
214
+ switch (part.type) {
215
+ case "text": {
216
+ return { type: "text", text: part.text };
217
+ }
218
+ case "file": {
219
+ if (part.mediaType.startsWith("image/")) {
220
+ const mediaType = part.mediaType === "image/*" ? "image/jpeg" : part.mediaType;
221
+ return {
222
+ type: "image_url",
223
+ image_url: {
224
+ url: part.data instanceof URL ? part.data.toString() : `data:${mediaType};base64,${chunkHVBBFCDH_cjs.convertToBase64(part.data)}`
225
+ }
226
+ };
227
+ } else {
228
+ throw new chunkHVBBFCDH_cjs.UnsupportedFunctionalityError({
229
+ functionality: `file part media type ${part.mediaType}`
230
+ });
231
+ }
232
+ }
233
+ }
234
+ })
235
+ });
236
+ break;
237
+ }
238
+ case "assistant": {
239
+ let text = "";
240
+ const toolCalls = [];
241
+ for (const part of content) {
242
+ switch (part.type) {
243
+ case "text": {
244
+ text += part.text;
245
+ break;
246
+ }
247
+ case "tool-call": {
248
+ toolCalls.push({
249
+ id: part.toolCallId,
250
+ type: "function",
251
+ function: {
252
+ name: part.toolName,
253
+ arguments: JSON.stringify(part.input)
254
+ }
255
+ });
256
+ break;
257
+ }
258
+ }
259
+ }
260
+ messages.push({
261
+ role: "assistant",
262
+ content: text,
263
+ tool_calls: toolCalls.length > 0 ? toolCalls : void 0
264
+ });
265
+ break;
266
+ }
267
+ case "tool": {
268
+ for (const toolResponse of content) {
269
+ const output = toolResponse.output;
270
+ let contentValue;
271
+ switch (output.type) {
272
+ case "text":
273
+ case "error-text":
274
+ contentValue = output.value;
275
+ break;
276
+ case "content":
277
+ case "json":
278
+ case "error-json":
279
+ contentValue = JSON.stringify(output.value);
280
+ break;
281
+ }
282
+ messages.push({
283
+ role: "tool",
284
+ tool_call_id: toolResponse.toolCallId,
285
+ content: contentValue
286
+ });
287
+ }
288
+ break;
289
+ }
290
+ default: {
291
+ const _exhaustiveCheck = role;
292
+ throw new Error(`Unsupported role: ${_exhaustiveCheck}`);
293
+ }
294
+ }
295
+ }
296
+ return { messages, warnings };
297
+ }
298
+ function getResponseMetadata({
299
+ id,
300
+ model,
301
+ created
302
+ }) {
303
+ return {
304
+ id: id != null ? id : void 0,
305
+ modelId: model != null ? model : void 0,
306
+ timestamp: created != null ? new Date(created * 1e3) : void 0
307
+ };
308
+ }
309
+ function mapXaiFinishReason(finishReason) {
310
+ switch (finishReason) {
311
+ case "stop":
312
+ return "stop";
313
+ case "length":
314
+ return "length";
315
+ case "tool_calls":
316
+ case "function_call":
317
+ return "tool-calls";
318
+ case "content_filter":
319
+ return "content-filter";
320
+ default:
321
+ return "unknown";
322
+ }
323
+ }
324
+ var webSourceSchema = v4.z.object({
325
+ type: v4.z.literal("web"),
326
+ country: v4.z.string().length(2).optional(),
327
+ excludedWebsites: v4.z.array(v4.z.string()).max(5).optional(),
328
+ allowedWebsites: v4.z.array(v4.z.string()).max(5).optional(),
329
+ safeSearch: v4.z.boolean().optional()
330
+ });
331
+ var xSourceSchema = v4.z.object({
332
+ type: v4.z.literal("x"),
333
+ xHandles: v4.z.array(v4.z.string()).optional()
334
+ });
335
+ var newsSourceSchema = v4.z.object({
336
+ type: v4.z.literal("news"),
337
+ country: v4.z.string().length(2).optional(),
338
+ excludedWebsites: v4.z.array(v4.z.string()).max(5).optional(),
339
+ safeSearch: v4.z.boolean().optional()
340
+ });
341
+ var rssSourceSchema = v4.z.object({
342
+ type: v4.z.literal("rss"),
343
+ links: v4.z.array(v4.z.string().url()).max(1)
344
+ // currently only supports one RSS link
345
+ });
346
+ var searchSourceSchema = v4.z.discriminatedUnion("type", [
347
+ webSourceSchema,
348
+ xSourceSchema,
349
+ newsSourceSchema,
350
+ rssSourceSchema
351
+ ]);
352
+ var xaiProviderOptions = v4.z.object({
353
+ /**
354
+ * reasoning effort for reasoning models
355
+ * only supported by grok-3-mini and grok-3-mini-fast models
356
+ */
357
+ reasoningEffort: v4.z.enum(["low", "high"]).optional(),
358
+ searchParameters: v4.z.object({
359
+ /**
360
+ * search mode preference
361
+ * - "off": disables search completely
362
+ * - "auto": model decides whether to search (default)
363
+ * - "on": always enables search
364
+ */
365
+ mode: v4.z.enum(["off", "auto", "on"]),
366
+ /**
367
+ * whether to return citations in the response
368
+ * defaults to true
369
+ */
370
+ returnCitations: v4.z.boolean().optional(),
371
+ /**
372
+ * start date for search data (ISO8601 format: YYYY-MM-DD)
373
+ */
374
+ fromDate: v4.z.string().optional(),
375
+ /**
376
+ * end date for search data (ISO8601 format: YYYY-MM-DD)
377
+ */
378
+ toDate: v4.z.string().optional(),
379
+ /**
380
+ * maximum number of search results to consider
381
+ * defaults to 20
382
+ */
383
+ maxSearchResults: v4.z.number().min(1).max(50).optional(),
384
+ /**
385
+ * data sources to search from
386
+ * defaults to ["web", "x"] if not specified
387
+ */
388
+ sources: v4.z.array(searchSourceSchema).optional()
389
+ }).optional()
390
+ });
391
+ var xaiErrorDataSchema = v4.z.object({
392
+ error: v4.z.object({
393
+ message: v4.z.string(),
394
+ type: v4.z.string().nullish(),
395
+ param: v4.z.any().nullish(),
396
+ code: v4.z.union([v4.z.string(), v4.z.number()]).nullish()
397
+ })
398
+ });
399
+ var xaiFailedResponseHandler = chunkHVBBFCDH_cjs.createJsonErrorResponseHandler({
400
+ errorSchema: xaiErrorDataSchema,
401
+ errorToMessage: (data) => data.error.message
402
+ });
403
+ function prepareTools({
404
+ tools,
405
+ toolChoice
406
+ }) {
407
+ tools = (tools == null ? void 0 : tools.length) ? tools : void 0;
408
+ const toolWarnings = [];
409
+ if (tools == null) {
410
+ return { tools: void 0, toolChoice: void 0, toolWarnings };
411
+ }
412
+ const xaiTools = [];
413
+ for (const tool of tools) {
414
+ if (tool.type === "provider-defined") {
415
+ toolWarnings.push({ type: "unsupported-tool", tool });
416
+ } else {
417
+ xaiTools.push({
418
+ type: "function",
419
+ function: {
420
+ name: tool.name,
421
+ description: tool.description,
422
+ parameters: tool.inputSchema
423
+ }
424
+ });
425
+ }
426
+ }
427
+ if (toolChoice == null) {
428
+ return { tools: xaiTools, toolChoice: void 0, toolWarnings };
429
+ }
430
+ const type = toolChoice.type;
431
+ switch (type) {
432
+ case "auto":
433
+ case "none":
434
+ return { tools: xaiTools, toolChoice: type, toolWarnings };
435
+ case "required":
436
+ return { tools: xaiTools, toolChoice: "required", toolWarnings };
437
+ case "tool":
438
+ return {
439
+ tools: xaiTools,
440
+ toolChoice: {
441
+ type: "function",
442
+ function: { name: toolChoice.toolName }
443
+ },
444
+ toolWarnings
445
+ };
446
+ default: {
447
+ const _exhaustiveCheck = type;
448
+ throw new chunkHVBBFCDH_cjs.UnsupportedFunctionalityError({
449
+ functionality: `tool choice type: ${_exhaustiveCheck}`
450
+ });
451
+ }
452
+ }
453
+ }
454
+ var XaiChatLanguageModel = class {
455
+ constructor(modelId, config) {
456
+ this.specificationVersion = "v2";
457
+ this.supportedUrls = {
458
+ "image/*": [/^https?:\/\/.*$/]
459
+ };
460
+ this.modelId = modelId;
461
+ this.config = config;
462
+ }
463
+ get provider() {
464
+ return this.config.provider;
465
+ }
466
+ async getArgs({
467
+ prompt,
468
+ maxOutputTokens,
469
+ temperature,
470
+ topP,
471
+ topK,
472
+ frequencyPenalty,
473
+ presencePenalty,
474
+ stopSequences,
475
+ seed,
476
+ responseFormat,
477
+ providerOptions,
478
+ tools,
479
+ toolChoice
480
+ }) {
481
+ var _a, _b, _c;
482
+ const warnings = [];
483
+ const options = (_a = await chunkHVBBFCDH_cjs.parseProviderOptions({
484
+ provider: "xai",
485
+ providerOptions,
486
+ schema: xaiProviderOptions
487
+ })) != null ? _a : {};
488
+ if (topK != null) {
489
+ warnings.push({
490
+ type: "unsupported-setting",
491
+ setting: "topK"
492
+ });
493
+ }
494
+ if (frequencyPenalty != null) {
495
+ warnings.push({
496
+ type: "unsupported-setting",
497
+ setting: "frequencyPenalty"
498
+ });
499
+ }
500
+ if (presencePenalty != null) {
501
+ warnings.push({
502
+ type: "unsupported-setting",
503
+ setting: "presencePenalty"
504
+ });
505
+ }
506
+ if (stopSequences != null) {
507
+ warnings.push({
508
+ type: "unsupported-setting",
509
+ setting: "stopSequences"
510
+ });
511
+ }
512
+ if (responseFormat != null && responseFormat.type === "json" && responseFormat.schema != null) {
513
+ warnings.push({
514
+ type: "unsupported-setting",
515
+ setting: "responseFormat",
516
+ details: "JSON response format schema is not supported"
517
+ });
518
+ }
519
+ const { messages, warnings: messageWarnings } = convertToXaiChatMessages(prompt);
520
+ warnings.push(...messageWarnings);
521
+ const {
522
+ tools: xaiTools,
523
+ toolChoice: xaiToolChoice,
524
+ toolWarnings
525
+ } = prepareTools({
526
+ tools,
527
+ toolChoice
528
+ });
529
+ warnings.push(...toolWarnings);
530
+ const baseArgs = {
531
+ // model id
532
+ model: this.modelId,
533
+ // standard generation settings
534
+ max_tokens: maxOutputTokens,
535
+ temperature,
536
+ top_p: topP,
537
+ seed,
538
+ reasoning_effort: options.reasoningEffort,
539
+ // response format
540
+ response_format: (responseFormat == null ? void 0 : responseFormat.type) === "json" ? responseFormat.schema != null ? {
541
+ type: "json_schema",
542
+ json_schema: {
543
+ name: (_b = responseFormat.name) != null ? _b : "response",
544
+ schema: responseFormat.schema,
545
+ strict: true
546
+ }
547
+ } : { type: "json_object" } : void 0,
548
+ // search parameters
549
+ search_parameters: options.searchParameters ? {
550
+ mode: options.searchParameters.mode,
551
+ return_citations: options.searchParameters.returnCitations,
552
+ from_date: options.searchParameters.fromDate,
553
+ to_date: options.searchParameters.toDate,
554
+ max_search_results: options.searchParameters.maxSearchResults,
555
+ sources: (_c = options.searchParameters.sources) == null ? void 0 : _c.map((source) => ({
556
+ type: source.type,
557
+ ...source.type === "web" && {
558
+ country: source.country,
559
+ excluded_websites: source.excludedWebsites,
560
+ allowed_websites: source.allowedWebsites,
561
+ safe_search: source.safeSearch
562
+ },
563
+ ...source.type === "x" && {
564
+ x_handles: source.xHandles
565
+ },
566
+ ...source.type === "news" && {
567
+ country: source.country,
568
+ excluded_websites: source.excludedWebsites,
569
+ safe_search: source.safeSearch
570
+ },
571
+ ...source.type === "rss" && {
572
+ links: source.links
573
+ }
574
+ }))
575
+ } : void 0,
576
+ // messages in xai format
577
+ messages,
578
+ // tools in xai format
579
+ tools: xaiTools,
580
+ tool_choice: xaiToolChoice
581
+ };
582
+ return {
583
+ args: baseArgs,
584
+ warnings
585
+ };
586
+ }
587
+ async doGenerate(options) {
588
+ var _a, _b, _c;
589
+ const { args: body, warnings } = await this.getArgs(options);
590
+ const {
591
+ responseHeaders,
592
+ value: response,
593
+ rawValue: rawResponse
594
+ } = await chunkHVBBFCDH_cjs.postJsonToApi({
595
+ url: `${(_a = this.config.baseURL) != null ? _a : "https://api.x.ai/v1"}/chat/completions`,
596
+ headers: chunkHVBBFCDH_cjs.combineHeaders(this.config.headers(), options.headers),
597
+ body,
598
+ failedResponseHandler: xaiFailedResponseHandler,
599
+ successfulResponseHandler: chunkHVBBFCDH_cjs.createJsonResponseHandler(
600
+ xaiChatResponseSchema
601
+ ),
602
+ abortSignal: options.abortSignal,
603
+ fetch: this.config.fetch
604
+ });
605
+ const choice = response.choices[0];
606
+ const content = [];
607
+ if (choice.message.content != null && choice.message.content.length > 0) {
608
+ let text = choice.message.content;
609
+ const lastMessage = body.messages[body.messages.length - 1];
610
+ if ((lastMessage == null ? void 0 : lastMessage.role) === "assistant" && text === lastMessage.content) {
611
+ text = "";
612
+ }
613
+ if (text.length > 0) {
614
+ content.push({ type: "text", text });
615
+ }
616
+ }
617
+ if (choice.message.reasoning_content != null && choice.message.reasoning_content.length > 0) {
618
+ content.push({
619
+ type: "reasoning",
620
+ text: choice.message.reasoning_content
621
+ });
622
+ }
623
+ if (choice.message.tool_calls != null) {
624
+ for (const toolCall of choice.message.tool_calls) {
625
+ content.push({
626
+ type: "tool-call",
627
+ toolCallId: toolCall.id,
628
+ toolName: toolCall.function.name,
629
+ input: toolCall.function.arguments
630
+ });
631
+ }
632
+ }
633
+ if (response.citations != null) {
634
+ for (const url of response.citations) {
635
+ content.push({
636
+ type: "source",
637
+ sourceType: "url",
638
+ id: this.config.generateId(),
639
+ url
640
+ });
641
+ }
642
+ }
643
+ return {
644
+ content,
645
+ finishReason: mapXaiFinishReason(choice.finish_reason),
646
+ usage: {
647
+ inputTokens: response.usage.prompt_tokens,
648
+ outputTokens: response.usage.completion_tokens,
649
+ totalTokens: response.usage.total_tokens,
650
+ reasoningTokens: (_c = (_b = response.usage.completion_tokens_details) == null ? void 0 : _b.reasoning_tokens) != null ? _c : void 0
651
+ },
652
+ request: { body },
653
+ response: {
654
+ ...getResponseMetadata(response),
655
+ headers: responseHeaders,
656
+ body: rawResponse
657
+ },
658
+ warnings
659
+ };
660
+ }
661
+ async doStream(options) {
662
+ var _a;
663
+ const { args, warnings } = await this.getArgs(options);
664
+ const body = {
665
+ ...args,
666
+ stream: true,
667
+ stream_options: {
668
+ include_usage: true
669
+ }
670
+ };
671
+ const { responseHeaders, value: response } = await chunkHVBBFCDH_cjs.postJsonToApi({
672
+ url: `${(_a = this.config.baseURL) != null ? _a : "https://api.x.ai/v1"}/chat/completions`,
673
+ headers: chunkHVBBFCDH_cjs.combineHeaders(this.config.headers(), options.headers),
674
+ body,
675
+ failedResponseHandler: xaiFailedResponseHandler,
676
+ successfulResponseHandler: chunkHVBBFCDH_cjs.createEventSourceResponseHandler(xaiChatChunkSchema),
677
+ abortSignal: options.abortSignal,
678
+ fetch: this.config.fetch
679
+ });
680
+ let finishReason = "unknown";
681
+ const usage = {
682
+ inputTokens: void 0,
683
+ outputTokens: void 0,
684
+ totalTokens: void 0
685
+ };
686
+ let isFirstChunk = true;
687
+ const contentBlocks = {};
688
+ const lastReasoningDeltas = {};
689
+ const self = this;
690
+ return {
691
+ stream: response.pipeThrough(
692
+ new TransformStream({
693
+ start(controller) {
694
+ controller.enqueue({ type: "stream-start", warnings });
695
+ },
696
+ transform(chunk, controller) {
697
+ var _a2, _b;
698
+ if (options.includeRawChunks) {
699
+ controller.enqueue({ type: "raw", rawValue: chunk.rawValue });
700
+ }
701
+ if (!chunk.success) {
702
+ controller.enqueue({ type: "error", error: chunk.error });
703
+ return;
704
+ }
705
+ const value = chunk.value;
706
+ if (isFirstChunk) {
707
+ controller.enqueue({
708
+ type: "response-metadata",
709
+ ...getResponseMetadata(value)
710
+ });
711
+ isFirstChunk = false;
712
+ }
713
+ if (value.citations != null) {
714
+ for (const url of value.citations) {
715
+ controller.enqueue({
716
+ type: "source",
717
+ sourceType: "url",
718
+ id: self.config.generateId(),
719
+ url
720
+ });
721
+ }
722
+ }
723
+ if (value.usage != null) {
724
+ usage.inputTokens = value.usage.prompt_tokens;
725
+ usage.outputTokens = value.usage.completion_tokens;
726
+ usage.totalTokens = value.usage.total_tokens;
727
+ usage.reasoningTokens = (_b = (_a2 = value.usage.completion_tokens_details) == null ? void 0 : _a2.reasoning_tokens) != null ? _b : void 0;
728
+ }
729
+ const choice = value.choices[0];
730
+ if ((choice == null ? void 0 : choice.finish_reason) != null) {
731
+ finishReason = mapXaiFinishReason(choice.finish_reason);
732
+ }
733
+ if ((choice == null ? void 0 : choice.delta) == null) {
734
+ return;
735
+ }
736
+ const delta = choice.delta;
737
+ const choiceIndex = choice.index;
738
+ if (delta.content != null && delta.content.length > 0) {
739
+ const textContent = delta.content;
740
+ const lastMessage = body.messages[body.messages.length - 1];
741
+ if ((lastMessage == null ? void 0 : lastMessage.role) === "assistant" && textContent === lastMessage.content) {
742
+ return;
743
+ }
744
+ const blockId = `text-${value.id || choiceIndex}`;
745
+ if (contentBlocks[blockId] == null) {
746
+ contentBlocks[blockId] = { type: "text" };
747
+ controller.enqueue({
748
+ type: "text-start",
749
+ id: blockId
750
+ });
751
+ }
752
+ controller.enqueue({
753
+ type: "text-delta",
754
+ id: blockId,
755
+ delta: textContent
756
+ });
757
+ }
758
+ if (delta.reasoning_content != null && delta.reasoning_content.length > 0) {
759
+ const blockId = `reasoning-${value.id || choiceIndex}`;
760
+ if (lastReasoningDeltas[blockId] === delta.reasoning_content) {
761
+ return;
762
+ }
763
+ lastReasoningDeltas[blockId] = delta.reasoning_content;
764
+ if (contentBlocks[blockId] == null) {
765
+ contentBlocks[blockId] = { type: "reasoning" };
766
+ controller.enqueue({
767
+ type: "reasoning-start",
768
+ id: blockId
769
+ });
770
+ }
771
+ controller.enqueue({
772
+ type: "reasoning-delta",
773
+ id: blockId,
774
+ delta: delta.reasoning_content
775
+ });
776
+ }
777
+ if (delta.tool_calls != null) {
778
+ for (const toolCall of delta.tool_calls) {
779
+ const toolCallId = toolCall.id;
780
+ controller.enqueue({
781
+ type: "tool-input-start",
782
+ id: toolCallId,
783
+ toolName: toolCall.function.name
784
+ });
785
+ controller.enqueue({
786
+ type: "tool-input-delta",
787
+ id: toolCallId,
788
+ delta: toolCall.function.arguments
789
+ });
790
+ controller.enqueue({
791
+ type: "tool-input-end",
792
+ id: toolCallId
793
+ });
794
+ controller.enqueue({
795
+ type: "tool-call",
796
+ toolCallId,
797
+ toolName: toolCall.function.name,
798
+ input: toolCall.function.arguments
799
+ });
800
+ }
801
+ }
802
+ },
803
+ flush(controller) {
804
+ for (const [blockId, block] of Object.entries(contentBlocks)) {
805
+ controller.enqueue({
806
+ type: block.type === "text" ? "text-end" : "reasoning-end",
807
+ id: blockId
808
+ });
809
+ }
810
+ controller.enqueue({ type: "finish", finishReason, usage });
811
+ }
812
+ })
813
+ ),
814
+ request: { body },
815
+ response: { headers: responseHeaders }
816
+ };
817
+ }
818
+ };
819
+ var xaiUsageSchema = v4.z.object({
820
+ prompt_tokens: v4.z.number(),
821
+ completion_tokens: v4.z.number(),
822
+ total_tokens: v4.z.number(),
823
+ completion_tokens_details: v4.z.object({
824
+ reasoning_tokens: v4.z.number().nullish()
825
+ }).nullish()
826
+ });
827
+ var xaiChatResponseSchema = v4.z.object({
828
+ id: v4.z.string().nullish(),
829
+ created: v4.z.number().nullish(),
830
+ model: v4.z.string().nullish(),
831
+ choices: v4.z.array(
832
+ v4.z.object({
833
+ message: v4.z.object({
834
+ role: v4.z.literal("assistant"),
835
+ content: v4.z.string().nullish(),
836
+ reasoning_content: v4.z.string().nullish(),
837
+ tool_calls: v4.z.array(
838
+ v4.z.object({
839
+ id: v4.z.string(),
840
+ type: v4.z.literal("function"),
841
+ function: v4.z.object({
842
+ name: v4.z.string(),
843
+ arguments: v4.z.string()
844
+ })
845
+ })
846
+ ).nullish()
847
+ }),
848
+ index: v4.z.number(),
849
+ finish_reason: v4.z.string().nullish()
850
+ })
851
+ ),
852
+ object: v4.z.literal("chat.completion"),
853
+ usage: xaiUsageSchema,
854
+ citations: v4.z.array(v4.z.string().url()).nullish()
855
+ });
856
+ var xaiChatChunkSchema = v4.z.object({
857
+ id: v4.z.string().nullish(),
858
+ created: v4.z.number().nullish(),
859
+ model: v4.z.string().nullish(),
860
+ choices: v4.z.array(
861
+ v4.z.object({
862
+ delta: v4.z.object({
863
+ role: v4.z.enum(["assistant"]).optional(),
864
+ content: v4.z.string().nullish(),
865
+ reasoning_content: v4.z.string().nullish(),
866
+ tool_calls: v4.z.array(
867
+ v4.z.object({
868
+ id: v4.z.string(),
869
+ type: v4.z.literal("function"),
870
+ function: v4.z.object({
871
+ name: v4.z.string(),
872
+ arguments: v4.z.string()
873
+ })
874
+ })
875
+ ).nullish()
876
+ }),
877
+ finish_reason: v4.z.string().nullish(),
878
+ index: v4.z.number()
879
+ })
880
+ ),
881
+ usage: xaiUsageSchema.nullish(),
882
+ citations: v4.z.array(v4.z.string().url()).nullish()
883
+ });
884
+ var xaiErrorStructure = {
885
+ errorSchema: xaiErrorDataSchema,
886
+ errorToMessage: (data) => data.error.message
887
+ };
888
+ function createXai(options = {}) {
889
+ var _a;
890
+ const baseURL = chunkHVBBFCDH_cjs.withoutTrailingSlash(
891
+ (_a = options.baseURL) != null ? _a : "https://api.x.ai/v1"
892
+ );
893
+ const getHeaders = () => ({
894
+ Authorization: `Bearer ${chunkHVBBFCDH_cjs.loadApiKey({
895
+ apiKey: options.apiKey,
896
+ environmentVariableName: "XAI_API_KEY",
897
+ description: "xAI API key"
898
+ })}`,
899
+ ...options.headers
900
+ });
901
+ const createLanguageModel = (modelId) => {
902
+ return new XaiChatLanguageModel(modelId, {
903
+ provider: "xai.chat",
904
+ baseURL,
905
+ headers: getHeaders,
906
+ generateId: chunkHVBBFCDH_cjs.generateId,
907
+ fetch: options.fetch
908
+ });
909
+ };
910
+ const createImageModel = (modelId) => {
911
+ return new OpenAICompatibleImageModel(modelId, {
912
+ provider: "xai.image",
913
+ url: ({ path }) => `${baseURL}${path}`,
914
+ headers: getHeaders,
915
+ fetch: options.fetch,
916
+ errorStructure: xaiErrorStructure
917
+ });
918
+ };
919
+ const provider = (modelId) => createLanguageModel(modelId);
920
+ provider.languageModel = createLanguageModel;
921
+ provider.chat = createLanguageModel;
922
+ provider.textEmbeddingModel = (modelId) => {
923
+ throw new chunkHVBBFCDH_cjs.NoSuchModelError({ modelId, modelType: "textEmbeddingModel" });
924
+ };
925
+ provider.imageModel = createImageModel;
926
+ provider.image = createImageModel;
927
+ return provider;
928
+ }
929
+ var xai = createXai();
930
+
931
+ exports.createXai = createXai;
932
+ exports.xai = xai;
933
+ //# sourceMappingURL=chunk-P7RBMCBE.cjs.map
934
+ //# sourceMappingURL=chunk-P7RBMCBE.cjs.map