@mastra/server 1.33.0-alpha.6 → 1.33.0-alpha.8

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 (309) hide show
  1. package/CHANGELOG.md +159 -0
  2. package/dist/{api-schema-manifest-KDXQELMU.cjs → api-schema-manifest-CX3NL6JS.cjs} +6 -6
  3. package/dist/{api-schema-manifest-KDXQELMU.cjs.map → api-schema-manifest-CX3NL6JS.cjs.map} +1 -1
  4. package/dist/{api-schema-manifest-IWGQ5O45.js → api-schema-manifest-IK5MQPAL.js} +4 -4
  5. package/dist/{api-schema-manifest-IWGQ5O45.js.map → api-schema-manifest-IK5MQPAL.js.map} +1 -1
  6. package/dist/{chunk-IT26WLSZ.js → chunk-26PANWAR.js} +7 -7
  7. package/dist/{chunk-IT26WLSZ.js.map → chunk-26PANWAR.js.map} +1 -1
  8. package/dist/{chunk-LXNZK6NM.cjs → chunk-27VZ5B4Q.cjs} +77 -77
  9. package/dist/{chunk-LXNZK6NM.cjs.map → chunk-27VZ5B4Q.cjs.map} +1 -1
  10. package/dist/{chunk-MAG4W3GZ.cjs → chunk-2PS73C7N.cjs} +8 -8
  11. package/dist/{chunk-MAG4W3GZ.cjs.map → chunk-2PS73C7N.cjs.map} +1 -1
  12. package/dist/{chunk-34UYZN53.js → chunk-3AKQRYDF.js} +4 -4
  13. package/dist/{chunk-34UYZN53.js.map → chunk-3AKQRYDF.js.map} +1 -1
  14. package/dist/{chunk-5HQXXBTM.js → chunk-3DQGNGSK.js} +4 -4
  15. package/dist/{chunk-5HQXXBTM.js.map → chunk-3DQGNGSK.js.map} +1 -1
  16. package/dist/{chunk-WEDFF5FH.js → chunk-3SRLGVLX.js} +44 -44
  17. package/dist/chunk-3SRLGVLX.js.map +1 -0
  18. package/dist/{chunk-SX3C7B3A.cjs → chunk-4NVC7TM6.cjs} +28 -28
  19. package/dist/{chunk-SX3C7B3A.cjs.map → chunk-4NVC7TM6.cjs.map} +1 -1
  20. package/dist/{chunk-N6HISTTP.cjs → chunk-4ZO2MLW5.cjs} +16 -16
  21. package/dist/{chunk-N6HISTTP.cjs.map → chunk-4ZO2MLW5.cjs.map} +1 -1
  22. package/dist/{chunk-EQ27BVOT.js → chunk-5WYCXPDY.js} +4 -4
  23. package/dist/{chunk-EQ27BVOT.js.map → chunk-5WYCXPDY.js.map} +1 -1
  24. package/dist/{chunk-EFW6MWXU.cjs → chunk-5XW4MKE6.cjs} +22 -2
  25. package/dist/chunk-5XW4MKE6.cjs.map +1 -0
  26. package/dist/{chunk-MCS43WKI.cjs → chunk-6JP6Q64G.cjs} +10 -10
  27. package/dist/{chunk-MCS43WKI.cjs.map → chunk-6JP6Q64G.cjs.map} +1 -1
  28. package/dist/{chunk-ZO7SOILM.js → chunk-6V2NUA6I.js} +4 -4
  29. package/dist/{chunk-ZO7SOILM.js.map → chunk-6V2NUA6I.js.map} +1 -1
  30. package/dist/{chunk-64YJOWH2.cjs → chunk-72W42JL4.cjs} +5 -5
  31. package/dist/{chunk-64YJOWH2.cjs.map → chunk-72W42JL4.cjs.map} +1 -1
  32. package/dist/{chunk-NWD2SPUH.js → chunk-7LGTEZBD.js} +4 -4
  33. package/dist/{chunk-NWD2SPUH.js.map → chunk-7LGTEZBD.js.map} +1 -1
  34. package/dist/{chunk-2KDOM6QE.js → chunk-7PDQ67ZY.js} +108 -6
  35. package/dist/chunk-7PDQ67ZY.js.map +1 -0
  36. package/dist/{chunk-SOH5VORA.js → chunk-7RLQ6356.js} +3 -3
  37. package/dist/{chunk-SOH5VORA.js.map → chunk-7RLQ6356.js.map} +1 -1
  38. package/dist/{chunk-CYLX5SJ4.js → chunk-7SVSAMG4.js} +6 -6
  39. package/dist/{chunk-CYLX5SJ4.js.map → chunk-7SVSAMG4.js.map} +1 -1
  40. package/dist/{chunk-OAE7ZFYO.cjs → chunk-ALOM42GR.cjs} +24 -24
  41. package/dist/{chunk-OAE7ZFYO.cjs.map → chunk-ALOM42GR.cjs.map} +1 -1
  42. package/dist/{chunk-3EK2EVVE.js → chunk-ANIIJVPR.js} +4 -4
  43. package/dist/{chunk-3EK2EVVE.js.map → chunk-ANIIJVPR.js.map} +1 -1
  44. package/dist/chunk-B3CHYE7C.js +549 -0
  45. package/dist/chunk-B3CHYE7C.js.map +1 -0
  46. package/dist/{chunk-2HM5SQM5.js → chunk-BK2PTTTN.js} +4 -4
  47. package/dist/{chunk-2HM5SQM5.js.map → chunk-BK2PTTTN.js.map} +1 -1
  48. package/dist/{chunk-YN57WYLS.cjs → chunk-BNONPEW6.cjs} +11 -11
  49. package/dist/{chunk-YN57WYLS.cjs.map → chunk-BNONPEW6.cjs.map} +1 -1
  50. package/dist/{chunk-XPF4VEXO.js → chunk-BZ3NR3IS.js} +40 -38
  51. package/dist/chunk-BZ3NR3IS.js.map +1 -0
  52. package/dist/{chunk-4NPFEKIP.js → chunk-CG3AAC7C.js} +4 -4
  53. package/dist/{chunk-4NPFEKIP.js.map → chunk-CG3AAC7C.js.map} +1 -1
  54. package/dist/{chunk-VGNQKFWM.js → chunk-DC7NOATT.js} +3 -3
  55. package/dist/{chunk-VGNQKFWM.js.map → chunk-DC7NOATT.js.map} +1 -1
  56. package/dist/{chunk-WMS63TTU.cjs → chunk-DDF3ZASL.cjs} +168 -64
  57. package/dist/chunk-DDF3ZASL.cjs.map +1 -0
  58. package/dist/{chunk-NB7LJMYF.js → chunk-DPGNOE7R.js} +3 -3
  59. package/dist/{chunk-NB7LJMYF.js.map → chunk-DPGNOE7R.js.map} +1 -1
  60. package/dist/{chunk-KRMMYAXW.cjs → chunk-E7IOQCUP.cjs} +10 -10
  61. package/dist/{chunk-KRMMYAXW.cjs.map → chunk-E7IOQCUP.cjs.map} +1 -1
  62. package/dist/{chunk-RVAPXLP2.js → chunk-EFQBRUA4.js} +3 -3
  63. package/dist/{chunk-RVAPXLP2.js.map → chunk-EFQBRUA4.js.map} +1 -1
  64. package/dist/{chunk-4KNRG3KO.cjs → chunk-EN45CWWM.cjs} +18 -18
  65. package/dist/{chunk-4KNRG3KO.cjs.map → chunk-EN45CWWM.cjs.map} +1 -1
  66. package/dist/chunk-F3HP5HM6.cjs +998 -0
  67. package/dist/chunk-F3HP5HM6.cjs.map +1 -0
  68. package/dist/{chunk-Y3OQTZDN.js → chunk-FD3TJOO6.js} +44 -15
  69. package/dist/chunk-FD3TJOO6.js.map +1 -0
  70. package/dist/{chunk-PYT4SLHO.js → chunk-FJZ67HHA.js} +3 -3
  71. package/dist/{chunk-PYT4SLHO.js.map → chunk-FJZ67HHA.js.map} +1 -1
  72. package/dist/{chunk-TE2PWB67.js → chunk-GIMDOFRR.js} +4 -4
  73. package/dist/{chunk-TE2PWB67.js.map → chunk-GIMDOFRR.js.map} +1 -1
  74. package/dist/{chunk-MTKGUIFX.js → chunk-GJ3BKRTZ.js} +6 -6
  75. package/dist/{chunk-MTKGUIFX.js.map → chunk-GJ3BKRTZ.js.map} +1 -1
  76. package/dist/{chunk-UMXIU6E3.cjs → chunk-GNQ5SKPB.cjs} +7 -7
  77. package/dist/{chunk-UMXIU6E3.cjs.map → chunk-GNQ5SKPB.cjs.map} +1 -1
  78. package/dist/{chunk-AMZMBCKG.cjs → chunk-GOXW7A5J.cjs} +10 -10
  79. package/dist/{chunk-AMZMBCKG.cjs.map → chunk-GOXW7A5J.cjs.map} +1 -1
  80. package/dist/{chunk-EKS524LA.js → chunk-GP65L3TF.js} +83 -34
  81. package/dist/chunk-GP65L3TF.js.map +1 -0
  82. package/dist/{chunk-SYDZFUZI.js → chunk-GSL72DOW.js} +3 -3
  83. package/dist/{chunk-SYDZFUZI.js.map → chunk-GSL72DOW.js.map} +1 -1
  84. package/dist/{chunk-CSG535HL.cjs → chunk-GV2J3XQ4.cjs} +137 -108
  85. package/dist/chunk-GV2J3XQ4.cjs.map +1 -0
  86. package/dist/{chunk-VESPCO5X.js → chunk-ITIAC2TC.js} +3 -3
  87. package/dist/{chunk-VESPCO5X.js.map → chunk-ITIAC2TC.js.map} +1 -1
  88. package/dist/{chunk-BGRKLLHE.cjs → chunk-J62R54QE.cjs} +6 -6
  89. package/dist/{chunk-BGRKLLHE.cjs.map → chunk-J62R54QE.cjs.map} +1 -1
  90. package/dist/{chunk-BLK2XYVU.cjs → chunk-JLH5BHLT.cjs} +10 -10
  91. package/dist/{chunk-BLK2XYVU.cjs.map → chunk-JLH5BHLT.cjs.map} +1 -1
  92. package/dist/{chunk-UOC4K3RU.js → chunk-JOUPK2UV.js} +3 -3
  93. package/dist/{chunk-UOC4K3RU.js.map → chunk-JOUPK2UV.js.map} +1 -1
  94. package/dist/{chunk-HLDBO2H6.js → chunk-JSHKUN5Y.js} +3 -3
  95. package/dist/{chunk-HLDBO2H6.js.map → chunk-JSHKUN5Y.js.map} +1 -1
  96. package/dist/chunk-KUCITIUY.cjs +636 -0
  97. package/dist/chunk-KUCITIUY.cjs.map +1 -0
  98. package/dist/{chunk-LRYHYARK.js → chunk-KXZBJDFG.js} +4 -4
  99. package/dist/{chunk-LRYHYARK.js.map → chunk-KXZBJDFG.js.map} +1 -1
  100. package/dist/{chunk-MWXGGCHD.cjs → chunk-L742HQNI.cjs} +10 -10
  101. package/dist/{chunk-MWXGGCHD.cjs.map → chunk-L742HQNI.cjs.map} +1 -1
  102. package/dist/{chunk-ZOILZWQD.cjs → chunk-LKVE4QAW.cjs} +6 -6
  103. package/dist/{chunk-ZOILZWQD.cjs.map → chunk-LKVE4QAW.cjs.map} +1 -1
  104. package/dist/{chunk-6DAZZPVO.cjs → chunk-LNV75BVN.cjs} +38 -38
  105. package/dist/{chunk-6DAZZPVO.cjs.map → chunk-LNV75BVN.cjs.map} +1 -1
  106. package/dist/{chunk-S4L4CSQD.js → chunk-LRUC4D2Q.js} +3 -3
  107. package/dist/{chunk-S4L4CSQD.js.map → chunk-LRUC4D2Q.js.map} +1 -1
  108. package/dist/{chunk-ANXKF4TA.cjs → chunk-M62Z4EEY.cjs} +147 -147
  109. package/dist/chunk-M62Z4EEY.cjs.map +1 -0
  110. package/dist/{chunk-IYEGDP3G.js → chunk-M7DF3D2M.js} +3 -3
  111. package/dist/{chunk-IYEGDP3G.js.map → chunk-M7DF3D2M.js.map} +1 -1
  112. package/dist/{chunk-LOZT5NDU.cjs → chunk-MZ3RKQKS.cjs} +6 -6
  113. package/dist/{chunk-LOZT5NDU.cjs.map → chunk-MZ3RKQKS.cjs.map} +1 -1
  114. package/dist/{chunk-3OTCA7TP.js → chunk-NKCUF5ZH.js} +3 -3
  115. package/dist/{chunk-3OTCA7TP.js.map → chunk-NKCUF5ZH.js.map} +1 -1
  116. package/dist/{chunk-UOBKNRHM.cjs → chunk-NKYIWTT3.cjs} +12 -12
  117. package/dist/{chunk-UOBKNRHM.cjs.map → chunk-NKYIWTT3.cjs.map} +1 -1
  118. package/dist/{chunk-R7EB3VDI.cjs → chunk-NOQ45USI.cjs} +13 -13
  119. package/dist/{chunk-R7EB3VDI.cjs.map → chunk-NOQ45USI.cjs.map} +1 -1
  120. package/dist/{chunk-YQILRC5Y.cjs → chunk-OB4NE2YX.cjs} +10 -10
  121. package/dist/{chunk-YQILRC5Y.cjs.map → chunk-OB4NE2YX.cjs.map} +1 -1
  122. package/dist/{chunk-ICJ2ZVI2.cjs → chunk-OJFDLVAO.cjs} +13 -13
  123. package/dist/{chunk-ICJ2ZVI2.cjs.map → chunk-OJFDLVAO.cjs.map} +1 -1
  124. package/dist/{chunk-PM3UPQWH.cjs → chunk-P3TJ7MI6.cjs} +11 -11
  125. package/dist/{chunk-PM3UPQWH.cjs.map → chunk-P3TJ7MI6.cjs.map} +1 -1
  126. package/dist/{chunk-HYYXUP35.cjs → chunk-PJDFXAOL.cjs} +2 -2
  127. package/dist/{chunk-HYYXUP35.cjs.map → chunk-PJDFXAOL.cjs.map} +1 -1
  128. package/dist/{chunk-AWXCTLMK.cjs → chunk-PPCGMD6N.cjs} +11 -11
  129. package/dist/{chunk-AWXCTLMK.cjs.map → chunk-PPCGMD6N.cjs.map} +1 -1
  130. package/dist/{chunk-TWT64BVR.js → chunk-PUAKBO3Q.js} +45 -70
  131. package/dist/chunk-PUAKBO3Q.js.map +1 -0
  132. package/dist/{chunk-QEM5P746.cjs → chunk-PYGX3GUB.cjs} +71 -96
  133. package/dist/chunk-PYGX3GUB.cjs.map +1 -0
  134. package/dist/{chunk-ZSGVBBC4.js → chunk-QFGTTQFQ.js} +3 -3
  135. package/dist/{chunk-ZSGVBBC4.js.map → chunk-QFGTTQFQ.js.map} +1 -1
  136. package/dist/{chunk-HFF6QRLL.cjs → chunk-QISQJJPS.cjs} +6 -6
  137. package/dist/{chunk-HFF6QRLL.cjs.map → chunk-QISQJJPS.cjs.map} +1 -1
  138. package/dist/{chunk-IDLB647Y.js → chunk-QLJYRTD2.js} +4 -4
  139. package/dist/{chunk-IDLB647Y.js.map → chunk-QLJYRTD2.js.map} +1 -1
  140. package/dist/{chunk-STNEFHHA.js → chunk-RYOD3GP4.js} +4 -4
  141. package/dist/{chunk-STNEFHHA.js.map → chunk-RYOD3GP4.js.map} +1 -1
  142. package/dist/{chunk-KSQVYDDO.cjs → chunk-RYXKJ55A.cjs} +11 -11
  143. package/dist/{chunk-KSQVYDDO.cjs.map → chunk-RYXKJ55A.cjs.map} +1 -1
  144. package/dist/{chunk-GP45BMSR.js → chunk-SEMTGEAA.js} +3 -3
  145. package/dist/{chunk-GP45BMSR.js.map → chunk-SEMTGEAA.js.map} +1 -1
  146. package/dist/{chunk-C7Q5IMST.js → chunk-SFJOG2BT.js} +3 -3
  147. package/dist/{chunk-C7Q5IMST.js.map → chunk-SFJOG2BT.js.map} +1 -1
  148. package/dist/chunk-TLLV2JP5.js +983 -0
  149. package/dist/chunk-TLLV2JP5.js.map +1 -0
  150. package/dist/chunk-TTJ3DYZH.cjs +557 -0
  151. package/dist/chunk-TTJ3DYZH.cjs.map +1 -0
  152. package/dist/{chunk-WE5GUI23.js → chunk-UBOLRYFV.js} +3 -3
  153. package/dist/{chunk-WE5GUI23.js.map → chunk-UBOLRYFV.js.map} +1 -1
  154. package/dist/{chunk-GAS277DM.cjs → chunk-UVLX3WSX.cjs} +11 -11
  155. package/dist/{chunk-GAS277DM.cjs.map → chunk-UVLX3WSX.cjs.map} +1 -1
  156. package/dist/{chunk-HCIKFLLE.js → chunk-VMF4AV2C.js} +2 -2
  157. package/dist/{chunk-HCIKFLLE.js.map → chunk-VMF4AV2C.js.map} +1 -1
  158. package/dist/{chunk-KUBAQ732.cjs → chunk-VOBSGFM5.cjs} +10 -10
  159. package/dist/{chunk-KUBAQ732.cjs.map → chunk-VOBSGFM5.cjs.map} +1 -1
  160. package/dist/{chunk-5FHBVBU2.js → chunk-VQSY4I4H.js} +3 -3
  161. package/dist/{chunk-5FHBVBU2.js.map → chunk-VQSY4I4H.js.map} +1 -1
  162. package/dist/{chunk-GKN4IFE7.js → chunk-VYXPIZJE.js} +3 -3
  163. package/dist/{chunk-GKN4IFE7.js.map → chunk-VYXPIZJE.js.map} +1 -1
  164. package/dist/{chunk-WYQDPZNZ.cjs → chunk-W5B34RLN.cjs} +7 -7
  165. package/dist/{chunk-WYQDPZNZ.cjs.map → chunk-W5B34RLN.cjs.map} +1 -1
  166. package/dist/{chunk-VWBVA272.cjs → chunk-W6LHLN5M.cjs} +5 -5
  167. package/dist/{chunk-VWBVA272.cjs.map → chunk-W6LHLN5M.cjs.map} +1 -1
  168. package/dist/{chunk-KFEM2S5D.cjs → chunk-WWOML5Y4.cjs} +10 -10
  169. package/dist/{chunk-KFEM2S5D.cjs.map → chunk-WWOML5Y4.cjs.map} +1 -1
  170. package/dist/{chunk-Z7FXNI2N.cjs → chunk-XFDVU6GZ.cjs} +52 -52
  171. package/dist/{chunk-Z7FXNI2N.cjs.map → chunk-XFDVU6GZ.cjs.map} +1 -1
  172. package/dist/{chunk-BK2PRWVJ.cjs → chunk-Y5LNMKEY.cjs} +5 -5
  173. package/dist/{chunk-BK2PRWVJ.cjs.map → chunk-Y5LNMKEY.cjs.map} +1 -1
  174. package/dist/{chunk-OJRAH5VV.js → chunk-YARY4I5U.js} +18 -3
  175. package/dist/chunk-YARY4I5U.js.map +1 -0
  176. package/dist/{chunk-OJLXPTSL.cjs → chunk-YE56LUEI.cjs} +18 -18
  177. package/dist/{chunk-OJLXPTSL.cjs.map → chunk-YE56LUEI.cjs.map} +1 -1
  178. package/dist/{chunk-RQNN75EV.js → chunk-YGNA75MT.js} +5 -5
  179. package/dist/{chunk-RQNN75EV.js.map → chunk-YGNA75MT.js.map} +1 -1
  180. package/dist/{chunk-47U5QTGT.cjs → chunk-YYTMNPB7.cjs} +83 -34
  181. package/dist/chunk-YYTMNPB7.cjs.map +1 -0
  182. package/dist/docs/SKILL.md +1 -1
  183. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  184. package/dist/{observational-memory-HAJ3K5JJ-RB4HNAIV.cjs → observational-memory-2PRVG6BF-3V6S3B2J.cjs} +26 -26
  185. package/dist/{observational-memory-HAJ3K5JJ-RB4HNAIV.cjs.map → observational-memory-2PRVG6BF-3V6S3B2J.cjs.map} +1 -1
  186. package/dist/{observational-memory-HAJ3K5JJ-J2PZI56J.js → observational-memory-2PRVG6BF-4MT3GXPA.js} +3 -3
  187. package/dist/{observational-memory-HAJ3K5JJ-J2PZI56J.js.map → observational-memory-2PRVG6BF-4MT3GXPA.js.map} +1 -1
  188. package/dist/server/auth/index.cjs +15 -15
  189. package/dist/server/auth/index.js +1 -1
  190. package/dist/server/constants.d.ts +5 -0
  191. package/dist/server/constants.d.ts.map +1 -1
  192. package/dist/server/handlers/a2a.cjs +14 -14
  193. package/dist/server/handlers/a2a.js +1 -1
  194. package/dist/server/handlers/agent-builder.cjs +16 -16
  195. package/dist/server/handlers/agent-builder.js +1 -1
  196. package/dist/server/handlers/agent-versions.cjs +8 -8
  197. package/dist/server/handlers/agent-versions.js +1 -1
  198. package/dist/server/handlers/agents.cjs +39 -39
  199. package/dist/server/handlers/agents.d.ts.map +1 -1
  200. package/dist/server/handlers/agents.js +1 -1
  201. package/dist/server/handlers/auth.cjs +11 -11
  202. package/dist/server/handlers/auth.js +1 -1
  203. package/dist/server/handlers/background-tasks.cjs +4 -4
  204. package/dist/server/handlers/background-tasks.js +1 -1
  205. package/dist/server/handlers/channels.cjs +5 -5
  206. package/dist/server/handlers/channels.js +1 -1
  207. package/dist/server/handlers/conversations.cjs +5 -5
  208. package/dist/server/handlers/conversations.js +1 -1
  209. package/dist/server/handlers/datasets.cjs +26 -26
  210. package/dist/server/handlers/datasets.js +1 -1
  211. package/dist/server/handlers/logs.cjs +4 -4
  212. package/dist/server/handlers/logs.js +1 -1
  213. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  214. package/dist/server/handlers/mcp-client-versions.js +1 -1
  215. package/dist/server/handlers/mcp.cjs +11 -11
  216. package/dist/server/handlers/mcp.js +1 -1
  217. package/dist/server/handlers/memory.cjs +27 -27
  218. package/dist/server/handlers/memory.js +1 -1
  219. package/dist/server/handlers/observability-new-endpoints.cjs +28 -28
  220. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  221. package/dist/server/handlers/observability.cjs +38 -38
  222. package/dist/server/handlers/observability.js +2 -2
  223. package/dist/server/handlers/processor-providers.cjs +3 -3
  224. package/dist/server/handlers/processor-providers.js +1 -1
  225. package/dist/server/handlers/processors.cjs +4 -4
  226. package/dist/server/handlers/processors.js +1 -1
  227. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  228. package/dist/server/handlers/prompt-block-versions.js +1 -1
  229. package/dist/server/handlers/responses.adapter.cjs +18 -14
  230. package/dist/server/handlers/responses.adapter.d.ts +96 -2
  231. package/dist/server/handlers/responses.adapter.d.ts.map +1 -1
  232. package/dist/server/handlers/responses.adapter.js +1 -1
  233. package/dist/server/handlers/responses.cjs +4 -4
  234. package/dist/server/handlers/responses.d.ts.map +1 -1
  235. package/dist/server/handlers/responses.js +1 -1
  236. package/dist/server/handlers/responses.storage.cjs +8 -8
  237. package/dist/server/handlers/responses.storage.d.ts +4 -2
  238. package/dist/server/handlers/responses.storage.d.ts.map +1 -1
  239. package/dist/server/handlers/responses.storage.js +1 -1
  240. package/dist/server/handlers/schedules.cjs +6 -6
  241. package/dist/server/handlers/schedules.js +1 -1
  242. package/dist/server/handlers/scorer-versions.cjs +8 -8
  243. package/dist/server/handlers/scorer-versions.js +1 -1
  244. package/dist/server/handlers/scores.cjs +7 -7
  245. package/dist/server/handlers/scores.js +1 -1
  246. package/dist/server/handlers/stored-agents.cjs +7 -7
  247. package/dist/server/handlers/stored-agents.js +1 -1
  248. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  249. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  250. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  251. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  252. package/dist/server/handlers/stored-scorers.cjs +6 -6
  253. package/dist/server/handlers/stored-scorers.js +1 -1
  254. package/dist/server/handlers/stored-skills.cjs +7 -7
  255. package/dist/server/handlers/stored-skills.js +1 -1
  256. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  257. package/dist/server/handlers/stored-workspaces.js +1 -1
  258. package/dist/server/handlers/system.cjs +3 -3
  259. package/dist/server/handlers/system.js +1 -1
  260. package/dist/server/handlers/tool-providers.cjs +5 -5
  261. package/dist/server/handlers/tool-providers.js +1 -1
  262. package/dist/server/handlers/tools.cjs +6 -6
  263. package/dist/server/handlers/tools.js +1 -1
  264. package/dist/server/handlers/utils.cjs +10 -10
  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 +32 -24
  271. package/dist/server/handlers/workflows.d.ts +83 -0
  272. package/dist/server/handlers/workflows.d.ts.map +1 -1
  273. package/dist/server/handlers/workflows.js +1 -1
  274. package/dist/server/handlers/workspace.cjs +26 -26
  275. package/dist/server/handlers/workspace.js +1 -1
  276. package/dist/server/handlers.cjs +30 -30
  277. package/dist/server/handlers.js +15 -15
  278. package/dist/server/server-adapter/index.cjs +55 -28
  279. package/dist/server/server-adapter/index.cjs.map +1 -1
  280. package/dist/server/server-adapter/index.d.ts +5 -1
  281. package/dist/server/server-adapter/index.d.ts.map +1 -1
  282. package/dist/server/server-adapter/index.js +19 -11
  283. package/dist/server/server-adapter/index.js.map +1 -1
  284. package/dist/server/server-adapter/routes/workflows.d.ts +66 -1
  285. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
  286. package/package.json +6 -6
  287. package/dist/chunk-2KDOM6QE.js.map +0 -1
  288. package/dist/chunk-47U5QTGT.cjs.map +0 -1
  289. package/dist/chunk-AJYJ4H7P.js +0 -438
  290. package/dist/chunk-AJYJ4H7P.js.map +0 -1
  291. package/dist/chunk-ANXKF4TA.cjs.map +0 -1
  292. package/dist/chunk-CSG535HL.cjs.map +0 -1
  293. package/dist/chunk-DFSUBEGE.js +0 -226
  294. package/dist/chunk-DFSUBEGE.js.map +0 -1
  295. package/dist/chunk-EFW6MWXU.cjs.map +0 -1
  296. package/dist/chunk-EKS524LA.js.map +0 -1
  297. package/dist/chunk-OJ72T77G.cjs +0 -452
  298. package/dist/chunk-OJ72T77G.cjs.map +0 -1
  299. package/dist/chunk-OJRAH5VV.js.map +0 -1
  300. package/dist/chunk-PJYQMPXT.cjs +0 -234
  301. package/dist/chunk-PJYQMPXT.cjs.map +0 -1
  302. package/dist/chunk-QEM5P746.cjs.map +0 -1
  303. package/dist/chunk-TWT64BVR.js.map +0 -1
  304. package/dist/chunk-VZNSMKB7.cjs +0 -634
  305. package/dist/chunk-VZNSMKB7.cjs.map +0 -1
  306. package/dist/chunk-WEDFF5FH.js.map +0 -1
  307. package/dist/chunk-WMS63TTU.cjs.map +0 -1
  308. package/dist/chunk-XPF4VEXO.js.map +0 -1
  309. package/dist/chunk-Y3OQTZDN.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { MastraFGAPermissions } from './chunk-6KDKASVR.js';
2
- import { MASTRA_RESOURCE_ID_KEY, MASTRA_THREAD_ID_KEY } from './chunk-OJRAH5VV.js';
2
+ import { MASTRA_RESOURCE_ID_KEY, MASTRA_THREAD_ID_KEY } from './chunk-YARY4I5U.js';
3
3
  import { HTTPException } from './chunk-6QWQZI4Q.js';
4
4
  import { MastraMemory } from '@mastra/core/memory';
5
5
 
@@ -86,5 +86,5 @@ async function validateRunOwnership(run, effectiveResourceId) {
86
86
  }
87
87
 
88
88
  export { enforceThreadAccess, getEffectiveResourceId, getEffectiveThreadId, parseFilters, parsePerPage, sanitizeBody, validateBody, validateRunOwnership, validateThreadOwnership };
89
- //# sourceMappingURL=chunk-UOC4K3RU.js.map
90
- //# sourceMappingURL=chunk-UOC4K3RU.js.map
89
+ //# sourceMappingURL=chunk-JOUPK2UV.js.map
90
+ //# sourceMappingURL=chunk-JOUPK2UV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/utils.ts"],"names":[],"mappings":";;;;;AAQO,SAAS,aAAa,IAAA,EAA+B;AAC1D,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,CAAE,MAAA,CAA+B,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAC/F,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,GAAA,CAAI,GAAG,CAAA,GAAI,CAAA,UAAA,EAAa,GAAG,CAAA,aAAA,CAAA;AAAA,IAC7B;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAI,MAAA,CAAO,IAAA,CAAK,aAAa,CAAA,CAAE,SAAS,CAAA,EAAG;AACzC,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,CAAE,CAAC,CAAA,EAAG,CAAA;AAAA,EAC3E;AACF;AAOO,SAAS,YAAA,CAAa,MAA+B,cAAA,EAA0B;AACpF,EAAA,KAAA,MAAW,OAAO,cAAA,EAAgB;AAChC,IAAA,IAAI,OAAO,IAAA,EAAM;AACf,MAAA,OAAO,KAAK,GAAG,CAAA;AAAA,IACjB;AAAA,EACF;AACF;AAEO,SAAS,YAAA,CACd,KAAA,EACA,YAAA,GAAuB,GAAA,EACvB,MAAc,GAAA,EACE;AAChB,EAAA,MAAM,UAAA,GAAA,CAAc,KAAA,IAAS,EAAA,EAAI,IAAA,GAAO,WAAA,EAAY;AAEpD,EAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,MAAM,SAAS,QAAA,CAAS,KAAA,IAAS,MAAA,CAAO,YAAY,GAAG,EAAE,CAAA;AACzD,EAAA,IAAI,KAAA,CAAM,MAAM,CAAA,EAAG,OAAO,YAAA;AAC1B,EAAA,OAAO,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,GAAA,CAAI,CAAA,EAAG,MAAM,CAAC,CAAA;AAC1C;AAKO,SAAS,aAAa,OAAA,EAA4E;AACvG,EAAA,IAAI,CAAC,SAAS,OAAO,MAAA;AAErB,EAAA,OAAO,MAAA,CAAO,WAAA;AAAA,IAAA,CACX,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,GAAI,OAAA,GAAU,CAAC,OAAO,CAAA,EAAG,GAAA,CAAI,CAAC,IAAA,KAAiB;AACnE,MAAA,MAAM,CAAC,GAAA,EAAK,GAAG,UAAU,CAAA,GAAI,IAAA,CAAK,MAAM,GAAG,CAAA;AAC3C,MAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,CAAK,GAAG,CAAA;AACjC,MAAA,OAAO,CAAC,KAAK,KAAK,CAAA;AAAA,IACpB,CAAC;AAAA,GACH;AACF;AAUO,SAAS,sBAAA,CACd,gBACA,gBAAA,EACoB;AACpB,EAAA,MAAM,iBAAA,GAAoB,cAAA,EAAgB,GAAA,CAAI,sBAAsB,CAAA;AACpE,EAAA,OAAO,iBAAA,IAAqB,gBAAA;AAC9B;AAMO,SAAS,oBAAA,CACd,gBACA,cAAA,EACoB;AACpB,EAAA,MAAM,eAAA,GAAkB,cAAA,EAAgB,GAAA,CAAI,oBAAoB,CAAA;AAChE,EAAA,OAAO,eAAA,IAAmB,cAAA;AAC5B;AAOA,eAAsB,uBAAA,CACpB,QACA,mBAAA,EACe;AACf,EAAA,IAAI,UAAU,mBAAA,IAAuB,MAAA,CAAO,UAAA,IAAc,MAAA,CAAO,eAAe,mBAAA,EAAqB;AACnG,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,yDAAyD,CAAA;AAAA,EACnG;AACF;AAMA,eAAsB,mBAAA,CAAoB;AAAA,EACxC,MAAA;AAAA,EACA,cAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,mBAAA;AAAA,EACA,aAAa,oBAAA,CAAqB;AACpC,CAAA,EAOkB;AAChB,EAAA,MAAM,uBAAA,CAAwB,QAAQ,mBAAmB,CAAA;AAEzD,EAAA,MAAM,WAAA,GAAc,MAAA,EAAQ,SAAA,IAAY,EAAG,GAAA;AAC3C,EAAA,IAAI,CAAC,WAAA,EAAa;AAChB,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,IAAA,GAAO,cAAA,EAAgB,GAAA,CAAI,MAAM,CAAA;AACvC,EAAA,IAAI,CAAC,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,EAAU;AACrC,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4DAA4D,CAAA;AAAA,EACtG;AAEA,EAAA,MAAM,aAAa,cAAA,CAAe;AAAA,IAChC,MAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,UAAA,EAAY,QAAQ,UAAA,IAAc,mBAAA;AAAA,IAClC,cAAA;AAAA,IACA;AAAA,GACD,CAAA;AACH;AAMA,eAAsB,oBAAA,CACpB,KACA,mBAAA,EACe;AACf,EAAA,IAAI,OAAO,mBAAA,IAAuB,GAAA,CAAI,UAAA,IAAc,GAAA,CAAI,eAAe,mBAAA,EAAqB;AAC1F,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,+DAA+D,CAAA;AAAA,EACzG;AACF","file":"chunk-UOC4K3RU.js","sourcesContent":["import 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 { MastraFGAPermissions } from '../fga-permissions';\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
+ {"version":3,"sources":["../src/server/handlers/utils.ts"],"names":[],"mappings":"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","file":"chunk-JOUPK2UV.js","sourcesContent":["import 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 { MastraFGAPermissions } from '../fga-permissions';\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,4 +1,4 @@
1
- import { createRoute } from './chunk-HCIKFLLE.js';
1
+ import { createRoute } from './chunk-VMF4AV2C.js';
2
2
  import { HTTPException } from './chunk-6QWQZI4Q.js';
3
3
  import { z } from 'zod';
4
4
 
@@ -135,5 +135,5 @@ var GET_BACKGROUND_TASK_ROUTE = createRoute({
135
135
  });
136
136
 
137
137
  export { BACKGROUND_TASK_STREAM_ROUTE, GET_BACKGROUND_TASK_ROUTE, LIST_BACKGROUND_TASKS_ROUTE };
138
- //# sourceMappingURL=chunk-HLDBO2H6.js.map
139
- //# sourceMappingURL=chunk-HLDBO2H6.js.map
138
+ //# sourceMappingURL=chunk-JSHKUN5Y.js.map
139
+ //# sourceMappingURL=chunk-JSHKUN5Y.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/schemas/background-tasks.ts","../src/server/handlers/background-tasks.ts"],"names":[],"mappings":"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","file":"chunk-HLDBO2H6.js","sourcesContent":["import { z } from 'zod';\n\nexport const backgroundTaskStatusSchema = z.enum([\n 'pending',\n 'running',\n 'suspended',\n 'completed',\n 'failed',\n 'cancelled',\n 'timed_out',\n]);\n\nexport const backgroundTaskStreamQuerySchema = z.object({\n agentId: z.string().optional(),\n runId: z.string().optional(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n taskId: z.string().optional(),\n});\n\nexport const backgroundTaskDateColumnSchema = z.enum(['createdAt', 'startedAt', 'suspendedAt', 'completedAt']);\n\nexport const listBackgroundTasksQuerySchema = z.object({\n agentId: z.string().optional(),\n status: backgroundTaskStatusSchema.optional(),\n runId: z.string().optional(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n toolName: z.string().optional(),\n toolCallId: z.string().optional(),\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n dateFilterBy: backgroundTaskDateColumnSchema.optional(),\n orderBy: backgroundTaskDateColumnSchema.optional(),\n orderDirection: z.enum(['asc', 'desc']).optional(),\n page: z.coerce.number().optional(),\n perPage: z.coerce.number().optional(),\n});\n\nexport const backgroundTaskIdPathParams = z.object({\n backgroundTaskId: z.string(),\n});\n\nexport const backgroundTaskResponseSchema = z.object({\n id: z.string(),\n status: backgroundTaskStatusSchema,\n toolName: z.string(),\n toolCallId: z.string(),\n args: z.record(z.string(), z.unknown()),\n agentId: z.string(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n runId: z.string(),\n result: z.unknown().optional(),\n error: z.object({ message: z.string(), stack: z.string().optional() }).optional(),\n createdAt: z.date(),\n startedAt: z.date().optional(),\n completedAt: z.date().optional(),\n retryCount: z.number(),\n maxRetries: z.number(),\n timeoutMs: z.number(),\n suspendPayload: z.unknown().optional(),\n});\n\nexport const listBackgroundTaskResponseSchema = z.object({\n tasks: z.array(backgroundTaskResponseSchema),\n total: z.number(),\n});\n\nexport const backgroundTaskStreamResponseSchema = z.any();\n","import { HTTPException } from '../http-exception';\nimport {\n backgroundTaskResponseSchema,\n backgroundTaskStreamQuerySchema,\n backgroundTaskStreamResponseSchema,\n listBackgroundTaskResponseSchema,\n listBackgroundTasksQuerySchema,\n backgroundTaskIdPathParams,\n} from '../schemas/background-tasks';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nexport const BACKGROUND_TASK_STREAM_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n queryParamSchema: backgroundTaskStreamQuerySchema,\n responseSchema: backgroundTaskStreamResponseSchema,\n summary: 'Stream background task events via SSE',\n description: 'Real-time Server-Sent Events stream of background task completion/failure events.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, runId, threadId, resourceId, taskId, abortSignal }) => {\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks are not enabled — return an empty stream that stays\n // open until the client disconnects. This avoids spamming the logs with\n // false-positive errors when clients (e.g. the studio UI) optimistically\n // subscribe to the stream.\n return new ReadableStream({\n start(controller) {\n abortSignal?.addEventListener('abort', () => {\n try {\n controller.close();\n } catch {\n // Already closed\n }\n });\n },\n });\n }\n\n return bgManager.stream({ agentId, runId, threadId, resourceId, taskId, abortSignal });\n },\n});\n\nexport const LIST_BACKGROUND_TASKS_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks',\n responseType: 'json' as const,\n queryParamSchema: listBackgroundTasksQuerySchema,\n responseSchema: listBackgroundTaskResponseSchema,\n summary: 'List background tasks',\n description: 'Returns background tasks filtered by status, agent, run, etc.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks not enabled — there are no tasks to return.\n return { tasks: [], total: 0 };\n }\n\n return bgManager.listTasks(params);\n },\n});\n\nexport const GET_BACKGROUND_TASK_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks/:backgroundTaskId',\n responseType: 'json' as const,\n pathParamSchema: backgroundTaskIdPathParams,\n responseSchema: backgroundTaskResponseSchema,\n summary: 'Get a background task by ID',\n description: 'Returns a background task by ID.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, backgroundTaskId }) => {\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks not enabled — the task can't exist.\n throw new HTTPException(404, { message: 'Background task not found' });\n }\n\n const task = await bgManager.getTask(backgroundTaskId);\n if (!task) {\n throw new HTTPException(404, { message: 'Background task not found' });\n }\n return task;\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/schemas/background-tasks.ts","../src/server/handlers/background-tasks.ts"],"names":[],"mappings":"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","file":"chunk-JSHKUN5Y.js","sourcesContent":["import { z } from 'zod';\n\nexport const backgroundTaskStatusSchema = z.enum([\n 'pending',\n 'running',\n 'suspended',\n 'completed',\n 'failed',\n 'cancelled',\n 'timed_out',\n]);\n\nexport const backgroundTaskStreamQuerySchema = z.object({\n agentId: z.string().optional(),\n runId: z.string().optional(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n taskId: z.string().optional(),\n});\n\nexport const backgroundTaskDateColumnSchema = z.enum(['createdAt', 'startedAt', 'suspendedAt', 'completedAt']);\n\nexport const listBackgroundTasksQuerySchema = z.object({\n agentId: z.string().optional(),\n status: backgroundTaskStatusSchema.optional(),\n runId: z.string().optional(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n toolName: z.string().optional(),\n toolCallId: z.string().optional(),\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n dateFilterBy: backgroundTaskDateColumnSchema.optional(),\n orderBy: backgroundTaskDateColumnSchema.optional(),\n orderDirection: z.enum(['asc', 'desc']).optional(),\n page: z.coerce.number().optional(),\n perPage: z.coerce.number().optional(),\n});\n\nexport const backgroundTaskIdPathParams = z.object({\n backgroundTaskId: z.string(),\n});\n\nexport const backgroundTaskResponseSchema = z.object({\n id: z.string(),\n status: backgroundTaskStatusSchema,\n toolName: z.string(),\n toolCallId: z.string(),\n args: z.record(z.string(), z.unknown()),\n agentId: z.string(),\n threadId: z.string().optional(),\n resourceId: z.string().optional(),\n runId: z.string(),\n result: z.unknown().optional(),\n error: z.object({ message: z.string(), stack: z.string().optional() }).optional(),\n createdAt: z.date(),\n startedAt: z.date().optional(),\n completedAt: z.date().optional(),\n retryCount: z.number(),\n maxRetries: z.number(),\n timeoutMs: z.number(),\n suspendPayload: z.unknown().optional(),\n});\n\nexport const listBackgroundTaskResponseSchema = z.object({\n tasks: z.array(backgroundTaskResponseSchema),\n total: z.number(),\n});\n\nexport const backgroundTaskStreamResponseSchema = z.any();\n","import { HTTPException } from '../http-exception';\nimport {\n backgroundTaskResponseSchema,\n backgroundTaskStreamQuerySchema,\n backgroundTaskStreamResponseSchema,\n listBackgroundTaskResponseSchema,\n listBackgroundTasksQuerySchema,\n backgroundTaskIdPathParams,\n} from '../schemas/background-tasks';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nexport const BACKGROUND_TASK_STREAM_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n queryParamSchema: backgroundTaskStreamQuerySchema,\n responseSchema: backgroundTaskStreamResponseSchema,\n summary: 'Stream background task events via SSE',\n description: 'Real-time Server-Sent Events stream of background task completion/failure events.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, runId, threadId, resourceId, taskId, abortSignal }) => {\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks are not enabled — return an empty stream that stays\n // open until the client disconnects. This avoids spamming the logs with\n // false-positive errors when clients (e.g. the studio UI) optimistically\n // subscribe to the stream.\n return new ReadableStream({\n start(controller) {\n abortSignal?.addEventListener('abort', () => {\n try {\n controller.close();\n } catch {\n // Already closed\n }\n });\n },\n });\n }\n\n return bgManager.stream({ agentId, runId, threadId, resourceId, taskId, abortSignal });\n },\n});\n\nexport const LIST_BACKGROUND_TASKS_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks',\n responseType: 'json' as const,\n queryParamSchema: listBackgroundTasksQuerySchema,\n responseSchema: listBackgroundTaskResponseSchema,\n summary: 'List background tasks',\n description: 'Returns background tasks filtered by status, agent, run, etc.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks not enabled — there are no tasks to return.\n return { tasks: [], total: 0 };\n }\n\n return bgManager.listTasks(params);\n },\n});\n\nexport const GET_BACKGROUND_TASK_ROUTE = createRoute({\n method: 'GET',\n path: '/background-tasks/:backgroundTaskId',\n responseType: 'json' as const,\n pathParamSchema: backgroundTaskIdPathParams,\n responseSchema: backgroundTaskResponseSchema,\n summary: 'Get a background task by ID',\n description: 'Returns a background task by ID.',\n tags: ['Background Tasks'],\n requiresAuth: true,\n handler: async ({ mastra, backgroundTaskId }) => {\n const bgManager = mastra.backgroundTaskManager;\n if (!bgManager) {\n // Background tasks not enabled — the task can't exist.\n throw new HTTPException(404, { message: 'Background task not found' });\n }\n\n const task = await bgManager.getTask(backgroundTaskId);\n if (!task) {\n throw new HTTPException(404, { message: 'Background task not found' });\n }\n return task;\n },\n});\n"]}