@mastra/server 1.0.4-alpha.2 → 1.1.0-alpha.0

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 (487) hide show
  1. package/CHANGELOG.md +6765 -0
  2. package/LICENSE.md +11 -42
  3. package/README.md +45 -137
  4. package/a2a/store.d.ts +1 -0
  5. package/auth.d.ts +1 -0
  6. package/dist/chunk-24SISJRB.js +250 -0
  7. package/dist/chunk-24SISJRB.js.map +1 -0
  8. package/dist/chunk-2HAVULC2.cjs +204 -0
  9. package/dist/chunk-2HAVULC2.cjs.map +1 -0
  10. package/dist/chunk-2HOMKKY4.cjs +352 -0
  11. package/dist/chunk-2HOMKKY4.cjs.map +1 -0
  12. package/dist/chunk-37DO73XV.cjs +33207 -0
  13. package/dist/chunk-37DO73XV.cjs.map +1 -0
  14. package/dist/chunk-3AZY5AWI.js +689 -0
  15. package/dist/chunk-3AZY5AWI.js.map +1 -0
  16. package/dist/chunk-3OIJLD3O.js +333 -0
  17. package/dist/chunk-3OIJLD3O.js.map +1 -0
  18. package/dist/chunk-3QUACCLU.js +1372 -0
  19. package/dist/chunk-3QUACCLU.js.map +1 -0
  20. package/dist/chunk-3W67K7YE.js +13 -0
  21. package/dist/chunk-3W67K7YE.js.map +1 -0
  22. package/dist/chunk-4HFYR562.cjs +82 -0
  23. package/dist/chunk-4HFYR562.cjs.map +1 -0
  24. package/dist/chunk-4JAEBN6N.js +1201 -0
  25. package/dist/chunk-4JAEBN6N.js.map +1 -0
  26. package/dist/chunk-4LVJBXI2.cjs +324 -0
  27. package/dist/chunk-4LVJBXI2.cjs.map +1 -0
  28. package/dist/{chunk-FV45V6WC.cjs → chunk-64ITUOXI.cjs} +3 -7
  29. package/dist/chunk-64ITUOXI.cjs.map +1 -0
  30. package/dist/chunk-6G2RQWKA.cjs +252 -0
  31. package/dist/chunk-6G2RQWKA.cjs.map +1 -0
  32. package/dist/chunk-6KC345IN.cjs +708 -0
  33. package/dist/chunk-6KC345IN.cjs.map +1 -0
  34. package/dist/{chunk-TRDNDNGQ.js → chunk-6QWQZI4Q.js} +4 -7
  35. package/dist/chunk-6QWQZI4Q.js.map +1 -0
  36. package/dist/chunk-7D3UAMQM.cjs +82 -0
  37. package/dist/chunk-7D3UAMQM.cjs.map +1 -0
  38. package/dist/chunk-7XIMPDJV.js +442 -0
  39. package/dist/chunk-7XIMPDJV.js.map +1 -0
  40. package/dist/chunk-A2K5ZL47.cjs +195 -0
  41. package/dist/chunk-A2K5ZL47.cjs.map +1 -0
  42. package/dist/chunk-AAHPYUEC.cjs +211 -0
  43. package/dist/chunk-AAHPYUEC.cjs.map +1 -0
  44. package/dist/chunk-AN42MFD5.cjs +1231 -0
  45. package/dist/chunk-AN42MFD5.cjs.map +1 -0
  46. package/dist/chunk-AQI6GLTN.cjs +2777 -0
  47. package/dist/chunk-AQI6GLTN.cjs.map +1 -0
  48. package/dist/chunk-AV3VZ6S3.cjs +190 -0
  49. package/dist/chunk-AV3VZ6S3.cjs.map +1 -0
  50. package/dist/chunk-C4NZAUUW.js +33168 -0
  51. package/dist/chunk-C4NZAUUW.js.map +1 -0
  52. package/dist/chunk-D5VCL56B.js +317 -0
  53. package/dist/chunk-D5VCL56B.js.map +1 -0
  54. package/dist/chunk-DD7LYNHB.js +596 -0
  55. package/dist/chunk-DD7LYNHB.js.map +1 -0
  56. package/dist/chunk-DHDVJ5II.js +334 -0
  57. package/dist/chunk-DHDVJ5II.js.map +1 -0
  58. package/dist/chunk-ED6NQBHF.js +190 -0
  59. package/dist/chunk-ED6NQBHF.js.map +1 -0
  60. package/dist/chunk-EKFYZUPC.cjs +1404 -0
  61. package/dist/chunk-EKFYZUPC.cjs.map +1 -0
  62. package/dist/chunk-EV5H2JQU.js +45 -0
  63. package/dist/chunk-EV5H2JQU.js.map +1 -0
  64. package/dist/chunk-F2WTCJ5C.js +1153 -0
  65. package/dist/chunk-F2WTCJ5C.js.map +1 -0
  66. package/dist/chunk-FCPLBTHB.js +195 -0
  67. package/dist/chunk-FCPLBTHB.js.map +1 -0
  68. package/dist/chunk-FQX5SQO7.js +212 -0
  69. package/dist/chunk-FQX5SQO7.js.map +1 -0
  70. package/dist/chunk-FRRHYZR6.cjs +88 -0
  71. package/dist/chunk-FRRHYZR6.cjs.map +1 -0
  72. package/dist/chunk-GUG6KRAJ.js +666 -0
  73. package/dist/chunk-GUG6KRAJ.js.map +1 -0
  74. package/dist/chunk-GXUBQJ74.js +184 -0
  75. package/dist/chunk-GXUBQJ74.js.map +1 -0
  76. package/dist/chunk-H66LLFDL.js +970 -0
  77. package/dist/chunk-H66LLFDL.js.map +1 -0
  78. package/dist/chunk-HDGF45K7.cjs +128 -0
  79. package/dist/chunk-HDGF45K7.cjs.map +1 -0
  80. package/dist/chunk-HT4LP3BO.js +75 -0
  81. package/dist/chunk-HT4LP3BO.js.map +1 -0
  82. package/dist/chunk-HZINLMHL.cjs +252 -0
  83. package/dist/chunk-HZINLMHL.cjs.map +1 -0
  84. package/dist/chunk-IS3HHGL4.js +250 -0
  85. package/dist/chunk-IS3HHGL4.js.map +1 -0
  86. package/dist/chunk-JLFFAYTC.cjs +252 -0
  87. package/dist/chunk-JLFFAYTC.cjs.map +1 -0
  88. package/dist/chunk-JRM3DWRM.cjs +322 -0
  89. package/dist/chunk-JRM3DWRM.cjs.map +1 -0
  90. package/dist/chunk-K2SXZLA3.cjs +1049 -0
  91. package/dist/chunk-K2SXZLA3.cjs.map +1 -0
  92. package/dist/chunk-K4HSW5ZF.js +77 -0
  93. package/dist/chunk-K4HSW5ZF.js.map +1 -0
  94. package/dist/chunk-LFNP3ACE.js +1009 -0
  95. package/dist/chunk-LFNP3ACE.js.map +1 -0
  96. package/dist/chunk-LFTVDHOD.js +200 -0
  97. package/dist/chunk-LFTVDHOD.js.map +1 -0
  98. package/dist/chunk-LJ6YRVDI.cjs +15 -0
  99. package/dist/chunk-LJ6YRVDI.cjs.map +1 -0
  100. package/dist/chunk-LOA7RQYO.js +2774 -0
  101. package/dist/chunk-LOA7RQYO.js.map +1 -0
  102. package/dist/chunk-MCYD5LW7.cjs +90 -0
  103. package/dist/chunk-MCYD5LW7.cjs.map +1 -0
  104. package/dist/chunk-MZRJNOYJ.cjs +1195 -0
  105. package/dist/chunk-MZRJNOYJ.cjs.map +1 -0
  106. package/dist/chunk-O7I5CWRX.cjs +44 -0
  107. package/dist/chunk-O7I5CWRX.cjs.map +1 -0
  108. package/dist/chunk-ONN5EA7E.js +26 -0
  109. package/dist/chunk-ONN5EA7E.js.map +1 -0
  110. package/dist/chunk-OS7SAIRA.js +250 -0
  111. package/dist/chunk-OS7SAIRA.js.map +1 -0
  112. package/dist/chunk-PR4QN5HX.js +39 -0
  113. package/dist/chunk-PR4QN5HX.js.map +1 -0
  114. package/dist/chunk-PWXUI3OG.cjs +252 -0
  115. package/dist/chunk-PWXUI3OG.cjs.map +1 -0
  116. package/dist/chunk-QOVLJFLX.cjs +680 -0
  117. package/dist/chunk-QOVLJFLX.cjs.map +1 -0
  118. package/dist/chunk-QXDNFBJQ.js +220 -0
  119. package/dist/chunk-QXDNFBJQ.js.map +1 -0
  120. package/dist/chunk-RIX6WEJ2.js +83 -0
  121. package/dist/chunk-RIX6WEJ2.js.map +1 -0
  122. package/dist/chunk-RW66MHXI.js +246 -0
  123. package/dist/chunk-RW66MHXI.js.map +1 -0
  124. package/dist/chunk-S4SLHUJ7.cjs +253 -0
  125. package/dist/chunk-S4SLHUJ7.cjs.map +1 -0
  126. package/dist/chunk-SONAXR2M.cjs +450 -0
  127. package/dist/chunk-SONAXR2M.cjs.map +1 -0
  128. package/dist/chunk-SUKFO7UM.cjs +29 -0
  129. package/dist/chunk-SUKFO7UM.cjs.map +1 -0
  130. package/dist/chunk-T5KH32UA.cjs +47 -0
  131. package/dist/chunk-T5KH32UA.cjs.map +1 -0
  132. package/dist/chunk-TCWPL26W.js +119 -0
  133. package/dist/chunk-TCWPL26W.js.map +1 -0
  134. package/dist/chunk-TGDBGIDA.cjs +623 -0
  135. package/dist/chunk-TGDBGIDA.cjs.map +1 -0
  136. package/dist/chunk-USR6JK77.js +62 -0
  137. package/dist/chunk-USR6JK77.js.map +1 -0
  138. package/dist/chunk-VNHOYZ56.cjs +219 -0
  139. package/dist/chunk-VNHOYZ56.cjs.map +1 -0
  140. package/dist/chunk-VX3VN7FN.cjs +992 -0
  141. package/dist/chunk-VX3VN7FN.cjs.map +1 -0
  142. package/dist/chunk-WHC6S3VY.cjs +345 -0
  143. package/dist/chunk-WHC6S3VY.cjs.map +1 -0
  144. package/dist/chunk-XKLJYRAA.js +77 -0
  145. package/dist/chunk-XKLJYRAA.js.map +1 -0
  146. package/dist/chunk-XUSAKRLX.js +312 -0
  147. package/dist/chunk-XUSAKRLX.js.map +1 -0
  148. package/dist/chunk-ZKMVCV4G.cjs +71 -0
  149. package/dist/chunk-ZKMVCV4G.cjs.map +1 -0
  150. package/dist/dist-7NTDEVLP.cjs +928 -0
  151. package/dist/dist-7NTDEVLP.cjs.map +1 -0
  152. package/dist/dist-B5GMANA6.js +1147 -0
  153. package/dist/dist-B5GMANA6.js.map +1 -0
  154. package/dist/dist-EDO7GEGI.js +3 -0
  155. package/dist/dist-EDO7GEGI.js.map +1 -0
  156. package/dist/dist-OF24ZMHH.cjs +764 -0
  157. package/dist/dist-OF24ZMHH.cjs.map +1 -0
  158. package/dist/dist-P6YSNLL3.cjs +1150 -0
  159. package/dist/dist-P6YSNLL3.cjs.map +1 -0
  160. package/dist/dist-SMBO5KVB.js +937 -0
  161. package/dist/dist-SMBO5KVB.js.map +1 -0
  162. package/dist/dist-THPMW5QR.js +761 -0
  163. package/dist/dist-THPMW5QR.js.map +1 -0
  164. package/dist/dist-VZTG56X2.cjs +940 -0
  165. package/dist/dist-VZTG56X2.cjs.map +1 -0
  166. package/dist/dist-ZLC23RVC.cjs +16 -0
  167. package/dist/dist-ZLC23RVC.cjs.map +1 -0
  168. package/dist/dist-ZOZ6MHJH.js +925 -0
  169. package/dist/dist-ZOZ6MHJH.js.map +1 -0
  170. package/dist/docs/README.md +31 -0
  171. package/dist/docs/SKILL.md +32 -0
  172. package/dist/docs/SOURCE_MAP.json +6 -0
  173. package/dist/docs/server/01-custom-adapters.md +380 -0
  174. package/dist/docs/server/02-reference.md +833 -0
  175. package/dist/index.cjs +6 -0
  176. package/dist/index.cjs.map +1 -0
  177. package/dist/index.d.ts +1 -0
  178. package/dist/index.d.ts.map +1 -0
  179. package/dist/index.js +5 -0
  180. package/dist/index.js.map +1 -0
  181. package/dist/server/a2a/protocol.d.ts +8 -0
  182. package/dist/server/a2a/protocol.d.ts.map +1 -0
  183. package/dist/server/a2a/store.cjs +25 -0
  184. package/dist/server/a2a/store.cjs.map +1 -0
  185. package/dist/server/a2a/store.d.ts +14 -0
  186. package/dist/server/a2a/store.d.ts.map +1 -0
  187. package/dist/server/a2a/store.js +23 -0
  188. package/dist/server/a2a/store.js.map +1 -0
  189. package/dist/server/a2a/tasks.d.ts +20 -0
  190. package/dist/server/a2a/tasks.d.ts.map +1 -0
  191. package/dist/server/auth/defaults.d.ts +3 -0
  192. package/dist/server/auth/defaults.d.ts.map +1 -0
  193. package/dist/server/auth/helpers.d.ts +21 -0
  194. package/dist/server/auth/helpers.d.ts.map +1 -0
  195. package/dist/server/auth/index.cjs +48 -0
  196. package/dist/server/auth/index.cjs.map +1 -0
  197. package/dist/server/auth/index.d.ts +3 -0
  198. package/dist/server/auth/index.d.ts.map +1 -0
  199. package/dist/server/auth/index.js +3 -0
  200. package/dist/server/auth/index.js.map +1 -0
  201. package/dist/server/auth/path-pattern.d.ts +43 -0
  202. package/dist/server/auth/path-pattern.d.ts.map +1 -0
  203. package/dist/server/constants.d.ts +51 -0
  204. package/dist/server/constants.d.ts.map +1 -0
  205. package/dist/server/handlers/a2a.cjs +40 -0
  206. package/dist/server/handlers/a2a.cjs.map +1 -0
  207. package/dist/server/handlers/a2a.d.ts +550 -0
  208. package/dist/server/handlers/a2a.d.ts.map +1 -0
  209. package/dist/server/handlers/a2a.js +3 -0
  210. package/dist/server/handlers/a2a.js.map +1 -0
  211. package/dist/server/handlers/agent-builder.cjs +68 -0
  212. package/dist/server/handlers/agent-builder.cjs.map +1 -0
  213. package/dist/server/handlers/agent-builder.d.ts +632 -0
  214. package/dist/server/handlers/agent-builder.d.ts.map +1 -0
  215. package/dist/server/handlers/agent-builder.js +3 -0
  216. package/dist/server/handlers/agent-builder.js.map +1 -0
  217. package/dist/server/handlers/agent-versions.cjs +60 -0
  218. package/dist/server/handlers/agent-versions.cjs.map +1 -0
  219. package/dist/server/handlers/agent-versions.d.ts +479 -0
  220. package/dist/server/handlers/agent-versions.d.ts.map +1 -0
  221. package/dist/server/handlers/agent-versions.js +3 -0
  222. package/dist/server/handlers/agent-versions.js.map +1 -0
  223. package/dist/server/handlers/agents.cjs +111 -13
  224. package/dist/server/handlers/agents.cjs.map +1 -0
  225. package/dist/server/handlers/agents.d.ts +3440 -6
  226. package/dist/server/handlers/agents.d.ts.map +1 -0
  227. package/dist/server/handlers/agents.js +3 -1
  228. package/dist/server/handlers/agents.js.map +1 -0
  229. package/dist/server/handlers/error.cjs +8 -2
  230. package/dist/server/handlers/error.cjs.map +1 -0
  231. package/dist/server/handlers/error.d.ts +14 -1
  232. package/dist/server/handlers/error.d.ts.map +1 -0
  233. package/dist/server/handlers/error.js +3 -1
  234. package/dist/server/handlers/error.js.map +1 -0
  235. package/dist/server/handlers/logs.cjs +9 -7
  236. package/dist/server/handlers/logs.cjs.map +1 -0
  237. package/dist/server/handlers/logs.d.ts +142 -3
  238. package/dist/server/handlers/logs.d.ts.map +1 -0
  239. package/dist/server/handlers/logs.js +3 -1
  240. package/dist/server/handlers/logs.js.map +1 -0
  241. package/dist/server/handlers/mcp.cjs +40 -0
  242. package/dist/server/handlers/mcp.cjs.map +1 -0
  243. package/dist/server/handlers/mcp.d.ts +132 -0
  244. package/dist/server/handlers/mcp.d.ts.map +1 -0
  245. package/dist/server/handlers/mcp.js +3 -0
  246. package/dist/server/handlers/mcp.js.map +1 -0
  247. package/dist/server/handlers/memory.cjs +83 -17
  248. package/dist/server/handlers/memory.cjs.map +1 -0
  249. package/dist/server/handlers/memory.d.ts +1089 -8
  250. package/dist/server/handlers/memory.d.ts.map +1 -0
  251. package/dist/server/handlers/memory.js +3 -1
  252. package/dist/server/handlers/memory.js.map +1 -0
  253. package/dist/server/handlers/observability.cjs +24 -0
  254. package/dist/server/handlers/observability.cjs.map +1 -0
  255. package/dist/server/handlers/observability.d.ts +154 -0
  256. package/dist/server/handlers/observability.d.ts.map +1 -0
  257. package/dist/server/handlers/observability.js +3 -0
  258. package/dist/server/handlers/observability.js.map +1 -0
  259. package/dist/server/handlers/processors.cjs +20 -0
  260. package/dist/server/handlers/processors.cjs.map +1 -0
  261. package/dist/server/handlers/processors.d.ts +181 -0
  262. package/dist/server/handlers/processors.d.ts.map +1 -0
  263. package/dist/server/handlers/processors.js +3 -0
  264. package/dist/server/handlers/processors.js.map +1 -0
  265. package/dist/server/handlers/scores.cjs +32 -0
  266. package/dist/server/handlers/scores.cjs.map +1 -0
  267. package/dist/server/handlers/scores.d.ts +121 -0
  268. package/dist/server/handlers/scores.d.ts.map +1 -0
  269. package/dist/server/handlers/scores.js +3 -0
  270. package/dist/server/handlers/scores.js.map +1 -0
  271. package/dist/server/handlers/stored-agents.cjs +28 -0
  272. package/dist/server/handlers/stored-agents.cjs.map +1 -0
  273. package/dist/server/handlers/stored-agents.d.ts +317 -0
  274. package/dist/server/handlers/stored-agents.d.ts.map +1 -0
  275. package/dist/server/handlers/stored-agents.js +3 -0
  276. package/dist/server/handlers/stored-agents.js.map +1 -0
  277. package/dist/server/handlers/system.cjs +12 -0
  278. package/dist/server/handlers/system.cjs.map +1 -0
  279. package/dist/server/handlers/system.d.ts +7 -0
  280. package/dist/server/handlers/system.d.ts.map +1 -0
  281. package/dist/server/handlers/system.js +3 -0
  282. package/dist/server/handlers/system.js.map +1 -0
  283. package/dist/server/handlers/test-utils.cjs +15 -0
  284. package/dist/server/handlers/test-utils.cjs.map +1 -0
  285. package/dist/server/handlers/test-utils.d.ts +6 -0
  286. package/dist/server/handlers/test-utils.d.ts.map +1 -0
  287. package/dist/server/handlers/test-utils.js +13 -0
  288. package/dist/server/handlers/test-utils.js.map +1 -0
  289. package/dist/server/handlers/tools.cjs +15 -9
  290. package/dist/server/handlers/tools.cjs.map +1 -0
  291. package/dist/server/handlers/tools.d.ts +71 -4
  292. package/dist/server/handlers/tools.d.ts.map +1 -0
  293. package/dist/server/handlers/tools.js +3 -1
  294. package/dist/server/handlers/tools.js.map +1 -0
  295. package/dist/server/handlers/utils.cjs +32 -2
  296. package/dist/server/handlers/utils.cjs.map +1 -0
  297. package/dist/server/handlers/utils.d.ts +39 -1
  298. package/dist/server/handlers/utils.d.ts.map +1 -0
  299. package/dist/server/handlers/utils.js +3 -1
  300. package/dist/server/handlers/utils.js.map +1 -0
  301. package/dist/server/handlers/vector.cjs +33 -7
  302. package/dist/server/handlers/vector.cjs.map +1 -0
  303. package/dist/server/handlers/vector.d.ts +135 -6
  304. package/dist/server/handlers/vector.d.ts.map +1 -0
  305. package/dist/server/handlers/vector.js +3 -1
  306. package/dist/server/handlers/vector.js.map +1 -0
  307. package/dist/server/handlers/voice.cjs +25 -7
  308. package/dist/server/handlers/voice.cjs.map +1 -0
  309. package/dist/server/handlers/voice.d.ts +82 -3
  310. package/dist/server/handlers/voice.d.ts.map +1 -0
  311. package/dist/server/handlers/voice.js +3 -1
  312. package/dist/server/handlers/voice.js.map +1 -0
  313. package/dist/server/handlers/workflows.cjs +75 -21
  314. package/dist/server/handlers/workflows.cjs.map +1 -0
  315. package/dist/server/handlers/workflows.d.ts +996 -10
  316. package/dist/server/handlers/workflows.d.ts.map +1 -0
  317. package/dist/server/handlers/workflows.js +3 -1
  318. package/dist/server/handlers/workflows.js.map +1 -0
  319. package/dist/server/handlers/workspace.cjs +80 -0
  320. package/dist/server/handlers/workspace.cjs.map +1 -0
  321. package/dist/server/handlers/workspace.d.ts +591 -0
  322. package/dist/server/handlers/workspace.d.ts.map +1 -0
  323. package/dist/server/handlers/workspace.js +3 -0
  324. package/dist/server/handlers/workspace.js.map +1 -0
  325. package/dist/server/handlers.cjs +41 -24
  326. package/dist/server/handlers.cjs.map +1 -0
  327. package/dist/server/handlers.d.ts +13 -9
  328. package/dist/server/handlers.d.ts.map +1 -0
  329. package/dist/server/handlers.js +14 -9
  330. package/dist/server/handlers.js.map +1 -0
  331. package/dist/server/http-exception.d.ts +82 -0
  332. package/dist/server/http-exception.d.ts.map +1 -0
  333. package/dist/server/schemas/a2a.d.ts +786 -0
  334. package/dist/server/schemas/a2a.d.ts.map +1 -0
  335. package/dist/server/schemas/agent-builder.d.ts +225 -0
  336. package/dist/server/schemas/agent-builder.d.ts.map +1 -0
  337. package/dist/server/schemas/agent-versions.d.ts +1646 -0
  338. package/dist/server/schemas/agent-versions.d.ts.map +1 -0
  339. package/dist/server/schemas/agents.d.ts +1815 -0
  340. package/dist/server/schemas/agents.d.ts.map +1 -0
  341. package/dist/server/schemas/common.d.ts +179 -0
  342. package/dist/server/schemas/common.d.ts.map +1 -0
  343. package/dist/server/schemas/logs.d.ts +124 -0
  344. package/dist/server/schemas/logs.d.ts.map +1 -0
  345. package/dist/server/schemas/mcp.d.ts +299 -0
  346. package/dist/server/schemas/mcp.d.ts.map +1 -0
  347. package/dist/server/schemas/memory.d.ts +1216 -0
  348. package/dist/server/schemas/memory.d.ts.map +1 -0
  349. package/dist/server/schemas/processors.d.ts +519 -0
  350. package/dist/server/schemas/processors.d.ts.map +1 -0
  351. package/dist/server/schemas/scores.d.ts +259 -0
  352. package/dist/server/schemas/scores.d.ts.map +1 -0
  353. package/dist/server/schemas/stored-agents.d.ts +850 -0
  354. package/dist/server/schemas/stored-agents.d.ts.map +1 -0
  355. package/dist/server/schemas/system.d.ts +36 -0
  356. package/dist/server/schemas/system.d.ts.map +1 -0
  357. package/dist/server/schemas/vectors.d.ts +107 -0
  358. package/dist/server/schemas/vectors.d.ts.map +1 -0
  359. package/dist/server/schemas/workflows.d.ts +863 -0
  360. package/dist/server/schemas/workflows.d.ts.map +1 -0
  361. package/dist/server/schemas/workspace.d.ts +1107 -0
  362. package/dist/server/schemas/workspace.d.ts.map +1 -0
  363. package/dist/server/server-adapter/index.cjs +661 -0
  364. package/dist/server/server-adapter/index.cjs.map +1 -0
  365. package/dist/server/server-adapter/index.d.ts +163 -0
  366. package/dist/server/server-adapter/index.d.ts.map +1 -0
  367. package/dist/server/server-adapter/index.js +630 -0
  368. package/dist/server/server-adapter/index.js.map +1 -0
  369. package/dist/server/server-adapter/openapi-utils.d.ts +69 -0
  370. package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
  371. package/dist/server/server-adapter/redact.d.ts +26 -0
  372. package/dist/server/server-adapter/redact.d.ts.map +1 -0
  373. package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
  374. package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
  375. package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
  376. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
  377. package/dist/server/server-adapter/routes/agents.d.ts +3 -0
  378. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
  379. package/dist/server/server-adapter/routes/index.d.ts +52 -0
  380. package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
  381. package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
  382. package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
  383. package/dist/server/server-adapter/routes/logs.d.ts +3 -0
  384. package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
  385. package/dist/server/server-adapter/routes/mcp.d.ts +9 -0
  386. package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -0
  387. package/dist/server/server-adapter/routes/memory.d.ts +3 -0
  388. package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
  389. package/dist/server/server-adapter/routes/observability.d.ts +3 -0
  390. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
  391. package/dist/server/server-adapter/routes/processors.d.ts +3 -0
  392. package/dist/server/server-adapter/routes/processors.d.ts.map +1 -0
  393. package/dist/server/server-adapter/routes/route-builder.d.ts +112 -0
  394. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
  395. package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
  396. package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
  397. package/dist/server/server-adapter/routes/stored-agents.d.ts +8 -0
  398. package/dist/server/server-adapter/routes/stored-agents.d.ts.map +1 -0
  399. package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
  400. package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
  401. package/dist/server/server-adapter/routes/system.d.ts +12 -0
  402. package/dist/server/server-adapter/routes/system.d.ts.map +1 -0
  403. package/dist/server/server-adapter/routes/tools.d.ts +3 -0
  404. package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
  405. package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
  406. package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
  407. package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
  408. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
  409. package/dist/server/server-adapter/routes/workspace.d.ts +8 -0
  410. package/dist/server/server-adapter/routes/workspace.d.ts.map +1 -0
  411. package/dist/server/types.d.ts +10 -0
  412. package/dist/server/types.d.ts.map +1 -0
  413. package/dist/server/utils.d.ts +58 -0
  414. package/dist/server/utils.d.ts.map +1 -0
  415. package/dist/token-6GSAFR2W-ABXTQD64-MC4IMVOB.cjs +63 -0
  416. package/dist/token-6GSAFR2W-ABXTQD64-MC4IMVOB.cjs.map +1 -0
  417. package/dist/token-6GSAFR2W-ABXTQD64-Z6U2TA2C.js +61 -0
  418. package/dist/token-6GSAFR2W-ABXTQD64-Z6U2TA2C.js.map +1 -0
  419. package/dist/token-6GSAFR2W-F2L44NEJ-B3QIV63M.cjs +63 -0
  420. package/dist/token-6GSAFR2W-F2L44NEJ-B3QIV63M.cjs.map +1 -0
  421. package/dist/token-6GSAFR2W-F2L44NEJ-GFZ37A2V.js +61 -0
  422. package/dist/token-6GSAFR2W-F2L44NEJ-GFZ37A2V.js.map +1 -0
  423. package/dist/token-6GSAFR2W-WGTMOPEU-6HSZQUFZ.cjs +63 -0
  424. package/dist/token-6GSAFR2W-WGTMOPEU-6HSZQUFZ.cjs.map +1 -0
  425. package/dist/token-6GSAFR2W-WGTMOPEU-JKP67ZX4.js +61 -0
  426. package/dist/token-6GSAFR2W-WGTMOPEU-JKP67ZX4.js.map +1 -0
  427. package/dist/token-util-NEHG7TUY-4YJ4EPCL-MBTAVIJ3.js +8 -0
  428. package/dist/token-util-NEHG7TUY-4YJ4EPCL-MBTAVIJ3.js.map +1 -0
  429. package/dist/token-util-NEHG7TUY-4YJ4EPCL-SQ4NADRW.cjs +10 -0
  430. package/dist/token-util-NEHG7TUY-4YJ4EPCL-SQ4NADRW.cjs.map +1 -0
  431. package/dist/token-util-NEHG7TUY-TV2H7N56-GGCGMPDG.js +8 -0
  432. package/dist/token-util-NEHG7TUY-TV2H7N56-GGCGMPDG.js.map +1 -0
  433. package/dist/token-util-NEHG7TUY-TV2H7N56-R7OENTCJ.cjs +10 -0
  434. package/dist/token-util-NEHG7TUY-TV2H7N56-R7OENTCJ.cjs.map +1 -0
  435. package/dist/token-util-NEHG7TUY-XQP3QSPX-BL5O5N7R.cjs +10 -0
  436. package/dist/token-util-NEHG7TUY-XQP3QSPX-BL5O5N7R.cjs.map +1 -0
  437. package/dist/token-util-NEHG7TUY-XQP3QSPX-YCJRRNXO.js +8 -0
  438. package/dist/token-util-NEHG7TUY-XQP3QSPX-YCJRRNXO.js.map +1 -0
  439. package/handlers/server/handlers.d.ts +1 -0
  440. package/handlers.d.ts +1 -0
  441. package/package.json +74 -20
  442. package/server-adapter.d.ts +1 -0
  443. package/dist/_tsup-dts-rollup.d.cts +0 -573
  444. package/dist/_tsup-dts-rollup.d.ts +0 -573
  445. package/dist/chunk-2FJURXCL.cjs +0 -213
  446. package/dist/chunk-3AHQ5RGN.js +0 -11
  447. package/dist/chunk-3EJZQ6TQ.js +0 -49
  448. package/dist/chunk-3RVHWGWO.js +0 -95
  449. package/dist/chunk-4JINXASC.js +0 -120
  450. package/dist/chunk-67WTHYAV.js +0 -156
  451. package/dist/chunk-A7DF4ETD.cjs +0 -100
  452. package/dist/chunk-B64YROKU.cjs +0 -317
  453. package/dist/chunk-CWSDZEZG.cjs +0 -139
  454. package/dist/chunk-DVPP5S6I.js +0 -135
  455. package/dist/chunk-JLDXUWK7.cjs +0 -126
  456. package/dist/chunk-L7XE5QTW.js +0 -16
  457. package/dist/chunk-M56ECCHK.cjs +0 -128
  458. package/dist/chunk-OPP7H5TW.js +0 -305
  459. package/dist/chunk-PDC4ZBQW.cjs +0 -126
  460. package/dist/chunk-QH6XWSXP.cjs +0 -5579
  461. package/dist/chunk-QN4KF3BH.cjs +0 -18
  462. package/dist/chunk-RBQASTUP.js +0 -203
  463. package/dist/chunk-SKBVVI24.cjs +0 -54
  464. package/dist/chunk-UV4WTEH4.js +0 -120
  465. package/dist/chunk-VK6FX47H.js +0 -5576
  466. package/dist/chunk-YANVFOYA.js +0 -120
  467. package/dist/chunk-Z46X3YCB.cjs +0 -164
  468. package/dist/chunk-ZLBRQFDD.cjs +0 -13
  469. package/dist/index.d.cts +0 -1
  470. package/dist/server/handlers/agents.d.cts +0 -6
  471. package/dist/server/handlers/error.d.cts +0 -1
  472. package/dist/server/handlers/logs.d.cts +0 -3
  473. package/dist/server/handlers/memory.d.cts +0 -8
  474. package/dist/server/handlers/network.cjs +0 -22
  475. package/dist/server/handlers/network.d.cts +0 -4
  476. package/dist/server/handlers/network.d.ts +0 -4
  477. package/dist/server/handlers/network.js +0 -1
  478. package/dist/server/handlers/telemetry.cjs +0 -14
  479. package/dist/server/handlers/telemetry.d.cts +0 -2
  480. package/dist/server/handlers/telemetry.d.ts +0 -2
  481. package/dist/server/handlers/telemetry.js +0 -1
  482. package/dist/server/handlers/tools.d.cts +0 -4
  483. package/dist/server/handlers/utils.d.cts +0 -1
  484. package/dist/server/handlers/vector.d.cts +0 -6
  485. package/dist/server/handlers/voice.d.cts +0 -3
  486. package/dist/server/handlers/workflows.d.cts +0 -10
  487. package/dist/server/handlers.d.cts +0 -9
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/schemas/stored-agents.ts","../src/server/schemas/agent-versions.ts","../src/server/handlers/agent-versions.ts"],"names":["z"],"mappings":"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","file":"chunk-DD7LYNHB.js","sourcesContent":["import z from 'zod';\nimport { paginationInfoSchema, createPagePaginationSchema } from './common';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\n/**\n * Path parameter for stored agent ID\n */\nexport const storedAgentIdPathParams = z.object({\n storedAgentId: z.string().describe('Unique identifier for the stored agent'),\n});\n\n// ============================================================================\n// Query Parameter Schemas\n// ============================================================================\n\n/**\n * Storage order by configuration\n */\nconst storageOrderBySchema = z.object({\n field: z.enum(['createdAt', 'updatedAt']).optional(),\n direction: z.enum(['ASC', 'DESC']).optional(),\n});\n\n/**\n * GET /stored/agents - List stored agents\n */\nexport const listStoredAgentsQuerySchema = createPagePaginationSchema(100).extend({\n orderBy: storageOrderBySchema.optional(),\n ownerId: z.string().optional().describe('Filter agents by owner identifier'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Filter agents by metadata key-value pairs'),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\n/**\n * Scorer config schema with optional sampling\n */\nconst scorerConfigSchema = z.object({\n sampling: z\n .object({\n type: z.enum(['ratio', 'count']),\n rate: z.number().optional(),\n count: z.number().optional(),\n })\n .optional(),\n});\n\n/**\n * Base stored agent schema (shared fields)\n */\nconst storedAgentBaseSchema = z.object({\n name: z.string().describe('Name of the agent'),\n description: z.string().optional().describe('Description of the agent'),\n instructions: z.string().describe('System instructions for the agent'),\n model: z.record(z.string(), z.unknown()).describe('Model configuration (provider, name, etc.)'),\n tools: z.array(z.string()).optional().describe('Array of tool keys to resolve from Mastra registry'),\n defaultOptions: z.record(z.string(), z.unknown()).optional().describe('Default options for generate/stream calls'),\n workflows: z.array(z.string()).optional().describe('Array of workflow keys to resolve from Mastra registry'),\n agents: z.array(z.string()).optional().describe('Array of agent keys to resolve from Mastra registry'),\n integrationTools: z\n .array(z.string())\n .optional()\n .describe('Array of specific integration tool IDs (format: provider_toolkitSlug_toolSlug)'),\n inputProcessors: z.array(z.record(z.string(), z.unknown())).optional().describe('Input processor configurations'),\n outputProcessors: z.array(z.record(z.string(), z.unknown())).optional().describe('Output processor configurations'),\n memory: z.string().optional().describe('Memory key to resolve from Mastra registry'),\n scorers: z.record(z.string(), scorerConfigSchema).optional().describe('Scorer keys with optional sampling config'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata for the agent'),\n ownerId: z.string().optional().describe('Owner identifier for multi-tenant filtering'),\n});\n\n/**\n * POST /stored/agents - Create stored agent body\n */\nexport const createStoredAgentBodySchema = storedAgentBaseSchema.extend({\n id: z.string().describe('Unique identifier for the agent'),\n});\n\n/**\n * PATCH /stored/agents/:storedAgentId - Update stored agent body\n */\nexport const updateStoredAgentBodySchema = storedAgentBaseSchema.partial();\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n/**\n * Stored agent object schema (full response)\n */\nexport const storedAgentSchema = storedAgentBaseSchema.extend({\n id: z.string(),\n ownerId: z.string().optional(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\n/**\n * Response for GET /stored/agents\n */\nexport const listStoredAgentsResponseSchema = paginationInfoSchema.extend({\n agents: z.array(storedAgentSchema),\n});\n\n/**\n * Response for GET /stored/agents/:storedAgentId\n */\nexport const getStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for POST /stored/agents\n */\nexport const createStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for PATCH /stored/agents/:storedAgentId\n */\nexport const updateStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for DELETE /stored/agents/:storedAgentId\n */\nexport const deleteStoredAgentResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n","import z from 'zod';\nimport { paginationInfoSchema, createPagePaginationSchema } from './common';\nimport { storedAgentSchema } from './stored-agents';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\n/**\n * Path parameters for agent version routes\n */\nexport const agentVersionPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the stored agent'),\n});\n\n/**\n * Path parameters for specific version routes\n */\nexport const versionIdPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the stored agent'),\n versionId: z.string().describe('Unique identifier for the version (UUID)'),\n});\n\n// ============================================================================\n// Query Parameter Schemas\n// ============================================================================\n\n/**\n * Version order by configuration\n */\nconst versionOrderBySchema = z.object({\n field: z.enum(['versionNumber', 'createdAt']).optional(),\n direction: z.enum(['ASC', 'DESC']).optional(),\n});\n\n/**\n * GET /stored/agents/:agentId/versions - List versions query params\n */\nexport const listVersionsQuerySchema = createPagePaginationSchema(20).extend({\n orderBy: versionOrderBySchema.optional(),\n});\n\n/**\n * GET /stored/agents/:agentId/versions/compare - Compare versions query params\n */\nexport const compareVersionsQuerySchema = z.object({\n from: z.string().describe('Version ID (UUID) to compare from'),\n to: z.string().describe('Version ID (UUID) to compare to'),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\n/**\n * POST /stored/agents/:agentId/versions - Create version body\n */\nexport const createVersionBodySchema = z.object({\n name: z.string().max(100).optional().describe('Optional vanity name for this version'),\n changeMessage: z.string().max(500).optional().describe('Optional message describing the changes'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n/**\n * Agent version object schema (full response)\n */\nexport const agentVersionSchema = z.object({\n id: z.string().describe('Unique identifier for the version (UUID)'),\n agentId: z.string().describe('ID of the agent this version belongs to'),\n versionNumber: z.number().describe('Sequential version number (1, 2, 3, ...)'),\n name: z.string().optional().describe('Optional vanity name for this version'),\n snapshot: storedAgentSchema.describe('Full agent configuration snapshot'),\n changedFields: z.array(z.string()).optional().describe('Array of field names that changed from the previous version'),\n changeMessage: z.string().optional().describe('Optional message describing the changes'),\n createdAt: z.date().describe('When this version was created'),\n});\n\n/**\n * Response for GET /stored/agents/:agentId/versions\n */\nexport const listVersionsResponseSchema = paginationInfoSchema.extend({\n versions: z.array(agentVersionSchema),\n});\n\n/**\n * Response for GET /stored/agents/:agentId/versions/:versionId\n */\nexport const getVersionResponseSchema = agentVersionSchema;\n\n/**\n * Response for POST /stored/agents/:agentId/versions\n */\nexport const createVersionResponseSchema = agentVersionSchema;\n\n/**\n * Response for POST /stored/agents/:agentId/versions/:versionId/activate\n */\nexport const activateVersionResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n activeVersionId: z.string(),\n});\n\n/**\n * Response for POST /stored/agents/:agentId/versions/:versionId/restore\n */\nexport const restoreVersionResponseSchema = agentVersionSchema.describe(\n 'The newly created version from the restored snapshot',\n);\n\n/**\n * Response for DELETE /stored/agents/:agentId/versions/:versionId\n */\nexport const deleteVersionResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n\n/**\n * Single diff entry for version comparison\n */\nexport const versionDiffEntrySchema = z.object({\n field: z.string().describe('The field path that changed'),\n previousValue: z.unknown().describe('The value in the \"from\" version'),\n currentValue: z.unknown().describe('The value in the \"to\" version'),\n});\n\n/**\n * Response for GET /stored/agents/:agentId/versions/compare\n */\nexport const compareVersionsResponseSchema = z.object({\n diffs: z.array(versionDiffEntrySchema).describe('List of differences between versions'),\n fromVersion: agentVersionSchema.describe('The source version'),\n toVersion: agentVersionSchema.describe('The target version'),\n});\n","import { HTTPException } from '../http-exception';\nimport {\n agentVersionPathParams,\n versionIdPathParams,\n listVersionsQuerySchema,\n createVersionBodySchema,\n compareVersionsQuerySchema,\n listVersionsResponseSchema,\n getVersionResponseSchema,\n createVersionResponseSchema,\n activateVersionResponseSchema,\n restoreVersionResponseSchema,\n deleteVersionResponseSchema,\n compareVersionsResponseSchema,\n} from '../schemas/agent-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n// Default maximum versions per agent (can be made configurable in the future)\nexport const DEFAULT_MAX_VERSIONS_PER_AGENT = 50;\n\n// ============================================================================\n// Helper Functions (exported for use in stored-agents.ts)\n// ============================================================================\n\n/**\n * Deep equality comparison for comparing two values.\n * Handles primitives, arrays, objects, and Date instances.\n * TODO: Move to a shared utils package that gets bundled into each package\n */\nfunction deepEqual(a: unknown, b: unknown): boolean {\n // Handle identical references and primitives\n if (a === b) return true;\n\n // Handle null/undefined\n if (a == null || b == null) return a === b;\n\n // Handle different types\n if (typeof a !== typeof b) return false;\n\n // Handle arrays\n if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false;\n return a.every((item, index) => deepEqual(item, b[index]));\n }\n\n // Handle dates (must check before generic objects since Date is also an object)\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n\n // Handle objects (after Date check to avoid treating Dates as plain objects)\n if (typeof a === 'object' && typeof b === 'object') {\n const aObj = a as Record<string, unknown>;\n const bObj = b as Record<string, unknown>;\n const aKeys = Object.keys(aObj);\n const bKeys = Object.keys(bObj);\n\n if (aKeys.length !== bKeys.length) return false;\n\n // Verify that bObj has the same keys as aObj before comparing values\n return aKeys.every(key => Object.prototype.hasOwnProperty.call(bObj, key) && deepEqual(aObj[key], bObj[key]));\n }\n\n return false;\n}\n\n/**\n * Generates a unique ID for a version using crypto.randomUUID()\n */\nexport function generateVersionId(): string {\n return crypto.randomUUID();\n}\n\n/**\n * Compares two agent snapshots and returns an array of field names that changed.\n * Performs deep comparison for nested objects.\n */\nexport function calculateChangedFields(\n previous: Record<string, unknown> | null | undefined,\n current: Record<string, unknown>,\n): string[] {\n if (!previous) {\n // If no previous version, all fields are \"changed\" (new)\n return Object.keys(current);\n }\n\n const changedFields: string[] = [];\n const allKeys = new Set([...Object.keys(previous), ...Object.keys(current)]);\n\n for (const key of allKeys) {\n // Skip metadata fields that change on every save\n if (key === 'updatedAt' || key === 'createdAt') {\n continue;\n }\n\n const prevValue = previous[key];\n const currValue = current[key];\n\n if (!deepEqual(prevValue, currValue)) {\n changedFields.push(key);\n }\n }\n\n return changedFields;\n}\n\n/**\n * Computes detailed diffs between two agent snapshots.\n */\nfunction computeVersionDiffs(\n fromSnapshot: Record<string, unknown>,\n toSnapshot: Record<string, unknown>,\n): Array<{ field: string; previousValue: unknown; currentValue: unknown }> {\n const diffs: Array<{ field: string; previousValue: unknown; currentValue: unknown }> = [];\n const allKeys = new Set([...Object.keys(fromSnapshot), ...Object.keys(toSnapshot)]);\n\n for (const key of allKeys) {\n // Skip metadata fields\n if (key === 'updatedAt' || key === 'createdAt') {\n continue;\n }\n\n const prevValue = fromSnapshot[key];\n const currValue = toSnapshot[key];\n\n if (!deepEqual(prevValue, currValue)) {\n diffs.push({\n field: key,\n previousValue: prevValue,\n currentValue: currValue,\n });\n }\n }\n\n return diffs;\n}\n\n/**\n * Enforces version retention limit by deleting oldest versions that exceed the maximum.\n * Never deletes the active version.\n *\n * @param agentsStore - The agents storage domain\n * @param agentId - The agent ID to enforce retention for\n * @param activeVersionId - The active version ID (will never be deleted)\n * @param maxVersions - Maximum number of versions to keep (default: 50)\n */\nexport async function enforceRetentionLimit(\n agentsStore: {\n listVersions: (params: {\n agentId: string;\n page?: number;\n perPage?: number | false;\n orderBy?: { field?: 'versionNumber' | 'createdAt'; direction?: 'ASC' | 'DESC' };\n }) => Promise<{\n versions: Array<{ id: string; versionNumber: number }>;\n total: number;\n }>;\n deleteVersion: (id: string) => Promise<void>;\n },\n agentId: string,\n activeVersionId: string | undefined | null,\n maxVersions: number = DEFAULT_MAX_VERSIONS_PER_AGENT,\n): Promise<{ deletedCount: number }> {\n // Get total version count\n const { total } = await agentsStore.listVersions({ agentId, perPage: 1 });\n\n if (total <= maxVersions) {\n return { deletedCount: 0 };\n }\n\n const versionsToDelete = total - maxVersions;\n\n // Get the oldest versions (ordered by versionNumber ascending)\n const { versions: oldestVersions } = await agentsStore.listVersions({\n agentId,\n perPage: versionsToDelete + 1, // Get one extra in case we need to skip the active version\n orderBy: { field: 'versionNumber', direction: 'ASC' },\n });\n\n let deletedCount = 0;\n for (const version of oldestVersions) {\n if (deletedCount >= versionsToDelete) {\n break;\n }\n\n // Never delete the active version\n if (version.id === activeVersionId) {\n continue;\n }\n\n await agentsStore.deleteVersion(version.id);\n deletedCount++;\n }\n\n return { deletedCount };\n}\n\n/**\n * Determines if an error is a unique constraint violation on versionNumber.\n * This is used to detect race conditions when creating versions concurrently.\n */\nfunction isVersionNumberConflictError(error: unknown): boolean {\n if (error instanceof Error) {\n const message = error.message.toLowerCase();\n // Check for common unique constraint violation patterns across databases\n return (\n (message.includes('unique') && message.includes('constraint')) ||\n message.includes('duplicate key') ||\n message.includes('unique_violation') ||\n message.includes('sqlite_constraint_unique') ||\n message.includes('versionnumber')\n );\n }\n return false;\n}\n\n/**\n * Type for the agents store with version-related methods.\n * Uses generic types to work with any StorageAgentType-compatible structure.\n */\nexport interface AgentsStoreWithVersions<TAgent = any> {\n getLatestVersion: (agentId: string) => Promise<{ id: string; versionNumber: number; snapshot: TAgent } | null>;\n createVersion: (params: {\n id: string;\n agentId: string;\n versionNumber: number;\n name?: string;\n snapshot: TAgent;\n changedFields?: string[];\n changeMessage?: string;\n }) => Promise<{ id: string; versionNumber: number }>;\n updateAgent: (params: { id: string; activeVersionId?: string; [key: string]: any }) => Promise<TAgent>;\n listVersions: (params: {\n agentId: string;\n page?: number;\n perPage?: number | false;\n orderBy?: { field?: 'versionNumber' | 'createdAt'; direction?: 'ASC' | 'DESC' };\n }) => Promise<{\n versions: Array<{ id: string; versionNumber: number }>;\n total: number;\n }>;\n deleteVersion: (id: string) => Promise<void>;\n}\n\n/**\n * Creates a new version with retry logic for race condition handling.\n * If a unique constraint violation occurs on versionNumber, retries with a fresh versionNumber.\n *\n * @param agentsStore - The agents storage domain\n * @param agentId - The agent ID to create a version for\n * @param snapshot - The agent configuration snapshot\n * @param changedFields - Array of field names that changed\n * @param options - Optional settings for the version\n * @param options.name - Optional vanity name for the version\n * @param options.changeMessage - Optional description of the changes\n * @param options.maxRetries - Maximum number of retry attempts (default: 3)\n * @returns The created version ID and version number\n */\nexport async function createVersionWithRetry<TAgent>(\n agentsStore: AgentsStoreWithVersions<TAgent>,\n agentId: string,\n snapshot: TAgent,\n changedFields: string[],\n options: {\n name?: string;\n changeMessage?: string;\n maxRetries?: number;\n } = {},\n): Promise<{ versionId: string; versionNumber: number }> {\n const { name, changeMessage, maxRetries = 3 } = options;\n let lastError: unknown;\n\n for (let attempt = 0; attempt < maxRetries; attempt++) {\n try {\n // Get the latest version number (fresh on each attempt)\n const latestVersion = await agentsStore.getLatestVersion(agentId);\n const versionNumber = latestVersion ? latestVersion.versionNumber + 1 : 1;\n\n // Generate a unique version ID\n const versionId = generateVersionId();\n\n // Create the version\n await agentsStore.createVersion({\n id: versionId,\n agentId,\n versionNumber,\n name,\n snapshot,\n changedFields,\n changeMessage,\n });\n\n return { versionId, versionNumber };\n } catch (error) {\n lastError = error;\n\n // If it's a unique constraint violation, retry with a fresh versionNumber\n if (isVersionNumberConflictError(error) && attempt < maxRetries - 1) {\n // Small delay before retry to reduce contention\n await new Promise(resolve => setTimeout(resolve, 10 * (attempt + 1)));\n continue;\n }\n\n // For other errors or last attempt, rethrow\n throw error;\n }\n }\n\n // Should not reach here, but just in case\n throw lastError;\n}\n\n/**\n * Handles auto-versioning after an agent update.\n * Creates a new version with retry logic, then updates the agent's activeVersionId,\n * and finally enforces the retention limit. These are separate operations - if updateAgent\n * fails after version creation, a created-but-not-activated version may remain.\n *\n * @param agentsStore - The agents storage domain\n * @param agentId - The agent ID\n * @param existingAgent - The agent state before the update\n * @param updatedAgent - The agent state after the update\n * @returns The updated agent with the new activeVersionId, or the original if no changes\n */\nexport async function handleAutoVersioning<TAgent>(\n agentsStore: AgentsStoreWithVersions<TAgent>,\n agentId: string,\n existingAgent: TAgent,\n updatedAgent: TAgent,\n): Promise<{ agent: TAgent; versionCreated: boolean }> {\n // Calculate what fields changed\n const changedFields = calculateChangedFields(\n existingAgent as unknown as Record<string, unknown>,\n updatedAgent as unknown as Record<string, unknown>,\n );\n\n // Only create version if there are actual changes (excluding metadata timestamps)\n if (changedFields.length === 0) {\n return { agent: updatedAgent, versionCreated: false };\n }\n\n // Create version with retry logic for race conditions\n const { versionId } = await createVersionWithRetry(agentsStore, agentId, updatedAgent, changedFields, {\n changeMessage: 'Auto-saved after edit',\n });\n\n // Update the agent's activeVersionId\n const finalAgent = await agentsStore.updateAgent({\n id: agentId,\n activeVersionId: versionId,\n });\n\n // Enforce retention limit\n await enforceRetentionLimit(agentsStore, agentId, versionId);\n\n return { agent: finalAgent, versionCreated: true };\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/agents/:agentId/versions - List all versions for an agent\n */\nexport const LIST_AGENT_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents/:agentId/versions',\n responseType: 'json',\n pathParamSchema: agentVersionPathParams,\n queryParamSchema: listVersionsQuerySchema,\n responseSchema: listVersionsResponseSchema,\n summary: 'List agent versions',\n description: 'Returns a paginated list of all versions for a stored agent',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, page, perPage, orderBy }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Verify agent exists\n const agent = await agentsStore.getAgentById({ id: agentId });\n if (!agent) {\n throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n }\n\n const result = await agentsStore.listVersions({\n agentId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing agent versions');\n }\n },\n});\n\n/**\n * POST /stored/agents/:agentId/versions - Create a new version snapshot\n */\nexport const CREATE_AGENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents/:agentId/versions',\n responseType: 'json',\n pathParamSchema: agentVersionPathParams,\n bodySchema: createVersionBodySchema,\n responseSchema: createVersionResponseSchema,\n summary: 'Create agent version',\n description: 'Creates a new version snapshot of the current agent configuration',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, name, changeMessage }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Get the current agent configuration\n const agent = await agentsStore.getAgentById({ id: agentId });\n if (!agent) {\n throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n }\n\n // Get the latest version to calculate changed fields\n const latestVersion = await agentsStore.getLatestVersion(agentId);\n const changedFields = calculateChangedFields(\n latestVersion?.snapshot as Record<string, unknown> | undefined,\n agent as unknown as Record<string, unknown>,\n );\n\n // Create the new version with retry logic to handle race conditions\n const { versionId } = await createVersionWithRetry(\n agentsStore,\n agentId,\n agent,\n changedFields.length > 0 ? changedFields : [],\n { name, changeMessage },\n );\n\n // Get the created version to return\n const version = await agentsStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n // Enforce retention limit - delete oldest versions if we exceed the max\n await enforceRetentionLimit(agentsStore, agentId, agent.activeVersionId);\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating agent version');\n }\n },\n});\n\n/**\n * GET /stored/agents/:agentId/versions/:versionId - Get a specific version\n */\nexport const GET_AGENT_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents/:agentId/versions/:versionId',\n responseType: 'json',\n pathParamSchema: versionIdPathParams,\n responseSchema: getVersionResponseSchema,\n summary: 'Get agent version',\n description: 'Returns a specific version of an agent by its version ID',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n const version = await agentsStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n // Verify the version belongs to the specified agent\n if (version.agentId !== agentId) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found for agent ${agentId}` });\n }\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting agent version');\n }\n },\n});\n\n/**\n * POST /stored/agents/:agentId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_AGENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents/:agentId/versions/:versionId/activate',\n responseType: 'json',\n pathParamSchema: versionIdPathParams,\n responseSchema: activateVersionResponseSchema,\n summary: 'Activate agent version',\n description: 'Sets a specific version as the active version for the agent',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Verify agent exists\n const agent = await agentsStore.getAgentById({ id: agentId });\n if (!agent) {\n throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n }\n\n // Verify version exists and belongs to this agent\n const version = await agentsStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.agentId !== agentId) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found for agent ${agentId}` });\n }\n\n // Update the agent's activeVersionId\n await agentsStore.updateAgent({\n id: agentId,\n activeVersionId: versionId,\n });\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating agent version');\n }\n },\n});\n\n/**\n * POST /stored/agents/:agentId/versions/:versionId/restore - Restore agent to a version\n */\nexport const RESTORE_AGENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents/:agentId/versions/:versionId/restore',\n responseType: 'json',\n pathParamSchema: versionIdPathParams,\n responseSchema: restoreVersionResponseSchema,\n summary: 'Restore agent version',\n description: 'Restores the agent configuration from a version snapshot, creating a new version',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Verify agent exists\n const agent = await agentsStore.getAgentById({ id: agentId });\n if (!agent) {\n throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n }\n\n // Get the version to restore\n const versionToRestore = await agentsStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.agentId !== agentId) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found for agent ${agentId}` });\n }\n\n // Update the agent with the snapshot from the version to restore\n // Exclude id, createdAt, updatedAt, and activeVersionId from the snapshot\n // (activeVersionId from old snapshot may reference a stale/deleted version)\n const {\n id: _id,\n createdAt: _createdAt,\n updatedAt: _updatedAt,\n activeVersionId: _activeVersionId,\n ...snapshotData\n } = versionToRestore.snapshot;\n await agentsStore.updateAgent({\n id: agentId,\n ...snapshotData,\n });\n\n // Get the updated agent\n const updatedAgent = await agentsStore.getAgentById({ id: agentId });\n if (!updatedAgent) {\n throw new HTTPException(500, { message: 'Failed to retrieve updated agent' });\n }\n\n // Get the latest version to calculate changed fields\n const latestVersion = await agentsStore.getLatestVersion(agentId);\n const changedFields = calculateChangedFields(\n latestVersion?.snapshot as Record<string, unknown> | undefined,\n updatedAgent as unknown as Record<string, unknown>,\n );\n\n // Create a new version with retry logic to handle race conditions\n const { versionId: newVersionId } = await createVersionWithRetry(\n agentsStore,\n agentId,\n updatedAgent,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}${versionToRestore.name ? ` (${versionToRestore.name})` : ''}`,\n },\n );\n\n // Update the agent's activeVersionId to the new version\n await agentsStore.updateAgent({\n id: agentId,\n activeVersionId: newVersionId,\n });\n\n // Get the created version to return\n const newVersion = await agentsStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n // Enforce retention limit - delete oldest versions if we exceed the max\n // Use the new version ID as the active version\n await enforceRetentionLimit(agentsStore, agentId, newVersionId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring agent version');\n }\n },\n});\n\n/**\n * DELETE /stored/agents/:agentId/versions/:versionId - Delete a version\n */\nexport const DELETE_AGENT_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/agents/:agentId/versions/:versionId',\n responseType: 'json',\n pathParamSchema: versionIdPathParams,\n responseSchema: deleteVersionResponseSchema,\n summary: 'Delete agent version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Verify agent exists\n const agent = await agentsStore.getAgentById({ id: agentId });\n if (!agent) {\n throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n }\n\n // Verify version exists and belongs to this agent\n const version = await agentsStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.agentId !== agentId) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found for agent ${agentId}` });\n }\n\n // Check if this is the active version\n if (agent.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await agentsStore.deleteVersion(versionId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting agent version');\n }\n },\n});\n\n/**\n * GET /stored/agents/:agentId/versions/compare - Compare two versions\n */\nexport const COMPARE_AGENT_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents/:agentId/versions/compare',\n responseType: 'json',\n pathParamSchema: agentVersionPathParams,\n queryParamSchema: compareVersionsQuerySchema,\n responseSchema: compareVersionsResponseSchema,\n summary: 'Compare agent versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['Agent Versions'],\n handler: async ({ mastra, agentId, from, to }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Get both versions\n const fromVersion = await agentsStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.agentId !== agentId) {\n throw new HTTPException(404, { message: `Version with id ${from} not found for agent ${agentId}` });\n }\n\n const toVersion = await agentsStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.agentId !== agentId) {\n throw new HTTPException(404, { message: `Version with id ${to} not found for agent ${agentId}` });\n }\n\n // Compute diffs\n const diffs = computeVersionDiffs(\n fromVersion.snapshot as unknown as Record<string, unknown>,\n toVersion.snapshot as unknown as Record<string, unknown>,\n );\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing agent versions');\n }\n },\n});\n"]}
@@ -0,0 +1,334 @@
1
+ import { successResponseSchema } from './chunk-HT4LP3BO.js';
2
+ import { handleError } from './chunk-ONN5EA7E.js';
3
+ import { createRoute } from './chunk-D5VCL56B.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: "/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
+ requiresAuth: true,
190
+ handler: async ({ mastra, vectorName, ...params }) => {
191
+ try {
192
+ const { indexName, vectors, metadata, ids } = params;
193
+ if (!indexName || !vectors || !Array.isArray(vectors)) {
194
+ throw new HTTPException(400, { message: "Invalid request index. indexName and vectors array are required." });
195
+ }
196
+ const vector = getVector(mastra, vectorName);
197
+ const result = await vector.upsert({ indexName, vectors, metadata, ids });
198
+ return { ids: result };
199
+ } catch (error) {
200
+ return handleError(error, "Error upserting vectors");
201
+ }
202
+ }
203
+ });
204
+ var CREATE_INDEX_ROUTE = createRoute({
205
+ method: "POST",
206
+ path: "/vector/:vectorName/create-index",
207
+ responseType: "json",
208
+ pathParamSchema: vectorNamePathParams,
209
+ bodySchema: createIndexBodySchema,
210
+ responseSchema: createIndexResponseSchema,
211
+ summary: "Create index",
212
+ description: "Creates a new vector index with the specified dimension and metric",
213
+ tags: ["Vectors"],
214
+ requiresAuth: true,
215
+ handler: async ({ mastra, vectorName, ...params }) => {
216
+ try {
217
+ const { indexName, dimension, metric } = params;
218
+ if (!indexName || typeof dimension !== "number" || dimension <= 0) {
219
+ throw new HTTPException(400, {
220
+ message: "Invalid request index, indexName and positive dimension number are required."
221
+ });
222
+ }
223
+ if (metric && !["cosine", "euclidean", "dotproduct"].includes(metric)) {
224
+ throw new HTTPException(400, { message: "Invalid metric. Must be one of: cosine, euclidean, dotproduct" });
225
+ }
226
+ const vector = getVector(mastra, vectorName);
227
+ await vector.createIndex({ indexName, dimension, metric });
228
+ return { success: true };
229
+ } catch (error) {
230
+ return handleError(error, "Error creating index");
231
+ }
232
+ }
233
+ });
234
+ var QUERY_VECTORS_ROUTE = createRoute({
235
+ method: "POST",
236
+ path: "/vector/:vectorName/query",
237
+ responseType: "json",
238
+ pathParamSchema: vectorNamePathParams,
239
+ bodySchema: queryVectorsBodySchema,
240
+ responseSchema: queryVectorsResponseSchema,
241
+ summary: "Query vectors",
242
+ description: "Performs a similarity search on the vector index",
243
+ tags: ["Vectors"],
244
+ requiresAuth: true,
245
+ handler: async ({ mastra, vectorName, ...params }) => {
246
+ try {
247
+ const { indexName, queryVector, topK, filter, includeVector } = params;
248
+ if (!indexName || !queryVector || !Array.isArray(queryVector)) {
249
+ throw new HTTPException(400, {
250
+ message: "Invalid request query. indexName and queryVector array are required."
251
+ });
252
+ }
253
+ const vector = getVector(mastra, vectorName);
254
+ const results = await vector.query({ indexName, queryVector, topK, filter, includeVector });
255
+ return results;
256
+ } catch (error) {
257
+ return handleError(error, "Error querying vectors");
258
+ }
259
+ }
260
+ });
261
+ var LIST_INDEXES_ROUTE = createRoute({
262
+ method: "GET",
263
+ path: "/vector/:vectorName/indexes",
264
+ responseType: "json",
265
+ pathParamSchema: vectorNamePathParams,
266
+ responseSchema: listIndexesResponseSchema,
267
+ summary: "List indexes",
268
+ description: "Returns a list of all indexes in the vector store",
269
+ tags: ["Vectors"],
270
+ requiresAuth: true,
271
+ handler: async ({ mastra, vectorName }) => {
272
+ try {
273
+ const vector = getVector(mastra, vectorName);
274
+ const indexes = await vector.listIndexes();
275
+ return indexes.filter(Boolean);
276
+ } catch (error) {
277
+ return handleError(error, "Error listing indexes");
278
+ }
279
+ }
280
+ });
281
+ var DESCRIBE_INDEX_ROUTE = createRoute({
282
+ method: "GET",
283
+ path: "/vector/:vectorName/indexes/:indexName",
284
+ responseType: "json",
285
+ pathParamSchema: vectorIndexPathParams,
286
+ responseSchema: describeIndexResponseSchema,
287
+ summary: "Describe index",
288
+ description: "Returns statistics and metadata for a specific index",
289
+ tags: ["Vectors"],
290
+ requiresAuth: true,
291
+ handler: async ({ mastra, vectorName, indexName }) => {
292
+ try {
293
+ if (!indexName) {
294
+ throw new HTTPException(400, { message: "Index name is required" });
295
+ }
296
+ const vector = getVector(mastra, vectorName);
297
+ const stats = await vector.describeIndex({ indexName });
298
+ return {
299
+ dimension: stats.dimension,
300
+ count: stats.count,
301
+ metric: stats.metric?.toLowerCase()
302
+ };
303
+ } catch (error) {
304
+ return handleError(error, "Error describing index");
305
+ }
306
+ }
307
+ });
308
+ var DELETE_INDEX_ROUTE = createRoute({
309
+ method: "DELETE",
310
+ path: "/vector/:vectorName/indexes/:indexName",
311
+ responseType: "json",
312
+ pathParamSchema: vectorIndexPathParams,
313
+ responseSchema: deleteIndexResponseSchema,
314
+ summary: "Delete index",
315
+ description: "Deletes a vector index and all its data",
316
+ tags: ["Vectors"],
317
+ requiresAuth: true,
318
+ handler: async ({ mastra, vectorName, indexName }) => {
319
+ try {
320
+ if (!indexName) {
321
+ throw new HTTPException(400, { message: "Index name is required" });
322
+ }
323
+ const vector = getVector(mastra, vectorName);
324
+ await vector.deleteIndex({ indexName });
325
+ return { success: true };
326
+ } catch (error) {
327
+ return handleError(error, "Error deleting index");
328
+ }
329
+ }
330
+ });
331
+
332
+ 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 };
333
+ //# sourceMappingURL=chunk-DHDVJ5II.js.map
334
+ //# sourceMappingURL=chunk-DHDVJ5II.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-DHDVJ5II.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: '/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 requiresAuth: true,\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: '/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 requiresAuth: true,\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: '/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 requiresAuth: true,\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: '/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 requiresAuth: true,\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: '/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 requiresAuth: true,\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: '/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 requiresAuth: true,\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"]}