@mastra/server 1.80.0-alpha.7 → 1.81.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (300) hide show
  1. package/dist/_types/@mastra_schema-compat/dist/_types/@internal_ai-sdk-v4/dist/index.d.ts +51 -12
  2. package/dist/_types/@mastra_schema-compat/dist/_types/@internal_ai-sdk-v5/dist/index.d.ts +144 -42
  3. package/dist/_types/@mastra_schema-compat/dist/_types/@internal_ai-v6/dist/index.d.ts +53 -14
  4. package/dist/{a2a-D6ajBqAA.js → a2a-CSz0rw8E.js} +2 -2
  5. package/dist/{a2a-D6ajBqAA.js.map → a2a-CSz0rw8E.js.map} +1 -1
  6. package/dist/{a2a-3ykajvdu.cjs → a2a-CmMIWPuz.cjs} +2 -2
  7. package/dist/{a2a-3ykajvdu.cjs.map → a2a-CmMIWPuz.cjs.map} +1 -1
  8. package/dist/{agent-builder-Cr-52Ulb.js → agent-builder-CSnA_l6K.js} +2 -2
  9. package/dist/{agent-builder-Cr-52Ulb.js.map → agent-builder-CSnA_l6K.js.map} +1 -1
  10. package/dist/{agent-builder-D3WRvBAH.cjs → agent-builder-DIEX-as5.cjs} +7 -7
  11. package/dist/{agent-builder-D3WRvBAH.cjs.map → agent-builder-DIEX-as5.cjs.map} +1 -1
  12. package/dist/{agent-builder-9-GSvpgR.cjs → agent-builder-DSKjD22s.cjs} +2 -2
  13. package/dist/{agent-builder-9-GSvpgR.cjs.map → agent-builder-DSKjD22s.cjs.map} +1 -1
  14. package/dist/{agent-builder-BDHi4NOZ.js → agent-builder-XhBB0Svr.js} +7 -7
  15. package/dist/{agent-builder-BDHi4NOZ.js.map → agent-builder-XhBB0Svr.js.map} +1 -1
  16. package/dist/{agent-versions-De5bRBaa.cjs → agent-versions-DX2rd6j_.cjs} +3 -3
  17. package/dist/{agent-versions-De5bRBaa.cjs.map → agent-versions-DX2rd6j_.cjs.map} +1 -1
  18. package/dist/{agent-versions-Pa-ABszp.js → agent-versions-TUl6ky5W.js} +3 -3
  19. package/dist/{agent-versions-Pa-ABszp.js.map → agent-versions-TUl6ky5W.js.map} +1 -1
  20. package/dist/{agents-Cl3KTHU4.js → agents-B5kq2QEV.js} +2 -2
  21. package/dist/{agents-Cl3KTHU4.js.map → agents-B5kq2QEV.js.map} +1 -1
  22. package/dist/{agents-CiUW6yvl.js → agents-BVjnYswL.js} +3 -3
  23. package/dist/{agents-CiUW6yvl.js.map → agents-BVjnYswL.js.map} +1 -1
  24. package/dist/{agents-Bs1GFnXz.cjs → agents-Cel1sffU.cjs} +2 -2
  25. package/dist/{agents-Bs1GFnXz.cjs.map → agents-Cel1sffU.cjs.map} +1 -1
  26. package/dist/{agents-DBsmIR4c.cjs → agents-D36tukip.cjs} +3 -3
  27. package/dist/{agents-DBsmIR4c.cjs.map → agents-D36tukip.cjs.map} +1 -1
  28. package/dist/{api-schema-manifest-C6MbIQch.js → api-schema-manifest-BVPhF1ZS.js} +2 -2
  29. package/dist/{api-schema-manifest-C6MbIQch.js.map → api-schema-manifest-BVPhF1ZS.js.map} +1 -1
  30. package/dist/{api-schema-manifest-COH6PAvQ.cjs → api-schema-manifest-BWId44SV.cjs} +2 -2
  31. package/dist/{api-schema-manifest-COH6PAvQ.cjs.map → api-schema-manifest-BWId44SV.cjs.map} +1 -1
  32. package/dist/{background-tasks-DIpPsqVy.js → background-tasks-BkYNmUcf.js} +2 -2
  33. package/dist/{background-tasks-DIpPsqVy.js.map → background-tasks-BkYNmUcf.js.map} +1 -1
  34. package/dist/{background-tasks-BMp9Q6SB.cjs → background-tasks-Civclnuq.cjs} +2 -2
  35. package/dist/{background-tasks-BMp9Q6SB.cjs.map → background-tasks-Civclnuq.cjs.map} +1 -1
  36. package/dist/{common-DVZqSEhZ.cjs → common-D5XxSuvu.cjs} +2 -2
  37. package/dist/common-D5XxSuvu.cjs.map +1 -0
  38. package/dist/{common-xUmaFUop.js → common-J-yUnHk9.js} +2 -2
  39. package/dist/common-J-yUnHk9.js.map +1 -0
  40. package/dist/{conversations-BPQNrv5g.cjs → conversations-BVj0Dk2Q.cjs} +2 -2
  41. package/dist/{conversations-BPQNrv5g.cjs.map → conversations-BVj0Dk2Q.cjs.map} +1 -1
  42. package/dist/{conversations-Ce0dCZ23.js → conversations-CABVTBQY.js} +3 -3
  43. package/dist/{conversations-Ce0dCZ23.js.map → conversations-CABVTBQY.js.map} +1 -1
  44. package/dist/{conversations-RVdtAQEv.cjs → conversations-CJn0ioOZ.cjs} +3 -3
  45. package/dist/{conversations-RVdtAQEv.cjs.map → conversations-CJn0ioOZ.cjs.map} +1 -1
  46. package/dist/{conversations-nNko6-H4.js → conversations-DHrKTI6x.js} +2 -2
  47. package/dist/{conversations-nNko6-H4.js.map → conversations-DHrKTI6x.js.map} +1 -1
  48. package/dist/{datasets-hLmYapTk.js → datasets--F0QkdGX.js} +2 -2
  49. package/dist/{datasets-hLmYapTk.js.map → datasets--F0QkdGX.js.map} +1 -1
  50. package/dist/{datasets-BP2O5CSR.cjs → datasets-BiEAIm0s.cjs} +2 -2
  51. package/dist/{datasets-BP2O5CSR.cjs.map → datasets-BiEAIm0s.cjs.map} +1 -1
  52. package/dist/{dist-D6oS7RF1.cjs → dist-BK1fCE4z.cjs} +1 -1
  53. package/dist/{dist-PlsLrwz8.js → dist-BLjE21MA.js} +2157 -2041
  54. package/dist/dist-BLjE21MA.js.map +1 -0
  55. package/dist/{dist-Clj7hRKz.cjs → dist-OpNBTIST.cjs} +2205 -2047
  56. package/dist/dist-OpNBTIST.cjs.map +1 -0
  57. package/dist/dist-_M1jEPcL.js +1 -0
  58. package/dist/docs/SKILL.md +1 -1
  59. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  60. package/dist/docs/references/reference-observability-tracing-advanced-queries.md +33 -16
  61. package/dist/docs/references/reference-server-create-route.md +20 -4
  62. package/dist/{editor-builder-9T1aGM2f.cjs → editor-builder-B8Mf4kJo.cjs} +2 -2
  63. package/dist/{editor-builder-9T1aGM2f.cjs.map → editor-builder-B8Mf4kJo.cjs.map} +1 -1
  64. package/dist/{editor-builder-Bj_or9-c.cjs → editor-builder-CeiISBIO.cjs} +3 -3
  65. package/dist/{editor-builder-Bj_or9-c.cjs.map → editor-builder-CeiISBIO.cjs.map} +1 -1
  66. package/dist/{editor-builder-Cc0zrTC1.js → editor-builder-DeD6EVm8.js} +3 -3
  67. package/dist/{editor-builder-Cc0zrTC1.js.map → editor-builder-DeD6EVm8.js.map} +1 -1
  68. package/dist/{editor-builder-lzO2zecA.js → editor-builder-PKGDfYNc.js} +2 -2
  69. package/dist/{editor-builder-lzO2zecA.js.map → editor-builder-PKGDfYNc.js.map} +1 -1
  70. package/dist/{logs-DIBh_xCk.js → logs-BbaBP2LD.js} +3 -3
  71. package/dist/{logs-DIBh_xCk.js.map → logs-BbaBP2LD.js.map} +1 -1
  72. package/dist/{logs-DpyTCDyt.js → logs-Ca_q8krO.js} +2 -2
  73. package/dist/{logs-DpyTCDyt.js.map → logs-Ca_q8krO.js.map} +1 -1
  74. package/dist/{logs-NNur5jkf.cjs → logs-DI-h9uHR.cjs} +3 -3
  75. package/dist/{logs-NNur5jkf.cjs.map → logs-DI-h9uHR.cjs.map} +1 -1
  76. package/dist/{logs-CC6IycDY.cjs → logs-YisOj8HR.cjs} +2 -2
  77. package/dist/{logs-CC6IycDY.cjs.map → logs-YisOj8HR.cjs.map} +1 -1
  78. package/dist/{mcp-4iUBgZ7s.cjs → mcp-Bt3h1lO7.cjs} +2 -2
  79. package/dist/{mcp-4iUBgZ7s.cjs.map → mcp-Bt3h1lO7.cjs.map} +1 -1
  80. package/dist/{mcp-CnV25lv0.js → mcp-D3F3iYew.js} +2 -2
  81. package/dist/{mcp-CnV25lv0.js.map → mcp-D3F3iYew.js.map} +1 -1
  82. package/dist/{mcp-DgdKiptb.js → mcp-D4Cprr8R.js} +2 -2
  83. package/dist/{mcp-DgdKiptb.js.map → mcp-D4Cprr8R.js.map} +1 -1
  84. package/dist/{mcp-client-versions-HRTe5cRT.cjs → mcp-client-versions-BS99SD4O.cjs} +2 -2
  85. package/dist/{mcp-client-versions-HRTe5cRT.cjs.map → mcp-client-versions-BS99SD4O.cjs.map} +1 -1
  86. package/dist/{mcp-client-versions-B471u-DI.js → mcp-client-versions-Rd-ry9Qa.js} +2 -2
  87. package/dist/{mcp-client-versions-B471u-DI.js.map → mcp-client-versions-Rd-ry9Qa.js.map} +1 -1
  88. package/dist/{mcp-DegWUDeB.cjs → mcp-mpYrlkUA.cjs} +2 -2
  89. package/dist/{mcp-DegWUDeB.cjs.map → mcp-mpYrlkUA.cjs.map} +1 -1
  90. package/dist/{memory-BnPGDrdg.cjs → memory--xJDrSwF.cjs} +2 -2
  91. package/dist/{memory-BnPGDrdg.cjs.map → memory--xJDrSwF.cjs.map} +1 -1
  92. package/dist/{memory-DeZ1je-b.js → memory-BTR95ujT.js} +4 -4
  93. package/dist/{memory-DeZ1je-b.js.map → memory-BTR95ujT.js.map} +1 -1
  94. package/dist/{memory-Pj9P9vsl.cjs → memory-Buhi6kZ-.cjs} +4 -4
  95. package/dist/{memory-Pj9P9vsl.cjs.map → memory-Buhi6kZ-.cjs.map} +1 -1
  96. package/dist/{memory-CZ2ELVP0.js → memory-CCEjoCF6.js} +2 -2
  97. package/dist/{memory-CZ2ELVP0.js.map → memory-CCEjoCF6.js.map} +1 -1
  98. package/dist/{observability-65rZOqJk.js → observability-BgIU0otL.js} +2 -2
  99. package/dist/{observability-65rZOqJk.js.map → observability-BgIU0otL.js.map} +1 -1
  100. package/dist/{observability-CFKSxaff.cjs → observability-DHuljMXO.cjs} +2 -2
  101. package/dist/{observability-CFKSxaff.cjs.map → observability-DHuljMXO.cjs.map} +1 -1
  102. package/dist/{observability-new-endpoints-CDeHfFNP.cjs → observability-new-endpoints-CaTskbSh.cjs} +12 -3
  103. package/dist/observability-new-endpoints-CaTskbSh.cjs.map +1 -0
  104. package/dist/{observability-new-endpoints-B6MRJ5Rb.js → observability-new-endpoints-CsUP8y2j.js} +13 -4
  105. package/dist/observability-new-endpoints-CsUP8y2j.js.map +1 -0
  106. package/dist/{plans-DVErlJoO.js → plans-B5GgYqx-.js} +3 -3
  107. package/dist/{plans-DVErlJoO.js.map → plans-B5GgYqx-.js.map} +1 -1
  108. package/dist/{plans-Cu3zbWP_.cjs → plans-Dydti0sT.cjs} +3 -3
  109. package/dist/{plans-Cu3zbWP_.cjs.map → plans-Dydti0sT.cjs.map} +1 -1
  110. package/dist/{probe-image-size-C0psF6WM.cjs → probe-image-size-BIZUe8Bp.cjs} +50 -678
  111. package/dist/probe-image-size-BIZUe8Bp.cjs.map +1 -0
  112. package/dist/{probe-image-size-CpV7slsd.js → probe-image-size-BqH96zcz.js} +50 -678
  113. package/dist/probe-image-size-BqH96zcz.js.map +1 -0
  114. package/dist/{prompt-block-versions-D1gjBkQx.js → prompt-block-versions-3T-L2loy.js} +2 -2
  115. package/dist/{prompt-block-versions-D1gjBkQx.js.map → prompt-block-versions-3T-L2loy.js.map} +1 -1
  116. package/dist/{prompt-block-versions-BUPyaY8g.cjs → prompt-block-versions-BTdrcaLe.cjs} +2 -2
  117. package/dist/{prompt-block-versions-BUPyaY8g.cjs.map → prompt-block-versions-BTdrcaLe.cjs.map} +1 -1
  118. package/dist/{responses-DniqbL1B.cjs → responses-CxvSoOLt.cjs} +2 -2
  119. package/dist/{responses-DniqbL1B.cjs.map → responses-CxvSoOLt.cjs.map} +1 -1
  120. package/dist/{responses-DOqM_drh.js → responses-DbiqhxP3.js} +2 -2
  121. package/dist/{responses-DOqM_drh.js.map → responses-DbiqhxP3.js.map} +1 -1
  122. package/dist/route-builder-BxPrwNog.js.map +1 -1
  123. package/dist/route-builder-CvARmqnA.cjs.map +1 -1
  124. package/dist/{routes-B_-KRQOi.cjs → routes-By3cLbPV.cjs} +19 -19
  125. package/dist/{routes-B_-KRQOi.cjs.map → routes-By3cLbPV.cjs.map} +1 -1
  126. package/dist/{routes-BfQBQbwB.js → routes-CBrxFxzL.js} +19 -19
  127. package/dist/{routes-BfQBQbwB.js.map → routes-CBrxFxzL.js.map} +1 -1
  128. package/dist/schema-Bf12g7KC-DBc4NSds.js.map +1 -1
  129. package/dist/schema-Bf12g7KC-plP4Ir6h.cjs.map +1 -1
  130. package/dist/{scorer-versions-r7C61gWf.cjs → scorer-versions-BOjrlIcM.cjs} +3 -3
  131. package/dist/{scorer-versions-r7C61gWf.cjs.map → scorer-versions-BOjrlIcM.cjs.map} +1 -1
  132. package/dist/{scorer-versions-DIqKt2kn.js → scorer-versions-DIcWTIgC.js} +3 -3
  133. package/dist/{scorer-versions-DIqKt2kn.js.map → scorer-versions-DIcWTIgC.js.map} +1 -1
  134. package/dist/{scores-DZ1hftoG.js → scores-BULd4ZBI.js} +2 -2
  135. package/dist/{scores-DZ1hftoG.js.map → scores-BULd4ZBI.js.map} +1 -1
  136. package/dist/{scores-BXrRHFvI.js → scores-BjclMqFa.js} +4 -4
  137. package/dist/{scores-BXrRHFvI.js.map → scores-BjclMqFa.js.map} +1 -1
  138. package/dist/{scores-Bu70OP1U.cjs → scores-CWCaN4jf.cjs} +2 -2
  139. package/dist/{scores-Bu70OP1U.cjs.map → scores-CWCaN4jf.cjs.map} +1 -1
  140. package/dist/{scores-BAZL_l3k.cjs → scores-CnozEyM4.cjs} +4 -4
  141. package/dist/{scores-BAZL_l3k.cjs.map → scores-CnozEyM4.cjs.map} +1 -1
  142. package/dist/server/handlers/a2a.cjs +1 -1
  143. package/dist/server/handlers/a2a.js +1 -1
  144. package/dist/server/handlers/agent-builder.cjs +1 -1
  145. package/dist/server/handlers/agent-builder.js +1 -1
  146. package/dist/server/handlers/agent-controller.cjs +1 -1
  147. package/dist/server/handlers/agent-controller.js +1 -1
  148. package/dist/server/handlers/agent-versions.cjs +2 -2
  149. package/dist/server/handlers/agent-versions.js +2 -2
  150. package/dist/server/handlers/agents.cjs +1 -1
  151. package/dist/server/handlers/agents.js +1 -1
  152. package/dist/server/handlers/background-tasks.cjs +1 -1
  153. package/dist/server/handlers/background-tasks.js +1 -1
  154. package/dist/server/handlers/conversations.cjs +1 -1
  155. package/dist/server/handlers/conversations.js +1 -1
  156. package/dist/server/handlers/datasets.cjs +2 -2
  157. package/dist/server/handlers/datasets.js +2 -2
  158. package/dist/server/handlers/editor-builder.cjs +1 -1
  159. package/dist/server/handlers/editor-builder.js +1 -1
  160. package/dist/server/handlers/favorites-enrichment.cjs +1 -1
  161. package/dist/server/handlers/favorites-enrichment.js +1 -1
  162. package/dist/server/handlers/logs.cjs +1 -1
  163. package/dist/server/handlers/logs.js +1 -1
  164. package/dist/server/handlers/mcp-client-versions.cjs +1 -1
  165. package/dist/server/handlers/mcp-client-versions.js +1 -1
  166. package/dist/server/handlers/mcp.cjs +1 -1
  167. package/dist/server/handlers/mcp.js +1 -1
  168. package/dist/server/handlers/memory.cjs +1 -1
  169. package/dist/server/handlers/memory.js +1 -1
  170. package/dist/server/handlers/observability-new-endpoints.cjs +1 -1
  171. package/dist/server/handlers/observability-new-endpoints.d.ts +36 -4
  172. package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
  173. package/dist/server/handlers/observability-new-endpoints.js +1 -1
  174. package/dist/server/handlers/observability-shared.cjs +27 -0
  175. package/dist/server/handlers/observability-shared.cjs.map +1 -1
  176. package/dist/server/handlers/observability-shared.d.ts +10 -0
  177. package/dist/server/handlers/observability-shared.d.ts.map +1 -1
  178. package/dist/server/handlers/observability-shared.js +24 -1
  179. package/dist/server/handlers/observability-shared.js.map +1 -1
  180. package/dist/server/handlers/observability.cjs +2 -2
  181. package/dist/server/handlers/observability.js +2 -2
  182. package/dist/server/handlers/plans.cjs +1 -1
  183. package/dist/server/handlers/plans.js +1 -1
  184. package/dist/server/handlers/prompt-block-versions.cjs +1 -1
  185. package/dist/server/handlers/prompt-block-versions.js +1 -1
  186. package/dist/server/handlers/responses.cjs +1 -1
  187. package/dist/server/handlers/responses.js +1 -1
  188. package/dist/server/handlers/scorer-versions.cjs +1 -1
  189. package/dist/server/handlers/scorer-versions.js +1 -1
  190. package/dist/server/handlers/scores.cjs +1 -1
  191. package/dist/server/handlers/scores.js +1 -1
  192. package/dist/server/handlers/stored-agent-favorites.cjs +2 -2
  193. package/dist/server/handlers/stored-agent-favorites.js +2 -2
  194. package/dist/server/handlers/stored-agents.cjs +3 -3
  195. package/dist/server/handlers/stored-agents.js +3 -3
  196. package/dist/server/handlers/stored-mcp-clients.cjs +2 -2
  197. package/dist/server/handlers/stored-mcp-clients.js +2 -2
  198. package/dist/server/handlers/stored-prompt-blocks.cjs +2 -2
  199. package/dist/server/handlers/stored-prompt-blocks.js +2 -2
  200. package/dist/server/handlers/stored-scorers.cjs +2 -2
  201. package/dist/server/handlers/stored-scorers.js +2 -2
  202. package/dist/server/handlers/stored-skill-favorites.cjs +2 -2
  203. package/dist/server/handlers/stored-skill-favorites.js +2 -2
  204. package/dist/server/handlers/stored-skills.cjs +2 -2
  205. package/dist/server/handlers/stored-skills.js +2 -2
  206. package/dist/server/handlers/stored-workspaces.cjs +1 -1
  207. package/dist/server/handlers/stored-workspaces.js +1 -1
  208. package/dist/server/handlers/system.cjs +2 -2
  209. package/dist/server/handlers/system.d.ts +4 -0
  210. package/dist/server/handlers/system.d.ts.map +1 -1
  211. package/dist/server/handlers/system.js +2 -2
  212. package/dist/server/handlers/tools.cjs +1 -1
  213. package/dist/server/handlers/tools.js +1 -1
  214. package/dist/server/handlers/vector.cjs +1 -1
  215. package/dist/server/handlers/vector.js +1 -1
  216. package/dist/server/handlers/workflow-builder.cjs +1 -1
  217. package/dist/server/handlers/workflow-builder.js +1 -1
  218. package/dist/server/handlers/workflows.cjs +1 -1
  219. package/dist/server/handlers/workflows.js +1 -1
  220. package/dist/server/handlers.cjs +14 -14
  221. package/dist/server/handlers.js +14 -14
  222. package/dist/server/schemas/common.d.ts.map +1 -1
  223. package/dist/server/schemas/index.cjs +24 -24
  224. package/dist/server/schemas/index.js +24 -24
  225. package/dist/server/schemas/system.d.ts +4 -0
  226. package/dist/server/schemas/system.d.ts.map +1 -1
  227. package/dist/server/server-adapter/index.cjs +1 -1
  228. package/dist/server/server-adapter/index.js +1 -1
  229. package/dist/server/server-adapter/routes/observability.d.ts +18 -2
  230. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
  231. package/dist/server/server-adapter/routes/system.d.ts +4 -0
  232. package/dist/server/server-adapter/routes/system.d.ts.map +1 -1
  233. package/dist/{stored-agents-BpxMmhtz.js → stored-agents-C9zCintA.js} +3 -3
  234. package/dist/{stored-agents-BpxMmhtz.js.map → stored-agents-C9zCintA.js.map} +1 -1
  235. package/dist/{stored-agents-CDlh3CQQ.cjs → stored-agents-LCHZldYH.cjs} +3 -3
  236. package/dist/{stored-agents-CDlh3CQQ.cjs.map → stored-agents-LCHZldYH.cjs.map} +1 -1
  237. package/dist/{stored-mcp-clients-BA7OSGZ_.cjs → stored-mcp-clients-D14ULUvS.cjs} +2 -2
  238. package/dist/{stored-mcp-clients-BA7OSGZ_.cjs.map → stored-mcp-clients-D14ULUvS.cjs.map} +1 -1
  239. package/dist/{stored-mcp-clients-DtLv0Tly.js → stored-mcp-clients-d_PaPgGc.js} +2 -2
  240. package/dist/{stored-mcp-clients-DtLv0Tly.js.map → stored-mcp-clients-d_PaPgGc.js.map} +1 -1
  241. package/dist/{stored-prompt-blocks-Z_BuhsUq.js → stored-prompt-blocks-B5yfQnPC.js} +2 -2
  242. package/dist/{stored-prompt-blocks-Z_BuhsUq.js.map → stored-prompt-blocks-B5yfQnPC.js.map} +1 -1
  243. package/dist/{stored-prompt-blocks-Cqi0vnTE.cjs → stored-prompt-blocks-CqaOxMZ-.cjs} +2 -2
  244. package/dist/{stored-prompt-blocks-Cqi0vnTE.cjs.map → stored-prompt-blocks-CqaOxMZ-.cjs.map} +1 -1
  245. package/dist/{stored-scorers-D1zYUEXg.cjs → stored-scorers-DxQds4_y.cjs} +3 -3
  246. package/dist/{stored-scorers-D1zYUEXg.cjs.map → stored-scorers-DxQds4_y.cjs.map} +1 -1
  247. package/dist/{stored-scorers-BdJadnUS.js → stored-scorers-Dz9vAQcr.js} +3 -3
  248. package/dist/{stored-scorers-BdJadnUS.js.map → stored-scorers-Dz9vAQcr.js.map} +1 -1
  249. package/dist/{stored-skills-D8Q1NmsH.js → stored-skills-GNJMp022.js} +2 -2
  250. package/dist/{stored-skills-D8Q1NmsH.js.map → stored-skills-GNJMp022.js.map} +1 -1
  251. package/dist/{stored-skills-DppdzQY0.cjs → stored-skills-xuecapXy.cjs} +2 -2
  252. package/dist/{stored-skills-DppdzQY0.cjs.map → stored-skills-xuecapXy.cjs.map} +1 -1
  253. package/dist/{stored-workspaces-CYXLBJy5.js → stored-workspaces-Bswuz00o.js} +2 -2
  254. package/dist/{stored-workspaces-CYXLBJy5.js.map → stored-workspaces-Bswuz00o.js.map} +1 -1
  255. package/dist/{stored-workspaces-BOwJwkec.cjs → stored-workspaces-g5-GKY38.cjs} +2 -2
  256. package/dist/{stored-workspaces-BOwJwkec.cjs.map → stored-workspaces-g5-GKY38.cjs.map} +1 -1
  257. package/dist/{system-DGfJlOxK.cjs → system-BxHpBJiq.cjs} +3 -1
  258. package/dist/system-BxHpBJiq.cjs.map +1 -0
  259. package/dist/{system-B8L_G4oo.js → system-CxwzIMsy.js} +3 -1
  260. package/dist/system-CxwzIMsy.js.map +1 -0
  261. package/dist/{tools-HYYytfMx.cjs → tools-CeJrnYDf.cjs} +4 -4
  262. package/dist/{tools-HYYytfMx.cjs.map → tools-CeJrnYDf.cjs.map} +1 -1
  263. package/dist/{tools-Do1uV_07.js → tools-Ck35EVD7.js} +4 -4
  264. package/dist/{tools-Do1uV_07.js.map → tools-Ck35EVD7.js.map} +1 -1
  265. package/dist/{vector-Deod39jt.js → vector-BAs5o6mH.js} +2 -2
  266. package/dist/{vector-Deod39jt.js.map → vector-BAs5o6mH.js.map} +1 -1
  267. package/dist/{vector-IxK1t4Cb.cjs → vector-BZ1bKtwM.cjs} +2 -2
  268. package/dist/{vector-IxK1t4Cb.cjs.map → vector-BZ1bKtwM.cjs.map} +1 -1
  269. package/dist/{vectors-CqV387sY.cjs → vectors-CPSofSCf.cjs} +2 -2
  270. package/dist/{vectors-CqV387sY.cjs.map → vectors-CPSofSCf.cjs.map} +1 -1
  271. package/dist/{vectors-CvHLWqjC.js → vectors-CadLydEJ.js} +2 -2
  272. package/dist/{vectors-CvHLWqjC.js.map → vectors-CadLydEJ.js.map} +1 -1
  273. package/dist/{version-common-Di2U8VWH.js → version-common-BLTDO88f.js} +2 -2
  274. package/dist/{version-common-Di2U8VWH.js.map → version-common-BLTDO88f.js.map} +1 -1
  275. package/dist/{version-common-B2n_ML_w.cjs → version-common-Cc0STXl9.cjs} +2 -2
  276. package/dist/{version-common-B2n_ML_w.cjs.map → version-common-Cc0STXl9.cjs.map} +1 -1
  277. package/dist/{workflow-builder-ezo8ZG1K.js → workflow-builder--W9PMW13.js} +3 -3
  278. package/dist/{workflow-builder-ezo8ZG1K.js.map → workflow-builder--W9PMW13.js.map} +1 -1
  279. package/dist/{workflow-builder-DJKziSOo.cjs → workflow-builder-CT7JOoW6.cjs} +3 -3
  280. package/dist/{workflow-builder-DJKziSOo.cjs.map → workflow-builder-CT7JOoW6.cjs.map} +1 -1
  281. package/dist/{workflows-BWLDlaL9.cjs → workflows-BAOfWBkr.cjs} +4 -4
  282. package/dist/{workflows-BWLDlaL9.cjs.map → workflows-BAOfWBkr.cjs.map} +1 -1
  283. package/dist/{workflows-SYBpQupF.cjs → workflows-CKcjXfXk.cjs} +2 -2
  284. package/dist/{workflows-SYBpQupF.cjs.map → workflows-CKcjXfXk.cjs.map} +1 -1
  285. package/dist/{workflows-Dm2iK1nq.js → workflows-DPIRVRN9.js} +4 -4
  286. package/dist/{workflows-Dm2iK1nq.js.map → workflows-DPIRVRN9.js.map} +1 -1
  287. package/dist/{workflows-C9BMJV_C.js → workflows-DTxiWG6x.js} +2 -2
  288. package/dist/{workflows-C9BMJV_C.js.map → workflows-DTxiWG6x.js.map} +1 -1
  289. package/package.json +11 -11
  290. package/dist/common-DVZqSEhZ.cjs.map +0 -1
  291. package/dist/common-xUmaFUop.js.map +0 -1
  292. package/dist/dist-C-L2kyKZ.js +0 -1
  293. package/dist/dist-Clj7hRKz.cjs.map +0 -1
  294. package/dist/dist-PlsLrwz8.js.map +0 -1
  295. package/dist/observability-new-endpoints-B6MRJ5Rb.js.map +0 -1
  296. package/dist/observability-new-endpoints-CDeHfFNP.cjs.map +0 -1
  297. package/dist/probe-image-size-C0psF6WM.cjs.map +0 -1
  298. package/dist/probe-image-size-CpV7slsd.js.map +0 -1
  299. package/dist/system-B8L_G4oo.js.map +0 -1
  300. package/dist/system-DGfJlOxK.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"editor-builder-lzO2zecA.js","names":[],"sources":["../src/server/schemas/editor-builder.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { providerSchema } from './agents';\n\n/**\n * Agent feature flags for the builder.\n *\n * Wire format: each key is an optional boolean. The server normalizes admin\n * input via `resolveAgentFeatures` (default-on semantics): any omitted key\n * resolves to `true`; admins opt out by setting a key to `false`. The\n * `GET /editor/builder/settings` response always carries a fully-resolved\n * object — clients should still use strict `=== true` checks.\n *\n * Special cases:\n * - `browser`: only resolves to `true` when `configuration.agent.browser` is\n * provided. Omitted with no config ⇒ silently `false` (no warning).\n * Explicit `true` with no config ⇒ warns and downgrades to `false`.\n */\nexport const agentFeaturesSchema = z.object({\n tools: z.boolean().optional(),\n agents: z.boolean().optional(),\n workflows: z.boolean().optional(),\n scorers: z.boolean().optional(),\n skills: z.boolean().optional(),\n memory: z.boolean().optional(),\n variables: z.boolean().optional(),\n favorites: z.boolean().optional(),\n avatarUpload: z.boolean().optional(),\n browser: z.boolean().optional(),\n /**\n * Whether the model picker is visible in the Agent Builder.\n * Omitted ⇒ picker visible (default-on). Explicit `false` ⇒ picker hidden\n * (locked mode); `models.default` is required and applied.\n */\n model: z.boolean().optional(),\n});\n\n/**\n * Allowlist + default-model entries for {@link agentModelsSchema}.\n *\n * Four standalone schemas (known × custom × entry × default) joined with `z.union`.\n * The schema does NOT validate `provider` against the runtime registry — invalid strings\n * surface as warnings during Phase 4 config validation.\n *\n * NOTE: `z.union(...).extend()` does not exist; that's why these are separate schemas.\n */\n// All four schemas are `.strict()` so typos like `modelID` or `Provider` are\n// rejected up-front instead of silently widening the policy.\nconst knownProviderEntrySchema = z\n .object({\n provider: z.string().min(1),\n modelId: z.string().min(1).optional(),\n })\n .strict();\n\nconst customProviderEntrySchema = z\n .object({\n kind: z.literal('custom'),\n provider: z.string().min(1),\n modelId: z.string().min(1).optional(),\n })\n .strict();\n\nconst knownDefaultModelEntrySchema = z\n .object({\n provider: z.string().min(1),\n modelId: z.string().min(1),\n })\n .strict();\n\nconst customDefaultModelEntrySchema = z\n .object({\n kind: z.literal('custom'),\n provider: z.string().min(1),\n modelId: z.string().min(1),\n })\n .strict();\n\n// Custom-tagged variants must come first so the discriminator (`kind: 'custom'`)\n// wins over the more permissive known-provider schemas. Otherwise the union\n// silently drops the `kind` field on matching inputs.\nexport const providerModelEntrySchema = z.union([customProviderEntrySchema, knownProviderEntrySchema]);\nexport const defaultModelEntrySchema = z.union([customDefaultModelEntrySchema, knownDefaultModelEntrySchema]);\n\n/**\n * Admin-controlled model allowlist + default for the Agent Builder.\n */\nexport const agentModelsSchema = z.object({\n allowed: z.array(providerModelEntrySchema).optional(),\n default: defaultModelEntrySchema.optional(),\n});\n\n/**\n * Admin-controlled allowlist for one of the builder pickers (tools/agents/workflows).\n *\n * Semantics:\n * - omitted ⇒ unrestricted (all registered IDs shown in the picker).\n * - `allowed: []` ⇒ empty picker (explicit lockdown).\n * - `allowed: [...ids]` ⇒ only the listed IDs are shown.\n */\nexport const pickerAllowlistSchema = z\n .object({\n allowed: z.array(z.string()).optional(),\n })\n .strict();\n\n/**\n * Agent configuration (pinned, non-overridable settings).\n *\n * Known structured field: `models` (Phase 1 contracts).\n * Other keys flow through unchanged for forward compatibility.\n */\nexport const agentConfigurationSchema = z\n .object({\n models: agentModelsSchema.optional(),\n tools: pickerAllowlistSchema.optional(),\n agents: pickerAllowlistSchema.optional(),\n workflows: pickerAllowlistSchema.optional(),\n })\n .catchall(z.unknown());\n\n/**\n * Resolved picker visibility returned in `BuilderSettingsResponse`.\n *\n * Per kind:\n * - `null` ⇒ unrestricted (show all registered entries).\n * - `string[]` ⇒ explicit allowlist (may be empty to show none).\n */\nexport const builderPickerSchema = z.object({\n visibleTools: z.array(z.string()).nullable(),\n visibleAgents: z.array(z.string()).nullable(),\n visibleWorkflows: z.array(z.string()).nullable(),\n});\n\n/**\n * Derived `BuilderModelPolicy`. Server-owned shape so the playground hook is a\n * thin selector and the UI never re-derives policy from `features` / `configuration`.\n *\n * Mirrors `BuilderModelPolicy` from `@mastra/core/agent-builder/ee`:\n * - `active: false` ⇒ all other fields ignored.\n * - `active: true` + `pickerVisible: false` (locked) ⇒ `default` set in valid configs.\n * - `allowed`/`default` are passed through verbatim when present.\n */\nexport const builderModelPolicySchema = z.object({\n active: z.boolean(),\n pickerVisible: z.boolean().optional(),\n allowed: z.array(providerModelEntrySchema).optional(),\n default: defaultModelEntrySchema.optional(),\n});\n\n/**\n * Response schema for GET /editor/builder/settings\n */\nexport const builderSettingsResponseSchema = z.object({\n enabled: z.boolean(),\n features: z\n .object({\n agent: agentFeaturesSchema.optional(),\n })\n .optional(),\n configuration: z\n .object({\n agent: agentConfigurationSchema.optional(),\n })\n .optional(),\n modelPolicy: builderModelPolicySchema.optional(),\n /**\n * Resolved picker visibility for tools/agents/workflows. Always present when\n * the builder is enabled. Omitted when the builder is disabled.\n */\n picker: builderPickerSchema.optional(),\n /**\n * Non-fatal warnings produced by `EditorAgentBuilder`'s constructor-time\n * validation (e.g. allowlist entries with unknown provider strings, or\n * picker allowlist entries that don't match a registered ID). UI surfaces\n * these as a banner in the Builder admin view.\n */\n modelPolicyWarnings: z.array(z.string()).optional(),\n});\n\n/**\n * Infrastructure status response for Agent Builder admin diagnostics.\n *\n * Reports the Agent Builder-specific primitive configuration plus lightweight\n * runtime resolution state where useful.\n */\nexport const infrastructureStatusResponseSchema = z.object({\n channels: z.object({\n providers: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n isConfigured: z.boolean(),\n routeCount: z.number(),\n }),\n ),\n }),\n browser: z.object({\n type: z.string().nullable(),\n provider: z.string().nullable(),\n env: z.string().nullable(),\n registered: z.boolean(),\n availableProviders: z.array(z.string()),\n config: z.array(z.object({ key: z.string(), value: z.string() })),\n }),\n workspace: z.object({\n type: z.string().nullable(),\n workspaceId: z.string().nullable(),\n name: z.string().nullable(),\n source: z.string().nullable(),\n registered: z.boolean(),\n hasFilesystem: z.boolean(),\n hasSandbox: z.boolean(),\n filesystemProvider: z.string().nullable(),\n sandboxProvider: z.string().nullable(),\n config: z.array(z.object({ key: z.string(), value: z.string() })),\n }),\n registries: z.object({\n skillsSh: z.object({\n enabled: z.boolean(),\n }),\n }),\n});\n\n/**\n * Response schema for GET /editor/builder/models/available.\n *\n * Same provider shape as GET /agents/providers, but each provider's `models`\n * list is already filtered by the active builder model policy (server applies\n * the EE allowlist). Providers with no allowed models are omitted entirely so\n * the Studio model picker can render the response verbatim.\n */\nexport const builderAvailableModelsResponseSchema = z.object({\n providers: z.array(providerSchema),\n});\n\nexport type BuilderAvailableModelsResponse = z.infer<typeof builderAvailableModelsResponseSchema>;\n\nexport type InfrastructureStatus = z.infer<typeof infrastructureStatusResponseSchema>;\n\nexport type AgentFeatures = z.infer<typeof agentFeaturesSchema>;\nexport type AgentConfiguration = z.infer<typeof agentConfigurationSchema>;\nexport type BuilderSettingsResponse = z.infer<typeof builderSettingsResponseSchema>;\nexport type ProviderModelEntrySchema = z.infer<typeof providerModelEntrySchema>;\nexport type DefaultModelEntrySchema = z.infer<typeof defaultModelEntrySchema>;\nexport type AgentModelsSchema = z.infer<typeof agentModelsSchema>;\nexport type BuilderModelPolicySchema = z.infer<typeof builderModelPolicySchema>;\nexport type PickerAllowlistSchema = z.infer<typeof pickerAllowlistSchema>;\nexport type BuilderPickerSchema = z.infer<typeof builderPickerSchema>;\n"],"mappings":"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"}
1
+ {"version":3,"file":"editor-builder-PKGDfYNc.js","names":[],"sources":["../src/server/schemas/editor-builder.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { providerSchema } from './agents';\n\n/**\n * Agent feature flags for the builder.\n *\n * Wire format: each key is an optional boolean. The server normalizes admin\n * input via `resolveAgentFeatures` (default-on semantics): any omitted key\n * resolves to `true`; admins opt out by setting a key to `false`. The\n * `GET /editor/builder/settings` response always carries a fully-resolved\n * object — clients should still use strict `=== true` checks.\n *\n * Special cases:\n * - `browser`: only resolves to `true` when `configuration.agent.browser` is\n * provided. Omitted with no config ⇒ silently `false` (no warning).\n * Explicit `true` with no config ⇒ warns and downgrades to `false`.\n */\nexport const agentFeaturesSchema = z.object({\n tools: z.boolean().optional(),\n agents: z.boolean().optional(),\n workflows: z.boolean().optional(),\n scorers: z.boolean().optional(),\n skills: z.boolean().optional(),\n memory: z.boolean().optional(),\n variables: z.boolean().optional(),\n favorites: z.boolean().optional(),\n avatarUpload: z.boolean().optional(),\n browser: z.boolean().optional(),\n /**\n * Whether the model picker is visible in the Agent Builder.\n * Omitted ⇒ picker visible (default-on). Explicit `false` ⇒ picker hidden\n * (locked mode); `models.default` is required and applied.\n */\n model: z.boolean().optional(),\n});\n\n/**\n * Allowlist + default-model entries for {@link agentModelsSchema}.\n *\n * Four standalone schemas (known × custom × entry × default) joined with `z.union`.\n * The schema does NOT validate `provider` against the runtime registry — invalid strings\n * surface as warnings during Phase 4 config validation.\n *\n * NOTE: `z.union(...).extend()` does not exist; that's why these are separate schemas.\n */\n// All four schemas are `.strict()` so typos like `modelID` or `Provider` are\n// rejected up-front instead of silently widening the policy.\nconst knownProviderEntrySchema = z\n .object({\n provider: z.string().min(1),\n modelId: z.string().min(1).optional(),\n })\n .strict();\n\nconst customProviderEntrySchema = z\n .object({\n kind: z.literal('custom'),\n provider: z.string().min(1),\n modelId: z.string().min(1).optional(),\n })\n .strict();\n\nconst knownDefaultModelEntrySchema = z\n .object({\n provider: z.string().min(1),\n modelId: z.string().min(1),\n })\n .strict();\n\nconst customDefaultModelEntrySchema = z\n .object({\n kind: z.literal('custom'),\n provider: z.string().min(1),\n modelId: z.string().min(1),\n })\n .strict();\n\n// Custom-tagged variants must come first so the discriminator (`kind: 'custom'`)\n// wins over the more permissive known-provider schemas. Otherwise the union\n// silently drops the `kind` field on matching inputs.\nexport const providerModelEntrySchema = z.union([customProviderEntrySchema, knownProviderEntrySchema]);\nexport const defaultModelEntrySchema = z.union([customDefaultModelEntrySchema, knownDefaultModelEntrySchema]);\n\n/**\n * Admin-controlled model allowlist + default for the Agent Builder.\n */\nexport const agentModelsSchema = z.object({\n allowed: z.array(providerModelEntrySchema).optional(),\n default: defaultModelEntrySchema.optional(),\n});\n\n/**\n * Admin-controlled allowlist for one of the builder pickers (tools/agents/workflows).\n *\n * Semantics:\n * - omitted ⇒ unrestricted (all registered IDs shown in the picker).\n * - `allowed: []` ⇒ empty picker (explicit lockdown).\n * - `allowed: [...ids]` ⇒ only the listed IDs are shown.\n */\nexport const pickerAllowlistSchema = z\n .object({\n allowed: z.array(z.string()).optional(),\n })\n .strict();\n\n/**\n * Agent configuration (pinned, non-overridable settings).\n *\n * Known structured field: `models` (Phase 1 contracts).\n * Other keys flow through unchanged for forward compatibility.\n */\nexport const agentConfigurationSchema = z\n .object({\n models: agentModelsSchema.optional(),\n tools: pickerAllowlistSchema.optional(),\n agents: pickerAllowlistSchema.optional(),\n workflows: pickerAllowlistSchema.optional(),\n })\n .catchall(z.unknown());\n\n/**\n * Resolved picker visibility returned in `BuilderSettingsResponse`.\n *\n * Per kind:\n * - `null` ⇒ unrestricted (show all registered entries).\n * - `string[]` ⇒ explicit allowlist (may be empty to show none).\n */\nexport const builderPickerSchema = z.object({\n visibleTools: z.array(z.string()).nullable(),\n visibleAgents: z.array(z.string()).nullable(),\n visibleWorkflows: z.array(z.string()).nullable(),\n});\n\n/**\n * Derived `BuilderModelPolicy`. Server-owned shape so the playground hook is a\n * thin selector and the UI never re-derives policy from `features` / `configuration`.\n *\n * Mirrors `BuilderModelPolicy` from `@mastra/core/agent-builder/ee`:\n * - `active: false` ⇒ all other fields ignored.\n * - `active: true` + `pickerVisible: false` (locked) ⇒ `default` set in valid configs.\n * - `allowed`/`default` are passed through verbatim when present.\n */\nexport const builderModelPolicySchema = z.object({\n active: z.boolean(),\n pickerVisible: z.boolean().optional(),\n allowed: z.array(providerModelEntrySchema).optional(),\n default: defaultModelEntrySchema.optional(),\n});\n\n/**\n * Response schema for GET /editor/builder/settings\n */\nexport const builderSettingsResponseSchema = z.object({\n enabled: z.boolean(),\n features: z\n .object({\n agent: agentFeaturesSchema.optional(),\n })\n .optional(),\n configuration: z\n .object({\n agent: agentConfigurationSchema.optional(),\n })\n .optional(),\n modelPolicy: builderModelPolicySchema.optional(),\n /**\n * Resolved picker visibility for tools/agents/workflows. Always present when\n * the builder is enabled. Omitted when the builder is disabled.\n */\n picker: builderPickerSchema.optional(),\n /**\n * Non-fatal warnings produced by `EditorAgentBuilder`'s constructor-time\n * validation (e.g. allowlist entries with unknown provider strings, or\n * picker allowlist entries that don't match a registered ID). UI surfaces\n * these as a banner in the Builder admin view.\n */\n modelPolicyWarnings: z.array(z.string()).optional(),\n});\n\n/**\n * Infrastructure status response for Agent Builder admin diagnostics.\n *\n * Reports the Agent Builder-specific primitive configuration plus lightweight\n * runtime resolution state where useful.\n */\nexport const infrastructureStatusResponseSchema = z.object({\n channels: z.object({\n providers: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n isConfigured: z.boolean(),\n routeCount: z.number(),\n }),\n ),\n }),\n browser: z.object({\n type: z.string().nullable(),\n provider: z.string().nullable(),\n env: z.string().nullable(),\n registered: z.boolean(),\n availableProviders: z.array(z.string()),\n config: z.array(z.object({ key: z.string(), value: z.string() })),\n }),\n workspace: z.object({\n type: z.string().nullable(),\n workspaceId: z.string().nullable(),\n name: z.string().nullable(),\n source: z.string().nullable(),\n registered: z.boolean(),\n hasFilesystem: z.boolean(),\n hasSandbox: z.boolean(),\n filesystemProvider: z.string().nullable(),\n sandboxProvider: z.string().nullable(),\n config: z.array(z.object({ key: z.string(), value: z.string() })),\n }),\n registries: z.object({\n skillsSh: z.object({\n enabled: z.boolean(),\n }),\n }),\n});\n\n/**\n * Response schema for GET /editor/builder/models/available.\n *\n * Same provider shape as GET /agents/providers, but each provider's `models`\n * list is already filtered by the active builder model policy (server applies\n * the EE allowlist). Providers with no allowed models are omitted entirely so\n * the Studio model picker can render the response verbatim.\n */\nexport const builderAvailableModelsResponseSchema = z.object({\n providers: z.array(providerSchema),\n});\n\nexport type BuilderAvailableModelsResponse = z.infer<typeof builderAvailableModelsResponseSchema>;\n\nexport type InfrastructureStatus = z.infer<typeof infrastructureStatusResponseSchema>;\n\nexport type AgentFeatures = z.infer<typeof agentFeaturesSchema>;\nexport type AgentConfiguration = z.infer<typeof agentConfigurationSchema>;\nexport type BuilderSettingsResponse = z.infer<typeof builderSettingsResponseSchema>;\nexport type ProviderModelEntrySchema = z.infer<typeof providerModelEntrySchema>;\nexport type DefaultModelEntrySchema = z.infer<typeof defaultModelEntrySchema>;\nexport type AgentModelsSchema = z.infer<typeof agentModelsSchema>;\nexport type BuilderModelPolicySchema = z.infer<typeof builderModelPolicySchema>;\nexport type PickerAllowlistSchema = z.infer<typeof pickerAllowlistSchema>;\nexport type BuilderPickerSchema = z.infer<typeof builderPickerSchema>;\n"],"mappings":";;;;;;;;;;;;;;;;;AAiBA,MAAa,sBAAsB,EAAE,OAAO;CAC1C,OAAO,EAAE,QAAQ,CAAC,CAAC,SAAS;CAC5B,QAAQ,EAAE,QAAQ,CAAC,CAAC,SAAS;CAC7B,WAAW,EAAE,QAAQ,CAAC,CAAC,SAAS;CAChC,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS;CAC9B,QAAQ,EAAE,QAAQ,CAAC,CAAC,SAAS;CAC7B,QAAQ,EAAE,QAAQ,CAAC,CAAC,SAAS;CAC7B,WAAW,EAAE,QAAQ,CAAC,CAAC,SAAS;CAChC,WAAW,EAAE,QAAQ,CAAC,CAAC,SAAS;CAChC,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS;CACnC,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS;;;;;;CAM9B,OAAO,EAAE,QAAQ,CAAC,CAAC,SAAS;AAC9B,CAAC;;;;;;;;;;AAaD,MAAM,2BAA2B,EAC9B,OAAO;CACN,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CAC1B,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;AACtC,CAAC,CAAC,CACD,OAAO;AAEV,MAAM,4BAA4B,EAC/B,OAAO;CACN,MAAM,EAAE,QAAQ,QAAQ;CACxB,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CAC1B,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;AACtC,CAAC,CAAC,CACD,OAAO;AAEV,MAAM,+BAA+B,EAClC,OAAO;CACN,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CAC1B,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AAC3B,CAAC,CAAC,CACD,OAAO;AAEV,MAAM,gCAAgC,EACnC,OAAO;CACN,MAAM,EAAE,QAAQ,QAAQ;CACxB,UAAU,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;CAC1B,SAAS,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;AAC3B,CAAC,CAAC,CACD,OAAO;AAKV,MAAa,2BAA2B,EAAE,MAAM,CAAC,2BAA2B,wBAAwB,CAAC;AACrG,MAAa,0BAA0B,EAAE,MAAM,CAAC,+BAA+B,4BAA4B,CAAC;;;;AAK5G,MAAa,oBAAoB,EAAE,OAAO;CACxC,SAAS,EAAE,MAAM,wBAAwB,CAAC,CAAC,SAAS;CACpD,SAAS,wBAAwB,SAAS;AAC5C,CAAC;;;;;;;;;AAUD,MAAa,wBAAwB,EAClC,OAAO,EACN,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS,EACxC,CAAC,CAAC,CACD,OAAO;;;;;;;AAQV,MAAa,2BAA2B,EACrC,OAAO;CACN,QAAQ,kBAAkB,SAAS;CACnC,OAAO,sBAAsB,SAAS;CACtC,QAAQ,sBAAsB,SAAS;CACvC,WAAW,sBAAsB,SAAS;AAC5C,CAAC,CAAC,CACD,SAAS,EAAE,QAAQ,CAAC;;;;;;;;AASvB,MAAa,sBAAsB,EAAE,OAAO;CAC1C,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CAC3C,eAAe,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;CAC5C,kBAAkB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;AACjD,CAAC;;;;;;;;;;AAWD,MAAa,2BAA2B,EAAE,OAAO;CAC/C,QAAQ,EAAE,QAAQ;CAClB,eAAe,EAAE,QAAQ,CAAC,CAAC,SAAS;CACpC,SAAS,EAAE,MAAM,wBAAwB,CAAC,CAAC,SAAS;CACpD,SAAS,wBAAwB,SAAS;AAC5C,CAAC;;;;AAKD,MAAa,gCAAgC,EAAE,OAAO;CACpD,SAAS,EAAE,QAAQ;CACnB,UAAU,EACP,OAAO,EACN,OAAO,oBAAoB,SAAS,EACtC,CAAC,CAAC,CACD,SAAS;CACZ,eAAe,EACZ,OAAO,EACN,OAAO,yBAAyB,SAAS,EAC3C,CAAC,CAAC,CACD,SAAS;CACZ,aAAa,yBAAyB,SAAS;;;;;CAK/C,QAAQ,oBAAoB,SAAS;;;;;;;CAOrC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,SAAS;AACpD,CAAC;;;;;;;AAQD,MAAa,qCAAqC,EAAE,OAAO;CACzD,UAAU,EAAE,OAAO,EACjB,WAAW,EAAE,MACX,EAAE,OAAO;EACP,IAAI,EAAE,OAAO;EACb,MAAM,EAAE,OAAO;EACf,cAAc,EAAE,QAAQ;EACxB,YAAY,EAAE,OAAO;CACvB,CAAC,CACH,EACF,CAAC;CACD,SAAS,EAAE,OAAO;EAChB,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS;EAC1B,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;EAC9B,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS;EACzB,YAAY,EAAE,QAAQ;EACtB,oBAAoB,EAAE,MAAM,EAAE,OAAO,CAAC;EACtC,QAAQ,EAAE,MAAM,EAAE,OAAO;GAAE,KAAK,EAAE,OAAO;GAAG,OAAO,EAAE,OAAO;EAAE,CAAC,CAAC;CAClE,CAAC;CACD,WAAW,EAAE,OAAO;EAClB,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS;EAC1B,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS;EACjC,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS;EAC1B,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS;EAC5B,YAAY,EAAE,QAAQ;EACtB,eAAe,EAAE,QAAQ;EACzB,YAAY,EAAE,QAAQ;EACtB,oBAAoB,EAAE,OAAO,CAAC,CAAC,SAAS;EACxC,iBAAiB,EAAE,OAAO,CAAC,CAAC,SAAS;EACrC,QAAQ,EAAE,MAAM,EAAE,OAAO;GAAE,KAAK,EAAE,OAAO;GAAG,OAAO,EAAE,OAAO;EAAE,CAAC,CAAC;CAClE,CAAC;CACD,YAAY,EAAE,OAAO,EACnB,UAAU,EAAE,OAAO,EACjB,SAAS,EAAE,QAAQ,EACrB,CAAC,EACH,CAAC;AACH,CAAC;;;;;;;;;AAUD,MAAa,uCAAuC,EAAE,OAAO,EAC3D,WAAW,EAAE,MAAM,cAAc,EACnC,CAAC"}
@@ -1,9 +1,9 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime-CQI-hT2b.js";
2
- import { u as runIdSchema } from "./common-xUmaFUop.js";
2
+ import { u as runIdSchema } from "./common-J-yUnHk9.js";
3
3
  import { n as createRoute } from "./route-builder-BxPrwNog.js";
4
4
  import { handleError } from "./server/handlers/error.js";
5
5
  import { l as parseFilters, m as validateBody } from "./utils-DHxjw4Tn.js";
6
- import { n as listLogsQuerySchema, r as listLogsResponseSchema, t as listLogTransportsResponseSchema } from "./logs-DpyTCDyt.js";
6
+ import { n as listLogsQuerySchema, r as listLogsResponseSchema, t as listLogTransportsResponseSchema } from "./logs-Ca_q8krO.js";
7
7
  // src/server/handlers/logs.ts
8
8
  var logs_exports = /* @__PURE__ */ __exportAll({
9
9
  LIST_LOGS_BY_RUN_ID_ROUTE: () => LIST_LOGS_BY_RUN_ID_ROUTE,
@@ -92,4 +92,4 @@ const LIST_LOGS_BY_RUN_ID_ROUTE = createRoute({
92
92
  });
93
93
  export { logs_exports as i, LIST_LOGS_ROUTE as n, LIST_LOG_TRANSPORTS_ROUTE as r, LIST_LOGS_BY_RUN_ID_ROUTE as t };
94
94
 
95
- //# sourceMappingURL=logs-DIBh_xCk.js.map
95
+ //# sourceMappingURL=logs-BbaBP2LD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs-DIBh_xCk.js","names":[],"sources":["../src/server/handlers/logs.ts"],"sourcesContent":["import { runIdSchema } from '../schemas/common';\nimport { listLogsQuerySchema, listLogsResponseSchema, listLogTransportsResponseSchema } from '../schemas/logs';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport { parseFilters, validateBody } from './utils';\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_LOG_TRANSPORTS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/transports',\n responseType: 'json',\n responseSchema: listLogTransportsResponseSchema,\n summary: 'List log transports',\n description: 'Returns a list of all available log transports',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const logger = mastra.getLogger();\n const transports = logger.getTransports();\n\n return {\n transports: transports ? [...transports.keys()] : [],\n };\n } catch (error) {\n return handleError(error, 'Error getting log Transports');\n }\n },\n});\n\nexport const LIST_LOGS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs',\n responseType: 'json',\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs',\n description:\n 'Returns logs from a specific transport with optional filtering by date range, log level, and custom filters',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogs(transportId!, {\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs');\n }\n },\n});\n\nexport const LIST_LOGS_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs by run ID',\n description: 'Returns all logs for a specific execution run from a transport',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ runId, transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogsByRunId({\n runId: runId!,\n transportId: transportId!,\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs by run ID');\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;AAUA,MAAa,4BAA4B,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,MAAM;CACb,cAAc;CACd,SAAS,OAAO,EAAE,aAAa;EAC7B,IAAI;GAEF,MAAM,aADS,OAAO,UACE,CAAC,CAAC,cAAc;GAExC,OAAO,EACL,YAAY,aAAa,CAAC,GAAG,WAAW,KAAK,CAAC,IAAI,CAAC,EACrD;EACF,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,8BAA8B;EAC1D;CACF;AACF,CAAC;AAED,MAAa,kBAAkB,YAAY;CACzC,QAAQ;CACR,MAAM;CACN,cAAc;CACd,kBAAkB;CAClB,gBAAgB;CAChB,SAAS;CACT,aACE;CACF,MAAM,CAAC,MAAM;CACb,cAAc;CACd,SAAS,OAAO,EAAE,QAAQ,GAAG,aAAa;EACxC,IAAI;GACF,MAAM,EAAE,aAAa,UAAU,QAAQ,UAAU,SAAS,UAAU,MAAM,YAAY;GAEtF,aAAa,EAAE,YAAY,CAAC;GAG5B,MAAM,UAAU,aAAa,QAAQ;GAUrC,OAAO,MARY,OAAO,SAAS,aAAc;IAC/C;IACA;IACA;IACA;IACA,MAAM,OAAO,OAAO,IAAI,IAAI,KAAA;IAC5B,SAAS,UAAU,OAAO,OAAO,IAAI,KAAA;GACvC,CAAC;EAEH,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,oBAAoB;EAChD;CACF;AACF,CAAC;AAED,MAAa,4BAA4B,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,iBAAiB;CACjB,kBAAkB;CAClB,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,MAAM;CACb,cAAc;CACd,SAAS,OAAO,EAAE,QAAQ,OAAO,GAAG,aAAa;EAC/C,IAAI;GACF,MAAM,EAAE,aAAa,UAAU,QAAQ,UAAU,SAAS,UAAU,MAAM,YAAY;GAEtF,aAAa;IAAE;IAAO;GAAY,CAAC;GAGnC,MAAM,UAAU,aAAa,QAAQ;GAYrC,OAAO,MAVY,OAAO,gBAAgB;IACjC;IACM;IACb;IACA;IACA;IACA;IACA,MAAM,OAAO,OAAO,IAAI,IAAI,KAAA;IAC5B,SAAS,UAAU,OAAO,OAAO,IAAI,KAAA;GACvC,CAAC;EAEH,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,8BAA8B;EAC1D;CACF;AACF,CAAC"}
1
+ {"version":3,"file":"logs-BbaBP2LD.js","names":[],"sources":["../src/server/handlers/logs.ts"],"sourcesContent":["import { runIdSchema } from '../schemas/common';\nimport { listLogsQuerySchema, listLogsResponseSchema, listLogTransportsResponseSchema } from '../schemas/logs';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport { parseFilters, validateBody } from './utils';\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_LOG_TRANSPORTS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/transports',\n responseType: 'json',\n responseSchema: listLogTransportsResponseSchema,\n summary: 'List log transports',\n description: 'Returns a list of all available log transports',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const logger = mastra.getLogger();\n const transports = logger.getTransports();\n\n return {\n transports: transports ? [...transports.keys()] : [],\n };\n } catch (error) {\n return handleError(error, 'Error getting log Transports');\n }\n },\n});\n\nexport const LIST_LOGS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs',\n responseType: 'json',\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs',\n description:\n 'Returns logs from a specific transport with optional filtering by date range, log level, and custom filters',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogs(transportId!, {\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs');\n }\n },\n});\n\nexport const LIST_LOGS_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs by run ID',\n description: 'Returns all logs for a specific execution run from a transport',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ runId, transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogsByRunId({\n runId: runId!,\n transportId: transportId!,\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs by run ID');\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;AAUA,MAAa,4BAA4B,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,MAAM;CACb,cAAc;CACd,SAAS,OAAO,EAAE,aAAa;EAC7B,IAAI;GAEF,MAAM,aADS,OAAO,UACE,CAAC,CAAC,cAAc;GAExC,OAAO,EACL,YAAY,aAAa,CAAC,GAAG,WAAW,KAAK,CAAC,IAAI,CAAC,EACrD;EACF,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,8BAA8B;EAC1D;CACF;AACF,CAAC;AAED,MAAa,kBAAkB,YAAY;CACzC,QAAQ;CACR,MAAM;CACN,cAAc;CACd,kBAAkB;CAClB,gBAAgB;CAChB,SAAS;CACT,aACE;CACF,MAAM,CAAC,MAAM;CACb,cAAc;CACd,SAAS,OAAO,EAAE,QAAQ,GAAG,aAAa;EACxC,IAAI;GACF,MAAM,EAAE,aAAa,UAAU,QAAQ,UAAU,SAAS,UAAU,MAAM,YAAY;GAEtF,aAAa,EAAE,YAAY,CAAC;GAG5B,MAAM,UAAU,aAAa,QAAQ;GAUrC,OAAO,MARY,OAAO,SAAS,aAAc;IAC/C;IACA;IACA;IACA;IACA,MAAM,OAAO,OAAO,IAAI,IAAI,KAAA;IAC5B,SAAS,UAAU,OAAO,OAAO,IAAI,KAAA;GACvC,CAAC;EAEH,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,oBAAoB;EAChD;CACF;AACF,CAAC;AAED,MAAa,4BAA4B,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,iBAAiB;CACjB,kBAAkB;CAClB,gBAAgB;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,MAAM;CACb,cAAc;CACd,SAAS,OAAO,EAAE,QAAQ,OAAO,GAAG,aAAa;EAC/C,IAAI;GACF,MAAM,EAAE,aAAa,UAAU,QAAQ,UAAU,SAAS,UAAU,MAAM,YAAY;GAEtF,aAAa;IAAE;IAAO;GAAY,CAAC;GAGnC,MAAM,UAAU,aAAa,QAAQ;GAYrC,OAAO,MAVY,OAAO,gBAAgB;IACjC;IACM;IACb;IACA;IACA;IACA;IACA,MAAM,OAAO,OAAO,IAAI,IAAI,KAAA;IAC5B,SAAS,UAAU,OAAO,OAAO,IAAI,KAAA;GACvC,CAAC;EAEH,SAAS,OAAO;GACd,OAAO,YAAY,OAAO,8BAA8B;EAC1D;CACF;AACF,CAAC"}
@@ -1,4 +1,4 @@
1
- import { i as createPagePaginationSchema, t as baseLogMessageSchema } from "./common-xUmaFUop.js";
1
+ import { i as createPagePaginationSchema, t as baseLogMessageSchema } from "./common-J-yUnHk9.js";
2
2
  import { z } from "zod/v4";
3
3
  // src/server/schemas/logs.ts
4
4
  const listLogsQuerySchema = createPagePaginationSchema().extend({
@@ -24,4 +24,4 @@ const listLogsResponseSchema = z.object({
24
24
  const listLogTransportsResponseSchema = z.object({ transports: z.array(z.string()) });
25
25
  export { listLogsQuerySchema as n, listLogsResponseSchema as r, listLogTransportsResponseSchema as t };
26
26
 
27
- //# sourceMappingURL=logs-DpyTCDyt.js.map
27
+ //# sourceMappingURL=logs-Ca_q8krO.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs-DpyTCDyt.js","names":[],"sources":["../src/server/schemas/logs.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { createPagePaginationSchema, baseLogMessageSchema } from './common';\n\n// Query parameter schemas\nexport const listLogsQuerySchema = createPagePaginationSchema().extend({\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n logLevel: z.enum(['debug', 'info', 'warn', 'error', 'silent']).optional(),\n filters: z.union([z.string(), z.array(z.string())]).optional(),\n transportId: z.string(),\n});\n\n// Response schemas\nexport const listLogsResponseSchema = z.object({\n logs: z.array(baseLogMessageSchema),\n total: z.number(),\n page: z.number(),\n perPage: z.union([z.number(), z.literal(false)]),\n hasMore: z.boolean(),\n});\n\nexport const listLogTransportsResponseSchema = z.object({\n transports: z.array(z.string()),\n});\n"],"mappings":";;;AAIA,MAAa,sBAAsB,2BAA2B,CAAC,CAAC,OAAO;CACrE,UAAU,EAAE,OAAO,KAAK,CAAC,CAAC,SAAS;CACnC,QAAQ,EAAE,OAAO,KAAK,CAAC,CAAC,SAAS;CACjC,UAAU,EAAE,KAAK;EAAC;EAAS;EAAQ;EAAQ;EAAS;CAAQ,CAAC,CAAC,CAAC,SAAS;CACxE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;CAC7D,aAAa,EAAE,OAAO;AACxB,CAAC;AAGD,MAAa,yBAAyB,EAAE,OAAO;CAC7C,MAAM,EAAE,MAAM,oBAAoB;CAClC,OAAO,EAAE,OAAO;CAChB,MAAM,EAAE,OAAO;CACf,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,QAAQ,KAAK,CAAC,CAAC;CAC/C,SAAS,EAAE,QAAQ;AACrB,CAAC;AAED,MAAa,kCAAkC,EAAE,OAAO,EACtD,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAChC,CAAC"}
1
+ {"version":3,"file":"logs-Ca_q8krO.js","names":[],"sources":["../src/server/schemas/logs.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { createPagePaginationSchema, baseLogMessageSchema } from './common';\n\n// Query parameter schemas\nexport const listLogsQuerySchema = createPagePaginationSchema().extend({\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n logLevel: z.enum(['debug', 'info', 'warn', 'error', 'silent']).optional(),\n filters: z.union([z.string(), z.array(z.string())]).optional(),\n transportId: z.string(),\n});\n\n// Response schemas\nexport const listLogsResponseSchema = z.object({\n logs: z.array(baseLogMessageSchema),\n total: z.number(),\n page: z.number(),\n perPage: z.union([z.number(), z.literal(false)]),\n hasMore: z.boolean(),\n});\n\nexport const listLogTransportsResponseSchema = z.object({\n transports: z.array(z.string()),\n});\n"],"mappings":";;;AAIA,MAAa,sBAAsB,2BAA2B,CAAC,CAAC,OAAO;CACrE,UAAU,EAAE,OAAO,KAAK,CAAC,CAAC,SAAS;CACnC,QAAQ,EAAE,OAAO,KAAK,CAAC,CAAC,SAAS;CACjC,UAAU,EAAE,KAAK;EAAC;EAAS;EAAQ;EAAQ;EAAS;CAAQ,CAAC,CAAC,CAAC,SAAS;CACxE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;CAC7D,aAAa,EAAE,OAAO;AACxB,CAAC;AAGD,MAAa,yBAAyB,EAAE,OAAO;CAC7C,MAAM,EAAE,MAAM,oBAAoB;CAClC,OAAO,EAAE,OAAO;CAChB,MAAM,EAAE,OAAO;CACf,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,QAAQ,KAAK,CAAC,CAAC;CAC/C,SAAS,EAAE,QAAQ;AACrB,CAAC;AAED,MAAa,kCAAkC,EAAE,OAAO,EACtD,YAAY,EAAE,MAAM,EAAE,OAAO,CAAC,EAChC,CAAC"}
@@ -1,9 +1,9 @@
1
1
  const require_rolldown_runtime = require("./rolldown-runtime-10nMEhjP.cjs");
2
- const require_common = require("./common-DVZqSEhZ.cjs");
2
+ const require_common = require("./common-D5XxSuvu.cjs");
3
3
  const require_route_builder = require("./route-builder-CvARmqnA.cjs");
4
4
  const require_server_handlers_error = require("./server/handlers/error.cjs");
5
5
  const require_utils = require("./utils-BbYUI6Yn.cjs");
6
- const require_logs = require("./logs-CC6IycDY.cjs");
6
+ const require_logs = require("./logs-YisOj8HR.cjs");
7
7
  // src/server/handlers/logs.ts
8
8
  var logs_exports = /* @__PURE__ */ require_rolldown_runtime.__exportAll({
9
9
  LIST_LOGS_BY_RUN_ID_ROUTE: () => LIST_LOGS_BY_RUN_ID_ROUTE,
@@ -115,4 +115,4 @@ Object.defineProperty(exports, "logs_exports", {
115
115
  }
116
116
  });
117
117
 
118
- //# sourceMappingURL=logs-NNur5jkf.cjs.map
118
+ //# sourceMappingURL=logs-DI-h9uHR.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs-NNur5jkf.cjs","names":["createRoute","listLogTransportsResponseSchema","handleError","listLogsQuerySchema","listLogsResponseSchema","parseFilters","runIdSchema"],"sources":["../src/server/handlers/logs.ts"],"sourcesContent":["import { runIdSchema } from '../schemas/common';\nimport { listLogsQuerySchema, listLogsResponseSchema, listLogTransportsResponseSchema } from '../schemas/logs';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport { parseFilters, validateBody } from './utils';\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_LOG_TRANSPORTS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/transports',\n responseType: 'json',\n responseSchema: listLogTransportsResponseSchema,\n summary: 'List log transports',\n description: 'Returns a list of all available log transports',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const logger = mastra.getLogger();\n const transports = logger.getTransports();\n\n return {\n transports: transports ? [...transports.keys()] : [],\n };\n } catch (error) {\n return handleError(error, 'Error getting log Transports');\n }\n },\n});\n\nexport const LIST_LOGS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs',\n responseType: 'json',\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs',\n description:\n 'Returns logs from a specific transport with optional filtering by date range, log level, and custom filters',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogs(transportId!, {\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs');\n }\n },\n});\n\nexport const LIST_LOGS_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs by run ID',\n description: 'Returns all logs for a specific execution run from a transport',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ runId, transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogsByRunId({\n runId: runId!,\n transportId: transportId!,\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs by run ID');\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;AAUA,MAAa,4BAA4BA,sBAAAA,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,gBAAgBC,aAAAA;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,MAAM;CACb,cAAc;CACd,SAAS,OAAO,EAAE,aAAa;EAC7B,IAAI;GAEF,MAAM,aADS,OAAO,UACE,CAAC,CAAC,cAAc;GAExC,OAAO,EACL,YAAY,aAAa,CAAC,GAAG,WAAW,KAAK,CAAC,IAAI,CAAC,EACrD;EACF,SAAS,OAAO;GACd,OAAOC,8BAAAA,YAAY,OAAO,8BAA8B;EAC1D;CACF;AACF,CAAC;AAED,MAAa,kBAAkBF,sBAAAA,YAAY;CACzC,QAAQ;CACR,MAAM;CACN,cAAc;CACd,kBAAkBG,aAAAA;CAClB,gBAAgBC,aAAAA;CAChB,SAAS;CACT,aACE;CACF,MAAM,CAAC,MAAM;CACb,cAAc;CACd,SAAS,OAAO,EAAE,QAAQ,GAAG,aAAa;EACxC,IAAI;GACF,MAAM,EAAE,aAAa,UAAU,QAAQ,UAAU,SAAS,UAAU,MAAM,YAAY;GAEtF,cAAA,aAAa,EAAE,YAAY,CAAC;GAG5B,MAAM,UAAUC,cAAAA,aAAa,QAAQ;GAUrC,OAAO,MARY,OAAO,SAAS,aAAc;IAC/C;IACA;IACA;IACA;IACA,MAAM,OAAO,OAAO,IAAI,IAAI,KAAA;IAC5B,SAAS,UAAU,OAAO,OAAO,IAAI,KAAA;GACvC,CAAC;EAEH,SAAS,OAAO;GACd,OAAOH,8BAAAA,YAAY,OAAO,oBAAoB;EAChD;CACF;AACF,CAAC;AAED,MAAa,4BAA4BF,sBAAAA,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,iBAAiBM,eAAAA;CACjB,kBAAkBH,aAAAA;CAClB,gBAAgBC,aAAAA;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,MAAM;CACb,cAAc;CACd,SAAS,OAAO,EAAE,QAAQ,OAAO,GAAG,aAAa;EAC/C,IAAI;GACF,MAAM,EAAE,aAAa,UAAU,QAAQ,UAAU,SAAS,UAAU,MAAM,YAAY;GAEtF,cAAA,aAAa;IAAE;IAAO;GAAY,CAAC;GAGnC,MAAM,UAAUC,cAAAA,aAAa,QAAQ;GAYrC,OAAO,MAVY,OAAO,gBAAgB;IACjC;IACM;IACb;IACA;IACA;IACA;IACA,MAAM,OAAO,OAAO,IAAI,IAAI,KAAA;IAC5B,SAAS,UAAU,OAAO,OAAO,IAAI,KAAA;GACvC,CAAC;EAEH,SAAS,OAAO;GACd,OAAOH,8BAAAA,YAAY,OAAO,8BAA8B;EAC1D;CACF;AACF,CAAC"}
1
+ {"version":3,"file":"logs-DI-h9uHR.cjs","names":["createRoute","listLogTransportsResponseSchema","handleError","listLogsQuerySchema","listLogsResponseSchema","parseFilters","runIdSchema"],"sources":["../src/server/handlers/logs.ts"],"sourcesContent":["import { runIdSchema } from '../schemas/common';\nimport { listLogsQuerySchema, listLogsResponseSchema, listLogTransportsResponseSchema } from '../schemas/logs';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\nimport { parseFilters, validateBody } from './utils';\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_LOG_TRANSPORTS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/transports',\n responseType: 'json',\n responseSchema: listLogTransportsResponseSchema,\n summary: 'List log transports',\n description: 'Returns a list of all available log transports',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const logger = mastra.getLogger();\n const transports = logger.getTransports();\n\n return {\n transports: transports ? [...transports.keys()] : [],\n };\n } catch (error) {\n return handleError(error, 'Error getting log Transports');\n }\n },\n});\n\nexport const LIST_LOGS_ROUTE = createRoute({\n method: 'GET',\n path: '/logs',\n responseType: 'json',\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs',\n description:\n 'Returns logs from a specific transport with optional filtering by date range, log level, and custom filters',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogs(transportId!, {\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs');\n }\n },\n});\n\nexport const LIST_LOGS_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/logs/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listLogsQuerySchema,\n responseSchema: listLogsResponseSchema,\n summary: 'List logs by run ID',\n description: 'Returns all logs for a specific execution run from a transport',\n tags: ['Logs'],\n requiresAuth: true,\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { transportId, fromDate, toDate, logLevel, filters: _filters, page, perPage } = params;\n\n validateBody({ runId, transportId });\n\n // Parse filter query parameter if present\n const filters = parseFilters(_filters);\n\n const logs = await mastra.listLogsByRunId({\n runId: runId!,\n transportId: transportId!,\n fromDate,\n toDate,\n logLevel,\n filters,\n page: page ? Number(page) : undefined,\n perPage: perPage ? Number(perPage) : undefined,\n });\n return logs;\n } catch (error) {\n return handleError(error, 'Error getting logs by run ID');\n }\n },\n});\n"],"mappings":";;;;;;;;;;;;AAUA,MAAa,4BAA4BA,sBAAAA,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,gBAAgBC,aAAAA;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,MAAM;CACb,cAAc;CACd,SAAS,OAAO,EAAE,aAAa;EAC7B,IAAI;GAEF,MAAM,aADS,OAAO,UACE,CAAC,CAAC,cAAc;GAExC,OAAO,EACL,YAAY,aAAa,CAAC,GAAG,WAAW,KAAK,CAAC,IAAI,CAAC,EACrD;EACF,SAAS,OAAO;GACd,OAAOC,8BAAAA,YAAY,OAAO,8BAA8B;EAC1D;CACF;AACF,CAAC;AAED,MAAa,kBAAkBF,sBAAAA,YAAY;CACzC,QAAQ;CACR,MAAM;CACN,cAAc;CACd,kBAAkBG,aAAAA;CAClB,gBAAgBC,aAAAA;CAChB,SAAS;CACT,aACE;CACF,MAAM,CAAC,MAAM;CACb,cAAc;CACd,SAAS,OAAO,EAAE,QAAQ,GAAG,aAAa;EACxC,IAAI;GACF,MAAM,EAAE,aAAa,UAAU,QAAQ,UAAU,SAAS,UAAU,MAAM,YAAY;GAEtF,cAAA,aAAa,EAAE,YAAY,CAAC;GAG5B,MAAM,UAAUC,cAAAA,aAAa,QAAQ;GAUrC,OAAO,MARY,OAAO,SAAS,aAAc;IAC/C;IACA;IACA;IACA;IACA,MAAM,OAAO,OAAO,IAAI,IAAI,KAAA;IAC5B,SAAS,UAAU,OAAO,OAAO,IAAI,KAAA;GACvC,CAAC;EAEH,SAAS,OAAO;GACd,OAAOH,8BAAAA,YAAY,OAAO,oBAAoB;EAChD;CACF;AACF,CAAC;AAED,MAAa,4BAA4BF,sBAAAA,YAAY;CACnD,QAAQ;CACR,MAAM;CACN,cAAc;CACd,iBAAiBM,eAAAA;CACjB,kBAAkBH,aAAAA;CAClB,gBAAgBC,aAAAA;CAChB,SAAS;CACT,aAAa;CACb,MAAM,CAAC,MAAM;CACb,cAAc;CACd,SAAS,OAAO,EAAE,QAAQ,OAAO,GAAG,aAAa;EAC/C,IAAI;GACF,MAAM,EAAE,aAAa,UAAU,QAAQ,UAAU,SAAS,UAAU,MAAM,YAAY;GAEtF,cAAA,aAAa;IAAE;IAAO;GAAY,CAAC;GAGnC,MAAM,UAAUC,cAAAA,aAAa,QAAQ;GAYrC,OAAO,MAVY,OAAO,gBAAgB;IACjC;IACM;IACb;IACA;IACA;IACA;IACA,MAAM,OAAO,OAAO,IAAI,IAAI,KAAA;IAC5B,SAAS,UAAU,OAAO,OAAO,IAAI,KAAA;GACvC,CAAC;EAEH,SAAS,OAAO;GACd,OAAOH,8BAAAA,YAAY,OAAO,8BAA8B;EAC1D;CACF;AACF,CAAC"}
@@ -1,4 +1,4 @@
1
- const require_common = require("./common-DVZqSEhZ.cjs");
1
+ const require_common = require("./common-D5XxSuvu.cjs");
2
2
  let zod_v4 = require("zod/v4");
3
3
  // src/server/schemas/logs.ts
4
4
  const listLogsQuerySchema = require_common.createPagePaginationSchema().extend({
@@ -41,4 +41,4 @@ Object.defineProperty(exports, "listLogsResponseSchema", {
41
41
  }
42
42
  });
43
43
 
44
- //# sourceMappingURL=logs-CC6IycDY.cjs.map
44
+ //# sourceMappingURL=logs-YisOj8HR.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs-CC6IycDY.cjs","names":["createPagePaginationSchema","z","baseLogMessageSchema"],"sources":["../src/server/schemas/logs.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { createPagePaginationSchema, baseLogMessageSchema } from './common';\n\n// Query parameter schemas\nexport const listLogsQuerySchema = createPagePaginationSchema().extend({\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n logLevel: z.enum(['debug', 'info', 'warn', 'error', 'silent']).optional(),\n filters: z.union([z.string(), z.array(z.string())]).optional(),\n transportId: z.string(),\n});\n\n// Response schemas\nexport const listLogsResponseSchema = z.object({\n logs: z.array(baseLogMessageSchema),\n total: z.number(),\n page: z.number(),\n perPage: z.union([z.number(), z.literal(false)]),\n hasMore: z.boolean(),\n});\n\nexport const listLogTransportsResponseSchema = z.object({\n transports: z.array(z.string()),\n});\n"],"mappings":";;;AAIA,MAAa,sBAAsBA,eAAAA,2BAA2B,CAAC,CAAC,OAAO;CACrE,UAAUC,OAAAA,EAAE,OAAO,KAAK,CAAC,CAAC,SAAS;CACnC,QAAQA,OAAAA,EAAE,OAAO,KAAK,CAAC,CAAC,SAAS;CACjC,UAAUA,OAAAA,EAAE,KAAK;EAAC;EAAS;EAAQ;EAAQ;EAAS;CAAQ,CAAC,CAAC,CAAC,SAAS;CACxE,SAASA,OAAAA,EAAE,MAAM,CAACA,OAAAA,EAAE,OAAO,GAAGA,OAAAA,EAAE,MAAMA,OAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;CAC7D,aAAaA,OAAAA,EAAE,OAAO;AACxB,CAAC;AAGD,MAAa,yBAAyBA,OAAAA,EAAE,OAAO;CAC7C,MAAMA,OAAAA,EAAE,MAAMC,eAAAA,oBAAoB;CAClC,OAAOD,OAAAA,EAAE,OAAO;CAChB,MAAMA,OAAAA,EAAE,OAAO;CACf,SAASA,OAAAA,EAAE,MAAM,CAACA,OAAAA,EAAE,OAAO,GAAGA,OAAAA,EAAE,QAAQ,KAAK,CAAC,CAAC;CAC/C,SAASA,OAAAA,EAAE,QAAQ;AACrB,CAAC;AAED,MAAa,kCAAkCA,OAAAA,EAAE,OAAO,EACtD,YAAYA,OAAAA,EAAE,MAAMA,OAAAA,EAAE,OAAO,CAAC,EAChC,CAAC"}
1
+ {"version":3,"file":"logs-YisOj8HR.cjs","names":["createPagePaginationSchema","z","baseLogMessageSchema"],"sources":["../src/server/schemas/logs.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { createPagePaginationSchema, baseLogMessageSchema } from './common';\n\n// Query parameter schemas\nexport const listLogsQuerySchema = createPagePaginationSchema().extend({\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n logLevel: z.enum(['debug', 'info', 'warn', 'error', 'silent']).optional(),\n filters: z.union([z.string(), z.array(z.string())]).optional(),\n transportId: z.string(),\n});\n\n// Response schemas\nexport const listLogsResponseSchema = z.object({\n logs: z.array(baseLogMessageSchema),\n total: z.number(),\n page: z.number(),\n perPage: z.union([z.number(), z.literal(false)]),\n hasMore: z.boolean(),\n});\n\nexport const listLogTransportsResponseSchema = z.object({\n transports: z.array(z.string()),\n});\n"],"mappings":";;;AAIA,MAAa,sBAAsBA,eAAAA,2BAA2B,CAAC,CAAC,OAAO;CACrE,UAAUC,OAAAA,EAAE,OAAO,KAAK,CAAC,CAAC,SAAS;CACnC,QAAQA,OAAAA,EAAE,OAAO,KAAK,CAAC,CAAC,SAAS;CACjC,UAAUA,OAAAA,EAAE,KAAK;EAAC;EAAS;EAAQ;EAAQ;EAAS;CAAQ,CAAC,CAAC,CAAC,SAAS;CACxE,SAASA,OAAAA,EAAE,MAAM,CAACA,OAAAA,EAAE,OAAO,GAAGA,OAAAA,EAAE,MAAMA,OAAAA,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;CAC7D,aAAaA,OAAAA,EAAE,OAAO;AACxB,CAAC;AAGD,MAAa,yBAAyBA,OAAAA,EAAE,OAAO;CAC7C,MAAMA,OAAAA,EAAE,MAAMC,eAAAA,oBAAoB;CAClC,OAAOD,OAAAA,EAAE,OAAO;CAChB,MAAMA,OAAAA,EAAE,OAAO;CACf,SAASA,OAAAA,EAAE,MAAM,CAACA,OAAAA,EAAE,OAAO,GAAGA,OAAAA,EAAE,QAAQ,KAAK,CAAC,CAAC;CAC/C,SAASA,OAAAA,EAAE,QAAQ;AACrB,CAAC;AAED,MAAa,kCAAkCA,OAAAA,EAAE,OAAO,EACtD,YAAYA,OAAAA,EAAE,MAAMA,OAAAA,EAAE,OAAO,CAAC,EAChC,CAAC"}
@@ -1,4 +1,4 @@
1
- const require_common = require("./common-DVZqSEhZ.cjs");
1
+ const require_common = require("./common-D5XxSuvu.cjs");
2
2
  let zod_v4 = require("zod/v4");
3
3
  // src/server/schemas/mcp.ts
4
4
  const mcpServerIdPathParams = zod_v4.z.object({ serverId: zod_v4.z.string().describe("MCP server ID") });
@@ -317,4 +317,4 @@ Object.defineProperty(exports, "versionDetailSchema", {
317
317
  }
318
318
  });
319
319
 
320
- //# sourceMappingURL=mcp-4iUBgZ7s.cjs.map
320
+ //# sourceMappingURL=mcp-Bt3h1lO7.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-4iUBgZ7s.cjs","names":["z","createCombinedPaginationSchema"],"sources":["../src/server/schemas/mcp.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { createCombinedPaginationSchema } from './common';\n\n// Path parameters\nexport const mcpServerIdPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerDetailPathParams = z.object({\n id: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerToolPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n toolId: z.string().describe('Tool ID'),\n});\n\nexport const executeToolBodySchema = z.object({\n data: z.unknown().optional(),\n resumeData: z\n .unknown()\n .optional()\n .describe('Answer for a tool that reported `status: \"suspended\"`; 2026-07-28 servers only'),\n suspendPayload: z\n .unknown()\n .optional()\n .describe('The `suspendPayload` from the suspended response, echoed back with `resumeData`'),\n});\n\n// Query parameters\n// Supports both page/perPage and limit/offset for backwards compatibility\nexport const listMcpServersQuerySchema = createCombinedPaginationSchema();\n\nexport const getMcpServerDetailQuerySchema = z.object({\n version: z.string().optional(),\n});\n\n// Response schemas\nexport const versionDetailSchema = z.object({\n version: z.string(),\n release_date: z.string(),\n is_latest: z.boolean(),\n});\n\nexport const mcpServerTransportSchema = z.enum(['streamable-http', 'sse']);\n\n/** Protocol transports the Studio/REST API exposes for a registered MCP server. */\nexport type MCPServerTransport = z.infer<typeof mcpServerTransportSchema>;\n\nexport const serverInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n version_detail: versionDetailSchema,\n /** Omitted by servers that predate transport reporting; treat absence as `['streamable-http', 'sse']`. */\n transports: z.array(mcpServerTransportSchema).optional(),\n /** Whether the server declares event types (experimental); see `GET /mcp/:serverId/events`. */\n events_capability: z.boolean().optional(),\n});\n\nexport const listMcpServersResponseSchema = z.object({\n servers: z.array(serverInfoSchema),\n total_count: z.number(),\n next: z.string().nullable(),\n});\n\nexport const serverDetailSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n version_detail: versionDetailSchema,\n package_canonical: z.string().optional(),\n packages: z.array(z.unknown()).optional(),\n remotes: z.array(z.unknown()).optional(),\n /** Omitted by servers that predate transport reporting; treat absence as `['streamable-http', 'sse']`. */\n transports: z.array(mcpServerTransportSchema).optional(),\n /** Whether the server declares event types (experimental); see `GET /mcp/:serverId/events`. */\n events_capability: z.boolean().optional(),\n});\n\n// Tool schemas\nexport const mcpToolInfoSchema = z.object({\n /** Tool id as registered on the server; present when the MCP server reports it. */\n id: z.string().optional(),\n name: z.string(),\n description: z.string().optional(),\n inputSchema: z.unknown(),\n outputSchema: z.unknown().optional(),\n toolType: z.string().optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const listMcpServerToolsResponseSchema = z.object({\n tools: z.array(mcpToolInfoSchema),\n});\n\nexport const executeToolResponseSchema = z.union([\n z.object({\n result: z.unknown(),\n }),\n z.object({\n status: z.literal('suspended').describe('The tool paused and asked for input; it did not complete'),\n suspendPayload: z.unknown().describe('What the tool suspended with'),\n resumeSchema: z.unknown().optional().describe('JSON Schema of the input the tool needs to resume'),\n }),\n]);\n\n// Resource schemas\nexport const mcpServerResourcePathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n});\n\nexport const readResourceBodySchema = z.object({\n uri: z.string().describe('Resource URI to read'),\n});\n\nexport const resourceContentSchema = z.object({\n uri: z.string(),\n text: z.string().optional(),\n blob: z.string().optional(),\n mimeType: z.string().optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const readResourceResponseSchema = z.object({\n contents: z.array(resourceContentSchema),\n});\n\nexport const resourceInfoSchema = z.object({\n uri: z.string(),\n name: z.string(),\n description: z.string().optional(),\n mimeType: z.string().optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const listResourcesResponseSchema = z.object({\n resources: z.array(resourceInfoSchema),\n});\n\n// JSON-RPC error response schema\nexport const jsonRpcErrorSchema = z.object({\n jsonrpc: z.literal('2.0'),\n error: z.object({\n code: z.number(),\n message: z.string(),\n }),\n id: z.null(),\n});\n\n// Event schemas (experimental)\nexport const mcpServerEventPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n eventName: z.string().describe('Event type name'),\n});\n\nconst jsonObjectSchema = z.record(z.string(), z.unknown());\nconst eventCursorSchema = z.string().nullable();\n\nexport const mcpServerEventInfoSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n delivery: z.array(z.enum(['push', 'poll', 'webhook'])),\n inputSchema: jsonObjectSchema.optional(),\n payloadSchema: jsonObjectSchema.optional(),\n /** Fed by `server.events.emit()`, so it can receive test events. */\n emittable: z.boolean(),\n});\n\nexport const listMcpServerEventsResponseSchema = z.object({\n events: z.array(mcpServerEventInfoSchema),\n /** Whether `POST /mcp/:serverId/events/:eventName/emit` is served (only under `mastra dev`). */\n testEmit: z.boolean(),\n});\n\nexport const mcpServerEventOccurrenceSchema = z.object({\n eventId: z.string(),\n name: z.string(),\n timestamp: z.string(),\n data: jsonObjectSchema,\n cursor: eventCursorSchema.optional(),\n _meta: jsonObjectSchema.optional(),\n});\n\nexport const pollMcpServerEventBodySchema = z.object({\n arguments: jsonObjectSchema.optional(),\n cursor: eventCursorSchema.optional(),\n maxEvents: z.number().int().min(1).max(1000).optional(),\n});\n\nexport const pollMcpServerEventResponseSchema = z.object({\n events: z.array(mcpServerEventOccurrenceSchema),\n cursor: eventCursorSchema,\n hasMore: z.boolean().optional(),\n truncated: z.boolean().optional(),\n nextPollMs: z.number().optional(),\n});\n\nexport const streamMcpServerEventBodySchema = z.object({\n arguments: jsonObjectSchema.optional(),\n cursor: eventCursorSchema.optional(),\n});\n\n/** One SSE frame of `POST /mcp/:serverId/events/:eventName/stream`. */\nexport const mcpServerEventStreamFrameSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('active'), cursor: eventCursorSchema, truncated: z.boolean() }),\n z.object({ type: z.literal('event'), occurrence: mcpServerEventOccurrenceSchema }),\n z.object({ type: z.literal('heartbeat'), cursor: eventCursorSchema }),\n z.object({ type: z.literal('error'), message: z.string() }),\n z.object({ type: z.literal('terminated') }),\n]);\n\nexport const emitMcpServerEventBodySchema = z.object({\n data: jsonObjectSchema,\n});\n\nexport const emitMcpServerEventResponseSchema = z.object({\n occurrence: mcpServerEventOccurrenceSchema,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"mcp-Bt3h1lO7.cjs","names":["z","createCombinedPaginationSchema"],"sources":["../src/server/schemas/mcp.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { createCombinedPaginationSchema } from './common';\n\n// Path parameters\nexport const mcpServerIdPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerDetailPathParams = z.object({\n id: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerToolPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n toolId: z.string().describe('Tool ID'),\n});\n\nexport const executeToolBodySchema = z.object({\n data: z.unknown().optional(),\n resumeData: z\n .unknown()\n .optional()\n .describe('Answer for a tool that reported `status: \"suspended\"`; 2026-07-28 servers only'),\n suspendPayload: z\n .unknown()\n .optional()\n .describe('The `suspendPayload` from the suspended response, echoed back with `resumeData`'),\n});\n\n// Query parameters\n// Supports both page/perPage and limit/offset for backwards compatibility\nexport const listMcpServersQuerySchema = createCombinedPaginationSchema();\n\nexport const getMcpServerDetailQuerySchema = z.object({\n version: z.string().optional(),\n});\n\n// Response schemas\nexport const versionDetailSchema = z.object({\n version: z.string(),\n release_date: z.string(),\n is_latest: z.boolean(),\n});\n\nexport const mcpServerTransportSchema = z.enum(['streamable-http', 'sse']);\n\n/** Protocol transports the Studio/REST API exposes for a registered MCP server. */\nexport type MCPServerTransport = z.infer<typeof mcpServerTransportSchema>;\n\nexport const serverInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n version_detail: versionDetailSchema,\n /** Omitted by servers that predate transport reporting; treat absence as `['streamable-http', 'sse']`. */\n transports: z.array(mcpServerTransportSchema).optional(),\n /** Whether the server declares event types (experimental); see `GET /mcp/:serverId/events`. */\n events_capability: z.boolean().optional(),\n});\n\nexport const listMcpServersResponseSchema = z.object({\n servers: z.array(serverInfoSchema),\n total_count: z.number(),\n next: z.string().nullable(),\n});\n\nexport const serverDetailSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n version_detail: versionDetailSchema,\n package_canonical: z.string().optional(),\n packages: z.array(z.unknown()).optional(),\n remotes: z.array(z.unknown()).optional(),\n /** Omitted by servers that predate transport reporting; treat absence as `['streamable-http', 'sse']`. */\n transports: z.array(mcpServerTransportSchema).optional(),\n /** Whether the server declares event types (experimental); see `GET /mcp/:serverId/events`. */\n events_capability: z.boolean().optional(),\n});\n\n// Tool schemas\nexport const mcpToolInfoSchema = z.object({\n /** Tool id as registered on the server; present when the MCP server reports it. */\n id: z.string().optional(),\n name: z.string(),\n description: z.string().optional(),\n inputSchema: z.unknown(),\n outputSchema: z.unknown().optional(),\n toolType: z.string().optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const listMcpServerToolsResponseSchema = z.object({\n tools: z.array(mcpToolInfoSchema),\n});\n\nexport const executeToolResponseSchema = z.union([\n z.object({\n result: z.unknown(),\n }),\n z.object({\n status: z.literal('suspended').describe('The tool paused and asked for input; it did not complete'),\n suspendPayload: z.unknown().describe('What the tool suspended with'),\n resumeSchema: z.unknown().optional().describe('JSON Schema of the input the tool needs to resume'),\n }),\n]);\n\n// Resource schemas\nexport const mcpServerResourcePathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n});\n\nexport const readResourceBodySchema = z.object({\n uri: z.string().describe('Resource URI to read'),\n});\n\nexport const resourceContentSchema = z.object({\n uri: z.string(),\n text: z.string().optional(),\n blob: z.string().optional(),\n mimeType: z.string().optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const readResourceResponseSchema = z.object({\n contents: z.array(resourceContentSchema),\n});\n\nexport const resourceInfoSchema = z.object({\n uri: z.string(),\n name: z.string(),\n description: z.string().optional(),\n mimeType: z.string().optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const listResourcesResponseSchema = z.object({\n resources: z.array(resourceInfoSchema),\n});\n\n// JSON-RPC error response schema\nexport const jsonRpcErrorSchema = z.object({\n jsonrpc: z.literal('2.0'),\n error: z.object({\n code: z.number(),\n message: z.string(),\n }),\n id: z.null(),\n});\n\n// Event schemas (experimental)\nexport const mcpServerEventPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n eventName: z.string().describe('Event type name'),\n});\n\nconst jsonObjectSchema = z.record(z.string(), z.unknown());\nconst eventCursorSchema = z.string().nullable();\n\nexport const mcpServerEventInfoSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n delivery: z.array(z.enum(['push', 'poll', 'webhook'])),\n inputSchema: jsonObjectSchema.optional(),\n payloadSchema: jsonObjectSchema.optional(),\n /** Fed by `server.events.emit()`, so it can receive test events. */\n emittable: z.boolean(),\n});\n\nexport const listMcpServerEventsResponseSchema = z.object({\n events: z.array(mcpServerEventInfoSchema),\n /** Whether `POST /mcp/:serverId/events/:eventName/emit` is served (only under `mastra dev`). */\n testEmit: z.boolean(),\n});\n\nexport const mcpServerEventOccurrenceSchema = z.object({\n eventId: z.string(),\n name: z.string(),\n timestamp: z.string(),\n data: jsonObjectSchema,\n cursor: eventCursorSchema.optional(),\n _meta: jsonObjectSchema.optional(),\n});\n\nexport const pollMcpServerEventBodySchema = z.object({\n arguments: jsonObjectSchema.optional(),\n cursor: eventCursorSchema.optional(),\n maxEvents: z.number().int().min(1).max(1000).optional(),\n});\n\nexport const pollMcpServerEventResponseSchema = z.object({\n events: z.array(mcpServerEventOccurrenceSchema),\n cursor: eventCursorSchema,\n hasMore: z.boolean().optional(),\n truncated: z.boolean().optional(),\n nextPollMs: z.number().optional(),\n});\n\nexport const streamMcpServerEventBodySchema = z.object({\n arguments: jsonObjectSchema.optional(),\n cursor: eventCursorSchema.optional(),\n});\n\n/** One SSE frame of `POST /mcp/:serverId/events/:eventName/stream`. */\nexport const mcpServerEventStreamFrameSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('active'), cursor: eventCursorSchema, truncated: z.boolean() }),\n z.object({ type: z.literal('event'), occurrence: mcpServerEventOccurrenceSchema }),\n z.object({ type: z.literal('heartbeat'), cursor: eventCursorSchema }),\n z.object({ type: z.literal('error'), message: z.string() }),\n z.object({ type: z.literal('terminated') }),\n]);\n\nexport const emitMcpServerEventBodySchema = z.object({\n data: jsonObjectSchema,\n});\n\nexport const emitMcpServerEventResponseSchema = z.object({\n occurrence: mcpServerEventOccurrenceSchema,\n});\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { r as __exportAll } from "./rolldown-runtime-CQI-hT2b.js";
2
2
  import { t as HTTPException } from "./http-exception-CzaWkxMl.js";
3
3
  import { n as createRoute } from "./route-builder-BxPrwNog.js";
4
- import { C as serverDetailSchema, S as readResourceResponseSchema, T as streamMcpServerEventBodySchema, _ as mcpServerToolPathParams, a as getMcpServerDetailQuerySchema, b as pollMcpServerEventResponseSchema, c as listMcpServerToolsResponseSchema, d as listResourcesResponseSchema, f as mcpServerDetailPathParams, g as mcpServerResourcePathParams, h as mcpServerIdPathParams, i as executeToolResponseSchema, l as listMcpServersQuerySchema, m as mcpServerEventStreamFrameSchema, n as emitMcpServerEventResponseSchema, p as mcpServerEventPathParams, r as executeToolBodySchema, s as listMcpServerEventsResponseSchema, t as emitMcpServerEventBodySchema, u as listMcpServersResponseSchema, v as mcpToolInfoSchema, x as readResourceBodySchema, y as pollMcpServerEventBodySchema } from "./mcp-DgdKiptb.js";
4
+ import { C as serverDetailSchema, S as readResourceResponseSchema, T as streamMcpServerEventBodySchema, _ as mcpServerToolPathParams, a as getMcpServerDetailQuerySchema, b as pollMcpServerEventResponseSchema, c as listMcpServerToolsResponseSchema, d as listResourcesResponseSchema, f as mcpServerDetailPathParams, g as mcpServerResourcePathParams, h as mcpServerIdPathParams, i as executeToolResponseSchema, l as listMcpServersQuerySchema, m as mcpServerEventStreamFrameSchema, n as emitMcpServerEventResponseSchema, p as mcpServerEventPathParams, r as executeToolBodySchema, s as listMcpServerEventsResponseSchema, t as emitMcpServerEventBodySchema, u as listMcpServersResponseSchema, v as mcpToolInfoSchema, x as readResourceBodySchema, y as pollMcpServerEventBodySchema } from "./mcp-D4Cprr8R.js";
5
5
  import { MastraError } from "@mastra/core/error";
6
6
  // src/server/handlers/mcp.ts
7
7
  var mcp_exports = /* @__PURE__ */ __exportAll({
@@ -470,4 +470,4 @@ const MCP_SSE_MESSAGES_ROUTE = createRoute({
470
470
  });
471
471
  export { LIST_MCP_SERVERS_ROUTE as a, LIST_MCP_SERVER_TOOLS_ROUTE as c, MCP_SSE_TRANSPORT_ROUTE as d, POLL_MCP_SERVER_EVENT_ROUTE as f, mcp_exports as h, GET_MCP_SERVER_TOOL_DETAIL_ROUTE as i, MCP_HTTP_TRANSPORT_ROUTE as l, STREAM_MCP_SERVER_EVENT_ROUTE as m, EXECUTE_MCP_SERVER_TOOL_ROUTE as n, LIST_MCP_SERVER_EVENTS_ROUTE as o, READ_MCP_SERVER_RESOURCE_ROUTE as p, GET_MCP_SERVER_DETAIL_ROUTE as r, LIST_MCP_SERVER_RESOURCES_ROUTE as s, EMIT_MCP_SERVER_EVENT_ROUTE as t, MCP_SSE_MESSAGES_ROUTE as u };
472
472
 
473
- //# sourceMappingURL=mcp-CnV25lv0.js.map
473
+ //# sourceMappingURL=mcp-D3F3iYew.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-CnV25lv0.js","names":[],"sources":["../src/server/handlers/mcp.ts"],"sourcesContent":["import { MastraError } from '@mastra/core/error';\nimport type { Mastra } from '@mastra/core/mastra';\nimport type {\n MCP_SERVER_EVENT_ERROR_IDS,\n MCPServerBase as MastraMCPServerImplementation,\n MCPServerEventStreamFrame,\n MCPServerEventsInspector,\n MCPToolExecutionResultV2,\n ServerInfo,\n} from '@mastra/core/mcp';\nimport { HTTPException } from '../http-exception';\nimport {\n mcpServerDetailPathParams,\n mcpServerToolPathParams,\n executeToolBodySchema,\n listMcpServersQuerySchema,\n getMcpServerDetailQuerySchema,\n listMcpServersResponseSchema,\n serverDetailSchema,\n mcpServerIdPathParams,\n listMcpServerToolsResponseSchema,\n mcpToolInfoSchema,\n executeToolResponseSchema,\n mcpServerResourcePathParams,\n readResourceBodySchema,\n readResourceResponseSchema,\n listResourcesResponseSchema,\n mcpServerEventPathParams,\n listMcpServerEventsResponseSchema,\n pollMcpServerEventBodySchema,\n pollMcpServerEventResponseSchema,\n streamMcpServerEventBodySchema,\n mcpServerEventStreamFrameSchema,\n emitMcpServerEventBodySchema,\n emitMcpServerEventResponseSchema,\n} from '../schemas/mcp';\nimport type { MCPServerTransport } from '../schemas/mcp';\nimport type { ServerContext } from '../server-adapter';\nimport type { SetMcpRequestAuth } from '../server-adapter/mcp-auth';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\n// ============================================================================\n// Route Definitions (createRoute pattern for server adapters)\n// ============================================================================\n\n/**\n * Only `@mastra/mcp` 1.x servers implement the standalone HTTP+SSE transport; on a\n * 2026-07-28 server the inherited `startSSE`/`startHonoSSE` throw.\n */\nfunction hasSSETransport(server: MastraMCPServerImplementation): boolean {\n return server.mcpVersion !== 2;\n}\n\nexport interface MCPServerInfoResponse extends ServerInfo {\n /** Endpoints served under `/mcp/:serverId`; 2026-07-28 servers speak Streamable HTTP only. */\n transports: MCPServerTransport[];\n events_capability?: boolean;\n}\n\nfunction transportsOf(server: MastraMCPServerImplementation): MCPServerTransport[] {\n return hasSSETransport(server) ? ['streamable-http', 'sse'] : ['streamable-http'];\n}\n\nexport const LIST_MCP_SERVERS_ROUTE = createRoute({\n method: 'GET',\n path: '/mcp/v0/servers',\n responseType: 'json',\n queryParamSchema: listMcpServersQuerySchema,\n responseSchema: listMcpServersResponseSchema,\n summary: 'List MCP servers',\n description: 'Returns a list of registered MCP servers with pagination support',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({\n mastra,\n routePrefix,\n page,\n perPage,\n limit,\n offset,\n }: ServerContext & { page?: number; perPage?: number; limit?: number; offset?: number }) => {\n if (!mastra || typeof mastra.listMCPServers !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or listMCPServers method not available' });\n }\n\n const servers = mastra.listMCPServers();\n\n if (!servers) {\n return { servers: [], total_count: 0, next: null };\n }\n\n const serverList = Object.values(servers);\n const totalCount = serverList.length;\n\n // Support both page/perPage and limit/offset for backwards compatibility\n // Detect which format user is using - prefer page/perPage if both provided\n const useLegacyFormat =\n (limit !== undefined || offset !== undefined) && page === undefined && perPage === undefined;\n\n // If perPage provided, use it; otherwise fall back to limit\n const finalPerPage = perPage ?? limit;\n // If page provided, use it; otherwise convert from offset\n let finalPage = page;\n if (finalPage === undefined && offset !== undefined && finalPerPage !== undefined && finalPerPage > 0) {\n finalPage = Math.floor(offset / finalPerPage);\n }\n\n // Calculate offset from page/perPage\n const actualOffset = finalPage !== undefined && finalPerPage !== undefined ? finalPage * finalPerPage : 0;\n\n // Apply pagination\n let paginatedServers = serverList;\n let nextUrl: string | null = null;\n\n if (finalPerPage !== undefined) {\n paginatedServers = serverList.slice(actualOffset, actualOffset + finalPerPage);\n\n // Calculate next URL if there are more results\n if (actualOffset + finalPerPage < totalCount) {\n const nextPage = (finalPage ?? 0) + 1;\n // Return next URL in same format as request (legacy limit/offset or page/perPage)\n const prefix = routePrefix ?? '';\n if (useLegacyFormat) {\n const nextOffset = actualOffset + finalPerPage;\n nextUrl = `${prefix}/mcp/v0/servers?limit=${finalPerPage}&offset=${nextOffset}`;\n } else {\n nextUrl = `${prefix}/mcp/v0/servers?perPage=${finalPerPage}&page=${nextPage}`;\n }\n }\n }\n\n // Get server info for each server\n const serverInfoList: MCPServerInfoResponse[] = paginatedServers.map(server => ({\n ...server.getServerInfo(),\n transports: transportsOf(server),\n ...eventsCapabilityOf(server),\n }));\n\n return {\n servers: serverInfoList,\n total_count: totalCount,\n next: nextUrl,\n };\n },\n});\n\nexport const GET_MCP_SERVER_DETAIL_ROUTE = createRoute({\n method: 'GET',\n path: '/mcp/v0/servers/:id',\n responseType: 'json',\n pathParamSchema: mcpServerDetailPathParams,\n queryParamSchema: getMcpServerDetailQuerySchema,\n responseSchema: serverDetailSchema,\n summary: 'Get MCP server details',\n description: 'Returns detailed information about a specific MCP server',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, id, version }: ServerContext & { id: string; version?: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(id);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${id}' not found` });\n }\n\n const serverDetail = {\n ...server.getServerDetail(),\n transports: transportsOf(server),\n ...eventsCapabilityOf(server),\n };\n\n // If a specific version was requested, check if it matches\n if (version && serverDetail.version_detail.version !== version) {\n throw new HTTPException(404, {\n message: `MCP server with ID '${id}' found, but not version '${version}'. Available version: ${serverDetail.version_detail.version}`,\n });\n }\n\n return serverDetail;\n },\n});\n\nexport const LIST_MCP_SERVER_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/mcp/:serverId/tools',\n responseType: 'json',\n pathParamSchema: mcpServerIdPathParams,\n responseSchema: listMcpServerToolsResponseSchema,\n summary: 'List MCP server tools',\n description: 'Returns a list of tools available on the specified MCP server',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId, requestContext }: ServerContext & { serverId: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.getToolListInfo !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot list tools in this way.` });\n }\n\n return await server.getToolListInfo(requestContext);\n },\n});\n\nexport const GET_MCP_SERVER_TOOL_DETAIL_ROUTE = createRoute({\n method: 'GET',\n path: '/mcp/:serverId/tools/:toolId',\n responseType: 'json',\n pathParamSchema: mcpServerToolPathParams,\n responseSchema: mcpToolInfoSchema,\n summary: 'Get MCP server tool details',\n description: 'Returns detailed information about a specific tool on the MCP server',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId, toolId }: ServerContext & { serverId: string; toolId: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.getToolInfo !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot provide tool details in this way.` });\n }\n\n const toolInfo = await server.getToolInfo(toolId);\n if (!toolInfo) {\n throw new HTTPException(404, { message: `Tool with ID '${toolId}' not found on MCP server '${serverId}'` });\n }\n\n return toolInfo;\n },\n});\n\nexport const EXECUTE_MCP_SERVER_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/mcp/:serverId/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: mcpServerToolPathParams,\n bodySchema: executeToolBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute MCP server tool',\n description: 'Executes a tool on the specified MCP server with the provided arguments',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({\n mastra,\n serverId,\n toolId,\n data,\n resumeData,\n suspendPayload,\n requestContext,\n }: ServerContext & {\n serverId: string;\n toolId: string;\n data?: unknown;\n resumeData?: unknown;\n suspendPayload?: unknown;\n }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.executeTool !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot execute tools in this way.` });\n }\n\n if (server.mcpVersion === 2) {\n // A 2026-07-28 server runs the tool with no protocol client attached: a tool\n // that suspends for input is reported as such instead of pretending it finished, and\n // the caller answers by sending the same args with `resumeData` and `suspendPayload`.\n let execution: MCPToolExecutionResultV2;\n try {\n execution = await server.executeTool(toolId, data, { requestContext, resumeData, suspendPayload });\n } catch (error) {\n if (error instanceof MastraError && error.id === 'MCP_SERVER_TOOL_INVALID_INPUT') {\n throw new HTTPException(400, { message: error.message, cause: error });\n }\n throw error;\n }\n if (execution.status === 'suspended') {\n return {\n status: 'suspended' as const,\n suspendPayload: execution.suspendPayload,\n resumeSchema: execution.resumeSchema,\n };\n }\n return { result: execution.output };\n }\n\n const result = await server.executeTool(toolId, data, { requestContext });\n return { result };\n },\n});\n\n// ============================================================================\n// MCP Resource Routes\n// ============================================================================\n\nexport const LIST_MCP_SERVER_RESOURCES_ROUTE = createRoute({\n method: 'GET',\n path: '/mcp/:serverId/resources',\n responseType: 'json',\n pathParamSchema: mcpServerResourcePathParams,\n responseSchema: listResourcesResponseSchema,\n summary: 'List MCP server resources',\n description: 'Returns a list of resources available on the MCP server, including ui:// app resources',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.listResources !== 'function') {\n return { resources: [] };\n }\n\n return server.listResources();\n },\n});\n\nexport const READ_MCP_SERVER_RESOURCE_ROUTE = createRoute({\n method: 'POST',\n path: '/mcp/:serverId/resources/read',\n responseType: 'json',\n pathParamSchema: mcpServerResourcePathParams,\n bodySchema: readResourceBodySchema,\n responseSchema: readResourceResponseSchema,\n summary: 'Read MCP server resource content',\n description: 'Reads the content of a resource by URI, used for rendering MCP App ui:// resources',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId, uri }: ServerContext & { serverId: string; uri: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.readResource !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' does not support reading resources` });\n }\n\n try {\n return await server.readResource(uri);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n if (message.includes('not found') || message.includes('not configured')) {\n throw new HTTPException(404, { message: `Resource '${uri}' not found on server '${serverId}'` });\n }\n throw error;\n }\n },\n});\n\n// ============================================================================\n// MCP Event Routes (experimental; used by Studio)\n// ============================================================================\n\n/** Present only for servers that declare event types, so older responses stay unchanged. */\nfunction eventsCapabilityOf(server: MastraMCPServerImplementation): { events_capability?: true } {\n const events = typeof server.getEventsInfo === 'function' ? server.getEventsInfo()?.events : undefined;\n return events && events.length > 0 ? { events_capability: true } : {};\n}\n\nfunction isTestEmitEnabled(): boolean {\n return process.env.MASTRA_DEV === 'true';\n}\n\nfunction getEventsServer(mastra: Mastra | undefined, serverId: string): MastraMCPServerImplementation {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n const server = mastra.getMCPServerById(serverId);\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n return server;\n}\n\nfunction getEventsInspector(server: MastraMCPServerImplementation): MCPServerEventsInspector {\n const inspector = typeof server.getEventsInspector === 'function' ? server.getEventsInspector() : undefined;\n if (!inspector) throw new HTTPException(404, { message: 'Event not found' });\n return inspector;\n}\n\ntype EventErrorId = (typeof MCP_SERVER_EVENT_ERROR_IDS)[keyof typeof MCP_SERVER_EVENT_ERROR_IDS];\n\n// Keyed by the literal ids rather than the core constant, so @mastra/server still\n// runs against a @mastra/core release that doesn't export MCP_SERVER_EVENT_ERROR_IDS.\n// The record type keeps the ids in sync with core at compile time.\nconst EVENT_ERROR_RESPONSES: Record<EventErrorId, { status: 400 | 403 | 404 | 429; message: string }> = {\n MCP_SERVER_UNKNOWN_EVENT: { status: 404, message: 'Event not found' },\n MCP_SERVER_EVENT_UNSUPPORTED_DELIVERY: {\n status: 400,\n message: 'This event does not support streaming; poll it instead',\n },\n MCP_SERVER_EVENT_INVALID_ARGUMENTS: { status: 400, message: 'Invalid event arguments' },\n MCP_SERVER_EVENT_NOT_EMITTABLE: {\n status: 400,\n message: 'This event is fed by a poll source and cannot be emitted',\n },\n MCP_SERVER_EVENT_INVALID_PAYLOAD: { status: 400, message: 'Invalid event data' },\n MCP_SERVER_EVENT_FORBIDDEN: { status: 403, message: 'Not allowed to use this event' },\n MCP_SERVER_EVENT_TOO_MANY_STREAMS: { status: 429, message: 'Too many open event streams' },\n};\n\n/**\n * Maps event errors to generic HTTP errors. The details (which can come from a poll\n * source or an upstream API) are only logged, never returned.\n */\nfunction toEventsHttpError(error: unknown, mastra: Mastra | undefined, context: string): HTTPException {\n if (error instanceof HTTPException) return error;\n const known = error instanceof MastraError ? EVENT_ERROR_RESPONSES[error.id as EventErrorId] : undefined;\n if (known) return new HTTPException(known.status, { message: known.message });\n mastra?.getLogger()?.error(`MCP event request failed: ${context}`, { error });\n return new HTTPException(500, { message: 'Event request failed' });\n}\n\nexport const LIST_MCP_SERVER_EVENTS_ROUTE = createRoute({\n method: 'GET',\n path: '/mcp/:serverId/events',\n responseType: 'json',\n pathParamSchema: mcpServerIdPathParams,\n responseSchema: listMcpServerEventsResponseSchema,\n summary: 'List MCP server events',\n description: 'Returns the event types the MCP server declares (experimental)',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }) => {\n const server = getEventsServer(mastra, serverId);\n const events = typeof server.getEventsInfo === 'function' ? (server.getEventsInfo()?.events ?? []) : [];\n return { events, testEmit: isTestEmitEnabled() };\n },\n});\n\nexport const POLL_MCP_SERVER_EVENT_ROUTE = createRoute({\n method: 'POST',\n path: '/mcp/:serverId/events/:eventName/poll',\n responseType: 'json',\n pathParamSchema: mcpServerEventPathParams,\n bodySchema: pollMcpServerEventBodySchema,\n responseSchema: pollMcpServerEventResponseSchema,\n summary: 'Poll an MCP server event',\n description: 'Reads occurrences of an event type, like the events/poll MCP request (experimental)',\n tags: ['MCP'],\n requiresAuth: true,\n // Same permission as streaming: both read occurrences through the event's source.\n requiresPermission: 'mcp:execute',\n handler: async ({\n mastra,\n serverId,\n eventName,\n arguments: args,\n cursor,\n maxEvents,\n requestContext,\n abortSignal,\n }: ServerContext & {\n serverId: string;\n eventName: string;\n arguments?: Record<string, unknown>;\n cursor?: string | null;\n maxEvents?: number;\n }) => {\n const inspector = getEventsInspector(getEventsServer(mastra, serverId));\n try {\n return await inspector.poll(\n eventName,\n { arguments: args, cursor, maxEvents },\n { requestContext, signal: abortSignal },\n );\n } catch (error) {\n throw toEventsHttpError(error, mastra, `poll ${serverId}/${eventName}`);\n }\n },\n});\n\nexport const STREAM_MCP_SERVER_EVENT_ROUTE = createRoute({\n method: 'POST',\n path: '/mcp/:serverId/events/:eventName/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n sseFlushOnConnect: true,\n pathParamSchema: mcpServerEventPathParams,\n bodySchema: streamMcpServerEventBodySchema,\n responseSchema: mcpServerEventStreamFrameSchema,\n summary: 'Stream an MCP server event',\n description:\n 'Streams occurrences of an event type as server-sent events, like the events/stream MCP request (experimental)',\n tags: ['MCP', 'Streaming'],\n requiresAuth: true,\n handler: async ({\n mastra,\n serverId,\n eventName,\n arguments: args,\n cursor,\n requestContext,\n abortSignal,\n }: ServerContext & {\n serverId: string;\n eventName: string;\n arguments?: Record<string, unknown>;\n cursor?: string | null;\n }) => {\n const inspector = getEventsInspector(getEventsServer(mastra, serverId));\n const controller = new AbortController();\n const abort = () => controller.abort();\n if (abortSignal?.aborted) abort();\n else abortSignal?.addEventListener('abort', abort, { once: true });\n\n // Frames sent before the stream's `start` runs are buffered here.\n const buffered: MCPServerEventStreamFrame[] = [];\n let sink: ReadableStreamDefaultController<MCPServerEventStreamFrame> | undefined;\n let done = false;\n const finish = () => {\n if (done) return;\n done = true;\n abortSignal?.removeEventListener('abort', abort);\n abort();\n try {\n sink?.close();\n } catch {\n // Already closed or cancelled by the client.\n }\n };\n\n let closed: Promise<void>;\n try {\n ({ closed } = await inspector.stream(\n eventName,\n { arguments: args, cursor },\n {\n signal: controller.signal,\n requestContext,\n onFrame: frame => {\n if (done) return;\n if (sink) sink.enqueue(frame);\n else buffered.push(frame);\n if (frame.type === 'terminated') finish();\n },\n },\n ));\n } catch (error) {\n finish();\n throw toEventsHttpError(error, mastra, `stream ${serverId}/${eventName}`);\n }\n void closed.then(finish);\n\n return new ReadableStream<MCPServerEventStreamFrame>({\n start(streamController) {\n if (done) {\n for (const frame of buffered.splice(0)) streamController.enqueue(frame);\n streamController.close();\n return;\n }\n sink = streamController;\n for (const frame of buffered.splice(0)) streamController.enqueue(frame);\n },\n cancel() {\n finish();\n },\n });\n },\n});\n\nexport const EMIT_MCP_SERVER_EVENT_ROUTE = createRoute({\n method: 'POST',\n path: '/mcp/:serverId/events/:eventName/emit',\n responseType: 'json',\n pathParamSchema: mcpServerEventPathParams,\n bodySchema: emitMcpServerEventBodySchema,\n responseSchema: emitMcpServerEventResponseSchema,\n summary: 'Send a test MCP server event',\n description:\n 'Emits a test occurrence of an emit-fed event type. Only served under `mastra dev`; otherwise 404 (experimental)',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({\n mastra,\n serverId,\n eventName,\n data,\n }: ServerContext & { serverId: string; eventName: string; data: Record<string, unknown> }) => {\n if (!isTestEmitEnabled()) throw new HTTPException(404, { message: 'Not Found' });\n const inspector = getEventsInspector(getEventsServer(mastra, serverId));\n try {\n return { occurrence: await inspector.emit(eventName, data) };\n } catch (error) {\n throw toEventsHttpError(error, mastra, `emit ${serverId}/${eventName}`);\n }\n },\n});\n\n// ============================================================================\n// MCP Transport Routes (Streamable HTTP and SSE)\n// ============================================================================\n\n/**\n * MCP transport options that can be passed to startHTTP() or startSSE().\n * Includes serverless mode for running in stateless environments like Cloudflare Workers or Vercel Edge.\n */\nexport interface MCPTransportOptions {\n /**\n * When true, runs in stateless mode without session management.\n * Ideal for serverless environments where you can't maintain persistent connections.\n */\n serverless?: boolean;\n /**\n * Custom session ID generator function.\n */\n sessionIdGenerator?: () => string;\n /**\n * Sets `req.auth` before the MCP transport reads it. Overrides the default\n * bridge that forwards the principal resolved by `server.auth`.\n */\n setRequestAuth?: SetMcpRequestAuth;\n}\n\n/**\n * MCP HTTP Transport response type.\n * Adapters use this to set up the HTTP transport via MCPServer.startHTTP()\n */\nexport interface MCPHttpTransportResult {\n server: MastraMCPServerImplementation;\n httpPath: string;\n /**\n * Optional MCP transport options for this specific route.\n * These override any class-level mcpOptions configured on the adapter.\n */\n mcpOptions?: MCPTransportOptions;\n}\n\n/**\n * MCP SSE Transport response type.\n * Adapters use this to set up the SSE transport via MCPServer.startSSE() or startHonoSSE()\n *\n * Note: SSE transport is inherently stateful and doesn't support serverless mode.\n */\nexport interface MCPSseTransportResult {\n /** A 1.x server: the SSE route only resolves servers that still implement the transport. */\n server: MastraMCPServerImplementation;\n ssePath: string;\n messagePath: string;\n}\n\nexport const MCP_HTTP_TRANSPORT_ROUTE = createRoute({\n method: 'ALL',\n path: '/mcp/:serverId/mcp',\n responseType: 'mcp-http',\n pathParamSchema: mcpServerIdPathParams,\n summary: 'MCP HTTP Transport',\n description: 'Streamable HTTP transport endpoint for MCP protocol communication',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }): Promise<MCPHttpTransportResult> => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server '${serverId}' not found` });\n }\n\n return {\n server,\n httpPath: `/mcp/${serverId}/mcp`,\n };\n },\n});\n\nexport const MCP_SSE_TRANSPORT_ROUTE = createRoute({\n method: 'ALL',\n path: '/mcp/:serverId/sse',\n responseType: 'mcp-sse',\n pathParamSchema: mcpServerIdPathParams,\n summary: 'MCP SSE Transport',\n description: 'SSE transport endpoint for MCP protocol communication',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }): Promise<MCPSseTransportResult> => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server '${serverId}' not found` });\n }\n\n if (!hasSSETransport(server)) {\n throw new HTTPException(404, { message: 'Legacy SSE transport is unavailable for MCP v2 servers' });\n }\n\n return {\n server,\n ssePath: `/mcp/${serverId}/sse`,\n messagePath: `/mcp/${serverId}/messages`,\n };\n },\n});\n\nexport const MCP_SSE_MESSAGES_ROUTE = createRoute({\n method: 'POST',\n path: '/mcp/:serverId/messages',\n responseType: 'mcp-sse',\n pathParamSchema: mcpServerIdPathParams,\n summary: 'MCP SSE Messages',\n description: 'Message endpoint for SSE transport (posts messages to active SSE streams)',\n tags: ['MCP'],\n requiresAuth: true,\n handler: MCP_SSE_TRANSPORT_ROUTE.handler,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"mcp-D3F3iYew.js","names":[],"sources":["../src/server/handlers/mcp.ts"],"sourcesContent":["import { MastraError } from '@mastra/core/error';\nimport type { Mastra } from '@mastra/core/mastra';\nimport type {\n MCP_SERVER_EVENT_ERROR_IDS,\n MCPServerBase as MastraMCPServerImplementation,\n MCPServerEventStreamFrame,\n MCPServerEventsInspector,\n MCPToolExecutionResultV2,\n ServerInfo,\n} from '@mastra/core/mcp';\nimport { HTTPException } from '../http-exception';\nimport {\n mcpServerDetailPathParams,\n mcpServerToolPathParams,\n executeToolBodySchema,\n listMcpServersQuerySchema,\n getMcpServerDetailQuerySchema,\n listMcpServersResponseSchema,\n serverDetailSchema,\n mcpServerIdPathParams,\n listMcpServerToolsResponseSchema,\n mcpToolInfoSchema,\n executeToolResponseSchema,\n mcpServerResourcePathParams,\n readResourceBodySchema,\n readResourceResponseSchema,\n listResourcesResponseSchema,\n mcpServerEventPathParams,\n listMcpServerEventsResponseSchema,\n pollMcpServerEventBodySchema,\n pollMcpServerEventResponseSchema,\n streamMcpServerEventBodySchema,\n mcpServerEventStreamFrameSchema,\n emitMcpServerEventBodySchema,\n emitMcpServerEventResponseSchema,\n} from '../schemas/mcp';\nimport type { MCPServerTransport } from '../schemas/mcp';\nimport type { ServerContext } from '../server-adapter';\nimport type { SetMcpRequestAuth } from '../server-adapter/mcp-auth';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\n// ============================================================================\n// Route Definitions (createRoute pattern for server adapters)\n// ============================================================================\n\n/**\n * Only `@mastra/mcp` 1.x servers implement the standalone HTTP+SSE transport; on a\n * 2026-07-28 server the inherited `startSSE`/`startHonoSSE` throw.\n */\nfunction hasSSETransport(server: MastraMCPServerImplementation): boolean {\n return server.mcpVersion !== 2;\n}\n\nexport interface MCPServerInfoResponse extends ServerInfo {\n /** Endpoints served under `/mcp/:serverId`; 2026-07-28 servers speak Streamable HTTP only. */\n transports: MCPServerTransport[];\n events_capability?: boolean;\n}\n\nfunction transportsOf(server: MastraMCPServerImplementation): MCPServerTransport[] {\n return hasSSETransport(server) ? ['streamable-http', 'sse'] : ['streamable-http'];\n}\n\nexport const LIST_MCP_SERVERS_ROUTE = createRoute({\n method: 'GET',\n path: '/mcp/v0/servers',\n responseType: 'json',\n queryParamSchema: listMcpServersQuerySchema,\n responseSchema: listMcpServersResponseSchema,\n summary: 'List MCP servers',\n description: 'Returns a list of registered MCP servers with pagination support',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({\n mastra,\n routePrefix,\n page,\n perPage,\n limit,\n offset,\n }: ServerContext & { page?: number; perPage?: number; limit?: number; offset?: number }) => {\n if (!mastra || typeof mastra.listMCPServers !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or listMCPServers method not available' });\n }\n\n const servers = mastra.listMCPServers();\n\n if (!servers) {\n return { servers: [], total_count: 0, next: null };\n }\n\n const serverList = Object.values(servers);\n const totalCount = serverList.length;\n\n // Support both page/perPage and limit/offset for backwards compatibility\n // Detect which format user is using - prefer page/perPage if both provided\n const useLegacyFormat =\n (limit !== undefined || offset !== undefined) && page === undefined && perPage === undefined;\n\n // If perPage provided, use it; otherwise fall back to limit\n const finalPerPage = perPage ?? limit;\n // If page provided, use it; otherwise convert from offset\n let finalPage = page;\n if (finalPage === undefined && offset !== undefined && finalPerPage !== undefined && finalPerPage > 0) {\n finalPage = Math.floor(offset / finalPerPage);\n }\n\n // Calculate offset from page/perPage\n const actualOffset = finalPage !== undefined && finalPerPage !== undefined ? finalPage * finalPerPage : 0;\n\n // Apply pagination\n let paginatedServers = serverList;\n let nextUrl: string | null = null;\n\n if (finalPerPage !== undefined) {\n paginatedServers = serverList.slice(actualOffset, actualOffset + finalPerPage);\n\n // Calculate next URL if there are more results\n if (actualOffset + finalPerPage < totalCount) {\n const nextPage = (finalPage ?? 0) + 1;\n // Return next URL in same format as request (legacy limit/offset or page/perPage)\n const prefix = routePrefix ?? '';\n if (useLegacyFormat) {\n const nextOffset = actualOffset + finalPerPage;\n nextUrl = `${prefix}/mcp/v0/servers?limit=${finalPerPage}&offset=${nextOffset}`;\n } else {\n nextUrl = `${prefix}/mcp/v0/servers?perPage=${finalPerPage}&page=${nextPage}`;\n }\n }\n }\n\n // Get server info for each server\n const serverInfoList: MCPServerInfoResponse[] = paginatedServers.map(server => ({\n ...server.getServerInfo(),\n transports: transportsOf(server),\n ...eventsCapabilityOf(server),\n }));\n\n return {\n servers: serverInfoList,\n total_count: totalCount,\n next: nextUrl,\n };\n },\n});\n\nexport const GET_MCP_SERVER_DETAIL_ROUTE = createRoute({\n method: 'GET',\n path: '/mcp/v0/servers/:id',\n responseType: 'json',\n pathParamSchema: mcpServerDetailPathParams,\n queryParamSchema: getMcpServerDetailQuerySchema,\n responseSchema: serverDetailSchema,\n summary: 'Get MCP server details',\n description: 'Returns detailed information about a specific MCP server',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, id, version }: ServerContext & { id: string; version?: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(id);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${id}' not found` });\n }\n\n const serverDetail = {\n ...server.getServerDetail(),\n transports: transportsOf(server),\n ...eventsCapabilityOf(server),\n };\n\n // If a specific version was requested, check if it matches\n if (version && serverDetail.version_detail.version !== version) {\n throw new HTTPException(404, {\n message: `MCP server with ID '${id}' found, but not version '${version}'. Available version: ${serverDetail.version_detail.version}`,\n });\n }\n\n return serverDetail;\n },\n});\n\nexport const LIST_MCP_SERVER_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/mcp/:serverId/tools',\n responseType: 'json',\n pathParamSchema: mcpServerIdPathParams,\n responseSchema: listMcpServerToolsResponseSchema,\n summary: 'List MCP server tools',\n description: 'Returns a list of tools available on the specified MCP server',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId, requestContext }: ServerContext & { serverId: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.getToolListInfo !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot list tools in this way.` });\n }\n\n return await server.getToolListInfo(requestContext);\n },\n});\n\nexport const GET_MCP_SERVER_TOOL_DETAIL_ROUTE = createRoute({\n method: 'GET',\n path: '/mcp/:serverId/tools/:toolId',\n responseType: 'json',\n pathParamSchema: mcpServerToolPathParams,\n responseSchema: mcpToolInfoSchema,\n summary: 'Get MCP server tool details',\n description: 'Returns detailed information about a specific tool on the MCP server',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId, toolId }: ServerContext & { serverId: string; toolId: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.getToolInfo !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot provide tool details in this way.` });\n }\n\n const toolInfo = await server.getToolInfo(toolId);\n if (!toolInfo) {\n throw new HTTPException(404, { message: `Tool with ID '${toolId}' not found on MCP server '${serverId}'` });\n }\n\n return toolInfo;\n },\n});\n\nexport const EXECUTE_MCP_SERVER_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/mcp/:serverId/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: mcpServerToolPathParams,\n bodySchema: executeToolBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute MCP server tool',\n description: 'Executes a tool on the specified MCP server with the provided arguments',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({\n mastra,\n serverId,\n toolId,\n data,\n resumeData,\n suspendPayload,\n requestContext,\n }: ServerContext & {\n serverId: string;\n toolId: string;\n data?: unknown;\n resumeData?: unknown;\n suspendPayload?: unknown;\n }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.executeTool !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot execute tools in this way.` });\n }\n\n if (server.mcpVersion === 2) {\n // A 2026-07-28 server runs the tool with no protocol client attached: a tool\n // that suspends for input is reported as such instead of pretending it finished, and\n // the caller answers by sending the same args with `resumeData` and `suspendPayload`.\n let execution: MCPToolExecutionResultV2;\n try {\n execution = await server.executeTool(toolId, data, { requestContext, resumeData, suspendPayload });\n } catch (error) {\n if (error instanceof MastraError && error.id === 'MCP_SERVER_TOOL_INVALID_INPUT') {\n throw new HTTPException(400, { message: error.message, cause: error });\n }\n throw error;\n }\n if (execution.status === 'suspended') {\n return {\n status: 'suspended' as const,\n suspendPayload: execution.suspendPayload,\n resumeSchema: execution.resumeSchema,\n };\n }\n return { result: execution.output };\n }\n\n const result = await server.executeTool(toolId, data, { requestContext });\n return { result };\n },\n});\n\n// ============================================================================\n// MCP Resource Routes\n// ============================================================================\n\nexport const LIST_MCP_SERVER_RESOURCES_ROUTE = createRoute({\n method: 'GET',\n path: '/mcp/:serverId/resources',\n responseType: 'json',\n pathParamSchema: mcpServerResourcePathParams,\n responseSchema: listResourcesResponseSchema,\n summary: 'List MCP server resources',\n description: 'Returns a list of resources available on the MCP server, including ui:// app resources',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.listResources !== 'function') {\n return { resources: [] };\n }\n\n return server.listResources();\n },\n});\n\nexport const READ_MCP_SERVER_RESOURCE_ROUTE = createRoute({\n method: 'POST',\n path: '/mcp/:serverId/resources/read',\n responseType: 'json',\n pathParamSchema: mcpServerResourcePathParams,\n bodySchema: readResourceBodySchema,\n responseSchema: readResourceResponseSchema,\n summary: 'Read MCP server resource content',\n description: 'Reads the content of a resource by URI, used for rendering MCP App ui:// resources',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId, uri }: ServerContext & { serverId: string; uri: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.readResource !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' does not support reading resources` });\n }\n\n try {\n return await server.readResource(uri);\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n if (message.includes('not found') || message.includes('not configured')) {\n throw new HTTPException(404, { message: `Resource '${uri}' not found on server '${serverId}'` });\n }\n throw error;\n }\n },\n});\n\n// ============================================================================\n// MCP Event Routes (experimental; used by Studio)\n// ============================================================================\n\n/** Present only for servers that declare event types, so older responses stay unchanged. */\nfunction eventsCapabilityOf(server: MastraMCPServerImplementation): { events_capability?: true } {\n const events = typeof server.getEventsInfo === 'function' ? server.getEventsInfo()?.events : undefined;\n return events && events.length > 0 ? { events_capability: true } : {};\n}\n\nfunction isTestEmitEnabled(): boolean {\n return process.env.MASTRA_DEV === 'true';\n}\n\nfunction getEventsServer(mastra: Mastra | undefined, serverId: string): MastraMCPServerImplementation {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n const server = mastra.getMCPServerById(serverId);\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n return server;\n}\n\nfunction getEventsInspector(server: MastraMCPServerImplementation): MCPServerEventsInspector {\n const inspector = typeof server.getEventsInspector === 'function' ? server.getEventsInspector() : undefined;\n if (!inspector) throw new HTTPException(404, { message: 'Event not found' });\n return inspector;\n}\n\ntype EventErrorId = (typeof MCP_SERVER_EVENT_ERROR_IDS)[keyof typeof MCP_SERVER_EVENT_ERROR_IDS];\n\n// Keyed by the literal ids rather than the core constant, so @mastra/server still\n// runs against a @mastra/core release that doesn't export MCP_SERVER_EVENT_ERROR_IDS.\n// The record type keeps the ids in sync with core at compile time.\nconst EVENT_ERROR_RESPONSES: Record<EventErrorId, { status: 400 | 403 | 404 | 429; message: string }> = {\n MCP_SERVER_UNKNOWN_EVENT: { status: 404, message: 'Event not found' },\n MCP_SERVER_EVENT_UNSUPPORTED_DELIVERY: {\n status: 400,\n message: 'This event does not support streaming; poll it instead',\n },\n MCP_SERVER_EVENT_INVALID_ARGUMENTS: { status: 400, message: 'Invalid event arguments' },\n MCP_SERVER_EVENT_NOT_EMITTABLE: {\n status: 400,\n message: 'This event is fed by a poll source and cannot be emitted',\n },\n MCP_SERVER_EVENT_INVALID_PAYLOAD: { status: 400, message: 'Invalid event data' },\n MCP_SERVER_EVENT_FORBIDDEN: { status: 403, message: 'Not allowed to use this event' },\n MCP_SERVER_EVENT_TOO_MANY_STREAMS: { status: 429, message: 'Too many open event streams' },\n};\n\n/**\n * Maps event errors to generic HTTP errors. The details (which can come from a poll\n * source or an upstream API) are only logged, never returned.\n */\nfunction toEventsHttpError(error: unknown, mastra: Mastra | undefined, context: string): HTTPException {\n if (error instanceof HTTPException) return error;\n const known = error instanceof MastraError ? EVENT_ERROR_RESPONSES[error.id as EventErrorId] : undefined;\n if (known) return new HTTPException(known.status, { message: known.message });\n mastra?.getLogger()?.error(`MCP event request failed: ${context}`, { error });\n return new HTTPException(500, { message: 'Event request failed' });\n}\n\nexport const LIST_MCP_SERVER_EVENTS_ROUTE = createRoute({\n method: 'GET',\n path: '/mcp/:serverId/events',\n responseType: 'json',\n pathParamSchema: mcpServerIdPathParams,\n responseSchema: listMcpServerEventsResponseSchema,\n summary: 'List MCP server events',\n description: 'Returns the event types the MCP server declares (experimental)',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }) => {\n const server = getEventsServer(mastra, serverId);\n const events = typeof server.getEventsInfo === 'function' ? (server.getEventsInfo()?.events ?? []) : [];\n return { events, testEmit: isTestEmitEnabled() };\n },\n});\n\nexport const POLL_MCP_SERVER_EVENT_ROUTE = createRoute({\n method: 'POST',\n path: '/mcp/:serverId/events/:eventName/poll',\n responseType: 'json',\n pathParamSchema: mcpServerEventPathParams,\n bodySchema: pollMcpServerEventBodySchema,\n responseSchema: pollMcpServerEventResponseSchema,\n summary: 'Poll an MCP server event',\n description: 'Reads occurrences of an event type, like the events/poll MCP request (experimental)',\n tags: ['MCP'],\n requiresAuth: true,\n // Same permission as streaming: both read occurrences through the event's source.\n requiresPermission: 'mcp:execute',\n handler: async ({\n mastra,\n serverId,\n eventName,\n arguments: args,\n cursor,\n maxEvents,\n requestContext,\n abortSignal,\n }: ServerContext & {\n serverId: string;\n eventName: string;\n arguments?: Record<string, unknown>;\n cursor?: string | null;\n maxEvents?: number;\n }) => {\n const inspector = getEventsInspector(getEventsServer(mastra, serverId));\n try {\n return await inspector.poll(\n eventName,\n { arguments: args, cursor, maxEvents },\n { requestContext, signal: abortSignal },\n );\n } catch (error) {\n throw toEventsHttpError(error, mastra, `poll ${serverId}/${eventName}`);\n }\n },\n});\n\nexport const STREAM_MCP_SERVER_EVENT_ROUTE = createRoute({\n method: 'POST',\n path: '/mcp/:serverId/events/:eventName/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n sseFlushOnConnect: true,\n pathParamSchema: mcpServerEventPathParams,\n bodySchema: streamMcpServerEventBodySchema,\n responseSchema: mcpServerEventStreamFrameSchema,\n summary: 'Stream an MCP server event',\n description:\n 'Streams occurrences of an event type as server-sent events, like the events/stream MCP request (experimental)',\n tags: ['MCP', 'Streaming'],\n requiresAuth: true,\n handler: async ({\n mastra,\n serverId,\n eventName,\n arguments: args,\n cursor,\n requestContext,\n abortSignal,\n }: ServerContext & {\n serverId: string;\n eventName: string;\n arguments?: Record<string, unknown>;\n cursor?: string | null;\n }) => {\n const inspector = getEventsInspector(getEventsServer(mastra, serverId));\n const controller = new AbortController();\n const abort = () => controller.abort();\n if (abortSignal?.aborted) abort();\n else abortSignal?.addEventListener('abort', abort, { once: true });\n\n // Frames sent before the stream's `start` runs are buffered here.\n const buffered: MCPServerEventStreamFrame[] = [];\n let sink: ReadableStreamDefaultController<MCPServerEventStreamFrame> | undefined;\n let done = false;\n const finish = () => {\n if (done) return;\n done = true;\n abortSignal?.removeEventListener('abort', abort);\n abort();\n try {\n sink?.close();\n } catch {\n // Already closed or cancelled by the client.\n }\n };\n\n let closed: Promise<void>;\n try {\n ({ closed } = await inspector.stream(\n eventName,\n { arguments: args, cursor },\n {\n signal: controller.signal,\n requestContext,\n onFrame: frame => {\n if (done) return;\n if (sink) sink.enqueue(frame);\n else buffered.push(frame);\n if (frame.type === 'terminated') finish();\n },\n },\n ));\n } catch (error) {\n finish();\n throw toEventsHttpError(error, mastra, `stream ${serverId}/${eventName}`);\n }\n void closed.then(finish);\n\n return new ReadableStream<MCPServerEventStreamFrame>({\n start(streamController) {\n if (done) {\n for (const frame of buffered.splice(0)) streamController.enqueue(frame);\n streamController.close();\n return;\n }\n sink = streamController;\n for (const frame of buffered.splice(0)) streamController.enqueue(frame);\n },\n cancel() {\n finish();\n },\n });\n },\n});\n\nexport const EMIT_MCP_SERVER_EVENT_ROUTE = createRoute({\n method: 'POST',\n path: '/mcp/:serverId/events/:eventName/emit',\n responseType: 'json',\n pathParamSchema: mcpServerEventPathParams,\n bodySchema: emitMcpServerEventBodySchema,\n responseSchema: emitMcpServerEventResponseSchema,\n summary: 'Send a test MCP server event',\n description:\n 'Emits a test occurrence of an emit-fed event type. Only served under `mastra dev`; otherwise 404 (experimental)',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({\n mastra,\n serverId,\n eventName,\n data,\n }: ServerContext & { serverId: string; eventName: string; data: Record<string, unknown> }) => {\n if (!isTestEmitEnabled()) throw new HTTPException(404, { message: 'Not Found' });\n const inspector = getEventsInspector(getEventsServer(mastra, serverId));\n try {\n return { occurrence: await inspector.emit(eventName, data) };\n } catch (error) {\n throw toEventsHttpError(error, mastra, `emit ${serverId}/${eventName}`);\n }\n },\n});\n\n// ============================================================================\n// MCP Transport Routes (Streamable HTTP and SSE)\n// ============================================================================\n\n/**\n * MCP transport options that can be passed to startHTTP() or startSSE().\n * Includes serverless mode for running in stateless environments like Cloudflare Workers or Vercel Edge.\n */\nexport interface MCPTransportOptions {\n /**\n * When true, runs in stateless mode without session management.\n * Ideal for serverless environments where you can't maintain persistent connections.\n */\n serverless?: boolean;\n /**\n * Custom session ID generator function.\n */\n sessionIdGenerator?: () => string;\n /**\n * Sets `req.auth` before the MCP transport reads it. Overrides the default\n * bridge that forwards the principal resolved by `server.auth`.\n */\n setRequestAuth?: SetMcpRequestAuth;\n}\n\n/**\n * MCP HTTP Transport response type.\n * Adapters use this to set up the HTTP transport via MCPServer.startHTTP()\n */\nexport interface MCPHttpTransportResult {\n server: MastraMCPServerImplementation;\n httpPath: string;\n /**\n * Optional MCP transport options for this specific route.\n * These override any class-level mcpOptions configured on the adapter.\n */\n mcpOptions?: MCPTransportOptions;\n}\n\n/**\n * MCP SSE Transport response type.\n * Adapters use this to set up the SSE transport via MCPServer.startSSE() or startHonoSSE()\n *\n * Note: SSE transport is inherently stateful and doesn't support serverless mode.\n */\nexport interface MCPSseTransportResult {\n /** A 1.x server: the SSE route only resolves servers that still implement the transport. */\n server: MastraMCPServerImplementation;\n ssePath: string;\n messagePath: string;\n}\n\nexport const MCP_HTTP_TRANSPORT_ROUTE = createRoute({\n method: 'ALL',\n path: '/mcp/:serverId/mcp',\n responseType: 'mcp-http',\n pathParamSchema: mcpServerIdPathParams,\n summary: 'MCP HTTP Transport',\n description: 'Streamable HTTP transport endpoint for MCP protocol communication',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }): Promise<MCPHttpTransportResult> => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server '${serverId}' not found` });\n }\n\n return {\n server,\n httpPath: `/mcp/${serverId}/mcp`,\n };\n },\n});\n\nexport const MCP_SSE_TRANSPORT_ROUTE = createRoute({\n method: 'ALL',\n path: '/mcp/:serverId/sse',\n responseType: 'mcp-sse',\n pathParamSchema: mcpServerIdPathParams,\n summary: 'MCP SSE Transport',\n description: 'SSE transport endpoint for MCP protocol communication',\n tags: ['MCP'],\n requiresAuth: true,\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }): Promise<MCPSseTransportResult> => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server '${serverId}' not found` });\n }\n\n if (!hasSSETransport(server)) {\n throw new HTTPException(404, { message: 'Legacy SSE transport is unavailable for MCP v2 servers' });\n }\n\n return {\n server,\n ssePath: `/mcp/${serverId}/sse`,\n messagePath: `/mcp/${serverId}/messages`,\n };\n },\n});\n\nexport const MCP_SSE_MESSAGES_ROUTE = createRoute({\n method: 'POST',\n path: '/mcp/:serverId/messages',\n responseType: 'mcp-sse',\n pathParamSchema: mcpServerIdPathParams,\n summary: 'MCP SSE Messages',\n description: 'Message endpoint for SSE transport (posts messages to active SSE streams)',\n tags: ['MCP'],\n requiresAuth: true,\n handler: MCP_SSE_TRANSPORT_ROUTE.handler,\n});\n"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { r as createCombinedPaginationSchema } from "./common-xUmaFUop.js";
1
+ import { r as createCombinedPaginationSchema } from "./common-J-yUnHk9.js";
2
2
  import { z } from "zod/v4";
3
3
  // src/server/schemas/mcp.ts
4
4
  const mcpServerIdPathParams = z.object({ serverId: z.string().describe("MCP server ID") });
@@ -162,4 +162,4 @@ const emitMcpServerEventBodySchema = z.object({ data: jsonObjectSchema });
162
162
  const emitMcpServerEventResponseSchema = z.object({ occurrence: mcpServerEventOccurrenceSchema });
163
163
  export { serverDetailSchema as C, versionDetailSchema as E, readResourceResponseSchema as S, streamMcpServerEventBodySchema as T, mcpServerToolPathParams as _, getMcpServerDetailQuerySchema as a, pollMcpServerEventResponseSchema as b, listMcpServerToolsResponseSchema as c, listResourcesResponseSchema as d, mcpServerDetailPathParams as f, mcpServerResourcePathParams as g, mcpServerIdPathParams as h, executeToolResponseSchema as i, listMcpServersQuerySchema as l, mcpServerEventStreamFrameSchema as m, emitMcpServerEventResponseSchema as n, jsonRpcErrorSchema as o, mcpServerEventPathParams as p, executeToolBodySchema as r, listMcpServerEventsResponseSchema as s, emitMcpServerEventBodySchema as t, listMcpServersResponseSchema as u, mcpToolInfoSchema as v, serverInfoSchema as w, readResourceBodySchema as x, pollMcpServerEventBodySchema as y };
164
164
 
165
- //# sourceMappingURL=mcp-DgdKiptb.js.map
165
+ //# sourceMappingURL=mcp-D4Cprr8R.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-DgdKiptb.js","names":[],"sources":["../src/server/schemas/mcp.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { createCombinedPaginationSchema } from './common';\n\n// Path parameters\nexport const mcpServerIdPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerDetailPathParams = z.object({\n id: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerToolPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n toolId: z.string().describe('Tool ID'),\n});\n\nexport const executeToolBodySchema = z.object({\n data: z.unknown().optional(),\n resumeData: z\n .unknown()\n .optional()\n .describe('Answer for a tool that reported `status: \"suspended\"`; 2026-07-28 servers only'),\n suspendPayload: z\n .unknown()\n .optional()\n .describe('The `suspendPayload` from the suspended response, echoed back with `resumeData`'),\n});\n\n// Query parameters\n// Supports both page/perPage and limit/offset for backwards compatibility\nexport const listMcpServersQuerySchema = createCombinedPaginationSchema();\n\nexport const getMcpServerDetailQuerySchema = z.object({\n version: z.string().optional(),\n});\n\n// Response schemas\nexport const versionDetailSchema = z.object({\n version: z.string(),\n release_date: z.string(),\n is_latest: z.boolean(),\n});\n\nexport const mcpServerTransportSchema = z.enum(['streamable-http', 'sse']);\n\n/** Protocol transports the Studio/REST API exposes for a registered MCP server. */\nexport type MCPServerTransport = z.infer<typeof mcpServerTransportSchema>;\n\nexport const serverInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n version_detail: versionDetailSchema,\n /** Omitted by servers that predate transport reporting; treat absence as `['streamable-http', 'sse']`. */\n transports: z.array(mcpServerTransportSchema).optional(),\n /** Whether the server declares event types (experimental); see `GET /mcp/:serverId/events`. */\n events_capability: z.boolean().optional(),\n});\n\nexport const listMcpServersResponseSchema = z.object({\n servers: z.array(serverInfoSchema),\n total_count: z.number(),\n next: z.string().nullable(),\n});\n\nexport const serverDetailSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n version_detail: versionDetailSchema,\n package_canonical: z.string().optional(),\n packages: z.array(z.unknown()).optional(),\n remotes: z.array(z.unknown()).optional(),\n /** Omitted by servers that predate transport reporting; treat absence as `['streamable-http', 'sse']`. */\n transports: z.array(mcpServerTransportSchema).optional(),\n /** Whether the server declares event types (experimental); see `GET /mcp/:serverId/events`. */\n events_capability: z.boolean().optional(),\n});\n\n// Tool schemas\nexport const mcpToolInfoSchema = z.object({\n /** Tool id as registered on the server; present when the MCP server reports it. */\n id: z.string().optional(),\n name: z.string(),\n description: z.string().optional(),\n inputSchema: z.unknown(),\n outputSchema: z.unknown().optional(),\n toolType: z.string().optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const listMcpServerToolsResponseSchema = z.object({\n tools: z.array(mcpToolInfoSchema),\n});\n\nexport const executeToolResponseSchema = z.union([\n z.object({\n result: z.unknown(),\n }),\n z.object({\n status: z.literal('suspended').describe('The tool paused and asked for input; it did not complete'),\n suspendPayload: z.unknown().describe('What the tool suspended with'),\n resumeSchema: z.unknown().optional().describe('JSON Schema of the input the tool needs to resume'),\n }),\n]);\n\n// Resource schemas\nexport const mcpServerResourcePathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n});\n\nexport const readResourceBodySchema = z.object({\n uri: z.string().describe('Resource URI to read'),\n});\n\nexport const resourceContentSchema = z.object({\n uri: z.string(),\n text: z.string().optional(),\n blob: z.string().optional(),\n mimeType: z.string().optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const readResourceResponseSchema = z.object({\n contents: z.array(resourceContentSchema),\n});\n\nexport const resourceInfoSchema = z.object({\n uri: z.string(),\n name: z.string(),\n description: z.string().optional(),\n mimeType: z.string().optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const listResourcesResponseSchema = z.object({\n resources: z.array(resourceInfoSchema),\n});\n\n// JSON-RPC error response schema\nexport const jsonRpcErrorSchema = z.object({\n jsonrpc: z.literal('2.0'),\n error: z.object({\n code: z.number(),\n message: z.string(),\n }),\n id: z.null(),\n});\n\n// Event schemas (experimental)\nexport const mcpServerEventPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n eventName: z.string().describe('Event type name'),\n});\n\nconst jsonObjectSchema = z.record(z.string(), z.unknown());\nconst eventCursorSchema = z.string().nullable();\n\nexport const mcpServerEventInfoSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n delivery: z.array(z.enum(['push', 'poll', 'webhook'])),\n inputSchema: jsonObjectSchema.optional(),\n payloadSchema: jsonObjectSchema.optional(),\n /** Fed by `server.events.emit()`, so it can receive test events. */\n emittable: z.boolean(),\n});\n\nexport const listMcpServerEventsResponseSchema = z.object({\n events: z.array(mcpServerEventInfoSchema),\n /** Whether `POST /mcp/:serverId/events/:eventName/emit` is served (only under `mastra dev`). */\n testEmit: z.boolean(),\n});\n\nexport const mcpServerEventOccurrenceSchema = z.object({\n eventId: z.string(),\n name: z.string(),\n timestamp: z.string(),\n data: jsonObjectSchema,\n cursor: eventCursorSchema.optional(),\n _meta: jsonObjectSchema.optional(),\n});\n\nexport const pollMcpServerEventBodySchema = z.object({\n arguments: jsonObjectSchema.optional(),\n cursor: eventCursorSchema.optional(),\n maxEvents: z.number().int().min(1).max(1000).optional(),\n});\n\nexport const pollMcpServerEventResponseSchema = z.object({\n events: z.array(mcpServerEventOccurrenceSchema),\n cursor: eventCursorSchema,\n hasMore: z.boolean().optional(),\n truncated: z.boolean().optional(),\n nextPollMs: z.number().optional(),\n});\n\nexport const streamMcpServerEventBodySchema = z.object({\n arguments: jsonObjectSchema.optional(),\n cursor: eventCursorSchema.optional(),\n});\n\n/** One SSE frame of `POST /mcp/:serverId/events/:eventName/stream`. */\nexport const mcpServerEventStreamFrameSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('active'), cursor: eventCursorSchema, truncated: z.boolean() }),\n z.object({ type: z.literal('event'), occurrence: mcpServerEventOccurrenceSchema }),\n z.object({ type: z.literal('heartbeat'), cursor: eventCursorSchema }),\n z.object({ type: z.literal('error'), message: z.string() }),\n z.object({ type: z.literal('terminated') }),\n]);\n\nexport const emitMcpServerEventBodySchema = z.object({\n data: jsonObjectSchema,\n});\n\nexport const emitMcpServerEventResponseSchema = z.object({\n occurrence: mcpServerEventOccurrenceSchema,\n});\n"],"mappings":"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"}
1
+ {"version":3,"file":"mcp-D4Cprr8R.js","names":[],"sources":["../src/server/schemas/mcp.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { createCombinedPaginationSchema } from './common';\n\n// Path parameters\nexport const mcpServerIdPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerDetailPathParams = z.object({\n id: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerToolPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n toolId: z.string().describe('Tool ID'),\n});\n\nexport const executeToolBodySchema = z.object({\n data: z.unknown().optional(),\n resumeData: z\n .unknown()\n .optional()\n .describe('Answer for a tool that reported `status: \"suspended\"`; 2026-07-28 servers only'),\n suspendPayload: z\n .unknown()\n .optional()\n .describe('The `suspendPayload` from the suspended response, echoed back with `resumeData`'),\n});\n\n// Query parameters\n// Supports both page/perPage and limit/offset for backwards compatibility\nexport const listMcpServersQuerySchema = createCombinedPaginationSchema();\n\nexport const getMcpServerDetailQuerySchema = z.object({\n version: z.string().optional(),\n});\n\n// Response schemas\nexport const versionDetailSchema = z.object({\n version: z.string(),\n release_date: z.string(),\n is_latest: z.boolean(),\n});\n\nexport const mcpServerTransportSchema = z.enum(['streamable-http', 'sse']);\n\n/** Protocol transports the Studio/REST API exposes for a registered MCP server. */\nexport type MCPServerTransport = z.infer<typeof mcpServerTransportSchema>;\n\nexport const serverInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n version_detail: versionDetailSchema,\n /** Omitted by servers that predate transport reporting; treat absence as `['streamable-http', 'sse']`. */\n transports: z.array(mcpServerTransportSchema).optional(),\n /** Whether the server declares event types (experimental); see `GET /mcp/:serverId/events`. */\n events_capability: z.boolean().optional(),\n});\n\nexport const listMcpServersResponseSchema = z.object({\n servers: z.array(serverInfoSchema),\n total_count: z.number(),\n next: z.string().nullable(),\n});\n\nexport const serverDetailSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n version_detail: versionDetailSchema,\n package_canonical: z.string().optional(),\n packages: z.array(z.unknown()).optional(),\n remotes: z.array(z.unknown()).optional(),\n /** Omitted by servers that predate transport reporting; treat absence as `['streamable-http', 'sse']`. */\n transports: z.array(mcpServerTransportSchema).optional(),\n /** Whether the server declares event types (experimental); see `GET /mcp/:serverId/events`. */\n events_capability: z.boolean().optional(),\n});\n\n// Tool schemas\nexport const mcpToolInfoSchema = z.object({\n /** Tool id as registered on the server; present when the MCP server reports it. */\n id: z.string().optional(),\n name: z.string(),\n description: z.string().optional(),\n inputSchema: z.unknown(),\n outputSchema: z.unknown().optional(),\n toolType: z.string().optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const listMcpServerToolsResponseSchema = z.object({\n tools: z.array(mcpToolInfoSchema),\n});\n\nexport const executeToolResponseSchema = z.union([\n z.object({\n result: z.unknown(),\n }),\n z.object({\n status: z.literal('suspended').describe('The tool paused and asked for input; it did not complete'),\n suspendPayload: z.unknown().describe('What the tool suspended with'),\n resumeSchema: z.unknown().optional().describe('JSON Schema of the input the tool needs to resume'),\n }),\n]);\n\n// Resource schemas\nexport const mcpServerResourcePathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n});\n\nexport const readResourceBodySchema = z.object({\n uri: z.string().describe('Resource URI to read'),\n});\n\nexport const resourceContentSchema = z.object({\n uri: z.string(),\n text: z.string().optional(),\n blob: z.string().optional(),\n mimeType: z.string().optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const readResourceResponseSchema = z.object({\n contents: z.array(resourceContentSchema),\n});\n\nexport const resourceInfoSchema = z.object({\n uri: z.string(),\n name: z.string(),\n description: z.string().optional(),\n mimeType: z.string().optional(),\n _meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const listResourcesResponseSchema = z.object({\n resources: z.array(resourceInfoSchema),\n});\n\n// JSON-RPC error response schema\nexport const jsonRpcErrorSchema = z.object({\n jsonrpc: z.literal('2.0'),\n error: z.object({\n code: z.number(),\n message: z.string(),\n }),\n id: z.null(),\n});\n\n// Event schemas (experimental)\nexport const mcpServerEventPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n eventName: z.string().describe('Event type name'),\n});\n\nconst jsonObjectSchema = z.record(z.string(), z.unknown());\nconst eventCursorSchema = z.string().nullable();\n\nexport const mcpServerEventInfoSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n delivery: z.array(z.enum(['push', 'poll', 'webhook'])),\n inputSchema: jsonObjectSchema.optional(),\n payloadSchema: jsonObjectSchema.optional(),\n /** Fed by `server.events.emit()`, so it can receive test events. */\n emittable: z.boolean(),\n});\n\nexport const listMcpServerEventsResponseSchema = z.object({\n events: z.array(mcpServerEventInfoSchema),\n /** Whether `POST /mcp/:serverId/events/:eventName/emit` is served (only under `mastra dev`). */\n testEmit: z.boolean(),\n});\n\nexport const mcpServerEventOccurrenceSchema = z.object({\n eventId: z.string(),\n name: z.string(),\n timestamp: z.string(),\n data: jsonObjectSchema,\n cursor: eventCursorSchema.optional(),\n _meta: jsonObjectSchema.optional(),\n});\n\nexport const pollMcpServerEventBodySchema = z.object({\n arguments: jsonObjectSchema.optional(),\n cursor: eventCursorSchema.optional(),\n maxEvents: z.number().int().min(1).max(1000).optional(),\n});\n\nexport const pollMcpServerEventResponseSchema = z.object({\n events: z.array(mcpServerEventOccurrenceSchema),\n cursor: eventCursorSchema,\n hasMore: z.boolean().optional(),\n truncated: z.boolean().optional(),\n nextPollMs: z.number().optional(),\n});\n\nexport const streamMcpServerEventBodySchema = z.object({\n arguments: jsonObjectSchema.optional(),\n cursor: eventCursorSchema.optional(),\n});\n\n/** One SSE frame of `POST /mcp/:serverId/events/:eventName/stream`. */\nexport const mcpServerEventStreamFrameSchema = z.discriminatedUnion('type', [\n z.object({ type: z.literal('active'), cursor: eventCursorSchema, truncated: z.boolean() }),\n z.object({ type: z.literal('event'), occurrence: mcpServerEventOccurrenceSchema }),\n z.object({ type: z.literal('heartbeat'), cursor: eventCursorSchema }),\n z.object({ type: z.literal('error'), message: z.string() }),\n z.object({ type: z.literal('terminated') }),\n]);\n\nexport const emitMcpServerEventBodySchema = z.object({\n data: jsonObjectSchema,\n});\n\nexport const emitMcpServerEventResponseSchema = z.object({\n occurrence: mcpServerEventOccurrenceSchema,\n});\n"],"mappings":";;;AAIA,MAAa,wBAAwB,EAAE,OAAO,EAC5C,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe,EAC/C,CAAC;AAED,MAAa,4BAA4B,EAAE,OAAO,EAChD,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe,EACzC,CAAC;AAED,MAAa,0BAA0B,EAAE,OAAO;CAC9C,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe;CAC7C,QAAQ,EAAE,OAAO,CAAC,CAAC,SAAS,SAAS;AACvC,CAAC;AAED,MAAa,wBAAwB,EAAE,OAAO;CAC5C,MAAM,EAAE,QAAQ,CAAC,CAAC,SAAS;CAC3B,YAAY,EACT,QAAQ,CAAC,CACT,SAAS,CAAC,CACV,SAAS,kFAAgF;CAC5F,gBAAgB,EACb,QAAQ,CAAC,CACT,SAAS,CAAC,CACV,SAAS,iFAAiF;AAC/F,CAAC;AAID,MAAa,4BAA4B,+BAA+B;AAExE,MAAa,gCAAgC,EAAE,OAAO,EACpD,SAAS,EAAE,OAAO,CAAC,CAAC,SAAS,EAC/B,CAAC;AAGD,MAAa,sBAAsB,EAAE,OAAO;CAC1C,SAAS,EAAE,OAAO;CAClB,cAAc,EAAE,OAAO;CACvB,WAAW,EAAE,QAAQ;AACvB,CAAC;AAED,MAAa,2BAA2B,EAAE,KAAK,CAAC,mBAAmB,KAAK,CAAC;AAKzE,MAAa,mBAAmB,EAAE,OAAO;CACvC,IAAI,EAAE,OAAO;CACb,MAAM,EAAE,OAAO;CACf,gBAAgB;;CAEhB,YAAY,EAAE,MAAM,wBAAwB,CAAC,CAAC,SAAS;;CAEvD,mBAAmB,EAAE,QAAQ,CAAC,CAAC,SAAS;AAC1C,CAAC;AAED,MAAa,+BAA+B,EAAE,OAAO;CACnD,SAAS,EAAE,MAAM,gBAAgB;CACjC,aAAa,EAAE,OAAO;CACtB,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS;AAC5B,CAAC;AAED,MAAa,qBAAqB,EAAE,OAAO;CACzC,IAAI,EAAE,OAAO;CACb,MAAM,EAAE,OAAO;CACf,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,gBAAgB;CAChB,mBAAmB,EAAE,OAAO,CAAC,CAAC,SAAS;CACvC,UAAU,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS;CACxC,SAAS,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS;;CAEvC,YAAY,EAAE,MAAM,wBAAwB,CAAC,CAAC,SAAS;;CAEvD,mBAAmB,EAAE,QAAQ,CAAC,CAAC,SAAS;AAC1C,CAAC;AAGD,MAAa,oBAAoB,EAAE,OAAO;;CAExC,IAAI,EAAE,OAAO,CAAC,CAAC,SAAS;CACxB,MAAM,EAAE,OAAO;CACf,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,aAAa,EAAE,QAAQ;CACvB,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS;CACnC,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS;AACpD,CAAC;AAED,MAAa,mCAAmC,EAAE,OAAO,EACvD,OAAO,EAAE,MAAM,iBAAiB,EAClC,CAAC;AAED,MAAa,4BAA4B,EAAE,MAAM,CAC/C,EAAE,OAAO,EACP,QAAQ,EAAE,QAAQ,EACpB,CAAC,GACD,EAAE,OAAO;CACP,QAAQ,EAAE,QAAQ,WAAW,CAAC,CAAC,SAAS,0DAA0D;CAClG,gBAAgB,EAAE,QAAQ,CAAC,CAAC,SAAS,8BAA8B;CACnE,cAAc,EAAE,QAAQ,CAAC,CAAC,SAAS,CAAC,CAAC,SAAS,mDAAmD;AACnG,CAAC,CACH,CAAC;AAGD,MAAa,8BAA8B,EAAE,OAAO,EAClD,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe,EAC/C,CAAC;AAED,MAAa,yBAAyB,EAAE,OAAO,EAC7C,KAAK,EAAE,OAAO,CAAC,CAAC,SAAS,sBAAsB,EACjD,CAAC;AAED,MAAa,wBAAwB,EAAE,OAAO;CAC5C,KAAK,EAAE,OAAO;CACd,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS;CAC1B,MAAM,EAAE,OAAO,CAAC,CAAC,SAAS;CAC1B,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS;AACpD,CAAC;AAED,MAAa,6BAA6B,EAAE,OAAO,EACjD,UAAU,EAAE,MAAM,qBAAqB,EACzC,CAAC;AAED,MAAa,qBAAqB,EAAE,OAAO;CACzC,KAAK,EAAE,OAAO;CACd,MAAM,EAAE,OAAO;CACf,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS;CAC9B,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,SAAS;AACpD,CAAC;AAED,MAAa,8BAA8B,EAAE,OAAO,EAClD,WAAW,EAAE,MAAM,kBAAkB,EACvC,CAAC;AAGD,MAAa,qBAAqB,EAAE,OAAO;CACzC,SAAS,EAAE,QAAQ,KAAK;CACxB,OAAO,EAAE,OAAO;EACd,MAAM,EAAE,OAAO;EACf,SAAS,EAAE,OAAO;CACpB,CAAC;CACD,IAAI,EAAE,KAAK;AACb,CAAC;AAGD,MAAa,2BAA2B,EAAE,OAAO;CAC/C,UAAU,EAAE,OAAO,CAAC,CAAC,SAAS,eAAe;CAC7C,WAAW,EAAE,OAAO,CAAC,CAAC,SAAS,iBAAiB;AAClD,CAAC;AAED,MAAM,mBAAmB,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC;AACzD,MAAM,oBAAoB,EAAE,OAAO,CAAC,CAAC,SAAS;AAE9C,MAAa,2BAA2B,EAAE,OAAO;CAC/C,MAAM,EAAE,OAAO;CACf,aAAa,EAAE,OAAO,CAAC,CAAC,SAAS;CACjC,UAAU,EAAE,MAAM,EAAE,KAAK;EAAC;EAAQ;EAAQ;CAAS,CAAC,CAAC;CACrD,aAAa,iBAAiB,SAAS;CACvC,eAAe,iBAAiB,SAAS;;CAEzC,WAAW,EAAE,QAAQ;AACvB,CAAC;AAED,MAAa,oCAAoC,EAAE,OAAO;CACxD,QAAQ,EAAE,MAAM,wBAAwB;;CAExC,UAAU,EAAE,QAAQ;AACtB,CAAC;AAED,MAAa,iCAAiC,EAAE,OAAO;CACrD,SAAS,EAAE,OAAO;CAClB,MAAM,EAAE,OAAO;CACf,WAAW,EAAE,OAAO;CACpB,MAAM;CACN,QAAQ,kBAAkB,SAAS;CACnC,OAAO,iBAAiB,SAAS;AACnC,CAAC;AAED,MAAa,+BAA+B,EAAE,OAAO;CACnD,WAAW,iBAAiB,SAAS;CACrC,QAAQ,kBAAkB,SAAS;CACnC,WAAW,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,GAAI,CAAC,CAAC,SAAS;AACxD,CAAC;AAED,MAAa,mCAAmC,EAAE,OAAO;CACvD,QAAQ,EAAE,MAAM,8BAA8B;CAC9C,QAAQ;CACR,SAAS,EAAE,QAAQ,CAAC,CAAC,SAAS;CAC9B,WAAW,EAAE,QAAQ,CAAC,CAAC,SAAS;CAChC,YAAY,EAAE,OAAO,CAAC,CAAC,SAAS;AAClC,CAAC;AAED,MAAa,iCAAiC,EAAE,OAAO;CACrD,WAAW,iBAAiB,SAAS;CACrC,QAAQ,kBAAkB,SAAS;AACrC,CAAC;;AAGD,MAAa,kCAAkC,EAAE,mBAAmB,QAAQ;CAC1E,EAAE,OAAO;EAAE,MAAM,EAAE,QAAQ,QAAQ;EAAG,QAAQ;EAAmB,WAAW,EAAE,QAAQ;CAAE,CAAC;CACzF,EAAE,OAAO;EAAE,MAAM,EAAE,QAAQ,OAAO;EAAG,YAAY;CAA+B,CAAC;CACjF,EAAE,OAAO;EAAE,MAAM,EAAE,QAAQ,WAAW;EAAG,QAAQ;CAAkB,CAAC;CACpE,EAAE,OAAO;EAAE,MAAM,EAAE,QAAQ,OAAO;EAAG,SAAS,EAAE,OAAO;CAAE,CAAC;CAC1D,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,YAAY,EAAE,CAAC;AAC5C,CAAC;AAED,MAAa,+BAA+B,EAAE,OAAO,EACnD,MAAM,iBACR,CAAC;AAED,MAAa,mCAAmC,EAAE,OAAO,EACvD,YAAY,+BACd,CAAC"}
@@ -1,4 +1,4 @@
1
- const require_version_common = require("./version-common-B2n_ML_w.cjs");
1
+ const require_version_common = require("./version-common-Cc0STXl9.cjs");
2
2
  let zod_v4 = require("zod/v4");
3
3
  // src/server/schemas/mcp-client-versions.ts
4
4
  const listMCPClientVersionsQuerySchema = require_version_common.listVersionsQuerySchema;
@@ -119,4 +119,4 @@ Object.defineProperty(exports, "restoreMCPClientVersionResponseSchema", {
119
119
  }
120
120
  });
121
121
 
122
- //# sourceMappingURL=mcp-client-versions-HRTe5cRT.cjs.map
122
+ //# sourceMappingURL=mcp-client-versions-BS99SD4O.cjs.map