@mastra/server 1.31.1-alpha.0 → 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 (323) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/_types/@internal_core/dist/index.d.ts +82 -1
  3. package/dist/{chunk-7VXUWPHS.cjs → chunk-2REMDR2Q.cjs} +12 -12
  4. package/dist/{chunk-7VXUWPHS.cjs.map → chunk-2REMDR2Q.cjs.map} +1 -1
  5. package/dist/chunk-33USMBWV.js +250 -0
  6. package/dist/chunk-33USMBWV.js.map +1 -0
  7. package/dist/{chunk-KW2MZGRE.js → chunk-4JWF4VAL.js} +3 -3
  8. package/dist/{chunk-KW2MZGRE.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-FIP7YYSO.js → chunk-64M357LE.js} +6 -6
  16. package/dist/{chunk-FIP7YYSO.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-65MQD7JR.js → chunk-6M7OOHNA.js} +6 -6
  20. package/dist/{chunk-65MQD7JR.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-2HIGXJMR.cjs → chunk-AF6AYXRW.cjs} +103 -103
  26. package/dist/{chunk-2HIGXJMR.cjs.map → chunk-AF6AYXRW.cjs.map} +1 -1
  27. package/dist/{chunk-Y2SA2JZT.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-MROI3O6S.cjs → chunk-ASVWXKET.cjs} +12 -12
  32. package/dist/{chunk-MROI3O6S.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-4GOK3PCO.js → chunk-CBSIIPHQ.js} +6 -6
  36. package/dist/{chunk-4GOK3PCO.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-RPMBPQNO.cjs → chunk-CPZEA2XG.cjs} +10 -3
  40. package/dist/chunk-CPZEA2XG.cjs.map +1 -0
  41. package/dist/{chunk-OES3CANB.js → chunk-CR7RGILH.js} +3 -3
  42. package/dist/{chunk-OES3CANB.js.map → chunk-CR7RGILH.js.map} +1 -1
  43. package/dist/{chunk-ARZ6W3O3.cjs → chunk-CTYPGLJG.cjs} +46 -21
  44. package/dist/chunk-CTYPGLJG.cjs.map +1 -0
  45. package/dist/{chunk-H6NJWTER.cjs → chunk-CZU262RD.cjs} +20 -15
  46. package/dist/chunk-CZU262RD.cjs.map +1 -0
  47. package/dist/{chunk-4IYALPXO.js → chunk-DCMRHRHR.js} +4 -4
  48. package/dist/{chunk-4IYALPXO.js.map → chunk-DCMRHRHR.js.map} +1 -1
  49. package/dist/{chunk-B346SGRP.cjs → chunk-DIBOFJUK.cjs} +11 -11
  50. package/dist/{chunk-B346SGRP.cjs.map → chunk-DIBOFJUK.cjs.map} +1 -1
  51. package/dist/{chunk-DY6OYCMG.js → chunk-DOTOVTE2.js} +4 -4
  52. package/dist/{chunk-DY6OYCMG.js.map → chunk-DOTOVTE2.js.map} +1 -1
  53. package/dist/{chunk-VOAVPKTH.js → chunk-EAJSW5GK.js} +3 -3
  54. package/dist/{chunk-VOAVPKTH.js.map → chunk-EAJSW5GK.js.map} +1 -1
  55. package/dist/{chunk-S7REEERK.cjs → chunk-EWNTXTFB.cjs} +11 -11
  56. package/dist/{chunk-S7REEERK.cjs.map → chunk-EWNTXTFB.cjs.map} +1 -1
  57. package/dist/{chunk-DBPJYWAH.js → chunk-F23SQINQ.js} +30 -8
  58. package/dist/chunk-F23SQINQ.js.map +1 -0
  59. package/dist/{chunk-TKHLXCSZ.cjs → chunk-F5RU45N6.cjs} +7 -7
  60. package/dist/{chunk-TKHLXCSZ.cjs.map → chunk-F5RU45N6.cjs.map} +1 -1
  61. package/dist/{chunk-TNNU7IZK.cjs → chunk-FFDMYX2V.cjs} +25 -25
  62. package/dist/{chunk-TNNU7IZK.cjs.map → chunk-FFDMYX2V.cjs.map} +1 -1
  63. package/dist/{chunk-ANP3ESTF.js → chunk-FICILXAQ.js} +3 -3
  64. package/dist/{chunk-ANP3ESTF.js.map → chunk-FICILXAQ.js.map} +1 -1
  65. package/dist/{chunk-2QNJHTKM.cjs → chunk-GME2ZNSG.cjs} +11 -11
  66. package/dist/{chunk-2QNJHTKM.cjs.map → chunk-GME2ZNSG.cjs.map} +1 -1
  67. package/dist/{chunk-6SBH6SYP.js → chunk-GOFGQSF7.js} +20 -7
  68. package/dist/chunk-GOFGQSF7.js.map +1 -0
  69. package/dist/{chunk-PQETTP2F.js → chunk-GQOWV33T.js} +3 -3
  70. package/dist/{chunk-PQETTP2F.js.map → chunk-GQOWV33T.js.map} +1 -1
  71. package/dist/{chunk-OV64VJ5L.js → chunk-HBWNPGIL.js} +5 -5
  72. package/dist/{chunk-OV64VJ5L.js.map → chunk-HBWNPGIL.js.map} +1 -1
  73. package/dist/{chunk-H23VTK56.js → chunk-HKXIZNJC.js} +4 -4
  74. package/dist/{chunk-H23VTK56.js.map → chunk-HKXIZNJC.js.map} +1 -1
  75. package/dist/{chunk-EQR4MMSL.cjs → chunk-HN3V6UA4.cjs} +12 -12
  76. package/dist/{chunk-EQR4MMSL.cjs.map → chunk-HN3V6UA4.cjs.map} +1 -1
  77. package/dist/{chunk-OGV23F3H.cjs → chunk-IMPWOZUQ.cjs} +28 -15
  78. package/dist/chunk-IMPWOZUQ.cjs.map +1 -0
  79. package/dist/{chunk-AMC32S2M.js → chunk-IRKGFNRR.js} +34 -9
  80. package/dist/chunk-IRKGFNRR.js.map +1 -0
  81. package/dist/{chunk-EPM6ILRW.js → chunk-IYEGDP3G.js} +22 -3
  82. package/dist/chunk-IYEGDP3G.js.map +1 -0
  83. package/dist/{chunk-JZNOIGOQ.js → chunk-K2KWDOYR.js} +32 -5
  84. package/dist/chunk-K2KWDOYR.js.map +1 -0
  85. package/dist/{chunk-Q2N5GR7X.cjs → chunk-K745HNW2.cjs} +11 -11
  86. package/dist/{chunk-Q2N5GR7X.cjs.map → chunk-K745HNW2.cjs.map} +1 -1
  87. package/dist/{chunk-YJQYJ5WD.cjs → chunk-K7IVZQKI.cjs} +6 -6
  88. package/dist/{chunk-YJQYJ5WD.cjs.map → chunk-K7IVZQKI.cjs.map} +1 -1
  89. package/dist/{chunk-PA2BYLKF.js → chunk-KDUX3YN3.js} +2 -2
  90. package/dist/{chunk-PA2BYLKF.js.map → chunk-KDUX3YN3.js.map} +1 -1
  91. package/dist/{chunk-LVGLLXRY.cjs → chunk-KQU6VKAO.cjs} +7 -7
  92. package/dist/{chunk-LVGLLXRY.cjs.map → chunk-KQU6VKAO.cjs.map} +1 -1
  93. package/dist/{chunk-UZRD3SEA.js → chunk-KTTHNIBJ.js} +89 -26
  94. package/dist/chunk-KTTHNIBJ.js.map +1 -0
  95. package/dist/{chunk-LY6Q36YN.cjs → chunk-LGR7SFQ5.cjs} +38 -25
  96. package/dist/chunk-LGR7SFQ5.cjs.map +1 -0
  97. package/dist/{chunk-7GNVIWZY.js → chunk-LO7CBY5Q.js} +6 -6
  98. package/dist/{chunk-7GNVIWZY.js.map → chunk-LO7CBY5Q.js.map} +1 -1
  99. package/dist/{chunk-UQLJDNXU.cjs → chunk-M7L5EVQE.cjs} +12 -12
  100. package/dist/{chunk-UQLJDNXU.cjs.map → chunk-M7L5EVQE.cjs.map} +1 -1
  101. package/dist/{chunk-BMWSQ6HM.cjs → chunk-NIRJGDC6.cjs} +4 -4
  102. package/dist/{chunk-BMWSQ6HM.cjs.map → chunk-NIRJGDC6.cjs.map} +1 -1
  103. package/dist/{chunk-VZNOKYP5.js → chunk-NKD5XK43.js} +5 -5
  104. package/dist/{chunk-VZNOKYP5.js.map → chunk-NKD5XK43.js.map} +1 -1
  105. package/dist/{chunk-LTLTS3RN.js → chunk-NRKGN3C5.js} +4 -4
  106. package/dist/{chunk-LTLTS3RN.js.map → chunk-NRKGN3C5.js.map} +1 -1
  107. package/dist/{chunk-EETF75CE.cjs → chunk-OBRYBTX6.cjs} +12 -12
  108. package/dist/{chunk-EETF75CE.cjs.map → chunk-OBRYBTX6.cjs.map} +1 -1
  109. package/dist/{chunk-7E2JRYIE.js → chunk-OCBL7S62.js} +6 -6
  110. package/dist/{chunk-7E2JRYIE.js.map → chunk-OCBL7S62.js.map} +1 -1
  111. package/dist/chunk-ODCWNXTX.cjs +256 -0
  112. package/dist/chunk-ODCWNXTX.cjs.map +1 -0
  113. package/dist/{chunk-JQUNK754.js → chunk-OJ7SK6PH.js} +374 -53
  114. package/dist/chunk-OJ7SK6PH.js.map +1 -0
  115. package/dist/{chunk-4J4K36CU.js → chunk-OPBMOOBR.js} +5 -5
  116. package/dist/{chunk-4J4K36CU.js.map → chunk-OPBMOOBR.js.map} +1 -1
  117. package/dist/{chunk-2MWLNHBG.cjs → chunk-OQHTG2JK.cjs} +11 -11
  118. package/dist/{chunk-2MWLNHBG.cjs.map → chunk-OQHTG2JK.cjs.map} +1 -1
  119. package/dist/{chunk-4BSJHDYP.js → chunk-OUS6FNA7.js} +11 -6
  120. package/dist/chunk-OUS6FNA7.js.map +1 -0
  121. package/dist/{chunk-OGEXISZT.cjs → chunk-OZC7GEO5.cjs} +11 -11
  122. package/dist/{chunk-OGEXISZT.cjs.map → chunk-OZC7GEO5.cjs.map} +1 -1
  123. package/dist/{chunk-WFVK6ZXR.cjs → chunk-Q2T2Q4S5.cjs} +6 -6
  124. package/dist/{chunk-WFVK6ZXR.cjs.map → chunk-Q2T2Q4S5.cjs.map} +1 -1
  125. package/dist/{chunk-CKZMJIUO.cjs → chunk-R3DQGOTC.cjs} +6 -6
  126. package/dist/{chunk-CKZMJIUO.cjs.map → chunk-R3DQGOTC.cjs.map} +1 -1
  127. package/dist/{chunk-IQA7HL2V.js → chunk-R7X4YOSH.js} +51 -10
  128. package/dist/chunk-R7X4YOSH.js.map +1 -0
  129. package/dist/{chunk-NRFMMYTG.js → chunk-RF5ZDERV.js} +4 -4
  130. package/dist/{chunk-NRFMMYTG.js.map → chunk-RF5ZDERV.js.map} +1 -1
  131. package/dist/{chunk-KI7TGMMV.cjs → chunk-RL34ZMLF.cjs} +159 -96
  132. package/dist/chunk-RL34ZMLF.cjs.map +1 -0
  133. package/dist/{chunk-2HVAN7FF.js → chunk-RP7OLAVZ.js} +10 -3
  134. package/dist/chunk-RP7OLAVZ.js.map +1 -0
  135. package/dist/{chunk-K6VEDPBD.js → chunk-RPEPKUZQ.js} +12 -11
  136. package/dist/chunk-RPEPKUZQ.js.map +1 -0
  137. package/dist/{chunk-TU7U5XUE.cjs → chunk-SUT6SU4I.cjs} +8 -2
  138. package/dist/chunk-SUT6SU4I.cjs.map +1 -0
  139. package/dist/{chunk-DG5RFCGJ.cjs → chunk-T6MMZWHW.cjs} +427 -106
  140. package/dist/chunk-T6MMZWHW.cjs.map +1 -0
  141. package/dist/{chunk-RTD3NZ4G.js → chunk-TLOT3CIB.js} +6 -6
  142. package/dist/{chunk-RTD3NZ4G.js.map → chunk-TLOT3CIB.js.map} +1 -1
  143. package/dist/{chunk-3NNQG5XP.js → chunk-VG6A54JE.js} +3 -3
  144. package/dist/{chunk-3NNQG5XP.js.map → chunk-VG6A54JE.js.map} +1 -1
  145. package/dist/{chunk-QL62CV5V.js → chunk-VRPAOMXW.js} +25 -12
  146. package/dist/chunk-VRPAOMXW.js.map +1 -0
  147. package/dist/{chunk-EFP5PJBY.cjs → chunk-WMFH3SH2.cjs} +136 -94
  148. package/dist/chunk-WMFH3SH2.cjs.map +1 -0
  149. package/dist/{chunk-S4EHZQFI.js → chunk-WYSQECWW.js} +10 -10
  150. package/dist/{chunk-S4EHZQFI.js.map → chunk-WYSQECWW.js.map} +1 -1
  151. package/dist/{chunk-ERKUFMCT.js → chunk-X2LYM3QK.js} +3 -3
  152. package/dist/{chunk-ERKUFMCT.js.map → chunk-X2LYM3QK.js.map} +1 -1
  153. package/dist/{chunk-OGZ6ROYD.js → chunk-X3RINDH6.js} +6 -5
  154. package/dist/chunk-X3RINDH6.js.map +1 -0
  155. package/dist/{chunk-NGYGE7QW.cjs → chunk-X47OINMY.cjs} +17 -17
  156. package/dist/{chunk-NGYGE7QW.cjs.map → chunk-X47OINMY.cjs.map} +1 -1
  157. package/dist/{chunk-245BXYGJ.cjs → chunk-XCXPPGJ3.cjs} +13 -13
  158. package/dist/{chunk-245BXYGJ.cjs.map → chunk-XCXPPGJ3.cjs.map} +1 -1
  159. package/dist/{chunk-2CFH32YO.cjs → chunk-XEERRXWL.cjs} +32 -4
  160. package/dist/chunk-XEERRXWL.cjs.map +1 -0
  161. package/dist/{chunk-NUGBBASK.js → chunk-XOHBH6NQ.js} +4 -4
  162. package/dist/{chunk-NUGBBASK.js.map → chunk-XOHBH6NQ.js.map} +1 -1
  163. package/dist/{chunk-OLPARCPM.cjs → chunk-XUFQVLBC.cjs} +5 -5
  164. package/dist/{chunk-OLPARCPM.cjs.map → chunk-XUFQVLBC.cjs.map} +1 -1
  165. package/dist/{chunk-5XQIAEWJ.cjs → chunk-YMBKVVDF.cjs} +22 -21
  166. package/dist/chunk-YMBKVVDF.cjs.map +1 -0
  167. package/dist/{chunk-DZZBC6UV.cjs → chunk-ZCCXXT7V.cjs} +12 -12
  168. package/dist/{chunk-DZZBC6UV.cjs.map → chunk-ZCCXXT7V.cjs.map} +1 -1
  169. package/dist/{chunk-EBKNX5RM.cjs → chunk-ZHEQYOTL.cjs} +53 -52
  170. package/dist/chunk-ZHEQYOTL.cjs.map +1 -0
  171. package/dist/docs/SKILL.md +1 -1
  172. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  173. package/dist/{observational-memory-ZS2HJPUO-472SI4TK.cjs → observational-memory-UMDC4VC2-3I52URYY.cjs} +26 -26
  174. package/dist/{observational-memory-ZS2HJPUO-472SI4TK.cjs.map → observational-memory-UMDC4VC2-3I52URYY.cjs.map} +1 -1
  175. package/dist/{observational-memory-ZS2HJPUO-2ZBP2HCP.js → observational-memory-UMDC4VC2-X5QMTUND.js} +3 -3
  176. package/dist/{observational-memory-ZS2HJPUO-2ZBP2HCP.js.map → observational-memory-UMDC4VC2-X5QMTUND.js.map} +1 -1
  177. package/dist/server/auth/helpers.d.ts +9 -1
  178. package/dist/server/auth/helpers.d.ts.map +1 -1
  179. package/dist/server/auth/index.cjs +18 -14
  180. package/dist/server/auth/index.js +1 -1
  181. package/dist/server/handlers/a2a.cjs +10 -10
  182. package/dist/server/handlers/a2a.js +1 -1
  183. package/dist/server/handlers/agent-builder.cjs +16 -16
  184. package/dist/server/handlers/agent-builder.js +1 -1
  185. package/dist/server/handlers/agent-versions.cjs +8 -8
  186. package/dist/server/handlers/agent-versions.js +1 -1
  187. package/dist/server/handlers/agents.cjs +38 -38
  188. package/dist/server/handlers/agents.d.ts.map +1 -1
  189. package/dist/server/handlers/agents.js +1 -1
  190. package/dist/server/handlers/auth.cjs +11 -11
  191. package/dist/server/handlers/auth.d.ts.map +1 -1
  192. package/dist/server/handlers/auth.js +1 -1
  193. package/dist/server/handlers/background-tasks.cjs +4 -4
  194. package/dist/server/handlers/background-tasks.js +1 -1
  195. package/dist/server/handlers/channels.cjs +5 -5
  196. package/dist/server/handlers/channels.js +1 -1
  197. package/dist/server/handlers/conversations.cjs +5 -5
  198. package/dist/server/handlers/conversations.d.ts.map +1 -1
  199. package/dist/server/handlers/conversations.js +1 -1
  200. package/dist/server/handlers/datasets.cjs +26 -26
  201. package/dist/server/handlers/datasets.js +1 -1
  202. package/dist/server/handlers/logs.cjs +4 -4
  203. package/dist/server/handlers/logs.js +1 -1
  204. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  205. package/dist/server/handlers/mcp-client-versions.js +1 -1
  206. package/dist/server/handlers/mcp.cjs +9 -9
  207. package/dist/server/handlers/mcp.d.ts.map +1 -1
  208. package/dist/server/handlers/mcp.js +1 -1
  209. package/dist/server/handlers/memory.cjs +27 -27
  210. package/dist/server/handlers/memory.d.ts.map +1 -1
  211. package/dist/server/handlers/memory.js +1 -1
  212. package/dist/server/handlers/observability-new-endpoints.cjs +31 -27
  213. package/dist/server/handlers/observability-new-endpoints.d.ts +315 -19
  214. package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
  215. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  216. package/dist/server/handlers/observability-shared.cjs +5 -5
  217. package/dist/server/handlers/observability-shared.d.ts +6 -0
  218. package/dist/server/handlers/observability-shared.d.ts.map +1 -1
  219. package/dist/server/handlers/observability-shared.js +1 -1
  220. package/dist/server/handlers/observability.cjs +39 -35
  221. package/dist/server/handlers/observability.js +2 -2
  222. package/dist/server/handlers/processor-providers.cjs +3 -3
  223. package/dist/server/handlers/processor-providers.js +1 -1
  224. package/dist/server/handlers/processors.cjs +4 -4
  225. package/dist/server/handlers/processors.js +1 -1
  226. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  227. package/dist/server/handlers/prompt-block-versions.js +1 -1
  228. package/dist/server/handlers/responses.cjs +4 -4
  229. package/dist/server/handlers/responses.d.ts.map +1 -1
  230. package/dist/server/handlers/responses.js +1 -1
  231. package/dist/server/handlers/responses.storage.cjs +8 -8
  232. package/dist/server/handlers/responses.storage.js +1 -1
  233. package/dist/server/handlers/schedules.cjs +28 -0
  234. package/dist/server/handlers/schedules.cjs.map +1 -0
  235. package/dist/server/handlers/schedules.d.ts +345 -0
  236. package/dist/server/handlers/schedules.d.ts.map +1 -0
  237. package/dist/server/handlers/schedules.js +3 -0
  238. package/dist/server/handlers/schedules.js.map +1 -0
  239. package/dist/server/handlers/scorer-versions.cjs +8 -8
  240. package/dist/server/handlers/scorer-versions.js +1 -1
  241. package/dist/server/handlers/scores.cjs +7 -7
  242. package/dist/server/handlers/scores.js +1 -1
  243. package/dist/server/handlers/stored-agents.cjs +7 -7
  244. package/dist/server/handlers/stored-agents.js +1 -1
  245. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  246. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  247. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  248. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  249. package/dist/server/handlers/stored-scorers.cjs +6 -6
  250. package/dist/server/handlers/stored-scorers.js +1 -1
  251. package/dist/server/handlers/stored-skills.cjs +7 -7
  252. package/dist/server/handlers/stored-skills.js +1 -1
  253. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  254. package/dist/server/handlers/stored-workspaces.js +1 -1
  255. package/dist/server/handlers/system.cjs +2 -2
  256. package/dist/server/handlers/system.js +1 -1
  257. package/dist/server/handlers/tool-providers.cjs +5 -5
  258. package/dist/server/handlers/tool-providers.js +1 -1
  259. package/dist/server/handlers/tools.cjs +6 -6
  260. package/dist/server/handlers/tools.d.ts.map +1 -1
  261. package/dist/server/handlers/tools.js +1 -1
  262. package/dist/server/handlers/utils.cjs +13 -9
  263. package/dist/server/handlers/utils.d.ts +15 -0
  264. package/dist/server/handlers/utils.d.ts.map +1 -1
  265. package/dist/server/handlers/utils.js +1 -1
  266. package/dist/server/handlers/vector.cjs +16 -16
  267. package/dist/server/handlers/vector.js +1 -1
  268. package/dist/server/handlers/voice.cjs +8 -8
  269. package/dist/server/handlers/voice.js +1 -1
  270. package/dist/server/handlers/workflows.cjs +24 -24
  271. package/dist/server/handlers/workflows.d.ts.map +1 -1
  272. package/dist/server/handlers/workflows.js +1 -1
  273. package/dist/server/handlers/workspace.cjs +26 -26
  274. package/dist/server/handlers/workspace.js +1 -1
  275. package/dist/server/handlers.cjs +40 -40
  276. package/dist/server/handlers.js +15 -15
  277. package/dist/server/schemas/index.cjs +232 -232
  278. package/dist/server/schemas/index.js +8 -8
  279. package/dist/server/schemas/schedules.d.ts +204 -0
  280. package/dist/server/schemas/schedules.d.ts.map +1 -0
  281. package/dist/server/server-adapter/index.cjs +391 -319
  282. package/dist/server/server-adapter/index.cjs.map +1 -1
  283. package/dist/server/server-adapter/index.d.ts +9 -0
  284. package/dist/server/server-adapter/index.d.ts.map +1 -1
  285. package/dist/server/server-adapter/index.js +112 -41
  286. package/dist/server/server-adapter/index.js.map +1 -1
  287. package/dist/server/server-adapter/routes/index.d.ts +19 -3
  288. package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
  289. package/dist/server/server-adapter/routes/observability.d.ts +156 -9
  290. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
  291. package/dist/server/server-adapter/routes/route-builder.d.ts +15 -1
  292. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -1
  293. package/dist/server/server-adapter/routes/schedules.d.ts +3 -0
  294. package/dist/server/server-adapter/routes/schedules.d.ts.map +1 -0
  295. package/package.json +6 -4
  296. package/dist/chunk-2CFH32YO.cjs.map +0 -1
  297. package/dist/chunk-2HVAN7FF.js.map +0 -1
  298. package/dist/chunk-4BSJHDYP.js.map +0 -1
  299. package/dist/chunk-53YFG5AY.js.map +0 -1
  300. package/dist/chunk-5XQIAEWJ.cjs.map +0 -1
  301. package/dist/chunk-6SBH6SYP.js.map +0 -1
  302. package/dist/chunk-AMC32S2M.js.map +0 -1
  303. package/dist/chunk-ARZ6W3O3.cjs.map +0 -1
  304. package/dist/chunk-DBPJYWAH.js.map +0 -1
  305. package/dist/chunk-DG5RFCGJ.cjs.map +0 -1
  306. package/dist/chunk-EBKNX5RM.cjs.map +0 -1
  307. package/dist/chunk-EFP5PJBY.cjs.map +0 -1
  308. package/dist/chunk-EPM6ILRW.js.map +0 -1
  309. package/dist/chunk-H6NJWTER.cjs.map +0 -1
  310. package/dist/chunk-IQA7HL2V.js.map +0 -1
  311. package/dist/chunk-JQUNK754.js.map +0 -1
  312. package/dist/chunk-JZNOIGOQ.js.map +0 -1
  313. package/dist/chunk-K6VEDPBD.js.map +0 -1
  314. package/dist/chunk-KI7TGMMV.cjs.map +0 -1
  315. package/dist/chunk-LY6Q36YN.cjs.map +0 -1
  316. package/dist/chunk-OGV23F3H.cjs.map +0 -1
  317. package/dist/chunk-OGZ6ROYD.js.map +0 -1
  318. package/dist/chunk-QL62CV5V.js.map +0 -1
  319. package/dist/chunk-RPMBPQNO.cjs.map +0 -1
  320. package/dist/chunk-TU7U5XUE.cjs.map +0 -1
  321. package/dist/chunk-UZRD3SEA.js.map +0 -1
  322. package/dist/chunk-XG2VRXG5.cjs.map +0 -1
  323. package/dist/chunk-Y2SA2JZT.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/stored-agents.ts"],"names":["createRoute","listStoredAgentsQuerySchema","listStoredAgentsResponseSchema","HTTPException","handleError","storedAgentIdPathParams","statusQuerySchema","getStoredAgentResponseSchema","createStoredAgentBodySchema","createStoredAgentResponseSchema","toSlug","updateStoredAgentBodySchema","updateStoredAgentResponseSchema","handleAutoVersioning","deleteStoredAgentResponseSchema","previewInstructionsBodySchema","previewInstructionsResponseSchema"],"mappings":"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","file":"chunk-245BXYGJ.cjs","sourcesContent":["import type { StorageCreateAgentInput, StorageUpdateAgentInput } from '@mastra/core/storage';\nimport type { z } from 'zod/v4';\n\nimport { HTTPException } from '../http-exception';\nimport {\n storedAgentIdPathParams,\n statusQuerySchema,\n listStoredAgentsQuerySchema,\n createStoredAgentBodySchema,\n updateStoredAgentBodySchema,\n listStoredAgentsResponseSchema,\n getStoredAgentResponseSchema,\n createStoredAgentResponseSchema,\n updateStoredAgentResponseSchema,\n deleteStoredAgentResponseSchema,\n previewInstructionsBodySchema,\n previewInstructionsResponseSchema,\n} from '../schemas/stored-agents';\nimport type { ServerRoute, RouteSchemas, InferParams } from '../server-adapter/routes';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { toSlug } from '../utils';\n\nimport { handleError } from './error';\nimport { handleAutoVersioning } from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst AGENT_SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'instructions',\n 'model',\n 'tools',\n 'defaultOptions',\n 'workflows',\n 'agents',\n 'integrationTools',\n 'inputProcessors',\n 'outputProcessors',\n 'memory',\n 'scorers',\n 'requestContextSchema',\n 'mcpClients',\n 'skills',\n 'workspace',\n] as const;\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/agents - List all stored agents\n */\nexport const LIST_STORED_AGENTS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents',\n responseType: 'json',\n queryParamSchema: listStoredAgentsQuerySchema,\n responseSchema: listStoredAgentsResponseSchema,\n summary: 'List stored agents',\n description: 'Returns a paginated list of all agents stored in the database',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, page, perPage, orderBy, status, authorId, metadata }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n const result = await agentsStore.listResolved({\n page,\n perPage,\n orderBy,\n status,\n authorId,\n metadata,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing stored agents');\n }\n },\n});\n\n/**\n * GET /stored/agents/:storedAgentId - Get a stored agent by ID\n */\nexport const GET_STORED_AGENT_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents/:storedAgentId',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n queryParamSchema: statusQuerySchema,\n responseSchema: getStoredAgentResponseSchema,\n summary: 'Get stored agent by ID',\n description:\n 'Returns a specific agent from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, storedAgentId, status }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n const agent = await agentsStore.getByIdResolved(storedAgentId, { status });\n\n if (!agent) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n\n return agent;\n } catch (error) {\n return handleError(error, 'Error getting stored agent');\n }\n },\n});\n\n/**\n * POST /stored/agents - Create a new stored agent\n */\nexport const CREATE_STORED_AGENT_ROUTE: ServerRoute<\n InferParams<undefined, undefined, typeof createStoredAgentBodySchema>,\n z.infer<typeof createStoredAgentResponseSchema>,\n 'json',\n RouteSchemas<undefined, undefined, typeof createStoredAgentBodySchema, typeof createStoredAgentResponseSchema>,\n 'POST',\n '/stored/agents'\n> = createRoute({\n method: 'POST',\n path: '/stored/agents',\n responseType: 'json',\n bodySchema: createStoredAgentBodySchema,\n responseSchema: createStoredAgentResponseSchema,\n summary: 'Create stored agent',\n description: 'Creates a new agent in storage with the provided configuration',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({\n mastra,\n id: providedId,\n authorId,\n metadata,\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n requestContextSchema,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Derive ID from name if not explicitly provided\n const id = providedId || toSlug(name);\n\n if (!id) {\n throw new HTTPException(400, {\n message: 'Could not derive agent ID from name. Please provide an explicit id.',\n });\n }\n\n // Check if agent with this ID already exists\n const existing = await agentsStore.getById(id);\n if (existing) {\n throw new HTTPException(409, { message: `Agent with id ${id} already exists` });\n }\n\n // Create agent with flat StorageCreateAgentInput\n // Cast needed because Zod's passthrough() output types don't exactly match the handwritten TS interfaces\n await agentsStore.create({\n agent: {\n id,\n authorId,\n metadata,\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n requestContextSchema,\n } as StorageCreateAgentInput,\n });\n\n // Return the resolved agent (thin record + version config)\n // Use draft status since newly created entities start as drafts\n const resolved = await agentsStore.getByIdResolved(id, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve created agent' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error creating stored agent');\n }\n },\n});\n\n/**\n * PATCH /stored/agents/:storedAgentId - Update a stored agent\n */\nexport const UPDATE_STORED_AGENT_ROUTE: ServerRoute<\n InferParams<typeof storedAgentIdPathParams, undefined, typeof updateStoredAgentBodySchema>,\n z.infer<typeof updateStoredAgentResponseSchema>,\n 'json',\n RouteSchemas<\n typeof storedAgentIdPathParams,\n undefined,\n typeof updateStoredAgentBodySchema,\n typeof updateStoredAgentResponseSchema\n >,\n 'PATCH',\n '/stored/agents/:storedAgentId'\n> = createRoute({\n method: 'PATCH',\n path: '/stored/agents/:storedAgentId',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n bodySchema: updateStoredAgentBodySchema,\n responseSchema: updateStoredAgentResponseSchema,\n summary: 'Update stored agent',\n description: 'Updates an existing agent in storage with the provided fields',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({\n mastra,\n storedAgentId,\n // Metadata-level fields\n authorId,\n metadata,\n // Config fields (snapshot-level)\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n requestContextSchema,\n // Version metadata\n changeMessage,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Check if agent exists\n const existing = await agentsStore.getById(storedAgentId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n\n // Update the agent with both metadata-level and config-level fields\n // The storage layer handles separating these into agent-record updates vs new-version creation\n // Cast needed because Zod's passthrough() output types don't exactly match the handwritten TS interfaces\n const updatedAgent = await agentsStore.update({\n id: storedAgentId,\n authorId,\n metadata,\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n requestContextSchema,\n } as StorageUpdateAgentInput);\n\n // Build the snapshot config for auto-versioning comparison\n const configFields = {\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n requestContextSchema,\n };\n\n // Filter out undefined values to get only the config fields that were provided\n const providedConfigFields = Object.fromEntries(Object.entries(configFields).filter(([_, v]) => v !== undefined));\n\n // Handle auto-versioning with retry logic for race conditions\n // This creates a new version if there are meaningful config changes.\n // It does NOT update activeVersionId — the version stays as a draft until explicitly published.\n const autoVersionResult = await handleAutoVersioning(\n agentsStore as unknown as VersionedStoreInterface,\n storedAgentId,\n 'agentId',\n AGENT_SNAPSHOT_CONFIG_FIELDS,\n existing,\n updatedAgent,\n providedConfigFields,\n changeMessage ? { changeMessage } : undefined,\n );\n\n if (!autoVersionResult) {\n throw new Error('handleAutoVersioning returned undefined');\n }\n\n // Clear the cached agent instance so the next request gets the updated config\n const editor = mastra.getEditor();\n if (editor) {\n editor.agent.clearCache(storedAgentId);\n }\n\n // Return the resolved agent with the latest (draft) version so the UI sees its edits\n const resolved = await agentsStore.getByIdResolved(storedAgentId, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve updated agent' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error updating stored agent');\n }\n },\n});\n\n/**\n * DELETE /stored/agents/:storedAgentId - Delete a stored agent\n */\nexport const DELETE_STORED_AGENT_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/agents/:storedAgentId',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n responseSchema: deleteStoredAgentResponseSchema,\n summary: 'Delete stored agent',\n description: 'Deletes an agent from storage by its unique identifier',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, storedAgentId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Check if agent exists\n const existing = await agentsStore.getById(storedAgentId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n\n await agentsStore.delete(storedAgentId);\n\n // Clear the cached agent instance\n mastra.getEditor()?.agent.clearCache(storedAgentId);\n\n return { success: true, message: `Agent ${storedAgentId} deleted successfully` };\n } catch (error) {\n return handleError(error, 'Error deleting stored agent');\n }\n },\n});\n\n/**\n * POST /stored/agents/preview-instructions - Preview resolved instructions\n */\nexport const PREVIEW_INSTRUCTIONS_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents/preview-instructions',\n responseType: 'json',\n bodySchema: previewInstructionsBodySchema,\n responseSchema: previewInstructionsResponseSchema,\n summary: 'Preview resolved instructions',\n description:\n 'Resolves an array of instruction blocks against a request context, evaluating rules, fetching prompt block references, and rendering template variables. Returns the final concatenated instruction string.',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, blocks, context }) => {\n try {\n const editor = mastra.getEditor();\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const result = await editor.prompt.preview(blocks, context ?? {});\n\n return { result };\n } catch (error) {\n return handleError(error, 'Error previewing instructions');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/stored-agents.ts"],"names":["createRoute","listStoredAgentsQuerySchema","listStoredAgentsResponseSchema","HTTPException","handleError","storedAgentIdPathParams","statusQuerySchema","getStoredAgentResponseSchema","createStoredAgentBodySchema","createStoredAgentResponseSchema","toSlug","updateStoredAgentBodySchema","updateStoredAgentResponseSchema","handleAutoVersioning","deleteStoredAgentResponseSchema","previewInstructionsBodySchema","previewInstructionsResponseSchema"],"mappings":"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","file":"chunk-XCXPPGJ3.cjs","sourcesContent":["import type { StorageCreateAgentInput, StorageUpdateAgentInput } from '@mastra/core/storage';\nimport type { z } from 'zod/v4';\n\nimport { HTTPException } from '../http-exception';\nimport {\n storedAgentIdPathParams,\n statusQuerySchema,\n listStoredAgentsQuerySchema,\n createStoredAgentBodySchema,\n updateStoredAgentBodySchema,\n listStoredAgentsResponseSchema,\n getStoredAgentResponseSchema,\n createStoredAgentResponseSchema,\n updateStoredAgentResponseSchema,\n deleteStoredAgentResponseSchema,\n previewInstructionsBodySchema,\n previewInstructionsResponseSchema,\n} from '../schemas/stored-agents';\nimport type { ServerRoute, RouteSchemas, InferParams } from '../server-adapter/routes';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { toSlug } from '../utils';\n\nimport { handleError } from './error';\nimport { handleAutoVersioning } from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst AGENT_SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'instructions',\n 'model',\n 'tools',\n 'defaultOptions',\n 'workflows',\n 'agents',\n 'integrationTools',\n 'inputProcessors',\n 'outputProcessors',\n 'memory',\n 'scorers',\n 'requestContextSchema',\n 'mcpClients',\n 'skills',\n 'workspace',\n] as const;\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /stored/agents - List all stored agents\n */\nexport const LIST_STORED_AGENTS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents',\n responseType: 'json',\n queryParamSchema: listStoredAgentsQuerySchema,\n responseSchema: listStoredAgentsResponseSchema,\n summary: 'List stored agents',\n description: 'Returns a paginated list of all agents stored in the database',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, page, perPage, orderBy, status, authorId, metadata }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n const result = await agentsStore.listResolved({\n page,\n perPage,\n orderBy,\n status,\n authorId,\n metadata,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing stored agents');\n }\n },\n});\n\n/**\n * GET /stored/agents/:storedAgentId - Get a stored agent by ID\n */\nexport const GET_STORED_AGENT_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/agents/:storedAgentId',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n queryParamSchema: statusQuerySchema,\n responseSchema: getStoredAgentResponseSchema,\n summary: 'Get stored agent by ID',\n description:\n 'Returns a specific agent from storage by its unique identifier. Use ?status=draft to resolve with the latest (draft) version, or ?status=published (default) for the active published version.',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, storedAgentId, status }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n const agent = await agentsStore.getByIdResolved(storedAgentId, { status });\n\n if (!agent) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n\n return agent;\n } catch (error) {\n return handleError(error, 'Error getting stored agent');\n }\n },\n});\n\n/**\n * POST /stored/agents - Create a new stored agent\n */\nexport const CREATE_STORED_AGENT_ROUTE: ServerRoute<\n InferParams<undefined, undefined, typeof createStoredAgentBodySchema>,\n z.infer<typeof createStoredAgentResponseSchema>,\n 'json',\n RouteSchemas<undefined, undefined, typeof createStoredAgentBodySchema, typeof createStoredAgentResponseSchema>,\n 'POST',\n '/stored/agents'\n> = createRoute({\n method: 'POST',\n path: '/stored/agents',\n responseType: 'json',\n bodySchema: createStoredAgentBodySchema,\n responseSchema: createStoredAgentResponseSchema,\n summary: 'Create stored agent',\n description: 'Creates a new agent in storage with the provided configuration',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({\n mastra,\n id: providedId,\n authorId,\n metadata,\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n requestContextSchema,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Derive ID from name if not explicitly provided\n const id = providedId || toSlug(name);\n\n if (!id) {\n throw new HTTPException(400, {\n message: 'Could not derive agent ID from name. Please provide an explicit id.',\n });\n }\n\n // Check if agent with this ID already exists\n const existing = await agentsStore.getById(id);\n if (existing) {\n throw new HTTPException(409, { message: `Agent with id ${id} already exists` });\n }\n\n // Create agent with flat StorageCreateAgentInput\n // Cast needed because Zod's passthrough() output types don't exactly match the handwritten TS interfaces\n await agentsStore.create({\n agent: {\n id,\n authorId,\n metadata,\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n requestContextSchema,\n } as StorageCreateAgentInput,\n });\n\n // Return the resolved agent (thin record + version config)\n // Use draft status since newly created entities start as drafts\n const resolved = await agentsStore.getByIdResolved(id, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve created agent' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error creating stored agent');\n }\n },\n});\n\n/**\n * PATCH /stored/agents/:storedAgentId - Update a stored agent\n */\nexport const UPDATE_STORED_AGENT_ROUTE: ServerRoute<\n InferParams<typeof storedAgentIdPathParams, undefined, typeof updateStoredAgentBodySchema>,\n z.infer<typeof updateStoredAgentResponseSchema>,\n 'json',\n RouteSchemas<\n typeof storedAgentIdPathParams,\n undefined,\n typeof updateStoredAgentBodySchema,\n typeof updateStoredAgentResponseSchema\n >,\n 'PATCH',\n '/stored/agents/:storedAgentId'\n> = createRoute({\n method: 'PATCH',\n path: '/stored/agents/:storedAgentId',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n bodySchema: updateStoredAgentBodySchema,\n responseSchema: updateStoredAgentResponseSchema,\n summary: 'Update stored agent',\n description: 'Updates an existing agent in storage with the provided fields',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({\n mastra,\n storedAgentId,\n // Metadata-level fields\n authorId,\n metadata,\n // Config fields (snapshot-level)\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n requestContextSchema,\n // Version metadata\n changeMessage,\n }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Check if agent exists\n const existing = await agentsStore.getById(storedAgentId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n\n // Update the agent with both metadata-level and config-level fields\n // The storage layer handles separating these into agent-record updates vs new-version creation\n // Cast needed because Zod's passthrough() output types don't exactly match the handwritten TS interfaces\n const updatedAgent = await agentsStore.update({\n id: storedAgentId,\n authorId,\n metadata,\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n requestContextSchema,\n } as StorageUpdateAgentInput);\n\n // Build the snapshot config for auto-versioning comparison\n const configFields = {\n name,\n description,\n instructions,\n model,\n tools,\n defaultOptions,\n workflows,\n agents,\n integrationTools,\n mcpClients,\n inputProcessors,\n outputProcessors,\n memory,\n scorers,\n skills,\n workspace,\n requestContextSchema,\n };\n\n // Filter out undefined values to get only the config fields that were provided\n const providedConfigFields = Object.fromEntries(Object.entries(configFields).filter(([_, v]) => v !== undefined));\n\n // Handle auto-versioning with retry logic for race conditions\n // This creates a new version if there are meaningful config changes.\n // It does NOT update activeVersionId — the version stays as a draft until explicitly published.\n const autoVersionResult = await handleAutoVersioning(\n agentsStore as unknown as VersionedStoreInterface,\n storedAgentId,\n 'agentId',\n AGENT_SNAPSHOT_CONFIG_FIELDS,\n existing,\n updatedAgent,\n providedConfigFields,\n changeMessage ? { changeMessage } : undefined,\n );\n\n if (!autoVersionResult) {\n throw new Error('handleAutoVersioning returned undefined');\n }\n\n // Clear the cached agent instance so the next request gets the updated config\n const editor = mastra.getEditor();\n if (editor) {\n editor.agent.clearCache(storedAgentId);\n }\n\n // Return the resolved agent with the latest (draft) version so the UI sees its edits\n const resolved = await agentsStore.getByIdResolved(storedAgentId, { status: 'draft' });\n if (!resolved) {\n throw new HTTPException(500, { message: 'Failed to resolve updated agent' });\n }\n\n return resolved;\n } catch (error) {\n return handleError(error, 'Error updating stored agent');\n }\n },\n});\n\n/**\n * DELETE /stored/agents/:storedAgentId - Delete a stored agent\n */\nexport const DELETE_STORED_AGENT_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/agents/:storedAgentId',\n responseType: 'json',\n pathParamSchema: storedAgentIdPathParams,\n responseSchema: deleteStoredAgentResponseSchema,\n summary: 'Delete stored agent',\n description: 'Deletes an agent from storage by its unique identifier',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, storedAgentId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const agentsStore = await storage.getStore('agents');\n if (!agentsStore) {\n throw new HTTPException(500, { message: 'Agents storage domain is not available' });\n }\n\n // Check if agent exists\n const existing = await agentsStore.getById(storedAgentId);\n if (!existing) {\n throw new HTTPException(404, { message: `Stored agent with id ${storedAgentId} not found` });\n }\n\n await agentsStore.delete(storedAgentId);\n\n // Clear the cached agent instance\n mastra.getEditor()?.agent.clearCache(storedAgentId);\n\n return { success: true, message: `Agent ${storedAgentId} deleted successfully` };\n } catch (error) {\n return handleError(error, 'Error deleting stored agent');\n }\n },\n});\n\n/**\n * POST /stored/agents/preview-instructions - Preview resolved instructions\n */\nexport const PREVIEW_INSTRUCTIONS_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/agents/preview-instructions',\n responseType: 'json',\n bodySchema: previewInstructionsBodySchema,\n responseSchema: previewInstructionsResponseSchema,\n summary: 'Preview resolved instructions',\n description:\n 'Resolves an array of instruction blocks against a request context, evaluating rules, fetching prompt block references, and rendering template variables. Returns the final concatenated instruction string.',\n tags: ['Stored Agents'],\n requiresAuth: true,\n handler: async ({ mastra, blocks, context }) => {\n try {\n const editor = mastra.getEditor();\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const result = await editor.prompt.preview(blocks, context ?? {});\n\n return { result };\n } catch (error) {\n return handleError(error, 'Error previewing instructions');\n }\n },\n});\n"]}
@@ -1,9 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var chunkEFW6MWXU_cjs = require('./chunk-EFW6MWXU.cjs');
4
3
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
4
+ var chunkEFW6MWXU_cjs = require('./chunk-EFW6MWXU.cjs');
5
+ var ee = require('@mastra/core/auth/ee');
6
+ var memory = require('@mastra/core/memory');
5
7
 
6
- // src/server/handlers/utils.ts
7
8
  function validateBody(body) {
8
9
  const errorResponse = Object.entries(body).reduce((acc, [key, value]) => {
9
10
  if (!value) {
@@ -54,12 +55,39 @@ async function validateThreadOwnership(thread, effectiveResourceId) {
54
55
  throw new chunk64ITUOXI_cjs.HTTPException(403, { message: "Access denied: thread belongs to a different resource" });
55
56
  }
56
57
  }
58
+ async function enforceThreadAccess({
59
+ mastra,
60
+ requestContext,
61
+ threadId,
62
+ thread,
63
+ effectiveResourceId,
64
+ permission = ee.MastraFGAPermissions.MEMORY_READ
65
+ }) {
66
+ await validateThreadOwnership(thread, effectiveResourceId);
67
+ const fgaProvider = mastra?.getServer?.()?.fga;
68
+ if (!fgaProvider) {
69
+ return;
70
+ }
71
+ const user = requestContext?.get("user");
72
+ if (!user || typeof user !== "object") {
73
+ throw new chunk64ITUOXI_cjs.HTTPException(403, { message: "FGA authorization denied: authenticated user is required" });
74
+ }
75
+ await memory.MastraMemory.checkThreadFGA({
76
+ mastra,
77
+ user,
78
+ threadId,
79
+ resourceId: thread?.resourceId ?? effectiveResourceId,
80
+ requestContext,
81
+ permission
82
+ });
83
+ }
57
84
  async function validateRunOwnership(run, effectiveResourceId) {
58
85
  if (run && effectiveResourceId && run.resourceId && run.resourceId !== effectiveResourceId) {
59
86
  throw new chunk64ITUOXI_cjs.HTTPException(403, { message: "Access denied: workflow run belongs to a different resource" });
60
87
  }
61
88
  }
62
89
 
90
+ exports.enforceThreadAccess = enforceThreadAccess;
63
91
  exports.getEffectiveResourceId = getEffectiveResourceId;
64
92
  exports.getEffectiveThreadId = getEffectiveThreadId;
65
93
  exports.parseFilters = parseFilters;
@@ -68,5 +96,5 @@ exports.sanitizeBody = sanitizeBody;
68
96
  exports.validateBody = validateBody;
69
97
  exports.validateRunOwnership = validateRunOwnership;
70
98
  exports.validateThreadOwnership = validateThreadOwnership;
71
- //# sourceMappingURL=chunk-2CFH32YO.cjs.map
72
- //# sourceMappingURL=chunk-2CFH32YO.cjs.map
99
+ //# sourceMappingURL=chunk-XEERRXWL.cjs.map
100
+ //# sourceMappingURL=chunk-XEERRXWL.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/utils.ts"],"names":["HTTPException","MASTRA_RESOURCE_ID_KEY","MASTRA_THREAD_ID_KEY","MastraFGAPermissions","MastraMemory"],"mappings":"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","file":"chunk-XEERRXWL.cjs","sourcesContent":["import { MastraFGAPermissions } from '@mastra/core/auth/ee';\nimport type { MastraFGAPermissionInput } from '@mastra/core/auth/ee';\nimport type { RequestContext } from '@mastra/core/di';\nimport { MastraMemory } from '@mastra/core/memory';\nimport { MASTRA_RESOURCE_ID_KEY, MASTRA_THREAD_ID_KEY } from '../constants';\nimport { HTTPException } from '../http-exception';\n\n// Validation helper\nexport function validateBody(body: Record<string, unknown>) {\n const errorResponse = Object.entries(body).reduce<Record<string, string>>((acc, [key, value]) => {\n if (!value) {\n acc[key] = `Argument \"${key}\" is required`;\n }\n return acc;\n }, {});\n\n if (Object.keys(errorResponse).length > 0) {\n throw new HTTPException(400, { message: Object.values(errorResponse)[0] });\n }\n}\n\n/**\n * sanitizes the body by removing disallowed keys.\n * @param body body to sanitize\n * @param disallowedKeys keys to remove from the body\n */\nexport function sanitizeBody(body: Record<string, unknown>, disallowedKeys: string[]) {\n for (const key of disallowedKeys) {\n if (key in body) {\n delete body[key];\n }\n }\n}\n\nexport function parsePerPage(\n value: string | undefined,\n defaultValue: number = 100,\n max: number = 1000,\n): number | false {\n const normalized = (value || '').trim().toLowerCase();\n // Handle explicit false to bypass pagination\n if (normalized === 'false') {\n return false;\n }\n const parsed = parseInt(value || String(defaultValue), 10);\n if (isNaN(parsed)) return defaultValue;\n return Math.min(max, Math.max(1, parsed));\n}\n\n/**\n * Parses filter query parameters into a key-value object.\n */\nexport function parseFilters(filters: string | string[] | undefined): Record<string, string> | undefined {\n if (!filters) return undefined;\n\n return Object.fromEntries(\n (Array.isArray(filters) ? filters : [filters]).map((attr: string) => {\n const [key, ...valueParts] = attr.split(':');\n const value = valueParts.join(':'); // ✅ Handles colons in values\n return [key, value];\n }),\n );\n}\n\n// ============================================================================\n// Authorization Utilities\n// ============================================================================\n\n/**\n * Gets the effective resourceId, preferring the reserved key from requestContext\n * over client-provided values for security.\n */\nexport function getEffectiveResourceId(\n requestContext: RequestContext | undefined,\n clientResourceId: string | undefined,\n): string | undefined {\n const contextResourceId = requestContext?.get(MASTRA_RESOURCE_ID_KEY) as string | undefined;\n return contextResourceId || clientResourceId;\n}\n\n/**\n * Gets the effective threadId, preferring the reserved key from requestContext\n * over client-provided values for security.\n */\nexport function getEffectiveThreadId(\n requestContext: RequestContext | undefined,\n clientThreadId: string | undefined,\n): string | undefined {\n const contextThreadId = requestContext?.get(MASTRA_THREAD_ID_KEY) as string | undefined;\n return contextThreadId || clientThreadId;\n}\n\n/**\n * Validates that a thread belongs to the specified resourceId.\n * Throws 403 if the thread exists but belongs to a different resource.\n * Threads with no resourceId are accessible to all (shared threads).\n */\nexport async function validateThreadOwnership(\n thread: { resourceId?: string | null } | null | undefined,\n effectiveResourceId: string | undefined,\n): Promise<void> {\n if (thread && effectiveResourceId && thread.resourceId && thread.resourceId !== effectiveResourceId) {\n throw new HTTPException(403, { message: 'Access denied: thread belongs to a different resource' });\n }\n}\n\n/**\n * Validates both coarse resource ownership and fine-grained thread access.\n * FGA enforcement is a no-op when either auth user or FGA provider is absent.\n */\nexport async function enforceThreadAccess({\n mastra,\n requestContext,\n threadId,\n thread,\n effectiveResourceId,\n permission = MastraFGAPermissions.MEMORY_READ,\n}: {\n mastra: any;\n requestContext?: RequestContext;\n threadId: string;\n thread?: { resourceId?: string | null } | null;\n effectiveResourceId?: string;\n permission?: MastraFGAPermissionInput;\n}): Promise<void> {\n await validateThreadOwnership(thread, effectiveResourceId);\n\n const fgaProvider = mastra?.getServer?.()?.fga;\n if (!fgaProvider) {\n return;\n }\n\n const user = requestContext?.get('user');\n if (!user || typeof user !== 'object') {\n throw new HTTPException(403, { message: 'FGA authorization denied: authenticated user is required' });\n }\n\n await MastraMemory.checkThreadFGA({\n mastra,\n user: user as { id: string; [key: string]: unknown },\n threadId,\n resourceId: thread?.resourceId ?? effectiveResourceId,\n requestContext,\n permission,\n });\n}\n\n/**\n * Validates that a workflow run belongs to the specified resourceId.\n * Throws 403 if the run exists but belongs to a different resource.\n */\nexport async function validateRunOwnership(\n run: { resourceId?: string | null } | null | undefined,\n effectiveResourceId: string | undefined,\n): Promise<void> {\n if (run && effectiveResourceId && run.resourceId && run.resourceId !== effectiveResourceId) {\n throw new HTTPException(403, { message: 'Access denied: workflow run belongs to a different resource' });\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
- import { listWorkspacesResponseSchema, workspaceInfoResponseSchema, workspaceIdPathParams, fsReadResponseSchema, fsReadQuerySchema, fsWriteResponseSchema, fsWriteBodySchema, fsListResponseSchema, fsListQuerySchema, fsDeleteResponseSchema, fsDeleteQuerySchema, fsMkdirResponseSchema, fsMkdirBodySchema, fsStatResponseSchema, fsStatQuerySchema, searchResponseSchema, searchQuerySchema, indexResponseSchema, indexBodySchema, listSkillsResponseSchema, getSkillResponseSchema, skillDisambiguationQuerySchema, skillNamePathParams, listReferencesResponseSchema, skillReferenceResponseSchema, skillReferencePathParams, searchSkillsResponseSchema, searchSkillsQuerySchema, skillsShSearchResponseSchema, skillsShSearchQuerySchema, skillsShListResponseSchema, skillsShPopularQuerySchema, skillsShPreviewResponseSchema, skillsShPreviewQuerySchema, skillsShInstallResponseSchema, skillsShInstallBodySchema, skillsShRemoveResponseSchema, skillsShRemoveBodySchema, skillsShUpdateResponseSchema, skillsShUpdateBodySchema } from './chunk-ZHULRNJG.js';
2
- import { createRoute } from './chunk-PA2BYLKF.js';
3
1
  import { handleError } from './chunk-P23KBWKB.js';
2
+ import { createRoute } from './chunk-KDUX3YN3.js';
4
3
  import { HTTPException } from './chunk-6QWQZI4Q.js';
4
+ import { listWorkspacesResponseSchema, workspaceInfoResponseSchema, workspaceIdPathParams, fsReadResponseSchema, fsReadQuerySchema, fsWriteResponseSchema, fsWriteBodySchema, fsListResponseSchema, fsListQuerySchema, fsDeleteResponseSchema, fsDeleteQuerySchema, fsMkdirResponseSchema, fsMkdirBodySchema, fsStatResponseSchema, fsStatQuerySchema, searchResponseSchema, searchQuerySchema, indexResponseSchema, indexBodySchema, listSkillsResponseSchema, getSkillResponseSchema, skillDisambiguationQuerySchema, skillNamePathParams, listReferencesResponseSchema, skillReferenceResponseSchema, skillReferencePathParams, searchSkillsResponseSchema, searchSkillsQuerySchema, skillsShSearchResponseSchema, skillsShSearchQuerySchema, skillsShListResponseSchema, skillsShPopularQuerySchema, skillsShPreviewResponseSchema, skillsShPreviewQuerySchema, skillsShInstallResponseSchema, skillsShInstallBodySchema, skillsShRemoveResponseSchema, skillsShRemoveBodySchema, skillsShUpdateResponseSchema, skillsShUpdateBodySchema } from './chunk-ZHULRNJG.js';
5
5
  import { __export } from './chunk-PR4QN5HX.js';
6
6
  import { coreFeatures } from '@mastra/core/features';
7
7
 
@@ -1315,5 +1315,5 @@ var WORKSPACE_SKILLS_ROUTES = [
1315
1315
  ];
1316
1316
 
1317
1317
  export { GET_WORKSPACE_ROUTE, LIST_WORKSPACES_ROUTE, WORKSPACE_FS_DELETE_ROUTE, WORKSPACE_FS_LIST_ROUTE, WORKSPACE_FS_MKDIR_ROUTE, WORKSPACE_FS_READ_ROUTE, WORKSPACE_FS_ROUTES, WORKSPACE_FS_STAT_ROUTE, WORKSPACE_FS_WRITE_ROUTE, WORKSPACE_GET_SKILL_REFERENCE_ROUTE, WORKSPACE_GET_SKILL_ROUTE, WORKSPACE_INDEX_ROUTE, WORKSPACE_LIST_SKILLS_ROUTE, WORKSPACE_LIST_SKILL_REFERENCES_ROUTE, WORKSPACE_SEARCH_ROUTE, WORKSPACE_SEARCH_ROUTES, WORKSPACE_SEARCH_SKILLS_ROUTE, WORKSPACE_SKILLS_ROUTES, WORKSPACE_SKILLS_SH_INSTALL_ROUTE, WORKSPACE_SKILLS_SH_POPULAR_ROUTE, WORKSPACE_SKILLS_SH_PREVIEW_ROUTE, WORKSPACE_SKILLS_SH_REMOVE_ROUTE, WORKSPACE_SKILLS_SH_ROUTES, WORKSPACE_SKILLS_SH_SEARCH_ROUTE, WORKSPACE_SKILLS_SH_UPDATE_ROUTE, workspace_exports };
1318
- //# sourceMappingURL=chunk-NUGBBASK.js.map
1319
- //# sourceMappingURL=chunk-NUGBBASK.js.map
1318
+ //# sourceMappingURL=chunk-XOHBH6NQ.js.map
1319
+ //# sourceMappingURL=chunk-XOHBH6NQ.js.map