@mastra/server 0.0.0-remove-cloud-span-transform-20250425214156 → 0.0.0-remove-unused-import-20250909212718

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 (334) hide show
  1. package/CHANGELOG.md +3541 -0
  2. package/LICENSE.md +11 -42
  3. package/README.md +48 -135
  4. package/dist/chunk-3THIIWWW.cjs +484 -0
  5. package/dist/chunk-3THIIWWW.cjs.map +1 -0
  6. package/dist/{chunk-L7XE5QTW.js → chunk-4QCXUEAT.js} +11 -2
  7. package/dist/chunk-4QCXUEAT.js.map +1 -0
  8. package/dist/chunk-4RRMWXQ2.js +3522 -0
  9. package/dist/chunk-4RRMWXQ2.js.map +1 -0
  10. package/dist/chunk-5DP5XZH6.cjs +928 -0
  11. package/dist/chunk-5DP5XZH6.cjs.map +1 -0
  12. package/dist/chunk-5QUKZCEF.js +476 -0
  13. package/dist/chunk-5QUKZCEF.js.map +1 -0
  14. package/dist/chunk-66YYHFGF.js +761 -0
  15. package/dist/chunk-66YYHFGF.js.map +1 -0
  16. package/dist/chunk-6GMFZ5LK.js +2774 -0
  17. package/dist/chunk-6GMFZ5LK.js.map +1 -0
  18. package/dist/chunk-6LUKYSWE.cjs +610 -0
  19. package/dist/chunk-6LUKYSWE.cjs.map +1 -0
  20. package/dist/chunk-743UIDHI.cjs +2013 -0
  21. package/dist/chunk-743UIDHI.cjs.map +1 -0
  22. package/dist/{chunk-FV45V6WC.cjs → chunk-7NADHFD2.cjs} +3 -7
  23. package/dist/chunk-7NADHFD2.cjs.map +1 -0
  24. package/dist/chunk-7QEJ5QG5.js +151 -0
  25. package/dist/chunk-7QEJ5QG5.js.map +1 -0
  26. package/dist/chunk-A3AL7EWJ.js +83 -0
  27. package/dist/chunk-A3AL7EWJ.js.map +1 -0
  28. package/dist/{chunk-Q6SHQECN.js → chunk-A75S4TDD.js} +36 -10
  29. package/dist/chunk-A75S4TDD.js.map +1 -0
  30. package/dist/chunk-AK2FXLLB.cjs +849 -0
  31. package/dist/chunk-AK2FXLLB.cjs.map +1 -0
  32. package/dist/chunk-B2V3PUB7.js +591 -0
  33. package/dist/chunk-B2V3PUB7.js.map +1 -0
  34. package/dist/chunk-CY4TP3FK.js +16 -0
  35. package/dist/chunk-CY4TP3FK.js.map +1 -0
  36. package/dist/chunk-EMMSS5I5.cjs +37 -0
  37. package/dist/chunk-EMMSS5I5.cjs.map +1 -0
  38. package/dist/chunk-EMNGA4R4.js +845 -0
  39. package/dist/chunk-EMNGA4R4.js.map +1 -0
  40. package/dist/chunk-FALVL2VV.cjs +3525 -0
  41. package/dist/chunk-FALVL2VV.cjs.map +1 -0
  42. package/dist/chunk-FQNT7PI4.js +937 -0
  43. package/dist/chunk-FQNT7PI4.js.map +1 -0
  44. package/dist/chunk-G3PMV62Z.js +33 -0
  45. package/dist/chunk-G3PMV62Z.js.map +1 -0
  46. package/dist/chunk-G4PUALCE.cjs +28 -0
  47. package/dist/chunk-G4PUALCE.cjs.map +1 -0
  48. package/dist/chunk-GU4EWMZB.cjs +769 -0
  49. package/dist/chunk-GU4EWMZB.cjs.map +1 -0
  50. package/dist/chunk-GUI3CROV.cjs +159 -0
  51. package/dist/chunk-GUI3CROV.cjs.map +1 -0
  52. package/dist/chunk-HJQKWRKQ.cjs +764 -0
  53. package/dist/chunk-HJQKWRKQ.cjs.map +1 -0
  54. package/dist/chunk-HVBBFCDH.cjs +2321 -0
  55. package/dist/chunk-HVBBFCDH.cjs.map +1 -0
  56. package/dist/chunk-HZJRQ5L3.cjs +1411 -0
  57. package/dist/chunk-HZJRQ5L3.cjs.map +1 -0
  58. package/dist/chunk-IGFMAZZ5.cjs +1150 -0
  59. package/dist/chunk-IGFMAZZ5.cjs.map +1 -0
  60. package/dist/chunk-IOQGI4ML.js +931 -0
  61. package/dist/chunk-IOQGI4ML.js.map +1 -0
  62. package/dist/chunk-IY34NOLA.cjs +150 -0
  63. package/dist/chunk-IY34NOLA.cjs.map +1 -0
  64. package/dist/chunk-J7BPKKOG.cjs +163 -0
  65. package/dist/chunk-J7BPKKOG.cjs.map +1 -0
  66. package/dist/chunk-KNGXRN26.cjs +335 -0
  67. package/dist/chunk-KNGXRN26.cjs.map +1 -0
  68. package/dist/{chunk-WTHDCRMY.js → chunk-KV6VHX4V.js} +33 -8
  69. package/dist/chunk-KV6VHX4V.js.map +1 -0
  70. package/dist/chunk-L265APUD.cjs +69 -0
  71. package/dist/chunk-L265APUD.cjs.map +1 -0
  72. package/dist/chunk-LF2ZLOFP.js +767 -0
  73. package/dist/chunk-LF2ZLOFP.js.map +1 -0
  74. package/dist/chunk-LYPU75T6.js +1147 -0
  75. package/dist/chunk-LYPU75T6.js.map +1 -0
  76. package/dist/chunk-M2YFWHSB.js +455 -0
  77. package/dist/chunk-M2YFWHSB.js.map +1 -0
  78. package/dist/chunk-MLGHQDZZ.js +15671 -0
  79. package/dist/chunk-MLGHQDZZ.js.map +1 -0
  80. package/dist/{chunk-TRDNDNGQ.js → chunk-MMROOK5J.js} +4 -7
  81. package/dist/chunk-MMROOK5J.js.map +1 -0
  82. package/dist/chunk-N7F33WAD.js +2290 -0
  83. package/dist/chunk-N7F33WAD.js.map +1 -0
  84. package/dist/chunk-NG5IVLEZ.js +1012 -0
  85. package/dist/chunk-NG5IVLEZ.js.map +1 -0
  86. package/dist/chunk-OGW6HHVI.js +1408 -0
  87. package/dist/chunk-OGW6HHVI.js.map +1 -0
  88. package/dist/chunk-OZLRIVC4.cjs +588 -0
  89. package/dist/chunk-OZLRIVC4.cjs.map +1 -0
  90. package/dist/chunk-P7CIEIJ3.js +925 -0
  91. package/dist/chunk-P7CIEIJ3.js.map +1 -0
  92. package/dist/chunk-P7RBMCBE.cjs +934 -0
  93. package/dist/chunk-P7RBMCBE.cjs.map +1 -0
  94. package/dist/chunk-PPYGWINI.cjs +2777 -0
  95. package/dist/chunk-PPYGWINI.cjs.map +1 -0
  96. package/dist/{chunk-7IWQE76Z.cjs → chunk-PWTXZZTR.cjs} +37 -11
  97. package/dist/chunk-PWTXZZTR.cjs.map +1 -0
  98. package/dist/chunk-R7NOGUZG.js +65 -0
  99. package/dist/chunk-R7NOGUZG.js.map +1 -0
  100. package/dist/chunk-RCHEPTZZ.js +2006 -0
  101. package/dist/chunk-RCHEPTZZ.js.map +1 -0
  102. package/dist/chunk-RE4RPXT2.cjs +18 -0
  103. package/dist/chunk-RE4RPXT2.cjs.map +1 -0
  104. package/dist/chunk-RW2D3G4K.cjs +470 -0
  105. package/dist/chunk-RW2D3G4K.cjs.map +1 -0
  106. package/dist/chunk-SIGXR3JT.cjs +1043 -0
  107. package/dist/chunk-SIGXR3JT.cjs.map +1 -0
  108. package/dist/chunk-SPLSYTYW.cjs +88 -0
  109. package/dist/chunk-SPLSYTYW.cjs.map +1 -0
  110. package/dist/chunk-SQY4T6EJ.js +571 -0
  111. package/dist/chunk-SQY4T6EJ.js.map +1 -0
  112. package/dist/{chunk-5JNVY6DU.js → chunk-SYRRSBGL.js} +48 -12
  113. package/dist/chunk-SYRRSBGL.js.map +1 -0
  114. package/dist/{chunk-M56ECCHK.cjs → chunk-T3TIA3O6.cjs} +22 -19
  115. package/dist/chunk-T3TIA3O6.cjs.map +1 -0
  116. package/dist/{chunk-LFOBHRFO.js → chunk-TTHEEIZ3.js} +83 -65
  117. package/dist/chunk-TTHEEIZ3.js.map +1 -0
  118. package/dist/chunk-TVSIG4JE.cjs +940 -0
  119. package/dist/chunk-TVSIG4JE.cjs.map +1 -0
  120. package/dist/{chunk-RE6YL32K.js → chunk-U46VIX2V.js} +54 -30
  121. package/dist/chunk-U46VIX2V.js.map +1 -0
  122. package/dist/{chunk-4JINXASC.js → chunk-WHN4VX55.js} +7 -4
  123. package/dist/chunk-WHN4VX55.js.map +1 -0
  124. package/dist/chunk-WZC6CIVD.cjs +120 -0
  125. package/dist/chunk-WZC6CIVD.cjs.map +1 -0
  126. package/dist/chunk-YITREQVN.cjs +15707 -0
  127. package/dist/chunk-YITREQVN.cjs.map +1 -0
  128. package/dist/dist-26HWEQY6.js +3 -0
  129. package/dist/dist-26HWEQY6.js.map +1 -0
  130. package/dist/dist-3A5DXB37.cjs +20 -0
  131. package/dist/dist-3A5DXB37.cjs.map +1 -0
  132. package/dist/dist-3SJKQJGY.cjs +16 -0
  133. package/dist/dist-3SJKQJGY.cjs.map +1 -0
  134. package/dist/dist-4ZQSPE5K.js +3 -0
  135. package/dist/dist-4ZQSPE5K.js.map +1 -0
  136. package/dist/dist-5W5QNRTD.js +3 -0
  137. package/dist/dist-5W5QNRTD.js.map +1 -0
  138. package/dist/dist-653SRMPL.js +3 -0
  139. package/dist/dist-653SRMPL.js.map +1 -0
  140. package/dist/dist-6U6EFC5C.cjs +16 -0
  141. package/dist/dist-6U6EFC5C.cjs.map +1 -0
  142. package/dist/dist-7IHNNYMF.cjs +16 -0
  143. package/dist/dist-7IHNNYMF.cjs.map +1 -0
  144. package/dist/dist-B5IPRF6W.js +3 -0
  145. package/dist/dist-B5IPRF6W.js.map +1 -0
  146. package/dist/dist-EOMYFT4Y.cjs +16 -0
  147. package/dist/dist-EOMYFT4Y.cjs.map +1 -0
  148. package/dist/dist-EZZMMMNT.cjs +16 -0
  149. package/dist/dist-EZZMMMNT.cjs.map +1 -0
  150. package/dist/dist-F2ET4MNO.cjs +16 -0
  151. package/dist/dist-F2ET4MNO.cjs.map +1 -0
  152. package/dist/dist-H64VX6DE.js +3 -0
  153. package/dist/dist-H64VX6DE.js.map +1 -0
  154. package/dist/dist-HY7RMLJQ.cjs +16 -0
  155. package/dist/dist-HY7RMLJQ.cjs.map +1 -0
  156. package/dist/dist-M6S4P3FJ.js +3 -0
  157. package/dist/dist-M6S4P3FJ.js.map +1 -0
  158. package/dist/dist-NR7QSCQT.js +3 -0
  159. package/dist/dist-NR7QSCQT.js.map +1 -0
  160. package/dist/dist-QLFMCMCX.js +3 -0
  161. package/dist/dist-QLFMCMCX.js.map +1 -0
  162. package/dist/dist-UY46BFRP.js +3 -0
  163. package/dist/dist-UY46BFRP.js.map +1 -0
  164. package/dist/dist-WCQDRTIV.cjs +16 -0
  165. package/dist/dist-WCQDRTIV.cjs.map +1 -0
  166. package/dist/dist-WKYB3LTJ.cjs +16 -0
  167. package/dist/dist-WKYB3LTJ.cjs.map +1 -0
  168. package/dist/index.cjs +2 -0
  169. package/dist/index.cjs.map +1 -0
  170. package/dist/index.d.ts +1 -0
  171. package/dist/index.d.ts.map +1 -0
  172. package/dist/index.js +2 -0
  173. package/dist/index.js.map +1 -0
  174. package/dist/server/a2a/protocol.d.ts +8 -0
  175. package/dist/server/a2a/protocol.d.ts.map +1 -0
  176. package/dist/server/a2a/store.cjs +25 -0
  177. package/dist/server/a2a/store.cjs.map +1 -0
  178. package/dist/server/a2a/store.d.ts +14 -0
  179. package/dist/server/a2a/store.d.ts.map +1 -0
  180. package/dist/server/a2a/store.js +23 -0
  181. package/dist/server/a2a/store.js.map +1 -0
  182. package/dist/server/a2a/tasks.d.ts +20 -0
  183. package/dist/server/a2a/tasks.d.ts.map +1 -0
  184. package/dist/server/handlers/a2a.cjs +32 -0
  185. package/dist/server/handlers/a2a.cjs.map +1 -0
  186. package/dist/server/handlers/a2a.d.ts +68 -0
  187. package/dist/server/handlers/a2a.d.ts.map +1 -0
  188. package/dist/server/handlers/a2a.js +3 -0
  189. package/dist/server/handlers/a2a.js.map +1 -0
  190. package/dist/server/handlers/agent-builder.cjs +68 -0
  191. package/dist/server/handlers/agent-builder.cjs.map +1 -0
  192. package/dist/server/handlers/agent-builder.d.ts +87 -0
  193. package/dist/server/handlers/agent-builder.d.ts.map +1 -0
  194. package/dist/server/handlers/agent-builder.js +3 -0
  195. package/dist/server/handlers/agent-builder.js.map +1 -0
  196. package/dist/server/handlers/agents.cjs +37 -7
  197. package/dist/server/handlers/agents.cjs.map +1 -0
  198. package/dist/server/handlers/agents.d.ts +129 -6
  199. package/dist/server/handlers/agents.d.ts.map +1 -0
  200. package/dist/server/handlers/agents.js +3 -1
  201. package/dist/server/handlers/agents.js.map +1 -0
  202. package/dist/server/handlers/error.cjs +4 -2
  203. package/dist/server/handlers/error.cjs.map +1 -0
  204. package/dist/server/handlers/error.d.ts +2 -1
  205. package/dist/server/handlers/error.d.ts.map +1 -0
  206. package/dist/server/handlers/error.js +3 -1
  207. package/dist/server/handlers/error.js.map +1 -0
  208. package/dist/server/handlers/legacyWorkflows.cjs +48 -0
  209. package/dist/server/handlers/legacyWorkflows.cjs.map +1 -0
  210. package/dist/server/handlers/legacyWorkflows.d.ts +59 -0
  211. package/dist/server/handlers/legacyWorkflows.d.ts.map +1 -0
  212. package/dist/server/handlers/legacyWorkflows.js +3 -0
  213. package/dist/server/handlers/legacyWorkflows.js.map +1 -0
  214. package/dist/server/handlers/logs.cjs +6 -4
  215. package/dist/server/handlers/logs.cjs.map +1 -0
  216. package/dist/server/handlers/logs.d.ts +34 -3
  217. package/dist/server/handlers/logs.d.ts.map +1 -0
  218. package/dist/server/handlers/logs.js +3 -1
  219. package/dist/server/handlers/logs.js.map +1 -0
  220. package/dist/server/handlers/memory.cjs +39 -9
  221. package/dist/server/handlers/memory.cjs.map +1 -0
  222. package/dist/server/handlers/memory.d.ts +118 -8
  223. package/dist/server/handlers/memory.d.ts.map +1 -0
  224. package/dist/server/handlers/memory.js +3 -1
  225. package/dist/server/handlers/memory.js.map +1 -0
  226. package/dist/server/handlers/network.cjs +7 -5
  227. package/dist/server/handlers/network.cjs.map +1 -0
  228. package/dist/server/handlers/network.d.ts +50 -4
  229. package/dist/server/handlers/network.d.ts.map +1 -0
  230. package/dist/server/handlers/network.js +3 -1
  231. package/dist/server/handlers/network.js.map +1 -0
  232. package/dist/server/handlers/observability.cjs +16 -0
  233. package/dist/server/handlers/observability.cjs.map +1 -0
  234. package/dist/server/handlers/observability.d.ts +23 -0
  235. package/dist/server/handlers/observability.d.ts.map +1 -0
  236. package/dist/server/handlers/observability.js +3 -0
  237. package/dist/server/handlers/observability.js.map +1 -0
  238. package/dist/server/handlers/scores.cjs +32 -0
  239. package/dist/server/handlers/scores.cjs.map +1 -0
  240. package/dist/server/handlers/scores.d.ts +49 -0
  241. package/dist/server/handlers/scores.d.ts.map +1 -0
  242. package/dist/server/handlers/scores.js +3 -0
  243. package/dist/server/handlers/scores.js.map +1 -0
  244. package/dist/server/handlers/telemetry.cjs +9 -3
  245. package/dist/server/handlers/telemetry.cjs.map +1 -0
  246. package/dist/server/handlers/telemetry.d.ts +33 -2
  247. package/dist/server/handlers/telemetry.d.ts.map +1 -0
  248. package/dist/server/handlers/telemetry.js +3 -1
  249. package/dist/server/handlers/telemetry.js.map +1 -0
  250. package/dist/server/handlers/tools.cjs +11 -5
  251. package/dist/server/handlers/tools.cjs.map +1 -0
  252. package/dist/server/handlers/tools.d.ts +25 -4
  253. package/dist/server/handlers/tools.d.ts.map +1 -0
  254. package/dist/server/handlers/tools.js +3 -1
  255. package/dist/server/handlers/tools.js.map +1 -0
  256. package/dist/server/handlers/utils.cjs +8 -2
  257. package/dist/server/handlers/utils.cjs.map +1 -0
  258. package/dist/server/handlers/utils.d.ts +8 -1
  259. package/dist/server/handlers/utils.d.ts.map +1 -0
  260. package/dist/server/handlers/utils.js +3 -1
  261. package/dist/server/handlers/utils.js.map +1 -0
  262. package/dist/server/handlers/vNextNetwork.cjs +220 -0
  263. package/dist/server/handlers/vNextNetwork.cjs.map +1 -0
  264. package/dist/server/handlers/vNextNetwork.d.ts +179 -0
  265. package/dist/server/handlers/vNextNetwork.d.ts.map +1 -0
  266. package/dist/server/handlers/vNextNetwork.js +213 -0
  267. package/dist/server/handlers/vNextNetwork.js.map +1 -0
  268. package/dist/server/handlers/vector.cjs +9 -7
  269. package/dist/server/handlers/vector.cjs.map +1 -0
  270. package/dist/server/handlers/vector.d.ts +51 -6
  271. package/dist/server/handlers/vector.d.ts.map +1 -0
  272. package/dist/server/handlers/vector.js +3 -1
  273. package/dist/server/handlers/vector.js.map +1 -0
  274. package/dist/server/handlers/voice.cjs +10 -4
  275. package/dist/server/handlers/voice.cjs.map +1 -0
  276. package/dist/server/handlers/voice.d.ts +39 -3
  277. package/dist/server/handlers/voice.d.ts.map +1 -0
  278. package/dist/server/handlers/voice.js +3 -1
  279. package/dist/server/handlers/voice.js.map +1 -0
  280. package/dist/server/handlers/workflows.cjs +35 -13
  281. package/dist/server/handlers/workflows.cjs.map +1 -0
  282. package/dist/server/handlers/workflows.d.ts +73 -10
  283. package/dist/server/handlers/workflows.d.ts.map +1 -0
  284. package/dist/server/handlers/workflows.js +3 -1
  285. package/dist/server/handlers/workflows.js.map +1 -0
  286. package/dist/server/handlers.cjs +52 -30
  287. package/dist/server/handlers.cjs.map +1 -0
  288. package/dist/server/handlers.d.ts +15 -10
  289. package/dist/server/handlers.d.ts.map +1 -0
  290. package/dist/server/handlers.js +16 -10
  291. package/dist/server/handlers.js.map +1 -0
  292. package/dist/server/http-exception.d.ts +87 -0
  293. package/dist/server/http-exception.d.ts.map +1 -0
  294. package/dist/server/types.d.ts +10 -0
  295. package/dist/server/types.d.ts.map +1 -0
  296. package/dist/server/utils.d.ts +42 -0
  297. package/dist/server/utils.d.ts.map +1 -0
  298. package/package.json +51 -19
  299. package/dist/_tsup-dts-rollup.d.cts +0 -648
  300. package/dist/_tsup-dts-rollup.d.ts +0 -648
  301. package/dist/chunk-2FJURXCL.cjs +0 -213
  302. package/dist/chunk-3AHQ5RGN.js +0 -11
  303. package/dist/chunk-3EJZQ6TQ.js +0 -49
  304. package/dist/chunk-55HTWX4C.cjs +0 -93
  305. package/dist/chunk-5SWCVTNL.cjs +0 -5579
  306. package/dist/chunk-B66WVPGJ.js +0 -297
  307. package/dist/chunk-D3G23FP3.cjs +0 -126
  308. package/dist/chunk-FPIWDH5Y.cjs +0 -126
  309. package/dist/chunk-HCOPJZ4A.cjs +0 -164
  310. package/dist/chunk-OMN3UI6X.js +0 -5576
  311. package/dist/chunk-QN4KF3BH.cjs +0 -18
  312. package/dist/chunk-R4J7XQYU.js +0 -156
  313. package/dist/chunk-RBQASTUP.js +0 -203
  314. package/dist/chunk-SKBVVI24.cjs +0 -54
  315. package/dist/chunk-TZK63M5N.cjs +0 -317
  316. package/dist/chunk-ZHNKYTNS.cjs +0 -309
  317. package/dist/chunk-ZLBRQFDD.cjs +0 -13
  318. package/dist/index.d.cts +0 -1
  319. package/dist/server/handlers/agents.d.cts +0 -6
  320. package/dist/server/handlers/error.d.cts +0 -1
  321. package/dist/server/handlers/logs.d.cts +0 -3
  322. package/dist/server/handlers/memory.d.cts +0 -8
  323. package/dist/server/handlers/network.d.cts +0 -4
  324. package/dist/server/handlers/telemetry.d.cts +0 -2
  325. package/dist/server/handlers/tools.d.cts +0 -4
  326. package/dist/server/handlers/utils.d.cts +0 -1
  327. package/dist/server/handlers/vNextWorkflows.cjs +0 -46
  328. package/dist/server/handlers/vNextWorkflows.d.cts +0 -10
  329. package/dist/server/handlers/vNextWorkflows.d.ts +0 -10
  330. package/dist/server/handlers/vNextWorkflows.js +0 -1
  331. package/dist/server/handlers/vector.d.cts +0 -6
  332. package/dist/server/handlers/voice.d.cts +0 -3
  333. package/dist/server/handlers/workflows.d.cts +0 -10
  334. package/dist/server/handlers.d.cts +0 -10
@@ -0,0 +1,937 @@
1
+ import { createJsonErrorResponseHandler, withoutTrailingSlash, generateId, loadApiKey, parseProviderOptions, combineHeaders, resolve, postJsonToApi, createJsonResponseHandler, createEventSourceResponseHandler, UnsupportedFunctionalityError, convertUint8ArrayToBase64, TooManyEmbeddingValuesForCallError } from './chunk-NG5IVLEZ.js';
2
+ import { z } from 'zod';
3
+
4
+ function convertJSONSchemaToOpenAPISchema(jsonSchema) {
5
+ if (isEmptyObjectSchema(jsonSchema)) {
6
+ return void 0;
7
+ }
8
+ if (typeof jsonSchema === "boolean") {
9
+ return { type: "boolean", properties: {} };
10
+ }
11
+ const {
12
+ type,
13
+ description,
14
+ required,
15
+ properties,
16
+ items,
17
+ allOf,
18
+ anyOf,
19
+ oneOf,
20
+ format,
21
+ const: constValue,
22
+ minLength,
23
+ enum: enumValues
24
+ } = jsonSchema;
25
+ const result = {};
26
+ if (description)
27
+ result.description = description;
28
+ if (required)
29
+ result.required = required;
30
+ if (format)
31
+ result.format = format;
32
+ if (constValue !== void 0) {
33
+ result.enum = [constValue];
34
+ }
35
+ if (type) {
36
+ if (Array.isArray(type)) {
37
+ if (type.includes("null")) {
38
+ result.type = type.filter((t) => t !== "null")[0];
39
+ result.nullable = true;
40
+ } else {
41
+ result.type = type;
42
+ }
43
+ } else if (type === "null") {
44
+ result.type = "null";
45
+ } else {
46
+ result.type = type;
47
+ }
48
+ }
49
+ if (enumValues !== void 0) {
50
+ result.enum = enumValues;
51
+ }
52
+ if (properties != null) {
53
+ result.properties = Object.entries(properties).reduce(
54
+ (acc, [key, value]) => {
55
+ acc[key] = convertJSONSchemaToOpenAPISchema(value);
56
+ return acc;
57
+ },
58
+ {}
59
+ );
60
+ }
61
+ if (items) {
62
+ result.items = Array.isArray(items) ? items.map(convertJSONSchemaToOpenAPISchema) : convertJSONSchemaToOpenAPISchema(items);
63
+ }
64
+ if (allOf) {
65
+ result.allOf = allOf.map(convertJSONSchemaToOpenAPISchema);
66
+ }
67
+ if (anyOf) {
68
+ if (anyOf.some(
69
+ (schema) => typeof schema === "object" && (schema == null ? void 0 : schema.type) === "null"
70
+ )) {
71
+ const nonNullSchemas = anyOf.filter(
72
+ (schema) => !(typeof schema === "object" && (schema == null ? void 0 : schema.type) === "null")
73
+ );
74
+ if (nonNullSchemas.length === 1) {
75
+ const converted = convertJSONSchemaToOpenAPISchema(nonNullSchemas[0]);
76
+ if (typeof converted === "object") {
77
+ result.nullable = true;
78
+ Object.assign(result, converted);
79
+ }
80
+ } else {
81
+ result.anyOf = nonNullSchemas.map(convertJSONSchemaToOpenAPISchema);
82
+ result.nullable = true;
83
+ }
84
+ } else {
85
+ result.anyOf = anyOf.map(convertJSONSchemaToOpenAPISchema);
86
+ }
87
+ }
88
+ if (oneOf) {
89
+ result.oneOf = oneOf.map(convertJSONSchemaToOpenAPISchema);
90
+ }
91
+ if (minLength !== void 0) {
92
+ result.minLength = minLength;
93
+ }
94
+ return result;
95
+ }
96
+ function isEmptyObjectSchema(jsonSchema) {
97
+ return jsonSchema != null && typeof jsonSchema === "object" && jsonSchema.type === "object" && (jsonSchema.properties == null || Object.keys(jsonSchema.properties).length === 0) && !jsonSchema.additionalProperties;
98
+ }
99
+ function convertToGoogleGenerativeAIMessages(prompt) {
100
+ var _a, _b;
101
+ const systemInstructionParts = [];
102
+ const contents = [];
103
+ let systemMessagesAllowed = true;
104
+ for (const { role, content } of prompt) {
105
+ switch (role) {
106
+ case "system": {
107
+ if (!systemMessagesAllowed) {
108
+ throw new UnsupportedFunctionalityError({
109
+ functionality: "system messages are only supported at the beginning of the conversation"
110
+ });
111
+ }
112
+ systemInstructionParts.push({ text: content });
113
+ break;
114
+ }
115
+ case "user": {
116
+ systemMessagesAllowed = false;
117
+ const parts = [];
118
+ for (const part of content) {
119
+ switch (part.type) {
120
+ case "text": {
121
+ parts.push({ text: part.text });
122
+ break;
123
+ }
124
+ case "image": {
125
+ parts.push(
126
+ part.image instanceof URL ? {
127
+ fileData: {
128
+ mimeType: (_a = part.mimeType) != null ? _a : "image/jpeg",
129
+ fileUri: part.image.toString()
130
+ }
131
+ } : {
132
+ inlineData: {
133
+ mimeType: (_b = part.mimeType) != null ? _b : "image/jpeg",
134
+ data: convertUint8ArrayToBase64(part.image)
135
+ }
136
+ }
137
+ );
138
+ break;
139
+ }
140
+ case "file": {
141
+ parts.push(
142
+ part.data instanceof URL ? {
143
+ fileData: {
144
+ mimeType: part.mimeType,
145
+ fileUri: part.data.toString()
146
+ }
147
+ } : {
148
+ inlineData: {
149
+ mimeType: part.mimeType,
150
+ data: part.data
151
+ }
152
+ }
153
+ );
154
+ break;
155
+ }
156
+ }
157
+ }
158
+ contents.push({ role: "user", parts });
159
+ break;
160
+ }
161
+ case "assistant": {
162
+ systemMessagesAllowed = false;
163
+ contents.push({
164
+ role: "model",
165
+ parts: content.map((part) => {
166
+ switch (part.type) {
167
+ case "text": {
168
+ return part.text.length === 0 ? void 0 : { text: part.text };
169
+ }
170
+ case "file": {
171
+ if (part.mimeType !== "image/png") {
172
+ throw new UnsupportedFunctionalityError({
173
+ functionality: "Only PNG images are supported in assistant messages"
174
+ });
175
+ }
176
+ if (part.data instanceof URL) {
177
+ throw new UnsupportedFunctionalityError({
178
+ functionality: "File data URLs in assistant messages are not supported"
179
+ });
180
+ }
181
+ return {
182
+ inlineData: {
183
+ mimeType: part.mimeType,
184
+ data: part.data
185
+ }
186
+ };
187
+ }
188
+ case "tool-call": {
189
+ return {
190
+ functionCall: {
191
+ name: part.toolName,
192
+ args: part.args
193
+ }
194
+ };
195
+ }
196
+ }
197
+ }).filter((part) => part !== void 0)
198
+ });
199
+ break;
200
+ }
201
+ case "tool": {
202
+ systemMessagesAllowed = false;
203
+ contents.push({
204
+ role: "user",
205
+ parts: content.map((part) => ({
206
+ functionResponse: {
207
+ name: part.toolName,
208
+ response: {
209
+ name: part.toolName,
210
+ content: part.result
211
+ }
212
+ }
213
+ }))
214
+ });
215
+ break;
216
+ }
217
+ }
218
+ }
219
+ return {
220
+ systemInstruction: systemInstructionParts.length > 0 ? { parts: systemInstructionParts } : void 0,
221
+ contents
222
+ };
223
+ }
224
+ function getModelPath(modelId) {
225
+ return modelId.includes("/") ? modelId : `models/${modelId}`;
226
+ }
227
+ var googleErrorDataSchema = z.object({
228
+ error: z.object({
229
+ code: z.number().nullable(),
230
+ message: z.string(),
231
+ status: z.string()
232
+ })
233
+ });
234
+ var googleFailedResponseHandler = createJsonErrorResponseHandler({
235
+ errorSchema: googleErrorDataSchema,
236
+ errorToMessage: (data) => data.error.message
237
+ });
238
+ function prepareTools(mode, useSearchGrounding, dynamicRetrievalConfig, modelId) {
239
+ var _a, _b;
240
+ const tools = ((_a = mode.tools) == null ? void 0 : _a.length) ? mode.tools : void 0;
241
+ const toolWarnings = [];
242
+ const isGemini2 = modelId.includes("gemini-2");
243
+ const supportsDynamicRetrieval = modelId.includes("gemini-1.5-flash") && !modelId.includes("-8b");
244
+ if (useSearchGrounding) {
245
+ return {
246
+ tools: isGemini2 ? { googleSearch: {} } : {
247
+ googleSearchRetrieval: !supportsDynamicRetrieval || !dynamicRetrievalConfig ? {} : { dynamicRetrievalConfig }
248
+ },
249
+ toolConfig: void 0,
250
+ toolWarnings
251
+ };
252
+ }
253
+ if (tools == null) {
254
+ return { tools: void 0, toolConfig: void 0, toolWarnings };
255
+ }
256
+ const functionDeclarations = [];
257
+ for (const tool of tools) {
258
+ if (tool.type === "provider-defined") {
259
+ toolWarnings.push({ type: "unsupported-tool", tool });
260
+ } else {
261
+ functionDeclarations.push({
262
+ name: tool.name,
263
+ description: (_b = tool.description) != null ? _b : "",
264
+ parameters: convertJSONSchemaToOpenAPISchema(tool.parameters)
265
+ });
266
+ }
267
+ }
268
+ const toolChoice = mode.toolChoice;
269
+ if (toolChoice == null) {
270
+ return {
271
+ tools: { functionDeclarations },
272
+ toolConfig: void 0,
273
+ toolWarnings
274
+ };
275
+ }
276
+ const type = toolChoice.type;
277
+ switch (type) {
278
+ case "auto":
279
+ return {
280
+ tools: { functionDeclarations },
281
+ toolConfig: { functionCallingConfig: { mode: "AUTO" } },
282
+ toolWarnings
283
+ };
284
+ case "none":
285
+ return {
286
+ tools: { functionDeclarations },
287
+ toolConfig: { functionCallingConfig: { mode: "NONE" } },
288
+ toolWarnings
289
+ };
290
+ case "required":
291
+ return {
292
+ tools: { functionDeclarations },
293
+ toolConfig: { functionCallingConfig: { mode: "ANY" } },
294
+ toolWarnings
295
+ };
296
+ case "tool":
297
+ return {
298
+ tools: { functionDeclarations },
299
+ toolConfig: {
300
+ functionCallingConfig: {
301
+ mode: "ANY",
302
+ allowedFunctionNames: [toolChoice.toolName]
303
+ }
304
+ },
305
+ toolWarnings
306
+ };
307
+ default: {
308
+ const _exhaustiveCheck = type;
309
+ throw new UnsupportedFunctionalityError({
310
+ functionality: `Unsupported tool choice type: ${_exhaustiveCheck}`
311
+ });
312
+ }
313
+ }
314
+ }
315
+ function mapGoogleGenerativeAIFinishReason({
316
+ finishReason,
317
+ hasToolCalls
318
+ }) {
319
+ switch (finishReason) {
320
+ case "STOP":
321
+ return hasToolCalls ? "tool-calls" : "stop";
322
+ case "MAX_TOKENS":
323
+ return "length";
324
+ case "IMAGE_SAFETY":
325
+ case "RECITATION":
326
+ case "SAFETY":
327
+ case "BLOCKLIST":
328
+ case "PROHIBITED_CONTENT":
329
+ case "SPII":
330
+ return "content-filter";
331
+ case "FINISH_REASON_UNSPECIFIED":
332
+ case "OTHER":
333
+ return "other";
334
+ case "MALFORMED_FUNCTION_CALL":
335
+ return "error";
336
+ default:
337
+ return "unknown";
338
+ }
339
+ }
340
+ var GoogleGenerativeAILanguageModel = class {
341
+ constructor(modelId, settings, config) {
342
+ this.specificationVersion = "v1";
343
+ this.defaultObjectGenerationMode = "json";
344
+ this.supportsImageUrls = false;
345
+ this.modelId = modelId;
346
+ this.settings = settings;
347
+ this.config = config;
348
+ }
349
+ get supportsStructuredOutputs() {
350
+ var _a;
351
+ return (_a = this.settings.structuredOutputs) != null ? _a : true;
352
+ }
353
+ get provider() {
354
+ return this.config.provider;
355
+ }
356
+ async getArgs({
357
+ mode,
358
+ prompt,
359
+ maxTokens,
360
+ temperature,
361
+ topP,
362
+ topK,
363
+ frequencyPenalty,
364
+ presencePenalty,
365
+ stopSequences,
366
+ responseFormat,
367
+ seed,
368
+ providerMetadata
369
+ }) {
370
+ var _a, _b, _c;
371
+ const type = mode.type;
372
+ const warnings = [];
373
+ const googleOptions = parseProviderOptions({
374
+ provider: "google",
375
+ providerOptions: providerMetadata,
376
+ schema: googleGenerativeAIProviderOptionsSchema
377
+ });
378
+ if (((_a = googleOptions == null ? void 0 : googleOptions.thinkingConfig) == null ? void 0 : _a.includeThoughts) === true && !this.config.provider.startsWith("google.vertex.")) {
379
+ warnings.push({
380
+ type: "other",
381
+ message: `The 'includeThoughts' option is only supported with the Google Vertex provider and might not be supported or could behave unexpectedly with the current Google provider (${this.config.provider}).`
382
+ });
383
+ }
384
+ const generationConfig = {
385
+ // standardized settings:
386
+ maxOutputTokens: maxTokens,
387
+ temperature,
388
+ topK,
389
+ topP,
390
+ frequencyPenalty,
391
+ presencePenalty,
392
+ stopSequences,
393
+ seed,
394
+ // response format:
395
+ responseMimeType: (responseFormat == null ? void 0 : responseFormat.type) === "json" ? "application/json" : void 0,
396
+ responseSchema: (responseFormat == null ? void 0 : responseFormat.type) === "json" && responseFormat.schema != null && // Google GenAI does not support all OpenAPI Schema features,
397
+ // so this is needed as an escape hatch:
398
+ this.supportsStructuredOutputs ? convertJSONSchemaToOpenAPISchema(responseFormat.schema) : void 0,
399
+ ...this.settings.audioTimestamp && {
400
+ audioTimestamp: this.settings.audioTimestamp
401
+ },
402
+ // provider options:
403
+ responseModalities: googleOptions == null ? void 0 : googleOptions.responseModalities,
404
+ thinkingConfig: googleOptions == null ? void 0 : googleOptions.thinkingConfig
405
+ };
406
+ const { contents, systemInstruction } = convertToGoogleGenerativeAIMessages(prompt);
407
+ switch (type) {
408
+ case "regular": {
409
+ const { tools, toolConfig, toolWarnings } = prepareTools(
410
+ mode,
411
+ (_b = this.settings.useSearchGrounding) != null ? _b : false,
412
+ this.settings.dynamicRetrievalConfig,
413
+ this.modelId
414
+ );
415
+ return {
416
+ args: {
417
+ generationConfig,
418
+ contents,
419
+ systemInstruction,
420
+ safetySettings: this.settings.safetySettings,
421
+ tools,
422
+ toolConfig,
423
+ cachedContent: this.settings.cachedContent
424
+ },
425
+ warnings: [...warnings, ...toolWarnings]
426
+ };
427
+ }
428
+ case "object-json": {
429
+ return {
430
+ args: {
431
+ generationConfig: {
432
+ ...generationConfig,
433
+ responseMimeType: "application/json",
434
+ responseSchema: mode.schema != null && // Google GenAI does not support all OpenAPI Schema features,
435
+ // so this is needed as an escape hatch:
436
+ this.supportsStructuredOutputs ? convertJSONSchemaToOpenAPISchema(mode.schema) : void 0
437
+ },
438
+ contents,
439
+ systemInstruction,
440
+ safetySettings: this.settings.safetySettings,
441
+ cachedContent: this.settings.cachedContent
442
+ },
443
+ warnings
444
+ };
445
+ }
446
+ case "object-tool": {
447
+ return {
448
+ args: {
449
+ generationConfig,
450
+ contents,
451
+ systemInstruction,
452
+ tools: {
453
+ functionDeclarations: [
454
+ {
455
+ name: mode.tool.name,
456
+ description: (_c = mode.tool.description) != null ? _c : "",
457
+ parameters: convertJSONSchemaToOpenAPISchema(
458
+ mode.tool.parameters
459
+ )
460
+ }
461
+ ]
462
+ },
463
+ toolConfig: { functionCallingConfig: { mode: "ANY" } },
464
+ safetySettings: this.settings.safetySettings,
465
+ cachedContent: this.settings.cachedContent
466
+ },
467
+ warnings
468
+ };
469
+ }
470
+ default: {
471
+ const _exhaustiveCheck = type;
472
+ throw new Error(`Unsupported type: ${_exhaustiveCheck}`);
473
+ }
474
+ }
475
+ }
476
+ supportsUrl(url) {
477
+ return this.config.isSupportedUrl(url);
478
+ }
479
+ async doGenerate(options) {
480
+ var _a, _b, _c, _d, _e;
481
+ const { args, warnings } = await this.getArgs(options);
482
+ const body = JSON.stringify(args);
483
+ const mergedHeaders = combineHeaders(
484
+ await resolve(this.config.headers),
485
+ options.headers
486
+ );
487
+ const {
488
+ responseHeaders,
489
+ value: response,
490
+ rawValue: rawResponse
491
+ } = await postJsonToApi({
492
+ url: `${this.config.baseURL}/${getModelPath(
493
+ this.modelId
494
+ )}:generateContent`,
495
+ headers: mergedHeaders,
496
+ body: args,
497
+ failedResponseHandler: googleFailedResponseHandler,
498
+ successfulResponseHandler: createJsonResponseHandler(responseSchema),
499
+ abortSignal: options.abortSignal,
500
+ fetch: this.config.fetch
501
+ });
502
+ const { contents: rawPrompt, ...rawSettings } = args;
503
+ const candidate = response.candidates[0];
504
+ const parts = candidate.content == null || typeof candidate.content !== "object" || !("parts" in candidate.content) ? [] : candidate.content.parts;
505
+ const toolCalls = getToolCallsFromParts({
506
+ parts,
507
+ // Use candidateParts
508
+ generateId: this.config.generateId
509
+ });
510
+ const usageMetadata = response.usageMetadata;
511
+ return {
512
+ text: getTextFromParts(parts),
513
+ reasoning: getReasoningDetailsFromParts(parts),
514
+ files: (_a = getInlineDataParts(parts)) == null ? void 0 : _a.map((part) => ({
515
+ data: part.inlineData.data,
516
+ mimeType: part.inlineData.mimeType
517
+ })),
518
+ toolCalls,
519
+ finishReason: mapGoogleGenerativeAIFinishReason({
520
+ finishReason: candidate.finishReason,
521
+ hasToolCalls: toolCalls != null && toolCalls.length > 0
522
+ }),
523
+ usage: {
524
+ promptTokens: (_b = usageMetadata == null ? void 0 : usageMetadata.promptTokenCount) != null ? _b : NaN,
525
+ completionTokens: (_c = usageMetadata == null ? void 0 : usageMetadata.candidatesTokenCount) != null ? _c : NaN
526
+ },
527
+ rawCall: { rawPrompt, rawSettings },
528
+ rawResponse: { headers: responseHeaders, body: rawResponse },
529
+ warnings,
530
+ providerMetadata: {
531
+ google: {
532
+ groundingMetadata: (_d = candidate.groundingMetadata) != null ? _d : null,
533
+ safetyRatings: (_e = candidate.safetyRatings) != null ? _e : null
534
+ }
535
+ },
536
+ sources: extractSources({
537
+ groundingMetadata: candidate.groundingMetadata,
538
+ generateId: this.config.generateId
539
+ }),
540
+ request: { body }
541
+ };
542
+ }
543
+ async doStream(options) {
544
+ const { args, warnings } = await this.getArgs(options);
545
+ const body = JSON.stringify(args);
546
+ const headers = combineHeaders(
547
+ await resolve(this.config.headers),
548
+ options.headers
549
+ );
550
+ const { responseHeaders, value: response } = await postJsonToApi({
551
+ url: `${this.config.baseURL}/${getModelPath(
552
+ this.modelId
553
+ )}:streamGenerateContent?alt=sse`,
554
+ headers,
555
+ body: args,
556
+ failedResponseHandler: googleFailedResponseHandler,
557
+ successfulResponseHandler: createEventSourceResponseHandler(chunkSchema),
558
+ abortSignal: options.abortSignal,
559
+ fetch: this.config.fetch
560
+ });
561
+ const { contents: rawPrompt, ...rawSettings } = args;
562
+ let finishReason = "unknown";
563
+ let usage = {
564
+ promptTokens: Number.NaN,
565
+ completionTokens: Number.NaN
566
+ };
567
+ let providerMetadata = void 0;
568
+ const generateId2 = this.config.generateId;
569
+ let hasToolCalls = false;
570
+ return {
571
+ stream: response.pipeThrough(
572
+ new TransformStream({
573
+ transform(chunk, controller) {
574
+ var _a, _b, _c, _d, _e, _f;
575
+ if (!chunk.success) {
576
+ controller.enqueue({ type: "error", error: chunk.error });
577
+ return;
578
+ }
579
+ const value = chunk.value;
580
+ const usageMetadata = value.usageMetadata;
581
+ if (usageMetadata != null) {
582
+ usage = {
583
+ promptTokens: (_a = usageMetadata.promptTokenCount) != null ? _a : NaN,
584
+ completionTokens: (_b = usageMetadata.candidatesTokenCount) != null ? _b : NaN
585
+ };
586
+ }
587
+ const candidate = (_c = value.candidates) == null ? void 0 : _c[0];
588
+ if (candidate == null) {
589
+ return;
590
+ }
591
+ const content = candidate.content;
592
+ if (content != null) {
593
+ const deltaText = getTextFromParts(content.parts);
594
+ if (deltaText != null) {
595
+ controller.enqueue({
596
+ type: "text-delta",
597
+ textDelta: deltaText
598
+ });
599
+ }
600
+ const reasoningDeltaText = getReasoningDetailsFromParts(
601
+ content.parts
602
+ );
603
+ if (reasoningDeltaText != null) {
604
+ for (const part of reasoningDeltaText) {
605
+ controller.enqueue({
606
+ type: "reasoning",
607
+ textDelta: part.text
608
+ });
609
+ }
610
+ }
611
+ const inlineDataParts = getInlineDataParts(content.parts);
612
+ if (inlineDataParts != null) {
613
+ for (const part of inlineDataParts) {
614
+ controller.enqueue({
615
+ type: "file",
616
+ mimeType: part.inlineData.mimeType,
617
+ data: part.inlineData.data
618
+ });
619
+ }
620
+ }
621
+ const toolCallDeltas = getToolCallsFromParts({
622
+ parts: content.parts,
623
+ generateId: generateId2
624
+ });
625
+ if (toolCallDeltas != null) {
626
+ for (const toolCall of toolCallDeltas) {
627
+ controller.enqueue({
628
+ type: "tool-call-delta",
629
+ toolCallType: "function",
630
+ toolCallId: toolCall.toolCallId,
631
+ toolName: toolCall.toolName,
632
+ argsTextDelta: toolCall.args
633
+ });
634
+ controller.enqueue({
635
+ type: "tool-call",
636
+ toolCallType: "function",
637
+ toolCallId: toolCall.toolCallId,
638
+ toolName: toolCall.toolName,
639
+ args: toolCall.args
640
+ });
641
+ hasToolCalls = true;
642
+ }
643
+ }
644
+ }
645
+ if (candidate.finishReason != null) {
646
+ finishReason = mapGoogleGenerativeAIFinishReason({
647
+ finishReason: candidate.finishReason,
648
+ hasToolCalls
649
+ });
650
+ const sources = (_d = extractSources({
651
+ groundingMetadata: candidate.groundingMetadata,
652
+ generateId: generateId2
653
+ })) != null ? _d : [];
654
+ for (const source of sources) {
655
+ controller.enqueue({ type: "source", source });
656
+ }
657
+ providerMetadata = {
658
+ google: {
659
+ groundingMetadata: (_e = candidate.groundingMetadata) != null ? _e : null,
660
+ safetyRatings: (_f = candidate.safetyRatings) != null ? _f : null
661
+ }
662
+ };
663
+ }
664
+ },
665
+ flush(controller) {
666
+ controller.enqueue({
667
+ type: "finish",
668
+ finishReason,
669
+ usage,
670
+ providerMetadata
671
+ });
672
+ }
673
+ })
674
+ ),
675
+ rawCall: { rawPrompt, rawSettings },
676
+ rawResponse: { headers: responseHeaders },
677
+ warnings,
678
+ request: { body }
679
+ };
680
+ }
681
+ };
682
+ function getToolCallsFromParts({
683
+ parts,
684
+ generateId: generateId2
685
+ }) {
686
+ const functionCallParts = parts == null ? void 0 : parts.filter(
687
+ (part) => "functionCall" in part
688
+ );
689
+ return functionCallParts == null || functionCallParts.length === 0 ? void 0 : functionCallParts.map((part) => ({
690
+ toolCallType: "function",
691
+ toolCallId: generateId2(),
692
+ toolName: part.functionCall.name,
693
+ args: JSON.stringify(part.functionCall.args)
694
+ }));
695
+ }
696
+ function getTextFromParts(parts) {
697
+ const textParts = parts == null ? void 0 : parts.filter(
698
+ (part) => "text" in part && part.thought !== true
699
+ );
700
+ return textParts == null || textParts.length === 0 ? void 0 : textParts.map((part) => part.text).join("");
701
+ }
702
+ function getReasoningDetailsFromParts(parts) {
703
+ const reasoningParts = parts == null ? void 0 : parts.filter(
704
+ (part) => "text" in part && part.thought === true && part.text != null
705
+ );
706
+ return reasoningParts == null || reasoningParts.length === 0 ? void 0 : reasoningParts.map((part) => ({ type: "text", text: part.text }));
707
+ }
708
+ function getInlineDataParts(parts) {
709
+ return parts == null ? void 0 : parts.filter(
710
+ (part) => "inlineData" in part
711
+ );
712
+ }
713
+ function extractSources({
714
+ groundingMetadata,
715
+ generateId: generateId2
716
+ }) {
717
+ var _a;
718
+ return (_a = groundingMetadata == null ? void 0 : groundingMetadata.groundingChunks) == null ? void 0 : _a.filter(
719
+ (chunk) => chunk.web != null
720
+ ).map((chunk) => ({
721
+ sourceType: "url",
722
+ id: generateId2(),
723
+ url: chunk.web.uri,
724
+ title: chunk.web.title
725
+ }));
726
+ }
727
+ var contentSchema = z.object({
728
+ parts: z.array(
729
+ z.union([
730
+ // note: order matters since text can be fully empty
731
+ z.object({
732
+ functionCall: z.object({
733
+ name: z.string(),
734
+ args: z.unknown()
735
+ })
736
+ }),
737
+ z.object({
738
+ inlineData: z.object({
739
+ mimeType: z.string(),
740
+ data: z.string()
741
+ })
742
+ }),
743
+ z.object({
744
+ text: z.string().nullish(),
745
+ thought: z.boolean().nullish()
746
+ })
747
+ ])
748
+ ).nullish()
749
+ });
750
+ var groundingChunkSchema = z.object({
751
+ web: z.object({ uri: z.string(), title: z.string() }).nullish(),
752
+ retrievedContext: z.object({ uri: z.string(), title: z.string() }).nullish()
753
+ });
754
+ var groundingMetadataSchema = z.object({
755
+ webSearchQueries: z.array(z.string()).nullish(),
756
+ retrievalQueries: z.array(z.string()).nullish(),
757
+ searchEntryPoint: z.object({ renderedContent: z.string() }).nullish(),
758
+ groundingChunks: z.array(groundingChunkSchema).nullish(),
759
+ groundingSupports: z.array(
760
+ z.object({
761
+ segment: z.object({
762
+ startIndex: z.number().nullish(),
763
+ endIndex: z.number().nullish(),
764
+ text: z.string().nullish()
765
+ }),
766
+ segment_text: z.string().nullish(),
767
+ groundingChunkIndices: z.array(z.number()).nullish(),
768
+ supportChunkIndices: z.array(z.number()).nullish(),
769
+ confidenceScores: z.array(z.number()).nullish(),
770
+ confidenceScore: z.array(z.number()).nullish()
771
+ })
772
+ ).nullish(),
773
+ retrievalMetadata: z.union([
774
+ z.object({
775
+ webDynamicRetrievalScore: z.number()
776
+ }),
777
+ z.object({})
778
+ ]).nullish()
779
+ });
780
+ var safetyRatingSchema = z.object({
781
+ category: z.string().nullish(),
782
+ probability: z.string().nullish(),
783
+ probabilityScore: z.number().nullish(),
784
+ severity: z.string().nullish(),
785
+ severityScore: z.number().nullish(),
786
+ blocked: z.boolean().nullish()
787
+ });
788
+ var responseSchema = z.object({
789
+ candidates: z.array(
790
+ z.object({
791
+ content: contentSchema.nullish().or(z.object({}).strict()),
792
+ finishReason: z.string().nullish(),
793
+ safetyRatings: z.array(safetyRatingSchema).nullish(),
794
+ groundingMetadata: groundingMetadataSchema.nullish()
795
+ })
796
+ ),
797
+ usageMetadata: z.object({
798
+ promptTokenCount: z.number().nullish(),
799
+ candidatesTokenCount: z.number().nullish(),
800
+ totalTokenCount: z.number().nullish()
801
+ }).nullish()
802
+ });
803
+ var chunkSchema = z.object({
804
+ candidates: z.array(
805
+ z.object({
806
+ content: contentSchema.nullish(),
807
+ finishReason: z.string().nullish(),
808
+ safetyRatings: z.array(safetyRatingSchema).nullish(),
809
+ groundingMetadata: groundingMetadataSchema.nullish()
810
+ })
811
+ ).nullish(),
812
+ usageMetadata: z.object({
813
+ promptTokenCount: z.number().nullish(),
814
+ candidatesTokenCount: z.number().nullish(),
815
+ totalTokenCount: z.number().nullish()
816
+ }).nullish()
817
+ });
818
+ var googleGenerativeAIProviderOptionsSchema = z.object({
819
+ responseModalities: z.array(z.enum(["TEXT", "IMAGE"])).nullish(),
820
+ thinkingConfig: z.object({
821
+ thinkingBudget: z.number().nullish(),
822
+ includeThoughts: z.boolean().nullish()
823
+ }).nullish()
824
+ });
825
+ var GoogleGenerativeAIEmbeddingModel = class {
826
+ constructor(modelId, settings, config) {
827
+ this.specificationVersion = "v1";
828
+ this.modelId = modelId;
829
+ this.settings = settings;
830
+ this.config = config;
831
+ }
832
+ get provider() {
833
+ return this.config.provider;
834
+ }
835
+ get maxEmbeddingsPerCall() {
836
+ return 2048;
837
+ }
838
+ get supportsParallelCalls() {
839
+ return true;
840
+ }
841
+ async doEmbed({
842
+ values,
843
+ headers,
844
+ abortSignal
845
+ }) {
846
+ if (values.length > this.maxEmbeddingsPerCall) {
847
+ throw new TooManyEmbeddingValuesForCallError({
848
+ provider: this.provider,
849
+ modelId: this.modelId,
850
+ maxEmbeddingsPerCall: this.maxEmbeddingsPerCall,
851
+ values
852
+ });
853
+ }
854
+ const mergedHeaders = combineHeaders(
855
+ await resolve(this.config.headers),
856
+ headers
857
+ );
858
+ const { responseHeaders, value: response } = await postJsonToApi({
859
+ url: `${this.config.baseURL}/models/${this.modelId}:batchEmbedContents`,
860
+ headers: mergedHeaders,
861
+ body: {
862
+ requests: values.map((value) => ({
863
+ model: `models/${this.modelId}`,
864
+ content: { role: "user", parts: [{ text: value }] },
865
+ outputDimensionality: this.settings.outputDimensionality,
866
+ taskType: this.settings.taskType
867
+ }))
868
+ },
869
+ failedResponseHandler: googleFailedResponseHandler,
870
+ successfulResponseHandler: createJsonResponseHandler(
871
+ googleGenerativeAITextEmbeddingResponseSchema
872
+ ),
873
+ abortSignal,
874
+ fetch: this.config.fetch
875
+ });
876
+ return {
877
+ embeddings: response.embeddings.map((item) => item.values),
878
+ usage: void 0,
879
+ rawResponse: { headers: responseHeaders }
880
+ };
881
+ }
882
+ };
883
+ var googleGenerativeAITextEmbeddingResponseSchema = z.object({
884
+ embeddings: z.array(z.object({ values: z.array(z.number()) }))
885
+ });
886
+ function isSupportedFileUrl(url) {
887
+ return url.toString().startsWith("https://generativelanguage.googleapis.com/v1beta/files/");
888
+ }
889
+ function createGoogleGenerativeAI(options = {}) {
890
+ var _a;
891
+ const baseURL = (_a = withoutTrailingSlash(options.baseURL)) != null ? _a : "https://generativelanguage.googleapis.com/v1beta";
892
+ const getHeaders = () => ({
893
+ "x-goog-api-key": loadApiKey({
894
+ apiKey: options.apiKey,
895
+ environmentVariableName: "GOOGLE_GENERATIVE_AI_API_KEY",
896
+ description: "Google Generative AI"
897
+ }),
898
+ ...options.headers
899
+ });
900
+ const createChatModel = (modelId, settings = {}) => {
901
+ var _a2;
902
+ return new GoogleGenerativeAILanguageModel(modelId, settings, {
903
+ provider: "google.generative-ai",
904
+ baseURL,
905
+ headers: getHeaders,
906
+ generateId: (_a2 = options.generateId) != null ? _a2 : generateId,
907
+ isSupportedUrl: isSupportedFileUrl,
908
+ fetch: options.fetch
909
+ });
910
+ };
911
+ const createEmbeddingModel = (modelId, settings = {}) => new GoogleGenerativeAIEmbeddingModel(modelId, settings, {
912
+ provider: "google.generative-ai",
913
+ baseURL,
914
+ headers: getHeaders,
915
+ fetch: options.fetch
916
+ });
917
+ const provider = function(modelId, settings) {
918
+ if (new.target) {
919
+ throw new Error(
920
+ "The Google Generative AI model function cannot be called with the new keyword."
921
+ );
922
+ }
923
+ return createChatModel(modelId, settings);
924
+ };
925
+ provider.languageModel = createChatModel;
926
+ provider.chat = createChatModel;
927
+ provider.generativeAI = createChatModel;
928
+ provider.embedding = createEmbeddingModel;
929
+ provider.textEmbedding = createEmbeddingModel;
930
+ provider.textEmbeddingModel = createEmbeddingModel;
931
+ return provider;
932
+ }
933
+ var google = createGoogleGenerativeAI();
934
+
935
+ export { createGoogleGenerativeAI, google };
936
+ //# sourceMappingURL=chunk-FQNT7PI4.js.map
937
+ //# sourceMappingURL=chunk-FQNT7PI4.js.map