@mastra/server 1.42.0-alpha.3 → 1.42.0-alpha.4

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 (300) hide show
  1. package/CHANGELOG.md +55 -0
  2. package/dist/_types/@internal_voice/dist/routes/index.d.ts +2 -2
  3. package/dist/{api-schema-manifest-PM5DJ67P.js → api-schema-manifest-ASCOTXDG.js} +3 -3
  4. package/dist/{api-schema-manifest-PM5DJ67P.js.map → api-schema-manifest-ASCOTXDG.js.map} +1 -1
  5. package/dist/{api-schema-manifest-HYO7FJWX.cjs → api-schema-manifest-CASCZ5JA.cjs} +4 -4
  6. package/dist/{api-schema-manifest-HYO7FJWX.cjs.map → api-schema-manifest-CASCZ5JA.cjs.map} +1 -1
  7. package/dist/{chunk-ZN3JHWNH.js → chunk-27SJFO6E.js} +3 -3
  8. package/dist/{chunk-ZN3JHWNH.js.map → chunk-27SJFO6E.js.map} +1 -1
  9. package/dist/{chunk-UW2M6ACA.cjs → chunk-2AYEJULC.cjs} +34 -34
  10. package/dist/{chunk-UW2M6ACA.cjs.map → chunk-2AYEJULC.cjs.map} +1 -1
  11. package/dist/{chunk-3XKDVCIP.js → chunk-2QXTSL5D.js} +3 -3
  12. package/dist/{chunk-3XKDVCIP.js.map → chunk-2QXTSL5D.js.map} +1 -1
  13. package/dist/{chunk-F3SWX6WJ.cjs → chunk-2YB3SJBB.cjs} +12 -12
  14. package/dist/{chunk-F3SWX6WJ.cjs.map → chunk-2YB3SJBB.cjs.map} +1 -1
  15. package/dist/{chunk-HZB2CRC6.cjs → chunk-3ATUI6XD.cjs} +4 -4
  16. package/dist/{chunk-HZB2CRC6.cjs.map → chunk-3ATUI6XD.cjs.map} +1 -1
  17. package/dist/{chunk-BWNJBSXL.js → chunk-3ENQND57.js} +3 -3
  18. package/dist/{chunk-BWNJBSXL.js.map → chunk-3ENQND57.js.map} +1 -1
  19. package/dist/{chunk-P4IMQYF3.cjs → chunk-47PVLKIL.cjs} +8 -5
  20. package/dist/chunk-47PVLKIL.cjs.map +1 -0
  21. package/dist/{chunk-LBVQK4LO.cjs → chunk-4PQR3D5Y.cjs} +11 -9
  22. package/dist/chunk-4PQR3D5Y.cjs.map +1 -0
  23. package/dist/{chunk-AUO32DAZ.cjs → chunk-54OFLP7B.cjs} +10 -10
  24. package/dist/{chunk-AUO32DAZ.cjs.map → chunk-54OFLP7B.cjs.map} +1 -1
  25. package/dist/{chunk-7U7OWTR2.js → chunk-56AYHXOU.js} +3 -3
  26. package/dist/{chunk-7U7OWTR2.js.map → chunk-56AYHXOU.js.map} +1 -1
  27. package/dist/{chunk-BSHJ4HUN.js → chunk-5DPX2WRN.js} +4 -4
  28. package/dist/{chunk-BSHJ4HUN.js.map → chunk-5DPX2WRN.js.map} +1 -1
  29. package/dist/{chunk-23S37FLK.js → chunk-5FOSK5R3.js} +6 -4
  30. package/dist/chunk-5FOSK5R3.js.map +1 -0
  31. package/dist/{chunk-K3SHMUQG.js → chunk-5JJBM47G.js} +3 -3
  32. package/dist/{chunk-K3SHMUQG.js.map → chunk-5JJBM47G.js.map} +1 -1
  33. package/dist/{chunk-XIV5JLFM.cjs → chunk-5NOU4GYX.cjs} +110 -110
  34. package/dist/{chunk-XIV5JLFM.cjs.map → chunk-5NOU4GYX.cjs.map} +1 -1
  35. package/dist/{chunk-7FCDZBRJ.cjs → chunk-5SICMPYN.cjs} +51 -43
  36. package/dist/chunk-5SICMPYN.cjs.map +1 -0
  37. package/dist/{chunk-4GK7UEOF.js → chunk-5UKZ2LAI.js} +4 -4
  38. package/dist/chunk-5UKZ2LAI.js.map +1 -0
  39. package/dist/{chunk-VBQKBXAI.cjs → chunk-5WVXBP2Y.cjs} +10 -10
  40. package/dist/{chunk-VBQKBXAI.cjs.map → chunk-5WVXBP2Y.cjs.map} +1 -1
  41. package/dist/{chunk-HJVMQDSZ.js → chunk-67TV3EH4.js} +3 -3
  42. package/dist/{chunk-HJVMQDSZ.js.map → chunk-67TV3EH4.js.map} +1 -1
  43. package/dist/{chunk-KPAAQAZX.js → chunk-6BY6VUN2.js} +3 -3
  44. package/dist/{chunk-KPAAQAZX.js.map → chunk-6BY6VUN2.js.map} +1 -1
  45. package/dist/{chunk-RXT5WOCU.js → chunk-6XJTDCOF.js} +4 -4
  46. package/dist/{chunk-RXT5WOCU.js.map → chunk-6XJTDCOF.js.map} +1 -1
  47. package/dist/{chunk-4V2VNFVM.js → chunk-7475TVI5.js} +4 -4
  48. package/dist/{chunk-4V2VNFVM.js.map → chunk-7475TVI5.js.map} +1 -1
  49. package/dist/{chunk-4W7KQRF5.cjs → chunk-AAPSZTLM.cjs} +10 -3
  50. package/dist/chunk-AAPSZTLM.cjs.map +1 -0
  51. package/dist/{chunk-6IYRTJAM.js → chunk-ANIBNJ3N.js} +6 -6
  52. package/dist/{chunk-6IYRTJAM.js.map → chunk-ANIBNJ3N.js.map} +1 -1
  53. package/dist/{chunk-MPJDL7M4.cjs → chunk-AW4NGJ2N.cjs} +28 -28
  54. package/dist/{chunk-MPJDL7M4.cjs.map → chunk-AW4NGJ2N.cjs.map} +1 -1
  55. package/dist/{chunk-3SZS6A34.cjs → chunk-C7RGNU23.cjs} +12 -12
  56. package/dist/{chunk-3SZS6A34.cjs.map → chunk-C7RGNU23.cjs.map} +1 -1
  57. package/dist/{chunk-7OJ75STQ.cjs → chunk-CF3ZJDTU.cjs} +53 -53
  58. package/dist/{chunk-7OJ75STQ.cjs.map → chunk-CF3ZJDTU.cjs.map} +1 -1
  59. package/dist/{chunk-ZQ4GLVIX.js → chunk-CHP6ZIVF.js} +3 -3
  60. package/dist/{chunk-ZQ4GLVIX.js.map → chunk-CHP6ZIVF.js.map} +1 -1
  61. package/dist/{chunk-RULES2JK.js → chunk-D5MBB7JN.js} +3 -3
  62. package/dist/{chunk-RULES2JK.js.map → chunk-D5MBB7JN.js.map} +1 -1
  63. package/dist/{chunk-DA6XYIJE.cjs → chunk-DMZ4R5Q7.cjs} +48 -20
  64. package/dist/chunk-DMZ4R5Q7.cjs.map +1 -0
  65. package/dist/{chunk-ZAWZ2BWD.cjs → chunk-EPKVYFCP.cjs} +7 -7
  66. package/dist/{chunk-ZAWZ2BWD.cjs.map → chunk-EPKVYFCP.cjs.map} +1 -1
  67. package/dist/{chunk-BTBUILA3.cjs → chunk-F755HGAQ.cjs} +250 -250
  68. package/dist/{chunk-BTBUILA3.cjs.map → chunk-F755HGAQ.cjs.map} +1 -1
  69. package/dist/{chunk-XVXSDMTB.js → chunk-FICIBTVS.js} +5 -5
  70. package/dist/{chunk-XVXSDMTB.js.map → chunk-FICIBTVS.js.map} +1 -1
  71. package/dist/{chunk-QVFQUBC7.cjs → chunk-FVUJRSNB.cjs} +62 -62
  72. package/dist/{chunk-QVFQUBC7.cjs.map → chunk-FVUJRSNB.cjs.map} +1 -1
  73. package/dist/{chunk-AFQ3OCPR.js → chunk-FZTCXQHI.js} +6 -6
  74. package/dist/{chunk-AFQ3OCPR.js.map → chunk-FZTCXQHI.js.map} +1 -1
  75. package/dist/{chunk-AQ7EVXCZ.js → chunk-G7B7MTWX.js} +31 -31
  76. package/dist/{chunk-AQ7EVXCZ.js.map → chunk-G7B7MTWX.js.map} +1 -1
  77. package/dist/{chunk-SILGPCNA.js → chunk-GBVJ4OYO.js} +3 -3
  78. package/dist/{chunk-SILGPCNA.js.map → chunk-GBVJ4OYO.js.map} +1 -1
  79. package/dist/{chunk-LHLSK2AE.js → chunk-GMGBMOC6.js} +5 -5
  80. package/dist/{chunk-LHLSK2AE.js.map → chunk-GMGBMOC6.js.map} +1 -1
  81. package/dist/{chunk-TIIYB6H2.cjs → chunk-H27WOU55.cjs} +22 -22
  82. package/dist/{chunk-TIIYB6H2.cjs.map → chunk-H27WOU55.cjs.map} +1 -1
  83. package/dist/{chunk-YH4WGIEH.js → chunk-HATXNJ4V.js} +6 -4
  84. package/dist/chunk-HATXNJ4V.js.map +1 -0
  85. package/dist/{chunk-AC7GMUBN.cjs → chunk-HB4PRXQ7.cjs} +19 -19
  86. package/dist/{chunk-AC7GMUBN.cjs.map → chunk-HB4PRXQ7.cjs.map} +1 -1
  87. package/dist/{chunk-UQVZFNT2.js → chunk-HLB3XKZS.js} +4 -4
  88. package/dist/{chunk-UQVZFNT2.js.map → chunk-HLB3XKZS.js.map} +1 -1
  89. package/dist/{chunk-UIVHXCOY.cjs → chunk-HOOYQBNB.cjs} +43 -43
  90. package/dist/{chunk-UIVHXCOY.cjs.map → chunk-HOOYQBNB.cjs.map} +1 -1
  91. package/dist/{chunk-SLM5OKHX.cjs → chunk-HVATI3FQ.cjs} +5 -5
  92. package/dist/{chunk-SLM5OKHX.cjs.map → chunk-HVATI3FQ.cjs.map} +1 -1
  93. package/dist/{chunk-L4Z7J32P.js → chunk-IIRWTIFV.js} +4 -4
  94. package/dist/{chunk-L4Z7J32P.js.map → chunk-IIRWTIFV.js.map} +1 -1
  95. package/dist/{chunk-7OWSBMQT.cjs → chunk-JRCLL2XG.cjs} +56 -56
  96. package/dist/{chunk-7OWSBMQT.cjs.map → chunk-JRCLL2XG.cjs.map} +1 -1
  97. package/dist/{chunk-PPNPOLWL.cjs → chunk-JUFS6SVC.cjs} +4 -4
  98. package/dist/{chunk-PPNPOLWL.cjs.map → chunk-JUFS6SVC.cjs.map} +1 -1
  99. package/dist/{chunk-VX3MJR4P.cjs → chunk-KGUHJRHZ.cjs} +10 -10
  100. package/dist/{chunk-VX3MJR4P.cjs.map → chunk-KGUHJRHZ.cjs.map} +1 -1
  101. package/dist/{chunk-Q3ESI7U3.cjs → chunk-KJ6DNZ6C.cjs} +23 -23
  102. package/dist/{chunk-Q3ESI7U3.cjs.map → chunk-KJ6DNZ6C.cjs.map} +1 -1
  103. package/dist/{chunk-WWDHYJH6.js → chunk-LHBCIGPA.js} +6 -6
  104. package/dist/{chunk-WWDHYJH6.js.map → chunk-LHBCIGPA.js.map} +1 -1
  105. package/dist/{chunk-OY7BRU3T.js → chunk-LHF6URCC.js} +3 -3
  106. package/dist/{chunk-OY7BRU3T.js.map → chunk-LHF6URCC.js.map} +1 -1
  107. package/dist/{chunk-QH3IFRYL.cjs → chunk-LIIRA77X.cjs} +6 -6
  108. package/dist/{chunk-QH3IFRYL.cjs.map → chunk-LIIRA77X.cjs.map} +1 -1
  109. package/dist/{chunk-H7TPN2Y6.js → chunk-LPT77UR6.js} +8 -5
  110. package/dist/chunk-LPT77UR6.js.map +1 -0
  111. package/dist/{chunk-SLTGLKKQ.js → chunk-LQZHT5U7.js} +3 -3
  112. package/dist/{chunk-SLTGLKKQ.js.map → chunk-LQZHT5U7.js.map} +1 -1
  113. package/dist/{chunk-FSSG5YQJ.js → chunk-LUR6XGTP.js} +3 -3
  114. package/dist/{chunk-FSSG5YQJ.js.map → chunk-LUR6XGTP.js.map} +1 -1
  115. package/dist/{chunk-O3QIULED.js → chunk-MKJ6Y2HF.js} +4 -4
  116. package/dist/{chunk-O3QIULED.js.map → chunk-MKJ6Y2HF.js.map} +1 -1
  117. package/dist/{chunk-34CXJCW6.cjs → chunk-MMOFAVHH.cjs} +9 -9
  118. package/dist/{chunk-34CXJCW6.cjs.map → chunk-MMOFAVHH.cjs.map} +1 -1
  119. package/dist/{chunk-FPKJAWB4.cjs → chunk-NQHBWI24.cjs} +9 -9
  120. package/dist/{chunk-FPKJAWB4.cjs.map → chunk-NQHBWI24.cjs.map} +1 -1
  121. package/dist/{chunk-CSDD3WKD.cjs → chunk-NSBZR7QU.cjs} +13 -13
  122. package/dist/{chunk-CSDD3WKD.cjs.map → chunk-NSBZR7QU.cjs.map} +1 -1
  123. package/dist/{chunk-TYHVZSA4.js → chunk-O7JJZSXK.js} +4 -4
  124. package/dist/{chunk-TYHVZSA4.js.map → chunk-O7JJZSXK.js.map} +1 -1
  125. package/dist/{chunk-ADW6D5RD.cjs → chunk-OH2UAAED.cjs} +6 -6
  126. package/dist/{chunk-ADW6D5RD.cjs.map → chunk-OH2UAAED.cjs.map} +1 -1
  127. package/dist/{chunk-RSAMJC5Y.cjs → chunk-OZMSHZ5R.cjs} +4 -4
  128. package/dist/chunk-OZMSHZ5R.cjs.map +1 -0
  129. package/dist/{chunk-UTUIQVXH.js → chunk-P5IEX7A7.js} +3 -3
  130. package/dist/{chunk-UTUIQVXH.js.map → chunk-P5IEX7A7.js.map} +1 -1
  131. package/dist/{chunk-PMMVJSIC.js → chunk-PGK2MPL7.js} +3 -3
  132. package/dist/{chunk-PMMVJSIC.js.map → chunk-PGK2MPL7.js.map} +1 -1
  133. package/dist/{chunk-AW7D2YUT.cjs → chunk-PJKQHNQX.cjs} +12 -12
  134. package/dist/{chunk-AW7D2YUT.cjs.map → chunk-PJKQHNQX.cjs.map} +1 -1
  135. package/dist/{chunk-WOMWA56V.cjs → chunk-PMGFP7II.cjs} +10 -10
  136. package/dist/{chunk-WOMWA56V.cjs.map → chunk-PMGFP7II.cjs.map} +1 -1
  137. package/dist/{chunk-SSCEURZV.cjs → chunk-PWBN74RE.cjs} +4 -4
  138. package/dist/{chunk-SSCEURZV.cjs.map → chunk-PWBN74RE.cjs.map} +1 -1
  139. package/dist/{chunk-H7KDCXLQ.cjs → chunk-PXLC5SNM.cjs} +3 -3
  140. package/dist/chunk-PXLC5SNM.cjs.map +1 -0
  141. package/dist/{chunk-RCGUVZFM.cjs → chunk-Q2BOTNC2.cjs} +5 -5
  142. package/dist/{chunk-RCGUVZFM.cjs.map → chunk-Q2BOTNC2.cjs.map} +1 -1
  143. package/dist/{chunk-PLV74XAL.js → chunk-QM23NJBM.js} +3 -3
  144. package/dist/{chunk-PLV74XAL.js.map → chunk-QM23NJBM.js.map} +1 -1
  145. package/dist/{chunk-WTBVC25D.cjs → chunk-QQSQCWQJ.cjs} +16 -16
  146. package/dist/{chunk-WTBVC25D.cjs.map → chunk-QQSQCWQJ.cjs.map} +1 -1
  147. package/dist/{chunk-ZZE7ETO3.js → chunk-QSTMEJNF.js} +12 -4
  148. package/dist/chunk-QSTMEJNF.js.map +1 -0
  149. package/dist/{chunk-PWK5YPS6.js → chunk-R3YQMHOW.js} +5 -5
  150. package/dist/{chunk-PWK5YPS6.js.map → chunk-R3YQMHOW.js.map} +1 -1
  151. package/dist/{chunk-MOCFYZKQ.js → chunk-RV2PL7XY.js} +7 -7
  152. package/dist/{chunk-MOCFYZKQ.js.map → chunk-RV2PL7XY.js.map} +1 -1
  153. package/dist/{chunk-QYI23DSK.cjs → chunk-RV4T5P5S.cjs} +16 -16
  154. package/dist/{chunk-QYI23DSK.cjs.map → chunk-RV4T5P5S.cjs.map} +1 -1
  155. package/dist/{chunk-4BLUIUHS.cjs → chunk-RVD3DGBZ.cjs} +5 -5
  156. package/dist/{chunk-4BLUIUHS.cjs.map → chunk-RVD3DGBZ.cjs.map} +1 -1
  157. package/dist/{chunk-GFZR6THV.js → chunk-RY5RETAD.js} +3 -3
  158. package/dist/{chunk-GFZR6THV.js.map → chunk-RY5RETAD.js.map} +1 -1
  159. package/dist/{chunk-EUFT3MIX.js → chunk-SFAWHLOX.js} +3 -3
  160. package/dist/chunk-SFAWHLOX.js.map +1 -0
  161. package/dist/{chunk-65T6KVYX.cjs → chunk-SXKQ7CSX.cjs} +6 -3
  162. package/dist/chunk-SXKQ7CSX.cjs.map +1 -0
  163. package/dist/{chunk-W6KDN66O.js → chunk-SZBL63O3.js} +5 -5
  164. package/dist/{chunk-W6KDN66O.js.map → chunk-SZBL63O3.js.map} +1 -1
  165. package/dist/{chunk-JRPPHAGE.cjs → chunk-T4SHYW3E.cjs} +15 -15
  166. package/dist/{chunk-JRPPHAGE.cjs.map → chunk-T4SHYW3E.cjs.map} +1 -1
  167. package/dist/{chunk-UB6NBWGC.js → chunk-T5N6VHVN.js} +5 -5
  168. package/dist/{chunk-UB6NBWGC.js.map → chunk-T5N6VHVN.js.map} +1 -1
  169. package/dist/{chunk-Y5CIOSHU.js → chunk-WMHXUJKB.js} +10 -3
  170. package/dist/chunk-WMHXUJKB.js.map +1 -0
  171. package/dist/{chunk-7CNI6HVA.js → chunk-WU3CTX2J.js} +5 -5
  172. package/dist/{chunk-7CNI6HVA.js.map → chunk-WU3CTX2J.js.map} +1 -1
  173. package/dist/{chunk-BVLZQ7YB.cjs → chunk-XFAJ3EAC.cjs} +3 -3
  174. package/dist/{chunk-BVLZQ7YB.cjs.map → chunk-XFAJ3EAC.cjs.map} +1 -1
  175. package/dist/{chunk-U5XIOTTD.cjs → chunk-YH4TLNWJ.cjs} +24 -24
  176. package/dist/{chunk-U5XIOTTD.cjs.map → chunk-YH4TLNWJ.cjs.map} +1 -1
  177. package/dist/{chunk-KE4V4LJE.cjs → chunk-YLWKZ3VK.cjs} +7 -7
  178. package/dist/{chunk-KE4V4LJE.cjs.map → chunk-YLWKZ3VK.cjs.map} +1 -1
  179. package/dist/{chunk-KDMOWJ4W.js → chunk-YXU6EIG6.js} +46 -18
  180. package/dist/chunk-YXU6EIG6.js.map +1 -0
  181. package/dist/{chunk-7OSWGIVM.js → chunk-ZF5T4CGE.js} +5 -5
  182. package/dist/{chunk-7OSWGIVM.js.map → chunk-ZF5T4CGE.js.map} +1 -1
  183. package/dist/{dist-OTRIGGK5.js → dist-D63ZZGV3.js} +5 -5
  184. package/dist/{dist-OTRIGGK5.js.map → dist-D63ZZGV3.js.map} +1 -1
  185. package/dist/{dist-DQ2NPGYX.cjs → dist-QDOBLME7.cjs} +20 -20
  186. package/dist/{dist-DQ2NPGYX.cjs.map → dist-QDOBLME7.cjs.map} +1 -1
  187. package/dist/docs/SKILL.md +1 -1
  188. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  189. package/dist/{observational-memory-G52HNRHE-RHA4V77M.js → observational-memory-NIGWGBLT-SBZMVFBE.js} +3 -3
  190. package/dist/{observational-memory-G52HNRHE-RHA4V77M.js.map → observational-memory-NIGWGBLT-SBZMVFBE.js.map} +1 -1
  191. package/dist/{observational-memory-G52HNRHE-73KIWQ2G.cjs → observational-memory-NIGWGBLT-XWKXVCLV.cjs} +26 -26
  192. package/dist/{observational-memory-G52HNRHE-73KIWQ2G.cjs.map → observational-memory-NIGWGBLT-XWKXVCLV.cjs.map} +1 -1
  193. package/dist/server/auth/helpers.d.ts.map +1 -1
  194. package/dist/server/auth/index.cjs +19 -19
  195. package/dist/server/auth/index.js +2 -2
  196. package/dist/server/constants.d.ts +7 -0
  197. package/dist/server/constants.d.ts.map +1 -1
  198. package/dist/server/handlers/a2a.cjs +14 -14
  199. package/dist/server/handlers/a2a.js +1 -1
  200. package/dist/server/handlers/agent-builder.cjs +17 -17
  201. package/dist/server/handlers/agent-builder.js +1 -1
  202. package/dist/server/handlers/agent-versions.cjs +8 -8
  203. package/dist/server/handlers/agent-versions.js +1 -1
  204. package/dist/server/handlers/agents.cjs +46 -46
  205. package/dist/server/handlers/agents.js +1 -1
  206. package/dist/server/handlers/auth.cjs +13 -13
  207. package/dist/server/handlers/auth.d.ts.map +1 -1
  208. package/dist/server/handlers/auth.js +1 -1
  209. package/dist/server/handlers/authorship.cjs +12 -12
  210. package/dist/server/handlers/authorship.js +1 -1
  211. package/dist/server/handlers/builder-registry.cjs +6 -6
  212. package/dist/server/handlers/builder-registry.js +1 -1
  213. package/dist/server/handlers/channels.cjs +5 -5
  214. package/dist/server/handlers/channels.js +1 -1
  215. package/dist/server/handlers/conversations.cjs +5 -5
  216. package/dist/server/handlers/conversations.js +1 -1
  217. package/dist/server/handlers/editor-builder.cjs +6 -6
  218. package/dist/server/handlers/editor-builder.d.ts +11 -7
  219. package/dist/server/handlers/editor-builder.d.ts.map +1 -1
  220. package/dist/server/handlers/editor-builder.js +1 -1
  221. package/dist/server/handlers/favorites-enrichment.cjs +4 -4
  222. package/dist/server/handlers/favorites-enrichment.js +1 -1
  223. package/dist/server/handlers/logs.cjs +4 -4
  224. package/dist/server/handlers/logs.js +1 -1
  225. package/dist/server/handlers/mcp-client-versions.cjs +8 -8
  226. package/dist/server/handlers/mcp-client-versions.js +1 -1
  227. package/dist/server/handlers/memory.cjs +27 -27
  228. package/dist/server/handlers/memory.js +1 -1
  229. package/dist/server/handlers/prompt-block-versions.cjs +8 -8
  230. package/dist/server/handlers/prompt-block-versions.js +1 -1
  231. package/dist/server/handlers/responses.cjs +4 -4
  232. package/dist/server/handlers/responses.js +1 -1
  233. package/dist/server/handlers/responses.storage.cjs +8 -8
  234. package/dist/server/handlers/responses.storage.js +1 -1
  235. package/dist/server/handlers/scorer-versions.cjs +8 -8
  236. package/dist/server/handlers/scorer-versions.js +1 -1
  237. package/dist/server/handlers/scores.cjs +7 -7
  238. package/dist/server/handlers/scores.js +1 -1
  239. package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
  240. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  241. package/dist/server/handlers/stored-agents.cjs +9 -9
  242. package/dist/server/handlers/stored-agents.js +1 -1
  243. package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
  244. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  245. package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
  246. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  247. package/dist/server/handlers/stored-scorers.cjs +6 -6
  248. package/dist/server/handlers/stored-scorers.js +1 -1
  249. package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
  250. package/dist/server/handlers/stored-skill-favorites.js +1 -1
  251. package/dist/server/handlers/stored-skills.cjs +7 -7
  252. package/dist/server/handlers/stored-skills.js +1 -1
  253. package/dist/server/handlers/stored-workspaces.cjs +6 -6
  254. package/dist/server/handlers/stored-workspaces.js +1 -1
  255. package/dist/server/handlers/system.cjs +3 -3
  256. package/dist/server/handlers/system.js +1 -1
  257. package/dist/server/handlers/tool-providers.cjs +14 -14
  258. package/dist/server/handlers/tool-providers.d.ts +2 -2
  259. package/dist/server/handlers/tool-providers.js +1 -1
  260. package/dist/server/handlers/tools.cjs +6 -6
  261. package/dist/server/handlers/tools.js +1 -1
  262. package/dist/server/handlers/utils.cjs +10 -10
  263. package/dist/server/handlers/utils.js +1 -1
  264. package/dist/server/handlers/voice.cjs +8 -8
  265. package/dist/server/handlers/voice.js +1 -1
  266. package/dist/server/handlers/workflows.cjs +27 -27
  267. package/dist/server/handlers/workflows.d.ts.map +1 -1
  268. package/dist/server/handlers/workflows.js +1 -1
  269. package/dist/server/handlers.cjs +22 -22
  270. package/dist/server/handlers.js +11 -11
  271. package/dist/server/schemas/index.cjs +106 -106
  272. package/dist/server/schemas/index.js +6 -6
  273. package/dist/server/schemas/tool-providers.d.ts +1 -1
  274. package/dist/server/schemas/tool-providers.d.ts.map +1 -1
  275. package/dist/server/server-adapter/index.cjs +129 -43
  276. package/dist/server/server-adapter/index.cjs.map +1 -1
  277. package/dist/server/server-adapter/index.d.ts +58 -5
  278. package/dist/server/server-adapter/index.d.ts.map +1 -1
  279. package/dist/server/server-adapter/index.js +102 -20
  280. package/dist/server/server-adapter/index.js.map +1 -1
  281. package/dist/server/server-adapter/routes/index.d.ts +2 -0
  282. package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
  283. package/dist/server/server-adapter/routes/tool-providers.d.ts +2 -2
  284. package/package.json +5 -5
  285. package/dist/chunk-23S37FLK.js.map +0 -1
  286. package/dist/chunk-4GK7UEOF.js.map +0 -1
  287. package/dist/chunk-4W7KQRF5.cjs.map +0 -1
  288. package/dist/chunk-65T6KVYX.cjs.map +0 -1
  289. package/dist/chunk-7FCDZBRJ.cjs.map +0 -1
  290. package/dist/chunk-DA6XYIJE.cjs.map +0 -1
  291. package/dist/chunk-EUFT3MIX.js.map +0 -1
  292. package/dist/chunk-H7KDCXLQ.cjs.map +0 -1
  293. package/dist/chunk-H7TPN2Y6.js.map +0 -1
  294. package/dist/chunk-KDMOWJ4W.js.map +0 -1
  295. package/dist/chunk-LBVQK4LO.cjs.map +0 -1
  296. package/dist/chunk-P4IMQYF3.cjs.map +0 -1
  297. package/dist/chunk-RSAMJC5Y.cjs.map +0 -1
  298. package/dist/chunk-Y5CIOSHU.js.map +0 -1
  299. package/dist/chunk-YH4WGIEH.js.map +0 -1
  300. package/dist/chunk-ZZE7ETO3.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/tool-providers.ts"],"names":["HTTPException","requestContext","MASTRA_RESOURCE_ID_KEY","MASTRA_USER_KEY","createRoute","listToolProvidersResponseSchema","handleError","toolProviderIdPathParams","listToolProviderToolkitsResponseSchema","listToolProviderToolsQuerySchema","listToolProviderToolsResponseSchema","toolSlugPathParams","getToolProviderToolSchemaResponseSchema","authorizeToolProviderBodySchema","authorizeToolProviderResponseSchema","toolProviderAuthStatusPathParams","authStatusToolProviderResponseSchema","connectionStatusToolProviderBodySchema","connectionStatusToolProviderResponseSchema","listConnectionsQuerySchema","listConnectionsResponseSchema","hasAdminBypass","listConnectionFieldsQuerySchema","listConnectionFieldsResponseSchema","toolProviderConnectionPathParams","disconnectConnectionQuerySchema","disconnectConnectionResponseSchema","updateConnectionBodySchema","updateConnectionResponseSchema","connectionUsageQuerySchema","connectionUsageResponseSchema","toolProviderHealthResponseSchema"],"mappings":"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","file":"chunk-UIVHXCOY.cjs","sourcesContent":["import type { IMastraEditor } from '@mastra/core/editor';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport { MASTRA_RESOURCE_ID_KEY } from '@mastra/core/request-context';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type * as ToolProviderModule from '@mastra/core/tool-provider';\nimport type { ToolProvider } from '@mastra/core/tool-provider';\n\nimport { MASTRA_USER_KEY } from '../constants';\nimport { HTTPException } from '../http-exception';\nimport {\n authorizeToolProviderBodySchema,\n authorizeToolProviderResponseSchema,\n authStatusToolProviderResponseSchema,\n connectionStatusToolProviderBodySchema,\n connectionStatusToolProviderResponseSchema,\n connectionUsageQuerySchema,\n connectionUsageResponseSchema,\n disconnectConnectionQuerySchema,\n disconnectConnectionResponseSchema,\n getToolProviderToolSchemaResponseSchema,\n listConnectionFieldsQuerySchema,\n listConnectionFieldsResponseSchema,\n listConnectionsQuerySchema,\n listConnectionsResponseSchema,\n listToolProviderToolkitsResponseSchema,\n listToolProviderToolsQuerySchema,\n listToolProviderToolsResponseSchema,\n listToolProvidersResponseSchema,\n toolProviderAuthStatusPathParams,\n toolProviderConnectionPathParams,\n toolProviderHealthResponseSchema,\n toolProviderIdPathParams,\n toolSlugPathParams,\n updateConnectionBodySchema,\n updateConnectionResponseSchema,\n} from '../schemas/tool-providers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { hasAdminBypass } from './authorship';\nimport { handleError } from './error';\n\nconst TOOL_PROVIDERS_RESOURCE = 'tool-providers' as const;\n\n/**\n * Mirrors `@mastra/core/tool-provider#SHARED_BUCKET_ID`. Inlined locally so this\n * module evaluates under any peer-compatible core; a regression test in\n * `tool-providers.test.ts` verifies the literal stays in lockstep with core.\n */\nconst SHARED_BUCKET_ID = 'shared' as const;\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/**\n * Lazily import `@mastra/core/tool-provider` so this server module can evaluate\n * under any peer-compatible core. The new value exports (`UnknownToolProviderError`,\n * `SHARED_BUCKET_ID`) ship in core `>=1.39.0-0`; users on older cores who never\n * configure a `MastraEditor` short-circuit via `requireEditor` long before this\n * runs. ESM caches one module instance per resolved specifier so the\n * `instanceof` check below sees the same class identity that `@mastra/editor`\n * throws.\n */\nlet _toolProviderModule: typeof ToolProviderModule | undefined;\nasync function loadToolProviderModule() {\n if (!_toolProviderModule) {\n _toolProviderModule = await import('@mastra/core/tool-provider');\n }\n return _toolProviderModule;\n}\n\nfunction requireEditor(editor: IMastraEditor | undefined): IMastraEditor {\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n return editor;\n}\n\nasync function resolveProvider(editor: IMastraEditor, providerId: string): Promise<ToolProvider> {\n try {\n return editor.getToolProviderOrThrow(providerId);\n } catch (error) {\n const { UnknownToolProviderError } = await loadToolProviderModule();\n if (error instanceof UnknownToolProviderError) {\n throw new HTTPException(404, { message: error.message });\n }\n throw error;\n }\n}\n\n// Emit a single warn per process when the connection-owner fallback fires.\n// Multi-tenant deployments that forget to wire `mapUserToResourceId` (or\n// `MASTRA_USER_KEY`) silently funnel every `caller-supplied` pin into one\n// shared OAuth account — surface that misconfiguration once.\nlet defaultBucketWarned = false;\nfunction warnDefaultBucketFallback(logger: IMastraLogger | undefined): void {\n if (defaultBucketWarned) return;\n defaultBucketWarned = true;\n logger?.warn(\n '[tool-providers] caller-supplied scope falling back to shared \"default\" bucket — ' +\n 'wire mapUserToResourceId or set MASTRA_USER_KEY to avoid cross-tenant OAuth sharing',\n );\n}\n\n/**\n * Resolve the connection owner (provider `userId` bucket) from the caller's\n * `RequestContext`. Mirrors the runtime fan-out fallback to `'default'` when\n * no auth context is present so OSS deployments still work.\n */\nfunction resolveOwnerId(requestContext: RequestContext | undefined, logger: IMastraLogger | undefined): string {\n const resourceId = requestContext?.get(MASTRA_RESOURCE_ID_KEY);\n if (typeof resourceId === 'string' && resourceId.length > 0) {\n return resourceId;\n }\n\n const user = requestContext?.get(MASTRA_USER_KEY);\n if (user && typeof user === 'object' && 'id' in user) {\n const id = (user as { id: unknown }).id;\n if (typeof id === 'string' && id.length > 0) {\n return id;\n }\n }\n\n warnDefaultBucketFallback(logger);\n return 'default';\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /tool-providers — List all registered tool providers with their\n * capabilities (when the provider exposes them).\n */\nexport const LIST_TOOL_PROVIDERS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers',\n responseType: 'json',\n responseSchema: listToolProvidersResponseSchema,\n summary: 'List tool providers',\n description: 'Returns a list of all registered tool providers with their info and capabilities',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const providers = editor.getToolProviders();\n return {\n providers: Object.values(providers).map(provider => ({\n ...provider.info,\n ...(provider.displayName ? { displayName: provider.displayName } : {}),\n ...(provider.capabilities ? { capabilities: provider.capabilities } : {}),\n })),\n };\n } catch (error) {\n return handleError(error, 'Error listing tool providers');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/toolkits — Toolkits exposed by a provider.\n */\nexport const LIST_TOOL_PROVIDER_TOOLKITS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/toolkits',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n responseSchema: listToolProviderToolkitsResponseSchema,\n summary: 'List tool provider toolkits',\n description: 'Returns the toolkits available from a specific tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (provider.listToolkitsVNext) {\n return await provider.listToolkitsVNext();\n }\n if (provider.listToolkits) {\n return await provider.listToolkits();\n }\n return { data: [] };\n } catch (error) {\n return handleError(error, 'Error listing tool provider toolkits');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools — List tools, optionally filtered.\n */\nexport const LIST_TOOL_PROVIDER_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listToolProviderToolsQuerySchema,\n responseSchema: listToolProviderToolsResponseSchema,\n summary: 'List tool provider tools',\n description: 'Returns the tools available from a specific tool provider, with optional filtering',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit, search, page, perPage }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n const opts: { toolkit?: string; search?: string; page?: number; perPage?: number } = {};\n if (toolkit !== undefined) opts.toolkit = toolkit;\n if (search !== undefined) opts.search = search;\n if (page !== undefined) opts.page = page;\n if (perPage !== undefined) opts.perPage = perPage;\n if (provider.listToolsVNext) {\n return await provider.listToolsVNext(Object.keys(opts).length > 0 ? opts : undefined);\n }\n return await provider.listTools(Object.keys(opts).length > 0 ? opts : undefined);\n } catch (error) {\n return handleError(error, 'Error listing tool provider tools');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools/:toolSlug/schema — Tool schema.\n */\nexport const GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools/:toolSlug/schema',\n responseType: 'json',\n pathParamSchema: toolSlugPathParams,\n responseSchema: getToolProviderToolSchemaResponseSchema,\n summary: 'Get tool provider tool schema',\n description: 'Returns the schema for a specific tool from a tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolSlug }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.getToolSchema) {\n throw new HTTPException(404, { message: `Tool provider ${providerId} does not support getToolSchema` });\n }\n const schema = await provider.getToolSchema(toolSlug);\n if (!schema) {\n throw new HTTPException(404, { message: `Schema for tool ${toolSlug} not found in provider ${providerId}` });\n }\n return schema;\n } catch (error) {\n return handleError(error, 'Error getting tool provider tool schema');\n }\n },\n});\n\n/**\n * POST /tool-providers/:providerId/authorize — Start an OAuth flow and persist\n * a `tool_provider_connections` row for label / scope joins.\n */\nexport const AUTHORIZE_TOOL_PROVIDER_ROUTE = createRoute({\n method: 'POST',\n path: '/tool-providers/:providerId/authorize',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n bodySchema: authorizeToolProviderBodySchema,\n responseSchema: authorizeToolProviderResponseSchema,\n summary: 'Authorize tool provider connection',\n description: 'Starts an OAuth flow and returns a redirect URL + opaque auth handle',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit, connectionId, toolName, config, label, scope, requestContext }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.authorize) {\n throw new HTTPException(400, { message: `Tool provider ${providerId} does not support authorize` });\n }\n // Per-pin scope:\n // - 'shared' buckets under SHARED_BUCKET_ID.\n // - 'caller-supplied' buckets under request-context resourceId (400 if missing).\n // - 'per-author' (default) buckets under the caller's resolved authorId.\n const effectiveScope: 'shared' | 'per-author' | 'caller-supplied' =\n scope === 'shared' || scope === 'caller-supplied' ? scope : 'per-author';\n const callerResourceId = requestContext?.get(MASTRA_RESOURCE_ID_KEY);\n if (effectiveScope === 'caller-supplied') {\n if (typeof callerResourceId !== 'string' || callerResourceId.length === 0) {\n throw new HTTPException(400, {\n message: `Cannot authorize caller-supplied connection: request context has no '${MASTRA_RESOURCE_ID_KEY}'. Set requestContext.set('${MASTRA_RESOURCE_ID_KEY}', <userId>) before calling /authorize.`,\n });\n }\n }\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const ownerAuthorId =\n effectiveScope === 'shared'\n ? SHARED_BUCKET_ID\n : effectiveScope === 'caller-supplied'\n ? (callerResourceId as string)\n : callerAuthorId;\n\n // Fresh connect (no connectionId) uses the resolved owner id as the\n // provider bucket so the adapter creates the connection under the same\n // userId the runtime will resolve to at execution time. Re-auth (caller\n // passed an existing connectionId) is left untouched.\n const bucket = connectionId && connectionId.length > 0 ? connectionId : ownerAuthorId;\n const result = await provider.authorize({ toolkit, connectionId: bucket, toolName, config });\n\n // Persist label + scope. Upsert even when label is null/undefined so the\n // row exists for later list-join in the picker.\n const persistedConnectionId = connectionId && connectionId.length > 0 ? connectionId : result.authId;\n try {\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n if (store && persistedConnectionId) {\n await store.upsertConnection({\n authorId: ownerAuthorId,\n providerId: provider.info.id,\n toolkit,\n connectionId: persistedConnectionId,\n label: typeof label === 'string' && label.length > 0 ? label : null,\n scope: effectiveScope,\n });\n }\n } catch (upsertError) {\n mastra.getLogger?.()?.warn?.('[tool-providers] failed to upsert tool_provider_connections label', {\n error: upsertError instanceof Error ? upsertError.message : String(upsertError),\n providerId,\n toolkit,\n connectionId: persistedConnectionId,\n });\n }\n\n return result;\n } catch (error) {\n return handleError(error, 'Error authorizing tool provider');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/auth-status/:authId — Poll OAuth flow status.\n */\nexport const GET_TOOL_PROVIDER_AUTH_STATUS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/auth-status/:authId',\n responseType: 'json',\n pathParamSchema: toolProviderAuthStatusPathParams,\n responseSchema: authStatusToolProviderResponseSchema,\n summary: 'Get tool provider auth status',\n description: 'Polls the OAuth flow status for an outstanding authorize call',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, authId }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.getAuthStatus) {\n throw new HTTPException(400, { message: `Tool provider ${providerId} does not support getAuthStatus` });\n }\n const status = await provider.getAuthStatus(authId);\n return { status };\n } catch (error) {\n return handleError(error, 'Error getting tool provider auth status');\n }\n },\n});\n\n/**\n * POST /tool-providers/:providerId/connection-status — Batch-check connection liveness.\n */\nexport const TOOL_PROVIDER_CONNECTION_STATUS_ROUTE = createRoute({\n method: 'POST',\n path: '/tool-providers/:providerId/connection-status',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n bodySchema: connectionStatusToolProviderBodySchema,\n responseSchema: connectionStatusToolProviderResponseSchema,\n summary: 'Get connection status for a provider',\n description: 'Batch-checks whether a set of (connectionId, toolkit) tuples are still connected',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, items }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.getConnectionStatus) {\n throw new HTTPException(400, { message: `Tool provider ${providerId} does not support getConnectionStatus` });\n }\n const result = await provider.getConnectionStatus({ items });\n return { items: result };\n } catch (error) {\n return handleError(error, 'Error getting connection status');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/connections — Existing provider connections\n * scoped to a toolkit. Admin callers can pass `authorId` and `scope` filters;\n * non-admins always see only their own + shared rows.\n */\nexport const LIST_TOOL_PROVIDER_CONNECTIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/connections',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listConnectionsQuerySchema,\n responseSchema: listConnectionsResponseSchema,\n summary: 'List existing connections',\n description:\n 'Returns existing provider connections on a toolkit, so the picker can offer them for pinning without re-running OAuth',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n providerId,\n toolkit,\n authorId: queryAuthorId,\n scope: queryScope,\n page,\n perPage,\n requestContext,\n }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.listConnections) {\n throw new HTTPException(400, { message: `Tool provider ${providerId} does not support listConnections` });\n }\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const isAdmin = requestContext ? hasAdminBypass(requestContext, TOOL_PROVIDERS_RESOURCE) : false;\n\n const requestedAuthorId =\n isAdmin && typeof queryAuthorId === 'string' && queryAuthorId.length > 0 ? queryAuthorId : undefined;\n const effectiveAuthorId = isAdmin ? requestedAuthorId : callerAuthorId;\n\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n\n // Strategy B: seed userIds[] from persisted rows so admins can enumerate\n // connections owned by other authors.\n let labelRows: Array<{\n authorId: string;\n connectionId: string;\n label: string | null;\n scope: 'shared' | 'per-author' | 'caller-supplied';\n }> = [];\n if (store) {\n try {\n const rows = await store.listConnectionsByAuthor({\n providerId: provider.info.id,\n toolkit,\n });\n labelRows = rows.map(r => ({\n authorId: r.authorId,\n connectionId: r.connectionId,\n label: r.label,\n scope: r.scope ?? 'per-author',\n }));\n } catch (joinError) {\n mastra.getLogger?.()?.warn?.('[tool-providers] failed to join tool_provider_connections labels', {\n error: joinError instanceof Error ? joinError.message : String(joinError),\n providerId,\n toolkit,\n });\n }\n }\n\n const userIdSet = new Set<string>();\n const wantShared = !queryScope || queryScope === 'shared';\n const wantPerAuthor = !queryScope || queryScope === 'per-author';\n const wantCallerSupplied = !queryScope || queryScope === 'caller-supplied';\n const hasSharedRow = labelRows.some(r => r.scope === 'shared');\n if (isAdmin && effectiveAuthorId === undefined) {\n for (const r of labelRows) {\n if (r.scope === 'shared' && wantShared) userIdSet.add(r.authorId);\n if (r.scope === 'per-author' && wantPerAuthor) userIdSet.add(r.authorId);\n if (r.scope === 'caller-supplied' && wantCallerSupplied) userIdSet.add(r.authorId);\n }\n } else if (isAdmin && effectiveAuthorId) {\n if (wantPerAuthor || wantCallerSupplied) userIdSet.add(effectiveAuthorId);\n if (wantShared && hasSharedRow) userIdSet.add(SHARED_BUCKET_ID);\n } else {\n if (wantPerAuthor) userIdSet.add(callerAuthorId);\n if (wantShared && hasSharedRow) userIdSet.add(SHARED_BUCKET_ID);\n // Non-admins never enumerate caller-supplied connections.\n }\n\n const userIds = Array.from(userIdSet);\n if (userIds.length === 0) {\n return {\n items: [],\n pagination: { page: page ?? 1, perPage, hasMore: false },\n };\n }\n\n const adapterResult = await provider.listConnections({\n toolkit,\n userIds,\n ...(typeof page === 'number' ? { page } : {}),\n ...(typeof perPage === 'number' ? { perPage } : {}),\n });\n\n const rowByConnId = new Map(labelRows.map(r => [r.connectionId, r]));\n\n const visibleItems = adapterResult.items.filter(item => {\n if (!queryScope) return true;\n const scope = rowByConnId.get(item.connectionId)?.scope ?? 'per-author';\n return scope === queryScope;\n });\n\n return {\n items: visibleItems.map(item => {\n const row = rowByConnId.get(item.connectionId);\n return {\n ...item,\n label: row?.label ?? null,\n ...(row?.scope ? { scope: row.scope } : {}),\n };\n }),\n pagination: adapterResult.pagination,\n };\n } catch (error) {\n return handleError(error, 'Error listing tool provider connections');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/connection-fields — Dynamic auth fields\n * the picker should collect before authorize (e.g. Confluence subdomain).\n */\nexport const LIST_TOOL_PROVIDER_CONNECTION_FIELDS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/connection-fields',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listConnectionFieldsQuerySchema,\n responseSchema: listConnectionFieldsResponseSchema,\n summary: 'List connection field schema',\n description: 'Returns a list of provider-specific fields the UI should collect before initiating an authorize call',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.listConnectionFields) {\n return { fields: [] };\n }\n const fields = await provider.listConnectionFields({ toolkit });\n return { fields };\n } catch (error) {\n return handleError(error, 'Error listing tool provider connection fields');\n }\n },\n});\n\n/**\n * DELETE /tool-providers/:providerId/connections/:connectionId — Disconnect.\n * Without `?force=true` rejects when the connection is still pinned by any\n * agent. With `?force=true` revokes at the provider (best-effort) and drops\n * the persisted row.\n */\nexport const DISCONNECT_TOOL_PROVIDER_CONNECTION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/tool-providers/:providerId/connections/:connectionId',\n responseType: 'json',\n pathParamSchema: toolProviderConnectionPathParams,\n queryParamSchema: disconnectConnectionQuerySchema,\n responseSchema: disconnectConnectionResponseSchema,\n summary: 'Disconnect a connection',\n description:\n 'Revokes the provider-side connection (if supported) and removes the persisted tool_provider_connections row. Use `?force=true` to bypass usage checks.',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, connectionId, force, requestContext }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const isAdmin = requestContext ? hasAdminBypass(requestContext, TOOL_PROVIDERS_RESOURCE) : false;\n const isForce = force === true || force === 'true';\n\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n\n let ownerAuthorId: string | undefined;\n let ownerScope: 'shared' | 'per-author' | 'caller-supplied' | undefined;\n let matched = false;\n if (store) {\n const rows = await store.listConnectionsByAuthor({ providerId: provider.info.id });\n const match = rows.find(r => r.connectionId === connectionId);\n if (match) {\n matched = true;\n ownerAuthorId = match.authorId;\n ownerScope = match.scope;\n }\n }\n\n // Fail closed: if storage is configured and no row matches the\n // requested connectionId, refuse the call for non-admins. Without\n // this guard, a caller could trigger provider-side `revokeConnection`\n // against another tenant's connectionId by guessing it.\n if (store && !matched && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to disconnect this connection',\n });\n }\n\n const effectiveOwner = ownerAuthorId ?? callerAuthorId;\n const isShared = ownerScope === 'shared';\n if (!isShared && effectiveOwner !== callerAuthorId && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to disconnect this connection',\n });\n }\n\n if (!isForce) {\n const usage = await countConnectionUsage(mastra, connectionId);\n if (usage > 0) {\n throw new HTTPException(409, {\n message: `Connection ${connectionId} is still pinned by ${usage} agent(s). Pass ?force=true to disconnect anyway.`,\n });\n }\n }\n\n let revoked = false;\n if (provider.capabilities?.supportsRevoke && typeof provider.revokeConnection === 'function') {\n await provider.revokeConnection(connectionId);\n revoked = true;\n }\n\n if (store) {\n await store.deleteConnection({\n authorId: effectiveOwner,\n providerId: provider.info.id,\n connectionId,\n });\n }\n\n return { ok: true as const, revoked };\n } catch (error) {\n return handleError(error, 'Error disconnecting tool provider connection');\n }\n },\n});\n\n/**\n * PATCH /tool-providers/:providerId/connections/:connectionId — Update a\n * connection's persisted display label. Idempotent. Ownership-gated the same\n * way as DISCONNECT: only the connection owner (or an admin) may rename,\n * unless the row is `scope: 'shared'`.\n *\n * Pass `label: null` (or an empty string) to clear the existing label.\n */\nexport const UPDATE_TOOL_PROVIDER_CONNECTION_ROUTE = createRoute({\n method: 'PATCH',\n path: '/tool-providers/:providerId/connections/:connectionId',\n responseType: 'json',\n pathParamSchema: toolProviderConnectionPathParams,\n bodySchema: updateConnectionBodySchema,\n responseSchema: updateConnectionResponseSchema,\n summary: 'Update a connection label',\n description:\n 'Updates the persisted display label on tool_provider_connections. Returns 403 when caller is neither the owner nor admin (and the row is not shared), 404 when the row does not exist.',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, connectionId, label, requestContext }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const isAdmin = requestContext ? hasAdminBypass(requestContext, TOOL_PROVIDERS_RESOURCE) : false;\n\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n if (!store) {\n throw new HTTPException(500, {\n message: 'Tool provider connections storage is not configured',\n });\n }\n\n const rows = await store.listConnectionsByAuthor({ providerId: provider.info.id });\n const match = rows.find(r => r.connectionId === connectionId);\n if (!match) {\n throw new HTTPException(404, {\n message: `Connection ${connectionId} not found for provider ${providerId}`,\n });\n }\n\n const isShared = match.scope === 'shared';\n if (!isShared && match.authorId !== callerAuthorId && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to update this connection',\n });\n }\n\n // Normalize: empty string and explicit null both clear the label.\n const nextLabel: string | null = typeof label === 'string' && label.trim().length > 0 ? label.trim() : null;\n\n await store.upsertConnection({\n authorId: match.authorId,\n providerId: provider.info.id,\n toolkit: match.toolkit,\n connectionId,\n label: nextLabel,\n scope: match.scope,\n });\n\n return { ok: true as const, label: nextLabel };\n } catch (error) {\n return handleError(error, 'Error updating tool provider connection');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/connections/:connectionId/usage — Lists agents\n * that currently pin the given connection in their `toolProviders` config.\n */\nexport const GET_TOOL_PROVIDER_CONNECTION_USAGE_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/connections/:connectionId/usage',\n responseType: 'json',\n pathParamSchema: toolProviderConnectionPathParams,\n queryParamSchema: connectionUsageQuerySchema,\n responseSchema: connectionUsageResponseSchema,\n summary: 'List agents using a connection',\n description: 'Returns the agents that pin this connection in their toolProviders config',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, connectionId, toolkit, requestContext }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const isAdmin = requestContext ? hasAdminBypass(requestContext, TOOL_PROVIDERS_RESOURCE) : false;\n\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n let ownerAuthorId: string | undefined;\n let ownerScope: 'shared' | 'per-author' | 'caller-supplied' | undefined;\n let matched = false;\n if (store) {\n const rows = await store.listConnectionsByAuthor({ providerId: provider.info.id });\n const match = rows.find(r => r.connectionId === connectionId);\n if (match) {\n matched = true;\n ownerAuthorId = match.authorId;\n ownerScope = match.scope;\n }\n }\n\n // Fail closed: if storage is configured and no row matches the\n // requested connectionId, refuse the call for non-admins so callers\n // cannot probe for other tenants' connections.\n if (store && !matched && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to view usage for this connection',\n });\n }\n\n const effectiveOwner = ownerAuthorId ?? callerAuthorId;\n const isShared = ownerScope === 'shared';\n if (!isShared && effectiveOwner !== callerAuthorId && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to view usage for this connection',\n });\n }\n\n const agents = await scanConnectionUsage(mastra, { providerId: provider.info.id, connectionId, toolkit });\n return { agents };\n } catch (error) {\n return handleError(error, 'Error listing tool provider connection usage');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/health — Provider-level health check.\n */\nexport const GET_TOOL_PROVIDER_HEALTH_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/health',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n responseSchema: toolProviderHealthResponseSchema,\n summary: 'Get tool provider health',\n description: 'Returns provider-level health (config, reachability, etc.)',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.getHealth) {\n return { ok: true };\n }\n return await provider.getHealth();\n } catch (error) {\n return handleError(error, 'Error getting tool provider health');\n }\n },\n});\n\n// ============================================================================\n// Usage scan helpers\n// ============================================================================\n\nasync function scanConnectionUsage(\n mastra: any,\n args: { providerId: string; connectionId: string; toolkit?: string },\n): Promise<Array<{ id: string; name: string }>> {\n const storage = mastra.getStorage();\n const agentsStore = await storage?.getStore('agents');\n if (!agentsStore) return [];\n\n const { agents } = await agentsStore.listResolved({ perPage: false });\n const out: Array<{ id: string; name: string }> = [];\n for (const agent of agents) {\n const config = agent?.toolProviders?.[args.providerId];\n if (!config?.connections) continue;\n for (const [toolkit, connections] of Object.entries(config.connections)) {\n if (args.toolkit && toolkit !== args.toolkit) continue;\n const match = (connections as Array<{ connectionId: string }>).some(c => c.connectionId === args.connectionId);\n if (match) {\n out.push({ id: agent.id, name: agent.name ?? agent.id });\n break;\n }\n }\n }\n return out;\n}\n\nasync function countConnectionUsage(mastra: any, connectionId: string): Promise<number> {\n const storage = mastra.getStorage();\n const agentsStore = await storage?.getStore('agents');\n if (!agentsStore) return 0;\n const { agents } = await agentsStore.listResolved({ perPage: false });\n let count = 0;\n for (const agent of agents) {\n const tp = agent?.toolProviders;\n if (!tp) continue;\n for (const config of Object.values(tp) as Array<{\n connections?: Record<string, Array<{ connectionId: string }>>;\n }>) {\n const pinned = Object.values(config?.connections ?? {}).some(arr =>\n arr.some(c => c.connectionId === connectionId),\n );\n if (pinned) {\n count += 1;\n break;\n }\n }\n }\n return count;\n}\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/tool-providers.ts"],"names":["HTTPException","requestContext","MASTRA_RESOURCE_ID_KEY","MASTRA_USER_KEY","createRoute","listToolProvidersResponseSchema","handleError","toolProviderIdPathParams","listToolProviderToolkitsResponseSchema","listToolProviderToolsQuerySchema","listToolProviderToolsResponseSchema","toolSlugPathParams","getToolProviderToolSchemaResponseSchema","authorizeToolProviderBodySchema","authorizeToolProviderResponseSchema","toolProviderAuthStatusPathParams","authStatusToolProviderResponseSchema","connectionStatusToolProviderBodySchema","connectionStatusToolProviderResponseSchema","listConnectionsQuerySchema","listConnectionsResponseSchema","hasAdminBypass","listConnectionFieldsQuerySchema","listConnectionFieldsResponseSchema","toolProviderConnectionPathParams","disconnectConnectionQuerySchema","disconnectConnectionResponseSchema","updateConnectionBodySchema","updateConnectionResponseSchema","connectionUsageQuerySchema","connectionUsageResponseSchema","toolProviderHealthResponseSchema"],"mappings":";;;;;;;;;;AAyCA,IAAM,uBAAA,GAA0B,gBAAA;AAOhC,IAAM,gBAAA,GAAmB,QAAA;AAezB,IAAI,mBAAA;AACJ,eAAe,sBAAA,GAAyB;AACtC,EAAA,IAAI,CAAC,mBAAA,EAAqB;AACxB,IAAA,mBAAA,GAAsB,MAAM,OAAO,4BAA4B,CAAA;AAAA,EACjE;AACA,EAAA,OAAO,mBAAA;AACT;AAEA,SAAS,cAAc,MAAA,EAAkD;AACvE,EAAA,IAAI,CAAC,MAAA,EAAQ;AACX,IAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,EACtE;AACA,EAAA,OAAO,MAAA;AACT;AAEA,eAAe,eAAA,CAAgB,QAAuB,UAAA,EAA2C;AAC/F,EAAA,IAAI;AACF,IAAA,OAAO,MAAA,CAAO,uBAAuB,UAAU,CAAA;AAAA,EACjD,SAAS,KAAA,EAAO;AACd,IAAA,MAAM,EAAE,wBAAA,EAAyB,GAAI,MAAM,sBAAA,EAAuB;AAClE,IAAA,IAAI,iBAAiB,wBAAA,EAA0B;AAC7C,MAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,KAAA,CAAM,SAAS,CAAA;AAAA,IACzD;AACA,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAMA,IAAI,mBAAA,GAAsB,KAAA;AAC1B,SAAS,0BAA0B,MAAA,EAAyC;AAC1E,EAAA,IAAI,mBAAA,EAAqB;AACzB,EAAA,mBAAA,GAAsB,IAAA;AACtB,EAAA,MAAA,EAAQ,IAAA;AAAA,IACN;AAAA,GAEF;AACF;AAOA,SAAS,cAAA,CAAeC,kBAA4C,MAAA,EAA2C;AAC7G,EAAA,MAAM,UAAA,GAAaA,gBAAA,EAAgB,GAAA,CAAIC,qCAAsB,CAAA;AAC7D,EAAA,IAAI,OAAO,UAAA,KAAe,QAAA,IAAY,UAAA,CAAW,SAAS,CAAA,EAAG;AAC3D,IAAA,OAAO,UAAA;AAAA,EACT;AAEA,EAAA,MAAM,IAAA,GAAOD,gBAAA,EAAgB,GAAA,CAAIE,iCAAe,CAAA;AAChD,EAAA,IAAI,IAAA,IAAQ,OAAO,IAAA,KAAS,QAAA,IAAY,QAAQ,IAAA,EAAM;AACpD,IAAA,MAAM,KAAM,IAAA,CAAyB,EAAA;AACrC,IAAA,IAAI,OAAO,EAAA,KAAO,QAAA,IAAY,EAAA,CAAG,SAAS,CAAA,EAAG;AAC3C,MAAA,OAAO,EAAA;AAAA,IACT;AAAA,EACF;AAEA,EAAA,yBAAA,CAA0B,MAAM,CAAA;AAChC,EAAA,OAAO,SAAA;AACT;AAUO,IAAM,4BAA4BC,6BAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,iBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgBC,iDAAA;AAAA,EAChB,OAAA,EAAS,qBAAA;AAAA,EACT,WAAA,EAAa,kFAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAO,KAAM;AAC7B,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,SAAA,GAAY,OAAO,gBAAA,EAAiB;AAC1C,MAAA,OAAO;AAAA,QACL,WAAW,MAAA,CAAO,MAAA,CAAO,SAAS,CAAA,CAAE,IAAI,CAAA,QAAA,MAAa;AAAA,UACnD,GAAG,QAAA,CAAS,IAAA;AAAA,UACZ,GAAI,SAAS,WAAA,GAAc,EAAE,aAAa,QAAA,CAAS,WAAA,KAAgB,EAAC;AAAA,UACpE,GAAI,SAAS,YAAA,GAAe,EAAE,cAAc,QAAA,CAAS,YAAA,KAAiB;AAAC,SACzE,CAAE;AAAA,OACJ;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAOC,6BAAA,CAAY,OAAO,8BAA8B,CAAA;AAAA,IAC1D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,oCAAoCF,6BAAA,CAAY;AAAA,EAC3D,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,sCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBG,0CAAA;AAAA,EACjB,cAAA,EAAgBC,wDAAA;AAAA,EAChB,OAAA,EAAS,6BAAA;AAAA,EACT,WAAA,EAAa,8DAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAW,KAAM;AACzC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,SAAS,iBAAA,EAAmB;AAC9B,QAAA,OAAO,MAAM,SAAS,iBAAA,EAAkB;AAAA,MAC1C;AACA,MAAA,IAAI,SAAS,YAAA,EAAc;AACzB,QAAA,OAAO,MAAM,SAAS,YAAA,EAAa;AAAA,MACrC;AACA,MAAA,OAAO,EAAE,IAAA,EAAM,EAAC,EAAE;AAAA,IACpB,SAAS,KAAA,EAAO;AACd,MAAA,OAAOF,6BAAA,CAAY,OAAO,sCAAsC,CAAA;AAAA,IAClE;AAAA,EACF;AACF,CAAC;AAKM,IAAM,iCAAiCF,6BAAA,CAAY;AAAA,EACxD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,mCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBG,0CAAA;AAAA,EACjB,gBAAA,EAAkBE,kDAAA;AAAA,EAClB,cAAA,EAAgBC,qDAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,oFAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAY,OAAA,EAAS,MAAA,EAAQ,IAAA,EAAM,OAAA,EAAQ,KAAM;AACzE,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,MAAM,OAA+E,EAAC;AACtF,MAAA,IAAI,OAAA,KAAY,MAAA,EAAW,IAAA,CAAK,OAAA,GAAU,OAAA;AAC1C,MAAA,IAAI,MAAA,KAAW,MAAA,EAAW,IAAA,CAAK,MAAA,GAAS,MAAA;AACxC,MAAA,IAAI,IAAA,KAAS,MAAA,EAAW,IAAA,CAAK,IAAA,GAAO,IAAA;AACpC,MAAA,IAAI,OAAA,KAAY,MAAA,EAAW,IAAA,CAAK,OAAA,GAAU,OAAA;AAC1C,MAAA,IAAI,SAAS,cAAA,EAAgB;AAC3B,QAAA,OAAO,MAAM,QAAA,CAAS,cAAA,CAAe,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,CAAE,MAAA,GAAS,CAAA,GAAI,IAAA,GAAO,MAAS,CAAA;AAAA,MACtF;AACA,MAAA,OAAO,MAAM,QAAA,CAAS,SAAA,CAAU,MAAA,CAAO,IAAA,CAAK,IAAI,CAAA,CAAE,MAAA,GAAS,CAAA,GAAI,IAAA,GAAO,MAAS,CAAA;AAAA,IACjF,SAAS,KAAA,EAAO;AACd,MAAA,OAAOJ,6BAAA,CAAY,OAAO,mCAAmC,CAAA;AAAA,IAC/D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,sCAAsCF,6BAAA,CAAY;AAAA,EAC7D,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,oDAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBO,oCAAA;AAAA,EACjB,cAAA,EAAgBC,yDAAA;AAAA,EAChB,OAAA,EAAS,+BAAA;AAAA,EACT,WAAA,EAAa,6DAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,UAAS,KAAM;AACnD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,aAAA,EAAe;AAC3B,QAAA,MAAM,IAAIZ,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,UAAU,mCAAmC,CAAA;AAAA,MACxG;AACA,MAAA,MAAM,MAAA,GAAS,MAAM,QAAA,CAAS,aAAA,CAAc,QAAQ,CAAA;AACpD,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAIA,+BAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,mBAAmB,QAAQ,CAAA,uBAAA,EAA0B,UAAU,CAAA,CAAA,EAAI,CAAA;AAAA,MAC7G;AACA,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAOM,6BAAA,CAAY,OAAO,yCAAyC,CAAA;AAAA,IACrE;AAAA,EACF;AACF,CAAC;AAMM,IAAM,gCAAgCF,6BAAA,CAAY;AAAA,EACvD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,uCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBG,0CAAA;AAAA,EACjB,UAAA,EAAYM,iDAAA;AAAA,EACZ,cAAA,EAAgBC,qDAAA;AAAA,EAChB,OAAA,EAAS,oCAAA;AAAA,EACT,WAAA,EAAa,sEAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,OAAA,EAAS,YAAA,EAAc,QAAA,EAAU,MAAA,EAAQ,KAAA,EAAO,KAAA,kBAAOb,gBAAA,EAAe,KAAM;AAChH,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,SAAA,EAAW;AACvB,QAAA,MAAM,IAAID,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,UAAU,+BAA+B,CAAA;AAAA,MACpG;AAKA,MAAA,MAAM,cAAA,GACJ,KAAA,KAAU,QAAA,IAAY,KAAA,KAAU,oBAAoB,KAAA,GAAQ,YAAA;AAC9D,MAAA,MAAM,gBAAA,GAAmBC,gBAAA,EAAgB,GAAA,CAAIC,qCAAsB,CAAA;AACnE,MAAA,IAAI,mBAAmB,iBAAA,EAAmB;AACxC,QAAA,IAAI,OAAO,gBAAA,KAAqB,QAAA,IAAY,gBAAA,CAAiB,WAAW,CAAA,EAAG;AACzE,UAAA,MAAM,IAAIF,gCAAc,GAAA,EAAK;AAAA,YAC3B,OAAA,EAAS,CAAA,qEAAA,EAAwEE,qCAAsB,CAAA,2BAAA,EAA8BA,qCAAsB,CAAA,uCAAA;AAAA,WAC5J,CAAA;AAAA,QACH;AAAA,MACF;AACA,MAAA,MAAM,cAAA,GAAiB,cAAA,CAAeD,gBAAA,EAAgB,MAAA,CAAO,WAAW,CAAA;AACxE,MAAA,MAAM,gBACJ,cAAA,KAAmB,QAAA,GACf,gBAAA,GACA,cAAA,KAAmB,oBAChB,gBAAA,GACD,cAAA;AAMR,MAAA,MAAM,MAAA,GAAS,YAAA,IAAgB,YAAA,CAAa,MAAA,GAAS,IAAI,YAAA,GAAe,aAAA;AACxE,MAAA,MAAM,MAAA,GAAS,MAAM,QAAA,CAAS,SAAA,CAAU,EAAE,SAAS,YAAA,EAAc,MAAA,EAAQ,QAAA,EAAU,MAAA,EAAQ,CAAA;AAI3F,MAAA,MAAM,wBAAwB,YAAA,IAAgB,YAAA,CAAa,MAAA,GAAS,CAAA,GAAI,eAAe,MAAA,CAAO,MAAA;AAC9F,MAAA,IAAI;AACF,QAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,QAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,EAAS,QAAA,CAAS,yBAAyB,CAAA;AAC/D,QAAA,IAAI,SAAS,qBAAA,EAAuB;AAClC,UAAA,MAAM,MAAM,gBAAA,CAAiB;AAAA,YAC3B,QAAA,EAAU,aAAA;AAAA,YACV,UAAA,EAAY,SAAS,IAAA,CAAK,EAAA;AAAA,YAC1B,OAAA;AAAA,YACA,YAAA,EAAc,qBAAA;AAAA,YACd,OAAO,OAAO,KAAA,KAAU,YAAY,KAAA,CAAM,MAAA,GAAS,IAAI,KAAA,GAAQ,IAAA;AAAA,YAC/D,KAAA,EAAO;AAAA,WACR,CAAA;AAAA,QACH;AAAA,MACF,SAAS,WAAA,EAAa;AACpB,QAAA,MAAA,CAAO,SAAA,IAAY,EAAG,IAAA,GAAO,mEAAA,EAAqE;AAAA,UAChG,OAAO,WAAA,YAAuB,KAAA,GAAQ,WAAA,CAAY,OAAA,GAAU,OAAO,WAAW,CAAA;AAAA,UAC9E,UAAA;AAAA,UACA,OAAA;AAAA,UACA,YAAA,EAAc;AAAA,SACf,CAAA;AAAA,MACH;AAEA,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAOK,6BAAA,CAAY,OAAO,iCAAiC,CAAA;AAAA,IAC7D;AAAA,EACF;AACF,CAAC;AAKM,IAAM,sCAAsCF,6BAAA,CAAY;AAAA,EAC7D,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,iDAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBW,kDAAA;AAAA,EACjB,cAAA,EAAgBC,sDAAA;AAAA,EAChB,OAAA,EAAS,+BAAA;AAAA,EACT,WAAA,EAAa,+DAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,QAAO,KAAM;AACjD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,aAAA,EAAe;AAC3B,QAAA,MAAM,IAAIhB,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,UAAU,mCAAmC,CAAA;AAAA,MACxG;AACA,MAAA,MAAM,MAAA,GAAS,MAAM,QAAA,CAAS,aAAA,CAAc,MAAM,CAAA;AAClD,MAAA,OAAO,EAAE,MAAA,EAAO;AAAA,IAClB,SAAS,KAAA,EAAO;AACd,MAAA,OAAOM,6BAAA,CAAY,OAAO,yCAAyC,CAAA;AAAA,IACrE;AAAA,EACF;AACF,CAAC;AAKM,IAAM,wCAAwCF,6BAAA,CAAY;AAAA,EAC/D,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,+CAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBG,0CAAA;AAAA,EACjB,UAAA,EAAYU,wDAAA;AAAA,EACZ,cAAA,EAAgBC,4DAAA;AAAA,EAChB,OAAA,EAAS,sCAAA;AAAA,EACT,WAAA,EAAa,kFAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,OAAM,KAAM;AAChD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,mBAAA,EAAqB;AACjC,QAAA,MAAM,IAAIlB,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,UAAU,yCAAyC,CAAA;AAAA,MAC9G;AACA,MAAA,MAAM,SAAS,MAAM,QAAA,CAAS,mBAAA,CAAoB,EAAE,OAAO,CAAA;AAC3D,MAAA,OAAO,EAAE,OAAO,MAAA,EAAO;AAAA,IACzB,SAAS,KAAA,EAAO;AACd,MAAA,OAAOM,6BAAA,CAAY,OAAO,iCAAiC,CAAA;AAAA,IAC7D;AAAA,EACF;AACF,CAAC;AAOM,IAAM,uCAAuCF,6BAAA,CAAY;AAAA,EAC9D,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,yCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBG,0CAAA;AAAA,EACjB,gBAAA,EAAkBY,4CAAA;AAAA,EAClB,cAAA,EAAgBC,+CAAA;AAAA,EAChB,OAAA,EAAS,2BAAA;AAAA,EACT,WAAA,EACE,uHAAA;AAAA,EACF,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO;AAAA,IACd,MAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA,EAAU,aAAA;AAAA,IACV,KAAA,EAAO,UAAA;AAAA,IACP,IAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GACF,KAAM;AACJ,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,eAAA,EAAiB;AAC7B,QAAA,MAAM,IAAIpB,gCAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,UAAU,qCAAqC,CAAA;AAAA,MAC1G;AACA,MAAA,MAAM,cAAA,GAAiB,cAAA,CAAe,cAAA,EAAgB,MAAA,CAAO,WAAW,CAAA;AACxE,MAAA,MAAM,OAAA,GAAU,cAAA,GAAiBqB,gCAAA,CAAe,cAAA,EAAgB,uBAAuB,CAAA,GAAI,KAAA;AAE3F,MAAA,MAAM,iBAAA,GACJ,WAAW,OAAO,aAAA,KAAkB,YAAY,aAAA,CAAc,MAAA,GAAS,IAAI,aAAA,GAAgB,MAAA;AAC7F,MAAA,MAAM,iBAAA,GAAoB,UAAU,iBAAA,GAAoB,cAAA;AAExD,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,MAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,EAAS,QAAA,CAAS,yBAAyB,CAAA;AAI/D,MAAA,IAAI,YAKC,EAAC;AACN,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,IAAI;AACF,UAAA,MAAM,IAAA,GAAO,MAAM,KAAA,CAAM,uBAAA,CAAwB;AAAA,YAC/C,UAAA,EAAY,SAAS,IAAA,CAAK,EAAA;AAAA,YAC1B;AAAA,WACD,CAAA;AACD,UAAA,SAAA,GAAY,IAAA,CAAK,IAAI,CAAA,CAAA,MAAM;AAAA,YACzB,UAAU,CAAA,CAAE,QAAA;AAAA,YACZ,cAAc,CAAA,CAAE,YAAA;AAAA,YAChB,OAAO,CAAA,CAAE,KAAA;AAAA,YACT,KAAA,EAAO,EAAE,KAAA,IAAS;AAAA,WACpB,CAAE,CAAA;AAAA,QACJ,SAAS,SAAA,EAAW;AAClB,UAAA,MAAA,CAAO,SAAA,IAAY,EAAG,IAAA,GAAO,kEAAA,EAAoE;AAAA,YAC/F,OAAO,SAAA,YAAqB,KAAA,GAAQ,SAAA,CAAU,OAAA,GAAU,OAAO,SAAS,CAAA;AAAA,YACxE,UAAA;AAAA,YACA;AAAA,WACD,CAAA;AAAA,QACH;AAAA,MACF;AAEA,MAAA,MAAM,SAAA,uBAAgB,GAAA,EAAY;AAClC,MAAA,MAAM,UAAA,GAAa,CAAC,UAAA,IAAc,UAAA,KAAe,QAAA;AACjD,MAAA,MAAM,aAAA,GAAgB,CAAC,UAAA,IAAc,UAAA,KAAe,YAAA;AACpD,MAAA,MAAM,kBAAA,GAAqB,CAAC,UAAA,IAAc,UAAA,KAAe,iBAAA;AACzD,MAAA,MAAM,eAAe,SAAA,CAAU,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,UAAU,QAAQ,CAAA;AAC7D,MAAA,IAAI,OAAA,IAAW,sBAAsB,MAAA,EAAW;AAC9C,QAAA,KAAA,MAAW,KAAK,SAAA,EAAW;AACzB,UAAA,IAAI,EAAE,KAAA,KAAU,QAAA,IAAY,YAAY,SAAA,CAAU,GAAA,CAAI,EAAE,QAAQ,CAAA;AAChE,UAAA,IAAI,EAAE,KAAA,KAAU,YAAA,IAAgB,eAAe,SAAA,CAAU,GAAA,CAAI,EAAE,QAAQ,CAAA;AACvE,UAAA,IAAI,EAAE,KAAA,KAAU,iBAAA,IAAqB,oBAAoB,SAAA,CAAU,GAAA,CAAI,EAAE,QAAQ,CAAA;AAAA,QACnF;AAAA,MACF,CAAA,MAAA,IAAW,WAAW,iBAAA,EAAmB;AACvC,QAAA,IAAI,aAAA,IAAiB,kBAAA,EAAoB,SAAA,CAAU,GAAA,CAAI,iBAAiB,CAAA;AACxE,QAAA,IAAI,UAAA,IAAc,YAAA,EAAc,SAAA,CAAU,GAAA,CAAI,gBAAgB,CAAA;AAAA,MAChE,CAAA,MAAO;AACL,QAAA,IAAI,aAAA,EAAe,SAAA,CAAU,GAAA,CAAI,cAAc,CAAA;AAC/C,QAAA,IAAI,UAAA,IAAc,YAAA,EAAc,SAAA,CAAU,GAAA,CAAI,gBAAgB,CAAA;AAAA,MAEhE;AAEA,MAAA,MAAM,OAAA,GAAU,KAAA,CAAM,IAAA,CAAK,SAAS,CAAA;AACpC,MAAA,IAAI,OAAA,CAAQ,WAAW,CAAA,EAAG;AACxB,QAAA,OAAO;AAAA,UACL,OAAO,EAAC;AAAA,UACR,YAAY,EAAE,IAAA,EAAM,QAAQ,CAAA,EAAG,OAAA,EAAS,SAAS,KAAA;AAAM,SACzD;AAAA,MACF;AAEA,MAAA,MAAM,aAAA,GAAgB,MAAM,QAAA,CAAS,eAAA,CAAgB;AAAA,QACnD,OAAA;AAAA,QACA,OAAA;AAAA,QACA,GAAI,OAAO,IAAA,KAAS,WAAW,EAAE,IAAA,KAAS,EAAC;AAAA,QAC3C,GAAI,OAAO,OAAA,KAAY,WAAW,EAAE,OAAA,KAAY;AAAC,OAClD,CAAA;AAED,MAAA,MAAM,WAAA,GAAc,IAAI,GAAA,CAAI,SAAA,CAAU,GAAA,CAAI,CAAA,CAAA,KAAK,CAAC,CAAA,CAAE,YAAA,EAAc,CAAC,CAAC,CAAC,CAAA;AAEnE,MAAA,MAAM,YAAA,GAAe,aAAA,CAAc,KAAA,CAAM,MAAA,CAAO,CAAA,IAAA,KAAQ;AACtD,QAAA,IAAI,CAAC,YAAY,OAAO,IAAA;AACxB,QAAA,MAAM,QAAQ,WAAA,CAAY,GAAA,CAAI,IAAA,CAAK,YAAY,GAAG,KAAA,IAAS,YAAA;AAC3D,QAAA,OAAO,KAAA,KAAU,UAAA;AAAA,MACnB,CAAC,CAAA;AAED,MAAA,OAAO;AAAA,QACL,KAAA,EAAO,YAAA,CAAa,GAAA,CAAI,CAAA,IAAA,KAAQ;AAC9B,UAAA,MAAM,GAAA,GAAM,WAAA,CAAY,GAAA,CAAI,IAAA,CAAK,YAAY,CAAA;AAC7C,UAAA,OAAO;AAAA,YACL,GAAG,IAAA;AAAA,YACH,KAAA,EAAO,KAAK,KAAA,IAAS,IAAA;AAAA,YACrB,GAAI,KAAK,KAAA,GAAQ,EAAE,OAAO,GAAA,CAAI,KAAA,KAAU;AAAC,WAC3C;AAAA,QACF,CAAC,CAAA;AAAA,QACD,YAAY,aAAA,CAAc;AAAA,OAC5B;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAOf,6BAAA,CAAY,OAAO,yCAAyC,CAAA;AAAA,IACrE;AAAA,EACF;AACF,CAAC;AAMM,IAAM,6CAA6CF,6BAAA,CAAY;AAAA,EACpE,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,+CAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBG,0CAAA;AAAA,EACjB,gBAAA,EAAkBe,iDAAA;AAAA,EAClB,cAAA,EAAgBC,oDAAA;AAAA,EAChB,OAAA,EAAS,8BAAA;AAAA,EACT,WAAA,EAAa,sGAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,OAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,SAAQ,KAAM;AAClD,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,oBAAA,EAAsB;AAClC,QAAA,OAAO,EAAE,MAAA,EAAQ,EAAC,EAAE;AAAA,MACtB;AACA,MAAA,MAAM,SAAS,MAAM,QAAA,CAAS,oBAAA,CAAqB,EAAE,SAAS,CAAA;AAC9D,MAAA,OAAO,EAAE,MAAA,EAAO;AAAA,IAClB,SAAS,KAAA,EAAO;AACd,MAAA,OAAOjB,6BAAA,CAAY,OAAO,+CAA+C,CAAA;AAAA,IAC3E;AAAA,EACF;AACF,CAAC;AAQM,IAAM,4CAA4CF,6BAAA,CAAY;AAAA,EACnE,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,uDAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBoB,kDAAA;AAAA,EACjB,gBAAA,EAAkBC,iDAAA;AAAA,EAClB,cAAA,EAAgBC,oDAAA;AAAA,EAChB,OAAA,EAAS,yBAAA;AAAA,EACT,WAAA,EACE,wJAAA;AAAA,EACF,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAY,YAAA,EAAc,KAAA,EAAO,gBAAe,KAAM;AAC9E,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,MAAM,cAAA,GAAiB,cAAA,CAAe,cAAA,EAAgB,MAAA,CAAO,WAAW,CAAA;AACxE,MAAA,MAAM,OAAA,GAAU,cAAA,GAAiBL,gCAAA,CAAe,cAAA,EAAgB,uBAAuB,CAAA,GAAI,KAAA;AAC3F,MAAA,MAAM,OAAA,GAAU,KAAA,KAAU,IAAA,IAAQ,KAAA,KAAU,MAAA;AAE5C,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,MAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,EAAS,QAAA,CAAS,yBAAyB,CAAA;AAE/D,MAAA,IAAI,aAAA;AACJ,MAAA,IAAI,UAAA;AACJ,MAAA,IAAI,OAAA,GAAU,KAAA;AACd,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,MAAM,IAAA,GAAO,MAAM,KAAA,CAAM,uBAAA,CAAwB,EAAE,UAAA,EAAY,QAAA,CAAS,IAAA,CAAK,EAAA,EAAI,CAAA;AACjF,QAAA,MAAM,QAAQ,IAAA,CAAK,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,iBAAiB,YAAY,CAAA;AAC5D,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,OAAA,GAAU,IAAA;AACV,UAAA,aAAA,GAAgB,KAAA,CAAM,QAAA;AACtB,UAAA,UAAA,GAAa,KAAA,CAAM,KAAA;AAAA,QACrB;AAAA,MACF;AAMA,MAAA,IAAI,KAAA,IAAS,CAAC,OAAA,IAAW,CAAC,OAAA,EAAS;AACjC,QAAA,MAAM,IAAIrB,gCAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,iBAAiB,aAAA,IAAiB,cAAA;AACxC,MAAA,MAAM,WAAW,UAAA,KAAe,QAAA;AAChC,MAAA,IAAI,CAAC,QAAA,IAAY,cAAA,KAAmB,cAAA,IAAkB,CAAC,OAAA,EAAS;AAC9D,QAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,IAAI,CAAC,OAAA,EAAS;AACZ,QAAA,MAAM,KAAA,GAAQ,MAAM,oBAAA,CAAqB,MAAA,EAAQ,YAAY,CAAA;AAC7D,QAAA,IAAI,QAAQ,CAAA,EAAG;AACb,UAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK;AAAA,YAC3B,OAAA,EAAS,CAAA,WAAA,EAAc,YAAY,CAAA,oBAAA,EAAuB,KAAK,CAAA,iDAAA;AAAA,WAChE,CAAA;AAAA,QACH;AAAA,MACF;AAEA,MAAA,IAAI,OAAA,GAAU,KAAA;AACd,MAAA,IAAI,SAAS,YAAA,EAAc,cAAA,IAAkB,OAAO,QAAA,CAAS,qBAAqB,UAAA,EAAY;AAC5F,QAAA,MAAM,QAAA,CAAS,iBAAiB,YAAY,CAAA;AAC5C,QAAA,OAAA,GAAU,IAAA;AAAA,MACZ;AAEA,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,MAAM,MAAM,gBAAA,CAAiB;AAAA,UAC3B,QAAA,EAAU,cAAA;AAAA,UACV,UAAA,EAAY,SAAS,IAAA,CAAK,EAAA;AAAA,UAC1B;AAAA,SACD,CAAA;AAAA,MACH;AAEA,MAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAe,OAAA,EAAQ;AAAA,IACtC,SAAS,KAAA,EAAO;AACd,MAAA,OAAOM,6BAAA,CAAY,OAAO,8CAA8C,CAAA;AAAA,IAC1E;AAAA,EACF;AACF,CAAC;AAUM,IAAM,wCAAwCF,6BAAA,CAAY;AAAA,EAC/D,MAAA,EAAQ,OAAA;AAAA,EACR,IAAA,EAAM,uDAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBoB,kDAAA;AAAA,EACjB,UAAA,EAAYG,4CAAA;AAAA,EACZ,cAAA,EAAgBC,gDAAA;AAAA,EAChB,OAAA,EAAS,2BAAA;AAAA,EACT,WAAA,EACE,wLAAA;AAAA,EACF,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAY,YAAA,EAAc,KAAA,EAAO,gBAAe,KAAM;AAC9E,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,MAAM,cAAA,GAAiB,cAAA,CAAe,cAAA,EAAgB,MAAA,CAAO,WAAW,CAAA;AACxE,MAAA,MAAM,OAAA,GAAU,cAAA,GAAiBP,gCAAA,CAAe,cAAA,EAAgB,uBAAuB,CAAA,GAAI,KAAA;AAE3F,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,MAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,EAAS,QAAA,CAAS,yBAAyB,CAAA;AAC/D,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAIrB,gCAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,IAAA,GAAO,MAAM,KAAA,CAAM,uBAAA,CAAwB,EAAE,UAAA,EAAY,QAAA,CAAS,IAAA,CAAK,EAAA,EAAI,CAAA;AACjF,MAAA,MAAM,QAAQ,IAAA,CAAK,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,iBAAiB,YAAY,CAAA;AAC5D,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS,CAAA,WAAA,EAAc,YAAY,CAAA,wBAAA,EAA2B,UAAU,CAAA;AAAA,SACzE,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,QAAA,GAAW,MAAM,KAAA,KAAU,QAAA;AACjC,MAAA,IAAI,CAAC,QAAA,IAAY,KAAA,CAAM,QAAA,KAAa,cAAA,IAAkB,CAAC,OAAA,EAAS;AAC9D,QAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAGA,MAAA,MAAM,SAAA,GAA2B,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,CAAM,IAAA,EAAK,CAAE,MAAA,GAAS,CAAA,GAAI,KAAA,CAAM,IAAA,EAAK,GAAI,IAAA;AAEvG,MAAA,MAAM,MAAM,gBAAA,CAAiB;AAAA,QAC3B,UAAU,KAAA,CAAM,QAAA;AAAA,QAChB,UAAA,EAAY,SAAS,IAAA,CAAK,EAAA;AAAA,QAC1B,SAAS,KAAA,CAAM,OAAA;AAAA,QACf,YAAA;AAAA,QACA,KAAA,EAAO,SAAA;AAAA,QACP,OAAO,KAAA,CAAM;AAAA,OACd,CAAA;AAED,MAAA,OAAO,EAAE,EAAA,EAAI,IAAA,EAAe,KAAA,EAAO,SAAA,EAAU;AAAA,IAC/C,SAAS,KAAA,EAAO;AACd,MAAA,OAAOM,6BAAA,CAAY,OAAO,yCAAyC,CAAA;AAAA,IACrE;AAAA,EACF;AACF,CAAC;AAMM,IAAM,2CAA2CF,6BAAA,CAAY;AAAA,EAClE,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,6DAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBoB,kDAAA;AAAA,EACjB,gBAAA,EAAkBK,4CAAA;AAAA,EAClB,cAAA,EAAgBC,+CAAA;AAAA,EAChB,OAAA,EAAS,gCAAA;AAAA,EACT,WAAA,EAAa,2EAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAY,YAAA,EAAc,OAAA,EAAS,gBAAe,KAAM;AAChF,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,MAAM,cAAA,GAAiB,cAAA,CAAe,cAAA,EAAgB,MAAA,CAAO,WAAW,CAAA;AACxE,MAAA,MAAM,OAAA,GAAU,cAAA,GAAiBT,gCAAA,CAAe,cAAA,EAAgB,uBAAuB,CAAA,GAAI,KAAA;AAE3F,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,MAAA,MAAM,KAAA,GAAQ,MAAM,OAAA,EAAS,QAAA,CAAS,yBAAyB,CAAA;AAC/D,MAAA,IAAI,aAAA;AACJ,MAAA,IAAI,UAAA;AACJ,MAAA,IAAI,OAAA,GAAU,KAAA;AACd,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,MAAM,IAAA,GAAO,MAAM,KAAA,CAAM,uBAAA,CAAwB,EAAE,UAAA,EAAY,QAAA,CAAS,IAAA,CAAK,EAAA,EAAI,CAAA;AACjF,QAAA,MAAM,QAAQ,IAAA,CAAK,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,iBAAiB,YAAY,CAAA;AAC5D,QAAA,IAAI,KAAA,EAAO;AACT,UAAA,OAAA,GAAU,IAAA;AACV,UAAA,aAAA,GAAgB,KAAA,CAAM,QAAA;AACtB,UAAA,UAAA,GAAa,KAAA,CAAM,KAAA;AAAA,QACrB;AAAA,MACF;AAKA,MAAA,IAAI,KAAA,IAAS,CAAC,OAAA,IAAW,CAAC,OAAA,EAAS;AACjC,QAAA,MAAM,IAAIrB,gCAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,iBAAiB,aAAA,IAAiB,cAAA;AACxC,MAAA,MAAM,WAAW,UAAA,KAAe,QAAA;AAChC,MAAA,IAAI,CAAC,QAAA,IAAY,cAAA,KAAmB,cAAA,IAAkB,CAAC,OAAA,EAAS;AAC9D,QAAA,MAAM,IAAIA,gCAAc,GAAA,EAAK;AAAA,UAC3B,OAAA,EAAS;AAAA,SACV,CAAA;AAAA,MACH;AAEA,MAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,CAAoB,MAAA,EAAQ,EAAE,UAAA,EAAY,QAAA,CAAS,IAAA,CAAK,EAAA,EAAI,YAAA,EAAc,OAAA,EAAS,CAAA;AACxG,MAAA,OAAO,EAAE,MAAA,EAAO;AAAA,IAClB,SAAS,KAAA,EAAO;AACd,MAAA,OAAOM,6BAAA,CAAY,OAAO,8CAA8C,CAAA;AAAA,IAC1E;AAAA,EACF;AACF,CAAC;AAKM,IAAM,iCAAiCF,6BAAA,CAAY;AAAA,EACxD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,oCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiBG,0CAAA;AAAA,EACjB,cAAA,EAAgBwB,kDAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,4DAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,YAAW,KAAM;AACzC,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,MAAA,CAAO,SAAA,EAAW,CAAA;AAC/C,MAAA,MAAM,QAAA,GAAW,MAAM,eAAA,CAAgB,MAAA,EAAQ,UAAU,CAAA;AACzD,MAAA,IAAI,CAAC,SAAS,SAAA,EAAW;AACvB,QAAA,OAAO,EAAE,IAAI,IAAA,EAAK;AAAA,MACpB;AACA,MAAA,OAAO,MAAM,SAAS,SAAA,EAAU;AAAA,IAClC,SAAS,KAAA,EAAO;AACd,MAAA,OAAOzB,6BAAA,CAAY,OAAO,oCAAoC,CAAA;AAAA,IAChE;AAAA,EACF;AACF,CAAC;AAMD,eAAe,mBAAA,CACb,QACA,IAAA,EAC8C;AAC9C,EAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,EAAA,MAAM,WAAA,GAAc,MAAM,OAAA,EAAS,QAAA,CAAS,QAAQ,CAAA;AACpD,EAAA,IAAI,CAAC,WAAA,EAAa,OAAO,EAAC;AAE1B,EAAA,MAAM,EAAE,QAAO,GAAI,MAAM,YAAY,YAAA,CAAa,EAAE,OAAA,EAAS,KAAA,EAAO,CAAA;AACpE,EAAA,MAAM,MAA2C,EAAC;AAClD,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAM,MAAA,GAAS,KAAA,EAAO,aAAA,GAAgB,IAAA,CAAK,UAAU,CAAA;AACrD,IAAA,IAAI,CAAC,QAAQ,WAAA,EAAa;AAC1B,IAAA,KAAA,MAAW,CAAC,SAAS,WAAW,CAAA,IAAK,OAAO,OAAA,CAAQ,MAAA,CAAO,WAAW,CAAA,EAAG;AACvE,MAAA,IAAI,IAAA,CAAK,OAAA,IAAW,OAAA,KAAY,IAAA,CAAK,OAAA,EAAS;AAC9C,MAAA,MAAM,QAAS,WAAA,CAAgD,IAAA,CAAK,OAAK,CAAA,CAAE,YAAA,KAAiB,KAAK,YAAY,CAAA;AAC7G,MAAA,IAAI,KAAA,EAAO;AACT,QAAA,GAAA,CAAI,IAAA,CAAK,EAAE,EAAA,EAAI,KAAA,CAAM,EAAA,EAAI,MAAM,KAAA,CAAM,IAAA,IAAQ,KAAA,CAAM,EAAA,EAAI,CAAA;AACvD,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,GAAA;AACT;AAEA,eAAe,oBAAA,CAAqB,QAAa,YAAA,EAAuC;AACtF,EAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,EAAA,MAAM,WAAA,GAAc,MAAM,OAAA,EAAS,QAAA,CAAS,QAAQ,CAAA;AACpD,EAAA,IAAI,CAAC,aAAa,OAAO,CAAA;AACzB,EAAA,MAAM,EAAE,QAAO,GAAI,MAAM,YAAY,YAAA,CAAa,EAAE,OAAA,EAAS,KAAA,EAAO,CAAA;AACpE,EAAA,IAAI,KAAA,GAAQ,CAAA;AACZ,EAAA,KAAA,MAAW,SAAS,MAAA,EAAQ;AAC1B,IAAA,MAAM,KAAK,KAAA,EAAO,aAAA;AAClB,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,KAAA,MAAW,MAAA,IAAU,MAAA,CAAO,MAAA,CAAO,EAAE,CAAA,EAEjC;AACF,MAAA,MAAM,SAAS,MAAA,CAAO,MAAA,CAAO,QAAQ,WAAA,IAAe,EAAE,CAAA,CAAE,IAAA;AAAA,QAAK,SAC3D,GAAA,CAAI,IAAA,CAAK,CAAA,CAAA,KAAK,CAAA,CAAE,iBAAiB,YAAY;AAAA,OAC/C;AACA,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,KAAA,IAAS,CAAA;AACT,QAAA;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACA,EAAA,OAAO,KAAA;AACT","file":"chunk-HOOYQBNB.cjs","sourcesContent":["import type { IMastraEditor } from '@mastra/core/editor';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport { MASTRA_RESOURCE_ID_KEY } from '@mastra/core/request-context';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type * as ToolProviderModule from '@mastra/core/tool-provider';\nimport type { ToolProvider } from '@mastra/core/tool-provider';\n\nimport { MASTRA_USER_KEY } from '../constants';\nimport { HTTPException } from '../http-exception';\nimport {\n authorizeToolProviderBodySchema,\n authorizeToolProviderResponseSchema,\n authStatusToolProviderResponseSchema,\n connectionStatusToolProviderBodySchema,\n connectionStatusToolProviderResponseSchema,\n connectionUsageQuerySchema,\n connectionUsageResponseSchema,\n disconnectConnectionQuerySchema,\n disconnectConnectionResponseSchema,\n getToolProviderToolSchemaResponseSchema,\n listConnectionFieldsQuerySchema,\n listConnectionFieldsResponseSchema,\n listConnectionsQuerySchema,\n listConnectionsResponseSchema,\n listToolProviderToolkitsResponseSchema,\n listToolProviderToolsQuerySchema,\n listToolProviderToolsResponseSchema,\n listToolProvidersResponseSchema,\n toolProviderAuthStatusPathParams,\n toolProviderConnectionPathParams,\n toolProviderHealthResponseSchema,\n toolProviderIdPathParams,\n toolSlugPathParams,\n updateConnectionBodySchema,\n updateConnectionResponseSchema,\n} from '../schemas/tool-providers';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\nimport { hasAdminBypass } from './authorship';\nimport { handleError } from './error';\n\nconst TOOL_PROVIDERS_RESOURCE = 'tool-providers' as const;\n\n/**\n * Mirrors `@mastra/core/tool-provider#SHARED_BUCKET_ID`. Inlined locally so this\n * module evaluates under any peer-compatible core; a regression test in\n * `tool-providers.test.ts` verifies the literal stays in lockstep with core.\n */\nconst SHARED_BUCKET_ID = 'shared' as const;\n\n// ============================================================================\n// Helpers\n// ============================================================================\n\n/**\n * Lazily import `@mastra/core/tool-provider` so this server module can evaluate\n * under any peer-compatible core. The new value exports (`UnknownToolProviderError`,\n * `SHARED_BUCKET_ID`) ship in core `>=1.39.0-0`; users on older cores who never\n * configure a `MastraEditor` short-circuit via `requireEditor` long before this\n * runs. ESM caches one module instance per resolved specifier so the\n * `instanceof` check below sees the same class identity that `@mastra/editor`\n * throws.\n */\nlet _toolProviderModule: typeof ToolProviderModule | undefined;\nasync function loadToolProviderModule() {\n if (!_toolProviderModule) {\n _toolProviderModule = await import('@mastra/core/tool-provider');\n }\n return _toolProviderModule;\n}\n\nfunction requireEditor(editor: IMastraEditor | undefined): IMastraEditor {\n if (!editor) {\n throw new HTTPException(500, { message: 'Editor is not configured' });\n }\n return editor;\n}\n\nasync function resolveProvider(editor: IMastraEditor, providerId: string): Promise<ToolProvider> {\n try {\n return editor.getToolProviderOrThrow(providerId);\n } catch (error) {\n const { UnknownToolProviderError } = await loadToolProviderModule();\n if (error instanceof UnknownToolProviderError) {\n throw new HTTPException(404, { message: error.message });\n }\n throw error;\n }\n}\n\n// Emit a single warn per process when the connection-owner fallback fires.\n// Multi-tenant deployments that forget to wire `mapUserToResourceId` (or\n// `MASTRA_USER_KEY`) silently funnel every `caller-supplied` pin into one\n// shared OAuth account — surface that misconfiguration once.\nlet defaultBucketWarned = false;\nfunction warnDefaultBucketFallback(logger: IMastraLogger | undefined): void {\n if (defaultBucketWarned) return;\n defaultBucketWarned = true;\n logger?.warn(\n '[tool-providers] caller-supplied scope falling back to shared \"default\" bucket — ' +\n 'wire mapUserToResourceId or set MASTRA_USER_KEY to avoid cross-tenant OAuth sharing',\n );\n}\n\n/**\n * Resolve the connection owner (provider `userId` bucket) from the caller's\n * `RequestContext`. Mirrors the runtime fan-out fallback to `'default'` when\n * no auth context is present so OSS deployments still work.\n */\nfunction resolveOwnerId(requestContext: RequestContext | undefined, logger: IMastraLogger | undefined): string {\n const resourceId = requestContext?.get(MASTRA_RESOURCE_ID_KEY);\n if (typeof resourceId === 'string' && resourceId.length > 0) {\n return resourceId;\n }\n\n const user = requestContext?.get(MASTRA_USER_KEY);\n if (user && typeof user === 'object' && 'id' in user) {\n const id = (user as { id: unknown }).id;\n if (typeof id === 'string' && id.length > 0) {\n return id;\n }\n }\n\n warnDefaultBucketFallback(logger);\n return 'default';\n}\n\n// ============================================================================\n// Route Definitions\n// ============================================================================\n\n/**\n * GET /tool-providers — List all registered tool providers with their\n * capabilities (when the provider exposes them).\n */\nexport const LIST_TOOL_PROVIDERS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers',\n responseType: 'json',\n responseSchema: listToolProvidersResponseSchema,\n summary: 'List tool providers',\n description: 'Returns a list of all registered tool providers with their info and capabilities',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const providers = editor.getToolProviders();\n return {\n providers: Object.values(providers).map(provider => ({\n ...provider.info,\n ...(provider.displayName ? { displayName: provider.displayName } : {}),\n ...(provider.capabilities ? { capabilities: provider.capabilities } : {}),\n })),\n };\n } catch (error) {\n return handleError(error, 'Error listing tool providers');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/toolkits — Toolkits exposed by a provider.\n */\nexport const LIST_TOOL_PROVIDER_TOOLKITS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/toolkits',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n responseSchema: listToolProviderToolkitsResponseSchema,\n summary: 'List tool provider toolkits',\n description: 'Returns the toolkits available from a specific tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (provider.listToolkitsVNext) {\n return await provider.listToolkitsVNext();\n }\n if (provider.listToolkits) {\n return await provider.listToolkits();\n }\n return { data: [] };\n } catch (error) {\n return handleError(error, 'Error listing tool provider toolkits');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools — List tools, optionally filtered.\n */\nexport const LIST_TOOL_PROVIDER_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listToolProviderToolsQuerySchema,\n responseSchema: listToolProviderToolsResponseSchema,\n summary: 'List tool provider tools',\n description: 'Returns the tools available from a specific tool provider, with optional filtering',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit, search, page, perPage }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n const opts: { toolkit?: string; search?: string; page?: number; perPage?: number } = {};\n if (toolkit !== undefined) opts.toolkit = toolkit;\n if (search !== undefined) opts.search = search;\n if (page !== undefined) opts.page = page;\n if (perPage !== undefined) opts.perPage = perPage;\n if (provider.listToolsVNext) {\n return await provider.listToolsVNext(Object.keys(opts).length > 0 ? opts : undefined);\n }\n return await provider.listTools(Object.keys(opts).length > 0 ? opts : undefined);\n } catch (error) {\n return handleError(error, 'Error listing tool provider tools');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/tools/:toolSlug/schema — Tool schema.\n */\nexport const GET_TOOL_PROVIDER_TOOL_SCHEMA_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/tools/:toolSlug/schema',\n responseType: 'json',\n pathParamSchema: toolSlugPathParams,\n responseSchema: getToolProviderToolSchemaResponseSchema,\n summary: 'Get tool provider tool schema',\n description: 'Returns the schema for a specific tool from a tool provider',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolSlug }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.getToolSchema) {\n throw new HTTPException(404, { message: `Tool provider ${providerId} does not support getToolSchema` });\n }\n const schema = await provider.getToolSchema(toolSlug);\n if (!schema) {\n throw new HTTPException(404, { message: `Schema for tool ${toolSlug} not found in provider ${providerId}` });\n }\n return schema;\n } catch (error) {\n return handleError(error, 'Error getting tool provider tool schema');\n }\n },\n});\n\n/**\n * POST /tool-providers/:providerId/authorize — Start an OAuth flow and persist\n * a `tool_provider_connections` row for label / scope joins.\n */\nexport const AUTHORIZE_TOOL_PROVIDER_ROUTE = createRoute({\n method: 'POST',\n path: '/tool-providers/:providerId/authorize',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n bodySchema: authorizeToolProviderBodySchema,\n responseSchema: authorizeToolProviderResponseSchema,\n summary: 'Authorize tool provider connection',\n description: 'Starts an OAuth flow and returns a redirect URL + opaque auth handle',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit, connectionId, toolName, config, label, scope, requestContext }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.authorize) {\n throw new HTTPException(400, { message: `Tool provider ${providerId} does not support authorize` });\n }\n // Per-pin scope:\n // - 'shared' buckets under SHARED_BUCKET_ID.\n // - 'caller-supplied' buckets under request-context resourceId (400 if missing).\n // - 'per-author' (default) buckets under the caller's resolved authorId.\n const effectiveScope: 'shared' | 'per-author' | 'caller-supplied' =\n scope === 'shared' || scope === 'caller-supplied' ? scope : 'per-author';\n const callerResourceId = requestContext?.get(MASTRA_RESOURCE_ID_KEY);\n if (effectiveScope === 'caller-supplied') {\n if (typeof callerResourceId !== 'string' || callerResourceId.length === 0) {\n throw new HTTPException(400, {\n message: `Cannot authorize caller-supplied connection: request context has no '${MASTRA_RESOURCE_ID_KEY}'. Set requestContext.set('${MASTRA_RESOURCE_ID_KEY}', <userId>) before calling /authorize.`,\n });\n }\n }\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const ownerAuthorId =\n effectiveScope === 'shared'\n ? SHARED_BUCKET_ID\n : effectiveScope === 'caller-supplied'\n ? (callerResourceId as string)\n : callerAuthorId;\n\n // Fresh connect (no connectionId) uses the resolved owner id as the\n // provider bucket so the adapter creates the connection under the same\n // userId the runtime will resolve to at execution time. Re-auth (caller\n // passed an existing connectionId) is left untouched.\n const bucket = connectionId && connectionId.length > 0 ? connectionId : ownerAuthorId;\n const result = await provider.authorize({ toolkit, connectionId: bucket, toolName, config });\n\n // Persist label + scope. Upsert even when label is null/undefined so the\n // row exists for later list-join in the picker.\n const persistedConnectionId = connectionId && connectionId.length > 0 ? connectionId : result.authId;\n try {\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n if (store && persistedConnectionId) {\n await store.upsertConnection({\n authorId: ownerAuthorId,\n providerId: provider.info.id,\n toolkit,\n connectionId: persistedConnectionId,\n label: typeof label === 'string' && label.length > 0 ? label : null,\n scope: effectiveScope,\n });\n }\n } catch (upsertError) {\n mastra.getLogger?.()?.warn?.('[tool-providers] failed to upsert tool_provider_connections label', {\n error: upsertError instanceof Error ? upsertError.message : String(upsertError),\n providerId,\n toolkit,\n connectionId: persistedConnectionId,\n });\n }\n\n return result;\n } catch (error) {\n return handleError(error, 'Error authorizing tool provider');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/auth-status/:authId — Poll OAuth flow status.\n */\nexport const GET_TOOL_PROVIDER_AUTH_STATUS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/auth-status/:authId',\n responseType: 'json',\n pathParamSchema: toolProviderAuthStatusPathParams,\n responseSchema: authStatusToolProviderResponseSchema,\n summary: 'Get tool provider auth status',\n description: 'Polls the OAuth flow status for an outstanding authorize call',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, authId }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.getAuthStatus) {\n throw new HTTPException(400, { message: `Tool provider ${providerId} does not support getAuthStatus` });\n }\n const status = await provider.getAuthStatus(authId);\n return { status };\n } catch (error) {\n return handleError(error, 'Error getting tool provider auth status');\n }\n },\n});\n\n/**\n * POST /tool-providers/:providerId/connection-status — Batch-check connection liveness.\n */\nexport const TOOL_PROVIDER_CONNECTION_STATUS_ROUTE = createRoute({\n method: 'POST',\n path: '/tool-providers/:providerId/connection-status',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n bodySchema: connectionStatusToolProviderBodySchema,\n responseSchema: connectionStatusToolProviderResponseSchema,\n summary: 'Get connection status for a provider',\n description: 'Batch-checks whether a set of (connectionId, toolkit) tuples are still connected',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, items }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.getConnectionStatus) {\n throw new HTTPException(400, { message: `Tool provider ${providerId} does not support getConnectionStatus` });\n }\n const result = await provider.getConnectionStatus({ items });\n return { items: result };\n } catch (error) {\n return handleError(error, 'Error getting connection status');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/connections — Existing provider connections\n * scoped to a toolkit. Admin callers can pass `authorId` and `scope` filters;\n * non-admins always see only their own + shared rows.\n */\nexport const LIST_TOOL_PROVIDER_CONNECTIONS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/connections',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listConnectionsQuerySchema,\n responseSchema: listConnectionsResponseSchema,\n summary: 'List existing connections',\n description:\n 'Returns existing provider connections on a toolkit, so the picker can offer them for pinning without re-running OAuth',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({\n mastra,\n providerId,\n toolkit,\n authorId: queryAuthorId,\n scope: queryScope,\n page,\n perPage,\n requestContext,\n }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.listConnections) {\n throw new HTTPException(400, { message: `Tool provider ${providerId} does not support listConnections` });\n }\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const isAdmin = requestContext ? hasAdminBypass(requestContext, TOOL_PROVIDERS_RESOURCE) : false;\n\n const requestedAuthorId =\n isAdmin && typeof queryAuthorId === 'string' && queryAuthorId.length > 0 ? queryAuthorId : undefined;\n const effectiveAuthorId = isAdmin ? requestedAuthorId : callerAuthorId;\n\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n\n // Strategy B: seed userIds[] from persisted rows so admins can enumerate\n // connections owned by other authors.\n let labelRows: Array<{\n authorId: string;\n connectionId: string;\n label: string | null;\n scope: 'shared' | 'per-author' | 'caller-supplied';\n }> = [];\n if (store) {\n try {\n const rows = await store.listConnectionsByAuthor({\n providerId: provider.info.id,\n toolkit,\n });\n labelRows = rows.map(r => ({\n authorId: r.authorId,\n connectionId: r.connectionId,\n label: r.label,\n scope: r.scope ?? 'per-author',\n }));\n } catch (joinError) {\n mastra.getLogger?.()?.warn?.('[tool-providers] failed to join tool_provider_connections labels', {\n error: joinError instanceof Error ? joinError.message : String(joinError),\n providerId,\n toolkit,\n });\n }\n }\n\n const userIdSet = new Set<string>();\n const wantShared = !queryScope || queryScope === 'shared';\n const wantPerAuthor = !queryScope || queryScope === 'per-author';\n const wantCallerSupplied = !queryScope || queryScope === 'caller-supplied';\n const hasSharedRow = labelRows.some(r => r.scope === 'shared');\n if (isAdmin && effectiveAuthorId === undefined) {\n for (const r of labelRows) {\n if (r.scope === 'shared' && wantShared) userIdSet.add(r.authorId);\n if (r.scope === 'per-author' && wantPerAuthor) userIdSet.add(r.authorId);\n if (r.scope === 'caller-supplied' && wantCallerSupplied) userIdSet.add(r.authorId);\n }\n } else if (isAdmin && effectiveAuthorId) {\n if (wantPerAuthor || wantCallerSupplied) userIdSet.add(effectiveAuthorId);\n if (wantShared && hasSharedRow) userIdSet.add(SHARED_BUCKET_ID);\n } else {\n if (wantPerAuthor) userIdSet.add(callerAuthorId);\n if (wantShared && hasSharedRow) userIdSet.add(SHARED_BUCKET_ID);\n // Non-admins never enumerate caller-supplied connections.\n }\n\n const userIds = Array.from(userIdSet);\n if (userIds.length === 0) {\n return {\n items: [],\n pagination: { page: page ?? 1, perPage, hasMore: false },\n };\n }\n\n const adapterResult = await provider.listConnections({\n toolkit,\n userIds,\n ...(typeof page === 'number' ? { page } : {}),\n ...(typeof perPage === 'number' ? { perPage } : {}),\n });\n\n const rowByConnId = new Map(labelRows.map(r => [r.connectionId, r]));\n\n const visibleItems = adapterResult.items.filter(item => {\n if (!queryScope) return true;\n const scope = rowByConnId.get(item.connectionId)?.scope ?? 'per-author';\n return scope === queryScope;\n });\n\n return {\n items: visibleItems.map(item => {\n const row = rowByConnId.get(item.connectionId);\n return {\n ...item,\n label: row?.label ?? null,\n ...(row?.scope ? { scope: row.scope } : {}),\n };\n }),\n pagination: adapterResult.pagination,\n };\n } catch (error) {\n return handleError(error, 'Error listing tool provider connections');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/connection-fields — Dynamic auth fields\n * the picker should collect before authorize (e.g. Confluence subdomain).\n */\nexport const LIST_TOOL_PROVIDER_CONNECTION_FIELDS_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/connection-fields',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n queryParamSchema: listConnectionFieldsQuerySchema,\n responseSchema: listConnectionFieldsResponseSchema,\n summary: 'List connection field schema',\n description: 'Returns a list of provider-specific fields the UI should collect before initiating an authorize call',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, toolkit }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.listConnectionFields) {\n return { fields: [] };\n }\n const fields = await provider.listConnectionFields({ toolkit });\n return { fields };\n } catch (error) {\n return handleError(error, 'Error listing tool provider connection fields');\n }\n },\n});\n\n/**\n * DELETE /tool-providers/:providerId/connections/:connectionId — Disconnect.\n * Without `?force=true` rejects when the connection is still pinned by any\n * agent. With `?force=true` revokes at the provider (best-effort) and drops\n * the persisted row.\n */\nexport const DISCONNECT_TOOL_PROVIDER_CONNECTION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/tool-providers/:providerId/connections/:connectionId',\n responseType: 'json',\n pathParamSchema: toolProviderConnectionPathParams,\n queryParamSchema: disconnectConnectionQuerySchema,\n responseSchema: disconnectConnectionResponseSchema,\n summary: 'Disconnect a connection',\n description:\n 'Revokes the provider-side connection (if supported) and removes the persisted tool_provider_connections row. Use `?force=true` to bypass usage checks.',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, connectionId, force, requestContext }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const isAdmin = requestContext ? hasAdminBypass(requestContext, TOOL_PROVIDERS_RESOURCE) : false;\n const isForce = force === true || force === 'true';\n\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n\n let ownerAuthorId: string | undefined;\n let ownerScope: 'shared' | 'per-author' | 'caller-supplied' | undefined;\n let matched = false;\n if (store) {\n const rows = await store.listConnectionsByAuthor({ providerId: provider.info.id });\n const match = rows.find(r => r.connectionId === connectionId);\n if (match) {\n matched = true;\n ownerAuthorId = match.authorId;\n ownerScope = match.scope;\n }\n }\n\n // Fail closed: if storage is configured and no row matches the\n // requested connectionId, refuse the call for non-admins. Without\n // this guard, a caller could trigger provider-side `revokeConnection`\n // against another tenant's connectionId by guessing it.\n if (store && !matched && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to disconnect this connection',\n });\n }\n\n const effectiveOwner = ownerAuthorId ?? callerAuthorId;\n const isShared = ownerScope === 'shared';\n if (!isShared && effectiveOwner !== callerAuthorId && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to disconnect this connection',\n });\n }\n\n if (!isForce) {\n const usage = await countConnectionUsage(mastra, connectionId);\n if (usage > 0) {\n throw new HTTPException(409, {\n message: `Connection ${connectionId} is still pinned by ${usage} agent(s). Pass ?force=true to disconnect anyway.`,\n });\n }\n }\n\n let revoked = false;\n if (provider.capabilities?.supportsRevoke && typeof provider.revokeConnection === 'function') {\n await provider.revokeConnection(connectionId);\n revoked = true;\n }\n\n if (store) {\n await store.deleteConnection({\n authorId: effectiveOwner,\n providerId: provider.info.id,\n connectionId,\n });\n }\n\n return { ok: true as const, revoked };\n } catch (error) {\n return handleError(error, 'Error disconnecting tool provider connection');\n }\n },\n});\n\n/**\n * PATCH /tool-providers/:providerId/connections/:connectionId — Update a\n * connection's persisted display label. Idempotent. Ownership-gated the same\n * way as DISCONNECT: only the connection owner (or an admin) may rename,\n * unless the row is `scope: 'shared'`.\n *\n * Pass `label: null` (or an empty string) to clear the existing label.\n */\nexport const UPDATE_TOOL_PROVIDER_CONNECTION_ROUTE = createRoute({\n method: 'PATCH',\n path: '/tool-providers/:providerId/connections/:connectionId',\n responseType: 'json',\n pathParamSchema: toolProviderConnectionPathParams,\n bodySchema: updateConnectionBodySchema,\n responseSchema: updateConnectionResponseSchema,\n summary: 'Update a connection label',\n description:\n 'Updates the persisted display label on tool_provider_connections. Returns 403 when caller is neither the owner nor admin (and the row is not shared), 404 when the row does not exist.',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, connectionId, label, requestContext }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const isAdmin = requestContext ? hasAdminBypass(requestContext, TOOL_PROVIDERS_RESOURCE) : false;\n\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n if (!store) {\n throw new HTTPException(500, {\n message: 'Tool provider connections storage is not configured',\n });\n }\n\n const rows = await store.listConnectionsByAuthor({ providerId: provider.info.id });\n const match = rows.find(r => r.connectionId === connectionId);\n if (!match) {\n throw new HTTPException(404, {\n message: `Connection ${connectionId} not found for provider ${providerId}`,\n });\n }\n\n const isShared = match.scope === 'shared';\n if (!isShared && match.authorId !== callerAuthorId && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to update this connection',\n });\n }\n\n // Normalize: empty string and explicit null both clear the label.\n const nextLabel: string | null = typeof label === 'string' && label.trim().length > 0 ? label.trim() : null;\n\n await store.upsertConnection({\n authorId: match.authorId,\n providerId: provider.info.id,\n toolkit: match.toolkit,\n connectionId,\n label: nextLabel,\n scope: match.scope,\n });\n\n return { ok: true as const, label: nextLabel };\n } catch (error) {\n return handleError(error, 'Error updating tool provider connection');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/connections/:connectionId/usage — Lists agents\n * that currently pin the given connection in their `toolProviders` config.\n */\nexport const GET_TOOL_PROVIDER_CONNECTION_USAGE_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/connections/:connectionId/usage',\n responseType: 'json',\n pathParamSchema: toolProviderConnectionPathParams,\n queryParamSchema: connectionUsageQuerySchema,\n responseSchema: connectionUsageResponseSchema,\n summary: 'List agents using a connection',\n description: 'Returns the agents that pin this connection in their toolProviders config',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId, connectionId, toolkit, requestContext }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n const callerAuthorId = resolveOwnerId(requestContext, mastra.getLogger());\n const isAdmin = requestContext ? hasAdminBypass(requestContext, TOOL_PROVIDERS_RESOURCE) : false;\n\n const storage = mastra.getStorage();\n const store = await storage?.getStore('toolProviderConnections');\n let ownerAuthorId: string | undefined;\n let ownerScope: 'shared' | 'per-author' | 'caller-supplied' | undefined;\n let matched = false;\n if (store) {\n const rows = await store.listConnectionsByAuthor({ providerId: provider.info.id });\n const match = rows.find(r => r.connectionId === connectionId);\n if (match) {\n matched = true;\n ownerAuthorId = match.authorId;\n ownerScope = match.scope;\n }\n }\n\n // Fail closed: if storage is configured and no row matches the\n // requested connectionId, refuse the call for non-admins so callers\n // cannot probe for other tenants' connections.\n if (store && !matched && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to view usage for this connection',\n });\n }\n\n const effectiveOwner = ownerAuthorId ?? callerAuthorId;\n const isShared = ownerScope === 'shared';\n if (!isShared && effectiveOwner !== callerAuthorId && !isAdmin) {\n throw new HTTPException(403, {\n message: 'You do not have permission to view usage for this connection',\n });\n }\n\n const agents = await scanConnectionUsage(mastra, { providerId: provider.info.id, connectionId, toolkit });\n return { agents };\n } catch (error) {\n return handleError(error, 'Error listing tool provider connection usage');\n }\n },\n});\n\n/**\n * GET /tool-providers/:providerId/health — Provider-level health check.\n */\nexport const GET_TOOL_PROVIDER_HEALTH_ROUTE = createRoute({\n method: 'GET',\n path: '/tool-providers/:providerId/health',\n responseType: 'json',\n pathParamSchema: toolProviderIdPathParams,\n responseSchema: toolProviderHealthResponseSchema,\n summary: 'Get tool provider health',\n description: 'Returns provider-level health (config, reachability, etc.)',\n tags: ['Tool Providers'],\n requiresAuth: true,\n handler: async ({ mastra, providerId }) => {\n try {\n const editor = requireEditor(mastra.getEditor());\n const provider = await resolveProvider(editor, providerId);\n if (!provider.getHealth) {\n return { ok: true };\n }\n return await provider.getHealth();\n } catch (error) {\n return handleError(error, 'Error getting tool provider health');\n }\n },\n});\n\n// ============================================================================\n// Usage scan helpers\n// ============================================================================\n\nasync function scanConnectionUsage(\n mastra: any,\n args: { providerId: string; connectionId: string; toolkit?: string },\n): Promise<Array<{ id: string; name: string }>> {\n const storage = mastra.getStorage();\n const agentsStore = await storage?.getStore('agents');\n if (!agentsStore) return [];\n\n const { agents } = await agentsStore.listResolved({ perPage: false });\n const out: Array<{ id: string; name: string }> = [];\n for (const agent of agents) {\n const config = agent?.toolProviders?.[args.providerId];\n if (!config?.connections) continue;\n for (const [toolkit, connections] of Object.entries(config.connections)) {\n if (args.toolkit && toolkit !== args.toolkit) continue;\n const match = (connections as Array<{ connectionId: string }>).some(c => c.connectionId === args.connectionId);\n if (match) {\n out.push({ id: agent.id, name: agent.name ?? agent.id });\n break;\n }\n }\n }\n return out;\n}\n\nasync function countConnectionUsage(mastra: any, connectionId: string): Promise<number> {\n const storage = mastra.getStorage();\n const agentsStore = await storage?.getStore('agents');\n if (!agentsStore) return 0;\n const { agents } = await agentsStore.listResolved({ perPage: false });\n let count = 0;\n for (const agent of agents) {\n const tp = agent?.toolProviders;\n if (!tp) continue;\n for (const config of Object.values(tp) as Array<{\n connections?: Record<string, Array<{ connectionId: string }>>;\n }>) {\n const pinned = Object.values(config?.connections ?? {}).some(arr =>\n arr.some(c => c.connectionId === connectionId),\n );\n if (pinned) {\n count += 1;\n break;\n }\n }\n }\n return count;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var chunk4C5RVGHE_cjs = require('./chunk-4C5RVGHE.cjs');
4
- var chunkH7KDCXLQ_cjs = require('./chunk-H7KDCXLQ.cjs');
4
+ var chunkPXLC5SNM_cjs = require('./chunk-PXLC5SNM.cjs');
5
5
  var chunk24YYB3J7_cjs = require('./chunk-24YYB3J7.cjs');
6
6
  var chunkPFKYMKIH_cjs = require('./chunk-PFKYMKIH.cjs');
7
7
  var chunkDIG2K5CV_cjs = require('./chunk-DIG2K5CV.cjs');
@@ -220,7 +220,7 @@ var snapshotConfigSchema2 = v4.z.object({
220
220
  workflows: conditionalFieldSchema(v4.z.record(v4.z.string(), toolConfigSchema)).optional().describe("Workflow keys with optional per-workflow config \u2014 static or conditional"),
221
221
  agents: conditionalFieldSchema(v4.z.record(v4.z.string(), toolConfigSchema)).optional().describe("Agent keys with optional per-agent config \u2014 static or conditional"),
222
222
  integrationTools: conditionalFieldSchema(v4.z.record(v4.z.string(), mcpClientToolsConfigSchema)).optional().describe("Map of tool provider IDs to their tool configurations \u2014 static or conditional"),
223
- toolProviders: conditionalFieldSchema(chunkH7KDCXLQ_cjs.toolProvidersSchema).optional().describe(
223
+ toolProviders: conditionalFieldSchema(chunkPXLC5SNM_cjs.toolProvidersSchema).optional().describe(
224
224
  "Tool provider connections and per-tool config (provider-agnostic). Coexists with the deprecated `integrationTools` field."
225
225
  ),
226
226
  mcpClients: conditionalFieldSchema(v4.z.record(v4.z.string(), mcpClientToolsConfigSchema)).optional().describe("Map of stored MCP client IDs to their tool configurations \u2014 static or conditional"),
@@ -287,7 +287,7 @@ var storedAgentSchema = v4.z.object({
287
287
  workflows: conditionalFieldSchema(v4.z.record(v4.z.string(), toolConfigSchema)).optional().describe("Workflow keys with optional per-workflow config \u2014 static or conditional"),
288
288
  agents: conditionalFieldSchema(v4.z.record(v4.z.string(), toolConfigSchema)).optional().describe("Agent keys with optional per-agent config \u2014 static or conditional"),
289
289
  integrationTools: conditionalFieldSchema(v4.z.record(v4.z.string(), mcpClientToolsConfigSchema)).optional().describe("Map of tool provider IDs to their tool configurations \u2014 static or conditional"),
290
- toolProviders: conditionalFieldSchema(chunkH7KDCXLQ_cjs.toolProvidersSchema).optional().describe(
290
+ toolProviders: conditionalFieldSchema(chunkPXLC5SNM_cjs.toolProvidersSchema).optional().describe(
291
291
  "Tool provider connections and per-tool config (provider-agnostic). Coexists with the deprecated `integrationTools` field."
292
292
  ),
293
293
  mcpClients: conditionalFieldSchema(v4.z.record(v4.z.string(), mcpClientToolsConfigSchema)).optional().describe("Map of stored MCP client IDs to their tool configurations \u2014 static or conditional"),
@@ -381,5 +381,5 @@ exports.toolConfigSchema = toolConfigSchema;
381
381
  exports.toolsConfigSchema = toolsConfigSchema;
382
382
  exports.updateStoredAgentBodySchema = updateStoredAgentBodySchema;
383
383
  exports.updateStoredAgentResponseSchema = updateStoredAgentResponseSchema;
384
- //# sourceMappingURL=chunk-SLM5OKHX.cjs.map
385
- //# sourceMappingURL=chunk-SLM5OKHX.cjs.map
384
+ //# sourceMappingURL=chunk-HVATI3FQ.cjs.map
385
+ //# sourceMappingURL=chunk-HVATI3FQ.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/schemas/memory-config.ts","../src/server/schemas/stored-agents.ts"],"names":["z","createPagePaginationSchema","ruleGroupSchema","snapshotConfigSchema","defaultOptionsSchema","toolProvidersSchema","paginationInfoSchema"],"mappings":"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","file":"chunk-SLM5OKHX.cjs","sourcesContent":["import { z } from 'zod/v4';\n\n/**\n * Shared memory configuration schemas for agent storage\n * These schemas match the SerializedMemoryConfig type from @mastra/core\n */\n\n/**\n * Semantic recall configuration for vector-based memory retrieval\n */\nexport const semanticRecallSchema = z.object({\n topK: z.number().describe('Number of semantically similar messages to retrieve'),\n messageRange: z\n .union([\n z.number(),\n z.object({\n before: z.number(),\n after: z.number(),\n }),\n ])\n .describe('Amount of surrounding context to include with each retrieved message'),\n scope: z.enum(['thread', 'resource']).optional().describe('Scope for semantic search queries'),\n threshold: z.number().min(0).max(1).optional().describe('Minimum similarity score threshold'),\n indexName: z.string().optional().describe('Index name for the vector store'),\n});\n\n/**\n * Title generation configuration\n * When stored, the model is serialized as a ModelRouterModelId string (provider/model-name format)\n */\nexport const titleGenerationSchema = z.union([\n z.boolean(),\n z.object({\n model: z.string().describe('Model ID in format provider/model-name (ModelRouterModelId)'),\n instructions: z.string().optional().describe('Custom instructions for title generation'),\n }),\n]);\n\n/**\n * Observation step configuration for observational memory\n */\nexport const serializedObservationConfigSchema = z.object({\n model: z.string().optional().describe('Observer model ID'),\n messageTokens: z.number().optional().describe('Token threshold that triggers observation'),\n modelSettings: z.record(z.string(), z.unknown()).optional().describe('Model settings (temperature, etc.)'),\n providerOptions: z\n .record(z.string(), z.record(z.string(), z.unknown()).optional())\n .optional()\n .describe('Provider-specific options'),\n maxTokensPerBatch: z.number().optional().describe('Maximum tokens per batch'),\n bufferTokens: z\n .union([z.number(), z.literal(false)])\n .optional()\n .describe('Async buffering interval or false'),\n bufferActivation: z.number().optional().describe('Ratio of buffered observations to activate'),\n blockAfter: z.number().optional().describe('Token threshold for synchronous blocking'),\n});\n\n/**\n * Reflection step configuration for observational memory\n */\nexport const serializedReflectionConfigSchema = z.object({\n model: z.string().optional().describe('Reflector model ID'),\n observationTokens: z.number().optional().describe('Token threshold that triggers reflection'),\n modelSettings: z.record(z.string(), z.unknown()).optional().describe('Model settings (temperature, etc.)'),\n providerOptions: z\n .record(z.string(), z.record(z.string(), z.unknown()).optional())\n .optional()\n .describe('Provider-specific options'),\n blockAfter: z.number().optional().describe('Token threshold for synchronous blocking'),\n bufferActivation: z.number().optional().describe('Ratio for async reflection buffering'),\n});\n\n/**\n * Serialized observational memory configuration\n */\nexport const serializedObservationalMemoryConfigObjectSchema = z.object({\n model: z.string().optional().describe('Model ID for both Observer and Reflector'),\n scope: z.enum(['resource', 'thread']).optional().describe('Memory scope'),\n shareTokenBudget: z.boolean().optional().describe('Share token budget between messages and observations'),\n observation: serializedObservationConfigSchema.optional().describe('Observation step configuration'),\n reflection: serializedReflectionConfigSchema.optional().describe('Reflection step configuration'),\n});\n\nexport const serializedObservationalMemoryConfigSchema = z.union([\n z.boolean(),\n serializedObservationalMemoryConfigObjectSchema,\n]);\n\n/**\n * Serialized memory configuration matching SerializedMemoryConfig from @mastra/core\n *\n * Note: workingMemory and threads are omitted as they are not part of SerializedMemoryConfig\n * @see packages/core/src/memory/types.ts\n */\nexport const serializedMemoryConfigSchema = z\n .object({\n vector: z\n .union([z.string(), z.literal(false)])\n .optional()\n .describe('Vector database identifier or false to disable'),\n options: z\n .object({\n readOnly: z.boolean().optional(),\n lastMessages: z.union([z.number(), z.literal(false)]).optional(),\n semanticRecall: z.union([z.boolean(), semanticRecallSchema]).optional(),\n generateTitle: titleGenerationSchema.optional(),\n })\n .optional()\n .describe('Memory behavior configuration, excluding workingMemory and threads'),\n embedder: z\n .string()\n .optional()\n .describe('Embedding model ID in the format \"provider/model\" (e.g., \"openai/text-embedding-3-small\")'),\n embedderOptions: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('Options to pass to the embedder, omitting telemetry'),\n observationalMemory: serializedObservationalMemoryConfigSchema\n .optional()\n .describe('Serialized observational memory configuration'),\n })\n .refine(\n data => {\n // If semanticRecall is enabled (true or object), both vector and embedder are required\n const semanticRecall = data.options?.semanticRecall;\n const semanticRecallEnabled =\n semanticRecall === true || (typeof semanticRecall === 'object' && semanticRecall !== null);\n\n if (semanticRecallEnabled) {\n // vector must be a string (not false or undefined)\n const hasVector = typeof data.vector === 'string' && data.vector.length > 0;\n // embedder must be defined\n const hasEmbedder = typeof data.embedder === 'string' && data.embedder.length > 0;\n\n return hasVector && hasEmbedder;\n }\n return true;\n },\n {\n message: 'Semantic recall requires both vector and embedder to be configured',\n path: ['options', 'semanticRecall'],\n },\n );\n","import { z } from 'zod/v4';\nimport { paginationInfoSchema, createPagePaginationSchema, statusQuerySchema } from './common';\nimport { defaultOptionsSchema } from './default-options';\nimport { serializedMemoryConfigSchema } from './memory-config';\nimport { ruleGroupSchema } from './rule-group';\nimport { workspaceSnapshotConfigSchema } from './stored-workspaces';\nimport { toolProvidersSchema } from './tool-providers';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\n/**\n * Path parameter for stored agent ID\n */\nexport const storedAgentIdPathParams = z.object({\n storedAgentId: z.string().describe('Unique identifier for the stored agent'),\n});\n\n// ============================================================================\n// Query Parameter Schemas\n// ============================================================================\n\n/**\n * Storage order by configuration\n */\nconst storageOrderBySchema = z.object({\n field: z.enum(['createdAt', 'updatedAt']).optional(),\n direction: z.enum(['ASC', 'DESC']).optional(),\n});\n\nexport { statusQuerySchema };\n\n/**\n * GET /stored/agents - List stored agents\n */\nexport const listStoredAgentsQuerySchema = createPagePaginationSchema(100).extend({\n orderBy: storageOrderBySchema.optional(),\n status: z\n .enum(['draft', 'published', 'archived'])\n .optional()\n .default('published')\n .describe('Filter agents by status (defaults to published)'),\n authorId: z.string().optional().describe('Filter agents by author identifier'),\n visibility: z.enum(['public']).optional().describe('Filter to only public agents'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Filter agents by metadata key-value pairs'),\n favoritedOnly: z\n .stringbool()\n .optional()\n .describe('When true, return only agents favorited by the caller (requires the `favorites` EE feature)'),\n pinFavoritedFor: z\n .string()\n .optional()\n .describe(\n 'When set, treat the given subject (user/role) as the favoriting principal for `favoritedOnly` instead of the caller',\n ),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\n/**\n * Scorer config schema with optional sampling and rules\n */\nconst scorerConfigSchema = z.object({\n description: z.string().optional(),\n sampling: z\n .union([\n z.object({ type: z.literal('none') }),\n z.object({ type: z.literal('ratio'), rate: z.number().min(0).max(1) }),\n ])\n .optional(),\n rules: ruleGroupSchema.optional(),\n});\n\n/**\n * Agent instruction block schema for prompt-block-based instructions.\n */\nconst agentInstructionBlockSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('text'), content: z.string() }),\n z.object({ type: z.literal('prompt_block_ref'), id: z.string() }),\n z.object({ type: z.literal('prompt_block'), content: z.string(), rules: ruleGroupSchema.optional() }),\n]);\n\n/**\n * Creates a schema for a field that can be either a static value or an array of conditional variants.\n * Each variant has a `value` and an optional `rules` (RuleGroup) that determines when it applies.\n */\nfunction conditionalFieldSchema<T extends z.ZodTypeAny>(valueSchema: T) {\n const variantSchema = z.object({\n value: valueSchema,\n rules: ruleGroupSchema.optional(),\n });\n return z.union([valueSchema, z.array(variantSchema)]);\n}\n\n/**\n * Instructions can be a plain string or an array of instruction blocks (text + prompt_block references).\n */\nexport const instructionsSchema = z\n .union([z.string(), z.array(agentInstructionBlockSchema)])\n .describe('System instructions for the agent (string or array of instruction blocks)');\n\n/** Base model config schema (reused across snapshot and response schemas) */\nconst modelConfigSchema = z\n .object({\n provider: z.string().describe('Model provider (e.g., openai, anthropic)'),\n name: z.string().describe('Model name (e.g., gpt-4o, claude-3-opus)'),\n })\n .passthrough();\n\n/** Per-tool config schema */\nconst toolConfigSchema = z.object({ description: z.string().optional(), rules: ruleGroupSchema.optional() });\n\n/** Base tools config schema */\nconst toolsConfigSchema = z.record(z.string(), toolConfigSchema);\n\n/** MCP client tools config schema — specifies which tools to use from an MCP client/server */\nconst mcpClientToolsConfigSchema = z.object({\n tools: z.record(z.string(), toolConfigSchema).optional(),\n});\n\n/** Per-skill config schema */\nconst skillConfigSchema = z.object({\n description: z.string().optional(),\n instructions: z.string().optional(),\n pin: z.string().optional(),\n strategy: z.enum(['latest', 'live']).optional(),\n});\n\n/** Skills config: skill IDs mapped to per-skill config */\nconst skillsConfigSchema = z.record(z.string(), skillConfigSchema);\n\n/** Workspace reference: either a stored workspace ID or an inline config */\nconst workspaceRefSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('id'), workspaceId: z.string() }),\n z.object({ type: z.literal('inline'), config: workspaceSnapshotConfigSchema }),\n]);\n\n/** Screencast options for streaming browser frames */\nconst screencastOptionsSchema = z.object({\n format: z.enum(['jpeg', 'png']).optional().describe('Image format (default: jpeg)'),\n quality: z.number().min(0).max(100).optional().describe('JPEG quality 0-100 (default: 80)'),\n maxWidth: z.number().optional().describe('Max width in pixels (default: 1280)'),\n maxHeight: z.number().optional().describe('Max height in pixels (default: 720)'),\n everyNthFrame: z.number().optional().describe('Capture every Nth frame (default: 1)'),\n});\n\n/** Browser config: serializable browser configuration for stored agents */\nconst browserConfigSchema = z.object({\n provider: z.string().describe('Browser provider type (e.g., stagehand, playwright)'),\n headless: z.boolean().optional().describe('Run browser in headless mode (default: true)'),\n viewport: z\n .object({\n width: z.number().describe('Viewport width in pixels'),\n height: z.number().describe('Viewport height in pixels'),\n })\n .optional()\n .describe('Browser viewport dimensions'),\n timeout: z.number().optional().describe('Default timeout in milliseconds (default: 10000)'),\n screencast: screencastOptionsSchema.optional().describe('Screencast options for streaming browser frames'),\n});\n\n/** Browser reference: inline browser configuration */\nconst browserRefSchema = z.object({\n type: z.literal('inline'),\n config: browserConfigSchema,\n});\n\n/**\n * Processor phase enum matching ProcessorPhase type\n */\nconst processorPhaseSchema = z.enum([\n 'processInput',\n 'processInputStep',\n 'processOutputStream',\n 'processOutputResult',\n 'processOutputStep',\n]);\n\n/**\n * A single processor step in a stored processor graph.\n */\nconst processorGraphStepSchema = z.object({\n id: z.string().describe('Unique ID for this step within the graph'),\n providerId: z.string().describe('ProcessorProvider ID that creates this processor'),\n config: z.record(z.string(), z.unknown()).describe('Configuration matching the provider configSchema'),\n enabledPhases: z.array(processorPhaseSchema).min(1).describe('Which processor phases to enable'),\n});\n\n/**\n * Processor graph entry schema.\n * Simplified version of SerializedStepFlowEntry, supporting step, parallel, and conditional.\n *\n * Uses a fixed nesting depth (3 levels) to avoid infinite recursion\n * when converting to JSON Schema / OpenAPI.\n */\n\n/** Depth 3 (leaf): only step entries allowed */\nconst processorGraphEntryDepth3 = z.discriminatedUnion('type', [\n z.object({ type: z.literal('step'), step: processorGraphStepSchema }),\n]);\n\n/** Depth 2: step, parallel, and conditional — children limited to depth 3 */\nconst processorGraphEntryDepth2 = z.discriminatedUnion('type', [\n z.object({ type: z.literal('step'), step: processorGraphStepSchema }),\n z.object({ type: z.literal('parallel'), branches: z.array(z.array(processorGraphEntryDepth3)) }),\n z.object({\n type: z.literal('conditional'),\n conditions: z.array(\n z.object({\n steps: z.array(processorGraphEntryDepth3),\n rules: ruleGroupSchema.optional(),\n }),\n ),\n }),\n]);\n\n/** Depth 1 (top-level): step, parallel, and conditional — children limited to depth 2 */\nconst processorGraphEntrySchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('step'), step: processorGraphStepSchema }),\n z.object({ type: z.literal('parallel'), branches: z.array(z.array(processorGraphEntryDepth2)) }),\n z.object({\n type: z.literal('conditional'),\n conditions: z.array(\n z.object({\n steps: z.array(processorGraphEntryDepth2),\n rules: ruleGroupSchema.optional(),\n }),\n ),\n }),\n]);\n\n/**\n * A stored processor graph representing a pipeline of processors.\n */\nconst storedProcessorGraphSchema = z.object({\n steps: z.array(processorGraphEntrySchema).describe('Ordered list of processor graph entries'),\n});\n\n/**\n * Agent snapshot config fields (name, description, instructions, model, tools, etc.)\n * These live in version snapshots, not on the thin agent record.\n *\n * Fields that support conditional variants (StorageConditionalField) can be either\n * a static value OR an array of { value, rules? } variants evaluated at request time.\n */\nconst snapshotConfigSchema = z.object({\n name: z.string().describe('Name of the agent'),\n description: z.string().optional().describe('Description of the agent'),\n instructions: instructionsSchema,\n model: conditionalFieldSchema(modelConfigSchema).describe(\n 'Model configuration — static value or array of conditional variants',\n ),\n tools: conditionalFieldSchema(toolsConfigSchema)\n .optional()\n .describe('Tool keys mapped to per-tool config — static or conditional'),\n defaultOptions: conditionalFieldSchema(defaultOptionsSchema)\n .optional()\n .describe('Default options for generate/stream calls — static or conditional'),\n workflows: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Workflow keys with optional per-workflow config — static or conditional'),\n agents: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Agent keys with optional per-agent config — static or conditional'),\n integrationTools: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of tool provider IDs to their tool configurations — static or conditional'),\n toolProviders: conditionalFieldSchema(toolProvidersSchema)\n .optional()\n .describe(\n 'Tool provider connections and per-tool config (provider-agnostic). Coexists with the deprecated `integrationTools` field.',\n ),\n mcpClients: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of stored MCP client IDs to their tool configurations — static or conditional'),\n inputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Input processor graph — static or conditional'),\n outputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Output processor graph — static or conditional'),\n memory: conditionalFieldSchema(serializedMemoryConfigSchema)\n .optional()\n .describe('Memory configuration — static or conditional'),\n scorers: conditionalFieldSchema(z.record(z.string(), scorerConfigSchema))\n .optional()\n .describe('Scorer keys with optional sampling config — static or conditional'),\n skills: conditionalFieldSchema(skillsConfigSchema)\n .optional()\n .describe('Skill IDs mapped to per-skill config — static or conditional'),\n workspace: conditionalFieldSchema(workspaceRefSchema)\n .optional()\n .describe('Workspace reference (stored ID or inline config) — static or conditional'),\n browser: z\n .union([conditionalFieldSchema(browserRefSchema), z.boolean(), z.null()])\n .optional()\n .describe('Browser configuration — object config, true (apply default), false/null (disable)'),\n requestContextSchema: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('JSON Schema defining valid request context variables for conditional rule evaluation'),\n});\n\n/**\n * Agent metadata fields (authorId, metadata, visibility) that live on the thin agent record.\n */\nconst agentMetadataSchema = z.object({\n authorId: z.string().optional().describe('Author identifier for multi-tenant filtering'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata for the agent'),\n visibility: z\n .enum(['private', 'public'])\n .optional()\n .describe('Agent visibility: private (owner/admin only) or public (any reader)'),\n});\n\n/**\n * Snapshot config schema for create where `model` is optional. When omitted, the\n * builder applies `defaults.model` from `/editor/builder/settings` server-side.\n */\nconst snapshotConfigCreateSchema = snapshotConfigSchema.extend({\n model: conditionalFieldSchema(modelConfigSchema)\n .optional()\n .describe(\n 'Model configuration — static value or array of conditional variants. ' +\n 'When omitted, the builder default model is applied server-side.',\n ),\n});\n\n/**\n * POST /stored/agents - Create stored agent body\n * Flat union of agent-record fields + config fields\n * The id is optional — if not provided, it will be derived from the agent name via slugify.\n */\nexport const createStoredAgentBodySchema = z\n .object({\n id: z.string().optional().describe('Unique identifier for the agent. If not provided, derived from name.'),\n authorId: z.string().optional().describe('Author identifier for multi-tenant filtering'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata for the agent'),\n visibility: z\n .enum(['private', 'public'])\n .optional()\n .describe('Agent visibility: private (owner/admin only) or public (any reader)'),\n })\n .merge(snapshotConfigCreateSchema);\n\n/**\n * Snapshot config schema for updates where nullable fields (like memory) can be set to null to clear them.\n */\nconst snapshotConfigUpdateSchema = snapshotConfigSchema.extend({\n memory: z\n .union([conditionalFieldSchema(serializedMemoryConfigSchema), z.null()])\n .optional()\n .describe('Memory configuration — static, conditional, or null to disable memory'),\n});\n\n/**\n * PATCH /stored/agents/:storedAgentId - Update stored agent body\n * Optional metadata-level fields + optional config fields\n */\nexport const updateStoredAgentBodySchema = agentMetadataSchema\n .partial()\n .merge(snapshotConfigUpdateSchema.partial())\n .extend({\n changeMessage: z\n .string()\n .trim()\n .max(500)\n .optional()\n .describe('Optional message describing the changes for the auto-created version'),\n });\n\nexport const exportStoredAgentBodySchema = snapshotConfigUpdateSchema.partial();\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n/**\n * Resolved author object — server-side enrichment of `authorId` against the\n * configured auth provider. Only `id` is required; the other fields mirror\n * what `/auth/me` exposes and are optional because providers may not return\n * every field.\n */\nexport const resolvedAuthorSchema = z.object({\n id: z.string(),\n name: z.string().optional(),\n email: z.string().optional(),\n avatarUrl: z.string().optional(),\n});\n\n/**\n * Stored agent object schema (resolved response: thin record + version config)\n * Represents StorageResolvedAgentType\n */\nexport const storedAgentSchema = z.object({\n // Thin agent record fields\n id: z.string(),\n status: z.string().describe('Agent status: draft or published'),\n activeVersionId: z.string().optional(),\n authorId: z.string().optional(),\n author: resolvedAuthorSchema.optional().describe('Resolved author identity (when an auth provider is configured)'),\n metadata: z.record(z.string(), z.unknown()).optional(),\n visibility: z.enum(['private', 'public']).optional(),\n favoriteCount: z.number().int().nonnegative().optional().describe('Number of users who have favorited this agent'),\n isFavorited: z.boolean().optional().describe('Whether the requesting user has favorited this agent'),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n // Version snapshot config fields (resolved from active version)\n name: z.string().describe('Name of the agent'),\n description: z.string().optional().describe('Description of the agent'),\n instructions: instructionsSchema,\n model: conditionalFieldSchema(modelConfigSchema).describe(\n 'Model configuration — static value or array of conditional variants',\n ),\n tools: conditionalFieldSchema(toolsConfigSchema)\n .optional()\n .describe('Tool keys mapped to per-tool config — static or conditional'),\n defaultOptions: conditionalFieldSchema(defaultOptionsSchema)\n .optional()\n .describe('Default options for generate/stream calls — static or conditional'),\n workflows: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Workflow keys with optional per-workflow config — static or conditional'),\n agents: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Agent keys with optional per-agent config — static or conditional'),\n integrationTools: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of tool provider IDs to their tool configurations — static or conditional'),\n toolProviders: conditionalFieldSchema(toolProvidersSchema)\n .optional()\n .describe(\n 'Tool provider connections and per-tool config (provider-agnostic). Coexists with the deprecated `integrationTools` field.',\n ),\n mcpClients: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of stored MCP client IDs to their tool configurations — static or conditional'),\n inputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Input processor graph — static or conditional'),\n outputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Output processor graph — static or conditional'),\n memory: conditionalFieldSchema(serializedMemoryConfigSchema)\n .optional()\n .describe('Memory configuration — static or conditional'),\n scorers: conditionalFieldSchema(z.record(z.string(), scorerConfigSchema))\n .optional()\n .describe('Scorer keys with optional sampling config — static or conditional'),\n skills: conditionalFieldSchema(skillsConfigSchema)\n .optional()\n .describe('Skill IDs mapped to per-skill config — static or conditional'),\n workspace: conditionalFieldSchema(workspaceRefSchema)\n .optional()\n .describe('Workspace reference (stored ID or inline config) — static or conditional'),\n browser: z\n .union([conditionalFieldSchema(browserRefSchema), z.boolean(), z.null()])\n .optional()\n .describe('Browser configuration — object config, true (apply default), false/null (disable)'),\n requestContextSchema: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('JSON Schema defining valid request context variables'),\n});\n\n/**\n * Response for GET /stored/agents\n */\nexport const listStoredAgentsResponseSchema = paginationInfoSchema.extend({\n agents: z.array(storedAgentSchema),\n});\n\n/**\n * Response for GET /stored/agents/:storedAgentId\n */\nexport const getStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for POST /stored/agents\n */\nexport const createStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for PATCH /stored/agents/:storedAgentId\n *\n * The response can be either:\n * 1. A thin agent record (no version) - only has id, status, dates, etc.\n * 2. A resolved agent (with version) - has all config fields from the version\n *\n * We use a union to handle both cases properly.\n */\nexport const updateStoredAgentResponseSchema = z.union([\n // Thin agent record (no version config)\n z.object({\n id: z.string(),\n status: z.string(),\n activeVersionId: z.string().optional(),\n authorId: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n visibility: z.enum(['private', 'public']).optional(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n }),\n // Resolved agent (thin record + version config)\n storedAgentSchema,\n]);\n\n/**\n * Response for DELETE /stored/agents/:storedAgentId\n */\nexport const deleteStoredAgentResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n\n/**\n * Response for GET /stored/agents/:storedAgentId/dependents\n *\n * `dependents` lists caller-readable stored agents whose resolved `agents` map\n * references the target. Includes both public and the caller's own private\n * agents — anything the caller already has read access to.\n * `hiddenCount` aggregates references from agents the caller cannot read\n * (cross-workspace private agents). Only populated when the target agent is\n * public, to avoid leaking cross-workspace structure for private targets.\n */\nexport const getStoredAgentDependentsResponseSchema = z.object({\n dependents: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n }),\n ),\n hiddenCount: z.number().int().nonnegative(),\n});\n\nexport const exportStoredAgentResponseSchema = z.object({\n agentId: z.string(),\n fileName: z.string(),\n content: z.string(),\n config: z.record(z.string(), z.unknown()),\n});\n\n// ============================================================================\n// Preview Instructions Schemas\n// ============================================================================\n\n/**\n * POST /stored/agents/preview-instructions - Preview resolved instructions\n */\nexport const previewInstructionsBodySchema = z.object({\n blocks: z.array(agentInstructionBlockSchema).describe('Array of instruction blocks to resolve'),\n context: z\n .record(z.string(), z.unknown())\n .optional()\n .default({})\n .describe('Request context for variable interpolation and rule evaluation'),\n});\n\n/**\n * Response for POST /stored/agents/preview-instructions\n */\nexport const previewInstructionsResponseSchema = z.object({\n result: z.string().describe('The resolved instructions string'),\n});\n\n/**\n * Exported for use in agent-versions.ts schemas\n */\nexport {\n snapshotConfigSchema,\n scorerConfigSchema,\n conditionalFieldSchema,\n modelConfigSchema,\n storedProcessorGraphSchema,\n processorGraphStepSchema,\n processorGraphEntrySchema,\n processorPhaseSchema,\n toolConfigSchema,\n toolsConfigSchema,\n};\n"]}
1
+ {"version":3,"sources":["../src/server/schemas/memory-config.ts","../src/server/schemas/stored-agents.ts"],"names":["z","createPagePaginationSchema","ruleGroupSchema","snapshotConfigSchema","defaultOptionsSchema","toolProvidersSchema","paginationInfoSchema"],"mappings":"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","file":"chunk-HVATI3FQ.cjs","sourcesContent":["import { z } from 'zod/v4';\n\n/**\n * Shared memory configuration schemas for agent storage\n * These schemas match the SerializedMemoryConfig type from @mastra/core\n */\n\n/**\n * Semantic recall configuration for vector-based memory retrieval\n */\nexport const semanticRecallSchema = z.object({\n topK: z.number().describe('Number of semantically similar messages to retrieve'),\n messageRange: z\n .union([\n z.number(),\n z.object({\n before: z.number(),\n after: z.number(),\n }),\n ])\n .describe('Amount of surrounding context to include with each retrieved message'),\n scope: z.enum(['thread', 'resource']).optional().describe('Scope for semantic search queries'),\n threshold: z.number().min(0).max(1).optional().describe('Minimum similarity score threshold'),\n indexName: z.string().optional().describe('Index name for the vector store'),\n});\n\n/**\n * Title generation configuration\n * When stored, the model is serialized as a ModelRouterModelId string (provider/model-name format)\n */\nexport const titleGenerationSchema = z.union([\n z.boolean(),\n z.object({\n model: z.string().describe('Model ID in format provider/model-name (ModelRouterModelId)'),\n instructions: z.string().optional().describe('Custom instructions for title generation'),\n }),\n]);\n\n/**\n * Observation step configuration for observational memory\n */\nexport const serializedObservationConfigSchema = z.object({\n model: z.string().optional().describe('Observer model ID'),\n messageTokens: z.number().optional().describe('Token threshold that triggers observation'),\n modelSettings: z.record(z.string(), z.unknown()).optional().describe('Model settings (temperature, etc.)'),\n providerOptions: z\n .record(z.string(), z.record(z.string(), z.unknown()).optional())\n .optional()\n .describe('Provider-specific options'),\n maxTokensPerBatch: z.number().optional().describe('Maximum tokens per batch'),\n bufferTokens: z\n .union([z.number(), z.literal(false)])\n .optional()\n .describe('Async buffering interval or false'),\n bufferActivation: z.number().optional().describe('Ratio of buffered observations to activate'),\n blockAfter: z.number().optional().describe('Token threshold for synchronous blocking'),\n});\n\n/**\n * Reflection step configuration for observational memory\n */\nexport const serializedReflectionConfigSchema = z.object({\n model: z.string().optional().describe('Reflector model ID'),\n observationTokens: z.number().optional().describe('Token threshold that triggers reflection'),\n modelSettings: z.record(z.string(), z.unknown()).optional().describe('Model settings (temperature, etc.)'),\n providerOptions: z\n .record(z.string(), z.record(z.string(), z.unknown()).optional())\n .optional()\n .describe('Provider-specific options'),\n blockAfter: z.number().optional().describe('Token threshold for synchronous blocking'),\n bufferActivation: z.number().optional().describe('Ratio for async reflection buffering'),\n});\n\n/**\n * Serialized observational memory configuration\n */\nexport const serializedObservationalMemoryConfigObjectSchema = z.object({\n model: z.string().optional().describe('Model ID for both Observer and Reflector'),\n scope: z.enum(['resource', 'thread']).optional().describe('Memory scope'),\n shareTokenBudget: z.boolean().optional().describe('Share token budget between messages and observations'),\n observation: serializedObservationConfigSchema.optional().describe('Observation step configuration'),\n reflection: serializedReflectionConfigSchema.optional().describe('Reflection step configuration'),\n});\n\nexport const serializedObservationalMemoryConfigSchema = z.union([\n z.boolean(),\n serializedObservationalMemoryConfigObjectSchema,\n]);\n\n/**\n * Serialized memory configuration matching SerializedMemoryConfig from @mastra/core\n *\n * Note: workingMemory and threads are omitted as they are not part of SerializedMemoryConfig\n * @see packages/core/src/memory/types.ts\n */\nexport const serializedMemoryConfigSchema = z\n .object({\n vector: z\n .union([z.string(), z.literal(false)])\n .optional()\n .describe('Vector database identifier or false to disable'),\n options: z\n .object({\n readOnly: z.boolean().optional(),\n lastMessages: z.union([z.number(), z.literal(false)]).optional(),\n semanticRecall: z.union([z.boolean(), semanticRecallSchema]).optional(),\n generateTitle: titleGenerationSchema.optional(),\n })\n .optional()\n .describe('Memory behavior configuration, excluding workingMemory and threads'),\n embedder: z\n .string()\n .optional()\n .describe('Embedding model ID in the format \"provider/model\" (e.g., \"openai/text-embedding-3-small\")'),\n embedderOptions: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('Options to pass to the embedder, omitting telemetry'),\n observationalMemory: serializedObservationalMemoryConfigSchema\n .optional()\n .describe('Serialized observational memory configuration'),\n })\n .refine(\n data => {\n // If semanticRecall is enabled (true or object), both vector and embedder are required\n const semanticRecall = data.options?.semanticRecall;\n const semanticRecallEnabled =\n semanticRecall === true || (typeof semanticRecall === 'object' && semanticRecall !== null);\n\n if (semanticRecallEnabled) {\n // vector must be a string (not false or undefined)\n const hasVector = typeof data.vector === 'string' && data.vector.length > 0;\n // embedder must be defined\n const hasEmbedder = typeof data.embedder === 'string' && data.embedder.length > 0;\n\n return hasVector && hasEmbedder;\n }\n return true;\n },\n {\n message: 'Semantic recall requires both vector and embedder to be configured',\n path: ['options', 'semanticRecall'],\n },\n );\n","import { z } from 'zod/v4';\nimport { paginationInfoSchema, createPagePaginationSchema, statusQuerySchema } from './common';\nimport { defaultOptionsSchema } from './default-options';\nimport { serializedMemoryConfigSchema } from './memory-config';\nimport { ruleGroupSchema } from './rule-group';\nimport { workspaceSnapshotConfigSchema } from './stored-workspaces';\nimport { toolProvidersSchema } from './tool-providers';\n\n// ============================================================================\n// Path Parameter Schemas\n// ============================================================================\n\n/**\n * Path parameter for stored agent ID\n */\nexport const storedAgentIdPathParams = z.object({\n storedAgentId: z.string().describe('Unique identifier for the stored agent'),\n});\n\n// ============================================================================\n// Query Parameter Schemas\n// ============================================================================\n\n/**\n * Storage order by configuration\n */\nconst storageOrderBySchema = z.object({\n field: z.enum(['createdAt', 'updatedAt']).optional(),\n direction: z.enum(['ASC', 'DESC']).optional(),\n});\n\nexport { statusQuerySchema };\n\n/**\n * GET /stored/agents - List stored agents\n */\nexport const listStoredAgentsQuerySchema = createPagePaginationSchema(100).extend({\n orderBy: storageOrderBySchema.optional(),\n status: z\n .enum(['draft', 'published', 'archived'])\n .optional()\n .default('published')\n .describe('Filter agents by status (defaults to published)'),\n authorId: z.string().optional().describe('Filter agents by author identifier'),\n visibility: z.enum(['public']).optional().describe('Filter to only public agents'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Filter agents by metadata key-value pairs'),\n favoritedOnly: z\n .stringbool()\n .optional()\n .describe('When true, return only agents favorited by the caller (requires the `favorites` EE feature)'),\n pinFavoritedFor: z\n .string()\n .optional()\n .describe(\n 'When set, treat the given subject (user/role) as the favoriting principal for `favoritedOnly` instead of the caller',\n ),\n});\n\n// ============================================================================\n// Body Parameter Schemas\n// ============================================================================\n\n/**\n * Scorer config schema with optional sampling and rules\n */\nconst scorerConfigSchema = z.object({\n description: z.string().optional(),\n sampling: z\n .union([\n z.object({ type: z.literal('none') }),\n z.object({ type: z.literal('ratio'), rate: z.number().min(0).max(1) }),\n ])\n .optional(),\n rules: ruleGroupSchema.optional(),\n});\n\n/**\n * Agent instruction block schema for prompt-block-based instructions.\n */\nconst agentInstructionBlockSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('text'), content: z.string() }),\n z.object({ type: z.literal('prompt_block_ref'), id: z.string() }),\n z.object({ type: z.literal('prompt_block'), content: z.string(), rules: ruleGroupSchema.optional() }),\n]);\n\n/**\n * Creates a schema for a field that can be either a static value or an array of conditional variants.\n * Each variant has a `value` and an optional `rules` (RuleGroup) that determines when it applies.\n */\nfunction conditionalFieldSchema<T extends z.ZodTypeAny>(valueSchema: T) {\n const variantSchema = z.object({\n value: valueSchema,\n rules: ruleGroupSchema.optional(),\n });\n return z.union([valueSchema, z.array(variantSchema)]);\n}\n\n/**\n * Instructions can be a plain string or an array of instruction blocks (text + prompt_block references).\n */\nexport const instructionsSchema = z\n .union([z.string(), z.array(agentInstructionBlockSchema)])\n .describe('System instructions for the agent (string or array of instruction blocks)');\n\n/** Base model config schema (reused across snapshot and response schemas) */\nconst modelConfigSchema = z\n .object({\n provider: z.string().describe('Model provider (e.g., openai, anthropic)'),\n name: z.string().describe('Model name (e.g., gpt-4o, claude-3-opus)'),\n })\n .passthrough();\n\n/** Per-tool config schema */\nconst toolConfigSchema = z.object({ description: z.string().optional(), rules: ruleGroupSchema.optional() });\n\n/** Base tools config schema */\nconst toolsConfigSchema = z.record(z.string(), toolConfigSchema);\n\n/** MCP client tools config schema — specifies which tools to use from an MCP client/server */\nconst mcpClientToolsConfigSchema = z.object({\n tools: z.record(z.string(), toolConfigSchema).optional(),\n});\n\n/** Per-skill config schema */\nconst skillConfigSchema = z.object({\n description: z.string().optional(),\n instructions: z.string().optional(),\n pin: z.string().optional(),\n strategy: z.enum(['latest', 'live']).optional(),\n});\n\n/** Skills config: skill IDs mapped to per-skill config */\nconst skillsConfigSchema = z.record(z.string(), skillConfigSchema);\n\n/** Workspace reference: either a stored workspace ID or an inline config */\nconst workspaceRefSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('id'), workspaceId: z.string() }),\n z.object({ type: z.literal('inline'), config: workspaceSnapshotConfigSchema }),\n]);\n\n/** Screencast options for streaming browser frames */\nconst screencastOptionsSchema = z.object({\n format: z.enum(['jpeg', 'png']).optional().describe('Image format (default: jpeg)'),\n quality: z.number().min(0).max(100).optional().describe('JPEG quality 0-100 (default: 80)'),\n maxWidth: z.number().optional().describe('Max width in pixels (default: 1280)'),\n maxHeight: z.number().optional().describe('Max height in pixels (default: 720)'),\n everyNthFrame: z.number().optional().describe('Capture every Nth frame (default: 1)'),\n});\n\n/** Browser config: serializable browser configuration for stored agents */\nconst browserConfigSchema = z.object({\n provider: z.string().describe('Browser provider type (e.g., stagehand, playwright)'),\n headless: z.boolean().optional().describe('Run browser in headless mode (default: true)'),\n viewport: z\n .object({\n width: z.number().describe('Viewport width in pixels'),\n height: z.number().describe('Viewport height in pixels'),\n })\n .optional()\n .describe('Browser viewport dimensions'),\n timeout: z.number().optional().describe('Default timeout in milliseconds (default: 10000)'),\n screencast: screencastOptionsSchema.optional().describe('Screencast options for streaming browser frames'),\n});\n\n/** Browser reference: inline browser configuration */\nconst browserRefSchema = z.object({\n type: z.literal('inline'),\n config: browserConfigSchema,\n});\n\n/**\n * Processor phase enum matching ProcessorPhase type\n */\nconst processorPhaseSchema = z.enum([\n 'processInput',\n 'processInputStep',\n 'processOutputStream',\n 'processOutputResult',\n 'processOutputStep',\n]);\n\n/**\n * A single processor step in a stored processor graph.\n */\nconst processorGraphStepSchema = z.object({\n id: z.string().describe('Unique ID for this step within the graph'),\n providerId: z.string().describe('ProcessorProvider ID that creates this processor'),\n config: z.record(z.string(), z.unknown()).describe('Configuration matching the provider configSchema'),\n enabledPhases: z.array(processorPhaseSchema).min(1).describe('Which processor phases to enable'),\n});\n\n/**\n * Processor graph entry schema.\n * Simplified version of SerializedStepFlowEntry, supporting step, parallel, and conditional.\n *\n * Uses a fixed nesting depth (3 levels) to avoid infinite recursion\n * when converting to JSON Schema / OpenAPI.\n */\n\n/** Depth 3 (leaf): only step entries allowed */\nconst processorGraphEntryDepth3 = z.discriminatedUnion('type', [\n z.object({ type: z.literal('step'), step: processorGraphStepSchema }),\n]);\n\n/** Depth 2: step, parallel, and conditional — children limited to depth 3 */\nconst processorGraphEntryDepth2 = z.discriminatedUnion('type', [\n z.object({ type: z.literal('step'), step: processorGraphStepSchema }),\n z.object({ type: z.literal('parallel'), branches: z.array(z.array(processorGraphEntryDepth3)) }),\n z.object({\n type: z.literal('conditional'),\n conditions: z.array(\n z.object({\n steps: z.array(processorGraphEntryDepth3),\n rules: ruleGroupSchema.optional(),\n }),\n ),\n }),\n]);\n\n/** Depth 1 (top-level): step, parallel, and conditional — children limited to depth 2 */\nconst processorGraphEntrySchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('step'), step: processorGraphStepSchema }),\n z.object({ type: z.literal('parallel'), branches: z.array(z.array(processorGraphEntryDepth2)) }),\n z.object({\n type: z.literal('conditional'),\n conditions: z.array(\n z.object({\n steps: z.array(processorGraphEntryDepth2),\n rules: ruleGroupSchema.optional(),\n }),\n ),\n }),\n]);\n\n/**\n * A stored processor graph representing a pipeline of processors.\n */\nconst storedProcessorGraphSchema = z.object({\n steps: z.array(processorGraphEntrySchema).describe('Ordered list of processor graph entries'),\n});\n\n/**\n * Agent snapshot config fields (name, description, instructions, model, tools, etc.)\n * These live in version snapshots, not on the thin agent record.\n *\n * Fields that support conditional variants (StorageConditionalField) can be either\n * a static value OR an array of { value, rules? } variants evaluated at request time.\n */\nconst snapshotConfigSchema = z.object({\n name: z.string().describe('Name of the agent'),\n description: z.string().optional().describe('Description of the agent'),\n instructions: instructionsSchema,\n model: conditionalFieldSchema(modelConfigSchema).describe(\n 'Model configuration — static value or array of conditional variants',\n ),\n tools: conditionalFieldSchema(toolsConfigSchema)\n .optional()\n .describe('Tool keys mapped to per-tool config — static or conditional'),\n defaultOptions: conditionalFieldSchema(defaultOptionsSchema)\n .optional()\n .describe('Default options for generate/stream calls — static or conditional'),\n workflows: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Workflow keys with optional per-workflow config — static or conditional'),\n agents: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Agent keys with optional per-agent config — static or conditional'),\n integrationTools: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of tool provider IDs to their tool configurations — static or conditional'),\n toolProviders: conditionalFieldSchema(toolProvidersSchema)\n .optional()\n .describe(\n 'Tool provider connections and per-tool config (provider-agnostic). Coexists with the deprecated `integrationTools` field.',\n ),\n mcpClients: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of stored MCP client IDs to their tool configurations — static or conditional'),\n inputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Input processor graph — static or conditional'),\n outputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Output processor graph — static or conditional'),\n memory: conditionalFieldSchema(serializedMemoryConfigSchema)\n .optional()\n .describe('Memory configuration — static or conditional'),\n scorers: conditionalFieldSchema(z.record(z.string(), scorerConfigSchema))\n .optional()\n .describe('Scorer keys with optional sampling config — static or conditional'),\n skills: conditionalFieldSchema(skillsConfigSchema)\n .optional()\n .describe('Skill IDs mapped to per-skill config — static or conditional'),\n workspace: conditionalFieldSchema(workspaceRefSchema)\n .optional()\n .describe('Workspace reference (stored ID or inline config) — static or conditional'),\n browser: z\n .union([conditionalFieldSchema(browserRefSchema), z.boolean(), z.null()])\n .optional()\n .describe('Browser configuration — object config, true (apply default), false/null (disable)'),\n requestContextSchema: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('JSON Schema defining valid request context variables for conditional rule evaluation'),\n});\n\n/**\n * Agent metadata fields (authorId, metadata, visibility) that live on the thin agent record.\n */\nconst agentMetadataSchema = z.object({\n authorId: z.string().optional().describe('Author identifier for multi-tenant filtering'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata for the agent'),\n visibility: z\n .enum(['private', 'public'])\n .optional()\n .describe('Agent visibility: private (owner/admin only) or public (any reader)'),\n});\n\n/**\n * Snapshot config schema for create where `model` is optional. When omitted, the\n * builder applies `defaults.model` from `/editor/builder/settings` server-side.\n */\nconst snapshotConfigCreateSchema = snapshotConfigSchema.extend({\n model: conditionalFieldSchema(modelConfigSchema)\n .optional()\n .describe(\n 'Model configuration — static value or array of conditional variants. ' +\n 'When omitted, the builder default model is applied server-side.',\n ),\n});\n\n/**\n * POST /stored/agents - Create stored agent body\n * Flat union of agent-record fields + config fields\n * The id is optional — if not provided, it will be derived from the agent name via slugify.\n */\nexport const createStoredAgentBodySchema = z\n .object({\n id: z.string().optional().describe('Unique identifier for the agent. If not provided, derived from name.'),\n authorId: z.string().optional().describe('Author identifier for multi-tenant filtering'),\n metadata: z.record(z.string(), z.unknown()).optional().describe('Additional metadata for the agent'),\n visibility: z\n .enum(['private', 'public'])\n .optional()\n .describe('Agent visibility: private (owner/admin only) or public (any reader)'),\n })\n .merge(snapshotConfigCreateSchema);\n\n/**\n * Snapshot config schema for updates where nullable fields (like memory) can be set to null to clear them.\n */\nconst snapshotConfigUpdateSchema = snapshotConfigSchema.extend({\n memory: z\n .union([conditionalFieldSchema(serializedMemoryConfigSchema), z.null()])\n .optional()\n .describe('Memory configuration — static, conditional, or null to disable memory'),\n});\n\n/**\n * PATCH /stored/agents/:storedAgentId - Update stored agent body\n * Optional metadata-level fields + optional config fields\n */\nexport const updateStoredAgentBodySchema = agentMetadataSchema\n .partial()\n .merge(snapshotConfigUpdateSchema.partial())\n .extend({\n changeMessage: z\n .string()\n .trim()\n .max(500)\n .optional()\n .describe('Optional message describing the changes for the auto-created version'),\n });\n\nexport const exportStoredAgentBodySchema = snapshotConfigUpdateSchema.partial();\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n/**\n * Resolved author object — server-side enrichment of `authorId` against the\n * configured auth provider. Only `id` is required; the other fields mirror\n * what `/auth/me` exposes and are optional because providers may not return\n * every field.\n */\nexport const resolvedAuthorSchema = z.object({\n id: z.string(),\n name: z.string().optional(),\n email: z.string().optional(),\n avatarUrl: z.string().optional(),\n});\n\n/**\n * Stored agent object schema (resolved response: thin record + version config)\n * Represents StorageResolvedAgentType\n */\nexport const storedAgentSchema = z.object({\n // Thin agent record fields\n id: z.string(),\n status: z.string().describe('Agent status: draft or published'),\n activeVersionId: z.string().optional(),\n authorId: z.string().optional(),\n author: resolvedAuthorSchema.optional().describe('Resolved author identity (when an auth provider is configured)'),\n metadata: z.record(z.string(), z.unknown()).optional(),\n visibility: z.enum(['private', 'public']).optional(),\n favoriteCount: z.number().int().nonnegative().optional().describe('Number of users who have favorited this agent'),\n isFavorited: z.boolean().optional().describe('Whether the requesting user has favorited this agent'),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n // Version snapshot config fields (resolved from active version)\n name: z.string().describe('Name of the agent'),\n description: z.string().optional().describe('Description of the agent'),\n instructions: instructionsSchema,\n model: conditionalFieldSchema(modelConfigSchema).describe(\n 'Model configuration — static value or array of conditional variants',\n ),\n tools: conditionalFieldSchema(toolsConfigSchema)\n .optional()\n .describe('Tool keys mapped to per-tool config — static or conditional'),\n defaultOptions: conditionalFieldSchema(defaultOptionsSchema)\n .optional()\n .describe('Default options for generate/stream calls — static or conditional'),\n workflows: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Workflow keys with optional per-workflow config — static or conditional'),\n agents: conditionalFieldSchema(z.record(z.string(), toolConfigSchema))\n .optional()\n .describe('Agent keys with optional per-agent config — static or conditional'),\n integrationTools: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of tool provider IDs to their tool configurations — static or conditional'),\n toolProviders: conditionalFieldSchema(toolProvidersSchema)\n .optional()\n .describe(\n 'Tool provider connections and per-tool config (provider-agnostic). Coexists with the deprecated `integrationTools` field.',\n ),\n mcpClients: conditionalFieldSchema(z.record(z.string(), mcpClientToolsConfigSchema))\n .optional()\n .describe('Map of stored MCP client IDs to their tool configurations — static or conditional'),\n inputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Input processor graph — static or conditional'),\n outputProcessors: conditionalFieldSchema(storedProcessorGraphSchema)\n .optional()\n .describe('Output processor graph — static or conditional'),\n memory: conditionalFieldSchema(serializedMemoryConfigSchema)\n .optional()\n .describe('Memory configuration — static or conditional'),\n scorers: conditionalFieldSchema(z.record(z.string(), scorerConfigSchema))\n .optional()\n .describe('Scorer keys with optional sampling config — static or conditional'),\n skills: conditionalFieldSchema(skillsConfigSchema)\n .optional()\n .describe('Skill IDs mapped to per-skill config — static or conditional'),\n workspace: conditionalFieldSchema(workspaceRefSchema)\n .optional()\n .describe('Workspace reference (stored ID or inline config) — static or conditional'),\n browser: z\n .union([conditionalFieldSchema(browserRefSchema), z.boolean(), z.null()])\n .optional()\n .describe('Browser configuration — object config, true (apply default), false/null (disable)'),\n requestContextSchema: z\n .record(z.string(), z.unknown())\n .optional()\n .describe('JSON Schema defining valid request context variables'),\n});\n\n/**\n * Response for GET /stored/agents\n */\nexport const listStoredAgentsResponseSchema = paginationInfoSchema.extend({\n agents: z.array(storedAgentSchema),\n});\n\n/**\n * Response for GET /stored/agents/:storedAgentId\n */\nexport const getStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for POST /stored/agents\n */\nexport const createStoredAgentResponseSchema = storedAgentSchema;\n\n/**\n * Response for PATCH /stored/agents/:storedAgentId\n *\n * The response can be either:\n * 1. A thin agent record (no version) - only has id, status, dates, etc.\n * 2. A resolved agent (with version) - has all config fields from the version\n *\n * We use a union to handle both cases properly.\n */\nexport const updateStoredAgentResponseSchema = z.union([\n // Thin agent record (no version config)\n z.object({\n id: z.string(),\n status: z.string(),\n activeVersionId: z.string().optional(),\n authorId: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n visibility: z.enum(['private', 'public']).optional(),\n createdAt: z.coerce.date(),\n updatedAt: z.coerce.date(),\n }),\n // Resolved agent (thin record + version config)\n storedAgentSchema,\n]);\n\n/**\n * Response for DELETE /stored/agents/:storedAgentId\n */\nexport const deleteStoredAgentResponseSchema = z.object({\n success: z.boolean(),\n message: z.string(),\n});\n\n/**\n * Response for GET /stored/agents/:storedAgentId/dependents\n *\n * `dependents` lists caller-readable stored agents whose resolved `agents` map\n * references the target. Includes both public and the caller's own private\n * agents — anything the caller already has read access to.\n * `hiddenCount` aggregates references from agents the caller cannot read\n * (cross-workspace private agents). Only populated when the target agent is\n * public, to avoid leaking cross-workspace structure for private targets.\n */\nexport const getStoredAgentDependentsResponseSchema = z.object({\n dependents: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n }),\n ),\n hiddenCount: z.number().int().nonnegative(),\n});\n\nexport const exportStoredAgentResponseSchema = z.object({\n agentId: z.string(),\n fileName: z.string(),\n content: z.string(),\n config: z.record(z.string(), z.unknown()),\n});\n\n// ============================================================================\n// Preview Instructions Schemas\n// ============================================================================\n\n/**\n * POST /stored/agents/preview-instructions - Preview resolved instructions\n */\nexport const previewInstructionsBodySchema = z.object({\n blocks: z.array(agentInstructionBlockSchema).describe('Array of instruction blocks to resolve'),\n context: z\n .record(z.string(), z.unknown())\n .optional()\n .default({})\n .describe('Request context for variable interpolation and rule evaluation'),\n});\n\n/**\n * Response for POST /stored/agents/preview-instructions\n */\nexport const previewInstructionsResponseSchema = z.object({\n result: z.string().describe('The resolved instructions string'),\n});\n\n/**\n * Exported for use in agent-versions.ts schemas\n */\nexport {\n snapshotConfigSchema,\n scorerConfigSchema,\n conditionalFieldSchema,\n modelConfigSchema,\n storedProcessorGraphSchema,\n processorGraphStepSchema,\n processorGraphEntrySchema,\n processorPhaseSchema,\n toolConfigSchema,\n toolsConfigSchema,\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { isBuilderFeatureEnabled } from './chunk-4GK7UEOF.js';
2
- import { getCallerAuthorId } from './chunk-7U7OWTR2.js';
1
+ import { isBuilderFeatureEnabled } from './chunk-5UKZ2LAI.js';
2
+ import { getCallerAuthorId } from './chunk-56AYHXOU.js';
3
3
 
4
4
  // src/server/handlers/favorites-enrichment.ts
5
5
  async function prepareFavoritesEnrichment(mastra, requestContext, entityType, entityIds) {
@@ -31,5 +31,5 @@ async function enrichOrStripFavorites(mastra, requestContext, entityType, record
31
31
  }
32
32
 
33
33
  export { enrichOrStripFavorites, prepareFavoritesEnrichment, stripFavoriteFields };
34
- //# sourceMappingURL=chunk-L4Z7J32P.js.map
35
- //# sourceMappingURL=chunk-L4Z7J32P.js.map
34
+ //# sourceMappingURL=chunk-IIRWTIFV.js.map
35
+ //# sourceMappingURL=chunk-IIRWTIFV.js.map