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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (247) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/dist/{api-schema-manifest-QMJFKSSQ.cjs → api-schema-manifest-CX3NL6JS.cjs} +6 -6
  3. package/dist/{api-schema-manifest-QMJFKSSQ.cjs.map → api-schema-manifest-CX3NL6JS.cjs.map} +1 -1
  4. package/dist/{api-schema-manifest-JLJ555JD.js → api-schema-manifest-IK5MQPAL.js} +4 -4
  5. package/dist/{api-schema-manifest-JLJ555JD.js.map → api-schema-manifest-IK5MQPAL.js.map} +1 -1
  6. package/dist/{chunk-EWN5J4RH.js → chunk-26PANWAR.js} +4 -4
  7. package/dist/{chunk-EWN5J4RH.js.map → chunk-26PANWAR.js.map} +1 -1
  8. package/dist/{chunk-6PJXFSA6.cjs → chunk-27VZ5B4Q.cjs} +28 -28
  9. package/dist/{chunk-6PJXFSA6.cjs.map → chunk-27VZ5B4Q.cjs.map} +1 -1
  10. package/dist/{chunk-MAG4W3GZ.cjs → chunk-2PS73C7N.cjs} +8 -8
  11. package/dist/{chunk-MAG4W3GZ.cjs.map → chunk-2PS73C7N.cjs.map} +1 -1
  12. package/dist/{chunk-34UYZN53.js → chunk-3AKQRYDF.js} +4 -4
  13. package/dist/{chunk-34UYZN53.js.map → chunk-3AKQRYDF.js.map} +1 -1
  14. package/dist/{chunk-DXZFPYNO.js → chunk-3DQGNGSK.js} +3 -3
  15. package/dist/{chunk-DXZFPYNO.js.map → chunk-3DQGNGSK.js.map} +1 -1
  16. package/dist/{chunk-7UYUFWJS.js → chunk-3SRLGVLX.js} +4 -4
  17. package/dist/{chunk-7UYUFWJS.js.map → chunk-3SRLGVLX.js.map} +1 -1
  18. package/dist/{chunk-SX3C7B3A.cjs → chunk-4NVC7TM6.cjs} +28 -28
  19. package/dist/{chunk-SX3C7B3A.cjs.map → chunk-4NVC7TM6.cjs.map} +1 -1
  20. package/dist/{chunk-6ICH4PZY.cjs → chunk-4ZO2MLW5.cjs} +14 -14
  21. package/dist/{chunk-6ICH4PZY.cjs.map → chunk-4ZO2MLW5.cjs.map} +1 -1
  22. package/dist/{chunk-IJFWBMHN.js → chunk-5WYCXPDY.js} +4 -4
  23. package/dist/{chunk-IJFWBMHN.js.map → chunk-5WYCXPDY.js.map} +1 -1
  24. package/dist/{chunk-MCS43WKI.cjs → chunk-6JP6Q64G.cjs} +10 -10
  25. package/dist/{chunk-MCS43WKI.cjs.map → chunk-6JP6Q64G.cjs.map} +1 -1
  26. package/dist/{chunk-ZO7SOILM.js → chunk-6V2NUA6I.js} +4 -4
  27. package/dist/{chunk-ZO7SOILM.js.map → chunk-6V2NUA6I.js.map} +1 -1
  28. package/dist/{chunk-NWD2SPUH.js → chunk-7LGTEZBD.js} +4 -4
  29. package/dist/{chunk-NWD2SPUH.js.map → chunk-7LGTEZBD.js.map} +1 -1
  30. package/dist/{chunk-7UMTLDZF.js → chunk-7PDQ67ZY.js} +4 -4
  31. package/dist/{chunk-7UMTLDZF.js.map → chunk-7PDQ67ZY.js.map} +1 -1
  32. package/dist/{chunk-SOH5VORA.js → chunk-7RLQ6356.js} +3 -3
  33. package/dist/{chunk-SOH5VORA.js.map → chunk-7RLQ6356.js.map} +1 -1
  34. package/dist/{chunk-PX7NE2KG.js → chunk-7SVSAMG4.js} +6 -6
  35. package/dist/{chunk-PX7NE2KG.js.map → chunk-7SVSAMG4.js.map} +1 -1
  36. package/dist/{chunk-OAE7ZFYO.cjs → chunk-ALOM42GR.cjs} +24 -24
  37. package/dist/{chunk-OAE7ZFYO.cjs.map → chunk-ALOM42GR.cjs.map} +1 -1
  38. package/dist/{chunk-3EK2EVVE.js → chunk-ANIIJVPR.js} +4 -4
  39. package/dist/{chunk-3EK2EVVE.js.map → chunk-ANIIJVPR.js.map} +1 -1
  40. package/dist/{chunk-Q3JFNANT.js → chunk-BK2PTTTN.js} +3 -3
  41. package/dist/{chunk-Q3JFNANT.js.map → chunk-BK2PTTTN.js.map} +1 -1
  42. package/dist/{chunk-YN57WYLS.cjs → chunk-BNONPEW6.cjs} +11 -11
  43. package/dist/{chunk-YN57WYLS.cjs.map → chunk-BNONPEW6.cjs.map} +1 -1
  44. package/dist/{chunk-C45QKFMT.js → chunk-BZ3NR3IS.js} +37 -37
  45. package/dist/{chunk-C45QKFMT.js.map → chunk-BZ3NR3IS.js.map} +1 -1
  46. package/dist/{chunk-4NPFEKIP.js → chunk-CG3AAC7C.js} +4 -4
  47. package/dist/{chunk-4NPFEKIP.js.map → chunk-CG3AAC7C.js.map} +1 -1
  48. package/dist/{chunk-VGNQKFWM.js → chunk-DC7NOATT.js} +3 -3
  49. package/dist/{chunk-VGNQKFWM.js.map → chunk-DC7NOATT.js.map} +1 -1
  50. package/dist/{chunk-T3X7ZXVR.cjs → chunk-DDF3ZASL.cjs} +32 -32
  51. package/dist/{chunk-T3X7ZXVR.cjs.map → chunk-DDF3ZASL.cjs.map} +1 -1
  52. package/dist/{chunk-NB7LJMYF.js → chunk-DPGNOE7R.js} +3 -3
  53. package/dist/{chunk-NB7LJMYF.js.map → chunk-DPGNOE7R.js.map} +1 -1
  54. package/dist/{chunk-KRMMYAXW.cjs → chunk-E7IOQCUP.cjs} +10 -10
  55. package/dist/{chunk-KRMMYAXW.cjs.map → chunk-E7IOQCUP.cjs.map} +1 -1
  56. package/dist/{chunk-RVAPXLP2.js → chunk-EFQBRUA4.js} +3 -3
  57. package/dist/{chunk-RVAPXLP2.js.map → chunk-EFQBRUA4.js.map} +1 -1
  58. package/dist/{chunk-TFJZGWXX.cjs → chunk-EN45CWWM.cjs} +16 -16
  59. package/dist/{chunk-TFJZGWXX.cjs.map → chunk-EN45CWWM.cjs.map} +1 -1
  60. package/dist/{chunk-WN62DURP.js → chunk-FD3TJOO6.js} +13 -10
  61. package/dist/chunk-FD3TJOO6.js.map +1 -0
  62. package/dist/{chunk-PYT4SLHO.js → chunk-FJZ67HHA.js} +3 -3
  63. package/dist/{chunk-PYT4SLHO.js.map → chunk-FJZ67HHA.js.map} +1 -1
  64. package/dist/{chunk-6IR53OXN.js → chunk-GIMDOFRR.js} +3 -3
  65. package/dist/{chunk-6IR53OXN.js.map → chunk-GIMDOFRR.js.map} +1 -1
  66. package/dist/{chunk-GCR6GN77.js → chunk-GJ3BKRTZ.js} +5 -5
  67. package/dist/{chunk-GCR6GN77.js.map → chunk-GJ3BKRTZ.js.map} +1 -1
  68. package/dist/{chunk-UMXIU6E3.cjs → chunk-GNQ5SKPB.cjs} +7 -7
  69. package/dist/{chunk-UMXIU6E3.cjs.map → chunk-GNQ5SKPB.cjs.map} +1 -1
  70. package/dist/{chunk-AMZMBCKG.cjs → chunk-GOXW7A5J.cjs} +10 -10
  71. package/dist/{chunk-AMZMBCKG.cjs.map → chunk-GOXW7A5J.cjs.map} +1 -1
  72. package/dist/{chunk-QJD675UA.js → chunk-GP65L3TF.js} +10 -8
  73. package/dist/chunk-GP65L3TF.js.map +1 -0
  74. package/dist/{chunk-SYDZFUZI.js → chunk-GSL72DOW.js} +3 -3
  75. package/dist/{chunk-SYDZFUZI.js.map → chunk-GSL72DOW.js.map} +1 -1
  76. package/dist/{chunk-AHKXIRNB.cjs → chunk-GV2J3XQ4.cjs} +106 -103
  77. package/dist/chunk-GV2J3XQ4.cjs.map +1 -0
  78. package/dist/{chunk-VESPCO5X.js → chunk-ITIAC2TC.js} +3 -3
  79. package/dist/{chunk-VESPCO5X.js.map → chunk-ITIAC2TC.js.map} +1 -1
  80. package/dist/{chunk-BGRKLLHE.cjs → chunk-J62R54QE.cjs} +6 -6
  81. package/dist/{chunk-BGRKLLHE.cjs.map → chunk-J62R54QE.cjs.map} +1 -1
  82. package/dist/{chunk-BLK2XYVU.cjs → chunk-JLH5BHLT.cjs} +10 -10
  83. package/dist/{chunk-BLK2XYVU.cjs.map → chunk-JLH5BHLT.cjs.map} +1 -1
  84. package/dist/{chunk-HLDBO2H6.js → chunk-JSHKUN5Y.js} +3 -3
  85. package/dist/{chunk-HLDBO2H6.js.map → chunk-JSHKUN5Y.js.map} +1 -1
  86. package/dist/chunk-KUCITIUY.cjs +636 -0
  87. package/dist/{chunk-7Y6MST2S.cjs.map → chunk-KUCITIUY.cjs.map} +1 -1
  88. package/dist/{chunk-LRYHYARK.js → chunk-KXZBJDFG.js} +4 -4
  89. package/dist/{chunk-LRYHYARK.js.map → chunk-KXZBJDFG.js.map} +1 -1
  90. package/dist/{chunk-MWXGGCHD.cjs → chunk-L742HQNI.cjs} +10 -10
  91. package/dist/{chunk-MWXGGCHD.cjs.map → chunk-L742HQNI.cjs.map} +1 -1
  92. package/dist/{chunk-ZOILZWQD.cjs → chunk-LKVE4QAW.cjs} +6 -6
  93. package/dist/{chunk-ZOILZWQD.cjs.map → chunk-LKVE4QAW.cjs.map} +1 -1
  94. package/dist/{chunk-6DAZZPVO.cjs → chunk-LNV75BVN.cjs} +38 -38
  95. package/dist/{chunk-6DAZZPVO.cjs.map → chunk-LNV75BVN.cjs.map} +1 -1
  96. package/dist/{chunk-S4L4CSQD.js → chunk-LRUC4D2Q.js} +3 -3
  97. package/dist/{chunk-S4L4CSQD.js.map → chunk-LRUC4D2Q.js.map} +1 -1
  98. package/dist/{chunk-HN23LS75.cjs → chunk-M62Z4EEY.cjs} +41 -41
  99. package/dist/{chunk-HN23LS75.cjs.map → chunk-M62Z4EEY.cjs.map} +1 -1
  100. package/dist/{chunk-E74QCKFN.cjs → chunk-MZ3RKQKS.cjs} +6 -6
  101. package/dist/{chunk-E74QCKFN.cjs.map → chunk-MZ3RKQKS.cjs.map} +1 -1
  102. package/dist/{chunk-3OTCA7TP.js → chunk-NKCUF5ZH.js} +3 -3
  103. package/dist/{chunk-3OTCA7TP.js.map → chunk-NKCUF5ZH.js.map} +1 -1
  104. package/dist/{chunk-7MXANTMR.cjs → chunk-NKYIWTT3.cjs} +12 -12
  105. package/dist/{chunk-7MXANTMR.cjs.map → chunk-NKYIWTT3.cjs.map} +1 -1
  106. package/dist/{chunk-VZV7DUW7.cjs → chunk-NOQ45USI.cjs} +11 -11
  107. package/dist/{chunk-VZV7DUW7.cjs.map → chunk-NOQ45USI.cjs.map} +1 -1
  108. package/dist/{chunk-YQILRC5Y.cjs → chunk-OB4NE2YX.cjs} +10 -10
  109. package/dist/{chunk-YQILRC5Y.cjs.map → chunk-OB4NE2YX.cjs.map} +1 -1
  110. package/dist/{chunk-ICJ2ZVI2.cjs → chunk-OJFDLVAO.cjs} +13 -13
  111. package/dist/{chunk-ICJ2ZVI2.cjs.map → chunk-OJFDLVAO.cjs.map} +1 -1
  112. package/dist/{chunk-PM3UPQWH.cjs → chunk-P3TJ7MI6.cjs} +11 -11
  113. package/dist/{chunk-PM3UPQWH.cjs.map → chunk-P3TJ7MI6.cjs.map} +1 -1
  114. package/dist/{chunk-HYYXUP35.cjs → chunk-PJDFXAOL.cjs} +2 -2
  115. package/dist/{chunk-HYYXUP35.cjs.map → chunk-PJDFXAOL.cjs.map} +1 -1
  116. package/dist/{chunk-AWXCTLMK.cjs → chunk-PPCGMD6N.cjs} +11 -11
  117. package/dist/{chunk-AWXCTLMK.cjs.map → chunk-PPCGMD6N.cjs.map} +1 -1
  118. package/dist/{chunk-E55OUW7R.js → chunk-PUAKBO3Q.js} +4 -4
  119. package/dist/{chunk-E55OUW7R.js.map → chunk-PUAKBO3Q.js.map} +1 -1
  120. package/dist/{chunk-XUFBFMUU.cjs → chunk-PYGX3GUB.cjs} +8 -8
  121. package/dist/{chunk-XUFBFMUU.cjs.map → chunk-PYGX3GUB.cjs.map} +1 -1
  122. package/dist/{chunk-ZSGVBBC4.js → chunk-QFGTTQFQ.js} +3 -3
  123. package/dist/{chunk-ZSGVBBC4.js.map → chunk-QFGTTQFQ.js.map} +1 -1
  124. package/dist/{chunk-HFF6QRLL.cjs → chunk-QISQJJPS.cjs} +6 -6
  125. package/dist/{chunk-HFF6QRLL.cjs.map → chunk-QISQJJPS.cjs.map} +1 -1
  126. package/dist/{chunk-2S4WCY5N.js → chunk-QLJYRTD2.js} +4 -4
  127. package/dist/{chunk-2S4WCY5N.js.map → chunk-QLJYRTD2.js.map} +1 -1
  128. package/dist/{chunk-STNEFHHA.js → chunk-RYOD3GP4.js} +4 -4
  129. package/dist/{chunk-STNEFHHA.js.map → chunk-RYOD3GP4.js.map} +1 -1
  130. package/dist/{chunk-OAWMKZCM.cjs → chunk-RYXKJ55A.cjs} +11 -11
  131. package/dist/{chunk-OAWMKZCM.cjs.map → chunk-RYXKJ55A.cjs.map} +1 -1
  132. package/dist/{chunk-GP45BMSR.js → chunk-SEMTGEAA.js} +3 -3
  133. package/dist/{chunk-GP45BMSR.js.map → chunk-SEMTGEAA.js.map} +1 -1
  134. package/dist/{chunk-C7Q5IMST.js → chunk-SFJOG2BT.js} +3 -3
  135. package/dist/{chunk-C7Q5IMST.js.map → chunk-SFJOG2BT.js.map} +1 -1
  136. package/dist/{chunk-WE5GUI23.js → chunk-UBOLRYFV.js} +3 -3
  137. package/dist/{chunk-WE5GUI23.js.map → chunk-UBOLRYFV.js.map} +1 -1
  138. package/dist/{chunk-WLDDOYXP.cjs → chunk-UVLX3WSX.cjs} +6 -6
  139. package/dist/{chunk-WLDDOYXP.cjs.map → chunk-UVLX3WSX.cjs.map} +1 -1
  140. package/dist/{chunk-HCIKFLLE.js → chunk-VMF4AV2C.js} +2 -2
  141. package/dist/{chunk-HCIKFLLE.js.map → chunk-VMF4AV2C.js.map} +1 -1
  142. package/dist/{chunk-KUBAQ732.cjs → chunk-VOBSGFM5.cjs} +10 -10
  143. package/dist/{chunk-KUBAQ732.cjs.map → chunk-VOBSGFM5.cjs.map} +1 -1
  144. package/dist/{chunk-5FHBVBU2.js → chunk-VQSY4I4H.js} +3 -3
  145. package/dist/{chunk-5FHBVBU2.js.map → chunk-VQSY4I4H.js.map} +1 -1
  146. package/dist/{chunk-GKN4IFE7.js → chunk-VYXPIZJE.js} +3 -3
  147. package/dist/{chunk-GKN4IFE7.js.map → chunk-VYXPIZJE.js.map} +1 -1
  148. package/dist/{chunk-WYQDPZNZ.cjs → chunk-W5B34RLN.cjs} +7 -7
  149. package/dist/{chunk-WYQDPZNZ.cjs.map → chunk-W5B34RLN.cjs.map} +1 -1
  150. package/dist/{chunk-VWBVA272.cjs → chunk-W6LHLN5M.cjs} +5 -5
  151. package/dist/{chunk-VWBVA272.cjs.map → chunk-W6LHLN5M.cjs.map} +1 -1
  152. package/dist/{chunk-KFEM2S5D.cjs → chunk-WWOML5Y4.cjs} +10 -10
  153. package/dist/{chunk-KFEM2S5D.cjs.map → chunk-WWOML5Y4.cjs.map} +1 -1
  154. package/dist/{chunk-Z7FXNI2N.cjs → chunk-XFDVU6GZ.cjs} +52 -52
  155. package/dist/{chunk-Z7FXNI2N.cjs.map → chunk-XFDVU6GZ.cjs.map} +1 -1
  156. package/dist/{chunk-CXWOBZOJ.cjs → chunk-YE56LUEI.cjs} +9 -9
  157. package/dist/{chunk-CXWOBZOJ.cjs.map → chunk-YE56LUEI.cjs.map} +1 -1
  158. package/dist/{chunk-7QLLMDX3.js → chunk-YGNA75MT.js} +4 -4
  159. package/dist/{chunk-7QLLMDX3.js.map → chunk-YGNA75MT.js.map} +1 -1
  160. package/dist/{chunk-FST7LM2Z.cjs → chunk-YYTMNPB7.cjs} +10 -8
  161. package/dist/chunk-YYTMNPB7.cjs.map +1 -0
  162. package/dist/docs/SKILL.md +1 -1
  163. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  164. package/dist/{observational-memory-IP2RVQQG-5IHDRYAB.cjs → observational-memory-2PRVG6BF-3V6S3B2J.cjs} +26 -26
  165. package/dist/{observational-memory-IP2RVQQG-5IHDRYAB.cjs.map → observational-memory-2PRVG6BF-3V6S3B2J.cjs.map} +1 -1
  166. package/dist/{observational-memory-IP2RVQQG-DIZILT73.js → observational-memory-2PRVG6BF-4MT3GXPA.js} +3 -3
  167. package/dist/{observational-memory-IP2RVQQG-DIZILT73.js.map → observational-memory-2PRVG6BF-4MT3GXPA.js.map} +1 -1
  168. package/dist/server/handlers/a2a.cjs +14 -14
  169. package/dist/server/handlers/a2a.js +1 -1
  170. package/dist/server/handlers/agent-builder.cjs +16 -16
  171. package/dist/server/handlers/agent-builder.js +1 -1
  172. package/dist/server/handlers/agent-versions.cjs +8 -8
  173. package/dist/server/handlers/agent-versions.js +1 -1
  174. package/dist/server/handlers/agents.cjs +39 -39
  175. package/dist/server/handlers/agents.js +1 -1
  176. package/dist/server/handlers/auth.cjs +11 -11
  177. package/dist/server/handlers/auth.js +1 -1
  178. package/dist/server/handlers/background-tasks.cjs +4 -4
  179. package/dist/server/handlers/background-tasks.js +1 -1
  180. package/dist/server/handlers/channels.cjs +5 -5
  181. package/dist/server/handlers/channels.js +1 -1
  182. package/dist/server/handlers/conversations.cjs +5 -5
  183. package/dist/server/handlers/conversations.js +1 -1
  184. package/dist/server/handlers/datasets.cjs +26 -26
  185. package/dist/server/handlers/datasets.js +1 -1
  186. package/dist/server/handlers/logs.cjs +4 -4
  187. package/dist/server/handlers/logs.js +1 -1
  188. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  189. package/dist/server/handlers/mcp-client-versions.js +1 -1
  190. package/dist/server/handlers/mcp.cjs +11 -11
  191. package/dist/server/handlers/mcp.js +1 -1
  192. package/dist/server/handlers/memory.cjs +27 -27
  193. package/dist/server/handlers/memory.js +1 -1
  194. package/dist/server/handlers/observability-new-endpoints.cjs +28 -28
  195. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  196. package/dist/server/handlers/observability.cjs +38 -38
  197. package/dist/server/handlers/observability.js +2 -2
  198. package/dist/server/handlers/processor-providers.cjs +3 -3
  199. package/dist/server/handlers/processor-providers.js +1 -1
  200. package/dist/server/handlers/processors.cjs +4 -4
  201. package/dist/server/handlers/processors.js +1 -1
  202. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  203. package/dist/server/handlers/prompt-block-versions.js +1 -1
  204. package/dist/server/handlers/responses.cjs +4 -4
  205. package/dist/server/handlers/responses.js +1 -1
  206. package/dist/server/handlers/schedules.cjs +6 -6
  207. package/dist/server/handlers/schedules.js +1 -1
  208. package/dist/server/handlers/scorer-versions.cjs +8 -8
  209. package/dist/server/handlers/scorer-versions.js +1 -1
  210. package/dist/server/handlers/scores.cjs +7 -7
  211. package/dist/server/handlers/scores.js +1 -1
  212. package/dist/server/handlers/stored-agents.cjs +7 -7
  213. package/dist/server/handlers/stored-agents.js +1 -1
  214. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  215. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  216. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  217. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  218. package/dist/server/handlers/stored-scorers.cjs +6 -6
  219. package/dist/server/handlers/stored-scorers.js +1 -1
  220. package/dist/server/handlers/stored-skills.cjs +7 -7
  221. package/dist/server/handlers/stored-skills.js +1 -1
  222. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  223. package/dist/server/handlers/stored-workspaces.js +1 -1
  224. package/dist/server/handlers/system.cjs +3 -3
  225. package/dist/server/handlers/system.js +1 -1
  226. package/dist/server/handlers/tool-providers.cjs +5 -5
  227. package/dist/server/handlers/tool-providers.js +1 -1
  228. package/dist/server/handlers/tools.cjs +6 -6
  229. package/dist/server/handlers/tools.js +1 -1
  230. package/dist/server/handlers/vector.cjs +16 -16
  231. package/dist/server/handlers/vector.js +1 -1
  232. package/dist/server/handlers/voice.cjs +8 -8
  233. package/dist/server/handlers/voice.js +1 -1
  234. package/dist/server/handlers/workflows.cjs +26 -26
  235. package/dist/server/handlers/workflows.js +1 -1
  236. package/dist/server/handlers/workspace.cjs +26 -26
  237. package/dist/server/handlers/workspace.js +1 -1
  238. package/dist/server/handlers.cjs +30 -30
  239. package/dist/server/handlers.js +15 -15
  240. package/dist/server/server-adapter/index.cjs +22 -22
  241. package/dist/server/server-adapter/index.js +6 -6
  242. package/package.json +7 -7
  243. package/dist/chunk-7Y6MST2S.cjs +0 -636
  244. package/dist/chunk-AHKXIRNB.cjs.map +0 -1
  245. package/dist/chunk-FST7LM2Z.cjs.map +0 -1
  246. package/dist/chunk-QJD675UA.js.map +0 -1
  247. package/dist/chunk-WN62DURP.js.map +0 -1
@@ -2,7 +2,7 @@
2
2
 
3
3
  var chunkCIPZ4VOZ_cjs = require('./chunk-CIPZ4VOZ.cjs');
4
4
  var chunk2XZ2466F_cjs = require('./chunk-2XZ2466F.cjs');
5
- var chunkHYYXUP35_cjs = require('./chunk-HYYXUP35.cjs');
5
+ var chunkPJDFXAOL_cjs = require('./chunk-PJDFXAOL.cjs');
6
6
  var chunkB34S64RC_cjs = require('./chunk-B34S64RC.cjs');
7
7
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
8
8
 
@@ -17,7 +17,7 @@ var SNAPSHOT_CONFIG_FIELDS = [
17
17
  "presetConfig",
18
18
  "defaultSampling"
19
19
  ];
20
- var LIST_SCORER_VERSIONS_ROUTE = chunkHYYXUP35_cjs.createRoute({
20
+ var LIST_SCORER_VERSIONS_ROUTE = chunkPJDFXAOL_cjs.createRoute({
21
21
  method: "GET",
22
22
  path: "/stored/scorers/:scorerId/versions",
23
23
  requiresAuth: true,
@@ -54,7 +54,7 @@ var LIST_SCORER_VERSIONS_ROUTE = chunkHYYXUP35_cjs.createRoute({
54
54
  }
55
55
  }
56
56
  });
57
- var CREATE_SCORER_VERSION_ROUTE = chunkHYYXUP35_cjs.createRoute({
57
+ var CREATE_SCORER_VERSION_ROUTE = chunkPJDFXAOL_cjs.createRoute({
58
58
  method: "POST",
59
59
  path: "/stored/scorers/:scorerId/versions",
60
60
  requiresAuth: true,
@@ -122,7 +122,7 @@ var CREATE_SCORER_VERSION_ROUTE = chunkHYYXUP35_cjs.createRoute({
122
122
  }
123
123
  }
124
124
  });
125
- var GET_SCORER_VERSION_ROUTE = chunkHYYXUP35_cjs.createRoute({
125
+ var GET_SCORER_VERSION_ROUTE = chunkPJDFXAOL_cjs.createRoute({
126
126
  method: "GET",
127
127
  path: "/stored/scorers/:scorerId/versions/:versionId",
128
128
  requiresAuth: true,
@@ -157,7 +157,7 @@ var GET_SCORER_VERSION_ROUTE = chunkHYYXUP35_cjs.createRoute({
157
157
  }
158
158
  }
159
159
  });
160
- var ACTIVATE_SCORER_VERSION_ROUTE = chunkHYYXUP35_cjs.createRoute({
160
+ var ACTIVATE_SCORER_VERSION_ROUTE = chunkPJDFXAOL_cjs.createRoute({
161
161
  method: "POST",
162
162
  path: "/stored/scorers/:scorerId/versions/:versionId/activate",
163
163
  requiresAuth: true,
@@ -206,7 +206,7 @@ var ACTIVATE_SCORER_VERSION_ROUTE = chunkHYYXUP35_cjs.createRoute({
206
206
  }
207
207
  }
208
208
  });
209
- var RESTORE_SCORER_VERSION_ROUTE = chunkHYYXUP35_cjs.createRoute({
209
+ var RESTORE_SCORER_VERSION_ROUTE = chunkPJDFXAOL_cjs.createRoute({
210
210
  method: "POST",
211
211
  path: "/stored/scorers/:scorerId/versions/:versionId/restore",
212
212
  requiresAuth: true,
@@ -277,7 +277,7 @@ var RESTORE_SCORER_VERSION_ROUTE = chunkHYYXUP35_cjs.createRoute({
277
277
  }
278
278
  }
279
279
  });
280
- var DELETE_SCORER_VERSION_ROUTE = chunkHYYXUP35_cjs.createRoute({
280
+ var DELETE_SCORER_VERSION_ROUTE = chunkPJDFXAOL_cjs.createRoute({
281
281
  method: "DELETE",
282
282
  path: "/stored/scorers/:scorerId/versions/:versionId",
283
283
  requiresAuth: true,
@@ -326,7 +326,7 @@ var DELETE_SCORER_VERSION_ROUTE = chunkHYYXUP35_cjs.createRoute({
326
326
  }
327
327
  }
328
328
  });
329
- var COMPARE_SCORER_VERSIONS_ROUTE = chunkHYYXUP35_cjs.createRoute({
329
+ var COMPARE_SCORER_VERSIONS_ROUTE = chunkPJDFXAOL_cjs.createRoute({
330
330
  method: "GET",
331
331
  path: "/stored/scorers/:scorerId/versions/compare",
332
332
  requiresAuth: true,
@@ -392,5 +392,5 @@ exports.DELETE_SCORER_VERSION_ROUTE = DELETE_SCORER_VERSION_ROUTE;
392
392
  exports.GET_SCORER_VERSION_ROUTE = GET_SCORER_VERSION_ROUTE;
393
393
  exports.LIST_SCORER_VERSIONS_ROUTE = LIST_SCORER_VERSIONS_ROUTE;
394
394
  exports.RESTORE_SCORER_VERSION_ROUTE = RESTORE_SCORER_VERSION_ROUTE;
395
- //# sourceMappingURL=chunk-KUBAQ732.cjs.map
396
- //# sourceMappingURL=chunk-KUBAQ732.cjs.map
395
+ //# sourceMappingURL=chunk-VOBSGFM5.cjs.map
396
+ //# sourceMappingURL=chunk-VOBSGFM5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/scorer-versions.ts"],"names":["createRoute","scorerVersionPathParams","listScorerVersionsQuerySchema","listScorerVersionsResponseSchema","HTTPException","handleError","createScorerVersionBodySchema","createScorerVersionResponseSchema","extractConfigFromVersion","calculateChangedFields","createVersionWithRetry","enforceRetentionLimit","scorerVersionIdPathParams","getScorerVersionResponseSchema","activateScorerVersionResponseSchema","restoreScorerVersionResponseSchema","deleteScorerVersionResponseSchema","compareScorerVersionsQuerySchema","compareScorerVersionsResponseSchema","computeVersionDiffs"],"mappings":"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","file":"chunk-KUBAQ732.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n scorerVersionPathParams,\n scorerVersionIdPathParams,\n listScorerVersionsQuerySchema,\n createScorerVersionBodySchema,\n compareScorerVersionsQuerySchema,\n listScorerVersionsResponseSchema,\n getScorerVersionResponseSchema,\n createScorerVersionResponseSchema,\n activateScorerVersionResponseSchema,\n restoreScorerVersionResponseSchema,\n deleteScorerVersionResponseSchema,\n compareScorerVersionsResponseSchema,\n} from '../schemas/scorer-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n/**\n * GET /stored/scorers/:scorerId/versions - List all versions for a scorer\n */\nexport const LIST_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: listScorerVersionsQuerySchema,\n responseSchema: listScorerVersionsResponseSchema,\n summary: 'List scorer versions',\n description: 'Returns a paginated list of all versions for a stored scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, page, perPage, orderBy }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const result = await scorerStore.listVersions({\n scorerDefinitionId: scorerId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing scorer versions');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions - Create a new version snapshot\n */\nexport const CREATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n bodySchema: createScorerVersionBodySchema,\n responseSchema: createScorerVersionResponseSchema,\n summary: 'Create scorer version',\n description: 'Creates a new version snapshot of the current scorer configuration',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, changeMessage }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n let currentConfig: Record<string, unknown> = {};\n if (scorer.activeVersionId) {\n const activeVersion = await scorerStore.getVersion(scorer.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n\n // If no activeVersionId, fall back to latest version config\n if (!scorer.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/:versionId - Get a specific version\n */\nexport const GET_SCORER_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: getScorerVersionResponseSchema,\n summary: 'Get scorer version',\n description: 'Returns a specific version of a scorer by its version ID',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const version = await scorerStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: activateScorerVersionResponseSchema,\n summary: 'Activate scorer version',\n description: 'Sets a specific version as the active version for the scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n await scorerStore.update({\n id: scorerId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/restore - Restore scorer to a version\n */\nexport const RESTORE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: restoreScorerVersionResponseSchema,\n summary: 'Restore scorer version',\n description: 'Restores the scorer configuration from a version, creating a new version',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const versionToRestore = await scorerStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n await scorerStore.update({\n id: scorerId,\n ...restoredConfig,\n });\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await scorerStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring scorer version');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:scorerId/versions/:versionId - Delete a version\n */\nexport const DELETE_SCORER_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: deleteScorerVersionResponseSchema,\n summary: 'Delete scorer version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n if (scorer.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await scorerStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/compare - Compare two versions\n */\nexport const COMPARE_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: compareScorerVersionsQuerySchema,\n responseSchema: compareScorerVersionsResponseSchema,\n summary: 'Compare scorer versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, from, to }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const fromVersion = await scorerStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for scorer ${scorerId}`,\n });\n }\n\n const toVersion = await scorerStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for scorer ${scorerId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing scorer versions');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/scorer-versions.ts"],"names":["createRoute","scorerVersionPathParams","listScorerVersionsQuerySchema","listScorerVersionsResponseSchema","HTTPException","handleError","createScorerVersionBodySchema","createScorerVersionResponseSchema","extractConfigFromVersion","calculateChangedFields","createVersionWithRetry","enforceRetentionLimit","scorerVersionIdPathParams","getScorerVersionResponseSchema","activateScorerVersionResponseSchema","restoreScorerVersionResponseSchema","deleteScorerVersionResponseSchema","compareScorerVersionsQuerySchema","compareScorerVersionsResponseSchema","computeVersionDiffs"],"mappings":"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","file":"chunk-VOBSGFM5.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n scorerVersionPathParams,\n scorerVersionIdPathParams,\n listScorerVersionsQuerySchema,\n createScorerVersionBodySchema,\n compareScorerVersionsQuerySchema,\n listScorerVersionsResponseSchema,\n getScorerVersionResponseSchema,\n createScorerVersionResponseSchema,\n activateScorerVersionResponseSchema,\n restoreScorerVersionResponseSchema,\n deleteScorerVersionResponseSchema,\n compareScorerVersionsResponseSchema,\n} from '../schemas/scorer-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n/**\n * GET /stored/scorers/:scorerId/versions - List all versions for a scorer\n */\nexport const LIST_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: listScorerVersionsQuerySchema,\n responseSchema: listScorerVersionsResponseSchema,\n summary: 'List scorer versions',\n description: 'Returns a paginated list of all versions for a stored scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, page, perPage, orderBy }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const result = await scorerStore.listVersions({\n scorerDefinitionId: scorerId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing scorer versions');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions - Create a new version snapshot\n */\nexport const CREATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n bodySchema: createScorerVersionBodySchema,\n responseSchema: createScorerVersionResponseSchema,\n summary: 'Create scorer version',\n description: 'Creates a new version snapshot of the current scorer configuration',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, changeMessage }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n let currentConfig: Record<string, unknown> = {};\n if (scorer.activeVersionId) {\n const activeVersion = await scorerStore.getVersion(scorer.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n\n // If no activeVersionId, fall back to latest version config\n if (!scorer.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/:versionId - Get a specific version\n */\nexport const GET_SCORER_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: getScorerVersionResponseSchema,\n summary: 'Get scorer version',\n description: 'Returns a specific version of a scorer by its version ID',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const version = await scorerStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: activateScorerVersionResponseSchema,\n summary: 'Activate scorer version',\n description: 'Sets a specific version as the active version for the scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n await scorerStore.update({\n id: scorerId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/restore - Restore scorer to a version\n */\nexport const RESTORE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: restoreScorerVersionResponseSchema,\n summary: 'Restore scorer version',\n description: 'Restores the scorer configuration from a version, creating a new version',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const versionToRestore = await scorerStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n await scorerStore.update({\n id: scorerId,\n ...restoredConfig,\n });\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await scorerStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring scorer version');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:scorerId/versions/:versionId - Delete a version\n */\nexport const DELETE_SCORER_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: deleteScorerVersionResponseSchema,\n summary: 'Delete scorer version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n if (scorer.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await scorerStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/compare - Compare two versions\n */\nexport const COMPARE_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: compareScorerVersionsQuerySchema,\n responseSchema: compareScorerVersionsResponseSchema,\n summary: 'Compare scorer versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, from, to }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const fromVersion = await scorerStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for scorer ${scorerId}`,\n });\n }\n\n const toVersion = await scorerStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for scorer ${scorerId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing scorer versions');\n }\n },\n});\n"]}
@@ -1,6 +1,6 @@
1
1
  import { listScorerVersionsResponseSchema, listScorerVersionsQuerySchema, scorerVersionPathParams, createScorerVersionResponseSchema, createScorerVersionBodySchema, getScorerVersionResponseSchema, scorerVersionIdPathParams, activateScorerVersionResponseSchema, restoreScorerVersionResponseSchema, deleteScorerVersionResponseSchema, compareScorerVersionsResponseSchema, compareScorerVersionsQuerySchema } from './chunk-YPXOTWND.js';
2
2
  import { extractConfigFromVersion, calculateChangedFields, createVersionWithRetry, enforceRetentionLimit, computeVersionDiffs } from './chunk-33QPJPK4.js';
3
- import { createRoute } from './chunk-HCIKFLLE.js';
3
+ import { createRoute } from './chunk-VMF4AV2C.js';
4
4
  import { handleError } from './chunk-P23KBWKB.js';
5
5
  import { HTTPException } from './chunk-6QWQZI4Q.js';
6
6
 
@@ -384,5 +384,5 @@ var COMPARE_SCORER_VERSIONS_ROUTE = createRoute({
384
384
  });
385
385
 
386
386
  export { ACTIVATE_SCORER_VERSION_ROUTE, COMPARE_SCORER_VERSIONS_ROUTE, CREATE_SCORER_VERSION_ROUTE, DELETE_SCORER_VERSION_ROUTE, GET_SCORER_VERSION_ROUTE, LIST_SCORER_VERSIONS_ROUTE, RESTORE_SCORER_VERSION_ROUTE };
387
- //# sourceMappingURL=chunk-5FHBVBU2.js.map
388
- //# sourceMappingURL=chunk-5FHBVBU2.js.map
387
+ //# sourceMappingURL=chunk-VQSY4I4H.js.map
388
+ //# sourceMappingURL=chunk-VQSY4I4H.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/scorer-versions.ts"],"names":[],"mappings":"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","file":"chunk-5FHBVBU2.js","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n scorerVersionPathParams,\n scorerVersionIdPathParams,\n listScorerVersionsQuerySchema,\n createScorerVersionBodySchema,\n compareScorerVersionsQuerySchema,\n listScorerVersionsResponseSchema,\n getScorerVersionResponseSchema,\n createScorerVersionResponseSchema,\n activateScorerVersionResponseSchema,\n restoreScorerVersionResponseSchema,\n deleteScorerVersionResponseSchema,\n compareScorerVersionsResponseSchema,\n} from '../schemas/scorer-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n/**\n * GET /stored/scorers/:scorerId/versions - List all versions for a scorer\n */\nexport const LIST_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: listScorerVersionsQuerySchema,\n responseSchema: listScorerVersionsResponseSchema,\n summary: 'List scorer versions',\n description: 'Returns a paginated list of all versions for a stored scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, page, perPage, orderBy }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const result = await scorerStore.listVersions({\n scorerDefinitionId: scorerId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing scorer versions');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions - Create a new version snapshot\n */\nexport const CREATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n bodySchema: createScorerVersionBodySchema,\n responseSchema: createScorerVersionResponseSchema,\n summary: 'Create scorer version',\n description: 'Creates a new version snapshot of the current scorer configuration',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, changeMessage }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n let currentConfig: Record<string, unknown> = {};\n if (scorer.activeVersionId) {\n const activeVersion = await scorerStore.getVersion(scorer.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n\n // If no activeVersionId, fall back to latest version config\n if (!scorer.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/:versionId - Get a specific version\n */\nexport const GET_SCORER_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: getScorerVersionResponseSchema,\n summary: 'Get scorer version',\n description: 'Returns a specific version of a scorer by its version ID',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const version = await scorerStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: activateScorerVersionResponseSchema,\n summary: 'Activate scorer version',\n description: 'Sets a specific version as the active version for the scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n await scorerStore.update({\n id: scorerId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/restore - Restore scorer to a version\n */\nexport const RESTORE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: restoreScorerVersionResponseSchema,\n summary: 'Restore scorer version',\n description: 'Restores the scorer configuration from a version, creating a new version',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const versionToRestore = await scorerStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n await scorerStore.update({\n id: scorerId,\n ...restoredConfig,\n });\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await scorerStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring scorer version');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:scorerId/versions/:versionId - Delete a version\n */\nexport const DELETE_SCORER_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: deleteScorerVersionResponseSchema,\n summary: 'Delete scorer version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n if (scorer.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await scorerStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/compare - Compare two versions\n */\nexport const COMPARE_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: compareScorerVersionsQuerySchema,\n responseSchema: compareScorerVersionsResponseSchema,\n summary: 'Compare scorer versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, from, to }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const fromVersion = await scorerStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for scorer ${scorerId}`,\n });\n }\n\n const toVersion = await scorerStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for scorer ${scorerId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing scorer versions');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/scorer-versions.ts"],"names":[],"mappings":"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","file":"chunk-VQSY4I4H.js","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n scorerVersionPathParams,\n scorerVersionIdPathParams,\n listScorerVersionsQuerySchema,\n createScorerVersionBodySchema,\n compareScorerVersionsQuerySchema,\n listScorerVersionsResponseSchema,\n getScorerVersionResponseSchema,\n createScorerVersionResponseSchema,\n activateScorerVersionResponseSchema,\n restoreScorerVersionResponseSchema,\n deleteScorerVersionResponseSchema,\n compareScorerVersionsResponseSchema,\n} from '../schemas/scorer-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n/**\n * GET /stored/scorers/:scorerId/versions - List all versions for a scorer\n */\nexport const LIST_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: listScorerVersionsQuerySchema,\n responseSchema: listScorerVersionsResponseSchema,\n summary: 'List scorer versions',\n description: 'Returns a paginated list of all versions for a stored scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, page, perPage, orderBy }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const result = await scorerStore.listVersions({\n scorerDefinitionId: scorerId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing scorer versions');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions - Create a new version snapshot\n */\nexport const CREATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n bodySchema: createScorerVersionBodySchema,\n responseSchema: createScorerVersionResponseSchema,\n summary: 'Create scorer version',\n description: 'Creates a new version snapshot of the current scorer configuration',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, changeMessage }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n let currentConfig: Record<string, unknown> = {};\n if (scorer.activeVersionId) {\n const activeVersion = await scorerStore.getVersion(scorer.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n\n // If no activeVersionId, fall back to latest version config\n if (!scorer.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/:versionId - Get a specific version\n */\nexport const GET_SCORER_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: getScorerVersionResponseSchema,\n summary: 'Get scorer version',\n description: 'Returns a specific version of a scorer by its version ID',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const version = await scorerStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: activateScorerVersionResponseSchema,\n summary: 'Activate scorer version',\n description: 'Sets a specific version as the active version for the scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n await scorerStore.update({\n id: scorerId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/restore - Restore scorer to a version\n */\nexport const RESTORE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: restoreScorerVersionResponseSchema,\n summary: 'Restore scorer version',\n description: 'Restores the scorer configuration from a version, creating a new version',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const versionToRestore = await scorerStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n await scorerStore.update({\n id: scorerId,\n ...restoredConfig,\n });\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await scorerStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring scorer version');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:scorerId/versions/:versionId - Delete a version\n */\nexport const DELETE_SCORER_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: deleteScorerVersionResponseSchema,\n summary: 'Delete scorer version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n if (scorer.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await scorerStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/compare - Compare two versions\n */\nexport const COMPARE_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: compareScorerVersionsQuerySchema,\n responseSchema: compareScorerVersionsResponseSchema,\n summary: 'Compare scorer versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, from, to }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const fromVersion = await scorerStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for scorer ${scorerId}`,\n });\n }\n\n const toVersion = await scorerStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for scorer ${scorerId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing scorer versions');\n }\n },\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { createRoute } from './chunk-HCIKFLLE.js';
1
+ import { createRoute } from './chunk-VMF4AV2C.js';
2
2
  import { handleError } from './chunk-P23KBWKB.js';
3
3
  import { HTTPException } from './chunk-6QWQZI4Q.js';
4
4
  import { coreFeatures } from '@mastra/core/features';
@@ -186,5 +186,5 @@ var DISCONNECT_CHANNEL_ROUTE = createRoute({
186
186
  });
187
187
 
188
188
  export { CONNECT_CHANNEL_ROUTE, DISCONNECT_CHANNEL_ROUTE, LIST_CHANNEL_INSTALLATIONS_ROUTE, LIST_CHANNEL_PLATFORMS_ROUTE };
189
- //# sourceMappingURL=chunk-GKN4IFE7.js.map
190
- //# sourceMappingURL=chunk-GKN4IFE7.js.map
189
+ //# sourceMappingURL=chunk-VYXPIZJE.js.map
190
+ //# sourceMappingURL=chunk-VYXPIZJE.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/schemas/channels.ts","../src/server/handlers/channels.ts"],"names":[],"mappings":"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","file":"chunk-GKN4IFE7.js","sourcesContent":["import { z } from 'zod/v4';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\nexport const channelPlatformPathParams = z.object({\n platform: z.string().describe('Channel platform identifier (e.g., \"slack\")'),\n});\n\nexport const channelAgentPathParams = z.object({\n platform: z.string().describe('Channel platform identifier (e.g., \"slack\")'),\n agentId: z.string().describe('Agent identifier'),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\nexport const connectChannelBodySchema = z.object({\n agentId: z.string().describe('Agent identifier to connect'),\n options: z.record(z.string(), z.unknown()).optional().describe('Platform-specific connection options'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\nconst channelPlatformInfoSchema = z.object({\n id: z.string().describe('Platform identifier'),\n name: z.string().describe('Human-readable platform name'),\n isConfigured: z.boolean().describe('Whether the platform is ready to connect agents'),\n connectOptionsSchema: z.record(z.string(), z.unknown()).optional().describe('JSON Schema for connect options'),\n});\n\nconst channelInstallationInfoSchema = z.object({\n id: z.string().describe('Installation identifier'),\n platform: z.string().describe('Platform identifier'),\n agentId: z.string().describe('Connected agent identifier'),\n status: z.enum(['active', 'pending']).describe('Installation status'),\n displayName: z.string().optional().describe('Platform-specific display name'),\n installedAt: z.coerce.date().optional().describe('Installation timestamp'),\n});\n\nconst channelConnectOAuthSchema = z.object({\n type: z.literal('oauth').describe('OAuth-based connection requiring browser redirect'),\n authorizationUrl: z.string().describe('OAuth authorization URL for user redirect'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectDeepLinkSchema = z.object({\n type: z.literal('deep_link').describe('Deep-link connection requiring native app interaction'),\n url: z.string().describe('Deep link URL to open in platform app'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectImmediateSchema = z.object({\n type: z.literal('immediate').describe('Immediate connection with no user interaction needed'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectResultSchema = z.discriminatedUnion('type', [\n channelConnectOAuthSchema,\n channelConnectDeepLinkSchema,\n channelConnectImmediateSchema,\n]);\n\nexport const listChannelPlatformsResponseSchema = z.array(channelPlatformInfoSchema);\n\nexport const listChannelInstallationsResponseSchema = z.array(channelInstallationInfoSchema);\n\nexport const connectChannelResponseSchema = channelConnectResultSchema;\n\nexport const disconnectChannelResponseSchema = z.object({\n success: z.boolean(),\n});\n","import { coreFeatures } from '@mastra/core/features';\n\nimport { HTTPException } from '../http-exception';\nimport {\n channelPlatformPathParams,\n channelAgentPathParams,\n connectChannelBodySchema,\n listChannelPlatformsResponseSchema,\n listChannelInstallationsResponseSchema,\n connectChannelResponseSchema,\n disconnectChannelResponseSchema,\n} from '../schemas/channels';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n// ============================================================================\n// Feature gate + helpers\n// ============================================================================\n\nfunction assertChannelsAvailable(): void {\n if (!coreFeatures.has('channels')) {\n throw new HTTPException(501, { message: 'Channels require a newer version of @mastra/core' });\n }\n}\n\nfunction getChannelOrThrow(mastra: any, platform: string) {\n const channels = mastra.channels ?? {};\n const channel = Object.values(channels).find((c: any) => c.id === platform) as any;\n if (!channel) {\n const available = Object.values(channels)\n .map((c: any) => c.id)\n .join(', ');\n throw new HTTPException(404, {\n message: `Channel \"${platform}\" is not registered. Available: ${available || 'none'}`,\n });\n }\n return channel;\n}\n\nfunction assertAgentExists(mastra: any, agentId: string) {\n const agent = mastra.getAgentById?.(agentId);\n if (!agent) {\n throw new HTTPException(404, {\n message: `Agent \"${agentId}\" not found`,\n });\n }\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /channels/platforms - List available channel platforms\n */\nexport const LIST_CHANNEL_PLATFORMS_ROUTE = createRoute({\n method: 'GET',\n path: '/channels/platforms',\n responseType: 'json',\n responseSchema: listChannelPlatformsResponseSchema,\n summary: 'List channel platforms',\n description: 'Returns available channel platforms and their configuration status',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n assertChannelsAvailable();\n try {\n const channels = (mastra as any).channels ?? {};\n return Object.values(channels).map((channel: any) => {\n if (channel.getInfo) {\n return channel.getInfo();\n }\n return {\n id: channel.id,\n name: channel.id.charAt(0).toUpperCase() + channel.id.slice(1),\n isConfigured: true,\n };\n });\n } catch (error) {\n return handleError(error, 'Error listing channel platforms');\n }\n },\n});\n\n/**\n * GET /channels/:platform/installations - List installations for a platform\n */\nexport const LIST_CHANNEL_INSTALLATIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/channels/:platform/installations',\n responseType: 'json',\n pathParamSchema: channelPlatformPathParams,\n responseSchema: listChannelInstallationsResponseSchema,\n summary: 'List channel installations',\n description: 'Returns all active and pending installations for a channel platform',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.listInstallations) {\n return [];\n }\n\n return await channel.listInstallations();\n } catch (error) {\n return handleError(error, 'Error listing channel installations');\n }\n },\n});\n\n/**\n * POST /channels/:platform/connect - Connect an agent to a platform\n */\nexport const CONNECT_CHANNEL_ROUTE = createRoute({\n method: 'POST',\n path: '/channels/:platform/connect',\n responseType: 'json',\n pathParamSchema: channelPlatformPathParams,\n bodySchema: connectChannelBodySchema,\n responseSchema: connectChannelResponseSchema,\n summary: 'Connect agent to channel',\n description: 'Creates a platform app for the agent and returns an OAuth authorization URL',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform, agentId, options }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.connect) {\n throw new HTTPException(400, {\n message: `Channel \"${platform}\" does not support programmatic connection`,\n });\n }\n\n return await channel.connect(agentId, options);\n } catch (error) {\n return handleError(error, 'Error connecting agent to channel');\n }\n },\n});\n\n/**\n * POST /channels/:platform/:agentId/disconnect - Disconnect an agent from a platform\n */\nexport const DISCONNECT_CHANNEL_ROUTE = createRoute({\n method: 'POST',\n path: '/channels/:platform/:agentId/disconnect',\n responseType: 'json',\n pathParamSchema: channelAgentPathParams,\n responseSchema: disconnectChannelResponseSchema,\n summary: 'Disconnect agent from channel',\n description: 'Deletes the platform app and cleans up the installation',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform, agentId }) => {\n assertChannelsAvailable();\n try {\n assertAgentExists(mastra, agentId);\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.disconnect) {\n throw new HTTPException(400, {\n message: `Channel \"${platform}\" does not support programmatic disconnection`,\n });\n }\n\n await channel.disconnect(agentId);\n return { success: true };\n } catch (error) {\n return handleError(error, 'Error disconnecting agent from channel');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/schemas/channels.ts","../src/server/handlers/channels.ts"],"names":[],"mappings":";;;;;;AAMO,IAAM,yBAAA,GAA4B,EAAE,MAAA,CAAO;AAAA,EAChD,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,6CAA6C;AAC7E,CAAC,CAAA;AAEM,IAAM,sBAAA,GAAyB,EAAE,MAAA,CAAO;AAAA,EAC7C,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,6CAA6C,CAAA;AAAA,EAC3E,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,kBAAkB;AACjD,CAAC,CAAA;AAMM,IAAM,wBAAA,GAA2B,EAAE,MAAA,CAAO;AAAA,EAC/C,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,6BAA6B,CAAA;AAAA,EAC1D,OAAA,EAAS,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,EAAO,EAAG,CAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,sCAAsC;AACvG,CAAC,CAAA;AAMD,IAAM,yBAAA,GAA4B,EAAE,MAAA,CAAO;AAAA,EACzC,EAAA,EAAI,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,qBAAqB,CAAA;AAAA,EAC7C,IAAA,EAAM,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,8BAA8B,CAAA;AAAA,EACxD,YAAA,EAAc,CAAA,CAAE,OAAA,EAAQ,CAAE,SAAS,iDAAiD,CAAA;AAAA,EACpF,oBAAA,EAAsB,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,EAAO,EAAG,CAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,SAAS,iCAAiC;AAC/G,CAAC,CAAA;AAED,IAAM,6BAAA,GAAgC,EAAE,MAAA,CAAO;AAAA,EAC7C,EAAA,EAAI,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,yBAAyB,CAAA;AAAA,EACjD,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,qBAAqB,CAAA;AAAA,EACnD,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,4BAA4B,CAAA;AAAA,EACzD,MAAA,EAAQ,EAAE,IAAA,CAAK,CAAC,UAAU,SAAS,CAAC,CAAA,CAAE,QAAA,CAAS,qBAAqB,CAAA;AAAA,EACpE,aAAa,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gCAAgC,CAAA;AAAA,EAC5E,WAAA,EAAa,EAAE,MAAA,CAAO,IAAA,GAAO,QAAA,EAAS,CAAE,SAAS,wBAAwB;AAC3E,CAAC,CAAA;AAED,IAAM,yBAAA,GAA4B,EAAE,MAAA,CAAO;AAAA,EACzC,MAAM,CAAA,CAAE,OAAA,CAAQ,OAAO,CAAA,CAAE,SAAS,mDAAmD,CAAA;AAAA,EACrF,gBAAA,EAAkB,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,2CAA2C,CAAA;AAAA,EACjF,cAAA,EAAgB,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,yBAAyB;AAC/D,CAAC,CAAA;AAED,IAAM,4BAAA,GAA+B,EAAE,MAAA,CAAO;AAAA,EAC5C,MAAM,CAAA,CAAE,OAAA,CAAQ,WAAW,CAAA,CAAE,SAAS,uDAAuD,CAAA;AAAA,EAC7F,GAAA,EAAK,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,uCAAuC,CAAA;AAAA,EAChE,cAAA,EAAgB,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,yBAAyB;AAC/D,CAAC,CAAA;AAED,IAAM,6BAAA,GAAgC,EAAE,MAAA,CAAO;AAAA,EAC7C,MAAM,CAAA,CAAE,OAAA,CAAQ,WAAW,CAAA,CAAE,SAAS,sDAAsD,CAAA;AAAA,EAC5F,cAAA,EAAgB,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,yBAAyB;AAC/D,CAAC,CAAA;AAED,IAAM,0BAAA,GAA6B,CAAA,CAAE,kBAAA,CAAmB,MAAA,EAAQ;AAAA,EAC9D,yBAAA;AAAA,EACA,4BAAA;AAAA,EACA;AACF,CAAC,CAAA;AAEM,IAAM,kCAAA,GAAqC,CAAA,CAAE,KAAA,CAAM,yBAAyB,CAAA;AAE5E,IAAM,sCAAA,GAAyC,CAAA,CAAE,KAAA,CAAM,6BAA6B,CAAA;AAEpF,IAAM,4BAAA,GAA+B,0BAAA;AAErC,IAAM,+BAAA,GAAkC,EAAE,MAAA,CAAO;AAAA,EACtD,OAAA,EAAS,EAAE,OAAA;AACb,CAAC,CAAA;;;ACvDD,SAAS,uBAAA,GAAgC;AACvC,EAAA,IAAI,CAAC,YAAA,CAAa,GAAA,CAAI,UAAU,CAAA,EAAG;AACjC,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,oDAAoD,CAAA;AAAA,EAC9F;AACF;AAEA,SAAS,iBAAA,CAAkB,QAAa,QAAA,EAAkB;AACxD,EAAA,MAAM,QAAA,GAAW,MAAA,CAAO,QAAA,IAAY,EAAC;AACrC,EAAA,MAAM,OAAA,GAAU,MAAA,CAAO,MAAA,CAAO,QAAQ,CAAA,CAAE,KAAK,CAAC,CAAA,KAAW,CAAA,CAAE,EAAA,KAAO,QAAQ,CAAA;AAC1E,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,SAAA,GAAY,MAAA,CAAO,MAAA,CAAO,QAAQ,CAAA,CACrC,GAAA,CAAI,CAAC,CAAA,KAAW,CAAA,CAAE,EAAE,CAAA,CACpB,IAAA,CAAK,IAAI,CAAA;AACZ,IAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,MAC3B,OAAA,EAAS,CAAA,SAAA,EAAY,QAAQ,CAAA,gCAAA,EAAmC,aAAa,MAAM,CAAA;AAAA,KACpF,CAAA;AAAA,EACH;AACA,EAAA,OAAO,OAAA;AACT;AAEA,SAAS,iBAAA,CAAkB,QAAa,OAAA,EAAiB;AACvD,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,YAAA,GAAe,OAAO,CAAA;AAC3C,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,MAC3B,OAAA,EAAS,UAAU,OAAO,CAAA,WAAA;AAAA,KAC3B,CAAA;AAAA,EACH;AACF;AASO,IAAM,+BAA+B,WAAA,CAAY;AAAA,EACtD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,qBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,kCAAA;AAAA,EAChB,OAAA,EAAS,wBAAA;AAAA,EACT,WAAA,EAAa,oEAAA;AAAA,EACb,IAAA,EAAM,CAAC,UAAU,CAAA;AAAA,EACjB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAO,KAAM;AAC7B,IAAA,uBAAA,EAAwB;AACxB,IAAA,IAAI;AACF,MAAA,MAAM,QAAA,GAAY,MAAA,CAAe,QAAA,IAAY,EAAC;AAC9C,MAAA,OAAO,OAAO,MAAA,CAAO,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,OAAA,KAAiB;AACnD,QAAA,IAAI,QAAQ,OAAA,EAAS;AACnB,UAAA,OAAO,QAAQ,OAAA,EAAQ;AAAA,QACzB;AACA,QAAA,OAAO;AAAA,UACL,IAAI,OAAA,CAAQ,EAAA;AAAA,UACZ,IAAA,EAAM,OAAA,CAAQ,EAAA,CAAG,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAY,GAAI,OAAA,CAAQ,EAAA,CAAG,KAAA,CAAM,CAAC,CAAA;AAAA,UAC7D,YAAA,EAAc;AAAA,SAChB;AAAA,MACF,CAAC,CAAA;AAAA,IACH,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,iCAAiC,CAAA;AAAA,IAC7D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,mCAAmC,WAAA,CAAY;AAAA,EAC1D,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,mCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,yBAAA;AAAA,EACjB,cAAA,EAAgB,sCAAA;AAAA,EAChB,OAAA,EAAS,4BAAA;AAAA,EACT,WAAA,EAAa,qEAAA;AAAA,EACb,IAAA,EAAM,CAAC,UAAU,CAAA;AAAA,EACjB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,UAAS,KAAM;AACvC,IAAA,uBAAA,EAAwB;AACxB,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,iBAAA,CAAkB,MAAA,EAAQ,QAAQ,CAAA;AAElD,MAAA,IAAI,CAAC,QAAQ,iBAAA,EAAmB;AAC9B,QAAA,OAAO,EAAC;AAAA,MACV;AAEA,MAAA,OAAO,MAAM,QAAQ,iBAAA,EAAkB;AAAA,IACzC,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,qCAAqC,CAAA;AAAA,IACjE;AAAA,EACF;AACF,CAAC;AAKM,IAAM,wBAAwB,WAAA,CAAY;AAAA,EAC/C,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,6BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,yBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,4BAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,6EAAA;AAAA,EACb,IAAA,EAAM,CAAC,UAAU,CAAA;AAAA,EACjB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,QAAQ,QAAA,EAAU,OAAA,EAAS,SAAQ,KAAM;AACzD,IAAA,uBAAA,EAAwB;AACxB,IAAA,IAAI;AACF,MAAA,MAAM,OAAA,GAAU,iBAAA,CAAkB,MAAA,EAAQ,QAAQ,CAAA;AAElD,MAAA,IAAI,CAAC,QAAQ,OAAA,EAAS;AACpB,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS,YAAY,QAAQ,CAAA,0CAAA;AAAA,SAC9B,CAAA;AAAA,MACH;AAEA,MAAA,OAAO,MAAM,OAAA,CAAQ,OAAA,CAAQ,OAAA,EAAS,OAAO,CAAA;AAAA,IAC/C,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,IAC/D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,2BAA2B,WAAA,CAAY;AAAA,EAClD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,yCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,sBAAA;AAAA,EACjB,cAAA,EAAgB,+BAAA;AAAA,EAChB,OAAA,EAAS,+BAAA;AAAA,EACT,WAAA,EAAa,yDAAA;AAAA,EACb,IAAA,EAAM,CAAC,UAAU,CAAA;AAAA,EACjB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,QAAA,EAAU,SAAQ,KAAM;AAChD,IAAA,uBAAA,EAAwB;AACxB,IAAA,IAAI;AACF,MAAA,iBAAA,CAAkB,QAAQ,OAAO,CAAA;AACjC,MAAA,MAAM,OAAA,GAAU,iBAAA,CAAkB,MAAA,EAAQ,QAAQ,CAAA;AAElD,MAAA,IAAI,CAAC,QAAQ,UAAA,EAAY;AACvB,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS,YAAY,QAAQ,CAAA,6CAAA;AAAA,SAC9B,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,OAAA,CAAQ,WAAW,OAAO,CAAA;AAChC,MAAA,OAAO,EAAE,SAAS,IAAA,EAAK;AAAA,IACzB,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,wCAAwC,CAAA;AAAA,IACpE;AAAA,EACF;AACF,CAAC","file":"chunk-VYXPIZJE.js","sourcesContent":["import { z } from 'zod/v4';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\nexport const channelPlatformPathParams = z.object({\n platform: z.string().describe('Channel platform identifier (e.g., \"slack\")'),\n});\n\nexport const channelAgentPathParams = z.object({\n platform: z.string().describe('Channel platform identifier (e.g., \"slack\")'),\n agentId: z.string().describe('Agent identifier'),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\nexport const connectChannelBodySchema = z.object({\n agentId: z.string().describe('Agent identifier to connect'),\n options: z.record(z.string(), z.unknown()).optional().describe('Platform-specific connection options'),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\nconst channelPlatformInfoSchema = z.object({\n id: z.string().describe('Platform identifier'),\n name: z.string().describe('Human-readable platform name'),\n isConfigured: z.boolean().describe('Whether the platform is ready to connect agents'),\n connectOptionsSchema: z.record(z.string(), z.unknown()).optional().describe('JSON Schema for connect options'),\n});\n\nconst channelInstallationInfoSchema = z.object({\n id: z.string().describe('Installation identifier'),\n platform: z.string().describe('Platform identifier'),\n agentId: z.string().describe('Connected agent identifier'),\n status: z.enum(['active', 'pending']).describe('Installation status'),\n displayName: z.string().optional().describe('Platform-specific display name'),\n installedAt: z.coerce.date().optional().describe('Installation timestamp'),\n});\n\nconst channelConnectOAuthSchema = z.object({\n type: z.literal('oauth').describe('OAuth-based connection requiring browser redirect'),\n authorizationUrl: z.string().describe('OAuth authorization URL for user redirect'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectDeepLinkSchema = z.object({\n type: z.literal('deep_link').describe('Deep-link connection requiring native app interaction'),\n url: z.string().describe('Deep link URL to open in platform app'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectImmediateSchema = z.object({\n type: z.literal('immediate').describe('Immediate connection with no user interaction needed'),\n installationId: z.string().describe('Installation identifier'),\n});\n\nconst channelConnectResultSchema = z.discriminatedUnion('type', [\n channelConnectOAuthSchema,\n channelConnectDeepLinkSchema,\n channelConnectImmediateSchema,\n]);\n\nexport const listChannelPlatformsResponseSchema = z.array(channelPlatformInfoSchema);\n\nexport const listChannelInstallationsResponseSchema = z.array(channelInstallationInfoSchema);\n\nexport const connectChannelResponseSchema = channelConnectResultSchema;\n\nexport const disconnectChannelResponseSchema = z.object({\n success: z.boolean(),\n});\n","import { coreFeatures } from '@mastra/core/features';\n\nimport { HTTPException } from '../http-exception';\nimport {\n channelPlatformPathParams,\n channelAgentPathParams,\n connectChannelBodySchema,\n listChannelPlatformsResponseSchema,\n listChannelInstallationsResponseSchema,\n connectChannelResponseSchema,\n disconnectChannelResponseSchema,\n} from '../schemas/channels';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n// ============================================================================\n// Feature gate + helpers\n// ============================================================================\n\nfunction assertChannelsAvailable(): void {\n if (!coreFeatures.has('channels')) {\n throw new HTTPException(501, { message: 'Channels require a newer version of @mastra/core' });\n }\n}\n\nfunction getChannelOrThrow(mastra: any, platform: string) {\n const channels = mastra.channels ?? {};\n const channel = Object.values(channels).find((c: any) => c.id === platform) as any;\n if (!channel) {\n const available = Object.values(channels)\n .map((c: any) => c.id)\n .join(', ');\n throw new HTTPException(404, {\n message: `Channel \"${platform}\" is not registered. Available: ${available || 'none'}`,\n });\n }\n return channel;\n}\n\nfunction assertAgentExists(mastra: any, agentId: string) {\n const agent = mastra.getAgentById?.(agentId);\n if (!agent) {\n throw new HTTPException(404, {\n message: `Agent \"${agentId}\" not found`,\n });\n }\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /channels/platforms - List available channel platforms\n */\nexport const LIST_CHANNEL_PLATFORMS_ROUTE = createRoute({\n method: 'GET',\n path: '/channels/platforms',\n responseType: 'json',\n responseSchema: listChannelPlatformsResponseSchema,\n summary: 'List channel platforms',\n description: 'Returns available channel platforms and their configuration status',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n assertChannelsAvailable();\n try {\n const channels = (mastra as any).channels ?? {};\n return Object.values(channels).map((channel: any) => {\n if (channel.getInfo) {\n return channel.getInfo();\n }\n return {\n id: channel.id,\n name: channel.id.charAt(0).toUpperCase() + channel.id.slice(1),\n isConfigured: true,\n };\n });\n } catch (error) {\n return handleError(error, 'Error listing channel platforms');\n }\n },\n});\n\n/**\n * GET /channels/:platform/installations - List installations for a platform\n */\nexport const LIST_CHANNEL_INSTALLATIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/channels/:platform/installations',\n responseType: 'json',\n pathParamSchema: channelPlatformPathParams,\n responseSchema: listChannelInstallationsResponseSchema,\n summary: 'List channel installations',\n description: 'Returns all active and pending installations for a channel platform',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.listInstallations) {\n return [];\n }\n\n return await channel.listInstallations();\n } catch (error) {\n return handleError(error, 'Error listing channel installations');\n }\n },\n});\n\n/**\n * POST /channels/:platform/connect - Connect an agent to a platform\n */\nexport const CONNECT_CHANNEL_ROUTE = createRoute({\n method: 'POST',\n path: '/channels/:platform/connect',\n responseType: 'json',\n pathParamSchema: channelPlatformPathParams,\n bodySchema: connectChannelBodySchema,\n responseSchema: connectChannelResponseSchema,\n summary: 'Connect agent to channel',\n description: 'Creates a platform app for the agent and returns an OAuth authorization URL',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform, agentId, options }) => {\n assertChannelsAvailable();\n try {\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.connect) {\n throw new HTTPException(400, {\n message: `Channel \"${platform}\" does not support programmatic connection`,\n });\n }\n\n return await channel.connect(agentId, options);\n } catch (error) {\n return handleError(error, 'Error connecting agent to channel');\n }\n },\n});\n\n/**\n * POST /channels/:platform/:agentId/disconnect - Disconnect an agent from a platform\n */\nexport const DISCONNECT_CHANNEL_ROUTE = createRoute({\n method: 'POST',\n path: '/channels/:platform/:agentId/disconnect',\n responseType: 'json',\n pathParamSchema: channelAgentPathParams,\n responseSchema: disconnectChannelResponseSchema,\n summary: 'Disconnect agent from channel',\n description: 'Deletes the platform app and cleans up the installation',\n tags: ['Channels'],\n requiresAuth: true,\n handler: async ({ mastra, platform, agentId }) => {\n assertChannelsAvailable();\n try {\n assertAgentExists(mastra, agentId);\n const channel = getChannelOrThrow(mastra, platform);\n\n if (!channel.disconnect) {\n throw new HTTPException(400, {\n message: `Channel \"${platform}\" does not support programmatic disconnection`,\n });\n }\n\n await channel.disconnect(agentId);\n return { success: true };\n } catch (error) {\n return handleError(error, 'Error disconnecting agent from channel');\n }\n },\n});\n"]}
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk37G66LYP_cjs = require('./chunk-37G66LYP.cjs');
4
- var chunkHYYXUP35_cjs = require('./chunk-HYYXUP35.cjs');
4
+ var chunkPJDFXAOL_cjs = require('./chunk-PJDFXAOL.cjs');
5
5
  var chunkB34S64RC_cjs = require('./chunk-B34S64RC.cjs');
6
6
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
7
7
 
8
8
  // src/server/handlers/tool-providers.ts
9
- var LIST_TOOL_PROVIDERS_ROUTE = chunkHYYXUP35_cjs.createRoute({
9
+ var LIST_TOOL_PROVIDERS_ROUTE = chunkPJDFXAOL_cjs.createRoute({
10
10
  method: "GET",
11
11
  path: "/tool-providers",
12
12
  responseType: "json",
@@ -28,7 +28,7 @@ var LIST_TOOL_PROVIDERS_ROUTE = chunkHYYXUP35_cjs.createRoute({
28
28
  }
29
29
  }
30
30
  });
31
- var LIST_TOOL_PROVIDER_TOOLKITS_ROUTE = chunkHYYXUP35_cjs.createRoute({
31
+ var LIST_TOOL_PROVIDER_TOOLKITS_ROUTE = chunkPJDFXAOL_cjs.createRoute({
32
32
  method: "GET",
33
33
  path: "/tool-providers/:providerId/toolkits",
34
34
  responseType: "json",
@@ -57,7 +57,7 @@ var LIST_TOOL_PROVIDER_TOOLKITS_ROUTE = chunkHYYXUP35_cjs.createRoute({
57
57
  }
58
58
  }
59
59
  });
60
- var LIST_TOOL_PROVIDER_TOOLS_ROUTE = chunkHYYXUP35_cjs.createRoute({
60
+ var LIST_TOOL_PROVIDER_TOOLS_ROUTE = chunkPJDFXAOL_cjs.createRoute({
61
61
  method: "GET",
62
62
  path: "/tool-providers/:providerId/tools",
63
63
  responseType: "json",
@@ -89,7 +89,7 @@ var LIST_TOOL_PROVIDER_TOOLS_ROUTE = chunkHYYXUP35_cjs.createRoute({
89
89
  }
90
90
  }
91
91
  });
92
- var GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE = chunkHYYXUP35_cjs.createRoute({
92
+ var GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE = chunkPJDFXAOL_cjs.createRoute({
93
93
  method: "GET",
94
94
  path: "/tool-providers/:providerId/tools/:toolSlug/schema",
95
95
  responseType: "json",
@@ -127,5 +127,5 @@ exports.GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE = GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUT
127
127
  exports.LIST_TOOL_PROVIDERS_ROUTE = LIST_TOOL_PROVIDERS_ROUTE;
128
128
  exports.LIST_TOOL_PROVIDER_TOOLKITS_ROUTE = LIST_TOOL_PROVIDER_TOOLKITS_ROUTE;
129
129
  exports.LIST_TOOL_PROVIDER_TOOLS_ROUTE = LIST_TOOL_PROVIDER_TOOLS_ROUTE;
130
- //# sourceMappingURL=chunk-WYQDPZNZ.cjs.map
131
- //# sourceMappingURL=chunk-WYQDPZNZ.cjs.map
130
+ //# sourceMappingURL=chunk-W5B34RLN.cjs.map
131
+ //# sourceMappingURL=chunk-W5B34RLN.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/tool-providers.ts"],"names":["createRoute","listToolProvidersResponseSchema","HTTPException","handleError","toolProviderIdPathParams","listToolProviderToolkitsResponseSchema","listToolProviderToolsQuerySchema","listToolProviderToolsResponseSchema","toolSlugPathParams","getToolProviderToolSchemaResponseSchema"],"mappings":";;;;;;;;AAqBO,IAAM,4BAA4BA,6BAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,iBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgBC,iDAAA;AAAA,EAChB,OAAA,EAAS,qBAAA;AAAA,EACT,WAAA,EAAa,iEAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAO,KAAM;AAC7B,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAEhC,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAIC,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,MACtE;AAEA,MAAA,MAAM,SAAA,GAAY,OAAO,gBAAA,EAAiB;AAE1C,MAAA,OAAO,EAAE,SAAA,EAAW,MAAA,CAAO,MAAA,CAAO,SAAS,EAAE,GAAA,CAAI,CAAA,QAAA,KAAY,QAAA,CAAS,IAAI,CAAA,EAAE;AAAA,IAC9E,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,8BAA8B,CAAA;AAAA,IAC1D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,oCAAoCH,6BAAA,CAAY;AAAA,EAC3D,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,sCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBI,0CAAA;AAAA,EACjB,cAAA,EAAgBC,wDAAA;AAAA,EAChB,OAAA,EAAS,6BAAA;AAAA,EACT,WAAA,EAAa,8DAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAW,KAAM;AACzC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAEhC,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAIH,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,MACtE;AAEA,MAAA,MAAM,QAAA,GAAW,MAAA,CAAO,eAAA,CAAgB,UAAU,CAAA;AAElD,MAAA,IAAI,CAAC,QAAA,EAAU;AACb,QAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,sBAAA,EAAyB,UAAU,cAAc,CAAA;AAAA,MAC3F;AAEA,MAAA,IAAI,CAAC,SAAS,YAAA,EAAc;AAC1B,QAAA,OAAO,EAAE,IAAA,EAAM,EAAC,EAAE;AAAA,MACpB;AAEA,MAAA,OAAO,MAAM,SAAS,YAAA,EAAa;AAAA,IACrC,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,sCAAsC,CAAA;AAAA,IAClE;AAAA,EACF;AACF,CAAC;AAKM,IAAM,iCAAiCH,6BAAA,CAAY;AAAA,EACxD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,mCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBI,0CAAA;AAAA,EACjB,gBAAA,EAAkBE,kDAAA;AAAA,EAClB,cAAA,EAAgBC,qDAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,oFAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAY,OAAA,EAAS,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAQ,KAAM;AACzE,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAEhC,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAIL,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,MACtE;AAEA,MAAA,MAAM,QAAA,GAAW,MAAA,CAAO,eAAA,CAAgB,UAAU,CAAA;AAElD,MAAA,IAAI,CAAC,QAAA,EAAU;AACb,QAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,sBAAA,EAAyB,UAAU,cAAc,CAAA;AAAA,MAC3F;AAEA,MAAA,MAAM,UAAmC,EAAC;AAC1C,MAAA,IAAI,OAAA,KAAY,MAAA,EAAW,OAAA,CAAQ,OAAA,GAAU,OAAA;AAC7C,MAAA,IAAI,MAAA,KAAW,MAAA,EAAW,OAAA,CAAQ,MAAA,GAAS,MAAA;AAC3C,MAAA,IAAI,IAAA,KAAS,MAAA,EAAW,OAAA,CAAQ,IAAA,GAAO,IAAA;AACvC,MAAA,IAAI,OAAA,KAAY,MAAA,EAAW,OAAA,CAAQ,OAAA,GAAU,OAAA;AAE7C,MAAA,OAAO,MAAM,QAAA,CAAS,SAAA,CAAU,MAAA,CAAO,IAAA,CAAK,OAAO,CAAA,CAAE,MAAA,GAAS,CAAA,GAAI,OAAA,GAAU,MAAS,CAAA;AAAA,IACvF,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,IAC/D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,sCAAsCH,6BAAA,CAAY;AAAA,EAC7D,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,oDAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBQ,oCAAA;AAAA,EACjB,cAAA,EAAgBC,yDAAA;AAAA,EAChB,OAAA,EAAS,+BAAA;AAAA,EACT,WAAA,EAAa,6DAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,UAAS,KAAM;AACnD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAEhC,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAIP,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,MACtE;AAEA,MAAA,MAAM,QAAA,GAAW,MAAA,CAAO,eAAA,CAAgB,UAAU,CAAA;AAElD,MAAA,IAAI,CAAC,QAAA,EAAU;AACb,QAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,sBAAA,EAAyB,UAAU,cAAc,CAAA;AAAA,MAC3F;AAEA,MAAA,IAAI,CAAC,SAAS,aAAA,EAAe;AAC3B,QAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,UAAU,mCAAmC,CAAA;AAAA,MACxG;AAEA,MAAA,MAAM,MAAA,GAAS,MAAM,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AAEpD,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,mBAAmB,QAAQ,CAAA,uBAAA,EAA0B,UAAU,CAAA,CAAA,EAAI,CAAA;AAAA,MAC7G;AAEA,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,yCAAyC,CAAA;AAAA,IACrE;AAAA,EACF;AACF,CAAC","file":"chunk-WYQDPZNZ.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n toolProviderIdPathParams,\n toolSlugPathParams,\n listToolProviderToolsQuerySchema,\n listToolProvidersResponseSchema,\n listToolProviderToolkitsResponseSchema,\n listToolProviderToolsResponseSchema,\n getToolProviderToolSchemaResponseSchema,\n} from '../schemas/tool-providers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /tool-providers - List all registered tool providers\n */\nexport const LIST_TOOL_PROVIDERS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers',\n responseType: 'json',\n responseSchema: listToolProvidersResponseSchema,\n summary: 'List tool providers',\n description: 'Returns a list of all registered tool providers with their info',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const providers = editor.getToolProviders();\n\n return { providers: Object.values(providers).map(provider => provider.info) };\n } catch (error) {\n return handleError(error, 'Error listing tool providers');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/toolkits - List toolkits for a tool provider\n */\nexport const LIST_TOOL_PROVIDER_TOOLKITS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/toolkits',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n responseSchema: listToolProviderToolkitsResponseSchema,\n summary: 'List tool provider toolkits',\n description: 'Returns the toolkits available from a specific tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getToolProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Tool provider with id ${providerId} not found` });\n }\n\n if (!provider.listToolkits) {\n return { data: [] };\n }\n\n return await provider.listToolkits();\n } catch (error) {\n return handleError(error, 'Error listing tool provider toolkits');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools - List tools for a tool provider\n */\nexport const LIST_TOOL_PROVIDER_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listToolProviderToolsQuerySchema,\n responseSchema: listToolProviderToolsResponseSchema,\n summary: 'List tool provider tools',\n description: 'Returns the tools available from a specific tool provider, with optional filtering',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit, search, page, perPage }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getToolProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Tool provider with id ${providerId} not found` });\n }\n\n const options: Record<string, unknown> = {};\n if (toolkit !== undefined) options.toolkit = toolkit;\n if (search !== undefined) options.search = search;\n if (page !== undefined) options.page = page;\n if (perPage !== undefined) options.perPage = perPage;\n\n return await provider.listTools(Object.keys(options).length > 0 ? options : undefined);\n } catch (error) {\n return handleError(error, 'Error listing tool provider tools');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools/:toolSlug/schema - Get tool schema\n */\nexport const GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools/:toolSlug/schema',\n responseType: 'json',\n pathParamSchema: toolSlugPathParams,\n responseSchema: getToolProviderToolSchemaResponseSchema,\n summary: 'Get tool provider tool schema',\n description: 'Returns the schema for a specific tool from a tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolSlug }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getToolProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Tool provider with id ${providerId} not found` });\n }\n\n if (!provider.getToolSchema) {\n throw new HTTPException(404, { message: `Tool provider ${providerId} does not support getToolSchema` });\n }\n\n const schema = await provider.getToolSchema(toolSlug);\n\n if (!schema) {\n throw new HTTPException(404, { message: `Schema for tool ${toolSlug} not found in provider ${providerId}` });\n }\n\n return schema;\n } catch (error) {\n return handleError(error, 'Error getting tool provider tool schema');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/tool-providers.ts"],"names":["createRoute","listToolProvidersResponseSchema","HTTPException","handleError","toolProviderIdPathParams","listToolProviderToolkitsResponseSchema","listToolProviderToolsQuerySchema","listToolProviderToolsResponseSchema","toolSlugPathParams","getToolProviderToolSchemaResponseSchema"],"mappings":"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","file":"chunk-W5B34RLN.cjs","sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n toolProviderIdPathParams,\n toolSlugPathParams,\n listToolProviderToolsQuerySchema,\n listToolProvidersResponseSchema,\n listToolProviderToolkitsResponseSchema,\n listToolProviderToolsResponseSchema,\n getToolProviderToolSchemaResponseSchema,\n} from '../schemas/tool-providers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { handleError } from './error';\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /tool-providers - List all registered tool providers\n */\nexport const LIST_TOOL_PROVIDERS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers',\n responseType: 'json',\n responseSchema: listToolProvidersResponseSchema,\n summary: 'List tool providers',\n description: 'Returns a list of all registered tool providers with their info',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const providers = editor.getToolProviders();\n\n return { providers: Object.values(providers).map(provider => provider.info) };\n } catch (error) {\n return handleError(error, 'Error listing tool providers');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/toolkits - List toolkits for a tool provider\n */\nexport const LIST_TOOL_PROVIDER_TOOLKITS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/toolkits',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n responseSchema: listToolProviderToolkitsResponseSchema,\n summary: 'List tool provider toolkits',\n description: 'Returns the toolkits available from a specific tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getToolProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Tool provider with id ${providerId} not found` });\n }\n\n if (!provider.listToolkits) {\n return { data: [] };\n }\n\n return await provider.listToolkits();\n } catch (error) {\n return handleError(error, 'Error listing tool provider toolkits');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools - List tools for a tool provider\n */\nexport const LIST_TOOL_PROVIDER_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listToolProviderToolsQuerySchema,\n responseSchema: listToolProviderToolsResponseSchema,\n summary: 'List tool provider tools',\n description: 'Returns the tools available from a specific tool provider, with optional filtering',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit, search, page, perPage }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getToolProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Tool provider with id ${providerId} not found` });\n }\n\n const options: Record<string, unknown> = {};\n if (toolkit !== undefined) options.toolkit = toolkit;\n if (search !== undefined) options.search = search;\n if (page !== undefined) options.page = page;\n if (perPage !== undefined) options.perPage = perPage;\n\n return await provider.listTools(Object.keys(options).length > 0 ? options : undefined);\n } catch (error) {\n return handleError(error, 'Error listing tool provider tools');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools/:toolSlug/schema - Get tool schema\n */\nexport const GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools/:toolSlug/schema',\n responseType: 'json',\n pathParamSchema: toolSlugPathParams,\n responseSchema: getToolProviderToolSchemaResponseSchema,\n summary: 'Get tool provider tool schema',\n description: 'Returns the schema for a specific tool from a tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolSlug }) => {\n try {\n const editor = mastra.getEditor();\n\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n\n const provider = editor.getToolProvider(providerId);\n\n if (!provider) {\n throw new HTTPException(404, { message: `Tool provider with id ${providerId} not found` });\n }\n\n if (!provider.getToolSchema) {\n throw new HTTPException(404, { message: `Tool provider ${providerId} does not support getToolSchema` });\n }\n\n const schema = await provider.getToolSchema(toolSlug);\n\n if (!schema) {\n throw new HTTPException(404, { message: `Schema for tool ${toolSlug} not found in provider ${providerId}` });\n }\n\n return schema;\n } catch (error) {\n return handleError(error, 'Error getting tool provider tool schema');\n }\n },\n});\n"]}