@mastra/server 1.0.0-beta.4 → 1.0.0-beta.6

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 (287) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/dist/chunk-2NW6POYK.cjs +89 -0
  3. package/dist/chunk-2NW6POYK.cjs.map +1 -0
  4. package/dist/chunk-4W2SM6CG.js +294 -0
  5. package/dist/chunk-4W2SM6CG.js.map +1 -0
  6. package/dist/chunk-5772SXSK.cjs +1065 -0
  7. package/dist/chunk-5772SXSK.cjs.map +1 -0
  8. package/dist/chunk-5W4RPVTK.cjs +49 -0
  9. package/dist/chunk-5W4RPVTK.cjs.map +1 -0
  10. package/dist/chunk-777BJH4Z.cjs +801 -0
  11. package/dist/chunk-777BJH4Z.cjs.map +1 -0
  12. package/dist/chunk-7MKJBWFB.js +328 -0
  13. package/dist/chunk-7MKJBWFB.js.map +1 -0
  14. package/dist/chunk-B4UYPCEY.js +1022 -0
  15. package/dist/chunk-B4UYPCEY.js.map +1 -0
  16. package/dist/chunk-C36PTNGG.js +310 -0
  17. package/dist/chunk-C36PTNGG.js.map +1 -0
  18. package/dist/chunk-CLRYA4BH.cjs +125 -0
  19. package/dist/chunk-CLRYA4BH.cjs.map +1 -0
  20. package/dist/{chunk-FPBYKMIS.js → chunk-CQDHE64H.js} +213 -24
  21. package/dist/chunk-CQDHE64H.js.map +1 -0
  22. package/dist/{chunk-TOCYBDP2.js → chunk-ER3QM7DD.js} +4 -4
  23. package/dist/{chunk-TOCYBDP2.js.map → chunk-ER3QM7DD.js.map} +1 -1
  24. package/dist/chunk-FCCK5TSS.js +116 -0
  25. package/dist/chunk-FCCK5TSS.js.map +1 -0
  26. package/dist/chunk-FPCGLPLJ.cjs +297 -0
  27. package/dist/chunk-FPCGLPLJ.cjs.map +1 -0
  28. package/dist/{chunk-D7T74TVR.js → chunk-G7BPNX2V.js} +4 -3
  29. package/dist/chunk-G7BPNX2V.js.map +1 -0
  30. package/dist/chunk-H2RMXG2Q.cjs +167 -0
  31. package/dist/chunk-H2RMXG2Q.cjs.map +1 -0
  32. package/dist/chunk-IO7XB4XH.cjs +23258 -0
  33. package/dist/chunk-IO7XB4XH.cjs.map +1 -0
  34. package/dist/chunk-MK6GBMKE.js +23216 -0
  35. package/dist/chunk-MK6GBMKE.js.map +1 -0
  36. package/dist/chunk-MWQQRVQC.cjs +259 -0
  37. package/dist/chunk-MWQQRVQC.cjs.map +1 -0
  38. package/dist/chunk-ORJBWSYB.js +196 -0
  39. package/dist/chunk-ORJBWSYB.js.map +1 -0
  40. package/dist/chunk-OSLIOPFU.js +777 -0
  41. package/dist/chunk-OSLIOPFU.js.map +1 -0
  42. package/dist/chunk-PKRHEXX7.js +74 -0
  43. package/dist/chunk-PKRHEXX7.js.map +1 -0
  44. package/dist/chunk-QCW6WANZ.cjs +296 -0
  45. package/dist/chunk-QCW6WANZ.cjs.map +1 -0
  46. package/dist/chunk-QS23OV2B.cjs +916 -0
  47. package/dist/chunk-QS23OV2B.cjs.map +1 -0
  48. package/dist/chunk-R4M3BSUG.js +226 -0
  49. package/dist/chunk-R4M3BSUG.js.map +1 -0
  50. package/dist/{chunk-KJIDZQRA.cjs → chunk-SNPELBJA.cjs} +219 -24
  51. package/dist/chunk-SNPELBJA.cjs.map +1 -0
  52. package/dist/chunk-SWIK2QSP.cjs +346 -0
  53. package/dist/chunk-SWIK2QSP.cjs.map +1 -0
  54. package/dist/chunk-SXVANU23.js +164 -0
  55. package/dist/chunk-SXVANU23.js.map +1 -0
  56. package/dist/chunk-TIX6M3ZD.js +354 -0
  57. package/dist/chunk-TIX6M3ZD.js.map +1 -0
  58. package/dist/chunk-TOUBNMVI.cjs +322 -0
  59. package/dist/chunk-TOUBNMVI.cjs.map +1 -0
  60. package/dist/chunk-TT25WHVT.cjs +368 -0
  61. package/dist/chunk-TT25WHVT.cjs.map +1 -0
  62. package/dist/chunk-UPY7WWRA.cjs +205 -0
  63. package/dist/chunk-UPY7WWRA.cjs.map +1 -0
  64. package/dist/{chunk-W2KMU354.cjs → chunk-UZ6CYAOG.cjs} +4 -3
  65. package/dist/chunk-UZ6CYAOG.cjs.map +1 -0
  66. package/dist/{chunk-QU6N55W6.cjs → chunk-V272B7RM.cjs} +11 -12
  67. package/dist/chunk-V272B7RM.cjs.map +1 -0
  68. package/dist/chunk-VJVDLNFK.js +286 -0
  69. package/dist/chunk-VJVDLNFK.js.map +1 -0
  70. package/dist/chunk-WISPJOEJ.js +887 -0
  71. package/dist/chunk-WISPJOEJ.js.map +1 -0
  72. package/dist/chunk-XMKZWHVG.js +204 -0
  73. package/dist/chunk-XMKZWHVG.js.map +1 -0
  74. package/dist/{chunk-X6C7BUWN.cjs → chunk-XQPJ63ZD.cjs} +4 -4
  75. package/dist/{chunk-X6C7BUWN.cjs.map → chunk-XQPJ63ZD.cjs.map} +1 -1
  76. package/dist/chunk-XWGAT2DA.js +44 -0
  77. package/dist/chunk-XWGAT2DA.js.map +1 -0
  78. package/dist/{chunk-SHWNNZBL.js → chunk-YP34EWWK.js} +9 -10
  79. package/dist/chunk-YP34EWWK.js.map +1 -0
  80. package/dist/chunk-Z4GN2JAO.cjs +211 -0
  81. package/dist/chunk-Z4GN2JAO.cjs.map +1 -0
  82. package/dist/server/auth/defaults.d.ts +3 -0
  83. package/dist/server/auth/defaults.d.ts.map +1 -0
  84. package/dist/server/auth/helpers.d.ts +14 -0
  85. package/dist/server/auth/helpers.d.ts.map +1 -0
  86. package/dist/server/auth/index.cjs +137 -0
  87. package/dist/server/auth/index.cjs.map +1 -0
  88. package/dist/server/auth/index.d.ts +3 -0
  89. package/dist/server/auth/index.d.ts.map +1 -0
  90. package/dist/server/auth/index.js +127 -0
  91. package/dist/server/auth/index.js.map +1 -0
  92. package/dist/server/handlers/a2a.cjs +15 -7
  93. package/dist/server/handlers/a2a.d.ts +482 -0
  94. package/dist/server/handlers/a2a.d.ts.map +1 -1
  95. package/dist/server/handlers/a2a.js +1 -1
  96. package/dist/server/handlers/agent-builder.cjs +37 -37
  97. package/dist/server/handlers/agent-builder.d.ts +615 -77
  98. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  99. package/dist/server/handlers/agent-builder.js +1 -1
  100. package/dist/server/handlers/agents.cjs +53 -37
  101. package/dist/server/handlers/agents.d.ts +3271 -125
  102. package/dist/server/handlers/agents.d.ts.map +1 -1
  103. package/dist/server/handlers/agents.js +1 -1
  104. package/dist/server/handlers/logs.cjs +7 -7
  105. package/dist/server/handlers/logs.d.ts +135 -27
  106. package/dist/server/handlers/logs.d.ts.map +1 -1
  107. package/dist/server/handlers/logs.js +1 -1
  108. package/dist/server/handlers/mcp.cjs +40 -0
  109. package/dist/server/handlers/mcp.cjs.map +1 -0
  110. package/dist/server/handlers/mcp.d.ts +108 -0
  111. package/dist/server/handlers/mcp.d.ts.map +1 -0
  112. package/dist/server/handlers/mcp.js +3 -0
  113. package/dist/server/handlers/mcp.js.map +1 -0
  114. package/dist/server/handlers/memory.cjs +65 -29
  115. package/dist/server/handlers/memory.d.ts +932 -96
  116. package/dist/server/handlers/memory.d.ts.map +1 -1
  117. package/dist/server/handlers/memory.js +1 -1
  118. package/dist/server/handlers/observability.cjs +21 -5
  119. package/dist/server/handlers/observability.d.ts +119 -12
  120. package/dist/server/handlers/observability.d.ts.map +1 -1
  121. package/dist/server/handlers/observability.js +1 -1
  122. package/dist/server/handlers/scores.cjs +13 -13
  123. package/dist/server/handlers/scores.d.ts +110 -141
  124. package/dist/server/handlers/scores.d.ts.map +1 -1
  125. package/dist/server/handlers/scores.js +1 -1
  126. package/dist/server/handlers/test-utils.cjs +15 -0
  127. package/dist/server/handlers/test-utils.cjs.map +1 -0
  128. package/dist/server/handlers/test-utils.d.ts +6 -0
  129. package/dist/server/handlers/test-utils.d.ts.map +1 -0
  130. package/dist/server/handlers/test-utils.js +13 -0
  131. package/dist/server/handlers/test-utils.js.map +1 -0
  132. package/dist/server/handlers/tools.cjs +11 -11
  133. package/dist/server/handlers/tools.d.ts +69 -23
  134. package/dist/server/handlers/tools.d.ts.map +1 -1
  135. package/dist/server/handlers/tools.js +1 -1
  136. package/dist/server/handlers/utils.cjs +11 -3
  137. package/dist/server/handlers/utils.d.ts +5 -0
  138. package/dist/server/handlers/utils.d.ts.map +1 -1
  139. package/dist/server/handlers/utils.js +1 -1
  140. package/dist/server/handlers/vector.cjs +31 -7
  141. package/dist/server/handlers/vector.d.ts +93 -9
  142. package/dist/server/handlers/vector.d.ts.map +1 -1
  143. package/dist/server/handlers/vector.js +1 -1
  144. package/dist/server/handlers/voice.cjs +21 -9
  145. package/dist/server/handlers/voice.d.ts +81 -40
  146. package/dist/server/handlers/voice.d.ts.map +1 -1
  147. package/dist/server/handlers/voice.js +1 -1
  148. package/dist/server/handlers/workflows.cjs +65 -37
  149. package/dist/server/handlers/workflows.d.ts +934 -79
  150. package/dist/server/handlers/workflows.d.ts.map +1 -1
  151. package/dist/server/handlers/workflows.js +1 -1
  152. package/dist/server/handlers.cjs +36 -31
  153. package/dist/server/handlers.d.ts +1 -0
  154. package/dist/server/handlers.d.ts.map +1 -1
  155. package/dist/server/handlers.js +12 -11
  156. package/dist/server/schemas/a2a.d.ts +786 -0
  157. package/dist/server/schemas/a2a.d.ts.map +1 -0
  158. package/dist/server/schemas/agent-builder.d.ts +204 -0
  159. package/dist/server/schemas/agent-builder.d.ts.map +1 -0
  160. package/dist/server/schemas/agents.d.ts +1375 -0
  161. package/dist/server/schemas/agents.d.ts.map +1 -0
  162. package/dist/server/schemas/common.d.ts +165 -0
  163. package/dist/server/schemas/common.d.ts.map +1 -0
  164. package/dist/server/schemas/logs.d.ts +124 -0
  165. package/dist/server/schemas/logs.d.ts.map +1 -0
  166. package/dist/server/schemas/mcp.d.ts +293 -0
  167. package/dist/server/schemas/mcp.d.ts.map +1 -0
  168. package/dist/server/schemas/memory.d.ts +998 -0
  169. package/dist/server/schemas/memory.d.ts.map +1 -0
  170. package/dist/server/schemas/observability.d.ts +402 -0
  171. package/dist/server/schemas/observability.d.ts.map +1 -0
  172. package/dist/server/schemas/scores.d.ts +259 -0
  173. package/dist/server/schemas/scores.d.ts.map +1 -0
  174. package/dist/server/schemas/vectors.d.ts +107 -0
  175. package/dist/server/schemas/vectors.d.ts.map +1 -0
  176. package/dist/server/schemas/workflows.d.ts +617 -0
  177. package/dist/server/schemas/workflows.d.ts.map +1 -0
  178. package/dist/server/server-adapter/index.cjs +472 -0
  179. package/dist/server/server-adapter/index.cjs.map +1 -0
  180. package/dist/server/server-adapter/index.d.ts +95 -0
  181. package/dist/server/server-adapter/index.d.ts.map +1 -0
  182. package/dist/server/server-adapter/index.js +457 -0
  183. package/dist/server/server-adapter/index.js.map +1 -0
  184. package/dist/server/server-adapter/openapi-utils.d.ts +59 -0
  185. package/dist/server/server-adapter/openapi-utils.d.ts.map +1 -0
  186. package/dist/server/server-adapter/redact.d.ts +26 -0
  187. package/dist/server/server-adapter/redact.d.ts.map +1 -0
  188. package/dist/server/server-adapter/routes/a2a.d.ts +3 -0
  189. package/dist/server/server-adapter/routes/a2a.d.ts.map +1 -0
  190. package/dist/server/server-adapter/routes/agent-builder.d.ts +3 -0
  191. package/dist/server/server-adapter/routes/agent-builder.d.ts.map +1 -0
  192. package/dist/server/server-adapter/routes/agents.d.ts +3 -0
  193. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -0
  194. package/dist/server/server-adapter/routes/index.d.ts +50 -0
  195. package/dist/server/server-adapter/routes/index.d.ts.map +1 -0
  196. package/dist/server/server-adapter/routes/legacy.d.ts +7 -0
  197. package/dist/server/server-adapter/routes/legacy.d.ts.map +1 -0
  198. package/dist/server/server-adapter/routes/logs.d.ts +3 -0
  199. package/dist/server/server-adapter/routes/logs.d.ts.map +1 -0
  200. package/dist/server/server-adapter/routes/mcp.d.ts +9 -0
  201. package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -0
  202. package/dist/server/server-adapter/routes/memory.d.ts +3 -0
  203. package/dist/server/server-adapter/routes/memory.d.ts.map +1 -0
  204. package/dist/server/server-adapter/routes/observability.d.ts +3 -0
  205. package/dist/server/server-adapter/routes/observability.d.ts.map +1 -0
  206. package/dist/server/server-adapter/routes/route-builder.d.ts +52 -0
  207. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -0
  208. package/dist/server/server-adapter/routes/scorers.d.ts +3 -0
  209. package/dist/server/server-adapter/routes/scorers.d.ts.map +1 -0
  210. package/dist/server/server-adapter/routes/stream-types.d.ts +10 -0
  211. package/dist/server/server-adapter/routes/stream-types.d.ts.map +1 -0
  212. package/dist/server/server-adapter/routes/tools.d.ts +3 -0
  213. package/dist/server/server-adapter/routes/tools.d.ts.map +1 -0
  214. package/dist/server/server-adapter/routes/vectors.d.ts +3 -0
  215. package/dist/server/server-adapter/routes/vectors.d.ts.map +1 -0
  216. package/dist/server/server-adapter/routes/workflows.d.ts +3 -0
  217. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -0
  218. package/dist/server/utils.d.ts.map +1 -1
  219. package/dist/token-GVZ7HRD7.js +62 -0
  220. package/dist/{token-C3IMNCC4.js.map → token-GVZ7HRD7.js.map} +1 -1
  221. package/dist/{token-C3IMNCC4.js → token-JGA3ZWAN.js} +5 -6
  222. package/dist/token-JGA3ZWAN.js.map +1 -0
  223. package/dist/token-VFONFWVS.cjs +64 -0
  224. package/dist/{token-375W3LEI.cjs.map → token-VFONFWVS.cjs.map} +1 -1
  225. package/dist/{token-375W3LEI.cjs → token-ZOD6YIQ3.cjs} +7 -8
  226. package/dist/token-ZOD6YIQ3.cjs.map +1 -0
  227. package/dist/token-util-7R2ZFIXO.js +7 -0
  228. package/dist/{token-util-E5QO2RCL.js.map → token-util-7R2ZFIXO.js.map} +1 -1
  229. package/dist/token-util-BLJZJDBZ.cjs +9 -0
  230. package/dist/{token-util-CV3RRG6K.cjs.map → token-util-BLJZJDBZ.cjs.map} +1 -1
  231. package/dist/token-util-VGZUWSNR.cjs +9 -0
  232. package/dist/token-util-VGZUWSNR.cjs.map +1 -0
  233. package/dist/token-util-VKTPZLSE.js +7 -0
  234. package/dist/token-util-VKTPZLSE.js.map +1 -0
  235. package/package.json +30 -7
  236. package/dist/chunk-2YZH5PH6.cjs +0 -200
  237. package/dist/chunk-2YZH5PH6.cjs.map +0 -1
  238. package/dist/chunk-3AMNUUZF.js +0 -124
  239. package/dist/chunk-3AMNUUZF.js.map +0 -1
  240. package/dist/chunk-3F52QCI4.js +0 -192
  241. package/dist/chunk-3F52QCI4.js.map +0 -1
  242. package/dist/chunk-4G5QBFEW.cjs +0 -681
  243. package/dist/chunk-4G5QBFEW.cjs.map +0 -1
  244. package/dist/chunk-73PAWDM5.js +0 -83
  245. package/dist/chunk-73PAWDM5.js.map +0 -1
  246. package/dist/chunk-7HVY3D64.cjs +0 -22955
  247. package/dist/chunk-7HVY3D64.cjs.map +0 -1
  248. package/dist/chunk-A24TSVEZ.cjs +0 -130
  249. package/dist/chunk-A24TSVEZ.cjs.map +0 -1
  250. package/dist/chunk-B3Z6J745.js +0 -122
  251. package/dist/chunk-B3Z6J745.js.map +0 -1
  252. package/dist/chunk-BTWIR2B7.cjs +0 -28
  253. package/dist/chunk-BTWIR2B7.cjs.map +0 -1
  254. package/dist/chunk-D7T74TVR.js.map +0 -1
  255. package/dist/chunk-FPBYKMIS.js.map +0 -1
  256. package/dist/chunk-GLAZTMX3.cjs +0 -128
  257. package/dist/chunk-GLAZTMX3.cjs.map +0 -1
  258. package/dist/chunk-KF3RI45U.cjs +0 -172
  259. package/dist/chunk-KF3RI45U.cjs.map +0 -1
  260. package/dist/chunk-KJIDZQRA.cjs.map +0 -1
  261. package/dist/chunk-KWH5QBXP.js +0 -123
  262. package/dist/chunk-KWH5QBXP.js.map +0 -1
  263. package/dist/chunk-ND5OKOMT.js +0 -165
  264. package/dist/chunk-ND5OKOMT.js.map +0 -1
  265. package/dist/chunk-PPMIB3FQ.cjs +0 -88
  266. package/dist/chunk-PPMIB3FQ.cjs.map +0 -1
  267. package/dist/chunk-QU6N55W6.cjs.map +0 -1
  268. package/dist/chunk-S54HNARD.cjs +0 -131
  269. package/dist/chunk-S54HNARD.cjs.map +0 -1
  270. package/dist/chunk-SHWNNZBL.js.map +0 -1
  271. package/dist/chunk-SZIFSF4T.js +0 -25
  272. package/dist/chunk-SZIFSF4T.js.map +0 -1
  273. package/dist/chunk-U7GLIXYO.cjs +0 -534
  274. package/dist/chunk-U7GLIXYO.cjs.map +0 -1
  275. package/dist/chunk-UGXW2KPL.js +0 -661
  276. package/dist/chunk-UGXW2KPL.js.map +0 -1
  277. package/dist/chunk-V6JYJS7O.js +0 -518
  278. package/dist/chunk-V6JYJS7O.js.map +0 -1
  279. package/dist/chunk-VEVU6EUO.js +0 -22916
  280. package/dist/chunk-VEVU6EUO.js.map +0 -1
  281. package/dist/chunk-W2KMU354.cjs.map +0 -1
  282. package/dist/chunk-X3MICMI2.cjs +0 -620
  283. package/dist/chunk-X3MICMI2.cjs.map +0 -1
  284. package/dist/chunk-ZJ6KEY6H.js +0 -600
  285. package/dist/chunk-ZJ6KEY6H.js.map +0 -1
  286. package/dist/token-util-CV3RRG6K.cjs +0 -9
  287. package/dist/token-util-E5QO2RCL.js +0 -7
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/agents.ts"],"names":["agent","acc","key"],"mappings":";;;;;;;;;;;;;AAAA,IAAA,cAAA,GAAA;AAAA,QAAA,CAAA,cAAA,EAAA;AAAA,EAAA,uBAAA,EAAA,MAAA,uBAAA;AAAA,EAAA,uBAAA,EAAA,MAAA,uBAAA;AAAA,EAAA,oBAAA,EAAA,MAAA,oBAAA;AAAA,EAAA,0BAAA,EAAA,MAAA,0BAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,mBAAA,EAAA,MAAA,mBAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,8BAAA,EAAA,MAAA,8BAAA;AAAA,EAAA,uBAAA,EAAA,MAAA,uBAAA;AAAA,EAAA,4BAAA,EAAA,MAAA,4BAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,sCAAA,EAAA,MAAA,sCAAA;AAAA,EAAA,oBAAA,EAAA,MAAA,oBAAA;AAAA,EAAA,kCAAA,EAAA,MAAA,kCAAA;AAAA,EAAA,wCAAA,EAAA,MAAA,wCAAA;AAAA,EAAA,6BAAA,EAAA,MAAA,6BAAA;AAAA,EAAA,sCAAA,EAAA,MAAA,sCAAA;AAAA,EAAA,wBAAA,EAAA,MAAA,wBAAA;AAAA,EAAA,kBAAA,EAAA,MAAA,kBAAA;AAAA,EAAA,uBAAA,EAAA,MAAA,uBAAA;AAAA,EAAA,uBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AA2FA,eAAsB,wBACpB,KAAA,EACyC;AACzC,EAAA,OAAO,MAAA,CAAO,OAAA,CAAQ,KAAA,IAAS,EAAE,CAAA,CAAE,MAAA,CAAuC,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,IAAI,CAAA,KAAM;AAC9F,IAAA,MAAM,MAAA,GAAS,IAAA,CAAK,EAAA,IAAM,CAAA,KAAA,EAAQ,GAAG,CAAA,CAAA;AAErC,IAAA,IAAI,oBAAA,GAA2C,MAAA;AAC/C,IAAA,IAAI,qBAAA,GAA4C,MAAA;AAEhD,IAAA,IAAI;AACF,MAAA,IAAI,KAAK,WAAA,EAAa;AACpB,QAAA,IAAI,IAAA,CAAK,eAAe,OAAO,IAAA,CAAK,gBAAgB,QAAA,IAAY,YAAA,IAAgB,KAAK,WAAA,EAAa;AAChG,UAAA,oBAAA,GAAuB,SAAA,CAAU,IAAA,CAAK,WAAA,CAAY,UAAU,CAAA;AAAA,QAC9D,CAAA,MAAA,IAAW,OAAO,IAAA,CAAK,WAAA,KAAgB,UAAA,EAAY;AACjD,UAAA,MAAM,WAAA,GAAc,KAAK,WAAA,EAAY;AACrC,UAAA,IAAI,WAAA,IAAe,YAAY,UAAA,EAAY;AACzC,YAAA,oBAAA,GAAuB,SAAA,CAAU,YAAY,UAAU,CAAA;AAAA,UACzD;AAAA,QACF,CAAA,MAAA,IAAW,KAAK,WAAA,EAAa;AAC3B,UAAA,oBAAA,GAAuB,SAAA,CAAU,eAAA,CAAgB,IAAA,CAAK,WAAoD,CAAC,CAAA;AAAA,QAC7G;AAAA,MACF;AAEA,MAAA,IAAI,KAAK,YAAA,EAAc;AACrB,QAAA,IAAI,IAAA,CAAK,gBAAgB,OAAO,IAAA,CAAK,iBAAiB,QAAA,IAAY,YAAA,IAAgB,KAAK,YAAA,EAAc;AACnG,UAAA,qBAAA,GAAwB,SAAA,CAAU,IAAA,CAAK,YAAA,CAAa,UAAU,CAAA;AAAA,QAChE,CAAA,MAAA,IAAW,OAAO,IAAA,CAAK,YAAA,KAAiB,UAAA,EAAY;AAClD,UAAA,MAAM,YAAA,GAAe,KAAK,YAAA,EAAa;AACvC,UAAA,IAAI,YAAA,IAAgB,aAAa,UAAA,EAAY;AAC3C,YAAA,qBAAA,GAAwB,SAAA,CAAU,aAAa,UAAU,CAAA;AAAA,UAC3D;AAAA,QACF,CAAA,MAAA,IAAW,KAAK,YAAA,EAAc;AAC5B,UAAA,qBAAA,GAAwB,SAAA;AAAA,YACtB,eAAA,CAAgB,KAAK,YAAqD;AAAA,WAC5E;AAAA,QACF;AAAA,MACF;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,MAAM,CAAA,6BAAA,CAAA,EAAiC;AAAA,QAC7C,QAAQ,IAAA,CAAK,EAAA;AAAA,QACb;AAAA,OACD,CAAA;AAAA,IACH;AAEA,IAAA,GAAA,CAAI,GAAG,CAAA,GAAI;AAAA,MACT,GAAG,IAAA;AAAA,MACH,EAAA,EAAI,MAAA;AAAA,MACJ,WAAA,EAAa,oBAAA;AAAA,MACb,YAAA,EAAc;AAAA,KAChB;AACA,IAAA,OAAO,GAAA;AAAA,EACT,CAAA,EAAG,EAAE,CAAA;AACP;AAEO,SAAS,wBAAwB,UAAA,EAAyE;AAC/G,EAAA,OAAO,UAAA,CAAW,IAAI,CAAA,SAAA,KAAa;AAGjC,IAAA,OAAO;AAAA,MACL,IAAI,SAAA,CAAU,EAAA;AAAA,MACd,IAAA,EAAM,SAAA,CAAU,IAAA,IAAQ,SAAA,CAAU,WAAA,CAAY;AAAA,KAChD;AAAA,EACF,CAAC,CAAA;AACH;AAOA,eAAe,4BAAA,CAA6B;AAAA,EAC1C,KAAA;AAAA,EACA;AACF,CAAA,EAGuD;AACrD,EAAA,IAAI,wBAAmE,EAAC;AAExE,EAAA,IAAI,gBAAgB,KAAA,EAAO;AACzB,IAAA,MAAM,SAAS,MAAM,KAAA,CAAM,UAAA,CAAW,EAAE,gBAAgB,CAAA;AACxD,IAAA,qBAAA,GAAwB,MAAA,CAAO,OAAA,CAAQ,MAAA,IAAU,EAAE,CAAA,CAAE,MAAA;AAAA,MACnD,CAAC,GAAA,EAAK,CAAC,GAAA,EAAKA,MAAK,CAAA,KAAM;AACrB,QAAA,OAAO;AAAA,UACL,GAAG,GAAA;AAAA,UACH,CAAC,GAAG,GAAG,EAAE,IAAIA,MAAAA,CAAM,EAAA,EAAI,IAAA,EAAMA,MAAAA,CAAM,IAAA;AAAK,SAC1C;AAAA,MACF,CAAA;AAAA,MACA;AAAC,KACH;AAAA,EACF;AACA,EAAA,OAAO,qBAAA;AACT;AAEA,eAAe,eAAA,CAAgB;AAAA,EAC7B,EAAA;AAAA,EACA,MAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAKmC;AACjC,EAAA,MAAM,WAAA,GAAc,MAAM,cAAA,EAAe;AACzC,EAAA,MAAM,eAAe,MAAM,KAAA,CAAM,eAAA,CAAgB,EAAE,gBAAgB,CAAA;AACnE,EAAA,MAAM,QAAQ,MAAM,KAAA,CAAM,SAAA,CAAU,EAAE,gBAAgB,CAAA;AACtD,EAAA,MAAM,MAAM,MAAM,KAAA,CAAM,MAAA,CAAO,EAAE,gBAAgB,CAAA;AACjD,EAAA,MAAM,+BAA+B,MAAM,KAAA,CAAM,+BAAA,CAAgC,EAAE,gBAAgB,CAAA;AACnG,EAAA,MAAM,6BAA6B,MAAM,KAAA,CAAM,6BAAA,CAA8B,EAAE,gBAAgB,CAAA;AAC/F,EAAA,MAAM,iBAAiB,MAAM,KAAA,CAAM,iBAAA,CAAkB,EAAE,gBAAgB,CAAA;AACvE,EAAA,MAAM,oBAAA,GAAuB,MAAM,uBAAA,CAAwB,KAAK,CAAA;AAEhE,EAAA,IAAI,2BAGA,EAAC;AAEL,EAAA,IAAI,mBAAmB,KAAA,EAAO;AAC5B,IAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAChC,IAAA,IAAI;AACF,MAAA,MAAM,YAAY,MAAM,KAAA,CAAM,aAAA,CAAc,EAAE,gBAAgB,CAAA;AAC9D,MAAA,wBAAA,GAA2B,MAAA,CAAO,OAAA,CAAQ,SAAA,IAAa,EAAE,CAAA,CAAE,MAAA,CAEzD,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,QAAQ,CAAA,KAAM;AAC1B,QAAA,OAAO;AAAA,UACL,GAAG,GAAA;AAAA,UACH,CAAC,GAAG,GAAG;AAAA,YACL,IAAA,EAAM,SAAS,IAAA,IAAQ;AAAA;AACzB,SACF;AAAA,MACF,CAAA,EAAG,EAAE,CAAA;AAAA,IACP,SAAS,KAAA,EAAO;AACd,MAAA,MAAA,CAAO,MAAM,mCAAA,EAAqC,EAAE,WAAW,KAAA,CAAM,IAAA,EAAM,OAAO,CAAA;AAAA,IACpF;AAAA,EACF;AAEA,EAAA,MAAM,wBAAwB,MAAM,4BAAA,CAA6B,EAAE,KAAA,EAAO,gBAAgB,CAAA;AAG1F,EAAA,MAAM,eAAA,GAAkB,MAAM,KAAA,CAAM,mBAAA,CAAoB,cAAc,CAAA;AACtE,EAAA,MAAM,gBAAA,GAAmB,MAAM,KAAA,CAAM,oBAAA,CAAqB,cAAc,CAAA;AACxE,EAAA,MAAM,yBAAA,GAA4B,wBAAwB,eAAe,CAAA;AACzE,EAAA,MAAM,0BAAA,GAA6B,wBAAwB,gBAAgB,CAAA;AAE3E,EAAA,MAAM,KAAA,GAAQ,KAAK,QAAA,EAAS;AAC5B,EAAA,MAAM,MAAA,GAAS,MAAM,KAAA,CAAM,YAAA,CAAa,cAAc,CAAA;AACtD,EAAA,MAAM,SAAA,GAAY,MAAA,EAAQ,GAAA,CAAI,CAAA,EAAA,MAAO;AAAA,IACnC,GAAG,EAAA;AAAA,IACH,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,GAAG,KAAA,CAAM,OAAA;AAAA,MAClB,QAAA,EAAU,GAAG,KAAA,CAAM,QAAA;AAAA,MACnB,YAAA,EAAc,GAAG,KAAA,CAAM;AAAA;AACzB,GACF,CAAE,CAAA;AAEF,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,MAAM,EAAA,IAAM,EAAA;AAAA,IAChB,MAAM,KAAA,CAAM,IAAA;AAAA,IACZ,WAAA;AAAA,IACA,YAAA;AAAA,IACA,MAAA,EAAQ,qBAAA;AAAA,IACR,KAAA,EAAO,oBAAA;AAAA,IACP,SAAA,EAAW,wBAAA;AAAA,IACX,eAAA,EAAiB,yBAAA;AAAA,IACjB,gBAAA,EAAkB,0BAAA;AAAA,IAClB,QAAA,EAAU,KAAK,WAAA,EAAY;AAAA,IAC3B,OAAA,EAAS,KAAK,UAAA,EAAW;AAAA,IACzB,cAAc,KAAA,EAAO,oBAAA;AAAA,IACrB,cAAA;AAAA,IACA,SAAA;AAAA,IACA,4BAAA;AAAA,IACA;AAAA,GACF;AACF;AAEA,eAAsB,kBAAA,CAAmB,EAAE,MAAA,EAAQ,OAAA,EAAQ,EAAmD;AAC5G,EAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAEhC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,wBAAwB,CAAA;AAAA,EAClE;AAEA,EAAA,IAAI,KAAA;AAEJ,EAAA,IAAI;AACF,IAAA,KAAA,GAAQ,MAAA,CAAO,aAAa,OAAO,CAAA;AAAA,EACrC,SAAS,KAAA,EAAO;AACd,IAAA,MAAA,CAAO,KAAA,CAAM,+DAA+D,KAAK,CAAA;AAAA,EACnF;AAEA,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAA,CAAO,KAAA,CAAM,CAAA,MAAA,EAAS,OAAO,CAAA,sCAAA,CAAwC,CAAA;AACrE,IAAA,MAAM,MAAA,GAAS,OAAO,UAAA,EAAW;AACjC,IAAA,IAAI,OAAO,IAAA,CAAK,MAAA,IAAU,EAAE,EAAE,MAAA,EAAQ;AACpC,MAAA,KAAA,MAAW,CAAC,CAAA,EAAG,EAAE,KAAK,MAAA,CAAO,OAAA,CAAQ,MAAM,CAAA,EAAG;AAC5C,QAAA,IAAI;AACF,UAAA,MAAM,SAAA,GAAY,MAAM,EAAA,CAAG,UAAA,EAAW;AAEtC,UAAA,IAAI,SAAA,CAAU,OAAO,CAAA,EAAG;AACtB,YAAA,KAAA,GAAQ,UAAU,OAAO,CAAA;AACzB,YAAA;AAAA,UACF;AAAA,QACF,SAAS,KAAA,EAAO;AACd,UAAA,MAAA,CAAO,KAAA,CAAM,kCAAkC,KAAK,CAAA;AAAA,QACtD;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAEA,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,cAAA,EAAiB,OAAO,cAAc,CAAA;AAAA,EAChF;AAEA,EAAA,OAAO,KAAA;AACT;AAEA,eAAe,WAAA,CAAY;AAAA,EACzB,MAAA;AAAA,EACA,KAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA,EAK6B;AAC3B,EAAA,MAAM,WAAA,GAAc,MAAM,cAAA,EAAe;AACzC,EAAA,MAAM,QAAQ,MAAM,KAAA,CAAM,SAAA,CAAU,EAAE,gBAAgB,CAAA;AAEtD,EAAA,MAAM,oBAAA,GAAuB,MAAM,uBAAA,CAAwB,KAAK,CAAA;AAEhE,EAAA,IAAI,2BAGA,EAAC;AAEL,EAAA,IAAI,mBAAmB,KAAA,EAAO;AAC5B,IAAA,MAAM,MAAA,GAAS,OAAO,SAAA,EAAU;AAChC,IAAA,IAAI;AACF,MAAA,MAAM,YAAY,MAAM,KAAA,CAAM,aAAA,CAAc,EAAE,gBAAgB,CAAA;AAE9D,MAAA,wBAAA,GAA2B,MAAA,CAAO,OAAA,CAAQ,SAAA,IAAa,EAAE,CAAA,CAAE,MAAA,CAEzD,CAAC,GAAA,EAAK,CAAC,GAAA,EAAK,QAAQ,CAAA,KAAM;AAC1B,QAAA,OAAO;AAAA,UACL,GAAG,GAAA;AAAA,UACH,CAAC,GAAG,GAAG;AAAA,YACL,IAAA,EAAM,SAAS,IAAA,IAAQ,kBAAA;AAAA,YACvB,KAAA,EAAO,MAAA,CAAO,OAAA,CAAQ,QAAA,CAAS,KAAK,CAAA,CAAE,MAAA;AAAA,cACpC,CAACC,IAAAA,EAAK,CAACC,IAAAA,EAAK,IAAI,CAAA,KAAM;AACpB,gBAAA,OAAO;AAAA,kBACL,GAAGD,IAAAA;AAAA,kBACH,CAACC,IAAG,GAAG;AAAA,oBACL,IAAI,IAAA,CAAK,EAAA;AAAA,oBACT,aAAa,IAAA,CAAK;AAAA;AACpB,iBACF;AAAA,cACF,CAAA;AAAA,cACA;AAAC;AACH;AACF,SACF;AAAA,MACF,CAAA,EAAG,EAAE,CAAA;AAAA,IACP,SAAS,KAAA,EAAO;AACd,MAAA,MAAA,CAAO,MAAM,mCAAA,EAAqC,EAAE,WAAW,KAAA,CAAM,IAAA,EAAM,OAAO,CAAA;AAAA,IACpF;AAAA,EACF;AAEA,EAAA,IAAI,mBAAA,GAAsB,cAAA;AAe1B,EAAA,MAAM,eAAe,MAAM,KAAA,CAAM,gBAAgB,EAAE,cAAA,EAAgB,qBAAqB,CAAA;AACxF,EAAA,MAAM,MAAM,MAAM,KAAA,CAAM,MAAA,CAAO,EAAE,gBAAgB,CAAA;AACjD,EAAA,MAAM,4BAAA,GAA+B,MAAM,KAAA,CAAM,+BAAA,CAAgC;AAAA,IAC/E,cAAA,EAAgB;AAAA,GACjB,CAAA;AACD,EAAA,MAAM,6BAA6B,MAAM,KAAA,CAAM,8BAA8B,EAAE,cAAA,EAAgB,qBAAqB,CAAA;AACpH,EAAA,MAAM,iBAAiB,MAAM,KAAA,CAAM,kBAAkB,EAAE,cAAA,EAAgB,qBAAqB,CAAA;AAE5F,EAAA,MAAM,KAAA,GAAQ,KAAK,QAAA,EAAS;AAC5B,EAAA,MAAM,MAAA,GAAS,MAAM,KAAA,CAAM,YAAA,CAAa,cAAc,CAAA;AACtD,EAAA,MAAM,SAAA,GAAY,MAAA,EAAQ,GAAA,CAAI,CAAA,EAAA,MAAO;AAAA,IACnC,GAAG,EAAA;AAAA,IACH,KAAA,EAAO;AAAA,MACL,OAAA,EAAS,GAAG,KAAA,CAAM,OAAA;AAAA,MAClB,QAAA,EAAU,GAAG,KAAA,CAAM,QAAA;AAAA,MACnB,YAAA,EAAc,GAAG,KAAA,CAAM;AAAA;AACzB,GACF,CAAE,CAAA;AAEF,EAAA,MAAM,wBAAwB,MAAM,4BAAA,CAA6B,EAAE,KAAA,EAAO,cAAA,EAAgB,qBAAqB,CAAA;AAG/G,EAAA,MAAM,eAAA,GAAkB,MAAM,KAAA,CAAM,mBAAA,CAAoB,mBAAmB,CAAA;AAC3E,EAAA,MAAM,gBAAA,GAAmB,MAAM,KAAA,CAAM,oBAAA,CAAqB,mBAAmB,CAAA;AAC7E,EAAA,MAAM,yBAAA,GAA4B,wBAAwB,eAAe,CAAA;AACzE,EAAA,MAAM,0BAAA,GAA6B,wBAAwB,gBAAgB,CAAA;AAE3E,EAAA,OAAO;AAAA,IACL,MAAM,KAAA,CAAM,IAAA;AAAA,IACZ,WAAA;AAAA,IACA,YAAA;AAAA,IACA,KAAA,EAAO,oBAAA;AAAA,IACP,MAAA,EAAQ,qBAAA;AAAA,IACR,SAAA,EAAW,wBAAA;AAAA,IACX,eAAA,EAAiB,yBAAA;AAAA,IACjB,gBAAA,EAAkB,0BAAA;AAAA,IAClB,QAAA,EAAU,KAAK,WAAA,EAAY;AAAA,IAC3B,OAAA,EAAS,KAAK,UAAA,EAAW;AAAA,IACzB,cAAc,KAAA,EAAO,oBAAA;AAAA,IACrB,SAAA;AAAA,IACA,cAAA;AAAA,IACA,4BAAA;AAAA,IACA;AAAA,GACF;AACF;AAMO,IAAM,oBAAoB,WAAA,CAAY;AAAA,EAC3C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,aAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,wBAAA;AAAA,EAChB,OAAA,EAAS,iBAAA;AAAA,EACT,WAAA,EAAa,sDAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,gBAAe,KAAM;AAC7C,IAAA,IAAI;AACF,MAAA,MAAM,MAAA,GAAS,OAAO,UAAA,EAAW;AAEjC,MAAA,MAAM,mBAAA,GAAsB,MAAM,OAAA,CAAQ,GAAA;AAAA,QACxC,MAAA,CAAO,QAAQ,MAAM,CAAA,CAAE,IAAI,OAAO,CAAC,EAAA,EAAI,KAAK,CAAA,KAAM;AAChD,UAAA,OAAO,gBAAgB,EAAE,EAAA,EAAI,MAAA,EAAQ,KAAA,EAAO,gBAAgB,CAAA;AAAA,QAC9D,CAAC;AAAA,OACH;AAEA,MAAA,MAAM,mBAAmB,mBAAA,CAAoB,MAAA;AAAA,QAC3C,CAAC,GAAA,EAAK,EAAE,EAAA,EAAI,GAAG,MAAK,KAAM;AACxB,UAAA,GAAA,CAAI,EAAE,CAAA,GAAI,EAAE,EAAA,EAAI,GAAG,IAAA,EAAK;AACxB,UAAA,OAAO,GAAA;AAAA,QACT,CAAA;AAAA,QACA;AAAC,OACH;AAEA,MAAA,OAAO,gBAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,sBAAsB,CAAA;AAAA,IAClD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,wBAAwB,WAAA,CAAY;AAAA,EAC/C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,sBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,cAAA,EAAgB,qBAAA;AAAA,EAChB,OAAA,EAAS,iBAAA;AAAA,EACT,WAAA,EAAa,0FAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,SAAS,OAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,gBAAe,KAAM;AACtD,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAC1D,MAAA,MAAM,YAAA,GAAe,KAAA;AACrB,MAAA,MAAM,MAAA,GAAS,MAAM,WAAA,CAAY;AAAA,QAC/B,MAAA;AAAA,QACA,KAAA;AAAA,QACA,cAAA;AAAA,QACA;AAAA,OACD,CAAA;AACD,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,qBAAqB,CAAA;AAAA,IACjD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,uBAGT,WAAA,CAAY;AAAA,EACd,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,+BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,sBAAA;AAAA,EAChB,OAAA,EAAS,yBAAA;AAAA,EACT,WAAA,EAAa,gFAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,OAAA,EAAS,OAAO,EAAE,OAAA,EAAS,QAAQ,WAAA,EAAa,GAAG,QAAO,KAAM;AAC9D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAI1D,MAAA,YAAA,CAAa,MAAA,EAAQ,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAA,MAAM,EAAE,QAAA,EAAU,GAAG,IAAA,EAAK,GAAI,MAAA;AAE9B,MAAA,YAAA,CAAa,EAAE,UAAU,CAAA;AAEzB,MAAA,MAAM,MAAA,GAAS,MAAM,KAAA,CAAM,QAAA,CAAS,QAAA,EAAU;AAAA,QAC5C,GAAG,IAAA;AAAA,QACH;AAAA,OACD,CAAA;AAED,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,6BAA6B,CAAA;AAAA,IACzD;AAAA,EACF;AACF,CAAC;AAGM,IAAM,wBAAwB,WAAA,CAAY;AAAA,EAC/C,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,sCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,sBAAA;AAAA,EAChB,OAAA,EAAS,0CAAA;AAAA,EACT,WAAA,EAAa,4FAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzB,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,SAAS,WAAA,EAAa,GAAG,QAAO,KAAM;AAC9D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAI1D,MAAA,YAAA,CAAa,MAAA,EAAQ,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAA,MAAM,EAAE,QAAA,EAAU,UAAA,EAAY,YAAY,QAAA,EAAU,GAAG,MAAK,GAAI,MAAA;AAEhE,MAAA,MAAM,kBAAkB,UAAA,IAAc,UAAA;AAEtC,MAAA,YAAA,CAAa,EAAE,UAAU,CAAA;AAEzB,MAAA,IAAK,QAAA,IAAY,CAAC,eAAA,IAAqB,CAAC,YAAY,eAAA,EAAkB;AACpE,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,gDAAgD,CAAA;AAAA,MAC1F;AAEA,MAAA,MAAM,MAAA,GAAS,MAAM,KAAA,CAAM,cAAA,CAAe,QAAA,EAAU;AAAA,QAClD,GAAG,IAAA;AAAA,QACH,WAAA;AAAA,QACA,YAAY,eAAA,IAAmB,EAAA;AAAA,QAC/B,UAAU,QAAA,IAAY;AAAA,OACvB,CAAA;AAED,MAAA,OAAO,MAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,6BAA6B,CAAA;AAAA,IACzD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,+BAA+B,WAAA,CAAY;AAAA,EACtD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,oCAAA;AAAA,EACN,YAAA,EAAc,qBAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,oBAAA;AAAA,EAChB,OAAA,EAAS,wCAAA;AAAA,EACT,WAAA,EAAa,yFAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzB,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,SAAS,WAAA,EAAa,GAAG,QAAO,KAAM;AAC9D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAI1D,MAAA,YAAA,CAAa,MAAA,EAAQ,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAA,MAAM,EAAE,QAAA,EAAU,UAAA,EAAY,YAAY,QAAA,EAAU,GAAG,MAAK,GAAI,MAAA;AAEhE,MAAA,MAAM,kBAAkB,UAAA,IAAc,UAAA;AAEtC,MAAA,YAAA,CAAa,EAAE,UAAU,CAAA;AAEzB,MAAA,IAAK,QAAA,IAAY,CAAC,eAAA,IAAqB,CAAC,YAAY,eAAA,EAAkB;AACpE,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,gDAAgD,CAAA;AAAA,MAC1F;AAEA,MAAA,MAAM,YAAA,GAAe,MAAM,KAAA,CAAM,YAAA,CAAa,QAAA,EAAU;AAAA,QACtD,GAAG,IAAA;AAAA,QACH,WAAA;AAAA,QACA,YAAY,eAAA,IAAmB,EAAA;AAAA,QAC/B,UAAU,QAAA,IAAY;AAAA,OACvB,CAAA;AAED,MAAA,MAAM,cAAA,GAAiB,IAAA,CAAK,MAAA,GACxB,YAAA,CAAa,oBAAA,CAAqB;AAAA,QAChC,OAAA,EAAS;AAAA,UACP,mBAAA,EAAqB;AAAA;AACvB,OACD,CAAA,GACD,YAAA,CAAa,oBAAA,CAAqB;AAAA,QAChC,SAAA,EAAW,IAAA;AAAA,QACX,aAAA,EAAe,IAAA;AAAA,QACf,eAAA,EAAiB,CAAC,KAAA,KAAe;AAC/B,UAAA,OAAO,CAAA,iDAAA,EAAoD,iBAAiB,KAAA,GAAQ,KAAA,CAAM,UAAU,IAAA,CAAK,SAAA,CAAU,KAAK,CAAC,CAAA,CAAA;AAAA,QAC3H,CAAA;AAAA,QACA,OAAA,EAAS;AAAA,UACP,mBAAA,EAAqB;AAAA;AACvB,OACD,CAAA;AAEL,MAAA,OAAO,cAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,gCAAgC,CAAA;AAAA,IAC5D;AAAA,EACF;AACF,CAAC;AAEM,IAAM,sBAAsB,WAAA,CAAY;AAAA,EAC7C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,uBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,uBAAA;AAAA,EAChB,OAAA,EAAS,mBAAA;AAAA,EACT,WAAA,EAAa,qDAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,SAAS,YAAY;AACnB,IAAA,IAAI;AACF,MAAA,MAAM,SAAA,GAAY,MAAA,CAAO,OAAA,CAAQ,iBAAiB,CAAA,CAAE,IAAI,CAAC,CAAC,EAAA,EAAI,QAAQ,CAAA,KAAM;AAE1E,QAAA,MAAM,OAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,QAAA,CAAS,YAAY,IAAI,QAAA,CAAS,YAAA,GAAe,CAAC,QAAA,CAAS,YAAY,CAAA;AACrG,QAAA,MAAM,SAAA,GAAY,QAAQ,KAAA,CAAM,CAAA,MAAA,KAAU,CAAC,CAAC,OAAA,CAAQ,GAAA,CAAI,MAAM,CAAC,CAAA;AAE/D,QAAA,OAAO;AAAA,UACL,EAAA;AAAA,UACA,MAAM,QAAA,CAAS,IAAA;AAAA,UACf,KAAA,EAAQ,QAAA,CAAiB,KAAA,IAAS,QAAA,CAAS,IAAA;AAAA,UAC3C,WAAA,EAAc,SAAiB,WAAA,IAAe,EAAA;AAAA,UAC9C,QAAQ,QAAA,CAAS,YAAA;AAAA,UACjB,SAAA;AAAA,UACA,QAAQ,QAAA,CAAS,MAAA;AAAA,UACjB,MAAA,EAAQ,CAAC,GAAG,QAAA,CAAS,MAAM;AAAA;AAAA,SAC7B;AAAA,MACF,CAAC,CAAA;AACD,MAAA,OAAO,EAAE,SAAA,EAAU;AAAA,IACrB,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,0BAA0B,CAAA;AAAA,IACtD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,6BAGT,WAAA,CAAY;AAAA,EACd,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,qCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,sBAAA;AAAA,EAChB,OAAA,EAAS,mCAAA;AAAA,EACT,WAAA,EAAa,mCAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,SAAS,oBAAA,CAAqB;AAChC,CAAC;AAEM,IAAM,wBAAwB,WAAA,CAAY;AAAA,EAC/C,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,6BAAA;AAAA,EACN,YAAA,EAAc,QAAA;AAAA,EACd,YAAA,EAAc,KAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,oBAAA;AAAA,EAChB,OAAA,EAAS,uBAAA;AAAA,EACT,WAAA,EAAa,oFAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,SAAS,WAAA,EAAa,GAAG,QAAO,KAAM;AAC9D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAI1D,MAAA,YAAA,CAAa,MAAA,EAAQ,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAA,MAAM,EAAE,QAAA,EAAU,GAAG,IAAA,EAAK,GAAI,MAAA;AAC9B,MAAA,YAAA,CAAa,EAAE,UAAU,CAAA;AAEzB,MAAA,MAAM,YAAA,GAAe,MAAM,KAAA,CAAM,MAAA,CAAO,QAAA,EAAU;AAAA,QAChD,GAAG,IAAA;AAAA,QACH;AAAA,OACD,CAAA;AAED,MAAA,OAAO,YAAA,CAAa,UAAA;AAAA,IACtB,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,gCAAgC,CAAA;AAAA,IAC5D;AAAA,EACF;AACF,CAAC;AAEM,IAAM,yCAAyC,WAAA,CAAY;AAAA,EAChE,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,mCAAA;AAAA,EACN,YAAA,EAAc,QAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,oBAAA;AAAA,EAChB,OAAA,EAAS,iCAAA;AAAA,EACT,WAAA,EAAa,uEAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,UAAA,EAAY,IAAA;AAAA,EACZ,SAAS,qBAAA,CAAsB;AACjC,CAAC;AAEM,IAAM,0BAA0B,WAAA,CAAY;AAAA,EACjD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,wCAAA;AAAA,EACN,YAAA,EAAc,QAAA;AAAA,EACd,YAAA,EAAc,KAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,yBAAA;AAAA,EACZ,cAAA,EAAgB,sBAAA;AAAA,EAChB,OAAA,EAAS,mBAAA;AAAA,EACT,WAAA,EAAa,4DAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,SAAS,WAAA,EAAa,GAAG,QAAO,KAAM;AAC9D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAE1D,MAAA,IAAI,CAAC,OAAO,KAAA,EAAO;AACjB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,sBAAsB,CAAA;AAAA,MAChE;AAEA,MAAA,IAAI,CAAC,OAAO,UAAA,EAAY;AACtB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,MACtE;AAIA,MAAA,YAAA,CAAa,MAAA,EAAQ,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAA,MAAM,YAAA,GAAe,MAAM,KAAA,CAAM,eAAA,CAAgB;AAAA,QAC/C,GAAG,MAAA;AAAA,QACH;AAAA,OACD,CAAA;AAED,MAAA,OAAO,YAAA,CAAa,UAAA;AAAA,IACtB,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,2BAA2B,CAAA;AAAA,IACvD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,0BAA0B,WAAA,CAAY;AAAA,EACjD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,wCAAA;AAAA,EACN,YAAA,EAAc,QAAA;AAAA,EACd,YAAA,EAAc,KAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,yBAAA;AAAA,EACZ,cAAA,EAAgB,sBAAA;AAAA,EAChB,OAAA,EAAS,mBAAA;AAAA,EACT,WAAA,EAAa,uFAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,OAAO,CAAA;AAAA,EACxB,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,SAAS,WAAA,EAAa,GAAG,QAAO,KAAM;AAC9D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAE1D,MAAA,IAAI,CAAC,OAAO,KAAA,EAAO;AACjB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,sBAAsB,CAAA;AAAA,MAChE;AAEA,MAAA,IAAI,CAAC,OAAO,UAAA,EAAY;AACtB,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4BAA4B,CAAA;AAAA,MACtE;AAIA,MAAA,YAAA,CAAa,MAAA,EAAQ,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAA,MAAM,YAAA,GAAe,MAAM,KAAA,CAAM,eAAA,CAAgB;AAAA,QAC/C,GAAG,MAAA;AAAA,QACH;AAAA,OACD,CAAA;AAED,MAAA,OAAO,YAAA,CAAa,UAAA;AAAA,IACtB,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,2BAA2B,CAAA;AAAA,IACvD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,uBAAuB,WAAA,CAAY;AAAA,EAC9C,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,8BAAA;AAAA,EACN,YAAA,EAAc,QAAA;AAAA,EACd,YAAA,EAAc,KAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA,CAAyB,MAAA,CAAO,EAAE,MAAA,EAAQ,EAAE,MAAA,EAAO,CAAE,QAAA,EAAS,EAAG,CAAA;AAAA,EAC7E,cAAA,EAAgB,oBAAA;AAAA,EAChB,OAAA,EAAS,sBAAA;AAAA,EACT,WAAA,EAAa,yEAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,UAAU,OAAA,EAAS,GAAG,QAAO,KAAM;AAC3D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAI1D,MAAA,YAAA,CAAa,MAAA,EAAQ,CAAC,OAAO,CAAC,CAAA;AAE9B,MAAA,YAAA,CAAa,EAAE,UAAU,CAAA;AAEzB,MAAA,MAAM,YAAA,GAAe,MAAM,KAAA,CAAM,OAAA,CAAQ,QAAA,EAAU;AAAA,QACjD,GAAG,MAAA;AAAA,QACH,MAAA,EAAQ;AAAA,UACN,MAAA,EAAQ,MAAA,CAAO,MAAA,IAAU,MAAA,CAAO,QAAA,IAAY,EAAA;AAAA,UAC5C,QAAA,EAAU,OAAO,UAAA,IAAc,EAAA;AAAA,UAC/B,OAAA,EAAS,MAAA,CAAO,MAAA,EAAQ,OAAA,IAAW;AAAC;AACtC,OACD,CAAA;AAED,MAAA,OAAO,YAAA;AAAA,IACT,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,qCAAqC,CAAA;AAAA,IACjE;AAAA,EACF;AACF,CAAC;AAEM,IAAM,2BAA2B,WAAA,CAAY;AAAA,EAClD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,4BAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,0BAAA;AAAA,EACZ,cAAA,EAAgB,6BAAA;AAAA,EAChB,OAAA,EAAS,oBAAA;AAAA,EACT,WAAA,EAAa,wCAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzB,SAAS,OAAO,EAAE,QAAQ,OAAA,EAAS,OAAA,EAAS,UAAS,KAAM;AACzD,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAG1D,MAAA,MAAM,QAAA,GAAW,CAAA,EAAG,QAAQ,CAAA,CAAA,EAAI,OAAO,CAAA,CAAA;AAEvC,MAAA,KAAA,CAAM,aAAA,CAAc,EAAE,KAAA,EAAO,QAAA,EAAU,CAAA;AAEvC,MAAA,OAAO,EAAE,SAAS,qBAAA,EAAsB;AAAA,IAC1C,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,4BAA4B,CAAA;AAAA,IACxD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,0BAA0B,WAAA,CAAY;AAAA,EACjD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,kCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,cAAA,EAAgB,6BAAA;AAAA,EAChB,OAAA,EAAS,mBAAA;AAAA,EACT,WAAA,EAAa,sDAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzB,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,SAAQ,KAAM;AACtC,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAE1D,MAAA,KAAA,CAAM,sBAAA,EAAuB;AAE7B,MAAA,OAAO,EAAE,SAAS,+BAAA,EAAgC;AAAA,IACpD,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,6BAA6B,CAAA;AAAA,IACzD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,iCAAiC,WAAA,CAAY;AAAA,EACxD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,qCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,+BAAA;AAAA,EACZ,cAAA,EAAgB,6BAAA;AAAA,EAChB,OAAA,EAAS,0BAAA;AAAA,EACT,WAAA,EAAa,uEAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzB,SAAS,OAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,mBAAkB,KAAM;AACzD,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAE1D,MAAA,MAAM,SAAA,GAAY,MAAM,KAAA,CAAM,YAAA,EAAa;AAC3C,MAAA,IAAI,CAAC,SAAA,IAAa,SAAA,CAAU,MAAA,KAAW,CAAA,EAAG;AACxC,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0CAA0C,CAAA;AAAA,MACpF;AAEA,MAAA,KAAA,CAAM,cAAc,iBAAiB,CAAA;AAErC,MAAA,OAAO,EAAE,SAAS,sBAAA,EAAuB;AAAA,IAC3C,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,6BAA6B,CAAA;AAAA,IACzD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,yCAAyC,WAAA,CAAY;AAAA,EAChE,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,4CAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,uBAAA;AAAA,EACjB,UAAA,EAAY,qCAAA;AAAA,EACZ,cAAA,EAAgB,6BAAA;AAAA,EAChB,OAAA,EAAS,4BAAA;AAAA,EACT,WAAA,EAAa,gEAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAA,EAAU,QAAQ,CAAA;AAAA,EACzB,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,eAAe,KAAA,EAAO,SAAA,EAAW,UAAA,EAAY,OAAA,EAAQ,KAAM;AAC5F,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,SAAS,CAAA;AAE1D,MAAA,MAAM,SAAA,GAAY,MAAM,KAAA,CAAM,YAAA,EAAa;AAC3C,MAAA,IAAI,CAAC,SAAA,IAAa,SAAA,CAAU,MAAA,KAAW,CAAA,EAAG;AACxC,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,0CAA0C,CAAA;AAAA,MACpF;AAEA,MAAA,MAAM,cAAc,SAAA,CAAU,IAAA,CAAK,CAAA,MAAA,KAAU,MAAA,CAAO,OAAO,aAAa,CAAA;AACxE,MAAA,IAAI,CAAC,WAAA,EAAa;AAChB,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,qBAAA,EAAwB,aAAa,cAAc,CAAA;AAAA,MAC7F;AAEA,MAAA,MAAM,QAAA,GACJ,SAAA,EAAW,OAAA,IAAW,SAAA,EAAW,QAAA,GAAW,CAAA,EAAG,SAAA,CAAU,QAAQ,CAAA,CAAA,EAAI,SAAA,CAAU,OAAO,CAAA,CAAA,GAAK,WAAA,CAAY,KAAA;AAEzG,MAAA,MAAM,OAAA,GAAU;AAAA,QACd,GAAG,WAAA;AAAA,QACH,KAAA,EAAO,QAAA;AAAA,QACP,GAAI,UAAA,KAAe,MAAA,GAAY,EAAE,UAAA,KAAe,EAAC;AAAA,QACjD,GAAI,OAAA,KAAY,MAAA,GAAY,EAAE,OAAA,KAAY;AAAC,OAC7C;AAEA,MAAA,KAAA,CAAM,uBAAuB,OAAO,CAAA;AAEpC,MAAA,OAAO,EAAE,SAAS,6BAAA,EAA8B;AAAA,IAClD,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,oCAAoC,CAAA;AAAA,IAChE;AAAA,EACF;AACF,CAAC;AAEM,IAAM,gCAAgC,WAAA,CAAY;AAAA,EACvD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,kCAAA;AAAA,EACN,YAAA,EAAc,QAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,oBAAA;AAAA,EAChB,OAAA,EAAS,iCAAA;AAAA,EACT,WAAA,EAAa,uEAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,UAAA,EAAY,IAAA;AAAA,EACZ,SAAS,YAAY;AACnB,IAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,4DAA4D,CAAA;AAAA,EACtG;AACF,CAAC;AAEM,IAAM,2CAA2C,WAAA,CAAY;AAAA,EAClE,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,sCAAA;AAAA,EACN,YAAA,EAAc,QAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,oBAAA;AAAA,EAChB,OAAA,EAAS,kCAAA;AAAA,EACT,WAAA,EACE,+GAAA;AAAA,EACF,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,UAAA,EAAY,IAAA;AAAA,EACZ,SAAS,YAAY;AACnB,IAAA,IAAI;AACF,MAAA,MAAM,IAAI,WAAA,CAAY;AAAA,QACpB,UAAU,aAAA,CAAc,IAAA;AAAA,QACxB,QAAQ,WAAA,CAAY,aAAA;AAAA,QACpB,EAAA,EAAI,qBAAA;AAAA,QACJ,IAAA,EAAM;AAAA,OACP,CAAA;AAAA,IACH,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,gCAAgC,CAAA;AAAA,IAC5D;AAAA,EACF;AACF,CAAC;AAEM,IAAM,qCAAqC,WAAA,CAAY;AAAA,EAC5D,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,gCAAA;AAAA,EACN,YAAA,EAAc,QAAA;AAAA,EACd,eAAA,EAAiB,iBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,oBAAA;AAAA,EAChB,OAAA,EAAS,kCAAA;AAAA,EACT,WAAA,EACE,+GAAA;AAAA,EACF,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,UAAA,EAAY,IAAA;AAAA,EACZ,SAAS,wCAAA,CAAyC;AACpD,CAAC","file":"chunk-OSLIOPFU.js","sourcesContent":["import type { Agent, AgentModelManagerConfig } from '@mastra/core/agent';\nimport { ErrorCategory, ErrorDomain, MastraError } from '@mastra/core/error';\nimport { PROVIDER_REGISTRY } from '@mastra/core/llm';\nimport type { SystemMessage } from '@mastra/core/llm';\nimport type { InputProcessor, OutputProcessor } from '@mastra/core/processors';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport { stringify } from 'superjson';\nimport { z } from 'zod';\n\nimport { HTTPException } from '../http-exception';\nimport {\n agentIdPathParams,\n listAgentsResponseSchema,\n serializedAgentSchema,\n agentExecutionBodySchema,\n generateResponseSchema,\n streamResponseSchema,\n providersResponseSchema,\n approveToolCallBodySchema,\n declineToolCallBodySchema,\n toolCallResponseSchema,\n updateAgentModelBodySchema,\n reorderAgentModelListBodySchema,\n updateAgentModelInModelListBodySchema,\n modelManagementResponseSchema,\n modelConfigIdPathParams,\n} from '../schemas/agents';\nimport type { ServerRoute } from '../server-adapter/routes';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\n\nimport { handleError } from './error';\nimport { sanitizeBody, validateBody } from './utils';\n\nexport interface SerializedProcessor {\n id: string;\n name?: string;\n}\n\nexport interface SerializedTool {\n id: string;\n description?: string;\n inputSchema?: string;\n outputSchema?: string;\n requireApproval?: boolean;\n}\n\ninterface SerializedToolInput {\n id?: string;\n description?: string;\n inputSchema?: { jsonSchema?: unknown } | unknown;\n outputSchema?: { jsonSchema?: unknown } | unknown;\n}\n\nexport interface SerializedWorkflow {\n name: string;\n steps?: Record<string, { id: string; description?: string }>;\n}\n\nexport interface SerializedAgent {\n name: string;\n description?: string;\n instructions?: SystemMessage;\n tools: Record<string, SerializedTool>;\n agents: Record<string, SerializedAgentDefinition>;\n workflows: Record<string, SerializedWorkflow>;\n inputProcessors: SerializedProcessor[];\n outputProcessors: SerializedProcessor[];\n provider?: string;\n modelId?: string;\n modelVersion?: string;\n modelList?: Array<\n Omit<AgentModelManagerConfig, 'model'> & {\n model: {\n modelId: string;\n provider: string;\n modelVersion: string;\n };\n }\n >;\n // We can't use the true types here because they are not serializable\n defaultOptions?: Record<string, unknown>;\n defaultGenerateOptionsLegacy?: Record<string, unknown>;\n defaultStreamOptionsLegacy?: Record<string, unknown>;\n}\n\nexport interface SerializedAgentWithId extends SerializedAgent {\n id: string;\n}\n\nexport async function getSerializedAgentTools(\n tools: Record<string, SerializedToolInput>,\n): Promise<Record<string, SerializedTool>> {\n return Object.entries(tools || {}).reduce<Record<string, SerializedTool>>((acc, [key, tool]) => {\n const toolId = tool.id ?? `tool-${key}`;\n\n let inputSchemaForReturn: string | undefined = undefined;\n let outputSchemaForReturn: string | undefined = undefined;\n\n try {\n if (tool.inputSchema) {\n if (tool.inputSchema && typeof tool.inputSchema === 'object' && 'jsonSchema' in tool.inputSchema) {\n inputSchemaForReturn = stringify(tool.inputSchema.jsonSchema);\n } else if (typeof tool.inputSchema === 'function') {\n const inputSchema = tool.inputSchema();\n if (inputSchema && inputSchema.jsonSchema) {\n inputSchemaForReturn = stringify(inputSchema.jsonSchema);\n }\n } else if (tool.inputSchema) {\n inputSchemaForReturn = stringify(zodToJsonSchema(tool.inputSchema as Parameters<typeof zodToJsonSchema>[0]));\n }\n }\n\n if (tool.outputSchema) {\n if (tool.outputSchema && typeof tool.outputSchema === 'object' && 'jsonSchema' in tool.outputSchema) {\n outputSchemaForReturn = stringify(tool.outputSchema.jsonSchema);\n } else if (typeof tool.outputSchema === 'function') {\n const outputSchema = tool.outputSchema();\n if (outputSchema && outputSchema.jsonSchema) {\n outputSchemaForReturn = stringify(outputSchema.jsonSchema);\n }\n } else if (tool.outputSchema) {\n outputSchemaForReturn = stringify(\n zodToJsonSchema(tool.outputSchema as Parameters<typeof zodToJsonSchema>[0]),\n );\n }\n }\n } catch (error) {\n console.error(`Error getting serialized tool`, {\n toolId: tool.id,\n error,\n });\n }\n\n acc[key] = {\n ...tool,\n id: toolId,\n inputSchema: inputSchemaForReturn,\n outputSchema: outputSchemaForReturn,\n };\n return acc;\n }, {});\n}\n\nexport function getSerializedProcessors(processors: (InputProcessor | OutputProcessor)[]): SerializedProcessor[] {\n return processors.map(processor => {\n // Processors are class instances or objects with a name property\n // Use the name property if available, otherwise fall back to constructor name\n return {\n id: processor.id,\n name: processor.name || processor.constructor.name,\n };\n });\n}\n\ninterface SerializedAgentDefinition {\n id: string;\n name: string;\n}\n\nasync function getSerializedAgentDefinition({\n agent,\n requestContext,\n}: {\n agent: Agent;\n requestContext: RequestContext;\n}): Promise<Record<string, SerializedAgentDefinition>> {\n let serializedAgentAgents: Record<string, SerializedAgentDefinition> = {};\n\n if ('listAgents' in agent) {\n const agents = await agent.listAgents({ requestContext });\n serializedAgentAgents = Object.entries(agents || {}).reduce<Record<string, SerializedAgentDefinition>>(\n (acc, [key, agent]) => {\n return {\n ...acc,\n [key]: { id: agent.id, name: agent.name },\n };\n },\n {},\n );\n }\n return serializedAgentAgents;\n}\n\nasync function formatAgentList({\n id,\n mastra,\n agent,\n requestContext,\n}: {\n id: string;\n mastra: Context['mastra'];\n agent: Agent;\n requestContext: RequestContext;\n}): Promise<SerializedAgentWithId> {\n const description = agent.getDescription();\n const instructions = await agent.getInstructions({ requestContext });\n const tools = await agent.listTools({ requestContext });\n const llm = await agent.getLLM({ requestContext });\n const defaultGenerateOptionsLegacy = await agent.getDefaultGenerateOptionsLegacy({ requestContext });\n const defaultStreamOptionsLegacy = await agent.getDefaultStreamOptionsLegacy({ requestContext });\n const defaultOptions = await agent.getDefaultOptions({ requestContext });\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows: Record<\n string,\n { name: string; steps?: Record<string, { id: string; description?: string }> }\n > = {};\n\n if ('listWorkflows' in agent) {\n const logger = mastra.getLogger();\n try {\n const workflows = await agent.listWorkflows({ requestContext });\n serializedAgentWorkflows = Object.entries(workflows || {}).reduce<\n Record<string, { name: string; steps?: Record<string, { id: string; description?: string }> }>\n >((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name || 'Unnamed workflow',\n },\n };\n }, {});\n } catch (error) {\n logger.error('Error getting workflows for agent', { agentName: agent.name, error });\n }\n }\n\n const serializedAgentAgents = await getSerializedAgentDefinition({ agent, requestContext });\n\n // Get and serialize processors\n const inputProcessors = await agent.listInputProcessors(requestContext);\n const outputProcessors = await agent.listOutputProcessors(requestContext);\n const serializedInputProcessors = getSerializedProcessors(inputProcessors);\n const serializedOutputProcessors = getSerializedProcessors(outputProcessors);\n\n const model = llm?.getModel();\n const models = await agent.getModelList(requestContext);\n const modelList = models?.map(md => ({\n ...md,\n model: {\n modelId: md.model.modelId,\n provider: md.model.provider,\n modelVersion: md.model.specificationVersion,\n },\n }));\n\n return {\n id: agent.id || id,\n name: agent.name,\n description,\n instructions,\n agents: serializedAgentAgents,\n tools: serializedAgentTools,\n workflows: serializedAgentWorkflows,\n inputProcessors: serializedInputProcessors,\n outputProcessors: serializedOutputProcessors,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n defaultOptions,\n modelList,\n defaultGenerateOptionsLegacy,\n defaultStreamOptionsLegacy,\n };\n}\n\nexport async function getAgentFromSystem({ mastra, agentId }: { mastra: Context['mastra']; agentId: string }) {\n const logger = mastra.getLogger();\n\n if (!agentId) {\n throw new HTTPException(400, { message: 'Agent ID is required' });\n }\n\n let agent;\n\n try {\n agent = mastra.getAgentById(agentId);\n } catch (error) {\n logger.debug('Error getting agent from mastra, searching agents for agent', error);\n }\n\n if (!agent) {\n logger.debug(`Agent ${agentId} not found, looking through sub-agents`);\n const agents = mastra.listAgents();\n if (Object.keys(agents || {}).length) {\n for (const [_, ag] of Object.entries(agents)) {\n try {\n const subAgents = await ag.listAgents();\n\n if (subAgents[agentId]) {\n agent = subAgents[agentId];\n break;\n }\n } catch (error) {\n logger.debug('Error getting agent from agent', error);\n }\n }\n }\n }\n\n if (!agent) {\n throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n }\n\n return agent;\n}\n\nasync function formatAgent({\n mastra,\n agent,\n requestContext,\n isPlayground,\n}: {\n mastra: Context['mastra'];\n agent: Agent;\n requestContext: RequestContext;\n isPlayground: boolean;\n}): Promise<SerializedAgent> {\n const description = agent.getDescription();\n const tools = await agent.listTools({ requestContext });\n\n const serializedAgentTools = await getSerializedAgentTools(tools);\n\n let serializedAgentWorkflows: Record<\n string,\n { name: string; steps: Record<string, { id: string; description?: string }> }\n > = {};\n\n if ('listWorkflows' in agent) {\n const logger = mastra.getLogger();\n try {\n const workflows = await agent.listWorkflows({ requestContext });\n\n serializedAgentWorkflows = Object.entries(workflows || {}).reduce<\n Record<string, { name: string; steps: Record<string, { id: string; description?: string }> }>\n >((acc, [key, workflow]) => {\n return {\n ...acc,\n [key]: {\n name: workflow.name || 'Unnamed workflow',\n steps: Object.entries(workflow.steps).reduce<Record<string, { id: string; description?: string }>>(\n (acc, [key, step]) => {\n return {\n ...acc,\n [key]: {\n id: step.id,\n description: step.description,\n },\n };\n },\n {},\n ),\n },\n };\n }, {});\n } catch (error) {\n logger.error('Error getting workflows for agent', { agentName: agent.name, error });\n }\n }\n\n let proxyRequestContext = requestContext;\n if (isPlayground) {\n proxyRequestContext = new Proxy(requestContext, {\n get(target, prop) {\n if (prop === 'get') {\n return function (key: string) {\n const value = target.get(key);\n return value ?? `<${key}>`;\n };\n }\n return Reflect.get(target, prop);\n },\n });\n }\n\n const instructions = await agent.getInstructions({ requestContext: proxyRequestContext });\n const llm = await agent.getLLM({ requestContext });\n const defaultGenerateOptionsLegacy = await agent.getDefaultGenerateOptionsLegacy({\n requestContext: proxyRequestContext,\n });\n const defaultStreamOptionsLegacy = await agent.getDefaultStreamOptionsLegacy({ requestContext: proxyRequestContext });\n const defaultOptions = await agent.getDefaultOptions({ requestContext: proxyRequestContext });\n\n const model = llm?.getModel();\n const models = await agent.getModelList(requestContext);\n const modelList = models?.map(md => ({\n ...md,\n model: {\n modelId: md.model.modelId,\n provider: md.model.provider,\n modelVersion: md.model.specificationVersion,\n },\n }));\n\n const serializedAgentAgents = await getSerializedAgentDefinition({ agent, requestContext: proxyRequestContext });\n\n // Get and serialize processors\n const inputProcessors = await agent.listInputProcessors(proxyRequestContext);\n const outputProcessors = await agent.listOutputProcessors(proxyRequestContext);\n const serializedInputProcessors = getSerializedProcessors(inputProcessors);\n const serializedOutputProcessors = getSerializedProcessors(outputProcessors);\n\n return {\n name: agent.name,\n description,\n instructions,\n tools: serializedAgentTools,\n agents: serializedAgentAgents,\n workflows: serializedAgentWorkflows,\n inputProcessors: serializedInputProcessors,\n outputProcessors: serializedOutputProcessors,\n provider: llm?.getProvider(),\n modelId: llm?.getModelId(),\n modelVersion: model?.specificationVersion,\n modelList,\n defaultOptions,\n defaultGenerateOptionsLegacy,\n defaultStreamOptionsLegacy,\n };\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_AGENTS_ROUTE = createRoute({\n method: 'GET',\n path: '/api/agents',\n responseType: 'json',\n responseSchema: listAgentsResponseSchema,\n summary: 'List all agents',\n description: 'Returns a list of all available agents in the system',\n tags: ['Agents'],\n handler: async ({ mastra, requestContext }) => {\n try {\n const agents = mastra.listAgents();\n\n const serializedAgentsMap = await Promise.all(\n Object.entries(agents).map(async ([id, agent]) => {\n return formatAgentList({ id, mastra, agent, requestContext });\n }),\n );\n\n const serializedAgents = serializedAgentsMap.reduce<Record<string, (typeof serializedAgentsMap)[number]>>(\n (acc, { id, ...rest }) => {\n acc[id] = { id, ...rest };\n return acc;\n },\n {},\n );\n\n return serializedAgents;\n } catch (error) {\n return handleError(error, 'Error getting agents');\n }\n },\n});\n\nexport const GET_AGENT_BY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/api/agents/:agentId',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: serializedAgentSchema,\n summary: 'Get agent by ID',\n description: 'Returns details for a specific agent including configuration, tools, and memory settings',\n tags: ['Agents'],\n handler: async ({ agentId, mastra, requestContext }) => {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n const isPlayground = false; // TODO: Get from context if needed\n const result = await formatAgent({\n mastra,\n agent,\n requestContext,\n isPlayground,\n });\n return result;\n } catch (error) {\n return handleError(error, 'Error getting agent');\n }\n },\n});\n\nexport const GENERATE_AGENT_ROUTE: ServerRoute<\n z.infer<typeof agentIdPathParams> & z.infer<typeof agentExecutionBodySchema>,\n unknown\n> = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/generate',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: generateResponseSchema,\n summary: 'Generate agent response',\n description: 'Executes an agent with the provided messages and returns the complete response',\n tags: ['Agents'],\n handler: async ({ agentId, mastra, abortSignal, ...params }) => {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(params, ['tools']);\n\n const { messages, ...rest } = params;\n\n validateBody({ messages });\n\n const result = await agent.generate(messages, {\n ...rest,\n abortSignal,\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error generating from agent');\n }\n },\n});\n\n// Legacy routes (deprecated)\nexport const GENERATE_LEGACY_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/generate-legacy',\n responseType: 'json' as const,\n pathParamSchema: agentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: generateResponseSchema,\n summary: '[DEPRECATED] Generate with legacy format',\n description: 'Legacy endpoint for generating agent responses. Use /api/agents/:agentId/generate instead.',\n tags: ['Agents', 'Legacy'],\n handler: async ({ mastra, agentId, abortSignal, ...params }) => {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(params, ['tools']);\n\n const { messages, resourceId, resourceid, threadId, ...rest } = params;\n // Use resourceId if provided, fall back to resourceid (deprecated)\n const finalResourceId = resourceId ?? resourceid;\n\n validateBody({ messages });\n\n if ((threadId && !finalResourceId) || (!threadId && finalResourceId)) {\n throw new HTTPException(400, { message: 'Both threadId or resourceId must be provided' });\n }\n\n const result = await agent.generateLegacy(messages, {\n ...rest,\n abortSignal,\n resourceId: finalResourceId ?? '',\n threadId: threadId ?? '',\n });\n\n return result;\n } catch (error) {\n return handleError(error, 'Error generating from agent');\n }\n },\n});\n\nexport const STREAM_GENERATE_LEGACY_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/stream-legacy',\n responseType: 'datastream-response' as const,\n pathParamSchema: agentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: streamResponseSchema,\n summary: '[DEPRECATED] Stream with legacy format',\n description: 'Legacy endpoint for streaming agent responses. Use /api/agents/:agentId/stream instead.',\n tags: ['Agents', 'Legacy'],\n handler: async ({ mastra, agentId, abortSignal, ...params }) => {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(params, ['tools']);\n\n const { messages, resourceId, resourceid, threadId, ...rest } = params;\n // Use resourceId if provided, fall back to resourceid (deprecated)\n const finalResourceId = resourceId ?? resourceid;\n\n validateBody({ messages });\n\n if ((threadId && !finalResourceId) || (!threadId && finalResourceId)) {\n throw new HTTPException(400, { message: 'Both threadId or resourceId must be provided' });\n }\n\n const streamResult = await agent.streamLegacy(messages, {\n ...rest,\n abortSignal,\n resourceId: finalResourceId ?? '',\n threadId: threadId ?? '',\n });\n\n const streamResponse = rest.output\n ? streamResult.toTextStreamResponse({\n headers: {\n 'Transfer-Encoding': 'chunked',\n },\n })\n : streamResult.toDataStreamResponse({\n sendUsage: true,\n sendReasoning: true,\n getErrorMessage: (error: any) => {\n return `An error occurred while processing your request. ${error instanceof Error ? error.message : JSON.stringify(error)}`;\n },\n headers: {\n 'Transfer-Encoding': 'chunked',\n },\n });\n\n return streamResponse;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n },\n});\n\nexport const GET_PROVIDERS_ROUTE = createRoute({\n method: 'GET',\n path: '/api/agents/providers',\n responseType: 'json',\n responseSchema: providersResponseSchema,\n summary: 'List AI providers',\n description: 'Returns a list of all configured AI model providers',\n tags: ['Agents'],\n handler: async () => {\n try {\n const providers = Object.entries(PROVIDER_REGISTRY).map(([id, provider]) => {\n // Check if the provider is connected by checking for its API key env var(s)\n const envVars = Array.isArray(provider.apiKeyEnvVar) ? provider.apiKeyEnvVar : [provider.apiKeyEnvVar];\n const connected = envVars.every(envVar => !!process.env[envVar]);\n\n return {\n id,\n name: provider.name,\n label: (provider as any).label || provider.name,\n description: (provider as any).description || '',\n envVar: provider.apiKeyEnvVar,\n connected,\n docUrl: provider.docUrl,\n models: [...provider.models], // Convert readonly array to regular array\n };\n });\n return { providers };\n } catch (error) {\n return handleError(error, 'Error fetching providers');\n }\n },\n});\n\nexport const GENERATE_AGENT_VNEXT_ROUTE: ServerRoute<\n z.infer<typeof agentIdPathParams> & z.infer<typeof agentExecutionBodySchema>,\n unknown\n> = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/generate/vnext',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: generateResponseSchema,\n summary: 'Generate a response from an agent',\n description: 'Generate a response from an agent',\n tags: ['Agents'],\n handler: GENERATE_AGENT_ROUTE.handler,\n});\n\nexport const STREAM_GENERATE_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/stream',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n pathParamSchema: agentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: streamResponseSchema,\n summary: 'Stream agent response',\n description: 'Executes an agent with the provided messages and streams the response in real-time',\n tags: ['Agents'],\n handler: async ({ mastra, agentId, abortSignal, ...params }) => {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(params, ['tools']);\n\n const { messages, ...rest } = params;\n validateBody({ messages });\n\n const streamResult = await agent.stream(messages, {\n ...rest,\n abortSignal,\n });\n\n return streamResult.fullStream;\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n },\n});\n\nexport const STREAM_GENERATE_VNEXT_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/stream/vnext',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: streamResponseSchema,\n summary: 'Stream a response from an agent',\n description: '[DEPRECATED] This endpoint is deprecated. Please use /stream instead.',\n tags: ['Agents'],\n deprecated: true,\n handler: STREAM_GENERATE_ROUTE.handler,\n});\n\nexport const APPROVE_TOOL_CALL_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/approve-tool-call',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n pathParamSchema: agentIdPathParams,\n bodySchema: approveToolCallBodySchema,\n responseSchema: toolCallResponseSchema,\n summary: 'Approve tool call',\n description: 'Approves a pending tool call and continues agent execution',\n tags: ['Agents', 'Tools'],\n handler: async ({ mastra, agentId, abortSignal, ...params }) => {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n if (!params.runId) {\n throw new HTTPException(400, { message: 'Run id is required' });\n }\n\n if (!params.toolCallId) {\n throw new HTTPException(400, { message: 'Tool call id is required' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(params, ['tools']);\n\n const streamResult = await agent.approveToolCall({\n ...params,\n abortSignal,\n });\n\n return streamResult.fullStream;\n } catch (error) {\n return handleError(error, 'error approving tool call');\n }\n },\n});\n\nexport const DECLINE_TOOL_CALL_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/decline-tool-call',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n pathParamSchema: agentIdPathParams,\n bodySchema: declineToolCallBodySchema,\n responseSchema: toolCallResponseSchema,\n summary: 'Decline tool call',\n description: 'Declines a pending tool call and continues agent execution without executing the tool',\n tags: ['Agents', 'Tools'],\n handler: async ({ mastra, agentId, abortSignal, ...params }) => {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n if (!params.runId) {\n throw new HTTPException(400, { message: 'Run id is required' });\n }\n\n if (!params.toolCallId) {\n throw new HTTPException(400, { message: 'Tool call id is required' });\n }\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(params, ['tools']);\n\n const streamResult = await agent.declineToolCall({\n ...params,\n abortSignal,\n });\n\n return streamResult.fullStream;\n } catch (error) {\n return handleError(error, 'error declining tool call');\n }\n },\n});\n\nexport const STREAM_NETWORK_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/network',\n responseType: 'stream' as const,\n streamFormat: 'sse' as const,\n pathParamSchema: agentIdPathParams,\n bodySchema: agentExecutionBodySchema.extend({ thread: z.string().optional() }),\n responseSchema: streamResponseSchema,\n summary: 'Stream agent network',\n description: 'Executes an agent network with multiple agents and streams the response',\n tags: ['Agents'],\n handler: async ({ mastra, messages, agentId, ...params }) => {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // UI Frameworks may send \"client tools\" in the body,\n // but it interferes with llm providers tool handling, so we remove them\n sanitizeBody(params, ['tools']);\n\n validateBody({ messages });\n\n const streamResult = await agent.network(messages, {\n ...params,\n memory: {\n thread: params.thread ?? params.threadId ?? '',\n resource: params.resourceId ?? '',\n options: params.memory?.options ?? {},\n },\n });\n\n return streamResult;\n } catch (error) {\n return handleError(error, 'error streaming agent loop response');\n }\n },\n});\n\nexport const UPDATE_AGENT_MODEL_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/model',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: updateAgentModelBodySchema,\n responseSchema: modelManagementResponseSchema,\n summary: 'Update agent model',\n description: 'Updates the AI model used by the agent',\n tags: ['Agents', 'Models'],\n handler: async ({ mastra, agentId, modelId, provider }) => {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n // Use the universal Mastra router format: provider/model\n const newModel = `${provider}/${modelId}`;\n\n agent.__updateModel({ model: newModel });\n\n return { message: 'Agent model updated' };\n } catch (error) {\n return handleError(error, 'error updating agent model');\n }\n },\n});\n\nexport const RESET_AGENT_MODEL_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/model/reset',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n responseSchema: modelManagementResponseSchema,\n summary: 'Reset agent model',\n description: 'Resets the agent model to its original configuration',\n tags: ['Agents', 'Models'],\n handler: async ({ mastra, agentId }) => {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n agent.__resetToOriginalModel();\n\n return { message: 'Agent model reset to original' };\n } catch (error) {\n return handleError(error, 'error resetting agent model');\n }\n },\n});\n\nexport const REORDER_AGENT_MODEL_LIST_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/models/reorder',\n responseType: 'json',\n pathParamSchema: agentIdPathParams,\n bodySchema: reorderAgentModelListBodySchema,\n responseSchema: modelManagementResponseSchema,\n summary: 'Reorder agent model list',\n description: 'Reorders the model list for agents with multiple model configurations',\n tags: ['Agents', 'Models'],\n handler: async ({ mastra, agentId, reorderedModelIds }) => {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const modelList = await agent.getModelList();\n if (!modelList || modelList.length === 0) {\n throw new HTTPException(400, { message: 'Agent model list is not found or empty' });\n }\n\n agent.reorderModels(reorderedModelIds);\n\n return { message: 'Model list reordered' };\n } catch (error) {\n return handleError(error, 'error reordering model list');\n }\n },\n});\n\nexport const UPDATE_AGENT_MODEL_IN_MODEL_LIST_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/models/:modelConfigId',\n responseType: 'json',\n pathParamSchema: modelConfigIdPathParams,\n bodySchema: updateAgentModelInModelListBodySchema,\n responseSchema: modelManagementResponseSchema,\n summary: 'Update model in model list',\n description: 'Updates a specific model configuration in the agent model list',\n tags: ['Agents', 'Models'],\n handler: async ({ mastra, agentId, modelConfigId, model: bodyModel, maxRetries, enabled }) => {\n try {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n const modelList = await agent.getModelList();\n if (!modelList || modelList.length === 0) {\n throw new HTTPException(400, { message: 'Agent model list is not found or empty' });\n }\n\n const modelConfig = modelList.find(config => config.id === modelConfigId);\n if (!modelConfig) {\n throw new HTTPException(404, { message: `Model config with id ${modelConfigId} not found` });\n }\n\n const newModel =\n bodyModel?.modelId && bodyModel?.provider ? `${bodyModel.provider}/${bodyModel.modelId}` : modelConfig.model;\n\n const updated = {\n ...modelConfig,\n model: newModel,\n ...(maxRetries !== undefined ? { maxRetries } : {}),\n ...(enabled !== undefined ? { enabled } : {}),\n };\n\n agent.updateModelInModelList(updated);\n\n return { message: 'Model updated in model list' };\n } catch (error) {\n return handleError(error, 'error updating model in model list');\n }\n },\n});\n\nexport const STREAM_VNEXT_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/streamVNext',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: streamResponseSchema,\n summary: 'Stream a response from an agent',\n description: '[DEPRECATED] This endpoint is deprecated. Please use /stream instead.',\n tags: ['Agents'],\n deprecated: true,\n handler: async () => {\n throw new HTTPException(410, { message: 'This endpoint is deprecated. Please use /stream instead.' });\n },\n});\n\nexport const STREAM_UI_MESSAGE_VNEXT_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/stream/vnext/ui',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: streamResponseSchema,\n summary: 'Stream UI messages from an agent',\n description:\n '[DEPRECATED] This endpoint is deprecated. Please use the @mastra/ai-sdk package for uiMessage transformations',\n tags: ['Agents'],\n deprecated: true,\n handler: async () => {\n try {\n throw new MastraError({\n category: ErrorCategory.USER,\n domain: ErrorDomain.MASTRA_SERVER,\n id: 'DEPRECATED_ENDPOINT',\n text: 'This endpoint is deprecated. Please use the @mastra/ai-sdk package to for uiMessage transformations',\n });\n } catch (error) {\n return handleError(error, 'error streaming agent response');\n }\n },\n});\n\nexport const STREAM_UI_MESSAGE_DEPRECATED_ROUTE = createRoute({\n method: 'POST',\n path: '/api/agents/:agentId/stream/ui',\n responseType: 'stream',\n pathParamSchema: agentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: streamResponseSchema,\n summary: 'Stream UI messages from an agent',\n description:\n '[DEPRECATED] This endpoint is deprecated. Please use the @mastra/ai-sdk package for uiMessage transformations',\n tags: ['Agents'],\n deprecated: true,\n handler: STREAM_UI_MESSAGE_VNEXT_DEPRECATED_ROUTE.handler,\n});\n"]}
@@ -0,0 +1,74 @@
1
+ import z from 'zod';
2
+
3
+ // src/server/schemas/common.ts
4
+ var runIdSchema = z.object({
5
+ runId: z.string().describe("Unique identifier for the run")
6
+ });
7
+ var optionalRunIdSchema = z.object({
8
+ runId: z.string().optional()
9
+ });
10
+ var paginationInfoSchema = z.object({
11
+ total: z.number(),
12
+ page: z.number(),
13
+ perPage: z.union([z.number(), z.literal(false)]),
14
+ hasMore: z.boolean()
15
+ });
16
+ var createPagePaginationSchema = (defaultPerPage) => {
17
+ const baseSchema = {
18
+ page: z.coerce.number().optional().default(0)
19
+ };
20
+ if (defaultPerPage !== void 0) {
21
+ return z.object({
22
+ ...baseSchema,
23
+ perPage: z.coerce.number().optional().default(defaultPerPage)
24
+ });
25
+ } else {
26
+ return z.object({
27
+ ...baseSchema,
28
+ perPage: z.coerce.number().optional()
29
+ });
30
+ }
31
+ };
32
+ var createOffsetPaginationSchema = (defaultLimit) => {
33
+ const baseSchema = {
34
+ offset: z.coerce.number().optional().default(0)
35
+ };
36
+ if (defaultLimit !== void 0) {
37
+ return z.object({
38
+ ...baseSchema,
39
+ limit: z.coerce.number().optional().default(defaultLimit)
40
+ });
41
+ } else {
42
+ return z.object({
43
+ ...baseSchema,
44
+ limit: z.coerce.number().optional()
45
+ });
46
+ }
47
+ };
48
+ var tracingOptionsSchema = z.object({
49
+ metadata: z.record(z.string(), z.unknown()).optional(),
50
+ requestContextKeys: z.array(z.string()).optional(),
51
+ traceId: z.string().optional(),
52
+ parentSpanId: z.string().optional()
53
+ });
54
+ var coreMessageSchema = z.any();
55
+ var successResponseSchema = z.object({
56
+ success: z.boolean()
57
+ });
58
+ var messageResponseSchema = z.object({
59
+ message: z.string()
60
+ });
61
+ var baseLogMessageSchema = z.object({
62
+ level: z.enum(["debug", "info", "warn", "error", "silent"]),
63
+ msg: z.string(),
64
+ time: z.date(),
65
+ context: z.record(z.string(), z.unknown()).optional(),
66
+ runId: z.string().optional(),
67
+ pid: z.number(),
68
+ hostname: z.string(),
69
+ name: z.string()
70
+ });
71
+
72
+ export { baseLogMessageSchema, coreMessageSchema, createOffsetPaginationSchema, createPagePaginationSchema, messageResponseSchema, optionalRunIdSchema, paginationInfoSchema, runIdSchema, successResponseSchema, tracingOptionsSchema };
73
+ //# sourceMappingURL=chunk-PKRHEXX7.js.map
74
+ //# sourceMappingURL=chunk-PKRHEXX7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/schemas/common.ts"],"names":[],"mappings":"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","file":"chunk-PKRHEXX7.js","sourcesContent":["import z from 'zod';\n\n// Path parameter schemas\nexport const runIdSchema = z.object({\n runId: z.string().describe('Unique identifier for the run'),\n});\n\n/**\n * Query parameter schema for runId (optional)\n * Used by create-run route where runId is optional\n */\nexport const optionalRunIdSchema = z.object({\n runId: z.string().optional(),\n});\n\n// ============================================================================\n// Pagination Schemas\n// ============================================================================\n\n/**\n * Pagination response info\n * Used across all paginated endpoints\n */\nexport const paginationInfoSchema = z.object({\n total: z.number(),\n page: z.number(),\n perPage: z.union([z.number(), z.literal(false)]),\n hasMore: z.boolean(),\n});\n\n/**\n * Factory function for page/perPage pagination query params\n * @param defaultPerPage - Default value for perPage (omit for no default)\n */\nexport const createPagePaginationSchema = (defaultPerPage?: number) => {\n const baseSchema = {\n page: z.coerce.number().optional().default(0),\n };\n\n if (defaultPerPage !== undefined) {\n return z.object({\n ...baseSchema,\n perPage: z.coerce.number().optional().default(defaultPerPage),\n });\n } else {\n return z.object({\n ...baseSchema,\n perPage: z.coerce.number().optional(),\n });\n }\n};\n\n/**\n * Factory function for offset/limit pagination query params\n * @param defaultLimit - Default value for limit (omit for no default)\n */\nexport const createOffsetPaginationSchema = (defaultLimit?: number) => {\n const baseSchema = {\n offset: z.coerce.number().optional().default(0),\n };\n\n if (defaultLimit !== undefined) {\n return z.object({\n ...baseSchema,\n limit: z.coerce.number().optional().default(defaultLimit),\n });\n } else {\n return z.object({\n ...baseSchema,\n limit: z.coerce.number().optional(),\n });\n }\n};\n\n// ============================================================================\n// Observability Schemas\n// ============================================================================\n\n/**\n * Tracing options for observability\n * Used by agents and workflows\n */\nexport const tracingOptionsSchema = z.object({\n metadata: z.record(z.string(), z.unknown()).optional(),\n requestContextKeys: z.array(z.string()).optional(),\n traceId: z.string().optional(),\n parentSpanId: z.string().optional(),\n});\n\n// ============================================================================\n// Message Schemas\n// ============================================================================\n\n/**\n * Core message schema from AI SDK\n * Represents messages exchanged with AI models\n * Content can be string, array of content parts, or object (for complex message types)\n */\nexport const coreMessageSchema = z.any();\n// .object({\n// role: z.enum(['system', 'user', 'assistant', 'tool']),\n// content: z.union([\n// z.string(),\n// z.array(\n// z\n// .object({\n// type: z.enum(['text', 'image', 'file', 'tool-call', 'tool-result']),\n// })\n// .passthrough(), // Preserve additional fields like text, image, toolCall, etc.\n// ),\n// z.any(), // For complex message content objects\n// ]),\n// })\n// .passthrough();\n\n// ============================================================================\n// Common Response Schemas\n// ============================================================================\n\n/**\n * Standard success response schema\n * Used by operations that return only a success boolean\n */\nexport const successResponseSchema = z.object({\n success: z.boolean(),\n});\n\n/**\n * Standard message response schema\n * Used by operations that return only a message string\n */\nexport const messageResponseSchema = z.object({\n message: z.string(),\n});\n\n// ============================================================================\n// Logging Schemas\n// ============================================================================\n\n/**\n * Base log message schema\n */\nexport const baseLogMessageSchema = z.object({\n level: z.enum(['debug', 'info', 'warn', 'error', 'silent']),\n msg: z.string(),\n time: z.date(),\n context: z.record(z.string(), z.unknown()).optional(),\n runId: z.string().optional(),\n pid: z.number(),\n hostname: z.string(),\n name: z.string(),\n});\n"]}
@@ -0,0 +1,296 @@
1
+ 'use strict';
2
+
3
+ var chunkH2RMXG2Q_cjs = require('./chunk-H2RMXG2Q.cjs');
4
+ var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
5
+ var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
6
+ var zod = require('zod');
7
+
8
+ // src/server/handlers/mcp.ts
9
+ var mcp_exports = {};
10
+ chunkO7I5CWRX_cjs.__export(mcp_exports, {
11
+ EXECUTE_MCP_SERVER_TOOL_ROUTE: () => EXECUTE_MCP_SERVER_TOOL_ROUTE,
12
+ GET_MCP_SERVER_DETAIL_ROUTE: () => GET_MCP_SERVER_DETAIL_ROUTE,
13
+ GET_MCP_SERVER_TOOL_DETAIL_ROUTE: () => GET_MCP_SERVER_TOOL_DETAIL_ROUTE,
14
+ LIST_MCP_SERVERS_ROUTE: () => LIST_MCP_SERVERS_ROUTE,
15
+ LIST_MCP_SERVER_TOOLS_ROUTE: () => LIST_MCP_SERVER_TOOLS_ROUTE,
16
+ MCP_HTTP_TRANSPORT_ROUTE: () => MCP_HTTP_TRANSPORT_ROUTE,
17
+ MCP_SSE_MESSAGES_ROUTE: () => MCP_SSE_MESSAGES_ROUTE,
18
+ MCP_SSE_TRANSPORT_ROUTE: () => MCP_SSE_TRANSPORT_ROUTE
19
+ });
20
+ var mcpServerIdPathParams = zod.z.object({
21
+ serverId: zod.z.string().describe("MCP server ID")
22
+ });
23
+ var mcpServerDetailPathParams = zod.z.object({
24
+ id: zod.z.string().describe("MCP server ID")
25
+ });
26
+ var mcpServerToolPathParams = zod.z.object({
27
+ serverId: zod.z.string().describe("MCP server ID"),
28
+ toolId: zod.z.string().describe("Tool ID")
29
+ });
30
+ var executeToolBodySchema = zod.z.object({
31
+ data: zod.z.unknown().optional()
32
+ });
33
+ var listMcpServersQuerySchema = zod.z.object({
34
+ limit: zod.z.coerce.number().optional(),
35
+ offset: zod.z.coerce.number().optional()
36
+ });
37
+ var getMcpServerDetailQuerySchema = zod.z.object({
38
+ version: zod.z.string().optional()
39
+ });
40
+ var versionDetailSchema = zod.z.object({
41
+ version: zod.z.string(),
42
+ release_date: zod.z.string(),
43
+ is_latest: zod.z.boolean()
44
+ });
45
+ var serverInfoSchema = zod.z.object({
46
+ id: zod.z.string(),
47
+ name: zod.z.string(),
48
+ version_detail: versionDetailSchema
49
+ });
50
+ var listMcpServersResponseSchema = zod.z.object({
51
+ servers: zod.z.array(serverInfoSchema),
52
+ total_count: zod.z.number(),
53
+ next: zod.z.string().nullable()
54
+ });
55
+ var serverDetailSchema = zod.z.object({
56
+ id: zod.z.string(),
57
+ name: zod.z.string(),
58
+ description: zod.z.string().optional(),
59
+ version_detail: versionDetailSchema,
60
+ package_canonical: zod.z.string().optional(),
61
+ packages: zod.z.array(zod.z.unknown()).optional(),
62
+ remotes: zod.z.array(zod.z.unknown()).optional()
63
+ });
64
+ var mcpToolInfoSchema = zod.z.object({
65
+ name: zod.z.string(),
66
+ description: zod.z.string().optional(),
67
+ inputSchema: zod.z.unknown(),
68
+ outputSchema: zod.z.unknown().optional(),
69
+ toolType: zod.z.string().optional()
70
+ });
71
+ var listMcpServerToolsResponseSchema = zod.z.object({
72
+ tools: zod.z.array(mcpToolInfoSchema)
73
+ });
74
+ var executeToolResponseSchema = zod.z.object({
75
+ result: zod.z.unknown()
76
+ });
77
+ zod.z.object({
78
+ jsonrpc: zod.z.literal("2.0"),
79
+ error: zod.z.object({
80
+ code: zod.z.number(),
81
+ message: zod.z.string()
82
+ }),
83
+ id: zod.z.null()
84
+ });
85
+
86
+ // src/server/handlers/mcp.ts
87
+ var LIST_MCP_SERVERS_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
88
+ method: "GET",
89
+ path: "/api/mcp/v0/servers",
90
+ responseType: "json",
91
+ queryParamSchema: listMcpServersQuerySchema,
92
+ responseSchema: listMcpServersResponseSchema,
93
+ summary: "List MCP servers",
94
+ description: "Returns a list of registered MCP servers with pagination support",
95
+ tags: ["MCP"],
96
+ handler: async ({ mastra, limit, offset }) => {
97
+ if (!mastra || typeof mastra.listMCPServers !== "function") {
98
+ throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Mastra instance or listMCPServers method not available" });
99
+ }
100
+ const servers = mastra.listMCPServers();
101
+ if (!servers) {
102
+ return { servers: [], total_count: 0, next: null };
103
+ }
104
+ const serverList = Object.values(servers);
105
+ const totalCount = serverList.length;
106
+ const actualOffset = offset ?? 0;
107
+ let paginatedServers = serverList;
108
+ let nextUrl = null;
109
+ if (limit !== void 0) {
110
+ paginatedServers = serverList.slice(actualOffset, actualOffset + limit);
111
+ if (actualOffset + limit < totalCount) {
112
+ nextUrl = `/api/mcp/v0/servers?limit=${limit}&offset=${actualOffset + limit}`;
113
+ }
114
+ }
115
+ const serverInfoList = paginatedServers.map((server) => server.getServerInfo());
116
+ return {
117
+ servers: serverInfoList,
118
+ total_count: totalCount,
119
+ next: nextUrl
120
+ };
121
+ }
122
+ });
123
+ var GET_MCP_SERVER_DETAIL_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
124
+ method: "GET",
125
+ path: "/api/mcp/v0/servers/:id",
126
+ responseType: "json",
127
+ pathParamSchema: mcpServerDetailPathParams,
128
+ queryParamSchema: getMcpServerDetailQuerySchema,
129
+ responseSchema: serverDetailSchema,
130
+ summary: "Get MCP server details",
131
+ description: "Returns detailed information about a specific MCP server",
132
+ tags: ["MCP"],
133
+ handler: async ({ mastra, id, version }) => {
134
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
135
+ throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
136
+ }
137
+ const server = mastra.getMCPServerById(id);
138
+ if (!server) {
139
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `MCP server with ID '${id}' not found` });
140
+ }
141
+ const serverDetail = server.getServerDetail();
142
+ if (version && serverDetail.version_detail.version !== version) {
143
+ throw new chunk64ITUOXI_cjs.HTTPException(404, {
144
+ message: `MCP server with ID '${id}' found, but not version '${version}'. Available version: ${serverDetail.version_detail.version}`
145
+ });
146
+ }
147
+ return serverDetail;
148
+ }
149
+ });
150
+ var LIST_MCP_SERVER_TOOLS_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
151
+ method: "GET",
152
+ path: "/api/mcp/:serverId/tools",
153
+ responseType: "json",
154
+ pathParamSchema: mcpServerIdPathParams,
155
+ responseSchema: listMcpServerToolsResponseSchema,
156
+ summary: "List MCP server tools",
157
+ description: "Returns a list of tools available on the specified MCP server",
158
+ tags: ["MCP"],
159
+ handler: async ({ mastra, serverId }) => {
160
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
161
+ throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
162
+ }
163
+ const server = mastra.getMCPServerById(serverId);
164
+ if (!server) {
165
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });
166
+ }
167
+ if (typeof server.getToolListInfo !== "function") {
168
+ throw new chunk64ITUOXI_cjs.HTTPException(501, { message: `Server '${serverId}' cannot list tools in this way.` });
169
+ }
170
+ return server.getToolListInfo();
171
+ }
172
+ });
173
+ var GET_MCP_SERVER_TOOL_DETAIL_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
174
+ method: "GET",
175
+ path: "/api/mcp/:serverId/tools/:toolId",
176
+ responseType: "json",
177
+ pathParamSchema: mcpServerToolPathParams,
178
+ responseSchema: mcpToolInfoSchema,
179
+ summary: "Get MCP server tool details",
180
+ description: "Returns detailed information about a specific tool on the MCP server",
181
+ tags: ["MCP"],
182
+ handler: async ({ mastra, serverId, toolId }) => {
183
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
184
+ throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
185
+ }
186
+ const server = mastra.getMCPServerById(serverId);
187
+ if (!server) {
188
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });
189
+ }
190
+ if (typeof server.getToolInfo !== "function") {
191
+ throw new chunk64ITUOXI_cjs.HTTPException(501, { message: `Server '${serverId}' cannot provide tool details in this way.` });
192
+ }
193
+ const toolInfo = server.getToolInfo(toolId);
194
+ if (!toolInfo) {
195
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Tool with ID '${toolId}' not found on MCP server '${serverId}'` });
196
+ }
197
+ return toolInfo;
198
+ }
199
+ });
200
+ var EXECUTE_MCP_SERVER_TOOL_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
201
+ method: "POST",
202
+ path: "/api/mcp/:serverId/tools/:toolId/execute",
203
+ responseType: "json",
204
+ pathParamSchema: mcpServerToolPathParams,
205
+ bodySchema: executeToolBodySchema,
206
+ responseSchema: executeToolResponseSchema,
207
+ summary: "Execute MCP server tool",
208
+ description: "Executes a tool on the specified MCP server with the provided arguments",
209
+ tags: ["MCP"],
210
+ handler: async ({
211
+ mastra,
212
+ serverId,
213
+ toolId,
214
+ data
215
+ }) => {
216
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
217
+ throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
218
+ }
219
+ const server = mastra.getMCPServerById(serverId);
220
+ if (!server) {
221
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });
222
+ }
223
+ if (typeof server.executeTool !== "function") {
224
+ throw new chunk64ITUOXI_cjs.HTTPException(501, { message: `Server '${serverId}' cannot execute tools in this way.` });
225
+ }
226
+ const result = await server.executeTool(toolId, data);
227
+ return { result };
228
+ }
229
+ });
230
+ var MCP_HTTP_TRANSPORT_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
231
+ method: "ALL",
232
+ path: "/api/mcp/:serverId/mcp",
233
+ responseType: "mcp-http",
234
+ pathParamSchema: mcpServerIdPathParams,
235
+ summary: "MCP HTTP Transport",
236
+ description: "Streamable HTTP transport endpoint for MCP protocol communication",
237
+ tags: ["MCP"],
238
+ handler: async ({ mastra, serverId }) => {
239
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
240
+ throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
241
+ }
242
+ const server = mastra.getMCPServerById(serverId);
243
+ if (!server) {
244
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `MCP server '${serverId}' not found` });
245
+ }
246
+ return {
247
+ server,
248
+ httpPath: `/api/mcp/${serverId}/mcp`
249
+ };
250
+ }
251
+ });
252
+ var MCP_SSE_TRANSPORT_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
253
+ method: "ALL",
254
+ path: "/api/mcp/:serverId/sse",
255
+ responseType: "mcp-sse",
256
+ pathParamSchema: mcpServerIdPathParams,
257
+ summary: "MCP SSE Transport",
258
+ description: "SSE transport endpoint for MCP protocol communication",
259
+ tags: ["MCP"],
260
+ handler: async ({ mastra, serverId }) => {
261
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
262
+ throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
263
+ }
264
+ const server = mastra.getMCPServerById(serverId);
265
+ if (!server) {
266
+ throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `MCP server '${serverId}' not found` });
267
+ }
268
+ return {
269
+ server,
270
+ ssePath: `/api/mcp/${serverId}/sse`,
271
+ messagePath: `/api/mcp/${serverId}/messages`
272
+ };
273
+ }
274
+ });
275
+ var MCP_SSE_MESSAGES_ROUTE = chunkH2RMXG2Q_cjs.createRoute({
276
+ method: "POST",
277
+ path: "/api/mcp/:serverId/messages",
278
+ responseType: "mcp-sse",
279
+ pathParamSchema: mcpServerIdPathParams,
280
+ summary: "MCP SSE Messages",
281
+ description: "Message endpoint for SSE transport (posts messages to active SSE streams)",
282
+ tags: ["MCP"],
283
+ handler: MCP_SSE_TRANSPORT_ROUTE.handler
284
+ });
285
+
286
+ exports.EXECUTE_MCP_SERVER_TOOL_ROUTE = EXECUTE_MCP_SERVER_TOOL_ROUTE;
287
+ exports.GET_MCP_SERVER_DETAIL_ROUTE = GET_MCP_SERVER_DETAIL_ROUTE;
288
+ exports.GET_MCP_SERVER_TOOL_DETAIL_ROUTE = GET_MCP_SERVER_TOOL_DETAIL_ROUTE;
289
+ exports.LIST_MCP_SERVERS_ROUTE = LIST_MCP_SERVERS_ROUTE;
290
+ exports.LIST_MCP_SERVER_TOOLS_ROUTE = LIST_MCP_SERVER_TOOLS_ROUTE;
291
+ exports.MCP_HTTP_TRANSPORT_ROUTE = MCP_HTTP_TRANSPORT_ROUTE;
292
+ exports.MCP_SSE_MESSAGES_ROUTE = MCP_SSE_MESSAGES_ROUTE;
293
+ exports.MCP_SSE_TRANSPORT_ROUTE = MCP_SSE_TRANSPORT_ROUTE;
294
+ exports.mcp_exports = mcp_exports;
295
+ //# sourceMappingURL=chunk-QCW6WANZ.cjs.map
296
+ //# sourceMappingURL=chunk-QCW6WANZ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/mcp.ts","../src/server/schemas/mcp.ts"],"names":["__export","z","createRoute","HTTPException"],"mappings":"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","file":"chunk-QCW6WANZ.cjs","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 { RuntimeContext } 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 ({ mastra, limit, offset }: RuntimeContext & { 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 const actualOffset = offset ?? 0;\n\n // Apply pagination\n let paginatedServers = serverList;\n let nextUrl: string | null = null;\n\n if (limit !== undefined) {\n paginatedServers = serverList.slice(actualOffset, actualOffset + limit);\n\n // Calculate next URL if there are more results\n if (actualOffset + limit < totalCount) {\n // Note: Full URL construction would need request context\n nextUrl = `/api/mcp/v0/servers?limit=${limit}&offset=${actualOffset + limit}`;\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 }: RuntimeContext & { 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 }: RuntimeContext & { 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 }: RuntimeContext & { 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 }: RuntimeContext & { 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 }: RuntimeContext & { 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 }: RuntimeContext & { 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';\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\nexport const listMcpServersQuerySchema = z.object({\n limit: z.coerce.number().optional(),\n offset: z.coerce.number().optional(),\n});\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"]}