@mastra/server 1.79.0-alpha.9 → 1.79.0

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 (402) hide show
  1. package/dist/{a2a-CHBSYHxu.js → a2a-BqLB3McP.js} +17 -16
  2. package/dist/a2a-BqLB3McP.js.map +1 -0
  3. package/dist/{a2a-B465DD1u.cjs → a2a-Uood_0DN.cjs} +19 -18
  4. package/dist/a2a-Uood_0DN.cjs.map +1 -0
  5. package/dist/agent-builder-CuBD1tpv.cjs +728 -0
  6. package/dist/agent-builder-CuBD1tpv.cjs.map +1 -0
  7. package/dist/agent-builder-VhM8ADW-.js +627 -0
  8. package/dist/agent-builder-VhM8ADW-.js.map +1 -0
  9. package/dist/{agents-X1E7fW3p.js → agents-BHLTMBff.js} +2 -2
  10. package/dist/{agents-X1E7fW3p.js.map → agents-BHLTMBff.js.map} +1 -1
  11. package/dist/agents-BOWEUKyV.cjs +3127 -0
  12. package/dist/agents-BOWEUKyV.cjs.map +1 -0
  13. package/dist/agents-DRQ3ScbX.js +2828 -0
  14. package/dist/agents-DRQ3ScbX.js.map +1 -0
  15. package/dist/{agents-DoNMSCMt.cjs → agents-T-OIM9IK.cjs} +2 -2
  16. package/dist/{agents-DoNMSCMt.cjs.map → agents-T-OIM9IK.cjs.map} +1 -1
  17. package/dist/{api-schema-manifest-CWRIJP-B.js → api-schema-manifest-CI90M4sX.js} +3 -3
  18. package/dist/{api-schema-manifest-CWRIJP-B.js.map → api-schema-manifest-CI90M4sX.js.map} +1 -1
  19. package/dist/{api-schema-manifest-DUseI2VG.cjs → api-schema-manifest-DIlNfbyw.cjs} +4 -4
  20. package/dist/{api-schema-manifest-DUseI2VG.cjs.map → api-schema-manifest-DIlNfbyw.cjs.map} +1 -1
  21. package/dist/{background-tasks-CabImVak.cjs → background-tasks-B3VAKTJh.cjs} +3 -3
  22. package/dist/{background-tasks-CabImVak.cjs.map → background-tasks-B3VAKTJh.cjs.map} +1 -1
  23. package/dist/{background-tasks-oBaLtnCn.js → background-tasks-Du2zYOPl.js} +2 -2
  24. package/dist/{background-tasks-oBaLtnCn.js.map → background-tasks-Du2zYOPl.js.map} +1 -1
  25. package/dist/{builder-registry-DOkLe8ES.js → builder-registry-DLdu9bWH.js} +3 -3
  26. package/dist/{builder-registry-DOkLe8ES.js.map → builder-registry-DLdu9bWH.js.map} +1 -1
  27. package/dist/{builder-registry-D0frV8lQ.cjs → builder-registry-DaFAaMTf.cjs} +3 -3
  28. package/dist/{builder-registry-D0frV8lQ.cjs.map → builder-registry-DaFAaMTf.cjs.map} +1 -1
  29. package/dist/{channels-CBIopVWd.cjs → channels-BnVRmnzK.cjs} +6 -3
  30. package/dist/{channels-CBIopVWd.cjs.map → channels-BnVRmnzK.cjs.map} +1 -1
  31. package/dist/{channels-BOxgHvzI.js → channels-Db-4pXVZ.js} +6 -3
  32. package/dist/{channels-BOxgHvzI.js.map → channels-Db-4pXVZ.js.map} +1 -1
  33. package/dist/conversations-8BWryNlF.js +165 -0
  34. package/dist/conversations-8BWryNlF.js.map +1 -0
  35. package/dist/conversations-C5MkQBB8.cjs +194 -0
  36. package/dist/conversations-C5MkQBB8.cjs.map +1 -0
  37. package/dist/{conversations-Bj5TLNqF.cjs → conversations-DasqEDCF.cjs} +3 -3
  38. package/dist/{conversations-Bj5TLNqF.cjs.map → conversations-DasqEDCF.cjs.map} +1 -1
  39. package/dist/{dist-9c3PXXpk.cjs → dist-B-bEVWlJ.cjs} +4733 -1251
  40. package/dist/dist-B-bEVWlJ.cjs.map +1 -0
  41. package/dist/dist-B3kC8Yd0.cjs +3 -0
  42. package/dist/{dist-CQ3FSKT-.cjs → dist-B9ery9Zw.cjs} +38 -35
  43. package/dist/{dist-CQ3FSKT-.cjs.map → dist-B9ery9Zw.cjs.map} +1 -1
  44. package/dist/{dist-BxMmGD3n.js → dist-BBOnrL_A.js} +10 -12
  45. package/dist/{dist-BxMmGD3n.js.map → dist-BBOnrL_A.js.map} +1 -1
  46. package/dist/{dist-DOWsEmo6.js → dist-BIrQLUV9.js} +20 -20
  47. package/dist/{dist-DOWsEmo6.js.map → dist-BIrQLUV9.js.map} +1 -1
  48. package/dist/dist-BM9J-PTK.js +1 -0
  49. package/dist/{dist-DC1Pewf5.cjs → dist-Bo3GdQwf.cjs} +21 -21
  50. package/dist/{dist-DC1Pewf5.cjs.map → dist-Bo3GdQwf.cjs.map} +1 -1
  51. package/dist/{dist-BwYL7Ykb.js → dist-CREG82cy.js} +37 -34
  52. package/dist/{dist-BwYL7Ykb.js.map → dist-CREG82cy.js.map} +1 -1
  53. package/dist/{dist-rDRetJVY.cjs → dist-CeTLA-e5.cjs} +2 -3
  54. package/dist/{dist-rDRetJVY.cjs.map → dist-CeTLA-e5.cjs.map} +1 -1
  55. package/dist/{dist-CBRJax5e.js → dist-DLld1qjf.js} +25 -31
  56. package/dist/{dist-CBRJax5e.js.map → dist-DLld1qjf.js.map} +1 -1
  57. package/dist/{dist-B_bet8uz.js → dist-DjkPkAzV.js} +2 -3
  58. package/dist/{dist-B_bet8uz.js.map → dist-DjkPkAzV.js.map} +1 -1
  59. package/dist/{dist-UKEksCGq.cjs → dist-DsrJXwic.cjs} +11 -13
  60. package/dist/{dist-UKEksCGq.cjs.map → dist-DsrJXwic.cjs.map} +1 -1
  61. package/dist/{dist-DGCnbhNe.js → dist-k77XQGUn.js} +4493 -1043
  62. package/dist/dist-k77XQGUn.js.map +1 -0
  63. package/dist/{dist-3FPW9nVj.cjs → dist-lT2rqyY9.cjs} +26 -32
  64. package/dist/{dist-3FPW9nVj.cjs.map → dist-lT2rqyY9.cjs.map} +1 -1
  65. package/dist/docs/SKILL.md +1 -1
  66. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  67. package/dist/docs/references/reference-server-routes.md +159 -0
  68. package/dist/{dynamic-workflows-Rr_6ac1y.js → dynamic-workflows-CTUO0SFu.js} +3 -3
  69. package/dist/{dynamic-workflows-Rr_6ac1y.js.map → dynamic-workflows-CTUO0SFu.js.map} +1 -1
  70. package/dist/{dynamic-workflows-DXlkr-jK.cjs → dynamic-workflows-HwPX3mcf.cjs} +3 -3
  71. package/dist/{dynamic-workflows-DXlkr-jK.cjs.map → dynamic-workflows-HwPX3mcf.cjs.map} +1 -1
  72. package/dist/{editor-builder-BclcHxN6.cjs → editor-builder-BDtiWw0f.cjs} +2 -2
  73. package/dist/{editor-builder-BclcHxN6.cjs.map → editor-builder-BDtiWw0f.cjs.map} +1 -1
  74. package/dist/{editor-builder-D16kc1P6.js → editor-builder-ClFlGXoX.js} +4 -4
  75. package/dist/{editor-builder-D16kc1P6.js.map → editor-builder-ClFlGXoX.js.map} +1 -1
  76. package/dist/{editor-builder-s9WqPJgA.js → editor-builder-DnLCfqnY.js} +2 -2
  77. package/dist/{editor-builder-s9WqPJgA.js.map → editor-builder-DnLCfqnY.js.map} +1 -1
  78. package/dist/{editor-builder-DXHiPX1A.cjs → editor-builder-DtpP1FtW.cjs} +5 -5
  79. package/dist/{editor-builder-DXHiPX1A.cjs.map → editor-builder-DtpP1FtW.cjs.map} +1 -1
  80. package/dist/{helpers-ElhPeCSK.cjs → helpers-CAcEhq38.cjs} +21 -17
  81. package/dist/{helpers-ElhPeCSK.cjs.map → helpers-CAcEhq38.cjs.map} +1 -1
  82. package/dist/{helpers-DLhX1fqc.js → helpers-vrqddDd5.js} +21 -17
  83. package/dist/{helpers-DLhX1fqc.js.map → helpers-vrqddDd5.js.map} +1 -1
  84. package/dist/index.cjs +1 -1
  85. package/dist/logs-CiSw7r0s.cjs +119 -0
  86. package/dist/logs-CiSw7r0s.cjs.map +1 -0
  87. package/dist/logs-CxfPk-iL.js +96 -0
  88. package/dist/logs-CxfPk-iL.js.map +1 -0
  89. package/dist/mcp-CWDfSu7w.js +474 -0
  90. package/dist/mcp-CWDfSu7w.js.map +1 -0
  91. package/dist/mcp-CWGJRqkC.cjs +563 -0
  92. package/dist/mcp-CWGJRqkC.cjs.map +1 -0
  93. package/dist/{mcp-DzpwLXEY.js → mcp-Drqt0GqD.js} +79 -4
  94. package/dist/mcp-Drqt0GqD.js.map +1 -0
  95. package/dist/{mcp-ShaKO7gA.cjs → mcp-ziWVk7Ol.cjs} +126 -3
  96. package/dist/mcp-ziWVk7Ol.cjs.map +1 -0
  97. package/dist/memory-BHtTSzvJ.js +1739 -0
  98. package/dist/memory-BHtTSzvJ.js.map +1 -0
  99. package/dist/memory-CwwkVDh1.cjs +1906 -0
  100. package/dist/memory-CwwkVDh1.cjs.map +1 -0
  101. package/dist/observability-BBMCMeT-.cjs +502 -0
  102. package/dist/observability-BBMCMeT-.cjs.map +1 -0
  103. package/dist/observability-ZRgRcvoX.js +431 -0
  104. package/dist/observability-ZRgRcvoX.js.map +1 -0
  105. package/dist/{observability-new-endpoints-BU8JYPfh.js → observability-new-endpoints-fjoZzEtk.js} +10 -9
  106. package/dist/{observability-new-endpoints-BU8JYPfh.js.map → observability-new-endpoints-fjoZzEtk.js.map} +1 -1
  107. package/dist/{observability-new-endpoints-AMp9bnMV.cjs → observability-new-endpoints-tG3-odLa.cjs} +11 -10
  108. package/dist/observability-new-endpoints-tG3-odLa.cjs.map +1 -0
  109. package/dist/plans-CiPgWBhO.cjs +68 -0
  110. package/dist/plans-CiPgWBhO.cjs.map +1 -0
  111. package/dist/plans-DCepEY7n.js +57 -0
  112. package/dist/plans-DCepEY7n.js.map +1 -0
  113. package/dist/{probe-image-size-DBGjhUtJ.cjs → probe-image-size-Alv3gwKl.cjs} +194 -184
  114. package/dist/probe-image-size-Alv3gwKl.cjs.map +1 -0
  115. package/dist/{probe-image-size-Dmoxv93t.js → probe-image-size-BdfbUHxx.js} +158 -148
  116. package/dist/probe-image-size-BdfbUHxx.js.map +1 -0
  117. package/dist/responses-4FwMNxoJ.js +628 -0
  118. package/dist/responses-4FwMNxoJ.js.map +1 -0
  119. package/dist/responses-CCRijwDF.cjs +651 -0
  120. package/dist/responses-CCRijwDF.cjs.map +1 -0
  121. package/dist/{responses-CKNdSRkS.cjs → responses-CfcIc53b.cjs} +2 -2
  122. package/dist/{responses-CKNdSRkS.cjs.map → responses-CfcIc53b.cjs.map} +1 -1
  123. package/dist/{rolldown-runtime-Bd6kNlEP.cjs → rolldown-runtime-BwC_XMyb.cjs} +2 -2
  124. package/dist/{rolldown-runtime-maW3aOIk.js → rolldown-runtime-D3Hj5m0v.js} +2 -2
  125. package/dist/{route-builder-BNZs643f.cjs → route-builder-B2Qhhd7C.cjs} +52 -66
  126. package/dist/route-builder-B2Qhhd7C.cjs.map +1 -0
  127. package/dist/{route-builder-BfQYtclb.js → route-builder-CjkWxv4E.js} +51 -65
  128. package/dist/route-builder-CjkWxv4E.js.map +1 -0
  129. package/dist/{routes-rwufkyUe.js → routes-BC20mdNN.js} +30 -26
  130. package/dist/routes-BC20mdNN.js.map +1 -0
  131. package/dist/{routes-Dl6_kWm7.js → routes-CKfXiwRc.js} +5 -3
  132. package/dist/routes-CKfXiwRc.js.map +1 -0
  133. package/dist/{routes-DPojsNf1.cjs → routes-DGLJyqjD.cjs} +203 -199
  134. package/dist/routes-DGLJyqjD.cjs.map +1 -0
  135. package/dist/{routes-BULZI-PU.cjs → routes-jXksmX9G.cjs} +5 -3
  136. package/dist/routes-jXksmX9G.cjs.map +1 -0
  137. package/dist/{schedules-Bj-giFbc.cjs → schedules-GokZKBYg.cjs} +6 -4
  138. package/dist/schedules-GokZKBYg.cjs.map +1 -0
  139. package/dist/{schedules-BQYgaz66.js → schedules-_3zPKyqm.js} +5 -3
  140. package/dist/schedules-_3zPKyqm.js.map +1 -0
  141. package/dist/{schema-e0VHpMt0-C0452jOk.cjs → schema-CzbEIyhE-20gGIWkz.cjs} +83 -88
  142. package/dist/schema-CzbEIyhE-20gGIWkz.cjs.map +1 -0
  143. package/dist/{schema-e0VHpMt0-CVP5Hnxy.js → schema-CzbEIyhE-BsMcj9Ws.js} +82 -87
  144. package/dist/schema-CzbEIyhE-BsMcj9Ws.js.map +1 -0
  145. package/dist/scores-D9UgETt_.js +288 -0
  146. package/dist/scores-D9UgETt_.js.map +1 -0
  147. package/dist/scores-DRdtS7NT.cjs +329 -0
  148. package/dist/scores-DRdtS7NT.cjs.map +1 -0
  149. package/dist/server/a2a/store.cjs +1 -1
  150. package/dist/server/auth/index.cjs +2 -2
  151. package/dist/server/auth/index.js +1 -1
  152. package/dist/server/browser-stream/index.cjs +9 -11
  153. package/dist/server/browser-stream/index.cjs.map +1 -1
  154. package/dist/server/browser-stream/index.js +8 -10
  155. package/dist/server/browser-stream/index.js.map +1 -1
  156. package/dist/server/handlers/a2a.cjs +2 -2
  157. package/dist/server/handlers/a2a.js +1 -2
  158. package/dist/server/handlers/agent-builder.cjs +18 -648
  159. package/dist/server/handlers/agent-builder.js +1 -627
  160. package/dist/server/handlers/agent-controller.cjs +5 -5
  161. package/dist/server/handlers/agent-controller.cjs.map +1 -1
  162. package/dist/server/handlers/agent-controller.js +11 -9
  163. package/dist/server/handlers/agent-controller.js.map +1 -1
  164. package/dist/server/handlers/agent-versions.cjs +15 -8
  165. package/dist/server/handlers/agent-versions.cjs.map +1 -1
  166. package/dist/server/handlers/agent-versions.js +14 -7
  167. package/dist/server/handlers/agent-versions.js.map +1 -1
  168. package/dist/server/handlers/agents.cjs +51 -2860
  169. package/dist/server/handlers/agents.js +1 -2806
  170. package/dist/server/handlers/auth.cjs +14 -12
  171. package/dist/server/handlers/auth.cjs.map +1 -1
  172. package/dist/server/handlers/auth.js +20 -16
  173. package/dist/server/handlers/auth.js.map +1 -1
  174. package/dist/server/handlers/author-enrichment.cjs +1 -1
  175. package/dist/server/handlers/authorship.cjs +1 -1
  176. package/dist/server/handlers/authorship.cjs.map +1 -1
  177. package/dist/server/handlers/background-tasks.cjs +2 -2
  178. package/dist/server/handlers/background-tasks.js +1 -2
  179. package/dist/server/handlers/builder-registry.cjs +2 -2
  180. package/dist/server/handlers/builder-registry.js +1 -2
  181. package/dist/server/handlers/channels.cjs +2 -2
  182. package/dist/server/handlers/channels.js +1 -2
  183. package/dist/server/handlers/conversations.cjs +6 -171
  184. package/dist/server/handlers/conversations.js +1 -162
  185. package/dist/server/handlers/datasets.cjs +2 -2
  186. package/dist/server/handlers/datasets.cjs.map +1 -1
  187. package/dist/server/handlers/datasets.js +1 -1
  188. package/dist/server/handlers/dynamic-workflows.cjs +2 -2
  189. package/dist/server/handlers/dynamic-workflows.js +1 -2
  190. package/dist/server/handlers/editor-builder.cjs +2 -2
  191. package/dist/server/handlers/editor-builder.js +1 -2
  192. package/dist/server/handlers/error.cjs +18 -13
  193. package/dist/server/handlers/error.cjs.map +1 -1
  194. package/dist/server/handlers/error.js +17 -12
  195. package/dist/server/handlers/error.js.map +1 -1
  196. package/dist/server/handlers/favorites-enrichment.cjs +2 -2
  197. package/dist/server/handlers/favorites-enrichment.js +1 -1
  198. package/dist/server/handlers/gateway-memory-client.cjs +1 -1
  199. package/dist/server/handlers/logs.cjs +5 -104
  200. package/dist/server/handlers/logs.js +1 -96
  201. package/dist/server/handlers/mcp-client-versions.cjs +15 -8
  202. package/dist/server/handlers/mcp-client-versions.cjs.map +1 -1
  203. package/dist/server/handlers/mcp-client-versions.js +14 -7
  204. package/dist/server/handlers/mcp-client-versions.js.map +1 -1
  205. package/dist/server/handlers/mcp.cjs +16 -289
  206. package/dist/server/handlers/mcp.d.ts +219 -0
  207. package/dist/server/handlers/mcp.d.ts.map +1 -1
  208. package/dist/server/handlers/mcp.js +1 -274
  209. package/dist/server/handlers/memory.cjs +29 -1763
  210. package/dist/server/handlers/memory.js +1 -1731
  211. package/dist/server/handlers/observability-list-query-schemas.cjs +1 -1
  212. package/dist/server/handlers/observability-new-endpoints.cjs +2 -2
  213. package/dist/server/handlers/observability-new-endpoints.js +1 -2
  214. package/dist/server/handlers/observability-shared.cjs +2 -2
  215. package/dist/server/handlers/observability-shared.js +1 -1
  216. package/dist/server/handlers/observability-storage-schemas.cjs +1 -1
  217. package/dist/server/handlers/observability.cjs +14 -445
  218. package/dist/server/handlers/observability.js +3 -429
  219. package/dist/server/handlers/plans.cjs +3 -63
  220. package/dist/server/handlers/plans.js +1 -57
  221. package/dist/server/handlers/processor-providers.cjs +2 -2
  222. package/dist/server/handlers/processor-providers.cjs.map +1 -1
  223. package/dist/server/handlers/processor-providers.js +1 -1
  224. package/dist/server/handlers/processors.cjs +13 -15
  225. package/dist/server/handlers/processors.cjs.map +1 -1
  226. package/dist/server/handlers/processors.js +12 -14
  227. package/dist/server/handlers/processors.js.map +1 -1
  228. package/dist/server/handlers/prompt-block-versions.cjs +15 -8
  229. package/dist/server/handlers/prompt-block-versions.cjs.map +1 -1
  230. package/dist/server/handlers/prompt-block-versions.js +14 -7
  231. package/dist/server/handlers/prompt-block-versions.js.map +1 -1
  232. package/dist/server/handlers/responses.adapter.cjs +1 -1
  233. package/dist/server/handlers/responses.adapter.cjs.map +1 -1
  234. package/dist/server/handlers/responses.cjs +5 -632
  235. package/dist/server/handlers/responses.js +1 -624
  236. package/dist/server/handlers/responses.storage.cjs +2 -2
  237. package/dist/server/handlers/schedules-workflows-shim.cjs +1 -1
  238. package/dist/server/handlers/schedules.cjs +2 -2
  239. package/dist/server/handlers/schedules.d.ts +16 -0
  240. package/dist/server/handlers/schedules.d.ts.map +1 -1
  241. package/dist/server/handlers/schedules.js +1 -2
  242. package/dist/server/handlers/scorer-versions.cjs +15 -8
  243. package/dist/server/handlers/scorer-versions.cjs.map +1 -1
  244. package/dist/server/handlers/scorer-versions.js +14 -7
  245. package/dist/server/handlers/scorer-versions.js.map +1 -1
  246. package/dist/server/handlers/scores.cjs +8 -299
  247. package/dist/server/handlers/scores.js +1 -288
  248. package/dist/server/handlers/skills-sh-shared.cjs +1 -1
  249. package/dist/server/handlers/stored-agent-favorites.cjs +4 -4
  250. package/dist/server/handlers/stored-agent-favorites.js +3 -3
  251. package/dist/server/handlers/stored-agents.cjs +19 -13
  252. package/dist/server/handlers/stored-agents.cjs.map +1 -1
  253. package/dist/server/handlers/stored-agents.js +18 -12
  254. package/dist/server/handlers/stored-agents.js.map +1 -1
  255. package/dist/server/handlers/stored-mcp-clients.cjs +8 -6
  256. package/dist/server/handlers/stored-mcp-clients.cjs.map +1 -1
  257. package/dist/server/handlers/stored-mcp-clients.js +7 -5
  258. package/dist/server/handlers/stored-mcp-clients.js.map +1 -1
  259. package/dist/server/handlers/stored-prompt-blocks.cjs +3 -3
  260. package/dist/server/handlers/stored-prompt-blocks.js +2 -2
  261. package/dist/server/handlers/stored-scorers.cjs +3 -3
  262. package/dist/server/handlers/stored-scorers.js +2 -2
  263. package/dist/server/handlers/stored-skill-favorites.cjs +4 -4
  264. package/dist/server/handlers/stored-skill-favorites.js +3 -3
  265. package/dist/server/handlers/stored-skills.cjs +6 -5
  266. package/dist/server/handlers/stored-skills.cjs.map +1 -1
  267. package/dist/server/handlers/stored-skills.js +5 -4
  268. package/dist/server/handlers/stored-skills.js.map +1 -1
  269. package/dist/server/handlers/stored-workspaces.cjs +3 -3
  270. package/dist/server/handlers/stored-workspaces.js +2 -2
  271. package/dist/server/handlers/system.cjs +3 -3
  272. package/dist/server/handlers/system.cjs.map +1 -1
  273. package/dist/server/handlers/system.js +2 -2
  274. package/dist/server/handlers/test-utils.cjs +1 -1
  275. package/dist/server/handlers/tool-providers.cjs +2 -2
  276. package/dist/server/handlers/tool-providers.js +1 -1
  277. package/dist/server/handlers/tool-schema-overrides.cjs +1 -1
  278. package/dist/server/handlers/tools.cjs +7 -267
  279. package/dist/server/handlers/tools.js +1 -257
  280. package/dist/server/handlers/utils.cjs +2 -2
  281. package/dist/server/handlers/utils.js +1 -2
  282. package/dist/server/handlers/validate-agent-instructions.cjs +2 -2
  283. package/dist/server/handlers/validate-agent-instructions.js +1 -1
  284. package/dist/server/handlers/validate-avatar.cjs +2 -2
  285. package/dist/server/handlers/validate-avatar.cjs.map +1 -1
  286. package/dist/server/handlers/validate-avatar.js +1 -1
  287. package/dist/server/handlers/validate-avatar.js.map +1 -1
  288. package/dist/server/handlers/vector.cjs +17 -334
  289. package/dist/server/handlers/vector.js +1 -314
  290. package/dist/server/handlers/version-helpers.cjs +1 -1
  291. package/dist/server/handlers/voice.cjs +9 -35
  292. package/dist/server/handlers/voice.js +1 -23
  293. package/dist/server/handlers/workflow-builder.cjs +2 -2
  294. package/dist/server/handlers/workflow-builder.js +1 -2
  295. package/dist/server/handlers/workflows.cjs +30 -1293
  296. package/dist/server/handlers/workflows.js +1 -1257
  297. package/dist/server/handlers/workspace.cjs +27 -1176
  298. package/dist/server/handlers/workspace.js +1 -1146
  299. package/dist/server/handlers.cjs +33 -33
  300. package/dist/server/handlers.js +17 -17
  301. package/dist/server/schemas/index.cjs +7 -7
  302. package/dist/server/schemas/index.js +4 -4
  303. package/dist/server/schemas/mcp.d.ts +102 -0
  304. package/dist/server/schemas/mcp.d.ts.map +1 -1
  305. package/dist/server/schemas/schedules.d.ts +5 -0
  306. package/dist/server/schemas/schedules.d.ts.map +1 -1
  307. package/dist/server/server-adapter/index.cjs +5 -5
  308. package/dist/server/server-adapter/index.cjs.map +1 -1
  309. package/dist/server/server-adapter/index.js +4 -4
  310. package/dist/server/server-adapter/index.js.map +1 -1
  311. package/dist/server/server-adapter/routes/mcp.d.ts +214 -0
  312. package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -1
  313. package/dist/tools-CmFSfDMn.js +256 -0
  314. package/dist/tools-CmFSfDMn.js.map +1 -0
  315. package/dist/tools-SPJtxG9N.cjs +291 -0
  316. package/dist/tools-SPJtxG9N.cjs.map +1 -0
  317. package/dist/{utils-DCgeTrq2.cjs → utils-CF76qzZR.cjs} +12 -17
  318. package/dist/{utils-DCgeTrq2.cjs.map → utils-CF76qzZR.cjs.map} +1 -1
  319. package/dist/{utils-DCAUeb6M.js → utils-aoLN3Wfi.js} +11 -16
  320. package/dist/{utils-DCAUeb6M.js.map → utils-aoLN3Wfi.js.map} +1 -1
  321. package/dist/{utils-Du-EpvDs.cjs → utils-dDLIDg8O.cjs} +2 -2
  322. package/dist/{utils-Du-EpvDs.cjs.map → utils-dDLIDg8O.cjs.map} +1 -1
  323. package/dist/vector-BKDD1kwc.cjs +409 -0
  324. package/dist/vector-BKDD1kwc.cjs.map +1 -0
  325. package/dist/vector-TWv4t-4g.js +314 -0
  326. package/dist/vector-TWv4t-4g.js.map +1 -0
  327. package/dist/voice-BnGwlZ75.cjs +70 -0
  328. package/dist/voice-BnGwlZ75.cjs.map +1 -0
  329. package/dist/voice-DjG8tBAD.js +23 -0
  330. package/dist/voice-DjG8tBAD.js.map +1 -0
  331. package/dist/{workflow-builder-Brj3IArM.cjs → workflow-builder-C9-8ZOWF.cjs} +5 -5
  332. package/dist/{workflow-builder-Brj3IArM.cjs.map → workflow-builder-C9-8ZOWF.cjs.map} +1 -1
  333. package/dist/{workflow-builder-DOa1Vx6w.js → workflow-builder-CjlLoQvo.js} +10 -8
  334. package/dist/{workflow-builder-DOa1Vx6w.js.map → workflow-builder-CjlLoQvo.js.map} +1 -1
  335. package/dist/workflows-DjqeJcdJ.cjs +1446 -0
  336. package/dist/workflows-DjqeJcdJ.cjs.map +1 -0
  337. package/dist/workflows-bb-otd2o.js +1273 -0
  338. package/dist/workflows-bb-otd2o.js.map +1 -0
  339. package/dist/workspace-B6kzp-bo.js +1154 -0
  340. package/dist/workspace-B6kzp-bo.js.map +1 -0
  341. package/dist/workspace-COKR1SxH.cjs +1309 -0
  342. package/dist/workspace-COKR1SxH.cjs.map +1 -0
  343. package/package.json +9 -9
  344. package/dist/a2a-B465DD1u.cjs.map +0 -1
  345. package/dist/a2a-CHBSYHxu.js.map +0 -1
  346. package/dist/dist-9c3PXXpk.cjs.map +0 -1
  347. package/dist/dist-B5OwHWTo.cjs +0 -2294
  348. package/dist/dist-B5OwHWTo.cjs.map +0 -1
  349. package/dist/dist-DGCnbhNe.js.map +0 -1
  350. package/dist/dist-DcoIg_tp.js +0 -2293
  351. package/dist/dist-DcoIg_tp.js.map +0 -1
  352. package/dist/mcp-DzpwLXEY.js.map +0 -1
  353. package/dist/mcp-ShaKO7gA.cjs.map +0 -1
  354. package/dist/observability-new-endpoints-AMp9bnMV.cjs.map +0 -1
  355. package/dist/probe-image-size-DBGjhUtJ.cjs.map +0 -1
  356. package/dist/probe-image-size-Dmoxv93t.js.map +0 -1
  357. package/dist/route-builder-BNZs643f.cjs.map +0 -1
  358. package/dist/route-builder-BfQYtclb.js.map +0 -1
  359. package/dist/routes-BULZI-PU.cjs.map +0 -1
  360. package/dist/routes-DPojsNf1.cjs.map +0 -1
  361. package/dist/routes-Dl6_kWm7.js.map +0 -1
  362. package/dist/routes-rwufkyUe.js.map +0 -1
  363. package/dist/schedules-BQYgaz66.js.map +0 -1
  364. package/dist/schedules-Bj-giFbc.cjs.map +0 -1
  365. package/dist/schema-Drf2W04o.js +0 -2
  366. package/dist/schema-EQanefYq.cjs +0 -1
  367. package/dist/schema-e0VHpMt0-C0452jOk.cjs.map +0 -1
  368. package/dist/schema-e0VHpMt0-CVP5Hnxy.js.map +0 -1
  369. package/dist/server/handlers/agent-builder.cjs.map +0 -1
  370. package/dist/server/handlers/agent-builder.js.map +0 -1
  371. package/dist/server/handlers/agents.cjs.map +0 -1
  372. package/dist/server/handlers/agents.js.map +0 -1
  373. package/dist/server/handlers/conversations.cjs.map +0 -1
  374. package/dist/server/handlers/conversations.js.map +0 -1
  375. package/dist/server/handlers/logs.cjs.map +0 -1
  376. package/dist/server/handlers/logs.js.map +0 -1
  377. package/dist/server/handlers/mcp.cjs.map +0 -1
  378. package/dist/server/handlers/mcp.js.map +0 -1
  379. package/dist/server/handlers/memory.cjs.map +0 -1
  380. package/dist/server/handlers/memory.js.map +0 -1
  381. package/dist/server/handlers/observability.cjs.map +0 -1
  382. package/dist/server/handlers/observability.js.map +0 -1
  383. package/dist/server/handlers/plans.cjs.map +0 -1
  384. package/dist/server/handlers/plans.js.map +0 -1
  385. package/dist/server/handlers/responses.cjs.map +0 -1
  386. package/dist/server/handlers/responses.js.map +0 -1
  387. package/dist/server/handlers/scores.cjs.map +0 -1
  388. package/dist/server/handlers/scores.js.map +0 -1
  389. package/dist/server/handlers/tools.cjs.map +0 -1
  390. package/dist/server/handlers/tools.js.map +0 -1
  391. package/dist/server/handlers/vector.cjs.map +0 -1
  392. package/dist/server/handlers/vector.js.map +0 -1
  393. package/dist/server/handlers/voice.cjs.map +0 -1
  394. package/dist/server/handlers/voice.js.map +0 -1
  395. package/dist/server/handlers/workflows.cjs.map +0 -1
  396. package/dist/server/handlers/workflows.js.map +0 -1
  397. package/dist/server/handlers/workspace.cjs.map +0 -1
  398. package/dist/server/handlers/workspace.js.map +0 -1
  399. package/dist/sync-Ai_ZDz7U.js +0 -1700
  400. package/dist/sync-Ai_ZDz7U.js.map +0 -1
  401. package/dist/sync-BrO5MtSe.cjs +0 -1729
  402. package/dist/sync-BrO5MtSe.cjs.map +0 -1
@@ -40,6 +40,7 @@ export declare const LIST_SCHEDULES_ROUTE: Omit<import("@mastra/core/server").Ap
40
40
  streamOptions?: {
41
41
  requestContext?: Record<string, unknown> | undefined;
42
42
  } | undefined;
43
+ requireClaimedOwner?: boolean | undefined;
43
44
  } | undefined;
44
45
  providerOptions?: Record<string, unknown> | undefined;
45
46
  metadata?: Record<string, unknown> | undefined;
@@ -140,6 +141,7 @@ export declare const LIST_SCHEDULES_ROUTE: Omit<import("@mastra/core/server").Ap
140
141
  streamOptions: import("zod").ZodOptional<import("zod").ZodObject<{
141
142
  requestContext: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
142
143
  }, import("zod/v4/core").$strip>>;
144
+ requireClaimedOwner: import("zod").ZodOptional<import("zod").ZodBoolean>;
143
145
  }, import("zod/v4/core").$strip>>;
144
146
  providerOptions: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
145
147
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
@@ -226,6 +228,7 @@ export declare const GET_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").ApiR
226
228
  streamOptions?: {
227
229
  requestContext?: Record<string, unknown> | undefined;
228
230
  } | undefined;
231
+ requireClaimedOwner?: boolean | undefined;
229
232
  } | undefined;
230
233
  providerOptions?: Record<string, unknown> | undefined;
231
234
  metadata?: Record<string, unknown> | undefined;
@@ -315,6 +318,7 @@ export declare const GET_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").ApiR
315
318
  streamOptions: import("zod").ZodOptional<import("zod").ZodObject<{
316
319
  requestContext: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
317
320
  }, import("zod/v4/core").$strip>>;
321
+ requireClaimedOwner: import("zod").ZodOptional<import("zod").ZodBoolean>;
318
322
  }, import("zod/v4/core").$strip>>;
319
323
  providerOptions: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
320
324
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
@@ -407,6 +411,7 @@ export declare const CREATE_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").A
407
411
  streamOptions: import("zod").ZodOptional<import("zod").ZodObject<{
408
412
  requestContext: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
409
413
  }, import("zod/v4/core").$strip>>;
414
+ requireClaimedOwner: import("zod").ZodOptional<import("zod").ZodBoolean>;
410
415
  }, import("zod/v4/core").$strip>>;
411
416
  providerOptions: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
412
417
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
@@ -448,6 +453,7 @@ export declare const CREATE_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").A
448
453
  streamOptions?: {
449
454
  requestContext?: Record<string, unknown> | undefined;
450
455
  } | undefined;
456
+ requireClaimedOwner?: boolean | undefined;
451
457
  } | undefined;
452
458
  providerOptions?: Record<string, unknown> | undefined;
453
459
  metadata?: Record<string, unknown> | undefined;
@@ -525,6 +531,7 @@ export declare const CREATE_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").A
525
531
  streamOptions: import("zod").ZodOptional<import("zod").ZodObject<{
526
532
  requestContext: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
527
533
  }, import("zod/v4/core").$strip>>;
534
+ requireClaimedOwner: import("zod").ZodOptional<import("zod").ZodBoolean>;
528
535
  }, import("zod/v4/core").$strip>>;
529
536
  providerOptions: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
530
537
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
@@ -585,6 +592,7 @@ export declare const CREATE_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").A
585
592
  streamOptions: import("zod").ZodOptional<import("zod").ZodObject<{
586
593
  requestContext: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
587
594
  }, import("zod/v4/core").$strip>>;
595
+ requireClaimedOwner: import("zod").ZodOptional<import("zod").ZodBoolean>;
588
596
  }, import("zod/v4/core").$strip>>;
589
597
  providerOptions: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
590
598
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
@@ -662,6 +670,7 @@ export declare const UPDATE_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").A
662
670
  streamOptions?: {
663
671
  requestContext?: Record<string, unknown> | undefined;
664
672
  } | undefined;
673
+ requireClaimedOwner?: boolean | undefined;
665
674
  } | undefined;
666
675
  providerOptions?: Record<string, unknown> | undefined;
667
676
  inputData?: unknown;
@@ -696,6 +705,7 @@ export declare const UPDATE_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").A
696
705
  streamOptions?: {
697
706
  requestContext?: Record<string, unknown> | undefined;
698
707
  } | undefined;
708
+ requireClaimedOwner?: boolean | undefined;
699
709
  } | undefined;
700
710
  providerOptions?: Record<string, unknown> | undefined;
701
711
  metadata?: Record<string, unknown> | undefined;
@@ -776,6 +786,7 @@ export declare const UPDATE_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").A
776
786
  streamOptions: import("zod").ZodOptional<import("zod").ZodObject<{
777
787
  requestContext: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
778
788
  }, import("zod/v4/core").$strip>>;
789
+ requireClaimedOwner: import("zod").ZodOptional<import("zod").ZodBoolean>;
779
790
  }, import("zod/v4/core").$strip>>;
780
791
  providerOptions: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
781
792
  inputData: import("zod").ZodOptional<import("zod").ZodUnknown>;
@@ -829,6 +840,7 @@ export declare const UPDATE_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").A
829
840
  streamOptions: import("zod").ZodOptional<import("zod").ZodObject<{
830
841
  requestContext: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
831
842
  }, import("zod/v4/core").$strip>>;
843
+ requireClaimedOwner: import("zod").ZodOptional<import("zod").ZodBoolean>;
832
844
  }, import("zod/v4/core").$strip>>;
833
845
  providerOptions: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
834
846
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
@@ -943,6 +955,7 @@ export declare const PAUSE_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").Ap
943
955
  streamOptions?: {
944
956
  requestContext?: Record<string, unknown> | undefined;
945
957
  } | undefined;
958
+ requireClaimedOwner?: boolean | undefined;
946
959
  } | undefined;
947
960
  providerOptions?: Record<string, unknown> | undefined;
948
961
  metadata?: Record<string, unknown> | undefined;
@@ -1032,6 +1045,7 @@ export declare const PAUSE_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").Ap
1032
1045
  streamOptions: import("zod").ZodOptional<import("zod").ZodObject<{
1033
1046
  requestContext: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
1034
1047
  }, import("zod/v4/core").$strip>>;
1048
+ requireClaimedOwner: import("zod").ZodOptional<import("zod").ZodBoolean>;
1035
1049
  }, import("zod/v4/core").$strip>>;
1036
1050
  providerOptions: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
1037
1051
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
@@ -1117,6 +1131,7 @@ export declare const RESUME_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").A
1117
1131
  streamOptions?: {
1118
1132
  requestContext?: Record<string, unknown> | undefined;
1119
1133
  } | undefined;
1134
+ requireClaimedOwner?: boolean | undefined;
1120
1135
  } | undefined;
1121
1136
  providerOptions?: Record<string, unknown> | undefined;
1122
1137
  metadata?: Record<string, unknown> | undefined;
@@ -1206,6 +1221,7 @@ export declare const RESUME_SCHEDULE_ROUTE: Omit<import("@mastra/core/server").A
1206
1221
  streamOptions: import("zod").ZodOptional<import("zod").ZodObject<{
1207
1222
  requestContext: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
1208
1223
  }, import("zod/v4/core").$strip>>;
1224
+ requireClaimedOwner: import("zod").ZodOptional<import("zod").ZodBoolean>;
1209
1225
  }, import("zod/v4/core").$strip>>;
1210
1226
  providerOptions: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
1211
1227
  metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
@@ -1 +1 @@
1
- {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/schedules.ts"],"names":[],"mappings":"AA0FA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB/B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAc7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiEhC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiChC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAehC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgB/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBhC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAe7B,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCvC,CAAC"}
1
+ {"version":3,"file":"schedules.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/schedules.ts"],"names":[],"mappings":"AA0FA,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqB/B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAc7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiEhC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiChC,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAehC,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgB/B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgBhC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAe7B,CAAC;AAEH,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCvC,CAAC"}
@@ -1,2 +1 @@
1
- import { a as LIST_SCHEDULE_TRIGGERS_ROUTE, c as RUN_SCHEDULE_ROUTE, i as LIST_SCHEDULES_ROUTE, l as UPDATE_SCHEDULE_ROUTE, n as DELETE_SCHEDULE_ROUTE, o as PAUSE_SCHEDULE_ROUTE, r as GET_SCHEDULE_ROUTE, s as RESUME_SCHEDULE_ROUTE, t as CREATE_SCHEDULE_ROUTE } from "../../schedules-BQYgaz66.js";
2
- export { CREATE_SCHEDULE_ROUTE, DELETE_SCHEDULE_ROUTE, GET_SCHEDULE_ROUTE, LIST_SCHEDULES_ROUTE, LIST_SCHEDULE_TRIGGERS_ROUTE, PAUSE_SCHEDULE_ROUTE, RESUME_SCHEDULE_ROUTE, RUN_SCHEDULE_ROUTE, UPDATE_SCHEDULE_ROUTE };
1
+ export { t as CREATE_SCHEDULE_ROUTE, n as DELETE_SCHEDULE_ROUTE, r as GET_SCHEDULE_ROUTE, i as LIST_SCHEDULES_ROUTE, a as LIST_SCHEDULE_TRIGGERS_ROUTE, o as PAUSE_SCHEDULE_ROUTE, s as RESUME_SCHEDULE_ROUTE, c as RUN_SCHEDULE_ROUTE, l as UPDATE_SCHEDULE_ROUTE } from "../../schedules-_3zPKyqm.js";
@@ -1,8 +1,8 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- require("../../rolldown-runtime-Bd6kNlEP.cjs");
2
+ require("../../rolldown-runtime-BwC_XMyb.cjs");
3
3
  const require_http_exception = require("../../http-exception-CKDHupKw.cjs");
4
- const require_route_builder = require("../../route-builder-BNZs643f.cjs");
5
- const require_utils = require("../../utils-DCgeTrq2.cjs");
4
+ const require_route_builder = require("../../route-builder-B2Qhhd7C.cjs");
5
+ const require_utils = require("../../utils-CF76qzZR.cjs");
6
6
  const require_server_handlers_error = require("./error.cjs");
7
7
  const require_server_handlers_version_helpers = require("./version-helpers.cjs");
8
8
  const require_scorer_versions = require("../../scorer-versions-DeCS12ym.cjs");
@@ -81,7 +81,8 @@ const CREATE_SCORER_VERSION_ROUTE = require_route_builder.createRoute({
81
81
  }
82
82
  const latestVersion = await scorerStore.getLatestVersion(scorerId);
83
83
  if (!scorer.activeVersionId && latestVersion) currentConfig = require_server_handlers_version_helpers.extractConfigFromVersion(latestVersion, SNAPSHOT_CONFIG_FIELDS);
84
- const changedFields = require_server_handlers_version_helpers.calculateChangedFields(latestVersion ? require_server_handlers_version_helpers.extractConfigFromVersion(latestVersion, SNAPSHOT_CONFIG_FIELDS) : null, currentConfig);
84
+ const previousConfig = latestVersion ? require_server_handlers_version_helpers.extractConfigFromVersion(latestVersion, SNAPSHOT_CONFIG_FIELDS) : null;
85
+ const changedFields = require_server_handlers_version_helpers.calculateChangedFields(previousConfig, currentConfig);
85
86
  const { versionId } = await require_server_handlers_version_helpers.createVersionWithRetry(scorerStore, scorerId, "scorerDefinitionId", currentConfig, changedFields, { changeMessage });
86
87
  const version = await scorerStore.getVersion(versionId);
87
88
  if (!version) throw new require_http_exception.HTTPException(500, { message: "Failed to retrieve created version" });
@@ -114,7 +115,8 @@ const GET_SCORER_VERSION_ROUTE = require_route_builder.createRoute({
114
115
  const version = await scorerStore.getVersion(versionId);
115
116
  if (!version) throw new require_http_exception.HTTPException(404, { message: `Version with id ${versionId} not found` });
116
117
  if (version.scorerDefinitionId !== scorerId) throw new require_http_exception.HTTPException(404, { message: `Version with id ${versionId} not found for scorer ${scorerId}` });
117
- require_utils.assertStoredResourceScope(await scorerStore.getById(scorerId), await require_utils.getStoredResourceScope(mastra, requestContext));
118
+ const scorer = await scorerStore.getById(scorerId);
119
+ require_utils.assertStoredResourceScope(scorer, await require_utils.getStoredResourceScope(mastra, requestContext));
118
120
  return version;
119
121
  } catch (error) {
120
122
  return require_server_handlers_error.handleError(error, "Error getting scorer version");
@@ -193,7 +195,9 @@ const RESTORE_SCORER_VERSION_ROUTE = require_route_builder.createRoute({
193
195
  ...restoredConfig
194
196
  });
195
197
  const latestVersion = await scorerStore.getLatestVersion(scorerId);
196
- const { versionId: newVersionId } = await require_server_handlers_version_helpers.createVersionWithRetry(scorerStore, scorerId, "scorerDefinitionId", restoredConfig, require_server_handlers_version_helpers.calculateChangedFields(latestVersion ? require_server_handlers_version_helpers.extractConfigFromVersion(latestVersion, SNAPSHOT_CONFIG_FIELDS) : null, restoredConfig), { changeMessage: `Restored from version ${versionToRestore.versionNumber}` });
198
+ const previousConfig = latestVersion ? require_server_handlers_version_helpers.extractConfigFromVersion(latestVersion, SNAPSHOT_CONFIG_FIELDS) : null;
199
+ const changedFields = require_server_handlers_version_helpers.calculateChangedFields(previousConfig, restoredConfig);
200
+ const { versionId: newVersionId } = await require_server_handlers_version_helpers.createVersionWithRetry(scorerStore, scorerId, "scorerDefinitionId", restoredConfig, changedFields, { changeMessage: `Restored from version ${versionToRestore.versionNumber}` });
197
201
  const newVersion = await scorerStore.getVersion(newVersionId);
198
202
  if (!newVersion) throw new require_http_exception.HTTPException(500, { message: "Failed to retrieve created version" });
199
203
  await require_server_handlers_version_helpers.enforceRetentionLimit(scorerStore, scorerId, "scorerDefinitionId", scorer.activeVersionId);
@@ -261,15 +265,18 @@ const COMPARE_SCORER_VERSIONS_ROUTE = require_route_builder.createRoute({
261
265
  if (!storage) throw new require_http_exception.HTTPException(500, { message: "Storage is not configured" });
262
266
  const scorerStore = await storage.getStore("scorerDefinitions");
263
267
  if (!scorerStore) throw new require_http_exception.HTTPException(500, { message: "Scorer definitions storage domain is not available" });
264
- require_utils.assertStoredResourceScope(await scorerStore.getById(scorerId), await require_utils.getStoredResourceScope(mastra, requestContext));
268
+ const scorer = await scorerStore.getById(scorerId);
269
+ require_utils.assertStoredResourceScope(scorer, await require_utils.getStoredResourceScope(mastra, requestContext));
265
270
  const fromVersion = await scorerStore.getVersion(from);
266
271
  if (!fromVersion) throw new require_http_exception.HTTPException(404, { message: `Version with id ${from} not found` });
267
272
  if (fromVersion.scorerDefinitionId !== scorerId) throw new require_http_exception.HTTPException(404, { message: `Version with id ${from} not found for scorer ${scorerId}` });
268
273
  const toVersion = await scorerStore.getVersion(to);
269
274
  if (!toVersion) throw new require_http_exception.HTTPException(404, { message: `Version with id ${to} not found` });
270
275
  if (toVersion.scorerDefinitionId !== scorerId) throw new require_http_exception.HTTPException(404, { message: `Version with id ${to} not found for scorer ${scorerId}` });
276
+ const fromConfig = require_server_handlers_version_helpers.extractConfigFromVersion(fromVersion, SNAPSHOT_CONFIG_FIELDS);
277
+ const toConfig = require_server_handlers_version_helpers.extractConfigFromVersion(toVersion, SNAPSHOT_CONFIG_FIELDS);
271
278
  return {
272
- diffs: require_server_handlers_version_helpers.computeVersionDiffs(require_server_handlers_version_helpers.extractConfigFromVersion(fromVersion, SNAPSHOT_CONFIG_FIELDS), require_server_handlers_version_helpers.extractConfigFromVersion(toVersion, SNAPSHOT_CONFIG_FIELDS)),
279
+ diffs: require_server_handlers_version_helpers.computeVersionDiffs(fromConfig, toConfig),
273
280
  fromVersion,
274
281
  toVersion
275
282
  };
@@ -1 +1 @@
1
- {"version":3,"file":"scorer-versions.cjs","names":["createRoute","scorerVersionPathParams","listScorerVersionsQuerySchema","listScorerVersionsResponseSchema","HTTPException","getStoredResourceScope","handleError","createScorerVersionBodySchema","createScorerVersionResponseSchema","extractConfigFromVersion","calculateChangedFields","createVersionWithRetry","enforceRetentionLimit","scorerVersionIdPathParams","getScorerVersionResponseSchema","activateScorerVersionResponseSchema","restoreScorerVersionResponseSchema","deleteScorerVersionResponseSchema","compareScorerVersionsQuerySchema","compareScorerVersionsResponseSchema","computeVersionDiffs"],"sources":["../../../src/server/handlers/scorer-versions.ts"],"sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n scorerVersionPathParams,\n scorerVersionIdPathParams,\n listScorerVersionsQuerySchema,\n createScorerVersionBodySchema,\n compareScorerVersionsQuerySchema,\n listScorerVersionsResponseSchema,\n getScorerVersionResponseSchema,\n createScorerVersionResponseSchema,\n activateScorerVersionResponseSchema,\n restoreScorerVersionResponseSchema,\n deleteScorerVersionResponseSchema,\n compareScorerVersionsResponseSchema,\n} from '../schemas/scorer-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope } from '../utils';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n/**\n * GET /stored/scorers/:scorerId/versions - List all versions for a scorer\n */\nexport const LIST_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: listScorerVersionsQuerySchema,\n responseSchema: listScorerVersionsResponseSchema,\n summary: 'List scorer versions',\n description: 'Returns a paginated list of all versions for a stored scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, page, perPage, orderBy, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const result = await scorerStore.listVersions({\n scorerDefinitionId: scorerId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing scorer versions');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions - Create a new version snapshot\n */\nexport const CREATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n bodySchema: createScorerVersionBodySchema,\n responseSchema: createScorerVersionResponseSchema,\n summary: 'Create scorer version',\n description: 'Creates a new version snapshot of the current scorer configuration',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, changeMessage, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n let currentConfig: Record<string, unknown> = {};\n if (scorer.activeVersionId) {\n const activeVersion = await scorerStore.getVersion(scorer.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n\n // If no activeVersionId, fall back to latest version config\n if (!scorer.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/:versionId - Get a specific version\n */\nexport const GET_SCORER_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: getScorerVersionResponseSchema,\n summary: 'Get scorer version',\n description: 'Returns a specific version of a scorer by its version ID',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const version = await scorerStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n const scorer = await scorerStore.getById(scorerId);\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: activateScorerVersionResponseSchema,\n summary: 'Activate scorer version',\n description: 'Sets a specific version as the active version for the scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n await scorerStore.update({\n id: scorerId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/restore - Restore scorer to a version\n */\nexport const RESTORE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: restoreScorerVersionResponseSchema,\n summary: 'Restore scorer version',\n description: 'Restores the scorer configuration from a version, creating a new version',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const versionToRestore = await scorerStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n await scorerStore.update({\n id: scorerId,\n ...restoredConfig,\n });\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await scorerStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring scorer version');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:scorerId/versions/:versionId - Delete a version\n */\nexport const DELETE_SCORER_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: deleteScorerVersionResponseSchema,\n summary: 'Delete scorer version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n if (scorer.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await scorerStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/compare - Compare two versions\n */\nexport const COMPARE_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: compareScorerVersionsQuerySchema,\n responseSchema: compareScorerVersionsResponseSchema,\n summary: 'Compare scorer versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, from, to, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n const scorer = await scorerStore.getById(scorerId);\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const fromVersion = await scorerStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for scorer ${scorerId}`,\n });\n }\n\n const toVersion = await scorerStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for scorer ${scorerId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing scorer versions');\n }\n },\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"scorer-versions.cjs","names":["createRoute","scorerVersionPathParams","listScorerVersionsQuerySchema","listScorerVersionsResponseSchema","HTTPException","getStoredResourceScope","handleError","createScorerVersionBodySchema","createScorerVersionResponseSchema","extractConfigFromVersion","calculateChangedFields","createVersionWithRetry","enforceRetentionLimit","scorerVersionIdPathParams","getScorerVersionResponseSchema","activateScorerVersionResponseSchema","restoreScorerVersionResponseSchema","deleteScorerVersionResponseSchema","compareScorerVersionsQuerySchema","compareScorerVersionsResponseSchema","computeVersionDiffs"],"sources":["../../../src/server/handlers/scorer-versions.ts"],"sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n scorerVersionPathParams,\n scorerVersionIdPathParams,\n listScorerVersionsQuerySchema,\n createScorerVersionBodySchema,\n compareScorerVersionsQuerySchema,\n listScorerVersionsResponseSchema,\n getScorerVersionResponseSchema,\n createScorerVersionResponseSchema,\n activateScorerVersionResponseSchema,\n restoreScorerVersionResponseSchema,\n deleteScorerVersionResponseSchema,\n compareScorerVersionsResponseSchema,\n} from '../schemas/scorer-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope } from '../utils';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n/**\n * GET /stored/scorers/:scorerId/versions - List all versions for a scorer\n */\nexport const LIST_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: listScorerVersionsQuerySchema,\n responseSchema: listScorerVersionsResponseSchema,\n summary: 'List scorer versions',\n description: 'Returns a paginated list of all versions for a stored scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, page, perPage, orderBy, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const result = await scorerStore.listVersions({\n scorerDefinitionId: scorerId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing scorer versions');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions - Create a new version snapshot\n */\nexport const CREATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n bodySchema: createScorerVersionBodySchema,\n responseSchema: createScorerVersionResponseSchema,\n summary: 'Create scorer version',\n description: 'Creates a new version snapshot of the current scorer configuration',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, changeMessage, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n let currentConfig: Record<string, unknown> = {};\n if (scorer.activeVersionId) {\n const activeVersion = await scorerStore.getVersion(scorer.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n\n // If no activeVersionId, fall back to latest version config\n if (!scorer.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/:versionId - Get a specific version\n */\nexport const GET_SCORER_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: getScorerVersionResponseSchema,\n summary: 'Get scorer version',\n description: 'Returns a specific version of a scorer by its version ID',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const version = await scorerStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n const scorer = await scorerStore.getById(scorerId);\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: activateScorerVersionResponseSchema,\n summary: 'Activate scorer version',\n description: 'Sets a specific version as the active version for the scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n await scorerStore.update({\n id: scorerId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/restore - Restore scorer to a version\n */\nexport const RESTORE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: restoreScorerVersionResponseSchema,\n summary: 'Restore scorer version',\n description: 'Restores the scorer configuration from a version, creating a new version',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const versionToRestore = await scorerStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n await scorerStore.update({\n id: scorerId,\n ...restoredConfig,\n });\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await scorerStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring scorer version');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:scorerId/versions/:versionId - Delete a version\n */\nexport const DELETE_SCORER_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: deleteScorerVersionResponseSchema,\n summary: 'Delete scorer version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n if (scorer.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await scorerStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/compare - Compare two versions\n */\nexport const COMPARE_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: compareScorerVersionsQuerySchema,\n responseSchema: compareScorerVersionsResponseSchema,\n summary: 'Compare scorer versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, from, to, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n const scorer = await scorerStore.getById(scorerId);\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const fromVersion = await scorerStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for scorer ${scorerId}`,\n });\n }\n\n const toVersion = await scorerStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for scorer ${scorerId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing scorer versions');\n }\n },\n});\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { t as HTTPException } from "../../http-exception-CyfxZB6W.js";
2
- import { n as createRoute } from "../../route-builder-BfQYtclb.js";
3
- import { i as getStoredResourceScope, n as assertStoredResourceScope } from "../../utils-DCAUeb6M.js";
2
+ import { n as createRoute } from "../../route-builder-CjkWxv4E.js";
3
+ import { i as getStoredResourceScope, n as assertStoredResourceScope } from "../../utils-aoLN3Wfi.js";
4
4
  import { handleError } from "./error.js";
5
5
  import { calculateChangedFields, computeVersionDiffs, createVersionWithRetry, enforceRetentionLimit, extractConfigFromVersion } from "./version-helpers.js";
6
6
  import { a as createScorerVersionResponseSchema, c as listScorerVersionsQuerySchema, d as scorerVersionIdPathParams, f as scorerVersionPathParams, i as createScorerVersionBodySchema, l as listScorerVersionsResponseSchema, n as compareScorerVersionsQuerySchema, o as deleteScorerVersionResponseSchema, r as compareScorerVersionsResponseSchema, s as getScorerVersionResponseSchema, t as activateScorerVersionResponseSchema, u as restoreScorerVersionResponseSchema } from "../../scorer-versions-CX8RM9a6.js";
@@ -79,7 +79,8 @@ const CREATE_SCORER_VERSION_ROUTE = createRoute({
79
79
  }
80
80
  const latestVersion = await scorerStore.getLatestVersion(scorerId);
81
81
  if (!scorer.activeVersionId && latestVersion) currentConfig = extractConfigFromVersion(latestVersion, SNAPSHOT_CONFIG_FIELDS);
82
- const changedFields = calculateChangedFields(latestVersion ? extractConfigFromVersion(latestVersion, SNAPSHOT_CONFIG_FIELDS) : null, currentConfig);
82
+ const previousConfig = latestVersion ? extractConfigFromVersion(latestVersion, SNAPSHOT_CONFIG_FIELDS) : null;
83
+ const changedFields = calculateChangedFields(previousConfig, currentConfig);
83
84
  const { versionId } = await createVersionWithRetry(scorerStore, scorerId, "scorerDefinitionId", currentConfig, changedFields, { changeMessage });
84
85
  const version = await scorerStore.getVersion(versionId);
85
86
  if (!version) throw new HTTPException(500, { message: "Failed to retrieve created version" });
@@ -112,7 +113,8 @@ const GET_SCORER_VERSION_ROUTE = createRoute({
112
113
  const version = await scorerStore.getVersion(versionId);
113
114
  if (!version) throw new HTTPException(404, { message: `Version with id ${versionId} not found` });
114
115
  if (version.scorerDefinitionId !== scorerId) throw new HTTPException(404, { message: `Version with id ${versionId} not found for scorer ${scorerId}` });
115
- assertStoredResourceScope(await scorerStore.getById(scorerId), await getStoredResourceScope(mastra, requestContext));
116
+ const scorer = await scorerStore.getById(scorerId);
117
+ assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));
116
118
  return version;
117
119
  } catch (error) {
118
120
  return handleError(error, "Error getting scorer version");
@@ -191,7 +193,9 @@ const RESTORE_SCORER_VERSION_ROUTE = createRoute({
191
193
  ...restoredConfig
192
194
  });
193
195
  const latestVersion = await scorerStore.getLatestVersion(scorerId);
194
- const { versionId: newVersionId } = await createVersionWithRetry(scorerStore, scorerId, "scorerDefinitionId", restoredConfig, calculateChangedFields(latestVersion ? extractConfigFromVersion(latestVersion, SNAPSHOT_CONFIG_FIELDS) : null, restoredConfig), { changeMessage: `Restored from version ${versionToRestore.versionNumber}` });
196
+ const previousConfig = latestVersion ? extractConfigFromVersion(latestVersion, SNAPSHOT_CONFIG_FIELDS) : null;
197
+ const changedFields = calculateChangedFields(previousConfig, restoredConfig);
198
+ const { versionId: newVersionId } = await createVersionWithRetry(scorerStore, scorerId, "scorerDefinitionId", restoredConfig, changedFields, { changeMessage: `Restored from version ${versionToRestore.versionNumber}` });
195
199
  const newVersion = await scorerStore.getVersion(newVersionId);
196
200
  if (!newVersion) throw new HTTPException(500, { message: "Failed to retrieve created version" });
197
201
  await enforceRetentionLimit(scorerStore, scorerId, "scorerDefinitionId", scorer.activeVersionId);
@@ -259,15 +263,18 @@ const COMPARE_SCORER_VERSIONS_ROUTE = createRoute({
259
263
  if (!storage) throw new HTTPException(500, { message: "Storage is not configured" });
260
264
  const scorerStore = await storage.getStore("scorerDefinitions");
261
265
  if (!scorerStore) throw new HTTPException(500, { message: "Scorer definitions storage domain is not available" });
262
- assertStoredResourceScope(await scorerStore.getById(scorerId), await getStoredResourceScope(mastra, requestContext));
266
+ const scorer = await scorerStore.getById(scorerId);
267
+ assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));
263
268
  const fromVersion = await scorerStore.getVersion(from);
264
269
  if (!fromVersion) throw new HTTPException(404, { message: `Version with id ${from} not found` });
265
270
  if (fromVersion.scorerDefinitionId !== scorerId) throw new HTTPException(404, { message: `Version with id ${from} not found for scorer ${scorerId}` });
266
271
  const toVersion = await scorerStore.getVersion(to);
267
272
  if (!toVersion) throw new HTTPException(404, { message: `Version with id ${to} not found` });
268
273
  if (toVersion.scorerDefinitionId !== scorerId) throw new HTTPException(404, { message: `Version with id ${to} not found for scorer ${scorerId}` });
274
+ const fromConfig = extractConfigFromVersion(fromVersion, SNAPSHOT_CONFIG_FIELDS);
275
+ const toConfig = extractConfigFromVersion(toVersion, SNAPSHOT_CONFIG_FIELDS);
269
276
  return {
270
- diffs: computeVersionDiffs(extractConfigFromVersion(fromVersion, SNAPSHOT_CONFIG_FIELDS), extractConfigFromVersion(toVersion, SNAPSHOT_CONFIG_FIELDS)),
277
+ diffs: computeVersionDiffs(fromConfig, toConfig),
271
278
  fromVersion,
272
279
  toVersion
273
280
  };
@@ -1 +1 @@
1
- {"version":3,"file":"scorer-versions.js","names":[],"sources":["../../../src/server/handlers/scorer-versions.ts"],"sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n scorerVersionPathParams,\n scorerVersionIdPathParams,\n listScorerVersionsQuerySchema,\n createScorerVersionBodySchema,\n compareScorerVersionsQuerySchema,\n listScorerVersionsResponseSchema,\n getScorerVersionResponseSchema,\n createScorerVersionResponseSchema,\n activateScorerVersionResponseSchema,\n restoreScorerVersionResponseSchema,\n deleteScorerVersionResponseSchema,\n compareScorerVersionsResponseSchema,\n} from '../schemas/scorer-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope } from '../utils';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n/**\n * GET /stored/scorers/:scorerId/versions - List all versions for a scorer\n */\nexport const LIST_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: listScorerVersionsQuerySchema,\n responseSchema: listScorerVersionsResponseSchema,\n summary: 'List scorer versions',\n description: 'Returns a paginated list of all versions for a stored scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, page, perPage, orderBy, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const result = await scorerStore.listVersions({\n scorerDefinitionId: scorerId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing scorer versions');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions - Create a new version snapshot\n */\nexport const CREATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n bodySchema: createScorerVersionBodySchema,\n responseSchema: createScorerVersionResponseSchema,\n summary: 'Create scorer version',\n description: 'Creates a new version snapshot of the current scorer configuration',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, changeMessage, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n let currentConfig: Record<string, unknown> = {};\n if (scorer.activeVersionId) {\n const activeVersion = await scorerStore.getVersion(scorer.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n\n // If no activeVersionId, fall back to latest version config\n if (!scorer.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/:versionId - Get a specific version\n */\nexport const GET_SCORER_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: getScorerVersionResponseSchema,\n summary: 'Get scorer version',\n description: 'Returns a specific version of a scorer by its version ID',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const version = await scorerStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n const scorer = await scorerStore.getById(scorerId);\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: activateScorerVersionResponseSchema,\n summary: 'Activate scorer version',\n description: 'Sets a specific version as the active version for the scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n await scorerStore.update({\n id: scorerId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/restore - Restore scorer to a version\n */\nexport const RESTORE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: restoreScorerVersionResponseSchema,\n summary: 'Restore scorer version',\n description: 'Restores the scorer configuration from a version, creating a new version',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const versionToRestore = await scorerStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n await scorerStore.update({\n id: scorerId,\n ...restoredConfig,\n });\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await scorerStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring scorer version');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:scorerId/versions/:versionId - Delete a version\n */\nexport const DELETE_SCORER_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: deleteScorerVersionResponseSchema,\n summary: 'Delete scorer version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n if (scorer.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await scorerStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/compare - Compare two versions\n */\nexport const COMPARE_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: compareScorerVersionsQuerySchema,\n responseSchema: compareScorerVersionsResponseSchema,\n summary: 'Compare scorer versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, from, to, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n const scorer = await scorerStore.getById(scorerId);\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const fromVersion = await scorerStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for scorer ${scorerId}`,\n });\n }\n\n const toVersion = await scorerStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for scorer ${scorerId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing scorer versions');\n }\n },\n});\n"],"mappings":";;;;;;;AA4BA,MAAM,yBAAyB;CAC7B;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACF;;;;AAKA,MAAa,6BAA6B,YAAY;CACpD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,cAAc;CACd,iBAAiB;CACjB,kBAAkB;CAClB,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,iBAAiB;CACxB,SAAS,OAAO,EAAE,QAAQ,UAAU,MAAM,SAAS,SAAS,qBAAqB;EAC/E,IAAI;GACF,MAAM,UAAU,OAAO,WAAW;GAElC,IAAI,CAAC,SACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,4BAA4B,CAAC;GAGvE,MAAM,cAAc,MAAM,QAAQ,SAAS,mBAAmB;GAC9D,IAAI,CAAC,aACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,qDAAqD,CAAC;GAGhG,MAAM,SAAS,MAAM,YAAY,QAAQ,QAAQ;GACjD,IAAI,CAAC,QACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,kBAAkB,SAAS,YAAY,CAAC;GAElF,0BAA0B,QAAQ,MAAM,uBAAuB,QAAQ,cAAc,CAAC;GAStF,OAAO,MAPc,YAAY,aAAa;IAC5C,oBAAoB;IACpB;IACA;IACA;GACF,CAAC;EAGH,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,+BAA+B;EAC3D;CACF;AACF,CAAC;;;;AAKD,MAAa,8BAA8B,YAAY;CACrD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,cAAc;CACd,iBAAiB;CACjB,YAAY;CACZ,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,iBAAiB;CACxB,SAAS,OAAO,EAAE,QAAQ,UAAU,eAAe,qBAAqB;EACtE,IAAI;GACF,MAAM,UAAU,OAAO,WAAW;GAElC,IAAI,CAAC,SACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,4BAA4B,CAAC;GAGvE,MAAM,cAAc,MAAM,QAAQ,SAAS,mBAAmB;GAC9D,IAAI,CAAC,aACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,qDAAqD,CAAC;GAGhG,MAAM,SAAS,MAAM,YAAY,QAAQ,QAAQ;GACjD,IAAI,CAAC,QACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,kBAAkB,SAAS,YAAY,CAAC;GAElF,0BAA0B,QAAQ,MAAM,uBAAuB,QAAQ,cAAc,CAAC;GAEtF,IAAI,gBAAyC,CAAC;GAC9C,IAAI,OAAO,iBAAiB;IAC1B,MAAM,gBAAgB,MAAM,YAAY,WAAW,OAAO,eAAe;IACzE,IAAI,eACF,gBAAgB,yBACd,eACA,sBACF;GAEJ;GAEA,MAAM,gBAAgB,MAAM,YAAY,iBAAiB,QAAQ;GAGjE,IAAI,CAAC,OAAO,mBAAmB,eAC7B,gBAAgB,yBACd,eACA,sBACF;GAMF,MAAM,gBAAgB,uBAJC,gBACnB,yBAAyB,eAAqD,sBAAsB,IACpG,MAEyD,aAAa;GAE1E,MAAM,EAAE,cAAc,MAAM,uBAC1B,aACA,UACA,sBACA,eACA,eACA,EAAE,cAAc,CAClB;GAEA,MAAM,UAAU,MAAM,YAAY,WAAW,SAAS;GACtD,IAAI,CAAC,SACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,qCAAqC,CAAC;GAGhF,MAAM,sBACJ,aACA,UACA,sBACA,OAAO,eACT;GAEA,OAAO;EACT,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,+BAA+B;EAC3D;CACF;AACF,CAAC;;;;AAKD,MAAa,2BAA2B,YAAY;CAClD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,cAAc;CACd,iBAAiB;CACjB,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,iBAAiB;CACxB,SAAS,OAAO,EAAE,QAAQ,UAAU,WAAW,qBAAqB;EAClE,IAAI;GACF,MAAM,UAAU,OAAO,WAAW;GAElC,IAAI,CAAC,SACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,4BAA4B,CAAC;GAGvE,MAAM,cAAc,MAAM,QAAQ,SAAS,mBAAmB;GAC9D,IAAI,CAAC,aACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,qDAAqD,CAAC;GAGhG,MAAM,UAAU,MAAM,YAAY,WAAW,SAAS;GAEtD,IAAI,CAAC,SACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,mBAAmB,UAAU,YAAY,CAAC;GAGpF,IAAI,QAAQ,uBAAuB,UACjC,MAAM,IAAI,cAAc,KAAK,EAC3B,SAAS,mBAAmB,UAAU,wBAAwB,WAChE,CAAC;GAGH,0BAA0B,MADL,YAAY,QAAQ,QAAQ,GACf,MAAM,uBAAuB,QAAQ,cAAc,CAAC;GAEtF,OAAO;EACT,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,8BAA8B;EAC1D;CACF;AACF,CAAC;;;;AAKD,MAAa,gCAAgC,YAAY;CACvD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,cAAc;CACd,iBAAiB;CACjB,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,iBAAiB;CACxB,SAAS,OAAO,EAAE,QAAQ,UAAU,WAAW,qBAAqB;EAClE,IAAI;GACF,MAAM,UAAU,OAAO,WAAW;GAElC,IAAI,CAAC,SACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,4BAA4B,CAAC;GAGvE,MAAM,cAAc,MAAM,QAAQ,SAAS,mBAAmB;GAC9D,IAAI,CAAC,aACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,qDAAqD,CAAC;GAGhG,MAAM,SAAS,MAAM,YAAY,QAAQ,QAAQ;GACjD,IAAI,CAAC,QACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,kBAAkB,SAAS,YAAY,CAAC;GAElF,0BAA0B,QAAQ,MAAM,uBAAuB,QAAQ,cAAc,CAAC;GAEtF,MAAM,UAAU,MAAM,YAAY,WAAW,SAAS;GACtD,IAAI,CAAC,SACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,mBAAmB,UAAU,YAAY,CAAC;GAEpF,IAAI,QAAQ,uBAAuB,UACjC,MAAM,IAAI,cAAc,KAAK,EAC3B,SAAS,mBAAmB,UAAU,wBAAwB,WAChE,CAAC;GAGH,MAAM,YAAY,OAAO;IACvB,IAAI;IACJ,iBAAiB;IACjB,QAAQ;GACV,CAAC;GAGD,OAAO,UAAU,CAAC,EAAE,OAAO,WAAW,QAAQ;GAE9C,OAAO;IACL,SAAS;IACT,SAAS,WAAW,QAAQ,cAAc;IAC1C,iBAAiB;GACnB;EACF,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,iCAAiC;EAC7D;CACF;AACF,CAAC;;;;AAKD,MAAa,+BAA+B,YAAY;CACtD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,cAAc;CACd,iBAAiB;CACjB,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,iBAAiB;CACxB,SAAS,OAAO,EAAE,QAAQ,UAAU,WAAW,qBAAqB;EAClE,IAAI;GACF,MAAM,UAAU,OAAO,WAAW;GAElC,IAAI,CAAC,SACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,4BAA4B,CAAC;GAGvE,MAAM,cAAc,MAAM,QAAQ,SAAS,mBAAmB;GAC9D,IAAI,CAAC,aACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,qDAAqD,CAAC;GAGhG,MAAM,SAAS,MAAM,YAAY,QAAQ,QAAQ;GACjD,IAAI,CAAC,QACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,kBAAkB,SAAS,YAAY,CAAC;GAElF,0BAA0B,QAAQ,MAAM,uBAAuB,QAAQ,cAAc,CAAC;GAEtF,MAAM,mBAAmB,MAAM,YAAY,WAAW,SAAS;GAC/D,IAAI,CAAC,kBACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,mBAAmB,UAAU,YAAY,CAAC;GAEpF,IAAI,iBAAiB,uBAAuB,UAC1C,MAAM,IAAI,cAAc,KAAK,EAC3B,SAAS,mBAAmB,UAAU,wBAAwB,WAChE,CAAC;GAGH,MAAM,iBAAiB,yBACrB,kBACA,sBACF;GAEA,MAAM,YAAY,OAAO;IACvB,IAAI;IACJ,GAAG;GACL,CAAC;GAED,MAAM,gBAAgB,MAAM,YAAY,iBAAiB,QAAQ;GAOjE,MAAM,EAAE,WAAW,iBAAiB,MAAM,uBACxC,aACA,UACA,sBACA,gBANoB,uBAJC,gBACnB,yBAAyB,eAAqD,sBAAsB,IACpG,MAEyD,cAO/C,GACZ,EACE,eAAe,yBAAyB,iBAAiB,gBAC3D,CACF;GAEA,MAAM,aAAa,MAAM,YAAY,WAAW,YAAY;GAC5D,IAAI,CAAC,YACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,qCAAqC,CAAC;GAGhF,MAAM,sBACJ,aACA,UACA,sBACA,OAAO,eACT;GAGA,OAAO,UAAU,CAAC,EAAE,OAAO,WAAW,QAAQ;GAE9C,OAAO;EACT,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,gCAAgC;EAC5D;CACF;AACF,CAAC;;;;AAKD,MAAa,8BAA8B,YAAY;CACrD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,cAAc;CACd,iBAAiB;CACjB,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,iBAAiB;CACxB,SAAS,OAAO,EAAE,QAAQ,UAAU,WAAW,qBAAqB;EAClE,IAAI;GACF,MAAM,UAAU,OAAO,WAAW;GAElC,IAAI,CAAC,SACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,4BAA4B,CAAC;GAGvE,MAAM,cAAc,MAAM,QAAQ,SAAS,mBAAmB;GAC9D,IAAI,CAAC,aACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,qDAAqD,CAAC;GAGhG,MAAM,SAAS,MAAM,YAAY,QAAQ,QAAQ;GACjD,IAAI,CAAC,QACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,kBAAkB,SAAS,YAAY,CAAC;GAElF,0BAA0B,QAAQ,MAAM,uBAAuB,QAAQ,cAAc,CAAC;GAEtF,MAAM,UAAU,MAAM,YAAY,WAAW,SAAS;GACtD,IAAI,CAAC,SACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,mBAAmB,UAAU,YAAY,CAAC;GAEpF,IAAI,QAAQ,uBAAuB,UACjC,MAAM,IAAI,cAAc,KAAK,EAC3B,SAAS,mBAAmB,UAAU,wBAAwB,WAChE,CAAC;GAGH,IAAI,OAAO,oBAAoB,WAC7B,MAAM,IAAI,cAAc,KAAK,EAC3B,SAAS,wEACX,CAAC;GAGH,MAAM,YAAY,cAAc,SAAS;GAGzC,OAAO,UAAU,CAAC,EAAE,OAAO,WAAW,QAAQ;GAE9C,OAAO;IACL,SAAS;IACT,SAAS,WAAW,QAAQ,cAAc;GAC5C;EACF,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,+BAA+B;EAC3D;CACF;AACF,CAAC;;;;AAKD,MAAa,gCAAgC,YAAY;CACvD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,cAAc;CACd,iBAAiB;CACjB,kBAAkB;CAClB,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,iBAAiB;CACxB,SAAS,OAAO,EAAE,QAAQ,UAAU,MAAM,IAAI,qBAAqB;EACjE,IAAI;GACF,MAAM,UAAU,OAAO,WAAW;GAElC,IAAI,CAAC,SACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,4BAA4B,CAAC;GAGvE,MAAM,cAAc,MAAM,QAAQ,SAAS,mBAAmB;GAC9D,IAAI,CAAC,aACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,qDAAqD,CAAC;GAGhG,0BAA0B,MADL,YAAY,QAAQ,QAAQ,GACf,MAAM,uBAAuB,QAAQ,cAAc,CAAC;GAEtF,MAAM,cAAc,MAAM,YAAY,WAAW,IAAI;GACrD,IAAI,CAAC,aACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,mBAAmB,KAAK,YAAY,CAAC;GAE/E,IAAI,YAAY,uBAAuB,UACrC,MAAM,IAAI,cAAc,KAAK,EAC3B,SAAS,mBAAmB,KAAK,wBAAwB,WAC3D,CAAC;GAGH,MAAM,YAAY,MAAM,YAAY,WAAW,EAAE;GACjD,IAAI,CAAC,WACH,MAAM,IAAI,cAAc,KAAK,EAAE,SAAS,mBAAmB,GAAG,YAAY,CAAC;GAE7E,IAAI,UAAU,uBAAuB,UACnC,MAAM,IAAI,cAAc,KAAK,EAC3B,SAAS,mBAAmB,GAAG,wBAAwB,WACzD,CAAC;GAcH,OAAO;IACL,OAHY,oBATK,yBACjB,aACA,sBAOyC,GAL1B,yBACf,WACA,sBAGmD,CAG/C;IACJ;IACA;GACF;EACF,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,iCAAiC;EAC7D;CACF;AACF,CAAC"}
1
+ {"version":3,"file":"scorer-versions.js","names":[],"sources":["../../../src/server/handlers/scorer-versions.ts"],"sourcesContent":["import { HTTPException } from '../http-exception';\nimport {\n scorerVersionPathParams,\n scorerVersionIdPathParams,\n listScorerVersionsQuerySchema,\n createScorerVersionBodySchema,\n compareScorerVersionsQuerySchema,\n listScorerVersionsResponseSchema,\n getScorerVersionResponseSchema,\n createScorerVersionResponseSchema,\n activateScorerVersionResponseSchema,\n restoreScorerVersionResponseSchema,\n deleteScorerVersionResponseSchema,\n compareScorerVersionsResponseSchema,\n} from '../schemas/scorer-versions';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { assertStoredResourceScope, getStoredResourceScope } from '../utils';\n\nimport { handleError } from './error';\nimport {\n extractConfigFromVersion,\n calculateChangedFields,\n computeVersionDiffs,\n createVersionWithRetry,\n enforceRetentionLimit,\n} from './version-helpers';\nimport type { VersionedStoreInterface } from './version-helpers';\n\nconst SNAPSHOT_CONFIG_FIELDS = [\n 'name',\n 'description',\n 'type',\n 'model',\n 'instructions',\n 'scoreRange',\n 'presetConfig',\n 'defaultSampling',\n] as const;\n\n/**\n * GET /stored/scorers/:scorerId/versions - List all versions for a scorer\n */\nexport const LIST_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: listScorerVersionsQuerySchema,\n responseSchema: listScorerVersionsResponseSchema,\n summary: 'List scorer versions',\n description: 'Returns a paginated list of all versions for a stored scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, page, perPage, orderBy, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const result = await scorerStore.listVersions({\n scorerDefinitionId: scorerId,\n page,\n perPage,\n orderBy,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error listing scorer versions');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions - Create a new version snapshot\n */\nexport const CREATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n bodySchema: createScorerVersionBodySchema,\n responseSchema: createScorerVersionResponseSchema,\n summary: 'Create scorer version',\n description: 'Creates a new version snapshot of the current scorer configuration',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, changeMessage, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n let currentConfig: Record<string, unknown> = {};\n if (scorer.activeVersionId) {\n const activeVersion = await scorerStore.getVersion(scorer.activeVersionId);\n if (activeVersion) {\n currentConfig = extractConfigFromVersion(\n activeVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n }\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n\n // If no activeVersionId, fall back to latest version config\n if (!scorer.activeVersionId && latestVersion) {\n currentConfig = extractConfigFromVersion(\n latestVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n }\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, currentConfig);\n\n const { versionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n currentConfig,\n changedFields,\n { changeMessage },\n );\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n return version;\n } catch (error) {\n return handleError(error, 'Error creating scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/:versionId - Get a specific version\n */\nexport const GET_SCORER_VERSION_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: getScorerVersionResponseSchema,\n summary: 'Get scorer version',\n description: 'Returns a specific version of a scorer by its version ID',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const version = await scorerStore.getVersion(versionId);\n\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n const scorer = await scorerStore.getById(scorerId);\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n return version;\n } catch (error) {\n return handleError(error, 'Error getting scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/activate - Set a version as active\n */\nexport const ACTIVATE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/activate',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: activateScorerVersionResponseSchema,\n summary: 'Activate scorer version',\n description: 'Sets a specific version as the active version for the scorer',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n await scorerStore.update({\n id: scorerId,\n activeVersionId: versionId,\n status: 'published',\n });\n\n // Clear the editor cache so subsequent requests see the new active version\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} is now active`,\n activeVersionId: versionId,\n };\n } catch (error) {\n return handleError(error, 'Error activating scorer version');\n }\n },\n});\n\n/**\n * POST /stored/scorers/:scorerId/versions/:versionId/restore - Restore scorer to a version\n */\nexport const RESTORE_SCORER_VERSION_ROUTE = createRoute({\n method: 'POST',\n path: '/stored/scorers/:scorerId/versions/:versionId/restore',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: restoreScorerVersionResponseSchema,\n summary: 'Restore scorer version',\n description: 'Restores the scorer configuration from a version, creating a new version',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const versionToRestore = await scorerStore.getVersion(versionId);\n if (!versionToRestore) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (versionToRestore.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n const restoredConfig = extractConfigFromVersion(\n versionToRestore as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n await scorerStore.update({\n id: scorerId,\n ...restoredConfig,\n });\n\n const latestVersion = await scorerStore.getLatestVersion(scorerId);\n const previousConfig = latestVersion\n ? extractConfigFromVersion(latestVersion as unknown as Record<string, unknown>, SNAPSHOT_CONFIG_FIELDS)\n : null;\n\n const changedFields = calculateChangedFields(previousConfig, restoredConfig);\n\n const { versionId: newVersionId } = await createVersionWithRetry(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n restoredConfig,\n changedFields,\n {\n changeMessage: `Restored from version ${versionToRestore.versionNumber}`,\n },\n );\n\n const newVersion = await scorerStore.getVersion(newVersionId);\n if (!newVersion) {\n throw new HTTPException(500, { message: 'Failed to retrieve created version' });\n }\n\n await enforceRetentionLimit(\n scorerStore as unknown as VersionedStoreInterface,\n scorerId,\n 'scorerDefinitionId',\n scorer.activeVersionId,\n );\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return newVersion;\n } catch (error) {\n return handleError(error, 'Error restoring scorer version');\n }\n },\n});\n\n/**\n * DELETE /stored/scorers/:scorerId/versions/:versionId - Delete a version\n */\nexport const DELETE_SCORER_VERSION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/stored/scorers/:scorerId/versions/:versionId',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionIdPathParams,\n responseSchema: deleteScorerVersionResponseSchema,\n summary: 'Delete scorer version',\n description: 'Deletes a specific version (cannot delete the active version)',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, versionId, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n\n const scorer = await scorerStore.getById(scorerId);\n if (!scorer) {\n throw new HTTPException(404, { message: `Scorer with id ${scorerId} not found` });\n }\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const version = await scorerStore.getVersion(versionId);\n if (!version) {\n throw new HTTPException(404, { message: `Version with id ${versionId} not found` });\n }\n if (version.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${versionId} not found for scorer ${scorerId}`,\n });\n }\n\n if (scorer.activeVersionId === versionId) {\n throw new HTTPException(400, {\n message: 'Cannot delete the active version. Activate a different version first.',\n });\n }\n\n await scorerStore.deleteVersion(versionId);\n\n // Clear the editor cache so subsequent requests see the updated config\n mastra.getEditor()?.scorer.clearCache(scorerId);\n\n return {\n success: true,\n message: `Version ${version.versionNumber} deleted successfully`,\n };\n } catch (error) {\n return handleError(error, 'Error deleting scorer version');\n }\n },\n});\n\n/**\n * GET /stored/scorers/:scorerId/versions/compare - Compare two versions\n */\nexport const COMPARE_SCORER_VERSIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/stored/scorers/:scorerId/versions/compare',\n requiresAuth: true,\n responseType: 'json',\n pathParamSchema: scorerVersionPathParams,\n queryParamSchema: compareScorerVersionsQuerySchema,\n responseSchema: compareScorerVersionsResponseSchema,\n summary: 'Compare scorer versions',\n description: 'Compares two versions and returns the differences between them',\n tags: ['Scorer Versions'],\n handler: async ({ mastra, scorerId, from, to, requestContext }) => {\n try {\n const storage = mastra.getStorage();\n\n if (!storage) {\n throw new HTTPException(500, { message: 'Storage is not configured' });\n }\n\n const scorerStore = await storage.getStore('scorerDefinitions');\n if (!scorerStore) {\n throw new HTTPException(500, { message: 'Scorer definitions storage domain is not available' });\n }\n const scorer = await scorerStore.getById(scorerId);\n assertStoredResourceScope(scorer, await getStoredResourceScope(mastra, requestContext));\n\n const fromVersion = await scorerStore.getVersion(from);\n if (!fromVersion) {\n throw new HTTPException(404, { message: `Version with id ${from} not found` });\n }\n if (fromVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${from} not found for scorer ${scorerId}`,\n });\n }\n\n const toVersion = await scorerStore.getVersion(to);\n if (!toVersion) {\n throw new HTTPException(404, { message: `Version with id ${to} not found` });\n }\n if (toVersion.scorerDefinitionId !== scorerId) {\n throw new HTTPException(404, {\n message: `Version with id ${to} not found for scorer ${scorerId}`,\n });\n }\n\n const fromConfig = extractConfigFromVersion(\n fromVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n const toConfig = extractConfigFromVersion(\n toVersion as unknown as Record<string, unknown>,\n SNAPSHOT_CONFIG_FIELDS,\n );\n\n const diffs = computeVersionDiffs(fromConfig, toConfig);\n\n return {\n diffs,\n fromVersion,\n toVersion,\n };\n } catch (error) {\n return handleError(error, 'Error comparing scorer versions');\n }\n },\n});\n"],"mappings":"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"}