@mastra/server 0.0.0-fix-thread-list-20251105222841 → 0.0.0-fix-issue-10434-concurrent-write-corruption-20251124213939

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 (226) hide show
  1. package/CHANGELOG.md +419 -3
  2. package/dist/chunk-2NW6POYK.cjs +89 -0
  3. package/dist/chunk-2NW6POYK.cjs.map +1 -0
  4. package/dist/chunk-35NT4TMQ.cjs +201 -0
  5. package/dist/chunk-35NT4TMQ.cjs.map +1 -0
  6. package/dist/{chunk-ALOLTNSO.js → chunk-3R5EV3HV.js} +208 -21
  7. package/dist/chunk-3R5EV3HV.js.map +1 -0
  8. package/dist/{chunk-XXGID4PQ.cjs → chunk-4ECGVOJZ.cjs} +214 -21
  9. package/dist/chunk-4ECGVOJZ.cjs.map +1 -0
  10. package/dist/chunk-5PONYNYP.cjs +125 -0
  11. package/dist/chunk-5PONYNYP.cjs.map +1 -0
  12. package/dist/chunk-5W4RPVTK.cjs +49 -0
  13. package/dist/chunk-5W4RPVTK.cjs.map +1 -0
  14. package/dist/chunk-6DTV6NEW.js +116 -0
  15. package/dist/chunk-6DTV6NEW.js.map +1 -0
  16. package/dist/chunk-7WTETKRM.cjs +1064 -0
  17. package/dist/chunk-7WTETKRM.cjs.map +1 -0
  18. package/dist/chunk-AEO6IHLK.cjs +368 -0
  19. package/dist/chunk-AEO6IHLK.cjs.map +1 -0
  20. package/dist/chunk-ASZUOBKV.js +310 -0
  21. package/dist/chunk-ASZUOBKV.js.map +1 -0
  22. package/dist/{chunk-M6KNPIZZ.cjs → chunk-BM7RP6NK.cjs} +1625 -1159
  23. package/dist/chunk-BM7RP6NK.cjs.map +1 -0
  24. package/dist/{chunk-QXWWLCTQ.js → chunk-BMKFP3XR.js} +594 -131
  25. package/dist/chunk-BMKFP3XR.js.map +1 -0
  26. package/dist/chunk-ECIVTQ4E.js +354 -0
  27. package/dist/chunk-ECIVTQ4E.js.map +1 -0
  28. package/dist/chunk-FAQICBMH.js +164 -0
  29. package/dist/chunk-FAQICBMH.js.map +1 -0
  30. package/dist/chunk-FXDZLX2Y.js +192 -0
  31. package/dist/chunk-FXDZLX2Y.js.map +1 -0
  32. package/dist/{chunk-DNUO33HF.js → chunk-G7BPNX2V.js} +5 -4
  33. package/dist/chunk-G7BPNX2V.js.map +1 -0
  34. package/dist/chunk-I5VZ5SKG.js +328 -0
  35. package/dist/chunk-I5VZ5SKG.js.map +1 -0
  36. package/dist/chunk-ICANWSEW.js +204 -0
  37. package/dist/chunk-ICANWSEW.js.map +1 -0
  38. package/dist/chunk-KB5NSROG.cjs +211 -0
  39. package/dist/chunk-KB5NSROG.cjs.map +1 -0
  40. package/dist/chunk-MWQQRVQC.cjs +259 -0
  41. package/dist/chunk-MWQQRVQC.cjs.map +1 -0
  42. package/dist/chunk-PKRHEXX7.js +74 -0
  43. package/dist/chunk-PKRHEXX7.js.map +1 -0
  44. package/dist/chunk-QGWCNTG6.cjs +797 -0
  45. package/dist/chunk-QGWCNTG6.cjs.map +1 -0
  46. package/dist/chunk-R4M3BSUG.js +226 -0
  47. package/dist/chunk-R4M3BSUG.js.map +1 -0
  48. package/dist/chunk-UJNHKFBR.cjs +167 -0
  49. package/dist/chunk-UJNHKFBR.cjs.map +1 -0
  50. package/dist/chunk-UOFV2ZCI.js +878 -0
  51. package/dist/chunk-UOFV2ZCI.js.map +1 -0
  52. package/dist/{chunk-LWLSQ2W4.cjs → chunk-UZ6CYAOG.cjs} +5 -4
  53. package/dist/chunk-UZ6CYAOG.cjs.map +1 -0
  54. package/dist/chunk-VIP2H47U.js +1021 -0
  55. package/dist/chunk-VIP2H47U.js.map +1 -0
  56. package/dist/chunk-XWGAT2DA.js +44 -0
  57. package/dist/chunk-XWGAT2DA.js.map +1 -0
  58. package/dist/chunk-YJ3VDL3Z.cjs +346 -0
  59. package/dist/chunk-YJ3VDL3Z.cjs.map +1 -0
  60. package/dist/chunk-Z36N2OQA.cjs +907 -0
  61. package/dist/chunk-Z36N2OQA.cjs.map +1 -0
  62. package/dist/chunk-ZLRTFRL4.js +773 -0
  63. package/dist/chunk-ZLRTFRL4.js.map +1 -0
  64. package/dist/chunk-ZODCSH2W.cjs +322 -0
  65. package/dist/chunk-ZODCSH2W.cjs.map +1 -0
  66. package/dist/server/handlers/a2a.cjs +15 -7
  67. package/dist/server/handlers/a2a.d.ts +482 -0
  68. package/dist/server/handlers/a2a.d.ts.map +1 -1
  69. package/dist/server/handlers/a2a.js +1 -1
  70. package/dist/server/handlers/agent-builder.cjs +37 -37
  71. package/dist/server/handlers/agent-builder.d.ts +600 -77
  72. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  73. package/dist/server/handlers/agent-builder.js +1 -1
  74. package/dist/server/handlers/agents.cjs +53 -37
  75. package/dist/server/handlers/agents.d.ts +3270 -127
  76. package/dist/server/handlers/agents.d.ts.map +1 -1
  77. package/dist/server/handlers/agents.js +1 -1
  78. package/dist/server/handlers/logs.cjs +7 -7
  79. package/dist/server/handlers/logs.d.ts +135 -27
  80. package/dist/server/handlers/logs.d.ts.map +1 -1
  81. package/dist/server/handlers/logs.js +1 -1
  82. package/dist/server/handlers/memory.cjs +67 -27
  83. package/dist/server/handlers/memory.d.ts +933 -96
  84. package/dist/server/handlers/memory.d.ts.map +1 -1
  85. package/dist/server/handlers/memory.js +1 -1
  86. package/dist/server/handlers/observability.cjs +23 -7
  87. package/dist/server/handlers/observability.d.ts +124 -17
  88. package/dist/server/handlers/observability.d.ts.map +1 -1
  89. package/dist/server/handlers/observability.js +1 -1
  90. package/dist/server/handlers/scores.cjs +13 -13
  91. package/dist/server/handlers/scores.d.ts +110 -141
  92. package/dist/server/handlers/scores.d.ts.map +1 -1
  93. package/dist/server/handlers/scores.js +1 -1
  94. package/dist/server/handlers/test-utils.cjs +15 -0
  95. package/dist/server/handlers/test-utils.cjs.map +1 -0
  96. package/dist/server/handlers/test-utils.d.ts +6 -0
  97. package/dist/server/handlers/test-utils.d.ts.map +1 -0
  98. package/dist/server/handlers/test-utils.js +13 -0
  99. package/dist/server/handlers/test-utils.js.map +1 -0
  100. package/dist/server/handlers/tools.cjs +11 -11
  101. package/dist/server/handlers/tools.d.ts +69 -23
  102. package/dist/server/handlers/tools.d.ts.map +1 -1
  103. package/dist/server/handlers/tools.js +1 -1
  104. package/dist/server/handlers/utils.cjs +11 -3
  105. package/dist/server/handlers/utils.d.ts +5 -0
  106. package/dist/server/handlers/utils.d.ts.map +1 -1
  107. package/dist/server/handlers/utils.js +1 -1
  108. package/dist/server/handlers/vector.cjs +31 -7
  109. package/dist/server/handlers/vector.d.ts +93 -9
  110. package/dist/server/handlers/vector.d.ts.map +1 -1
  111. package/dist/server/handlers/vector.js +1 -1
  112. package/dist/server/handlers/voice.cjs +21 -9
  113. package/dist/server/handlers/voice.d.ts +81 -40
  114. package/dist/server/handlers/voice.d.ts.map +1 -1
  115. package/dist/server/handlers/voice.js +1 -1
  116. package/dist/server/handlers/workflows.cjs +65 -37
  117. package/dist/server/handlers/workflows.d.ts +919 -79
  118. package/dist/server/handlers/workflows.d.ts.map +1 -1
  119. package/dist/server/handlers/workflows.js +1 -1
  120. package/dist/server/handlers.cjs +22 -22
  121. package/dist/server/handlers.js +11 -11
  122. package/dist/server/schemas/a2a.d.ts +786 -0
  123. package/dist/server/schemas/a2a.d.ts.map +1 -0
  124. package/dist/server/schemas/agent-builder.d.ts +195 -0
  125. package/dist/server/schemas/agent-builder.d.ts.map +1 -0
  126. package/dist/server/schemas/agents.d.ts +1375 -0
  127. package/dist/server/schemas/agents.d.ts.map +1 -0
  128. package/dist/server/schemas/common.d.ts +165 -0
  129. package/dist/server/schemas/common.d.ts.map +1 -0
  130. package/dist/server/schemas/logs.d.ts +124 -0
  131. package/dist/server/schemas/logs.d.ts.map +1 -0
  132. package/dist/server/schemas/memory.d.ts +998 -0
  133. package/dist/server/schemas/memory.d.ts.map +1 -0
  134. package/dist/server/schemas/observability.d.ts +402 -0
  135. package/dist/server/schemas/observability.d.ts.map +1 -0
  136. package/dist/server/schemas/scores.d.ts +259 -0
  137. package/dist/server/schemas/scores.d.ts.map +1 -0
  138. package/dist/server/schemas/vectors.d.ts +107 -0
  139. package/dist/server/schemas/vectors.d.ts.map +1 -0
  140. package/dist/server/schemas/workflows.d.ts +608 -0
  141. package/dist/server/schemas/workflows.d.ts.map +1 -0
  142. package/dist/server/server-adapter/index.cjs +330 -0
  143. package/dist/server/server-adapter/index.cjs.map +1 -0
  144. package/dist/server/server-adapter/index.d.ts +52 -0
  145. package/dist/server/server-adapter/index.d.ts.map +1 -0
  146. package/dist/server/server-adapter/index.js +316 -0
  147. package/dist/server/server-adapter/index.js.map +1 -0
  148. package/dist/server/server-adapter/openapi-utils.d.ts +59 -0
  149. package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
  150. package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
  151. package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
  152. package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
  153. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
  154. package/dist/server/server-adapter/routes/agents.d.ts +3 -0
  155. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
  156. package/dist/server/server-adapter/routes/index.d.ts +41 -0
  157. package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
  158. package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
  159. package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
  160. package/dist/server/server-adapter/routes/logs.d.ts +3 -0
  161. package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
  162. package/dist/server/server-adapter/routes/memory.d.ts +3 -0
  163. package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
  164. package/dist/server/server-adapter/routes/observability.d.ts +3 -0
  165. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
  166. package/dist/server/server-adapter/routes/route-builder.d.ts +52 -0
  167. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
  168. package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
  169. package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
  170. package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
  171. package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
  172. package/dist/server/server-adapter/routes/tools.d.ts +3 -0
  173. package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
  174. package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
  175. package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
  176. package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
  177. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
  178. package/dist/server/utils.d.ts +2 -1
  179. package/dist/server/utils.d.ts.map +1 -1
  180. package/package.json +23 -8
  181. package/dist/chunk-46Z2KDQL.js +0 -124
  182. package/dist/chunk-46Z2KDQL.js.map +0 -1
  183. package/dist/chunk-73PAWDM5.js +0 -83
  184. package/dist/chunk-73PAWDM5.js.map +0 -1
  185. package/dist/chunk-A5SOZY5R.js +0 -502
  186. package/dist/chunk-A5SOZY5R.js.map +0 -1
  187. package/dist/chunk-ALOLTNSO.js.map +0 -1
  188. package/dist/chunk-B6NK4KI5.cjs +0 -128
  189. package/dist/chunk-B6NK4KI5.cjs.map +0 -1
  190. package/dist/chunk-BANGX6SC.cjs +0 -200
  191. package/dist/chunk-BANGX6SC.cjs.map +0 -1
  192. package/dist/chunk-BHQH5QXD.cjs +0 -172
  193. package/dist/chunk-BHQH5QXD.cjs.map +0 -1
  194. package/dist/chunk-BTWIR2B7.cjs +0 -28
  195. package/dist/chunk-BTWIR2B7.cjs.map +0 -1
  196. package/dist/chunk-DNUO33HF.js.map +0 -1
  197. package/dist/chunk-GTZOYEAU.cjs +0 -130
  198. package/dist/chunk-GTZOYEAU.cjs.map +0 -1
  199. package/dist/chunk-IGOWG5V5.js +0 -192
  200. package/dist/chunk-IGOWG5V5.js.map +0 -1
  201. package/dist/chunk-JO2AZFJN.js +0 -165
  202. package/dist/chunk-JO2AZFJN.js.map +0 -1
  203. package/dist/chunk-JZ65BJ6H.cjs +0 -678
  204. package/dist/chunk-JZ65BJ6H.cjs.map +0 -1
  205. package/dist/chunk-KWH5QBXP.js +0 -123
  206. package/dist/chunk-KWH5QBXP.js.map +0 -1
  207. package/dist/chunk-LPCK5MAF.js +0 -122
  208. package/dist/chunk-LPCK5MAF.js.map +0 -1
  209. package/dist/chunk-LWLSQ2W4.cjs.map +0 -1
  210. package/dist/chunk-M6KNPIZZ.cjs.map +0 -1
  211. package/dist/chunk-PPMIB3FQ.cjs +0 -88
  212. package/dist/chunk-PPMIB3FQ.cjs.map +0 -1
  213. package/dist/chunk-QXWWLCTQ.js.map +0 -1
  214. package/dist/chunk-S54HNARD.cjs +0 -131
  215. package/dist/chunk-S54HNARD.cjs.map +0 -1
  216. package/dist/chunk-SIPNICB3.cjs +0 -517
  217. package/dist/chunk-SIPNICB3.cjs.map +0 -1
  218. package/dist/chunk-SRAPUMPM.cjs +0 -620
  219. package/dist/chunk-SRAPUMPM.cjs.map +0 -1
  220. package/dist/chunk-SZIFSF4T.js +0 -25
  221. package/dist/chunk-SZIFSF4T.js.map +0 -1
  222. package/dist/chunk-TWHS6DKL.js +0 -600
  223. package/dist/chunk-TWHS6DKL.js.map +0 -1
  224. package/dist/chunk-VYR3SAFM.js +0 -658
  225. package/dist/chunk-VYR3SAFM.js.map +0 -1
  226. package/dist/chunk-XXGID4PQ.cjs.map +0 -1
@@ -0,0 +1,204 @@
1
+ import { listToolsResponseSchema, serializedToolSchema, toolIdPathParams, executeToolResponseSchema, executeToolContextBodySchema, agentToolPathParams, executeToolBodySchema } from './chunk-R4M3BSUG.js';
2
+ import { stringify } from './chunk-LF2ZLOFP.js';
3
+ import { validateBody } from './chunk-XWGAT2DA.js';
4
+ import { optionalRunIdSchema } from './chunk-PKRHEXX7.js';
5
+ import { createRoute } from './chunk-FAQICBMH.js';
6
+ import { handleError } from './chunk-UXGQZUYZ.js';
7
+ import { HTTPException } from './chunk-6QWQZI4Q.js';
8
+ import { __export } from './chunk-PR4QN5HX.js';
9
+ import { isVercelTool } from '@mastra/core/tools';
10
+ import { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';
11
+
12
+ // src/server/handlers/tools.ts
13
+ var tools_exports = {};
14
+ __export(tools_exports, {
15
+ EXECUTE_AGENT_TOOL_ROUTE: () => EXECUTE_AGENT_TOOL_ROUTE,
16
+ EXECUTE_TOOL_ROUTE: () => EXECUTE_TOOL_ROUTE,
17
+ GET_AGENT_TOOL_ROUTE: () => GET_AGENT_TOOL_ROUTE,
18
+ GET_TOOL_BY_ID_ROUTE: () => GET_TOOL_BY_ID_ROUTE,
19
+ LIST_TOOLS_ROUTE: () => LIST_TOOLS_ROUTE
20
+ });
21
+ var LIST_TOOLS_ROUTE = createRoute({
22
+ method: "GET",
23
+ path: "/api/tools",
24
+ responseType: "json",
25
+ responseSchema: listToolsResponseSchema,
26
+ summary: "List all tools",
27
+ description: "Returns a list of all available tools in the system",
28
+ tags: ["Tools"],
29
+ handler: async ({ mastra, tools }) => {
30
+ try {
31
+ const allTools = tools || mastra.listTools() || {};
32
+ const serializedTools = Object.entries(allTools).reduce(
33
+ (acc, [id, _tool]) => {
34
+ const tool = _tool;
35
+ acc[id] = {
36
+ ...tool,
37
+ inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : void 0,
38
+ outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : void 0
39
+ };
40
+ return acc;
41
+ },
42
+ {}
43
+ );
44
+ return serializedTools;
45
+ } catch (error) {
46
+ return handleError(error, "Error getting tools");
47
+ }
48
+ }
49
+ });
50
+ var GET_TOOL_BY_ID_ROUTE = createRoute({
51
+ method: "GET",
52
+ path: "/api/tools/:toolId",
53
+ responseType: "json",
54
+ pathParamSchema: toolIdPathParams,
55
+ responseSchema: serializedToolSchema,
56
+ summary: "Get tool by ID",
57
+ description: "Returns details for a specific tool including its schema and configuration",
58
+ tags: ["Tools"],
59
+ handler: async ({ mastra, tools, toolId }) => {
60
+ try {
61
+ let tool;
62
+ if (tools && Object.keys(tools).length > 0) {
63
+ tool = Object.values(tools).find((t) => t.id === toolId);
64
+ } else {
65
+ tool = mastra.getToolById(toolId);
66
+ }
67
+ if (!tool) {
68
+ throw new HTTPException(404, { message: "Tool not found" });
69
+ }
70
+ const serializedTool = {
71
+ ...tool,
72
+ inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : void 0,
73
+ outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : void 0
74
+ };
75
+ return serializedTool;
76
+ } catch (error) {
77
+ return handleError(error, "Error getting tool");
78
+ }
79
+ }
80
+ });
81
+ var EXECUTE_TOOL_ROUTE = createRoute({
82
+ method: "POST",
83
+ path: "/api/tools/:toolId/execute",
84
+ responseType: "json",
85
+ pathParamSchema: toolIdPathParams,
86
+ queryParamSchema: optionalRunIdSchema,
87
+ bodySchema: executeToolContextBodySchema,
88
+ responseSchema: executeToolResponseSchema,
89
+ summary: "Execute tool",
90
+ description: "Executes a specific tool with the provided input data",
91
+ tags: ["Tools"],
92
+ handler: async ({ mastra, runId, toolId, tools, requestContext, ...bodyParams }) => {
93
+ try {
94
+ if (!toolId) {
95
+ throw new HTTPException(400, { message: "Tool ID is required" });
96
+ }
97
+ let tool;
98
+ if (tools && Object.keys(tools).length > 0) {
99
+ tool = Object.values(tools).find((t) => t.id === toolId);
100
+ } else {
101
+ tool = mastra.getToolById(toolId);
102
+ }
103
+ if (!tool) {
104
+ throw new HTTPException(404, { message: "Tool not found" });
105
+ }
106
+ if (!tool?.execute) {
107
+ throw new HTTPException(400, { message: "Tool is not executable" });
108
+ }
109
+ const { data } = bodyParams;
110
+ validateBody({ data });
111
+ if (isVercelTool(tool)) {
112
+ const result2 = await tool.execute(data);
113
+ return result2;
114
+ }
115
+ const result = await tool.execute(data, {
116
+ mastra,
117
+ requestContext,
118
+ // TODO: Pass proper tracing context when server API supports tracing
119
+ tracingContext: { currentSpan: void 0 },
120
+ ...runId ? {
121
+ workflow: {
122
+ runId,
123
+ suspend: async () => {
124
+ }
125
+ }
126
+ } : {}
127
+ });
128
+ return result;
129
+ } catch (error) {
130
+ return handleError(error, "Error executing tool");
131
+ }
132
+ }
133
+ });
134
+ var GET_AGENT_TOOL_ROUTE = createRoute({
135
+ method: "GET",
136
+ path: "/api/agents/:agentId/tools/:toolId",
137
+ responseType: "json",
138
+ pathParamSchema: agentToolPathParams,
139
+ responseSchema: serializedToolSchema,
140
+ summary: "Get agent tool",
141
+ description: "Returns details for a specific tool assigned to the agent",
142
+ tags: ["Agents", "Tools"],
143
+ handler: async ({ mastra, agentId, toolId, requestContext }) => {
144
+ try {
145
+ const agent = agentId ? mastra.getAgentById(agentId) : null;
146
+ if (!agent) {
147
+ throw new HTTPException(404, { message: "Agent not found" });
148
+ }
149
+ const agentTools = await agent.listTools({ requestContext });
150
+ const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
151
+ if (!tool) {
152
+ throw new HTTPException(404, { message: "Tool not found" });
153
+ }
154
+ const serializedTool = {
155
+ ...tool,
156
+ inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : void 0,
157
+ outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : void 0
158
+ };
159
+ return serializedTool;
160
+ } catch (error) {
161
+ return handleError(error, "Error getting agent tool");
162
+ }
163
+ }
164
+ });
165
+ var EXECUTE_AGENT_TOOL_ROUTE = createRoute({
166
+ method: "POST",
167
+ path: "/api/agents/:agentId/tools/:toolId/execute",
168
+ responseType: "json",
169
+ pathParamSchema: agentToolPathParams,
170
+ bodySchema: executeToolBodySchema,
171
+ responseSchema: executeToolResponseSchema,
172
+ summary: "Execute agent tool",
173
+ description: "Executes a specific tool assigned to the agent with the provided input data",
174
+ tags: ["Agents", "Tools"],
175
+ handler: async ({ mastra, agentId, toolId, data, requestContext }) => {
176
+ try {
177
+ const agent = agentId ? mastra.getAgentById(agentId) : null;
178
+ if (!agent) {
179
+ throw new HTTPException(404, { message: "Tool not found" });
180
+ }
181
+ const agentTools = await agent.listTools({ requestContext });
182
+ const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
183
+ if (!tool) {
184
+ throw new HTTPException(404, { message: "Tool not found" });
185
+ }
186
+ if (!tool?.execute) {
187
+ throw new HTTPException(400, { message: "Tool is not executable" });
188
+ }
189
+ const result = await tool.execute(data, {
190
+ mastra,
191
+ requestContext,
192
+ // TODO: Pass proper tracing context when server API supports tracing
193
+ tracingContext: { currentSpan: void 0 }
194
+ });
195
+ return result;
196
+ } catch (error) {
197
+ return handleError(error, "Error executing agent tool");
198
+ }
199
+ }
200
+ });
201
+
202
+ export { EXECUTE_AGENT_TOOL_ROUTE, EXECUTE_TOOL_ROUTE, GET_AGENT_TOOL_ROUTE, GET_TOOL_BY_ID_ROUTE, LIST_TOOLS_ROUTE, tools_exports };
203
+ //# sourceMappingURL=chunk-ICANWSEW.js.map
204
+ //# sourceMappingURL=chunk-ICANWSEW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/tools.ts"],"names":["result","tool"],"mappings":"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","file":"chunk-ICANWSEW.js","sourcesContent":["import { isVercelTool } from '@mastra/core/tools';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport { stringify } from 'superjson';\nimport { HTTPException } from '../http-exception';\nimport {\n executeToolContextBodySchema,\n executeToolResponseSchema,\n listToolsResponseSchema,\n serializedToolSchema,\n toolIdPathParams,\n agentToolPathParams,\n executeToolBodySchema,\n} from '../schemas/agents';\nimport { optionalRunIdSchema } from '../schemas/common';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/api/tools',\n responseType: 'json',\n responseSchema: listToolsResponseSchema,\n summary: 'List all tools',\n description: 'Returns a list of all available tools in the system',\n tags: ['Tools'],\n handler: async ({ mastra, tools }) => {\n try {\n const allTools = tools || mastra.listTools() || {};\n\n const serializedTools = Object.entries(allTools).reduce(\n (acc, [id, _tool]) => {\n const tool = _tool;\n acc[id] = {\n ...tool,\n inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : undefined,\n outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : undefined,\n };\n return acc;\n },\n {} as Record<string, any>,\n );\n\n return serializedTools;\n } catch (error) {\n return handleError(error, 'Error getting tools');\n }\n },\n});\n\nexport const GET_TOOL_BY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/api/tools/:toolId',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get tool by ID',\n description: 'Returns details for a specific tool including its schema and configuration',\n tags: ['Tools'],\n handler: async ({ mastra, tools, toolId }) => {\n try {\n let tool: any;\n\n // Try explicit tools first, then fallback to mastra\n if (tools && Object.keys(tools).length > 0) {\n tool = Object.values(tools).find((t: any) => t.id === toolId);\n } else {\n tool = mastra.getToolById(toolId);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n const serializedTool = {\n ...tool,\n inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : undefined,\n outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : undefined,\n };\n\n return serializedTool;\n } catch (error) {\n return handleError(error, 'Error getting tool');\n }\n },\n});\n\nexport const EXECUTE_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/api/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n queryParamSchema: optionalRunIdSchema,\n bodySchema: executeToolContextBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute tool',\n description: 'Executes a specific tool with the provided input data',\n tags: ['Tools'],\n handler: async ({ mastra, runId, toolId, tools, requestContext, ...bodyParams }) => {\n try {\n if (!toolId) {\n throw new HTTPException(400, { message: 'Tool ID is required' });\n }\n\n let tool: any;\n\n // Try explicit tools first, then fallback to mastra\n if (tools && Object.keys(tools).length > 0) {\n tool = Object.values(tools).find((t: any) => t.id === toolId);\n } else {\n tool = mastra.getToolById(toolId);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const { data } = bodyParams;\n\n validateBody({ data });\n\n if (isVercelTool(tool)) {\n const result = await (tool as any).execute(data);\n return result;\n }\n\n const result = await tool.execute(data!, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n ...(runId\n ? {\n workflow: {\n runId,\n suspend: async () => {},\n },\n }\n : {}),\n });\n return result;\n } catch (error) {\n return handleError(error, 'Error executing tool');\n }\n },\n});\n\n// ============================================================================\n// Agent Tool Routes\n// ============================================================================\n\nexport const GET_AGENT_TOOL_ROUTE = createRoute({\n method: 'GET',\n path: '/api/agents/:agentId/tools/:toolId',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get agent tool',\n description: 'Returns details for a specific tool assigned to the agent',\n tags: ['Agents', 'Tools'],\n handler: async ({ mastra, agentId, toolId, requestContext }) => {\n try {\n const agent = agentId ? mastra.getAgentById(agentId) : null;\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n const serializedTool = {\n ...tool,\n inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : undefined,\n outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : undefined,\n };\n\n return serializedTool;\n } catch (error) {\n return handleError(error, 'Error getting agent tool');\n }\n },\n});\n\nexport const EXECUTE_AGENT_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n bodySchema: executeToolBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute agent tool',\n description: 'Executes a specific tool assigned to the agent with the provided input data',\n tags: ['Agents', 'Tools'],\n handler: async ({ mastra, agentId, toolId, data, requestContext }) => {\n try {\n const agent = agentId ? mastra.getAgentById(agentId) : null;\n if (!agent) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const result = await tool.execute(data, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing agent tool');\n }\n },\n});\n"]}
@@ -0,0 +1,211 @@
1
+ 'use strict';
2
+
3
+ var chunkMWQQRVQC_cjs = require('./chunk-MWQQRVQC.cjs');
4
+ var chunkGU4EWMZB_cjs = require('./chunk-GU4EWMZB.cjs');
5
+ var chunk5W4RPVTK_cjs = require('./chunk-5W4RPVTK.cjs');
6
+ var chunk2NW6POYK_cjs = require('./chunk-2NW6POYK.cjs');
7
+ var chunkUJNHKFBR_cjs = require('./chunk-UJNHKFBR.cjs');
8
+ var chunkV5WWQN7P_cjs = require('./chunk-V5WWQN7P.cjs');
9
+ var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
10
+ var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
11
+ var tools = require('@mastra/core/tools');
12
+ var zodToJson = require('@mastra/core/utils/zod-to-json');
13
+
14
+ // src/server/handlers/tools.ts
15
+ var tools_exports = {};
16
+ chunkO7I5CWRX_cjs.__export(tools_exports, {
17
+ EXECUTE_AGENT_TOOL_ROUTE: () => EXECUTE_AGENT_TOOL_ROUTE,
18
+ EXECUTE_TOOL_ROUTE: () => EXECUTE_TOOL_ROUTE,
19
+ GET_AGENT_TOOL_ROUTE: () => GET_AGENT_TOOL_ROUTE,
20
+ GET_TOOL_BY_ID_ROUTE: () => GET_TOOL_BY_ID_ROUTE,
21
+ LIST_TOOLS_ROUTE: () => LIST_TOOLS_ROUTE
22
+ });
23
+ var LIST_TOOLS_ROUTE = chunkUJNHKFBR_cjs.createRoute({
24
+ method: "GET",
25
+ path: "/api/tools",
26
+ responseType: "json",
27
+ responseSchema: chunkMWQQRVQC_cjs.listToolsResponseSchema,
28
+ summary: "List all tools",
29
+ description: "Returns a list of all available tools in the system",
30
+ tags: ["Tools"],
31
+ handler: async ({ mastra, tools }) => {
32
+ try {
33
+ const allTools = tools || mastra.listTools() || {};
34
+ const serializedTools = Object.entries(allTools).reduce(
35
+ (acc, [id, _tool]) => {
36
+ const tool = _tool;
37
+ acc[id] = {
38
+ ...tool,
39
+ inputSchema: tool.inputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.inputSchema)) : void 0,
40
+ outputSchema: tool.outputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.outputSchema)) : void 0
41
+ };
42
+ return acc;
43
+ },
44
+ {}
45
+ );
46
+ return serializedTools;
47
+ } catch (error) {
48
+ return chunkV5WWQN7P_cjs.handleError(error, "Error getting tools");
49
+ }
50
+ }
51
+ });
52
+ var GET_TOOL_BY_ID_ROUTE = chunkUJNHKFBR_cjs.createRoute({
53
+ method: "GET",
54
+ path: "/api/tools/:toolId",
55
+ responseType: "json",
56
+ pathParamSchema: chunkMWQQRVQC_cjs.toolIdPathParams,
57
+ responseSchema: chunkMWQQRVQC_cjs.serializedToolSchema,
58
+ summary: "Get tool by ID",
59
+ description: "Returns details for a specific tool including its schema and configuration",
60
+ tags: ["Tools"],
61
+ handler: async ({ mastra, tools, toolId }) => {
62
+ try {
63
+ let tool;
64
+ if (tools && Object.keys(tools).length > 0) {
65
+ tool = Object.values(tools).find((t) => t.id === toolId);
66
+ } else {
67
+ tool = mastra.getToolById(toolId);
68
+ }
69
+ if (!tool) {
70
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Tool not found" });
71
+ }
72
+ const serializedTool = {
73
+ ...tool,
74
+ inputSchema: tool.inputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.inputSchema)) : void 0,
75
+ outputSchema: tool.outputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.outputSchema)) : void 0
76
+ };
77
+ return serializedTool;
78
+ } catch (error) {
79
+ return chunkV5WWQN7P_cjs.handleError(error, "Error getting tool");
80
+ }
81
+ }
82
+ });
83
+ var EXECUTE_TOOL_ROUTE = chunkUJNHKFBR_cjs.createRoute({
84
+ method: "POST",
85
+ path: "/api/tools/:toolId/execute",
86
+ responseType: "json",
87
+ pathParamSchema: chunkMWQQRVQC_cjs.toolIdPathParams,
88
+ queryParamSchema: chunk2NW6POYK_cjs.optionalRunIdSchema,
89
+ bodySchema: chunkMWQQRVQC_cjs.executeToolContextBodySchema,
90
+ responseSchema: chunkMWQQRVQC_cjs.executeToolResponseSchema,
91
+ summary: "Execute tool",
92
+ description: "Executes a specific tool with the provided input data",
93
+ tags: ["Tools"],
94
+ handler: async ({ mastra, runId, toolId, tools: tools$1, requestContext, ...bodyParams }) => {
95
+ try {
96
+ if (!toolId) {
97
+ throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Tool ID is required" });
98
+ }
99
+ let tool;
100
+ if (tools$1 && Object.keys(tools$1).length > 0) {
101
+ tool = Object.values(tools$1).find((t) => t.id === toolId);
102
+ } else {
103
+ tool = mastra.getToolById(toolId);
104
+ }
105
+ if (!tool) {
106
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Tool not found" });
107
+ }
108
+ if (!tool?.execute) {
109
+ throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Tool is not executable" });
110
+ }
111
+ const { data } = bodyParams;
112
+ chunk5W4RPVTK_cjs.validateBody({ data });
113
+ if (tools.isVercelTool(tool)) {
114
+ const result2 = await tool.execute(data);
115
+ return result2;
116
+ }
117
+ const result = await tool.execute(data, {
118
+ mastra,
119
+ requestContext,
120
+ // TODO: Pass proper tracing context when server API supports tracing
121
+ tracingContext: { currentSpan: void 0 },
122
+ ...runId ? {
123
+ workflow: {
124
+ runId,
125
+ suspend: async () => {
126
+ }
127
+ }
128
+ } : {}
129
+ });
130
+ return result;
131
+ } catch (error) {
132
+ return chunkV5WWQN7P_cjs.handleError(error, "Error executing tool");
133
+ }
134
+ }
135
+ });
136
+ var GET_AGENT_TOOL_ROUTE = chunkUJNHKFBR_cjs.createRoute({
137
+ method: "GET",
138
+ path: "/api/agents/:agentId/tools/:toolId",
139
+ responseType: "json",
140
+ pathParamSchema: chunkMWQQRVQC_cjs.agentToolPathParams,
141
+ responseSchema: chunkMWQQRVQC_cjs.serializedToolSchema,
142
+ summary: "Get agent tool",
143
+ description: "Returns details for a specific tool assigned to the agent",
144
+ tags: ["Agents", "Tools"],
145
+ handler: async ({ mastra, agentId, toolId, requestContext }) => {
146
+ try {
147
+ const agent = agentId ? mastra.getAgentById(agentId) : null;
148
+ if (!agent) {
149
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Agent not found" });
150
+ }
151
+ const agentTools = await agent.listTools({ requestContext });
152
+ const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
153
+ if (!tool) {
154
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Tool not found" });
155
+ }
156
+ const serializedTool = {
157
+ ...tool,
158
+ inputSchema: tool.inputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.inputSchema)) : void 0,
159
+ outputSchema: tool.outputSchema ? chunkGU4EWMZB_cjs.stringify(zodToJson.zodToJsonSchema(tool.outputSchema)) : void 0
160
+ };
161
+ return serializedTool;
162
+ } catch (error) {
163
+ return chunkV5WWQN7P_cjs.handleError(error, "Error getting agent tool");
164
+ }
165
+ }
166
+ });
167
+ var EXECUTE_AGENT_TOOL_ROUTE = chunkUJNHKFBR_cjs.createRoute({
168
+ method: "POST",
169
+ path: "/api/agents/:agentId/tools/:toolId/execute",
170
+ responseType: "json",
171
+ pathParamSchema: chunkMWQQRVQC_cjs.agentToolPathParams,
172
+ bodySchema: chunkMWQQRVQC_cjs.executeToolBodySchema,
173
+ responseSchema: chunkMWQQRVQC_cjs.executeToolResponseSchema,
174
+ summary: "Execute agent tool",
175
+ description: "Executes a specific tool assigned to the agent with the provided input data",
176
+ tags: ["Agents", "Tools"],
177
+ handler: async ({ mastra, agentId, toolId, data, requestContext }) => {
178
+ try {
179
+ const agent = agentId ? mastra.getAgentById(agentId) : null;
180
+ if (!agent) {
181
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Tool not found" });
182
+ }
183
+ const agentTools = await agent.listTools({ requestContext });
184
+ const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
185
+ if (!tool) {
186
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Tool not found" });
187
+ }
188
+ if (!tool?.execute) {
189
+ throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Tool is not executable" });
190
+ }
191
+ const result = await tool.execute(data, {
192
+ mastra,
193
+ requestContext,
194
+ // TODO: Pass proper tracing context when server API supports tracing
195
+ tracingContext: { currentSpan: void 0 }
196
+ });
197
+ return result;
198
+ } catch (error) {
199
+ return chunkV5WWQN7P_cjs.handleError(error, "Error executing agent tool");
200
+ }
201
+ }
202
+ });
203
+
204
+ exports.EXECUTE_AGENT_TOOL_ROUTE = EXECUTE_AGENT_TOOL_ROUTE;
205
+ exports.EXECUTE_TOOL_ROUTE = EXECUTE_TOOL_ROUTE;
206
+ exports.GET_AGENT_TOOL_ROUTE = GET_AGENT_TOOL_ROUTE;
207
+ exports.GET_TOOL_BY_ID_ROUTE = GET_TOOL_BY_ID_ROUTE;
208
+ exports.LIST_TOOLS_ROUTE = LIST_TOOLS_ROUTE;
209
+ exports.tools_exports = tools_exports;
210
+ //# sourceMappingURL=chunk-KB5NSROG.cjs.map
211
+ //# sourceMappingURL=chunk-KB5NSROG.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/tools.ts"],"names":["__export","createRoute","listToolsResponseSchema","stringify","zodToJsonSchema","handleError","toolIdPathParams","serializedToolSchema","HTTPException","optionalRunIdSchema","executeToolContextBodySchema","executeToolResponseSchema","tools","validateBody","isVercelTool","result","agentToolPathParams","tool","executeToolBodySchema"],"mappings":"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","file":"chunk-KB5NSROG.cjs","sourcesContent":["import { isVercelTool } from '@mastra/core/tools';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport { stringify } from 'superjson';\nimport { HTTPException } from '../http-exception';\nimport {\n executeToolContextBodySchema,\n executeToolResponseSchema,\n listToolsResponseSchema,\n serializedToolSchema,\n toolIdPathParams,\n agentToolPathParams,\n executeToolBodySchema,\n} from '../schemas/agents';\nimport { optionalRunIdSchema } from '../schemas/common';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/api/tools',\n responseType: 'json',\n responseSchema: listToolsResponseSchema,\n summary: 'List all tools',\n description: 'Returns a list of all available tools in the system',\n tags: ['Tools'],\n handler: async ({ mastra, tools }) => {\n try {\n const allTools = tools || mastra.listTools() || {};\n\n const serializedTools = Object.entries(allTools).reduce(\n (acc, [id, _tool]) => {\n const tool = _tool;\n acc[id] = {\n ...tool,\n inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : undefined,\n outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : undefined,\n };\n return acc;\n },\n {} as Record<string, any>,\n );\n\n return serializedTools;\n } catch (error) {\n return handleError(error, 'Error getting tools');\n }\n },\n});\n\nexport const GET_TOOL_BY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/api/tools/:toolId',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get tool by ID',\n description: 'Returns details for a specific tool including its schema and configuration',\n tags: ['Tools'],\n handler: async ({ mastra, tools, toolId }) => {\n try {\n let tool: any;\n\n // Try explicit tools first, then fallback to mastra\n if (tools && Object.keys(tools).length > 0) {\n tool = Object.values(tools).find((t: any) => t.id === toolId);\n } else {\n tool = mastra.getToolById(toolId);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n const serializedTool = {\n ...tool,\n inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : undefined,\n outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : undefined,\n };\n\n return serializedTool;\n } catch (error) {\n return handleError(error, 'Error getting tool');\n }\n },\n});\n\nexport const EXECUTE_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/api/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: toolIdPathParams,\n queryParamSchema: optionalRunIdSchema,\n bodySchema: executeToolContextBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute tool',\n description: 'Executes a specific tool with the provided input data',\n tags: ['Tools'],\n handler: async ({ mastra, runId, toolId, tools, requestContext, ...bodyParams }) => {\n try {\n if (!toolId) {\n throw new HTTPException(400, { message: 'Tool ID is required' });\n }\n\n let tool: any;\n\n // Try explicit tools first, then fallback to mastra\n if (tools && Object.keys(tools).length > 0) {\n tool = Object.values(tools).find((t: any) => t.id === toolId);\n } else {\n tool = mastra.getToolById(toolId);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const { data } = bodyParams;\n\n validateBody({ data });\n\n if (isVercelTool(tool)) {\n const result = await (tool as any).execute(data);\n return result;\n }\n\n const result = await tool.execute(data!, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n ...(runId\n ? {\n workflow: {\n runId,\n suspend: async () => {},\n },\n }\n : {}),\n });\n return result;\n } catch (error) {\n return handleError(error, 'Error executing tool');\n }\n },\n});\n\n// ============================================================================\n// Agent Tool Routes\n// ============================================================================\n\nexport const GET_AGENT_TOOL_ROUTE = createRoute({\n method: 'GET',\n path: '/api/agents/:agentId/tools/:toolId',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n responseSchema: serializedToolSchema,\n summary: 'Get agent tool',\n description: 'Returns details for a specific tool assigned to the agent',\n tags: ['Agents', 'Tools'],\n handler: async ({ mastra, agentId, toolId, requestContext }) => {\n try {\n const agent = agentId ? mastra.getAgentById(agentId) : null;\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n const serializedTool = {\n ...tool,\n inputSchema: tool.inputSchema ? stringify(zodToJsonSchema(tool.inputSchema)) : undefined,\n outputSchema: tool.outputSchema ? stringify(zodToJsonSchema(tool.outputSchema)) : undefined,\n };\n\n return serializedTool;\n } catch (error) {\n return handleError(error, 'Error getting agent tool');\n }\n },\n});\n\nexport const EXECUTE_AGENT_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: agentToolPathParams,\n bodySchema: executeToolBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute agent tool',\n description: 'Executes a specific tool assigned to the agent with the provided input data',\n tags: ['Agents', 'Tools'],\n handler: async ({ mastra, agentId, toolId, data, requestContext }) => {\n try {\n const agent = agentId ? mastra.getAgentById(agentId) : null;\n if (!agent) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n const agentTools = await agent.listTools({ requestContext });\n\n const tool = Object.values(agentTools || {}).find((tool: any) => tool.id === toolId) as any;\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n if (!tool?.execute) {\n throw new HTTPException(400, { message: 'Tool is not executable' });\n }\n\n const result = await tool.execute(data, {\n mastra,\n requestContext,\n // TODO: Pass proper tracing context when server API supports tracing\n tracingContext: { currentSpan: undefined },\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error executing agent tool');\n }\n },\n});\n"]}