@mastra/server 0.0.0-cloud-deployer-for-core-0.19.1-20251001164939 → 0.0.0-cloud-604-map-nested-flow-details-to-side-panel-20251212192149

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 (400) hide show
  1. package/CHANGELOG.md +1487 -3
  2. package/README.md +2 -2
  3. package/dist/{chunk-PPYGWINI.cjs → chunk-2PLXW4ZX.cjs} +74 -74
  4. package/dist/{chunk-PPYGWINI.cjs.map → chunk-2PLXW4ZX.cjs.map} +1 -1
  5. package/dist/chunk-3SFLFUKY.js +116 -0
  6. package/dist/chunk-3SFLFUKY.js.map +1 -0
  7. package/dist/{chunk-VY4ENABS.cjs → chunk-3XI22UQR.cjs} +21 -8
  8. package/dist/chunk-3XI22UQR.cjs.map +1 -0
  9. package/dist/chunk-4W2SM6CG.js +294 -0
  10. package/dist/chunk-4W2SM6CG.js.map +1 -0
  11. package/dist/chunk-5W4RPVTK.cjs +49 -0
  12. package/dist/chunk-5W4RPVTK.cjs.map +1 -0
  13. package/dist/{chunk-7NADHFD2.cjs → chunk-64ITUOXI.cjs} +2 -2
  14. package/dist/chunk-64ITUOXI.cjs.map +1 -0
  15. package/dist/{chunk-MMROOK5J.js → chunk-6QWQZI4Q.js} +2 -2
  16. package/dist/{chunk-7NADHFD2.cjs.map → chunk-6QWQZI4Q.js.map} +1 -1
  17. package/dist/chunk-6V57U52D.js +196 -0
  18. package/dist/chunk-6V57U52D.js.map +1 -0
  19. package/dist/chunk-7KOS32XA.cjs +928 -0
  20. package/dist/chunk-7KOS32XA.cjs.map +1 -0
  21. package/dist/{chunk-OPI3FZYH.cjs → chunk-7O3KPUJ4.cjs} +230 -35
  22. package/dist/chunk-7O3KPUJ4.cjs.map +1 -0
  23. package/dist/chunk-BMYZ4DO6.cjs +269 -0
  24. package/dist/chunk-BMYZ4DO6.cjs.map +1 -0
  25. package/dist/chunk-BNGT3NIC.cjs +211 -0
  26. package/dist/chunk-BNGT3NIC.cjs.map +1 -0
  27. package/dist/chunk-C3UIIRAT.cjs +920 -0
  28. package/dist/chunk-C3UIIRAT.cjs.map +1 -0
  29. package/dist/chunk-DRUNNM4C.js +328 -0
  30. package/dist/chunk-DRUNNM4C.js.map +1 -0
  31. package/dist/chunk-ER3QM7DD.js +46 -0
  32. package/dist/chunk-ER3QM7DD.js.map +1 -0
  33. package/dist/chunk-EVAMVADJ.js +23226 -0
  34. package/dist/chunk-EVAMVADJ.js.map +1 -0
  35. package/dist/chunk-FPCGLPLJ.cjs +297 -0
  36. package/dist/chunk-FPCGLPLJ.cjs.map +1 -0
  37. package/dist/chunk-FYY54HZC.js +310 -0
  38. package/dist/chunk-FYY54HZC.js.map +1 -0
  39. package/dist/chunk-GFF2I6UD.js +354 -0
  40. package/dist/chunk-GFF2I6UD.js.map +1 -0
  41. package/dist/chunk-H2RMXG2Q.cjs +167 -0
  42. package/dist/chunk-H2RMXG2Q.cjs.map +1 -0
  43. package/dist/chunk-HAJOEDNB.js +274 -0
  44. package/dist/chunk-HAJOEDNB.js.map +1 -0
  45. package/dist/chunk-HT4LP3BO.js +75 -0
  46. package/dist/chunk-HT4LP3BO.js.map +1 -0
  47. package/dist/chunk-I6LR6CPC.cjs +125 -0
  48. package/dist/chunk-I6LR6CPC.cjs.map +1 -0
  49. package/dist/chunk-IEYXQTUW.cjs +284 -0
  50. package/dist/chunk-IEYXQTUW.cjs.map +1 -0
  51. package/dist/{chunk-6IJWRJZE.js → chunk-KEXR53KI.js} +223 -34
  52. package/dist/chunk-KEXR53KI.js.map +1 -0
  53. package/dist/chunk-KPSSRYGH.js +234 -0
  54. package/dist/chunk-KPSSRYGH.js.map +1 -0
  55. package/dist/{chunk-SIGXR3JT.cjs → chunk-LPM6BBAX.cjs} +5 -5
  56. package/dist/{chunk-SIGXR3JT.cjs.map → chunk-LPM6BBAX.cjs.map} +1 -1
  57. package/dist/chunk-LQSZ4FJJ.cjs +205 -0
  58. package/dist/chunk-LQSZ4FJJ.cjs.map +1 -0
  59. package/dist/chunk-MCYD5LW7.cjs +90 -0
  60. package/dist/chunk-MCYD5LW7.cjs.map +1 -0
  61. package/dist/chunk-MQLS6Z7A.js +891 -0
  62. package/dist/chunk-MQLS6Z7A.js.map +1 -0
  63. package/dist/{chunk-EMMSS5I5.cjs → chunk-O7I5CWRX.cjs} +10 -3
  64. package/dist/{chunk-EMMSS5I5.cjs.map → chunk-O7I5CWRX.cjs.map} +1 -1
  65. package/dist/chunk-ONH4CRFW.js +1063 -0
  66. package/dist/chunk-ONH4CRFW.js.map +1 -0
  67. package/dist/{chunk-G3PMV62Z.js → chunk-PR4QN5HX.js} +10 -4
  68. package/dist/{chunk-G3PMV62Z.js.map → chunk-PR4QN5HX.js.map} +1 -1
  69. package/dist/chunk-PUFCKXFW.cjs +312 -0
  70. package/dist/chunk-PUFCKXFW.cjs.map +1 -0
  71. package/dist/chunk-QWZFPT6V.cjs +1107 -0
  72. package/dist/chunk-QWZFPT6V.cjs.map +1 -0
  73. package/dist/{chunk-NG5IVLEZ.js → chunk-RQK4FQUD.js} +3 -3
  74. package/dist/{chunk-NG5IVLEZ.js.map → chunk-RQK4FQUD.js.map} +1 -1
  75. package/dist/chunk-S3TIWWQL.cjs +322 -0
  76. package/dist/chunk-S3TIWWQL.cjs.map +1 -0
  77. package/dist/chunk-SRQY5IWD.js +204 -0
  78. package/dist/chunk-SRQY5IWD.js.map +1 -0
  79. package/dist/chunk-SXVANU23.js +164 -0
  80. package/dist/chunk-SXVANU23.js.map +1 -0
  81. package/dist/chunk-TYZ6ZISQ.cjs +368 -0
  82. package/dist/chunk-TYZ6ZISQ.cjs.map +1 -0
  83. package/dist/chunk-UWRAKVAJ.js +903 -0
  84. package/dist/chunk-UWRAKVAJ.js.map +1 -0
  85. package/dist/{chunk-CY4TP3FK.js → chunk-UXGQZUYZ.js} +3 -3
  86. package/dist/{chunk-CY4TP3FK.js.map → chunk-UXGQZUYZ.js.map} +1 -1
  87. package/dist/chunk-V272B7RM.cjs +255 -0
  88. package/dist/chunk-V272B7RM.cjs.map +1 -0
  89. package/dist/chunk-V3BW36SW.cjs +23268 -0
  90. package/dist/chunk-V3BW36SW.cjs.map +1 -0
  91. package/dist/{chunk-RE4RPXT2.cjs → chunk-V5WWQN7P.cjs} +4 -4
  92. package/dist/{chunk-RE4RPXT2.cjs.map → chunk-V5WWQN7P.cjs.map} +1 -1
  93. package/dist/{chunk-YWOK4F5A.js → chunk-WBLT2HL3.js} +21 -8
  94. package/dist/chunk-WBLT2HL3.js.map +1 -0
  95. package/dist/chunk-X43DWDXB.cjs +346 -0
  96. package/dist/chunk-X43DWDXB.cjs.map +1 -0
  97. package/dist/chunk-XQPJ63ZD.cjs +48 -0
  98. package/dist/chunk-XQPJ63ZD.cjs.map +1 -0
  99. package/dist/chunk-XW2HXQDO.js +302 -0
  100. package/dist/chunk-XW2HXQDO.js.map +1 -0
  101. package/dist/chunk-XWGAT2DA.js +44 -0
  102. package/dist/chunk-XWGAT2DA.js.map +1 -0
  103. package/dist/chunk-YP34EWWK.js +253 -0
  104. package/dist/chunk-YP34EWWK.js.map +1 -0
  105. package/dist/{chunk-6GMFZ5LK.js → chunk-ZULZ2752.js} +3 -3
  106. package/dist/{chunk-6GMFZ5LK.js.map → chunk-ZULZ2752.js.map} +1 -1
  107. package/dist/{dist-R3L5J3LL.cjs → dist-4MVGNSRL.cjs} +20 -20
  108. package/dist/{dist-R3L5J3LL.cjs.map → dist-4MVGNSRL.cjs.map} +1 -1
  109. package/dist/{dist-OC4J73ML.cjs → dist-FZYCV3VB.cjs} +26 -26
  110. package/dist/{dist-OC4J73ML.cjs.map → dist-FZYCV3VB.cjs.map} +1 -1
  111. package/dist/{dist-N6P7NYGX.cjs → dist-G2BYZJOC.cjs} +28 -28
  112. package/dist/{dist-N6P7NYGX.cjs.map → dist-G2BYZJOC.cjs.map} +1 -1
  113. package/dist/dist-P4MXBQ3U.cjs +16 -0
  114. package/dist/{dist-EZZMMMNT.cjs.map → dist-P4MXBQ3U.cjs.map} +1 -1
  115. package/dist/{dist-LKU3RRT2.js → dist-PQZUVLPC.js} +3 -3
  116. package/dist/{dist-LKU3RRT2.js.map → dist-PQZUVLPC.js.map} +1 -1
  117. package/dist/{dist-ZHCN47XA.js → dist-R7WYX6LC.js} +3 -3
  118. package/dist/{dist-ZHCN47XA.js.map → dist-R7WYX6LC.js.map} +1 -1
  119. package/dist/{dist-QI7RYOYQ.cjs → dist-RFMYFILX.cjs} +30 -30
  120. package/dist/{dist-QI7RYOYQ.cjs.map → dist-RFMYFILX.cjs.map} +1 -1
  121. package/dist/{dist-JNIWWFE5.js → dist-X7XR3M3Z.js} +3 -3
  122. package/dist/{dist-JNIWWFE5.js.map → dist-X7XR3M3Z.js.map} +1 -1
  123. package/dist/{dist-COC6WFAX.js → dist-XVBSOGFK.js} +3 -3
  124. package/dist/{dist-COC6WFAX.js.map → dist-XVBSOGFK.js.map} +1 -1
  125. package/dist/dist-YREX2TJT.js +3 -0
  126. package/dist/{dist-26HWEQY6.js.map → dist-YREX2TJT.js.map} +1 -1
  127. package/dist/server/auth/defaults.d.ts +3 -0
  128. package/dist/server/auth/defaults.d.ts.map +1 -0
  129. package/dist/server/auth/helpers.d.ts +14 -0
  130. package/dist/server/auth/helpers.d.ts.map +1 -0
  131. package/dist/server/auth/index.cjs +137 -0
  132. package/dist/server/auth/index.cjs.map +1 -0
  133. package/dist/server/auth/index.d.ts +3 -0
  134. package/dist/server/auth/index.d.ts.map +1 -0
  135. package/dist/server/auth/index.js +127 -0
  136. package/dist/server/auth/index.js.map +1 -0
  137. package/dist/server/handlers/a2a.cjs +15 -7
  138. package/dist/server/handlers/a2a.d.ts +492 -10
  139. package/dist/server/handlers/a2a.d.ts.map +1 -1
  140. package/dist/server/handlers/a2a.js +1 -1
  141. package/dist/server/handlers/agent-builder.cjs +43 -31
  142. package/dist/server/handlers/agent-builder.d.ts +599 -84
  143. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  144. package/dist/server/handlers/agent-builder.js +1 -1
  145. package/dist/server/handlers/agents.cjs +55 -39
  146. package/dist/server/handlers/agents.d.ts +3334 -191
  147. package/dist/server/handlers/agents.d.ts.map +1 -1
  148. package/dist/server/handlers/agents.js +1 -1
  149. package/dist/server/handlers/error.cjs +2 -2
  150. package/dist/server/handlers/error.js +1 -1
  151. package/dist/server/handlers/logs.cjs +7 -7
  152. package/dist/server/handlers/logs.d.ts +135 -27
  153. package/dist/server/handlers/logs.d.ts.map +1 -1
  154. package/dist/server/handlers/logs.js +1 -1
  155. package/dist/server/handlers/mcp.cjs +40 -0
  156. package/dist/server/handlers/mcp.cjs.map +1 -0
  157. package/dist/server/handlers/mcp.d.ts +110 -0
  158. package/dist/server/handlers/mcp.d.ts.map +1 -0
  159. package/dist/server/handlers/mcp.js +3 -0
  160. package/dist/server/handlers/mcp.js.map +1 -0
  161. package/dist/server/handlers/memory.cjs +63 -31
  162. package/dist/server/handlers/memory.d.ts +934 -103
  163. package/dist/server/handlers/memory.d.ts.map +1 -1
  164. package/dist/server/handlers/memory.js +1 -1
  165. package/dist/server/handlers/observability.cjs +24 -8
  166. package/dist/server/handlers/observability.d.ts +128 -21
  167. package/dist/server/handlers/observability.d.ts.map +1 -1
  168. package/dist/server/handlers/observability.js +1 -1
  169. package/dist/server/handlers/scores.cjs +13 -13
  170. package/dist/server/handlers/scores.d.ts +110 -240
  171. package/dist/server/handlers/scores.d.ts.map +1 -1
  172. package/dist/server/handlers/scores.js +1 -1
  173. package/dist/server/handlers/stored-agents.cjs +28 -0
  174. package/dist/server/handlers/stored-agents.cjs.map +1 -0
  175. package/dist/server/handlers/stored-agents.d.ts +289 -0
  176. package/dist/server/handlers/stored-agents.d.ts.map +1 -0
  177. package/dist/server/handlers/stored-agents.js +3 -0
  178. package/dist/server/handlers/stored-agents.js.map +1 -0
  179. package/dist/server/handlers/test-utils.cjs +15 -0
  180. package/dist/server/handlers/test-utils.cjs.map +1 -0
  181. package/dist/server/handlers/test-utils.d.ts +6 -0
  182. package/dist/server/handlers/test-utils.d.ts.map +1 -0
  183. package/dist/server/handlers/test-utils.js +13 -0
  184. package/dist/server/handlers/test-utils.js.map +1 -0
  185. package/dist/server/handlers/tools.cjs +11 -11
  186. package/dist/server/handlers/tools.d.ts +69 -23
  187. package/dist/server/handlers/tools.d.ts.map +1 -1
  188. package/dist/server/handlers/tools.js +1 -1
  189. package/dist/server/handlers/utils.cjs +11 -3
  190. package/dist/server/handlers/utils.d.ts +5 -0
  191. package/dist/server/handlers/utils.d.ts.map +1 -1
  192. package/dist/server/handlers/utils.js +1 -1
  193. package/dist/server/handlers/vector.cjs +31 -7
  194. package/dist/server/handlers/vector.d.ts +93 -9
  195. package/dist/server/handlers/vector.d.ts.map +1 -1
  196. package/dist/server/handlers/vector.js +1 -1
  197. package/dist/server/handlers/voice.cjs +21 -9
  198. package/dist/server/handlers/voice.d.ts +81 -40
  199. package/dist/server/handlers/voice.d.ts.map +1 -1
  200. package/dist/server/handlers/voice.js +1 -1
  201. package/dist/server/handlers/workflows.cjs +71 -35
  202. package/dist/server/handlers/workflows.d.ts +928 -80
  203. package/dist/server/handlers/workflows.d.ts.map +1 -1
  204. package/dist/server/handlers/workflows.js +1 -1
  205. package/dist/server/handlers.cjs +27 -32
  206. package/dist/server/handlers.d.ts +1 -2
  207. package/dist/server/handlers.d.ts.map +1 -1
  208. package/dist/server/handlers.js +12 -13
  209. package/dist/server/http-exception.d.ts +0 -5
  210. package/dist/server/http-exception.d.ts.map +1 -1
  211. package/dist/server/schemas/a2a.d.ts +786 -0
  212. package/dist/server/schemas/a2a.d.ts.map +1 -0
  213. package/dist/server/schemas/agent-builder.d.ts +204 -0
  214. package/dist/server/schemas/agent-builder.d.ts.map +1 -0
  215. package/dist/server/schemas/agents.d.ts +1401 -0
  216. package/dist/server/schemas/agents.d.ts.map +1 -0
  217. package/dist/server/schemas/common.d.ts +179 -0
  218. package/dist/server/schemas/common.d.ts.map +1 -0
  219. package/dist/server/schemas/logs.d.ts +124 -0
  220. package/dist/server/schemas/logs.d.ts.map +1 -0
  221. package/dist/server/schemas/mcp.d.ts +299 -0
  222. package/dist/server/schemas/mcp.d.ts.map +1 -0
  223. package/dist/server/schemas/memory.d.ts +998 -0
  224. package/dist/server/schemas/memory.d.ts.map +1 -0
  225. package/dist/server/schemas/observability.d.ts +402 -0
  226. package/dist/server/schemas/observability.d.ts.map +1 -0
  227. package/dist/server/schemas/scores.d.ts +259 -0
  228. package/dist/server/schemas/scores.d.ts.map +1 -0
  229. package/dist/server/schemas/stored-agents.d.ts +792 -0
  230. package/dist/server/schemas/stored-agents.d.ts.map +1 -0
  231. package/dist/server/schemas/vectors.d.ts +107 -0
  232. package/dist/server/schemas/vectors.d.ts.map +1 -0
  233. package/dist/server/schemas/workflows.d.ts +608 -0
  234. package/dist/server/schemas/workflows.d.ts.map +1 -0
  235. package/dist/server/server-adapter/index.cjs +485 -0
  236. package/dist/server/server-adapter/index.cjs.map +1 -0
  237. package/dist/server/server-adapter/index.d.ts +91 -0
  238. package/dist/server/server-adapter/index.d.ts.map +1 -0
  239. package/dist/server/server-adapter/index.js +470 -0
  240. package/dist/server/server-adapter/index.js.map +1 -0
  241. package/dist/server/server-adapter/openapi-utils.d.ts +59 -0
  242. package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
  243. package/dist/server/server-adapter/redact.d.ts +26 -0
  244. package/dist/server/server-adapter/redact.d.ts.map +1 -0
  245. package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
  246. package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
  247. package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
  248. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
  249. package/dist/server/server-adapter/routes/agents.d.ts +3 -0
  250. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
  251. package/dist/server/server-adapter/routes/index.d.ts +50 -0
  252. package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
  253. package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
  254. package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
  255. package/dist/server/server-adapter/routes/logs.d.ts +3 -0
  256. package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
  257. package/dist/server/server-adapter/routes/mcp.d.ts +9 -0
  258. package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -0
  259. package/dist/server/server-adapter/routes/memory.d.ts +3 -0
  260. package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
  261. package/dist/server/server-adapter/routes/observability.d.ts +3 -0
  262. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
  263. package/dist/server/server-adapter/routes/route-builder.d.ts +52 -0
  264. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
  265. package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
  266. package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
  267. package/dist/server/server-adapter/routes/stored-agents.d.ts +8 -0
  268. package/dist/server/server-adapter/routes/stored-agents.d.ts.map +1 -0
  269. package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
  270. package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
  271. package/dist/server/server-adapter/routes/tools.d.ts +3 -0
  272. package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
  273. package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
  274. package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
  275. package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
  276. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
  277. package/dist/server/utils.d.ts +4 -3
  278. package/dist/server/utils.d.ts.map +1 -1
  279. package/dist/token-GVZ7HRD7.js +62 -0
  280. package/dist/token-GVZ7HRD7.js.map +1 -0
  281. package/dist/token-JGA3ZWAN.js +61 -0
  282. package/dist/token-JGA3ZWAN.js.map +1 -0
  283. package/dist/token-VFONFWVS.cjs +64 -0
  284. package/dist/token-VFONFWVS.cjs.map +1 -0
  285. package/dist/token-ZOD6YIQ3.cjs +63 -0
  286. package/dist/token-ZOD6YIQ3.cjs.map +1 -0
  287. package/dist/token-util-7R2ZFIXO.js +7 -0
  288. package/dist/token-util-7R2ZFIXO.js.map +1 -0
  289. package/dist/token-util-BLJZJDBZ.cjs +9 -0
  290. package/dist/token-util-BLJZJDBZ.cjs.map +1 -0
  291. package/dist/token-util-VGZUWSNR.cjs +9 -0
  292. package/dist/token-util-VGZUWSNR.cjs.map +1 -0
  293. package/dist/token-util-VKTPZLSE.js +7 -0
  294. package/dist/token-util-VKTPZLSE.js.map +1 -0
  295. package/package.json +39 -11
  296. package/dist/chunk-4QCXUEAT.js +0 -25
  297. package/dist/chunk-4QCXUEAT.js.map +0 -1
  298. package/dist/chunk-4RRMWXQ2.js +0 -3522
  299. package/dist/chunk-4RRMWXQ2.js.map +0 -1
  300. package/dist/chunk-4VJG7FZK.cjs +0 -18023
  301. package/dist/chunk-4VJG7FZK.cjs.map +0 -1
  302. package/dist/chunk-52UP7DFT.cjs +0 -130
  303. package/dist/chunk-52UP7DFT.cjs.map +0 -1
  304. package/dist/chunk-6IJWRJZE.js.map +0 -1
  305. package/dist/chunk-A3AL7EWJ.js +0 -83
  306. package/dist/chunk-A3AL7EWJ.js.map +0 -1
  307. package/dist/chunk-BKCWZLEL.cjs +0 -197
  308. package/dist/chunk-BKCWZLEL.cjs.map +0 -1
  309. package/dist/chunk-BX5XPVO2.cjs +0 -676
  310. package/dist/chunk-BX5XPVO2.cjs.map +0 -1
  311. package/dist/chunk-FALVL2VV.cjs +0 -3525
  312. package/dist/chunk-FALVL2VV.cjs.map +0 -1
  313. package/dist/chunk-G4PUALCE.cjs +0 -28
  314. package/dist/chunk-G4PUALCE.cjs.map +0 -1
  315. package/dist/chunk-HCFCPUTA.cjs +0 -601
  316. package/dist/chunk-HCFCPUTA.cjs.map +0 -1
  317. package/dist/chunk-HFEPCQAR.js +0 -655
  318. package/dist/chunk-HFEPCQAR.js.map +0 -1
  319. package/dist/chunk-HVBBFCDH.cjs +0 -2321
  320. package/dist/chunk-HVBBFCDH.cjs.map +0 -1
  321. package/dist/chunk-JLPZWKPR.js +0 -582
  322. package/dist/chunk-JLPZWKPR.js.map +0 -1
  323. package/dist/chunk-JRDEOHAJ.js +0 -122
  324. package/dist/chunk-JRDEOHAJ.js.map +0 -1
  325. package/dist/chunk-KM7EJKXV.js +0 -160
  326. package/dist/chunk-KM7EJKXV.js.map +0 -1
  327. package/dist/chunk-KNGXRN26.cjs +0 -335
  328. package/dist/chunk-KNGXRN26.cjs.map +0 -1
  329. package/dist/chunk-KV6VHX4V.js +0 -160
  330. package/dist/chunk-KV6VHX4V.js.map +0 -1
  331. package/dist/chunk-LJFAAEU7.cjs +0 -167
  332. package/dist/chunk-LJFAAEU7.cjs.map +0 -1
  333. package/dist/chunk-MMROOK5J.js.map +0 -1
  334. package/dist/chunk-N7F33WAD.js +0 -2290
  335. package/dist/chunk-N7F33WAD.js.map +0 -1
  336. package/dist/chunk-NLWACBE7.cjs +0 -128
  337. package/dist/chunk-NLWACBE7.cjs.map +0 -1
  338. package/dist/chunk-OPI3FZYH.cjs.map +0 -1
  339. package/dist/chunk-OZLRIVC4.cjs +0 -588
  340. package/dist/chunk-OZLRIVC4.cjs.map +0 -1
  341. package/dist/chunk-PWTXZZTR.cjs +0 -165
  342. package/dist/chunk-PWTXZZTR.cjs.map +0 -1
  343. package/dist/chunk-SPLSYTYW.cjs +0 -88
  344. package/dist/chunk-SPLSYTYW.cjs.map +0 -1
  345. package/dist/chunk-SQY4T6EJ.js +0 -571
  346. package/dist/chunk-SQY4T6EJ.js.map +0 -1
  347. package/dist/chunk-T3TIA3O6.cjs +0 -131
  348. package/dist/chunk-T3TIA3O6.cjs.map +0 -1
  349. package/dist/chunk-TTHEEIZ3.js +0 -323
  350. package/dist/chunk-TTHEEIZ3.js.map +0 -1
  351. package/dist/chunk-VY4ENABS.cjs.map +0 -1
  352. package/dist/chunk-WHN4VX55.js +0 -123
  353. package/dist/chunk-WHN4VX55.js.map +0 -1
  354. package/dist/chunk-WUJLVNLU.js +0 -124
  355. package/dist/chunk-WUJLVNLU.js.map +0 -1
  356. package/dist/chunk-XJOYGRTN.js +0 -189
  357. package/dist/chunk-XJOYGRTN.js.map +0 -1
  358. package/dist/chunk-YGQ5F6E6.js +0 -17987
  359. package/dist/chunk-YGQ5F6E6.js.map +0 -1
  360. package/dist/chunk-YWOK4F5A.js.map +0 -1
  361. package/dist/dist-26HWEQY6.js +0 -3
  362. package/dist/dist-3DRD6USP.cjs +0 -1411
  363. package/dist/dist-3DRD6USP.cjs.map +0 -1
  364. package/dist/dist-7GVM5ZCS.js +0 -845
  365. package/dist/dist-7GVM5ZCS.js.map +0 -1
  366. package/dist/dist-CCDXEZDR.js +0 -1408
  367. package/dist/dist-CCDXEZDR.js.map +0 -1
  368. package/dist/dist-EZZMMMNT.cjs +0 -16
  369. package/dist/dist-H64VX6DE.js +0 -3
  370. package/dist/dist-H64VX6DE.js.map +0 -1
  371. package/dist/dist-H7RR3EXL.js +0 -2006
  372. package/dist/dist-H7RR3EXL.js.map +0 -1
  373. package/dist/dist-L76NFIWM.cjs +0 -934
  374. package/dist/dist-L76NFIWM.cjs.map +0 -1
  375. package/dist/dist-MQUZENT7.js +0 -931
  376. package/dist/dist-MQUZENT7.js.map +0 -1
  377. package/dist/dist-S3ILRJUH.cjs +0 -2013
  378. package/dist/dist-S3ILRJUH.cjs.map +0 -1
  379. package/dist/dist-WKYB3LTJ.cjs +0 -16
  380. package/dist/dist-WKYB3LTJ.cjs.map +0 -1
  381. package/dist/dist-WY4WSW7C.cjs +0 -849
  382. package/dist/dist-WY4WSW7C.cjs.map +0 -1
  383. package/dist/server/handlers/legacyWorkflows.cjs +0 -48
  384. package/dist/server/handlers/legacyWorkflows.cjs.map +0 -1
  385. package/dist/server/handlers/legacyWorkflows.d.ts +0 -59
  386. package/dist/server/handlers/legacyWorkflows.d.ts.map +0 -1
  387. package/dist/server/handlers/legacyWorkflows.js +0 -3
  388. package/dist/server/handlers/legacyWorkflows.js.map +0 -1
  389. package/dist/server/handlers/telemetry.cjs +0 -20
  390. package/dist/server/handlers/telemetry.cjs.map +0 -1
  391. package/dist/server/handlers/telemetry.d.ts +0 -33
  392. package/dist/server/handlers/telemetry.d.ts.map +0 -1
  393. package/dist/server/handlers/telemetry.js +0 -3
  394. package/dist/server/handlers/telemetry.js.map +0 -1
  395. package/dist/server/handlers/vNextNetwork.cjs +0 -220
  396. package/dist/server/handlers/vNextNetwork.cjs.map +0 -1
  397. package/dist/server/handlers/vNextNetwork.d.ts +0 -246
  398. package/dist/server/handlers/vNextNetwork.d.ts.map +0 -1
  399. package/dist/server/handlers/vNextNetwork.js +0 -213
  400. package/dist/server/handlers/vNextNetwork.js.map +0 -1
@@ -0,0 +1,302 @@
1
+ import { createCombinedPaginationSchema } from './chunk-HT4LP3BO.js';
2
+ import { createRoute } from './chunk-SXVANU23.js';
3
+ import { HTTPException } from './chunk-6QWQZI4Q.js';
4
+ import { __export } from './chunk-PR4QN5HX.js';
5
+ import { z } from 'zod';
6
+
7
+ // src/server/handlers/mcp.ts
8
+ var mcp_exports = {};
9
+ __export(mcp_exports, {
10
+ EXECUTE_MCP_SERVER_TOOL_ROUTE: () => EXECUTE_MCP_SERVER_TOOL_ROUTE,
11
+ GET_MCP_SERVER_DETAIL_ROUTE: () => GET_MCP_SERVER_DETAIL_ROUTE,
12
+ GET_MCP_SERVER_TOOL_DETAIL_ROUTE: () => GET_MCP_SERVER_TOOL_DETAIL_ROUTE,
13
+ LIST_MCP_SERVERS_ROUTE: () => LIST_MCP_SERVERS_ROUTE,
14
+ LIST_MCP_SERVER_TOOLS_ROUTE: () => LIST_MCP_SERVER_TOOLS_ROUTE,
15
+ MCP_HTTP_TRANSPORT_ROUTE: () => MCP_HTTP_TRANSPORT_ROUTE,
16
+ MCP_SSE_MESSAGES_ROUTE: () => MCP_SSE_MESSAGES_ROUTE,
17
+ MCP_SSE_TRANSPORT_ROUTE: () => MCP_SSE_TRANSPORT_ROUTE
18
+ });
19
+ var mcpServerIdPathParams = z.object({
20
+ serverId: z.string().describe("MCP server ID")
21
+ });
22
+ var mcpServerDetailPathParams = z.object({
23
+ id: z.string().describe("MCP server ID")
24
+ });
25
+ var mcpServerToolPathParams = z.object({
26
+ serverId: z.string().describe("MCP server ID"),
27
+ toolId: z.string().describe("Tool ID")
28
+ });
29
+ var executeToolBodySchema = z.object({
30
+ data: z.unknown().optional()
31
+ });
32
+ var listMcpServersQuerySchema = createCombinedPaginationSchema();
33
+ var getMcpServerDetailQuerySchema = z.object({
34
+ version: z.string().optional()
35
+ });
36
+ var versionDetailSchema = z.object({
37
+ version: z.string(),
38
+ release_date: z.string(),
39
+ is_latest: z.boolean()
40
+ });
41
+ var serverInfoSchema = z.object({
42
+ id: z.string(),
43
+ name: z.string(),
44
+ version_detail: versionDetailSchema
45
+ });
46
+ var listMcpServersResponseSchema = z.object({
47
+ servers: z.array(serverInfoSchema),
48
+ total_count: z.number(),
49
+ next: z.string().nullable()
50
+ });
51
+ var serverDetailSchema = z.object({
52
+ id: z.string(),
53
+ name: z.string(),
54
+ description: z.string().optional(),
55
+ version_detail: versionDetailSchema,
56
+ package_canonical: z.string().optional(),
57
+ packages: z.array(z.unknown()).optional(),
58
+ remotes: z.array(z.unknown()).optional()
59
+ });
60
+ var mcpToolInfoSchema = z.object({
61
+ name: z.string(),
62
+ description: z.string().optional(),
63
+ inputSchema: z.unknown(),
64
+ outputSchema: z.unknown().optional(),
65
+ toolType: z.string().optional()
66
+ });
67
+ var listMcpServerToolsResponseSchema = z.object({
68
+ tools: z.array(mcpToolInfoSchema)
69
+ });
70
+ var executeToolResponseSchema = z.object({
71
+ result: z.unknown()
72
+ });
73
+ z.object({
74
+ jsonrpc: z.literal("2.0"),
75
+ error: z.object({
76
+ code: z.number(),
77
+ message: z.string()
78
+ }),
79
+ id: z.null()
80
+ });
81
+
82
+ // src/server/handlers/mcp.ts
83
+ var LIST_MCP_SERVERS_ROUTE = createRoute({
84
+ method: "GET",
85
+ path: "/api/mcp/v0/servers",
86
+ responseType: "json",
87
+ queryParamSchema: listMcpServersQuerySchema,
88
+ responseSchema: listMcpServersResponseSchema,
89
+ summary: "List MCP servers",
90
+ description: "Returns a list of registered MCP servers with pagination support",
91
+ tags: ["MCP"],
92
+ handler: async ({
93
+ mastra,
94
+ page,
95
+ perPage,
96
+ limit,
97
+ offset
98
+ }) => {
99
+ if (!mastra || typeof mastra.listMCPServers !== "function") {
100
+ throw new HTTPException(500, { message: "Mastra instance or listMCPServers method not available" });
101
+ }
102
+ const servers = mastra.listMCPServers();
103
+ if (!servers) {
104
+ return { servers: [], total_count: 0, next: null };
105
+ }
106
+ const serverList = Object.values(servers);
107
+ const totalCount = serverList.length;
108
+ const useLegacyFormat = (limit !== void 0 || offset !== void 0) && page === void 0 && perPage === void 0;
109
+ const finalPerPage = perPage ?? limit;
110
+ let finalPage = page;
111
+ if (finalPage === void 0 && offset !== void 0 && finalPerPage !== void 0 && finalPerPage > 0) {
112
+ finalPage = Math.floor(offset / finalPerPage);
113
+ }
114
+ const actualOffset = finalPage !== void 0 && finalPerPage !== void 0 ? finalPage * finalPerPage : 0;
115
+ let paginatedServers = serverList;
116
+ let nextUrl = null;
117
+ if (finalPerPage !== void 0) {
118
+ paginatedServers = serverList.slice(actualOffset, actualOffset + finalPerPage);
119
+ if (actualOffset + finalPerPage < totalCount) {
120
+ const nextPage = (finalPage ?? 0) + 1;
121
+ if (useLegacyFormat) {
122
+ const nextOffset = actualOffset + finalPerPage;
123
+ nextUrl = `/api/mcp/v0/servers?limit=${finalPerPage}&offset=${nextOffset}`;
124
+ } else {
125
+ nextUrl = `/api/mcp/v0/servers?perPage=${finalPerPage}&page=${nextPage}`;
126
+ }
127
+ }
128
+ }
129
+ const serverInfoList = paginatedServers.map((server) => server.getServerInfo());
130
+ return {
131
+ servers: serverInfoList,
132
+ total_count: totalCount,
133
+ next: nextUrl
134
+ };
135
+ }
136
+ });
137
+ var GET_MCP_SERVER_DETAIL_ROUTE = createRoute({
138
+ method: "GET",
139
+ path: "/api/mcp/v0/servers/:id",
140
+ responseType: "json",
141
+ pathParamSchema: mcpServerDetailPathParams,
142
+ queryParamSchema: getMcpServerDetailQuerySchema,
143
+ responseSchema: serverDetailSchema,
144
+ summary: "Get MCP server details",
145
+ description: "Returns detailed information about a specific MCP server",
146
+ tags: ["MCP"],
147
+ handler: async ({ mastra, id, version }) => {
148
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
149
+ throw new HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
150
+ }
151
+ const server = mastra.getMCPServerById(id);
152
+ if (!server) {
153
+ throw new HTTPException(404, { message: `MCP server with ID '${id}' not found` });
154
+ }
155
+ const serverDetail = server.getServerDetail();
156
+ if (version && serverDetail.version_detail.version !== version) {
157
+ throw new HTTPException(404, {
158
+ message: `MCP server with ID '${id}' found, but not version '${version}'. Available version: ${serverDetail.version_detail.version}`
159
+ });
160
+ }
161
+ return serverDetail;
162
+ }
163
+ });
164
+ var LIST_MCP_SERVER_TOOLS_ROUTE = createRoute({
165
+ method: "GET",
166
+ path: "/api/mcp/:serverId/tools",
167
+ responseType: "json",
168
+ pathParamSchema: mcpServerIdPathParams,
169
+ responseSchema: listMcpServerToolsResponseSchema,
170
+ summary: "List MCP server tools",
171
+ description: "Returns a list of tools available on the specified MCP server",
172
+ tags: ["MCP"],
173
+ handler: async ({ mastra, serverId }) => {
174
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
175
+ throw new HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
176
+ }
177
+ const server = mastra.getMCPServerById(serverId);
178
+ if (!server) {
179
+ throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });
180
+ }
181
+ if (typeof server.getToolListInfo !== "function") {
182
+ throw new HTTPException(501, { message: `Server '${serverId}' cannot list tools in this way.` });
183
+ }
184
+ return server.getToolListInfo();
185
+ }
186
+ });
187
+ var GET_MCP_SERVER_TOOL_DETAIL_ROUTE = createRoute({
188
+ method: "GET",
189
+ path: "/api/mcp/:serverId/tools/:toolId",
190
+ responseType: "json",
191
+ pathParamSchema: mcpServerToolPathParams,
192
+ responseSchema: mcpToolInfoSchema,
193
+ summary: "Get MCP server tool details",
194
+ description: "Returns detailed information about a specific tool on the MCP server",
195
+ tags: ["MCP"],
196
+ handler: async ({ mastra, serverId, toolId }) => {
197
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
198
+ throw new HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
199
+ }
200
+ const server = mastra.getMCPServerById(serverId);
201
+ if (!server) {
202
+ throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });
203
+ }
204
+ if (typeof server.getToolInfo !== "function") {
205
+ throw new HTTPException(501, { message: `Server '${serverId}' cannot provide tool details in this way.` });
206
+ }
207
+ const toolInfo = server.getToolInfo(toolId);
208
+ if (!toolInfo) {
209
+ throw new HTTPException(404, { message: `Tool with ID '${toolId}' not found on MCP server '${serverId}'` });
210
+ }
211
+ return toolInfo;
212
+ }
213
+ });
214
+ var EXECUTE_MCP_SERVER_TOOL_ROUTE = createRoute({
215
+ method: "POST",
216
+ path: "/api/mcp/:serverId/tools/:toolId/execute",
217
+ responseType: "json",
218
+ pathParamSchema: mcpServerToolPathParams,
219
+ bodySchema: executeToolBodySchema,
220
+ responseSchema: executeToolResponseSchema,
221
+ summary: "Execute MCP server tool",
222
+ description: "Executes a tool on the specified MCP server with the provided arguments",
223
+ tags: ["MCP"],
224
+ handler: async ({
225
+ mastra,
226
+ serverId,
227
+ toolId,
228
+ data
229
+ }) => {
230
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
231
+ throw new HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
232
+ }
233
+ const server = mastra.getMCPServerById(serverId);
234
+ if (!server) {
235
+ throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });
236
+ }
237
+ if (typeof server.executeTool !== "function") {
238
+ throw new HTTPException(501, { message: `Server '${serverId}' cannot execute tools in this way.` });
239
+ }
240
+ const result = await server.executeTool(toolId, data);
241
+ return { result };
242
+ }
243
+ });
244
+ var MCP_HTTP_TRANSPORT_ROUTE = createRoute({
245
+ method: "ALL",
246
+ path: "/api/mcp/:serverId/mcp",
247
+ responseType: "mcp-http",
248
+ pathParamSchema: mcpServerIdPathParams,
249
+ summary: "MCP HTTP Transport",
250
+ description: "Streamable HTTP transport endpoint for MCP protocol communication",
251
+ tags: ["MCP"],
252
+ handler: async ({ mastra, serverId }) => {
253
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
254
+ throw new HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
255
+ }
256
+ const server = mastra.getMCPServerById(serverId);
257
+ if (!server) {
258
+ throw new HTTPException(404, { message: `MCP server '${serverId}' not found` });
259
+ }
260
+ return {
261
+ server,
262
+ httpPath: `/api/mcp/${serverId}/mcp`
263
+ };
264
+ }
265
+ });
266
+ var MCP_SSE_TRANSPORT_ROUTE = createRoute({
267
+ method: "ALL",
268
+ path: "/api/mcp/:serverId/sse",
269
+ responseType: "mcp-sse",
270
+ pathParamSchema: mcpServerIdPathParams,
271
+ summary: "MCP SSE Transport",
272
+ description: "SSE transport endpoint for MCP protocol communication",
273
+ tags: ["MCP"],
274
+ handler: async ({ mastra, serverId }) => {
275
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
276
+ throw new HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
277
+ }
278
+ const server = mastra.getMCPServerById(serverId);
279
+ if (!server) {
280
+ throw new HTTPException(404, { message: `MCP server '${serverId}' not found` });
281
+ }
282
+ return {
283
+ server,
284
+ ssePath: `/api/mcp/${serverId}/sse`,
285
+ messagePath: `/api/mcp/${serverId}/messages`
286
+ };
287
+ }
288
+ });
289
+ var MCP_SSE_MESSAGES_ROUTE = createRoute({
290
+ method: "POST",
291
+ path: "/api/mcp/:serverId/messages",
292
+ responseType: "mcp-sse",
293
+ pathParamSchema: mcpServerIdPathParams,
294
+ summary: "MCP SSE Messages",
295
+ description: "Message endpoint for SSE transport (posts messages to active SSE streams)",
296
+ tags: ["MCP"],
297
+ handler: MCP_SSE_TRANSPORT_ROUTE.handler
298
+ });
299
+
300
+ export { EXECUTE_MCP_SERVER_TOOL_ROUTE, GET_MCP_SERVER_DETAIL_ROUTE, GET_MCP_SERVER_TOOL_DETAIL_ROUTE, LIST_MCP_SERVERS_ROUTE, LIST_MCP_SERVER_TOOLS_ROUTE, MCP_HTTP_TRANSPORT_ROUTE, MCP_SSE_MESSAGES_ROUTE, MCP_SSE_TRANSPORT_ROUTE, mcp_exports };
301
+ //# sourceMappingURL=chunk-XW2HXQDO.js.map
302
+ //# sourceMappingURL=chunk-XW2HXQDO.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/mcp.ts","../src/server/schemas/mcp.ts"],"names":[],"mappings":"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","file":"chunk-XW2HXQDO.js","sourcesContent":["import type { MCPServerBase as MastraMCPServerImplementation, ServerInfo } 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} from '../schemas/mcp';\nimport type { ServerContext } from '../server-adapter';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\n// ============================================================================\n// Route Definitions (createRoute pattern for server adapters)\n// ============================================================================\n\nexport const LIST_MCP_SERVERS_ROUTE = createRoute({\n method: 'GET',\n path: '/api/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 handler: async ({\n mastra,\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) as MastraMCPServerImplementation[];\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 if (useLegacyFormat) {\n const nextOffset = actualOffset + finalPerPage;\n nextUrl = `/api/mcp/v0/servers?limit=${finalPerPage}&offset=${nextOffset}`;\n } else {\n nextUrl = `/api/mcp/v0/servers?perPage=${finalPerPage}&page=${nextPage}`;\n }\n }\n }\n\n // Get server info for each server\n const serverInfoList: ServerInfo[] = paginatedServers.map(server => server.getServerInfo());\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: '/api/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 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 = server.getServerDetail();\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: '/api/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 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.getToolListInfo !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot list tools in this way.` });\n }\n\n return server.getToolListInfo();\n },\n});\n\nexport const GET_MCP_SERVER_TOOL_DETAIL_ROUTE = createRoute({\n method: 'GET',\n path: '/api/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 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 = 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: '/api/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 handler: async ({\n mastra,\n serverId,\n toolId,\n data,\n }: ServerContext & { serverId: string; toolId: string; data?: unknown }) => {\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 const result = await server.executeTool(toolId, data);\n return { result };\n },\n});\n\n// ============================================================================\n// MCP Transport Routes (Streamable HTTP and SSE)\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\n/**\n * MCP SSE Transport response type.\n * Adapters use this to set up the SSE transport via MCPServer.startSSE() or startHonoSSE()\n */\nexport interface MCPSseTransportResult {\n server: MastraMCPServerImplementation;\n ssePath: string;\n messagePath: string;\n}\n\nexport const MCP_HTTP_TRANSPORT_ROUTE = createRoute({\n method: 'ALL',\n path: '/api/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 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: `/api/mcp/${serverId}/mcp`,\n };\n },\n});\n\nexport const MCP_SSE_TRANSPORT_ROUTE = createRoute({\n method: 'ALL',\n path: '/api/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 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 return {\n server,\n ssePath: `/api/mcp/${serverId}/sse`,\n messagePath: `/api/mcp/${serverId}/messages`,\n };\n },\n});\n\nexport const MCP_SSE_MESSAGES_ROUTE = createRoute({\n method: 'POST',\n path: '/api/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 handler: MCP_SSE_TRANSPORT_ROUTE.handler,\n});\n","import { z } from 'zod';\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});\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 serverInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n version_detail: versionDetailSchema,\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});\n\n// Tool schemas\nexport const mcpToolInfoSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n inputSchema: z.unknown(),\n outputSchema: z.unknown().optional(),\n toolType: z.string().optional(),\n});\n\nexport const listMcpServerToolsResponseSchema = z.object({\n tools: z.array(mcpToolInfoSchema),\n});\n\nexport const executeToolResponseSchema = z.object({\n result: z.unknown(),\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"]}
@@ -0,0 +1,44 @@
1
+ import { HTTPException } from './chunk-6QWQZI4Q.js';
2
+
3
+ // src/server/handlers/utils.ts
4
+ function validateBody(body) {
5
+ const errorResponse = Object.entries(body).reduce((acc, [key, value]) => {
6
+ if (!value) {
7
+ acc[key] = `Argument "${key}" is required`;
8
+ }
9
+ return acc;
10
+ }, {});
11
+ if (Object.keys(errorResponse).length > 0) {
12
+ throw new HTTPException(400, { message: Object.values(errorResponse)[0] });
13
+ }
14
+ }
15
+ function sanitizeBody(body, disallowedKeys) {
16
+ for (const key of disallowedKeys) {
17
+ if (key in body) {
18
+ delete body[key];
19
+ }
20
+ }
21
+ }
22
+ function parsePerPage(value, defaultValue = 100, max = 1e3) {
23
+ const normalized = (value || "").trim().toLowerCase();
24
+ if (normalized === "false") {
25
+ return false;
26
+ }
27
+ const parsed = parseInt(value || String(defaultValue), 10);
28
+ if (isNaN(parsed)) return defaultValue;
29
+ return Math.min(max, Math.max(1, parsed));
30
+ }
31
+ function parseFilters(filters) {
32
+ if (!filters) return void 0;
33
+ return Object.fromEntries(
34
+ (Array.isArray(filters) ? filters : [filters]).map((attr) => {
35
+ const [key, ...valueParts] = attr.split(":");
36
+ const value = valueParts.join(":");
37
+ return [key, value];
38
+ })
39
+ );
40
+ }
41
+
42
+ export { parseFilters, parsePerPage, sanitizeBody, validateBody };
43
+ //# sourceMappingURL=chunk-XWGAT2DA.js.map
44
+ //# sourceMappingURL=chunk-XWGAT2DA.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/utils.ts"],"names":[],"mappings":";;;AAGO,SAAS,aAAa,IAAA,EAA+B;AAC1D,EAAA,MAAM,aAAA,GAAgB,MAAA,CAAO,OAAA,CAAQ,IAAI,CAAA,CAAE,MAAA,CAA+B,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,KAAK,CAAA,KAAM;AAC/F,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,GAAA,CAAI,GAAG,CAAA,GAAI,CAAA,UAAA,EAAa,GAAG,CAAA,aAAA,CAAA;AAAA,IAC7B;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAI,MAAA,CAAO,IAAA,CAAK,aAAa,CAAA,CAAE,SAAS,CAAA,EAAG;AACzC,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,MAAA,CAAO,MAAA,CAAO,aAAa,CAAA,CAAE,CAAC,CAAA,EAAG,CAAA;AAAA,EAC3E;AACF;AAOO,SAAS,YAAA,CAAa,MAA+B,cAAA,EAA0B;AACpF,EAAA,KAAA,MAAW,OAAO,cAAA,EAAgB;AAChC,IAAA,IAAI,OAAO,IAAA,EAAM;AACf,MAAA,OAAO,KAAK,GAAG,CAAA;AAAA,IACjB;AAAA,EACF;AACF;AAEO,SAAS,YAAA,CACd,KAAA,EACA,YAAA,GAAuB,GAAA,EACvB,MAAc,GAAA,EACE;AAChB,EAAA,MAAM,UAAA,GAAA,CAAc,KAAA,IAAS,EAAA,EAAI,IAAA,GAAO,WAAA,EAAY;AAEpD,EAAA,IAAI,eAAe,OAAA,EAAS;AAC1B,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,MAAM,SAAS,QAAA,CAAS,KAAA,IAAS,MAAA,CAAO,YAAY,GAAG,EAAE,CAAA;AACzD,EAAA,IAAI,KAAA,CAAM,MAAM,CAAA,EAAG,OAAO,YAAA;AAC1B,EAAA,OAAO,KAAK,GAAA,CAAI,GAAA,EAAK,KAAK,GAAA,CAAI,CAAA,EAAG,MAAM,CAAC,CAAA;AAC1C;AAKO,SAAS,aAAa,OAAA,EAA4E;AACvG,EAAA,IAAI,CAAC,SAAS,OAAO,MAAA;AAErB,EAAA,OAAO,MAAA,CAAO,WAAA;AAAA,IAAA,CACX,KAAA,CAAM,OAAA,CAAQ,OAAO,CAAA,GAAI,OAAA,GAAU,CAAC,OAAO,CAAA,EAAG,GAAA,CAAI,CAAC,IAAA,KAAiB;AACnE,MAAA,MAAM,CAAC,GAAA,EAAK,GAAG,UAAU,CAAA,GAAI,IAAA,CAAK,MAAM,GAAG,CAAA;AAC3C,MAAA,MAAM,KAAA,GAAQ,UAAA,CAAW,IAAA,CAAK,GAAG,CAAA;AACjC,MAAA,OAAO,CAAC,KAAK,KAAK,CAAA;AAAA,IACpB,CAAC;AAAA,GACH;AACF","file":"chunk-XWGAT2DA.js","sourcesContent":["import { HTTPException } from '../http-exception';\n\n// Validation helper\nexport function validateBody(body: Record<string, unknown>) {\n const errorResponse = Object.entries(body).reduce<Record<string, string>>((acc, [key, value]) => {\n if (!value) {\n acc[key] = `Argument \"${key}\" is required`;\n }\n return acc;\n }, {});\n\n if (Object.keys(errorResponse).length > 0) {\n throw new HTTPException(400, { message: Object.values(errorResponse)[0] });\n }\n}\n\n/**\n * sanitizes the body by removing disallowed keys.\n * @param body body to sanitize\n * @param disallowedKeys keys to remove from the body\n */\nexport function sanitizeBody(body: Record<string, unknown>, disallowedKeys: string[]) {\n for (const key of disallowedKeys) {\n if (key in body) {\n delete body[key];\n }\n }\n}\n\nexport function parsePerPage(\n value: string | undefined,\n defaultValue: number = 100,\n max: number = 1000,\n): number | false {\n const normalized = (value || '').trim().toLowerCase();\n // Handle explicit false to bypass pagination\n if (normalized === 'false') {\n return false;\n }\n const parsed = parseInt(value || String(defaultValue), 10);\n if (isNaN(parsed)) return defaultValue;\n return Math.min(max, Math.max(1, parsed));\n}\n\n/**\n * Parses filter query parameters into a key-value object.\n */\nexport function parseFilters(filters: string | string[] | undefined): Record<string, string> | undefined {\n if (!filters) return undefined;\n\n return Object.fromEntries(\n (Array.isArray(filters) ? filters : [filters]).map((attr: string) => {\n const [key, ...valueParts] = attr.split(':');\n const value = valueParts.join(':'); // ✅ Handles colons in values\n return [key, value];\n }),\n );\n}\n"]}
@@ -0,0 +1,253 @@
1
+ import { require_token_error } from './chunk-ER3QM7DD.js';
2
+ import { __commonJS, __require } from './chunk-PR4QN5HX.js';
3
+
4
+ // ../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-io.js
5
+ var require_token_io = __commonJS({
6
+ "../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-io.js"(exports, module) {
7
+ var __create = Object.create;
8
+ var __defProp = Object.defineProperty;
9
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
10
+ var __getOwnPropNames = Object.getOwnPropertyNames;
11
+ var __getProtoOf = Object.getPrototypeOf;
12
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
13
+ var __export = (target, all) => {
14
+ for (var name in all)
15
+ __defProp(target, name, { get: all[name], enumerable: true });
16
+ };
17
+ var __copyProps = (to, from, except, desc) => {
18
+ if (from && typeof from === "object" || typeof from === "function") {
19
+ for (let key of __getOwnPropNames(from))
20
+ if (!__hasOwnProp.call(to, key) && key !== except)
21
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
22
+ }
23
+ return to;
24
+ };
25
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
26
+ // If the importer is in node compatibility mode or this is not an ESM
27
+ // file that has been converted to a CommonJS file using a Babel-
28
+ // compatible transform (i.e. "__esModule" has not been set), then set
29
+ // "default" to the CommonJS "module.exports" for node compatibility.
30
+ !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
31
+ mod
32
+ ));
33
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
34
+ var token_io_exports = {};
35
+ __export(token_io_exports, {
36
+ findRootDir: () => findRootDir,
37
+ getUserDataDir: () => getUserDataDir
38
+ });
39
+ module.exports = __toCommonJS(token_io_exports);
40
+ var import_path = __toESM(__require("path"));
41
+ var import_fs = __toESM(__require("fs"));
42
+ var import_os = __toESM(__require("os"));
43
+ var import_token_error = require_token_error();
44
+ function findRootDir() {
45
+ try {
46
+ let dir = process.cwd();
47
+ while (dir !== import_path.default.dirname(dir)) {
48
+ const pkgPath = import_path.default.join(dir, ".vercel");
49
+ if (import_fs.default.existsSync(pkgPath)) {
50
+ return dir;
51
+ }
52
+ dir = import_path.default.dirname(dir);
53
+ }
54
+ } catch (e) {
55
+ throw new import_token_error.VercelOidcTokenError(
56
+ "Token refresh only supported in node server environments"
57
+ );
58
+ }
59
+ throw new import_token_error.VercelOidcTokenError("Unable to find root directory");
60
+ }
61
+ function getUserDataDir() {
62
+ if (process.env.XDG_DATA_HOME) {
63
+ return process.env.XDG_DATA_HOME;
64
+ }
65
+ switch (import_os.default.platform()) {
66
+ case "darwin":
67
+ return import_path.default.join(import_os.default.homedir(), "Library/Application Support");
68
+ case "linux":
69
+ return import_path.default.join(import_os.default.homedir(), ".local/share");
70
+ case "win32":
71
+ if (process.env.LOCALAPPDATA) {
72
+ return process.env.LOCALAPPDATA;
73
+ }
74
+ return null;
75
+ default:
76
+ return null;
77
+ }
78
+ }
79
+ }
80
+ });
81
+
82
+ // ../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-util.js
83
+ var require_token_util = __commonJS({
84
+ "../../node_modules/.pnpm/@vercel+oidc@3.0.5/node_modules/@vercel/oidc/dist/token-util.js"(exports, module) {
85
+ var __create = Object.create;
86
+ var __defProp = Object.defineProperty;
87
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
88
+ var __getOwnPropNames = Object.getOwnPropertyNames;
89
+ var __getProtoOf = Object.getPrototypeOf;
90
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
91
+ var __export = (target, all) => {
92
+ for (var name in all)
93
+ __defProp(target, name, { get: all[name], enumerable: true });
94
+ };
95
+ var __copyProps = (to, from, except, desc) => {
96
+ if (from && typeof from === "object" || typeof from === "function") {
97
+ for (let key of __getOwnPropNames(from))
98
+ if (!__hasOwnProp.call(to, key) && key !== except)
99
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
100
+ }
101
+ return to;
102
+ };
103
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
104
+ // If the importer is in node compatibility mode or this is not an ESM
105
+ // file that has been converted to a CommonJS file using a Babel-
106
+ // compatible transform (i.e. "__esModule" has not been set), then set
107
+ // "default" to the CommonJS "module.exports" for node compatibility.
108
+ !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
109
+ mod
110
+ ));
111
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
112
+ var token_util_exports = {};
113
+ __export(token_util_exports, {
114
+ assertVercelOidcTokenResponse: () => assertVercelOidcTokenResponse,
115
+ findProjectInfo: () => findProjectInfo,
116
+ getTokenPayload: () => getTokenPayload,
117
+ getVercelCliToken: () => getVercelCliToken,
118
+ getVercelDataDir: () => getVercelDataDir,
119
+ getVercelOidcToken: () => getVercelOidcToken,
120
+ isExpired: () => isExpired,
121
+ loadToken: () => loadToken,
122
+ saveToken: () => saveToken
123
+ });
124
+ module.exports = __toCommonJS(token_util_exports);
125
+ var path = __toESM(__require("path"));
126
+ var fs = __toESM(__require("fs"));
127
+ var import_token_error = require_token_error();
128
+ var import_token_io = require_token_io();
129
+ function getVercelDataDir() {
130
+ const vercelFolder = "com.vercel.cli";
131
+ const dataDir = (0, import_token_io.getUserDataDir)();
132
+ if (!dataDir) {
133
+ return null;
134
+ }
135
+ return path.join(dataDir, vercelFolder);
136
+ }
137
+ function getVercelCliToken() {
138
+ const dataDir = getVercelDataDir();
139
+ if (!dataDir) {
140
+ return null;
141
+ }
142
+ const tokenPath = path.join(dataDir, "auth.json");
143
+ if (!fs.existsSync(tokenPath)) {
144
+ return null;
145
+ }
146
+ const token = fs.readFileSync(tokenPath, "utf8");
147
+ if (!token) {
148
+ return null;
149
+ }
150
+ return JSON.parse(token).token;
151
+ }
152
+ async function getVercelOidcToken(authToken, projectId, teamId) {
153
+ try {
154
+ const url = `https://api.vercel.com/v1/projects/${projectId}/token?source=vercel-oidc-refresh${teamId ? `&teamId=${teamId}` : ""}`;
155
+ const res = await fetch(url, {
156
+ method: "POST",
157
+ headers: {
158
+ Authorization: `Bearer ${authToken}`
159
+ }
160
+ });
161
+ if (!res.ok) {
162
+ throw new import_token_error.VercelOidcTokenError(
163
+ `Failed to refresh OIDC token: ${res.statusText}`
164
+ );
165
+ }
166
+ const tokenRes = await res.json();
167
+ assertVercelOidcTokenResponse(tokenRes);
168
+ return tokenRes;
169
+ } catch (e) {
170
+ throw new import_token_error.VercelOidcTokenError(`Failed to refresh OIDC token`, e);
171
+ }
172
+ }
173
+ function assertVercelOidcTokenResponse(res) {
174
+ if (!res || typeof res !== "object") {
175
+ throw new TypeError("Expected an object");
176
+ }
177
+ if (!("token" in res) || typeof res.token !== "string") {
178
+ throw new TypeError("Expected a string-valued token property");
179
+ }
180
+ }
181
+ function findProjectInfo() {
182
+ const dir = (0, import_token_io.findRootDir)();
183
+ if (!dir) {
184
+ throw new import_token_error.VercelOidcTokenError("Unable to find root directory");
185
+ }
186
+ try {
187
+ const prjPath = path.join(dir, ".vercel", "project.json");
188
+ if (!fs.existsSync(prjPath)) {
189
+ throw new import_token_error.VercelOidcTokenError("project.json not found");
190
+ }
191
+ const prj = JSON.parse(fs.readFileSync(prjPath, "utf8"));
192
+ if (typeof prj.projectId !== "string" && typeof prj.orgId !== "string") {
193
+ throw new TypeError("Expected a string-valued projectId property");
194
+ }
195
+ return { projectId: prj.projectId, teamId: prj.orgId };
196
+ } catch (e) {
197
+ throw new import_token_error.VercelOidcTokenError(`Unable to find project ID`, e);
198
+ }
199
+ }
200
+ function saveToken(token, projectId) {
201
+ try {
202
+ const dir = (0, import_token_io.getUserDataDir)();
203
+ if (!dir) {
204
+ throw new import_token_error.VercelOidcTokenError("Unable to find user data directory");
205
+ }
206
+ const tokenPath = path.join(dir, "com.vercel.token", `${projectId}.json`);
207
+ const tokenJson = JSON.stringify(token);
208
+ fs.mkdirSync(path.dirname(tokenPath), { mode: 504, recursive: true });
209
+ fs.writeFileSync(tokenPath, tokenJson);
210
+ fs.chmodSync(tokenPath, 432);
211
+ return;
212
+ } catch (e) {
213
+ throw new import_token_error.VercelOidcTokenError(`Failed to save token`, e);
214
+ }
215
+ }
216
+ function loadToken(projectId) {
217
+ try {
218
+ const dir = (0, import_token_io.getUserDataDir)();
219
+ if (!dir) {
220
+ return null;
221
+ }
222
+ const tokenPath = path.join(dir, "com.vercel.token", `${projectId}.json`);
223
+ if (!fs.existsSync(tokenPath)) {
224
+ return null;
225
+ }
226
+ const token = JSON.parse(fs.readFileSync(tokenPath, "utf8"));
227
+ assertVercelOidcTokenResponse(token);
228
+ return token;
229
+ } catch (e) {
230
+ throw new import_token_error.VercelOidcTokenError(`Failed to load token`, e);
231
+ }
232
+ }
233
+ function getTokenPayload(token) {
234
+ const tokenParts = token.split(".");
235
+ if (tokenParts.length !== 3) {
236
+ throw new import_token_error.VercelOidcTokenError("Invalid token");
237
+ }
238
+ const base64 = tokenParts[1].replace(/-/g, "+").replace(/_/g, "/");
239
+ const padded = base64.padEnd(
240
+ base64.length + (4 - base64.length % 4) % 4,
241
+ "="
242
+ );
243
+ return JSON.parse(Buffer.from(padded, "base64").toString("utf8"));
244
+ }
245
+ function isExpired(token) {
246
+ return token.exp * 1e3 < Date.now();
247
+ }
248
+ }
249
+ });
250
+
251
+ export { require_token_util };
252
+ //# sourceMappingURL=chunk-YP34EWWK.js.map
253
+ //# sourceMappingURL=chunk-YP34EWWK.js.map