@mastra/server 1.0.0-beta.1 → 1.0.0-beta.11

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 (303) hide show
  1. package/CHANGELOG.md +273 -0
  2. package/README.md +2 -2
  3. package/dist/chunk-3SFLFUKY.js +116 -0
  4. package/dist/chunk-3SFLFUKY.js.map +1 -0
  5. package/dist/{chunk-W2KMU354.cjs → chunk-3XI22UQR.cjs} +19 -4
  6. package/dist/chunk-3XI22UQR.cjs.map +1 -0
  7. package/dist/chunk-4W2SM6CG.js +294 -0
  8. package/dist/chunk-4W2SM6CG.js.map +1 -0
  9. package/dist/chunk-5W4RPVTK.cjs +49 -0
  10. package/dist/chunk-5W4RPVTK.cjs.map +1 -0
  11. package/dist/chunk-7N3PD4SV.js +196 -0
  12. package/dist/chunk-7N3PD4SV.js.map +1 -0
  13. package/dist/{chunk-KJIDZQRA.cjs → chunk-7O3KPUJ4.cjs} +219 -24
  14. package/dist/chunk-7O3KPUJ4.cjs.map +1 -0
  15. package/dist/chunk-C3UIIRAT.cjs +920 -0
  16. package/dist/chunk-C3UIIRAT.cjs.map +1 -0
  17. package/dist/chunk-CDRVS35Y.js +23226 -0
  18. package/dist/chunk-CDRVS35Y.js.map +1 -0
  19. package/dist/chunk-DHWPHLGF.cjs +211 -0
  20. package/dist/chunk-DHWPHLGF.cjs.map +1 -0
  21. package/dist/chunk-DRUNNM4C.js +328 -0
  22. package/dist/chunk-DRUNNM4C.js.map +1 -0
  23. package/dist/{chunk-TOCYBDP2.js → chunk-ER3QM7DD.js} +4 -4
  24. package/dist/{chunk-TOCYBDP2.js.map → chunk-ER3QM7DD.js.map} +1 -1
  25. package/dist/chunk-FPCGLPLJ.cjs +297 -0
  26. package/dist/chunk-FPCGLPLJ.cjs.map +1 -0
  27. package/dist/chunk-FYY54HZC.js +310 -0
  28. package/dist/chunk-FYY54HZC.js.map +1 -0
  29. package/dist/chunk-GFF2I6UD.js +354 -0
  30. package/dist/chunk-GFF2I6UD.js.map +1 -0
  31. package/dist/chunk-GN2LFMET.cjs +23268 -0
  32. package/dist/chunk-GN2LFMET.cjs.map +1 -0
  33. package/dist/chunk-H2RMXG2Q.cjs +167 -0
  34. package/dist/chunk-H2RMXG2Q.cjs.map +1 -0
  35. package/dist/chunk-HAJOEDNB.js +274 -0
  36. package/dist/chunk-HAJOEDNB.js.map +1 -0
  37. package/dist/chunk-HFQGXVIE.js +786 -0
  38. package/dist/chunk-HFQGXVIE.js.map +1 -0
  39. package/dist/chunk-HT4LP3BO.js +75 -0
  40. package/dist/chunk-HT4LP3BO.js.map +1 -0
  41. package/dist/chunk-I6LR6CPC.cjs +125 -0
  42. package/dist/chunk-I6LR6CPC.cjs.map +1 -0
  43. package/dist/chunk-IEYXQTUW.cjs +284 -0
  44. package/dist/chunk-IEYXQTUW.cjs.map +1 -0
  45. package/dist/chunk-K3ELPJS3.js +1063 -0
  46. package/dist/chunk-K3ELPJS3.js.map +1 -0
  47. package/dist/{chunk-FPBYKMIS.js → chunk-KEXR53KI.js} +213 -24
  48. package/dist/chunk-KEXR53KI.js.map +1 -0
  49. package/dist/chunk-MCYD5LW7.cjs +90 -0
  50. package/dist/chunk-MCYD5LW7.cjs.map +1 -0
  51. package/dist/chunk-MQLS6Z7A.js +891 -0
  52. package/dist/chunk-MQLS6Z7A.js.map +1 -0
  53. package/dist/chunk-PUFCKXFW.cjs +312 -0
  54. package/dist/chunk-PUFCKXFW.cjs.map +1 -0
  55. package/dist/chunk-QNVYGEJ4.js +204 -0
  56. package/dist/chunk-QNVYGEJ4.js.map +1 -0
  57. package/dist/chunk-S3TIWWQL.cjs +322 -0
  58. package/dist/chunk-S3TIWWQL.cjs.map +1 -0
  59. package/dist/chunk-SXVANU23.js +164 -0
  60. package/dist/chunk-SXVANU23.js.map +1 -0
  61. package/dist/chunk-TYZ6ZISQ.cjs +368 -0
  62. package/dist/chunk-TYZ6ZISQ.cjs.map +1 -0
  63. package/dist/chunk-US6Y5RLR.cjs +205 -0
  64. package/dist/chunk-US6Y5RLR.cjs.map +1 -0
  65. package/dist/{chunk-QU6N55W6.cjs → chunk-V272B7RM.cjs} +11 -12
  66. package/dist/chunk-V272B7RM.cjs.map +1 -0
  67. package/dist/{chunk-D7T74TVR.js → chunk-WBLT2HL3.js} +19 -4
  68. package/dist/chunk-WBLT2HL3.js.map +1 -0
  69. package/dist/chunk-WE4USCF3.js +226 -0
  70. package/dist/chunk-WE4USCF3.js.map +1 -0
  71. package/dist/chunk-WI3X62RJ.cjs +810 -0
  72. package/dist/chunk-WI3X62RJ.cjs.map +1 -0
  73. package/dist/chunk-X43DWDXB.cjs +346 -0
  74. package/dist/chunk-X43DWDXB.cjs.map +1 -0
  75. package/dist/chunk-X4QMPCTP.cjs +259 -0
  76. package/dist/chunk-X4QMPCTP.cjs.map +1 -0
  77. package/dist/{chunk-X6C7BUWN.cjs → chunk-XQPJ63ZD.cjs} +4 -4
  78. package/dist/{chunk-X6C7BUWN.cjs.map → chunk-XQPJ63ZD.cjs.map} +1 -1
  79. package/dist/chunk-XW2HXQDO.js +302 -0
  80. package/dist/chunk-XW2HXQDO.js.map +1 -0
  81. package/dist/chunk-XWGAT2DA.js +44 -0
  82. package/dist/chunk-XWGAT2DA.js.map +1 -0
  83. package/dist/{chunk-SHWNNZBL.js → chunk-YP34EWWK.js} +9 -10
  84. package/dist/chunk-YP34EWWK.js.map +1 -0
  85. package/dist/chunk-ZN5R6OZB.cjs +1107 -0
  86. package/dist/chunk-ZN5R6OZB.cjs.map +1 -0
  87. package/dist/server/auth/defaults.d.ts +3 -0
  88. package/dist/server/auth/defaults.d.ts.map +1 -0
  89. package/dist/server/auth/helpers.d.ts +14 -0
  90. package/dist/server/auth/helpers.d.ts.map +1 -0
  91. package/dist/server/auth/index.cjs +137 -0
  92. package/dist/server/auth/index.cjs.map +1 -0
  93. package/dist/server/auth/index.d.ts +3 -0
  94. package/dist/server/auth/index.d.ts.map +1 -0
  95. package/dist/server/auth/index.js +127 -0
  96. package/dist/server/auth/index.js.map +1 -0
  97. package/dist/server/handlers/a2a.cjs +15 -7
  98. package/dist/server/handlers/a2a.d.ts +482 -0
  99. package/dist/server/handlers/a2a.d.ts.map +1 -1
  100. package/dist/server/handlers/a2a.js +1 -1
  101. package/dist/server/handlers/agent-builder.cjs +37 -37
  102. package/dist/server/handlers/agent-builder.d.ts +601 -77
  103. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  104. package/dist/server/handlers/agent-builder.js +1 -1
  105. package/dist/server/handlers/agents.cjs +53 -37
  106. package/dist/server/handlers/agents.d.ts +3275 -130
  107. package/dist/server/handlers/agents.d.ts.map +1 -1
  108. package/dist/server/handlers/agents.js +1 -1
  109. package/dist/server/handlers/logs.cjs +7 -7
  110. package/dist/server/handlers/logs.d.ts +135 -27
  111. package/dist/server/handlers/logs.d.ts.map +1 -1
  112. package/dist/server/handlers/logs.js +1 -1
  113. package/dist/server/handlers/mcp.cjs +40 -0
  114. package/dist/server/handlers/mcp.cjs.map +1 -0
  115. package/dist/server/handlers/mcp.d.ts +110 -0
  116. package/dist/server/handlers/mcp.d.ts.map +1 -0
  117. package/dist/server/handlers/mcp.js +3 -0
  118. package/dist/server/handlers/mcp.js.map +1 -0
  119. package/dist/server/handlers/memory.cjs +67 -27
  120. package/dist/server/handlers/memory.d.ts +933 -96
  121. package/dist/server/handlers/memory.d.ts.map +1 -1
  122. package/dist/server/handlers/memory.js +1 -1
  123. package/dist/server/handlers/observability.cjs +21 -5
  124. package/dist/server/handlers/observability.d.ts +119 -12
  125. package/dist/server/handlers/observability.d.ts.map +1 -1
  126. package/dist/server/handlers/observability.js +1 -1
  127. package/dist/server/handlers/scores.cjs +13 -13
  128. package/dist/server/handlers/scores.d.ts +110 -141
  129. package/dist/server/handlers/scores.d.ts.map +1 -1
  130. package/dist/server/handlers/scores.js +1 -1
  131. package/dist/server/handlers/stored-agents.cjs +28 -0
  132. package/dist/server/handlers/stored-agents.cjs.map +1 -0
  133. package/dist/server/handlers/stored-agents.d.ts +289 -0
  134. package/dist/server/handlers/stored-agents.d.ts.map +1 -0
  135. package/dist/server/handlers/stored-agents.js +3 -0
  136. package/dist/server/handlers/stored-agents.js.map +1 -0
  137. package/dist/server/handlers/test-utils.cjs +15 -0
  138. package/dist/server/handlers/test-utils.cjs.map +1 -0
  139. package/dist/server/handlers/test-utils.d.ts +6 -0
  140. package/dist/server/handlers/test-utils.d.ts.map +1 -0
  141. package/dist/server/handlers/test-utils.js +13 -0
  142. package/dist/server/handlers/test-utils.js.map +1 -0
  143. package/dist/server/handlers/tools.cjs +11 -11
  144. package/dist/server/handlers/tools.d.ts +69 -23
  145. package/dist/server/handlers/tools.d.ts.map +1 -1
  146. package/dist/server/handlers/tools.js +1 -1
  147. package/dist/server/handlers/utils.cjs +11 -3
  148. package/dist/server/handlers/utils.d.ts +5 -0
  149. package/dist/server/handlers/utils.d.ts.map +1 -1
  150. package/dist/server/handlers/utils.js +1 -1
  151. package/dist/server/handlers/vector.cjs +31 -7
  152. package/dist/server/handlers/vector.d.ts +93 -9
  153. package/dist/server/handlers/vector.d.ts.map +1 -1
  154. package/dist/server/handlers/vector.js +1 -1
  155. package/dist/server/handlers/voice.cjs +21 -9
  156. package/dist/server/handlers/voice.d.ts +81 -40
  157. package/dist/server/handlers/voice.d.ts.map +1 -1
  158. package/dist/server/handlers/voice.js +1 -1
  159. package/dist/server/handlers/workflows.cjs +69 -37
  160. package/dist/server/handlers/workflows.d.ts +929 -79
  161. package/dist/server/handlers/workflows.d.ts.map +1 -1
  162. package/dist/server/handlers/workflows.js +1 -1
  163. package/dist/server/handlers.cjs +36 -31
  164. package/dist/server/handlers.d.ts +1 -0
  165. package/dist/server/handlers.d.ts.map +1 -1
  166. package/dist/server/handlers.js +12 -11
  167. package/dist/server/schemas/a2a.d.ts +786 -0
  168. package/dist/server/schemas/a2a.d.ts.map +1 -0
  169. package/dist/server/schemas/agent-builder.d.ts +204 -0
  170. package/dist/server/schemas/agent-builder.d.ts.map +1 -0
  171. package/dist/server/schemas/agents.d.ts +1375 -0
  172. package/dist/server/schemas/agents.d.ts.map +1 -0
  173. package/dist/server/schemas/common.d.ts +179 -0
  174. package/dist/server/schemas/common.d.ts.map +1 -0
  175. package/dist/server/schemas/logs.d.ts +124 -0
  176. package/dist/server/schemas/logs.d.ts.map +1 -0
  177. package/dist/server/schemas/mcp.d.ts +299 -0
  178. package/dist/server/schemas/mcp.d.ts.map +1 -0
  179. package/dist/server/schemas/memory.d.ts +998 -0
  180. package/dist/server/schemas/memory.d.ts.map +1 -0
  181. package/dist/server/schemas/observability.d.ts +402 -0
  182. package/dist/server/schemas/observability.d.ts.map +1 -0
  183. package/dist/server/schemas/scores.d.ts +259 -0
  184. package/dist/server/schemas/scores.d.ts.map +1 -0
  185. package/dist/server/schemas/stored-agents.d.ts +792 -0
  186. package/dist/server/schemas/stored-agents.d.ts.map +1 -0
  187. package/dist/server/schemas/vectors.d.ts +107 -0
  188. package/dist/server/schemas/vectors.d.ts.map +1 -0
  189. package/dist/server/schemas/workflows.d.ts +608 -0
  190. package/dist/server/schemas/workflows.d.ts.map +1 -0
  191. package/dist/server/server-adapter/index.cjs +481 -0
  192. package/dist/server/server-adapter/index.cjs.map +1 -0
  193. package/dist/server/server-adapter/index.d.ts +91 -0
  194. package/dist/server/server-adapter/index.d.ts.map +1 -0
  195. package/dist/server/server-adapter/index.js +466 -0
  196. package/dist/server/server-adapter/index.js.map +1 -0
  197. package/dist/server/server-adapter/openapi-utils.d.ts +59 -0
  198. package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
  199. package/dist/server/server-adapter/redact.d.ts +26 -0
  200. package/dist/server/server-adapter/redact.d.ts.map +1 -0
  201. package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
  202. package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
  203. package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
  204. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
  205. package/dist/server/server-adapter/routes/agents.d.ts +3 -0
  206. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
  207. package/dist/server/server-adapter/routes/index.d.ts +50 -0
  208. package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
  209. package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
  210. package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
  211. package/dist/server/server-adapter/routes/logs.d.ts +3 -0
  212. package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
  213. package/dist/server/server-adapter/routes/mcp.d.ts +9 -0
  214. package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -0
  215. package/dist/server/server-adapter/routes/memory.d.ts +3 -0
  216. package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
  217. package/dist/server/server-adapter/routes/observability.d.ts +3 -0
  218. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
  219. package/dist/server/server-adapter/routes/route-builder.d.ts +52 -0
  220. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
  221. package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
  222. package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
  223. package/dist/server/server-adapter/routes/stored-agents.d.ts +8 -0
  224. package/dist/server/server-adapter/routes/stored-agents.d.ts.map +1 -0
  225. package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
  226. package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
  227. package/dist/server/server-adapter/routes/tools.d.ts +3 -0
  228. package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
  229. package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
  230. package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
  231. package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
  232. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
  233. package/dist/server/utils.d.ts +1 -1
  234. package/dist/server/utils.d.ts.map +1 -1
  235. package/dist/token-GVZ7HRD7.js +62 -0
  236. package/dist/{token-C3IMNCC4.js.map → token-GVZ7HRD7.js.map} +1 -1
  237. package/dist/{token-C3IMNCC4.js → token-JGA3ZWAN.js} +5 -6
  238. package/dist/token-JGA3ZWAN.js.map +1 -0
  239. package/dist/token-VFONFWVS.cjs +64 -0
  240. package/dist/{token-375W3LEI.cjs.map → token-VFONFWVS.cjs.map} +1 -1
  241. package/dist/{token-375W3LEI.cjs → token-ZOD6YIQ3.cjs} +7 -8
  242. package/dist/token-ZOD6YIQ3.cjs.map +1 -0
  243. package/dist/token-util-7R2ZFIXO.js +7 -0
  244. package/dist/{token-util-E5QO2RCL.js.map → token-util-7R2ZFIXO.js.map} +1 -1
  245. package/dist/token-util-BLJZJDBZ.cjs +9 -0
  246. package/dist/{token-util-CV3RRG6K.cjs.map → token-util-BLJZJDBZ.cjs.map} +1 -1
  247. package/dist/token-util-VGZUWSNR.cjs +9 -0
  248. package/dist/token-util-VGZUWSNR.cjs.map +1 -0
  249. package/dist/token-util-VKTPZLSE.js +7 -0
  250. package/dist/token-util-VKTPZLSE.js.map +1 -0
  251. package/package.json +30 -5
  252. package/dist/chunk-2IS5WICF.js +0 -23036
  253. package/dist/chunk-2IS5WICF.js.map +0 -1
  254. package/dist/chunk-2YZH5PH6.cjs +0 -200
  255. package/dist/chunk-2YZH5PH6.cjs.map +0 -1
  256. package/dist/chunk-3AMNUUZF.js +0 -124
  257. package/dist/chunk-3AMNUUZF.js.map +0 -1
  258. package/dist/chunk-3F52QCI4.js +0 -192
  259. package/dist/chunk-3F52QCI4.js.map +0 -1
  260. package/dist/chunk-4JF5WXPL.js +0 -502
  261. package/dist/chunk-4JF5WXPL.js.map +0 -1
  262. package/dist/chunk-73PAWDM5.js +0 -83
  263. package/dist/chunk-73PAWDM5.js.map +0 -1
  264. package/dist/chunk-A24TSVEZ.cjs +0 -130
  265. package/dist/chunk-A24TSVEZ.cjs.map +0 -1
  266. package/dist/chunk-A2NPD5N6.cjs +0 -517
  267. package/dist/chunk-A2NPD5N6.cjs.map +0 -1
  268. package/dist/chunk-B3Z6J745.js +0 -122
  269. package/dist/chunk-B3Z6J745.js.map +0 -1
  270. package/dist/chunk-BTWIR2B7.cjs +0 -28
  271. package/dist/chunk-BTWIR2B7.cjs.map +0 -1
  272. package/dist/chunk-D7T74TVR.js.map +0 -1
  273. package/dist/chunk-EHACNWDL.cjs +0 -681
  274. package/dist/chunk-EHACNWDL.cjs.map +0 -1
  275. package/dist/chunk-FPBYKMIS.js.map +0 -1
  276. package/dist/chunk-GLAZTMX3.cjs +0 -128
  277. package/dist/chunk-GLAZTMX3.cjs.map +0 -1
  278. package/dist/chunk-ID6JYDNL.cjs +0 -23075
  279. package/dist/chunk-ID6JYDNL.cjs.map +0 -1
  280. package/dist/chunk-KF3RI45U.cjs +0 -172
  281. package/dist/chunk-KF3RI45U.cjs.map +0 -1
  282. package/dist/chunk-KJIDZQRA.cjs.map +0 -1
  283. package/dist/chunk-KWH5QBXP.js +0 -123
  284. package/dist/chunk-KWH5QBXP.js.map +0 -1
  285. package/dist/chunk-ND5OKOMT.js +0 -165
  286. package/dist/chunk-ND5OKOMT.js.map +0 -1
  287. package/dist/chunk-PPMIB3FQ.cjs +0 -88
  288. package/dist/chunk-PPMIB3FQ.cjs.map +0 -1
  289. package/dist/chunk-QU6N55W6.cjs.map +0 -1
  290. package/dist/chunk-S54HNARD.cjs +0 -131
  291. package/dist/chunk-S54HNARD.cjs.map +0 -1
  292. package/dist/chunk-SHWNNZBL.js.map +0 -1
  293. package/dist/chunk-SZIFSF4T.js +0 -25
  294. package/dist/chunk-SZIFSF4T.js.map +0 -1
  295. package/dist/chunk-W2KMU354.cjs.map +0 -1
  296. package/dist/chunk-X3MICMI2.cjs +0 -620
  297. package/dist/chunk-X3MICMI2.cjs.map +0 -1
  298. package/dist/chunk-Z2O5YVHY.js +0 -661
  299. package/dist/chunk-Z2O5YVHY.js.map +0 -1
  300. package/dist/chunk-ZJ6KEY6H.js +0 -600
  301. package/dist/chunk-ZJ6KEY6H.js.map +0 -1
  302. package/dist/token-util-CV3RRG6K.cjs +0 -9
  303. package/dist/token-util-E5QO2RCL.js +0 -7
@@ -0,0 +1,211 @@
1
+ 'use strict';
2
+
3
+ var chunk5W4RPVTK_cjs = require('./chunk-5W4RPVTK.cjs');
4
+ var chunkX4QMPCTP_cjs = require('./chunk-X4QMPCTP.cjs');
5
+ var chunkMCYD5LW7_cjs = require('./chunk-MCYD5LW7.cjs');
6
+ var chunkGU4EWMZB_cjs = require('./chunk-GU4EWMZB.cjs');
7
+ var chunkH2RMXG2Q_cjs = require('./chunk-H2RMXG2Q.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 = chunkH2RMXG2Q_cjs.createRoute({
24
+ method: "GET",
25
+ path: "/api/tools",
26
+ responseType: "json",
27
+ responseSchema: chunkX4QMPCTP_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 = chunkH2RMXG2Q_cjs.createRoute({
53
+ method: "GET",
54
+ path: "/api/tools/:toolId",
55
+ responseType: "json",
56
+ pathParamSchema: chunkX4QMPCTP_cjs.toolIdPathParams,
57
+ responseSchema: chunkX4QMPCTP_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 = chunkH2RMXG2Q_cjs.createRoute({
84
+ method: "POST",
85
+ path: "/api/tools/:toolId/execute",
86
+ responseType: "json",
87
+ pathParamSchema: chunkX4QMPCTP_cjs.toolIdPathParams,
88
+ queryParamSchema: chunkMCYD5LW7_cjs.optionalRunIdSchema,
89
+ bodySchema: chunkX4QMPCTP_cjs.executeToolContextBodySchema,
90
+ responseSchema: chunkX4QMPCTP_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 = chunkH2RMXG2Q_cjs.createRoute({
137
+ method: "GET",
138
+ path: "/api/agents/:agentId/tools/:toolId",
139
+ responseType: "json",
140
+ pathParamSchema: chunkX4QMPCTP_cjs.agentToolPathParams,
141
+ responseSchema: chunkX4QMPCTP_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 = chunkH2RMXG2Q_cjs.createRoute({
168
+ method: "POST",
169
+ path: "/api/agents/:agentId/tools/:toolId/execute",
170
+ responseType: "json",
171
+ pathParamSchema: chunkX4QMPCTP_cjs.agentToolPathParams,
172
+ bodySchema: chunkX4QMPCTP_cjs.executeToolBodySchema,
173
+ responseSchema: chunkX4QMPCTP_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-DHWPHLGF.cjs.map
211
+ //# sourceMappingURL=chunk-DHWPHLGF.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":";;;;;;;;;;;;;;AAAA,IAAA,aAAA,GAAA;AAAAA,0BAAA,CAAA,aAAA,EAAA;AAAA,EAAA,wBAAA,EAAA,MAAA,wBAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,oBAAA,EAAA,MAAA,oBAAA;AAAA,EAAA,oBAAA,EAAA,MAAA,oBAAA;AAAA,EAAA,gBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAuBO,IAAM,mBAAmBC,6BAAA,CAAY;AAAA,EAC1C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,YAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgBC,yCAAA;AAAA,EAChB,OAAA,EAAS,gBAAA;AAAA,EACT,WAAA,EAAa,qDAAA;AAAA,EACb,IAAA,EAAM,CAAC,OAAO,CAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,OAAM,KAAM;AACpC,IAAA,IAAI;AACF,MAAA,MAAM,QAAA,GAAW,KAAA,IAAS,MAAA,CAAO,SAAA,MAAe,EAAC;AAEjD,MAAA,MAAM,eAAA,GAAkB,MAAA,CAAO,OAAA,CAAQ,QAAQ,CAAA,CAAE,MAAA;AAAA,QAC/C,CAAC,GAAA,EAAK,CAAC,EAAA,EAAI,KAAK,CAAA,KAAM;AACpB,UAAA,MAAM,IAAA,GAAO,KAAA;AACb,UAAA,GAAA,CAAI,EAAE,CAAA,GAAI;AAAA,YACR,GAAG,IAAA;AAAA,YACH,WAAA,EAAa,KAAK,WAAA,GAAcC,2BAAA,CAAUC,0BAAgB,IAAA,CAAK,WAAW,CAAC,CAAA,GAAI,MAAA;AAAA,YAC/E,YAAA,EAAc,KAAK,YAAA,GAAeD,2BAAA,CAAUC,0BAAgB,IAAA,CAAK,YAAY,CAAC,CAAA,GAAI;AAAA,WACpF;AACA,UAAA,OAAO,GAAA;AAAA,QACT,CAAA;AAAA,QACA;AAAC,OACH;AAEA,MAAA,OAAO,eAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,qBAAqB,CAAA;AAAA,IACjD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,uBAAuBJ,6BAAA,CAAY;AAAA,EAC9C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,oBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBK,kCAAA;AAAA,EACjB,cAAA,EAAgBC,sCAAA;AAAA,EAChB,OAAA,EAAS,gBAAA;AAAA,EACT,WAAA,EAAa,4EAAA;AAAA,EACb,IAAA,EAAM,CAAC,OAAO,CAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,KAAA,EAAO,QAAO,KAAM;AAC5C,IAAA,IAAI;AACF,MAAA,IAAI,IAAA;AAGJ,MAAA,IAAI,SAAS,MAAA,CAAO,IAAA,CAAK,KAAK,CAAA,CAAE,SAAS,CAAA,EAAG;AAC1C,QAAA,IAAA,GAAO,MAAA,CAAO,OAAO,KAAK,CAAA,CAAE,KAAK,CAAC,CAAA,KAAW,CAAA,CAAE,EAAA,KAAO,MAAM,CAAA;AAAA,MAC9D,CAAA,MAAO;AACL,QAAA,IAAA,GAAO,MAAA,CAAO,YAAY,MAAM,CAAA;AAAA,MAClC;AAEA,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,MAAM,IAAIC,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,kBAAkB,CAAA;AAAA,MAC5D;AAEA,MAAA,MAAM,cAAA,GAAiB;AAAA,QACrB,GAAG,IAAA;AAAA,QACH,WAAA,EAAa,KAAK,WAAA,GAAcL,2BAAA,CAAUC,0BAAgB,IAAA,CAAK,WAAW,CAAC,CAAA,GAAI,MAAA;AAAA,QAC/E,YAAA,EAAc,KAAK,YAAA,GAAeD,2BAAA,CAAUC,0BAAgB,IAAA,CAAK,YAAY,CAAC,CAAA,GAAI;AAAA,OACpF;AAEA,MAAA,OAAO,cAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,oBAAoB,CAAA;AAAA,IAChD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,qBAAqBJ,6BAAA,CAAY;AAAA,EAC5C,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,4BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBK,kCAAA;AAAA,EACjB,gBAAA,EAAkBG,qCAAA;AAAA,EAClB,UAAA,EAAYC,8CAAA;AAAA,EACZ,cAAA,EAAgBC,2CAAA;AAAA,EAChB,OAAA,EAAS,cAAA;AAAA,EACT,WAAA,EAAa,uDAAA;AAAA,EACb,IAAA,EAAM,CAAC,OAAO,CAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,KAAA,EAAO,eAAQC,OAAA,EAAO,cAAA,EAAgB,GAAG,UAAA,EAAW,KAAM;AAClF,IAAA,IAAI;AACF,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAIJ,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,uBAAuB,CAAA;AAAA,MACjE;AAEA,MAAA,IAAI,IAAA;AAGJ,MAAA,IAAII,WAAS,MAAA,CAAO,IAAA,CAAKA,OAAK,CAAA,CAAE,SAAS,CAAA,EAAG;AAC1C,QAAA,IAAA,GAAO,MAAA,CAAO,OAAOA,OAAK,CAAA,CAAE,KAAK,CAAC,CAAA,KAAW,CAAA,CAAE,EAAA,KAAO,MAAM,CAAA;AAAA,MAC9D,CAAA,MAAO;AACL,QAAA,IAAA,GAAO,MAAA,CAAO,YAAY,MAAM,CAAA;AAAA,MAClC;AAEA,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,MAAM,IAAIJ,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,kBAAkB,CAAA;AAAA,MAC5D;AAEA,MAAA,IAAI,CAAC,MAAM,OAAA,EAAS;AAClB,QAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0BAA0B,CAAA;AAAA,MACpE;AAEA,MAAA,MAAM,EAAE,MAAK,GAAI,UAAA;AAEjB,MAAAK,8BAAA,CAAa,EAAE,MAAM,CAAA;AAErB,MAAA,IAAIC,kBAAA,CAAa,IAAI,CAAA,EAAG;AACtB,QAAA,MAAMC,OAAAA,GAAS,MAAO,IAAA,CAAa,OAAA,CAAQ,IAAI,CAAA;AAC/C,QAAA,OAAOA,OAAAA;AAAA,MACT;AAEA,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,OAAA,CAAQ,IAAA,EAAO;AAAA,QACvC,MAAA;AAAA,QACA,cAAA;AAAA;AAAA,QAEA,cAAA,EAAgB,EAAE,WAAA,EAAa,MAAA,EAAU;AAAA,QACzC,GAAI,KAAA,GACA;AAAA,UACE,QAAA,EAAU;AAAA,YACR,KAAA;AAAA,YACA,SAAS,YAAY;AAAA,YAAC;AAAA;AACxB,YAEF;AAAC,OACN,CAAA;AACD,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAOV,6BAAA,CAAY,OAAO,sBAAsB,CAAA;AAAA,IAClD;AAAA,EACF;AACF,CAAC;AAMM,IAAM,uBAAuBJ,6BAAA,CAAY;AAAA,EAC9C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,oCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBe,qCAAA;AAAA,EACjB,cAAA,EAAgBT,sCAAA;AAAA,EAChB,OAAA,EAAS,gBAAA;AAAA,EACT,WAAA,EAAa,2DAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,SAAS,OAAO,EAAE,QAAQ,OAAA,EAAS,MAAA,EAAQ,gBAAe,KAAM;AAC9D,IAAA,IAAI;AACF,MAAA,MAAM,KAAA,GAAQ,OAAA,GAAU,MAAA,CAAO,YAAA,CAAa,OAAO,CAAA,GAAI,IAAA;AACvD,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAIC,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,mBAAmB,CAAA;AAAA,MAC7D;AAEA,MAAA,MAAM,aAAa,MAAM,KAAA,CAAM,SAAA,CAAU,EAAE,gBAAgB,CAAA;AAE3D,MAAA,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,UAAA,IAAc,EAAE,CAAA,CAAE,IAAA,CAAK,CAACS,KAAAA,KAAcA,KAAAA,CAAK,EAAA,KAAO,MAAM,CAAA;AAEnF,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,MAAM,IAAIT,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,kBAAkB,CAAA;AAAA,MAC5D;AAEA,MAAA,MAAM,cAAA,GAAiB;AAAA,QACrB,GAAG,IAAA;AAAA,QACH,WAAA,EAAa,KAAK,WAAA,GAAcL,2BAAA,CAAUC,0BAAgB,IAAA,CAAK,WAAW,CAAC,CAAA,GAAI,MAAA;AAAA,QAC/E,YAAA,EAAc,KAAK,YAAA,GAAeD,2BAAA,CAAUC,0BAAgB,IAAA,CAAK,YAAY,CAAC,CAAA,GAAI;AAAA,OACpF;AAEA,MAAA,OAAO,cAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,0BAA0B,CAAA;AAAA,IACtD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,2BAA2BJ,6BAAA,CAAY;AAAA,EAClD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,4CAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBe,qCAAA;AAAA,EACjB,UAAA,EAAYE,uCAAA;AAAA,EACZ,cAAA,EAAgBP,2CAAA;AAAA,EAChB,OAAA,EAAS,oBAAA;AAAA,EACT,WAAA,EAAa,6EAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,SAAS,MAAA,EAAQ,IAAA,EAAM,gBAAe,KAAM;AACpE,IAAA,IAAI;AACF,MAAA,MAAM,KAAA,GAAQ,OAAA,GAAU,MAAA,CAAO,YAAA,CAAa,OAAO,CAAA,GAAI,IAAA;AACvD,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAIH,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,kBAAkB,CAAA;AAAA,MAC5D;AAEA,MAAA,MAAM,aAAa,MAAM,KAAA,CAAM,SAAA,CAAU,EAAE,gBAAgB,CAAA;AAE3D,MAAA,MAAM,IAAA,GAAO,MAAA,CAAO,MAAA,CAAO,UAAA,IAAc,EAAE,CAAA,CAAE,IAAA,CAAK,CAACS,KAAAA,KAAcA,KAAAA,CAAK,EAAA,KAAO,MAAM,CAAA;AAEnF,MAAA,IAAI,CAAC,IAAA,EAAM;AACT,QAAA,MAAM,IAAIT,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,kBAAkB,CAAA;AAAA,MAC5D;AAEA,MAAA,IAAI,CAAC,MAAM,OAAA,EAAS;AAClB,QAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0BAA0B,CAAA;AAAA,MACpE;AAEA,MAAA,MAAM,MAAA,GAAS,MAAM,IAAA,CAAK,OAAA,CAAQ,IAAA,EAAM;AAAA,QACtC,MAAA;AAAA,QACA,cAAA;AAAA;AAAA,QAEA,cAAA,EAAgB,EAAE,WAAA,EAAa,MAAA;AAAU,OAC1C,CAAA;AAED,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAOH,6BAAA,CAAY,OAAO,4BAA4B,CAAA;AAAA,IACxD;AAAA,EACF;AACF,CAAC","file":"chunk-DHWPHLGF.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"]}
@@ -0,0 +1,328 @@
1
+ import { successResponseSchema } from './chunk-HT4LP3BO.js';
2
+ import { createRoute } from './chunk-SXVANU23.js';
3
+ import { handleError } from './chunk-UXGQZUYZ.js';
4
+ import { HTTPException } from './chunk-6QWQZI4Q.js';
5
+ import { __export } from './chunk-PR4QN5HX.js';
6
+ import z from 'zod';
7
+
8
+ // src/server/handlers/vector.ts
9
+ var vector_exports = {};
10
+ __export(vector_exports, {
11
+ CREATE_INDEX_ROUTE: () => CREATE_INDEX_ROUTE,
12
+ DELETE_INDEX_ROUTE: () => DELETE_INDEX_ROUTE,
13
+ DESCRIBE_INDEX_ROUTE: () => DESCRIBE_INDEX_ROUTE,
14
+ LIST_INDEXES_ROUTE: () => LIST_INDEXES_ROUTE,
15
+ QUERY_VECTORS_ROUTE: () => QUERY_VECTORS_ROUTE,
16
+ UPSERT_VECTORS_ROUTE: () => UPSERT_VECTORS_ROUTE,
17
+ createIndex: () => createIndex,
18
+ deleteIndex: () => deleteIndex,
19
+ describeIndex: () => describeIndex,
20
+ listIndexes: () => listIndexes,
21
+ queryVectors: () => queryVectors,
22
+ upsertVectors: () => upsertVectors
23
+ });
24
+ var vectorNamePathParams = z.object({
25
+ vectorName: z.string().describe("Name of the vector store")
26
+ });
27
+ var vectorIndexPathParams = vectorNamePathParams.extend({
28
+ indexName: z.string().describe("Name of the index")
29
+ });
30
+ var indexBodyBaseSchema = z.object({
31
+ indexName: z.string()
32
+ });
33
+ var upsertVectorsBodySchema = indexBodyBaseSchema.extend({
34
+ vectors: z.array(z.array(z.number())),
35
+ metadata: z.array(z.record(z.string(), z.any())).optional(),
36
+ ids: z.array(z.string()).optional()
37
+ });
38
+ var createIndexBodySchema = indexBodyBaseSchema.extend({
39
+ dimension: z.number(),
40
+ metric: z.enum(["cosine", "euclidean", "dotproduct"]).optional()
41
+ });
42
+ var queryVectorsBodySchema = indexBodyBaseSchema.extend({
43
+ queryVector: z.array(z.number()),
44
+ topK: z.number().optional(),
45
+ filter: z.record(z.string(), z.any()).optional(),
46
+ includeVector: z.boolean().optional()
47
+ });
48
+ var upsertVectorsResponseSchema = z.object({
49
+ ids: z.array(z.string())
50
+ });
51
+ var createIndexResponseSchema = successResponseSchema;
52
+ var queryVectorsResponseSchema = z.array(z.unknown());
53
+ var listIndexesResponseSchema = z.array(z.string());
54
+ var describeIndexResponseSchema = z.object({
55
+ dimension: z.number(),
56
+ count: z.number(),
57
+ metric: z.string().optional()
58
+ });
59
+ var deleteIndexResponseSchema = successResponseSchema;
60
+
61
+ // src/server/handlers/vector.ts
62
+ function getVector(mastra, vectorName) {
63
+ if (!vectorName) {
64
+ throw new HTTPException(400, { message: "Vector name is required" });
65
+ }
66
+ const vector = mastra.getVector(vectorName);
67
+ if (!vector) {
68
+ throw new HTTPException(404, { message: `Vector store ${vectorName} not found` });
69
+ }
70
+ return vector;
71
+ }
72
+ async function upsertVectors({
73
+ mastra,
74
+ vectorName,
75
+ indexName,
76
+ vectors,
77
+ metadata,
78
+ ids
79
+ }) {
80
+ try {
81
+ if (!indexName || !vectors || !Array.isArray(vectors)) {
82
+ throw new HTTPException(400, { message: "Invalid request index. indexName and vectors array are required." });
83
+ }
84
+ const vector = getVector(mastra, vectorName);
85
+ const result = await vector.upsert({ indexName, vectors, metadata, ids });
86
+ return { ids: result };
87
+ } catch (error) {
88
+ return handleError(error, "Error upserting vectors");
89
+ }
90
+ }
91
+ async function createIndex({
92
+ mastra,
93
+ vectorName,
94
+ indexName,
95
+ dimension,
96
+ metric
97
+ }) {
98
+ try {
99
+ if (!indexName || typeof dimension !== "number" || dimension <= 0) {
100
+ throw new HTTPException(400, {
101
+ message: "Invalid request index, indexName and positive dimension number are required."
102
+ });
103
+ }
104
+ if (metric && !["cosine", "euclidean", "dotproduct"].includes(metric)) {
105
+ throw new HTTPException(400, { message: "Invalid metric. Must be one of: cosine, euclidean, dotproduct" });
106
+ }
107
+ const vector = getVector(mastra, vectorName);
108
+ await vector.createIndex({ indexName, dimension, metric });
109
+ return { success: true };
110
+ } catch (error) {
111
+ return handleError(error, "Error creating index");
112
+ }
113
+ }
114
+ async function queryVectors({
115
+ mastra,
116
+ vectorName,
117
+ indexName,
118
+ queryVector,
119
+ topK,
120
+ filter,
121
+ includeVector
122
+ }) {
123
+ try {
124
+ if (!indexName || !queryVector || !Array.isArray(queryVector)) {
125
+ throw new HTTPException(400, { message: "Invalid request query. indexName and queryVector array are required." });
126
+ }
127
+ const vector = getVector(mastra, vectorName);
128
+ const results = await vector.query({ indexName, queryVector, topK, filter, includeVector });
129
+ return results;
130
+ } catch (error) {
131
+ return handleError(error, "Error querying vectors");
132
+ }
133
+ }
134
+ async function listIndexes({ mastra, vectorName }) {
135
+ try {
136
+ const vector = getVector(mastra, vectorName);
137
+ const indexes = await vector.listIndexes();
138
+ return indexes.filter(Boolean);
139
+ } catch (error) {
140
+ return handleError(error, "Error listing indexes");
141
+ }
142
+ }
143
+ async function describeIndex({
144
+ mastra,
145
+ vectorName,
146
+ indexName
147
+ }) {
148
+ try {
149
+ if (!indexName) {
150
+ throw new HTTPException(400, { message: "Index name is required" });
151
+ }
152
+ const vector = getVector(mastra, vectorName);
153
+ const stats = await vector.describeIndex({ indexName });
154
+ return {
155
+ dimension: stats.dimension,
156
+ count: stats.count,
157
+ metric: stats.metric?.toLowerCase()
158
+ };
159
+ } catch (error) {
160
+ return handleError(error, "Error describing index");
161
+ }
162
+ }
163
+ async function deleteIndex({
164
+ mastra,
165
+ vectorName,
166
+ indexName
167
+ }) {
168
+ try {
169
+ if (!indexName) {
170
+ throw new HTTPException(400, { message: "Index name is required" });
171
+ }
172
+ const vector = getVector(mastra, vectorName);
173
+ await vector.deleteIndex({ indexName });
174
+ return { success: true };
175
+ } catch (error) {
176
+ return handleError(error, "Error deleting index");
177
+ }
178
+ }
179
+ var UPSERT_VECTORS_ROUTE = createRoute({
180
+ method: "POST",
181
+ path: "/api/vector/:vectorName/upsert",
182
+ responseType: "json",
183
+ pathParamSchema: vectorNamePathParams,
184
+ bodySchema: upsertVectorsBodySchema,
185
+ responseSchema: upsertVectorsResponseSchema,
186
+ summary: "Upsert vectors",
187
+ description: "Inserts or updates vectors in the specified index",
188
+ tags: ["Vectors"],
189
+ handler: async ({ mastra, vectorName, ...params }) => {
190
+ try {
191
+ const { indexName, vectors, metadata, ids } = params;
192
+ if (!indexName || !vectors || !Array.isArray(vectors)) {
193
+ throw new HTTPException(400, { message: "Invalid request index. indexName and vectors array are required." });
194
+ }
195
+ const vector = getVector(mastra, vectorName);
196
+ const result = await vector.upsert({ indexName, vectors, metadata, ids });
197
+ return { ids: result };
198
+ } catch (error) {
199
+ return handleError(error, "Error upserting vectors");
200
+ }
201
+ }
202
+ });
203
+ var CREATE_INDEX_ROUTE = createRoute({
204
+ method: "POST",
205
+ path: "/api/vector/:vectorName/create-index",
206
+ responseType: "json",
207
+ pathParamSchema: vectorNamePathParams,
208
+ bodySchema: createIndexBodySchema,
209
+ responseSchema: createIndexResponseSchema,
210
+ summary: "Create index",
211
+ description: "Creates a new vector index with the specified dimension and metric",
212
+ tags: ["Vectors"],
213
+ handler: async ({ mastra, vectorName, ...params }) => {
214
+ try {
215
+ const { indexName, dimension, metric } = params;
216
+ if (!indexName || typeof dimension !== "number" || dimension <= 0) {
217
+ throw new HTTPException(400, {
218
+ message: "Invalid request index, indexName and positive dimension number are required."
219
+ });
220
+ }
221
+ if (metric && !["cosine", "euclidean", "dotproduct"].includes(metric)) {
222
+ throw new HTTPException(400, { message: "Invalid metric. Must be one of: cosine, euclidean, dotproduct" });
223
+ }
224
+ const vector = getVector(mastra, vectorName);
225
+ await vector.createIndex({ indexName, dimension, metric });
226
+ return { success: true };
227
+ } catch (error) {
228
+ return handleError(error, "Error creating index");
229
+ }
230
+ }
231
+ });
232
+ var QUERY_VECTORS_ROUTE = createRoute({
233
+ method: "POST",
234
+ path: "/api/vector/:vectorName/query",
235
+ responseType: "json",
236
+ pathParamSchema: vectorNamePathParams,
237
+ bodySchema: queryVectorsBodySchema,
238
+ responseSchema: queryVectorsResponseSchema,
239
+ summary: "Query vectors",
240
+ description: "Performs a similarity search on the vector index",
241
+ tags: ["Vectors"],
242
+ handler: async ({ mastra, vectorName, ...params }) => {
243
+ try {
244
+ const { indexName, queryVector, topK, filter, includeVector } = params;
245
+ if (!indexName || !queryVector || !Array.isArray(queryVector)) {
246
+ throw new HTTPException(400, {
247
+ message: "Invalid request query. indexName and queryVector array are required."
248
+ });
249
+ }
250
+ const vector = getVector(mastra, vectorName);
251
+ const results = await vector.query({ indexName, queryVector, topK, filter, includeVector });
252
+ return results;
253
+ } catch (error) {
254
+ return handleError(error, "Error querying vectors");
255
+ }
256
+ }
257
+ });
258
+ var LIST_INDEXES_ROUTE = createRoute({
259
+ method: "GET",
260
+ path: "/api/vector/:vectorName/indexes",
261
+ responseType: "json",
262
+ pathParamSchema: vectorNamePathParams,
263
+ responseSchema: listIndexesResponseSchema,
264
+ summary: "List indexes",
265
+ description: "Returns a list of all indexes in the vector store",
266
+ tags: ["Vectors"],
267
+ handler: async ({ mastra, vectorName }) => {
268
+ try {
269
+ const vector = getVector(mastra, vectorName);
270
+ const indexes = await vector.listIndexes();
271
+ return indexes.filter(Boolean);
272
+ } catch (error) {
273
+ return handleError(error, "Error listing indexes");
274
+ }
275
+ }
276
+ });
277
+ var DESCRIBE_INDEX_ROUTE = createRoute({
278
+ method: "GET",
279
+ path: "/api/vector/:vectorName/indexes/:indexName",
280
+ responseType: "json",
281
+ pathParamSchema: vectorIndexPathParams,
282
+ responseSchema: describeIndexResponseSchema,
283
+ summary: "Describe index",
284
+ description: "Returns statistics and metadata for a specific index",
285
+ tags: ["Vectors"],
286
+ handler: async ({ mastra, vectorName, indexName }) => {
287
+ try {
288
+ if (!indexName) {
289
+ throw new HTTPException(400, { message: "Index name is required" });
290
+ }
291
+ const vector = getVector(mastra, vectorName);
292
+ const stats = await vector.describeIndex({ indexName });
293
+ return {
294
+ dimension: stats.dimension,
295
+ count: stats.count,
296
+ metric: stats.metric?.toLowerCase()
297
+ };
298
+ } catch (error) {
299
+ return handleError(error, "Error describing index");
300
+ }
301
+ }
302
+ });
303
+ var DELETE_INDEX_ROUTE = createRoute({
304
+ method: "DELETE",
305
+ path: "/api/vector/:vectorName/indexes/:indexName",
306
+ responseType: "json",
307
+ pathParamSchema: vectorIndexPathParams,
308
+ responseSchema: deleteIndexResponseSchema,
309
+ summary: "Delete index",
310
+ description: "Deletes a vector index and all its data",
311
+ tags: ["Vectors"],
312
+ handler: async ({ mastra, vectorName, indexName }) => {
313
+ try {
314
+ if (!indexName) {
315
+ throw new HTTPException(400, { message: "Index name is required" });
316
+ }
317
+ const vector = getVector(mastra, vectorName);
318
+ await vector.deleteIndex({ indexName });
319
+ return { success: true };
320
+ } catch (error) {
321
+ return handleError(error, "Error deleting index");
322
+ }
323
+ }
324
+ });
325
+
326
+ export { CREATE_INDEX_ROUTE, DELETE_INDEX_ROUTE, DESCRIBE_INDEX_ROUTE, LIST_INDEXES_ROUTE, QUERY_VECTORS_ROUTE, UPSERT_VECTORS_ROUTE, createIndex, deleteIndex, describeIndex, listIndexes, queryVectors, upsertVectors, vector_exports };
327
+ //# sourceMappingURL=chunk-DRUNNM4C.js.map
328
+ //# sourceMappingURL=chunk-DRUNNM4C.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/vector.ts","../src/server/schemas/vectors.ts"],"names":[],"mappings":"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","file":"chunk-DRUNNM4C.js","sourcesContent":["import type { MastraVector, QueryResult, IndexStats } from '@mastra/core/vector';\nimport { HTTPException } from '../http-exception';\nimport {\n vectorNamePathParams,\n vectorIndexPathParams,\n upsertVectorsBodySchema,\n upsertVectorsResponseSchema,\n createIndexBodySchema,\n createIndexResponseSchema,\n queryVectorsBodySchema,\n queryVectorsResponseSchema,\n listIndexesResponseSchema,\n describeIndexResponseSchema,\n deleteIndexResponseSchema,\n} from '../schemas/vectors';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\n\ninterface VectorContext extends Context {\n vectorName?: string;\n}\n\ninterface UpsertRequest {\n indexName: string;\n vectors: number[][];\n metadata?: Record<string, any>[];\n ids?: string[];\n}\n\ninterface CreateIndexRequest {\n indexName: string;\n dimension: number;\n metric?: 'cosine' | 'euclidean' | 'dotproduct';\n}\n\ninterface QueryRequest {\n indexName: string;\n queryVector: number[];\n topK?: number;\n filter?: Record<string, any>;\n includeVector?: boolean;\n}\n\nfunction getVector(mastra: Context['mastra'], vectorName?: string): MastraVector {\n if (!vectorName) {\n throw new HTTPException(400, { message: 'Vector name is required' });\n }\n\n const vector = mastra.getVector(vectorName);\n if (!vector) {\n throw new HTTPException(404, { message: `Vector store ${vectorName} not found` });\n }\n\n return vector;\n}\n\n// Upsert vectors\nexport async function upsertVectors({\n mastra,\n vectorName,\n indexName,\n vectors,\n metadata,\n ids,\n}: VectorContext & UpsertRequest) {\n try {\n if (!indexName || !vectors || !Array.isArray(vectors)) {\n throw new HTTPException(400, { message: 'Invalid request index. indexName and vectors array are required.' });\n }\n\n const vector = getVector(mastra, vectorName);\n const result = await vector.upsert({ indexName, vectors, metadata, ids });\n return { ids: result };\n } catch (error) {\n return handleError(error, 'Error upserting vectors');\n }\n}\n\n// Create index\nexport async function createIndex({\n mastra,\n vectorName,\n indexName,\n dimension,\n metric,\n}: Pick<VectorContext, 'mastra' | 'vectorName'> & CreateIndexRequest) {\n try {\n if (!indexName || typeof dimension !== 'number' || dimension <= 0) {\n throw new HTTPException(400, {\n message: 'Invalid request index, indexName and positive dimension number are required.',\n });\n }\n\n if (metric && !['cosine', 'euclidean', 'dotproduct'].includes(metric)) {\n throw new HTTPException(400, { message: 'Invalid metric. Must be one of: cosine, euclidean, dotproduct' });\n }\n\n const vector = getVector(mastra, vectorName);\n await vector.createIndex({ indexName, dimension, metric });\n return { success: true };\n } catch (error) {\n return handleError(error, 'Error creating index');\n }\n}\n\n// Query vectors\nexport async function queryVectors({\n mastra,\n vectorName,\n indexName,\n queryVector,\n topK,\n filter,\n includeVector,\n}: Pick<VectorContext, 'mastra' | 'vectorName'> & QueryRequest) {\n try {\n if (!indexName || !queryVector || !Array.isArray(queryVector)) {\n throw new HTTPException(400, { message: 'Invalid request query. indexName and queryVector array are required.' });\n }\n\n const vector = getVector(mastra, vectorName);\n const results: QueryResult[] = await vector.query({ indexName, queryVector, topK, filter, includeVector });\n return results;\n } catch (error) {\n return handleError(error, 'Error querying vectors');\n }\n}\n\n// List indexes\nexport async function listIndexes({ mastra, vectorName }: Pick<VectorContext, 'mastra' | 'vectorName'>) {\n try {\n const vector = getVector(mastra, vectorName);\n\n const indexes = await vector.listIndexes();\n return indexes.filter(Boolean);\n } catch (error) {\n return handleError(error, 'Error listing indexes');\n }\n}\n\n// Describe index\nexport async function describeIndex({\n mastra,\n vectorName,\n indexName,\n}: Pick<VectorContext, 'mastra' | 'vectorName'> & { indexName?: string }) {\n try {\n if (!indexName) {\n throw new HTTPException(400, { message: 'Index name is required' });\n }\n\n const vector = getVector(mastra, vectorName);\n const stats: IndexStats = await vector.describeIndex({ indexName });\n\n return {\n dimension: stats.dimension,\n count: stats.count,\n metric: stats.metric?.toLowerCase(),\n };\n } catch (error) {\n return handleError(error, 'Error describing index');\n }\n}\n\n// Delete index\nexport async function deleteIndex({\n mastra,\n vectorName,\n indexName,\n}: Pick<VectorContext, 'mastra' | 'vectorName'> & { indexName?: string }) {\n try {\n if (!indexName) {\n throw new HTTPException(400, { message: 'Index name is required' });\n }\n\n const vector = getVector(mastra, vectorName);\n await vector.deleteIndex({ indexName });\n return { success: true };\n } catch (error) {\n return handleError(error, 'Error deleting index');\n }\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const UPSERT_VECTORS_ROUTE = createRoute({\n method: 'POST',\n path: '/api/vector/:vectorName/upsert',\n responseType: 'json',\n pathParamSchema: vectorNamePathParams,\n bodySchema: upsertVectorsBodySchema,\n responseSchema: upsertVectorsResponseSchema,\n summary: 'Upsert vectors',\n description: 'Inserts or updates vectors in the specified index',\n tags: ['Vectors'],\n handler: async ({ mastra, vectorName, ...params }) => {\n try {\n const { indexName, vectors, metadata, ids } = params;\n\n if (!indexName || !vectors || !Array.isArray(vectors)) {\n throw new HTTPException(400, { message: 'Invalid request index. indexName and vectors array are required.' });\n }\n\n const vector = getVector(mastra, vectorName);\n const result = await vector.upsert({ indexName, vectors, metadata, ids });\n return { ids: result };\n } catch (error) {\n return handleError(error, 'Error upserting vectors');\n }\n },\n});\n\nexport const CREATE_INDEX_ROUTE = createRoute({\n method: 'POST',\n path: '/api/vector/:vectorName/create-index',\n responseType: 'json',\n pathParamSchema: vectorNamePathParams,\n bodySchema: createIndexBodySchema,\n responseSchema: createIndexResponseSchema,\n summary: 'Create index',\n description: 'Creates a new vector index with the specified dimension and metric',\n tags: ['Vectors'],\n handler: async ({ mastra, vectorName, ...params }) => {\n try {\n const { indexName, dimension, metric } = params;\n\n if (!indexName || typeof dimension !== 'number' || dimension <= 0) {\n throw new HTTPException(400, {\n message: 'Invalid request index, indexName and positive dimension number are required.',\n });\n }\n\n if (metric && !['cosine', 'euclidean', 'dotproduct'].includes(metric)) {\n throw new HTTPException(400, { message: 'Invalid metric. Must be one of: cosine, euclidean, dotproduct' });\n }\n\n const vector = getVector(mastra, vectorName);\n await vector.createIndex({ indexName, dimension, metric });\n return { success: true };\n } catch (error) {\n return handleError(error, 'Error creating index');\n }\n },\n});\n\nexport const QUERY_VECTORS_ROUTE = createRoute({\n method: 'POST',\n path: '/api/vector/:vectorName/query',\n responseType: 'json',\n pathParamSchema: vectorNamePathParams,\n bodySchema: queryVectorsBodySchema,\n responseSchema: queryVectorsResponseSchema,\n summary: 'Query vectors',\n description: 'Performs a similarity search on the vector index',\n tags: ['Vectors'],\n handler: async ({ mastra, vectorName, ...params }) => {\n try {\n const { indexName, queryVector, topK, filter, includeVector } = params;\n\n if (!indexName || !queryVector || !Array.isArray(queryVector)) {\n throw new HTTPException(400, {\n message: 'Invalid request query. indexName and queryVector array are required.',\n });\n }\n\n const vector = getVector(mastra, vectorName);\n const results: QueryResult[] = await vector.query({ indexName, queryVector, topK, filter, includeVector });\n return results;\n } catch (error) {\n return handleError(error, 'Error querying vectors');\n }\n },\n});\n\nexport const LIST_INDEXES_ROUTE = createRoute({\n method: 'GET',\n path: '/api/vector/:vectorName/indexes',\n responseType: 'json',\n pathParamSchema: vectorNamePathParams,\n responseSchema: listIndexesResponseSchema,\n summary: 'List indexes',\n description: 'Returns a list of all indexes in the vector store',\n tags: ['Vectors'],\n handler: async ({ mastra, vectorName }) => {\n try {\n const vector = getVector(mastra, vectorName);\n const indexes = await vector.listIndexes();\n return indexes.filter(Boolean);\n } catch (error) {\n return handleError(error, 'Error listing indexes');\n }\n },\n});\n\nexport const DESCRIBE_INDEX_ROUTE = createRoute({\n method: 'GET',\n path: '/api/vector/:vectorName/indexes/:indexName',\n responseType: 'json',\n pathParamSchema: vectorIndexPathParams,\n responseSchema: describeIndexResponseSchema,\n summary: 'Describe index',\n description: 'Returns statistics and metadata for a specific index',\n tags: ['Vectors'],\n handler: async ({ mastra, vectorName, indexName }) => {\n try {\n if (!indexName) {\n throw new HTTPException(400, { message: 'Index name is required' });\n }\n\n const vector = getVector(mastra, vectorName);\n const stats: IndexStats = await vector.describeIndex({ indexName: indexName });\n\n return {\n dimension: stats.dimension,\n count: stats.count,\n metric: stats.metric?.toLowerCase(),\n };\n } catch (error) {\n return handleError(error, 'Error describing index');\n }\n },\n});\n\nexport const DELETE_INDEX_ROUTE = createRoute({\n method: 'DELETE',\n path: '/api/vector/:vectorName/indexes/:indexName',\n responseType: 'json',\n pathParamSchema: vectorIndexPathParams,\n responseSchema: deleteIndexResponseSchema,\n summary: 'Delete index',\n description: 'Deletes a vector index and all its data',\n tags: ['Vectors'],\n handler: async ({ mastra, vectorName, indexName }) => {\n try {\n if (!indexName) {\n throw new HTTPException(400, { message: 'Index name is required' });\n }\n\n const vector = getVector(mastra, vectorName);\n await vector.deleteIndex({ indexName: indexName });\n return { success: true };\n } catch (error) {\n return handleError(error, 'Error deleting index');\n }\n },\n});\n","import z from 'zod';\nimport { successResponseSchema } from './common';\n\n// Path parameter schemas\nexport const vectorNamePathParams = z.object({\n vectorName: z.string().describe('Name of the vector store'),\n});\n\nexport const vectorIndexPathParams = vectorNamePathParams.extend({\n indexName: z.string().describe('Name of the index'),\n});\n\n// Body schemas\n// Base schema for operations that require an index name\nconst indexBodyBaseSchema = z.object({\n indexName: z.string(),\n});\n\nexport const upsertVectorsBodySchema = indexBodyBaseSchema.extend({\n vectors: z.array(z.array(z.number())),\n metadata: z.array(z.record(z.string(), z.any())).optional(),\n ids: z.array(z.string()).optional(),\n});\n\nexport const createIndexBodySchema = indexBodyBaseSchema.extend({\n dimension: z.number(),\n metric: z.enum(['cosine', 'euclidean', 'dotproduct']).optional(),\n});\n\nexport const queryVectorsBodySchema = indexBodyBaseSchema.extend({\n queryVector: z.array(z.number()),\n topK: z.number().optional(),\n filter: z.record(z.string(), z.any()).optional(),\n includeVector: z.boolean().optional(),\n});\n\n// Response schemas\nexport const upsertVectorsResponseSchema = z.object({\n ids: z.array(z.string()),\n});\n\nexport const createIndexResponseSchema = successResponseSchema;\n\nexport const queryVectorsResponseSchema = z.array(z.unknown()); // QueryResult[]\n\nexport const listIndexesResponseSchema = z.array(z.string());\n\nexport const describeIndexResponseSchema = z.object({\n dimension: z.number(),\n count: z.number(),\n metric: z.string().optional(),\n});\n\nexport const deleteIndexResponseSchema = successResponseSchema;\n"]}
@@ -1,8 +1,8 @@
1
1
  import { __commonJS } from './chunk-PR4QN5HX.js';
2
2
 
3
- // ../../node_modules/.pnpm/@vercel+oidc@3.0.3/node_modules/@vercel/oidc/dist/token-error.js
3
+ // ../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-error.js
4
4
  var require_token_error = __commonJS({
5
- "../../node_modules/.pnpm/@vercel+oidc@3.0.3/node_modules/@vercel/oidc/dist/token-error.js"(exports, module) {
5
+ "../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-error.js"(exports, module) {
6
6
  var __defProp = Object.defineProperty;
7
7
  var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
8
8
  var __getOwnPropNames = Object.getOwnPropertyNames;
@@ -42,5 +42,5 @@ var require_token_error = __commonJS({
42
42
  });
43
43
 
44
44
  export { require_token_error };
45
- //# sourceMappingURL=chunk-TOCYBDP2.js.map
46
- //# sourceMappingURL=chunk-TOCYBDP2.js.map
45
+ //# sourceMappingURL=chunk-ER3QM7DD.js.map
46
+ //# sourceMappingURL=chunk-ER3QM7DD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/.pnpm/@vercel+oidc@3.0.3/node_modules/@vercel/oidc/dist/token-error.js"],"names":[],"mappings":";;;AAAA,IAAA,mBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,2FAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AACA,IAAA,IAAI,YAAY,MAAA,CAAO,cAAA;AACvB,IAAA,IAAI,mBAAmB,MAAA,CAAO,wBAAA;AAC9B,IAAA,IAAI,oBAAoB,MAAA,CAAO,mBAAA;AAC/B,IAAA,IAAI,YAAA,GAAe,OAAO,SAAA,CAAU,cAAA;AACpC,IAAA,IAAI,QAAA,GAAW,CAAC,MAAA,EAAQ,GAAA,KAAQ;AAC9B,MAAA,KAAA,IAAS,IAAA,IAAQ,GAAA;AACf,QAAA,SAAA,CAAU,MAAA,EAAQ,MAAM,EAAE,GAAA,EAAK,IAAI,IAAI,CAAA,EAAG,UAAA,EAAY,IAAA,EAAM,CAAA;AAAA,IAChE,CAAA;AACA,IAAA,IAAI,WAAA,GAAc,CAAC,EAAA,EAAI,IAAA,EAAM,QAAQ,IAAA,KAAS;AAC5C,MAAA,IAAI,QAAQ,OAAO,IAAA,KAAS,QAAA,IAAY,OAAO,SAAS,UAAA,EAAY;AAClE,QAAA,KAAA,IAAS,GAAA,IAAO,kBAAkB,IAAI,CAAA;AACpC,UAAA,IAAI,CAAC,YAAA,CAAa,IAAA,CAAK,EAAA,EAAI,GAAG,KAAK,GAAA,KAAQ,MAAA;AACzC,YAAA,SAAA,CAAU,IAAI,GAAA,EAAK,EAAE,GAAA,EAAK,MAAM,KAAK,GAAG,CAAA,EAAG,UAAA,EAAY,EAAE,OAAO,gBAAA,CAAiB,IAAA,EAAM,GAAG,CAAA,CAAA,IAAM,IAAA,CAAK,YAAY,CAAA;AAAA,MACvH;AACA,MAAA,OAAO,EAAA;AAAA,IACT,CAAA;AACA,IAAA,IAAI,YAAA,GAAe,CAAC,GAAA,KAAQ,WAAA,CAAY,SAAA,CAAU,EAAC,EAAG,YAAA,EAAc,EAAE,KAAA,EAAO,IAAA,EAAM,GAAG,GAAG,CAAA;AACzF,IAAA,IAAI,sBAAsB,EAAC;AAC3B,IAAA,QAAA,CAAS,mBAAA,EAAqB;AAAA,MAC5B,sBAAsB,MAAM;AAAA,KAC7B,CAAA;AACD,IAAA,MAAA,CAAO,OAAA,GAAU,aAAa,mBAAmB,CAAA;AACjD,IAAA,IAAM,oBAAA,GAAN,cAAmC,KAAA,CAAM;AAAA,MACvC,WAAA,CAAY,SAAS,KAAA,EAAO;AAC1B,QAAA,KAAA,CAAM,OAAO,CAAA;AACb,QAAA,IAAA,CAAK,IAAA,GAAO,sBAAA;AACZ,QAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AAAA,MACf;AAAA,MACA,QAAA,GAAW;AACT,QAAA,IAAI,KAAK,KAAA,EAAO;AACd,UAAA,OAAO,CAAA,EAAG,KAAK,IAAI,CAAA,EAAA,EAAK,KAAK,OAAO,CAAA,EAAA,EAAK,KAAK,KAAK,CAAA,CAAA;AAAA,QACrD;AACA,QAAA,OAAO,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,KAAK,OAAO,CAAA,CAAA;AAAA,MACtC;AAAA,KACF;AAAA,EAAA;AAAA,CAAA","file":"chunk-TOCYBDP2.js","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_error_exports = {};\n__export(token_error_exports, {\n VercelOidcTokenError: () => VercelOidcTokenError\n});\nmodule.exports = __toCommonJS(token_error_exports);\nclass VercelOidcTokenError extends Error {\n constructor(message, cause) {\n super(message);\n this.name = \"VercelOidcTokenError\";\n this.cause = cause;\n }\n toString() {\n if (this.cause) {\n return `${this.name}: ${this.message}: ${this.cause}`;\n }\n return `${this.name}: ${this.message}`;\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n VercelOidcTokenError\n});\n"]}
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-error.js"],"names":[],"mappings":";;;AAAA,IAAA,mBAAA,GAAA,UAAA,CAAA;AAAA,EAAA,2FAAA,CAAA,OAAA,EAAA,MAAA,EAAA;AACA,IAAA,IAAI,YAAY,MAAA,CAAO,cAAA;AACvB,IAAA,IAAI,mBAAmB,MAAA,CAAO,wBAAA;AAC9B,IAAA,IAAI,oBAAoB,MAAA,CAAO,mBAAA;AAC/B,IAAA,IAAI,YAAA,GAAe,OAAO,SAAA,CAAU,cAAA;AACpC,IAAA,IAAI,QAAA,GAAW,CAAC,MAAA,EAAQ,GAAA,KAAQ;AAC9B,MAAA,KAAA,IAAS,IAAA,IAAQ,GAAA;AACf,QAAA,SAAA,CAAU,MAAA,EAAQ,MAAM,EAAE,GAAA,EAAK,IAAI,IAAI,CAAA,EAAG,UAAA,EAAY,IAAA,EAAM,CAAA;AAAA,IAChE,CAAA;AACA,IAAA,IAAI,WAAA,GAAc,CAAC,EAAA,EAAI,IAAA,EAAM,QAAQ,IAAA,KAAS;AAC5C,MAAA,IAAI,QAAQ,OAAO,IAAA,KAAS,QAAA,IAAY,OAAO,SAAS,UAAA,EAAY;AAClE,QAAA,KAAA,IAAS,GAAA,IAAO,kBAAkB,IAAI,CAAA;AACpC,UAAA,IAAI,CAAC,YAAA,CAAa,IAAA,CAAK,EAAA,EAAI,GAAG,KAAK,GAAA,KAAQ,MAAA;AACzC,YAAA,SAAA,CAAU,IAAI,GAAA,EAAK,EAAE,GAAA,EAAK,MAAM,KAAK,GAAG,CAAA,EAAG,UAAA,EAAY,EAAE,OAAO,gBAAA,CAAiB,IAAA,EAAM,GAAG,CAAA,CAAA,IAAM,IAAA,CAAK,YAAY,CAAA;AAAA,MACvH;AACA,MAAA,OAAO,EAAA;AAAA,IACT,CAAA;AACA,IAAA,IAAI,YAAA,GAAe,CAAC,GAAA,KAAQ,WAAA,CAAY,SAAA,CAAU,EAAC,EAAG,YAAA,EAAc,EAAE,KAAA,EAAO,IAAA,EAAM,GAAG,GAAG,CAAA;AACzF,IAAA,IAAI,sBAAsB,EAAC;AAC3B,IAAA,QAAA,CAAS,mBAAA,EAAqB;AAAA,MAC5B,sBAAsB,MAAM;AAAA,KAC7B,CAAA;AACD,IAAA,MAAA,CAAO,OAAA,GAAU,aAAa,mBAAmB,CAAA;AACjD,IAAA,IAAM,oBAAA,GAAN,cAAmC,KAAA,CAAM;AAAA,MACvC,WAAA,CAAY,SAAS,KAAA,EAAO;AAC1B,QAAA,KAAA,CAAM,OAAO,CAAA;AACb,QAAA,IAAA,CAAK,IAAA,GAAO,sBAAA;AACZ,QAAA,IAAA,CAAK,KAAA,GAAQ,KAAA;AAAA,MACf;AAAA,MACA,QAAA,GAAW;AACT,QAAA,IAAI,KAAK,KAAA,EAAO;AACd,UAAA,OAAO,CAAA,EAAG,KAAK,IAAI,CAAA,EAAA,EAAK,KAAK,OAAO,CAAA,EAAA,EAAK,KAAK,KAAK,CAAA,CAAA;AAAA,QACrD;AACA,QAAA,OAAO,CAAA,EAAG,IAAA,CAAK,IAAI,CAAA,EAAA,EAAK,KAAK,OAAO,CAAA,CAAA;AAAA,MACtC;AAAA,KACF;AAAA,EAAA;AAAA,CAAA","file":"chunk-ER3QM7DD.js","sourcesContent":["\"use strict\";\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\nvar token_error_exports = {};\n__export(token_error_exports, {\n VercelOidcTokenError: () => VercelOidcTokenError\n});\nmodule.exports = __toCommonJS(token_error_exports);\nclass VercelOidcTokenError extends Error {\n constructor(message, cause) {\n super(message);\n this.name = \"VercelOidcTokenError\";\n this.cause = cause;\n }\n toString() {\n if (this.cause) {\n return `${this.name}: ${this.message}: ${this.cause}`;\n }\n return `${this.name}: ${this.message}`;\n }\n}\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n VercelOidcTokenError\n});\n"]}