@mastra/server 1.0.0-beta.5 → 1.0.0-beta.7

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 (163) hide show
  1. package/CHANGELOG.md +112 -0
  2. package/dist/{chunk-LGG3N3AV.js → chunk-3SFLFUKY.js} +4 -4
  3. package/dist/{chunk-LGG3N3AV.js.map → chunk-3SFLFUKY.js.map} +1 -1
  4. package/dist/{chunk-G7BPNX2V.js → chunk-6YWE7UPT.js} +16 -3
  5. package/dist/chunk-6YWE7UPT.js.map +1 -0
  6. package/dist/{chunk-CBDUTSTI.js → chunk-7N3PD4SV.js} +16 -12
  7. package/dist/chunk-7N3PD4SV.js.map +1 -0
  8. package/dist/{chunk-PDVJ2TTM.cjs → chunk-C3D3X2L5.cjs} +11 -9
  9. package/dist/chunk-C3D3X2L5.cjs.map +1 -0
  10. package/dist/{chunk-UCRV7PD3.js → chunk-C4J473OZ.js} +50 -37
  11. package/dist/chunk-C4J473OZ.js.map +1 -0
  12. package/dist/{chunk-RCCWKKI3.js → chunk-CT5VG7NT.js} +7 -5
  13. package/dist/chunk-CT5VG7NT.js.map +1 -0
  14. package/dist/{chunk-S6DFGBDD.cjs → chunk-DHWPHLGF.cjs} +23 -23
  15. package/dist/{chunk-S6DFGBDD.cjs.map → chunk-DHWPHLGF.cjs.map} +1 -1
  16. package/dist/{chunk-ZPZSAJAR.js → chunk-DRUNNM4C.js} +4 -4
  17. package/dist/{chunk-ZPZSAJAR.js.map → chunk-DRUNNM4C.js.map} +1 -1
  18. package/dist/{chunk-65Q7HO3Q.cjs → chunk-ESZ6V5WB.cjs} +45 -36
  19. package/dist/chunk-ESZ6V5WB.cjs.map +1 -0
  20. package/dist/{chunk-MH3A7RDQ.cjs → chunk-F4H7J6YV.cjs} +82 -71
  21. package/dist/chunk-F4H7J6YV.cjs.map +1 -0
  22. package/dist/{chunk-R6ZTXNN2.cjs → chunk-FMTSLS25.cjs} +120 -107
  23. package/dist/chunk-FMTSLS25.cjs.map +1 -0
  24. package/dist/{chunk-A6MQQTHN.js → chunk-FYY54HZC.js} +4 -4
  25. package/dist/{chunk-A6MQQTHN.js.map → chunk-FYY54HZC.js.map} +1 -1
  26. package/dist/{chunk-4O2QGUW3.js → chunk-GFF2I6UD.js} +4 -4
  27. package/dist/{chunk-4O2QGUW3.js.map → chunk-GFF2I6UD.js.map} +1 -1
  28. package/dist/{chunk-SAQSK4AG.cjs → chunk-H2RMXG2Q.cjs} +2 -2
  29. package/dist/{chunk-SAQSK4AG.cjs.map → chunk-H2RMXG2Q.cjs.map} +1 -1
  30. package/dist/{chunk-PKRHEXX7.js → chunk-HT4LP3BO.js} +19 -18
  31. package/dist/chunk-HT4LP3BO.js.map +1 -0
  32. package/dist/{chunk-Z7R7CFVF.cjs → chunk-I6LR6CPC.cjs} +10 -10
  33. package/dist/{chunk-Z7R7CFVF.cjs.map → chunk-I6LR6CPC.cjs.map} +1 -1
  34. package/dist/chunk-LBSJWPXK.cjs +312 -0
  35. package/dist/chunk-LBSJWPXK.cjs.map +1 -0
  36. package/dist/{chunk-2NW6POYK.cjs → chunk-MCYD5LW7.cjs} +19 -18
  37. package/dist/chunk-MCYD5LW7.cjs.map +1 -0
  38. package/dist/chunk-OL6U27XK.js +24488 -0
  39. package/dist/chunk-OL6U27XK.js.map +1 -0
  40. package/dist/{chunk-UZ6CYAOG.cjs → chunk-PUSD37LD.cjs} +16 -3
  41. package/dist/chunk-PUSD37LD.cjs.map +1 -0
  42. package/dist/{chunk-YLQHE2S5.js → chunk-QNVYGEJ4.js} +6 -6
  43. package/dist/{chunk-YLQHE2S5.js.map → chunk-QNVYGEJ4.js.map} +1 -1
  44. package/dist/{chunk-AUQBEMDP.cjs → chunk-S3TIWWQL.cjs} +12 -12
  45. package/dist/{chunk-AUQBEMDP.cjs.map → chunk-S3TIWWQL.cjs.map} +1 -1
  46. package/dist/{chunk-LZDCXQMX.js → chunk-SXVANU23.js} +2 -2
  47. package/dist/{chunk-LZDCXQMX.js.map → chunk-SXVANU23.js.map} +1 -1
  48. package/dist/{chunk-6KNI7VIX.js → chunk-TKL4TD2V.js} +29 -18
  49. package/dist/chunk-TKL4TD2V.js.map +1 -0
  50. package/dist/chunk-TWZCZKUD.cjs +24530 -0
  51. package/dist/chunk-TWZCZKUD.cjs.map +1 -0
  52. package/dist/{chunk-QVHQZUGJ.cjs → chunk-TYZ6ZISQ.cjs} +11 -11
  53. package/dist/{chunk-QVHQZUGJ.cjs.map → chunk-TYZ6ZISQ.cjs.map} +1 -1
  54. package/dist/{chunk-4JMHKKV3.cjs → chunk-US6Y5RLR.cjs} +41 -37
  55. package/dist/chunk-US6Y5RLR.cjs.map +1 -0
  56. package/dist/{chunk-FCHN5M25.js → chunk-UTIOKR5C.js} +16 -7
  57. package/dist/chunk-UTIOKR5C.js.map +1 -0
  58. package/dist/{chunk-R4M3BSUG.js → chunk-WE4USCF3.js} +3 -3
  59. package/dist/{chunk-R4M3BSUG.js.map → chunk-WE4USCF3.js.map} +1 -1
  60. package/dist/{chunk-IMK7366C.cjs → chunk-X43DWDXB.cjs} +12 -12
  61. package/dist/{chunk-IMK7366C.cjs.map → chunk-X43DWDXB.cjs.map} +1 -1
  62. package/dist/{chunk-MWQQRVQC.cjs → chunk-X4QMPCTP.cjs} +7 -7
  63. package/dist/{chunk-MWQQRVQC.cjs.map → chunk-X4QMPCTP.cjs.map} +1 -1
  64. package/dist/chunk-XNKZPXCY.js +302 -0
  65. package/dist/chunk-XNKZPXCY.js.map +1 -0
  66. package/dist/server/auth/defaults.d.ts +3 -0
  67. package/dist/server/auth/defaults.d.ts.map +1 -0
  68. package/dist/server/auth/helpers.d.ts +14 -0
  69. package/dist/server/auth/helpers.d.ts.map +1 -0
  70. package/dist/server/auth/index.cjs +137 -0
  71. package/dist/server/auth/index.cjs.map +1 -0
  72. package/dist/server/auth/index.d.ts +3 -0
  73. package/dist/server/auth/index.d.ts.map +1 -0
  74. package/dist/server/auth/index.js +127 -0
  75. package/dist/server/auth/index.js.map +1 -0
  76. package/dist/server/handlers/a2a.cjs +9 -9
  77. package/dist/server/handlers/a2a.d.ts.map +1 -1
  78. package/dist/server/handlers/a2a.js +1 -1
  79. package/dist/server/handlers/agent-builder.cjs +19 -19
  80. package/dist/server/handlers/agent-builder.d.ts +24 -25
  81. package/dist/server/handlers/agent-builder.d.ts.map +1 -1
  82. package/dist/server/handlers/agent-builder.js +1 -1
  83. package/dist/server/handlers/agents.cjs +23 -23
  84. package/dist/server/handlers/agents.d.ts +4 -2
  85. package/dist/server/handlers/agents.d.ts.map +1 -1
  86. package/dist/server/handlers/agents.js +1 -1
  87. package/dist/server/handlers/logs.cjs +4 -4
  88. package/dist/server/handlers/logs.js +1 -1
  89. package/dist/server/handlers/mcp.cjs +40 -0
  90. package/dist/server/handlers/mcp.cjs.map +1 -0
  91. package/dist/server/handlers/mcp.d.ts +110 -0
  92. package/dist/server/handlers/mcp.d.ts.map +1 -0
  93. package/dist/server/handlers/mcp.js +3 -0
  94. package/dist/server/handlers/mcp.js.map +1 -0
  95. package/dist/server/handlers/memory.cjs +24 -24
  96. package/dist/server/handlers/memory.d.ts +2 -2
  97. package/dist/server/handlers/memory.js +1 -1
  98. package/dist/server/handlers/observability.cjs +9 -9
  99. package/dist/server/handlers/observability.js +1 -1
  100. package/dist/server/handlers/scores.cjs +7 -7
  101. package/dist/server/handlers/scores.js +1 -1
  102. package/dist/server/handlers/tools.cjs +6 -6
  103. package/dist/server/handlers/tools.js +1 -1
  104. package/dist/server/handlers/vector.cjs +13 -13
  105. package/dist/server/handlers/vector.d.ts +2 -2
  106. package/dist/server/handlers/vector.js +1 -1
  107. package/dist/server/handlers/voice.cjs +8 -8
  108. package/dist/server/handlers/voice.d.ts.map +1 -1
  109. package/dist/server/handlers/voice.js +1 -1
  110. package/dist/server/handlers/workflows.cjs +26 -26
  111. package/dist/server/handlers/workflows.d.ts +294 -292
  112. package/dist/server/handlers/workflows.d.ts.map +1 -1
  113. package/dist/server/handlers/workflows.js +1 -1
  114. package/dist/server/handlers.cjs +36 -31
  115. package/dist/server/handlers.d.ts +1 -0
  116. package/dist/server/handlers.d.ts.map +1 -1
  117. package/dist/server/handlers.js +12 -11
  118. package/dist/server/schemas/agent-builder.d.ts +9 -0
  119. package/dist/server/schemas/agent-builder.d.ts.map +1 -1
  120. package/dist/server/schemas/common.d.ts +29 -15
  121. package/dist/server/schemas/common.d.ts.map +1 -1
  122. package/dist/server/schemas/mcp.d.ts +299 -0
  123. package/dist/server/schemas/mcp.d.ts.map +1 -0
  124. package/dist/server/schemas/memory.d.ts +4 -4
  125. package/dist/server/schemas/memory.d.ts.map +1 -1
  126. package/dist/server/schemas/vectors.d.ts +2 -2
  127. package/dist/server/schemas/workflows.d.ts +22 -28
  128. package/dist/server/schemas/workflows.d.ts.map +1 -1
  129. package/dist/server/server-adapter/index.cjs +286 -144
  130. package/dist/server/server-adapter/index.cjs.map +1 -1
  131. package/dist/server/server-adapter/index.d.ts +50 -7
  132. package/dist/server/server-adapter/index.d.ts.map +1 -1
  133. package/dist/server/server-adapter/index.js +168 -27
  134. package/dist/server/server-adapter/index.js.map +1 -1
  135. package/dist/server/server-adapter/redact.d.ts +26 -0
  136. package/dist/server/server-adapter/redact.d.ts.map +1 -0
  137. package/dist/server/server-adapter/routes/index.d.ts +11 -2
  138. package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
  139. package/dist/server/server-adapter/routes/mcp.d.ts +9 -0
  140. package/dist/server/server-adapter/routes/mcp.d.ts.map +1 -0
  141. package/dist/server/server-adapter/routes/route-builder.d.ts +3 -3
  142. package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -1
  143. package/dist/server/utils.d.ts +1 -1
  144. package/dist/server/utils.d.ts.map +1 -1
  145. package/package.json +14 -4
  146. package/dist/chunk-2NW6POYK.cjs.map +0 -1
  147. package/dist/chunk-4JMHKKV3.cjs.map +0 -1
  148. package/dist/chunk-65Q7HO3Q.cjs.map +0 -1
  149. package/dist/chunk-6KNI7VIX.js.map +0 -1
  150. package/dist/chunk-CBDUTSTI.js.map +0 -1
  151. package/dist/chunk-EI2GXZE2.js +0 -23497
  152. package/dist/chunk-EI2GXZE2.js.map +0 -1
  153. package/dist/chunk-FCHN5M25.js.map +0 -1
  154. package/dist/chunk-G7BPNX2V.js.map +0 -1
  155. package/dist/chunk-MH3A7RDQ.cjs.map +0 -1
  156. package/dist/chunk-P6BEEW5J.cjs +0 -23539
  157. package/dist/chunk-P6BEEW5J.cjs.map +0 -1
  158. package/dist/chunk-PDVJ2TTM.cjs.map +0 -1
  159. package/dist/chunk-PKRHEXX7.js.map +0 -1
  160. package/dist/chunk-R6ZTXNN2.cjs.map +0 -1
  161. package/dist/chunk-RCCWKKI3.js.map +0 -1
  162. package/dist/chunk-UCRV7PD3.js.map +0 -1
  163. package/dist/chunk-UZ6CYAOG.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/schemas/agents.ts"],"names":["z","coreMessageSchema","tracingOptionsSchema","messageResponseSchema"],"mappings":";;;;;;;;;AAIO,IAAM,iBAAA,GAAoBA,mBAAE,MAAA,CAAO;AAAA,EACxC,OAAA,EAASA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iCAAiC;AAChE,CAAC;AAEM,IAAM,gBAAA,GAAmBA,mBAAE,MAAA,CAAO;AAAA,EACvC,MAAA,EAAQA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gCAAgC;AAC9D,CAAC;AAEM,IAAM,mBAAA,GAAsB,kBAAkB,MAAA,CAAO;AAAA,EAC1D,MAAA,EAAQA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gCAAgC;AAC9D,CAAC;AAEM,IAAM,uBAAA,GAA0B,kBAAkB,MAAA,CAAO;AAAA,EAC9D,aAAA,EAAeA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,+CAA+C;AACpF,CAAC;AAKM,IAAM,yBAAA,GAA4BA,mBAAE,MAAA,CAAO;AAAA,EAChD,EAAA,EAAIA,mBAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACnB,CAAC,CAAA;AAMM,IAAM,oBAAA,GAAuBA,mBAAE,MAAA,CAAO;AAAA,EAC3C,EAAA,EAAIA,mBAAE,MAAA,EAAO;AAAA,EACb,WAAA,EAAaA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,WAAA,EAAaA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,YAAA,EAAcA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,eAAA,EAAiBA,kBAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAC/B,CAAC;AAKM,IAAM,wBAAA,GAA2BA,mBAAE,MAAA,CAAO;AAAA,EAC/C,IAAA,EAAMA,mBAAE,MAAA,EAAO;AAAA,EACf,OAAOA,kBAAA,CACJ,MAAA;AAAA,IACCA,mBAAE,MAAA,EAAO;AAAA,IACTA,mBAAE,MAAA,CAAO;AAAA,MACP,EAAA,EAAIA,mBAAE,MAAA,EAAO;AAAA,MACb,WAAA,EAAaA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAAS,KAClC;AAAA,IAEF,QAAA;AACL,CAAC,CAAA;AAKM,IAAM,+BAAA,GAAkCA,mBAAE,MAAA,CAAO;AAAA,EACtD,EAAA,EAAIA,mBAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,mBAAE,MAAA;AACV,CAAC,CAAA;AAMD,IAAM,mBAAA,GAAsBA,mBAAE,KAAA,CAAM;AAAA,EAClCA,mBAAE,MAAA,EAAO;AAAA,EACTA,kBAAA,CAAE,KAAA,CAAMA,kBAAA,CAAE,MAAA,EAAQ,CAAA;AAAA,EAClBA,mBAAE,GAAA,EAAI;AAAA;AAAA,EACNA,kBAAA,CAAE,KAAA,CAAMA,kBAAA,CAAE,GAAA,EAAK;AACjB,CAAC,CAAA;AAKD,IAAM,iBAAA,GAAoBA,mBAAE,MAAA,CAAO;AAAA,EACjC,KAAA,EAAOA,mBAAE,MAAA,CAAO;AAAA,IACd,OAAA,EAASA,mBAAE,MAAA,EAAO;AAAA,IAClB,QAAA,EAAUA,mBAAE,MAAA,EAAO;AAAA,IACnB,YAAA,EAAcA,mBAAE,MAAA;AAAO,GACxB;AAAA;AAEH,CAAC,CAAA;AAKM,IAAM,qBAAA,GAAwBA,mBAAE,MAAA,CAAO;AAAA,EAC5C,IAAA,EAAMA,mBAAE,MAAA,EAAO;AAAA,EACf,WAAA,EAAaA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EACjC,YAAA,EAAc,oBAAoB,QAAA,EAAS;AAAA,EAC3C,OAAOA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAU,oBAAoB,CAAA;AAAA,EAChD,QAAQA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAU,+BAA+B,CAAA;AAAA,EAC5D,WAAWA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAU,wBAAwB,CAAA;AAAA,EACxD,eAAA,EAAiBA,kBAAA,CAAE,KAAA,CAAM,yBAAyB,CAAA;AAAA,EAClD,gBAAA,EAAkBA,kBAAA,CAAE,KAAA,CAAM,yBAAyB,CAAA;AAAA,EACnD,QAAA,EAAUA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,OAAA,EAASA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,YAAA,EAAcA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAClC,SAAA,EAAWA,kBAAA,CAAE,KAAA,CAAM,iBAAiB,EAAE,QAAA,EAAS;AAAA,EAC/C,cAAA,EAAgBA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EACvD,4BAAA,EAA8BA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EACrE,0BAAA,EAA4BA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA;AAC5D,CAAC;AAK0C,sBAAsB,MAAA,CAAO;AAAA,EACtE,EAAA,EAAIA,mBAAE,MAAA;AACR,CAAC;AAKM,IAAM,cAAA,GAAiBA,mBAAE,MAAA,CAAO;AAAA,EACrC,EAAA,EAAIA,mBAAE,MAAA,EAAO;AAAA,EACb,IAAA,EAAMA,mBAAE,MAAA,EAAO;AAAA,EACf,KAAA,EAAOA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,WAAA,EAAaA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AAC1B,CAAC,CAAA;AAKM,IAAM,uBAAA,GAA0BA,mBAAE,MAAA,CAAO;AAAA,EAC9C,SAAA,EAAWA,kBAAA,CAAE,KAAA,CAAM,cAAc;AACnC,CAAC;AAMM,IAAM,2BAA2BA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAU,qBAAqB;AAM3E,IAAM,0BAA0BA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAU,oBAAoB;AAShF,IAAM,uBAAA,GAA0BA,mBAAE,MAAA,CAAO;AAAA,EACvC,QAAQA,kBAAA,CAAE,KAAA,CAAM,CAACA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,MAAA,CAAO,EAAE,EAAA,EAAIA,mBAAE,MAAA,EAAO,EAAG,CAAA,CAAE,WAAA,EAAa,CAAC,CAAA;AAAA,EACxE,QAAA,EAAUA,mBAAE,MAAA,EAAO;AAAA,EACnB,OAAA,EAASA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EAChD,QAAA,EAAUA,kBAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACxB,CAAC,CAAA;AAKD,IAAM,gBAAA,GAAmBA,mBAAE,KAAA,CAAM;AAAA,EAC/BA,mBAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,MAAA,EAAQ,UAAU,CAAC,CAAA;AAAA,EACnCA,kBAAA,CAAE,MAAA,CAAO,EAAE,IAAA,EAAMA,kBAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,EAAG,QAAA,EAAUA,kBAAA,CAAE,MAAA,EAAO,EAAG;AAC5D,CAAC,CAAA;AAWM,IAAM,wBAAA,GAA2BA,mBACrC,MAAA,CAAO;AAAA;AAAA,EAEN,QAAA,EAAUA,mBAAE,KAAA,CAAM;AAAA,IAChBA,kBAAA,CAAE,MAAMC,mCAAiB,CAAA;AAAA;AAAA,IACzBD,mBAAE,MAAA;AAAO;AAAA,GACV,CAAA;AAAA;AAAA,EAGD,YAAA,EAAc,oBAAoB,QAAA,EAAS;AAAA,EAC3C,MAAA,EAAQ,oBAAoB,QAAA,EAAS;AAAA,EACrC,OAAA,EAASA,kBAAA,CAAE,KAAA,CAAMC,mCAAiB,EAAE,QAAA,EAAS;AAAA;AAAA,EAG7C,MAAA,EAAQ,wBAAwB,QAAA,EAAS;AAAA,EACzC,UAAA,EAAYD,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAChC,UAAA,EAAYA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,QAAA,EAAUA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA;AAAA,EAC9B,KAAA,EAAOA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,WAAA,EAAaA,kBAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA;AAAA,EAGlC,cAAA,EAAgBA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA;AAAA,EAGvD,QAAA,EAAUA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,QAAA,EAAUA,kBAAA,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS;AAAA;AAAA,EAG3B,eAAA,EAAiBA,mBACd,MAAA,CAAO;AAAA,IACN,SAAA,EAAWA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,IAClD,MAAA,EAAQA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,IAC/C,MAAA,EAAQA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,IAC/C,GAAA,EAAKA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA;AAAS,GAC7C,EACA,QAAA,EAAS;AAAA,EACZ,aAAA,EAAeA,kBAAA,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS;AAAA;AAAA,EAGhC,aAAaA,kBAAA,CAAE,KAAA,CAAMA,mBAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,EAC1C,QAAA,EAAUA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EACjD,WAAA,EAAaA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EACpD,UAAA,EAAY,iBAAiB,QAAA,EAAS;AAAA,EACtC,mBAAA,EAAqBA,kBAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA;AAAA,EAG1C,OAAA,EAASA,mBACN,KAAA,CAAM;AAAA,IACLA,mBAAE,MAAA,CAAOA,kBAAA,CAAE,QAAO,EAAGA,kBAAA,CAAE,KAAK,CAAA;AAAA,IAC5BA,kBAAA,CAAE,MAAA;AAAA,MACAA,mBAAE,MAAA,EAAO;AAAA,MACTA,mBAAE,MAAA,CAAO;AAAA,QACP,MAAA,EAAQA,mBAAE,MAAA,EAAO;AAAA,QACjB,QAAA,EAAUA,kBAAA,CAAE,GAAA,EAAI,CAAE,QAAA;AAAS,OAC5B;AAAA;AACH,GACD,EACA,QAAA,EAAS;AAAA,EACZ,gBAAA,EAAkBA,kBAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA;AAAA,EAGvC,cAAA,EAAgBE,uCAAqB,QAAA,EAAS;AAAA;AAAA,EAG9C,MAAA,EAAQF,kBAAA,CAAE,GAAA,EAAI,CAAE,QAAA,EAAS;AAAA;AAAA,EACzB,gBAAA,EAAkBA,mBACf,MAAA,CAAO;AAAA,IACN,QAAQA,kBAAA,CAAE,MAAA,CAAO,EAAE,EAAE,WAAA,EAAY;AAAA,IACjC,KAAA,EAAOA,kBAAA,CAAE,KAAA,CAAM,CAACA,kBAAA,CAAE,MAAA,EAAO,EAAGA,kBAAA,CAAE,GAAA,EAAK,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,IAC/C,YAAA,EAAcA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAClC,mBAAA,EAAqBA,kBAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,IAC1C,aAAA,EAAeA,mBAAE,IAAA,CAAK,CAAC,UAAU,MAAA,EAAQ,UAAU,CAAC,CAAA,CAAE,QAAA,EAAS;AAAA,IAC/D,aAAA,EAAeA,kBAAA,CAAE,GAAA,EAAI,CAAE,QAAA;AAAS,GACjC,EACA,QAAA;AACL,CAAC,EACA,WAAA;AAQH,IAAM,yBAAA,GAA4BA,mBAAE,MAAA,CAAO;AAAA,EACzC,IAAA,EAAMA,mBAAE,MAAA,CAAgB,CAAA,CAAA,KAAK,MAAM,MAAA,EAAW,EAAE,OAAA,EAAS,kBAAA,EAAoB;AAC/E,CAAC,CAAA;AAEM,IAAM,qBAAA,GAAwB,0BAA0B,MAAA,CAAO;AAAA,EACpE,cAAA,EAAgBA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA;AAChD,CAAC;AAEM,IAAM,4BAAA,GAA+B,0BAA0B,MAAA,CAAO;AAAA,EAC3E,cAAA,EAAgBA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA;AAChD,CAAC;AAMM,IAAM,8BAA8BA,kBAAA,CAAE,KAAA;AAAA,EAC3CA,mBACG,MAAA,CAAO;AAAA,IACN,OAAA,EAASA,mBAAE,MAAA;AAAO,GACnB,EACA,WAAA;AAAY;AACjB;AAUA,IAAM,wBAAA,GAA2BA,mBAAE,MAAA,CAAO;AAAA,EACxC,KAAA,EAAOA,mBAAE,MAAA,EAAO;AAAA,EAChB,cAAA,EAAgBA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA,EAAS;AAAA,EACvD,UAAA,EAAYA,mBAAE,MAAA,EAAO;AAAA,EACrB,MAAA,EAAQA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACrB,CAAC,CAAA;AAKM,IAAM,yBAAA,GAA4B;AAKlC,IAAM,yBAAA,GAA4B;AAKlC,IAAM,sBAAA,GAAyBA,mBAAE,MAAA,CAAO;AAAA,EAC7C,UAAA,EAAYA,mBAAE,GAAA;AAAI;AACpB,CAAC;AASM,IAAM,0BAAA,GAA6BA,mBAAE,MAAA,CAAO;AAAA,EACjD,OAAA,EAASA,mBAAE,MAAA,EAAO;AAAA,EAClB,QAAA,EAAUA,mBAAE,MAAA;AACd,CAAC;AAKM,IAAM,+BAAA,GAAkCA,mBAAE,MAAA,CAAO;AAAA,EACtD,iBAAA,EAAmBA,kBAAA,CAAE,KAAA,CAAMA,kBAAA,CAAE,QAAQ;AACvC,CAAC;AAKM,IAAM,qCAAA,GAAwCA,mBAAE,MAAA,CAAO;AAAA,EAC5D,KAAA,EAAOA,mBACJ,MAAA,CAAO;AAAA,IACN,OAAA,EAASA,mBAAE,MAAA,EAAO;AAAA,IAClB,QAAA,EAAUA,mBAAE,MAAA;AAAO,GACpB,EACA,QAAA,EAAS;AAAA,EACZ,UAAA,EAAYA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAChC,OAAA,EAASA,kBAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AACvB,CAAC;AAKM,IAAM,6BAAA,GAAgCG;AAStC,IAAM,wBAAA,GAA2BH,mBAAE,MAAA,CAAO;AAAA,EAC/C,IAAA,EAAMA,mBAAE,MAAA,EAAO;AAAA,EACf,SAAA,EAAWA,kBAAA,CAAE,MAAA,EAAO,CAAE,QAAA;AACxB,CAAC;AAKM,IAAM,0BAAA,GAA6BA,mBAAE,MAAA,CAAO;AAAA,EACjD,SAAA,EAAWA,mBAAE,GAAA,EAAI;AAAA;AAAA,EACjB,OAAA,EAASA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,MAAA,IAAUA,kBAAA,CAAE,GAAA,EAAK,CAAA,CAAE,QAAA;AACzC,CAAC;AAKM,IAAM,8BAAA,GAAiCA,mBAAE,MAAA,CAAO;AAAA,EACrD,IAAA,EAAMA,mBAAE,MAAA;AACV,CAAC;AAKM,IAAM,yBAAA,GAA4BA,mBAAE,GAAA;AAMpC,IAAM,sBAAA,GAAyBA,mBAAE,GAAA;AACjC,IAAM,oBAAA,GAAuBA,mBAAE,GAAA;AAC/B,IAAM,mBAAA,GAAsBA,mBAAE,GAAA;AAC9B,IAAM,yBAAA,GAA4BA,mBAAE,GAAA","file":"chunk-MWQQRVQC.cjs","sourcesContent":["import z from 'zod';\nimport { tracingOptionsSchema, coreMessageSchema, messageResponseSchema } from './common';\n\n// Path parameter schemas\nexport const agentIdPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the agent'),\n});\n\nexport const toolIdPathParams = z.object({\n toolId: z.string().describe('Unique identifier for the tool'),\n});\n\nexport const agentToolPathParams = agentIdPathParams.extend({\n toolId: z.string().describe('Unique identifier for the tool'),\n});\n\nexport const modelConfigIdPathParams = agentIdPathParams.extend({\n modelConfigId: z.string().describe('Unique identifier for the model configuration'),\n});\n\n/**\n * Schema for serialized processor metadata\n */\nexport const serializedProcessorSchema = z.object({\n id: z.string(),\n name: z.string().optional(),\n});\n\n/**\n * Schema for serialized tool with JSON schemas\n * Uses passthrough() to allow additional tool properties beyond core fields\n */\nexport const serializedToolSchema = z.object({\n id: z.string(),\n description: z.string().optional(),\n inputSchema: z.string().optional(),\n outputSchema: z.string().optional(),\n requireApproval: z.boolean().optional(),\n});\n\n/**\n * Schema for serialized workflow with steps\n */\nexport const serializedWorkflowSchema = z.object({\n name: z.string(),\n steps: z\n .record(\n z.string(),\n z.object({\n id: z.string(),\n description: z.string().optional(),\n }),\n )\n .optional(),\n});\n\n/**\n * Schema for serialized agent definition (referenced by other agents)\n */\nexport const serializedAgentDefinitionSchema = z.object({\n id: z.string(),\n name: z.string(),\n});\n\n/**\n * Schema for SystemMessage type\n * Can be string, string[], or various message objects\n */\nconst systemMessageSchema = z.union([\n z.string(),\n z.array(z.string()),\n z.any(), // CoreSystemMessage or SystemModelMessage\n z.array(z.any()),\n]);\n\n/**\n * Schema for model configuration in model list\n */\nconst modelConfigSchema = z.object({\n model: z.object({\n modelId: z.string(),\n provider: z.string(),\n modelVersion: z.string(),\n }),\n // Additional fields from AgentModelManagerConfig can be added here\n});\n\n/**\n * Main schema for serialized agent representation\n */\nexport const serializedAgentSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n instructions: systemMessageSchema.optional(),\n tools: z.record(z.string(), serializedToolSchema),\n agents: z.record(z.string(), serializedAgentDefinitionSchema),\n workflows: z.record(z.string(), serializedWorkflowSchema),\n inputProcessors: z.array(serializedProcessorSchema),\n outputProcessors: z.array(serializedProcessorSchema),\n provider: z.string().optional(),\n modelId: z.string().optional(),\n modelVersion: z.string().optional(),\n modelList: z.array(modelConfigSchema).optional(),\n defaultOptions: z.record(z.string(), z.any()).optional(),\n defaultGenerateOptionsLegacy: z.record(z.string(), z.any()).optional(),\n defaultStreamOptionsLegacy: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Schema for agent with ID\n */\nexport const serializedAgentWithIdSchema = serializedAgentSchema.extend({\n id: z.string(),\n});\n\n/**\n * Schema for individual provider information\n */\nexport const providerSchema = z.object({\n id: z.string(),\n name: z.string(),\n label: z.string().optional(),\n description: z.string().optional(),\n});\n\n/**\n * Schema for providers endpoint response\n */\nexport const providersResponseSchema = z.object({\n providers: z.array(providerSchema),\n});\n\n/**\n * Schema for list agents endpoint response\n * Returns a record of agent ID to serialized agent\n */\nexport const listAgentsResponseSchema = z.record(z.string(), serializedAgentSchema);\n\n/**\n * Schema for list tools endpoint response\n * Returns a record of tool ID to serialized tool\n */\nexport const listToolsResponseSchema = z.record(z.string(), serializedToolSchema);\n\n// ============================================================================\n// Agent Execution Body Schemas\n// ============================================================================\n\n/**\n * Schema for agent memory option\n */\nconst agentMemoryOptionSchema = z.object({\n thread: z.union([z.string(), z.object({ id: z.string() }).passthrough()]),\n resource: z.string(),\n options: z.record(z.string(), z.any()).optional(),\n readOnly: z.boolean().optional(),\n});\n\n/**\n * Schema for tool choice configuration\n */\nconst toolChoiceSchema = z.union([\n z.enum(['auto', 'none', 'required']),\n z.object({ type: z.literal('tool'), toolName: z.string() }),\n]);\n\n/**\n * Comprehensive body schema for agent generate and stream endpoints\n * Validates common fields while using passthrough for complex nested objects\n *\n * EXCLUDED FIELDS (not serializable):\n * - Callbacks: onStepFinish, onFinish, onChunk, onError, onAbort, prepareStep\n * - Class instances: inputProcessors, outputProcessors\n * - Non-serializable: abortSignal, tracingContext\n */\nexport const agentExecutionBodySchema = z\n .object({\n // REQUIRED\n messages: z.union([\n z.array(coreMessageSchema), // Array of messages\n z.string(), // Single user message shorthand\n ]),\n\n // Message Configuration\n instructions: systemMessageSchema.optional(),\n system: systemMessageSchema.optional(),\n context: z.array(coreMessageSchema).optional(),\n\n // Memory & Persistence\n memory: agentMemoryOptionSchema.optional(),\n resourceId: z.string().optional(), // @deprecated\n resourceid: z.string().optional(),\n threadId: z.string().optional(), // @deprecated\n runId: z.string().optional(),\n savePerStep: z.boolean().optional(),\n\n // Request Context (handler-specific field - merged with server's requestContext)\n requestContext: z.record(z.string(), z.any()).optional(),\n\n // Execution Control\n maxSteps: z.number().optional(),\n stopWhen: z.any().optional(),\n\n // Model Configuration\n providerOptions: z\n .object({\n anthropic: z.record(z.string(), z.any()).optional(),\n google: z.record(z.string(), z.any()).optional(),\n openai: z.record(z.string(), z.any()).optional(),\n xai: z.record(z.string(), z.any()).optional(),\n })\n .optional(),\n modelSettings: z.any().optional(),\n\n // Tool Configuration\n activeTools: z.array(z.string()).optional(),\n toolsets: z.record(z.string(), z.any()).optional(),\n clientTools: z.record(z.string(), z.any()).optional(),\n toolChoice: toolChoiceSchema.optional(),\n requireToolApproval: z.boolean().optional(),\n\n // Evaluation\n scorers: z\n .union([\n z.record(z.string(), z.any()),\n z.record(\n z.string(),\n z.object({\n scorer: z.string(),\n sampling: z.any().optional(),\n }),\n ),\n ])\n .optional(),\n returnScorerData: z.boolean().optional(),\n\n // Observability\n tracingOptions: tracingOptionsSchema.optional(),\n\n // Structured Output\n output: z.any().optional(), // Zod schema, JSON schema, or structured output object\n structuredOutput: z\n .object({\n schema: z.object({}).passthrough(),\n model: z.union([z.string(), z.any()]).optional(),\n instructions: z.string().optional(),\n jsonPromptInjection: z.boolean().optional(),\n errorStrategy: z.enum(['strict', 'warn', 'fallback']).optional(),\n fallbackValue: z.any().optional(),\n })\n .optional(),\n })\n .passthrough(); // Allow additional fields for forward compatibility\n\n/**\n * Body schema for tool execute endpoint\n * Simple schema - tool validates its own input data\n * Note: Using z.custom() instead of z.any()/z.any() because those are treated as optional by Zod\n */\n\nconst executeToolDataBodySchema = z.object({\n data: z.custom<unknown>(x => x !== undefined, { message: 'data is required' }),\n});\n\nexport const executeToolBodySchema = executeToolDataBodySchema.extend({\n requestContext: z.record(z.string(), z.any()).optional(),\n});\n\nexport const executeToolContextBodySchema = executeToolDataBodySchema.extend({\n requestContext: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Response schema for voice speakers endpoint\n * Flexible to accommodate provider-specific metadata\n */\nexport const voiceSpeakersResponseSchema = z.array(\n z\n .object({\n voiceId: z.string(),\n })\n .passthrough(), // Allow provider-specific fields like name, language, etc.\n);\n\n// ============================================================================\n// Tool Approval Schemas\n// ============================================================================\n\n/**\n * Base schema for tool approval/decline operations\n * Both approve and decline use the same parameters\n */\nconst toolCallActionBodySchema = z.object({\n runId: z.string(),\n requestContext: z.record(z.string(), z.any()).optional(),\n toolCallId: z.string(),\n format: z.string().optional(),\n});\n\n/**\n * Body schema for approving tool call\n */\nexport const approveToolCallBodySchema = toolCallActionBodySchema;\n\n/**\n * Body schema for declining tool call\n */\nexport const declineToolCallBodySchema = toolCallActionBodySchema;\n\n/**\n * Response schema for tool approval/decline\n */\nexport const toolCallResponseSchema = z.object({\n fullStream: z.any(), // ReadableStream\n});\n\n// ============================================================================\n// Model Management Schemas\n// ============================================================================\n\n/**\n * Body schema for updating agent model\n */\nexport const updateAgentModelBodySchema = z.object({\n modelId: z.string(),\n provider: z.string(),\n});\n\n/**\n * Body schema for reordering agent model list\n */\nexport const reorderAgentModelListBodySchema = z.object({\n reorderedModelIds: z.array(z.string()),\n});\n\n/**\n * Body schema for updating model in model list\n */\nexport const updateAgentModelInModelListBodySchema = z.object({\n model: z\n .object({\n modelId: z.string(),\n provider: z.string(),\n })\n .optional(),\n maxRetries: z.number().optional(),\n enabled: z.boolean().optional(),\n});\n\n/**\n * Response schema for model management operations\n */\nexport const modelManagementResponseSchema = messageResponseSchema;\n\n// ============================================================================\n// Voice Schemas\n// ============================================================================\n\n/**\n * Body schema for generating speech\n */\nexport const generateSpeechBodySchema = z.object({\n text: z.string(),\n speakerId: z.string().optional(),\n});\n\n/**\n * Body schema for transcribing speech\n */\nexport const transcribeSpeechBodySchema = z.object({\n audioData: z.any(), // Buffer\n options: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Response schema for transcribe speech\n */\nexport const transcribeSpeechResponseSchema = z.object({\n text: z.string(),\n});\n\n/**\n * Response schema for get listener\n */\nexport const getListenerResponseSchema = z.any(); // Listener info structure varies\n\n/**\n * Response schema for agent generation endpoints\n * These return AI SDK types which have complex structures\n */\nexport const generateResponseSchema = z.any(); // AI SDK GenerateResult type\nexport const streamResponseSchema = z.any(); // AI SDK StreamResult type\nexport const speakResponseSchema = z.any(); // Voice synthesis result\nexport const executeToolResponseSchema = z.any(); // Tool execution result varies by tool\n"]}
1
+ {"version":3,"sources":["../src/server/schemas/agents.ts"],"names":["z","coreMessageSchema","tracingOptionsSchema","messageResponseSchema"],"mappings":"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","file":"chunk-X4QMPCTP.cjs","sourcesContent":["import z from 'zod';\nimport { tracingOptionsSchema, coreMessageSchema, messageResponseSchema } from './common';\n\n// Path parameter schemas\nexport const agentIdPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the agent'),\n});\n\nexport const toolIdPathParams = z.object({\n toolId: z.string().describe('Unique identifier for the tool'),\n});\n\nexport const agentToolPathParams = agentIdPathParams.extend({\n toolId: z.string().describe('Unique identifier for the tool'),\n});\n\nexport const modelConfigIdPathParams = agentIdPathParams.extend({\n modelConfigId: z.string().describe('Unique identifier for the model configuration'),\n});\n\n/**\n * Schema for serialized processor metadata\n */\nexport const serializedProcessorSchema = z.object({\n id: z.string(),\n name: z.string().optional(),\n});\n\n/**\n * Schema for serialized tool with JSON schemas\n * Uses passthrough() to allow additional tool properties beyond core fields\n */\nexport const serializedToolSchema = z.object({\n id: z.string(),\n description: z.string().optional(),\n inputSchema: z.string().optional(),\n outputSchema: z.string().optional(),\n requireApproval: z.boolean().optional(),\n});\n\n/**\n * Schema for serialized workflow with steps\n */\nexport const serializedWorkflowSchema = z.object({\n name: z.string(),\n steps: z\n .record(\n z.string(),\n z.object({\n id: z.string(),\n description: z.string().optional(),\n }),\n )\n .optional(),\n});\n\n/**\n * Schema for serialized agent definition (referenced by other agents)\n */\nexport const serializedAgentDefinitionSchema = z.object({\n id: z.string(),\n name: z.string(),\n});\n\n/**\n * Schema for SystemMessage type\n * Can be string, string[], or various message objects\n */\nconst systemMessageSchema = z.union([\n z.string(),\n z.array(z.string()),\n z.any(), // CoreSystemMessage or SystemModelMessage\n z.array(z.any()),\n]);\n\n/**\n * Schema for model configuration in model list\n */\nconst modelConfigSchema = z.object({\n model: z.object({\n modelId: z.string(),\n provider: z.string(),\n modelVersion: z.string(),\n }),\n // Additional fields from AgentModelManagerConfig can be added here\n});\n\n/**\n * Main schema for serialized agent representation\n */\nexport const serializedAgentSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n instructions: systemMessageSchema.optional(),\n tools: z.record(z.string(), serializedToolSchema),\n agents: z.record(z.string(), serializedAgentDefinitionSchema),\n workflows: z.record(z.string(), serializedWorkflowSchema),\n inputProcessors: z.array(serializedProcessorSchema),\n outputProcessors: z.array(serializedProcessorSchema),\n provider: z.string().optional(),\n modelId: z.string().optional(),\n modelVersion: z.string().optional(),\n modelList: z.array(modelConfigSchema).optional(),\n defaultOptions: z.record(z.string(), z.any()).optional(),\n defaultGenerateOptionsLegacy: z.record(z.string(), z.any()).optional(),\n defaultStreamOptionsLegacy: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Schema for agent with ID\n */\nexport const serializedAgentWithIdSchema = serializedAgentSchema.extend({\n id: z.string(),\n});\n\n/**\n * Schema for individual provider information\n */\nexport const providerSchema = z.object({\n id: z.string(),\n name: z.string(),\n label: z.string().optional(),\n description: z.string().optional(),\n});\n\n/**\n * Schema for providers endpoint response\n */\nexport const providersResponseSchema = z.object({\n providers: z.array(providerSchema),\n});\n\n/**\n * Schema for list agents endpoint response\n * Returns a record of agent ID to serialized agent\n */\nexport const listAgentsResponseSchema = z.record(z.string(), serializedAgentSchema);\n\n/**\n * Schema for list tools endpoint response\n * Returns a record of tool ID to serialized tool\n */\nexport const listToolsResponseSchema = z.record(z.string(), serializedToolSchema);\n\n// ============================================================================\n// Agent Execution Body Schemas\n// ============================================================================\n\n/**\n * Schema for agent memory option\n */\nconst agentMemoryOptionSchema = z.object({\n thread: z.union([z.string(), z.object({ id: z.string() }).passthrough()]),\n resource: z.string(),\n options: z.record(z.string(), z.any()).optional(),\n readOnly: z.boolean().optional(),\n});\n\n/**\n * Schema for tool choice configuration\n */\nconst toolChoiceSchema = z.union([\n z.enum(['auto', 'none', 'required']),\n z.object({ type: z.literal('tool'), toolName: z.string() }),\n]);\n\n/**\n * Comprehensive body schema for agent generate and stream endpoints\n * Validates common fields while using passthrough for complex nested objects\n *\n * EXCLUDED FIELDS (not serializable):\n * - Callbacks: onStepFinish, onFinish, onChunk, onError, onAbort, prepareStep\n * - Class instances: inputProcessors, outputProcessors\n * - Non-serializable: abortSignal, tracingContext\n */\nexport const agentExecutionBodySchema = z\n .object({\n // REQUIRED\n messages: z.union([\n z.array(coreMessageSchema), // Array of messages\n z.string(), // Single user message shorthand\n ]),\n\n // Message Configuration\n instructions: systemMessageSchema.optional(),\n system: systemMessageSchema.optional(),\n context: z.array(coreMessageSchema).optional(),\n\n // Memory & Persistence\n memory: agentMemoryOptionSchema.optional(),\n resourceId: z.string().optional(), // @deprecated\n resourceid: z.string().optional(),\n threadId: z.string().optional(), // @deprecated\n runId: z.string().optional(),\n savePerStep: z.boolean().optional(),\n\n // Request Context (handler-specific field - merged with server's requestContext)\n requestContext: z.record(z.string(), z.any()).optional(),\n\n // Execution Control\n maxSteps: z.number().optional(),\n stopWhen: z.any().optional(),\n\n // Model Configuration\n providerOptions: z\n .object({\n anthropic: z.record(z.string(), z.any()).optional(),\n google: z.record(z.string(), z.any()).optional(),\n openai: z.record(z.string(), z.any()).optional(),\n xai: z.record(z.string(), z.any()).optional(),\n })\n .optional(),\n modelSettings: z.any().optional(),\n\n // Tool Configuration\n activeTools: z.array(z.string()).optional(),\n toolsets: z.record(z.string(), z.any()).optional(),\n clientTools: z.record(z.string(), z.any()).optional(),\n toolChoice: toolChoiceSchema.optional(),\n requireToolApproval: z.boolean().optional(),\n\n // Evaluation\n scorers: z\n .union([\n z.record(z.string(), z.any()),\n z.record(\n z.string(),\n z.object({\n scorer: z.string(),\n sampling: z.any().optional(),\n }),\n ),\n ])\n .optional(),\n returnScorerData: z.boolean().optional(),\n\n // Observability\n tracingOptions: tracingOptionsSchema.optional(),\n\n // Structured Output\n output: z.any().optional(), // Zod schema, JSON schema, or structured output object\n structuredOutput: z\n .object({\n schema: z.object({}).passthrough(),\n model: z.union([z.string(), z.any()]).optional(),\n instructions: z.string().optional(),\n jsonPromptInjection: z.boolean().optional(),\n errorStrategy: z.enum(['strict', 'warn', 'fallback']).optional(),\n fallbackValue: z.any().optional(),\n })\n .optional(),\n })\n .passthrough(); // Allow additional fields for forward compatibility\n\n/**\n * Body schema for tool execute endpoint\n * Simple schema - tool validates its own input data\n * Note: Using z.custom() instead of z.any()/z.any() because those are treated as optional by Zod\n */\n\nconst executeToolDataBodySchema = z.object({\n data: z.custom<unknown>(x => x !== undefined, { message: 'data is required' }),\n});\n\nexport const executeToolBodySchema = executeToolDataBodySchema.extend({\n requestContext: z.record(z.string(), z.any()).optional(),\n});\n\nexport const executeToolContextBodySchema = executeToolDataBodySchema.extend({\n requestContext: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Response schema for voice speakers endpoint\n * Flexible to accommodate provider-specific metadata\n */\nexport const voiceSpeakersResponseSchema = z.array(\n z\n .object({\n voiceId: z.string(),\n })\n .passthrough(), // Allow provider-specific fields like name, language, etc.\n);\n\n// ============================================================================\n// Tool Approval Schemas\n// ============================================================================\n\n/**\n * Base schema for tool approval/decline operations\n * Both approve and decline use the same parameters\n */\nconst toolCallActionBodySchema = z.object({\n runId: z.string(),\n requestContext: z.record(z.string(), z.any()).optional(),\n toolCallId: z.string(),\n format: z.string().optional(),\n});\n\n/**\n * Body schema for approving tool call\n */\nexport const approveToolCallBodySchema = toolCallActionBodySchema;\n\n/**\n * Body schema for declining tool call\n */\nexport const declineToolCallBodySchema = toolCallActionBodySchema;\n\n/**\n * Response schema for tool approval/decline\n */\nexport const toolCallResponseSchema = z.object({\n fullStream: z.any(), // ReadableStream\n});\n\n// ============================================================================\n// Model Management Schemas\n// ============================================================================\n\n/**\n * Body schema for updating agent model\n */\nexport const updateAgentModelBodySchema = z.object({\n modelId: z.string(),\n provider: z.string(),\n});\n\n/**\n * Body schema for reordering agent model list\n */\nexport const reorderAgentModelListBodySchema = z.object({\n reorderedModelIds: z.array(z.string()),\n});\n\n/**\n * Body schema for updating model in model list\n */\nexport const updateAgentModelInModelListBodySchema = z.object({\n model: z\n .object({\n modelId: z.string(),\n provider: z.string(),\n })\n .optional(),\n maxRetries: z.number().optional(),\n enabled: z.boolean().optional(),\n});\n\n/**\n * Response schema for model management operations\n */\nexport const modelManagementResponseSchema = messageResponseSchema;\n\n// ============================================================================\n// Voice Schemas\n// ============================================================================\n\n/**\n * Body schema for generating speech\n */\nexport const generateSpeechBodySchema = z.object({\n text: z.string(),\n speakerId: z.string().optional(),\n});\n\n/**\n * Body schema for transcribing speech\n */\nexport const transcribeSpeechBodySchema = z.object({\n audioData: z.any(), // Buffer\n options: z.record(z.string(), z.any()).optional(),\n});\n\n/**\n * Response schema for transcribe speech\n */\nexport const transcribeSpeechResponseSchema = z.object({\n text: z.string(),\n});\n\n/**\n * Response schema for get listener\n */\nexport const getListenerResponseSchema = z.any(); // Listener info structure varies\n\n/**\n * Response schema for agent generation endpoints\n * These return AI SDK types which have complex structures\n */\nexport const generateResponseSchema = z.any(); // AI SDK GenerateResult type\nexport const streamResponseSchema = z.any(); // AI SDK StreamResult type\nexport const speakResponseSchema = z.any(); // Voice synthesis result\nexport const executeToolResponseSchema = z.any(); // Tool execution result varies by tool\n"]}
@@ -0,0 +1,302 @@
1
+ import { createCombinedPaginationSchema } from './chunk-HT4LP3BO.js';
2
+ import { createRoute } from './chunk-SXVANU23.js';
3
+ import { HTTPException } from './chunk-6QWQZI4Q.js';
4
+ import { __export } from './chunk-PR4QN5HX.js';
5
+ import { z } from 'zod';
6
+
7
+ // src/server/handlers/mcp.ts
8
+ var mcp_exports = {};
9
+ __export(mcp_exports, {
10
+ EXECUTE_MCP_SERVER_TOOL_ROUTE: () => EXECUTE_MCP_SERVER_TOOL_ROUTE,
11
+ GET_MCP_SERVER_DETAIL_ROUTE: () => GET_MCP_SERVER_DETAIL_ROUTE,
12
+ GET_MCP_SERVER_TOOL_DETAIL_ROUTE: () => GET_MCP_SERVER_TOOL_DETAIL_ROUTE,
13
+ LIST_MCP_SERVERS_ROUTE: () => LIST_MCP_SERVERS_ROUTE,
14
+ LIST_MCP_SERVER_TOOLS_ROUTE: () => LIST_MCP_SERVER_TOOLS_ROUTE,
15
+ MCP_HTTP_TRANSPORT_ROUTE: () => MCP_HTTP_TRANSPORT_ROUTE,
16
+ MCP_SSE_MESSAGES_ROUTE: () => MCP_SSE_MESSAGES_ROUTE,
17
+ MCP_SSE_TRANSPORT_ROUTE: () => MCP_SSE_TRANSPORT_ROUTE
18
+ });
19
+ var mcpServerIdPathParams = z.object({
20
+ serverId: z.string().describe("MCP server ID")
21
+ });
22
+ var mcpServerDetailPathParams = z.object({
23
+ id: z.string().describe("MCP server ID")
24
+ });
25
+ var mcpServerToolPathParams = z.object({
26
+ serverId: z.string().describe("MCP server ID"),
27
+ toolId: z.string().describe("Tool ID")
28
+ });
29
+ var executeToolBodySchema = z.object({
30
+ data: z.unknown().optional()
31
+ });
32
+ var listMcpServersQuerySchema = createCombinedPaginationSchema();
33
+ var getMcpServerDetailQuerySchema = z.object({
34
+ version: z.string().optional()
35
+ });
36
+ var versionDetailSchema = z.object({
37
+ version: z.string(),
38
+ release_date: z.string(),
39
+ is_latest: z.boolean()
40
+ });
41
+ var serverInfoSchema = z.object({
42
+ id: z.string(),
43
+ name: z.string(),
44
+ version_detail: versionDetailSchema
45
+ });
46
+ var listMcpServersResponseSchema = z.object({
47
+ servers: z.array(serverInfoSchema),
48
+ total_count: z.number(),
49
+ next: z.string().nullable()
50
+ });
51
+ var serverDetailSchema = z.object({
52
+ id: z.string(),
53
+ name: z.string(),
54
+ description: z.string().optional(),
55
+ version_detail: versionDetailSchema,
56
+ package_canonical: z.string().optional(),
57
+ packages: z.array(z.unknown()).optional(),
58
+ remotes: z.array(z.unknown()).optional()
59
+ });
60
+ var mcpToolInfoSchema = z.object({
61
+ name: z.string(),
62
+ description: z.string().optional(),
63
+ inputSchema: z.unknown(),
64
+ outputSchema: z.unknown().optional(),
65
+ toolType: z.string().optional()
66
+ });
67
+ var listMcpServerToolsResponseSchema = z.object({
68
+ tools: z.array(mcpToolInfoSchema)
69
+ });
70
+ var executeToolResponseSchema = z.object({
71
+ result: z.unknown()
72
+ });
73
+ z.object({
74
+ jsonrpc: z.literal("2.0"),
75
+ error: z.object({
76
+ code: z.number(),
77
+ message: z.string()
78
+ }),
79
+ id: z.null()
80
+ });
81
+
82
+ // src/server/handlers/mcp.ts
83
+ var LIST_MCP_SERVERS_ROUTE = createRoute({
84
+ method: "GET",
85
+ path: "/api/mcp/v0/servers",
86
+ responseType: "json",
87
+ queryParamSchema: listMcpServersQuerySchema,
88
+ responseSchema: listMcpServersResponseSchema,
89
+ summary: "List MCP servers",
90
+ description: "Returns a list of registered MCP servers with pagination support",
91
+ tags: ["MCP"],
92
+ handler: async ({
93
+ mastra,
94
+ page,
95
+ perPage,
96
+ limit,
97
+ offset
98
+ }) => {
99
+ if (!mastra || typeof mastra.listMCPServers !== "function") {
100
+ throw new HTTPException(500, { message: "Mastra instance or listMCPServers method not available" });
101
+ }
102
+ const servers = mastra.listMCPServers();
103
+ if (!servers) {
104
+ return { servers: [], total_count: 0, next: null };
105
+ }
106
+ const serverList = Object.values(servers);
107
+ const totalCount = serverList.length;
108
+ const useLegacyFormat = (limit !== void 0 || offset !== void 0) && page === void 0 && perPage === void 0;
109
+ const finalPerPage = perPage ?? limit;
110
+ let finalPage = page;
111
+ if (finalPage === void 0 && offset !== void 0 && finalPerPage !== void 0 && finalPerPage > 0) {
112
+ finalPage = Math.floor(offset / finalPerPage);
113
+ }
114
+ const actualOffset = finalPage !== void 0 && finalPerPage !== void 0 ? finalPage * finalPerPage : 0;
115
+ let paginatedServers = serverList;
116
+ let nextUrl = null;
117
+ if (finalPerPage !== void 0) {
118
+ paginatedServers = serverList.slice(actualOffset, actualOffset + finalPerPage);
119
+ if (actualOffset + finalPerPage < totalCount) {
120
+ const nextPage = (finalPage ?? 0) + 1;
121
+ if (useLegacyFormat) {
122
+ const nextOffset = actualOffset + finalPerPage;
123
+ nextUrl = `/api/mcp/v0/servers?limit=${finalPerPage}&offset=${nextOffset}`;
124
+ } else {
125
+ nextUrl = `/api/mcp/v0/servers?perPage=${finalPerPage}&page=${nextPage}`;
126
+ }
127
+ }
128
+ }
129
+ const serverInfoList = paginatedServers.map((server) => server.getServerInfo());
130
+ return {
131
+ servers: serverInfoList,
132
+ total_count: totalCount,
133
+ next: nextUrl
134
+ };
135
+ }
136
+ });
137
+ var GET_MCP_SERVER_DETAIL_ROUTE = createRoute({
138
+ method: "GET",
139
+ path: "/api/mcp/v0/servers/:id",
140
+ responseType: "json",
141
+ pathParamSchema: mcpServerDetailPathParams,
142
+ queryParamSchema: getMcpServerDetailQuerySchema,
143
+ responseSchema: serverDetailSchema,
144
+ summary: "Get MCP server details",
145
+ description: "Returns detailed information about a specific MCP server",
146
+ tags: ["MCP"],
147
+ handler: async ({ mastra, id, version }) => {
148
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
149
+ throw new HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
150
+ }
151
+ const server = mastra.getMCPServerById(id);
152
+ if (!server) {
153
+ throw new HTTPException(404, { message: `MCP server with ID '${id}' not found` });
154
+ }
155
+ const serverDetail = server.getServerDetail();
156
+ if (version && serverDetail.version_detail.version !== version) {
157
+ throw new HTTPException(404, {
158
+ message: `MCP server with ID '${id}' found, but not version '${version}'. Available version: ${serverDetail.version_detail.version}`
159
+ });
160
+ }
161
+ return serverDetail;
162
+ }
163
+ });
164
+ var LIST_MCP_SERVER_TOOLS_ROUTE = createRoute({
165
+ method: "GET",
166
+ path: "/api/mcp/:serverId/tools",
167
+ responseType: "json",
168
+ pathParamSchema: mcpServerIdPathParams,
169
+ responseSchema: listMcpServerToolsResponseSchema,
170
+ summary: "List MCP server tools",
171
+ description: "Returns a list of tools available on the specified MCP server",
172
+ tags: ["MCP"],
173
+ handler: async ({ mastra, serverId }) => {
174
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
175
+ throw new HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
176
+ }
177
+ const server = mastra.getMCPServerById(serverId);
178
+ if (!server) {
179
+ throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });
180
+ }
181
+ if (typeof server.getToolListInfo !== "function") {
182
+ throw new HTTPException(501, { message: `Server '${serverId}' cannot list tools in this way.` });
183
+ }
184
+ return server.getToolListInfo();
185
+ }
186
+ });
187
+ var GET_MCP_SERVER_TOOL_DETAIL_ROUTE = createRoute({
188
+ method: "GET",
189
+ path: "/api/mcp/:serverId/tools/:toolId",
190
+ responseType: "json",
191
+ pathParamSchema: mcpServerToolPathParams,
192
+ responseSchema: mcpToolInfoSchema,
193
+ summary: "Get MCP server tool details",
194
+ description: "Returns detailed information about a specific tool on the MCP server",
195
+ tags: ["MCP"],
196
+ handler: async ({ mastra, serverId, toolId }) => {
197
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
198
+ throw new HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
199
+ }
200
+ const server = mastra.getMCPServerById(serverId);
201
+ if (!server) {
202
+ throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });
203
+ }
204
+ if (typeof server.getToolInfo !== "function") {
205
+ throw new HTTPException(501, { message: `Server '${serverId}' cannot provide tool details in this way.` });
206
+ }
207
+ const toolInfo = server.getToolInfo(toolId);
208
+ if (!toolInfo) {
209
+ throw new HTTPException(404, { message: `Tool with ID '${toolId}' not found on MCP server '${serverId}'` });
210
+ }
211
+ return toolInfo;
212
+ }
213
+ });
214
+ var EXECUTE_MCP_SERVER_TOOL_ROUTE = createRoute({
215
+ method: "POST",
216
+ path: "/api/mcp/:serverId/tools/:toolId/execute",
217
+ responseType: "json",
218
+ pathParamSchema: mcpServerToolPathParams,
219
+ bodySchema: executeToolBodySchema,
220
+ responseSchema: executeToolResponseSchema,
221
+ summary: "Execute MCP server tool",
222
+ description: "Executes a tool on the specified MCP server with the provided arguments",
223
+ tags: ["MCP"],
224
+ handler: async ({
225
+ mastra,
226
+ serverId,
227
+ toolId,
228
+ data
229
+ }) => {
230
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
231
+ throw new HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
232
+ }
233
+ const server = mastra.getMCPServerById(serverId);
234
+ if (!server) {
235
+ throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });
236
+ }
237
+ if (typeof server.executeTool !== "function") {
238
+ throw new HTTPException(501, { message: `Server '${serverId}' cannot execute tools in this way.` });
239
+ }
240
+ const result = await server.executeTool(toolId, data);
241
+ return { result };
242
+ }
243
+ });
244
+ var MCP_HTTP_TRANSPORT_ROUTE = createRoute({
245
+ method: "ALL",
246
+ path: "/api/mcp/:serverId/mcp",
247
+ responseType: "mcp-http",
248
+ pathParamSchema: mcpServerIdPathParams,
249
+ summary: "MCP HTTP Transport",
250
+ description: "Streamable HTTP transport endpoint for MCP protocol communication",
251
+ tags: ["MCP"],
252
+ handler: async ({ mastra, serverId }) => {
253
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
254
+ throw new HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
255
+ }
256
+ const server = mastra.getMCPServerById(serverId);
257
+ if (!server) {
258
+ throw new HTTPException(404, { message: `MCP server '${serverId}' not found` });
259
+ }
260
+ return {
261
+ server,
262
+ httpPath: `/api/mcp/${serverId}/mcp`
263
+ };
264
+ }
265
+ });
266
+ var MCP_SSE_TRANSPORT_ROUTE = createRoute({
267
+ method: "ALL",
268
+ path: "/api/mcp/:serverId/sse",
269
+ responseType: "mcp-sse",
270
+ pathParamSchema: mcpServerIdPathParams,
271
+ summary: "MCP SSE Transport",
272
+ description: "SSE transport endpoint for MCP protocol communication",
273
+ tags: ["MCP"],
274
+ handler: async ({ mastra, serverId }) => {
275
+ if (!mastra || typeof mastra.getMCPServerById !== "function") {
276
+ throw new HTTPException(500, { message: "Mastra instance or getMCPServerById method not available" });
277
+ }
278
+ const server = mastra.getMCPServerById(serverId);
279
+ if (!server) {
280
+ throw new HTTPException(404, { message: `MCP server '${serverId}' not found` });
281
+ }
282
+ return {
283
+ server,
284
+ ssePath: `/api/mcp/${serverId}/sse`,
285
+ messagePath: `/api/mcp/${serverId}/messages`
286
+ };
287
+ }
288
+ });
289
+ var MCP_SSE_MESSAGES_ROUTE = createRoute({
290
+ method: "POST",
291
+ path: "/api/mcp/:serverId/messages",
292
+ responseType: "mcp-sse",
293
+ pathParamSchema: mcpServerIdPathParams,
294
+ summary: "MCP SSE Messages",
295
+ description: "Message endpoint for SSE transport (posts messages to active SSE streams)",
296
+ tags: ["MCP"],
297
+ handler: MCP_SSE_TRANSPORT_ROUTE.handler
298
+ });
299
+
300
+ export { EXECUTE_MCP_SERVER_TOOL_ROUTE, GET_MCP_SERVER_DETAIL_ROUTE, GET_MCP_SERVER_TOOL_DETAIL_ROUTE, LIST_MCP_SERVERS_ROUTE, LIST_MCP_SERVER_TOOLS_ROUTE, MCP_HTTP_TRANSPORT_ROUTE, MCP_SSE_MESSAGES_ROUTE, MCP_SSE_TRANSPORT_ROUTE, mcp_exports };
301
+ //# sourceMappingURL=chunk-XNKZPXCY.js.map
302
+ //# sourceMappingURL=chunk-XNKZPXCY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/mcp.ts","../src/server/schemas/mcp.ts"],"names":[],"mappings":"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","file":"chunk-XNKZPXCY.js","sourcesContent":["import type { MCPServerBase as MastraMCPServerImplementation, ServerInfo } from '@mastra/core/mcp';\nimport { HTTPException } from '../http-exception';\nimport {\n mcpServerDetailPathParams,\n mcpServerToolPathParams,\n executeToolBodySchema,\n listMcpServersQuerySchema,\n getMcpServerDetailQuerySchema,\n listMcpServersResponseSchema,\n serverDetailSchema,\n mcpServerIdPathParams,\n listMcpServerToolsResponseSchema,\n mcpToolInfoSchema,\n executeToolResponseSchema,\n} from '../schemas/mcp';\nimport type { 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 ({\n mastra,\n page,\n perPage,\n limit,\n offset,\n }: RuntimeContext & { page?: number; perPage?: number; limit?: number; offset?: number }) => {\n if (!mastra || typeof mastra.listMCPServers !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or listMCPServers method not available' });\n }\n\n const servers = mastra.listMCPServers();\n\n if (!servers) {\n return { servers: [], total_count: 0, next: null };\n }\n\n const serverList = Object.values(servers) as MastraMCPServerImplementation[];\n const totalCount = serverList.length;\n\n // Support both page/perPage and limit/offset for backwards compatibility\n // Detect which format user is using - prefer page/perPage if both provided\n const useLegacyFormat =\n (limit !== undefined || offset !== undefined) && page === undefined && perPage === undefined;\n\n // If perPage provided, use it; otherwise fall back to limit\n const finalPerPage = perPage ?? limit;\n // If page provided, use it; otherwise convert from offset\n let finalPage = page;\n if (finalPage === undefined && offset !== undefined && finalPerPage !== undefined && finalPerPage > 0) {\n finalPage = Math.floor(offset / finalPerPage);\n }\n\n // Calculate offset from page/perPage\n const actualOffset = finalPage !== undefined && finalPerPage !== undefined ? finalPage * finalPerPage : 0;\n\n // Apply pagination\n let paginatedServers = serverList;\n let nextUrl: string | null = null;\n\n if (finalPerPage !== undefined) {\n paginatedServers = serverList.slice(actualOffset, actualOffset + finalPerPage);\n\n // Calculate next URL if there are more results\n if (actualOffset + finalPerPage < totalCount) {\n const nextPage = (finalPage ?? 0) + 1;\n // Return next URL in same format as request (legacy limit/offset or page/perPage)\n if (useLegacyFormat) {\n const nextOffset = actualOffset + finalPerPage;\n nextUrl = `/api/mcp/v0/servers?limit=${finalPerPage}&offset=${nextOffset}`;\n } else {\n nextUrl = `/api/mcp/v0/servers?perPage=${finalPerPage}&page=${nextPage}`;\n }\n }\n }\n\n // Get server info for each server\n const serverInfoList: ServerInfo[] = paginatedServers.map(server => server.getServerInfo());\n\n return {\n servers: serverInfoList,\n total_count: totalCount,\n next: nextUrl,\n };\n },\n});\n\nexport const GET_MCP_SERVER_DETAIL_ROUTE = createRoute({\n method: 'GET',\n path: '/api/mcp/v0/servers/:id',\n responseType: 'json',\n pathParamSchema: mcpServerDetailPathParams,\n queryParamSchema: getMcpServerDetailQuerySchema,\n responseSchema: serverDetailSchema,\n summary: 'Get MCP server details',\n description: 'Returns detailed information about a specific MCP server',\n tags: ['MCP'],\n handler: async ({ mastra, id, version }: 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';\nimport { createCombinedPaginationSchema } from './common';\n\n// Path parameters\nexport const mcpServerIdPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerDetailPathParams = z.object({\n id: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerToolPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n toolId: z.string().describe('Tool ID'),\n});\n\nexport const executeToolBodySchema = z.object({\n data: z.unknown().optional(),\n});\n\n// Query parameters\n// Supports both page/perPage and limit/offset for backwards compatibility\nexport const listMcpServersQuerySchema = createCombinedPaginationSchema();\n\nexport const getMcpServerDetailQuerySchema = z.object({\n version: z.string().optional(),\n});\n\n// Response schemas\nexport const versionDetailSchema = z.object({\n version: z.string(),\n release_date: z.string(),\n is_latest: z.boolean(),\n});\n\nexport const serverInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n version_detail: versionDetailSchema,\n});\n\nexport const listMcpServersResponseSchema = z.object({\n servers: z.array(serverInfoSchema),\n total_count: z.number(),\n next: z.string().nullable(),\n});\n\nexport const serverDetailSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n version_detail: versionDetailSchema,\n package_canonical: z.string().optional(),\n packages: z.array(z.unknown()).optional(),\n remotes: z.array(z.unknown()).optional(),\n});\n\n// Tool schemas\nexport const mcpToolInfoSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n inputSchema: z.unknown(),\n outputSchema: z.unknown().optional(),\n toolType: z.string().optional(),\n});\n\nexport const listMcpServerToolsResponseSchema = z.object({\n tools: z.array(mcpToolInfoSchema),\n});\n\nexport const executeToolResponseSchema = z.object({\n result: z.unknown(),\n});\n\n// JSON-RPC error response schema\nexport const jsonRpcErrorSchema = z.object({\n jsonrpc: z.literal('2.0'),\n error: z.object({\n code: z.number(),\n message: z.string(),\n }),\n id: z.null(),\n});\n"]}
@@ -0,0 +1,3 @@
1
+ import type { MastraAuthConfig } from '@mastra/core/server';
2
+ export declare const defaultAuthConfig: MastraAuthConfig;
3
+ //# sourceMappingURL=defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/server/auth/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAG5D,eAAO,MAAM,iBAAiB,EAAE,gBAsB/B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { MastraAuthConfig } from '@mastra/core/server';
2
+ /**
3
+ * Check if request is from dev playground
4
+ * @param getHeader - Function to get header value from request
5
+ */
6
+ export declare const isDevPlaygroundRequest: (path: string, method: string, getHeader: (name: string) => string | undefined, authConfig: MastraAuthConfig) => boolean;
7
+ export declare const isCustomRoutePublic: (path: string, method: string, customRouteAuthConfig?: Map<string, boolean>) => boolean;
8
+ export declare const isProtectedPath: (path: string, method: string, authConfig: MastraAuthConfig, customRouteAuthConfig?: Map<string, boolean>) => boolean;
9
+ export declare const canAccessPublicly: (path: string, method: string, authConfig: MastraAuthConfig) => boolean;
10
+ export declare const pathMatchesPattern: (path: string, pattern: string) => boolean;
11
+ export declare const pathMatchesRule: (path: string, rulePath: string | RegExp | string[] | undefined) => boolean;
12
+ export declare const matchesOrIncludes: (values: string | string[], value: string) => boolean;
13
+ export declare const checkRules: (rules: MastraAuthConfig["rules"], path: string, method: string, user: unknown) => Promise<boolean>;
14
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/server/auth/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAI5D;;;GAGG;AACH,eAAO,MAAM,sBAAsB,GACjC,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,WAAW,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,EAC/C,YAAY,gBAAgB,KAC3B,OAMF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3C,OAkBF,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,YAAY,gBAAgB,EAC5B,wBAAwB,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,KAC3C,OAGF,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,EAAE,QAAQ,MAAM,EAAE,YAAY,gBAAgB,KAAG,OAK9F,CAAC;AAiCF,eAAO,MAAM,kBAAkB,GAAI,MAAM,MAAM,EAAE,SAAS,MAAM,KAAG,OAQlE,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,EAAE,UAAU,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,KAAG,OAgBhG,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAAI,QAAQ,MAAM,GAAG,MAAM,EAAE,EAAE,OAAO,MAAM,KAAG,OAU5E,CAAC;AAGF,eAAO,MAAM,UAAU,GACrB,OAAO,gBAAgB,CAAC,OAAO,CAAC,EAChC,MAAM,MAAM,EACZ,QAAQ,MAAM,EACd,MAAM,OAAO,KACZ,OAAO,CAAC,OAAO,CA+BjB,CAAC"}
@@ -0,0 +1,137 @@
1
+ 'use strict';
2
+
3
+ // src/server/auth/defaults.ts
4
+ var defaultAuthConfig = {
5
+ protected: ["/api/*"],
6
+ public: ["/api"],
7
+ // Simple rule system
8
+ rules: [
9
+ // Admin users can do anything
10
+ {
11
+ condition: (user) => {
12
+ if (typeof user === "object" && user !== null) {
13
+ if ("isAdmin" in user) {
14
+ return !!user.isAdmin;
15
+ }
16
+ if ("role" in user) {
17
+ return user.role === "admin";
18
+ }
19
+ }
20
+ return false;
21
+ },
22
+ allow: true
23
+ }
24
+ ]
25
+ };
26
+
27
+ // src/server/auth/helpers.ts
28
+ var isDevPlaygroundRequest = (path, method, getHeader, authConfig) => {
29
+ const protectedAccess = [...defaultAuthConfig.protected || [], ...authConfig.protected || []];
30
+ return process.env.MASTRA_DEV === "true" && (!isAnyMatch(path, method, protectedAccess) || getHeader("x-mastra-dev-playground") === "true");
31
+ };
32
+ var isCustomRoutePublic = (path, method, customRouteAuthConfig) => {
33
+ if (!customRouteAuthConfig) {
34
+ return false;
35
+ }
36
+ const routeKey = `${method}:${path}`;
37
+ if (customRouteAuthConfig.has(routeKey)) {
38
+ return !customRouteAuthConfig.get(routeKey);
39
+ }
40
+ const allRouteKey = `ALL:${path}`;
41
+ if (customRouteAuthConfig.has(allRouteKey)) {
42
+ return !customRouteAuthConfig.get(allRouteKey);
43
+ }
44
+ return false;
45
+ };
46
+ var isProtectedPath = (path, method, authConfig, customRouteAuthConfig) => {
47
+ const protectedAccess = [...defaultAuthConfig.protected || [], ...authConfig.protected || []];
48
+ return isAnyMatch(path, method, protectedAccess) || !isCustomRoutePublic(path, method, customRouteAuthConfig);
49
+ };
50
+ var canAccessPublicly = (path, method, authConfig) => {
51
+ const publicAccess = [...defaultAuthConfig.public || [], ...authConfig.public || []];
52
+ return isAnyMatch(path, method, publicAccess);
53
+ };
54
+ var isAnyMatch = (path, method, patterns) => {
55
+ if (!patterns) {
56
+ return false;
57
+ }
58
+ for (const patternPathOrMethod of patterns) {
59
+ if (patternPathOrMethod instanceof RegExp) {
60
+ if (patternPathOrMethod.test(path)) {
61
+ return true;
62
+ }
63
+ }
64
+ if (typeof patternPathOrMethod === "string" && pathMatchesPattern(path, patternPathOrMethod)) {
65
+ return true;
66
+ }
67
+ if (Array.isArray(patternPathOrMethod) && patternPathOrMethod.length === 2) {
68
+ const [pattern, methodOrMethods] = patternPathOrMethod;
69
+ if (pathMatchesPattern(path, pattern) && matchesOrIncludes(methodOrMethods, method)) {
70
+ return true;
71
+ }
72
+ }
73
+ }
74
+ return false;
75
+ };
76
+ var pathMatchesPattern = (path, pattern) => {
77
+ if (pattern.endsWith("*")) {
78
+ const prefix = pattern.slice(0, -1);
79
+ return path.startsWith(prefix);
80
+ }
81
+ return path === pattern;
82
+ };
83
+ var pathMatchesRule = (path, rulePath) => {
84
+ if (!rulePath) return true;
85
+ if (typeof rulePath === "string") {
86
+ return pathMatchesPattern(path, rulePath);
87
+ }
88
+ if (rulePath instanceof RegExp) {
89
+ return rulePath.test(path);
90
+ }
91
+ if (Array.isArray(rulePath)) {
92
+ return rulePath.some((p) => pathMatchesPattern(path, p));
93
+ }
94
+ return false;
95
+ };
96
+ var matchesOrIncludes = (values, value) => {
97
+ if (typeof values === "string") {
98
+ return values === value;
99
+ }
100
+ if (Array.isArray(values)) {
101
+ return values.includes(value);
102
+ }
103
+ return false;
104
+ };
105
+ var checkRules = async (rules, path, method, user) => {
106
+ for (const i in rules || []) {
107
+ const rule = rules?.[i];
108
+ if (!pathMatchesRule(path, rule.path)) {
109
+ continue;
110
+ }
111
+ if (rule.methods && !matchesOrIncludes(rule.methods, method)) {
112
+ continue;
113
+ }
114
+ const condition = rule.condition;
115
+ if (typeof condition === "function") {
116
+ const allowed = await Promise.resolve().then(() => condition(user)).catch(() => false);
117
+ if (allowed) {
118
+ return true;
119
+ }
120
+ } else if (rule.allow) {
121
+ return true;
122
+ }
123
+ }
124
+ return false;
125
+ };
126
+
127
+ exports.canAccessPublicly = canAccessPublicly;
128
+ exports.checkRules = checkRules;
129
+ exports.defaultAuthConfig = defaultAuthConfig;
130
+ exports.isCustomRoutePublic = isCustomRoutePublic;
131
+ exports.isDevPlaygroundRequest = isDevPlaygroundRequest;
132
+ exports.isProtectedPath = isProtectedPath;
133
+ exports.matchesOrIncludes = matchesOrIncludes;
134
+ exports.pathMatchesPattern = pathMatchesPattern;
135
+ exports.pathMatchesRule = pathMatchesRule;
136
+ //# sourceMappingURL=index.cjs.map
137
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/server/auth/defaults.ts","../../../src/server/auth/helpers.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["import type { MastraAuthConfig } from '@mastra/core/server';\n\n// Default configuration that can be extended by clients\nexport const defaultAuthConfig: MastraAuthConfig = {\n protected: ['/api/*'],\n public: ['/api'],\n // Simple rule system\n rules: [\n // Admin users can do anything\n {\n condition: user => {\n if (typeof user === 'object' && user !== null) {\n if ('isAdmin' in user) {\n return !!user.isAdmin;\n }\n\n if ('role' in user) {\n return user.role === 'admin';\n }\n }\n return false;\n },\n allow: true,\n },\n ],\n};\n","import type { MastraAuthConfig } from '@mastra/core/server';\n\nimport { defaultAuthConfig } from './defaults';\n\n/**\n * Check if request is from dev playground\n * @param getHeader - Function to get header value from request\n */\nexport const isDevPlaygroundRequest = (\n path: string,\n method: string,\n getHeader: (name: string) => string | undefined,\n authConfig: MastraAuthConfig,\n): boolean => {\n const protectedAccess = [...(defaultAuthConfig.protected || []), ...(authConfig.protected || [])];\n return (\n process.env.MASTRA_DEV === 'true' &&\n (!isAnyMatch(path, method, protectedAccess) || getHeader('x-mastra-dev-playground') === 'true')\n );\n};\n\nexport const isCustomRoutePublic = (\n path: string,\n method: string,\n customRouteAuthConfig?: Map<string, boolean>,\n): boolean => {\n if (!customRouteAuthConfig) {\n return false;\n }\n\n // Check exact match first\n const routeKey = `${method}:${path}`;\n if (customRouteAuthConfig.has(routeKey)) {\n return !customRouteAuthConfig.get(routeKey); // True when route opts out of auth\n }\n\n // Check ALL method\n const allRouteKey = `ALL:${path}`;\n if (customRouteAuthConfig.has(allRouteKey)) {\n return !customRouteAuthConfig.get(allRouteKey);\n }\n\n return false;\n};\n\nexport const isProtectedPath = (\n path: string,\n method: string,\n authConfig: MastraAuthConfig,\n customRouteAuthConfig?: Map<string, boolean>,\n): boolean => {\n const protectedAccess = [...(defaultAuthConfig.protected || []), ...(authConfig.protected || [])];\n return isAnyMatch(path, method, protectedAccess) || !isCustomRoutePublic(path, method, customRouteAuthConfig);\n};\n\nexport const canAccessPublicly = (path: string, method: string, authConfig: MastraAuthConfig): boolean => {\n // Check if this path+method combination is publicly accessible\n const publicAccess = [...(defaultAuthConfig.public || []), ...(authConfig.public || [])];\n\n return isAnyMatch(path, method, publicAccess);\n};\n\nconst isAnyMatch = (\n path: string,\n method: string,\n patterns: MastraAuthConfig['protected'] | MastraAuthConfig['public'],\n): boolean => {\n if (!patterns) {\n return false;\n }\n\n for (const patternPathOrMethod of patterns) {\n if (patternPathOrMethod instanceof RegExp) {\n if (patternPathOrMethod.test(path)) {\n return true;\n }\n }\n\n if (typeof patternPathOrMethod === 'string' && pathMatchesPattern(path, patternPathOrMethod)) {\n return true;\n }\n\n if (Array.isArray(patternPathOrMethod) && patternPathOrMethod.length === 2) {\n const [pattern, methodOrMethods] = patternPathOrMethod;\n if (pathMatchesPattern(path, pattern) && matchesOrIncludes(methodOrMethods, method)) {\n return true;\n }\n }\n }\n\n return false;\n};\n\nexport const pathMatchesPattern = (path: string, pattern: string): boolean => {\n // Simple pattern matching that supports wildcards\n // e.g., '/api/agents/*' matches '/api/agents/123'\n if (pattern.endsWith('*')) {\n const prefix = pattern.slice(0, -1);\n return path.startsWith(prefix);\n }\n return path === pattern;\n};\n\nexport const pathMatchesRule = (path: string, rulePath: string | RegExp | string[] | undefined): boolean => {\n if (!rulePath) return true; // No path specified means all paths\n\n if (typeof rulePath === 'string') {\n return pathMatchesPattern(path, rulePath);\n }\n\n if (rulePath instanceof RegExp) {\n return rulePath.test(path);\n }\n\n if (Array.isArray(rulePath)) {\n return rulePath.some(p => pathMatchesPattern(path, p));\n }\n\n return false;\n};\n\nexport const matchesOrIncludes = (values: string | string[], value: string): boolean => {\n if (typeof values === 'string') {\n return values === value;\n }\n\n if (Array.isArray(values)) {\n return values.includes(value);\n }\n\n return false;\n};\n\n// Check authorization rules\nexport const checkRules = async (\n rules: MastraAuthConfig['rules'],\n path: string,\n method: string,\n user: unknown,\n): Promise<boolean> => {\n // Go through rules in order (first match wins)\n for (const i in rules || []) {\n const rule = rules?.[i]!;\n // Check if rule applies to this path\n if (!pathMatchesRule(path, rule.path)) {\n continue;\n }\n\n // Check if rule applies to this method\n if (rule.methods && !matchesOrIncludes(rule.methods, method)) {\n continue;\n }\n\n // Rule matches, check conditions\n const condition = rule.condition;\n if (typeof condition === 'function') {\n const allowed = await Promise.resolve()\n .then(() => condition(user))\n .catch(() => false);\n\n if (allowed) {\n return true;\n }\n } else if (rule.allow) {\n return true;\n }\n }\n\n // No matching rules, deny by default\n return false;\n};\n"]}