@mastra/server 0.0.0-netlify-no-bundle-20251127120354 → 0.0.0-partial-response-backport-20251204204441

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 (296) hide show
  1. package/CHANGELOG.md +137 -656
  2. package/README.md +1 -1
  3. package/dist/{chunk-RCCWKKI3.js → chunk-2FBQWGK2.js} +31 -218
  4. package/dist/chunk-2FBQWGK2.js.map +1 -0
  5. package/dist/chunk-2S4IMB6E.cjs +130 -0
  6. package/dist/chunk-2S4IMB6E.cjs.map +1 -0
  7. package/dist/chunk-3SNGNFUJ.cjs +128 -0
  8. package/dist/chunk-3SNGNFUJ.cjs.map +1 -0
  9. package/dist/chunk-4QCXUEAT.js +25 -0
  10. package/dist/chunk-4QCXUEAT.js.map +1 -0
  11. package/dist/chunk-67GYDFSB.js +160 -0
  12. package/dist/chunk-67GYDFSB.js.map +1 -0
  13. package/dist/chunk-6ZR275MD.cjs +165 -0
  14. package/dist/chunk-6ZR275MD.cjs.map +1 -0
  15. package/dist/{chunk-64ITUOXI.cjs → chunk-7NADHFD2.cjs} +2 -2
  16. package/dist/{chunk-6QWQZI4Q.js.map → chunk-7NADHFD2.cjs.map} +1 -1
  17. package/dist/chunk-ABRFV4XP.js +83 -0
  18. package/dist/chunk-ABRFV4XP.js.map +1 -0
  19. package/dist/chunk-AHB4JCIQ.js +160 -0
  20. package/dist/chunk-AHB4JCIQ.js.map +1 -0
  21. package/dist/chunk-AW5BU3RQ.js +192 -0
  22. package/dist/chunk-AW5BU3RQ.js.map +1 -0
  23. package/dist/chunk-BATEJLED.js +124 -0
  24. package/dist/chunk-BATEJLED.js.map +1 -0
  25. package/dist/{chunk-UXGQZUYZ.js → chunk-CY4TP3FK.js} +3 -3
  26. package/dist/{chunk-UXGQZUYZ.js.map → chunk-CY4TP3FK.js.map} +1 -1
  27. package/dist/chunk-EP3JQDPD.cjs +131 -0
  28. package/dist/chunk-EP3JQDPD.cjs.map +1 -0
  29. package/dist/chunk-G4PUALCE.cjs +28 -0
  30. package/dist/chunk-G4PUALCE.cjs.map +1 -0
  31. package/dist/chunk-I3C4ODGV.cjs +335 -0
  32. package/dist/chunk-I3C4ODGV.cjs.map +1 -0
  33. package/dist/{chunk-UZ6CYAOG.cjs → chunk-JOBDMCQL.cjs} +21 -7
  34. package/dist/chunk-JOBDMCQL.cjs.map +1 -0
  35. package/dist/chunk-KPDPKARA.cjs +733 -0
  36. package/dist/chunk-KPDPKARA.cjs.map +1 -0
  37. package/dist/chunk-LLUOPR3J.js +323 -0
  38. package/dist/chunk-LLUOPR3J.js.map +1 -0
  39. package/dist/{chunk-6QWQZI4Q.js → chunk-MMROOK5J.js} +2 -2
  40. package/dist/chunk-MMROOK5J.js.map +1 -0
  41. package/dist/chunk-MYR4PVGN.js +123 -0
  42. package/dist/chunk-MYR4PVGN.js.map +1 -0
  43. package/dist/chunk-NT5XW5PI.cjs +596 -0
  44. package/dist/chunk-NT5XW5PI.cjs.map +1 -0
  45. package/dist/chunk-O5Q5JZMC.cjs +19565 -0
  46. package/dist/chunk-O5Q5JZMC.cjs.map +1 -0
  47. package/dist/chunk-PBXWFGEH.js +579 -0
  48. package/dist/chunk-PBXWFGEH.js.map +1 -0
  49. package/dist/{chunk-PDVJ2TTM.cjs → chunk-Q4WS5AH4.cjs} +31 -224
  50. package/dist/chunk-Q4WS5AH4.cjs.map +1 -0
  51. package/dist/chunk-QQXMIP6C.js +122 -0
  52. package/dist/chunk-QQXMIP6C.js.map +1 -0
  53. package/dist/{chunk-V272B7RM.cjs → chunk-QU6N55W6.cjs} +12 -11
  54. package/dist/chunk-QU6N55W6.cjs.map +1 -0
  55. package/dist/{chunk-V5WWQN7P.cjs → chunk-RE4RPXT2.cjs} +4 -4
  56. package/dist/{chunk-V5WWQN7P.cjs.map → chunk-RE4RPXT2.cjs.map} +1 -1
  57. package/dist/{chunk-YP34EWWK.js → chunk-SHWNNZBL.js} +10 -9
  58. package/dist/chunk-SHWNNZBL.js.map +1 -0
  59. package/dist/chunk-SPRRK3P7.cjs +200 -0
  60. package/dist/chunk-SPRRK3P7.cjs.map +1 -0
  61. package/dist/chunk-TM6RSSEG.js +711 -0
  62. package/dist/chunk-TM6RSSEG.js.map +1 -0
  63. package/dist/{chunk-ER3QM7DD.js → chunk-TOCYBDP2.js} +4 -4
  64. package/dist/{chunk-ER3QM7DD.js.map → chunk-TOCYBDP2.js.map} +1 -1
  65. package/dist/chunk-TRGAMKHX.cjs +167 -0
  66. package/dist/chunk-TRGAMKHX.cjs.map +1 -0
  67. package/dist/{chunk-G7BPNX2V.js → chunk-VN33BALN.js} +21 -7
  68. package/dist/chunk-VN33BALN.js.map +1 -0
  69. package/dist/chunk-VYX6MBSJ.js +909 -0
  70. package/dist/chunk-VYX6MBSJ.js.map +1 -0
  71. package/dist/chunk-VZX6AWAA.cjs +938 -0
  72. package/dist/chunk-VZX6AWAA.cjs.map +1 -0
  73. package/dist/{chunk-XQPJ63ZD.cjs → chunk-X6C7BUWN.cjs} +4 -4
  74. package/dist/{chunk-XQPJ63ZD.cjs.map → chunk-X6C7BUWN.cjs.map} +1 -1
  75. package/dist/chunk-XN74I6VW.cjs +88 -0
  76. package/dist/chunk-XN74I6VW.cjs.map +1 -0
  77. package/dist/chunk-XPQZ5C3T.js +19529 -0
  78. package/dist/chunk-XPQZ5C3T.js.map +1 -0
  79. package/dist/server/handlers/a2a.cjs +7 -15
  80. package/dist/server/handlers/a2a.d.ts +10 -492
  81. package/dist/server/handlers/a2a.d.ts.map +1 -1
  82. package/dist/server/handlers/a2a.js +1 -1
  83. package/dist/server/handlers/agent-builder.cjs +31 -43
  84. package/dist/server/handlers/agent-builder.d.ts +84 -598
  85. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  86. package/dist/server/handlers/agent-builder.js +1 -1
  87. package/dist/server/handlers/agents.cjs +41 -49
  88. package/dist/server/handlers/agents.d.ts +149 -3275
  89. package/dist/server/handlers/agents.d.ts.map +1 -1
  90. package/dist/server/handlers/agents.js +1 -1
  91. package/dist/server/handlers/error.cjs +2 -2
  92. package/dist/server/handlers/error.js +1 -1
  93. package/dist/server/handlers/legacyWorkflows.cjs +48 -0
  94. package/dist/server/handlers/legacyWorkflows.cjs.map +1 -0
  95. package/dist/server/handlers/legacyWorkflows.d.ts +59 -0
  96. package/dist/server/handlers/legacyWorkflows.d.ts.map +1 -0
  97. package/dist/server/handlers/legacyWorkflows.js +3 -0
  98. package/dist/server/handlers/legacyWorkflows.js.map +1 -0
  99. package/dist/server/handlers/logs.cjs +7 -7
  100. package/dist/server/handlers/logs.d.ts +27 -135
  101. package/dist/server/handlers/logs.d.ts.map +1 -1
  102. package/dist/server/handlers/logs.js +1 -1
  103. package/dist/server/handlers/memory.cjs +31 -63
  104. package/dist/server/handlers/memory.d.ts +103 -934
  105. package/dist/server/handlers/memory.d.ts.map +1 -1
  106. package/dist/server/handlers/memory.js +1 -1
  107. package/dist/server/handlers/observability.cjs +8 -24
  108. package/dist/server/handlers/observability.d.ts +21 -128
  109. package/dist/server/handlers/observability.d.ts.map +1 -1
  110. package/dist/server/handlers/observability.js +1 -1
  111. package/dist/server/handlers/scores.cjs +13 -13
  112. package/dist/server/handlers/scores.d.ts +141 -110
  113. package/dist/server/handlers/scores.d.ts.map +1 -1
  114. package/dist/server/handlers/scores.js +1 -1
  115. package/dist/server/handlers/telemetry.cjs +20 -0
  116. package/dist/server/handlers/telemetry.cjs.map +1 -0
  117. package/dist/server/handlers/telemetry.d.ts +33 -0
  118. package/dist/server/handlers/telemetry.d.ts.map +1 -0
  119. package/dist/server/handlers/telemetry.js +3 -0
  120. package/dist/server/handlers/telemetry.js.map +1 -0
  121. package/dist/server/handlers/tools.cjs +11 -11
  122. package/dist/server/handlers/tools.d.ts +23 -69
  123. package/dist/server/handlers/tools.d.ts.map +1 -1
  124. package/dist/server/handlers/tools.js +1 -1
  125. package/dist/server/handlers/utils.cjs +3 -11
  126. package/dist/server/handlers/utils.d.ts +0 -5
  127. package/dist/server/handlers/utils.d.ts.map +1 -1
  128. package/dist/server/handlers/utils.js +1 -1
  129. package/dist/server/handlers/vector.cjs +7 -31
  130. package/dist/server/handlers/vector.d.ts +9 -93
  131. package/dist/server/handlers/vector.d.ts.map +1 -1
  132. package/dist/server/handlers/vector.js +1 -1
  133. package/dist/server/handlers/voice.cjs +9 -21
  134. package/dist/server/handlers/voice.d.ts +40 -81
  135. package/dist/server/handlers/voice.d.ts.map +1 -1
  136. package/dist/server/handlers/voice.js +1 -1
  137. package/dist/server/handlers/workflows.cjs +59 -51
  138. package/dist/server/handlers/workflows.d.ts +140 -915
  139. package/dist/server/handlers/workflows.d.ts.map +1 -1
  140. package/dist/server/handlers/workflows.js +1 -1
  141. package/dist/server/handlers.cjs +36 -26
  142. package/dist/server/handlers.d.ts +2 -0
  143. package/dist/server/handlers.d.ts.map +1 -1
  144. package/dist/server/handlers.js +13 -11
  145. package/dist/server/http-exception.d.ts +5 -0
  146. package/dist/server/http-exception.d.ts.map +1 -1
  147. package/dist/server/utils.d.ts +3 -4
  148. package/dist/server/utils.d.ts.map +1 -1
  149. package/dist/{token-ZOD6YIQ3.cjs → token-375W3LEI.cjs} +8 -7
  150. package/dist/{token-VFONFWVS.cjs.map → token-375W3LEI.cjs.map} +1 -1
  151. package/dist/{token-JGA3ZWAN.js → token-C3IMNCC4.js} +6 -5
  152. package/dist/{token-GVZ7HRD7.js.map → token-C3IMNCC4.js.map} +1 -1
  153. package/dist/token-util-CV3RRG6K.cjs +9 -0
  154. package/dist/{token-util-BLJZJDBZ.cjs.map → token-util-CV3RRG6K.cjs.map} +1 -1
  155. package/dist/token-util-E5QO2RCL.js +7 -0
  156. package/dist/{token-util-7R2ZFIXO.js.map → token-util-E5QO2RCL.js.map} +1 -1
  157. package/package.json +15 -26
  158. package/dist/chunk-2NW6POYK.cjs +0 -89
  159. package/dist/chunk-2NW6POYK.cjs.map +0 -1
  160. package/dist/chunk-4JMHKKV3.cjs +0 -201
  161. package/dist/chunk-4JMHKKV3.cjs.map +0 -1
  162. package/dist/chunk-4O2QGUW3.js +0 -354
  163. package/dist/chunk-4O2QGUW3.js.map +0 -1
  164. package/dist/chunk-4W2SM6CG.js +0 -294
  165. package/dist/chunk-4W2SM6CG.js.map +0 -1
  166. package/dist/chunk-5W4RPVTK.cjs +0 -49
  167. package/dist/chunk-5W4RPVTK.cjs.map +0 -1
  168. package/dist/chunk-64ITUOXI.cjs.map +0 -1
  169. package/dist/chunk-6GHJDY7R.js +0 -23157
  170. package/dist/chunk-6GHJDY7R.js.map +0 -1
  171. package/dist/chunk-6KNI7VIX.js +0 -1021
  172. package/dist/chunk-6KNI7VIX.js.map +0 -1
  173. package/dist/chunk-A6MQQTHN.js +0 -310
  174. package/dist/chunk-A6MQQTHN.js.map +0 -1
  175. package/dist/chunk-AUQBEMDP.cjs +0 -322
  176. package/dist/chunk-AUQBEMDP.cjs.map +0 -1
  177. package/dist/chunk-CBDUTSTI.js +0 -192
  178. package/dist/chunk-CBDUTSTI.js.map +0 -1
  179. package/dist/chunk-FPCGLPLJ.cjs +0 -297
  180. package/dist/chunk-FPCGLPLJ.cjs.map +0 -1
  181. package/dist/chunk-G7BPNX2V.js.map +0 -1
  182. package/dist/chunk-IMK7366C.cjs +0 -346
  183. package/dist/chunk-IMK7366C.cjs.map +0 -1
  184. package/dist/chunk-LGG3N3AV.js +0 -116
  185. package/dist/chunk-LGG3N3AV.js.map +0 -1
  186. package/dist/chunk-LIDPFFPK.cjs +0 -23199
  187. package/dist/chunk-LIDPFFPK.cjs.map +0 -1
  188. package/dist/chunk-LZDCXQMX.js +0 -164
  189. package/dist/chunk-LZDCXQMX.js.map +0 -1
  190. package/dist/chunk-MH3A7RDQ.cjs +0 -1064
  191. package/dist/chunk-MH3A7RDQ.cjs.map +0 -1
  192. package/dist/chunk-MWQQRVQC.cjs +0 -259
  193. package/dist/chunk-MWQQRVQC.cjs.map +0 -1
  194. package/dist/chunk-PDVJ2TTM.cjs.map +0 -1
  195. package/dist/chunk-PKRHEXX7.js +0 -74
  196. package/dist/chunk-PKRHEXX7.js.map +0 -1
  197. package/dist/chunk-QDOIM3G5.cjs +0 -916
  198. package/dist/chunk-QDOIM3G5.cjs.map +0 -1
  199. package/dist/chunk-QVHQZUGJ.cjs +0 -368
  200. package/dist/chunk-QVHQZUGJ.cjs.map +0 -1
  201. package/dist/chunk-R4M3BSUG.js +0 -226
  202. package/dist/chunk-R4M3BSUG.js.map +0 -1
  203. package/dist/chunk-R6ZTXNN2.cjs +0 -797
  204. package/dist/chunk-R6ZTXNN2.cjs.map +0 -1
  205. package/dist/chunk-RCCWKKI3.js.map +0 -1
  206. package/dist/chunk-RIYA7ZCE.js +0 -887
  207. package/dist/chunk-RIYA7ZCE.js.map +0 -1
  208. package/dist/chunk-S6DFGBDD.cjs +0 -211
  209. package/dist/chunk-S6DFGBDD.cjs.map +0 -1
  210. package/dist/chunk-SAQSK4AG.cjs +0 -167
  211. package/dist/chunk-SAQSK4AG.cjs.map +0 -1
  212. package/dist/chunk-UCRV7PD3.js +0 -773
  213. package/dist/chunk-UCRV7PD3.js.map +0 -1
  214. package/dist/chunk-UZ6CYAOG.cjs.map +0 -1
  215. package/dist/chunk-V272B7RM.cjs.map +0 -1
  216. package/dist/chunk-XWGAT2DA.js +0 -44
  217. package/dist/chunk-XWGAT2DA.js.map +0 -1
  218. package/dist/chunk-YLQHE2S5.js +0 -204
  219. package/dist/chunk-YLQHE2S5.js.map +0 -1
  220. package/dist/chunk-YP34EWWK.js.map +0 -1
  221. package/dist/chunk-Z7R7CFVF.cjs +0 -125
  222. package/dist/chunk-Z7R7CFVF.cjs.map +0 -1
  223. package/dist/chunk-ZPZSAJAR.js +0 -328
  224. package/dist/chunk-ZPZSAJAR.js.map +0 -1
  225. package/dist/server/handlers/test-utils.cjs +0 -15
  226. package/dist/server/handlers/test-utils.cjs.map +0 -1
  227. package/dist/server/handlers/test-utils.d.ts +0 -6
  228. package/dist/server/handlers/test-utils.d.ts.map +0 -1
  229. package/dist/server/handlers/test-utils.js +0 -13
  230. package/dist/server/handlers/test-utils.js.map +0 -1
  231. package/dist/server/schemas/a2a.d.ts +0 -786
  232. package/dist/server/schemas/a2a.d.ts.map +0 -1
  233. package/dist/server/schemas/agent-builder.d.ts +0 -195
  234. package/dist/server/schemas/agent-builder.d.ts.map +0 -1
  235. package/dist/server/schemas/agents.d.ts +0 -1375
  236. package/dist/server/schemas/agents.d.ts.map +0 -1
  237. package/dist/server/schemas/common.d.ts +0 -165
  238. package/dist/server/schemas/common.d.ts.map +0 -1
  239. package/dist/server/schemas/logs.d.ts +0 -124
  240. package/dist/server/schemas/logs.d.ts.map +0 -1
  241. package/dist/server/schemas/memory.d.ts +0 -998
  242. package/dist/server/schemas/memory.d.ts.map +0 -1
  243. package/dist/server/schemas/observability.d.ts +0 -402
  244. package/dist/server/schemas/observability.d.ts.map +0 -1
  245. package/dist/server/schemas/scores.d.ts +0 -259
  246. package/dist/server/schemas/scores.d.ts.map +0 -1
  247. package/dist/server/schemas/vectors.d.ts +0 -107
  248. package/dist/server/schemas/vectors.d.ts.map +0 -1
  249. package/dist/server/schemas/workflows.d.ts +0 -608
  250. package/dist/server/schemas/workflows.d.ts.map +0 -1
  251. package/dist/server/server-adapter/index.cjs +0 -330
  252. package/dist/server/server-adapter/index.cjs.map +0 -1
  253. package/dist/server/server-adapter/index.d.ts +0 -52
  254. package/dist/server/server-adapter/index.d.ts.map +0 -1
  255. package/dist/server/server-adapter/index.js +0 -316
  256. package/dist/server/server-adapter/index.js.map +0 -1
  257. package/dist/server/server-adapter/openapi-utils.d.ts +0 -59
  258. package/dist/server/server-adapter/openapi-utils.d.ts.map +0 -1
  259. package/dist/server/server-adapter/routes/a2a.d.ts +0 -3
  260. package/dist/server/server-adapter/routes/a2a.d.ts.map +0 -1
  261. package/dist/server/server-adapter/routes/agent-builder.d.ts +0 -3
  262. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +0 -1
  263. package/dist/server/server-adapter/routes/agents.d.ts +0 -3
  264. package/dist/server/server-adapter/routes/agents.d.ts.map +0 -1
  265. package/dist/server/server-adapter/routes/index.d.ts +0 -41
  266. package/dist/server/server-adapter/routes/index.d.ts.map +0 -1
  267. package/dist/server/server-adapter/routes/legacy.d.ts +0 -7
  268. package/dist/server/server-adapter/routes/legacy.d.ts.map +0 -1
  269. package/dist/server/server-adapter/routes/logs.d.ts +0 -3
  270. package/dist/server/server-adapter/routes/logs.d.ts.map +0 -1
  271. package/dist/server/server-adapter/routes/memory.d.ts +0 -3
  272. package/dist/server/server-adapter/routes/memory.d.ts.map +0 -1
  273. package/dist/server/server-adapter/routes/observability.d.ts +0 -3
  274. package/dist/server/server-adapter/routes/observability.d.ts.map +0 -1
  275. package/dist/server/server-adapter/routes/route-builder.d.ts +0 -52
  276. package/dist/server/server-adapter/routes/route-builder.d.ts.map +0 -1
  277. package/dist/server/server-adapter/routes/scorers.d.ts +0 -3
  278. package/dist/server/server-adapter/routes/scorers.d.ts.map +0 -1
  279. package/dist/server/server-adapter/routes/stream-types.d.ts +0 -10
  280. package/dist/server/server-adapter/routes/stream-types.d.ts.map +0 -1
  281. package/dist/server/server-adapter/routes/tools.d.ts +0 -3
  282. package/dist/server/server-adapter/routes/tools.d.ts.map +0 -1
  283. package/dist/server/server-adapter/routes/vectors.d.ts +0 -3
  284. package/dist/server/server-adapter/routes/vectors.d.ts.map +0 -1
  285. package/dist/server/server-adapter/routes/workflows.d.ts +0 -3
  286. package/dist/server/server-adapter/routes/workflows.d.ts.map +0 -1
  287. package/dist/token-GVZ7HRD7.js +0 -62
  288. package/dist/token-JGA3ZWAN.js.map +0 -1
  289. package/dist/token-VFONFWVS.cjs +0 -64
  290. package/dist/token-ZOD6YIQ3.cjs.map +0 -1
  291. package/dist/token-util-7R2ZFIXO.js +0 -7
  292. package/dist/token-util-BLJZJDBZ.cjs +0 -9
  293. package/dist/token-util-VGZUWSNR.cjs +0 -9
  294. package/dist/token-util-VGZUWSNR.cjs.map +0 -1
  295. package/dist/token-util-VKTPZLSE.js +0 -7
  296. package/dist/token-util-VKTPZLSE.js.map +0 -1
@@ -0,0 +1,711 @@
1
+ import { sanitizeBody, validateBody } from './chunk-4QCXUEAT.js';
2
+ import { stringify } from './chunk-LF2ZLOFP.js';
3
+ import { handleError } from './chunk-CY4TP3FK.js';
4
+ import { HTTPException } from './chunk-MMROOK5J.js';
5
+ import { __export } from './chunk-PR4QN5HX.js';
6
+ import { PROVIDER_REGISTRY } from '@mastra/core/llm';
7
+ import { RuntimeContext } from '@mastra/core/runtime-context';
8
+ import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';
9
+
10
+ // src/server/handlers/agents.ts
11
+ var agents_exports = {};
12
+ __export(agents_exports, {
13
+ approveToolCallHandler: () => approveToolCallHandler,
14
+ declineToolCallHandler: () => declineToolCallHandler,
15
+ generateHandler: () => generateHandler,
16
+ generateLegacyHandler: () => generateLegacyHandler,
17
+ getAgentByIdHandler: () => getAgentByIdHandler,
18
+ getAgentFromSystem: () => getAgentFromSystem,
19
+ getAgentsHandler: () => getAgentsHandler,
20
+ getEvalsByAgentIdHandler: () => getEvalsByAgentIdHandler,
21
+ getLiveEvalsByAgentIdHandler: () => getLiveEvalsByAgentIdHandler,
22
+ getProvidersHandler: () => getProvidersHandler,
23
+ getSerializedAgentTools: () => getSerializedAgentTools,
24
+ getSerializedProcessors: () => getSerializedProcessors,
25
+ reorderAgentModelListHandler: () => reorderAgentModelListHandler,
26
+ resetAgentModelHandler: () => resetAgentModelHandler,
27
+ streamGenerateHandler: () => streamGenerateHandler,
28
+ streamGenerateLegacyHandler: () => streamGenerateLegacyHandler,
29
+ streamNetworkHandler: () => streamNetworkHandler,
30
+ streamUIMessageHandler: () => streamUIMessageHandler,
31
+ updateAgentModelHandler: () => updateAgentModelHandler,
32
+ updateAgentModelInModelListHandler: () => updateAgentModelInModelListHandler
33
+ });
34
+ async function getSerializedAgentTools(tools, partial = false) {
35
+ return Object.entries(tools || {}).reduce((acc, [key, tool]) => {
36
+ const _tool = tool;
37
+ const toolId = _tool.id ?? `tool-${key}`;
38
+ let inputSchemaForReturn = void 0;
39
+ let outputSchemaForReturn = void 0;
40
+ if (!partial) {
41
+ try {
42
+ if (_tool.inputSchema) {
43
+ if (_tool.inputSchema && typeof _tool.inputSchema === "object" && "jsonSchema" in _tool.inputSchema) {
44
+ inputSchemaForReturn = stringify(_tool.inputSchema.jsonSchema);
45
+ } else if (typeof _tool.inputSchema === "function") {
46
+ const inputSchema = _tool.inputSchema();
47
+ if (inputSchema && inputSchema.jsonSchema) {
48
+ inputSchemaForReturn = stringify(inputSchema.jsonSchema);
49
+ }
50
+ } else if (_tool.inputSchema) {
51
+ inputSchemaForReturn = stringify(
52
+ zodToJsonSchema(_tool.inputSchema)
53
+ );
54
+ }
55
+ }
56
+ if (_tool.outputSchema) {
57
+ if (_tool.outputSchema && typeof _tool.outputSchema === "object" && "jsonSchema" in _tool.outputSchema) {
58
+ outputSchemaForReturn = stringify(_tool.outputSchema.jsonSchema);
59
+ } else if (typeof _tool.outputSchema === "function") {
60
+ const outputSchema = _tool.outputSchema();
61
+ if (outputSchema && outputSchema.jsonSchema) {
62
+ outputSchemaForReturn = stringify(outputSchema.jsonSchema);
63
+ }
64
+ } else if (_tool.outputSchema) {
65
+ outputSchemaForReturn = stringify(
66
+ zodToJsonSchema(_tool.outputSchema)
67
+ );
68
+ }
69
+ }
70
+ } catch (error) {
71
+ console.error(`Error getting serialized tool`, {
72
+ toolId: _tool.id,
73
+ error
74
+ });
75
+ }
76
+ }
77
+ acc[key] = {
78
+ ..._tool,
79
+ id: toolId,
80
+ inputSchema: inputSchemaForReturn,
81
+ outputSchema: outputSchemaForReturn
82
+ };
83
+ return acc;
84
+ }, {});
85
+ }
86
+ function getSerializedProcessors(processors) {
87
+ return processors.map((processor) => {
88
+ return {
89
+ name: processor.name || processor.constructor.name
90
+ };
91
+ });
92
+ }
93
+ async function getSerializedAgentDefinition({
94
+ agent,
95
+ runtimeContext
96
+ }) {
97
+ let serializedAgentAgents = {};
98
+ if ("listAgents" in agent) {
99
+ const agents = await agent.listAgents({ runtimeContext });
100
+ serializedAgentAgents = Object.entries(agents || {}).reduce(
101
+ (acc, [key, agent2]) => {
102
+ return {
103
+ ...acc,
104
+ [key]: { id: agent2.id, name: agent2.name }
105
+ };
106
+ },
107
+ {}
108
+ );
109
+ }
110
+ return serializedAgentAgents;
111
+ }
112
+ async function formatAgentList({
113
+ id,
114
+ mastra,
115
+ agent,
116
+ runtimeContext,
117
+ partial = false
118
+ }) {
119
+ const instructions = await agent.getInstructions({ runtimeContext });
120
+ const tools = await agent.getTools({ runtimeContext });
121
+ const llm = await agent.getLLM({ runtimeContext });
122
+ const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext });
123
+ const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext });
124
+ const serializedAgentTools = await getSerializedAgentTools(tools, partial);
125
+ let serializedAgentWorkflows = {};
126
+ if ("getWorkflows" in agent) {
127
+ const logger = mastra.getLogger();
128
+ try {
129
+ const workflows = await agent.getWorkflows({ runtimeContext });
130
+ serializedAgentWorkflows = Object.entries(workflows || {}).reduce((acc, [key, workflow]) => {
131
+ return {
132
+ ...acc,
133
+ [key]: {
134
+ name: workflow.name || "Unnamed workflow"
135
+ }
136
+ };
137
+ }, {});
138
+ } catch (error) {
139
+ logger.error("Error getting workflows for agent", { agentName: agent.name, error });
140
+ }
141
+ }
142
+ const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext });
143
+ const inputProcessors = await agent.getInputProcessors(runtimeContext);
144
+ const outputProcessors = await agent.getOutputProcessors(runtimeContext);
145
+ const serializedInputProcessors = getSerializedProcessors(inputProcessors);
146
+ const serializedOutputProcessors = getSerializedProcessors(outputProcessors);
147
+ const model = llm?.getModel();
148
+ const models = await agent.getModelList(runtimeContext);
149
+ const modelList = models?.map((md) => ({
150
+ ...md,
151
+ model: {
152
+ modelId: md.model.modelId,
153
+ provider: md.model.provider,
154
+ modelVersion: md.model.specificationVersion
155
+ }
156
+ }));
157
+ return {
158
+ id,
159
+ name: agent.name,
160
+ instructions,
161
+ agents: serializedAgentAgents,
162
+ tools: serializedAgentTools,
163
+ workflows: serializedAgentWorkflows,
164
+ inputProcessors: serializedInputProcessors,
165
+ outputProcessors: serializedOutputProcessors,
166
+ provider: llm?.getProvider(),
167
+ modelId: llm?.getModelId(),
168
+ modelVersion: model?.specificationVersion,
169
+ defaultGenerateOptions,
170
+ defaultStreamOptions,
171
+ modelList
172
+ };
173
+ }
174
+ async function getAgentFromSystem({ mastra, agentId }) {
175
+ const logger = mastra.getLogger();
176
+ if (!agentId) {
177
+ throw new HTTPException(400, { message: "Agent ID is required" });
178
+ }
179
+ let agent;
180
+ try {
181
+ agent = mastra.getAgent(agentId);
182
+ } catch (error) {
183
+ logger.debug("Error getting agent from mastra, searching agents for agent", error);
184
+ }
185
+ if (!agent) {
186
+ logger.debug(`Agent ${agentId} not found, looking through sub-agents`);
187
+ const agents = mastra.getAgents();
188
+ if (Object.keys(agents || {}).length) {
189
+ for (const [_, ag] of Object.entries(agents)) {
190
+ try {
191
+ const subAgents = await ag.listAgents();
192
+ if (subAgents[agentId]) {
193
+ agent = subAgents[agentId];
194
+ break;
195
+ }
196
+ } catch (error) {
197
+ logger.debug("Error getting agent from agent", error);
198
+ }
199
+ }
200
+ }
201
+ }
202
+ if (!agent) {
203
+ throw new HTTPException(404, { message: `Agent with name ${agentId} not found` });
204
+ }
205
+ return agent;
206
+ }
207
+ async function getAgentsHandler({
208
+ mastra,
209
+ runtimeContext,
210
+ partial = false
211
+ }) {
212
+ try {
213
+ const agents = mastra.getAgents();
214
+ const serializedAgentsMap = await Promise.all(
215
+ Object.entries(agents).map(async ([id, agent]) => {
216
+ return formatAgentList({ id, mastra, agent, runtimeContext, partial });
217
+ })
218
+ );
219
+ const serializedAgents = serializedAgentsMap.reduce((acc, { id, ...rest }) => {
220
+ acc[id] = rest;
221
+ return acc;
222
+ }, {});
223
+ return serializedAgents;
224
+ } catch (error) {
225
+ return handleError(error, "Error getting agents");
226
+ }
227
+ }
228
+ async function formatAgent({
229
+ mastra,
230
+ agent,
231
+ runtimeContext,
232
+ isPlayground
233
+ }) {
234
+ const tools = await agent.getTools({ runtimeContext });
235
+ const serializedAgentTools = await getSerializedAgentTools(tools);
236
+ let serializedAgentWorkflows = {};
237
+ if ("getWorkflows" in agent) {
238
+ const logger = mastra.getLogger();
239
+ try {
240
+ const workflows = await agent.getWorkflows({ runtimeContext });
241
+ serializedAgentWorkflows = Object.entries(workflows || {}).reduce((acc, [key, workflow]) => {
242
+ return {
243
+ ...acc,
244
+ [key]: {
245
+ name: workflow.name || "Unnamed workflow",
246
+ steps: Object.entries(workflow.steps).reduce(
247
+ (acc2, [key2, step]) => {
248
+ return {
249
+ ...acc2,
250
+ [key2]: {
251
+ id: step.id,
252
+ description: step.description
253
+ }
254
+ };
255
+ },
256
+ {}
257
+ )
258
+ }
259
+ };
260
+ }, {});
261
+ } catch (error) {
262
+ logger.error("Error getting workflows for agent", { agentName: agent.name, error });
263
+ }
264
+ }
265
+ let proxyRuntimeContext = runtimeContext;
266
+ if (isPlayground) {
267
+ proxyRuntimeContext = new Proxy(runtimeContext, {
268
+ get(target, prop) {
269
+ if (prop === "get") {
270
+ return function(key) {
271
+ const value = target.get(key);
272
+ return value ?? `<${key}>`;
273
+ };
274
+ }
275
+ return Reflect.get(target, prop);
276
+ }
277
+ });
278
+ }
279
+ const instructions = await agent.getInstructions({ runtimeContext: proxyRuntimeContext });
280
+ const llm = await agent.getLLM({ runtimeContext });
281
+ const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });
282
+ const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });
283
+ const model = llm?.getModel();
284
+ const models = await agent.getModelList(runtimeContext);
285
+ const modelList = models?.map((md) => ({
286
+ ...md,
287
+ model: {
288
+ modelId: md.model.modelId,
289
+ provider: md.model.provider,
290
+ modelVersion: md.model.specificationVersion
291
+ }
292
+ }));
293
+ const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext: proxyRuntimeContext });
294
+ const inputProcessors = await agent.getInputProcessors(proxyRuntimeContext);
295
+ const outputProcessors = await agent.getOutputProcessors(proxyRuntimeContext);
296
+ const serializedInputProcessors = getSerializedProcessors(inputProcessors);
297
+ const serializedOutputProcessors = getSerializedProcessors(outputProcessors);
298
+ return {
299
+ name: agent.name,
300
+ instructions,
301
+ tools: serializedAgentTools,
302
+ agents: serializedAgentAgents,
303
+ workflows: serializedAgentWorkflows,
304
+ inputProcessors: serializedInputProcessors,
305
+ outputProcessors: serializedOutputProcessors,
306
+ provider: llm?.getProvider(),
307
+ modelId: llm?.getModelId(),
308
+ modelVersion: model?.specificationVersion,
309
+ modelList,
310
+ defaultGenerateOptions,
311
+ defaultStreamOptions
312
+ };
313
+ }
314
+ async function getAgentByIdHandler({
315
+ mastra,
316
+ runtimeContext,
317
+ agentId,
318
+ isPlayground = false
319
+ }) {
320
+ try {
321
+ const agent = await getAgentFromSystem({ mastra, agentId });
322
+ return formatAgent({ mastra, agent, runtimeContext, isPlayground });
323
+ } catch (error) {
324
+ return handleError(error, "Error getting agent");
325
+ }
326
+ }
327
+ async function getEvalsByAgentIdHandler({
328
+ mastra,
329
+ runtimeContext,
330
+ agentId
331
+ }) {
332
+ try {
333
+ const agent = await getAgentFromSystem({ mastra, agentId });
334
+ const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "test") || [];
335
+ const instructions = await agent.getInstructions({ runtimeContext });
336
+ return {
337
+ id: agentId,
338
+ name: agent.name,
339
+ instructions,
340
+ evals
341
+ };
342
+ } catch (error) {
343
+ return handleError(error, "Error getting test evals");
344
+ }
345
+ }
346
+ async function getLiveEvalsByAgentIdHandler({
347
+ mastra,
348
+ runtimeContext,
349
+ agentId
350
+ }) {
351
+ try {
352
+ const agent = await getAgentFromSystem({ mastra, agentId });
353
+ const evals = await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, "live") || [];
354
+ const instructions = await agent.getInstructions({ runtimeContext });
355
+ return {
356
+ id: agentId,
357
+ name: agent.name,
358
+ instructions,
359
+ evals
360
+ };
361
+ } catch (error) {
362
+ return handleError(error, "Error getting live evals");
363
+ }
364
+ }
365
+ async function generateLegacyHandler({
366
+ mastra,
367
+ runtimeContext,
368
+ agentId,
369
+ body,
370
+ abortSignal
371
+ }) {
372
+ try {
373
+ const agent = await getAgentFromSystem({ mastra, agentId });
374
+ sanitizeBody(body, ["tools"]);
375
+ const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
376
+ const finalResourceId = resourceId ?? resourceid;
377
+ const finalRuntimeContext = new RuntimeContext([
378
+ ...Array.from(runtimeContext.entries()),
379
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
380
+ ]);
381
+ validateBody({ messages });
382
+ const result = await agent.generateLegacy(messages, {
383
+ ...rest,
384
+ abortSignal,
385
+ // @ts-expect-error TODO fix types
386
+ resourceId: finalResourceId,
387
+ runtimeContext: finalRuntimeContext
388
+ });
389
+ return result;
390
+ } catch (error) {
391
+ return handleError(error, "Error generating from agent");
392
+ }
393
+ }
394
+ async function generateHandler({
395
+ mastra,
396
+ runtimeContext,
397
+ agentId,
398
+ body,
399
+ abortSignal
400
+ }) {
401
+ try {
402
+ const agent = await getAgentFromSystem({ mastra, agentId });
403
+ sanitizeBody(body, ["tools"]);
404
+ const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
405
+ const finalRuntimeContext = new RuntimeContext([
406
+ ...Array.from(runtimeContext.entries()),
407
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
408
+ ]);
409
+ validateBody({ messages });
410
+ const result = await agent.generate(messages, {
411
+ ...rest,
412
+ runtimeContext: finalRuntimeContext,
413
+ format: rest.format || "mastra",
414
+ abortSignal
415
+ });
416
+ return result;
417
+ } catch (error) {
418
+ return handleError(error, "Error generating from agent");
419
+ }
420
+ }
421
+ async function streamGenerateLegacyHandler({
422
+ mastra,
423
+ runtimeContext,
424
+ agentId,
425
+ body,
426
+ abortSignal
427
+ }) {
428
+ try {
429
+ const agent = await getAgentFromSystem({ mastra, agentId });
430
+ const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
431
+ const finalResourceId = resourceId ?? resourceid;
432
+ const finalRuntimeContext = new RuntimeContext([
433
+ ...Array.from(runtimeContext.entries()),
434
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
435
+ ]);
436
+ validateBody({ messages });
437
+ const streamResult = await agent.streamLegacy(messages, {
438
+ ...rest,
439
+ abortSignal,
440
+ // @ts-expect-error TODO fix types
441
+ resourceId: finalResourceId,
442
+ runtimeContext: finalRuntimeContext
443
+ });
444
+ const streamResponse = rest.output ? streamResult.toTextStreamResponse({
445
+ headers: {
446
+ "Transfer-Encoding": "chunked"
447
+ }
448
+ }) : streamResult.toDataStreamResponse({
449
+ sendUsage: true,
450
+ sendReasoning: true,
451
+ getErrorMessage: (error) => {
452
+ return `An error occurred while processing your request. ${error instanceof Error ? error.message : JSON.stringify(error)}`;
453
+ },
454
+ headers: {
455
+ "Transfer-Encoding": "chunked"
456
+ }
457
+ });
458
+ return streamResponse;
459
+ } catch (error) {
460
+ return handleError(error, "error streaming agent response");
461
+ }
462
+ }
463
+ async function streamGenerateHandler({
464
+ mastra,
465
+ runtimeContext,
466
+ agentId,
467
+ body,
468
+ abortSignal
469
+ }) {
470
+ try {
471
+ const agent = await getAgentFromSystem({ mastra, agentId });
472
+ sanitizeBody(body, ["tools"]);
473
+ const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
474
+ const finalRuntimeContext = new RuntimeContext([
475
+ ...Array.from(runtimeContext.entries()),
476
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
477
+ ]);
478
+ validateBody({ messages });
479
+ const streamResult = agent.stream(messages, {
480
+ ...rest,
481
+ runtimeContext: finalRuntimeContext,
482
+ abortSignal,
483
+ format: body.format ?? "mastra"
484
+ });
485
+ return streamResult;
486
+ } catch (error) {
487
+ return handleError(error, "error streaming agent response");
488
+ }
489
+ }
490
+ async function approveToolCallHandler({
491
+ mastra,
492
+ runtimeContext,
493
+ agentId,
494
+ body,
495
+ abortSignal
496
+ }) {
497
+ try {
498
+ const agent = await getAgentFromSystem({ mastra, agentId });
499
+ if (!body.runId) {
500
+ throw new HTTPException(400, { message: "Run id is required" });
501
+ }
502
+ if (!body.toolCallId) {
503
+ throw new HTTPException(400, { message: "Tool call id is required" });
504
+ }
505
+ sanitizeBody(body, ["tools"]);
506
+ const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;
507
+ const finalRuntimeContext = new RuntimeContext([
508
+ ...Array.from(runtimeContext.entries()),
509
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
510
+ ]);
511
+ const streamResult = agent.approveToolCall({
512
+ ...rest,
513
+ runId,
514
+ runtimeContext: finalRuntimeContext,
515
+ abortSignal,
516
+ format: body.format ?? "mastra"
517
+ });
518
+ return streamResult;
519
+ } catch (error) {
520
+ return handleError(error, "error streaming agent response");
521
+ }
522
+ }
523
+ async function declineToolCallHandler({
524
+ mastra,
525
+ runtimeContext,
526
+ agentId,
527
+ body,
528
+ abortSignal
529
+ }) {
530
+ try {
531
+ const agent = await getAgentFromSystem({ mastra, agentId });
532
+ if (!body.runId) {
533
+ throw new HTTPException(400, { message: "Run id is required" });
534
+ }
535
+ if (!body.toolCallId) {
536
+ throw new HTTPException(400, { message: "Tool call id is required" });
537
+ }
538
+ sanitizeBody(body, ["tools"]);
539
+ const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;
540
+ const finalRuntimeContext = new RuntimeContext([
541
+ ...Array.from(runtimeContext.entries()),
542
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
543
+ ]);
544
+ const streamResult = agent.declineToolCall({
545
+ ...rest,
546
+ runId,
547
+ runtimeContext: finalRuntimeContext,
548
+ abortSignal,
549
+ format: body.format ?? "mastra"
550
+ });
551
+ return streamResult;
552
+ } catch (error) {
553
+ return handleError(error, "error streaming agent response");
554
+ }
555
+ }
556
+ async function streamNetworkHandler({
557
+ mastra,
558
+ runtimeContext,
559
+ agentId,
560
+ body
561
+ // abortSignal,
562
+ }) {
563
+ try {
564
+ const agent = await getAgentFromSystem({ mastra, agentId });
565
+ sanitizeBody(body, ["tools"]);
566
+ const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
567
+ const finalRuntimeContext = new RuntimeContext([
568
+ ...Array.from(runtimeContext.entries()),
569
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
570
+ ]);
571
+ validateBody({ messages });
572
+ const streamResult = agent.network(messages, {
573
+ ...rest,
574
+ memory: {
575
+ thread: rest.memory?.thread ?? "",
576
+ resource: rest.memory?.resource ?? "",
577
+ options: rest.memory?.options ?? {}
578
+ },
579
+ runtimeContext: finalRuntimeContext
580
+ });
581
+ return streamResult;
582
+ } catch (error) {
583
+ return handleError(error, "error streaming agent loop response");
584
+ }
585
+ }
586
+ async function streamUIMessageHandler({
587
+ mastra,
588
+ runtimeContext,
589
+ agentId,
590
+ body,
591
+ abortSignal
592
+ }) {
593
+ try {
594
+ const agent = await getAgentFromSystem({ mastra, agentId });
595
+ sanitizeBody(body, ["tools"]);
596
+ const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
597
+ const finalRuntimeContext = new RuntimeContext([
598
+ ...Array.from(runtimeContext.entries()),
599
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
600
+ ]);
601
+ validateBody({ messages });
602
+ const streamResult = await agent.stream(messages, {
603
+ ...rest,
604
+ runtimeContext: finalRuntimeContext,
605
+ abortSignal,
606
+ format: "aisdk"
607
+ });
608
+ return streamResult.toUIMessageStreamResponse();
609
+ } catch (error) {
610
+ return handleError(error, "error streaming agent response");
611
+ }
612
+ }
613
+ async function updateAgentModelHandler({
614
+ mastra,
615
+ agentId,
616
+ body
617
+ }) {
618
+ try {
619
+ const agent = await getAgentFromSystem({ mastra, agentId });
620
+ const { modelId, provider } = body;
621
+ const newModel = `${provider}/${modelId}`;
622
+ agent.__updateModel({ model: newModel });
623
+ return { message: "Agent model updated" };
624
+ } catch (error) {
625
+ return handleError(error, "error updating agent model");
626
+ }
627
+ }
628
+ async function resetAgentModelHandler({
629
+ mastra,
630
+ agentId
631
+ }) {
632
+ try {
633
+ const agent = await getAgentFromSystem({ mastra, agentId });
634
+ agent.__resetToOriginalModel();
635
+ return { message: "Agent model reset to original" };
636
+ } catch (error) {
637
+ return handleError(error, "error resetting agent model");
638
+ }
639
+ }
640
+ async function reorderAgentModelListHandler({
641
+ mastra,
642
+ agentId,
643
+ body
644
+ }) {
645
+ try {
646
+ const agent = await getAgentFromSystem({ mastra, agentId });
647
+ const modelList = await agent.getModelList();
648
+ if (!modelList || modelList.length === 0) {
649
+ throw new HTTPException(400, { message: "Agent model list is not found or empty" });
650
+ }
651
+ agent.reorderModels(body.reorderedModelIds);
652
+ return { message: "Model list reordered" };
653
+ } catch (error) {
654
+ return handleError(error, "error reordering model list");
655
+ }
656
+ }
657
+ async function updateAgentModelInModelListHandler({
658
+ mastra,
659
+ agentId,
660
+ modelConfigId,
661
+ body
662
+ }) {
663
+ try {
664
+ const agent = await getAgentFromSystem({ mastra, agentId });
665
+ const { model: bodyModel, maxRetries, enabled } = body;
666
+ if (!modelConfigId) {
667
+ throw new HTTPException(400, { message: "Model id is required" });
668
+ }
669
+ const modelList = await agent.getModelList();
670
+ if (!modelList || modelList.length === 0) {
671
+ throw new HTTPException(400, { message: "Agent model list is not found or empty" });
672
+ }
673
+ const modelToUpdate = modelList.find((m) => m.id === modelConfigId);
674
+ if (!modelToUpdate) {
675
+ throw new HTTPException(400, { message: "Model to update is not found in agent model list" });
676
+ }
677
+ let model;
678
+ if (bodyModel) {
679
+ const { modelId, provider } = bodyModel;
680
+ model = `${provider}/${modelId}`;
681
+ }
682
+ agent.updateModelInModelList({ id: modelConfigId, model, maxRetries, enabled });
683
+ return { message: "Model list updated" };
684
+ } catch (error) {
685
+ return handleError(error, "error updating model list");
686
+ }
687
+ }
688
+ async function getProvidersHandler() {
689
+ try {
690
+ const providers = Object.entries(PROVIDER_REGISTRY).map(([id, provider]) => {
691
+ const envVars = Array.isArray(provider.apiKeyEnvVar) ? provider.apiKeyEnvVar : [provider.apiKeyEnvVar];
692
+ const connected = envVars.every((envVar) => !!process.env[envVar]);
693
+ return {
694
+ id,
695
+ name: provider.name,
696
+ envVar: provider.apiKeyEnvVar,
697
+ connected,
698
+ docUrl: provider.docUrl,
699
+ models: [...provider.models]
700
+ // Convert readonly array to regular array
701
+ };
702
+ });
703
+ return { providers };
704
+ } catch (error) {
705
+ return handleError(error, "error fetching providers");
706
+ }
707
+ }
708
+
709
+ export { agents_exports, approveToolCallHandler, declineToolCallHandler, generateHandler, generateLegacyHandler, getAgentByIdHandler, getAgentFromSystem, getAgentsHandler, getEvalsByAgentIdHandler, getLiveEvalsByAgentIdHandler, getProvidersHandler, getSerializedAgentTools, getSerializedProcessors, reorderAgentModelListHandler, resetAgentModelHandler, streamGenerateHandler, streamGenerateLegacyHandler, streamNetworkHandler, streamUIMessageHandler, updateAgentModelHandler, updateAgentModelInModelListHandler };
710
+ //# sourceMappingURL=chunk-TM6RSSEG.js.map
711
+ //# sourceMappingURL=chunk-TM6RSSEG.js.map