@mastra/server 0.0.0-remove-cloud-span-transform-20250425214156 → 0.0.0-remove-unused-model-providers-api-20251030210744

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 (268) hide show
  1. package/CHANGELOG.md +4230 -0
  2. package/LICENSE.md +11 -42
  3. package/README.md +45 -137
  4. package/dist/chunk-2PLXW4ZX.cjs +2777 -0
  5. package/dist/chunk-2PLXW4ZX.cjs.map +1 -0
  6. package/dist/chunk-2S4IMB6E.cjs +130 -0
  7. package/dist/chunk-2S4IMB6E.cjs.map +1 -0
  8. package/dist/{chunk-5JNVY6DU.js → chunk-2XD2KQEK.js} +57 -17
  9. package/dist/chunk-2XD2KQEK.js.map +1 -0
  10. package/dist/chunk-36CWLQQT.js +192 -0
  11. package/dist/chunk-36CWLQQT.js.map +1 -0
  12. package/dist/chunk-4BKR6543.cjs +19504 -0
  13. package/dist/chunk-4BKR6543.cjs.map +1 -0
  14. package/dist/{chunk-L7XE5QTW.js → chunk-4QCXUEAT.js} +11 -2
  15. package/dist/chunk-4QCXUEAT.js.map +1 -0
  16. package/dist/chunk-4YFT3JFJ.js +19463 -0
  17. package/dist/chunk-4YFT3JFJ.js.map +1 -0
  18. package/dist/chunk-6562SOHJ.js +130 -0
  19. package/dist/chunk-6562SOHJ.js.map +1 -0
  20. package/dist/chunk-6IGZKIRM.cjs +200 -0
  21. package/dist/chunk-6IGZKIRM.cjs.map +1 -0
  22. package/dist/{chunk-Q6SHQECN.js → chunk-74ZF4DII.js} +47 -13
  23. package/dist/chunk-74ZF4DII.js.map +1 -0
  24. package/dist/chunk-7KNKINQE.js +83 -0
  25. package/dist/chunk-7KNKINQE.js.map +1 -0
  26. package/dist/chunk-7MCHFMDF.js +665 -0
  27. package/dist/chunk-7MCHFMDF.js.map +1 -0
  28. package/dist/{chunk-FV45V6WC.cjs → chunk-7NADHFD2.cjs} +3 -7
  29. package/dist/chunk-7NADHFD2.cjs.map +1 -0
  30. package/dist/chunk-7YHMDEQ6.cjs +128 -0
  31. package/dist/chunk-7YHMDEQ6.cjs.map +1 -0
  32. package/dist/chunk-BATEJLED.js +124 -0
  33. package/dist/chunk-BATEJLED.js.map +1 -0
  34. package/dist/chunk-BMOVKZO7.cjs +167 -0
  35. package/dist/chunk-BMOVKZO7.cjs.map +1 -0
  36. package/dist/chunk-CXVOX4WB.js +508 -0
  37. package/dist/chunk-CXVOX4WB.js.map +1 -0
  38. package/dist/chunk-CY4TP3FK.js +16 -0
  39. package/dist/chunk-CY4TP3FK.js.map +1 -0
  40. package/dist/{chunk-M56ECCHK.cjs → chunk-EP3JQDPD.cjs} +22 -19
  41. package/dist/chunk-EP3JQDPD.cjs.map +1 -0
  42. package/dist/chunk-G4PUALCE.cjs +28 -0
  43. package/dist/chunk-G4PUALCE.cjs.map +1 -0
  44. package/dist/chunk-GQRJOUV7.js +797 -0
  45. package/dist/chunk-GQRJOUV7.js.map +1 -0
  46. package/dist/chunk-HLIRV42R.cjs +685 -0
  47. package/dist/chunk-HLIRV42R.cjs.map +1 -0
  48. package/dist/chunk-LPM6BBAX.cjs +1043 -0
  49. package/dist/chunk-LPM6BBAX.cjs.map +1 -0
  50. package/dist/chunk-LROVQBIB.cjs +524 -0
  51. package/dist/chunk-LROVQBIB.cjs.map +1 -0
  52. package/dist/chunk-LZKJT7QP.cjs +799 -0
  53. package/dist/chunk-LZKJT7QP.cjs.map +1 -0
  54. package/dist/{chunk-TRDNDNGQ.js → chunk-MMROOK5J.js} +4 -7
  55. package/dist/chunk-MMROOK5J.js.map +1 -0
  56. package/dist/{chunk-4JINXASC.js → chunk-MYR4PVGN.js} +7 -4
  57. package/dist/chunk-MYR4PVGN.js.map +1 -0
  58. package/dist/chunk-O7I5CWRX.cjs +44 -0
  59. package/dist/chunk-O7I5CWRX.cjs.map +1 -0
  60. package/dist/chunk-OEW3R7V4.js +477 -0
  61. package/dist/chunk-OEW3R7V4.js.map +1 -0
  62. package/dist/chunk-PR4QN5HX.js +39 -0
  63. package/dist/chunk-PR4QN5HX.js.map +1 -0
  64. package/dist/chunk-PUYDRTPG.cjs +720 -0
  65. package/dist/chunk-PUYDRTPG.cjs.map +1 -0
  66. package/dist/chunk-QU6N55W6.cjs +256 -0
  67. package/dist/chunk-QU6N55W6.cjs.map +1 -0
  68. package/dist/chunk-RE4RPXT2.cjs +18 -0
  69. package/dist/chunk-RE4RPXT2.cjs.map +1 -0
  70. package/dist/chunk-RQK4FQUD.js +1012 -0
  71. package/dist/chunk-RQK4FQUD.js.map +1 -0
  72. package/dist/chunk-S4IOWSI3.js +698 -0
  73. package/dist/chunk-S4IOWSI3.js.map +1 -0
  74. package/dist/chunk-SED4H2GJ.cjs +485 -0
  75. package/dist/chunk-SED4H2GJ.cjs.map +1 -0
  76. package/dist/chunk-SHWNNZBL.js +254 -0
  77. package/dist/chunk-SHWNNZBL.js.map +1 -0
  78. package/dist/chunk-TOCYBDP2.js +46 -0
  79. package/dist/chunk-TOCYBDP2.js.map +1 -0
  80. package/dist/chunk-WH5RPLO4.cjs +88 -0
  81. package/dist/chunk-WH5RPLO4.cjs.map +1 -0
  82. package/dist/chunk-X6C7BUWN.cjs +48 -0
  83. package/dist/chunk-X6C7BUWN.cjs.map +1 -0
  84. package/dist/chunk-YNGDJJOH.cjs +134 -0
  85. package/dist/chunk-YNGDJJOH.cjs.map +1 -0
  86. package/dist/chunk-ZULZ2752.js +2774 -0
  87. package/dist/chunk-ZULZ2752.js.map +1 -0
  88. package/dist/dist-4MVGNSRL.cjs +1150 -0
  89. package/dist/dist-4MVGNSRL.cjs.map +1 -0
  90. package/dist/dist-FZYCV3VB.cjs +940 -0
  91. package/dist/dist-FZYCV3VB.cjs.map +1 -0
  92. package/dist/dist-G2BYZJOC.cjs +928 -0
  93. package/dist/dist-G2BYZJOC.cjs.map +1 -0
  94. package/dist/dist-P4MXBQ3U.cjs +16 -0
  95. package/dist/dist-P4MXBQ3U.cjs.map +1 -0
  96. package/dist/dist-PQZUVLPC.js +937 -0
  97. package/dist/dist-PQZUVLPC.js.map +1 -0
  98. package/dist/dist-R7WYX6LC.js +925 -0
  99. package/dist/dist-R7WYX6LC.js.map +1 -0
  100. package/dist/dist-RFMYFILX.cjs +764 -0
  101. package/dist/dist-RFMYFILX.cjs.map +1 -0
  102. package/dist/dist-X7XR3M3Z.js +1147 -0
  103. package/dist/dist-X7XR3M3Z.js.map +1 -0
  104. package/dist/dist-XVBSOGFK.js +761 -0
  105. package/dist/dist-XVBSOGFK.js.map +1 -0
  106. package/dist/dist-YREX2TJT.js +3 -0
  107. package/dist/dist-YREX2TJT.js.map +1 -0
  108. package/dist/index.cjs +6 -0
  109. package/dist/index.cjs.map +1 -0
  110. package/dist/index.d.ts +1 -0
  111. package/dist/index.d.ts.map +1 -0
  112. package/dist/index.js +5 -0
  113. package/dist/index.js.map +1 -0
  114. package/dist/server/a2a/protocol.d.ts +8 -0
  115. package/dist/server/a2a/protocol.d.ts.map +1 -0
  116. package/dist/server/a2a/store.cjs +25 -0
  117. package/dist/server/a2a/store.cjs.map +1 -0
  118. package/dist/server/a2a/store.d.ts +14 -0
  119. package/dist/server/a2a/store.d.ts.map +1 -0
  120. package/dist/server/a2a/store.js +23 -0
  121. package/dist/server/a2a/store.js.map +1 -0
  122. package/dist/server/a2a/tasks.d.ts +20 -0
  123. package/dist/server/a2a/tasks.d.ts.map +1 -0
  124. package/dist/server/handlers/a2a.cjs +32 -0
  125. package/dist/server/handlers/a2a.cjs.map +1 -0
  126. package/dist/server/handlers/a2a.d.ts +68 -0
  127. package/dist/server/handlers/a2a.d.ts.map +1 -0
  128. package/dist/server/handlers/a2a.js +3 -0
  129. package/dist/server/handlers/a2a.js.map +1 -0
  130. package/dist/server/handlers/agent-builder.cjs +88 -0
  131. package/dist/server/handlers/agent-builder.cjs.map +1 -0
  132. package/dist/server/handlers/agent-builder.d.ts +110 -0
  133. package/dist/server/handlers/agent-builder.d.ts.map +1 -0
  134. package/dist/server/handlers/agent-builder.js +3 -0
  135. package/dist/server/handlers/agent-builder.js.map +1 -0
  136. package/dist/server/handlers/agents.cjs +60 -10
  137. package/dist/server/handlers/agents.cjs.map +1 -0
  138. package/dist/server/handlers/agents.d.ts +195 -6
  139. package/dist/server/handlers/agents.d.ts.map +1 -0
  140. package/dist/server/handlers/agents.js +3 -1
  141. package/dist/server/handlers/agents.js.map +1 -0
  142. package/dist/server/handlers/error.cjs +4 -2
  143. package/dist/server/handlers/error.cjs.map +1 -0
  144. package/dist/server/handlers/error.d.ts +2 -1
  145. package/dist/server/handlers/error.d.ts.map +1 -0
  146. package/dist/server/handlers/error.js +3 -1
  147. package/dist/server/handlers/error.js.map +1 -0
  148. package/dist/server/handlers/logs.cjs +9 -7
  149. package/dist/server/handlers/logs.cjs.map +1 -0
  150. package/dist/server/handlers/logs.d.ts +34 -3
  151. package/dist/server/handlers/logs.d.ts.map +1 -0
  152. package/dist/server/handlers/logs.js +3 -1
  153. package/dist/server/handlers/logs.js.map +1 -0
  154. package/dist/server/handlers/memory.cjs +36 -10
  155. package/dist/server/handlers/memory.cjs.map +1 -0
  156. package/dist/server/handlers/memory.d.ts +115 -8
  157. package/dist/server/handlers/memory.d.ts.map +1 -0
  158. package/dist/server/handlers/memory.js +3 -1
  159. package/dist/server/handlers/memory.js.map +1 -0
  160. package/dist/server/handlers/observability.cjs +24 -0
  161. package/dist/server/handlers/observability.cjs.map +1 -0
  162. package/dist/server/handlers/observability.d.ts +49 -0
  163. package/dist/server/handlers/observability.d.ts.map +1 -0
  164. package/dist/server/handlers/observability.js +3 -0
  165. package/dist/server/handlers/observability.js.map +1 -0
  166. package/dist/server/handlers/scores.cjs +32 -0
  167. package/dist/server/handlers/scores.cjs.map +1 -0
  168. package/dist/server/handlers/scores.d.ts +152 -0
  169. package/dist/server/handlers/scores.d.ts.map +1 -0
  170. package/dist/server/handlers/scores.js +3 -0
  171. package/dist/server/handlers/scores.js.map +1 -0
  172. package/dist/server/handlers/tools.cjs +12 -6
  173. package/dist/server/handlers/tools.cjs.map +1 -0
  174. package/dist/server/handlers/tools.d.ts +25 -4
  175. package/dist/server/handlers/tools.d.ts.map +1 -0
  176. package/dist/server/handlers/tools.js +3 -1
  177. package/dist/server/handlers/tools.js.map +1 -0
  178. package/dist/server/handlers/utils.cjs +8 -2
  179. package/dist/server/handlers/utils.cjs.map +1 -0
  180. package/dist/server/handlers/utils.d.ts +8 -1
  181. package/dist/server/handlers/utils.d.ts.map +1 -0
  182. package/dist/server/handlers/utils.js +3 -1
  183. package/dist/server/handlers/utils.js.map +1 -0
  184. package/dist/server/handlers/vector.cjs +9 -7
  185. package/dist/server/handlers/vector.cjs.map +1 -0
  186. package/dist/server/handlers/vector.d.ts +51 -6
  187. package/dist/server/handlers/vector.d.ts.map +1 -0
  188. package/dist/server/handlers/vector.js +3 -1
  189. package/dist/server/handlers/vector.js.map +1 -0
  190. package/dist/server/handlers/voice.cjs +10 -4
  191. package/dist/server/handlers/voice.cjs.map +1 -0
  192. package/dist/server/handlers/voice.d.ts +41 -3
  193. package/dist/server/handlers/voice.d.ts.map +1 -0
  194. package/dist/server/handlers/voice.js +3 -1
  195. package/dist/server/handlers/voice.js.map +1 -0
  196. package/dist/server/handlers/workflows.cjs +57 -15
  197. package/dist/server/handlers/workflows.cjs.map +1 -0
  198. package/dist/server/handlers/workflows.d.ts +97 -10
  199. package/dist/server/handlers/workflows.d.ts.map +1 -0
  200. package/dist/server/handlers/workflows.js +3 -1
  201. package/dist/server/handlers/workflows.js.map +1 -0
  202. package/dist/server/handlers.cjs +37 -30
  203. package/dist/server/handlers.cjs.map +1 -0
  204. package/dist/server/handlers.d.ts +12 -10
  205. package/dist/server/handlers.d.ts.map +1 -0
  206. package/dist/server/handlers.js +13 -10
  207. package/dist/server/handlers.js.map +1 -0
  208. package/dist/server/http-exception.d.ts +87 -0
  209. package/dist/server/http-exception.d.ts.map +1 -0
  210. package/dist/server/types.d.ts +10 -0
  211. package/dist/server/types.d.ts.map +1 -0
  212. package/dist/server/utils.d.ts +44 -0
  213. package/dist/server/utils.d.ts.map +1 -0
  214. package/dist/token-375W3LEI.cjs +64 -0
  215. package/dist/token-375W3LEI.cjs.map +1 -0
  216. package/dist/token-C3IMNCC4.js +62 -0
  217. package/dist/token-C3IMNCC4.js.map +1 -0
  218. package/dist/token-util-CV3RRG6K.cjs +9 -0
  219. package/dist/token-util-CV3RRG6K.cjs.map +1 -0
  220. package/dist/token-util-E5QO2RCL.js +7 -0
  221. package/dist/token-util-E5QO2RCL.js.map +1 -0
  222. package/package.json +43 -19
  223. package/dist/_tsup-dts-rollup.d.cts +0 -648
  224. package/dist/_tsup-dts-rollup.d.ts +0 -648
  225. package/dist/chunk-2FJURXCL.cjs +0 -213
  226. package/dist/chunk-3AHQ5RGN.js +0 -11
  227. package/dist/chunk-3EJZQ6TQ.js +0 -49
  228. package/dist/chunk-55HTWX4C.cjs +0 -93
  229. package/dist/chunk-5SWCVTNL.cjs +0 -5579
  230. package/dist/chunk-7IWQE76Z.cjs +0 -139
  231. package/dist/chunk-B66WVPGJ.js +0 -297
  232. package/dist/chunk-D3G23FP3.cjs +0 -126
  233. package/dist/chunk-FPIWDH5Y.cjs +0 -126
  234. package/dist/chunk-HCOPJZ4A.cjs +0 -164
  235. package/dist/chunk-LFOBHRFO.js +0 -305
  236. package/dist/chunk-OMN3UI6X.js +0 -5576
  237. package/dist/chunk-QN4KF3BH.cjs +0 -18
  238. package/dist/chunk-R4J7XQYU.js +0 -156
  239. package/dist/chunk-RBQASTUP.js +0 -203
  240. package/dist/chunk-RE6YL32K.js +0 -120
  241. package/dist/chunk-SKBVVI24.cjs +0 -54
  242. package/dist/chunk-TZK63M5N.cjs +0 -317
  243. package/dist/chunk-WTHDCRMY.js +0 -135
  244. package/dist/chunk-ZHNKYTNS.cjs +0 -309
  245. package/dist/chunk-ZLBRQFDD.cjs +0 -13
  246. package/dist/index.d.cts +0 -1
  247. package/dist/server/handlers/agents.d.cts +0 -6
  248. package/dist/server/handlers/error.d.cts +0 -1
  249. package/dist/server/handlers/logs.d.cts +0 -3
  250. package/dist/server/handlers/memory.d.cts +0 -8
  251. package/dist/server/handlers/network.cjs +0 -22
  252. package/dist/server/handlers/network.d.cts +0 -4
  253. package/dist/server/handlers/network.d.ts +0 -4
  254. package/dist/server/handlers/network.js +0 -1
  255. package/dist/server/handlers/telemetry.cjs +0 -14
  256. package/dist/server/handlers/telemetry.d.cts +0 -2
  257. package/dist/server/handlers/telemetry.d.ts +0 -2
  258. package/dist/server/handlers/telemetry.js +0 -1
  259. package/dist/server/handlers/tools.d.cts +0 -4
  260. package/dist/server/handlers/utils.d.cts +0 -1
  261. package/dist/server/handlers/vNextWorkflows.cjs +0 -46
  262. package/dist/server/handlers/vNextWorkflows.d.cts +0 -10
  263. package/dist/server/handlers/vNextWorkflows.d.ts +0 -10
  264. package/dist/server/handlers/vNextWorkflows.js +0 -1
  265. package/dist/server/handlers/vector.d.cts +0 -6
  266. package/dist/server/handlers/voice.d.cts +0 -3
  267. package/dist/server/handlers/workflows.d.cts +0 -10
  268. package/dist/server/handlers.d.cts +0 -10
@@ -0,0 +1,665 @@
1
+ import { stringify } from './chunk-GQRJOUV7.js';
2
+ import { sanitizeBody, validateBody } from './chunk-4QCXUEAT.js';
3
+ import { handleError } from './chunk-CY4TP3FK.js';
4
+ import { HTTPException } from './chunk-MMROOK5J.js';
5
+ import { __export } from './chunk-PR4QN5HX.js';
6
+ import { PROVIDER_REGISTRY } from '@mastra/core/llm';
7
+ import { RequestContext } from '@mastra/core/request-context';
8
+ import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';
9
+
10
+ // src/server/handlers/agents.ts
11
+ var agents_exports = {};
12
+ __export(agents_exports, {
13
+ approveToolCallHandler: () => approveToolCallHandler,
14
+ declineToolCallHandler: () => declineToolCallHandler,
15
+ generateHandler: () => generateHandler,
16
+ generateLegacyHandler: () => generateLegacyHandler,
17
+ getAgentByIdHandler: () => getAgentByIdHandler,
18
+ getAgentFromSystem: () => getAgentFromSystem,
19
+ getProvidersHandler: () => getProvidersHandler,
20
+ getSerializedAgentTools: () => getSerializedAgentTools,
21
+ getSerializedProcessors: () => getSerializedProcessors,
22
+ listAgentsHandler: () => listAgentsHandler,
23
+ reorderAgentModelListHandler: () => reorderAgentModelListHandler,
24
+ resetAgentModelHandler: () => resetAgentModelHandler,
25
+ streamGenerateHandler: () => streamGenerateHandler,
26
+ streamGenerateLegacyHandler: () => streamGenerateLegacyHandler,
27
+ streamNetworkHandler: () => streamNetworkHandler,
28
+ streamUIMessageHandler: () => streamUIMessageHandler,
29
+ updateAgentModelHandler: () => updateAgentModelHandler,
30
+ updateAgentModelInModelListHandler: () => updateAgentModelInModelListHandler
31
+ });
32
+ async function getSerializedAgentTools(tools) {
33
+ return Object.entries(tools || {}).reduce((acc, [key, tool]) => {
34
+ const _tool = tool;
35
+ const toolId = _tool.id ?? `tool-${key}`;
36
+ let inputSchemaForReturn = void 0;
37
+ let outputSchemaForReturn = void 0;
38
+ try {
39
+ if (_tool.inputSchema) {
40
+ if (_tool.inputSchema && typeof _tool.inputSchema === "object" && "jsonSchema" in _tool.inputSchema) {
41
+ inputSchemaForReturn = stringify(_tool.inputSchema.jsonSchema);
42
+ } else if (typeof _tool.inputSchema === "function") {
43
+ const inputSchema = _tool.inputSchema();
44
+ if (inputSchema && inputSchema.jsonSchema) {
45
+ inputSchemaForReturn = stringify(inputSchema.jsonSchema);
46
+ }
47
+ } else if (_tool.inputSchema) {
48
+ inputSchemaForReturn = stringify(zodToJsonSchema(_tool.inputSchema));
49
+ }
50
+ }
51
+ if (_tool.outputSchema) {
52
+ if (_tool.outputSchema && typeof _tool.outputSchema === "object" && "jsonSchema" in _tool.outputSchema) {
53
+ outputSchemaForReturn = stringify(_tool.outputSchema.jsonSchema);
54
+ } else if (typeof _tool.outputSchema === "function") {
55
+ const outputSchema = _tool.outputSchema();
56
+ if (outputSchema && outputSchema.jsonSchema) {
57
+ outputSchemaForReturn = stringify(outputSchema.jsonSchema);
58
+ }
59
+ } else if (_tool.outputSchema) {
60
+ outputSchemaForReturn = stringify(
61
+ zodToJsonSchema(_tool.outputSchema)
62
+ );
63
+ }
64
+ }
65
+ } catch (error) {
66
+ console.error(`Error getting serialized tool`, {
67
+ toolId: _tool.id,
68
+ error
69
+ });
70
+ }
71
+ acc[key] = {
72
+ ..._tool,
73
+ id: toolId,
74
+ inputSchema: inputSchemaForReturn,
75
+ outputSchema: outputSchemaForReturn
76
+ };
77
+ return acc;
78
+ }, {});
79
+ }
80
+ function getSerializedProcessors(processors) {
81
+ return processors.map((processor) => {
82
+ return {
83
+ name: processor.name || processor.constructor.name
84
+ };
85
+ });
86
+ }
87
+ async function getSerializedAgentDefinition({
88
+ agent,
89
+ requestContext
90
+ }) {
91
+ let serializedAgentAgents = {};
92
+ if ("listAgents" in agent) {
93
+ const agents = await agent.listAgents({ requestContext });
94
+ serializedAgentAgents = Object.entries(agents || {}).reduce(
95
+ (acc, [key, agent2]) => {
96
+ return {
97
+ ...acc,
98
+ [key]: { id: agent2.id, name: agent2.name }
99
+ };
100
+ },
101
+ {}
102
+ );
103
+ }
104
+ return serializedAgentAgents;
105
+ }
106
+ async function formatAgentList({
107
+ id,
108
+ mastra,
109
+ agent,
110
+ requestContext
111
+ }) {
112
+ const instructions = await agent.getInstructions({ requestContext });
113
+ const tools = await agent.listTools({ requestContext });
114
+ const llm = await agent.getLLM({ requestContext });
115
+ const defaultGenerateOptions = await agent.getDefaultGenerateOptionsLegacy({ requestContext });
116
+ const defaultStreamOptions = await agent.getDefaultStreamOptionsLegacy({ requestContext });
117
+ const serializedAgentTools = await getSerializedAgentTools(tools);
118
+ let serializedAgentWorkflows = {};
119
+ if ("listWorkflows" in agent) {
120
+ const logger = mastra.getLogger();
121
+ try {
122
+ const workflows = await agent.listWorkflows({ requestContext });
123
+ serializedAgentWorkflows = Object.entries(workflows || {}).reduce((acc, [key, workflow]) => {
124
+ return {
125
+ ...acc,
126
+ [key]: {
127
+ name: workflow.name || "Unnamed workflow"
128
+ }
129
+ };
130
+ }, {});
131
+ } catch (error) {
132
+ logger.error("Error getting workflows for agent", { agentName: agent.name, error });
133
+ }
134
+ }
135
+ const serializedAgentAgents = await getSerializedAgentDefinition({ agent, requestContext });
136
+ const inputProcessors = await agent.getInputProcessors(requestContext);
137
+ const outputProcessors = await agent.getOutputProcessors(requestContext);
138
+ const serializedInputProcessors = getSerializedProcessors(inputProcessors);
139
+ const serializedOutputProcessors = getSerializedProcessors(outputProcessors);
140
+ const model = llm?.getModel();
141
+ const models = await agent.getModelList(requestContext);
142
+ const modelList = models?.map((md) => ({
143
+ ...md,
144
+ model: {
145
+ modelId: md.model.modelId,
146
+ provider: md.model.provider,
147
+ modelVersion: md.model.specificationVersion
148
+ }
149
+ }));
150
+ return {
151
+ id,
152
+ name: agent.name,
153
+ instructions,
154
+ agents: serializedAgentAgents,
155
+ tools: serializedAgentTools,
156
+ workflows: serializedAgentWorkflows,
157
+ inputProcessors: serializedInputProcessors,
158
+ outputProcessors: serializedOutputProcessors,
159
+ provider: llm?.getProvider(),
160
+ modelId: llm?.getModelId(),
161
+ modelVersion: model?.specificationVersion,
162
+ defaultGenerateOptions,
163
+ defaultStreamOptions,
164
+ modelList
165
+ };
166
+ }
167
+ async function getAgentFromSystem({ mastra, agentId }) {
168
+ const logger = mastra.getLogger();
169
+ if (!agentId) {
170
+ throw new HTTPException(400, { message: "Agent ID is required" });
171
+ }
172
+ let agent;
173
+ try {
174
+ agent = mastra.getAgent(agentId);
175
+ } catch (error) {
176
+ logger.debug("Error getting agent from mastra, searching agents for agent", error);
177
+ }
178
+ if (!agent) {
179
+ logger.debug(`Agent ${agentId} not found, looking through sub-agents`);
180
+ const agents = mastra.listAgents();
181
+ if (Object.keys(agents || {}).length) {
182
+ for (const [_, ag] of Object.entries(agents)) {
183
+ try {
184
+ const subAgents = await ag.listAgents();
185
+ if (subAgents[agentId]) {
186
+ agent = subAgents[agentId];
187
+ break;
188
+ }
189
+ } catch (error) {
190
+ logger.debug("Error getting agent from agent", error);
191
+ }
192
+ }
193
+ }
194
+ }
195
+ if (!agent) {
196
+ throw new HTTPException(404, { message: `Agent with name ${agentId} not found` });
197
+ }
198
+ return agent;
199
+ }
200
+ async function listAgentsHandler({
201
+ mastra,
202
+ requestContext
203
+ }) {
204
+ try {
205
+ const agents = mastra.listAgents();
206
+ const serializedAgentsMap = await Promise.all(
207
+ Object.entries(agents).map(async ([id, agent]) => {
208
+ return formatAgentList({ id, mastra, agent, requestContext });
209
+ })
210
+ );
211
+ const serializedAgents = serializedAgentsMap.reduce((acc, { id, ...rest }) => {
212
+ acc[id] = rest;
213
+ return acc;
214
+ }, {});
215
+ return serializedAgents;
216
+ } catch (error) {
217
+ return handleError(error, "Error getting agents");
218
+ }
219
+ }
220
+ async function formatAgent({
221
+ mastra,
222
+ agent,
223
+ requestContext,
224
+ isPlayground
225
+ }) {
226
+ const tools = await agent.listTools({ requestContext });
227
+ const serializedAgentTools = await getSerializedAgentTools(tools);
228
+ let serializedAgentWorkflows = {};
229
+ if ("listWorkflows" in agent) {
230
+ const logger = mastra.getLogger();
231
+ try {
232
+ const workflows = await agent.listWorkflows({ requestContext });
233
+ serializedAgentWorkflows = Object.entries(workflows || {}).reduce((acc, [key, workflow]) => {
234
+ return {
235
+ ...acc,
236
+ [key]: {
237
+ name: workflow.name || "Unnamed workflow",
238
+ steps: Object.entries(workflow.steps).reduce(
239
+ (acc2, [key2, step]) => {
240
+ return {
241
+ ...acc2,
242
+ [key2]: {
243
+ id: step.id,
244
+ description: step.description
245
+ }
246
+ };
247
+ },
248
+ {}
249
+ )
250
+ }
251
+ };
252
+ }, {});
253
+ } catch (error) {
254
+ logger.error("Error getting workflows for agent", { agentName: agent.name, error });
255
+ }
256
+ }
257
+ let proxyRequestContext = requestContext;
258
+ if (isPlayground) {
259
+ proxyRequestContext = new Proxy(requestContext, {
260
+ get(target, prop) {
261
+ if (prop === "get") {
262
+ return function(key) {
263
+ const value = target.get(key);
264
+ return value ?? `<${key}>`;
265
+ };
266
+ }
267
+ return Reflect.get(target, prop);
268
+ }
269
+ });
270
+ }
271
+ const instructions = await agent.getInstructions({ requestContext: proxyRequestContext });
272
+ const llm = await agent.getLLM({ requestContext });
273
+ const defaultGenerateOptions = await agent.getDefaultGenerateOptionsLegacy({ requestContext: proxyRequestContext });
274
+ const defaultStreamOptions = await agent.getDefaultStreamOptionsLegacy({ requestContext: proxyRequestContext });
275
+ const model = llm?.getModel();
276
+ const models = await agent.getModelList(requestContext);
277
+ const modelList = models?.map((md) => ({
278
+ ...md,
279
+ model: {
280
+ modelId: md.model.modelId,
281
+ provider: md.model.provider,
282
+ modelVersion: md.model.specificationVersion
283
+ }
284
+ }));
285
+ const serializedAgentAgents = await getSerializedAgentDefinition({ agent, requestContext: proxyRequestContext });
286
+ const inputProcessors = await agent.getInputProcessors(proxyRequestContext);
287
+ const outputProcessors = await agent.getOutputProcessors(proxyRequestContext);
288
+ const serializedInputProcessors = getSerializedProcessors(inputProcessors);
289
+ const serializedOutputProcessors = getSerializedProcessors(outputProcessors);
290
+ return {
291
+ name: agent.name,
292
+ instructions,
293
+ tools: serializedAgentTools,
294
+ agents: serializedAgentAgents,
295
+ workflows: serializedAgentWorkflows,
296
+ inputProcessors: serializedInputProcessors,
297
+ outputProcessors: serializedOutputProcessors,
298
+ provider: llm?.getProvider(),
299
+ modelId: llm?.getModelId(),
300
+ modelVersion: model?.specificationVersion,
301
+ modelList,
302
+ defaultGenerateOptions,
303
+ defaultStreamOptions
304
+ };
305
+ }
306
+ async function getAgentByIdHandler({
307
+ mastra,
308
+ requestContext,
309
+ agentId,
310
+ isPlayground = false
311
+ }) {
312
+ try {
313
+ const agent = await getAgentFromSystem({ mastra, agentId });
314
+ return formatAgent({ mastra, agent, requestContext, isPlayground });
315
+ } catch (error) {
316
+ return handleError(error, "Error getting agent");
317
+ }
318
+ }
319
+ async function generateLegacyHandler({
320
+ mastra,
321
+ requestContext,
322
+ agentId,
323
+ body,
324
+ abortSignal
325
+ }) {
326
+ try {
327
+ const agent = await getAgentFromSystem({ mastra, agentId });
328
+ sanitizeBody(body, ["tools"]);
329
+ const { messages, resourceId, resourceid, requestContext: agentRequestContext, ...rest } = body;
330
+ const finalResourceId = resourceId ?? resourceid;
331
+ const finalRequestContext = new RequestContext([
332
+ ...Array.from(requestContext.entries()),
333
+ ...Array.from(Object.entries(agentRequestContext ?? {}))
334
+ ]);
335
+ validateBody({ messages });
336
+ const result = await agent.generateLegacy(messages, {
337
+ ...rest,
338
+ abortSignal,
339
+ // @ts-expect-error TODO fix types
340
+ resourceId: finalResourceId,
341
+ requestContext: finalRequestContext
342
+ });
343
+ return result;
344
+ } catch (error) {
345
+ return handleError(error, "Error generating from agent");
346
+ }
347
+ }
348
+ async function generateHandler({
349
+ mastra,
350
+ requestContext,
351
+ agentId,
352
+ body,
353
+ abortSignal
354
+ }) {
355
+ try {
356
+ const agent = await getAgentFromSystem({ mastra, agentId });
357
+ sanitizeBody(body, ["tools"]);
358
+ const { messages, requestContext: agentRequestContext, ...rest } = body;
359
+ const finalRequestContext = new RequestContext([
360
+ ...Array.from(requestContext.entries()),
361
+ ...Array.from(Object.entries(agentRequestContext ?? {}))
362
+ ]);
363
+ validateBody({ messages });
364
+ const result = await agent.generate(messages, {
365
+ ...rest,
366
+ requestContext: finalRequestContext,
367
+ format: rest.format || "mastra",
368
+ abortSignal
369
+ });
370
+ return result;
371
+ } catch (error) {
372
+ return handleError(error, "Error generating from agent");
373
+ }
374
+ }
375
+ async function streamGenerateLegacyHandler({
376
+ mastra,
377
+ requestContext,
378
+ agentId,
379
+ body,
380
+ abortSignal
381
+ }) {
382
+ try {
383
+ const agent = await getAgentFromSystem({ mastra, agentId });
384
+ const { messages, resourceId, resourceid, requestContext: agentRequestContext, ...rest } = body;
385
+ const finalResourceId = resourceId ?? resourceid;
386
+ const finalRequestContext = new RequestContext([
387
+ ...Array.from(requestContext.entries()),
388
+ ...Array.from(Object.entries(agentRequestContext ?? {}))
389
+ ]);
390
+ validateBody({ messages });
391
+ const streamResult = await agent.streamLegacy(messages, {
392
+ ...rest,
393
+ abortSignal,
394
+ // @ts-expect-error TODO fix types
395
+ resourceId: finalResourceId,
396
+ requestContext: finalRequestContext
397
+ });
398
+ const streamResponse = rest.output ? streamResult.toTextStreamResponse({
399
+ headers: {
400
+ "Transfer-Encoding": "chunked"
401
+ }
402
+ }) : streamResult.toDataStreamResponse({
403
+ sendUsage: true,
404
+ sendReasoning: true,
405
+ getErrorMessage: (error) => {
406
+ return `An error occurred while processing your request. ${error instanceof Error ? error.message : JSON.stringify(error)}`;
407
+ },
408
+ headers: {
409
+ "Transfer-Encoding": "chunked"
410
+ }
411
+ });
412
+ return streamResponse;
413
+ } catch (error) {
414
+ return handleError(error, "error streaming agent response");
415
+ }
416
+ }
417
+ async function streamGenerateHandler({
418
+ mastra,
419
+ requestContext,
420
+ agentId,
421
+ body,
422
+ abortSignal
423
+ }) {
424
+ try {
425
+ const agent = await getAgentFromSystem({ mastra, agentId });
426
+ sanitizeBody(body, ["tools"]);
427
+ const { messages, requestContext: agentRequestContext, ...rest } = body;
428
+ const finalRequestContext = new RequestContext([
429
+ ...Array.from(requestContext.entries()),
430
+ ...Array.from(Object.entries(agentRequestContext ?? {}))
431
+ ]);
432
+ validateBody({ messages });
433
+ const streamResult = agent.stream(messages, {
434
+ ...rest,
435
+ requestContext: finalRequestContext,
436
+ abortSignal,
437
+ format: body.format ?? "mastra"
438
+ });
439
+ return streamResult;
440
+ } catch (error) {
441
+ return handleError(error, "error streaming agent response");
442
+ }
443
+ }
444
+ async function approveToolCallHandler({
445
+ mastra,
446
+ requestContext,
447
+ agentId,
448
+ body,
449
+ abortSignal
450
+ }) {
451
+ try {
452
+ const agent = await getAgentFromSystem({ mastra, agentId });
453
+ if (!body.runId) {
454
+ throw new HTTPException(400, { message: "Run id is required" });
455
+ }
456
+ if (!body.toolCallId) {
457
+ throw new HTTPException(400, { message: "Tool call id is required" });
458
+ }
459
+ sanitizeBody(body, ["tools"]);
460
+ const { runId, requestContext: agentRequestContext, ...rest } = body;
461
+ const finalRequestContext = new RequestContext([
462
+ ...Array.from(requestContext.entries()),
463
+ ...Array.from(Object.entries(agentRequestContext ?? {}))
464
+ ]);
465
+ const streamResult = agent.approveToolCall({
466
+ ...rest,
467
+ runId,
468
+ requestContext: finalRequestContext,
469
+ abortSignal,
470
+ format: body.format ?? "mastra"
471
+ });
472
+ return streamResult;
473
+ } catch (error) {
474
+ return handleError(error, "error streaming agent response");
475
+ }
476
+ }
477
+ async function declineToolCallHandler({
478
+ mastra,
479
+ requestContext,
480
+ agentId,
481
+ body,
482
+ abortSignal
483
+ }) {
484
+ try {
485
+ const agent = await getAgentFromSystem({ mastra, agentId });
486
+ if (!body.runId) {
487
+ throw new HTTPException(400, { message: "Run id is required" });
488
+ }
489
+ if (!body.toolCallId) {
490
+ throw new HTTPException(400, { message: "Tool call id is required" });
491
+ }
492
+ sanitizeBody(body, ["tools"]);
493
+ const { runId, requestContext: agentRequestContext, ...rest } = body;
494
+ const finalRequestContext = new RequestContext([
495
+ ...Array.from(requestContext.entries()),
496
+ ...Array.from(Object.entries(agentRequestContext ?? {}))
497
+ ]);
498
+ const streamResult = agent.declineToolCall({
499
+ ...rest,
500
+ runId,
501
+ requestContext: finalRequestContext,
502
+ abortSignal,
503
+ format: body.format ?? "mastra"
504
+ });
505
+ return streamResult;
506
+ } catch (error) {
507
+ return handleError(error, "error streaming agent response");
508
+ }
509
+ }
510
+ async function streamNetworkHandler({
511
+ mastra,
512
+ requestContext,
513
+ agentId,
514
+ body
515
+ // abortSignal,
516
+ }) {
517
+ try {
518
+ const agent = await getAgentFromSystem({ mastra, agentId });
519
+ sanitizeBody(body, ["tools"]);
520
+ const { messages, requestContext: agentRequestContext, ...rest } = body;
521
+ const finalRequestContext = new RequestContext([
522
+ ...Array.from(requestContext.entries()),
523
+ ...Array.from(Object.entries(agentRequestContext ?? {}))
524
+ ]);
525
+ validateBody({ messages });
526
+ const streamResult = agent.network(messages, {
527
+ ...rest,
528
+ memory: {
529
+ thread: rest.thread ?? "",
530
+ resource: rest.resourceId ?? "",
531
+ options: rest.memory?.options ?? {}
532
+ },
533
+ requestContext: finalRequestContext
534
+ });
535
+ return streamResult;
536
+ } catch (error) {
537
+ return handleError(error, "error streaming agent loop response");
538
+ }
539
+ }
540
+ async function streamUIMessageHandler({
541
+ mastra,
542
+ requestContext,
543
+ agentId,
544
+ body,
545
+ abortSignal
546
+ }) {
547
+ try {
548
+ const agent = await getAgentFromSystem({ mastra, agentId });
549
+ sanitizeBody(body, ["tools"]);
550
+ const { messages, requestContext: agentRequestContext, ...rest } = body;
551
+ const finalRequestContext = new RequestContext([
552
+ ...Array.from(requestContext.entries()),
553
+ ...Array.from(Object.entries(agentRequestContext ?? {}))
554
+ ]);
555
+ validateBody({ messages });
556
+ const streamResult = await agent.stream(messages, {
557
+ ...rest,
558
+ requestContext: finalRequestContext,
559
+ abortSignal,
560
+ format: "aisdk"
561
+ });
562
+ return streamResult.toUIMessageStreamResponse();
563
+ } catch (error) {
564
+ return handleError(error, "error streaming agent response");
565
+ }
566
+ }
567
+ async function updateAgentModelHandler({
568
+ mastra,
569
+ agentId,
570
+ body
571
+ }) {
572
+ try {
573
+ const agent = await getAgentFromSystem({ mastra, agentId });
574
+ const { modelId, provider } = body;
575
+ const newModel = `${provider}/${modelId}`;
576
+ agent.__updateModel({ model: newModel });
577
+ return { message: "Agent model updated" };
578
+ } catch (error) {
579
+ return handleError(error, "error updating agent model");
580
+ }
581
+ }
582
+ async function resetAgentModelHandler({
583
+ mastra,
584
+ agentId
585
+ }) {
586
+ try {
587
+ const agent = await getAgentFromSystem({ mastra, agentId });
588
+ agent.__resetToOriginalModel();
589
+ return { message: "Agent model reset to original" };
590
+ } catch (error) {
591
+ return handleError(error, "error resetting agent model");
592
+ }
593
+ }
594
+ async function reorderAgentModelListHandler({
595
+ mastra,
596
+ agentId,
597
+ body
598
+ }) {
599
+ try {
600
+ const agent = await getAgentFromSystem({ mastra, agentId });
601
+ const modelList = await agent.getModelList();
602
+ if (!modelList || modelList.length === 0) {
603
+ throw new HTTPException(400, { message: "Agent model list is not found or empty" });
604
+ }
605
+ agent.reorderModels(body.reorderedModelIds);
606
+ return { message: "Model list reordered" };
607
+ } catch (error) {
608
+ return handleError(error, "error reordering model list");
609
+ }
610
+ }
611
+ async function updateAgentModelInModelListHandler({
612
+ mastra,
613
+ agentId,
614
+ modelConfigId,
615
+ body
616
+ }) {
617
+ try {
618
+ const agent = await getAgentFromSystem({ mastra, agentId });
619
+ const { model: bodyModel, maxRetries, enabled } = body;
620
+ if (!modelConfigId) {
621
+ throw new HTTPException(400, { message: "Model id is required" });
622
+ }
623
+ const modelList = await agent.getModelList();
624
+ if (!modelList || modelList.length === 0) {
625
+ throw new HTTPException(400, { message: "Agent model list is not found or empty" });
626
+ }
627
+ const modelToUpdate = modelList.find((m) => m.id === modelConfigId);
628
+ if (!modelToUpdate) {
629
+ throw new HTTPException(400, { message: "Model to update is not found in agent model list" });
630
+ }
631
+ let model;
632
+ if (bodyModel) {
633
+ const { modelId, provider } = bodyModel;
634
+ model = `${provider}/${modelId}`;
635
+ }
636
+ agent.updateModelInModelList({ id: modelConfigId, model, maxRetries, enabled });
637
+ return { message: "Model list updated" };
638
+ } catch (error) {
639
+ return handleError(error, "error updating model list");
640
+ }
641
+ }
642
+ async function getProvidersHandler() {
643
+ try {
644
+ const providers = Object.entries(PROVIDER_REGISTRY).map(([id, provider]) => {
645
+ const envVars = Array.isArray(provider.apiKeyEnvVar) ? provider.apiKeyEnvVar : [provider.apiKeyEnvVar];
646
+ const connected = envVars.every((envVar) => !!process.env[envVar]);
647
+ return {
648
+ id,
649
+ name: provider.name,
650
+ envVar: provider.apiKeyEnvVar,
651
+ connected,
652
+ docUrl: provider.docUrl,
653
+ models: [...provider.models]
654
+ // Convert readonly array to regular array
655
+ };
656
+ });
657
+ return { providers };
658
+ } catch (error) {
659
+ return handleError(error, "error fetching providers");
660
+ }
661
+ }
662
+
663
+ export { agents_exports, approveToolCallHandler, declineToolCallHandler, generateHandler, generateLegacyHandler, getAgentByIdHandler, getAgentFromSystem, getProvidersHandler, getSerializedAgentTools, getSerializedProcessors, listAgentsHandler, reorderAgentModelListHandler, resetAgentModelHandler, streamGenerateHandler, streamGenerateLegacyHandler, streamNetworkHandler, streamUIMessageHandler, updateAgentModelHandler, updateAgentModelInModelListHandler };
664
+ //# sourceMappingURL=chunk-7MCHFMDF.js.map
665
+ //# sourceMappingURL=chunk-7MCHFMDF.js.map