@mastra/server 1.32.0-alpha.1 → 1.32.0-alpha.2

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 (305) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/_types/@internal_core/dist/index.d.ts +82 -1
  3. package/dist/{chunk-44JNOREB.cjs → chunk-2REMDR2Q.cjs} +12 -12
  4. package/dist/{chunk-44JNOREB.cjs.map → chunk-2REMDR2Q.cjs.map} +1 -1
  5. package/dist/{chunk-W53ZIS6J.js → chunk-33USMBWV.js} +3 -3
  6. package/dist/{chunk-W53ZIS6J.js.map → chunk-33USMBWV.js.map} +1 -1
  7. package/dist/{chunk-ZQVMWCVT.js → chunk-4JWF4VAL.js} +3 -3
  8. package/dist/{chunk-ZQVMWCVT.js.map → chunk-4JWF4VAL.js.map} +1 -1
  9. package/dist/{chunk-53YFG5AY.js → chunk-4L2UVFJO.js} +8 -2
  10. package/dist/chunk-4L2UVFJO.js.map +1 -0
  11. package/dist/{chunk-CXBX2UAP.cjs → chunk-4UMO2IGR.cjs} +7 -7
  12. package/dist/{chunk-CXBX2UAP.cjs.map → chunk-4UMO2IGR.cjs.map} +1 -1
  13. package/dist/{chunk-5KM5P23Q.cjs → chunk-5VMRQT5S.cjs} +29 -29
  14. package/dist/{chunk-5KM5P23Q.cjs.map → chunk-5VMRQT5S.cjs.map} +1 -1
  15. package/dist/{chunk-BCBNR2J2.js → chunk-64M357LE.js} +6 -6
  16. package/dist/{chunk-BCBNR2J2.js.map → chunk-64M357LE.js.map} +1 -1
  17. package/dist/{chunk-CUIH4FYN.js → chunk-67TYG7WH.js} +3 -3
  18. package/dist/{chunk-CUIH4FYN.js.map → chunk-67TYG7WH.js.map} +1 -1
  19. package/dist/{chunk-EAOBAXC7.js → chunk-6M7OOHNA.js} +6 -6
  20. package/dist/{chunk-EAOBAXC7.js.map → chunk-6M7OOHNA.js.map} +1 -1
  21. package/dist/{chunk-HSU5D2KT.js → chunk-72RVQAAZ.js} +4 -4
  22. package/dist/{chunk-HSU5D2KT.js.map → chunk-72RVQAAZ.js.map} +1 -1
  23. package/dist/{chunk-5UKYK7YK.cjs → chunk-7LAFXMXB.cjs} +2 -2
  24. package/dist/{chunk-5UKYK7YK.cjs.map → chunk-7LAFXMXB.cjs.map} +1 -1
  25. package/dist/{chunk-CC6HRROH.cjs → chunk-AF6AYXRW.cjs} +86 -86
  26. package/dist/{chunk-CC6HRROH.cjs.map → chunk-AF6AYXRW.cjs.map} +1 -1
  27. package/dist/{chunk-NB2NE7QS.cjs → chunk-ANEBYNP6.cjs} +89 -67
  28. package/dist/chunk-ANEBYNP6.cjs.map +1 -0
  29. package/dist/{chunk-YI2LXCWB.js → chunk-AOKUS5NX.js} +3 -3
  30. package/dist/{chunk-YI2LXCWB.js.map → chunk-AOKUS5NX.js.map} +1 -1
  31. package/dist/{chunk-GITUJAKR.cjs → chunk-ASVWXKET.cjs} +12 -12
  32. package/dist/{chunk-GITUJAKR.cjs.map → chunk-ASVWXKET.cjs.map} +1 -1
  33. package/dist/{chunk-XG2VRXG5.cjs → chunk-BK2PRWVJ.cjs} +22 -2
  34. package/dist/chunk-BK2PRWVJ.cjs.map +1 -0
  35. package/dist/{chunk-DFEFYM5I.js → chunk-CBSIIPHQ.js} +6 -6
  36. package/dist/{chunk-DFEFYM5I.js.map → chunk-CBSIIPHQ.js.map} +1 -1
  37. package/dist/{chunk-VGR4DSXQ.cjs → chunk-CEZZQMPM.cjs} +11 -11
  38. package/dist/{chunk-VGR4DSXQ.cjs.map → chunk-CEZZQMPM.cjs.map} +1 -1
  39. package/dist/{chunk-OES3CANB.js → chunk-CR7RGILH.js} +3 -3
  40. package/dist/{chunk-OES3CANB.js.map → chunk-CR7RGILH.js.map} +1 -1
  41. package/dist/{chunk-OBYYH7DX.cjs → chunk-CTYPGLJG.cjs} +46 -21
  42. package/dist/chunk-CTYPGLJG.cjs.map +1 -0
  43. package/dist/{chunk-H6NJWTER.cjs → chunk-CZU262RD.cjs} +20 -15
  44. package/dist/chunk-CZU262RD.cjs.map +1 -0
  45. package/dist/{chunk-4IYALPXO.js → chunk-DCMRHRHR.js} +4 -4
  46. package/dist/{chunk-4IYALPXO.js.map → chunk-DCMRHRHR.js.map} +1 -1
  47. package/dist/{chunk-B346SGRP.cjs → chunk-DIBOFJUK.cjs} +11 -11
  48. package/dist/{chunk-B346SGRP.cjs.map → chunk-DIBOFJUK.cjs.map} +1 -1
  49. package/dist/{chunk-DY6OYCMG.js → chunk-DOTOVTE2.js} +4 -4
  50. package/dist/{chunk-DY6OYCMG.js.map → chunk-DOTOVTE2.js.map} +1 -1
  51. package/dist/{chunk-VOAVPKTH.js → chunk-EAJSW5GK.js} +3 -3
  52. package/dist/{chunk-VOAVPKTH.js.map → chunk-EAJSW5GK.js.map} +1 -1
  53. package/dist/{chunk-S7REEERK.cjs → chunk-EWNTXTFB.cjs} +11 -11
  54. package/dist/{chunk-S7REEERK.cjs.map → chunk-EWNTXTFB.cjs.map} +1 -1
  55. package/dist/{chunk-R76F63OE.js → chunk-F23SQINQ.js} +30 -8
  56. package/dist/chunk-F23SQINQ.js.map +1 -0
  57. package/dist/{chunk-6QL3PDQ7.cjs → chunk-F5RU45N6.cjs} +7 -7
  58. package/dist/{chunk-6QL3PDQ7.cjs.map → chunk-F5RU45N6.cjs.map} +1 -1
  59. package/dist/{chunk-TNNU7IZK.cjs → chunk-FFDMYX2V.cjs} +25 -25
  60. package/dist/{chunk-TNNU7IZK.cjs.map → chunk-FFDMYX2V.cjs.map} +1 -1
  61. package/dist/{chunk-ANP3ESTF.js → chunk-FICILXAQ.js} +3 -3
  62. package/dist/{chunk-ANP3ESTF.js.map → chunk-FICILXAQ.js.map} +1 -1
  63. package/dist/{chunk-2QNJHTKM.cjs → chunk-GME2ZNSG.cjs} +11 -11
  64. package/dist/{chunk-2QNJHTKM.cjs.map → chunk-GME2ZNSG.cjs.map} +1 -1
  65. package/dist/{chunk-6SBH6SYP.js → chunk-GOFGQSF7.js} +20 -7
  66. package/dist/chunk-GOFGQSF7.js.map +1 -0
  67. package/dist/{chunk-PQETTP2F.js → chunk-GQOWV33T.js} +3 -3
  68. package/dist/{chunk-PQETTP2F.js.map → chunk-GQOWV33T.js.map} +1 -1
  69. package/dist/{chunk-7RAGUCER.js → chunk-HBWNPGIL.js} +5 -5
  70. package/dist/{chunk-7RAGUCER.js.map → chunk-HBWNPGIL.js.map} +1 -1
  71. package/dist/{chunk-H23VTK56.js → chunk-HKXIZNJC.js} +4 -4
  72. package/dist/{chunk-H23VTK56.js.map → chunk-HKXIZNJC.js.map} +1 -1
  73. package/dist/{chunk-ME255ZWD.cjs → chunk-HN3V6UA4.cjs} +12 -12
  74. package/dist/{chunk-ME255ZWD.cjs.map → chunk-HN3V6UA4.cjs.map} +1 -1
  75. package/dist/{chunk-OGV23F3H.cjs → chunk-IMPWOZUQ.cjs} +28 -15
  76. package/dist/chunk-IMPWOZUQ.cjs.map +1 -0
  77. package/dist/{chunk-ZEESV2HZ.js → chunk-IRKGFNRR.js} +34 -9
  78. package/dist/chunk-IRKGFNRR.js.map +1 -0
  79. package/dist/{chunk-EPM6ILRW.js → chunk-IYEGDP3G.js} +22 -3
  80. package/dist/chunk-IYEGDP3G.js.map +1 -0
  81. package/dist/{chunk-TJAYLVG5.js → chunk-K2KWDOYR.js} +31 -4
  82. package/dist/chunk-K2KWDOYR.js.map +1 -0
  83. package/dist/{chunk-2TRRXAQK.cjs → chunk-K745HNW2.cjs} +11 -11
  84. package/dist/{chunk-2TRRXAQK.cjs.map → chunk-K745HNW2.cjs.map} +1 -1
  85. package/dist/{chunk-YJQYJ5WD.cjs → chunk-K7IVZQKI.cjs} +6 -6
  86. package/dist/{chunk-YJQYJ5WD.cjs.map → chunk-K7IVZQKI.cjs.map} +1 -1
  87. package/dist/{chunk-PA2BYLKF.js → chunk-KDUX3YN3.js} +2 -2
  88. package/dist/{chunk-PA2BYLKF.js.map → chunk-KDUX3YN3.js.map} +1 -1
  89. package/dist/{chunk-LVGLLXRY.cjs → chunk-KQU6VKAO.cjs} +7 -7
  90. package/dist/{chunk-LVGLLXRY.cjs.map → chunk-KQU6VKAO.cjs.map} +1 -1
  91. package/dist/{chunk-QGNNJRKA.js → chunk-KTTHNIBJ.js} +89 -26
  92. package/dist/chunk-KTTHNIBJ.js.map +1 -0
  93. package/dist/{chunk-YP2KYGCY.cjs → chunk-LGR7SFQ5.cjs} +38 -25
  94. package/dist/chunk-LGR7SFQ5.cjs.map +1 -0
  95. package/dist/{chunk-DTB2PQPA.js → chunk-LO7CBY5Q.js} +6 -6
  96. package/dist/{chunk-DTB2PQPA.js.map → chunk-LO7CBY5Q.js.map} +1 -1
  97. package/dist/{chunk-TGZNNEAI.cjs → chunk-M7L5EVQE.cjs} +12 -12
  98. package/dist/{chunk-TGZNNEAI.cjs.map → chunk-M7L5EVQE.cjs.map} +1 -1
  99. package/dist/{chunk-BMWSQ6HM.cjs → chunk-NIRJGDC6.cjs} +4 -4
  100. package/dist/{chunk-BMWSQ6HM.cjs.map → chunk-NIRJGDC6.cjs.map} +1 -1
  101. package/dist/{chunk-HAOI6QSD.js → chunk-NKD5XK43.js} +5 -5
  102. package/dist/{chunk-HAOI6QSD.js.map → chunk-NKD5XK43.js.map} +1 -1
  103. package/dist/{chunk-LTLTS3RN.js → chunk-NRKGN3C5.js} +4 -4
  104. package/dist/{chunk-LTLTS3RN.js.map → chunk-NRKGN3C5.js.map} +1 -1
  105. package/dist/{chunk-NHJFLZZN.cjs → chunk-OBRYBTX6.cjs} +12 -12
  106. package/dist/{chunk-NHJFLZZN.cjs.map → chunk-OBRYBTX6.cjs.map} +1 -1
  107. package/dist/{chunk-N6EQZJFN.js → chunk-OCBL7S62.js} +6 -6
  108. package/dist/{chunk-N6EQZJFN.js.map → chunk-OCBL7S62.js.map} +1 -1
  109. package/dist/{chunk-JCWPQ5DD.cjs → chunk-ODCWNXTX.cjs} +8 -8
  110. package/dist/{chunk-JCWPQ5DD.cjs.map → chunk-ODCWNXTX.cjs.map} +1 -1
  111. package/dist/{chunk-PQDR7XQP.js → chunk-OJ7SK6PH.js} +373 -52
  112. package/dist/chunk-OJ7SK6PH.js.map +1 -0
  113. package/dist/{chunk-LHY3IIL2.js → chunk-OPBMOOBR.js} +5 -5
  114. package/dist/{chunk-LHY3IIL2.js.map → chunk-OPBMOOBR.js.map} +1 -1
  115. package/dist/{chunk-2MWLNHBG.cjs → chunk-OQHTG2JK.cjs} +11 -11
  116. package/dist/{chunk-2MWLNHBG.cjs.map → chunk-OQHTG2JK.cjs.map} +1 -1
  117. package/dist/{chunk-4BSJHDYP.js → chunk-OUS6FNA7.js} +11 -6
  118. package/dist/chunk-OUS6FNA7.js.map +1 -0
  119. package/dist/{chunk-OGEXISZT.cjs → chunk-OZC7GEO5.cjs} +11 -11
  120. package/dist/{chunk-OGEXISZT.cjs.map → chunk-OZC7GEO5.cjs.map} +1 -1
  121. package/dist/{chunk-WFVK6ZXR.cjs → chunk-Q2T2Q4S5.cjs} +6 -6
  122. package/dist/{chunk-WFVK6ZXR.cjs.map → chunk-Q2T2Q4S5.cjs.map} +1 -1
  123. package/dist/{chunk-CKZMJIUO.cjs → chunk-R3DQGOTC.cjs} +6 -6
  124. package/dist/{chunk-CKZMJIUO.cjs.map → chunk-R3DQGOTC.cjs.map} +1 -1
  125. package/dist/{chunk-IQA7HL2V.js → chunk-R7X4YOSH.js} +51 -10
  126. package/dist/chunk-R7X4YOSH.js.map +1 -0
  127. package/dist/{chunk-NRFMMYTG.js → chunk-RF5ZDERV.js} +4 -4
  128. package/dist/{chunk-NRFMMYTG.js.map → chunk-RF5ZDERV.js.map} +1 -1
  129. package/dist/{chunk-O6YA7VM3.cjs → chunk-RL34ZMLF.cjs} +159 -96
  130. package/dist/chunk-RL34ZMLF.cjs.map +1 -0
  131. package/dist/{chunk-DITB4LGJ.js → chunk-RPEPKUZQ.js} +12 -11
  132. package/dist/chunk-RPEPKUZQ.js.map +1 -0
  133. package/dist/{chunk-TU7U5XUE.cjs → chunk-SUT6SU4I.cjs} +8 -2
  134. package/dist/chunk-SUT6SU4I.cjs.map +1 -0
  135. package/dist/{chunk-FRKJAWEK.cjs → chunk-T6MMZWHW.cjs} +426 -105
  136. package/dist/chunk-T6MMZWHW.cjs.map +1 -0
  137. package/dist/{chunk-KG2CULOS.js → chunk-TLOT3CIB.js} +6 -6
  138. package/dist/{chunk-KG2CULOS.js.map → chunk-TLOT3CIB.js.map} +1 -1
  139. package/dist/{chunk-3NNQG5XP.js → chunk-VG6A54JE.js} +3 -3
  140. package/dist/{chunk-3NNQG5XP.js.map → chunk-VG6A54JE.js.map} +1 -1
  141. package/dist/{chunk-UMVQATCY.js → chunk-VRPAOMXW.js} +25 -12
  142. package/dist/chunk-VRPAOMXW.js.map +1 -0
  143. package/dist/{chunk-EFP5PJBY.cjs → chunk-WMFH3SH2.cjs} +136 -94
  144. package/dist/chunk-WMFH3SH2.cjs.map +1 -0
  145. package/dist/{chunk-NBEKX4M5.js → chunk-WYSQECWW.js} +8 -8
  146. package/dist/{chunk-NBEKX4M5.js.map → chunk-WYSQECWW.js.map} +1 -1
  147. package/dist/{chunk-ERKUFMCT.js → chunk-X2LYM3QK.js} +3 -3
  148. package/dist/{chunk-ERKUFMCT.js.map → chunk-X2LYM3QK.js.map} +1 -1
  149. package/dist/{chunk-OGZ6ROYD.js → chunk-X3RINDH6.js} +6 -5
  150. package/dist/chunk-X3RINDH6.js.map +1 -0
  151. package/dist/{chunk-7QAQXIA4.cjs → chunk-X47OINMY.cjs} +17 -17
  152. package/dist/{chunk-7QAQXIA4.cjs.map → chunk-X47OINMY.cjs.map} +1 -1
  153. package/dist/{chunk-RTYIV265.cjs → chunk-XCXPPGJ3.cjs} +13 -13
  154. package/dist/{chunk-RTYIV265.cjs.map → chunk-XCXPPGJ3.cjs.map} +1 -1
  155. package/dist/{chunk-3S5WOAYR.cjs → chunk-XEERRXWL.cjs} +31 -3
  156. package/dist/chunk-XEERRXWL.cjs.map +1 -0
  157. package/dist/{chunk-NUGBBASK.js → chunk-XOHBH6NQ.js} +4 -4
  158. package/dist/{chunk-NUGBBASK.js.map → chunk-XOHBH6NQ.js.map} +1 -1
  159. package/dist/{chunk-OLPARCPM.cjs → chunk-XUFQVLBC.cjs} +5 -5
  160. package/dist/{chunk-OLPARCPM.cjs.map → chunk-XUFQVLBC.cjs.map} +1 -1
  161. package/dist/{chunk-U4ZN4PDI.cjs → chunk-YMBKVVDF.cjs} +22 -21
  162. package/dist/chunk-YMBKVVDF.cjs.map +1 -0
  163. package/dist/{chunk-I2IUAPQE.cjs → chunk-ZCCXXT7V.cjs} +12 -12
  164. package/dist/{chunk-I2IUAPQE.cjs.map → chunk-ZCCXXT7V.cjs.map} +1 -1
  165. package/dist/{chunk-EBKNX5RM.cjs → chunk-ZHEQYOTL.cjs} +53 -52
  166. package/dist/chunk-ZHEQYOTL.cjs.map +1 -0
  167. package/dist/docs/SKILL.md +1 -1
  168. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  169. package/dist/server/auth/helpers.d.ts +9 -1
  170. package/dist/server/auth/helpers.d.ts.map +1 -1
  171. package/dist/server/auth/index.cjs +18 -14
  172. package/dist/server/auth/index.js +1 -1
  173. package/dist/server/handlers/a2a.cjs +10 -10
  174. package/dist/server/handlers/a2a.js +1 -1
  175. package/dist/server/handlers/agent-builder.cjs +16 -16
  176. package/dist/server/handlers/agent-builder.js +1 -1
  177. package/dist/server/handlers/agent-versions.cjs +8 -8
  178. package/dist/server/handlers/agent-versions.js +1 -1
  179. package/dist/server/handlers/agents.cjs +38 -38
  180. package/dist/server/handlers/agents.d.ts.map +1 -1
  181. package/dist/server/handlers/agents.js +1 -1
  182. package/dist/server/handlers/auth.cjs +11 -11
  183. package/dist/server/handlers/auth.d.ts.map +1 -1
  184. package/dist/server/handlers/auth.js +1 -1
  185. package/dist/server/handlers/background-tasks.cjs +4 -4
  186. package/dist/server/handlers/background-tasks.js +1 -1
  187. package/dist/server/handlers/channels.cjs +5 -5
  188. package/dist/server/handlers/channels.js +1 -1
  189. package/dist/server/handlers/conversations.cjs +5 -5
  190. package/dist/server/handlers/conversations.d.ts.map +1 -1
  191. package/dist/server/handlers/conversations.js +1 -1
  192. package/dist/server/handlers/datasets.cjs +26 -26
  193. package/dist/server/handlers/datasets.js +1 -1
  194. package/dist/server/handlers/logs.cjs +4 -4
  195. package/dist/server/handlers/logs.js +1 -1
  196. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  197. package/dist/server/handlers/mcp-client-versions.js +1 -1
  198. package/dist/server/handlers/mcp.cjs +9 -9
  199. package/dist/server/handlers/mcp.d.ts.map +1 -1
  200. package/dist/server/handlers/mcp.js +1 -1
  201. package/dist/server/handlers/memory.cjs +27 -27
  202. package/dist/server/handlers/memory.d.ts.map +1 -1
  203. package/dist/server/handlers/memory.js +1 -1
  204. package/dist/server/handlers/observability-new-endpoints.cjs +31 -27
  205. package/dist/server/handlers/observability-new-endpoints.d.ts +315 -19
  206. package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
  207. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  208. package/dist/server/handlers/observability-shared.cjs +5 -5
  209. package/dist/server/handlers/observability-shared.d.ts +6 -0
  210. package/dist/server/handlers/observability-shared.d.ts.map +1 -1
  211. package/dist/server/handlers/observability-shared.js +1 -1
  212. package/dist/server/handlers/observability.cjs +39 -35
  213. package/dist/server/handlers/observability.js +2 -2
  214. package/dist/server/handlers/processor-providers.cjs +3 -3
  215. package/dist/server/handlers/processor-providers.js +1 -1
  216. package/dist/server/handlers/processors.cjs +4 -4
  217. package/dist/server/handlers/processors.js +1 -1
  218. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  219. package/dist/server/handlers/prompt-block-versions.js +1 -1
  220. package/dist/server/handlers/responses.cjs +4 -4
  221. package/dist/server/handlers/responses.d.ts.map +1 -1
  222. package/dist/server/handlers/responses.js +1 -1
  223. package/dist/server/handlers/responses.storage.cjs +8 -8
  224. package/dist/server/handlers/responses.storage.js +1 -1
  225. package/dist/server/handlers/schedules.cjs +6 -6
  226. package/dist/server/handlers/schedules.js +1 -1
  227. package/dist/server/handlers/scorer-versions.cjs +8 -8
  228. package/dist/server/handlers/scorer-versions.js +1 -1
  229. package/dist/server/handlers/scores.cjs +7 -7
  230. package/dist/server/handlers/scores.js +1 -1
  231. package/dist/server/handlers/stored-agents.cjs +7 -7
  232. package/dist/server/handlers/stored-agents.js +1 -1
  233. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  234. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  235. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  236. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  237. package/dist/server/handlers/stored-scorers.cjs +6 -6
  238. package/dist/server/handlers/stored-scorers.js +1 -1
  239. package/dist/server/handlers/stored-skills.cjs +7 -7
  240. package/dist/server/handlers/stored-skills.js +1 -1
  241. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  242. package/dist/server/handlers/stored-workspaces.js +1 -1
  243. package/dist/server/handlers/system.cjs +2 -2
  244. package/dist/server/handlers/system.js +1 -1
  245. package/dist/server/handlers/tool-providers.cjs +5 -5
  246. package/dist/server/handlers/tool-providers.js +1 -1
  247. package/dist/server/handlers/tools.cjs +6 -6
  248. package/dist/server/handlers/tools.d.ts.map +1 -1
  249. package/dist/server/handlers/tools.js +1 -1
  250. package/dist/server/handlers/utils.cjs +13 -9
  251. package/dist/server/handlers/utils.d.ts +15 -0
  252. package/dist/server/handlers/utils.d.ts.map +1 -1
  253. package/dist/server/handlers/utils.js +1 -1
  254. package/dist/server/handlers/vector.cjs +16 -16
  255. package/dist/server/handlers/vector.js +1 -1
  256. package/dist/server/handlers/voice.cjs +8 -8
  257. package/dist/server/handlers/voice.js +1 -1
  258. package/dist/server/handlers/workflows.cjs +24 -24
  259. package/dist/server/handlers/workflows.d.ts.map +1 -1
  260. package/dist/server/handlers/workflows.js +1 -1
  261. package/dist/server/handlers/workspace.cjs +26 -26
  262. package/dist/server/handlers/workspace.js +1 -1
  263. package/dist/server/handlers.cjs +37 -37
  264. package/dist/server/handlers.js +15 -15
  265. package/dist/server/schemas/index.cjs +307 -307
  266. package/dist/server/schemas/index.js +5 -5
  267. package/dist/server/server-adapter/index.cjs +385 -324
  268. package/dist/server/server-adapter/index.cjs.map +1 -1
  269. package/dist/server/server-adapter/index.d.ts +9 -0
  270. package/dist/server/server-adapter/index.d.ts.map +1 -1
  271. package/dist/server/server-adapter/index.js +101 -41
  272. package/dist/server/server-adapter/index.js.map +1 -1
  273. package/dist/server/server-adapter/routes/index.d.ts +19 -3
  274. package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
  275. package/dist/server/server-adapter/routes/observability.d.ts +156 -9
  276. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
  277. package/dist/server/server-adapter/routes/route-builder.d.ts +15 -1
  278. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -1
  279. package/package.json +6 -4
  280. package/dist/chunk-3S5WOAYR.cjs.map +0 -1
  281. package/dist/chunk-4BSJHDYP.js.map +0 -1
  282. package/dist/chunk-53YFG5AY.js.map +0 -1
  283. package/dist/chunk-6SBH6SYP.js.map +0 -1
  284. package/dist/chunk-DITB4LGJ.js.map +0 -1
  285. package/dist/chunk-EBKNX5RM.cjs.map +0 -1
  286. package/dist/chunk-EFP5PJBY.cjs.map +0 -1
  287. package/dist/chunk-EPM6ILRW.js.map +0 -1
  288. package/dist/chunk-FRKJAWEK.cjs.map +0 -1
  289. package/dist/chunk-H6NJWTER.cjs.map +0 -1
  290. package/dist/chunk-IQA7HL2V.js.map +0 -1
  291. package/dist/chunk-NB2NE7QS.cjs.map +0 -1
  292. package/dist/chunk-O6YA7VM3.cjs.map +0 -1
  293. package/dist/chunk-OBYYH7DX.cjs.map +0 -1
  294. package/dist/chunk-OGV23F3H.cjs.map +0 -1
  295. package/dist/chunk-OGZ6ROYD.js.map +0 -1
  296. package/dist/chunk-PQDR7XQP.js.map +0 -1
  297. package/dist/chunk-QGNNJRKA.js.map +0 -1
  298. package/dist/chunk-R76F63OE.js.map +0 -1
  299. package/dist/chunk-TJAYLVG5.js.map +0 -1
  300. package/dist/chunk-TU7U5XUE.cjs.map +0 -1
  301. package/dist/chunk-U4ZN4PDI.cjs.map +0 -1
  302. package/dist/chunk-UMVQATCY.js.map +0 -1
  303. package/dist/chunk-XG2VRXG5.cjs.map +0 -1
  304. package/dist/chunk-YP2KYGCY.cjs.map +0 -1
  305. package/dist/chunk-ZEESV2HZ.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/voice.ts"],"names":[],"mappings":"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","file":"chunk-DFEFYM5I.js","sourcesContent":["import { Readable } from 'node:stream';\nimport { MastraError } from '@mastra/core/error';\nimport { HTTPException } from '../http-exception';\nimport {\n agentIdPathParams,\n voiceSpeakersResponseSchema,\n generateSpeechBodySchema,\n speakResponseSchema,\n transcribeSpeechBodySchema,\n transcribeSpeechResponseSchema,\n getListenerResponseSchema,\n} from '../schemas/agents';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n// ============================================================================\n// Route Objects\n// ============================================================================\n\nexport const GET_SPEAKERS_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/voice/speakers',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: voiceSpeakersResponseSchema,\n summary: 'Get voice speakers',\n description: 'Returns available voice speakers for the specified agent',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const voice = await agent.getVoice({ requestContext });\n\n const speakers = await Promise.resolve()\n .then(() => voice.getSpeakers())\n .catch(err => {\n if (err instanceof MastraError) {\n // No voice provider configured, return empty array\n return [];\n }\n throw err;\n });\n\n return speakers;\n } catch (error) {\n return handleError(error, 'Error getting speakers');\n }\n },\n});\n\nexport const GET_SPEAKERS_DEPRECATED_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/speakers',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: voiceSpeakersResponseSchema,\n summary: 'Get available speakers for an agent',\n description: '[DEPRECATED] Use /agents/:agentId/voice/speakers instead. Get available speakers for an agent',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: GET_SPEAKERS_ROUTE.handler,\n});\n\nexport const GENERATE_SPEECH_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/voice/speak',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: generateSpeechBodySchema,\n responseSchema: speakResponseSchema,\n summary: 'Generate speech',\n description: 'Generates speech audio from text using the agent voice configuration',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, text, speakerId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n validateBody({ text });\n\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = await Promise.resolve()\n .then(() => voice.speak(text!, { speaker: speakerId! }))\n .catch(err => {\n if (err instanceof MastraError) {\n throw new HTTPException(400, { message: err.message });\n }\n\n throw err;\n });\n\n if (!audioStream) {\n throw new HTTPException(500, { message: 'Failed to generate speech' });\n }\n\n return audioStream as unknown as ReadableStream<any>;\n } catch (error) {\n return handleError(error, 'Error generating speech');\n }\n },\n});\n\nexport const GENERATE_SPEECH_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/speak',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: generateSpeechBodySchema,\n responseSchema: speakResponseSchema,\n summary: 'Convert text to speech',\n description:\n \"[DEPRECATED] Use /agents/:agentId/voice/speak instead. Convert text to speech using the agent's voice provider\",\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: GENERATE_SPEECH_ROUTE.handler,\n});\n\nexport const TRANSCRIBE_SPEECH_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/voice/listen',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: transcribeSpeechBodySchema,\n responseSchema: transcribeSpeechResponseSchema,\n summary: 'Transcribe speech',\n description: 'Transcribes speech audio to text using the agent voice configuration',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, audio, options, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n if (!audio) {\n throw new HTTPException(400, { message: 'Audio data is required' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = new Readable();\n audioStream.push(audio);\n audioStream.push(null);\n\n const text = await voice.listen(audioStream, options);\n return { text: text as string };\n } catch (error) {\n return handleError(error, 'Error transcribing speech');\n }\n },\n});\n\nexport const TRANSCRIBE_SPEECH_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/listen',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: transcribeSpeechBodySchema,\n responseSchema: transcribeSpeechResponseSchema,\n summary: 'Convert speech to text',\n description:\n \"[DEPRECATED] Use /agents/:agentId/voice/listen instead. Convert speech to text using the agent's voice provider. Additional provider-specific options can be passed as query parameters.\",\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: TRANSCRIBE_SPEECH_ROUTE.handler,\n});\n\nexport const GET_LISTENER_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/voice/listener',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: getListenerResponseSchema,\n summary: 'Get voice listener',\n description: 'Returns the voice listener configuration for the agent',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = mastra.getAgentById(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ requestContext });\n\n const listeners = await Promise.resolve()\n .then(() => voice.getListener())\n .catch(err => {\n if (err instanceof MastraError) {\n // No voice provider configured\n return { enabled: false };\n }\n throw err;\n });\n\n return listeners;\n } catch (error) {\n return handleError(error, 'Error getting listeners');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/voice.ts"],"names":[],"mappings":"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","file":"chunk-CBSIIPHQ.js","sourcesContent":["import { Readable } from 'node:stream';\nimport { MastraError } from '@mastra/core/error';\nimport { HTTPException } from '../http-exception';\nimport {\n agentIdPathParams,\n voiceSpeakersResponseSchema,\n generateSpeechBodySchema,\n speakResponseSchema,\n transcribeSpeechBodySchema,\n transcribeSpeechResponseSchema,\n getListenerResponseSchema,\n} from '../schemas/agents';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n// ============================================================================\n// Route Objects\n// ============================================================================\n\nexport const GET_SPEAKERS_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/voice/speakers',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: voiceSpeakersResponseSchema,\n summary: 'Get voice speakers',\n description: 'Returns available voice speakers for the specified agent',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const voice = await agent.getVoice({ requestContext });\n\n const speakers = await Promise.resolve()\n .then(() => voice.getSpeakers())\n .catch(err => {\n if (err instanceof MastraError) {\n // No voice provider configured, return empty array\n return [];\n }\n throw err;\n });\n\n return speakers;\n } catch (error) {\n return handleError(error, 'Error getting speakers');\n }\n },\n});\n\nexport const GET_SPEAKERS_DEPRECATED_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/speakers',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: voiceSpeakersResponseSchema,\n summary: 'Get available speakers for an agent',\n description: '[DEPRECATED] Use /agents/:agentId/voice/speakers instead. Get available speakers for an agent',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: GET_SPEAKERS_ROUTE.handler,\n});\n\nexport const GENERATE_SPEECH_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/voice/speak',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: generateSpeechBodySchema,\n responseSchema: speakResponseSchema,\n summary: 'Generate speech',\n description: 'Generates speech audio from text using the agent voice configuration',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, text, speakerId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n validateBody({ text });\n\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = await Promise.resolve()\n .then(() => voice.speak(text!, { speaker: speakerId! }))\n .catch(err => {\n if (err instanceof MastraError) {\n throw new HTTPException(400, { message: err.message });\n }\n\n throw err;\n });\n\n if (!audioStream) {\n throw new HTTPException(500, { message: 'Failed to generate speech' });\n }\n\n return audioStream as unknown as ReadableStream<any>;\n } catch (error) {\n return handleError(error, 'Error generating speech');\n }\n },\n});\n\nexport const GENERATE_SPEECH_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/speak',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: generateSpeechBodySchema,\n responseSchema: speakResponseSchema,\n summary: 'Convert text to speech',\n description:\n \"[DEPRECATED] Use /agents/:agentId/voice/speak instead. Convert text to speech using the agent's voice provider\",\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: GENERATE_SPEECH_ROUTE.handler,\n});\n\nexport const TRANSCRIBE_SPEECH_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/voice/listen',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: transcribeSpeechBodySchema,\n responseSchema: transcribeSpeechResponseSchema,\n summary: 'Transcribe speech',\n description: 'Transcribes speech audio to text using the agent voice configuration',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, audio, options, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n if (!audio) {\n throw new HTTPException(400, { message: 'Audio data is required' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const voice = await agent.getVoice({ requestContext });\n\n if (!voice) {\n throw new HTTPException(400, { message: 'Agent does not have voice capabilities' });\n }\n\n const audioStream = new Readable();\n audioStream.push(audio);\n audioStream.push(null);\n\n const text = await voice.listen(audioStream, options);\n return { text: text as string };\n } catch (error) {\n return handleError(error, 'Error transcribing speech');\n }\n },\n});\n\nexport const TRANSCRIBE_SPEECH_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/agents/:agentId/listen',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: transcribeSpeechBodySchema,\n responseSchema: transcribeSpeechResponseSchema,\n summary: 'Convert speech to text',\n description:\n \"[DEPRECATED] Use /agents/:agentId/voice/listen instead. Convert speech to text using the agent's voice provider. Additional provider-specific options can be passed as query parameters.\",\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: TRANSCRIBE_SPEECH_ROUTE.handler,\n});\n\nexport const GET_LISTENER_ROUTE = createRoute({\n method: 'GET',\n path: '/agents/:agentId/voice/listener',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: getListenerResponseSchema,\n summary: 'Get voice listener',\n description: 'Returns the voice listener configuration for the agent',\n tags: ['Agents', 'Voice'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n const agent = mastra.getAgentById(agentId);\n\n if (!agent) {\n throw new HTTPException(404, { message: 'Agent not found' });\n }\n\n const voice = await agent.getVoice({ requestContext });\n\n const listeners = await Promise.resolve()\n .then(() => voice.getListener())\n .catch(err => {\n if (err instanceof MastraError) {\n // No voice provider configured\n return { enabled: false };\n }\n throw err;\n });\n\n return listeners;\n } catch (error) {\n return handleError(error, 'Error getting listeners');\n }\n },\n});\n"]}
@@ -1,13 +1,13 @@
1
1
  'use strict';
2
2
 
3
- var chunkSGXBKIPB_cjs = require('./chunk-SGXBKIPB.cjs');
4
3
  var chunk2XZ2466F_cjs = require('./chunk-2XZ2466F.cjs');
5
- var chunk5UKYK7YK_cjs = require('./chunk-5UKYK7YK.cjs');
4
+ var chunkSGXBKIPB_cjs = require('./chunk-SGXBKIPB.cjs');
6
5
  var chunkB34S64RC_cjs = require('./chunk-B34S64RC.cjs');
6
+ var chunk7LAFXMXB_cjs = require('./chunk-7LAFXMXB.cjs');
7
7
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
8
8
 
9
9
  // src/server/handlers/mcp-client-versions.ts
10
- var LIST_MCP_CLIENT_VERSIONS_ROUTE = chunk5UKYK7YK_cjs.createRoute({
10
+ var LIST_MCP_CLIENT_VERSIONS_ROUTE = chunk7LAFXMXB_cjs.createRoute({
11
11
  method: "GET",
12
12
  path: "/stored/mcp-clients/:mcpClientId/versions",
13
13
  requiresAuth: true,
@@ -44,7 +44,7 @@ var LIST_MCP_CLIENT_VERSIONS_ROUTE = chunk5UKYK7YK_cjs.createRoute({
44
44
  }
45
45
  }
46
46
  });
47
- var CREATE_MCP_CLIENT_VERSION_ROUTE = chunk5UKYK7YK_cjs.createRoute({
47
+ var CREATE_MCP_CLIENT_VERSION_ROUTE = chunk7LAFXMXB_cjs.createRoute({
48
48
  method: "POST",
49
49
  path: "/stored/mcp-clients/:mcpClientId/versions",
50
50
  requiresAuth: true,
@@ -115,7 +115,7 @@ var CREATE_MCP_CLIENT_VERSION_ROUTE = chunk5UKYK7YK_cjs.createRoute({
115
115
  }
116
116
  }
117
117
  });
118
- var GET_MCP_CLIENT_VERSION_ROUTE = chunk5UKYK7YK_cjs.createRoute({
118
+ var GET_MCP_CLIENT_VERSION_ROUTE = chunk7LAFXMXB_cjs.createRoute({
119
119
  method: "GET",
120
120
  path: "/stored/mcp-clients/:mcpClientId/versions/:versionId",
121
121
  requiresAuth: true,
@@ -150,7 +150,7 @@ var GET_MCP_CLIENT_VERSION_ROUTE = chunk5UKYK7YK_cjs.createRoute({
150
150
  }
151
151
  }
152
152
  });
153
- var ACTIVATE_MCP_CLIENT_VERSION_ROUTE = chunk5UKYK7YK_cjs.createRoute({
153
+ var ACTIVATE_MCP_CLIENT_VERSION_ROUTE = chunk7LAFXMXB_cjs.createRoute({
154
154
  method: "POST",
155
155
  path: "/stored/mcp-clients/:mcpClientId/versions/:versionId/activate",
156
156
  requiresAuth: true,
@@ -199,7 +199,7 @@ var ACTIVATE_MCP_CLIENT_VERSION_ROUTE = chunk5UKYK7YK_cjs.createRoute({
199
199
  }
200
200
  }
201
201
  });
202
- var RESTORE_MCP_CLIENT_VERSION_ROUTE = chunk5UKYK7YK_cjs.createRoute({
202
+ var RESTORE_MCP_CLIENT_VERSION_ROUTE = chunk7LAFXMXB_cjs.createRoute({
203
203
  method: "POST",
204
204
  path: "/stored/mcp-clients/:mcpClientId/versions/:versionId/restore",
205
205
  requiresAuth: true,
@@ -273,7 +273,7 @@ var RESTORE_MCP_CLIENT_VERSION_ROUTE = chunk5UKYK7YK_cjs.createRoute({
273
273
  }
274
274
  }
275
275
  });
276
- var DELETE_MCP_CLIENT_VERSION_ROUTE = chunk5UKYK7YK_cjs.createRoute({
276
+ var DELETE_MCP_CLIENT_VERSION_ROUTE = chunk7LAFXMXB_cjs.createRoute({
277
277
  method: "DELETE",
278
278
  path: "/stored/mcp-clients/:mcpClientId/versions/:versionId",
279
279
  requiresAuth: true,
@@ -322,7 +322,7 @@ var DELETE_MCP_CLIENT_VERSION_ROUTE = chunk5UKYK7YK_cjs.createRoute({
322
322
  }
323
323
  }
324
324
  });
325
- var COMPARE_MCP_CLIENT_VERSIONS_ROUTE = chunk5UKYK7YK_cjs.createRoute({
325
+ var COMPARE_MCP_CLIENT_VERSIONS_ROUTE = chunk7LAFXMXB_cjs.createRoute({
326
326
  method: "GET",
327
327
  path: "/stored/mcp-clients/:mcpClientId/versions/compare",
328
328
  requiresAuth: true,
@@ -388,5 +388,5 @@ exports.DELETE_MCP_CLIENT_VERSION_ROUTE = DELETE_MCP_CLIENT_VERSION_ROUTE;
388
388
  exports.GET_MCP_CLIENT_VERSION_ROUTE = GET_MCP_CLIENT_VERSION_ROUTE;
389
389
  exports.LIST_MCP_CLIENT_VERSIONS_ROUTE = LIST_MCP_CLIENT_VERSIONS_ROUTE;
390
390
  exports.RESTORE_MCP_CLIENT_VERSION_ROUTE = RESTORE_MCP_CLIENT_VERSION_ROUTE;
391
- //# sourceMappingURL=chunk-VGR4DSXQ.cjs.map
392
- //# sourceMappingURL=chunk-VGR4DSXQ.cjs.map
391
+ //# sourceMappingURL=chunk-CEZZQMPM.cjs.map
392
+ //# sourceMappingURL=chunk-CEZZQMPM.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/mcp-client-versions.ts"],"names":["createRoute","mcpClientVersionPathParams","listMCPClientVersionsQuerySchema","listMCPClientVersionsResponseSchema","HTTPException","handleError","createMCPClientVersionBodySchema","createMCPClientVersionResponseSchema","extractConfigFromVersion","MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS","calculateChangedFields","createVersionWithRetry","enforceRetentionLimit","mcpClientVersionIdPathParams","getMCPClientVersionResponseSchema","activateMCPClientVersionResponseSchema","restoreMCPClientVersionResponseSchema","deleteMCPClientVersionResponseSchema","compareMCPClientVersionsQuerySchema","compareMCPClientVersionsResponseSchema","computeVersionDiffs"],"mappings":"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","file":"chunk-VGR4DSXQ.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n mcpClientVersionPathParams,\n mcpClientVersionIdPathParams,\n listMCPClientVersionsQuerySchema,\n createMCPClientVersionBodySchema,\n compareMCPClientVersionsQuerySchema,\n listMCPClientVersionsResponseSchema,\n getMCPClientVersionResponseSchema,\n createMCPClientVersionResponseSchema,\n activateMCPClientVersionResponseSchema,\n restoreMCPClientVersionResponseSchema,\n deleteMCPClientVersionResponseSchema,\n compareMCPClientVersionsResponseSchema,\n} from '../schemas/mcp-client-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\n/**\n * GET /stored/mcp-clients/:mcpClientId/versions - List all versions for an MCP client\n */\nexport const LIST_MCP_CLIENT_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/mcp-clients/:mcpClientId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionPathParams,\n queryParamSchema: listMCPClientVersionsQuerySchema,\n responseSchema: listMCPClientVersionsResponseSchema,\n summary: 'List MCP client versions',\n description: 'Returns a paginated list of all versions for a stored MCP client',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const result = await mcpClientStore.listVersions({\n mcpClientId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing MCP client versions');\n }\n },\n});\n\n/**\n * POST /stored/mcp-clients/:mcpClientId/versions - Create a new version snapshot\n */\nexport const CREATE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/mcp-clients/:mcpClientId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionPathParams,\n bodySchema: createMCPClientVersionBodySchema,\n responseSchema: createMCPClientVersionResponseSchema,\n summary: 'Create MCP client version',\n description: 'Creates a new version snapshot of the current MCP client configuration',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n let currentConfig: Record<string, unknown> = {};\n if (mcpClient.activeVersionId) {\n const activeVersion = await mcpClientStore.getVersion(mcpClient.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await mcpClientStore.getLatestVersion(mcpClientId);\n\n // If no activeVersionId, fall back to latest version config\n if (!mcpClient.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n )\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await mcpClientStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n mcpClient.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating MCP client version');\n }\n },\n});\n\n/**\n * GET /stored/mcp-clients/:mcpClientId/versions/:versionId - Get a specific version\n */\nexport const GET_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: getMCPClientVersionResponseSchema,\n summary: 'Get MCP client version',\n description: 'Returns a specific version of an MCP client by its version ID',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const version = await mcpClientStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting MCP client version');\n }\n },\n});\n\n/**\n * POST /stored/mcp-clients/:mcpClientId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: activateMCPClientVersionResponseSchema,\n summary: 'Activate MCP client version',\n description: 'Sets a specific version as the active version for the MCP client',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const version = await mcpClientStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n await mcpClientStore.update({\n id: mcpClientId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.mcp.clearCache(mcpClientId);\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 MCP client version');\n }\n },\n});\n\n/**\n * POST /stored/mcp-clients/:mcpClientId/versions/:versionId/restore - Restore MCP client to a version\n */\nexport const RESTORE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: restoreMCPClientVersionResponseSchema,\n summary: 'Restore MCP client version',\n description: 'Restores the MCP client configuration from a version, creating a new version',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const versionToRestore = await mcpClientStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n\n await mcpClientStore.update({\n id: mcpClientId,\n ...restoredConfig,\n });\n\n const latestVersion = await mcpClientStore.getLatestVersion(mcpClientId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n )\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await mcpClientStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n mcpClient.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.mcp.clearCache(mcpClientId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring MCP client version');\n }\n },\n});\n\n/**\n * DELETE /stored/mcp-clients/:mcpClientId/versions/:versionId - Delete a version\n */\nexport const DELETE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: deleteMCPClientVersionResponseSchema,\n summary: 'Delete MCP client version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const version = await mcpClientStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n if (mcpClient.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await mcpClientStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.mcp.clearCache(mcpClientId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting MCP client version');\n }\n },\n});\n\n/**\n * GET /stored/mcp-clients/:mcpClientId/versions/compare - Compare two versions\n */\nexport const COMPARE_MCP_CLIENT_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/mcp-clients/:mcpClientId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionPathParams,\n queryParamSchema: compareMCPClientVersionsQuerySchema,\n responseSchema: compareMCPClientVersionsResponseSchema,\n summary: 'Compare MCP client versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const fromVersion = await mcpClientStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for MCP client ${mcpClientId}`,\n });\n }\n\n const toVersion = await mcpClientStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for MCP client ${mcpClientId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing MCP client versions');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/mcp-client-versions.ts"],"names":["createRoute","mcpClientVersionPathParams","listMCPClientVersionsQuerySchema","listMCPClientVersionsResponseSchema","HTTPException","handleError","createMCPClientVersionBodySchema","createMCPClientVersionResponseSchema","extractConfigFromVersion","MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS","calculateChangedFields","createVersionWithRetry","enforceRetentionLimit","mcpClientVersionIdPathParams","getMCPClientVersionResponseSchema","activateMCPClientVersionResponseSchema","restoreMCPClientVersionResponseSchema","deleteMCPClientVersionResponseSchema","compareMCPClientVersionsQuerySchema","compareMCPClientVersionsResponseSchema","computeVersionDiffs"],"mappings":"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","file":"chunk-CEZZQMPM.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n mcpClientVersionPathParams,\n mcpClientVersionIdPathParams,\n listMCPClientVersionsQuerySchema,\n createMCPClientVersionBodySchema,\n compareMCPClientVersionsQuerySchema,\n listMCPClientVersionsResponseSchema,\n getMCPClientVersionResponseSchema,\n createMCPClientVersionResponseSchema,\n activateMCPClientVersionResponseSchema,\n restoreMCPClientVersionResponseSchema,\n deleteMCPClientVersionResponseSchema,\n compareMCPClientVersionsResponseSchema,\n} from '../schemas/mcp-client-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\n/**\n * GET /stored/mcp-clients/:mcpClientId/versions - List all versions for an MCP client\n */\nexport const LIST_MCP_CLIENT_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/mcp-clients/:mcpClientId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionPathParams,\n queryParamSchema: listMCPClientVersionsQuerySchema,\n responseSchema: listMCPClientVersionsResponseSchema,\n summary: 'List MCP client versions',\n description: 'Returns a paginated list of all versions for a stored MCP client',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const result = await mcpClientStore.listVersions({\n mcpClientId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing MCP client versions');\n }\n },\n});\n\n/**\n * POST /stored/mcp-clients/:mcpClientId/versions - Create a new version snapshot\n */\nexport const CREATE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/mcp-clients/:mcpClientId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionPathParams,\n bodySchema: createMCPClientVersionBodySchema,\n responseSchema: createMCPClientVersionResponseSchema,\n summary: 'Create MCP client version',\n description: 'Creates a new version snapshot of the current MCP client configuration',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n let currentConfig: Record<string, unknown> = {};\n if (mcpClient.activeVersionId) {\n const activeVersion = await mcpClientStore.getVersion(mcpClient.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await mcpClientStore.getLatestVersion(mcpClientId);\n\n // If no activeVersionId, fall back to latest version config\n if (!mcpClient.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n )\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await mcpClientStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n mcpClient.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating MCP client version');\n }\n },\n});\n\n/**\n * GET /stored/mcp-clients/:mcpClientId/versions/:versionId - Get a specific version\n */\nexport const GET_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: getMCPClientVersionResponseSchema,\n summary: 'Get MCP client version',\n description: 'Returns a specific version of an MCP client by its version ID',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const version = await mcpClientStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting MCP client version');\n }\n },\n});\n\n/**\n * POST /stored/mcp-clients/:mcpClientId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: activateMCPClientVersionResponseSchema,\n summary: 'Activate MCP client version',\n description: 'Sets a specific version as the active version for the MCP client',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const version = await mcpClientStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n await mcpClientStore.update({\n id: mcpClientId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.mcp.clearCache(mcpClientId);\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 MCP client version');\n }\n },\n});\n\n/**\n * POST /stored/mcp-clients/:mcpClientId/versions/:versionId/restore - Restore MCP client to a version\n */\nexport const RESTORE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: restoreMCPClientVersionResponseSchema,\n summary: 'Restore MCP client version',\n description: 'Restores the MCP client configuration from a version, creating a new version',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const versionToRestore = await mcpClientStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n\n await mcpClientStore.update({\n id: mcpClientId,\n ...restoredConfig,\n });\n\n const latestVersion = await mcpClientStore.getLatestVersion(mcpClientId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n )\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await mcpClientStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n mcpClientStore as unknown as VersionedStoreInterface,\n mcpClientId,\n 'mcpClientId',\n mcpClient.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.mcp.clearCache(mcpClientId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring MCP client version');\n }\n },\n});\n\n/**\n * DELETE /stored/mcp-clients/:mcpClientId/versions/:versionId - Delete a version\n */\nexport const DELETE_MCP_CLIENT_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/mcp-clients/:mcpClientId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionIdPathParams,\n responseSchema: deleteMCPClientVersionResponseSchema,\n summary: 'Delete MCP client version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const mcpClient = await mcpClientStore.getById(mcpClientId);\n if (!mcpClient) {\n throw new HTTPException(404, { message: `MCP client with id ${mcpClientId} not found` });\n }\n\n const version = await mcpClientStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for MCP client ${mcpClientId}`,\n });\n }\n\n if (mcpClient.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await mcpClientStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.mcp.clearCache(mcpClientId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting MCP client version');\n }\n },\n});\n\n/**\n * GET /stored/mcp-clients/:mcpClientId/versions/compare - Compare two versions\n */\nexport const COMPARE_MCP_CLIENT_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/mcp-clients/:mcpClientId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: mcpClientVersionPathParams,\n queryParamSchema: compareMCPClientVersionsQuerySchema,\n responseSchema: compareMCPClientVersionsResponseSchema,\n summary: 'Compare MCP client versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['MCP Client Versions'],\n handler: async ({ mastra, mcpClientId, 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 mcpClientStore = await storage.getStore('mcpClients');\n if (!mcpClientStore) {\n throw new HTTPException(500, { message: 'MCP clients storage domain is not available' });\n }\n\n const fromVersion = await mcpClientStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for MCP client ${mcpClientId}`,\n });\n }\n\n const toVersion = await mcpClientStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.mcpClientId !== mcpClientId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for MCP client ${mcpClientId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing MCP client versions');\n }\n },\n});\n"]}
@@ -1,6 +1,6 @@
1
1
  import { listToolProvidersResponseSchema, listToolProviderToolkitsResponseSchema, toolProviderIdPathParams, listToolProviderToolsResponseSchema, listToolProviderToolsQuerySchema, getToolProviderToolSchemaResponseSchema, toolSlugPathParams } from './chunk-NIKW5NHG.js';
2
- import { createRoute } from './chunk-PA2BYLKF.js';
3
2
  import { handleError } from './chunk-P23KBWKB.js';
3
+ import { createRoute } from './chunk-KDUX3YN3.js';
4
4
  import { HTTPException } from './chunk-6QWQZI4Q.js';
5
5
 
6
6
  // src/server/handlers/tool-providers.ts
@@ -122,5 +122,5 @@ var GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE = createRoute({
122
122
  });
123
123
 
124
124
  export { GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE, LIST_TOOL_PROVIDERS_ROUTE, LIST_TOOL_PROVIDER_TOOLKITS_ROUTE, LIST_TOOL_PROVIDER_TOOLS_ROUTE };
125
- //# sourceMappingURL=chunk-OES3CANB.js.map
126
- //# sourceMappingURL=chunk-OES3CANB.js.map
125
+ //# sourceMappingURL=chunk-CR7RGILH.js.map
126
+ //# sourceMappingURL=chunk-CR7RGILH.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/tool-providers.ts"],"names":[],"mappings":"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","file":"chunk-OES3CANB.js","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n toolProviderIdPathParams,\n toolSlugPathParams,\n listToolProviderToolsQuerySchema,\n listToolProvidersResponseSchema,\n listToolProviderToolkitsResponseSchema,\n listToolProviderToolsResponseSchema,\n getToolProviderToolSchemaResponseSchema,\n} from '../schemas/tool-providers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /tool-providers - List all registered tool providers\n */\nexport const LIST_TOOL_PROVIDERS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers',\n responseType: 'json',\n responseSchema: listToolProvidersResponseSchema,\n summary: 'List tool providers',\n description: 'Returns a list of all registered tool providers with their info',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const providers = editor.getToolProviders();\n\n return { providers: Object.values(providers).map(provider => provider.info) };\n } catch (error) {\n return handleError(error, 'Error listing tool providers');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/toolkits - List toolkits for a tool provider\n */\nexport const LIST_TOOL_PROVIDER_TOOLKITS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/toolkits',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n responseSchema: listToolProviderToolkitsResponseSchema,\n summary: 'List tool provider toolkits',\n description: 'Returns the toolkits available from a specific tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getToolProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Tool provider with id ${providerId} not found` });\n }\n\n if (!provider.listToolkits) {\n return { data: [] };\n }\n\n return await provider.listToolkits();\n } catch (error) {\n return handleError(error, 'Error listing tool provider toolkits');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools - List tools for a tool provider\n */\nexport const LIST_TOOL_PROVIDER_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listToolProviderToolsQuerySchema,\n responseSchema: listToolProviderToolsResponseSchema,\n summary: 'List tool provider tools',\n description: 'Returns the tools available from a specific tool provider, with optional filtering',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit, search, page, perPage }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getToolProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Tool provider with id ${providerId} not found` });\n }\n\n const options: Record<string, unknown> = {};\n if (toolkit !== undefined) options.toolkit = toolkit;\n if (search !== undefined) options.search = search;\n if (page !== undefined) options.page = page;\n if (perPage !== undefined) options.perPage = perPage;\n\n return await provider.listTools(Object.keys(options).length > 0 ? options : undefined);\n } catch (error) {\n return handleError(error, 'Error listing tool provider tools');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools/:toolSlug/schema - Get tool schema\n */\nexport const GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools/:toolSlug/schema',\n responseType: 'json',\n pathParamSchema: toolSlugPathParams,\n responseSchema: getToolProviderToolSchemaResponseSchema,\n summary: 'Get tool provider tool schema',\n description: 'Returns the schema for a specific tool from a tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolSlug }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getToolProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Tool provider with id ${providerId} not found` });\n }\n\n if (!provider.getToolSchema) {\n throw new HTTPException(404, { message: `Tool provider ${providerId} does not support getToolSchema` });\n }\n\n const schema = await provider.getToolSchema(toolSlug);\n\n if (!schema) {\n throw new HTTPException(404, { message: `Schema for tool ${toolSlug} not found in provider ${providerId}` });\n }\n\n return schema;\n } catch (error) {\n return handleError(error, 'Error getting tool provider tool schema');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/tool-providers.ts"],"names":[],"mappings":"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","file":"chunk-CR7RGILH.js","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n toolProviderIdPathParams,\n toolSlugPathParams,\n listToolProviderToolsQuerySchema,\n listToolProvidersResponseSchema,\n listToolProviderToolkitsResponseSchema,\n listToolProviderToolsResponseSchema,\n getToolProviderToolSchemaResponseSchema,\n} from '../schemas/tool-providers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /tool-providers - List all registered tool providers\n */\nexport const LIST_TOOL_PROVIDERS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers',\n responseType: 'json',\n responseSchema: listToolProvidersResponseSchema,\n summary: 'List tool providers',\n description: 'Returns a list of all registered tool providers with their info',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const providers = editor.getToolProviders();\n\n return { providers: Object.values(providers).map(provider => provider.info) };\n } catch (error) {\n return handleError(error, 'Error listing tool providers');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/toolkits - List toolkits for a tool provider\n */\nexport const LIST_TOOL_PROVIDER_TOOLKITS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/toolkits',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n responseSchema: listToolProviderToolkitsResponseSchema,\n summary: 'List tool provider toolkits',\n description: 'Returns the toolkits available from a specific tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getToolProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Tool provider with id ${providerId} not found` });\n }\n\n if (!provider.listToolkits) {\n return { data: [] };\n }\n\n return await provider.listToolkits();\n } catch (error) {\n return handleError(error, 'Error listing tool provider toolkits');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools - List tools for a tool provider\n */\nexport const LIST_TOOL_PROVIDER_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listToolProviderToolsQuerySchema,\n responseSchema: listToolProviderToolsResponseSchema,\n summary: 'List tool provider tools',\n description: 'Returns the tools available from a specific tool provider, with optional filtering',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit, search, page, perPage }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getToolProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Tool provider with id ${providerId} not found` });\n }\n\n const options: Record<string, unknown> = {};\n if (toolkit !== undefined) options.toolkit = toolkit;\n if (search !== undefined) options.search = search;\n if (page !== undefined) options.page = page;\n if (perPage !== undefined) options.perPage = perPage;\n\n return await provider.listTools(Object.keys(options).length > 0 ? options : undefined);\n } catch (error) {\n return handleError(error, 'Error listing tool provider tools');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools/:toolSlug/schema - Get tool schema\n */\nexport const GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools/:toolSlug/schema',\n responseType: 'json',\n pathParamSchema: toolSlugPathParams,\n responseSchema: getToolProviderToolSchemaResponseSchema,\n summary: 'Get tool provider tool schema',\n description: 'Returns the schema for a specific tool from a tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolSlug }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getToolProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Tool provider with id ${providerId} not found` });\n }\n\n if (!provider.getToolSchema) {\n throw new HTTPException(404, { message: `Tool provider ${providerId} does not support getToolSchema` });\n }\n\n const schema = await provider.getToolSchema(toolSlug);\n\n if (!schema) {\n throw new HTTPException(404, { message: `Schema for tool ${toolSlug} not found in provider ${providerId}` });\n }\n\n return schema;\n } catch (error) {\n return handleError(error, 'Error getting tool provider tool schema');\n }\n },\n});\n"]}
@@ -1,14 +1,15 @@
1
1
  'use strict';
2
2
 
3
- var chunkO6YA7VM3_cjs = require('./chunk-O6YA7VM3.cjs');
4
- var chunkGUWIV3ZN_cjs = require('./chunk-GUWIV3ZN.cjs');
5
- var chunkYJQYJ5WD_cjs = require('./chunk-YJQYJ5WD.cjs');
6
- var chunk3S5WOAYR_cjs = require('./chunk-3S5WOAYR.cjs');
7
- var chunkDIG2K5CV_cjs = require('./chunk-DIG2K5CV.cjs');
8
- var chunk5UKYK7YK_cjs = require('./chunk-5UKYK7YK.cjs');
3
+ var chunkRL34ZMLF_cjs = require('./chunk-RL34ZMLF.cjs');
4
+ var chunkK7IVZQKI_cjs = require('./chunk-K7IVZQKI.cjs');
5
+ var chunkXEERRXWL_cjs = require('./chunk-XEERRXWL.cjs');
9
6
  var chunkB34S64RC_cjs = require('./chunk-B34S64RC.cjs');
7
+ var chunk7LAFXMXB_cjs = require('./chunk-7LAFXMXB.cjs');
10
8
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
9
+ var chunkGUWIV3ZN_cjs = require('./chunk-GUWIV3ZN.cjs');
10
+ var chunkDIG2K5CV_cjs = require('./chunk-DIG2K5CV.cjs');
11
11
  var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
12
+ var ee = require('@mastra/core/auth/ee');
12
13
  var tools = require('@mastra/core/tools');
13
14
 
14
15
  // src/server/handlers/tools.ts
@@ -30,12 +31,12 @@ function schemaToJsonSchema(schema) {
30
31
  if (!schema) {
31
32
  return void 0;
32
33
  }
33
- return chunk5UKYK7YK_cjs.standardSchemaToJSONSchema(chunk5UKYK7YK_cjs.toStandardSchema5(schema), { target: "draft-2020-12" });
34
+ return chunk7LAFXMXB_cjs.standardSchemaToJSONSchema(chunk7LAFXMXB_cjs.toStandardSchema5(schema), { target: "draft-2020-12" });
34
35
  }
35
36
  function serializeSchema(schema) {
36
37
  const jsonSchema = schemaToJsonSchema(resolveLazySchema(schema));
37
38
  if (jsonSchema === void 0) return void 0;
38
- return chunkYJQYJ5WD_cjs.stringify(jsonSchema);
39
+ return chunkK7IVZQKI_cjs.stringify(jsonSchema);
39
40
  }
40
41
  async function findToolInAgents(mastra, toolId, requestContext) {
41
42
  const agents = mastra.listAgents() || {};
@@ -60,8 +61,8 @@ function serializeTool(tool) {
60
61
  const resolvedOutput = resolveLazySchema(tool.outputSchema);
61
62
  return {
62
63
  ...tool,
63
- inputSchema: resolvedInput && typeof resolvedInput === "object" && "jsonSchema" in resolvedInput ? chunkYJQYJ5WD_cjs.stringify(resolvedInput.jsonSchema) : void 0,
64
- outputSchema: resolvedOutput && typeof resolvedOutput === "object" && "jsonSchema" in resolvedOutput ? chunkYJQYJ5WD_cjs.stringify(resolvedOutput.jsonSchema) : void 0
64
+ inputSchema: resolvedInput && typeof resolvedInput === "object" && "jsonSchema" in resolvedInput ? chunkK7IVZQKI_cjs.stringify(resolvedInput.jsonSchema) : void 0,
65
+ outputSchema: resolvedOutput && typeof resolvedOutput === "object" && "jsonSchema" in resolvedOutput ? chunkK7IVZQKI_cjs.stringify(resolvedOutput.jsonSchema) : void 0
65
66
  };
66
67
  }
67
68
  return {
@@ -71,7 +72,7 @@ function serializeTool(tool) {
71
72
  requestContextSchema: serializeSchema(tool.requestContextSchema)
72
73
  };
73
74
  }
74
- var LIST_TOOLS_ROUTE = chunk5UKYK7YK_cjs.createRoute({
75
+ var LIST_TOOLS_ROUTE = chunk7LAFXMXB_cjs.createRoute({
75
76
  method: "GET",
76
77
  path: "/tools",
77
78
  responseType: "json",
@@ -80,7 +81,7 @@ var LIST_TOOLS_ROUTE = chunk5UKYK7YK_cjs.createRoute({
80
81
  description: "Returns a list of all available tools in the system",
81
82
  tags: ["Tools"],
82
83
  requiresAuth: true,
83
- handler: async ({ mastra, registeredTools }) => {
84
+ handler: async ({ mastra, registeredTools, requestContext }) => {
84
85
  try {
85
86
  const allTools = registeredTools && Object.keys(registeredTools).length > 0 ? registeredTools : mastra.listTools() || {};
86
87
  const serializedTools = Object.entries(allTools).reduce(
@@ -90,13 +91,25 @@ var LIST_TOOLS_ROUTE = chunk5UKYK7YK_cjs.createRoute({
90
91
  },
91
92
  {}
92
93
  );
94
+ const fgaProvider = mastra.getServer?.()?.fga;
95
+ const user = requestContext?.get("user");
96
+ if (fgaProvider && user) {
97
+ const toolList = Object.entries(serializedTools).map(([id, t]) => ({ id, ...t }));
98
+ const accessible = await fgaProvider.filterAccessible(user, toolList, "tool", ee.MastraFGAPermissions.TOOLS_READ);
99
+ const accessibleSet = new Set(accessible.map((t) => t.id));
100
+ for (const id of Object.keys(serializedTools)) {
101
+ if (!accessibleSet.has(id)) {
102
+ delete serializedTools[id];
103
+ }
104
+ }
105
+ }
93
106
  return serializedTools;
94
107
  } catch (error) {
95
108
  return chunkB34S64RC_cjs.handleError(error, "Error getting tools");
96
109
  }
97
110
  }
98
111
  });
99
- var GET_TOOL_BY_ID_ROUTE = chunk5UKYK7YK_cjs.createRoute({
112
+ var GET_TOOL_BY_ID_ROUTE = chunk7LAFXMXB_cjs.createRoute({
100
113
  method: "GET",
101
114
  path: "/tools/:toolId",
102
115
  responseType: "json",
@@ -106,6 +119,7 @@ var GET_TOOL_BY_ID_ROUTE = chunk5UKYK7YK_cjs.createRoute({
106
119
  description: "Returns details for a specific tool including its schema and configuration",
107
120
  tags: ["Tools"],
108
121
  requiresAuth: true,
122
+ fga: { resourceType: "tool", resourceIdParam: "toolId", permission: ee.MastraFGAPermissions.TOOLS_READ },
109
123
  handler: async ({ mastra, registeredTools, toolId, requestContext }) => {
110
124
  try {
111
125
  let tool;
@@ -130,7 +144,7 @@ var GET_TOOL_BY_ID_ROUTE = chunk5UKYK7YK_cjs.createRoute({
130
144
  }
131
145
  }
132
146
  });
133
- var EXECUTE_TOOL_ROUTE = chunk5UKYK7YK_cjs.createRoute({
147
+ var EXECUTE_TOOL_ROUTE = chunk7LAFXMXB_cjs.createRoute({
134
148
  method: "POST",
135
149
  path: "/tools/:toolId/execute",
136
150
  responseType: "json",
@@ -142,6 +156,7 @@ var EXECUTE_TOOL_ROUTE = chunk5UKYK7YK_cjs.createRoute({
142
156
  description: "Executes a specific tool with the provided input data",
143
157
  tags: ["Tools"],
144
158
  requiresAuth: true,
159
+ fga: { resourceType: "tool", resourceIdParam: "toolId", permission: ee.MastraFGAPermissions.TOOLS_EXECUTE },
145
160
  handler: async ({ mastra, runId, toolId, registeredTools, requestContext, ...bodyParams }) => {
146
161
  try {
147
162
  if (!toolId) {
@@ -167,7 +182,7 @@ var EXECUTE_TOOL_ROUTE = chunk5UKYK7YK_cjs.createRoute({
167
182
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Tool is not executable" });
168
183
  }
169
184
  const { data } = bodyParams;
170
- chunk3S5WOAYR_cjs.validateBody({ data });
185
+ chunkXEERRXWL_cjs.validateBody({ data });
171
186
  let result;
172
187
  if (tools.isVercelTool(tool)) {
173
188
  result = await tool.execute(data);
@@ -192,7 +207,7 @@ var EXECUTE_TOOL_ROUTE = chunk5UKYK7YK_cjs.createRoute({
192
207
  }
193
208
  }
194
209
  });
195
- var GET_AGENT_TOOL_ROUTE = chunk5UKYK7YK_cjs.createRoute({
210
+ var GET_AGENT_TOOL_ROUTE = chunk7LAFXMXB_cjs.createRoute({
196
211
  method: "GET",
197
212
  path: "/agents/:agentId/tools/:toolId",
198
213
  responseType: "json",
@@ -202,12 +217,17 @@ var GET_AGENT_TOOL_ROUTE = chunk5UKYK7YK_cjs.createRoute({
202
217
  description: "Returns details for a specific tool assigned to the agent",
203
218
  tags: ["Agents", "Tools"],
204
219
  requiresAuth: true,
220
+ fga: {
221
+ resourceType: "tool",
222
+ resourceId: ({ agentId, toolId }) => `${String(agentId)}:${String(toolId)}`,
223
+ permission: ee.MastraFGAPermissions.TOOLS_READ
224
+ },
205
225
  handler: async ({ mastra, agentId, toolId, requestContext }) => {
206
226
  try {
207
227
  if (!agentId) {
208
228
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Agent ID is required" });
209
229
  }
210
- const agent = await chunkO6YA7VM3_cjs.getAgentFromSystem({ mastra, agentId });
230
+ const agent = await chunkRL34ZMLF_cjs.getAgentFromSystem({ mastra, agentId });
211
231
  const agentTools = await agent.listTools({ requestContext });
212
232
  const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
213
233
  if (!tool) {
@@ -219,7 +239,7 @@ var GET_AGENT_TOOL_ROUTE = chunk5UKYK7YK_cjs.createRoute({
219
239
  }
220
240
  }
221
241
  });
222
- var EXECUTE_AGENT_TOOL_ROUTE = chunk5UKYK7YK_cjs.createRoute({
242
+ var EXECUTE_AGENT_TOOL_ROUTE = chunk7LAFXMXB_cjs.createRoute({
223
243
  method: "POST",
224
244
  path: "/agents/:agentId/tools/:toolId/execute",
225
245
  responseType: "json",
@@ -230,12 +250,17 @@ var EXECUTE_AGENT_TOOL_ROUTE = chunk5UKYK7YK_cjs.createRoute({
230
250
  description: "Executes a specific tool assigned to the agent with the provided input data",
231
251
  tags: ["Agents", "Tools"],
232
252
  requiresAuth: true,
253
+ fga: {
254
+ resourceType: "tool",
255
+ resourceId: ({ agentId, toolId }) => `${String(agentId)}:${String(toolId)}`,
256
+ permission: ee.MastraFGAPermissions.TOOLS_EXECUTE
257
+ },
233
258
  handler: async ({ mastra, agentId, toolId, data, requestContext }) => {
234
259
  try {
235
260
  if (!agentId) {
236
261
  throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Agent ID is required" });
237
262
  }
238
- const agent = await chunkO6YA7VM3_cjs.getAgentFromSystem({ mastra, agentId });
263
+ const agent = await chunkRL34ZMLF_cjs.getAgentFromSystem({ mastra, agentId });
239
264
  const agentTools = await agent.listTools({ requestContext });
240
265
  const tool = Object.values(agentTools || {}).find((tool2) => tool2.id === toolId);
241
266
  if (!tool) {
@@ -263,5 +288,5 @@ exports.GET_AGENT_TOOL_ROUTE = GET_AGENT_TOOL_ROUTE;
263
288
  exports.GET_TOOL_BY_ID_ROUTE = GET_TOOL_BY_ID_ROUTE;
264
289
  exports.LIST_TOOLS_ROUTE = LIST_TOOLS_ROUTE;
265
290
  exports.tools_exports = tools_exports;
266
- //# sourceMappingURL=chunk-OBYYH7DX.cjs.map
267
- //# sourceMappingURL=chunk-OBYYH7DX.cjs.map
291
+ //# sourceMappingURL=chunk-CTYPGLJG.cjs.map
292
+ //# sourceMappingURL=chunk-CTYPGLJG.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/tools.ts"],"names":["__export","standardSchemaToJSONSchema","toStandardSchema5","stringify","isProviderDefinedTool","createRoute","listToolsResponseSchema","MastraFGAPermissions","handleError","toolIdPathParams","serializedToolSchema","HTTPException","optionalRunIdSchema","executeToolContextBodySchema","executeToolResponseSchema","validateBody","isVercelTool","agentToolPathParams","getAgentFromSystem","tool","executeToolBodySchema"],"mappings":"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","file":"chunk-CTYPGLJG.cjs","sourcesContent":["import { MastraFGAPermissions } from '@mastra/core/auth/ee';\nimport { isVercelTool, isProviderDefinedTool } from '@mastra/core/tools';\nimport { toStandardSchema, standardSchemaToJSONSchema } from '@mastra/schema-compat/schema';\nimport type { PublicSchema } from '@mastra/schema-compat/schema';\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 { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { validateBody } from './utils';\n\n/**\n * Resolves a schema that may be a lazy function (e.g. AI SDK provider tools).\n * Recursively resolves until a non-function value is returned.\n * Skips functions that are themselves valid schemas (e.g. ArkType types are\n * callable but also implement StandardSchema via ~standard).\n */\nfunction resolveLazySchema(schema: unknown): unknown {\n if (typeof schema === 'function' && !('~standard' in schema)) {\n return resolveLazySchema(schema());\n }\n return schema;\n}\n\nfunction schemaToJsonSchema(schema: PublicSchema<unknown> | undefined) {\n if (!schema) {\n return undefined;\n }\n\n return standardSchemaToJSONSchema(toStandardSchema(schema), { target: 'draft-2020-12' });\n}\n\nfunction serializeSchema(schema: unknown): string | undefined {\n const jsonSchema = schemaToJsonSchema(resolveLazySchema(schema) as PublicSchema<unknown> | undefined);\n if (jsonSchema === undefined) return undefined;\n return stringify(jsonSchema);\n}\n\n/**\n * Searches dynamically-resolved agent tools (provided via `toolsResolver` /\n * function-based `tools`) for a tool with the given id. Used as a fallback\n * after the static tool registry (`registeredTools` + `mastra.getToolById`)\n * misses, so global tool routes can resolve tools that only exist on agents.\n *\n * Errors thrown by an individual agent's `listTools()` are logged and\n * skipped so a single broken resolver doesn't take down the whole lookup.\n */\nasync function findToolInAgents(mastra: any, toolId: string, requestContext: any): Promise<any | undefined> {\n const agents = mastra.listAgents() || {};\n for (const agent of Object.values(agents) as any[]) {\n try {\n const agentTools = await agent.listTools({ requestContext });\n const found = Object.values(agentTools || {}).find((t: any) => t.id === toolId);\n if (found) return found;\n } catch (error) {\n mastra.getLogger?.()?.warn?.('Failed to list tools for agent while resolving tool by id', {\n agentId: agent?.id,\n toolId,\n error: error instanceof Error ? error.message : String(error),\n });\n }\n }\n return undefined;\n}\n\n/**\n * Serializes a tool for API responses, handling both regular tools (with Zod schemas)\n * and provider-defined tools (with AI SDK lazy schemas).\n */\nfunction serializeTool(tool: any): any {\n // Provider-defined tools (e.g. google.tools.googleSearch(), openai.tools.webSearch())\n // have lazy inputSchema functions that return AI SDK Schema objects, not Zod schemas.\n // We resolve them and use the jsonSchema property directly.\n if (isProviderDefinedTool(tool)) {\n const resolvedInput = resolveLazySchema(tool.inputSchema);\n const resolvedOutput = resolveLazySchema(tool.outputSchema);\n return {\n ...tool,\n inputSchema:\n resolvedInput && typeof resolvedInput === 'object' && 'jsonSchema' in resolvedInput\n ? stringify(resolvedInput.jsonSchema)\n : undefined,\n outputSchema:\n resolvedOutput && typeof resolvedOutput === 'object' && 'jsonSchema' in resolvedOutput\n ? stringify(resolvedOutput.jsonSchema)\n : undefined,\n };\n }\n\n return {\n ...tool,\n inputSchema: serializeSchema(tool.inputSchema),\n outputSchema: serializeSchema(tool.outputSchema),\n requestContextSchema: serializeSchema(tool.requestContextSchema),\n };\n}\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: '/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 requiresAuth: true,\n handler: async ({ mastra, registeredTools, requestContext }) => {\n try {\n const allTools =\n registeredTools && Object.keys(registeredTools).length > 0 ? registeredTools : mastra.listTools() || {};\n\n const serializedTools = Object.entries(allTools).reduce(\n (acc, [id, _tool]) => {\n acc[id] = serializeTool(_tool);\n return acc;\n },\n {} as Record<string, any>,\n );\n\n // Filter tools by FGA if configured\n const fgaProvider = mastra.getServer?.()?.fga;\n const user = requestContext?.get('user');\n if (fgaProvider && user) {\n const toolList = Object.entries(serializedTools).map(([id, t]) => ({ id, ...t }));\n const accessible = await fgaProvider.filterAccessible(user, toolList, 'tool', MastraFGAPermissions.TOOLS_READ);\n const accessibleSet = new Set(accessible.map((t: any) => t.id));\n for (const id of Object.keys(serializedTools)) {\n if (!accessibleSet.has(id)) {\n delete serializedTools[id];\n }\n }\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: '/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 requiresAuth: true,\n fga: { resourceType: 'tool', resourceIdParam: 'toolId', permission: MastraFGAPermissions.TOOLS_READ },\n handler: async ({ mastra, registeredTools, toolId, requestContext }) => {\n try {\n let tool: any;\n\n // Try explicit registeredTools first, then fallback to mastra\n if (registeredTools && Object.keys(registeredTools).length > 0) {\n tool = Object.values(registeredTools).find((t: any) => t.id === toolId);\n }\n if (!tool) {\n try {\n tool = mastra.getToolById(toolId);\n } catch {\n // tool not found in global registry, continue to agent fallback\n }\n }\n\n // Fallback: search dynamically-resolved agent tools (toolsResolver)\n if (!tool) {\n tool = await findToolInAgents(mastra, toolId, requestContext);\n }\n\n if (!tool) {\n throw new HTTPException(404, { message: 'Tool not found' });\n }\n\n return serializeTool(tool);\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: '/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 requiresAuth: true,\n fga: { resourceType: 'tool', resourceIdParam: 'toolId', permission: MastraFGAPermissions.TOOLS_EXECUTE },\n handler: async ({ mastra, runId, toolId, registeredTools, 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 registeredTools first, then fallback to mastra\n if (registeredTools && Object.keys(registeredTools).length > 0) {\n tool = Object.values(registeredTools).find((t: any) => t.id === toolId);\n }\n if (!tool) {\n try {\n tool = mastra.getToolById(toolId);\n } catch {\n // tool not found in global registry, continue to agent fallback\n }\n }\n\n // Fallback: search dynamically-resolved agent tools (toolsResolver)\n if (!tool) {\n tool = await findToolInAgents(mastra, toolId, requestContext);\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 let result;\n if (isVercelTool(tool)) {\n result = await (tool as any).execute(data);\n } else {\n 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 }\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: '/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 requiresAuth: true,\n fga: {\n resourceType: 'tool',\n resourceId: ({ agentId, toolId }) => `${String(agentId)}:${String(toolId)}`,\n permission: MastraFGAPermissions.TOOLS_READ,\n },\n handler: async ({ mastra, agentId, toolId, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n const agent = await getAgentFromSystem({ mastra, agentId });\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 return serializeTool(tool);\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: '/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 requiresAuth: true,\n fga: {\n resourceType: 'tool',\n resourceId: ({ agentId, toolId }) => `${String(agentId)}:${String(toolId)}`,\n permission: MastraFGAPermissions.TOOLS_EXECUTE,\n },\n handler: async ({ mastra, agentId, toolId, data, requestContext }) => {\n try {\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n const agent = await getAgentFromSystem({ mastra, agentId });\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"]}