@mastra/server 0.0.0-fix-message-list-args-missing-20250807205055 → 0.0.0-fix-zod-to-json-schema-ref-strategy-20250910193441

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 (253) hide show
  1. package/CHANGELOG.md +3569 -0
  2. package/dist/chunk-2JEDATG5.cjs +15707 -0
  3. package/dist/chunk-2JEDATG5.cjs.map +1 -0
  4. package/dist/{chunk-GASWM5HJ.cjs → chunk-3THIIWWW.cjs} +108 -138
  5. package/dist/chunk-3THIIWWW.cjs.map +1 -0
  6. package/dist/{chunk-OW4FX5TS.js → chunk-4QCXUEAT.js} +10 -3
  7. package/dist/chunk-4QCXUEAT.js.map +1 -0
  8. package/dist/chunk-4RRMWXQ2.js +3522 -0
  9. package/dist/chunk-4RRMWXQ2.js.map +1 -0
  10. package/dist/chunk-5DP5XZH6.cjs +928 -0
  11. package/dist/chunk-5DP5XZH6.cjs.map +1 -0
  12. package/dist/{chunk-TRWPUPGD.js → chunk-5QUKZCEF.js} +107 -137
  13. package/dist/chunk-5QUKZCEF.js.map +1 -0
  14. package/dist/chunk-66YYHFGF.js +761 -0
  15. package/dist/chunk-66YYHFGF.js.map +1 -0
  16. package/dist/chunk-6GMFZ5LK.js +2774 -0
  17. package/dist/chunk-6GMFZ5LK.js.map +1 -0
  18. package/dist/{chunk-S37KCGOR.cjs → chunk-6LUKYSWE.cjs} +119 -55
  19. package/dist/chunk-6LUKYSWE.cjs.map +1 -0
  20. package/dist/chunk-743UIDHI.cjs +2013 -0
  21. package/dist/chunk-743UIDHI.cjs.map +1 -0
  22. package/dist/{chunk-TXAQU2XN.js → chunk-7QEJ5QG5.js} +5 -5
  23. package/dist/chunk-7QEJ5QG5.js.map +1 -0
  24. package/dist/{chunk-4MQU6AJN.js → chunk-A3AL7EWJ.js} +4 -4
  25. package/dist/{chunk-4MQU6AJN.js.map → chunk-A3AL7EWJ.js.map} +1 -1
  26. package/dist/{chunk-HWHKM67I.js → chunk-A75S4TDD.js} +4 -4
  27. package/dist/{chunk-HWHKM67I.js.map → chunk-A75S4TDD.js.map} +1 -1
  28. package/dist/chunk-AK2FXLLB.cjs +849 -0
  29. package/dist/chunk-AK2FXLLB.cjs.map +1 -0
  30. package/dist/{chunk-BUOJL3MN.js → chunk-B2V3PUB7.js} +117 -55
  31. package/dist/chunk-B2V3PUB7.js.map +1 -0
  32. package/dist/chunk-EMMSS5I5.cjs +37 -0
  33. package/dist/{chunk-Q7SFCCGT.cjs.map → chunk-EMMSS5I5.cjs.map} +1 -1
  34. package/dist/chunk-EMNGA4R4.js +845 -0
  35. package/dist/chunk-EMNGA4R4.js.map +1 -0
  36. package/dist/chunk-FALVL2VV.cjs +3525 -0
  37. package/dist/chunk-FALVL2VV.cjs.map +1 -0
  38. package/dist/chunk-FQNT7PI4.js +937 -0
  39. package/dist/chunk-FQNT7PI4.js.map +1 -0
  40. package/dist/chunk-G3PMV62Z.js +33 -0
  41. package/dist/{chunk-PZ5AY32C.js.map → chunk-G3PMV62Z.js.map} +1 -1
  42. package/dist/{chunk-4QSNRCOT.cjs → chunk-G4PUALCE.cjs} +10 -2
  43. package/dist/chunk-G4PUALCE.cjs.map +1 -0
  44. package/dist/chunk-GU4EWMZB.cjs +769 -0
  45. package/dist/chunk-GU4EWMZB.cjs.map +1 -0
  46. package/dist/{chunk-VIGPWTDA.cjs → chunk-GUI3CROV.cjs} +6 -6
  47. package/dist/chunk-GUI3CROV.cjs.map +1 -0
  48. package/dist/chunk-HJQKWRKQ.cjs +764 -0
  49. package/dist/chunk-HJQKWRKQ.cjs.map +1 -0
  50. package/dist/{chunk-LRUH33B4.cjs → chunk-HVBBFCDH.cjs} +1004 -727
  51. package/dist/chunk-HVBBFCDH.cjs.map +1 -0
  52. package/dist/chunk-HZJRQ5L3.cjs +1411 -0
  53. package/dist/chunk-HZJRQ5L3.cjs.map +1 -0
  54. package/dist/chunk-IGFMAZZ5.cjs +1150 -0
  55. package/dist/chunk-IGFMAZZ5.cjs.map +1 -0
  56. package/dist/chunk-IOQGI4ML.js +931 -0
  57. package/dist/chunk-IOQGI4ML.js.map +1 -0
  58. package/dist/{chunk-4CEZIJWJ.cjs → chunk-IY34NOLA.cjs} +7 -7
  59. package/dist/{chunk-4CEZIJWJ.cjs.map → chunk-IY34NOLA.cjs.map} +1 -1
  60. package/dist/{chunk-O4I563YW.cjs → chunk-J7BPKKOG.cjs} +46 -13
  61. package/dist/chunk-J7BPKKOG.cjs.map +1 -0
  62. package/dist/{chunk-JGVY3KWV.cjs → chunk-KNGXRN26.cjs} +12 -11
  63. package/dist/chunk-KNGXRN26.cjs.map +1 -0
  64. package/dist/{chunk-SQ7KKIH3.js → chunk-KV6VHX4V.js} +22 -5
  65. package/dist/chunk-KV6VHX4V.js.map +1 -0
  66. package/dist/chunk-L265APUD.cjs +69 -0
  67. package/dist/chunk-L265APUD.cjs.map +1 -0
  68. package/dist/chunk-LF2ZLOFP.js +767 -0
  69. package/dist/chunk-LF2ZLOFP.js.map +1 -0
  70. package/dist/{chunk-VOY6MGKA.js → chunk-LJFXFCUH.js} +184 -30
  71. package/dist/chunk-LJFXFCUH.js.map +1 -0
  72. package/dist/chunk-LYPU75T6.js +1147 -0
  73. package/dist/chunk-LYPU75T6.js.map +1 -0
  74. package/dist/{chunk-7FHF55WA.js → chunk-N7F33WAD.js} +976 -727
  75. package/dist/chunk-N7F33WAD.js.map +1 -0
  76. package/dist/chunk-NG5IVLEZ.js +1012 -0
  77. package/dist/chunk-NG5IVLEZ.js.map +1 -0
  78. package/dist/chunk-OGW6HHVI.js +1408 -0
  79. package/dist/chunk-OGW6HHVI.js.map +1 -0
  80. package/dist/chunk-OTU37YZO.js +15671 -0
  81. package/dist/chunk-OTU37YZO.js.map +1 -0
  82. package/dist/{chunk-GX25CWC7.cjs → chunk-OZLRIVC4.cjs} +18 -18
  83. package/dist/chunk-OZLRIVC4.cjs.map +1 -0
  84. package/dist/chunk-P7CIEIJ3.js +925 -0
  85. package/dist/chunk-P7CIEIJ3.js.map +1 -0
  86. package/dist/chunk-P7RBMCBE.cjs +934 -0
  87. package/dist/chunk-P7RBMCBE.cjs.map +1 -0
  88. package/dist/chunk-PPYGWINI.cjs +2777 -0
  89. package/dist/chunk-PPYGWINI.cjs.map +1 -0
  90. package/dist/{chunk-ILCWPBYQ.cjs → chunk-PWTXZZTR.cjs} +23 -5
  91. package/dist/chunk-PWTXZZTR.cjs.map +1 -0
  92. package/dist/{chunk-2XIJW7SV.cjs → chunk-QZT4RDHB.cjs} +193 -33
  93. package/dist/chunk-QZT4RDHB.cjs.map +1 -0
  94. package/dist/chunk-R7NOGUZG.js +65 -0
  95. package/dist/chunk-R7NOGUZG.js.map +1 -0
  96. package/dist/chunk-RCHEPTZZ.js +2006 -0
  97. package/dist/chunk-RCHEPTZZ.js.map +1 -0
  98. package/dist/chunk-SIGXR3JT.cjs +1043 -0
  99. package/dist/chunk-SIGXR3JT.cjs.map +1 -0
  100. package/dist/{chunk-BED2O446.cjs → chunk-SPLSYTYW.cjs} +7 -7
  101. package/dist/{chunk-BED2O446.cjs.map → chunk-SPLSYTYW.cjs.map} +1 -1
  102. package/dist/{chunk-ZKJZQN24.js → chunk-SQY4T6EJ.js} +5 -5
  103. package/dist/chunk-SQY4T6EJ.js.map +1 -0
  104. package/dist/{chunk-YS66MFDY.js → chunk-SYRRSBGL.js} +44 -12
  105. package/dist/chunk-SYRRSBGL.js.map +1 -0
  106. package/dist/{chunk-NCS2OXX6.cjs → chunk-T3TIA3O6.cjs} +4 -4
  107. package/dist/{chunk-NCS2OXX6.cjs.map → chunk-T3TIA3O6.cjs.map} +1 -1
  108. package/dist/{chunk-UVOSITKU.js → chunk-TTHEEIZ3.js} +11 -10
  109. package/dist/chunk-TTHEEIZ3.js.map +1 -0
  110. package/dist/chunk-TVSIG4JE.cjs +940 -0
  111. package/dist/chunk-TVSIG4JE.cjs.map +1 -0
  112. package/dist/{chunk-Y3J45CVZ.js → chunk-U46VIX2V.js} +4 -4
  113. package/dist/{chunk-Y3J45CVZ.js.map → chunk-U46VIX2V.js.map} +1 -1
  114. package/dist/{chunk-G7NVCO5M.js → chunk-WHN4VX55.js} +3 -3
  115. package/dist/{chunk-G7NVCO5M.js.map → chunk-WHN4VX55.js.map} +1 -1
  116. package/dist/{chunk-4US5W7PH.cjs → chunk-WZC6CIVD.cjs} +6 -6
  117. package/dist/{chunk-4US5W7PH.cjs.map → chunk-WZC6CIVD.cjs.map} +1 -1
  118. package/dist/dist-26HWEQY6.js +3 -0
  119. package/dist/dist-26HWEQY6.js.map +1 -0
  120. package/dist/dist-3A5DXB37.cjs +20 -0
  121. package/dist/dist-3A5DXB37.cjs.map +1 -0
  122. package/dist/dist-3SJKQJGY.cjs +16 -0
  123. package/dist/dist-3SJKQJGY.cjs.map +1 -0
  124. package/dist/dist-4ZQSPE5K.js +3 -0
  125. package/dist/dist-4ZQSPE5K.js.map +1 -0
  126. package/dist/dist-5W5QNRTD.js +3 -0
  127. package/dist/dist-5W5QNRTD.js.map +1 -0
  128. package/dist/dist-653SRMPL.js +3 -0
  129. package/dist/dist-653SRMPL.js.map +1 -0
  130. package/dist/dist-6U6EFC5C.cjs +16 -0
  131. package/dist/dist-6U6EFC5C.cjs.map +1 -0
  132. package/dist/dist-7IHNNYMF.cjs +16 -0
  133. package/dist/dist-7IHNNYMF.cjs.map +1 -0
  134. package/dist/dist-B5IPRF6W.js +3 -0
  135. package/dist/dist-B5IPRF6W.js.map +1 -0
  136. package/dist/dist-EOMYFT4Y.cjs +16 -0
  137. package/dist/dist-EOMYFT4Y.cjs.map +1 -0
  138. package/dist/dist-EZZMMMNT.cjs +16 -0
  139. package/dist/dist-EZZMMMNT.cjs.map +1 -0
  140. package/dist/dist-F2ET4MNO.cjs +16 -0
  141. package/dist/dist-F2ET4MNO.cjs.map +1 -0
  142. package/dist/dist-H64VX6DE.js +3 -0
  143. package/dist/dist-H64VX6DE.js.map +1 -0
  144. package/dist/dist-HY7RMLJQ.cjs +16 -0
  145. package/dist/dist-HY7RMLJQ.cjs.map +1 -0
  146. package/dist/dist-M6S4P3FJ.js +3 -0
  147. package/dist/dist-M6S4P3FJ.js.map +1 -0
  148. package/dist/dist-NR7QSCQT.js +3 -0
  149. package/dist/dist-NR7QSCQT.js.map +1 -0
  150. package/dist/dist-QLFMCMCX.js +3 -0
  151. package/dist/dist-QLFMCMCX.js.map +1 -0
  152. package/dist/dist-UY46BFRP.js +3 -0
  153. package/dist/dist-UY46BFRP.js.map +1 -0
  154. package/dist/dist-WCQDRTIV.cjs +16 -0
  155. package/dist/dist-WCQDRTIV.cjs.map +1 -0
  156. package/dist/dist-WKYB3LTJ.cjs +16 -0
  157. package/dist/dist-WKYB3LTJ.cjs.map +1 -0
  158. package/dist/server/a2a/store.cjs +25 -0
  159. package/dist/server/a2a/store.cjs.map +1 -0
  160. package/dist/server/a2a/store.d.ts +3 -3
  161. package/dist/server/a2a/store.d.ts.map +1 -1
  162. package/dist/server/a2a/store.js +23 -0
  163. package/dist/server/a2a/store.js.map +1 -0
  164. package/dist/server/a2a/tasks.d.ts +6 -6
  165. package/dist/server/a2a/tasks.d.ts.map +1 -1
  166. package/dist/server/handlers/a2a.cjs +11 -11
  167. package/dist/server/handlers/a2a.d.ts +16 -14
  168. package/dist/server/handlers/a2a.d.ts.map +1 -1
  169. package/dist/server/handlers/a2a.js +1 -1
  170. package/dist/server/handlers/agent-builder.cjs +68 -0
  171. package/dist/server/handlers/agent-builder.cjs.map +1 -0
  172. package/dist/server/handlers/agent-builder.d.ts +87 -0
  173. package/dist/server/handlers/agent-builder.d.ts.map +1 -0
  174. package/dist/server/handlers/agent-builder.js +3 -0
  175. package/dist/server/handlers/agent-builder.js.map +1 -0
  176. package/dist/server/handlers/agents.cjs +32 -8
  177. package/dist/server/handlers/agents.d.ts +50 -2
  178. package/dist/server/handlers/agents.d.ts.map +1 -1
  179. package/dist/server/handlers/agents.js +1 -1
  180. package/dist/server/handlers/legacyWorkflows.cjs +11 -11
  181. package/dist/server/handlers/legacyWorkflows.d.ts.map +1 -1
  182. package/dist/server/handlers/legacyWorkflows.js +1 -1
  183. package/dist/server/handlers/logs.cjs +4 -4
  184. package/dist/server/handlers/logs.js +1 -1
  185. package/dist/server/handlers/memory.cjs +16 -16
  186. package/dist/server/handlers/memory.d.ts +1 -2
  187. package/dist/server/handlers/memory.d.ts.map +1 -1
  188. package/dist/server/handlers/memory.js +1 -1
  189. package/dist/server/handlers/network.cjs +5 -5
  190. package/dist/server/handlers/network.js +1 -1
  191. package/dist/server/handlers/observability.cjs +16 -0
  192. package/dist/server/handlers/observability.cjs.map +1 -0
  193. package/dist/server/handlers/observability.d.ts +23 -0
  194. package/dist/server/handlers/observability.d.ts.map +1 -0
  195. package/dist/server/handlers/observability.js +3 -0
  196. package/dist/server/handlers/observability.js.map +1 -0
  197. package/dist/server/handlers/scores.cjs +7 -7
  198. package/dist/server/handlers/scores.js +1 -1
  199. package/dist/server/handlers/telemetry.cjs +7 -3
  200. package/dist/server/handlers/telemetry.d.ts +1 -0
  201. package/dist/server/handlers/telemetry.d.ts.map +1 -1
  202. package/dist/server/handlers/telemetry.js +1 -1
  203. package/dist/server/handlers/tools.cjs +9 -5
  204. package/dist/server/handlers/tools.d.ts +4 -0
  205. package/dist/server/handlers/tools.d.ts.map +1 -1
  206. package/dist/server/handlers/tools.js +1 -1
  207. package/dist/server/handlers/utils.cjs +6 -2
  208. package/dist/server/handlers/utils.d.ts +6 -0
  209. package/dist/server/handlers/utils.d.ts.map +1 -1
  210. package/dist/server/handlers/utils.js +1 -1
  211. package/dist/server/handlers/vNextNetwork.cjs +11 -11
  212. package/dist/server/handlers/vNextNetwork.cjs.map +1 -1
  213. package/dist/server/handlers/vNextNetwork.d.ts +9 -9
  214. package/dist/server/handlers/vNextNetwork.d.ts.map +1 -1
  215. package/dist/server/handlers/vNextNetwork.js +7 -7
  216. package/dist/server/handlers/vNextNetwork.js.map +1 -1
  217. package/dist/server/handlers/vector.cjs +7 -7
  218. package/dist/server/handlers/vector.js +1 -1
  219. package/dist/server/handlers/voice.cjs +5 -5
  220. package/dist/server/handlers/voice.js +1 -1
  221. package/dist/server/handlers/workflows.cjs +16 -16
  222. package/dist/server/handlers/workflows.d.ts +7 -22
  223. package/dist/server/handlers/workflows.d.ts.map +1 -1
  224. package/dist/server/handlers/workflows.js +1 -1
  225. package/dist/server/handlers.cjs +44 -34
  226. package/dist/server/handlers.d.ts +2 -0
  227. package/dist/server/handlers.d.ts.map +1 -1
  228. package/dist/server/handlers.js +14 -12
  229. package/dist/server/utils.d.ts +42 -0
  230. package/dist/server/utils.d.ts.map +1 -0
  231. package/package.json +40 -11
  232. package/dist/chunk-2XIJW7SV.cjs.map +0 -1
  233. package/dist/chunk-4QSNRCOT.cjs.map +0 -1
  234. package/dist/chunk-7FHF55WA.js.map +0 -1
  235. package/dist/chunk-BUOJL3MN.js.map +0 -1
  236. package/dist/chunk-GASWM5HJ.cjs.map +0 -1
  237. package/dist/chunk-GX25CWC7.cjs.map +0 -1
  238. package/dist/chunk-ILCWPBYQ.cjs.map +0 -1
  239. package/dist/chunk-JGVY3KWV.cjs.map +0 -1
  240. package/dist/chunk-LRUH33B4.cjs.map +0 -1
  241. package/dist/chunk-O4I563YW.cjs.map +0 -1
  242. package/dist/chunk-OW4FX5TS.js.map +0 -1
  243. package/dist/chunk-PZ5AY32C.js +0 -9
  244. package/dist/chunk-Q7SFCCGT.cjs +0 -11
  245. package/dist/chunk-S37KCGOR.cjs.map +0 -1
  246. package/dist/chunk-SQ7KKIH3.js.map +0 -1
  247. package/dist/chunk-TRWPUPGD.js.map +0 -1
  248. package/dist/chunk-TXAQU2XN.js.map +0 -1
  249. package/dist/chunk-UVOSITKU.js.map +0 -1
  250. package/dist/chunk-VIGPWTDA.cjs.map +0 -1
  251. package/dist/chunk-VOY6MGKA.js.map +0 -1
  252. package/dist/chunk-YS66MFDY.js.map +0 -1
  253. package/dist/chunk-ZKJZQN24.js.map +0 -1
@@ -1,23 +1,69 @@
1
1
  'use strict';
2
2
 
3
- var chunkLRUH33B4_cjs = require('./chunk-LRUH33B4.cjs');
4
- var chunk4QSNRCOT_cjs = require('./chunk-4QSNRCOT.cjs');
3
+ var chunk5DP5XZH6_cjs = require('./chunk-5DP5XZH6.cjs');
4
+ var chunkTVSIG4JE_cjs = require('./chunk-TVSIG4JE.cjs');
5
+ var chunk743UIDHI_cjs = require('./chunk-743UIDHI.cjs');
6
+ var chunkAK2FXLLB_cjs = require('./chunk-AK2FXLLB.cjs');
7
+ var chunkP7RBMCBE_cjs = require('./chunk-P7RBMCBE.cjs');
8
+ var chunkHZJRQ5L3_cjs = require('./chunk-HZJRQ5L3.cjs');
9
+ var chunkIGFMAZZ5_cjs = require('./chunk-IGFMAZZ5.cjs');
10
+ var chunkHJQKWRKQ_cjs = require('./chunk-HJQKWRKQ.cjs');
11
+ var chunkG4PUALCE_cjs = require('./chunk-G4PUALCE.cjs');
12
+ var chunkFALVL2VV_cjs = require('./chunk-FALVL2VV.cjs');
13
+ var chunkPPYGWINI_cjs = require('./chunk-PPYGWINI.cjs');
14
+ var chunkGU4EWMZB_cjs = require('./chunk-GU4EWMZB.cjs');
5
15
  var chunkRE4RPXT2_cjs = require('./chunk-RE4RPXT2.cjs');
6
16
  var chunk7NADHFD2_cjs = require('./chunk-7NADHFD2.cjs');
7
- var chunkQ7SFCCGT_cjs = require('./chunk-Q7SFCCGT.cjs');
17
+ var chunkEMMSS5I5_cjs = require('./chunk-EMMSS5I5.cjs');
8
18
  var runtimeContext = require('@mastra/core/runtime-context');
19
+ var zodToJson = require('@mastra/core/utils/zod-to-json');
9
20
 
10
21
  // src/server/handlers/agents.ts
11
22
  var agents_exports = {};
12
- chunkQ7SFCCGT_cjs.__export(agents_exports, {
23
+ chunkEMMSS5I5_cjs.__export(agents_exports, {
13
24
  generateHandler: () => generateHandler,
25
+ generateLegacyHandler: () => generateLegacyHandler,
26
+ generateVNextHandler: () => generateVNextHandler,
14
27
  getAgentByIdHandler: () => getAgentByIdHandler,
15
28
  getAgentsHandler: () => getAgentsHandler,
16
29
  getEvalsByAgentIdHandler: () => getEvalsByAgentIdHandler,
17
30
  getLiveEvalsByAgentIdHandler: () => getLiveEvalsByAgentIdHandler,
31
+ getSerializedAgentTools: () => getSerializedAgentTools,
18
32
  streamGenerateHandler: () => streamGenerateHandler,
19
- streamVNextGenerateHandler: () => streamVNextGenerateHandler
33
+ streamGenerateLegacyHandler: () => streamGenerateLegacyHandler,
34
+ streamVNextGenerateHandler: () => streamVNextGenerateHandler,
35
+ streamVNextUIMessageHandler: () => streamVNextUIMessageHandler,
36
+ updateAgentModelHandler: () => updateAgentModelHandler
20
37
  });
38
+ async function getSerializedAgentTools(tools) {
39
+ return Object.entries(tools || {}).reduce((acc, [key, tool]) => {
40
+ const _tool = tool;
41
+ const toolId = _tool.id ?? `tool-${key}`;
42
+ let inputSchemaForReturn = void 0;
43
+ if (_tool.inputSchema) {
44
+ if (_tool.inputSchema?.jsonSchema) {
45
+ inputSchemaForReturn = chunkGU4EWMZB_cjs.stringify(_tool.inputSchema.jsonSchema);
46
+ } else {
47
+ inputSchemaForReturn = chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(_tool.inputSchema));
48
+ }
49
+ }
50
+ let outputSchemaForReturn = void 0;
51
+ if (_tool.outputSchema) {
52
+ if (_tool.outputSchema?.jsonSchema) {
53
+ outputSchemaForReturn = chunkGU4EWMZB_cjs.stringify(_tool.outputSchema.jsonSchema);
54
+ } else {
55
+ outputSchemaForReturn = chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(_tool.outputSchema));
56
+ }
57
+ }
58
+ acc[key] = {
59
+ ..._tool,
60
+ id: toolId,
61
+ inputSchema: inputSchemaForReturn,
62
+ outputSchema: outputSchemaForReturn
63
+ };
64
+ return acc;
65
+ }, {});
66
+ }
21
67
  async function getAgentsHandler({ mastra, runtimeContext }) {
22
68
  try {
23
69
  const agents = mastra.getAgents();
@@ -28,15 +74,7 @@ async function getAgentsHandler({ mastra, runtimeContext }) {
28
74
  const llm = await agent.getLLM({ runtimeContext });
29
75
  const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext });
30
76
  const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext });
31
- const serializedAgentTools = Object.entries(tools || {}).reduce((acc, [key, tool]) => {
32
- const _tool = tool;
33
- acc[key] = {
34
- ..._tool,
35
- inputSchema: _tool.inputSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(_tool.inputSchema)) : void 0,
36
- outputSchema: _tool.outputSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(_tool.outputSchema)) : void 0
37
- };
38
- return acc;
39
- }, {});
77
+ const serializedAgentTools = await getSerializedAgentTools(tools);
40
78
  let serializedAgentWorkflows = {};
41
79
  if ("getWorkflows" in agent) {
42
80
  const logger = mastra.getLogger();
@@ -54,6 +92,7 @@ async function getAgentsHandler({ mastra, runtimeContext }) {
54
92
  logger.error("Error getting workflows for agent", { agentName: agent.name, error });
55
93
  }
56
94
  }
95
+ const model = llm?.getModel();
57
96
  return {
58
97
  id,
59
98
  name: agent.name,
@@ -62,6 +101,7 @@ async function getAgentsHandler({ mastra, runtimeContext }) {
62
101
  workflows: serializedAgentWorkflows,
63
102
  provider: llm?.getProvider(),
64
103
  modelId: llm?.getModelId(),
104
+ modelVersion: model?.specificationVersion,
65
105
  defaultGenerateOptions,
66
106
  defaultStreamOptions
67
107
  };
@@ -88,15 +128,7 @@ async function getAgentByIdHandler({
88
128
  throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
89
129
  }
90
130
  const tools = await agent.getTools({ runtimeContext });
91
- const serializedAgentTools = Object.entries(tools || {}).reduce((acc, [key, tool]) => {
92
- const _tool = tool;
93
- acc[key] = {
94
- ..._tool,
95
- inputSchema: _tool.inputSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(_tool.inputSchema)) : void 0,
96
- outputSchema: _tool.outputSchema ? chunkLRUH33B4_cjs.stringify(chunkLRUH33B4_cjs.esm_default(_tool.outputSchema)) : void 0
97
- };
98
- return acc;
99
- }, {});
131
+ const serializedAgentTools = await getSerializedAgentTools(tools);
100
132
  let serializedAgentWorkflows = {};
101
133
  if ("getWorkflows" in agent) {
102
134
  const logger = mastra.getLogger();
@@ -141,6 +173,7 @@ async function getAgentByIdHandler({
141
173
  const llm = await agent.getLLM({ runtimeContext });
142
174
  const defaultGenerateOptions = await agent.getDefaultGenerateOptions({ runtimeContext: proxyRuntimeContext });
143
175
  const defaultStreamOptions = await agent.getDefaultStreamOptions({ runtimeContext: proxyRuntimeContext });
176
+ const model = llm?.getModel();
144
177
  return {
145
178
  name: agent.name,
146
179
  instructions,
@@ -148,6 +181,7 @@ async function getAgentByIdHandler({
148
181
  workflows: serializedAgentWorkflows,
149
182
  provider: llm?.getProvider(),
150
183
  modelId: llm?.getModelId(),
184
+ modelVersion: model?.specificationVersion,
151
185
  defaultGenerateOptions,
152
186
  defaultStreamOptions
153
187
  };
@@ -193,7 +227,17 @@ async function getLiveEvalsByAgentIdHandler({
193
227
  return chunkRE4RPXT2_cjs.handleError(error, "Error getting live evals");
194
228
  }
195
229
  }
196
- async function generateHandler({
230
+ function generateHandler({
231
+ mastra,
232
+ ...args
233
+ }) {
234
+ const logger = mastra.getLogger();
235
+ logger?.warn(
236
+ "Deprecation NOTICE:\nGenerate method will switch to use generateVNext implementation September 16th, 2025. Please use generateLegacyHandler if you don't want to upgrade just yet."
237
+ );
238
+ return generateLegacyHandler({ mastra, ...args });
239
+ }
240
+ async function generateLegacyHandler({
197
241
  mastra,
198
242
  runtimeContext: runtimeContext$1,
199
243
  agentId,
@@ -205,19 +249,50 @@ async function generateHandler({
205
249
  if (!agent) {
206
250
  throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
207
251
  }
252
+ chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
208
253
  const { messages, resourceId, resourceid, runtimeContext: agentRuntimeContext, ...rest } = body;
209
254
  const finalResourceId = resourceId ?? resourceid;
210
255
  const finalRuntimeContext = new runtimeContext.RuntimeContext([
211
256
  ...Array.from(runtimeContext$1.entries()),
212
257
  ...Array.from(Object.entries(agentRuntimeContext ?? {}))
213
258
  ]);
214
- chunk4QSNRCOT_cjs.validateBody({ messages });
259
+ chunkG4PUALCE_cjs.validateBody({ messages });
215
260
  const result = await agent.generate(messages, {
216
261
  ...rest,
262
+ abortSignal,
217
263
  // @ts-expect-error TODO fix types
218
264
  resourceId: finalResourceId,
265
+ runtimeContext: finalRuntimeContext
266
+ });
267
+ return result;
268
+ } catch (error) {
269
+ return chunkRE4RPXT2_cjs.handleError(error, "Error generating from agent");
270
+ }
271
+ }
272
+ async function generateVNextHandler({
273
+ mastra,
274
+ runtimeContext: runtimeContext$1,
275
+ agentId,
276
+ body,
277
+ abortSignal
278
+ }) {
279
+ try {
280
+ const agent = mastra.getAgent(agentId);
281
+ if (!agent) {
282
+ throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
283
+ }
284
+ chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
285
+ const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
286
+ const finalRuntimeContext = new runtimeContext.RuntimeContext([
287
+ ...Array.from(runtimeContext$1.entries()),
288
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
289
+ ]);
290
+ chunkG4PUALCE_cjs.validateBody({ messages });
291
+ const result = await agent.generateVNext(messages, {
292
+ ...rest,
219
293
  runtimeContext: finalRuntimeContext,
220
- signal: abortSignal
294
+ format: rest.format || "mastra",
295
+ abortSignal
221
296
  });
222
297
  return result;
223
298
  } catch (error) {
@@ -225,6 +300,16 @@ async function generateHandler({
225
300
  }
226
301
  }
227
302
  async function streamGenerateHandler({
303
+ mastra,
304
+ ...args
305
+ }) {
306
+ const logger = mastra.getLogger();
307
+ logger?.warn(
308
+ "Deprecation NOTICE:\n Stream method will switch to use streamVNext implementation September 16th, 2025. Please use streamGenerateLegacyHandler if you don't want to upgrade just yet."
309
+ );
310
+ return streamGenerateLegacyHandler({ mastra, ...args });
311
+ }
312
+ async function streamGenerateLegacyHandler({
228
313
  mastra,
229
314
  runtimeContext: runtimeContext$1,
230
315
  agentId,
@@ -242,13 +327,13 @@ async function streamGenerateHandler({
242
327
  ...Array.from(runtimeContext$1.entries()),
243
328
  ...Array.from(Object.entries(agentRuntimeContext ?? {}))
244
329
  ]);
245
- chunk4QSNRCOT_cjs.validateBody({ messages });
330
+ chunkG4PUALCE_cjs.validateBody({ messages });
246
331
  const streamResult = await agent.stream(messages, {
247
332
  ...rest,
333
+ abortSignal,
248
334
  // @ts-expect-error TODO fix types
249
335
  resourceId: finalResourceId,
250
- runtimeContext: finalRuntimeContext,
251
- signal: abortSignal
336
+ runtimeContext: finalRuntimeContext
252
337
  });
253
338
  const streamResponse = rest.output ? streamResult.toTextStreamResponse({
254
339
  headers: {
@@ -281,30 +366,105 @@ function streamVNextGenerateHandler({
281
366
  if (!agent) {
282
367
  throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
283
368
  }
369
+ chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
284
370
  const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
285
371
  const finalRuntimeContext = new runtimeContext.RuntimeContext([
286
372
  ...Array.from(runtimeContext$1.entries()),
287
373
  ...Array.from(Object.entries(agentRuntimeContext ?? {}))
288
374
  ]);
289
- chunk4QSNRCOT_cjs.validateBody({ messages });
375
+ chunkG4PUALCE_cjs.validateBody({ messages });
290
376
  const streamResult = agent.streamVNext(messages, {
291
377
  ...rest,
292
378
  runtimeContext: finalRuntimeContext,
293
- abortSignal
379
+ abortSignal,
380
+ format: body.format ?? "mastra"
294
381
  });
295
382
  return streamResult;
296
383
  } catch (error) {
297
384
  return chunkRE4RPXT2_cjs.handleError(error, "error streaming agent response");
298
385
  }
299
386
  }
387
+ async function streamVNextUIMessageHandler({
388
+ mastra,
389
+ runtimeContext: runtimeContext$1,
390
+ agentId,
391
+ body,
392
+ abortSignal
393
+ }) {
394
+ try {
395
+ const agent = mastra.getAgent(agentId);
396
+ if (!agent) {
397
+ throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
398
+ }
399
+ chunkG4PUALCE_cjs.sanitizeBody(body, ["tools"]);
400
+ const { messages, runtimeContext: agentRuntimeContext, ...rest } = body;
401
+ const finalRuntimeContext = new runtimeContext.RuntimeContext([
402
+ ...Array.from(runtimeContext$1.entries()),
403
+ ...Array.from(Object.entries(agentRuntimeContext ?? {}))
404
+ ]);
405
+ chunkG4PUALCE_cjs.validateBody({ messages });
406
+ const streamResult = await agent.streamVNext(messages, {
407
+ ...rest,
408
+ runtimeContext: finalRuntimeContext,
409
+ abortSignal,
410
+ format: "aisdk"
411
+ });
412
+ return streamResult.toUIMessageStreamResponse();
413
+ } catch (error) {
414
+ return chunkRE4RPXT2_cjs.handleError(error, "error streaming agent response");
415
+ }
416
+ }
417
+ async function updateAgentModelHandler({
418
+ mastra,
419
+ agentId,
420
+ body
421
+ }) {
422
+ try {
423
+ const agent = mastra.getAgent(agentId);
424
+ if (!agent) {
425
+ throw new chunk7NADHFD2_cjs.HTTPException(404, { message: "Agent not found" });
426
+ }
427
+ const agentModel = await agent.getModel();
428
+ const modelVersion = agentModel.specificationVersion;
429
+ const { modelId, provider } = body;
430
+ const providerMap = {
431
+ v1: {
432
+ openai: chunkPPYGWINI_cjs.openai(modelId),
433
+ anthropic: chunkIGFMAZZ5_cjs.anthropic(modelId),
434
+ groq: chunkHJQKWRKQ_cjs.groq(modelId),
435
+ xai: chunk5DP5XZH6_cjs.xai(modelId),
436
+ google: chunkTVSIG4JE_cjs.google(modelId)
437
+ },
438
+ v2: {
439
+ openai: chunkFALVL2VV_cjs.openai(modelId),
440
+ anthropic: chunk743UIDHI_cjs.anthropic(modelId),
441
+ groq: chunkAK2FXLLB_cjs.groq(modelId),
442
+ xai: chunkP7RBMCBE_cjs.xai(modelId),
443
+ google: chunkHZJRQ5L3_cjs.google(modelId)
444
+ }
445
+ };
446
+ const modelVersionKey = modelVersion === "v2" ? "v2" : "v1";
447
+ let model = providerMap[modelVersionKey][provider];
448
+ agent.__updateModel({ model });
449
+ return { message: "Agent model updated" };
450
+ } catch (error) {
451
+ return chunkRE4RPXT2_cjs.handleError(error, "error updating agent model");
452
+ }
453
+ }
300
454
 
301
455
  exports.agents_exports = agents_exports;
302
456
  exports.generateHandler = generateHandler;
457
+ exports.generateLegacyHandler = generateLegacyHandler;
458
+ exports.generateVNextHandler = generateVNextHandler;
303
459
  exports.getAgentByIdHandler = getAgentByIdHandler;
304
460
  exports.getAgentsHandler = getAgentsHandler;
305
461
  exports.getEvalsByAgentIdHandler = getEvalsByAgentIdHandler;
306
462
  exports.getLiveEvalsByAgentIdHandler = getLiveEvalsByAgentIdHandler;
463
+ exports.getSerializedAgentTools = getSerializedAgentTools;
307
464
  exports.streamGenerateHandler = streamGenerateHandler;
465
+ exports.streamGenerateLegacyHandler = streamGenerateLegacyHandler;
308
466
  exports.streamVNextGenerateHandler = streamVNextGenerateHandler;
309
- //# sourceMappingURL=chunk-2XIJW7SV.cjs.map
310
- //# sourceMappingURL=chunk-2XIJW7SV.cjs.map
467
+ exports.streamVNextUIMessageHandler = streamVNextUIMessageHandler;
468
+ exports.updateAgentModelHandler = updateAgentModelHandler;
469
+ //# sourceMappingURL=chunk-QZT4RDHB.cjs.map
470
+ //# sourceMappingURL=chunk-QZT4RDHB.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/agents.ts"],"names":["__export","stringify","zodToJsonSchema","handleError","HTTPException","acc","key","runtimeContext","sanitizeBody","RuntimeContext","validateBody","openai","anthropic","groq","xai","google"],"mappings":"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","file":"chunk-QZT4RDHB.cjs","sourcesContent":["import { anthropic } from '@ai-sdk/anthropic';\nimport { anthropic as anthropicV5 } from '@ai-sdk/anthropic-v5';\nimport { google } from '@ai-sdk/google';\nimport { google as googleV5 } from '@ai-sdk/google-v5';\nimport { groq } from '@ai-sdk/groq';\nimport { groq as groqV5 } from '@ai-sdk/groq-v5';\nimport { openai } from '@ai-sdk/openai';\nimport { openai as openaiV5 } from '@ai-sdk/openai-v5';\nimport { xai } from '@ai-sdk/xai';\nimport { xai as xaiV5 } from '@ai-sdk/xai-v5';\nimport type { Agent } from '@mastra/core/agent';\nimport { RuntimeContext } from '@mastra/core/runtime-context';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport { stringify } from 'superjson';\n\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\nexport async function getSerializedAgentTools(tools: Record<string, any>) {\n return Object.entries(tools || {}).reduce<any>((acc, [key, tool]) => {\n const _tool = tool as any;\n\n const toolId = _tool.id ?? `tool-${key}`;\n\n let inputSchemaForReturn = undefined;\n\n if (_tool.inputSchema) {\n if (_tool.inputSchema?.jsonSchema) {\n inputSchemaForReturn = stringify(_tool.inputSchema.jsonSchema);\n } else {\n inputSchemaForReturn = stringify(zodToJsonSchema(_tool.inputSchema));\n }\n }\n\n let outputSchemaForReturn = undefined;\n\n if (_tool.outputSchema) {\n if (_tool.outputSchema?.jsonSchema) {\n outputSchemaForReturn = stringify(_tool.outputSchema.jsonSchema);\n } else {\n outputSchemaForReturn = stringify(zodToJsonSchema(_tool.outputSchema));\n }\n }\n\n acc[key] = {\n ..._tool,\n id: toolId,\n inputSchema: inputSchemaForReturn,\n outputSchema: outputSchemaForReturn,\n };\n return acc;\n }, {});\n}\n\n// Agent handlers\nexport async function getAgentsHandler({ mastra, runtimeContext }: Context & { runtimeContext: RuntimeContext }) {\n try {\n const agents = mastra.getAgents();\n\n const serializedAgentsMap = await Promise.all(\n Object.entries(agents).map(async ([id, agent]) => {\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\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows = {};\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<any>((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name,\n },\n };\n }, {});\n } catch (error) {\n logger.error('Error getting workflows for agent', { agentName: agent.name, error });\n }\n }\n\n const model = llm?.getModel();\n\n return {\n id,\n name: agent.name,\n instructions,\n tools: serializedAgentTools,\n workflows: serializedAgentWorkflows,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n defaultGenerateOptions: defaultGenerateOptions as any,\n defaultStreamOptions: defaultStreamOptions as any,\n };\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\nexport async function getAgentByIdHandler({\n mastra,\n runtimeContext,\n agentId,\n isPlayground = false,\n}: Context & { isPlayground?: boolean; runtimeContext: RuntimeContext; agentId: 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 tools = await agent.getTools({ runtimeContext });\n\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows = {};\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<any>((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name,\n steps: Object.entries(workflow.steps).reduce<any>((acc, [key, step]) => {\n return {\n ...acc,\n [key]: {\n id: step.id,\n description: step.description,\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\n return {\n name: agent.name,\n instructions,\n tools: serializedAgentTools,\n workflows: serializedAgentWorkflows,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n defaultGenerateOptions: defaultGenerateOptions as any,\n defaultStreamOptions: defaultStreamOptions as any,\n };\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 function generateHandler({\n mastra,\n ...args\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generate'> & {\n // @deprecated use resourceId\n resourceid?: string;\n runtimeContext?: Record<string, unknown>;\n };\n abortSignal?: AbortSignal;\n}) {\n const logger = mastra.getLogger();\n logger?.warn(\n \"Deprecation NOTICE:\\nGenerate method will switch to use generateVNext implementation September 16th, 2025. Please use generateLegacyHandler if you don't want to upgrade just yet.\",\n );\n return generateLegacyHandler({ mastra, ...args });\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<'generate'> & {\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.generate(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 generateVNextHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'generateVNext'> & {\n runtimeContext?: Record<string, unknown>;\n format?: 'mastra' | 'aisdk';\n };\n abortSignal?: AbortSignal;\n}): Promise<ReturnType<Agent['generateVNext']>> {\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.generateVNext(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 streamGenerateHandler({\n mastra,\n ...args\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'stream'> & {\n // @deprecated use resourceId\n resourceid?: string;\n runtimeContext?: string;\n };\n abortSignal?: AbortSignal;\n}) {\n const logger = mastra.getLogger();\n logger?.warn(\n \"Deprecation NOTICE:\\n Stream method will switch to use streamVNext implementation September 16th, 2025. Please use streamGenerateLegacyHandler if you don't want to upgrade just yet.\",\n );\n\n return streamGenerateLegacyHandler({ mastra, ...args });\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<'stream'> & {\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.stream(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 streamVNextGenerateHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'streamVNext'> & {\n runtimeContext?: string;\n format?: 'aisdk' | 'mastra';\n };\n abortSignal?: AbortSignal;\n}): ReturnType<Agent['streamVNext']> {\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.streamVNext(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 async function streamVNextUIMessageHandler({\n mastra,\n runtimeContext,\n agentId,\n body,\n abortSignal,\n}: Context & {\n runtimeContext: RuntimeContext;\n agentId: string;\n body: GetBody<'streamVNext'> & {\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 // 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.streamVNext(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: 'openai' | 'anthropic' | 'groq' | 'xai' | 'google';\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 agentModel = await agent.getModel();\n const modelVersion = agentModel.specificationVersion;\n\n const { modelId, provider } = body;\n\n const providerMap = {\n v1: {\n openai: openai(modelId),\n anthropic: anthropic(modelId),\n groq: groq(modelId),\n xai: xai(modelId),\n google: google(modelId),\n },\n v2: {\n openai: openaiV5(modelId),\n anthropic: anthropicV5(modelId),\n groq: groqV5(modelId),\n xai: xaiV5(modelId),\n google: googleV5(modelId),\n },\n };\n\n const modelVersionKey = modelVersion === 'v2' ? 'v2' : 'v1';\n\n let model = providerMap[modelVersionKey][provider];\n\n agent.__updateModel({ model });\n\n return { message: 'Agent model updated' };\n } catch (error) {\n return handleError(error, 'error updating agent model');\n }\n}\n"]}
@@ -0,0 +1,65 @@
1
+ import { handleError } from './chunk-CY4TP3FK.js';
2
+ import { HTTPException } from './chunk-MMROOK5J.js';
3
+ import { __export } from './chunk-G3PMV62Z.js';
4
+
5
+ // src/server/handlers/observability.ts
6
+ var observability_exports = {};
7
+ __export(observability_exports, {
8
+ getAITraceHandler: () => getAITraceHandler,
9
+ getAITracesPaginatedHandler: () => getAITracesPaginatedHandler
10
+ });
11
+ async function getAITraceHandler({ mastra, traceId }) {
12
+ try {
13
+ if (!traceId) {
14
+ throw new HTTPException(400, { message: "Trace ID is required" });
15
+ }
16
+ const storage = mastra.getStorage();
17
+ if (!storage) {
18
+ throw new HTTPException(500, { message: "Storage is not available" });
19
+ }
20
+ const trace = await storage.getAITrace(traceId);
21
+ if (!trace) {
22
+ throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });
23
+ }
24
+ return trace;
25
+ } catch (error) {
26
+ handleError(error, "Error getting AI trace");
27
+ }
28
+ }
29
+ async function getAITracesPaginatedHandler({ mastra, body }) {
30
+ try {
31
+ const storage = mastra.getStorage();
32
+ if (!storage) {
33
+ throw new HTTPException(500, { message: "Storage is not available" });
34
+ }
35
+ if (!body) {
36
+ throw new HTTPException(400, { message: "Request body is required" });
37
+ }
38
+ const { filters, pagination } = body;
39
+ if (pagination?.page && pagination.page < 0) {
40
+ throw new HTTPException(400, { message: "Page must be a non-negative integer" });
41
+ }
42
+ if (pagination?.perPage && pagination.perPage < 0) {
43
+ throw new HTTPException(400, { message: "Per page must be a non-negative integer" });
44
+ }
45
+ if (pagination?.dateRange) {
46
+ const { start, end } = pagination.dateRange;
47
+ if (start && !(start instanceof Date)) {
48
+ throw new HTTPException(400, { message: "Invalid date format in date range" });
49
+ }
50
+ if (end && !(end instanceof Date)) {
51
+ throw new HTTPException(400, { message: "Invalid date format in date range" });
52
+ }
53
+ }
54
+ return storage.getAITracesPaginated({
55
+ pagination,
56
+ filters
57
+ });
58
+ } catch (error) {
59
+ handleError(error, "Error getting AI traces paginated");
60
+ }
61
+ }
62
+
63
+ export { getAITraceHandler, getAITracesPaginatedHandler, observability_exports };
64
+ //# sourceMappingURL=chunk-R7NOGUZG.js.map
65
+ //# sourceMappingURL=chunk-R7NOGUZG.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/observability.ts"],"names":[],"mappings":";;;;;AAAA,IAAA,qBAAA,GAAA;AAAA,QAAA,CAAA,qBAAA,EAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,2BAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAeA,eAAsB,iBAAA,CAAkB,EAAE,MAAA,EAAQ,OAAA,EAAQ,EAA+C;AACvG,EAAA,IAAI;AACF,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,wBAAwB,CAAA;AAAA,IAClE;AAEA,IAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,IACtE;AAEA,IAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,CAAQ,UAAA,CAAW,OAAO,CAAA;AAE9C,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,eAAA,EAAkB,OAAO,eAAe,CAAA;AAAA,IAClF;AAEA,IAAA,OAAO,KAAA;AAAA,EACT,SAAS,KAAA,EAAO;AACd,IAAA,WAAA,CAAY,OAAO,wBAAwB,CAAA;AAAA,EAC7C;AACF;AAMA,eAAsB,2BAAA,CAA4B,EAAE,MAAA,EAAQ,IAAA,EAAK,EAAyB;AACxF,EAAA,IAAI;AACF,IAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,IAAA,IAAI,CAAC,OAAA,EAAS;AACZ,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,IACtE;AAEA,IAAA,IAAI,CAAC,IAAA,EAAM;AACT,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,IACtE;AAEA,IAAA,MAAM,EAAE,OAAA,EAAS,UAAA,EAAW,GAAI,IAAA;AAEhC,IAAA,IAAI,UAAA,EAAY,IAAA,IAAQ,UAAA,CAAW,IAAA,GAAO,CAAA,EAAG;AAC3C,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,uCAAuC,CAAA;AAAA,IACjF;AAEA,IAAA,IAAI,UAAA,EAAY,OAAA,IAAW,UAAA,CAAW,OAAA,GAAU,CAAA,EAAG;AACjD,MAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,2CAA2C,CAAA;AAAA,IACrF;AAEA,IAAA,IAAI,YAAY,SAAA,EAAW;AACzB,MAAA,MAAM,EAAE,KAAA,EAAO,GAAA,EAAI,GAAI,UAAA,CAAW,SAAA;AAElC,MAAA,IAAI,KAAA,IAAS,EAAE,KAAA,YAAiB,IAAA,CAAA,EAAO;AACrC,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,qCAAqC,CAAA;AAAA,MAC/E;AAEA,MAAA,IAAI,GAAA,IAAO,EAAE,GAAA,YAAe,IAAA,CAAA,EAAO;AACjC,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,qCAAqC,CAAA;AAAA,MAC/E;AAAA,IACF;AAEA,IAAA,OAAO,QAAQ,oBAAA,CAAqB;AAAA,MAClC,UAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH,SAAS,KAAA,EAAO;AACd,IAAA,WAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,EACxD;AACF","file":"chunk-R7NOGUZG.js","sourcesContent":["import type { AITracesPaginatedArg } from '@mastra/core';\nimport { HTTPException } from '../http-exception';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\n\ninterface ObservabilityContext extends Context {\n traceId?: string;\n body?: AITracesPaginatedArg;\n}\n\n/**\n * Get a complete AI trace by trace ID\n * Returns all spans in the trace with their parent-child relationships\n */\nexport async function getAITraceHandler({ mastra, traceId }: ObservabilityContext & { traceId: string }) {\n try {\n if (!traceId) {\n throw new HTTPException(400, { message: 'Trace ID is required' });\n }\n\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n const trace = await storage.getAITrace(traceId);\n\n if (!trace) {\n throw new HTTPException(404, { message: `Trace with ID '${traceId}' not found` });\n }\n\n return trace;\n } catch (error) {\n handleError(error, 'Error getting AI trace');\n }\n}\n\n/**\n * Get paginated AI traces with filtering and pagination\n * Returns only root spans (parent spans) for pagination, not child spans\n */\nexport async function getAITracesPaginatedHandler({ mastra, body }: ObservabilityContext) {\n try {\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n\n if (!body) {\n throw new HTTPException(400, { message: 'Request body is required' });\n }\n\n const { filters, pagination } = body;\n\n if (pagination?.page && pagination.page < 0) {\n throw new HTTPException(400, { message: 'Page must be a non-negative integer' });\n }\n\n if (pagination?.perPage && pagination.perPage < 0) {\n throw new HTTPException(400, { message: 'Per page must be a non-negative integer' });\n }\n\n if (pagination?.dateRange) {\n const { start, end } = pagination.dateRange;\n\n if (start && !(start instanceof Date)) {\n throw new HTTPException(400, { message: 'Invalid date format in date range' });\n }\n\n if (end && !(end instanceof Date)) {\n throw new HTTPException(400, { message: 'Invalid date format in date range' });\n }\n }\n\n return storage.getAITracesPaginated({\n pagination,\n filters,\n });\n } catch (error) {\n handleError(error, 'Error getting AI traces paginated');\n }\n}\n"]}