@mastra/server 0.0.0-configure-project-root-for-private-packages-20250919100548 → 0.0.0-cor235-20251008175106

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 (243) hide show
  1. package/CHANGELOG.md +247 -3
  2. package/dist/{chunk-PPYGWINI.cjs → chunk-2PLXW4ZX.cjs} +74 -74
  3. package/dist/{chunk-PPYGWINI.cjs.map → chunk-2PLXW4ZX.cjs.map} +1 -1
  4. package/dist/{chunk-L265APUD.cjs → chunk-2S4IMB6E.cjs} +66 -5
  5. package/dist/chunk-2S4IMB6E.cjs.map +1 -0
  6. package/dist/{chunk-NLWACBE7.cjs → chunk-3SNGNFUJ.cjs} +4 -4
  7. package/dist/{chunk-NLWACBE7.cjs.map → chunk-3SNGNFUJ.cjs.map} +1 -1
  8. package/dist/{chunk-7QEJ5QG5.js → chunk-5BNQIYQN.js} +61 -23
  9. package/dist/chunk-5BNQIYQN.js.map +1 -0
  10. package/dist/{chunk-KV6VHX4V.js → chunk-67GYDFSB.js} +3 -3
  11. package/dist/{chunk-KV6VHX4V.js.map → chunk-67GYDFSB.js.map} +1 -1
  12. package/dist/{chunk-PWTXZZTR.cjs → chunk-6ZR275MD.cjs} +4 -4
  13. package/dist/{chunk-PWTXZZTR.cjs.map → chunk-6ZR275MD.cjs.map} +1 -1
  14. package/dist/{chunk-HJ4EQIE6.cjs → chunk-7HDOBOGG.cjs} +2374 -604
  15. package/dist/chunk-7HDOBOGG.cjs.map +1 -0
  16. package/dist/{chunk-A3AL7EWJ.js → chunk-ABRFV4XP.js} +3 -3
  17. package/dist/{chunk-A3AL7EWJ.js.map → chunk-ABRFV4XP.js.map} +1 -1
  18. package/dist/{chunk-SYRRSBGL.js → chunk-AHB4JCIQ.js} +9 -5
  19. package/dist/chunk-AHB4JCIQ.js.map +1 -0
  20. package/dist/chunk-BATEJLED.js +124 -0
  21. package/dist/chunk-BATEJLED.js.map +1 -0
  22. package/dist/{chunk-N35YCWQ5.cjs → chunk-BZLZFHAT.cjs} +266 -124
  23. package/dist/chunk-BZLZFHAT.cjs.map +1 -0
  24. package/dist/{chunk-K4GZBPXF.js → chunk-DB63UMTV.js} +120 -136
  25. package/dist/chunk-DB63UMTV.js.map +1 -0
  26. package/dist/{chunk-T3TIA3O6.cjs → chunk-EP3JQDPD.cjs} +4 -4
  27. package/dist/{chunk-T3TIA3O6.cjs.map → chunk-EP3JQDPD.cjs.map} +1 -1
  28. package/dist/{chunk-G7PLDFT6.js → chunk-FWO7VQDC.js} +2324 -554
  29. package/dist/chunk-FWO7VQDC.js.map +1 -0
  30. package/dist/chunk-FZNS32WJ.js +46 -0
  31. package/dist/chunk-FZNS32WJ.js.map +1 -0
  32. package/dist/{chunk-5QUKZCEF.js → chunk-HPXAM2PG.js} +5 -4
  33. package/dist/chunk-HPXAM2PG.js.map +1 -0
  34. package/dist/{chunk-KNGXRN26.cjs → chunk-I3C4ODGV.cjs} +4 -4
  35. package/dist/{chunk-KNGXRN26.cjs.map → chunk-I3C4ODGV.cjs.map} +1 -1
  36. package/dist/{chunk-ILESGJ6N.js → chunk-JSLAYFEW.js} +259 -121
  37. package/dist/chunk-JSLAYFEW.js.map +1 -0
  38. package/dist/{chunk-TTHEEIZ3.js → chunk-LLUOPR3J.js} +3 -3
  39. package/dist/{chunk-TTHEEIZ3.js.map → chunk-LLUOPR3J.js.map} +1 -1
  40. package/dist/{chunk-GUI3CROV.cjs → chunk-LNT5N7XW.cjs} +62 -24
  41. package/dist/chunk-LNT5N7XW.cjs.map +1 -0
  42. package/dist/{chunk-SIGXR3JT.cjs → chunk-LPM6BBAX.cjs} +5 -5
  43. package/dist/{chunk-SIGXR3JT.cjs.map → chunk-LPM6BBAX.cjs.map} +1 -1
  44. package/dist/{chunk-NZMDHQVP.cjs → chunk-MQDBNHBT.cjs} +124 -141
  45. package/dist/chunk-MQDBNHBT.cjs.map +1 -0
  46. package/dist/{chunk-WHN4VX55.js → chunk-MYR4PVGN.js} +3 -3
  47. package/dist/{chunk-WHN4VX55.js.map → chunk-MYR4PVGN.js.map} +1 -1
  48. package/dist/{chunk-EMMSS5I5.cjs → chunk-O7I5CWRX.cjs} +10 -3
  49. package/dist/{chunk-EMMSS5I5.cjs.map → chunk-O7I5CWRX.cjs.map} +1 -1
  50. package/dist/chunk-OYL5TBJW.cjs +48 -0
  51. package/dist/chunk-OYL5TBJW.cjs.map +1 -0
  52. package/dist/{chunk-G3PMV62Z.js → chunk-PR4QN5HX.js} +10 -4
  53. package/dist/{chunk-G3PMV62Z.js.map → chunk-PR4QN5HX.js.map} +1 -1
  54. package/dist/{chunk-JRDEOHAJ.js → chunk-QQXMIP6C.js} +3 -3
  55. package/dist/{chunk-JRDEOHAJ.js.map → chunk-QQXMIP6C.js.map} +1 -1
  56. package/dist/{chunk-NG5IVLEZ.js → chunk-RQK4FQUD.js} +3 -3
  57. package/dist/{chunk-NG5IVLEZ.js.map → chunk-RQK4FQUD.js.map} +1 -1
  58. package/dist/chunk-SIW6CYO3.js +254 -0
  59. package/dist/chunk-SIW6CYO3.js.map +1 -0
  60. package/dist/{chunk-3THIIWWW.cjs → chunk-TOP25AIO.cjs} +6 -5
  61. package/dist/chunk-TOP25AIO.cjs.map +1 -0
  62. package/dist/{chunk-J7BPKKOG.cjs → chunk-TRGAMKHX.cjs} +10 -6
  63. package/dist/chunk-TRGAMKHX.cjs.map +1 -0
  64. package/dist/chunk-VY4ENABS.cjs +135 -0
  65. package/dist/chunk-VY4ENABS.cjs.map +1 -0
  66. package/dist/{chunk-SQY4T6EJ.js → chunk-WHABYJRY.js} +20 -40
  67. package/dist/chunk-WHABYJRY.js.map +1 -0
  68. package/dist/{chunk-SPLSYTYW.cjs → chunk-XN74I6VW.cjs} +4 -4
  69. package/dist/{chunk-SPLSYTYW.cjs.map → chunk-XN74I6VW.cjs.map} +1 -1
  70. package/dist/chunk-XVPBGW6Y.cjs +256 -0
  71. package/dist/chunk-XVPBGW6Y.cjs.map +1 -0
  72. package/dist/{chunk-OZLRIVC4.cjs → chunk-YJU744I4.cjs} +21 -41
  73. package/dist/chunk-YJU744I4.cjs.map +1 -0
  74. package/dist/chunk-YWOK4F5A.js +131 -0
  75. package/dist/chunk-YWOK4F5A.js.map +1 -0
  76. package/dist/{chunk-6GMFZ5LK.js → chunk-ZULZ2752.js} +3 -3
  77. package/dist/{chunk-6GMFZ5LK.js.map → chunk-ZULZ2752.js.map} +1 -1
  78. package/dist/{chunk-IGFMAZZ5.cjs → dist-4MVGNSRL.cjs} +20 -20
  79. package/dist/dist-4MVGNSRL.cjs.map +1 -0
  80. package/dist/{chunk-TVSIG4JE.cjs → dist-FZYCV3VB.cjs} +26 -26
  81. package/dist/dist-FZYCV3VB.cjs.map +1 -0
  82. package/dist/{chunk-5DP5XZH6.cjs → dist-G2BYZJOC.cjs} +28 -28
  83. package/dist/dist-G2BYZJOC.cjs.map +1 -0
  84. package/dist/dist-P4MXBQ3U.cjs +16 -0
  85. package/dist/{dist-3A5DXB37.cjs.map → dist-P4MXBQ3U.cjs.map} +1 -1
  86. package/dist/{chunk-FQNT7PI4.js → dist-PQZUVLPC.js} +3 -3
  87. package/dist/dist-PQZUVLPC.js.map +1 -0
  88. package/dist/{chunk-P7CIEIJ3.js → dist-R7WYX6LC.js} +3 -3
  89. package/dist/dist-R7WYX6LC.js.map +1 -0
  90. package/dist/{chunk-HJQKWRKQ.cjs → dist-RFMYFILX.cjs} +30 -30
  91. package/dist/dist-RFMYFILX.cjs.map +1 -0
  92. package/dist/{chunk-LYPU75T6.js → dist-X7XR3M3Z.js} +3 -3
  93. package/dist/dist-X7XR3M3Z.js.map +1 -0
  94. package/dist/{chunk-66YYHFGF.js → dist-XVBSOGFK.js} +3 -3
  95. package/dist/dist-XVBSOGFK.js.map +1 -0
  96. package/dist/dist-YREX2TJT.js +3 -0
  97. package/dist/{dist-26HWEQY6.js.map → dist-YREX2TJT.js.map} +1 -1
  98. package/dist/server/handlers/a2a.cjs +7 -7
  99. package/dist/server/handlers/a2a.d.ts.map +1 -1
  100. package/dist/server/handlers/a2a.js +1 -1
  101. package/dist/server/handlers/agent-builder.cjs +16 -16
  102. package/dist/server/handlers/agent-builder.d.ts +10 -4
  103. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  104. package/dist/server/handlers/agent-builder.js +1 -1
  105. package/dist/server/handlers/agents.cjs +37 -21
  106. package/dist/server/handlers/agents.d.ts +117 -52
  107. package/dist/server/handlers/agents.d.ts.map +1 -1
  108. package/dist/server/handlers/agents.js +1 -1
  109. package/dist/server/handlers/legacyWorkflows.cjs +11 -11
  110. package/dist/server/handlers/legacyWorkflows.js +1 -1
  111. package/dist/server/handlers/logs.cjs +4 -4
  112. package/dist/server/handlers/logs.js +1 -1
  113. package/dist/server/handlers/memory.cjs +16 -16
  114. package/dist/server/handlers/memory.d.ts +14 -15
  115. package/dist/server/handlers/memory.d.ts.map +1 -1
  116. package/dist/server/handlers/memory.js +1 -1
  117. package/dist/server/handlers/observability.cjs +11 -3
  118. package/dist/server/handlers/observability.d.ts +27 -1
  119. package/dist/server/handlers/observability.d.ts.map +1 -1
  120. package/dist/server/handlers/observability.js +1 -1
  121. package/dist/server/handlers/scores.cjs +7 -7
  122. package/dist/server/handlers/scores.d.ts +208 -6
  123. package/dist/server/handlers/scores.d.ts.map +1 -1
  124. package/dist/server/handlers/scores.js +1 -1
  125. package/dist/server/handlers/telemetry.cjs +4 -4
  126. package/dist/server/handlers/telemetry.js +1 -1
  127. package/dist/server/handlers/tools.cjs +6 -6
  128. package/dist/server/handlers/tools.d.ts.map +1 -1
  129. package/dist/server/handlers/tools.js +1 -1
  130. package/dist/server/handlers/vector.cjs +7 -7
  131. package/dist/server/handlers/vector.js +1 -1
  132. package/dist/server/handlers/voice.cjs +5 -5
  133. package/dist/server/handlers/voice.js +1 -1
  134. package/dist/server/handlers/workflows.cjs +22 -18
  135. package/dist/server/handlers/workflows.d.ts +22 -13
  136. package/dist/server/handlers/workflows.d.ts.map +1 -1
  137. package/dist/server/handlers/workflows.js +1 -1
  138. package/dist/server/handlers.cjs +29 -29
  139. package/dist/server/handlers.js +13 -13
  140. package/dist/server/utils.d.ts +2 -0
  141. package/dist/server/utils.d.ts.map +1 -1
  142. package/dist/token-53CFGXUO.cjs +64 -0
  143. package/dist/token-53CFGXUO.cjs.map +1 -0
  144. package/dist/token-WAEKDUVY.js +62 -0
  145. package/dist/token-WAEKDUVY.js.map +1 -0
  146. package/dist/token-util-LY37VCIN.js +7 -0
  147. package/dist/token-util-LY37VCIN.js.map +1 -0
  148. package/dist/token-util-S4A355II.cjs +9 -0
  149. package/dist/token-util-S4A355II.cjs.map +1 -0
  150. package/package.json +8 -16
  151. package/dist/chunk-3THIIWWW.cjs.map +0 -1
  152. package/dist/chunk-4RRMWXQ2.js +0 -3522
  153. package/dist/chunk-4RRMWXQ2.js.map +0 -1
  154. package/dist/chunk-5DP5XZH6.cjs.map +0 -1
  155. package/dist/chunk-5QUKZCEF.js.map +0 -1
  156. package/dist/chunk-66YYHFGF.js.map +0 -1
  157. package/dist/chunk-743UIDHI.cjs +0 -2013
  158. package/dist/chunk-743UIDHI.cjs.map +0 -1
  159. package/dist/chunk-7QEJ5QG5.js.map +0 -1
  160. package/dist/chunk-AK2FXLLB.cjs +0 -849
  161. package/dist/chunk-AK2FXLLB.cjs.map +0 -1
  162. package/dist/chunk-EMNGA4R4.js +0 -845
  163. package/dist/chunk-EMNGA4R4.js.map +0 -1
  164. package/dist/chunk-FALVL2VV.cjs +0 -3525
  165. package/dist/chunk-FALVL2VV.cjs.map +0 -1
  166. package/dist/chunk-FQNT7PI4.js.map +0 -1
  167. package/dist/chunk-G7PLDFT6.js.map +0 -1
  168. package/dist/chunk-GUI3CROV.cjs.map +0 -1
  169. package/dist/chunk-HJ4EQIE6.cjs.map +0 -1
  170. package/dist/chunk-HJQKWRKQ.cjs.map +0 -1
  171. package/dist/chunk-HVBBFCDH.cjs +0 -2321
  172. package/dist/chunk-HVBBFCDH.cjs.map +0 -1
  173. package/dist/chunk-HZJRQ5L3.cjs +0 -1411
  174. package/dist/chunk-HZJRQ5L3.cjs.map +0 -1
  175. package/dist/chunk-IGFMAZZ5.cjs.map +0 -1
  176. package/dist/chunk-ILESGJ6N.js.map +0 -1
  177. package/dist/chunk-IOQGI4ML.js +0 -931
  178. package/dist/chunk-IOQGI4ML.js.map +0 -1
  179. package/dist/chunk-J7BPKKOG.cjs.map +0 -1
  180. package/dist/chunk-K4GZBPXF.js.map +0 -1
  181. package/dist/chunk-L265APUD.cjs.map +0 -1
  182. package/dist/chunk-LYPU75T6.js.map +0 -1
  183. package/dist/chunk-N35YCWQ5.cjs.map +0 -1
  184. package/dist/chunk-N7F33WAD.js +0 -2290
  185. package/dist/chunk-N7F33WAD.js.map +0 -1
  186. package/dist/chunk-NZMDHQVP.cjs.map +0 -1
  187. package/dist/chunk-OGW6HHVI.js +0 -1408
  188. package/dist/chunk-OGW6HHVI.js.map +0 -1
  189. package/dist/chunk-OZLRIVC4.cjs.map +0 -1
  190. package/dist/chunk-P7CIEIJ3.js.map +0 -1
  191. package/dist/chunk-P7RBMCBE.cjs +0 -934
  192. package/dist/chunk-P7RBMCBE.cjs.map +0 -1
  193. package/dist/chunk-R7NOGUZG.js +0 -65
  194. package/dist/chunk-R7NOGUZG.js.map +0 -1
  195. package/dist/chunk-RCHEPTZZ.js +0 -2006
  196. package/dist/chunk-RCHEPTZZ.js.map +0 -1
  197. package/dist/chunk-SQY4T6EJ.js.map +0 -1
  198. package/dist/chunk-SYRRSBGL.js.map +0 -1
  199. package/dist/chunk-TVSIG4JE.cjs.map +0 -1
  200. package/dist/dist-26HWEQY6.js +0 -3
  201. package/dist/dist-3A5DXB37.cjs +0 -20
  202. package/dist/dist-3SJKQJGY.cjs +0 -16
  203. package/dist/dist-3SJKQJGY.cjs.map +0 -1
  204. package/dist/dist-4ZQSPE5K.js +0 -3
  205. package/dist/dist-4ZQSPE5K.js.map +0 -1
  206. package/dist/dist-5W5QNRTD.js +0 -3
  207. package/dist/dist-5W5QNRTD.js.map +0 -1
  208. package/dist/dist-653SRMPL.js +0 -3
  209. package/dist/dist-653SRMPL.js.map +0 -1
  210. package/dist/dist-6U6EFC5C.cjs +0 -16
  211. package/dist/dist-6U6EFC5C.cjs.map +0 -1
  212. package/dist/dist-7IHNNYMF.cjs +0 -16
  213. package/dist/dist-7IHNNYMF.cjs.map +0 -1
  214. package/dist/dist-B5IPRF6W.js +0 -3
  215. package/dist/dist-B5IPRF6W.js.map +0 -1
  216. package/dist/dist-EOMYFT4Y.cjs +0 -16
  217. package/dist/dist-EOMYFT4Y.cjs.map +0 -1
  218. package/dist/dist-EZZMMMNT.cjs +0 -16
  219. package/dist/dist-EZZMMMNT.cjs.map +0 -1
  220. package/dist/dist-F2ET4MNO.cjs +0 -16
  221. package/dist/dist-F2ET4MNO.cjs.map +0 -1
  222. package/dist/dist-H64VX6DE.js +0 -3
  223. package/dist/dist-H64VX6DE.js.map +0 -1
  224. package/dist/dist-HY7RMLJQ.cjs +0 -16
  225. package/dist/dist-HY7RMLJQ.cjs.map +0 -1
  226. package/dist/dist-M6S4P3FJ.js +0 -3
  227. package/dist/dist-M6S4P3FJ.js.map +0 -1
  228. package/dist/dist-NR7QSCQT.js +0 -3
  229. package/dist/dist-NR7QSCQT.js.map +0 -1
  230. package/dist/dist-QLFMCMCX.js +0 -3
  231. package/dist/dist-QLFMCMCX.js.map +0 -1
  232. package/dist/dist-UY46BFRP.js +0 -3
  233. package/dist/dist-UY46BFRP.js.map +0 -1
  234. package/dist/dist-WCQDRTIV.cjs +0 -16
  235. package/dist/dist-WCQDRTIV.cjs.map +0 -1
  236. package/dist/dist-WKYB3LTJ.cjs +0 -16
  237. package/dist/dist-WKYB3LTJ.cjs.map +0 -1
  238. package/dist/server/handlers/vNextNetwork.cjs +0 -220
  239. package/dist/server/handlers/vNextNetwork.cjs.map +0 -1
  240. package/dist/server/handlers/vNextNetwork.d.ts +0 -246
  241. package/dist/server/handlers/vNextNetwork.d.ts.map +0 -1
  242. package/dist/server/handlers/vNextNetwork.js +0 -213
  243. package/dist/server/handlers/vNextNetwork.js.map +0 -1
@@ -1,38 +1,33 @@
1
- import { google as google$1 } from './chunk-FQNT7PI4.js';
2
- import { anthropic } from './chunk-RCHEPTZZ.js';
3
- import { groq } from './chunk-EMNGA4R4.js';
4
- import { xai } from './chunk-IOQGI4ML.js';
5
- import { google } from './chunk-OGW6HHVI.js';
6
- import { anthropic as anthropic$1 } from './chunk-LYPU75T6.js';
7
- import { groq as groq$1 } from './chunk-66YYHFGF.js';
8
- import { xai as xai$1 } from './chunk-P7CIEIJ3.js';
9
1
  import { sanitizeBody, validateBody } from './chunk-4QCXUEAT.js';
10
- import { openai } from './chunk-4RRMWXQ2.js';
11
- import { openai as openai$1 } from './chunk-6GMFZ5LK.js';
12
2
  import { stringify } from './chunk-LF2ZLOFP.js';
13
3
  import { handleError } from './chunk-CY4TP3FK.js';
14
4
  import { HTTPException } from './chunk-MMROOK5J.js';
15
- import { __export } from './chunk-G3PMV62Z.js';
5
+ import { __export } from './chunk-PR4QN5HX.js';
6
+ import { PROVIDER_REGISTRY } from '@mastra/core/llm';
16
7
  import { RuntimeContext } from '@mastra/core/runtime-context';
17
8
  import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';
18
9
 
19
10
  // src/server/handlers/agents.ts
20
11
  var agents_exports = {};
21
12
  __export(agents_exports, {
13
+ approveToolCallHandler: () => approveToolCallHandler,
14
+ declineToolCallHandler: () => declineToolCallHandler,
22
15
  generateHandler: () => generateHandler,
23
16
  generateLegacyHandler: () => generateLegacyHandler,
24
- generateVNextHandler: () => generateVNextHandler,
25
17
  getAgentByIdHandler: () => getAgentByIdHandler,
26
18
  getAgentsHandler: () => getAgentsHandler,
27
19
  getEvalsByAgentIdHandler: () => getEvalsByAgentIdHandler,
28
20
  getLiveEvalsByAgentIdHandler: () => getLiveEvalsByAgentIdHandler,
21
+ getProvidersHandler: () => getProvidersHandler,
29
22
  getSerializedAgentTools: () => getSerializedAgentTools,
23
+ getSerializedProcessors: () => getSerializedProcessors,
24
+ reorderAgentModelListHandler: () => reorderAgentModelListHandler,
30
25
  streamGenerateHandler: () => streamGenerateHandler,
31
26
  streamGenerateLegacyHandler: () => streamGenerateLegacyHandler,
32
27
  streamNetworkHandler: () => streamNetworkHandler,
33
- streamVNextGenerateHandler: () => streamVNextGenerateHandler,
34
- streamVNextUIMessageHandler: () => streamVNextUIMessageHandler,
35
- updateAgentModelHandler: () => updateAgentModelHandler
28
+ streamUIMessageHandler: () => streamUIMessageHandler,
29
+ updateAgentModelHandler: () => updateAgentModelHandler,
30
+ updateAgentModelInModelListHandler: () => updateAgentModelInModelListHandler
36
31
  });
37
32
  async function getSerializedAgentTools(tools) {
38
33
  return Object.entries(tools || {}).reduce((acc, [key, tool]) => {
@@ -40,17 +35,17 @@ async function getSerializedAgentTools(tools) {
40
35
  const toolId = _tool.id ?? `tool-${key}`;
41
36
  let inputSchemaForReturn = void 0;
42
37
  if (_tool.inputSchema) {
43
- if (_tool.inputSchema?.jsonSchema) {
38
+ if (_tool.inputSchema && typeof _tool.inputSchema === "object" && "jsonSchema" in _tool.inputSchema) {
44
39
  inputSchemaForReturn = stringify(_tool.inputSchema.jsonSchema);
45
- } else {
40
+ } else if (_tool.inputSchema) {
46
41
  inputSchemaForReturn = stringify(zodToJsonSchema(_tool.inputSchema));
47
42
  }
48
43
  }
49
44
  let outputSchemaForReturn = void 0;
50
45
  if (_tool.outputSchema) {
51
- if (_tool.outputSchema?.jsonSchema) {
46
+ if (_tool.outputSchema && typeof _tool.outputSchema === "object" && "jsonSchema" in _tool.outputSchema) {
52
47
  outputSchemaForReturn = stringify(_tool.outputSchema.jsonSchema);
53
- } else {
48
+ } else if (_tool.outputSchema) {
54
49
  outputSchemaForReturn = stringify(zodToJsonSchema(_tool.outputSchema));
55
50
  }
56
51
  }
@@ -63,6 +58,13 @@ async function getSerializedAgentTools(tools) {
63
58
  return acc;
64
59
  }, {});
65
60
  }
61
+ function getSerializedProcessors(processors) {
62
+ return processors.map((processor) => {
63
+ return {
64
+ name: processor.name || processor.constructor.name
65
+ };
66
+ });
67
+ }
66
68
  async function getSerializedAgentDefinition({
67
69
  agent,
68
70
  runtimeContext
@@ -70,12 +72,15 @@ async function getSerializedAgentDefinition({
70
72
  let serializedAgentAgents = {};
71
73
  if ("listAgents" in agent) {
72
74
  const agents = await agent.listAgents({ runtimeContext });
73
- serializedAgentAgents = Object.entries(agents || {}).reduce((acc, [key, agent2]) => {
74
- return {
75
- ...acc,
76
- [key]: { id: agent2.id, name: agent2.name }
77
- };
78
- }, {});
75
+ serializedAgentAgents = Object.entries(agents || {}).reduce(
76
+ (acc, [key, agent2]) => {
77
+ return {
78
+ ...acc,
79
+ [key]: { id: agent2.id, name: agent2.name }
80
+ };
81
+ },
82
+ {}
83
+ );
79
84
  }
80
85
  return serializedAgentAgents;
81
86
  }
@@ -100,7 +105,7 @@ async function formatAgentList({
100
105
  return {
101
106
  ...acc,
102
107
  [key]: {
103
- name: workflow.name
108
+ name: workflow.name || "Unnamed workflow"
104
109
  }
105
110
  };
106
111
  }, {});
@@ -109,7 +114,20 @@ async function formatAgentList({
109
114
  }
110
115
  }
111
116
  const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext });
117
+ const inputProcessors = await agent.getInputProcessors(runtimeContext);
118
+ const outputProcessors = await agent.getOutputProcessors(runtimeContext);
119
+ const serializedInputProcessors = getSerializedProcessors(inputProcessors);
120
+ const serializedOutputProcessors = getSerializedProcessors(outputProcessors);
112
121
  const model = llm?.getModel();
122
+ const models = await agent.getModelList(runtimeContext);
123
+ const modelList = models?.map((md) => ({
124
+ ...md,
125
+ model: {
126
+ modelId: md.model.modelId,
127
+ provider: md.model.provider,
128
+ modelVersion: md.model.specificationVersion
129
+ }
130
+ }));
113
131
  return {
114
132
  id,
115
133
  name: agent.name,
@@ -117,14 +135,20 @@ async function formatAgentList({
117
135
  agents: serializedAgentAgents,
118
136
  tools: serializedAgentTools,
119
137
  workflows: serializedAgentWorkflows,
138
+ inputProcessors: serializedInputProcessors,
139
+ outputProcessors: serializedOutputProcessors,
120
140
  provider: llm?.getProvider(),
121
141
  modelId: llm?.getModelId(),
122
142
  modelVersion: model?.specificationVersion,
123
143
  defaultGenerateOptions,
124
- defaultStreamOptions
144
+ defaultStreamOptions,
145
+ modelList
125
146
  };
126
147
  }
127
- async function getAgentsHandler({ mastra, runtimeContext }) {
148
+ async function getAgentsHandler({
149
+ mastra,
150
+ runtimeContext
151
+ }) {
128
152
  try {
129
153
  const agents = mastra.getAgents();
130
154
  const serializedAgentsMap = await Promise.all(
@@ -158,55 +182,74 @@ async function formatAgent({
158
182
  return {
159
183
  ...acc,
160
184
  [key]: {
161
- name: workflow.name,
162
- steps: Object.entries(workflow.steps).reduce((acc2, [key2, step]) => {
163
- return {
164
- ...acc2,
165
- [key2]: {
166
- id: step.id,
167
- description: step.description
168
- }
169
- };
170
- }, {})
185
+ name: workflow.name || "Unnamed workflow",
186
+ steps: Object.entries(workflow.steps).reduce(
187
+ (acc2, [key2, step]) => {
188
+ return {
189
+ ...acc2,
190
+ [key2]: {
191
+ id: step.id,
192
+ description: step.description
193
+ }
194
+ };
195
+ },
196
+ {}
197
+ )
171
198
  }
172
199
  };
173
200
  }, {});
174
201
  } catch (error) {
175
202
  logger.error("Error getting workflows for agent", { agentName: agent.name, error });
176
203
  }
177
- let proxyRuntimeContext = runtimeContext;
178
- if (isPlayground) {
179
- proxyRuntimeContext = new Proxy(runtimeContext, {
180
- get(target, prop) {
181
- if (prop === "get") {
182
- return function(key) {
183
- const value = target.get(key);
184
- return value ?? `<${key}>`;
185
- };
186
- }
187
- return Reflect.get(target, prop);
204
+ }
205
+ let proxyRuntimeContext = runtimeContext;
206
+ if (isPlayground) {
207
+ proxyRuntimeContext = new Proxy(runtimeContext, {
208
+ get(target, prop) {
209
+ if (prop === "get") {
210
+ return function(key) {
211
+ const value = target.get(key);
212
+ return value ?? `<${key}>`;
213
+ };
188
214
  }
189
- });
190
- }
191
- const instructions = await agent.getInstructions({ runtimeContext: proxyRuntimeContext });
192
- const llm = await agent.getLLM({ runtimeContext });
193
- const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });
194
- const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });
195
- const model = llm?.getModel();
196
- const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext: proxyRuntimeContext });
197
- return {
198
- name: agent.name,
199
- instructions,
200
- tools: serializedAgentTools,
201
- agents: serializedAgentAgents,
202
- workflows: serializedAgentWorkflows,
203
- provider: llm?.getProvider(),
204
- modelId: llm?.getModelId(),
205
- modelVersion: model?.specificationVersion,
206
- defaultGenerateOptions,
207
- defaultStreamOptions
208
- };
215
+ return Reflect.get(target, prop);
216
+ }
217
+ });
209
218
  }
219
+ const instructions = await agent.getInstructions({ runtimeContext: proxyRuntimeContext });
220
+ const llm = await agent.getLLM({ runtimeContext });
221
+ const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });
222
+ const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });
223
+ const model = llm?.getModel();
224
+ const models = await agent.getModelList(runtimeContext);
225
+ const modelList = models?.map((md) => ({
226
+ ...md,
227
+ model: {
228
+ modelId: md.model.modelId,
229
+ provider: md.model.provider,
230
+ modelVersion: md.model.specificationVersion
231
+ }
232
+ }));
233
+ const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext: proxyRuntimeContext });
234
+ const inputProcessors = await agent.getInputProcessors(proxyRuntimeContext);
235
+ const outputProcessors = await agent.getOutputProcessors(proxyRuntimeContext);
236
+ const serializedInputProcessors = getSerializedProcessors(inputProcessors);
237
+ const serializedOutputProcessors = getSerializedProcessors(outputProcessors);
238
+ return {
239
+ name: agent.name,
240
+ instructions,
241
+ tools: serializedAgentTools,
242
+ agents: serializedAgentAgents,
243
+ workflows: serializedAgentWorkflows,
244
+ inputProcessors: serializedInputProcessors,
245
+ outputProcessors: serializedOutputProcessors,
246
+ provider: llm?.getProvider(),
247
+ modelId: llm?.getModelId(),
248
+ modelVersion: model?.specificationVersion,
249
+ modelList,
250
+ defaultGenerateOptions,
251
+ defaultStreamOptions
252
+ };
210
253
  }
211
254
  async function getAgentByIdHandler({
212
255
  mastra,
@@ -262,16 +305,6 @@ async function getLiveEvalsByAgentIdHandler({
262
305
  return handleError(error, "Error getting live evals");
263
306
  }
264
307
  }
265
- function generateHandler({
266
- mastra,
267
- ...args
268
- }) {
269
- const logger = mastra.getLogger();
270
- logger?.warn(
271
- "Deprecation NOTICE:\nGenerate method will switch to use generateVNext implementation September 23rd, 2025. Please use generateLegacyHandler if you don't want to upgrade just yet."
272
- );
273
- return generateLegacyHandler({ mastra, ...args });
274
- }
275
308
  async function generateLegacyHandler({
276
309
  mastra,
277
310
  runtimeContext,
@@ -292,7 +325,7 @@ async function generateLegacyHandler({
292
325
  ...Array.from(Object.entries(agentRuntimeContext ?? {}))
293
326
  ]);
294
327
  validateBody({ messages });
295
- const result = await agent.generate(messages, {
328
+ const result = await agent.generateLegacy(messages, {
296
329
  ...rest,
297
330
  abortSignal,
298
331
  // @ts-expect-error TODO fix types
@@ -304,7 +337,7 @@ async function generateLegacyHandler({
304
337
  return handleError(error, "Error generating from agent");
305
338
  }
306
339
  }
307
- async function generateVNextHandler({
340
+ async function generateHandler({
308
341
  mastra,
309
342
  runtimeContext,
310
343
  agentId,
@@ -323,7 +356,7 @@ async function generateVNextHandler({
323
356
  ...Array.from(Object.entries(agentRuntimeContext ?? {}))
324
357
  ]);
325
358
  validateBody({ messages });
326
- const result = await agent.generateVNext(messages, {
359
+ const result = await agent.generate(messages, {
327
360
  ...rest,
328
361
  runtimeContext: finalRuntimeContext,
329
362
  format: rest.format || "mastra",
@@ -334,16 +367,6 @@ async function generateVNextHandler({
334
367
  return handleError(error, "Error generating from agent");
335
368
  }
336
369
  }
337
- async function streamGenerateHandler({
338
- mastra,
339
- ...args
340
- }) {
341
- const logger = mastra.getLogger();
342
- logger?.warn(
343
- "Deprecation NOTICE:\n Stream method will switch to use streamVNext implementation September 23rd, 2025. Please use streamGenerateLegacyHandler if you don't want to upgrade just yet."
344
- );
345
- return streamGenerateLegacyHandler({ mastra, ...args });
346
- }
347
370
  async function streamGenerateLegacyHandler({
348
371
  mastra,
349
372
  runtimeContext,
@@ -363,7 +386,7 @@ async function streamGenerateLegacyHandler({
363
386
  ...Array.from(Object.entries(agentRuntimeContext ?? {}))
364
387
  ]);
365
388
  validateBody({ messages });
366
- const streamResult = await agent.stream(messages, {
389
+ const streamResult = await agent.streamLegacy(messages, {
367
390
  ...rest,
368
391
  abortSignal,
369
392
  // @ts-expect-error TODO fix types
@@ -389,7 +412,7 @@ async function streamGenerateLegacyHandler({
389
412
  return handleError(error, "error streaming agent response");
390
413
  }
391
414
  }
392
- function streamVNextGenerateHandler({
415
+ function streamGenerateHandler({
393
416
  mastra,
394
417
  runtimeContext,
395
418
  agentId,
@@ -408,7 +431,7 @@ function streamVNextGenerateHandler({
408
431
  ...Array.from(Object.entries(agentRuntimeContext ?? {}))
409
432
  ]);
410
433
  validateBody({ messages });
411
- const streamResult = agent.streamVNext(messages, {
434
+ const streamResult = agent.stream(messages, {
412
435
  ...rest,
413
436
  runtimeContext: finalRuntimeContext,
414
437
  abortSignal,
@@ -419,6 +442,66 @@ function streamVNextGenerateHandler({
419
442
  return handleError(error, "error streaming agent response");
420
443
  }
421
444
  }
445
+ function approveToolCallHandler({
446
+ mastra,
447
+ runtimeContext,
448
+ agentId,
449
+ body,
450
+ abortSignal
451
+ }) {
452
+ try {
453
+ const agent = mastra.getAgent(agentId);
454
+ if (!agent) {
455
+ throw new HTTPException(404, { message: "Agent not found" });
456
+ }
457
+ sanitizeBody(body, ["tools"]);
458
+ const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;
459
+ const finalRuntimeContext = new RuntimeContext([
460
+ ...Array.from(runtimeContext.entries()),
461
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
462
+ ]);
463
+ const streamResult = agent.approveToolCall({
464
+ ...rest,
465
+ runId,
466
+ runtimeContext: finalRuntimeContext,
467
+ abortSignal,
468
+ format: body.format ?? "mastra"
469
+ });
470
+ return streamResult;
471
+ } catch (error) {
472
+ return handleError(error, "error streaming agent response");
473
+ }
474
+ }
475
+ function declineToolCallHandler({
476
+ mastra,
477
+ runtimeContext,
478
+ agentId,
479
+ body,
480
+ abortSignal
481
+ }) {
482
+ try {
483
+ const agent = mastra.getAgent(agentId);
484
+ if (!agent) {
485
+ throw new HTTPException(404, { message: "Agent not found" });
486
+ }
487
+ sanitizeBody(body, ["tools"]);
488
+ const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;
489
+ const finalRuntimeContext = new RuntimeContext([
490
+ ...Array.from(runtimeContext.entries()),
491
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
492
+ ]);
493
+ const streamResult = agent.declineToolCall({
494
+ ...rest,
495
+ runId,
496
+ runtimeContext: finalRuntimeContext,
497
+ abortSignal,
498
+ format: body.format ?? "mastra"
499
+ });
500
+ return streamResult;
501
+ } catch (error) {
502
+ return handleError(error, "error streaming agent response");
503
+ }
504
+ }
422
505
  function streamNetworkHandler({
423
506
  mastra,
424
507
  runtimeContext,
@@ -451,7 +534,7 @@ function streamNetworkHandler({
451
534
  return handleError(error, "error streaming agent loop response");
452
535
  }
453
536
  }
454
- async function streamVNextUIMessageHandler({
537
+ async function streamUIMessageHandler({
455
538
  mastra,
456
539
  runtimeContext,
457
540
  agentId,
@@ -470,7 +553,7 @@ async function streamVNextUIMessageHandler({
470
553
  ...Array.from(Object.entries(agentRuntimeContext ?? {}))
471
554
  ]);
472
555
  validateBody({ messages });
473
- const streamResult = await agent.streamVNext(messages, {
556
+ const streamResult = await agent.stream(messages, {
474
557
  ...rest,
475
558
  runtimeContext: finalRuntimeContext,
476
559
  abortSignal,
@@ -491,34 +574,89 @@ async function updateAgentModelHandler({
491
574
  if (!agent) {
492
575
  throw new HTTPException(404, { message: "Agent not found" });
493
576
  }
494
- const agentModel = await agent.getModel();
495
- const modelVersion = agentModel.specificationVersion;
496
577
  const { modelId, provider } = body;
497
- const providerMap = {
498
- v1: {
499
- openai: openai$1(modelId),
500
- anthropic: anthropic$1(modelId),
501
- groq: groq$1(modelId),
502
- xai: xai$1(modelId),
503
- google: google$1(modelId)
504
- },
505
- v2: {
506
- openai: openai(modelId),
507
- anthropic: anthropic(modelId),
508
- groq: groq(modelId),
509
- xai: xai(modelId),
510
- google: google(modelId)
511
- }
512
- };
513
- const modelVersionKey = modelVersion === "v2" ? "v2" : "v1";
514
- let model = providerMap[modelVersionKey][provider];
515
- agent.__updateModel({ model });
578
+ const newModel = `${provider}/${modelId}`;
579
+ agent.__updateModel({ model: newModel });
516
580
  return { message: "Agent model updated" };
517
581
  } catch (error) {
518
582
  return handleError(error, "error updating agent model");
519
583
  }
520
584
  }
585
+ async function reorderAgentModelListHandler({
586
+ mastra,
587
+ agentId,
588
+ body
589
+ }) {
590
+ try {
591
+ const agent = mastra.getAgent(agentId);
592
+ if (!agent) {
593
+ throw new HTTPException(404, { message: "Agent not found" });
594
+ }
595
+ const modelList = await agent.getModelList();
596
+ if (!modelList || modelList.length === 0) {
597
+ throw new HTTPException(400, { message: "Agent model list is not found or empty" });
598
+ }
599
+ agent.reorderModels(body.reorderedModelIds);
600
+ return { message: "Model list reordered" };
601
+ } catch (error) {
602
+ return handleError(error, "error reordering model list");
603
+ }
604
+ }
605
+ async function updateAgentModelInModelListHandler({
606
+ mastra,
607
+ agentId,
608
+ modelConfigId,
609
+ body
610
+ }) {
611
+ try {
612
+ const agent = mastra.getAgent(agentId);
613
+ if (!agent) {
614
+ throw new HTTPException(404, { message: "Agent not found" });
615
+ }
616
+ const { model: bodyModel, maxRetries, enabled } = body;
617
+ if (!modelConfigId) {
618
+ throw new HTTPException(400, { message: "Model id is required" });
619
+ }
620
+ const modelList = await agent.getModelList();
621
+ if (!modelList || modelList.length === 0) {
622
+ throw new HTTPException(400, { message: "Agent model list is not found or empty" });
623
+ }
624
+ const modelToUpdate = modelList.find((m) => m.id === modelConfigId);
625
+ if (!modelToUpdate) {
626
+ throw new HTTPException(400, { message: "Model to update is not found in agent model list" });
627
+ }
628
+ let model;
629
+ if (bodyModel) {
630
+ const { modelId, provider } = bodyModel;
631
+ model = `${provider}/${modelId}`;
632
+ }
633
+ agent.updateModelInModelList({ id: modelConfigId, model, maxRetries, enabled });
634
+ return { message: "Model list updated" };
635
+ } catch (error) {
636
+ return handleError(error, "error updating model list");
637
+ }
638
+ }
639
+ async function getProvidersHandler() {
640
+ try {
641
+ const providers = Object.entries(PROVIDER_REGISTRY).map(([id, provider]) => {
642
+ const envVars = Array.isArray(provider.apiKeyEnvVar) ? provider.apiKeyEnvVar : [provider.apiKeyEnvVar];
643
+ const connected = envVars.every((envVar) => !!process.env[envVar]);
644
+ return {
645
+ id,
646
+ name: provider.name,
647
+ envVar: provider.apiKeyEnvVar,
648
+ connected,
649
+ docUrl: provider.docUrl,
650
+ models: [...provider.models]
651
+ // Convert readonly array to regular array
652
+ };
653
+ });
654
+ return { providers };
655
+ } catch (error) {
656
+ return handleError(error, "error fetching providers");
657
+ }
658
+ }
521
659
 
522
- export { agents_exports, generateHandler, generateLegacyHandler, generateVNextHandler, getAgentByIdHandler, getAgentsHandler, getEvalsByAgentIdHandler, getLiveEvalsByAgentIdHandler, getSerializedAgentTools, streamGenerateHandler, streamGenerateLegacyHandler, streamNetworkHandler, streamVNextGenerateHandler, streamVNextUIMessageHandler, updateAgentModelHandler };
523
- //# sourceMappingURL=chunk-ILESGJ6N.js.map
524
- //# sourceMappingURL=chunk-ILESGJ6N.js.map
660
+ export { agents_exports, approveToolCallHandler, declineToolCallHandler, generateHandler, generateLegacyHandler, getAgentByIdHandler, getAgentsHandler, getEvalsByAgentIdHandler, getLiveEvalsByAgentIdHandler, getProvidersHandler, getSerializedAgentTools, getSerializedProcessors, reorderAgentModelListHandler, streamGenerateHandler, streamGenerateLegacyHandler, streamNetworkHandler, streamUIMessageHandler, updateAgentModelHandler, updateAgentModelInModelListHandler };
661
+ //# sourceMappingURL=chunk-JSLAYFEW.js.map
662
+ //# sourceMappingURL=chunk-JSLAYFEW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/agents.ts"],"names":["agent","acc","key"],"mappings":"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","file":"chunk-JSLAYFEW.js","sourcesContent":["import type { Agent, AgentModelManagerConfig } from '@mastra/core/agent';\nimport { PROVIDER_REGISTRY } from '@mastra/core/llm';\nimport type { SystemMessage } from '@mastra/core/llm';\nimport type { InputProcessor, OutputProcessor } from '@mastra/core/processors';\nimport { RuntimeContext } from '@mastra/core/runtime-context';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport { stringify } from 'superjson';\n\nimport type {\n StreamTextOnFinishCallback,\n StreamTextOnStepFinishCallback,\n} from '../../../../core/dist/llm/model/base.types';\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\nimport { sanitizeBody, validateBody } from './utils';\n\ntype GetBody<\n T extends keyof Agent & { [K in keyof Agent]: Agent[K] extends (...args: any) => any ? K : never }[keyof Agent],\n> = {\n messages: Parameters<Agent[T]>[0];\n} & Parameters<Agent[T]>[1];\n\ntype GetHITLBody<\n T extends keyof Agent & { [K in keyof Agent]: Agent[K] extends (...args: any) => any ? K : never }[keyof Agent],\n> = Parameters<Agent[T]>[0];\n\nexport interface SerializedProcessor {\n name: string;\n}\n\nexport interface SerializedTool {\n id: string;\n description?: string;\n inputSchema?: string;\n outputSchema?: string;\n requireApproval?: boolean;\n}\n\nexport interface SerializedWorkflow {\n name: string;\n steps?: Record<string, { id: string; description?: string }>;\n}\n\nexport interface SerializedAgent {\n name: string;\n instructions?: SystemMessage;\n tools: Record<string, SerializedTool>;\n agents: Record<string, SerializedAgentDefinition>;\n workflows: Record<string, SerializedWorkflow>;\n inputProcessors: SerializedProcessor[];\n outputProcessors: SerializedProcessor[];\n provider?: string;\n modelId?: string;\n modelVersion?: string;\n modelList?: Array<\n Omit<AgentModelManagerConfig, 'model'> & {\n model: {\n modelId: string;\n provider: string;\n modelVersion: string;\n };\n }\n >;\n // We can't use the true types here because they are not serializable\n defaultGenerateOptions?: Record<string, unknown>;\n defaultStreamOptions?: Record<string, unknown>;\n}\n\nexport interface SerializedAgentWithId extends SerializedAgent {\n id: string;\n}\n\nexport async function getSerializedAgentTools(tools: Record<string, unknown>): Promise<Record<string, SerializedTool>> {\n return Object.entries(tools || {}).reduce<Record<string, SerializedTool>>((acc, [key, tool]) => {\n const _tool = tool as {\n id?: string;\n description?: string;\n inputSchema?: { jsonSchema?: unknown } | unknown;\n outputSchema?: { jsonSchema?: unknown } | unknown;\n };\n\n const toolId = _tool.id ?? `tool-${key}`;\n\n let inputSchemaForReturn: string | undefined = undefined;\n\n if (_tool.inputSchema) {\n if (_tool.inputSchema && typeof _tool.inputSchema === 'object' && 'jsonSchema' in _tool.inputSchema) {\n inputSchemaForReturn = stringify(_tool.inputSchema.jsonSchema);\n } else if (_tool.inputSchema) {\n inputSchemaForReturn = stringify(zodToJsonSchema(_tool.inputSchema as Parameters<typeof zodToJsonSchema>[0]));\n }\n }\n\n let outputSchemaForReturn: string | undefined = undefined;\n\n if (_tool.outputSchema) {\n if (_tool.outputSchema && typeof _tool.outputSchema === 'object' && 'jsonSchema' in _tool.outputSchema) {\n outputSchemaForReturn = stringify(_tool.outputSchema.jsonSchema);\n } else if (_tool.outputSchema) {\n outputSchemaForReturn = stringify(zodToJsonSchema(_tool.outputSchema as Parameters<typeof zodToJsonSchema>[0]));\n }\n }\n\n acc[key] = {\n ..._tool,\n id: toolId,\n inputSchema: inputSchemaForReturn,\n outputSchema: outputSchemaForReturn,\n };\n return acc;\n }, {});\n}\n\nexport function getSerializedProcessors(processors: (InputProcessor | OutputProcessor)[]): SerializedProcessor[] {\n return processors.map(processor => {\n // Processors are class instances or objects with a name property\n // Use the name property if available, otherwise fall back to constructor name\n return {\n name: processor.name || processor.constructor.name,\n };\n });\n}\n\ninterface SerializedAgentDefinition {\n id: string;\n name: string;\n}\n\nasync function getSerializedAgentDefinition({\n agent,\n runtimeContext,\n}: {\n agent: Agent;\n runtimeContext: RuntimeContext;\n}): Promise<Record<string, SerializedAgentDefinition>> {\n let serializedAgentAgents: Record<string, SerializedAgentDefinition> = {};\n\n if ('listAgents' in agent) {\n const agents = await agent.listAgents({ runtimeContext });\n serializedAgentAgents = Object.entries(agents || {}).reduce<Record<string, SerializedAgentDefinition>>(\n (acc, [key, agent]) => {\n return {\n ...acc,\n [key]: { id: agent.id, name: agent.name },\n };\n },\n {},\n );\n }\n return serializedAgentAgents;\n}\n\nasync function formatAgentList({\n id,\n mastra,\n agent,\n runtimeContext,\n}: {\n id: string;\n mastra: Context['mastra'];\n agent: Agent;\n runtimeContext: RuntimeContext;\n}): Promise<SerializedAgentWithId> {\n const instructions = await agent.getInstructions({ runtimeContext });\n const tools = await agent.getTools({ runtimeContext });\n const llm = await agent.getLLM({ runtimeContext });\n const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext });\n const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext });\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows: Record<\n string,\n { name: string; steps?: Record<string, { id: string; description?: string }> }\n > = {};\n\n if ('getWorkflows' in agent) {\n const logger = mastra.getLogger();\n try {\n const workflows = await agent.getWorkflows({ runtimeContext });\n serializedAgentWorkflows = Object.entries(workflows || {}).reduce<\n Record<string, { name: string; steps?: Record<string, { id: string; description?: string }> }>\n >((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name || 'Unnamed workflow',\n },\n };\n }, {});\n } catch (error) {\n logger.error('Error getting workflows for agent', { agentName: agent.name, error });\n }\n }\n\n const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext });\n\n // Get and serialize processors\n const inputProcessors = await agent.getInputProcessors(runtimeContext);\n const outputProcessors = await agent.getOutputProcessors(runtimeContext);\n const serializedInputProcessors = getSerializedProcessors(inputProcessors);\n const serializedOutputProcessors = getSerializedProcessors(outputProcessors);\n\n const model = llm?.getModel();\n const models = await agent.getModelList(runtimeContext);\n const modelList = models?.map(md => ({\n ...md,\n model: {\n modelId: md.model.modelId,\n provider: md.model.provider,\n modelVersion: md.model.specificationVersion,\n },\n }));\n\n return {\n id,\n name: agent.name,\n instructions,\n agents: serializedAgentAgents,\n tools: serializedAgentTools,\n workflows: serializedAgentWorkflows,\n inputProcessors: serializedInputProcessors,\n outputProcessors: serializedOutputProcessors,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n defaultGenerateOptions,\n defaultStreamOptions,\n modelList,\n };\n}\n\n// Agent handlers\nexport async function getAgentsHandler({\n mastra,\n runtimeContext,\n}: Context & { runtimeContext: RuntimeContext }): Promise<Record<string, SerializedAgent>> {\n try {\n const agents = mastra.getAgents();\n\n const serializedAgentsMap = await Promise.all(\n Object.entries(agents).map(async ([id, agent]) => {\n return formatAgentList({ id, mastra, agent, runtimeContext });\n }),\n );\n\n const serializedAgents = serializedAgentsMap.reduce<\n Record<string, Omit<(typeof serializedAgentsMap)[number], 'id'>>\n >((acc, { id, ...rest }) => {\n acc[id] = rest;\n return acc;\n }, {});\n\n return serializedAgents;\n } catch (error) {\n return handleError(error, 'Error getting agents');\n }\n}\n\nasync function formatAgent({\n mastra,\n agent,\n runtimeContext,\n isPlayground,\n}: {\n mastra: Context['mastra'];\n agent: Agent;\n runtimeContext: RuntimeContext;\n isPlayground: boolean;\n}): Promise<SerializedAgent> {\n const tools = await agent.getTools({ runtimeContext });\n\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows: Record<\n string,\n { name: string; steps: Record<string, { id: string; description?: string }> }\n > = {};\n\n if ('getWorkflows' in agent) {\n const logger = mastra.getLogger();\n try {\n const workflows = await agent.getWorkflows({ runtimeContext });\n\n serializedAgentWorkflows = Object.entries(workflows || {}).reduce<\n Record<string, { name: string; steps: Record<string, { id: string; description?: string }> }>\n >((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name || 'Unnamed workflow',\n steps: Object.entries(workflow.steps).reduce<Record<string, { id: string; description?: string }>>(\n (acc, [key, step]) => {\n return {\n ...acc,\n [key]: {\n id: step.id,\n description: step.description,\n },\n };\n },\n {},\n ),\n },\n };\n }, {});\n } catch (error) {\n logger.error('Error getting workflows for agent', { agentName: agent.name, error });\n }\n }\n\n let proxyRuntimeContext = runtimeContext;\n if (isPlayground) {\n proxyRuntimeContext = new Proxy(runtimeContext, {\n get(target, prop) {\n if (prop === 'get') {\n return function (key: string) {\n const value = target.get(key);\n return value ?? `<${key}>`;\n };\n }\n return Reflect.get(target, prop);\n },\n });\n }\n\n const instructions = await agent.getInstructions({ runtimeContext: proxyRuntimeContext });\n const llm = await agent.getLLM({ runtimeContext });\n const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });\n const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });\n\n const model = llm?.getModel();\n const models = await agent.getModelList(runtimeContext);\n const modelList = models?.map(md => ({\n ...md,\n model: {\n modelId: md.model.modelId,\n provider: md.model.provider,\n modelVersion: md.model.specificationVersion,\n },\n }));\n\n const serializedAgentAgents = await getSerializedAgentDefinition({ agent, runtimeContext: proxyRuntimeContext });\n\n // Get and serialize processors\n const inputProcessors = await agent.getInputProcessors(proxyRuntimeContext);\n const outputProcessors = await agent.getOutputProcessors(proxyRuntimeContext);\n const serializedInputProcessors = getSerializedProcessors(inputProcessors);\n const serializedOutputProcessors = getSerializedProcessors(outputProcessors);\n\n return {\n name: agent.name,\n instructions,\n tools: serializedAgentTools,\n agents: serializedAgentAgents,\n workflows: serializedAgentWorkflows,\n inputProcessors: serializedInputProcessors,\n outputProcessors: serializedOutputProcessors,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n modelList,\n defaultGenerateOptions,\n defaultStreamOptions,\n };\n}\n\nexport async function getAgentByIdHandler({\n mastra,\n runtimeContext,\n agentId,\n isPlayground = false,\n}: Context & { isPlayground?: boolean; runtimeContext: RuntimeContext; agentId: string }): Promise<\n SerializedAgent | ReturnType<typeof handleError>\n> {\n try {\n const agent = mastra.getAgent(agentId);\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n return formatAgent({ mastra, agent, runtimeContext, isPlayground });\n } catch (error) {\n return handleError(error, 'Error getting agent');\n }\n}\n\nexport async function getEvalsByAgentIdHandler({\n mastra,\n runtimeContext,\n agentId,\n}: Context & { runtimeContext: RuntimeContext; agentId: string }) {\n try {\n const agent = mastra.getAgent(agentId);\n const evals = (await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, 'test')) || [];\n const instructions = await agent.getInstructions({ runtimeContext });\n return {\n id: agentId,\n name: agent.name,\n instructions,\n evals,\n };\n } catch (error) {\n return handleError(error, 'Error getting test evals');\n }\n}\n\nexport async function getLiveEvalsByAgentIdHandler({\n mastra,\n runtimeContext,\n agentId,\n}: Context & { runtimeContext: RuntimeContext; agentId: string }) {\n try {\n const agent = mastra.getAgent(agentId);\n const evals = (await mastra.getStorage()?.getEvalsByAgentName?.(agent.name, 'live')) || [];\n const instructions = await agent.getInstructions({ runtimeContext });\n\n return {\n id: agentId,\n name: agent.name,\n instructions,\n evals,\n };\n } catch (error) {\n return handleError(error, 'Error getting live evals');\n }\n}\n\nexport async function generateLegacyHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generateLegacy'> & {\n // @deprecated use resourceId\n resourceid?: string;\n runtimeContext?: Record<string, unknown>;\n };\n abortSignal?: AbortSignal;\n}) {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;\n // Use resourceId if provided, fall back to resourceid (deprecated)\n const finalResourceId = resourceId ?? resourceid;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const result = await agent.generateLegacy(messages, {\n ...rest,\n abortSignal,\n // @ts-expect-error TODO fix types\n resourceId: finalResourceId,\n runtimeContext: finalRuntimeContext,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error generating from agent');\n }\n}\n\nexport async function generateHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generate'> & {\n runtimeContext?: Record<string, unknown>;\n format?: 'mastra' | 'aisdk';\n };\n abortSignal?: AbortSignal;\n}): Promise<ReturnType<Agent['generate']>> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const result = await agent.generate(messages, {\n ...rest,\n runtimeContext: finalRuntimeContext,\n format: rest.format || 'mastra',\n abortSignal,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error generating from agent');\n }\n}\n\nexport async function streamGenerateLegacyHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'streamLegacy'> & {\n // @deprecated use resourceId\n resourceid?: string;\n runtimeContext?: string;\n };\n abortSignal?: AbortSignal;\n}): Promise<Response | undefined> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;\n // Use resourceId if provided, fall back to resourceid (deprecated)\n const finalResourceId = resourceId ?? resourceid;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = await agent.streamLegacy(messages, {\n ...rest,\n abortSignal,\n // @ts-expect-error TODO fix types\n resourceId: finalResourceId,\n runtimeContext: finalRuntimeContext,\n });\n\n const streamResponse = rest.output\n ? streamResult.toTextStreamResponse({\n headers: {\n 'Transfer-Encoding': 'chunked',\n },\n })\n : streamResult.toDataStreamResponse({\n sendUsage: true,\n sendReasoning: true,\n getErrorMessage: (error: any) => {\n return `An error occurred while processing your request. ${error instanceof Error ? error.message : JSON.stringify(error)}`;\n },\n headers: {\n 'Transfer-Encoding': 'chunked',\n },\n });\n\n return streamResponse;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport function streamGenerateHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'stream'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['stream']> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = agent.stream(messages, {\n ...rest,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: body.format ?? 'mastra',\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport function approveToolCallHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetHITLBody<'approveToolCall'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['approveToolCall']> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n const streamResult = agent.approveToolCall({\n ...rest,\n runId,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: body.format ?? 'mastra',\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport function declineToolCallHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetHITLBody<'declineToolCall'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['declineToolCall']> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { runId, runtimeContext: agentRuntimeContext, ...rest } = body;\n\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n const streamResult = agent.declineToolCall({\n ...rest,\n runId,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: body.format ?? 'mastra',\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport function streamNetworkHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n // abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'network'> & {\n thread?: string;\n resourceId?: string;\n };\n // abortSignal?: AbortSignal;\n}): ReturnType<Agent['network']> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = agent.network(messages, {\n ...rest,\n memory: {\n thread: rest.thread ?? '',\n resource: rest.resourceId ?? '',\n },\n runtimeContext: finalRuntimeContext,\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent loop response');\n }\n}\n\nexport async function streamUIMessageHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'stream'> & {\n runtimeContext?: string;\n onStepFinish?: StreamTextOnStepFinishCallback<any>;\n onFinish?: StreamTextOnFinishCallback<any>;\n output?: undefined;\n };\n abortSignal?: AbortSignal;\n}): Promise<Response | undefined> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(body, ['tools']);\n\n const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;\n const finalRuntimeContext = new RuntimeContext<Record<string, unknown>>([\n ...Array.from(runtimeContext.entries()),\n ...Array.from(Object.entries(agentRuntimeContext ?? {})),\n ]);\n\n validateBody({ messages });\n\n const streamResult = await agent.stream(messages, {\n ...rest,\n runtimeContext: finalRuntimeContext,\n abortSignal,\n format: 'aisdk',\n });\n\n return streamResult.toUIMessageStreamResponse();\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n}\n\nexport async function updateAgentModelHandler({\n mastra,\n agentId,\n body,\n}: Context & {\n agentId: string;\n body: {\n modelId: string;\n provider: string;\n };\n}): Promise<{ message: string }> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const { modelId, provider } = body;\n\n // Use the universal Mastra router format: provider/model\n const newModel = `${provider}/${modelId}`;\n\n agent.__updateModel({ model: newModel });\n\n return { message: 'Agent model updated' };\n } catch (error) {\n return handleError(error, 'error updating agent model');\n }\n}\n\nexport async function reorderAgentModelListHandler({\n mastra,\n agentId,\n body,\n}: Context & {\n agentId: string;\n body: {\n reorderedModelIds: Array<string>;\n };\n}): Promise<{ message: string }> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const modelList = await agent.getModelList();\n if (!modelList || modelList.length === 0) {\n throw new HTTPException(400, { message: 'Agent model list is not found or empty' });\n }\n\n agent.reorderModels(body.reorderedModelIds);\n\n return { message: 'Model list reordered' };\n } catch (error) {\n return handleError(error, 'error reordering model list');\n }\n}\n\nexport async function updateAgentModelInModelListHandler({\n mastra,\n agentId,\n modelConfigId,\n body,\n}: Context & {\n agentId: string;\n modelConfigId: string;\n body: {\n model?: {\n modelId: string;\n provider: string;\n };\n maxRetries?: number;\n enabled?: boolean;\n };\n}): Promise<{ message: string }> {\n try {\n const agent = mastra.getAgent(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n const { model: bodyModel, maxRetries, enabled } = body;\n\n if (!modelConfigId) {\n throw new HTTPException(400, { message: 'Model id is required' });\n }\n\n const modelList = await agent.getModelList();\n if (!modelList || modelList.length === 0) {\n throw new HTTPException(400, { message: 'Agent model list is not found or empty' });\n }\n\n const modelToUpdate = modelList.find(m => m.id === modelConfigId);\n if (!modelToUpdate) {\n throw new HTTPException(400, { message: 'Model to update is not found in agent model list' });\n }\n\n let model: string | undefined;\n if (bodyModel) {\n const { modelId, provider } = bodyModel;\n // Use the universal Mastra router format: provider/model\n model = `${provider}/${modelId}`;\n }\n\n agent.updateModelInModelList({ id: modelConfigId, model, maxRetries, enabled });\n\n return { message: 'Model list updated' };\n } catch (error) {\n return handleError(error, 'error updating model list');\n }\n}\n\nexport async function getProvidersHandler() {\n try {\n const providers = Object.entries(PROVIDER_REGISTRY).map(([id, provider]) => {\n // Check if the provider is connected by checking for its API key env var(s)\n const envVars = Array.isArray(provider.apiKeyEnvVar) ? provider.apiKeyEnvVar : [provider.apiKeyEnvVar];\n const connected = envVars.every(envVar => !!process.env[envVar]);\n\n return {\n id,\n name: provider.name,\n envVar: provider.apiKeyEnvVar,\n connected,\n docUrl: provider.docUrl,\n models: [...provider.models], // Convert readonly array to regular array\n };\n });\n\n return { providers };\n } catch (error) {\n return handleError(error, 'error fetching providers');\n }\n}\n"]}