@mastra/server 1.51.0-alpha.7 → 1.51.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 (331) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/_types/@mastra_schema-compat/dist/_types/@internal_ai-sdk-v5/dist/index.d.ts +93 -3
  3. package/dist/_types/@mastra_schema-compat/dist/_types/@internal_ai-v6/dist/index.d.ts +467 -22
  4. package/dist/{api-schema-manifest-ZBRJBFSL.js → api-schema-manifest-5N4CH3B3.js} +4 -4
  5. package/dist/{api-schema-manifest-ZBRJBFSL.js.map → api-schema-manifest-5N4CH3B3.js.map} +1 -1
  6. package/dist/{api-schema-manifest-DE2A4RUM.cjs → api-schema-manifest-PY3KYLMU.cjs} +6 -6
  7. package/dist/{api-schema-manifest-DE2A4RUM.cjs.map → api-schema-manifest-PY3KYLMU.cjs.map} +1 -1
  8. package/dist/{chunk-I432F3YA.cjs → chunk-2QNU6QRD.cjs} +11 -11
  9. package/dist/{chunk-I432F3YA.cjs.map → chunk-2QNU6QRD.cjs.map} +1 -1
  10. package/dist/{chunk-JA7XOFOA.cjs → chunk-3MPULWGH.cjs} +8 -8
  11. package/dist/{chunk-JA7XOFOA.cjs.map → chunk-3MPULWGH.cjs.map} +1 -1
  12. package/dist/{chunk-HVRGAK4V.cjs → chunk-4I32EWP4.cjs} +7 -7
  13. package/dist/{chunk-HVRGAK4V.cjs.map → chunk-4I32EWP4.cjs.map} +1 -1
  14. package/dist/{chunk-NNXRZOOG.js → chunk-4NK4LJMY.js} +3 -3
  15. package/dist/{chunk-NNXRZOOG.js.map → chunk-4NK4LJMY.js.map} +1 -1
  16. package/dist/{chunk-FEUXFWF5.cjs → chunk-4VDJYNCU.cjs} +4 -4
  17. package/dist/{chunk-FEUXFWF5.cjs.map → chunk-4VDJYNCU.cjs.map} +1 -1
  18. package/dist/{chunk-VQG4INIR.js → chunk-5JAVWC7V.js} +2097 -1297
  19. package/dist/chunk-5JAVWC7V.js.map +1 -0
  20. package/dist/{chunk-CKEYMXKW.cjs → chunk-5L67H7RK.cjs} +6 -6
  21. package/dist/{chunk-CKEYMXKW.cjs.map → chunk-5L67H7RK.cjs.map} +1 -1
  22. package/dist/{chunk-XB733TW2.js → chunk-5W7JSJKI.js} +3 -3
  23. package/dist/{chunk-XB733TW2.js.map → chunk-5W7JSJKI.js.map} +1 -1
  24. package/dist/{chunk-OQ7KYSC2.js → chunk-5XOPSLKG.js} +3 -3
  25. package/dist/{chunk-OQ7KYSC2.js.map → chunk-5XOPSLKG.js.map} +1 -1
  26. package/dist/{chunk-RZXHWEO7.js → chunk-632HKME2.js} +3 -3
  27. package/dist/{chunk-RZXHWEO7.js.map → chunk-632HKME2.js.map} +1 -1
  28. package/dist/{chunk-IE5RWKUF.js → chunk-64F6SQJI.js} +4 -4
  29. package/dist/{chunk-IE5RWKUF.js.map → chunk-64F6SQJI.js.map} +1 -1
  30. package/dist/{chunk-IQBRYCQO.js → chunk-67343LAI.js} +3 -3
  31. package/dist/{chunk-IQBRYCQO.js.map → chunk-67343LAI.js.map} +1 -1
  32. package/dist/{chunk-OZ5AR746.cjs → chunk-6DZQOTRB.cjs} +8 -8
  33. package/dist/{chunk-OZ5AR746.cjs.map → chunk-6DZQOTRB.cjs.map} +1 -1
  34. package/dist/{chunk-2QKDMZ5B.cjs → chunk-7LDYURHI.cjs} +29 -29
  35. package/dist/{chunk-2QKDMZ5B.cjs.map → chunk-7LDYURHI.cjs.map} +1 -1
  36. package/dist/{chunk-PPSCC3RI.js → chunk-7NXOMYYC.js} +4 -4
  37. package/dist/{chunk-PPSCC3RI.js.map → chunk-7NXOMYYC.js.map} +1 -1
  38. package/dist/{chunk-ZQEOVH4F.js → chunk-AXHVYVLP.js} +3 -3
  39. package/dist/{chunk-ZQEOVH4F.js.map → chunk-AXHVYVLP.js.map} +1 -1
  40. package/dist/{chunk-X2QVU5LG.js → chunk-B4D33SLQ.js} +3 -3
  41. package/dist/{chunk-X2QVU5LG.js.map → chunk-B4D33SLQ.js.map} +1 -1
  42. package/dist/{chunk-AGYSIGMS.cjs → chunk-BHE5YUYU.cjs} +5 -5
  43. package/dist/{chunk-AGYSIGMS.cjs.map → chunk-BHE5YUYU.cjs.map} +1 -1
  44. package/dist/{chunk-CQKT2IEY.js → chunk-CJXC5VW7.js} +5 -5
  45. package/dist/{chunk-CQKT2IEY.js.map → chunk-CJXC5VW7.js.map} +1 -1
  46. package/dist/{chunk-73YMS66A.cjs → chunk-CQQVIYU4.cjs} +8 -8
  47. package/dist/{chunk-73YMS66A.cjs.map → chunk-CQQVIYU4.cjs.map} +1 -1
  48. package/dist/{chunk-Q2YBCG65.cjs → chunk-CTCGK2XX.cjs} +6 -6
  49. package/dist/{chunk-Q2YBCG65.cjs.map → chunk-CTCGK2XX.cjs.map} +1 -1
  50. package/dist/{chunk-RUHCOOAI.cjs → chunk-ECK575WD.cjs} +8 -8
  51. package/dist/{chunk-RUHCOOAI.cjs.map → chunk-ECK575WD.cjs.map} +1 -1
  52. package/dist/{chunk-52WDAFZI.cjs → chunk-EWDKF6XB.cjs} +13 -13
  53. package/dist/{chunk-52WDAFZI.cjs.map → chunk-EWDKF6XB.cjs.map} +1 -1
  54. package/dist/{chunk-OQILSGRO.cjs → chunk-EXTGR44K.cjs} +12 -12
  55. package/dist/{chunk-OQILSGRO.cjs.map → chunk-EXTGR44K.cjs.map} +1 -1
  56. package/dist/{chunk-23RSJYON.cjs → chunk-FCP5XRL7.cjs} +37 -37
  57. package/dist/{chunk-23RSJYON.cjs.map → chunk-FCP5XRL7.cjs.map} +1 -1
  58. package/dist/{chunk-5CUCN4QC.cjs → chunk-FFEY73SL.cjs} +21 -21
  59. package/dist/{chunk-5CUCN4QC.cjs.map → chunk-FFEY73SL.cjs.map} +1 -1
  60. package/dist/{chunk-OF7S6YU7.js → chunk-FRQEU6WH.js} +3 -3
  61. package/dist/{chunk-OF7S6YU7.js.map → chunk-FRQEU6WH.js.map} +1 -1
  62. package/dist/{chunk-2ZMOUXUF.js → chunk-G4KBL45K.js} +3 -3
  63. package/dist/{chunk-2ZMOUXUF.js.map → chunk-G4KBL45K.js.map} +1 -1
  64. package/dist/{chunk-EXP66755.cjs → chunk-G64MMB22.cjs} +8 -8
  65. package/dist/{chunk-EXP66755.cjs.map → chunk-G64MMB22.cjs.map} +1 -1
  66. package/dist/{chunk-LXVZZCYL.cjs → chunk-GCLIAMDG.cjs} +9 -9
  67. package/dist/{chunk-LXVZZCYL.cjs.map → chunk-GCLIAMDG.cjs.map} +1 -1
  68. package/dist/{chunk-CSRGFSPD.js → chunk-GZGTYOPE.js} +3 -3
  69. package/dist/{chunk-CSRGFSPD.js.map → chunk-GZGTYOPE.js.map} +1 -1
  70. package/dist/{chunk-CQMRVXYZ.cjs → chunk-H7P3Y3AH.cjs} +19 -19
  71. package/dist/{chunk-CQMRVXYZ.cjs.map → chunk-H7P3Y3AH.cjs.map} +1 -1
  72. package/dist/{chunk-IY2HGGCJ.cjs → chunk-HKGKW4W5.cjs} +8 -8
  73. package/dist/{chunk-IY2HGGCJ.cjs.map → chunk-HKGKW4W5.cjs.map} +1 -1
  74. package/dist/{chunk-RJVJRSE5.js → chunk-HWTB2EEP.js} +3 -3
  75. package/dist/{chunk-RJVJRSE5.js.map → chunk-HWTB2EEP.js.map} +1 -1
  76. package/dist/{chunk-YCLZZVA2.js → chunk-IAMAWCBK.js} +5 -5
  77. package/dist/{chunk-YCLZZVA2.js.map → chunk-IAMAWCBK.js.map} +1 -1
  78. package/dist/{chunk-M3MTW44C.js → chunk-IM2EVMH4.js} +3 -3
  79. package/dist/{chunk-M3MTW44C.js.map → chunk-IM2EVMH4.js.map} +1 -1
  80. package/dist/{chunk-FEUCP6F3.cjs → chunk-JJZLY2OT.cjs} +4 -4
  81. package/dist/{chunk-FEUCP6F3.cjs.map → chunk-JJZLY2OT.cjs.map} +1 -1
  82. package/dist/{chunk-L2VRTBCQ.cjs → chunk-JKZGEIZO.cjs} +4 -4
  83. package/dist/{chunk-L2VRTBCQ.cjs.map → chunk-JKZGEIZO.cjs.map} +1 -1
  84. package/dist/{chunk-Q3CG4MLT.js → chunk-JZWODCZ2.js} +3 -3
  85. package/dist/{chunk-Q3CG4MLT.js.map → chunk-JZWODCZ2.js.map} +1 -1
  86. package/dist/{chunk-MRD47GBP.cjs → chunk-K7KLUGGM.cjs} +74 -74
  87. package/dist/{chunk-MRD47GBP.cjs.map → chunk-K7KLUGGM.cjs.map} +1 -1
  88. package/dist/{chunk-RP4Q5IAW.cjs → chunk-KXNUETBI.cjs} +6 -6
  89. package/dist/{chunk-RP4Q5IAW.cjs.map → chunk-KXNUETBI.cjs.map} +1 -1
  90. package/dist/{chunk-J5SAYGPG.cjs → chunk-KZK4QA4W.cjs} +8 -8
  91. package/dist/{chunk-J5SAYGPG.cjs.map → chunk-KZK4QA4W.cjs.map} +1 -1
  92. package/dist/{chunk-STNV4TYH.js → chunk-L2ABDMKW.js} +20 -6
  93. package/dist/chunk-L2ABDMKW.js.map +1 -0
  94. package/dist/{chunk-LA3YFTNL.cjs → chunk-L2OBN5CQ.cjs} +10 -10
  95. package/dist/{chunk-LA3YFTNL.cjs.map → chunk-L2OBN5CQ.cjs.map} +1 -1
  96. package/dist/{chunk-B2OMBLIL.js → chunk-L4UEC3WG.js} +3 -3
  97. package/dist/{chunk-B2OMBLIL.js.map → chunk-L4UEC3WG.js.map} +1 -1
  98. package/dist/chunk-L7VLEQZ5.cjs +744 -0
  99. package/dist/{chunk-JEODNH6U.cjs.map → chunk-L7VLEQZ5.cjs.map} +1 -1
  100. package/dist/{chunk-LIFGEVRQ.js → chunk-LVYTFFO7.js} +3 -3
  101. package/dist/{chunk-LIFGEVRQ.js.map → chunk-LVYTFFO7.js.map} +1 -1
  102. package/dist/{chunk-U6PBK5ML.cjs → chunk-M2CKZXGA.cjs} +6 -6
  103. package/dist/{chunk-U6PBK5ML.cjs.map → chunk-M2CKZXGA.cjs.map} +1 -1
  104. package/dist/{chunk-DBJ72M3L.js → chunk-MD72DZKF.js} +4 -4
  105. package/dist/{chunk-DBJ72M3L.js.map → chunk-MD72DZKF.js.map} +1 -1
  106. package/dist/{chunk-KXZI7W4X.js → chunk-MEWQVBMF.js} +4 -4
  107. package/dist/{chunk-KXZI7W4X.js.map → chunk-MEWQVBMF.js.map} +1 -1
  108. package/dist/{chunk-YAURXFRL.js → chunk-NDNGZCVE.js} +4 -4
  109. package/dist/{chunk-YAURXFRL.js.map → chunk-NDNGZCVE.js.map} +1 -1
  110. package/dist/{chunk-SD7ZBPTH.js → chunk-NL77QH5H.js} +5 -5
  111. package/dist/{chunk-SD7ZBPTH.js.map → chunk-NL77QH5H.js.map} +1 -1
  112. package/dist/{chunk-7YBYLB2K.cjs → chunk-NWF6NTJ4.cjs} +2 -2
  113. package/dist/chunk-NWF6NTJ4.cjs.map +1 -0
  114. package/dist/{chunk-XJ3NNQMH.cjs → chunk-OF77EOAS.cjs} +11 -11
  115. package/dist/{chunk-XJ3NNQMH.cjs.map → chunk-OF77EOAS.cjs.map} +1 -1
  116. package/dist/{chunk-67Y5VZH2.js → chunk-OPHNEPME.js} +5 -5
  117. package/dist/{chunk-67Y5VZH2.js.map → chunk-OPHNEPME.js.map} +1 -1
  118. package/dist/{chunk-5AZEKCIF.cjs → chunk-OTTFQ6PW.cjs} +11 -11
  119. package/dist/{chunk-5AZEKCIF.cjs.map → chunk-OTTFQ6PW.cjs.map} +1 -1
  120. package/dist/{chunk-JQEHJTZT.cjs → chunk-OXOPBLIY.cjs} +41 -41
  121. package/dist/{chunk-JQEHJTZT.cjs.map → chunk-OXOPBLIY.cjs.map} +1 -1
  122. package/dist/{chunk-62IXMOKZ.js → chunk-P73K3SWT.js} +3 -3
  123. package/dist/{chunk-62IXMOKZ.js.map → chunk-P73K3SWT.js.map} +1 -1
  124. package/dist/{chunk-OFGVQFG2.cjs → chunk-PRO5XP7M.cjs} +10 -10
  125. package/dist/{chunk-OFGVQFG2.cjs.map → chunk-PRO5XP7M.cjs.map} +1 -1
  126. package/dist/{chunk-C4AFQDAO.js → chunk-PTJBYYMK.js} +2 -2
  127. package/dist/chunk-PTJBYYMK.js.map +1 -0
  128. package/dist/{chunk-OZC33KF7.js → chunk-QCKUEI6M.js} +3 -3
  129. package/dist/{chunk-OZC33KF7.js.map → chunk-QCKUEI6M.js.map} +1 -1
  130. package/dist/{chunk-5O6B2WSE.js → chunk-QDEYRPYD.js} +4 -4
  131. package/dist/{chunk-5O6B2WSE.js.map → chunk-QDEYRPYD.js.map} +1 -1
  132. package/dist/{chunk-KDS5H7AE.cjs → chunk-QRV7327G.cjs} +2097 -1297
  133. package/dist/chunk-QRV7327G.cjs.map +1 -0
  134. package/dist/{chunk-ZKMXVDVF.js → chunk-QVOR4Y5X.js} +41 -41
  135. package/dist/{chunk-ZKMXVDVF.js.map → chunk-QVOR4Y5X.js.map} +1 -1
  136. package/dist/{chunk-KRXBQMZA.cjs → chunk-QW7IQZIB.cjs} +13 -13
  137. package/dist/{chunk-KRXBQMZA.cjs.map → chunk-QW7IQZIB.cjs.map} +1 -1
  138. package/dist/{chunk-BS75OYMS.cjs → chunk-REFU47IR.cjs} +16 -16
  139. package/dist/{chunk-BS75OYMS.cjs.map → chunk-REFU47IR.cjs.map} +1 -1
  140. package/dist/{chunk-GJPUTFUV.js → chunk-RPCAKN2L.js} +5 -5
  141. package/dist/{chunk-GJPUTFUV.js.map → chunk-RPCAKN2L.js.map} +1 -1
  142. package/dist/{chunk-ICNDDYVU.cjs → chunk-RTHBJGHO.cjs} +8 -8
  143. package/dist/{chunk-ICNDDYVU.cjs.map → chunk-RTHBJGHO.cjs.map} +1 -1
  144. package/dist/{chunk-2ONW75MN.cjs → chunk-SCCERKQS.cjs} +5 -5
  145. package/dist/{chunk-2ONW75MN.cjs.map → chunk-SCCERKQS.cjs.map} +1 -1
  146. package/dist/{chunk-LE43IZGI.js → chunk-SGMCFRSU.js} +3 -3
  147. package/dist/{chunk-LE43IZGI.js.map → chunk-SGMCFRSU.js.map} +1 -1
  148. package/dist/{chunk-NQLS4Z3W.js → chunk-SH7XKBWN.js} +5 -5
  149. package/dist/{chunk-NQLS4Z3W.js.map → chunk-SH7XKBWN.js.map} +1 -1
  150. package/dist/{chunk-RIWVPOVQ.js → chunk-SSBPVVCY.js} +3 -3
  151. package/dist/{chunk-RIWVPOVQ.js.map → chunk-SSBPVVCY.js.map} +1 -1
  152. package/dist/{chunk-6WQBVVAS.cjs → chunk-SUOTSPYJ.cjs} +71 -71
  153. package/dist/{chunk-6WQBVVAS.cjs.map → chunk-SUOTSPYJ.cjs.map} +1 -1
  154. package/dist/{chunk-RPYAXRJN.cjs → chunk-SVDQASCW.cjs} +24 -24
  155. package/dist/{chunk-RPYAXRJN.cjs.map → chunk-SVDQASCW.cjs.map} +1 -1
  156. package/dist/{chunk-6ID65TQG.js → chunk-SWINK5Y3.js} +3 -3
  157. package/dist/{chunk-6ID65TQG.js.map → chunk-SWINK5Y3.js.map} +1 -1
  158. package/dist/{chunk-AHFEQVIO.cjs → chunk-THHT3YH2.cjs} +28 -28
  159. package/dist/{chunk-AHFEQVIO.cjs.map → chunk-THHT3YH2.cjs.map} +1 -1
  160. package/dist/{chunk-XEH32VCJ.js → chunk-TYWNSIO2.js} +4 -4
  161. package/dist/{chunk-XEH32VCJ.js.map → chunk-TYWNSIO2.js.map} +1 -1
  162. package/dist/{chunk-SKWXNNTT.cjs → chunk-UWGT2JVT.cjs} +8 -8
  163. package/dist/{chunk-SKWXNNTT.cjs.map → chunk-UWGT2JVT.cjs.map} +1 -1
  164. package/dist/{chunk-YEQZMTCM.js → chunk-UXFBPV3G.js} +4 -4
  165. package/dist/{chunk-YEQZMTCM.js.map → chunk-UXFBPV3G.js.map} +1 -1
  166. package/dist/{chunk-AV3PJKO6.cjs → chunk-VKJ7U3MC.cjs} +28 -28
  167. package/dist/{chunk-AV3PJKO6.cjs.map → chunk-VKJ7U3MC.cjs.map} +1 -1
  168. package/dist/{chunk-ZV6M52SI.cjs → chunk-VPLRJQHG.cjs} +101 -101
  169. package/dist/{chunk-ZV6M52SI.cjs.map → chunk-VPLRJQHG.cjs.map} +1 -1
  170. package/dist/{chunk-VRWDJKTB.js → chunk-VUGDZ2GW.js} +3 -3
  171. package/dist/{chunk-VRWDJKTB.js.map → chunk-VUGDZ2GW.js.map} +1 -1
  172. package/dist/{chunk-7YCROHVS.js → chunk-W3OYLKI3.js} +3 -3
  173. package/dist/{chunk-7YCROHVS.js.map → chunk-W3OYLKI3.js.map} +1 -1
  174. package/dist/{chunk-2WRJFEJK.js → chunk-WBPOFUFH.js} +3 -3
  175. package/dist/{chunk-2WRJFEJK.js.map → chunk-WBPOFUFH.js.map} +1 -1
  176. package/dist/{chunk-LJF6NNH5.cjs → chunk-WSLO4UJA.cjs} +10 -10
  177. package/dist/{chunk-LJF6NNH5.cjs.map → chunk-WSLO4UJA.cjs.map} +1 -1
  178. package/dist/{chunk-GCI33AN4.cjs → chunk-X7436A3H.cjs} +10 -10
  179. package/dist/{chunk-GCI33AN4.cjs.map → chunk-X7436A3H.cjs.map} +1 -1
  180. package/dist/{chunk-Z4VYX32V.js → chunk-XD3YM6GC.js} +3 -3
  181. package/dist/{chunk-Z4VYX32V.js.map → chunk-XD3YM6GC.js.map} +1 -1
  182. package/dist/{chunk-CIR74QPG.cjs → chunk-YDAA6BEX.cjs} +10 -10
  183. package/dist/{chunk-CIR74QPG.cjs.map → chunk-YDAA6BEX.cjs.map} +1 -1
  184. package/dist/{chunk-AMLYUMNH.js → chunk-YFTWZV4W.js} +3 -3
  185. package/dist/{chunk-AMLYUMNH.js.map → chunk-YFTWZV4W.js.map} +1 -1
  186. package/dist/{chunk-XWG6QKGI.js → chunk-YVT7P4ZS.js} +3 -3
  187. package/dist/{chunk-XWG6QKGI.js.map → chunk-YVT7P4ZS.js.map} +1 -1
  188. package/dist/{chunk-D43AYAW2.cjs → chunk-YXCSR2S3.cjs} +54 -40
  189. package/dist/chunk-YXCSR2S3.cjs.map +1 -0
  190. package/dist/{chunk-UVGAYAEV.js → chunk-Z2QGIB47.js} +4 -4
  191. package/dist/{chunk-UVGAYAEV.js.map → chunk-Z2QGIB47.js.map} +1 -1
  192. package/dist/{chunk-5IMX5NM3.js → chunk-ZH5SPJZR.js} +3 -3
  193. package/dist/{chunk-5IMX5NM3.js.map → chunk-ZH5SPJZR.js.map} +1 -1
  194. package/dist/{chunk-MZLIIHA3.js → chunk-ZIRZQFBQ.js} +4 -4
  195. package/dist/{chunk-MZLIIHA3.js.map → chunk-ZIRZQFBQ.js.map} +1 -1
  196. package/dist/{dist-2YFKAQMY.js → dist-3IOY4UDH.js} +3 -3
  197. package/dist/{dist-2YFKAQMY.js.map → dist-3IOY4UDH.js.map} +1 -1
  198. package/dist/{dist-JWLVQJFQ.js → dist-5PUBSY65.js} +3 -3
  199. package/dist/{dist-JWLVQJFQ.js.map → dist-5PUBSY65.js.map} +1 -1
  200. package/dist/{dist-WBYMZPKB.cjs → dist-7ROGUSJI.cjs} +26 -26
  201. package/dist/{dist-WBYMZPKB.cjs.map → dist-7ROGUSJI.cjs.map} +1 -1
  202. package/dist/dist-BJSMOQXN.cjs +16 -0
  203. package/dist/{dist-NYM3IQLY.cjs.map → dist-BJSMOQXN.cjs.map} +1 -1
  204. package/dist/{dist-6VCC76Q3.cjs → dist-I2O6YPDX.cjs} +30 -30
  205. package/dist/{dist-6VCC76Q3.cjs.map → dist-I2O6YPDX.cjs.map} +1 -1
  206. package/dist/{dist-M3P3YMJP.cjs → dist-I5TS34XK.cjs} +28 -28
  207. package/dist/{dist-M3P3YMJP.cjs.map → dist-I5TS34XK.cjs.map} +1 -1
  208. package/dist/{dist-J4UWKVDM.js → dist-IB5HRZQW.js} +3 -3
  209. package/dist/{dist-J4UWKVDM.js.map → dist-IB5HRZQW.js.map} +1 -1
  210. package/dist/{dist-F5OVWHJA.js → dist-PBGEHTO5.js} +194 -76
  211. package/dist/dist-PBGEHTO5.js.map +1 -0
  212. package/dist/{dist-LB6ETLLY.cjs → dist-RRHVN2FI.cjs} +198 -80
  213. package/dist/dist-RRHVN2FI.cjs.map +1 -0
  214. package/dist/dist-SOVT5P5X.js +3 -0
  215. package/dist/{dist-CB67HEFG.js.map → dist-SOVT5P5X.js.map} +1 -1
  216. package/dist/{dist-CIZY7VDE.cjs → dist-YPPUCXOD.cjs} +20 -20
  217. package/dist/{dist-CIZY7VDE.cjs.map → dist-YPPUCXOD.cjs.map} +1 -1
  218. package/dist/{dist-IPZQFQMB.js → dist-Z62354D3.js} +3 -3
  219. package/dist/{dist-IPZQFQMB.js.map → dist-Z62354D3.js.map} +1 -1
  220. package/dist/docs/SKILL.md +1 -1
  221. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  222. package/dist/{observational-memory-E73XGPDT-ZSNLC7FW.js → observational-memory-OJN26RQ4-6ZDBBFBM.js} +3 -3
  223. package/dist/{observational-memory-E73XGPDT-ZSNLC7FW.js.map → observational-memory-OJN26RQ4-6ZDBBFBM.js.map} +1 -1
  224. package/dist/{observational-memory-E73XGPDT-JT3TMD3Y.cjs → observational-memory-OJN26RQ4-UCN4RMRQ.cjs} +29 -29
  225. package/dist/{observational-memory-E73XGPDT-JT3TMD3Y.cjs.map → observational-memory-OJN26RQ4-UCN4RMRQ.cjs.map} +1 -1
  226. package/dist/server/handlers/a2a.cjs +14 -14
  227. package/dist/server/handlers/a2a.js +1 -1
  228. package/dist/server/handlers/agent-builder.cjs +17 -17
  229. package/dist/server/handlers/agent-builder.js +1 -1
  230. package/dist/server/handlers/agent-controller.cjs +35 -35
  231. package/dist/server/handlers/agent-controller.d.ts +10 -0
  232. package/dist/server/handlers/agent-controller.d.ts.map +1 -1
  233. package/dist/server/handlers/agent-controller.js +1 -1
  234. package/dist/server/handlers/agent-versions.cjs +8 -8
  235. package/dist/server/handlers/agent-versions.js +1 -1
  236. package/dist/server/handlers/agents.cjs +48 -48
  237. package/dist/server/handlers/agents.js +1 -1
  238. package/dist/server/handlers/auth.cjs +13 -13
  239. package/dist/server/handlers/auth.js +1 -1
  240. package/dist/server/handlers/background-tasks.cjs +4 -4
  241. package/dist/server/handlers/background-tasks.js +1 -1
  242. package/dist/server/handlers/builder-registry.cjs +6 -6
  243. package/dist/server/handlers/builder-registry.js +1 -1
  244. package/dist/server/handlers/channels.cjs +5 -5
  245. package/dist/server/handlers/channels.js +1 -1
  246. package/dist/server/handlers/conversations.cjs +5 -5
  247. package/dist/server/handlers/conversations.js +1 -1
  248. package/dist/server/handlers/datasets.cjs +26 -26
  249. package/dist/server/handlers/datasets.js +1 -1
  250. package/dist/server/handlers/editor-builder.cjs +6 -6
  251. package/dist/server/handlers/editor-builder.js +1 -1
  252. package/dist/server/handlers/favorites-enrichment.cjs +4 -4
  253. package/dist/server/handlers/favorites-enrichment.js +1 -1
  254. package/dist/server/handlers/logs.cjs +4 -4
  255. package/dist/server/handlers/logs.js +1 -1
  256. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  257. package/dist/server/handlers/mcp-client-versions.js +1 -1
  258. package/dist/server/handlers/mcp.cjs +11 -11
  259. package/dist/server/handlers/mcp.js +1 -1
  260. package/dist/server/handlers/memory.cjs +27 -27
  261. package/dist/server/handlers/memory.js +1 -1
  262. package/dist/server/handlers/observability-new-endpoints.cjs +29 -29
  263. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  264. package/dist/server/handlers/observability-shared.cjs +9 -9
  265. package/dist/server/handlers/observability-shared.js +1 -1
  266. package/dist/server/handlers/observability.cjs +40 -40
  267. package/dist/server/handlers/observability.js +2 -2
  268. package/dist/server/handlers/processor-providers.cjs +3 -3
  269. package/dist/server/handlers/processor-providers.js +1 -1
  270. package/dist/server/handlers/processors.cjs +4 -4
  271. package/dist/server/handlers/processors.js +1 -1
  272. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  273. package/dist/server/handlers/prompt-block-versions.js +1 -1
  274. package/dist/server/handlers/responses.cjs +4 -4
  275. package/dist/server/handlers/responses.js +1 -1
  276. package/dist/server/handlers/schedules.cjs +10 -10
  277. package/dist/server/handlers/schedules.js +1 -1
  278. package/dist/server/handlers/scorer-versions.cjs +8 -8
  279. package/dist/server/handlers/scorer-versions.js +1 -1
  280. package/dist/server/handlers/scores.cjs +7 -7
  281. package/dist/server/handlers/scores.js +1 -1
  282. package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
  283. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  284. package/dist/server/handlers/stored-agents.cjs +10 -10
  285. package/dist/server/handlers/stored-agents.js +1 -1
  286. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  287. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  288. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  289. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  290. package/dist/server/handlers/stored-scorers.cjs +6 -6
  291. package/dist/server/handlers/stored-scorers.js +1 -1
  292. package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
  293. package/dist/server/handlers/stored-skill-favorites.js +1 -1
  294. package/dist/server/handlers/stored-skills.cjs +7 -7
  295. package/dist/server/handlers/stored-skills.js +1 -1
  296. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  297. package/dist/server/handlers/stored-workspaces.js +1 -1
  298. package/dist/server/handlers/system.cjs +3 -3
  299. package/dist/server/handlers/system.js +1 -1
  300. package/dist/server/handlers/tool-providers.cjs +14 -14
  301. package/dist/server/handlers/tool-providers.js +1 -1
  302. package/dist/server/handlers/tools.cjs +6 -6
  303. package/dist/server/handlers/tools.js +1 -1
  304. package/dist/server/handlers/vector.cjs +16 -16
  305. package/dist/server/handlers/vector.js +1 -1
  306. package/dist/server/handlers/workflows.cjs +27 -27
  307. package/dist/server/handlers/workflows.js +1 -1
  308. package/dist/server/handlers/workspace.cjs +26 -26
  309. package/dist/server/handlers/workspace.js +1 -1
  310. package/dist/server/handlers.cjs +28 -28
  311. package/dist/server/handlers.js +14 -14
  312. package/dist/server/server-adapter/index.cjs +21 -21
  313. package/dist/server/server-adapter/index.js +4 -4
  314. package/dist/working-memory-state-OMSMSYAW-6OXJFZFI.js +3 -0
  315. package/dist/{working-memory-state-OMSMSYAW-NEULPFZX.js.map → working-memory-state-OMSMSYAW-6OXJFZFI.js.map} +1 -1
  316. package/dist/working-memory-state-OMSMSYAW-GCNI4HPX.cjs +24 -0
  317. package/dist/{working-memory-state-OMSMSYAW-4THWAGFK.cjs.map → working-memory-state-OMSMSYAW-GCNI4HPX.cjs.map} +1 -1
  318. package/package.json +11 -11
  319. package/dist/chunk-7YBYLB2K.cjs.map +0 -1
  320. package/dist/chunk-C4AFQDAO.js.map +0 -1
  321. package/dist/chunk-D43AYAW2.cjs.map +0 -1
  322. package/dist/chunk-JEODNH6U.cjs +0 -744
  323. package/dist/chunk-KDS5H7AE.cjs.map +0 -1
  324. package/dist/chunk-STNV4TYH.js.map +0 -1
  325. package/dist/chunk-VQG4INIR.js.map +0 -1
  326. package/dist/dist-CB67HEFG.js +0 -3
  327. package/dist/dist-F5OVWHJA.js.map +0 -1
  328. package/dist/dist-LB6ETLLY.cjs.map +0 -1
  329. package/dist/dist-NYM3IQLY.cjs +0 -16
  330. package/dist/working-memory-state-OMSMSYAW-4THWAGFK.cjs +0 -24
  331. package/dist/working-memory-state-OMSMSYAW-NEULPFZX.js +0 -3
@@ -1,6 +1,6 @@
1
1
  import { apiSchemaManifestResponseSchema, systemPackagesResponseSchema } from './chunk-ZA2G7XV3.js';
2
2
  import { handleError } from './chunk-7ZWJX3AN.js';
3
- import { createRoute } from './chunk-C4AFQDAO.js';
3
+ import { createRoute } from './chunk-PTJBYYMK.js';
4
4
  import { readFileSync } from 'fs';
5
5
 
6
6
  var SOURCE_PROVIDER_CAPABILITIES_TIMEOUT_MS = 3e3;
@@ -98,7 +98,7 @@ var GET_API_SCHEMA_ROUTE = createRoute({
98
98
  tags: ["System"],
99
99
  requiresAuth: true,
100
100
  handler: async () => {
101
- const { buildApiSchemaManifest } = await import('./api-schema-manifest-ZBRJBFSL.js');
101
+ const { buildApiSchemaManifest } = await import('./api-schema-manifest-5N4CH3B3.js');
102
102
  return buildApiSchemaManifest();
103
103
  }
104
104
  });
@@ -150,5 +150,5 @@ var GET_SYSTEM_PACKAGES_ROUTE = createRoute({
150
150
  });
151
151
 
152
152
  export { GET_API_SCHEMA_ROUTE, GET_SYSTEM_PACKAGES_ROUTE };
153
- //# sourceMappingURL=chunk-XEH32VCJ.js.map
154
- //# sourceMappingURL=chunk-XEH32VCJ.js.map
153
+ //# sourceMappingURL=chunk-TYWNSIO2.js.map
154
+ //# sourceMappingURL=chunk-TYWNSIO2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/system.ts"],"names":[],"mappings":"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","file":"chunk-XEH32VCJ.js","sourcesContent":["import { readFileSync } from 'node:fs';\n\nimport type { MastraPackage } from '../schemas/system';\nimport { apiSchemaManifestResponseSchema, systemPackagesResponseSchema } from '../schemas/system';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\n\nconst SOURCE_PROVIDER_CAPABILITIES_TIMEOUT_MS = 3000;\n\nasync function getSourceProviderCapabilities(\n getCapabilities: () => Promise<{\n canWrite: boolean;\n canOpenChangeRequest: boolean;\n reason?: string;\n }>,\n) {\n let timeout: ReturnType<typeof setTimeout> | undefined;\n try {\n return await Promise.race([\n getCapabilities(),\n new Promise<never>((_, reject) => {\n timeout = setTimeout(\n () => reject(new Error('Source provider capabilities timed out')),\n SOURCE_PROVIDER_CAPABILITIES_TIMEOUT_MS,\n );\n }),\n ]);\n } finally {\n if (timeout) clearTimeout(timeout);\n }\n}\n\nasync function getEditorSourceCapabilities(editor: {\n getSource?: () => 'code' | 'db' | undefined;\n getSourceControlProvider?: () =>\n | {\n id: string;\n displayName: string;\n getCapabilities: () => Promise<{\n canWrite: boolean;\n canOpenChangeRequest: boolean;\n reason?: string;\n }>;\n }\n | undefined;\n}) {\n const editorSource = editor.getSource?.();\n if (!editorSource) return undefined;\n\n if (editorSource === 'db') {\n return {\n source: editorSource,\n storage: 'database' as const,\n canSave: true,\n canOpenChangeRequest: false,\n };\n }\n\n const configuredProvider = editor.getSourceControlProvider?.();\n if (configuredProvider) {\n const provider = {\n id: configuredProvider.id,\n displayName: configuredProvider.displayName,\n };\n try {\n const capabilities = await getSourceProviderCapabilities(() => configuredProvider.getCapabilities());\n return {\n source: editorSource,\n storage: 'source-provider' as const,\n provider,\n canSave: capabilities.canWrite,\n canOpenChangeRequest: capabilities.canOpenChangeRequest,\n unavailableReason: capabilities.canWrite ? undefined : capabilities.reason,\n };\n } catch {\n return {\n source: editorSource,\n storage: 'source-provider' as const,\n provider,\n canSave: false,\n canOpenChangeRequest: false,\n unavailableReason: 'Unable to load source provider capabilities.',\n };\n }\n }\n\n const sourceProvider = process.env.MASTRA_SOURCE_PROVIDER;\n\n if (sourceProvider) {\n return {\n source: editorSource,\n storage: 'source-provider' as const,\n provider: {\n id: sourceProvider,\n displayName: process.env.MASTRA_SOURCE_PROVIDER_NAME || sourceProvider,\n },\n canSave: process.env.MASTRA_SOURCE_STORAGE_CAN_WRITE !== 'false',\n canOpenChangeRequest: process.env.MASTRA_SOURCE_STORAGE_CAN_OPEN_CHANGE_REQUEST === 'true',\n };\n }\n\n const isHosted =\n process.env.MASTRA_DEPLOYMENT_ID || process.env.MASTRA_CLOUD_API_ENDPOINT || process.env.MASTRA_PLATFORM_PROJECT_ID;\n\n if (isHosted) {\n return {\n source: editorSource,\n storage: 'unavailable' as const,\n canSave: false,\n canOpenChangeRequest: false,\n unavailableReason: 'Code-source editing requires a source provider in hosted Studio.',\n };\n }\n\n return {\n source: editorSource,\n storage: 'filesystem' as const,\n canSave: true,\n canOpenChangeRequest: false,\n };\n}\n\nexport const GET_API_SCHEMA_ROUTE = createRoute({\n method: 'GET',\n path: '/system/api-schema',\n responseType: 'json',\n responseSchema: apiSchemaManifestResponseSchema,\n summary: 'Get API schema manifest',\n description: 'Returns the route-contract-derived API schema manifest for the machine-readable CLI',\n tags: ['System'],\n requiresAuth: true,\n handler: async () => {\n // Dynamic import to avoid circular dependency issues\n const { buildApiSchemaManifest } = await import('../server-adapter/api-schema-manifest');\n return buildApiSchemaManifest();\n },\n});\n\nexport const GET_SYSTEM_PACKAGES_ROUTE = createRoute({\n method: 'GET',\n path: '/system/packages',\n responseType: 'json',\n responseSchema: systemPackagesResponseSchema,\n summary: 'Get installed Mastra packages',\n description: 'Returns a list of all installed Mastra packages and their versions from the project',\n tags: ['System'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const packagesFilePath = process.env.MASTRA_PACKAGES_FILE;\n\n let packages: MastraPackage[] = [];\n\n if (packagesFilePath) {\n try {\n const fileContent = readFileSync(packagesFilePath, 'utf-8');\n packages = JSON.parse(fileContent);\n } catch {\n packages = [];\n }\n }\n\n const storage = mastra.getStorage();\n const storageType = storage?.name;\n const observabilityStorage = storage?.stores?.observability;\n const observabilityStorageType = observabilityStorage?.constructor.name;\n const observabilityRuntimeStrategy = observabilityStorage?.runtimeTracingStrategy;\n const observabilityEnabled = !!mastra.observability.getDefaultInstance();\n\n const editor = mastra.getEditor();\n const editorSource = editor?.getSource?.();\n const editorSourceCapabilities = editor ? await getEditorSourceCapabilities(editor) : undefined;\n\n return {\n packages,\n isDev: process.env.MASTRA_DEV === 'true',\n cmsEnabled: !!editor,\n editorSource,\n editorSourceCapabilities,\n observabilityEnabled,\n storageType,\n observabilityStorageType,\n observabilityRuntimeStrategy,\n };\n } catch (error) {\n return handleError(error, 'Error getting system packages');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/system.ts"],"names":[],"mappings":"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","file":"chunk-TYWNSIO2.js","sourcesContent":["import { readFileSync } from 'node:fs';\n\nimport type { MastraPackage } from '../schemas/system';\nimport { apiSchemaManifestResponseSchema, systemPackagesResponseSchema } from '../schemas/system';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\n\nconst SOURCE_PROVIDER_CAPABILITIES_TIMEOUT_MS = 3000;\n\nasync function getSourceProviderCapabilities(\n getCapabilities: () => Promise<{\n canWrite: boolean;\n canOpenChangeRequest: boolean;\n reason?: string;\n }>,\n) {\n let timeout: ReturnType<typeof setTimeout> | undefined;\n try {\n return await Promise.race([\n getCapabilities(),\n new Promise<never>((_, reject) => {\n timeout = setTimeout(\n () => reject(new Error('Source provider capabilities timed out')),\n SOURCE_PROVIDER_CAPABILITIES_TIMEOUT_MS,\n );\n }),\n ]);\n } finally {\n if (timeout) clearTimeout(timeout);\n }\n}\n\nasync function getEditorSourceCapabilities(editor: {\n getSource?: () => 'code' | 'db' | undefined;\n getSourceControlProvider?: () =>\n | {\n id: string;\n displayName: string;\n getCapabilities: () => Promise<{\n canWrite: boolean;\n canOpenChangeRequest: boolean;\n reason?: string;\n }>;\n }\n | undefined;\n}) {\n const editorSource = editor.getSource?.();\n if (!editorSource) return undefined;\n\n if (editorSource === 'db') {\n return {\n source: editorSource,\n storage: 'database' as const,\n canSave: true,\n canOpenChangeRequest: false,\n };\n }\n\n const configuredProvider = editor.getSourceControlProvider?.();\n if (configuredProvider) {\n const provider = {\n id: configuredProvider.id,\n displayName: configuredProvider.displayName,\n };\n try {\n const capabilities = await getSourceProviderCapabilities(() => configuredProvider.getCapabilities());\n return {\n source: editorSource,\n storage: 'source-provider' as const,\n provider,\n canSave: capabilities.canWrite,\n canOpenChangeRequest: capabilities.canOpenChangeRequest,\n unavailableReason: capabilities.canWrite ? undefined : capabilities.reason,\n };\n } catch {\n return {\n source: editorSource,\n storage: 'source-provider' as const,\n provider,\n canSave: false,\n canOpenChangeRequest: false,\n unavailableReason: 'Unable to load source provider capabilities.',\n };\n }\n }\n\n const sourceProvider = process.env.MASTRA_SOURCE_PROVIDER;\n\n if (sourceProvider) {\n return {\n source: editorSource,\n storage: 'source-provider' as const,\n provider: {\n id: sourceProvider,\n displayName: process.env.MASTRA_SOURCE_PROVIDER_NAME || sourceProvider,\n },\n canSave: process.env.MASTRA_SOURCE_STORAGE_CAN_WRITE !== 'false',\n canOpenChangeRequest: process.env.MASTRA_SOURCE_STORAGE_CAN_OPEN_CHANGE_REQUEST === 'true',\n };\n }\n\n const isHosted =\n process.env.MASTRA_DEPLOYMENT_ID || process.env.MASTRA_CLOUD_API_ENDPOINT || process.env.MASTRA_PLATFORM_PROJECT_ID;\n\n if (isHosted) {\n return {\n source: editorSource,\n storage: 'unavailable' as const,\n canSave: false,\n canOpenChangeRequest: false,\n unavailableReason: 'Code-source editing requires a source provider in hosted Studio.',\n };\n }\n\n return {\n source: editorSource,\n storage: 'filesystem' as const,\n canSave: true,\n canOpenChangeRequest: false,\n };\n}\n\nexport const GET_API_SCHEMA_ROUTE = createRoute({\n method: 'GET',\n path: '/system/api-schema',\n responseType: 'json',\n responseSchema: apiSchemaManifestResponseSchema,\n summary: 'Get API schema manifest',\n description: 'Returns the route-contract-derived API schema manifest for the machine-readable CLI',\n tags: ['System'],\n requiresAuth: true,\n handler: async () => {\n // Dynamic import to avoid circular dependency issues\n const { buildApiSchemaManifest } = await import('../server-adapter/api-schema-manifest');\n return buildApiSchemaManifest();\n },\n});\n\nexport const GET_SYSTEM_PACKAGES_ROUTE = createRoute({\n method: 'GET',\n path: '/system/packages',\n responseType: 'json',\n responseSchema: systemPackagesResponseSchema,\n summary: 'Get installed Mastra packages',\n description: 'Returns a list of all installed Mastra packages and their versions from the project',\n tags: ['System'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const packagesFilePath = process.env.MASTRA_PACKAGES_FILE;\n\n let packages: MastraPackage[] = [];\n\n if (packagesFilePath) {\n try {\n const fileContent = readFileSync(packagesFilePath, 'utf-8');\n packages = JSON.parse(fileContent);\n } catch {\n packages = [];\n }\n }\n\n const storage = mastra.getStorage();\n const storageType = storage?.name;\n const observabilityStorage = storage?.stores?.observability;\n const observabilityStorageType = observabilityStorage?.constructor.name;\n const observabilityRuntimeStrategy = observabilityStorage?.runtimeTracingStrategy;\n const observabilityEnabled = !!mastra.observability.getDefaultInstance();\n\n const editor = mastra.getEditor();\n const editorSource = editor?.getSource?.();\n const editorSourceCapabilities = editor ? await getEditorSourceCapabilities(editor) : undefined;\n\n return {\n packages,\n isDev: process.env.MASTRA_DEV === 'true',\n cmsEnabled: !!editor,\n editorSource,\n editorSourceCapabilities,\n observabilityEnabled,\n storageType,\n observabilityStorageType,\n observabilityRuntimeStrategy,\n };\n } catch (error) {\n return handleError(error, 'Error getting system packages');\n }\n },\n});\n"]}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk7MQRMIVN_cjs = require('./chunk-7MQRMIVN.cjs');
4
- var chunkJQEHJTZT_cjs = require('./chunk-JQEHJTZT.cjs');
4
+ var chunkOXOPBLIY_cjs = require('./chunk-OXOPBLIY.cjs');
5
5
  var chunkZ7LCIYK7_cjs = require('./chunk-Z7LCIYK7.cjs');
6
- var chunk7YBYLB2K_cjs = require('./chunk-7YBYLB2K.cjs');
6
+ var chunkNWF6NTJ4_cjs = require('./chunk-NWF6NTJ4.cjs');
7
7
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
8
8
 
9
9
  // src/server/utils/resolve-builder-model-policy.ts
@@ -43,7 +43,7 @@ async function requireBuilderFeature(mastra, feature) {
43
43
  throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Not Found" });
44
44
  }
45
45
  }
46
- var GET_EDITOR_BUILDER_SETTINGS_ROUTE = chunk7YBYLB2K_cjs.createRoute({
46
+ var GET_EDITOR_BUILDER_SETTINGS_ROUTE = chunkNWF6NTJ4_cjs.createRoute({
47
47
  method: "GET",
48
48
  path: "/editor/builder/settings",
49
49
  responseType: "json",
@@ -127,7 +127,7 @@ var GET_EDITOR_BUILDER_SETTINGS_ROUTE = chunk7YBYLB2K_cjs.createRoute({
127
127
  }
128
128
  }
129
129
  });
130
- var GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE = chunk7YBYLB2K_cjs.createRoute({
130
+ var GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE = chunkNWF6NTJ4_cjs.createRoute({
131
131
  method: "GET",
132
132
  path: "/editor/builder/models/available",
133
133
  responseType: "json",
@@ -139,7 +139,7 @@ var GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE = chunk7YBYLB2K_cjs.createRoute({
139
139
  requiresPermission: "stored-agents:read",
140
140
  handler: async ({ mastra }) => {
141
141
  try {
142
- const providers = (await chunkJQEHJTZT_cjs.buildProvidersList(mastra)).filter((provider) => provider.connected);
142
+ const providers = (await chunkOXOPBLIY_cjs.buildProvidersList(mastra)).filter((provider) => provider.connected);
143
143
  const policy = await resolveBuilderModelPolicy(mastra.getEditor());
144
144
  if (!policy.active || !policy.allowed || policy.allowed.length === 0) {
145
145
  return { providers };
@@ -155,7 +155,7 @@ var GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE = chunk7YBYLB2K_cjs.createRoute({
155
155
  }
156
156
  }
157
157
  });
158
- var GET_INFRASTRUCTURE_STATUS_ROUTE = chunk7YBYLB2K_cjs.createRoute({
158
+ var GET_INFRASTRUCTURE_STATUS_ROUTE = chunkNWF6NTJ4_cjs.createRoute({
159
159
  method: "GET",
160
160
  path: "/editor/builder/infrastructure",
161
161
  responseType: "json",
@@ -276,5 +276,5 @@ exports.GET_EDITOR_BUILDER_SETTINGS_ROUTE = GET_EDITOR_BUILDER_SETTINGS_ROUTE;
276
276
  exports.GET_INFRASTRUCTURE_STATUS_ROUTE = GET_INFRASTRUCTURE_STATUS_ROUTE;
277
277
  exports.isBuilderFeatureEnabled = isBuilderFeatureEnabled;
278
278
  exports.requireBuilderFeature = requireBuilderFeature;
279
- //# sourceMappingURL=chunk-SKWXNNTT.cjs.map
280
- //# sourceMappingURL=chunk-SKWXNNTT.cjs.map
279
+ //# sourceMappingURL=chunk-UWGT2JVT.cjs.map
280
+ //# sourceMappingURL=chunk-UWGT2JVT.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/utils/resolve-builder-model-policy.ts","../src/server/handlers/editor-builder.ts"],"names":["agentFeaturesSchema","HTTPException","createRoute","builderSettingsResponseSchema","handleError","builderAvailableModelsResponseSchema","buildProvidersList","infrastructureStatusResponseSchema"],"mappings":"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","file":"chunk-SKWXNNTT.cjs","sourcesContent":["import type { BuilderModelPolicy } from '@mastra/core/agent-builder/ee';\nimport type { IMastraEditor } from '@mastra/core/editor';\n\n/**\n * Server-side wrapper around `builderToModelPolicy`.\n *\n * Handles the optional `IMastraEditor` builder API surface (older / OSS editors\n * may not implement `hasEnabledBuilderConfig` / `resolveBuilder`) and returns\n * a uniform `BuilderModelPolicy` to every call site.\n *\n * Returns `{ active: false }` whenever:\n * - no editor is configured,\n * - the editor doesn't expose builder methods,\n * - the builder config is disabled, or\n * - resolving the builder fails / yields nothing.\n *\n * The `@mastra/core/agent-builder/ee` subpath is loaded lazily so this module\n * remains importable on `@mastra/core` versions that pre-date the subpath\n * (the subpath was added in core 1.34.0). The dynamic import is only reached\n * once an editor is actually configured, by which point a compatible core is\n * guaranteed.\n */\nexport async function resolveBuilderModelPolicy(editor: IMastraEditor | undefined): Promise<BuilderModelPolicy> {\n if (!editor) return { active: false };\n if (typeof editor.resolveBuilder !== 'function') return { active: false };\n if (typeof editor.hasEnabledBuilderConfig === 'function' && !editor.hasEnabledBuilderConfig()) {\n return { active: false };\n }\n\n // Degrade to inactive on builder-resolution failure rather than letting the\n // rejection escape: agent execution routes seed this on every request, so a\n // transient failure must not 500 the entire route.\n try {\n const builder = await editor.resolveBuilder();\n const { builderToModelPolicy } = await import('@mastra/core/agent-builder/ee');\n return builderToModelPolicy(builder);\n } catch {\n return { active: false };\n }\n}\n","import type { Mastra } from '@mastra/core';\n\nimport { HTTPException } from '../http-exception';\nimport {\n agentFeaturesSchema,\n builderAvailableModelsResponseSchema,\n builderSettingsResponseSchema,\n infrastructureStatusResponseSchema,\n} from '../schemas/editor-builder';\nimport type { AgentFeatures, InfrastructureStatus } from '../schemas/editor-builder';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { resolveBuilderModelPolicy } from '../utils/resolve-builder-model-policy';\nimport { buildProvidersList } from './agents';\nimport { handleError } from './error';\n\n/**\n * Resolve the active builder feature flags. Returns `null` when the editor is\n * absent, the builder is disabled, or no features are configured.\n */\nasync function resolveBuilderFeatures(mastra: Mastra): Promise<AgentFeatures | null> {\n const editor = mastra.getEditor();\n if (!editor || typeof editor.resolveBuilder !== 'function') return null;\n if (!editor.hasEnabledBuilderConfig?.()) return null;\n const builder = await editor.resolveBuilder();\n if (!builder || !builder.enabled) return null;\n const features = builder.getFeatures?.()?.agent;\n if (!features) return null;\n // Validate the shape so unknown keys cannot smuggle through.\n const parsed = agentFeaturesSchema.safeParse(features);\n return parsed.success ? parsed.data : null;\n}\n\n/**\n * Returns whether a given agent-builder feature is enabled. Used by list /\n * get-by-id handlers to soft-gate response enrichment (omit fields, ignore\n * favoritedOnly / pinFavoritedFor params) when the feature is off.\n */\nexport async function isBuilderFeatureEnabled(mastra: Mastra, feature: keyof AgentFeatures): Promise<boolean> {\n const features = await resolveBuilderFeatures(mastra);\n return features?.[feature] === true;\n}\n\n/**\n * Hard-gate helper for mutation routes that must not exist when the feature\n * is off. Throws `HTTPException(404)` so we don't leak the existence of the\n * feature surface (matches behavior of unregistered routes).\n */\nexport async function requireBuilderFeature(mastra: Mastra, feature: keyof AgentFeatures): Promise<void> {\n if (!(await isBuilderFeatureEnabled(mastra, feature))) {\n throw new HTTPException(404, { message: 'Not Found' });\n }\n}\n\n/**\n * GET /editor/builder/settings\n *\n * Returns the agent builder settings configured by the admin.\n * Used by frontend to determine which features to display.\n */\nexport const GET_EDITOR_BUILDER_SETTINGS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/settings',\n responseType: 'json',\n responseSchema: builderSettingsResponseSchema,\n summary: 'Get agent builder settings',\n description: 'Returns the agent builder feature flags and configuration for UI gating',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-agents:read',\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n\n // No editor configured\n if (!editor) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Editor doesn't support builder (older version or OSS)\n if (typeof editor.resolveBuilder !== 'function') {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Check if builder is enabled in config\n if (!editor.hasEnabledBuilderConfig?.()) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Resolve the builder instance\n const builder = await editor.resolveBuilder();\n if (!builder || !builder.enabled) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n const baseWarnings = builder.getModelPolicyWarnings?.() ?? [];\n const configuration = builder.getConfiguration();\n\n // Picker allowlists are written against entity `.id` (what users see in\n // the UI, URLs, traces). The client filters list responses by their\n // response keys, which are not always `.id`:\n // - GET /agents keys by `agent.id`\n // - GET /tools keys by registration key (values include `id`)\n // - GET /workflows keys by registration key (values omit `id`)\n // To keep the client filter simple, we accept `.id` (fallback to\n // registration key) for matching, but emit visible IDs as response keys\n // so `Object.keys(data)` lines up.\n type AliasPair = { id: string; key: string };\n const collectAliases = (registry: Record<string, unknown>): AliasPair[] =>\n Object.entries(registry).map(([key, entity]) => ({\n id: (entity as { id?: string }).id || key,\n key,\n }));\n\n const toolAliases = collectAliases(mastra.listTools() ?? {});\n const agentAliases = collectAliases(mastra.listAgents() ?? {});\n const workflowAliases = collectAliases(mastra.listWorkflows() ?? {});\n\n // Tools/workflows responses are keyed by registration key. Agents\n // response is keyed by `.id`.\n const toResponseKey = (aliases: AliasPair[], byId: 'id' | 'key') => {\n const map = new Map<string, string>();\n for (const a of aliases) {\n map.set(a.id, byId === 'id' ? a.id : a.key);\n map.set(a.key, byId === 'id' ? a.id : a.key);\n }\n return map;\n };\n const toolKeyMap = toResponseKey(toolAliases, 'key');\n const agentKeyMap = toResponseKey(agentAliases, 'id');\n const workflowKeyMap = toResponseKey(workflowAliases, 'key');\n\n // Lazy-load the EE subpath so this module remains importable on\n // `@mastra/core` versions that pre-date it (added in core 1.34.0).\n // We only reach here after `builder.enabled` is true, which guarantees\n // a compatible core.\n const { builderToModelPolicy, resolvePickerVisibility } = await import('@mastra/core/agent-builder/ee');\n\n const picker = resolvePickerVisibility({\n config: configuration?.agent,\n registeredToolIds: toolAliases.flatMap(a => [a.id, a.key]),\n registeredAgentIds: agentAliases.flatMap(a => [a.id, a.key]),\n registeredWorkflowIds: workflowAliases.flatMap(a => [a.id, a.key]),\n });\n\n const normalize = (visible: string[] | null, map: Map<string, string>): string[] | null => {\n if (visible === null) return null;\n const out: string[] = [];\n const seen = new Set<string>();\n for (const id of visible) {\n const mapped = map.get(id);\n if (mapped && !seen.has(mapped)) {\n seen.add(mapped);\n out.push(mapped);\n }\n }\n return out;\n };\n\n const modelPolicyWarnings = [...baseWarnings, ...picker.warnings];\n\n return {\n enabled: true,\n features: builder.getFeatures(),\n configuration,\n modelPolicy: builderToModelPolicy(builder),\n picker: {\n visibleTools: normalize(picker.visibleTools, toolKeyMap),\n visibleAgents: normalize(picker.visibleAgents, agentKeyMap),\n visibleWorkflows: normalize(picker.visibleWorkflows, workflowKeyMap),\n },\n ...(modelPolicyWarnings.length > 0 ? { modelPolicyWarnings } : {}),\n };\n } catch (error) {\n return handleError(error, 'Error getting builder settings');\n }\n },\n});\n\n/**\n * GET /editor/builder/models/available\n *\n * Returns the configured AI providers/models the agent builder may use. The\n * server is the single authority: it scopes the list to providers with a\n * configured API key (`connected`) and applies the active builder model\n * policy via `isModelAllowed`, so the Studio surfaces can render the response\n * verbatim without importing any EE matcher into the browser.\n *\n * - Providers without a configured API key are always omitted — the builder\n * decides the agent's model from this list, so an unconnected provider would\n * produce an agent that can never run.\n * - Policy inactive (or no allowlist) ⇒ all connected providers are returned.\n * - Policy active with an allowlist ⇒ each connected provider's models are\n * filtered, and providers left with no allowed models are omitted entirely.\n */\nexport const GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/models/available',\n responseType: 'json',\n responseSchema: builderAvailableModelsResponseSchema,\n summary: 'List builder-available AI models',\n description: 'Returns AI providers/models filtered by the active agent-builder model policy.',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-agents:read',\n handler: async ({ mastra }) => {\n try {\n // Only surface providers whose API key is configured (`connected`). The\n // agent builder decides the agent's model from this list, so including\n // providers without a key lets it pick a model that can never run. We\n // scope to connected providers so every choice is actually usable.\n const providers = (await buildProvidersList(mastra)).filter(provider => provider.connected);\n const policy = await resolveBuilderModelPolicy(mastra.getEditor());\n\n // Inactive policy (or no allowlist) ⇒ no allowlist filtering to apply.\n if (!policy.active || !policy.allowed || policy.allowed.length === 0) {\n return { providers };\n }\n\n // Lazy-load the EE matcher (server-only); mirrors the convention used by\n // resolve-builder-model-policy and the settings handler.\n const { isModelAllowed } = await import('@mastra/core/agent-builder/ee');\n\n const filtered = providers\n .map(provider => ({\n ...provider,\n models: provider.models.filter(modelId => isModelAllowed(policy.allowed, { provider: provider.id, modelId })),\n }))\n .filter(provider => provider.models.length > 0);\n\n return { providers: filtered };\n } catch (error) {\n return handleError(error, 'Error fetching available models');\n }\n },\n});\n\n/**\n * GET /editor/builder/infrastructure\n *\n * Returns the runtime status of Mastra-opinionated primitives (channels,\n * browser providers, workspaces). Admin-only; surfaced in Studio Settings so\n * admins can sanity-check what's wired up to the running server.\n */\nexport const GET_INFRASTRUCTURE_STATUS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/infrastructure',\n responseType: 'json',\n responseSchema: infrastructureStatusResponseSchema,\n summary: 'Get infrastructure status',\n description: 'Agent Builder infrastructure configuration and lightweight runtime status.',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'infrastructure:read',\n handler: async ({ mastra }) => {\n try {\n const formatConfigValue = (value: unknown): string => {\n if (value === null || value === undefined) return 'not set';\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') return String(value);\n if (Array.isArray(value)) return `${value.length} item${value.length === 1 ? '' : 's'}`;\n return value.constructor?.name && value.constructor.name !== 'Object' ? value.constructor.name : 'configured';\n };\n\n const getProviderName = (value: unknown): string | null => {\n if (!value) return null;\n if (typeof value === 'object' && 'provider' in value && typeof value.provider === 'string')\n return value.provider;\n if (typeof value === 'object' && 'constructor' in value) {\n const name = (value as { constructor?: { name?: string } }).constructor?.name;\n return name && name !== 'Object' ? name : 'configured';\n }\n return null;\n };\n\n const getConfigEntries = (config: Record<string, unknown>, omittedKeys: string[] = []) =>\n Object.entries(config)\n .filter(([key, value]) => !omittedKeys.includes(key) && value !== undefined && value !== null)\n .map(([key, value]) => ({ key, value: formatConfigValue(value) }));\n\n const channelProviders = mastra.getChannelProviders() ?? {};\n const channels: InfrastructureStatus['channels'] = {\n providers: Object.entries(channelProviders)\n .map(([id, provider]) => {\n const info = provider.getInfo?.();\n const routes = provider.getRoutes?.() ?? [];\n return {\n id: info?.id ?? id,\n name: info?.name ?? id,\n isConfigured: info?.isConfigured ?? false,\n routeCount: routes.length,\n };\n })\n .filter(provider => provider.isConfigured),\n };\n\n const editor = mastra.getEditor();\n let browser: InfrastructureStatus['browser'] = {\n type: null,\n provider: null,\n env: null,\n registered: false,\n availableProviders: [],\n config: [],\n };\n let workspace: InfrastructureStatus['workspace'] = {\n type: null,\n workspaceId: null,\n name: null,\n source: null,\n registered: false,\n hasFilesystem: false,\n hasSandbox: false,\n filesystemProvider: null,\n sandboxProvider: null,\n config: [],\n };\n let registries: InfrastructureStatus['registries'] = {\n skillsSh: { enabled: false },\n };\n\n if (editor?.resolveBuilder) {\n const browsers = (editor as unknown as { __browsers?: Map<string, unknown> }).__browsers;\n const builder = await editor.resolveBuilder();\n const builderRegistries = builder?.getRegistries?.();\n registries = {\n skillsSh: { enabled: builderRegistries?.skillsSh?.enabled === true },\n };\n const configuration = builder?.getConfiguration?.()?.agent as\n | {\n browser?: { type?: string; config?: { provider?: string; env?: string } };\n workspace?: {\n type?: string;\n workspaceId?: string;\n config?: { name?: string; filesystem?: unknown; sandbox?: unknown };\n };\n }\n | undefined;\n\n const browserRef = configuration?.browser;\n const browserConfig = browserRef?.config ?? {};\n const providerId = browserConfig.provider ?? null;\n browser = {\n type: browserRef?.type ?? null,\n provider: providerId,\n env: browserConfig.env ?? null,\n registered: providerId ? !!browsers?.has(providerId) : false,\n availableProviders: browsers ? Array.from(browsers.keys()) : [],\n config: getConfigEntries(browserConfig, ['provider', 'env']),\n };\n\n const workspaceRef = configuration?.workspace;\n const workspaceConfig = workspaceRef?.config ?? {};\n const registeredWorkspaces = mastra.listWorkspaces();\n const registeredWorkspace = workspaceRef?.workspaceId\n ? registeredWorkspaces[workspaceRef.workspaceId]\n : undefined;\n const filesystem = registeredWorkspace?.workspace.filesystem ?? workspaceConfig.filesystem;\n const sandbox = registeredWorkspace?.workspace.sandbox ?? workspaceConfig.sandbox;\n const filesystemConfig =\n typeof workspaceConfig.filesystem === 'object' &&\n workspaceConfig.filesystem &&\n 'config' in workspaceConfig.filesystem\n ? (workspaceConfig.filesystem.config as Record<string, unknown>)\n : {};\n const sandboxConfig =\n typeof workspaceConfig.sandbox === 'object' && workspaceConfig.sandbox && 'config' in workspaceConfig.sandbox\n ? (workspaceConfig.sandbox.config as Record<string, unknown>)\n : {};\n workspace = {\n type: workspaceRef?.type ?? null,\n workspaceId: workspaceRef?.workspaceId ?? null,\n name: workspaceConfig.name ?? registeredWorkspace?.workspace.name ?? null,\n source: registeredWorkspace?.source ?? null,\n registered: !!registeredWorkspace,\n hasFilesystem: !!filesystem,\n hasSandbox: !!sandbox,\n filesystemProvider: getProviderName(filesystem),\n sandboxProvider: getProviderName(sandbox),\n config: [\n ...getConfigEntries(filesystemConfig).map(entry => ({ ...entry, key: `filesystem.${entry.key}` })),\n ...getConfigEntries(sandboxConfig).map(entry => ({ ...entry, key: `sandbox.${entry.key}` })),\n ],\n };\n }\n\n return { channels, browser, workspace, registries };\n } catch (error) {\n return handleError(error, 'Error getting infrastructure status');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/utils/resolve-builder-model-policy.ts","../src/server/handlers/editor-builder.ts"],"names":["agentFeaturesSchema","HTTPException","createRoute","builderSettingsResponseSchema","handleError","builderAvailableModelsResponseSchema","buildProvidersList","infrastructureStatusResponseSchema"],"mappings":"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","file":"chunk-UWGT2JVT.cjs","sourcesContent":["import type { BuilderModelPolicy } from '@mastra/core/agent-builder/ee';\nimport type { IMastraEditor } from '@mastra/core/editor';\n\n/**\n * Server-side wrapper around `builderToModelPolicy`.\n *\n * Handles the optional `IMastraEditor` builder API surface (older / OSS editors\n * may not implement `hasEnabledBuilderConfig` / `resolveBuilder`) and returns\n * a uniform `BuilderModelPolicy` to every call site.\n *\n * Returns `{ active: false }` whenever:\n * - no editor is configured,\n * - the editor doesn't expose builder methods,\n * - the builder config is disabled, or\n * - resolving the builder fails / yields nothing.\n *\n * The `@mastra/core/agent-builder/ee` subpath is loaded lazily so this module\n * remains importable on `@mastra/core` versions that pre-date the subpath\n * (the subpath was added in core 1.34.0). The dynamic import is only reached\n * once an editor is actually configured, by which point a compatible core is\n * guaranteed.\n */\nexport async function resolveBuilderModelPolicy(editor: IMastraEditor | undefined): Promise<BuilderModelPolicy> {\n if (!editor) return { active: false };\n if (typeof editor.resolveBuilder !== 'function') return { active: false };\n if (typeof editor.hasEnabledBuilderConfig === 'function' && !editor.hasEnabledBuilderConfig()) {\n return { active: false };\n }\n\n // Degrade to inactive on builder-resolution failure rather than letting the\n // rejection escape: agent execution routes seed this on every request, so a\n // transient failure must not 500 the entire route.\n try {\n const builder = await editor.resolveBuilder();\n const { builderToModelPolicy } = await import('@mastra/core/agent-builder/ee');\n return builderToModelPolicy(builder);\n } catch {\n return { active: false };\n }\n}\n","import type { Mastra } from '@mastra/core';\n\nimport { HTTPException } from '../http-exception';\nimport {\n agentFeaturesSchema,\n builderAvailableModelsResponseSchema,\n builderSettingsResponseSchema,\n infrastructureStatusResponseSchema,\n} from '../schemas/editor-builder';\nimport type { AgentFeatures, InfrastructureStatus } from '../schemas/editor-builder';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { resolveBuilderModelPolicy } from '../utils/resolve-builder-model-policy';\nimport { buildProvidersList } from './agents';\nimport { handleError } from './error';\n\n/**\n * Resolve the active builder feature flags. Returns `null` when the editor is\n * absent, the builder is disabled, or no features are configured.\n */\nasync function resolveBuilderFeatures(mastra: Mastra): Promise<AgentFeatures | null> {\n const editor = mastra.getEditor();\n if (!editor || typeof editor.resolveBuilder !== 'function') return null;\n if (!editor.hasEnabledBuilderConfig?.()) return null;\n const builder = await editor.resolveBuilder();\n if (!builder || !builder.enabled) return null;\n const features = builder.getFeatures?.()?.agent;\n if (!features) return null;\n // Validate the shape so unknown keys cannot smuggle through.\n const parsed = agentFeaturesSchema.safeParse(features);\n return parsed.success ? parsed.data : null;\n}\n\n/**\n * Returns whether a given agent-builder feature is enabled. Used by list /\n * get-by-id handlers to soft-gate response enrichment (omit fields, ignore\n * favoritedOnly / pinFavoritedFor params) when the feature is off.\n */\nexport async function isBuilderFeatureEnabled(mastra: Mastra, feature: keyof AgentFeatures): Promise<boolean> {\n const features = await resolveBuilderFeatures(mastra);\n return features?.[feature] === true;\n}\n\n/**\n * Hard-gate helper for mutation routes that must not exist when the feature\n * is off. Throws `HTTPException(404)` so we don't leak the existence of the\n * feature surface (matches behavior of unregistered routes).\n */\nexport async function requireBuilderFeature(mastra: Mastra, feature: keyof AgentFeatures): Promise<void> {\n if (!(await isBuilderFeatureEnabled(mastra, feature))) {\n throw new HTTPException(404, { message: 'Not Found' });\n }\n}\n\n/**\n * GET /editor/builder/settings\n *\n * Returns the agent builder settings configured by the admin.\n * Used by frontend to determine which features to display.\n */\nexport const GET_EDITOR_BUILDER_SETTINGS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/settings',\n responseType: 'json',\n responseSchema: builderSettingsResponseSchema,\n summary: 'Get agent builder settings',\n description: 'Returns the agent builder feature flags and configuration for UI gating',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-agents:read',\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n\n // No editor configured\n if (!editor) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Editor doesn't support builder (older version or OSS)\n if (typeof editor.resolveBuilder !== 'function') {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Check if builder is enabled in config\n if (!editor.hasEnabledBuilderConfig?.()) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n // Resolve the builder instance\n const builder = await editor.resolveBuilder();\n if (!builder || !builder.enabled) {\n return { enabled: false, modelPolicy: { active: false } };\n }\n\n const baseWarnings = builder.getModelPolicyWarnings?.() ?? [];\n const configuration = builder.getConfiguration();\n\n // Picker allowlists are written against entity `.id` (what users see in\n // the UI, URLs, traces). The client filters list responses by their\n // response keys, which are not always `.id`:\n // - GET /agents keys by `agent.id`\n // - GET /tools keys by registration key (values include `id`)\n // - GET /workflows keys by registration key (values omit `id`)\n // To keep the client filter simple, we accept `.id` (fallback to\n // registration key) for matching, but emit visible IDs as response keys\n // so `Object.keys(data)` lines up.\n type AliasPair = { id: string; key: string };\n const collectAliases = (registry: Record<string, unknown>): AliasPair[] =>\n Object.entries(registry).map(([key, entity]) => ({\n id: (entity as { id?: string }).id || key,\n key,\n }));\n\n const toolAliases = collectAliases(mastra.listTools() ?? {});\n const agentAliases = collectAliases(mastra.listAgents() ?? {});\n const workflowAliases = collectAliases(mastra.listWorkflows() ?? {});\n\n // Tools/workflows responses are keyed by registration key. Agents\n // response is keyed by `.id`.\n const toResponseKey = (aliases: AliasPair[], byId: 'id' | 'key') => {\n const map = new Map<string, string>();\n for (const a of aliases) {\n map.set(a.id, byId === 'id' ? a.id : a.key);\n map.set(a.key, byId === 'id' ? a.id : a.key);\n }\n return map;\n };\n const toolKeyMap = toResponseKey(toolAliases, 'key');\n const agentKeyMap = toResponseKey(agentAliases, 'id');\n const workflowKeyMap = toResponseKey(workflowAliases, 'key');\n\n // Lazy-load the EE subpath so this module remains importable on\n // `@mastra/core` versions that pre-date it (added in core 1.34.0).\n // We only reach here after `builder.enabled` is true, which guarantees\n // a compatible core.\n const { builderToModelPolicy, resolvePickerVisibility } = await import('@mastra/core/agent-builder/ee');\n\n const picker = resolvePickerVisibility({\n config: configuration?.agent,\n registeredToolIds: toolAliases.flatMap(a => [a.id, a.key]),\n registeredAgentIds: agentAliases.flatMap(a => [a.id, a.key]),\n registeredWorkflowIds: workflowAliases.flatMap(a => [a.id, a.key]),\n });\n\n const normalize = (visible: string[] | null, map: Map<string, string>): string[] | null => {\n if (visible === null) return null;\n const out: string[] = [];\n const seen = new Set<string>();\n for (const id of visible) {\n const mapped = map.get(id);\n if (mapped && !seen.has(mapped)) {\n seen.add(mapped);\n out.push(mapped);\n }\n }\n return out;\n };\n\n const modelPolicyWarnings = [...baseWarnings, ...picker.warnings];\n\n return {\n enabled: true,\n features: builder.getFeatures(),\n configuration,\n modelPolicy: builderToModelPolicy(builder),\n picker: {\n visibleTools: normalize(picker.visibleTools, toolKeyMap),\n visibleAgents: normalize(picker.visibleAgents, agentKeyMap),\n visibleWorkflows: normalize(picker.visibleWorkflows, workflowKeyMap),\n },\n ...(modelPolicyWarnings.length > 0 ? { modelPolicyWarnings } : {}),\n };\n } catch (error) {\n return handleError(error, 'Error getting builder settings');\n }\n },\n});\n\n/**\n * GET /editor/builder/models/available\n *\n * Returns the configured AI providers/models the agent builder may use. The\n * server is the single authority: it scopes the list to providers with a\n * configured API key (`connected`) and applies the active builder model\n * policy via `isModelAllowed`, so the Studio surfaces can render the response\n * verbatim without importing any EE matcher into the browser.\n *\n * - Providers without a configured API key are always omitted — the builder\n * decides the agent's model from this list, so an unconnected provider would\n * produce an agent that can never run.\n * - Policy inactive (or no allowlist) ⇒ all connected providers are returned.\n * - Policy active with an allowlist ⇒ each connected provider's models are\n * filtered, and providers left with no allowed models are omitted entirely.\n */\nexport const GET_EDITOR_BUILDER_AVAILABLE_MODELS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/models/available',\n responseType: 'json',\n responseSchema: builderAvailableModelsResponseSchema,\n summary: 'List builder-available AI models',\n description: 'Returns AI providers/models filtered by the active agent-builder model policy.',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'stored-agents:read',\n handler: async ({ mastra }) => {\n try {\n // Only surface providers whose API key is configured (`connected`). The\n // agent builder decides the agent's model from this list, so including\n // providers without a key lets it pick a model that can never run. We\n // scope to connected providers so every choice is actually usable.\n const providers = (await buildProvidersList(mastra)).filter(provider => provider.connected);\n const policy = await resolveBuilderModelPolicy(mastra.getEditor());\n\n // Inactive policy (or no allowlist) ⇒ no allowlist filtering to apply.\n if (!policy.active || !policy.allowed || policy.allowed.length === 0) {\n return { providers };\n }\n\n // Lazy-load the EE matcher (server-only); mirrors the convention used by\n // resolve-builder-model-policy and the settings handler.\n const { isModelAllowed } = await import('@mastra/core/agent-builder/ee');\n\n const filtered = providers\n .map(provider => ({\n ...provider,\n models: provider.models.filter(modelId => isModelAllowed(policy.allowed, { provider: provider.id, modelId })),\n }))\n .filter(provider => provider.models.length > 0);\n\n return { providers: filtered };\n } catch (error) {\n return handleError(error, 'Error fetching available models');\n }\n },\n});\n\n/**\n * GET /editor/builder/infrastructure\n *\n * Returns the runtime status of Mastra-opinionated primitives (channels,\n * browser providers, workspaces). Admin-only; surfaced in Studio Settings so\n * admins can sanity-check what's wired up to the running server.\n */\nexport const GET_INFRASTRUCTURE_STATUS_ROUTE = createRoute({\n method: 'GET',\n path: '/editor/builder/infrastructure',\n responseType: 'json',\n responseSchema: infrastructureStatusResponseSchema,\n summary: 'Get infrastructure status',\n description: 'Agent Builder infrastructure configuration and lightweight runtime status.',\n tags: ['Editor'],\n requiresAuth: true,\n requiresPermission: 'infrastructure:read',\n handler: async ({ mastra }) => {\n try {\n const formatConfigValue = (value: unknown): string => {\n if (value === null || value === undefined) return 'not set';\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') return String(value);\n if (Array.isArray(value)) return `${value.length} item${value.length === 1 ? '' : 's'}`;\n return value.constructor?.name && value.constructor.name !== 'Object' ? value.constructor.name : 'configured';\n };\n\n const getProviderName = (value: unknown): string | null => {\n if (!value) return null;\n if (typeof value === 'object' && 'provider' in value && typeof value.provider === 'string')\n return value.provider;\n if (typeof value === 'object' && 'constructor' in value) {\n const name = (value as { constructor?: { name?: string } }).constructor?.name;\n return name && name !== 'Object' ? name : 'configured';\n }\n return null;\n };\n\n const getConfigEntries = (config: Record<string, unknown>, omittedKeys: string[] = []) =>\n Object.entries(config)\n .filter(([key, value]) => !omittedKeys.includes(key) && value !== undefined && value !== null)\n .map(([key, value]) => ({ key, value: formatConfigValue(value) }));\n\n const channelProviders = mastra.getChannelProviders() ?? {};\n const channels: InfrastructureStatus['channels'] = {\n providers: Object.entries(channelProviders)\n .map(([id, provider]) => {\n const info = provider.getInfo?.();\n const routes = provider.getRoutes?.() ?? [];\n return {\n id: info?.id ?? id,\n name: info?.name ?? id,\n isConfigured: info?.isConfigured ?? false,\n routeCount: routes.length,\n };\n })\n .filter(provider => provider.isConfigured),\n };\n\n const editor = mastra.getEditor();\n let browser: InfrastructureStatus['browser'] = {\n type: null,\n provider: null,\n env: null,\n registered: false,\n availableProviders: [],\n config: [],\n };\n let workspace: InfrastructureStatus['workspace'] = {\n type: null,\n workspaceId: null,\n name: null,\n source: null,\n registered: false,\n hasFilesystem: false,\n hasSandbox: false,\n filesystemProvider: null,\n sandboxProvider: null,\n config: [],\n };\n let registries: InfrastructureStatus['registries'] = {\n skillsSh: { enabled: false },\n };\n\n if (editor?.resolveBuilder) {\n const browsers = (editor as unknown as { __browsers?: Map<string, unknown> }).__browsers;\n const builder = await editor.resolveBuilder();\n const builderRegistries = builder?.getRegistries?.();\n registries = {\n skillsSh: { enabled: builderRegistries?.skillsSh?.enabled === true },\n };\n const configuration = builder?.getConfiguration?.()?.agent as\n | {\n browser?: { type?: string; config?: { provider?: string; env?: string } };\n workspace?: {\n type?: string;\n workspaceId?: string;\n config?: { name?: string; filesystem?: unknown; sandbox?: unknown };\n };\n }\n | undefined;\n\n const browserRef = configuration?.browser;\n const browserConfig = browserRef?.config ?? {};\n const providerId = browserConfig.provider ?? null;\n browser = {\n type: browserRef?.type ?? null,\n provider: providerId,\n env: browserConfig.env ?? null,\n registered: providerId ? !!browsers?.has(providerId) : false,\n availableProviders: browsers ? Array.from(browsers.keys()) : [],\n config: getConfigEntries(browserConfig, ['provider', 'env']),\n };\n\n const workspaceRef = configuration?.workspace;\n const workspaceConfig = workspaceRef?.config ?? {};\n const registeredWorkspaces = mastra.listWorkspaces();\n const registeredWorkspace = workspaceRef?.workspaceId\n ? registeredWorkspaces[workspaceRef.workspaceId]\n : undefined;\n const filesystem = registeredWorkspace?.workspace.filesystem ?? workspaceConfig.filesystem;\n const sandbox = registeredWorkspace?.workspace.sandbox ?? workspaceConfig.sandbox;\n const filesystemConfig =\n typeof workspaceConfig.filesystem === 'object' &&\n workspaceConfig.filesystem &&\n 'config' in workspaceConfig.filesystem\n ? (workspaceConfig.filesystem.config as Record<string, unknown>)\n : {};\n const sandboxConfig =\n typeof workspaceConfig.sandbox === 'object' && workspaceConfig.sandbox && 'config' in workspaceConfig.sandbox\n ? (workspaceConfig.sandbox.config as Record<string, unknown>)\n : {};\n workspace = {\n type: workspaceRef?.type ?? null,\n workspaceId: workspaceRef?.workspaceId ?? null,\n name: workspaceConfig.name ?? registeredWorkspace?.workspace.name ?? null,\n source: registeredWorkspace?.source ?? null,\n registered: !!registeredWorkspace,\n hasFilesystem: !!filesystem,\n hasSandbox: !!sandbox,\n filesystemProvider: getProviderName(filesystem),\n sandboxProvider: getProviderName(sandbox),\n config: [\n ...getConfigEntries(filesystemConfig).map(entry => ({ ...entry, key: `filesystem.${entry.key}` })),\n ...getConfigEntries(sandboxConfig).map(entry => ({ ...entry, key: `sandbox.${entry.key}` })),\n ],\n };\n }\n\n return { channels, browser, workspace, registries };\n } catch (error) {\n return handleError(error, 'Error getting infrastructure status');\n }\n },\n});\n"]}
@@ -1,8 +1,8 @@
1
1
  import { listScorersResponseSchema, scorerIdPathParams, scorerEntrySchema, scoresWithPaginationResponseSchema, listScoresByRunIdQuerySchema, listScoresByScorerIdQuerySchema, listScoresByEntityIdQuerySchema, entityPathParams, saveScoreResponseSchema, saveScoreBodySchema } from './chunk-I2LG5WYB.js';
2
- import { getAgentFromSystem } from './chunk-2ZMOUXUF.js';
2
+ import { getAgentFromSystem } from './chunk-G4KBL45K.js';
3
3
  import { runIdSchema } from './chunk-2YY3EMMS.js';
4
4
  import { handleError } from './chunk-7ZWJX3AN.js';
5
- import { createRoute } from './chunk-C4AFQDAO.js';
5
+ import { createRoute } from './chunk-PTJBYYMK.js';
6
6
  import { HTTPException } from './chunk-6QWQZI4Q.js';
7
7
  import { __export } from './chunk-PR4QN5HX.js';
8
8
 
@@ -296,5 +296,5 @@ var SAVE_SCORE_ROUTE = createRoute({
296
296
  });
297
297
 
298
298
  export { GET_SCORER_ROUTE, LIST_SCORERS_ROUTE, LIST_SCORES_BY_ENTITY_ID_ROUTE, LIST_SCORES_BY_RUN_ID_ROUTE, LIST_SCORES_BY_SCORER_ID_ROUTE, SAVE_SCORE_ROUTE, scores_exports };
299
- //# sourceMappingURL=chunk-YEQZMTCM.js.map
300
- //# sourceMappingURL=chunk-YEQZMTCM.js.map
299
+ //# sourceMappingURL=chunk-UXFBPV3G.js.map
300
+ //# sourceMappingURL=chunk-UXFBPV3G.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/scores.ts"],"names":[],"mappings":";;;;;;;;;AAAA,IAAA,cAAA,GAAA;AAAA,QAAA,CAAA,cAAA,EAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,8BAAA,EAAA,MAAA,8BAAA;AAAA,EAAA,2BAAA,EAAA,MAAA,2BAAA;AAAA,EAAA,8BAAA,EAAA,MAAA,8BAAA;AAAA,EAAA,gBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAsBA,eAAe,qBAAA,CAAsB;AAAA,EACnC,MAAA;AAAA,EACA;AACF,CAAA,EAEG;AACD,EAAA,MAAM,MAAA,GAAS,OAAO,UAAA,EAAW;AACjC,EAAA,MAAM,SAAA,GAAY,OAAO,aAAA,EAAc;AAEvC,EAAA,MAAM,UAAA,uBAAiB,GAAA,EASrB;AAGF,EAAA,MAAM,mBAAA,GAAsB,OAAO,KAAA,KAI7B;AACJ,IAAA,MAAM,OAAA,GACH,MAAM,KAAA,CAAM,WAAA,CAAY;AAAA,MACvB;AAAA,KACD,KAAM,EAAC;AAEV,IAAA,IAAI,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,SAAS,CAAA,EAAG;AACnC,MAAA,KAAA,MAAW,CAAC,SAAA,EAAW,MAAM,KAAK,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA,EAAG;AACzD,QAAA,MAAM,QAAA,GAAW,OAAO,MAAA,CAAO,EAAA;AAC/B,QAAA,IAAI,UAAA,CAAW,GAAA,CAAI,QAAQ,CAAA,EAAG;AAC5B,UAAA,UAAA,CAAW,IAAI,QAAQ,CAAA,EAAG,QAAA,CAAS,IAAA,CAAK,MAAM,EAAE,CAAA;AAChD,UAAA,UAAA,CAAW,IAAI,QAAQ,CAAA,EAAG,UAAA,CAAW,IAAA,CAAK,MAAM,IAAI,CAAA;AAAA,QACtD,CAAA,MAAO;AACL,UAAA,UAAA,CAAW,IAAI,QAAA,EAAU;AAAA,YACvB,aAAa,EAAC;AAAA,YACd,GAAG,MAAA;AAAA,YACH,UAAA,EAAY,CAAC,KAAA,CAAM,IAAI,CAAA;AAAA,YACvB,QAAA,EAAU,CAAC,KAAA,CAAM,EAAE,CAAA;AAAA,YACnB,YAAA,EAAc,KAAA;AAAA,YACd,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,IAAU;AAAA,WACjC,CAAA;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA;AAGA,EAAA,KAAA,MAAW,CAAC,CAAA,EAAG,KAAK,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AAC/C,IAAA,MAAM,oBAAoB,KAAK,CAAA;AAAA,EACjC;AAGA,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAChC,IAAA,MAAM,kBAAA,GAAqB,MAAM,MAAA,EAAQ,KAAA,CAAM,IAAA,EAAK;AACpD,IAAA,IAAI,oBAAoB,MAAA,EAAQ;AAC9B,MAAA,KAAA,MAAW,iBAAA,IAAqB,mBAAmB,MAAA,EAAQ;AACzD,QAAA,IAAI;AACF,UAAA,MAAM,QAAQ,MAAM,MAAA,EAAQ,KAAA,CAAM,OAAA,CAAQ,kBAAkB,EAAE,CAAA;AAC9D,UAAA,IAAI,KAAA,EAAO;AACT,YAAA,MAAM,oBAAoB,KAAK,CAAA;AAAA,UACjC;AAAA,QACF,CAAA,CAAA,MAAQ;AAAA,QAER;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA,CAAA,MAAQ;AAAA,EAER;AAGA,EAAA,IAAI;AACF,IAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAChC,IAAA,MAAM,mBAAA,GAAsB,MAAM,MAAA,EAAQ,MAAA,CAAO,IAAA,EAAK;AACtD,IAAA,IAAI,qBAAqB,iBAAA,EAAmB;AAC1C,MAAA,KAAA,MAAW,kBAAA,IAAsB,oBAAoB,iBAAA,EAAmB;AACtE,QAAA,IAAI;AACF,UAAA,MAAM,MAAA,EAAQ,MAAA,CAAO,OAAA,CAAQ,kBAAA,CAAmB,EAAE,CAAA;AAAA,QACpD,CAAA,CAAA,MAAQ;AAAA,QAER;AAAA,MACF;AAAA,IACF;AAAA,EACF,CAAA,CAAA,MAAQ;AAAA,EAER;AAEA,EAAA,KAAA,MAAW,CAAC,UAAA,EAAY,QAAQ,KAAK,MAAA,CAAO,OAAA,CAAQ,SAAS,CAAA,EAAG;AAC9D,IAAA,MAAM,OAAA,GACH,MAAM,QAAA,CAAS,WAAA,CAAY;AAAA,MAC1B;AAAA,KACD,KAAM,EAAC;AAEV,IAAA,IAAI,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,SAAS,CAAA,EAAG;AACnC,MAAA,KAAA,MAAW,CAAC,SAAA,EAAW,MAAM,KAAK,MAAA,CAAO,OAAA,CAAQ,OAAO,CAAA,EAAG;AACzD,QAAA,MAAM,UAAA,GAAa,OAAO,MAAA,CAAO,IAAA;AACjC,QAAA,IAAI,UAAA,CAAW,GAAA,CAAI,UAAU,CAAA,EAAG;AAC9B,UAAA,UAAA,CAAW,GAAA,CAAI,UAAU,CAAA,EAAG,WAAA,CAAY,KAAK,UAAU,CAAA;AAAA,QACzD,CAAA,MAAO;AACL,UAAA,UAAA,CAAW,IAAI,UAAA,EAAY;AAAA,YACzB,UAAU,EAAC;AAAA,YACX,YAAY,EAAC;AAAA,YACb,GAAG,MAAA;AAAA,YACH,WAAA,EAAa,CAAC,UAAU,CAAA;AAAA,YACxB,YAAA,EAAc,KAAA;AAAA,YACd,MAAA,EAAQ,MAAA,CAAO,MAAA,CAAO,MAAA,IAAU;AAAA,WACjC,CAAA;AAAA,QACH;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,MAAM,iBAAA,GAAoB,MAAM,MAAA,CAAO,WAAA,EAAY;AACnD,EAAA,KAAA,MAAW,CAAC,WAAW,MAAM,CAAA,IAAK,OAAO,OAAA,CAAQ,iBAAA,IAAqB,EAAE,CAAA,EAAG;AACzE,IAAA,MAAM,WAAW,MAAA,CAAO,EAAA;AACxB,IAAA,IAAI,UAAA,CAAW,GAAA,CAAI,QAAQ,CAAA,EAAG;AAC5B,MAAA,UAAA,CAAW,GAAA,CAAI,QAAQ,CAAA,CAAG,YAAA,GAAe,IAAA;AAAA,IAC3C,CAAA,MAAO;AACL,MAAA,UAAA,CAAW,IAAI,QAAA,EAAU;AAAA,QACvB,MAAA;AAAA,QACA,UAAU,EAAC;AAAA,QACX,YAAY,EAAC;AAAA,QACb,aAAa,EAAC;AAAA,QACd,YAAA,EAAc,IAAA;AAAA,QACd,MAAA,EAAQ,OAAO,MAAA,IAAU;AAAA,OAC1B,CAAA;AAAA,IACH;AAAA,EACF;AAEA,EAAA,OAAO,MAAA,CAAO,WAAA,CAAY,UAAA,CAAW,OAAA,EAAS,CAAA;AAChD;AAGA,SAAS,gBAAgB,iBAAA,EAA4B;AACnD,EAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,IAAA,OAAO,EAAC;AAAA,EACV;AAEA,EAAA,MAAM,CAAC,OAAA,EAAS,MAAM,CAAA,GAAI,iBAAA,CAAkB,MAAM,GAAG,CAAA;AAErD,EAAA,OAAO;AAAA,IACL,GAAI,OAAA,GAAU,EAAE,OAAA,KAAY,EAAC;AAAA,IAC7B,GAAI,MAAA,GAAS,EAAE,MAAA,KAAW;AAAC,GAC7B;AACF;AAMO,IAAM,qBAAqB,WAAA,CAAY;AAAA,EAC5C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,iBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,yBAAA;AAAA,EAChB,OAAA,EAAS,kBAAA;AAAA,EACT,WAAA,EAAa,uGAAA;AAAA,EACb,IAAA,EAAM,CAAC,SAAS,CAAA;AAAA,EAChB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,GAAU,OAAO,EAAE,MAAA,EAAQ,gBAAe,KAAW;AACnD,IAAA,MAAM,OAAA,GAAU,MAAM,qBAAA,CAAsB;AAAA,MAC1C,MAAA;AAAA,MACA;AAAA,KACD,CAAA;AACD,IAAA,OAAO,OAAA;AAAA,EACT,CAAA;AACF,CAAC;AAEM,IAAM,mBAAmB,WAAA,CAAY;AAAA,EAC1C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,2BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,kBAAA;AAAA,EACjB,cAAA,EAAgB,kBAAkB,QAAA,EAAS;AAAA,EAC3C,OAAA,EAAS,kBAAA;AAAA,EACT,WAAA,EAAa,oFAAA;AAAA,EACb,IAAA,EAAM,CAAC,SAAS,CAAA;AAAA,EAChB,YAAA,EAAc,IAAA;AAAA,EACd,UAAU,OAAO,EAAE,MAAA,EAAQ,QAAA,EAAU,gBAAe,KAAW;AAC7D,IAAA,MAAM,OAAA,GAAU,MAAM,qBAAA,CAAsB;AAAA,MAC1C,MAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAA,MAAM,MAAA,GAAS,QAAQ,QAAQ,CAAA;AAE/B,IAAA,IAAI,CAAC,MAAA,EAAQ;AACX,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AACF,CAAC;AAEM,IAAM,8BAA8B,WAAA,CAAY;AAAA,EACrD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,oBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,WAAA;AAAA,EACjB,gBAAA,EAAkB,4BAAA;AAAA,EAClB,cAAA,EAAgB,kCAAA;AAAA,EAChB,OAAA,EAAS,uBAAA;AAAA,EACT,WAAA,EAAa,iDAAA;AAAA,EACb,IAAA,EAAM,CAAC,SAAS,CAAA;AAAA,EAChB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,QAAQ,KAAA,EAAO,GAAG,QAAO,KAAM;AAC/C,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAQ,GAAI,MAAA;AAC1B,MAAA,MAAM,UAAA,GAAgC;AAAA,QACpC,MAAM,IAAA,IAAQ,CAAA;AAAA,QACd,SAAS,OAAA,IAAW;AAAA,OACtB;AACA,MAAA,MAAM,SAAS,MAAM,MAAA,CAAO,UAAA,EAAW,EAAG,SAAS,QAAQ,CAAA;AAC3D,MAAA,MAAM,YAAA,GAAgB,MAAM,MAAA,EAAQ,iBAAA,GAAoB;AAAA,QACtD,KAAA;AAAA,QACA;AAAA,OACD,CAAA,IAAM,EAAE,UAAA,EAAY,EAAE,OAAO,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,OAAA,EAAS,GAAG,OAAA,EAAS,KAAA,EAAM,EAAG,MAAA,EAAQ,EAAC,EAAE;AACnF,MAAA,OAAO;AAAA,QACL,YAAY,YAAA,CAAa,UAAA;AAAA,QACzB,MAAA,EAAQ,YAAA,CAAa,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,MAAyB,EAAE,GAAG,KAAA,EAAO,GAAG,eAAA,CAAgB,KAAA,CAAM,OAAO,GAAE,CAAE;AAAA,OAC5G;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,gCAAgC,CAAA;AAAA,IAC5D;AAAA,EACF;AACF,CAAC;AAEM,IAAM,iCAAiC,WAAA,CAAY;AAAA,EACxD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,0BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,kBAAA;AAAA,EACjB,gBAAA,EAAkB,+BAAA;AAAA,EAClB,cAAA,EAAgB,kCAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,mDAAA;AAAA,EACb,IAAA,EAAM,CAAC,SAAS,CAAA;AAAA,EAChB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,QAAQ,QAAA,EAAU,GAAG,QAAO,KAAM;AAClD,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAS,QAAA,EAAU,YAAW,GAAI,MAAA;AAChD,MAAA,MAAM,UAAU,MAAA,CAAO,WAAA,CAAY,OAAO,OAAA,CAAQ,EAAE,UAAU,UAAA,EAAY,CAAA,CAAE,MAAA,CAAO,CAAC,CAAC,CAAA,EAAG,CAAC,CAAA,KAAM,CAAA,KAAM,MAAS,CAAC,CAAA;AAC/G,MAAA,MAAM,SAAS,MAAM,MAAA,CAAO,UAAA,EAAW,EAAG,SAAS,QAAQ,CAAA;AAC3D,MAAA,MAAM,YAAA,GAAgB,MAAM,MAAA,EAAQ,oBAAA,GAAuB;AAAA,QACzD,QAAA;AAAA,QACA,YAAY,EAAE,IAAA,EAAM,QAAQ,CAAA,EAAG,OAAA,EAAS,WAAW,EAAA,EAAG;AAAA,QACtD,GAAG;AAAA,OACJ,CAAA,IAAM,EAAE,UAAA,EAAY,EAAE,OAAO,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,OAAA,EAAS,GAAG,OAAA,EAAS,KAAA,EAAM,EAAG,MAAA,EAAQ,EAAC,EAAE;AACnF,MAAA,OAAO;AAAA,QACL,YAAY,YAAA,CAAa,UAAA;AAAA,QACzB,MAAA,EAAQ,YAAA,CAAa,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,MAAyB,EAAE,GAAG,KAAA,EAAO,GAAG,eAAA,CAAgB,KAAA,CAAM,OAAO,GAAE,CAAE;AAAA,OAC5G;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,IAC/D;AAAA,EACF;AACF,CAAC;AAEM,IAAM,iCAAiC,WAAA,CAAY;AAAA,EACxD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,sCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,gBAAA;AAAA,EACjB,gBAAA,EAAkB,+BAAA;AAAA,EAClB,cAAA,EAAgB,kCAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,8DAAA;AAAA,EACb,IAAA,EAAM,CAAC,SAAS,CAAA;AAAA,EAChB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,UAAU,UAAA,EAAY,GAAG,QAAO,KAAM;AAC9D,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAQ,GAAI,MAAA;AAC1B,MAAA,IAAI,aAAA,GAAgB,QAAA;AAEpB,MAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,QAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,OAAA,EAAS,UAAU,CAAA;AACpE,QAAA,aAAA,GAAgB,KAAA,CAAM,EAAA;AAAA,MACxB,CAAA,MAAA,IAAW,eAAe,UAAA,EAAY;AACpC,QAAA,MAAM,QAAA,GAAW,MAAA,CAAO,eAAA,CAAgB,QAAQ,CAAA;AAChD,QAAA,aAAA,GAAgB,QAAA,CAAS,EAAA;AAAA,MAC3B;AAEA,MAAA,MAAM,UAAA,GAAgC;AAAA,QACpC,MAAM,IAAA,IAAQ,CAAA;AAAA,QACd,SAAS,OAAA,IAAW;AAAA,OACtB;AAEA,MAAA,MAAM,cAAc,MAAM,MAAA,CAAO,UAAA,EAAW,EAAG,SAAS,QAAQ,CAAA;AAChE,MAAA,MAAM,YAAA,GAAgB,MAAM,WAAA,EAAa,oBAAA,GAAuB;AAAA,QAC9D,QAAA,EAAU,aAAA;AAAA,QACV,UAAA;AAAA,QACA;AAAA,OACD,CAAA,IAAM,EAAE,UAAA,EAAY,EAAE,OAAO,CAAA,EAAG,IAAA,EAAM,CAAA,EAAG,OAAA,EAAS,GAAG,OAAA,EAAS,KAAA,EAAM,EAAG,MAAA,EAAQ,EAAC,EAAE;AAEnF,MAAA,OAAO;AAAA,QACL,YAAY,YAAA,CAAa,UAAA;AAAA,QACzB,MAAA,EAAQ,YAAA,CAAa,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,MAAyB,EAAE,GAAG,KAAA,EAAO,GAAG,eAAA,CAAgB,KAAA,CAAM,OAAO,GAAE,CAAE;AAAA,OAC5G;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,IAC/D;AAAA,EACF;AACF,CAAC;AAEM,IAAM,mBAAmB,WAAA,CAAY;AAAA,EAC1C,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,SAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,UAAA,EAAY,mBAAA;AAAA,EACZ,cAAA,EAAgB,uBAAA;AAAA,EAChB,OAAA,EAAS,YAAA;AAAA,EACT,WAAA,EAAa,qCAAA;AAAA,EACb,IAAA,EAAM,CAAC,SAAS,CAAA;AAAA,EAChB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,GAAG,QAAO,KAAM;AACxC,IAAA,IAAI;AACF,MAAA,MAAM,EAAE,OAAM,GAAI,MAAA;AAClB,MAAA,MAAM,cAAc,MAAM,MAAA,CAAO,UAAA,EAAW,EAAG,SAAS,QAAQ,CAAA;AAChE,MAAA,MAAM,MAAA,GAAS,MAAM,WAAA,EAAa,SAAA,GAAY,KAAK,CAAA;AACnD,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0BAA0B,CAAA;AAAA,MACpE;AACA,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,oBAAoB,CAAA;AAAA,IAChD;AAAA,EACF;AACF,CAAC","file":"chunk-YEQZMTCM.js","sourcesContent":["import type { MastraScorerEntry, ScoreRowData } from '@mastra/core/evals';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { StoragePagination } from '@mastra/core/storage';\nimport { HTTPException } from '../http-exception';\nimport { runIdSchema } from '../schemas/common';\nimport {\n listScorersResponseSchema,\n scorerEntrySchema,\n scorerIdPathParams,\n entityPathParams,\n listScoresByRunIdQuerySchema,\n listScoresByScorerIdQuerySchema,\n listScoresByEntityIdQuerySchema,\n saveScoreBodySchema,\n scoresWithPaginationResponseSchema,\n saveScoreResponseSchema,\n} from '../schemas/scores';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\n\nasync function listScorersFromSystem({\n mastra,\n requestContext,\n}: Context & {\n requestContext: RequestContext;\n}) {\n const agents = mastra.listAgents();\n const workflows = mastra.listWorkflows();\n\n const scorersMap = new Map<\n string,\n MastraScorerEntry & {\n agentIds: string[];\n agentNames: string[];\n workflowIds: string[];\n isRegistered: boolean;\n source: 'code' | 'stored' | 'fs';\n }\n >();\n\n // Helper function to process an agent's scorers\n const processAgentScorers = async (agent: {\n id: string;\n name: string;\n listScorers: (typeof agents)[string]['listScorers'];\n }) => {\n const scorers =\n (await agent.listScorers({\n requestContext,\n })) || {};\n\n if (Object.keys(scorers).length > 0) {\n for (const [_scorerId, scorer] of Object.entries(scorers)) {\n const scorerId = scorer.scorer.id;\n if (scorersMap.has(scorerId)) {\n scorersMap.get(scorerId)?.agentIds.push(agent.id);\n scorersMap.get(scorerId)?.agentNames.push(agent.name);\n } else {\n scorersMap.set(scorerId, {\n workflowIds: [],\n ...scorer,\n agentNames: [agent.name],\n agentIds: [agent.id],\n isRegistered: false,\n source: scorer.scorer.source ?? 'code',\n });\n }\n }\n }\n };\n\n // Process code-defined agents\n for (const [_, agent] of Object.entries(agents)) {\n await processAgentScorers(agent);\n }\n\n // Process stored agents (database-backed agents)\n try {\n const editor = mastra.getEditor();\n const storedAgentsResult = await editor?.agent.list();\n if (storedAgentsResult?.agents) {\n for (const storedAgentConfig of storedAgentsResult.agents) {\n try {\n const agent = await editor?.agent.getById(storedAgentConfig.id);\n if (agent) {\n await processAgentScorers(agent);\n }\n } catch {\n // Skip individual agents that fail to hydrate\n }\n }\n }\n } catch {\n // Silently ignore if storage is not configured - not all setups have storage\n }\n\n // Process stored scorers (standalone CMS-created scorers)\n try {\n const editor = mastra.getEditor();\n const storedScorersResult = await editor?.scorer.list();\n if (storedScorersResult?.scorerDefinitions) {\n for (const storedScorerConfig of storedScorersResult.scorerDefinitions) {\n try {\n await editor?.scorer.getById(storedScorerConfig.id);\n } catch {\n // Skip individual scorers that fail to hydrate\n }\n }\n }\n } catch {\n // Silently ignore if storage is not configured\n }\n\n for (const [workflowId, workflow] of Object.entries(workflows)) {\n const scorers =\n (await workflow.listScorers({\n requestContext,\n })) || {};\n\n if (Object.keys(scorers).length > 0) {\n for (const [_scorerId, scorer] of Object.entries(scorers)) {\n const scorerName = scorer.scorer.name;\n if (scorersMap.has(scorerName)) {\n scorersMap.get(scorerName)?.workflowIds.push(workflowId);\n } else {\n scorersMap.set(scorerName, {\n agentIds: [],\n agentNames: [],\n ...scorer,\n workflowIds: [workflowId],\n isRegistered: false,\n source: scorer.scorer.source ?? 'code',\n });\n }\n }\n }\n }\n\n const registeredScorers = await mastra.listScorers();\n for (const [_scorerId, scorer] of Object.entries(registeredScorers || {})) {\n const scorerId = scorer.id;\n if (scorersMap.has(scorerId)) {\n scorersMap.get(scorerId)!.isRegistered = true;\n } else {\n scorersMap.set(scorerId, {\n scorer: scorer,\n agentIds: [],\n agentNames: [],\n workflowIds: [],\n isRegistered: true,\n source: scorer.source ?? 'code',\n });\n }\n }\n\n return Object.fromEntries(scorersMap.entries());\n}\n\n// Legacy function to get trace and span details\nfunction getTraceDetails(traceIdWithSpanId?: string) {\n if (!traceIdWithSpanId) {\n return {};\n }\n\n const [traceId, spanId] = traceIdWithSpanId.split('-');\n\n return {\n ...(traceId ? { traceId } : {}),\n ...(spanId ? { spanId } : {}),\n };\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_SCORERS_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/scorers',\n responseType: 'json',\n responseSchema: listScorersResponseSchema,\n summary: 'List all scorers',\n description: 'Returns a list of all registered scorers with their configuration and associated agents and workflows',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: (async ({ mastra, requestContext }: any) => {\n const scorers = await listScorersFromSystem({\n mastra,\n requestContext,\n });\n return scorers;\n }) as any,\n});\n\nexport const GET_SCORER_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/scorers/:scorerId',\n responseType: 'json',\n pathParamSchema: scorerIdPathParams,\n responseSchema: scorerEntrySchema.nullable(),\n summary: 'Get scorer by ID',\n description: 'Returns details for a specific scorer including its configuration and associations',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: (async ({ mastra, scorerId, requestContext }: any) => {\n const scorers = await listScorersFromSystem({\n mastra,\n requestContext,\n });\n\n const scorer = scorers[scorerId];\n\n if (!scorer) {\n return null;\n }\n\n return scorer;\n }) as any,\n});\n\nexport const LIST_SCORES_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/run/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listScoresByRunIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by run ID',\n description: 'Returns all scores for a specific execution run',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { page, perPage } = params;\n const pagination: StoragePagination = {\n page: page ?? 0,\n perPage: perPage ?? 10,\n };\n const scores = await mastra.getStorage()?.getStore('scores');\n const scoreResults = (await scores?.listScoresByRunId?.({\n runId,\n pagination,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map((score: ScoreRowData) => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by run id');\n }\n },\n});\n\nexport const LIST_SCORES_BY_SCORER_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/scorer/:scorerId',\n responseType: 'json',\n pathParamSchema: scorerIdPathParams,\n queryParamSchema: listScoresByScorerIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by scorer ID',\n description: 'Returns all scores generated by a specific scorer',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, scorerId, ...params }) => {\n try {\n const { page, perPage, entityId, entityType } = params;\n const filters = Object.fromEntries(Object.entries({ entityId, entityType }).filter(([_, v]) => v !== undefined));\n const scores = await mastra.getStorage()?.getStore('scores');\n const scoreResults = (await scores?.listScoresByScorerId?.({\n scorerId,\n pagination: { page: page ?? 0, perPage: perPage ?? 10 },\n ...filters,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map((score: ScoreRowData) => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by scorer id');\n }\n },\n});\n\nexport const LIST_SCORES_BY_ENTITY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/entity/:entityType/:entityId',\n responseType: 'json',\n pathParamSchema: entityPathParams,\n queryParamSchema: listScoresByEntityIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by entity ID',\n description: 'Returns all scores for a specific entity (agent or workflow)',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, entityId, entityType, ...params }) => {\n try {\n const { page, perPage } = params;\n let entityIdToUse = entityId;\n\n if (entityType === 'AGENT') {\n const agent = await getAgentFromSystem({ mastra, agentId: entityId });\n entityIdToUse = agent.id;\n } else if (entityType === 'WORKFLOW') {\n const workflow = mastra.getWorkflowById(entityId);\n entityIdToUse = workflow.id;\n }\n\n const pagination: StoragePagination = {\n page: page ?? 0,\n perPage: perPage ?? 10,\n };\n\n const scoresStore = await mastra.getStorage()?.getStore('scores');\n const scoreResults = (await scoresStore?.listScoresByEntityId?.({\n entityId: entityIdToUse,\n entityType,\n pagination,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map((score: ScoreRowData) => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by entity id');\n }\n },\n});\n\nexport const SAVE_SCORE_ROUTE = createRoute({\n method: 'POST',\n path: '/scores',\n responseType: 'json',\n bodySchema: saveScoreBodySchema,\n responseSchema: saveScoreResponseSchema,\n summary: 'Save score',\n description: 'Saves a new score record to storage',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const { score } = params as { score: ScoreRowData };\n const scoresStore = await mastra.getStorage()?.getStore('scores');\n const result = await scoresStore?.saveScore?.(score);\n if (!result) {\n throw new HTTPException(500, { message: 'Storage not configured' });\n }\n return result;\n } catch (error) {\n return handleError(error, 'Error saving score');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/scores.ts"],"names":[],"mappings":"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","file":"chunk-UXFBPV3G.js","sourcesContent":["import type { MastraScorerEntry, ScoreRowData } from '@mastra/core/evals';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { StoragePagination } from '@mastra/core/storage';\nimport { HTTPException } from '../http-exception';\nimport { runIdSchema } from '../schemas/common';\nimport {\n listScorersResponseSchema,\n scorerEntrySchema,\n scorerIdPathParams,\n entityPathParams,\n listScoresByRunIdQuerySchema,\n listScoresByScorerIdQuerySchema,\n listScoresByEntityIdQuerySchema,\n saveScoreBodySchema,\n scoresWithPaginationResponseSchema,\n saveScoreResponseSchema,\n} from '../schemas/scores';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\n\nasync function listScorersFromSystem({\n mastra,\n requestContext,\n}: Context & {\n requestContext: RequestContext;\n}) {\n const agents = mastra.listAgents();\n const workflows = mastra.listWorkflows();\n\n const scorersMap = new Map<\n string,\n MastraScorerEntry & {\n agentIds: string[];\n agentNames: string[];\n workflowIds: string[];\n isRegistered: boolean;\n source: 'code' | 'stored' | 'fs';\n }\n >();\n\n // Helper function to process an agent's scorers\n const processAgentScorers = async (agent: {\n id: string;\n name: string;\n listScorers: (typeof agents)[string]['listScorers'];\n }) => {\n const scorers =\n (await agent.listScorers({\n requestContext,\n })) || {};\n\n if (Object.keys(scorers).length > 0) {\n for (const [_scorerId, scorer] of Object.entries(scorers)) {\n const scorerId = scorer.scorer.id;\n if (scorersMap.has(scorerId)) {\n scorersMap.get(scorerId)?.agentIds.push(agent.id);\n scorersMap.get(scorerId)?.agentNames.push(agent.name);\n } else {\n scorersMap.set(scorerId, {\n workflowIds: [],\n ...scorer,\n agentNames: [agent.name],\n agentIds: [agent.id],\n isRegistered: false,\n source: scorer.scorer.source ?? 'code',\n });\n }\n }\n }\n };\n\n // Process code-defined agents\n for (const [_, agent] of Object.entries(agents)) {\n await processAgentScorers(agent);\n }\n\n // Process stored agents (database-backed agents)\n try {\n const editor = mastra.getEditor();\n const storedAgentsResult = await editor?.agent.list();\n if (storedAgentsResult?.agents) {\n for (const storedAgentConfig of storedAgentsResult.agents) {\n try {\n const agent = await editor?.agent.getById(storedAgentConfig.id);\n if (agent) {\n await processAgentScorers(agent);\n }\n } catch {\n // Skip individual agents that fail to hydrate\n }\n }\n }\n } catch {\n // Silently ignore if storage is not configured - not all setups have storage\n }\n\n // Process stored scorers (standalone CMS-created scorers)\n try {\n const editor = mastra.getEditor();\n const storedScorersResult = await editor?.scorer.list();\n if (storedScorersResult?.scorerDefinitions) {\n for (const storedScorerConfig of storedScorersResult.scorerDefinitions) {\n try {\n await editor?.scorer.getById(storedScorerConfig.id);\n } catch {\n // Skip individual scorers that fail to hydrate\n }\n }\n }\n } catch {\n // Silently ignore if storage is not configured\n }\n\n for (const [workflowId, workflow] of Object.entries(workflows)) {\n const scorers =\n (await workflow.listScorers({\n requestContext,\n })) || {};\n\n if (Object.keys(scorers).length > 0) {\n for (const [_scorerId, scorer] of Object.entries(scorers)) {\n const scorerName = scorer.scorer.name;\n if (scorersMap.has(scorerName)) {\n scorersMap.get(scorerName)?.workflowIds.push(workflowId);\n } else {\n scorersMap.set(scorerName, {\n agentIds: [],\n agentNames: [],\n ...scorer,\n workflowIds: [workflowId],\n isRegistered: false,\n source: scorer.scorer.source ?? 'code',\n });\n }\n }\n }\n }\n\n const registeredScorers = await mastra.listScorers();\n for (const [_scorerId, scorer] of Object.entries(registeredScorers || {})) {\n const scorerId = scorer.id;\n if (scorersMap.has(scorerId)) {\n scorersMap.get(scorerId)!.isRegistered = true;\n } else {\n scorersMap.set(scorerId, {\n scorer: scorer,\n agentIds: [],\n agentNames: [],\n workflowIds: [],\n isRegistered: true,\n source: scorer.source ?? 'code',\n });\n }\n }\n\n return Object.fromEntries(scorersMap.entries());\n}\n\n// Legacy function to get trace and span details\nfunction getTraceDetails(traceIdWithSpanId?: string) {\n if (!traceIdWithSpanId) {\n return {};\n }\n\n const [traceId, spanId] = traceIdWithSpanId.split('-');\n\n return {\n ...(traceId ? { traceId } : {}),\n ...(spanId ? { spanId } : {}),\n };\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_SCORERS_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/scorers',\n responseType: 'json',\n responseSchema: listScorersResponseSchema,\n summary: 'List all scorers',\n description: 'Returns a list of all registered scorers with their configuration and associated agents and workflows',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: (async ({ mastra, requestContext }: any) => {\n const scorers = await listScorersFromSystem({\n mastra,\n requestContext,\n });\n return scorers;\n }) as any,\n});\n\nexport const GET_SCORER_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/scorers/:scorerId',\n responseType: 'json',\n pathParamSchema: scorerIdPathParams,\n responseSchema: scorerEntrySchema.nullable(),\n summary: 'Get scorer by ID',\n description: 'Returns details for a specific scorer including its configuration and associations',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: (async ({ mastra, scorerId, requestContext }: any) => {\n const scorers = await listScorersFromSystem({\n mastra,\n requestContext,\n });\n\n const scorer = scorers[scorerId];\n\n if (!scorer) {\n return null;\n }\n\n return scorer;\n }) as any,\n});\n\nexport const LIST_SCORES_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/run/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listScoresByRunIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by run ID',\n description: 'Returns all scores for a specific execution run',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { page, perPage } = params;\n const pagination: StoragePagination = {\n page: page ?? 0,\n perPage: perPage ?? 10,\n };\n const scores = await mastra.getStorage()?.getStore('scores');\n const scoreResults = (await scores?.listScoresByRunId?.({\n runId,\n pagination,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map((score: ScoreRowData) => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by run id');\n }\n },\n});\n\nexport const LIST_SCORES_BY_SCORER_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/scorer/:scorerId',\n responseType: 'json',\n pathParamSchema: scorerIdPathParams,\n queryParamSchema: listScoresByScorerIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by scorer ID',\n description: 'Returns all scores generated by a specific scorer',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, scorerId, ...params }) => {\n try {\n const { page, perPage, entityId, entityType } = params;\n const filters = Object.fromEntries(Object.entries({ entityId, entityType }).filter(([_, v]) => v !== undefined));\n const scores = await mastra.getStorage()?.getStore('scores');\n const scoreResults = (await scores?.listScoresByScorerId?.({\n scorerId,\n pagination: { page: page ?? 0, perPage: perPage ?? 10 },\n ...filters,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map((score: ScoreRowData) => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by scorer id');\n }\n },\n});\n\nexport const LIST_SCORES_BY_ENTITY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/entity/:entityType/:entityId',\n responseType: 'json',\n pathParamSchema: entityPathParams,\n queryParamSchema: listScoresByEntityIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by entity ID',\n description: 'Returns all scores for a specific entity (agent or workflow)',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, entityId, entityType, ...params }) => {\n try {\n const { page, perPage } = params;\n let entityIdToUse = entityId;\n\n if (entityType === 'AGENT') {\n const agent = await getAgentFromSystem({ mastra, agentId: entityId });\n entityIdToUse = agent.id;\n } else if (entityType === 'WORKFLOW') {\n const workflow = mastra.getWorkflowById(entityId);\n entityIdToUse = workflow.id;\n }\n\n const pagination: StoragePagination = {\n page: page ?? 0,\n perPage: perPage ?? 10,\n };\n\n const scoresStore = await mastra.getStorage()?.getStore('scores');\n const scoreResults = (await scoresStore?.listScoresByEntityId?.({\n entityId: entityIdToUse,\n entityType,\n pagination,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map((score: ScoreRowData) => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by entity id');\n }\n },\n});\n\nexport const SAVE_SCORE_ROUTE = createRoute({\n method: 'POST',\n path: '/scores',\n responseType: 'json',\n bodySchema: saveScoreBodySchema,\n responseSchema: saveScoreResponseSchema,\n summary: 'Save score',\n description: 'Saves a new score record to storage',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const { score } = params as { score: ScoreRowData };\n const scoresStore = await mastra.getStorage()?.getStore('scores');\n const result = await scoresStore?.saveScore?.(score);\n if (!result) {\n throw new HTTPException(500, { message: 'Storage not configured' });\n }\n return result;\n } catch (error) {\n return handleError(error, 'Error saving score');\n }\n },\n});\n"]}