@mastra/server 1.36.0-alpha.1 → 1.36.0-alpha.3

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 (525) hide show
  1. package/CHANGELOG.md +158 -0
  2. package/dist/_types/@internal_core/dist/index.d.ts +506 -28
  3. package/dist/{api-schema-manifest-EMKHNXSD.cjs → api-schema-manifest-HYLH35UU.cjs} +6 -6
  4. package/dist/{api-schema-manifest-EMKHNXSD.cjs.map → api-schema-manifest-HYLH35UU.cjs.map} +1 -1
  5. package/dist/{api-schema-manifest-EJXNYOFH.js → api-schema-manifest-WY623UST.js} +4 -4
  6. package/dist/{api-schema-manifest-EJXNYOFH.js.map → api-schema-manifest-WY623UST.js.map} +1 -1
  7. package/dist/{chunk-YARY4I5U.js → chunk-23S37FLK.js} +9 -3
  8. package/dist/chunk-23S37FLK.js.map +1 -0
  9. package/dist/{chunk-NG62OLVA.js → chunk-2JXX4IPC.js} +3 -3
  10. package/dist/{chunk-NG62OLVA.js.map → chunk-2JXX4IPC.js.map} +1 -1
  11. package/dist/{chunk-BYX5LHPW.cjs → chunk-2R76OYDZ.cjs} +22 -5
  12. package/dist/chunk-2R76OYDZ.cjs.map +1 -0
  13. package/dist/{chunk-6IUJAAQ2.js → chunk-2SMGXJZJ.js} +42 -8
  14. package/dist/chunk-2SMGXJZJ.js.map +1 -0
  15. package/dist/chunk-2YUSBWAC.js +101 -0
  16. package/dist/chunk-2YUSBWAC.js.map +1 -0
  17. package/dist/{chunk-PQDYNK4J.cjs → chunk-3AKG5KEE.cjs} +45 -37
  18. package/dist/chunk-3AKG5KEE.cjs.map +1 -0
  19. package/dist/{chunk-NPMJ6FRL.cjs → chunk-3AWUH2DT.cjs} +113 -86
  20. package/dist/chunk-3AWUH2DT.cjs.map +1 -0
  21. package/dist/{chunk-Y6CAJLYX.js → chunk-3FLL7GNJ.js} +6 -6
  22. package/dist/{chunk-Y6CAJLYX.js.map → chunk-3FLL7GNJ.js.map} +1 -1
  23. package/dist/{chunk-Y5LNMKEY.cjs → chunk-43KD3CRE.cjs} +21 -7
  24. package/dist/chunk-43KD3CRE.cjs.map +1 -0
  25. package/dist/{chunk-3NA22RQ5.cjs → chunk-4BLUIUHS.cjs} +5 -5
  26. package/dist/{chunk-3NA22RQ5.cjs.map → chunk-4BLUIUHS.cjs.map} +1 -1
  27. package/dist/{chunk-FRFWWBSS.js → chunk-4DUHTOLC.js} +4 -4
  28. package/dist/{chunk-FRFWWBSS.js.map → chunk-4DUHTOLC.js.map} +1 -1
  29. package/dist/chunk-4G7S52U3.cjs +356 -0
  30. package/dist/chunk-4G7S52U3.cjs.map +1 -0
  31. package/dist/{chunk-DYN7KSCZ.js → chunk-4KSV4WWQ.js} +6 -6
  32. package/dist/{chunk-DYN7KSCZ.js.map → chunk-4KSV4WWQ.js.map} +1 -1
  33. package/dist/{chunk-CJFSLVFA.js → chunk-4RLRTJ5M.js} +22 -5
  34. package/dist/chunk-4RLRTJ5M.js.map +1 -0
  35. package/dist/{chunk-XHA6OBT3.cjs → chunk-4UFLVROK.cjs} +13 -13
  36. package/dist/{chunk-XHA6OBT3.cjs.map → chunk-4UFLVROK.cjs.map} +1 -1
  37. package/dist/{chunk-YHRGDSTK.js → chunk-4XSWMZTL.js} +40 -3
  38. package/dist/chunk-4XSWMZTL.js.map +1 -0
  39. package/dist/{chunk-MHQFFRA2.cjs → chunk-4Z24UGLY.cjs} +26 -26
  40. package/dist/{chunk-MHQFFRA2.cjs.map → chunk-4Z24UGLY.cjs.map} +1 -1
  41. package/dist/{chunk-GPLCXP3B.cjs → chunk-5GI232FP.cjs} +8 -8
  42. package/dist/{chunk-GPLCXP3B.cjs.map → chunk-5GI232FP.cjs.map} +1 -1
  43. package/dist/{chunk-IIGNRK55.cjs → chunk-5OGVOPLG.cjs} +4 -4
  44. package/dist/{chunk-IIGNRK55.cjs.map → chunk-5OGVOPLG.cjs.map} +1 -1
  45. package/dist/{chunk-5XW4MKE6.cjs → chunk-65T6KVYX.cjs} +11 -2
  46. package/dist/chunk-65T6KVYX.cjs.map +1 -0
  47. package/dist/{chunk-W32BPAIP.js → chunk-664F5XOW.js} +7 -7
  48. package/dist/{chunk-W32BPAIP.js.map → chunk-664F5XOW.js.map} +1 -1
  49. package/dist/{chunk-N44OOOAL.js → chunk-6GMGCV74.js} +5 -5
  50. package/dist/{chunk-N44OOOAL.js.map → chunk-6GMGCV74.js.map} +1 -1
  51. package/dist/chunk-6HR2SJBP.js +101 -0
  52. package/dist/chunk-6HR2SJBP.js.map +1 -0
  53. package/dist/chunk-6JCLSYOU.js +351 -0
  54. package/dist/chunk-6JCLSYOU.js.map +1 -0
  55. package/dist/{chunk-HT4KV7V5.js → chunk-6NIQROP2.js} +23 -13
  56. package/dist/chunk-6NIQROP2.js.map +1 -0
  57. package/dist/chunk-753JFAF2.js +134 -0
  58. package/dist/chunk-753JFAF2.js.map +1 -0
  59. package/dist/{chunk-LQRPDQCE.js → chunk-7EDTSUCY.js} +4 -4
  60. package/dist/{chunk-LQRPDQCE.js.map → chunk-7EDTSUCY.js.map} +1 -1
  61. package/dist/chunk-7U7OWTR2.js +149 -0
  62. package/dist/chunk-7U7OWTR2.js.map +1 -0
  63. package/dist/{chunk-SR6QNILC.cjs → chunk-A4FTF4A7.cjs} +55 -55
  64. package/dist/{chunk-SR6QNILC.cjs.map → chunk-A4FTF4A7.cjs.map} +1 -1
  65. package/dist/{chunk-7YV7MYOP.js → chunk-AAZDGIDJ.js} +22 -12
  66. package/dist/chunk-AAZDGIDJ.js.map +1 -0
  67. package/dist/chunk-APCBVLVG.js +497 -0
  68. package/dist/chunk-APCBVLVG.js.map +1 -0
  69. package/dist/chunk-AR7VSXHH.cjs +143 -0
  70. package/dist/chunk-AR7VSXHH.cjs.map +1 -0
  71. package/dist/{chunk-JRFHBWKQ.cjs → chunk-AY3ZP465.cjs} +36 -26
  72. package/dist/chunk-AY3ZP465.cjs.map +1 -0
  73. package/dist/{chunk-YLJ5EVO3.js → chunk-BWNJBSXL.js} +3 -3
  74. package/dist/{chunk-YLJ5EVO3.js.map → chunk-BWNJBSXL.js.map} +1 -1
  75. package/dist/{chunk-JBAQMT4Y.cjs → chunk-CBHBMWZ2.cjs} +12 -12
  76. package/dist/{chunk-JBAQMT4Y.cjs.map → chunk-CBHBMWZ2.cjs.map} +1 -1
  77. package/dist/{chunk-JW4P6OFG.js → chunk-CCL4C2ZO.js} +4 -4
  78. package/dist/{chunk-JW4P6OFG.js.map → chunk-CCL4C2ZO.js.map} +1 -1
  79. package/dist/{chunk-7LBBDT4S.js → chunk-CGB327L6.js} +3 -3
  80. package/dist/{chunk-7LBBDT4S.js.map → chunk-CGB327L6.js.map} +1 -1
  81. package/dist/{chunk-WP67ASKV.js → chunk-CIBEUC5W.js} +8 -8
  82. package/dist/{chunk-WP67ASKV.js.map → chunk-CIBEUC5W.js.map} +1 -1
  83. package/dist/{chunk-RGUKCKGB.cjs → chunk-CODPCBGN.cjs} +22 -22
  84. package/dist/{chunk-RGUKCKGB.cjs.map → chunk-CODPCBGN.cjs.map} +1 -1
  85. package/dist/{chunk-PM6YRFZW.cjs → chunk-CY2WDWFQ.cjs} +8 -8
  86. package/dist/{chunk-PM6YRFZW.cjs.map → chunk-CY2WDWFQ.cjs.map} +1 -1
  87. package/dist/{chunk-OS2636MU.js → chunk-D4HVKF56.js} +5 -5
  88. package/dist/{chunk-OS2636MU.js.map → chunk-D4HVKF56.js.map} +1 -1
  89. package/dist/{chunk-73MISLDN.cjs → chunk-D774EZRN.cjs} +16 -16
  90. package/dist/{chunk-73MISLDN.cjs.map → chunk-D774EZRN.cjs.map} +1 -1
  91. package/dist/{chunk-L3WM4IWR.cjs → chunk-DYXX34YU.cjs} +56 -21
  92. package/dist/chunk-DYXX34YU.cjs.map +1 -0
  93. package/dist/{chunk-XZT7USLH.js → chunk-E3UHRQZ7.js} +81 -41
  94. package/dist/chunk-E3UHRQZ7.js.map +1 -0
  95. package/dist/{chunk-DZWFQD53.cjs → chunk-EAPGRYRG.cjs} +6 -6
  96. package/dist/{chunk-DZWFQD53.cjs.map → chunk-EAPGRYRG.cjs.map} +1 -1
  97. package/dist/{chunk-R4IYXUNR.cjs → chunk-ESZN7NKS.cjs} +34 -26
  98. package/dist/chunk-ESZN7NKS.cjs.map +1 -0
  99. package/dist/{chunk-E53AJNZB.js → chunk-F2FAL5CZ.js} +2 -2
  100. package/dist/{chunk-E53AJNZB.js.map → chunk-F2FAL5CZ.js.map} +1 -1
  101. package/dist/{chunk-7BM2AIKU.js → chunk-FKQCQSXF.js} +44 -17
  102. package/dist/chunk-FKQCQSXF.js.map +1 -0
  103. package/dist/{chunk-DGJSHUP4.cjs → chunk-FP3SA3LK.cjs} +177 -177
  104. package/dist/{chunk-DGJSHUP4.cjs.map → chunk-FP3SA3LK.cjs.map} +1 -1
  105. package/dist/chunk-G5LQCOFZ.js +292 -0
  106. package/dist/chunk-G5LQCOFZ.js.map +1 -0
  107. package/dist/{chunk-B3UPXBHD.js → chunk-G6W3FFTU.js} +227 -41
  108. package/dist/chunk-G6W3FFTU.js.map +1 -0
  109. package/dist/chunk-GA4BG5JK.js +46 -0
  110. package/dist/chunk-GA4BG5JK.js.map +1 -0
  111. package/dist/{chunk-YPXOTWND.js → chunk-GAGC4WDU.js} +3 -3
  112. package/dist/{chunk-YPXOTWND.js.map → chunk-GAGC4WDU.js.map} +1 -1
  113. package/dist/{chunk-T6QQYYPA.cjs → chunk-GAL7C4Y5.cjs} +36 -26
  114. package/dist/chunk-GAL7C4Y5.cjs.map +1 -0
  115. package/dist/{chunk-GTYVB2TS.js → chunk-GFZR6THV.js} +3 -3
  116. package/dist/{chunk-GTYVB2TS.js.map → chunk-GFZR6THV.js.map} +1 -1
  117. package/dist/{chunk-Q7LA2XMK.js → chunk-GW6T4HLN.js} +9 -9
  118. package/dist/{chunk-Q7LA2XMK.js.map → chunk-GW6T4HLN.js.map} +1 -1
  119. package/dist/{chunk-NDMG7SUN.js → chunk-HFESVWJ6.js} +8 -8
  120. package/dist/{chunk-NDMG7SUN.js.map → chunk-HFESVWJ6.js.map} +1 -1
  121. package/dist/{chunk-BBB4NKZZ.cjs → chunk-HGAPGNWM.cjs} +83 -83
  122. package/dist/{chunk-BBB4NKZZ.cjs.map → chunk-HGAPGNWM.cjs.map} +1 -1
  123. package/dist/{chunk-OOEYTKTC.js → chunk-HGRG2WVX.js} +35 -18
  124. package/dist/chunk-HGRG2WVX.js.map +1 -0
  125. package/dist/{chunk-4YSEVAAS.cjs → chunk-HKM5KOOK.cjs} +31 -31
  126. package/dist/{chunk-4YSEVAAS.cjs.map → chunk-HKM5KOOK.cjs.map} +1 -1
  127. package/dist/chunk-HMJL3C3H.js +36 -0
  128. package/dist/chunk-HMJL3C3H.js.map +1 -0
  129. package/dist/{chunk-X7ZNZFHV.js → chunk-HNGYUI5N.js} +23 -15
  130. package/dist/chunk-HNGYUI5N.js.map +1 -0
  131. package/dist/{chunk-7R7WT24X.cjs → chunk-HWT5YD7H.cjs} +17 -17
  132. package/dist/{chunk-7R7WT24X.cjs.map → chunk-HWT5YD7H.cjs.map} +1 -1
  133. package/dist/{chunk-R3R6VJRM.cjs → chunk-HZNJ4B7D.cjs} +32 -32
  134. package/dist/{chunk-R3R6VJRM.cjs.map → chunk-HZNJ4B7D.cjs.map} +1 -1
  135. package/dist/{chunk-XGNMFTYF.js → chunk-I3RWQGD7.js} +9 -9
  136. package/dist/{chunk-XGNMFTYF.js.map → chunk-I3RWQGD7.js.map} +1 -1
  137. package/dist/{chunk-UQ2H32RT.cjs → chunk-I6WBJDRP.cjs} +10 -10
  138. package/dist/{chunk-UQ2H32RT.cjs.map → chunk-I6WBJDRP.cjs.map} +1 -1
  139. package/dist/{chunk-T3PECMPO.js → chunk-IRJQQYII.js} +7 -7
  140. package/dist/{chunk-T3PECMPO.js.map → chunk-IRJQQYII.js.map} +1 -1
  141. package/dist/chunk-JUYUBEMU.js +28 -0
  142. package/dist/chunk-JUYUBEMU.js.map +1 -0
  143. package/dist/{chunk-IVFIYTLD.cjs → chunk-JZ2K5LY4.cjs} +34 -34
  144. package/dist/{chunk-IVFIYTLD.cjs.map → chunk-JZ2K5LY4.cjs.map} +1 -1
  145. package/dist/{chunk-MEYWNCUV.cjs → chunk-KE4V4LJE.cjs} +7 -7
  146. package/dist/{chunk-MEYWNCUV.cjs.map → chunk-KE4V4LJE.cjs.map} +1 -1
  147. package/dist/{chunk-ES23WZRF.cjs → chunk-LEIV627E.cjs} +15 -15
  148. package/dist/{chunk-ES23WZRF.cjs.map → chunk-LEIV627E.cjs.map} +1 -1
  149. package/dist/{chunk-AIRSK4QU.js → chunk-LH5Y7AJF.js} +46 -7
  150. package/dist/chunk-LH5Y7AJF.js.map +1 -0
  151. package/dist/{chunk-5TTCUSSA.js → chunk-LPFE6YTG.js} +3 -3
  152. package/dist/{chunk-5TTCUSSA.js.map → chunk-LPFE6YTG.js.map} +1 -1
  153. package/dist/{chunk-WYLVJSGR.cjs → chunk-LTRLD33R.cjs} +47 -8
  154. package/dist/chunk-LTRLD33R.cjs.map +1 -0
  155. package/dist/{chunk-UH3MHVDF.cjs → chunk-M4B42JGO.cjs} +6 -3
  156. package/dist/chunk-M4B42JGO.cjs.map +1 -0
  157. package/dist/{chunk-QWPEAC7I.cjs → chunk-MERLF4UP.cjs} +94 -94
  158. package/dist/{chunk-QWPEAC7I.cjs.map → chunk-MERLF4UP.cjs.map} +1 -1
  159. package/dist/{chunk-CIPZ4VOZ.cjs → chunk-N6RQC4Z3.cjs} +4 -4
  160. package/dist/{chunk-CIPZ4VOZ.cjs.map → chunk-N6RQC4Z3.cjs.map} +1 -1
  161. package/dist/chunk-NHJWT4KF.cjs +104 -0
  162. package/dist/chunk-NHJWT4KF.cjs.map +1 -0
  163. package/dist/chunk-O4O2EJF7.cjs +13 -0
  164. package/dist/chunk-O4O2EJF7.cjs.map +1 -0
  165. package/dist/{chunk-H3RUJBEL.cjs → chunk-O7B3P2AT.cjs} +57 -40
  166. package/dist/chunk-O7B3P2AT.cjs.map +1 -0
  167. package/dist/{chunk-L2RZNUOW.js → chunk-OGYYXNGI.js} +4 -4
  168. package/dist/{chunk-L2RZNUOW.js.map → chunk-OGYYXNGI.js.map} +1 -1
  169. package/dist/{chunk-M7DF3D2M.js → chunk-OJNVSXOF.js} +19 -5
  170. package/dist/chunk-OJNVSXOF.js.map +1 -0
  171. package/dist/{chunk-KGK2LCZ4.js → chunk-OKKJPM5N.js} +21 -14
  172. package/dist/chunk-OKKJPM5N.js.map +1 -0
  173. package/dist/{chunk-Z6C7SDXA.js → chunk-ONCDLJUQ.js} +6 -3
  174. package/dist/chunk-ONCDLJUQ.js.map +1 -0
  175. package/dist/{chunk-HX5WL5ZF.js → chunk-OORAVFI4.js} +3 -3
  176. package/dist/{chunk-HX5WL5ZF.js.map → chunk-OORAVFI4.js.map} +1 -1
  177. package/dist/{chunk-M7CTMLXS.js → chunk-OSN3DL34.js} +4 -4
  178. package/dist/{chunk-M7CTMLXS.js.map → chunk-OSN3DL34.js.map} +1 -1
  179. package/dist/{chunk-ZIR2AE52.js → chunk-P5ZWPVC2.js} +4 -4
  180. package/dist/{chunk-ZIR2AE52.js.map → chunk-P5ZWPVC2.js.map} +1 -1
  181. package/dist/{chunk-BBD7VAAR.js → chunk-PQ37PNAE.js} +22 -12
  182. package/dist/chunk-PQ37PNAE.js.map +1 -0
  183. package/dist/{chunk-DRNCUSSM.cjs → chunk-PWGPLCL4.cjs} +5 -5
  184. package/dist/{chunk-DRNCUSSM.cjs.map → chunk-PWGPLCL4.cjs.map} +1 -1
  185. package/dist/chunk-QJU62KP2.cjs +298 -0
  186. package/dist/chunk-QJU62KP2.cjs.map +1 -0
  187. package/dist/{chunk-AY5TY4EN.js → chunk-QUVYOHFH.js} +178 -52
  188. package/dist/chunk-QUVYOHFH.js.map +1 -0
  189. package/dist/{chunk-LTYRUL3Q.cjs → chunk-QZ6UFQ7V.cjs} +42 -2
  190. package/dist/chunk-QZ6UFQ7V.cjs.map +1 -0
  191. package/dist/chunk-REJUB2HI.cjs +104 -0
  192. package/dist/chunk-REJUB2HI.cjs.map +1 -0
  193. package/dist/chunk-RJUQQE46.cjs +551 -0
  194. package/dist/chunk-RJUQQE46.cjs.map +1 -0
  195. package/dist/{chunk-M4MNMBQF.cjs → chunk-RYPLQO4Z.cjs} +32 -25
  196. package/dist/chunk-RYPLQO4Z.cjs.map +1 -0
  197. package/dist/chunk-S77FIEDZ.cjs +504 -0
  198. package/dist/chunk-S77FIEDZ.cjs.map +1 -0
  199. package/dist/chunk-SFPN7SHZ.js +11 -0
  200. package/dist/chunk-SFPN7SHZ.js.map +1 -0
  201. package/dist/{chunk-LBEQ4EE4.js → chunk-SPGVPADY.js} +3 -3
  202. package/dist/{chunk-LBEQ4EE4.js.map → chunk-SPGVPADY.js.map} +1 -1
  203. package/dist/{chunk-Q2B7W7GA.cjs → chunk-T3C54LPX.cjs} +57 -5
  204. package/dist/chunk-T3C54LPX.cjs.map +1 -0
  205. package/dist/chunk-TNXHSUIL.cjs +655 -0
  206. package/dist/chunk-TNXHSUIL.cjs.map +1 -0
  207. package/dist/{chunk-3BL73LS3.cjs → chunk-U72BY62E.cjs} +260 -133
  208. package/dist/chunk-U72BY62E.cjs.map +1 -0
  209. package/dist/{chunk-DZXHO72E.cjs → chunk-UBYGPC2S.cjs} +12 -12
  210. package/dist/{chunk-DZXHO72E.cjs.map → chunk-UBYGPC2S.cjs.map} +1 -1
  211. package/dist/{chunk-IDUFQ5HG.js → chunk-UCKK7LPQ.js} +3 -3
  212. package/dist/{chunk-IDUFQ5HG.js.map → chunk-UCKK7LPQ.js.map} +1 -1
  213. package/dist/{chunk-JX4UGU4A.cjs → chunk-UGJBURIS.cjs} +12 -12
  214. package/dist/{chunk-JX4UGU4A.cjs.map → chunk-UGJBURIS.cjs.map} +1 -1
  215. package/dist/{chunk-PDHGJ7GP.js → chunk-UIRQU4GW.js} +54 -6
  216. package/dist/chunk-UIRQU4GW.js.map +1 -0
  217. package/dist/chunk-V4ATNZXG.cjs +31 -0
  218. package/dist/chunk-V4ATNZXG.cjs.map +1 -0
  219. package/dist/chunk-VX3MJR4P.cjs +161 -0
  220. package/dist/chunk-VX3MJR4P.cjs.map +1 -0
  221. package/dist/{chunk-QTPAVOG2.cjs → chunk-WLGC3IWY.cjs} +49 -39
  222. package/dist/chunk-WLGC3IWY.cjs.map +1 -0
  223. package/dist/{chunk-DM6UW5RD.js → chunk-WM2RUEBO.js} +8 -8
  224. package/dist/{chunk-DM6UW5RD.js.map → chunk-WM2RUEBO.js.map} +1 -1
  225. package/dist/{chunk-4L2UVFJO.js → chunk-WYP25ZMM.js} +120 -5
  226. package/dist/chunk-WYP25ZMM.js.map +1 -0
  227. package/dist/{chunk-MXGCIYNM.js → chunk-XI3XH4G7.js} +22 -12
  228. package/dist/chunk-XI3XH4G7.js.map +1 -0
  229. package/dist/{chunk-YE3LMHL3.js → chunk-XM54QZ3G.js} +5 -5
  230. package/dist/{chunk-YE3LMHL3.js.map → chunk-XM54QZ3G.js.map} +1 -1
  231. package/dist/{chunk-PYZAUXQX.cjs → chunk-XNR667MS.cjs} +27 -27
  232. package/dist/{chunk-PYZAUXQX.cjs.map → chunk-XNR667MS.cjs.map} +1 -1
  233. package/dist/{chunk-Y6MWNLAA.cjs → chunk-XR3CGVKU.cjs} +8 -8
  234. package/dist/{chunk-Y6MWNLAA.cjs.map → chunk-XR3CGVKU.cjs.map} +1 -1
  235. package/dist/{chunk-AZORAK4H.cjs → chunk-XTFWFQZ7.cjs} +2 -2
  236. package/dist/{chunk-AZORAK4H.cjs.map → chunk-XTFWFQZ7.cjs.map} +1 -1
  237. package/dist/{chunk-ELWN7ZXR.js → chunk-Y3KIKJW6.js} +6 -6
  238. package/dist/{chunk-ELWN7ZXR.js.map → chunk-Y3KIKJW6.js.map} +1 -1
  239. package/dist/{chunk-B34S64RC.cjs → chunk-YNSUYESL.cjs} +23 -3
  240. package/dist/chunk-YNSUYESL.cjs.map +1 -0
  241. package/dist/{chunk-3PQSHLG7.cjs → chunk-YQYYIRDS.cjs} +164 -164
  242. package/dist/{chunk-3PQSHLG7.cjs.map → chunk-YQYYIRDS.cjs.map} +1 -1
  243. package/dist/chunk-YRLCLLKR.js +14 -0
  244. package/dist/chunk-YRLCLLKR.js.map +1 -0
  245. package/dist/{chunk-SUT6SU4I.cjs → chunk-Z4PDJRZT.cjs} +124 -5
  246. package/dist/chunk-Z4PDJRZT.cjs.map +1 -0
  247. package/dist/{chunk-JRZZN55Y.cjs → chunk-Z772ZUYH.cjs} +53 -43
  248. package/dist/chunk-Z772ZUYH.cjs.map +1 -0
  249. package/dist/chunk-ZCX2J552.cjs +38 -0
  250. package/dist/chunk-ZCX2J552.cjs.map +1 -0
  251. package/dist/{chunk-OULCMO5R.js → chunk-ZHS2QDGO.js} +23 -15
  252. package/dist/chunk-ZHS2QDGO.js.map +1 -0
  253. package/dist/chunk-ZNP74O27.cjs +19 -0
  254. package/dist/chunk-ZNP74O27.cjs.map +1 -0
  255. package/dist/{dist-5OGIQLEZ.js → dist-TXPFV4FE.js} +3 -3
  256. package/dist/{dist-5OGIQLEZ.js.map → dist-TXPFV4FE.js.map} +1 -1
  257. package/dist/{dist-ON3E5YMU.cjs → dist-VWAYVM5T.cjs} +3 -3
  258. package/dist/{dist-ON3E5YMU.cjs.map → dist-VWAYVM5T.cjs.map} +1 -1
  259. package/dist/docs/SKILL.md +1 -1
  260. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  261. package/dist/server/auth/helpers.d.ts +3 -0
  262. package/dist/server/auth/helpers.d.ts.map +1 -1
  263. package/dist/server/auth/index.cjs +28 -15
  264. package/dist/server/auth/index.js +2 -1
  265. package/dist/server/browser-stream/types.d.ts +9 -0
  266. package/dist/server/browser-stream/types.d.ts.map +1 -1
  267. package/dist/server/constants.d.ts +3 -0
  268. package/dist/server/constants.d.ts.map +1 -1
  269. package/dist/server/handlers/a2a.cjs +14 -14
  270. package/dist/server/handlers/a2a.js +1 -1
  271. package/dist/server/handlers/agent-builder.cjs +16 -16
  272. package/dist/server/handlers/agent-builder.js +1 -1
  273. package/dist/server/handlers/agent-versions.cjs +8 -8
  274. package/dist/server/handlers/agent-versions.d.ts.map +1 -1
  275. package/dist/server/handlers/agent-versions.js +1 -1
  276. package/dist/server/handlers/agents.cjs +41 -41
  277. package/dist/server/handlers/agents.d.ts +185 -0
  278. package/dist/server/handlers/agents.d.ts.map +1 -1
  279. package/dist/server/handlers/agents.js +1 -1
  280. package/dist/server/handlers/auth.cjs +15 -11
  281. package/dist/server/handlers/auth.d.ts +168 -146
  282. package/dist/server/handlers/auth.d.ts.map +1 -1
  283. package/dist/server/handlers/auth.js +1 -1
  284. package/dist/server/handlers/authorship.cjs +52 -0
  285. package/dist/server/handlers/authorship.cjs.map +1 -0
  286. package/dist/server/handlers/authorship.d.ts +176 -0
  287. package/dist/server/handlers/authorship.d.ts.map +1 -0
  288. package/dist/server/handlers/authorship.js +3 -0
  289. package/dist/server/handlers/authorship.js.map +1 -0
  290. package/dist/server/handlers/background-tasks.cjs +4 -4
  291. package/dist/server/handlers/background-tasks.js +1 -1
  292. package/dist/server/handlers/builder-registry.cjs +28 -0
  293. package/dist/server/handlers/builder-registry.cjs.map +1 -0
  294. package/dist/server/handlers/builder-registry.d.ts +170 -0
  295. package/dist/server/handlers/builder-registry.d.ts.map +1 -0
  296. package/dist/server/handlers/builder-registry.js +3 -0
  297. package/dist/server/handlers/builder-registry.js.map +1 -0
  298. package/dist/server/handlers/channels.cjs +5 -5
  299. package/dist/server/handlers/channels.js +1 -1
  300. package/dist/server/handlers/conversations.cjs +5 -5
  301. package/dist/server/handlers/conversations.js +1 -1
  302. package/dist/server/handlers/datasets.cjs +26 -26
  303. package/dist/server/handlers/datasets.js +1 -1
  304. package/dist/server/handlers/editor-builder.cjs +24 -0
  305. package/dist/server/handlers/editor-builder.cjs.map +1 -0
  306. package/dist/server/handlers/editor-builder.d.ts +259 -0
  307. package/dist/server/handlers/editor-builder.d.ts.map +1 -0
  308. package/dist/server/handlers/editor-builder.js +3 -0
  309. package/dist/server/handlers/editor-builder.js.map +1 -0
  310. package/dist/server/handlers/error.cjs +3 -3
  311. package/dist/server/handlers/error.d.ts.map +1 -1
  312. package/dist/server/handlers/error.js +1 -1
  313. package/dist/server/handlers/favorites-enrichment.cjs +16 -0
  314. package/dist/server/handlers/favorites-enrichment.cjs.map +1 -0
  315. package/dist/server/handlers/favorites-enrichment.d.ts +27 -0
  316. package/dist/server/handlers/favorites-enrichment.d.ts.map +1 -0
  317. package/dist/server/handlers/favorites-enrichment.js +3 -0
  318. package/dist/server/handlers/favorites-enrichment.js.map +1 -0
  319. package/dist/server/handlers/logs.cjs +4 -4
  320. package/dist/server/handlers/logs.js +1 -1
  321. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  322. package/dist/server/handlers/mcp-client-versions.d.ts.map +1 -1
  323. package/dist/server/handlers/mcp-client-versions.js +1 -1
  324. package/dist/server/handlers/mcp.cjs +11 -11
  325. package/dist/server/handlers/mcp.js +1 -1
  326. package/dist/server/handlers/memory.cjs +27 -27
  327. package/dist/server/handlers/memory.d.ts +36 -36
  328. package/dist/server/handlers/memory.js +1 -1
  329. package/dist/server/handlers/observability-list-query-schemas.cjs +24 -0
  330. package/dist/server/handlers/observability-list-query-schemas.cjs.map +1 -0
  331. package/dist/server/handlers/observability-list-query-schemas.d.ts +29 -0
  332. package/dist/server/handlers/observability-list-query-schemas.d.ts.map +1 -0
  333. package/dist/server/handlers/observability-list-query-schemas.js +3 -0
  334. package/dist/server/handlers/observability-list-query-schemas.js.map +1 -0
  335. package/dist/server/handlers/observability-new-endpoints.cjs +32 -28
  336. package/dist/server/handlers/observability-new-endpoints.d.ts +326 -48
  337. package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
  338. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  339. package/dist/server/handlers/observability-shared.cjs +23 -7
  340. package/dist/server/handlers/observability-shared.d.ts +22 -1
  341. package/dist/server/handlers/observability-shared.d.ts.map +1 -1
  342. package/dist/server/handlers/observability-shared.js +1 -1
  343. package/dist/server/handlers/observability.cjs +43 -39
  344. package/dist/server/handlers/observability.d.ts +18 -8
  345. package/dist/server/handlers/observability.d.ts.map +1 -1
  346. package/dist/server/handlers/observability.js +2 -2
  347. package/dist/server/handlers/processor-providers.cjs +3 -3
  348. package/dist/server/handlers/processor-providers.js +1 -1
  349. package/dist/server/handlers/processors.cjs +4 -4
  350. package/dist/server/handlers/processors.js +1 -1
  351. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  352. package/dist/server/handlers/prompt-block-versions.d.ts.map +1 -1
  353. package/dist/server/handlers/prompt-block-versions.js +1 -1
  354. package/dist/server/handlers/responses.cjs +4 -4
  355. package/dist/server/handlers/responses.js +1 -1
  356. package/dist/server/handlers/responses.storage.cjs +8 -8
  357. package/dist/server/handlers/responses.storage.js +1 -1
  358. package/dist/server/handlers/schedules.cjs +6 -6
  359. package/dist/server/handlers/schedules.js +1 -1
  360. package/dist/server/handlers/scorer-versions.cjs +8 -8
  361. package/dist/server/handlers/scorer-versions.d.ts.map +1 -1
  362. package/dist/server/handlers/scorer-versions.js +1 -1
  363. package/dist/server/handlers/scores.cjs +7 -7
  364. package/dist/server/handlers/scores.js +1 -1
  365. package/dist/server/handlers/skills-sh-shared.cjs +40 -0
  366. package/dist/server/handlers/skills-sh-shared.cjs.map +1 -0
  367. package/dist/server/handlers/skills-sh-shared.d.ts +89 -0
  368. package/dist/server/handlers/skills-sh-shared.d.ts.map +1 -0
  369. package/dist/server/handlers/skills-sh-shared.js +3 -0
  370. package/dist/server/handlers/skills-sh-shared.js.map +1 -0
  371. package/dist/server/handlers/stored-agent-favorites.cjs +16 -0
  372. package/dist/server/handlers/stored-agent-favorites.cjs.map +1 -0
  373. package/dist/server/handlers/stored-agent-favorites.d.ts +29 -0
  374. package/dist/server/handlers/stored-agent-favorites.d.ts.map +1 -0
  375. package/dist/server/handlers/stored-agent-favorites.js +3 -0
  376. package/dist/server/handlers/stored-agent-favorites.js.map +1 -0
  377. package/dist/server/handlers/stored-agents.cjs +7 -7
  378. package/dist/server/handlers/stored-agents.d.ts +390 -0
  379. package/dist/server/handlers/stored-agents.d.ts.map +1 -1
  380. package/dist/server/handlers/stored-agents.js +1 -1
  381. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  382. package/dist/server/handlers/stored-mcp-clients.d.ts.map +1 -1
  383. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  384. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  385. package/dist/server/handlers/stored-prompt-blocks.d.ts.map +1 -1
  386. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  387. package/dist/server/handlers/stored-scorers.cjs +6 -6
  388. package/dist/server/handlers/stored-scorers.d.ts.map +1 -1
  389. package/dist/server/handlers/stored-scorers.js +1 -1
  390. package/dist/server/handlers/stored-skill-favorites.cjs +16 -0
  391. package/dist/server/handlers/stored-skill-favorites.cjs.map +1 -0
  392. package/dist/server/handlers/stored-skill-favorites.d.ts +29 -0
  393. package/dist/server/handlers/stored-skill-favorites.d.ts.map +1 -0
  394. package/dist/server/handlers/stored-skill-favorites.js +3 -0
  395. package/dist/server/handlers/stored-skill-favorites.js.map +1 -0
  396. package/dist/server/handlers/stored-skills.cjs +7 -7
  397. package/dist/server/handlers/stored-skills.d.ts +117 -0
  398. package/dist/server/handlers/stored-skills.d.ts.map +1 -1
  399. package/dist/server/handlers/stored-skills.js +1 -1
  400. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  401. package/dist/server/handlers/stored-workspaces.d.ts +2 -0
  402. package/dist/server/handlers/stored-workspaces.d.ts.map +1 -1
  403. package/dist/server/handlers/stored-workspaces.js +1 -1
  404. package/dist/server/handlers/system.cjs +3 -3
  405. package/dist/server/handlers/system.js +1 -1
  406. package/dist/server/handlers/tool-providers.cjs +5 -5
  407. package/dist/server/handlers/tool-providers.js +1 -1
  408. package/dist/server/handlers/tools.cjs +6 -6
  409. package/dist/server/handlers/tools.js +1 -1
  410. package/dist/server/handlers/utils.cjs +10 -10
  411. package/dist/server/handlers/utils.d.ts +1 -1
  412. package/dist/server/handlers/utils.js +1 -1
  413. package/dist/server/handlers/validate-avatar.cjs +12 -0
  414. package/dist/server/handlers/validate-avatar.cjs.map +1 -0
  415. package/dist/server/handlers/validate-avatar.d.ts +7 -0
  416. package/dist/server/handlers/validate-avatar.d.ts.map +1 -0
  417. package/dist/server/handlers/validate-avatar.js +3 -0
  418. package/dist/server/handlers/validate-avatar.js.map +1 -0
  419. package/dist/server/handlers/vector.cjs +16 -16
  420. package/dist/server/handlers/vector.js +1 -1
  421. package/dist/server/handlers/voice.cjs +8 -8
  422. package/dist/server/handlers/voice.js +1 -1
  423. package/dist/server/handlers/workflows.cjs +26 -26
  424. package/dist/server/handlers/workflows.js +1 -1
  425. package/dist/server/handlers/workspace.cjs +26 -26
  426. package/dist/server/handlers/workspace.js +1 -1
  427. package/dist/server/handlers.cjs +35 -35
  428. package/dist/server/handlers.js +16 -16
  429. package/dist/server/schemas/builder-registry.d.ts +73 -0
  430. package/dist/server/schemas/builder-registry.d.ts.map +1 -0
  431. package/dist/server/schemas/editor-builder.d.ts +288 -0
  432. package/dist/server/schemas/editor-builder.d.ts.map +1 -0
  433. package/dist/server/schemas/favorites.d.ts +9 -0
  434. package/dist/server/schemas/favorites.d.ts.map +1 -0
  435. package/dist/server/schemas/index.cjs +388 -372
  436. package/dist/server/schemas/index.js +10 -10
  437. package/dist/server/schemas/memory.d.ts +25 -19
  438. package/dist/server/schemas/memory.d.ts.map +1 -1
  439. package/dist/server/schemas/stored-agents.d.ts +1066 -94
  440. package/dist/server/schemas/stored-agents.d.ts.map +1 -1
  441. package/dist/server/schemas/stored-skills.d.ts +111 -0
  442. package/dist/server/schemas/stored-skills.d.ts.map +1 -1
  443. package/dist/server/schemas/stored-workspaces.d.ts +1 -0
  444. package/dist/server/schemas/stored-workspaces.d.ts.map +1 -1
  445. package/dist/server/server-adapter/index.cjs +200 -124
  446. package/dist/server/server-adapter/index.cjs.map +1 -1
  447. package/dist/server/server-adapter/index.d.ts +9 -1
  448. package/dist/server/server-adapter/index.d.ts.map +1 -1
  449. package/dist/server/server-adapter/index.js +174 -98
  450. package/dist/server/server-adapter/index.js.map +1 -1
  451. package/dist/server/server-adapter/routes/editor-builder.d.ts +353 -0
  452. package/dist/server/server-adapter/routes/editor-builder.d.ts.map +1 -0
  453. package/dist/server/server-adapter/routes/fga-manifest.d.ts +4 -0
  454. package/dist/server/server-adapter/routes/fga-manifest.d.ts.map +1 -0
  455. package/dist/server/server-adapter/routes/index.d.ts +7 -1
  456. package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
  457. package/dist/server/server-adapter/routes/memory.d.ts +36 -36
  458. package/dist/server/server-adapter/routes/observability.d.ts +176 -28
  459. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
  460. package/dist/server/server-adapter/routes/permissions.d.ts +8 -3
  461. package/dist/server/server-adapter/routes/permissions.d.ts.map +1 -1
  462. package/dist/server/server-adapter/routes/route-builder.d.ts +3 -1
  463. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -1
  464. package/dist/server/server-adapter/routes/stored-agents.d.ts +4 -1
  465. package/dist/server/server-adapter/routes/stored-agents.d.ts.map +1 -1
  466. package/dist/server/server-adapter/routes/stored-skills.d.ts +138 -1
  467. package/dist/server/server-adapter/routes/stored-skills.d.ts.map +1 -1
  468. package/dist/server/server-adapter/routes/stored-workspaces.d.ts +2 -0
  469. package/dist/server/server-adapter/routes/stored-workspaces.d.ts.map +1 -1
  470. package/dist/server/utils/resolve-builder-model-policy.d.ts +17 -0
  471. package/dist/server/utils/resolve-builder-model-policy.d.ts.map +1 -0
  472. package/dist/server/utils.d.ts +11 -0
  473. package/dist/server/utils.d.ts.map +1 -1
  474. package/package.json +3 -3
  475. package/dist/chunk-3BL73LS3.cjs.map +0 -1
  476. package/dist/chunk-4L2UVFJO.js.map +0 -1
  477. package/dist/chunk-5XW4MKE6.cjs.map +0 -1
  478. package/dist/chunk-6IUJAAQ2.js.map +0 -1
  479. package/dist/chunk-7BM2AIKU.js.map +0 -1
  480. package/dist/chunk-7YV7MYOP.js.map +0 -1
  481. package/dist/chunk-AIRSK4QU.js.map +0 -1
  482. package/dist/chunk-AY5TY4EN.js.map +0 -1
  483. package/dist/chunk-B34S64RC.cjs.map +0 -1
  484. package/dist/chunk-B3UPXBHD.js.map +0 -1
  485. package/dist/chunk-BBD7VAAR.js.map +0 -1
  486. package/dist/chunk-BYX5LHPW.cjs.map +0 -1
  487. package/dist/chunk-CJFSLVFA.js.map +0 -1
  488. package/dist/chunk-DRTUU5WC.cjs +0 -365
  489. package/dist/chunk-DRTUU5WC.cjs.map +0 -1
  490. package/dist/chunk-H3RUJBEL.cjs.map +0 -1
  491. package/dist/chunk-HT4KV7V5.js.map +0 -1
  492. package/dist/chunk-JRFHBWKQ.cjs.map +0 -1
  493. package/dist/chunk-JRZZN55Y.cjs.map +0 -1
  494. package/dist/chunk-KGK2LCZ4.js.map +0 -1
  495. package/dist/chunk-L3WM4IWR.cjs.map +0 -1
  496. package/dist/chunk-LTYRUL3Q.cjs.map +0 -1
  497. package/dist/chunk-M4MNMBQF.cjs.map +0 -1
  498. package/dist/chunk-M7DF3D2M.js.map +0 -1
  499. package/dist/chunk-MXGCIYNM.js.map +0 -1
  500. package/dist/chunk-NPMJ6FRL.cjs.map +0 -1
  501. package/dist/chunk-OMLB6EMJ.cjs +0 -313
  502. package/dist/chunk-OMLB6EMJ.cjs.map +0 -1
  503. package/dist/chunk-OOEYTKTC.js.map +0 -1
  504. package/dist/chunk-OULCMO5R.js.map +0 -1
  505. package/dist/chunk-P23KBWKB.js +0 -26
  506. package/dist/chunk-P23KBWKB.js.map +0 -1
  507. package/dist/chunk-PDHGJ7GP.js.map +0 -1
  508. package/dist/chunk-PQDYNK4J.cjs.map +0 -1
  509. package/dist/chunk-Q2B7W7GA.cjs.map +0 -1
  510. package/dist/chunk-QTPAVOG2.cjs.map +0 -1
  511. package/dist/chunk-R4IYXUNR.cjs.map +0 -1
  512. package/dist/chunk-SUT6SU4I.cjs.map +0 -1
  513. package/dist/chunk-T6QQYYPA.cjs.map +0 -1
  514. package/dist/chunk-UH3MHVDF.cjs.map +0 -1
  515. package/dist/chunk-WNIL6DVE.cjs +0 -615
  516. package/dist/chunk-WNIL6DVE.cjs.map +0 -1
  517. package/dist/chunk-WYLVJSGR.cjs.map +0 -1
  518. package/dist/chunk-X7ZNZFHV.js.map +0 -1
  519. package/dist/chunk-XT5ZVU5J.js +0 -306
  520. package/dist/chunk-XT5ZVU5J.js.map +0 -1
  521. package/dist/chunk-XZT7USLH.js.map +0 -1
  522. package/dist/chunk-Y5LNMKEY.cjs.map +0 -1
  523. package/dist/chunk-YARY4I5U.js.map +0 -1
  524. package/dist/chunk-YHRGDSTK.js.map +0 -1
  525. package/dist/chunk-Z6C7SDXA.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod/v4';
2
+
3
+ // src/server/handlers/observability-list-query-schemas.ts
4
+ var paginationArgsSchema = z.object({
5
+ page: z.coerce.number().int().min(0).optional().default(0).describe("Zero-indexed page number"),
6
+ perPage: z.coerce.number().int().min(1).max(100).optional().default(10).describe("Number of items per page")
7
+ }).describe("Pagination options for list queries");
8
+ var deltaCursorSchema = z.string().min(1).describe("Opaque cursor value for incremental polling");
9
+ var listModeSchema = z.enum(["page", "delta"]).describe("List mode: 'page' | 'delta', defaults to 'page' when omitted.");
10
+ var deltaLimitSchema = z.coerce.number().int().min(1).max(100).optional().describe("Maximum number of updates to return in one delta poll");
11
+
12
+ export { deltaCursorSchema, deltaLimitSchema, listModeSchema, paginationArgsSchema };
13
+ //# sourceMappingURL=chunk-YRLCLLKR.js.map
14
+ //# sourceMappingURL=chunk-YRLCLLKR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/observability-list-query-schemas.ts"],"names":[],"mappings":";;;AAoBO,IAAM,oBAAA,GAAuB,EACjC,MAAA,CAAO;AAAA,EACN,MAAM,CAAA,CAAE,MAAA,CAAO,MAAA,EAAO,CAAE,KAAI,CAAE,GAAA,CAAI,CAAC,CAAA,CAAE,UAAS,CAAE,OAAA,CAAQ,CAAC,CAAA,CAAE,SAAS,0BAA0B,CAAA;AAAA,EAC9F,SAAS,CAAA,CAAE,MAAA,CAAO,QAAO,CAAE,GAAA,GAAM,GAAA,CAAI,CAAC,EAAE,GAAA,CAAI,GAAG,EAAE,QAAA,EAAS,CAAE,QAAQ,EAAE,CAAA,CAAE,SAAS,0BAA0B;AAC7G,CAAC,CAAA,CACA,SAAS,qCAAqC;AAE1C,IAAM,iBAAA,GAAoB,EAAE,MAAA,EAAO,CAAE,IAAI,CAAC,CAAA,CAAE,SAAS,6CAA6C;AAElG,IAAM,cAAA,GAAiB,EAC3B,IAAA,CAAK,CAAC,QAAQ,OAAO,CAAC,CAAA,CACtB,QAAA,CAAS,+DAA+D;AAEpE,IAAM,mBAAmB,CAAA,CAAE,MAAA,CAC/B,MAAA,EAAO,CACP,KAAI,CACJ,GAAA,CAAI,CAAC,CAAA,CACL,IAAI,GAAG,CAAA,CACP,QAAA,EAAS,CACT,SAAS,uDAAuD","file":"chunk-YRLCLLKR.js","sourcesContent":["import { z } from 'zod/v4';\n\n/**\n * Server-local route-layer query schemas for observability list endpoints.\n *\n * Why these live in @mastra/server instead of importing the newer shared core\n * exports directly:\n * - `mode`, `after`, and `limit` were added after older @mastra/core versions\n * that @mastra/server still needs to tolerate at runtime.\n * - Direct named imports of newly-added schema exports create module-link-time\n * failures when a newer server is paired with an older core.\n * - These are route parsing concerns, so mirroring the current core schema\n * semantics here keeps the server backward-compatible without forcing a peer\n * dependency lockstep upgrade.\n *\n * TODO(Mastra 2.0): remove this shim and import the shared observability list\n * query schemas directly once server/core no longer need to tolerate older\n * mixed-version pairings.\n */\n\nexport const paginationArgsSchema = z\n .object({\n page: z.coerce.number().int().min(0).optional().default(0).describe('Zero-indexed page number'),\n perPage: z.coerce.number().int().min(1).max(100).optional().default(10).describe('Number of items per page'),\n })\n .describe('Pagination options for list queries');\n\nexport const deltaCursorSchema = z.string().min(1).describe('Opaque cursor value for incremental polling');\n\nexport const listModeSchema = z\n .enum(['page', 'delta'])\n .describe(\"List mode: 'page' | 'delta', defaults to 'page' when omitted.\");\n\nexport const deltaLimitSchema = z.coerce\n .number()\n .int()\n .min(1)\n .max(100)\n .optional()\n .describe('Maximum number of updates to return in one delta poll');\n"]}
@@ -1,9 +1,26 @@
1
1
  'use strict';
2
2
 
3
+ var chunkZNP74O27_cjs = require('./chunk-ZNP74O27.cjs');
4
+ var chunkXTFWFQZ7_cjs = require('./chunk-XTFWFQZ7.cjs');
3
5
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
6
+ var features = require('@mastra/core/features');
7
+ var v4 = require('zod/v4');
4
8
 
5
- // src/server/handlers/observability-shared.ts
6
- var NEW_OBSERVABILITY_UPGRADE_MESSAGE = "New observability endpoints require a newer @mastra/core. Please upgrade.";
9
+ var OBSERVABILITY_DELTA_POLLING_FEATURE = "observability-delta-polling";
10
+ var OBSERVABILITY_DELTA_POLLING_UPGRADE_MESSAGE = "Delta polling requires a newer @mastra/core with observability delta polling support. Please upgrade.";
11
+ var OBSERVABILITY_LIST_ENDPOINTS = {
12
+ traces: "traces",
13
+ branches: "branches",
14
+ logs: "logs",
15
+ metrics: "metrics",
16
+ scores: "scores",
17
+ feedback: "feedback"
18
+ };
19
+ var OBSERVABILITY_DELTA_POLLING_STORAGE_FEATURE = "delta-polling";
20
+ function getFeatures(observabilityStore) {
21
+ const candidate = observabilityStore;
22
+ return candidate.getFeatures?.();
23
+ }
7
24
  function getStorage(mastra) {
8
25
  const storage = mastra.getStorage();
9
26
  if (!storage) {
@@ -19,7 +36,26 @@ async function getObservabilityStore(mastra) {
19
36
  }
20
37
  return observability;
21
38
  }
39
+ function assertObservabilityDeltaSupported(observabilityStore, endpoint) {
40
+ if (!features.coreFeatures.has(OBSERVABILITY_DELTA_POLLING_FEATURE)) {
41
+ throw new chunk64ITUOXI_cjs.HTTPException(501, {
42
+ message: `${OBSERVABILITY_DELTA_POLLING_UPGRADE_MESSAGE} (endpoint: ${endpoint})`
43
+ });
44
+ }
45
+ if (getFeatures(observabilityStore)?.includes(OBSERVABILITY_DELTA_POLLING_STORAGE_FEATURE)) {
46
+ return;
47
+ }
48
+ throw new chunk64ITUOXI_cjs.HTTPException(501, {
49
+ message: `Delta polling is not supported by the configured observability store for ${endpoint}`
50
+ });
51
+ }
22
52
  var NEW_ROUTE_DEFS = {
53
+ LIST_METRICS: {
54
+ method: "GET",
55
+ path: "/observability/metrics",
56
+ summary: "List metrics",
57
+ description: "Returns a paginated list of metrics with optional filtering and sorting"
58
+ },
23
59
  LIST_LOGS: {
24
60
  method: "GET",
25
61
  path: "/observability/logs",
@@ -189,10 +225,93 @@ var NEW_ROUTE_DEFS = {
189
225
  description: "Returns distinct tags with optional entity type filtering"
190
226
  }
191
227
  };
228
+ function createObservabilityListQuerySchema(filterSchema, orderBySchema) {
229
+ const unwrapDefault = (schema) => {
230
+ const zodSchema = schema;
231
+ return zodSchema instanceof v4.z.ZodDefault ? zodSchema.unwrap() : zodSchema;
232
+ };
233
+ const paginationShape = chunkZNP74O27_cjs.paginationArgsSchema.shape;
234
+ const orderByShape = orderBySchema.shape;
235
+ const pageSchema = unwrapDefault(paginationShape.page);
236
+ const perPageSchema = unwrapDefault(paginationShape.perPage);
237
+ const fieldSchema = orderByShape.field ? unwrapDefault(orderByShape.field) : v4.z.never().optional();
238
+ const directionSchema = orderByShape.direction ? unwrapDefault(orderByShape.direction) : v4.z.never().optional();
239
+ return chunkXTFWFQZ7_cjs.wrapSchemaForQueryParams(
240
+ v4.z.object({
241
+ ...filterSchema.shape,
242
+ page: pageSchema,
243
+ perPage: perPageSchema,
244
+ field: fieldSchema,
245
+ direction: directionSchema,
246
+ mode: chunkZNP74O27_cjs.listModeSchema.optional(),
247
+ after: chunkZNP74O27_cjs.deltaCursorSchema.optional(),
248
+ limit: chunkZNP74O27_cjs.deltaLimitSchema
249
+ }).partial()
250
+ ).superRefine((value, ctx) => {
251
+ const isDelta = value.mode === "delta";
252
+ const hasPagination = value.page !== void 0 || value.perPage !== void 0;
253
+ const hasOrderBy = value.field !== void 0 || value.direction !== void 0;
254
+ const hasAfter = value.after !== void 0;
255
+ const hasLimit = value.limit !== void 0;
256
+ if (isDelta) {
257
+ if (hasPagination) {
258
+ if (value.page !== void 0) {
259
+ ctx.addIssue({
260
+ code: v4.z.ZodIssueCode.custom,
261
+ path: ["page"],
262
+ message: "`page` is not allowed when `mode=delta`"
263
+ });
264
+ }
265
+ if (value.perPage !== void 0) {
266
+ ctx.addIssue({
267
+ code: v4.z.ZodIssueCode.custom,
268
+ path: ["perPage"],
269
+ message: "`perPage` is not allowed when `mode=delta`"
270
+ });
271
+ }
272
+ }
273
+ if (hasOrderBy) {
274
+ if (value.field !== void 0) {
275
+ ctx.addIssue({
276
+ code: v4.z.ZodIssueCode.custom,
277
+ path: ["field"],
278
+ message: "`field` is not allowed when `mode=delta`"
279
+ });
280
+ }
281
+ if (value.direction !== void 0) {
282
+ ctx.addIssue({
283
+ code: v4.z.ZodIssueCode.custom,
284
+ path: ["direction"],
285
+ message: "`direction` is not allowed when `mode=delta`"
286
+ });
287
+ }
288
+ }
289
+ return;
290
+ }
291
+ if (hasAfter) {
292
+ ctx.addIssue({
293
+ code: v4.z.ZodIssueCode.custom,
294
+ path: ["after"],
295
+ message: "`after` is only allowed when `mode=delta`"
296
+ });
297
+ }
298
+ if (hasLimit) {
299
+ ctx.addIssue({
300
+ code: v4.z.ZodIssueCode.custom,
301
+ path: ["limit"],
302
+ message: "`limit` is only allowed when `mode=delta`"
303
+ });
304
+ }
305
+ });
306
+ }
192
307
 
193
- exports.NEW_OBSERVABILITY_UPGRADE_MESSAGE = NEW_OBSERVABILITY_UPGRADE_MESSAGE;
194
308
  exports.NEW_ROUTE_DEFS = NEW_ROUTE_DEFS;
309
+ exports.OBSERVABILITY_DELTA_POLLING_FEATURE = OBSERVABILITY_DELTA_POLLING_FEATURE;
310
+ exports.OBSERVABILITY_DELTA_POLLING_UPGRADE_MESSAGE = OBSERVABILITY_DELTA_POLLING_UPGRADE_MESSAGE;
311
+ exports.OBSERVABILITY_LIST_ENDPOINTS = OBSERVABILITY_LIST_ENDPOINTS;
312
+ exports.assertObservabilityDeltaSupported = assertObservabilityDeltaSupported;
313
+ exports.createObservabilityListQuerySchema = createObservabilityListQuerySchema;
195
314
  exports.getObservabilityStore = getObservabilityStore;
196
315
  exports.getStorage = getStorage;
197
- //# sourceMappingURL=chunk-SUT6SU4I.cjs.map
198
- //# sourceMappingURL=chunk-SUT6SU4I.cjs.map
316
+ //# sourceMappingURL=chunk-Z4PDJRZT.cjs.map
317
+ //# sourceMappingURL=chunk-Z4PDJRZT.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/observability-shared.ts"],"names":["HTTPException","coreFeatures","z","paginationArgsSchema","wrapSchemaForQueryParams","listModeSchema","deltaCursorSchema","deltaLimitSchema"],"mappings":"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","file":"chunk-Z4PDJRZT.cjs","sourcesContent":["import type { Mastra } from '@mastra/core';\nimport { coreFeatures } from '@mastra/core/features';\nimport type { MastraCompositeStore, ObservabilityStorage } from '@mastra/core/storage';\nimport { z } from 'zod/v4';\nimport { HTTPException } from '../http-exception';\nimport type { ServerRoute } from '../server-adapter/routes';\nimport { wrapSchemaForQueryParams } from '../server-adapter/routes/route-builder';\nimport {\n deltaCursorSchema,\n deltaLimitSchema,\n listModeSchema,\n paginationArgsSchema,\n} from './observability-list-query-schemas';\n\nexport const OBSERVABILITY_DELTA_POLLING_FEATURE = 'observability-delta-polling';\nexport const OBSERVABILITY_DELTA_POLLING_UPGRADE_MESSAGE =\n 'Delta polling requires a newer @mastra/core with observability delta polling support. Please upgrade.';\n\nexport const OBSERVABILITY_LIST_ENDPOINTS = {\n traces: 'traces',\n branches: 'branches',\n logs: 'logs',\n metrics: 'metrics',\n scores: 'scores',\n feedback: 'feedback',\n} as const;\n\nexport type ObservabilityListEndpoint =\n (typeof OBSERVABILITY_LIST_ENDPOINTS)[keyof typeof OBSERVABILITY_LIST_ENDPOINTS];\nconst OBSERVABILITY_DELTA_POLLING_STORAGE_FEATURE = 'delta-polling';\n\nfunction getFeatures(observabilityStore: ObservabilityStorage): readonly string[] | undefined {\n const candidate = observabilityStore as ObservabilityStorage & {\n getFeatures?: () => readonly string[] | undefined;\n };\n return candidate.getFeatures?.();\n}\n\n/** Retrieves MastraCompositeStore or throws 500 if unavailable. */\nexport function getStorage(mastra: Mastra): MastraCompositeStore {\n const storage = mastra.getStorage();\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not available' });\n }\n return storage;\n}\n\n/** Retrieves the observability storage domain or throws 500 if unavailable. */\nexport async function getObservabilityStore(mastra: Mastra): Promise<ObservabilityStorage> {\n const storage = getStorage(mastra);\n const observability = await storage.getStore('observability');\n if (!observability) {\n throw new HTTPException(500, { message: 'Observability storage domain is not available' });\n }\n return observability;\n}\n\nexport function assertObservabilityDeltaSupported(\n observabilityStore: ObservabilityStorage,\n endpoint: ObservabilityListEndpoint,\n) {\n if (!coreFeatures.has(OBSERVABILITY_DELTA_POLLING_FEATURE)) {\n throw new HTTPException(501, {\n message: `${OBSERVABILITY_DELTA_POLLING_UPGRADE_MESSAGE} (endpoint: ${endpoint})`,\n });\n }\n\n if (getFeatures(observabilityStore)?.includes(OBSERVABILITY_DELTA_POLLING_STORAGE_FEATURE)) {\n return;\n }\n\n throw new HTTPException(501, {\n message: `Delta polling is not supported by the configured observability store for ${endpoint}`,\n });\n}\n\nexport interface RouteDetails {\n method: ServerRoute['method'];\n path: `/${string}`;\n summary: string;\n description: string;\n requiresPermission?: ServerRoute['requiresPermission'];\n}\n\nexport const NEW_ROUTE_DEFS = {\n LIST_METRICS: {\n method: 'GET',\n path: '/observability/metrics',\n summary: 'List metrics',\n description: 'Returns a paginated list of metrics with optional filtering and sorting',\n },\n\n LIST_LOGS: {\n method: 'GET',\n path: '/observability/logs',\n summary: 'List logs',\n description: 'Returns a paginated list of logs with optional filtering and sorting',\n },\n\n LIST_SCORES: {\n method: 'GET',\n path: '/observability/scores',\n summary: 'List scores',\n description: 'Returns a paginated list of scores with optional filtering and sorting',\n },\n\n CREATE_SCORE: {\n method: 'POST',\n path: '/observability/scores',\n summary: 'Create a score',\n description: 'Creates a single score record in the observability store',\n },\n\n GET_SCORE: {\n method: 'GET',\n path: '/observability/scores/:scoreId',\n summary: 'Get score',\n description: 'Returns a single score by scoreId',\n },\n\n GET_SCORE_AGGREGATE: {\n method: 'POST',\n path: '/observability/scores/aggregate',\n summary: 'Get score aggregate',\n description: 'Returns an aggregated score value with optional period-over-period comparison',\n requiresPermission: 'observability:read',\n },\n\n GET_SCORE_BREAKDOWN: {\n method: 'POST',\n path: '/observability/scores/breakdown',\n summary: 'Get score breakdown',\n description: 'Returns score values grouped by specified dimensions',\n requiresPermission: 'observability:read',\n },\n\n GET_SCORE_TIME_SERIES: {\n method: 'POST',\n path: '/observability/scores/timeseries',\n summary: 'Get score time series',\n description: 'Returns score values bucketed by time interval with optional grouping',\n requiresPermission: 'observability:read',\n },\n\n GET_SCORE_PERCENTILES: {\n method: 'POST',\n path: '/observability/scores/percentiles',\n summary: 'Get score percentiles',\n description: 'Returns percentile values for a score bucketed by time interval',\n requiresPermission: 'observability:read',\n },\n\n LIST_FEEDBACK: {\n method: 'GET',\n path: '/observability/feedback',\n summary: 'List feedback',\n description: 'Returns a paginated list of feedback with optional filtering and sorting',\n },\n\n CREATE_FEEDBACK: {\n method: 'POST',\n path: '/observability/feedback',\n summary: 'Create feedback',\n description: 'Creates a single feedback record in the observability store',\n },\n\n GET_FEEDBACK_AGGREGATE: {\n method: 'POST',\n path: '/observability/feedback/aggregate',\n summary: 'Get feedback aggregate',\n description: 'Returns an aggregated numeric feedback value with optional period-over-period comparison',\n requiresPermission: 'observability:read',\n },\n\n GET_FEEDBACK_BREAKDOWN: {\n method: 'POST',\n path: '/observability/feedback/breakdown',\n summary: 'Get feedback breakdown',\n description: 'Returns numeric feedback values grouped by specified dimensions',\n requiresPermission: 'observability:read',\n },\n\n GET_FEEDBACK_TIME_SERIES: {\n method: 'POST',\n path: '/observability/feedback/timeseries',\n summary: 'Get feedback time series',\n description: 'Returns numeric feedback values bucketed by time interval with optional grouping',\n requiresPermission: 'observability:read',\n },\n\n GET_FEEDBACK_PERCENTILES: {\n method: 'POST',\n path: '/observability/feedback/percentiles',\n summary: 'Get feedback percentiles',\n description: 'Returns percentile values for numeric feedback bucketed by time interval',\n requiresPermission: 'observability:read',\n },\n\n GET_METRIC_AGGREGATE: {\n method: 'POST',\n path: '/observability/metrics/aggregate',\n summary: 'Get metric aggregate',\n description: 'Returns an aggregated metric value with optional period-over-period comparison',\n requiresPermission: 'observability:read',\n },\n\n GET_METRIC_BREAKDOWN: {\n method: 'POST',\n path: '/observability/metrics/breakdown',\n summary: 'Get metric breakdown',\n description: 'Returns metric values grouped by specified dimensions',\n requiresPermission: 'observability:read',\n },\n\n GET_METRIC_TIME_SERIES: {\n method: 'POST',\n path: '/observability/metrics/timeseries',\n summary: 'Get metric time series',\n description: 'Returns metric values bucketed by time interval with optional grouping',\n requiresPermission: 'observability:read',\n },\n\n GET_METRIC_PERCENTILES: {\n method: 'POST',\n path: '/observability/metrics/percentiles',\n summary: 'Get metric percentiles',\n description: 'Returns percentile values for a metric bucketed by time interval',\n requiresPermission: 'observability:read',\n },\n\n GET_METRIC_NAMES: {\n method: 'GET',\n path: '/observability/discovery/metric-names',\n summary: 'Get metric names',\n description: 'Returns distinct metric names with optional prefix filtering',\n },\n\n GET_METRIC_LABEL_KEYS: {\n method: 'GET',\n path: '/observability/discovery/metric-label-keys',\n summary: 'Get metric label keys',\n description: 'Returns distinct label keys for a given metric',\n },\n\n GET_METRIC_LABEL_VALUES: {\n method: 'GET',\n path: '/observability/discovery/metric-label-values',\n summary: 'Get label values',\n description: 'Returns distinct values for a given metric label key',\n },\n\n GET_ENTITY_TYPES: {\n method: 'GET',\n path: '/observability/discovery/entity-types',\n summary: 'Get entity types',\n description: 'Returns distinct entity types from observability data',\n },\n\n GET_ENTITY_NAMES: {\n method: 'GET',\n path: '/observability/discovery/entity-names',\n summary: 'Get entity names',\n description: 'Returns distinct entity names with optional type filtering',\n },\n\n GET_SERVICE_NAMES: {\n method: 'GET',\n path: '/observability/discovery/service-names',\n summary: 'Get service names',\n description: 'Returns distinct service names from observability data',\n },\n\n GET_ENVIRONMENTS: {\n method: 'GET',\n path: '/observability/discovery/environments',\n summary: 'Get environments',\n description: 'Returns distinct environments from observability data',\n },\n\n GET_TAGS: {\n method: 'GET',\n path: '/observability/discovery/tags',\n summary: 'Get tags',\n description: 'Returns distinct tags with optional entity type filtering',\n },\n} as const satisfies Record<string, RouteDetails>;\n\nexport type NewRoutesKey = keyof typeof NEW_ROUTE_DEFS;\nexport type NewRoutesDefinitions = (typeof NEW_ROUTE_DEFS)[NewRoutesKey];\n\nexport function createObservabilityListQuerySchema<\n TFilter extends z.ZodObject<z.ZodRawShape>,\n TOrderBy extends z.ZodObject<z.ZodRawShape>,\n>(filterSchema: TFilter, orderBySchema: TOrderBy) {\n const unwrapDefault = (schema: unknown) => {\n const zodSchema = schema as z.ZodTypeAny;\n return zodSchema instanceof z.ZodDefault ? zodSchema.unwrap() : zodSchema;\n };\n const paginationShape = paginationArgsSchema.shape as unknown as Record<string, z.ZodTypeAny>;\n const orderByShape = orderBySchema.shape as unknown as Record<string, z.ZodTypeAny>;\n\n const pageSchema = unwrapDefault(paginationShape.page);\n const perPageSchema = unwrapDefault(paginationShape.perPage);\n const fieldSchema = orderByShape.field ? unwrapDefault(orderByShape.field) : z.never().optional();\n const directionSchema = orderByShape.direction ? unwrapDefault(orderByShape.direction) : z.never().optional();\n\n return wrapSchemaForQueryParams(\n z\n .object({\n ...filterSchema.shape,\n page: pageSchema,\n perPage: perPageSchema,\n field: fieldSchema,\n direction: directionSchema,\n mode: listModeSchema.optional(),\n after: deltaCursorSchema.optional(),\n limit: deltaLimitSchema,\n })\n .partial(),\n ).superRefine((value, ctx) => {\n const isDelta = value.mode === 'delta';\n const hasPagination = value.page !== undefined || value.perPage !== undefined;\n const hasOrderBy = value.field !== undefined || value.direction !== undefined;\n const hasAfter = value.after !== undefined;\n const hasLimit = value.limit !== undefined;\n\n if (isDelta) {\n if (hasPagination) {\n if (value.page !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['page'],\n message: '`page` is not allowed when `mode=delta`',\n });\n }\n if (value.perPage !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['perPage'],\n message: '`perPage` is not allowed when `mode=delta`',\n });\n }\n }\n if (hasOrderBy) {\n if (value.field !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['field'],\n message: '`field` is not allowed when `mode=delta`',\n });\n }\n if (value.direction !== undefined) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['direction'],\n message: '`direction` is not allowed when `mode=delta`',\n });\n }\n }\n return;\n }\n\n if (hasAfter) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['after'],\n message: '`after` is only allowed when `mode=delta`',\n });\n }\n if (hasLimit) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n path: ['limit'],\n message: '`limit` is only allowed when `mode=delta`',\n });\n }\n });\n}\n"]}
@@ -1,9 +1,10 @@
1
1
  'use strict';
2
2
 
3
+ var chunkN6RQC4Z3_cjs = require('./chunk-N6RQC4Z3.cjs');
3
4
  var chunk2XZ2466F_cjs = require('./chunk-2XZ2466F.cjs');
4
- var chunkCIPZ4VOZ_cjs = require('./chunk-CIPZ4VOZ.cjs');
5
- var chunkAZORAK4H_cjs = require('./chunk-AZORAK4H.cjs');
6
- var chunkB34S64RC_cjs = require('./chunk-B34S64RC.cjs');
5
+ var chunkQZ6UFQ7V_cjs = require('./chunk-QZ6UFQ7V.cjs');
6
+ var chunkYNSUYESL_cjs = require('./chunk-YNSUYESL.cjs');
7
+ var chunkXTFWFQZ7_cjs = require('./chunk-XTFWFQZ7.cjs');
7
8
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
8
9
 
9
10
  // src/server/handlers/scorer-versions.ts
@@ -17,18 +18,18 @@ var SNAPSHOT_CONFIG_FIELDS = [
17
18
  "presetConfig",
18
19
  "defaultSampling"
19
20
  ];
20
- var LIST_SCORER_VERSIONS_ROUTE = chunkAZORAK4H_cjs.createRoute({
21
+ var LIST_SCORER_VERSIONS_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
21
22
  method: "GET",
22
23
  path: "/stored/scorers/:scorerId/versions",
23
24
  requiresAuth: true,
24
25
  responseType: "json",
25
- pathParamSchema: chunkCIPZ4VOZ_cjs.scorerVersionPathParams,
26
- queryParamSchema: chunkCIPZ4VOZ_cjs.listScorerVersionsQuerySchema,
27
- responseSchema: chunkCIPZ4VOZ_cjs.listScorerVersionsResponseSchema,
26
+ pathParamSchema: chunkN6RQC4Z3_cjs.scorerVersionPathParams,
27
+ queryParamSchema: chunkN6RQC4Z3_cjs.listScorerVersionsQuerySchema,
28
+ responseSchema: chunkN6RQC4Z3_cjs.listScorerVersionsResponseSchema,
28
29
  summary: "List scorer versions",
29
30
  description: "Returns a paginated list of all versions for a stored scorer",
30
31
  tags: ["Scorer Versions"],
31
- handler: async ({ mastra, scorerId, page, perPage, orderBy }) => {
32
+ handler: async ({ mastra, scorerId, page, perPage, orderBy, requestContext }) => {
32
33
  try {
33
34
  const storage = mastra.getStorage();
34
35
  if (!storage) {
@@ -42,6 +43,7 @@ var LIST_SCORER_VERSIONS_ROUTE = chunkAZORAK4H_cjs.createRoute({
42
43
  if (!scorer) {
43
44
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Scorer with id ${scorerId} not found` });
44
45
  }
46
+ chunkQZ6UFQ7V_cjs.assertStoredResourceScope(scorer, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
45
47
  const result = await scorerStore.listVersions({
46
48
  scorerDefinitionId: scorerId,
47
49
  page,
@@ -50,22 +52,22 @@ var LIST_SCORER_VERSIONS_ROUTE = chunkAZORAK4H_cjs.createRoute({
50
52
  });
51
53
  return result;
52
54
  } catch (error) {
53
- return chunkB34S64RC_cjs.handleError(error, "Error listing scorer versions");
55
+ return chunkYNSUYESL_cjs.handleError(error, "Error listing scorer versions");
54
56
  }
55
57
  }
56
58
  });
57
- var CREATE_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
59
+ var CREATE_SCORER_VERSION_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
58
60
  method: "POST",
59
61
  path: "/stored/scorers/:scorerId/versions",
60
62
  requiresAuth: true,
61
63
  responseType: "json",
62
- pathParamSchema: chunkCIPZ4VOZ_cjs.scorerVersionPathParams,
63
- bodySchema: chunkCIPZ4VOZ_cjs.createScorerVersionBodySchema,
64
- responseSchema: chunkCIPZ4VOZ_cjs.createScorerVersionResponseSchema,
64
+ pathParamSchema: chunkN6RQC4Z3_cjs.scorerVersionPathParams,
65
+ bodySchema: chunkN6RQC4Z3_cjs.createScorerVersionBodySchema,
66
+ responseSchema: chunkN6RQC4Z3_cjs.createScorerVersionResponseSchema,
65
67
  summary: "Create scorer version",
66
68
  description: "Creates a new version snapshot of the current scorer configuration",
67
69
  tags: ["Scorer Versions"],
68
- handler: async ({ mastra, scorerId, changeMessage }) => {
70
+ handler: async ({ mastra, scorerId, changeMessage, requestContext }) => {
69
71
  try {
70
72
  const storage = mastra.getStorage();
71
73
  if (!storage) {
@@ -79,6 +81,7 @@ var CREATE_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
79
81
  if (!scorer) {
80
82
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Scorer with id ${scorerId} not found` });
81
83
  }
84
+ chunkQZ6UFQ7V_cjs.assertStoredResourceScope(scorer, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
82
85
  let currentConfig = {};
83
86
  if (scorer.activeVersionId) {
84
87
  const activeVersion = await scorerStore.getVersion(scorer.activeVersionId);
@@ -118,21 +121,21 @@ var CREATE_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
118
121
  );
119
122
  return version;
120
123
  } catch (error) {
121
- return chunkB34S64RC_cjs.handleError(error, "Error creating scorer version");
124
+ return chunkYNSUYESL_cjs.handleError(error, "Error creating scorer version");
122
125
  }
123
126
  }
124
127
  });
125
- var GET_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
128
+ var GET_SCORER_VERSION_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
126
129
  method: "GET",
127
130
  path: "/stored/scorers/:scorerId/versions/:versionId",
128
131
  requiresAuth: true,
129
132
  responseType: "json",
130
- pathParamSchema: chunkCIPZ4VOZ_cjs.scorerVersionIdPathParams,
131
- responseSchema: chunkCIPZ4VOZ_cjs.getScorerVersionResponseSchema,
133
+ pathParamSchema: chunkN6RQC4Z3_cjs.scorerVersionIdPathParams,
134
+ responseSchema: chunkN6RQC4Z3_cjs.getScorerVersionResponseSchema,
132
135
  summary: "Get scorer version",
133
136
  description: "Returns a specific version of a scorer by its version ID",
134
137
  tags: ["Scorer Versions"],
135
- handler: async ({ mastra, scorerId, versionId }) => {
138
+ handler: async ({ mastra, scorerId, versionId, requestContext }) => {
136
139
  try {
137
140
  const storage = mastra.getStorage();
138
141
  if (!storage) {
@@ -151,23 +154,25 @@ var GET_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
151
154
  message: `Version with id ${versionId} not found for scorer ${scorerId}`
152
155
  });
153
156
  }
157
+ const scorer = await scorerStore.getById(scorerId);
158
+ chunkQZ6UFQ7V_cjs.assertStoredResourceScope(scorer, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
154
159
  return version;
155
160
  } catch (error) {
156
- return chunkB34S64RC_cjs.handleError(error, "Error getting scorer version");
161
+ return chunkYNSUYESL_cjs.handleError(error, "Error getting scorer version");
157
162
  }
158
163
  }
159
164
  });
160
- var ACTIVATE_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
165
+ var ACTIVATE_SCORER_VERSION_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
161
166
  method: "POST",
162
167
  path: "/stored/scorers/:scorerId/versions/:versionId/activate",
163
168
  requiresAuth: true,
164
169
  responseType: "json",
165
- pathParamSchema: chunkCIPZ4VOZ_cjs.scorerVersionIdPathParams,
166
- responseSchema: chunkCIPZ4VOZ_cjs.activateScorerVersionResponseSchema,
170
+ pathParamSchema: chunkN6RQC4Z3_cjs.scorerVersionIdPathParams,
171
+ responseSchema: chunkN6RQC4Z3_cjs.activateScorerVersionResponseSchema,
167
172
  summary: "Activate scorer version",
168
173
  description: "Sets a specific version as the active version for the scorer",
169
174
  tags: ["Scorer Versions"],
170
- handler: async ({ mastra, scorerId, versionId }) => {
175
+ handler: async ({ mastra, scorerId, versionId, requestContext }) => {
171
176
  try {
172
177
  const storage = mastra.getStorage();
173
178
  if (!storage) {
@@ -181,6 +186,7 @@ var ACTIVATE_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
181
186
  if (!scorer) {
182
187
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Scorer with id ${scorerId} not found` });
183
188
  }
189
+ chunkQZ6UFQ7V_cjs.assertStoredResourceScope(scorer, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
184
190
  const version = await scorerStore.getVersion(versionId);
185
191
  if (!version) {
186
192
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Version with id ${versionId} not found` });
@@ -202,21 +208,21 @@ var ACTIVATE_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
202
208
  activeVersionId: versionId
203
209
  };
204
210
  } catch (error) {
205
- return chunkB34S64RC_cjs.handleError(error, "Error activating scorer version");
211
+ return chunkYNSUYESL_cjs.handleError(error, "Error activating scorer version");
206
212
  }
207
213
  }
208
214
  });
209
- var RESTORE_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
215
+ var RESTORE_SCORER_VERSION_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
210
216
  method: "POST",
211
217
  path: "/stored/scorers/:scorerId/versions/:versionId/restore",
212
218
  requiresAuth: true,
213
219
  responseType: "json",
214
- pathParamSchema: chunkCIPZ4VOZ_cjs.scorerVersionIdPathParams,
215
- responseSchema: chunkCIPZ4VOZ_cjs.restoreScorerVersionResponseSchema,
220
+ pathParamSchema: chunkN6RQC4Z3_cjs.scorerVersionIdPathParams,
221
+ responseSchema: chunkN6RQC4Z3_cjs.restoreScorerVersionResponseSchema,
216
222
  summary: "Restore scorer version",
217
223
  description: "Restores the scorer configuration from a version, creating a new version",
218
224
  tags: ["Scorer Versions"],
219
- handler: async ({ mastra, scorerId, versionId }) => {
225
+ handler: async ({ mastra, scorerId, versionId, requestContext }) => {
220
226
  try {
221
227
  const storage = mastra.getStorage();
222
228
  if (!storage) {
@@ -230,6 +236,7 @@ var RESTORE_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
230
236
  if (!scorer) {
231
237
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Scorer with id ${scorerId} not found` });
232
238
  }
239
+ chunkQZ6UFQ7V_cjs.assertStoredResourceScope(scorer, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
233
240
  const versionToRestore = await scorerStore.getVersion(versionId);
234
241
  if (!versionToRestore) {
235
242
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Version with id ${versionId} not found` });
@@ -273,21 +280,21 @@ var RESTORE_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
273
280
  mastra.getEditor()?.scorer.clearCache(scorerId);
274
281
  return newVersion;
275
282
  } catch (error) {
276
- return chunkB34S64RC_cjs.handleError(error, "Error restoring scorer version");
283
+ return chunkYNSUYESL_cjs.handleError(error, "Error restoring scorer version");
277
284
  }
278
285
  }
279
286
  });
280
- var DELETE_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
287
+ var DELETE_SCORER_VERSION_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
281
288
  method: "DELETE",
282
289
  path: "/stored/scorers/:scorerId/versions/:versionId",
283
290
  requiresAuth: true,
284
291
  responseType: "json",
285
- pathParamSchema: chunkCIPZ4VOZ_cjs.scorerVersionIdPathParams,
286
- responseSchema: chunkCIPZ4VOZ_cjs.deleteScorerVersionResponseSchema,
292
+ pathParamSchema: chunkN6RQC4Z3_cjs.scorerVersionIdPathParams,
293
+ responseSchema: chunkN6RQC4Z3_cjs.deleteScorerVersionResponseSchema,
287
294
  summary: "Delete scorer version",
288
295
  description: "Deletes a specific version (cannot delete the active version)",
289
296
  tags: ["Scorer Versions"],
290
- handler: async ({ mastra, scorerId, versionId }) => {
297
+ handler: async ({ mastra, scorerId, versionId, requestContext }) => {
291
298
  try {
292
299
  const storage = mastra.getStorage();
293
300
  if (!storage) {
@@ -301,6 +308,7 @@ var DELETE_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
301
308
  if (!scorer) {
302
309
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Scorer with id ${scorerId} not found` });
303
310
  }
311
+ chunkQZ6UFQ7V_cjs.assertStoredResourceScope(scorer, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
304
312
  const version = await scorerStore.getVersion(versionId);
305
313
  if (!version) {
306
314
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Version with id ${versionId} not found` });
@@ -322,22 +330,22 @@ var DELETE_SCORER_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
322
330
  message: `Version ${version.versionNumber} deleted successfully`
323
331
  };
324
332
  } catch (error) {
325
- return chunkB34S64RC_cjs.handleError(error, "Error deleting scorer version");
333
+ return chunkYNSUYESL_cjs.handleError(error, "Error deleting scorer version");
326
334
  }
327
335
  }
328
336
  });
329
- var COMPARE_SCORER_VERSIONS_ROUTE = chunkAZORAK4H_cjs.createRoute({
337
+ var COMPARE_SCORER_VERSIONS_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
330
338
  method: "GET",
331
339
  path: "/stored/scorers/:scorerId/versions/compare",
332
340
  requiresAuth: true,
333
341
  responseType: "json",
334
- pathParamSchema: chunkCIPZ4VOZ_cjs.scorerVersionPathParams,
335
- queryParamSchema: chunkCIPZ4VOZ_cjs.compareScorerVersionsQuerySchema,
336
- responseSchema: chunkCIPZ4VOZ_cjs.compareScorerVersionsResponseSchema,
342
+ pathParamSchema: chunkN6RQC4Z3_cjs.scorerVersionPathParams,
343
+ queryParamSchema: chunkN6RQC4Z3_cjs.compareScorerVersionsQuerySchema,
344
+ responseSchema: chunkN6RQC4Z3_cjs.compareScorerVersionsResponseSchema,
337
345
  summary: "Compare scorer versions",
338
346
  description: "Compares two versions and returns the differences between them",
339
347
  tags: ["Scorer Versions"],
340
- handler: async ({ mastra, scorerId, from, to }) => {
348
+ handler: async ({ mastra, scorerId, from, to, requestContext }) => {
341
349
  try {
342
350
  const storage = mastra.getStorage();
343
351
  if (!storage) {
@@ -347,6 +355,8 @@ var COMPARE_SCORER_VERSIONS_ROUTE = chunkAZORAK4H_cjs.createRoute({
347
355
  if (!scorerStore) {
348
356
  throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Scorer definitions storage domain is not available" });
349
357
  }
358
+ const scorer = await scorerStore.getById(scorerId);
359
+ chunkQZ6UFQ7V_cjs.assertStoredResourceScope(scorer, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
350
360
  const fromVersion = await scorerStore.getVersion(from);
351
361
  if (!fromVersion) {
352
362
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Version with id ${from} not found` });
@@ -380,7 +390,7 @@ var COMPARE_SCORER_VERSIONS_ROUTE = chunkAZORAK4H_cjs.createRoute({
380
390
  toVersion
381
391
  };
382
392
  } catch (error) {
383
- return chunkB34S64RC_cjs.handleError(error, "Error comparing scorer versions");
393
+ return chunkYNSUYESL_cjs.handleError(error, "Error comparing scorer versions");
384
394
  }
385
395
  }
386
396
  });
@@ -392,5 +402,5 @@ exports.DELETE_SCORER_VERSION_ROUTE = DELETE_SCORER_VERSION_ROUTE;
392
402
  exports.GET_SCORER_VERSION_ROUTE = GET_SCORER_VERSION_ROUTE;
393
403
  exports.LIST_SCORER_VERSIONS_ROUTE = LIST_SCORER_VERSIONS_ROUTE;
394
404
  exports.RESTORE_SCORER_VERSION_ROUTE = RESTORE_SCORER_VERSION_ROUTE;
395
- //# sourceMappingURL=chunk-JRZZN55Y.cjs.map
396
- //# sourceMappingURL=chunk-JRZZN55Y.cjs.map
405
+ //# sourceMappingURL=chunk-Z772ZUYH.cjs.map
406
+ //# sourceMappingURL=chunk-Z772ZUYH.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/scorer-versions.ts"],"names":["createRoute","scorerVersionPathParams","listScorerVersionsQuerySchema","listScorerVersionsResponseSchema","HTTPException","assertStoredResourceScope","getStoredResourceScope","handleError","createScorerVersionBodySchema","createScorerVersionResponseSchema","extractConfigFromVersion","calculateChangedFields","createVersionWithRetry","enforceRetentionLimit","scorerVersionIdPathParams","getScorerVersionResponseSchema","activateScorerVersionResponseSchema","restoreScorerVersionResponseSchema","deleteScorerVersionResponseSchema","compareScorerVersionsQuerySchema","compareScorerVersionsResponseSchema","computeVersionDiffs"],"mappings":"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","file":"chunk-Z772ZUYH.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n scorerVersionPathParams,\n scorerVersionIdPathParams,\n listScorerVersionsQuerySchema,\n createScorerVersionBodySchema,\n compareScorerVersionsQuerySchema,\n listScorerVersionsResponseSchema,\n getScorerVersionResponseSchema,\n createScorerVersionResponseSchema,\n activateScorerVersionResponseSchema,\n restoreScorerVersionResponseSchema,\n deleteScorerVersionResponseSchema,\n compareScorerVersionsResponseSchema,\n} from '../schemas/scorer-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope } from '../utils';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n/**\n * GET /stored/scorers/:scorerId/versions - List all versions for a scorer\n */\nexport const LIST_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: listScorerVersionsQuerySchema,\n responseSchema: listScorerVersionsResponseSchema,\n summary: 'List scorer versions',\n description: 'Returns a paginated list of all versions for a stored scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, page, perPage, orderBy, requestContext }) => {\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 scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const result = await scorerStore.listVersions({\n scorerDefinitionId: scorerId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing scorer versions');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions - Create a new version snapshot\n */\nexport const CREATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n bodySchema: createScorerVersionBodySchema,\n responseSchema: createScorerVersionResponseSchema,\n summary: 'Create scorer version',\n description: 'Creates a new version snapshot of the current scorer configuration',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, changeMessage, requestContext }) => {\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 scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n let currentConfig: Record<string, unknown> = {};\n if (scorer.activeVersionId) {\n const activeVersion = await scorerStore.getVersion(scorer.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n\n // If no activeVersionId, fall back to latest version config\n if (!scorer.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/:versionId - Get a specific version\n */\nexport const GET_SCORER_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: getScorerVersionResponseSchema,\n summary: 'Get scorer version',\n description: 'Returns a specific version of a scorer by its version ID',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\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 scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const version = await scorerStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n const scorer = await scorerStore.getById(scorerId);\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: activateScorerVersionResponseSchema,\n summary: 'Activate scorer version',\n description: 'Sets a specific version as the active version for the scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\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 scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n await scorerStore.update({\n id: scorerId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/restore - Restore scorer to a version\n */\nexport const RESTORE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: restoreScorerVersionResponseSchema,\n summary: 'Restore scorer version',\n description: 'Restores the scorer configuration from a version, creating a new version',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\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 scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const versionToRestore = await scorerStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n await scorerStore.update({\n id: scorerId,\n ...restoredConfig,\n });\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await scorerStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring scorer version');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:scorerId/versions/:versionId - Delete a version\n */\nexport const DELETE_SCORER_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: deleteScorerVersionResponseSchema,\n summary: 'Delete scorer version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\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 scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n if (scorer.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await scorerStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/compare - Compare two versions\n */\nexport const COMPARE_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: compareScorerVersionsQuerySchema,\n responseSchema: compareScorerVersionsResponseSchema,\n summary: 'Compare scorer versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, from, to, requestContext }) => {\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 scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n const scorer = await scorerStore.getById(scorerId);\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const fromVersion = await scorerStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for scorer ${scorerId}`,\n });\n }\n\n const toVersion = await scorerStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for scorer ${scorerId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing scorer versions');\n }\n },\n});\n"]}
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
4
+
5
+ // src/server/handlers/validate-avatar.ts
6
+ var AVATAR_MAX_BYTES = 512 * 1024;
7
+ function validateMetadataAvatarUrl(metadata) {
8
+ if (!metadata || !("avatarUrl" in metadata) || metadata.avatarUrl === null || metadata.avatarUrl === void 0)
9
+ return;
10
+ if (typeof metadata.avatarUrl !== "string") {
11
+ throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "metadata.avatarUrl must be a string" });
12
+ }
13
+ const dataUrl = metadata.avatarUrl;
14
+ const match = dataUrl.match(/^data:([^;]+);base64,(.+)$/);
15
+ if (!match) {
16
+ throw new chunk64ITUOXI_cjs.HTTPException(400, {
17
+ message: "metadata.avatarUrl must be a valid data URL (data:<mime>;base64,<data>)"
18
+ });
19
+ }
20
+ const base64Payload = match[2];
21
+ const isStrictBase64 = base64Payload.length > 0 && base64Payload.length % 4 === 0 && /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(base64Payload);
22
+ if (!isStrictBase64) {
23
+ throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "metadata.avatarUrl contains invalid base64" });
24
+ }
25
+ const byteLength = Buffer.from(base64Payload, "base64").byteLength;
26
+ if (byteLength === 0) {
27
+ throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "metadata.avatarUrl is empty" });
28
+ }
29
+ if (byteLength > AVATAR_MAX_BYTES) {
30
+ throw new chunk64ITUOXI_cjs.HTTPException(413, {
31
+ message: `metadata.avatarUrl exceeds ${AVATAR_MAX_BYTES}-byte limit (got ${byteLength})`
32
+ });
33
+ }
34
+ }
35
+
36
+ exports.validateMetadataAvatarUrl = validateMetadataAvatarUrl;
37
+ //# sourceMappingURL=chunk-ZCX2J552.cjs.map
38
+ //# sourceMappingURL=chunk-ZCX2J552.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/validate-avatar.ts"],"names":["HTTPException"],"mappings":";;;;;AAEA,IAAM,mBAAmB,GAAA,GAAM,IAAA;AAOxB,SAAS,0BAA0B,QAAA,EAAqD;AAC7F,EAAA,IAAI,CAAC,YAAY,EAAE,WAAA,IAAe,aAAa,QAAA,CAAS,SAAA,KAAc,IAAA,IAAQ,QAAA,CAAS,SAAA,KAAc,MAAA;AACnG,IAAA;AACF,EAAA,IAAI,OAAO,QAAA,CAAS,SAAA,KAAc,QAAA,EAAU;AAC1C,IAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,uCAAuC,CAAA;AAAA,EACjF;AAEA,EAAA,MAAM,UAAU,QAAA,CAAS,SAAA;AACzB,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,KAAA,CAAM,4BAA4B,CAAA;AACxD,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK;AAAA,MAC3B,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH;AAKA,EAAA,MAAM,aAAA,GAAgB,MAAM,CAAC,CAAA;AAC7B,EAAA,MAAM,cAAA,GACJ,aAAA,CAAc,MAAA,GAAS,CAAA,IACvB,aAAA,CAAc,SAAS,CAAA,KAAM,CAAA,IAC7B,kEAAA,CAAmE,IAAA,CAAK,aAAa,CAAA;AACvF,EAAA,IAAI,CAAC,cAAA,EAAgB;AACnB,IAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,8CAA8C,CAAA;AAAA,EACxF;AACA,EAAA,MAAM,UAAA,GAAa,MAAA,CAAO,IAAA,CAAK,aAAA,EAAe,QAAQ,CAAA,CAAE,UAAA;AAExD,EAAA,IAAI,eAAe,CAAA,EAAG;AACpB,IAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,+BAA+B,CAAA;AAAA,EACzE;AAEA,EAAA,IAAI,aAAa,gBAAA,EAAkB;AACjC,IAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK;AAAA,MAC3B,OAAA,EAAS,CAAA,2BAAA,EAA8B,gBAAgB,CAAA,iBAAA,EAAoB,UAAU,CAAA,CAAA;AAAA,KACtF,CAAA;AAAA,EACH;AACF","file":"chunk-ZCX2J552.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\n\nconst AVATAR_MAX_BYTES = 512 * 1024; // 512 KB\n\n/**\n * Validates `metadata.avatarUrl` if present.\n * Ensures it's a well-formed data URL and the decoded payload is ≤ 512 KB.\n * No-ops when metadata is absent or doesn't contain avatarUrl.\n */\nexport function validateMetadataAvatarUrl(metadata: Record<string, unknown> | undefined): void {\n if (!metadata || !('avatarUrl' in metadata) || metadata.avatarUrl === null || metadata.avatarUrl === undefined)\n return;\n if (typeof metadata.avatarUrl !== 'string') {\n throw new HTTPException(400, { message: 'metadata.avatarUrl must be a string' });\n }\n\n const dataUrl = metadata.avatarUrl;\n const match = dataUrl.match(/^data:([^;]+);base64,(.+)$/);\n if (!match) {\n throw new HTTPException(400, {\n message: 'metadata.avatarUrl must be a valid data URL (data:<mime>;base64,<data>)',\n });\n }\n\n // `Buffer.from(..., 'base64')` decodes leniently — it silently ignores\n // invalid characters and never throws. Validate the payload format strictly\n // before measuring its byte length so malformed input is rejected.\n const base64Payload = match[2]!;\n const isStrictBase64 =\n base64Payload.length > 0 &&\n base64Payload.length % 4 === 0 &&\n /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(base64Payload);\n if (!isStrictBase64) {\n throw new HTTPException(400, { message: 'metadata.avatarUrl contains invalid base64' });\n }\n const byteLength = Buffer.from(base64Payload, 'base64').byteLength;\n\n if (byteLength === 0) {\n throw new HTTPException(400, { message: 'metadata.avatarUrl is empty' });\n }\n\n if (byteLength > AVATAR_MAX_BYTES) {\n throw new HTTPException(413, {\n message: `metadata.avatarUrl exceeds ${AVATAR_MAX_BYTES}-byte limit (got ${byteLength})`,\n });\n }\n}\n"]}