@mastra/server 1.26.0-alpha.9 → 1.26.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/CHANGELOG.md +106 -0
  2. package/dist/_types/@internal_core/dist/index.d.ts +22 -0
  3. package/dist/{chunk-GOXZQ2BL.js → chunk-24SW3KB3.js} +4 -4
  4. package/dist/{chunk-GOXZQ2BL.js.map → chunk-24SW3KB3.js.map} +1 -1
  5. package/dist/{chunk-WNG6C2OY.cjs → chunk-2DNSABMG.cjs} +25 -25
  6. package/dist/{chunk-WNG6C2OY.cjs.map → chunk-2DNSABMG.cjs.map} +1 -1
  7. package/dist/{chunk-B7SBAXEP.cjs → chunk-2Q4IAQP6.cjs} +7 -7
  8. package/dist/{chunk-B7SBAXEP.cjs.map → chunk-2Q4IAQP6.cjs.map} +1 -1
  9. package/dist/{chunk-WBPWUNCX.js → chunk-2Q5WIJZV.js} +7 -5
  10. package/dist/chunk-2Q5WIJZV.js.map +1 -0
  11. package/dist/{chunk-S2QK2XG2.js → chunk-2YY3EMMS.js} +6 -3
  12. package/dist/chunk-2YY3EMMS.js.map +1 -0
  13. package/dist/{chunk-K5FZ3MKO.js → chunk-3224ZDIF.js} +5 -5
  14. package/dist/{chunk-K5FZ3MKO.js.map → chunk-3224ZDIF.js.map} +1 -1
  15. package/dist/{chunk-BP3FLWZT.js → chunk-3ACZ2AKY.js} +7 -7
  16. package/dist/{chunk-BP3FLWZT.js.map → chunk-3ACZ2AKY.js.map} +1 -1
  17. package/dist/{chunk-G2S6L4IR.js → chunk-3BLT6ISZ.js} +3 -3
  18. package/dist/{chunk-G2S6L4IR.js.map → chunk-3BLT6ISZ.js.map} +1 -1
  19. package/dist/{chunk-KO2V7HRR.js → chunk-3OQMTFIV.js} +3 -3
  20. package/dist/{chunk-KO2V7HRR.js.map → chunk-3OQMTFIV.js.map} +1 -1
  21. package/dist/{chunk-LWK57QIA.cjs → chunk-4WDBN7FE.cjs} +3 -3
  22. package/dist/{chunk-LWK57QIA.cjs.map → chunk-4WDBN7FE.cjs.map} +1 -1
  23. package/dist/{chunk-D2R7PY34.cjs → chunk-5BD65C6R.cjs} +156 -143
  24. package/dist/chunk-5BD65C6R.cjs.map +1 -0
  25. package/dist/{chunk-BWUKBT7Z.js → chunk-5TTCUSSA.js} +4 -4
  26. package/dist/{chunk-BWUKBT7Z.js.map → chunk-5TTCUSSA.js.map} +1 -1
  27. package/dist/{chunk-5EL4CHO6.cjs → chunk-5Y75OYZM.cjs} +28 -28
  28. package/dist/{chunk-5EL4CHO6.cjs.map → chunk-5Y75OYZM.cjs.map} +1 -1
  29. package/dist/{chunk-XM6TVQQD.js → chunk-6KMLRD3J.js} +3 -3
  30. package/dist/{chunk-XM6TVQQD.js.map → chunk-6KMLRD3J.js.map} +1 -1
  31. package/dist/{chunk-VTPTMQFA.cjs → chunk-6NHGGSHC.cjs} +14 -7
  32. package/dist/chunk-6NHGGSHC.cjs.map +1 -0
  33. package/dist/{chunk-EYWOOOQG.cjs → chunk-6UWPE4WD.cjs} +50 -40
  34. package/dist/chunk-6UWPE4WD.cjs.map +1 -0
  35. package/dist/{chunk-YG3JPRRY.cjs → chunk-73MISLDN.cjs} +19 -19
  36. package/dist/{chunk-YG3JPRRY.cjs.map → chunk-73MISLDN.cjs.map} +1 -1
  37. package/dist/{chunk-MP6KOR6Q.js → chunk-77UDRX7O.js} +54 -6
  38. package/dist/chunk-77UDRX7O.js.map +1 -0
  39. package/dist/{chunk-XI4SISOH.js → chunk-7I34BNA3.js} +6 -6
  40. package/dist/{chunk-XI4SISOH.js.map → chunk-7I34BNA3.js.map} +1 -1
  41. package/dist/{chunk-ACC4X5V6.js → chunk-7LBBDT4S.js} +4 -4
  42. package/dist/{chunk-ACC4X5V6.js.map → chunk-7LBBDT4S.js.map} +1 -1
  43. package/dist/{chunk-AQQEGR2L.cjs → chunk-7SPUHOHW.cjs} +24 -24
  44. package/dist/{chunk-AQQEGR2L.cjs.map → chunk-7SPUHOHW.cjs.map} +1 -1
  45. package/dist/{chunk-TKEJJLHK.js → chunk-AIRSK4QU.js} +4 -4
  46. package/dist/{chunk-TKEJJLHK.js.map → chunk-AIRSK4QU.js.map} +1 -1
  47. package/dist/{chunk-E6SN323H.js → chunk-AJADOQR4.js} +15 -6
  48. package/dist/chunk-AJADOQR4.js.map +1 -0
  49. package/dist/{chunk-GIIEDO2K.js → chunk-APFB2KF2.js} +3 -3
  50. package/dist/{chunk-GIIEDO2K.js.map → chunk-APFB2KF2.js.map} +1 -1
  51. package/dist/{chunk-GV5CQBWZ.js → chunk-BAJOHKSB.js} +9 -6
  52. package/dist/chunk-BAJOHKSB.js.map +1 -0
  53. package/dist/{chunk-6AEW3U34.cjs → chunk-BFJLZBI7.cjs} +18 -9
  54. package/dist/chunk-BFJLZBI7.cjs.map +1 -0
  55. package/dist/{chunk-ZFCNTRZ2.cjs → chunk-BIQ74OIO.cjs} +11 -3
  56. package/dist/chunk-BIQ74OIO.cjs.map +1 -0
  57. package/dist/{chunk-J2JX7FYX.cjs → chunk-BLINU5LG.cjs} +7 -7
  58. package/dist/{chunk-J2JX7FYX.cjs.map → chunk-BLINU5LG.cjs.map} +1 -1
  59. package/dist/{chunk-5ZIB34RZ.cjs → chunk-BLYICPLO.cjs} +140 -140
  60. package/dist/{chunk-5ZIB34RZ.cjs.map → chunk-BLYICPLO.cjs.map} +1 -1
  61. package/dist/{chunk-NWS4QRE6.js → chunk-BUFXUC67.js} +3 -3
  62. package/dist/{chunk-NWS4QRE6.js.map → chunk-BUFXUC67.js.map} +1 -1
  63. package/dist/{chunk-TQKWQKHP.js → chunk-C4T45CIM.js} +4 -4
  64. package/dist/{chunk-TQKWQKHP.js.map → chunk-C4T45CIM.js.map} +1 -1
  65. package/dist/{chunk-6BHM6ZJR.cjs → chunk-C6CCPCEC.cjs} +5 -5
  66. package/dist/{chunk-6BHM6ZJR.cjs.map → chunk-C6CCPCEC.cjs.map} +1 -1
  67. package/dist/{chunk-V7EVEI4C.js → chunk-CB5KNGCV.js} +10 -3
  68. package/dist/chunk-CB5KNGCV.js.map +1 -0
  69. package/dist/{chunk-5JWVKCGZ.cjs → chunk-CIPZ4VOZ.cjs} +12 -12
  70. package/dist/{chunk-5JWVKCGZ.cjs.map → chunk-CIPZ4VOZ.cjs.map} +1 -1
  71. package/dist/{chunk-WKBMLKBC.cjs → chunk-CQNREK5Y.cjs} +10 -10
  72. package/dist/{chunk-WKBMLKBC.cjs.map → chunk-CQNREK5Y.cjs.map} +1 -1
  73. package/dist/{chunk-VLNRGJEM.js → chunk-CT2AKZPZ.js} +3 -3
  74. package/dist/{chunk-VLNRGJEM.js.map → chunk-CT2AKZPZ.js.map} +1 -1
  75. package/dist/{chunk-6EORCZSC.cjs → chunk-D7P775NV.cjs} +28 -28
  76. package/dist/{chunk-6EORCZSC.cjs.map → chunk-D7P775NV.cjs.map} +1 -1
  77. package/dist/{chunk-YZFZHEHC.cjs → chunk-DCDQNIYY.cjs} +4 -4
  78. package/dist/{chunk-YZFZHEHC.cjs.map → chunk-DCDQNIYY.cjs.map} +1 -1
  79. package/dist/{chunk-O6TI6M65.js → chunk-DG6MQPBR.js} +6 -6
  80. package/dist/{chunk-O6TI6M65.js.map → chunk-DG6MQPBR.js.map} +1 -1
  81. package/dist/{chunk-EES2ZZGL.cjs → chunk-DIG2K5CV.cjs} +6 -3
  82. package/dist/chunk-DIG2K5CV.cjs.map +1 -0
  83. package/dist/{chunk-HITLRKIU.cjs → chunk-DIX6JWN4.cjs} +11 -10
  84. package/dist/chunk-DIX6JWN4.cjs.map +1 -0
  85. package/dist/{chunk-6MMZVEFC.js → chunk-DLULXY6G.js} +3 -3
  86. package/dist/{chunk-6MMZVEFC.js.map → chunk-DLULXY6G.js.map} +1 -1
  87. package/dist/{chunk-P6CD6Y4Z.cjs → chunk-DMMI7BSA.cjs} +4 -4
  88. package/dist/{chunk-P6CD6Y4Z.cjs.map → chunk-DMMI7BSA.cjs.map} +1 -1
  89. package/dist/{chunk-E63CFDUE.cjs → chunk-DRNCUSSM.cjs} +8 -8
  90. package/dist/{chunk-E63CFDUE.cjs.map → chunk-DRNCUSSM.cjs.map} +1 -1
  91. package/dist/{chunk-ECEYFPVI.js → chunk-EFJIK2PW.js} +3 -3
  92. package/dist/{chunk-ECEYFPVI.js.map → chunk-EFJIK2PW.js.map} +1 -1
  93. package/dist/{chunk-VDYI3V6P.cjs → chunk-F7DL7V5F.cjs} +5 -5
  94. package/dist/{chunk-VDYI3V6P.cjs.map → chunk-F7DL7V5F.cjs.map} +1 -1
  95. package/dist/{chunk-PWEAVIXV.cjs → chunk-FFSD7OV7.cjs} +19 -19
  96. package/dist/{chunk-PWEAVIXV.cjs.map → chunk-FFSD7OV7.cjs.map} +1 -1
  97. package/dist/{chunk-IN35SZ2C.js → chunk-GELMHP5G.js} +9 -7
  98. package/dist/chunk-GELMHP5G.js.map +1 -0
  99. package/dist/{chunk-2U535WWQ.cjs → chunk-GFP7IMFR.cjs} +5 -5
  100. package/dist/{chunk-2U535WWQ.cjs.map → chunk-GFP7IMFR.cjs.map} +1 -1
  101. package/dist/{chunk-DDLTXG3Y.cjs → chunk-H3SXVQYW.cjs} +96 -94
  102. package/dist/chunk-H3SXVQYW.cjs.map +1 -0
  103. package/dist/{chunk-XM2YJ3NM.cjs → chunk-IABGFWY2.cjs} +5 -5
  104. package/dist/{chunk-XM2YJ3NM.cjs.map → chunk-IABGFWY2.cjs.map} +1 -1
  105. package/dist/{chunk-JPH6OOSM.js → chunk-IBK77L63.js} +4 -4
  106. package/dist/{chunk-JPH6OOSM.js.map → chunk-IBK77L63.js.map} +1 -1
  107. package/dist/{chunk-KSHYQV6C.js → chunk-IFYVRBFS.js} +10 -4
  108. package/dist/chunk-IFYVRBFS.js.map +1 -0
  109. package/dist/{chunk-WC4RIS4D.js → chunk-INGHVKDO.js} +3 -3
  110. package/dist/{chunk-WC4RIS4D.js.map → chunk-INGHVKDO.js.map} +1 -1
  111. package/dist/{chunk-22KGDT57.js → chunk-JDC7A4YV.js} +5 -5
  112. package/dist/{chunk-22KGDT57.js.map → chunk-JDC7A4YV.js.map} +1 -1
  113. package/dist/{chunk-ZB4FHUTD.js → chunk-JKFMRHNM.js} +3 -3
  114. package/dist/{chunk-ZB4FHUTD.js.map → chunk-JKFMRHNM.js.map} +1 -1
  115. package/dist/{chunk-Q6FUJNUH.js → chunk-JV2ZLLVN.js} +5 -5
  116. package/dist/{chunk-Q6FUJNUH.js.map → chunk-JV2ZLLVN.js.map} +1 -1
  117. package/dist/{chunk-JSED6H32.js → chunk-K6WBL3KZ.js} +3 -3
  118. package/dist/{chunk-JSED6H32.js.map → chunk-K6WBL3KZ.js.map} +1 -1
  119. package/dist/{chunk-RN2QRBV4.js → chunk-KBJI2ZGO.js} +5 -5
  120. package/dist/{chunk-RN2QRBV4.js.map → chunk-KBJI2ZGO.js.map} +1 -1
  121. package/dist/{chunk-MY6TVQ24.js → chunk-KDIGKXA3.js} +13 -13
  122. package/dist/{chunk-MY6TVQ24.js.map → chunk-KDIGKXA3.js.map} +1 -1
  123. package/dist/{chunk-6MDHPZOJ.js → chunk-KEFOJ6EP.js} +4 -4
  124. package/dist/chunk-KEFOJ6EP.js.map +1 -0
  125. package/dist/{chunk-UKMRQ6ER.cjs → chunk-KME4O3RJ.cjs} +15 -9
  126. package/dist/chunk-KME4O3RJ.cjs.map +1 -0
  127. package/dist/{chunk-TMCDS3XP.cjs → chunk-KSARJEHH.cjs} +24 -24
  128. package/dist/{chunk-TMCDS3XP.cjs.map → chunk-KSARJEHH.cjs.map} +1 -1
  129. package/dist/{chunk-XNUXAO2P.cjs → chunk-KTS4NFM5.cjs} +92 -42
  130. package/dist/chunk-KTS4NFM5.cjs.map +1 -0
  131. package/dist/{chunk-DCWP744F.cjs → chunk-KZ3ERBUT.cjs} +4 -4
  132. package/dist/{chunk-DCWP744F.cjs.map → chunk-KZ3ERBUT.cjs.map} +1 -1
  133. package/dist/{chunk-KKQMEJOK.js → chunk-LCAQQOLF.js} +3 -3
  134. package/dist/{chunk-KKQMEJOK.js.map → chunk-LCAQQOLF.js.map} +1 -1
  135. package/dist/{chunk-Q7TFYRGQ.cjs → chunk-LCGUC3UL.cjs} +29 -29
  136. package/dist/{chunk-Q7TFYRGQ.cjs.map → chunk-LCGUC3UL.cjs.map} +1 -1
  137. package/dist/{chunk-QKOLB27L.cjs → chunk-LZ32IIH2.cjs} +5 -5
  138. package/dist/{chunk-QKOLB27L.cjs.map → chunk-LZ32IIH2.cjs.map} +1 -1
  139. package/dist/{chunk-SSY5LVIH.js → chunk-M6GSAOAD.js} +6 -6
  140. package/dist/{chunk-SSY5LVIH.js.map → chunk-M6GSAOAD.js.map} +1 -1
  141. package/dist/{chunk-XDBWJQO6.js → chunk-MLJVCFJQ.js} +24 -11
  142. package/dist/chunk-MLJVCFJQ.js.map +1 -0
  143. package/dist/{chunk-PPGMPIWY.cjs → chunk-MLV3OU36.cjs} +27 -27
  144. package/dist/{chunk-PPGMPIWY.cjs.map → chunk-MLV3OU36.cjs.map} +1 -1
  145. package/dist/{chunk-ZGP2PLRF.js → chunk-MWFVMI3T.js} +7 -7
  146. package/dist/{chunk-ZGP2PLRF.js.map → chunk-MWFVMI3T.js.map} +1 -1
  147. package/dist/{chunk-R6LBCSVW.js → chunk-MXZPGEC2.js} +3 -3
  148. package/dist/{chunk-R6LBCSVW.js.map → chunk-MXZPGEC2.js.map} +1 -1
  149. package/dist/{chunk-4EU56SMM.js → chunk-NCOIQYTM.js} +4 -4
  150. package/dist/{chunk-4EU56SMM.js.map → chunk-NCOIQYTM.js.map} +1 -1
  151. package/dist/{chunk-N2BDDGAV.cjs → chunk-O4TXCSGQ.cjs} +24 -24
  152. package/dist/{chunk-N2BDDGAV.cjs.map → chunk-O4TXCSGQ.cjs.map} +1 -1
  153. package/dist/{chunk-AX6RYALX.cjs → chunk-O5XIJDN3.cjs} +22 -22
  154. package/dist/{chunk-AX6RYALX.cjs.map → chunk-O5XIJDN3.cjs.map} +1 -1
  155. package/dist/{chunk-RA52MKCE.js → chunk-OC4S3EDO.js} +3 -3
  156. package/dist/{chunk-RA52MKCE.js.map → chunk-OC4S3EDO.js.map} +1 -1
  157. package/dist/{chunk-BSW2G3CB.cjs → chunk-ONL7ZWVI.cjs} +7 -5
  158. package/dist/chunk-ONL7ZWVI.cjs.map +1 -0
  159. package/dist/{chunk-37DBOOL2.cjs → chunk-P6PFWRSN.cjs} +11 -8
  160. package/dist/chunk-P6PFWRSN.cjs.map +1 -0
  161. package/dist/{chunk-G35BBKD7.cjs → chunk-PDEIYN7Y.cjs} +28 -28
  162. package/dist/{chunk-G35BBKD7.cjs.map → chunk-PDEIYN7Y.cjs.map} +1 -1
  163. package/dist/{chunk-2BRN4DAE.js → chunk-PDHGJ7GP.js} +3 -3
  164. package/dist/{chunk-2BRN4DAE.js.map → chunk-PDHGJ7GP.js.map} +1 -1
  165. package/dist/{chunk-MFO2IOF3.cjs → chunk-PIF6BJCN.cjs} +32 -32
  166. package/dist/{chunk-MFO2IOF3.cjs.map → chunk-PIF6BJCN.cjs.map} +1 -1
  167. package/dist/chunk-PXAMRQAF.js +25 -0
  168. package/dist/chunk-PXAMRQAF.js.map +1 -0
  169. package/dist/{chunk-MUOB33WV.cjs → chunk-Q2B7W7GA.cjs} +5 -5
  170. package/dist/{chunk-MUOB33WV.cjs.map → chunk-Q2B7W7GA.cjs.map} +1 -1
  171. package/dist/{chunk-FGU5GYMB.cjs → chunk-Q4CH5CG5.cjs} +6 -6
  172. package/dist/{chunk-FGU5GYMB.cjs.map → chunk-Q4CH5CG5.cjs.map} +1 -1
  173. package/dist/{chunk-SOG4LDST.cjs → chunk-Q7GNNLCY.cjs} +4 -4
  174. package/dist/chunk-Q7GNNLCY.cjs.map +1 -0
  175. package/dist/{chunk-DOHUOYZS.cjs → chunk-RPOKTN4O.cjs} +7 -7
  176. package/dist/{chunk-DOHUOYZS.cjs.map → chunk-RPOKTN4O.cjs.map} +1 -1
  177. package/dist/{chunk-7X4P2I6L.js → chunk-RQXUPTUI.js} +5 -4
  178. package/dist/chunk-RQXUPTUI.js.map +1 -0
  179. package/dist/{chunk-L5IPLJ3D.cjs → chunk-RRJKJPUJ.cjs} +29 -29
  180. package/dist/{chunk-L5IPLJ3D.cjs.map → chunk-RRJKJPUJ.cjs.map} +1 -1
  181. package/dist/{chunk-VMDL27ZN.js → chunk-RVICRXZF.js} +3 -3
  182. package/dist/{chunk-VMDL27ZN.js.map → chunk-RVICRXZF.js.map} +1 -1
  183. package/dist/{chunk-22JIX4IH.cjs → chunk-SGXBKIPB.cjs} +10 -10
  184. package/dist/{chunk-22JIX4IH.cjs.map → chunk-SGXBKIPB.cjs.map} +1 -1
  185. package/dist/{chunk-7FWYWVRL.cjs → chunk-SSJSTNMZ.cjs} +22 -22
  186. package/dist/{chunk-7FWYWVRL.cjs.map → chunk-SSJSTNMZ.cjs.map} +1 -1
  187. package/dist/{chunk-TMH4AMSS.cjs → chunk-TB5T5EIJ.cjs} +12 -12
  188. package/dist/{chunk-TMH4AMSS.cjs.map → chunk-TB5T5EIJ.cjs.map} +1 -1
  189. package/dist/{chunk-DWNUIMDL.js → chunk-TEE45LZB.js} +6 -6
  190. package/dist/{chunk-DWNUIMDL.js.map → chunk-TEE45LZB.js.map} +1 -1
  191. package/dist/{chunk-U3KAKJYL.js → chunk-TTZI2Z25.js} +8 -8
  192. package/dist/{chunk-U3KAKJYL.js.map → chunk-TTZI2Z25.js.map} +1 -1
  193. package/dist/{chunk-HGEHQKAH.cjs → chunk-TXM2XTUT.cjs} +10 -10
  194. package/dist/{chunk-HGEHQKAH.cjs.map → chunk-TXM2XTUT.cjs.map} +1 -1
  195. package/dist/{chunk-ZGAWVGDD.js → chunk-TZF2SAX5.js} +8 -8
  196. package/dist/{chunk-ZGAWVGDD.js.map → chunk-TZF2SAX5.js.map} +1 -1
  197. package/dist/{chunk-XDFQJNOR.cjs → chunk-U4Y53V3G.cjs} +6 -6
  198. package/dist/{chunk-XDFQJNOR.cjs.map → chunk-U4Y53V3G.cjs.map} +1 -1
  199. package/dist/{chunk-WV5LJP6Y.cjs → chunk-UH3MHVDF.cjs} +5 -5
  200. package/dist/{chunk-WV5LJP6Y.cjs.map → chunk-UH3MHVDF.cjs.map} +1 -1
  201. package/dist/{chunk-Q3IJZXJC.cjs → chunk-UM72OD3E.cjs} +27 -27
  202. package/dist/{chunk-Q3IJZXJC.cjs.map → chunk-UM72OD3E.cjs.map} +1 -1
  203. package/dist/{chunk-WPG4POSC.js → chunk-V3HMHVKU.js} +5 -5
  204. package/dist/{chunk-WPG4POSC.js.map → chunk-V3HMHVKU.js.map} +1 -1
  205. package/dist/{chunk-RYFUAQ6R.cjs → chunk-VO2PCVXW.cjs} +27 -27
  206. package/dist/{chunk-RYFUAQ6R.cjs.map → chunk-VO2PCVXW.cjs.map} +1 -1
  207. package/dist/{chunk-6NM5GLTZ.cjs → chunk-VQPGGT32.cjs} +154 -154
  208. package/dist/{chunk-6NM5GLTZ.cjs.map → chunk-VQPGGT32.cjs.map} +1 -1
  209. package/dist/{chunk-NUJ57TFV.js → chunk-VX2KJFOW.js} +6 -6
  210. package/dist/{chunk-NUJ57TFV.js.map → chunk-VX2KJFOW.js.map} +1 -1
  211. package/dist/{chunk-WWH2YGEQ.js → chunk-VXTJHEII.js} +3 -3
  212. package/dist/{chunk-WWH2YGEQ.js.map → chunk-VXTJHEII.js.map} +1 -1
  213. package/dist/{chunk-HSUOCEO7.js → chunk-WBHTWSW7.js} +6 -6
  214. package/dist/{chunk-HSUOCEO7.js.map → chunk-WBHTWSW7.js.map} +1 -1
  215. package/dist/{chunk-5XEAWQRZ.cjs → chunk-WIOYCLJC.cjs} +5 -5
  216. package/dist/{chunk-5XEAWQRZ.cjs.map → chunk-WIOYCLJC.cjs.map} +1 -1
  217. package/dist/{chunk-BG3UAWWQ.cjs → chunk-WKRZS674.cjs} +35 -35
  218. package/dist/{chunk-BG3UAWWQ.cjs.map → chunk-WKRZS674.cjs.map} +1 -1
  219. package/dist/{chunk-QGYUGVXG.cjs → chunk-WYLVJSGR.cjs} +7 -7
  220. package/dist/{chunk-QGYUGVXG.cjs.map → chunk-WYLVJSGR.cjs.map} +1 -1
  221. package/dist/{chunk-RHLVKDVK.cjs → chunk-X2QCUZYL.cjs} +26 -26
  222. package/dist/{chunk-RHLVKDVK.cjs.map → chunk-X2QCUZYL.cjs.map} +1 -1
  223. package/dist/{chunk-C32ITCAX.cjs → chunk-X5FUTLPK.cjs} +11 -11
  224. package/dist/{chunk-C32ITCAX.cjs.map → chunk-X5FUTLPK.cjs.map} +1 -1
  225. package/dist/{chunk-MXWJSZXL.js → chunk-XH2V4AVS.js} +6 -6
  226. package/dist/{chunk-MXWJSZXL.js.map → chunk-XH2V4AVS.js.map} +1 -1
  227. package/dist/{chunk-I5WEJOAE.js → chunk-XNGQB4ZW.js} +15 -5
  228. package/dist/chunk-XNGQB4ZW.js.map +1 -0
  229. package/dist/{chunk-S3IMBHXP.cjs → chunk-XQARPKHD.cjs} +25 -25
  230. package/dist/{chunk-S3IMBHXP.cjs.map → chunk-XQARPKHD.cjs.map} +1 -1
  231. package/dist/{chunk-S7PYDU5I.js → chunk-YO7N5VOP.js} +3 -3
  232. package/dist/{chunk-S7PYDU5I.js.map → chunk-YO7N5VOP.js.map} +1 -1
  233. package/dist/{chunk-QRCL3KIX.js → chunk-YPXOTWND.js} +4 -4
  234. package/dist/{chunk-QRCL3KIX.js.map → chunk-YPXOTWND.js.map} +1 -1
  235. package/dist/{chunk-E47ITIFY.cjs → chunk-YRTZGGKQ.cjs} +146 -146
  236. package/dist/{chunk-E47ITIFY.cjs.map → chunk-YRTZGGKQ.cjs.map} +1 -1
  237. package/dist/{chunk-BAD2NWEJ.js → chunk-Z6C7SDXA.js} +3 -3
  238. package/dist/{chunk-BAD2NWEJ.js.map → chunk-Z6C7SDXA.js.map} +1 -1
  239. package/dist/{chunk-HTDMQEXM.js → chunk-Z73DMS63.js} +3 -3
  240. package/dist/{chunk-HTDMQEXM.js.map → chunk-Z73DMS63.js.map} +1 -1
  241. package/dist/{chunk-HDBM3PDF.js → chunk-ZCXN7QWI.js} +4 -4
  242. package/dist/{chunk-HDBM3PDF.js.map → chunk-ZCXN7QWI.js.map} +1 -1
  243. package/dist/{chunk-G46IGMXH.js → chunk-ZUUD6FN5.js} +4 -4
  244. package/dist/{chunk-G46IGMXH.js.map → chunk-ZUUD6FN5.js.map} +1 -1
  245. package/dist/{chunk-GOV2VFTV.js → chunk-ZZJCYUVX.js} +3 -3
  246. package/dist/{chunk-GOV2VFTV.js.map → chunk-ZZJCYUVX.js.map} +1 -1
  247. package/dist/docs/SKILL.md +1 -1
  248. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  249. package/dist/{observational-memory-WJ4BDRUP-HNAWHGDZ.cjs → observational-memory-CIGODMXV-5QVHS6GP.cjs} +26 -26
  250. package/dist/{observational-memory-WJ4BDRUP-HNAWHGDZ.cjs.map → observational-memory-CIGODMXV-5QVHS6GP.cjs.map} +1 -1
  251. package/dist/{observational-memory-WJ4BDRUP-5X5ZOEK3.js → observational-memory-CIGODMXV-RX4J6TAC.js} +3 -3
  252. package/dist/{observational-memory-WJ4BDRUP-5X5ZOEK3.js.map → observational-memory-CIGODMXV-RX4J6TAC.js.map} +1 -1
  253. package/dist/server/handlers/a2a.cjs +9 -9
  254. package/dist/server/handlers/a2a.js +1 -1
  255. package/dist/server/handlers/agent-builder.cjs +16 -16
  256. package/dist/server/handlers/agent-builder.d.ts +48 -0
  257. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  258. package/dist/server/handlers/agent-builder.js +1 -1
  259. package/dist/server/handlers/agent-versions.cjs +8 -8
  260. package/dist/server/handlers/agent-versions.js +1 -1
  261. package/dist/server/handlers/agents.cjs +35 -35
  262. package/dist/server/handlers/agents.d.ts +260 -0
  263. package/dist/server/handlers/agents.d.ts.map +1 -1
  264. package/dist/server/handlers/agents.js +1 -1
  265. package/dist/server/handlers/auth.cjs +11 -11
  266. package/dist/server/handlers/auth.js +1 -1
  267. package/dist/server/handlers/background-tasks.cjs +4 -4
  268. package/dist/server/handlers/background-tasks.d.ts.map +1 -1
  269. package/dist/server/handlers/background-tasks.js +1 -1
  270. package/dist/server/handlers/conversations.cjs +5 -5
  271. package/dist/server/handlers/conversations.js +1 -1
  272. package/dist/server/handlers/datasets.cjs +26 -26
  273. package/dist/server/handlers/datasets.d.ts +20 -0
  274. package/dist/server/handlers/datasets.d.ts.map +1 -1
  275. package/dist/server/handlers/datasets.js +1 -1
  276. package/dist/server/handlers/logs.cjs +4 -4
  277. package/dist/server/handlers/logs.js +1 -1
  278. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  279. package/dist/server/handlers/mcp-client-versions.js +1 -1
  280. package/dist/server/handlers/mcp.cjs +9 -9
  281. package/dist/server/handlers/mcp.js +1 -1
  282. package/dist/server/handlers/memory.cjs +27 -27
  283. package/dist/server/handlers/memory.js +1 -1
  284. package/dist/server/handlers/observability-new-endpoints.cjs +27 -27
  285. package/dist/server/handlers/observability-new-endpoints.d.ts +20 -0
  286. package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
  287. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  288. package/dist/server/handlers/observability.cjs +41 -33
  289. package/dist/server/handlers/observability.d.ts +140 -0
  290. package/dist/server/handlers/observability.d.ts.map +1 -1
  291. package/dist/server/handlers/observability.js +2 -2
  292. package/dist/server/handlers/processor-providers.cjs +3 -3
  293. package/dist/server/handlers/processor-providers.js +1 -1
  294. package/dist/server/handlers/processors.cjs +4 -4
  295. package/dist/server/handlers/processors.js +1 -1
  296. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  297. package/dist/server/handlers/prompt-block-versions.js +1 -1
  298. package/dist/server/handlers/responses.cjs +4 -4
  299. package/dist/server/handlers/responses.js +1 -1
  300. package/dist/server/handlers/responses.storage.cjs +8 -8
  301. package/dist/server/handlers/responses.storage.js +1 -1
  302. package/dist/server/handlers/scorer-versions.cjs +8 -8
  303. package/dist/server/handlers/scorer-versions.js +1 -1
  304. package/dist/server/handlers/scores.cjs +7 -7
  305. package/dist/server/handlers/scores.js +1 -1
  306. package/dist/server/handlers/stored-agents.cjs +7 -7
  307. package/dist/server/handlers/stored-agents.js +1 -1
  308. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  309. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  310. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  311. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  312. package/dist/server/handlers/stored-scorers.cjs +6 -6
  313. package/dist/server/handlers/stored-scorers.js +1 -1
  314. package/dist/server/handlers/stored-skills.cjs +7 -7
  315. package/dist/server/handlers/stored-skills.js +1 -1
  316. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  317. package/dist/server/handlers/stored-workspaces.js +1 -1
  318. package/dist/server/handlers/system.cjs +2 -2
  319. package/dist/server/handlers/system.d.ts +7 -0
  320. package/dist/server/handlers/system.d.ts.map +1 -1
  321. package/dist/server/handlers/system.js +1 -1
  322. package/dist/server/handlers/tool-providers.cjs +5 -5
  323. package/dist/server/handlers/tool-providers.js +1 -1
  324. package/dist/server/handlers/tools.cjs +6 -6
  325. package/dist/server/handlers/tools.js +1 -1
  326. package/dist/server/handlers/utils.cjs +9 -9
  327. package/dist/server/handlers/utils.js +1 -1
  328. package/dist/server/handlers/vector.cjs +16 -16
  329. package/dist/server/handlers/vector.js +1 -1
  330. package/dist/server/handlers/voice.cjs +8 -8
  331. package/dist/server/handlers/voice.js +1 -1
  332. package/dist/server/handlers/workflows.cjs +24 -24
  333. package/dist/server/handlers/workflows.d.ts +78 -0
  334. package/dist/server/handlers/workflows.d.ts.map +1 -1
  335. package/dist/server/handlers/workflows.js +1 -1
  336. package/dist/server/handlers/workspace.cjs +26 -26
  337. package/dist/server/handlers/workspace.js +1 -1
  338. package/dist/server/handlers.cjs +41 -41
  339. package/dist/server/handlers.js +15 -15
  340. package/dist/server/schemas/agent-builder.d.ts +13 -0
  341. package/dist/server/schemas/agent-builder.d.ts.map +1 -1
  342. package/dist/server/schemas/agents.d.ts +26 -0
  343. package/dist/server/schemas/agents.d.ts.map +1 -1
  344. package/dist/server/schemas/common.d.ts +3 -0
  345. package/dist/server/schemas/common.d.ts.map +1 -1
  346. package/dist/server/schemas/datasets.d.ts +10 -0
  347. package/dist/server/schemas/datasets.d.ts.map +1 -1
  348. package/dist/server/schemas/index.cjs +536 -532
  349. package/dist/server/schemas/index.js +23 -23
  350. package/dist/server/schemas/system.d.ts +12 -0
  351. package/dist/server/schemas/system.d.ts.map +1 -1
  352. package/dist/server/schemas/workflows.d.ts +19 -0
  353. package/dist/server/schemas/workflows.d.ts.map +1 -1
  354. package/dist/server/server-adapter/index.cjs +309 -307
  355. package/dist/server/server-adapter/index.cjs.map +1 -1
  356. package/dist/server/server-adapter/index.js +40 -38
  357. package/dist/server/server-adapter/index.js.map +1 -1
  358. package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -1
  359. package/dist/server/server-adapter/routes/agent-builder.d.ts +42 -0
  360. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -1
  361. package/dist/server/server-adapter/routes/datasets.d.ts +20 -0
  362. package/dist/server/server-adapter/routes/datasets.d.ts.map +1 -1
  363. package/dist/server/server-adapter/routes/legacy.d.ts +64 -0
  364. package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -1
  365. package/dist/server/server-adapter/routes/observability.d.ts +146 -0
  366. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
  367. package/dist/server/server-adapter/routes/system.d.ts +7 -0
  368. package/dist/server/server-adapter/routes/system.d.ts.map +1 -1
  369. package/dist/server/server-adapter/routes/workflows.d.ts +72 -0
  370. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
  371. package/package.json +12 -12
  372. package/dist/chunk-37DBOOL2.cjs.map +0 -1
  373. package/dist/chunk-6AEW3U34.cjs.map +0 -1
  374. package/dist/chunk-6MDHPZOJ.js.map +0 -1
  375. package/dist/chunk-7X4P2I6L.js.map +0 -1
  376. package/dist/chunk-BSW2G3CB.cjs.map +0 -1
  377. package/dist/chunk-D2R7PY34.cjs.map +0 -1
  378. package/dist/chunk-DDLTXG3Y.cjs.map +0 -1
  379. package/dist/chunk-E6SN323H.js.map +0 -1
  380. package/dist/chunk-EES2ZZGL.cjs.map +0 -1
  381. package/dist/chunk-EYWOOOQG.cjs.map +0 -1
  382. package/dist/chunk-GV5CQBWZ.js.map +0 -1
  383. package/dist/chunk-HITLRKIU.cjs.map +0 -1
  384. package/dist/chunk-I5WEJOAE.js.map +0 -1
  385. package/dist/chunk-IN35SZ2C.js.map +0 -1
  386. package/dist/chunk-KSHYQV6C.js.map +0 -1
  387. package/dist/chunk-MP6KOR6Q.js.map +0 -1
  388. package/dist/chunk-RW62AXQH.js +0 -18
  389. package/dist/chunk-RW62AXQH.js.map +0 -1
  390. package/dist/chunk-S2QK2XG2.js.map +0 -1
  391. package/dist/chunk-SOG4LDST.cjs.map +0 -1
  392. package/dist/chunk-UKMRQ6ER.cjs.map +0 -1
  393. package/dist/chunk-V7EVEI4C.js.map +0 -1
  394. package/dist/chunk-VTPTMQFA.cjs.map +0 -1
  395. package/dist/chunk-WBPWUNCX.js.map +0 -1
  396. package/dist/chunk-XDBWJQO6.js.map +0 -1
  397. package/dist/chunk-XNUXAO2P.cjs.map +0 -1
  398. package/dist/chunk-ZFCNTRZ2.cjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,111 @@
1
1
  # @mastra/server
2
2
 
3
+ ## 1.26.1-alpha.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies [[`f112db1`](https://github.com/mastra-ai/mastra/commit/f112db179557ae9b5a0f1d25dc47f928d7d61cd9), [`21d9706`](https://github.com/mastra-ai/mastra/commit/21d970604d89eee970cbf8013d26d7551aff6ea5)]:
8
+ - @mastra/core@1.26.1-alpha.0
9
+
10
+ ## 1.26.0
11
+
12
+ ### Minor Changes
13
+
14
+ - You can now tag spans and redact sensitive input or output per request by passing `tags`, `hideInput`, or `hideOutput` in `tracingOptions` when calling an agent or workflow. ([#15512](https://github.com/mastra-ai/mastra/pull/15512))
15
+
16
+ Added a lightweight trace endpoint (`GET /observability/traces/:traceId/light`) that returns only timeline-relevant span fields, dramatically reducing payload size when rendering trace timelines. Also added a dedicated span endpoint (`GET /observability/traces/:traceId/spans/:spanId`) to fetch full span details on demand.
17
+
18
+ - Added `forEachIndex` to the workflow resume request body schema. The `/workflows/:workflowId/resume`, `/resume-async`, and `/resume-stream` endpoints (including their agent-builder equivalents) now accept an optional zero-based `forEachIndex` so clients can target a specific iteration of a suspended `.foreach()` step. ([#15563](https://github.com/mastra-ai/mastra/pull/15563))
19
+
20
+ ```ts
21
+ // POST /workflows/:workflowId/resume
22
+ // body
23
+ {
24
+ step: 'approve',
25
+ resumeData: { ok: true },
26
+ forEachIndex: 1, // resume only the second iteration; others stay suspended
27
+ }
28
+ ```
29
+
30
+ ### Patch Changes
31
+
32
+ - Add `/api/background-tasks` routes (SSE stream, list with filters + pagination, get by ID) and matching `MastraClient` methods (`listBackgroundTasks`, `getBackgroundTask`, `streamBackgroundTasks`). ([#15307](https://github.com/mastra-ai/mastra/pull/15307))
33
+
34
+ - Added support for `versions` field in agent generate and stream request bodies, enabling per-request sub-agent version overrides that propagate through delegation. ([#15373](https://github.com/mastra-ai/mastra/pull/15373))
35
+
36
+ - Fix prototype pollution in `setNestedValue` (`@mastra/core/utils`) and `generateOpenAPIDocument` (`@mastra/server`). ([#15565](https://github.com/mastra-ai/mastra/pull/15565))
37
+
38
+ `setNestedValue` now rejects dot-path segments named `__proto__`, `constructor`, or `prototype`, preventing attacker-controlled field paths passed to `selectFields` from polluting `Object.prototype`. `generateOpenAPIDocument` builds its `paths` map with `Object.create(null)` so a route path of `__proto__` cannot poison the prototype chain.
39
+
40
+ - Fixed noisy 'Background task manager not available' error log in studio when background tasks are not enabled. The list endpoint now returns an empty list, the get-by-id endpoint returns 404, and the SSE stream endpoint returns an empty stream that closes on disconnect — instead of throwing an HTTP 400 that gets logged as an error. ([#15600](https://github.com/mastra-ai/mastra/pull/15600))
41
+
42
+ - Added unique IDs (`logId`, `metricId`, `scoreId`, `feedbackId`) to all observability signals, generated automatically at emission time for de-duplication across the framework pipeline and cross-system correlation. User-facing APIs (`logger.info()`, `metrics.emit()`, `addScore()`, `addFeedback()`) are unchanged. ([#15242](https://github.com/mastra-ai/mastra/pull/15242))
43
+
44
+ For existing ClickHouse and DuckDB observability signal tables, run `npx mastra migrate` before initializing the store so the new signal-ID schema is applied.
45
+
46
+ - Updated dependencies [[`20f59b8`](https://github.com/mastra-ai/mastra/commit/20f59b876cf91199efbc49a0e36b391240708f08), [`aba393e`](https://github.com/mastra-ai/mastra/commit/aba393e2da7390c69b80e516a4f153cda6f09376), [`3d83d06`](https://github.com/mastra-ai/mastra/commit/3d83d06f776f00fb5f4163dddd32a030c5c20844), [`e2687a7`](https://github.com/mastra-ai/mastra/commit/e2687a7408790c384563816a9a28ed06735684c9), [`fdd54cf`](https://github.com/mastra-ai/mastra/commit/fdd54cf612a9af876e9fdd85e534454f6e7dd518), [`6315317`](https://github.com/mastra-ai/mastra/commit/63153175fe9a7b224e5be7c209bbebc01dd9b0d5), [`a371ac5`](https://github.com/mastra-ai/mastra/commit/a371ac534aa1bb368a1acf9d8b313378dfdc787e), [`0474c2b`](https://github.com/mastra-ai/mastra/commit/0474c2b2e7c7e1ad8691dca031284841391ff1ef), [`0a5fa1d`](https://github.com/mastra-ai/mastra/commit/0a5fa1d3cb0583889d06687155f26fd7d2edc76c), [`7e0e63e`](https://github.com/mastra-ai/mastra/commit/7e0e63e2e485e84442351f4c7a79a424c83539dc), [`ea43e64`](https://github.com/mastra-ai/mastra/commit/ea43e646dd95d507694b6112b0bf1df22ad552b2), [`f607106`](https://github.com/mastra-ai/mastra/commit/f607106854c6416c4a07d4082604b9f66d047221), [`30456b6`](https://github.com/mastra-ai/mastra/commit/30456b6b08c8fd17e109dd093b73d93b65e83bc5), [`9d11a8c`](https://github.com/mastra-ai/mastra/commit/9d11a8c1c8924eb975a245a5884d40ca1b7e0491), [`9d3b24b`](https://github.com/mastra-ai/mastra/commit/9d3b24b19407ae9c09586cf7766d38dc4dff4a69), [`00d1b16`](https://github.com/mastra-ai/mastra/commit/00d1b16b401199cb294fa23f43336547db4dca9b), [`47cee3e`](https://github.com/mastra-ai/mastra/commit/47cee3e137fe39109cf7fffd2a8cf47b76dc702e), [`62919a6`](https://github.com/mastra-ai/mastra/commit/62919a6ee0fbf3779ad21a97b1ec6696515d5104), [`d246696`](https://github.com/mastra-ai/mastra/commit/d246696139a3144a5b21b042d41c532688e957e1), [`354f9ce`](https://github.com/mastra-ai/mastra/commit/354f9ce1ca6af2074b6a196a23f8ec30012dccca), [`16e34ca`](https://github.com/mastra-ai/mastra/commit/16e34caa98b9a114b17a6125e4e3fd87f169d0d0), [`7020c06`](https://github.com/mastra-ai/mastra/commit/7020c0690b199d9da337f0e805f16948e557922e), [`8786a61`](https://github.com/mastra-ai/mastra/commit/8786a61fa54ba265f85eeff9985ca39863d18bb6), [`9467ea8`](https://github.com/mastra-ai/mastra/commit/9467ea87695749a53dfc041576410ebf9ee7bb67), [`7338d94`](https://github.com/mastra-ai/mastra/commit/7338d949380cf68b095342e8e42610dc51d557c1), [`c80dc16`](https://github.com/mastra-ai/mastra/commit/c80dc16e113e6cc159f510ffde501ad4711b2189), [`af8a57e`](https://github.com/mastra-ai/mastra/commit/af8a57ed9ba9685ad8601d5b71ae3706da6222f9), [`d63ffdb`](https://github.com/mastra-ai/mastra/commit/d63ffdbb2c11e76fe5ea45faab44bc15460f010c), [`47cee3e`](https://github.com/mastra-ai/mastra/commit/47cee3e137fe39109cf7fffd2a8cf47b76dc702e), [`1bd5104`](https://github.com/mastra-ai/mastra/commit/1bd51048b6da93507276d6623e3fd96a9e1a8944), [`e9837b5`](https://github.com/mastra-ai/mastra/commit/e9837b53699e18711b09e0ca010a4106376f2653), [`8f1b280`](https://github.com/mastra-ai/mastra/commit/8f1b280b7fe6999ec654f160cb69c1a8719e7a57), [`92dcf02`](https://github.com/mastra-ai/mastra/commit/92dcf029294210ac91b090900c1a0555a425c57a), [`0fd90a2`](https://github.com/mastra-ai/mastra/commit/0fd90a215caf5fca8099c15a67ca03e4427747a3), [`8fb2405`](https://github.com/mastra-ai/mastra/commit/8fb2405138f2d208b7962ad03f121ca25bcc28c5), [`12df98c`](https://github.com/mastra-ai/mastra/commit/12df98c4904643d9481f5c78f3bed443725b4c96)]:
47
+ - @mastra/core@1.26.0
48
+
49
+ ## 1.26.0-alpha.13
50
+
51
+ ### Patch Changes
52
+
53
+ - Fixed noisy 'Background task manager not available' error log in studio when background tasks are not enabled. The list endpoint now returns an empty list, the get-by-id endpoint returns 404, and the SSE stream endpoint returns an empty stream that closes on disconnect — instead of throwing an HTTP 400 that gets logged as an error. ([#15600](https://github.com/mastra-ai/mastra/pull/15600))
54
+
55
+ - Updated dependencies:
56
+ - @mastra/core@1.26.0-alpha.13
57
+
58
+ ## 1.26.0-alpha.12
59
+
60
+ ### Patch Changes
61
+
62
+ - Updated dependencies [[`a371ac5`](https://github.com/mastra-ai/mastra/commit/a371ac534aa1bb368a1acf9d8b313378dfdc787e), [`47cee3e`](https://github.com/mastra-ai/mastra/commit/47cee3e137fe39109cf7fffd2a8cf47b76dc702e), [`c80dc16`](https://github.com/mastra-ai/mastra/commit/c80dc16e113e6cc159f510ffde501ad4711b2189), [`47cee3e`](https://github.com/mastra-ai/mastra/commit/47cee3e137fe39109cf7fffd2a8cf47b76dc702e)]:
63
+ - @mastra/core@1.26.0-alpha.12
64
+
65
+ ## 1.26.0-alpha.11
66
+
67
+ ### Minor Changes
68
+
69
+ - You can now tag spans and redact sensitive input or output per request by passing `tags`, `hideInput`, or `hideOutput` in `tracingOptions` when calling an agent or workflow. ([#15512](https://github.com/mastra-ai/mastra/pull/15512))
70
+
71
+ Added a lightweight trace endpoint (`GET /observability/traces/:traceId/light`) that returns only timeline-relevant span fields, dramatically reducing payload size when rendering trace timelines. Also added a dedicated span endpoint (`GET /observability/traces/:traceId/spans/:spanId`) to fetch full span details on demand.
72
+
73
+ ### Patch Changes
74
+
75
+ - Added unique IDs (`logId`, `metricId`, `scoreId`, `feedbackId`) to all observability signals, generated automatically at emission time for de-duplication across the framework pipeline and cross-system correlation. User-facing APIs (`logger.info()`, `metrics.emit()`, `addScore()`, `addFeedback()`) are unchanged. ([#15242](https://github.com/mastra-ai/mastra/pull/15242))
76
+
77
+ For existing ClickHouse and DuckDB observability signal tables, run `npx mastra migrate` before initializing the store so the new signal-ID schema is applied.
78
+
79
+ - Updated dependencies [[`20f59b8`](https://github.com/mastra-ai/mastra/commit/20f59b876cf91199efbc49a0e36b391240708f08), [`e2687a7`](https://github.com/mastra-ai/mastra/commit/e2687a7408790c384563816a9a28ed06735684c9), [`8f1b280`](https://github.com/mastra-ai/mastra/commit/8f1b280b7fe6999ec654f160cb69c1a8719e7a57), [`12df98c`](https://github.com/mastra-ai/mastra/commit/12df98c4904643d9481f5c78f3bed443725b4c96)]:
80
+ - @mastra/core@1.26.0-alpha.11
81
+
82
+ ## 1.26.0-alpha.10
83
+
84
+ ### Minor Changes
85
+
86
+ - Added `forEachIndex` to the workflow resume request body schema. The `/workflows/:workflowId/resume`, `/resume-async`, and `/resume-stream` endpoints (including their agent-builder equivalents) now accept an optional zero-based `forEachIndex` so clients can target a specific iteration of a suspended `.foreach()` step. ([#15563](https://github.com/mastra-ai/mastra/pull/15563))
87
+
88
+ ```ts
89
+ // POST /workflows/:workflowId/resume
90
+ // body
91
+ {
92
+ step: 'approve',
93
+ resumeData: { ok: true },
94
+ forEachIndex: 1, // resume only the second iteration; others stay suspended
95
+ }
96
+ ```
97
+
98
+ ### Patch Changes
99
+
100
+ - Added support for `versions` field in agent generate and stream request bodies, enabling per-request sub-agent version overrides that propagate through delegation. ([#15373](https://github.com/mastra-ai/mastra/pull/15373))
101
+
102
+ - Fix prototype pollution in `setNestedValue` (`@mastra/core/utils`) and `generateOpenAPIDocument` (`@mastra/server`). ([#15565](https://github.com/mastra-ai/mastra/pull/15565))
103
+
104
+ `setNestedValue` now rejects dot-path segments named `__proto__`, `constructor`, or `prototype`, preventing attacker-controlled field paths passed to `selectFields` from polluting `Object.prototype`. `generateOpenAPIDocument` builds its `paths` map with `Object.create(null)` so a route path of `__proto__` cannot poison the prototype chain.
105
+
106
+ - Updated dependencies [[`aba393e`](https://github.com/mastra-ai/mastra/commit/aba393e2da7390c69b80e516a4f153cda6f09376), [`0a5fa1d`](https://github.com/mastra-ai/mastra/commit/0a5fa1d3cb0583889d06687155f26fd7d2edc76c), [`ea43e64`](https://github.com/mastra-ai/mastra/commit/ea43e646dd95d507694b6112b0bf1df22ad552b2), [`00d1b16`](https://github.com/mastra-ai/mastra/commit/00d1b16b401199cb294fa23f43336547db4dca9b), [`af8a57e`](https://github.com/mastra-ai/mastra/commit/af8a57ed9ba9685ad8601d5b71ae3706da6222f9)]:
107
+ - @mastra/core@1.26.0-alpha.10
108
+
3
109
  ## 1.26.0-alpha.9
4
110
 
5
111
  ### Patch Changes
@@ -6,6 +6,8 @@ declare enum EntityType {
6
6
  AGENT = "agent",
7
7
  /** Scorer definition/execution */
8
8
  SCORER = "scorer",
9
+ /** RAG ingestion pipeline execution */
10
+ RAG_INGESTION = "rag_ingestion",
9
11
  /** Trajectory evaluation target */
10
12
  TRAJECTORY = "trajectory",
11
13
  /** Input Processor */
@@ -286,6 +288,7 @@ declare const logRecordSchema: z.ZodObject<{
286
288
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
287
289
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
288
290
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
291
+ logId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
289
292
  timestamp: z.ZodDate;
290
293
  level: z.ZodEnum<{
291
294
  error: "error";
@@ -348,6 +351,7 @@ declare const createLogRecordSchema: z.ZodObject<{
348
351
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
349
352
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
350
353
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
354
+ logId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
351
355
  timestamp: z.ZodDate;
352
356
  level: z.ZodEnum<{
353
357
  error: "error";
@@ -393,6 +397,7 @@ declare const batchCreateLogsArgsSchema: z.ZodObject<{
393
397
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
394
398
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
395
399
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
400
+ logId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
396
401
  timestamp: z.ZodDate;
397
402
  level: z.ZodEnum<{
398
403
  error: "error";
@@ -570,6 +575,7 @@ declare const listLogsResponseSchema: z.ZodObject<{
570
575
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
571
576
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
572
577
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
578
+ logId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
573
579
  timestamp: z.ZodDate;
574
580
  level: z.ZodEnum<{
575
581
  error: "error";
@@ -619,6 +625,7 @@ declare const scoreRecordSchema: z.ZodObject<{
619
625
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
620
626
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
621
627
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
628
+ scoreId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
622
629
  timestamp: z.ZodDate;
623
630
  traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
624
631
  spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -680,6 +687,7 @@ declare const createScoreRecordSchema: z.ZodObject<{
680
687
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
681
688
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
682
689
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
690
+ scoreId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
683
691
  timestamp: z.ZodDate;
684
692
  traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
685
693
  spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -723,6 +731,7 @@ declare const createScoreArgsSchema: z.ZodObject<{
723
731
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
724
732
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
725
733
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
734
+ scoreId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
726
735
  timestamp: z.ZodDate;
727
736
  traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
728
737
  spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -771,6 +780,7 @@ declare const createScoreBodySchema: z.ZodObject<{
771
780
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
772
781
  scorerId: z.ZodString;
773
782
  score: z.ZodNumber;
783
+ scoreId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
774
784
  scorerName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
775
785
  scorerVersion: z.ZodOptional<z.ZodNullable<z.ZodString>>;
776
786
  scoreSource: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -816,6 +826,7 @@ declare const batchCreateScoresArgsSchema: z.ZodObject<{
816
826
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
817
827
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
818
828
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
829
+ scoreId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
819
830
  timestamp: z.ZodDate;
820
831
  traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
821
832
  spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -972,6 +983,7 @@ declare const listScoresResponseSchema: z.ZodObject<{
972
983
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
973
984
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
974
985
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
986
+ scoreId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
975
987
  timestamp: z.ZodDate;
976
988
  traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
977
989
  spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -1250,6 +1262,7 @@ declare const feedbackRecordSchema: z.ZodObject<{
1250
1262
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1251
1263
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1252
1264
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1265
+ feedbackId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1253
1266
  timestamp: z.ZodDate;
1254
1267
  traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1255
1268
  spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -1305,6 +1318,7 @@ declare const createFeedbackRecordSchema: z.ZodObject<{
1305
1318
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1306
1319
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1307
1320
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1321
+ feedbackId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1308
1322
  timestamp: z.ZodDate;
1309
1323
  traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1310
1324
  spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -1347,6 +1361,7 @@ declare const createFeedbackArgsSchema: z.ZodObject<{
1347
1361
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1348
1362
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1349
1363
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1364
+ feedbackId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1350
1365
  timestamp: z.ZodDate;
1351
1366
  traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1352
1367
  spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -1395,6 +1410,7 @@ declare const createFeedbackBodySchema: z.ZodObject<{
1395
1410
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1396
1411
  feedbackUserId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1397
1412
  feedbackType: z.ZodString;
1413
+ feedbackId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1398
1414
  feedbackSource: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1399
1415
  comment: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1400
1416
  sourceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -1438,6 +1454,7 @@ declare const batchCreateFeedbackArgsSchema: z.ZodObject<{
1438
1454
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1439
1455
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1440
1456
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1457
+ feedbackId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1441
1458
  timestamp: z.ZodDate;
1442
1459
  traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1443
1460
  spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -1591,6 +1608,7 @@ declare const listFeedbackResponseSchema: z.ZodObject<{
1591
1608
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1592
1609
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1593
1610
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1611
+ feedbackId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1594
1612
  timestamp: z.ZodDate;
1595
1613
  traceId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1596
1614
  spanId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
@@ -1891,6 +1909,7 @@ declare const metricRecordSchema: z.ZodObject<{
1891
1909
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1892
1910
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1893
1911
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1912
+ metricId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1894
1913
  timestamp: z.ZodDate;
1895
1914
  name: z.ZodString;
1896
1915
  value: z.ZodNumber;
@@ -1945,6 +1964,7 @@ declare const createMetricRecordSchema: z.ZodObject<{
1945
1964
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1946
1965
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1947
1966
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1967
+ metricId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1948
1968
  timestamp: z.ZodDate;
1949
1969
  name: z.ZodString;
1950
1970
  value: z.ZodNumber;
@@ -1989,6 +2009,7 @@ declare const batchCreateMetricsArgsSchema: z.ZodObject<{
1989
2009
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1990
2010
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1991
2011
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2012
+ metricId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1992
2013
  timestamp: z.ZodDate;
1993
2014
  name: z.ZodString;
1994
2015
  value: z.ZodNumber;
@@ -2170,6 +2191,7 @@ declare const listMetricsResponseSchema: z.ZodObject<{
2170
2191
  parentEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2171
2192
  rootEntityVersionId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2172
2193
  experimentId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2194
+ metricId: z.ZodOptional<z.ZodNullable<z.ZodString>>;
2173
2195
  timestamp: z.ZodDate;
2174
2196
  name: z.ZodString;
2175
2197
  value: z.ZodNumber;
@@ -1,6 +1,6 @@
1
- import { listMCPClientVersionsResponseSchema, listMCPClientVersionsQuerySchema, mcpClientVersionPathParams, createMCPClientVersionResponseSchema, createMCPClientVersionBodySchema, getMCPClientVersionResponseSchema, mcpClientVersionIdPathParams, activateMCPClientVersionResponseSchema, restoreMCPClientVersionResponseSchema, deleteMCPClientVersionResponseSchema, compareMCPClientVersionsResponseSchema, compareMCPClientVersionsQuerySchema } from './chunk-ECEYFPVI.js';
2
1
  import { extractConfigFromVersion, MCP_CLIENT_SNAPSHOT_CONFIG_FIELDS, calculateChangedFields, createVersionWithRetry, enforceRetentionLimit, computeVersionDiffs } from './chunk-33QPJPK4.js';
3
- import { createRoute } from './chunk-6MDHPZOJ.js';
2
+ import { listMCPClientVersionsResponseSchema, listMCPClientVersionsQuerySchema, mcpClientVersionPathParams, createMCPClientVersionResponseSchema, createMCPClientVersionBodySchema, getMCPClientVersionResponseSchema, mcpClientVersionIdPathParams, activateMCPClientVersionResponseSchema, restoreMCPClientVersionResponseSchema, deleteMCPClientVersionResponseSchema, compareMCPClientVersionsResponseSchema, compareMCPClientVersionsQuerySchema } from './chunk-EFJIK2PW.js';
3
+ import { createRoute } from './chunk-KEFOJ6EP.js';
4
4
  import { handleError } from './chunk-P23KBWKB.js';
5
5
  import { HTTPException } from './chunk-6QWQZI4Q.js';
6
6
 
@@ -380,5 +380,5 @@ var COMPARE_MCP_CLIENT_VERSIONS_ROUTE = createRoute({
380
380
  });
381
381
 
382
382
  export { ACTIVATE_MCP_CLIENT_VERSION_ROUTE, COMPARE_MCP_CLIENT_VERSIONS_ROUTE, CREATE_MCP_CLIENT_VERSION_ROUTE, DELETE_MCP_CLIENT_VERSION_ROUTE, GET_MCP_CLIENT_VERSION_ROUTE, LIST_MCP_CLIENT_VERSIONS_ROUTE, RESTORE_MCP_CLIENT_VERSION_ROUTE };
383
- //# sourceMappingURL=chunk-GOXZQ2BL.js.map
384
- //# sourceMappingURL=chunk-GOXZQ2BL.js.map
383
+ //# sourceMappingURL=chunk-24SW3KB3.js.map
384
+ //# sourceMappingURL=chunk-24SW3KB3.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/mcp-client-versions.ts"],"names":[],"mappings":"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","file":"chunk-GOXZQ2BL.js","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":[],"mappings":"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","file":"chunk-24SW3KB3.js","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"]}