@mastra/server 1.36.0-alpha.1 → 1.36.0-alpha.2
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.
- package/CHANGELOG.md +118 -0
- package/dist/{api-schema-manifest-EMKHNXSD.cjs → api-schema-manifest-CF2WPQBA.cjs} +6 -6
- package/dist/{api-schema-manifest-EMKHNXSD.cjs.map → api-schema-manifest-CF2WPQBA.cjs.map} +1 -1
- package/dist/{api-schema-manifest-EJXNYOFH.js → api-schema-manifest-YS3FEIFG.js} +4 -4
- package/dist/{api-schema-manifest-EJXNYOFH.js.map → api-schema-manifest-YS3FEIFG.js.map} +1 -1
- package/dist/{chunk-YARY4I5U.js → chunk-23S37FLK.js} +9 -3
- package/dist/chunk-23S37FLK.js.map +1 -0
- package/dist/{chunk-NG62OLVA.js → chunk-2JXX4IPC.js} +3 -3
- package/dist/{chunk-NG62OLVA.js.map → chunk-2JXX4IPC.js.map} +1 -1
- package/dist/{chunk-6IUJAAQ2.js → chunk-2SMGXJZJ.js} +42 -8
- package/dist/chunk-2SMGXJZJ.js.map +1 -0
- package/dist/{chunk-PQDYNK4J.cjs → chunk-3AKG5KEE.cjs} +45 -37
- package/dist/chunk-3AKG5KEE.cjs.map +1 -0
- package/dist/{chunk-Y6CAJLYX.js → chunk-3FLL7GNJ.js} +6 -6
- package/dist/{chunk-Y6CAJLYX.js.map → chunk-3FLL7GNJ.js.map} +1 -1
- package/dist/chunk-3ZWALPHI.cjs +101 -0
- package/dist/chunk-3ZWALPHI.cjs.map +1 -0
- package/dist/{chunk-Y5LNMKEY.cjs → chunk-43KD3CRE.cjs} +21 -7
- package/dist/chunk-43KD3CRE.cjs.map +1 -0
- package/dist/{chunk-3NA22RQ5.cjs → chunk-4BLUIUHS.cjs} +5 -5
- package/dist/{chunk-3NA22RQ5.cjs.map → chunk-4BLUIUHS.cjs.map} +1 -1
- package/dist/{chunk-FRFWWBSS.js → chunk-4DUHTOLC.js} +4 -4
- package/dist/{chunk-FRFWWBSS.js.map → chunk-4DUHTOLC.js.map} +1 -1
- package/dist/chunk-4G7S52U3.cjs +356 -0
- package/dist/chunk-4G7S52U3.cjs.map +1 -0
- package/dist/{chunk-XHA6OBT3.cjs → chunk-4UFLVROK.cjs} +13 -13
- package/dist/{chunk-XHA6OBT3.cjs.map → chunk-4UFLVROK.cjs.map} +1 -1
- package/dist/{chunk-YHRGDSTK.js → chunk-4XSWMZTL.js} +40 -3
- package/dist/chunk-4XSWMZTL.js.map +1 -0
- package/dist/{chunk-MHQFFRA2.cjs → chunk-4Z24UGLY.cjs} +26 -26
- package/dist/{chunk-MHQFFRA2.cjs.map → chunk-4Z24UGLY.cjs.map} +1 -1
- package/dist/{chunk-GPLCXP3B.cjs → chunk-5GI232FP.cjs} +8 -8
- package/dist/{chunk-GPLCXP3B.cjs.map → chunk-5GI232FP.cjs.map} +1 -1
- package/dist/{chunk-5XW4MKE6.cjs → chunk-65T6KVYX.cjs} +11 -2
- package/dist/chunk-65T6KVYX.cjs.map +1 -0
- package/dist/{chunk-W32BPAIP.js → chunk-664F5XOW.js} +7 -7
- package/dist/{chunk-W32BPAIP.js.map → chunk-664F5XOW.js.map} +1 -1
- package/dist/{chunk-N44OOOAL.js → chunk-6GMGCV74.js} +5 -5
- package/dist/{chunk-N44OOOAL.js.map → chunk-6GMGCV74.js.map} +1 -1
- package/dist/chunk-6JCLSYOU.js +351 -0
- package/dist/chunk-6JCLSYOU.js.map +1 -0
- package/dist/{chunk-HT4KV7V5.js → chunk-6NIQROP2.js} +23 -13
- package/dist/chunk-6NIQROP2.js.map +1 -0
- package/dist/chunk-753JFAF2.js +134 -0
- package/dist/chunk-753JFAF2.js.map +1 -0
- package/dist/{chunk-7BM2AIKU.js → chunk-7BZ2N56X.js} +5 -5
- package/dist/{chunk-7BM2AIKU.js.map → chunk-7BZ2N56X.js.map} +1 -1
- package/dist/{chunk-LQRPDQCE.js → chunk-7EDTSUCY.js} +4 -4
- package/dist/{chunk-LQRPDQCE.js.map → chunk-7EDTSUCY.js.map} +1 -1
- package/dist/chunk-7U7OWTR2.js +149 -0
- package/dist/chunk-7U7OWTR2.js.map +1 -0
- package/dist/{chunk-SR6QNILC.cjs → chunk-A4FTF4A7.cjs} +55 -55
- package/dist/{chunk-SR6QNILC.cjs.map → chunk-A4FTF4A7.cjs.map} +1 -1
- package/dist/{chunk-7YV7MYOP.js → chunk-AAZDGIDJ.js} +22 -12
- package/dist/chunk-AAZDGIDJ.js.map +1 -0
- package/dist/chunk-AR7VSXHH.cjs +143 -0
- package/dist/chunk-AR7VSXHH.cjs.map +1 -0
- package/dist/{chunk-JRFHBWKQ.cjs → chunk-AY3ZP465.cjs} +36 -26
- package/dist/chunk-AY3ZP465.cjs.map +1 -0
- package/dist/{chunk-YLJ5EVO3.js → chunk-BWNJBSXL.js} +3 -3
- package/dist/{chunk-YLJ5EVO3.js.map → chunk-BWNJBSXL.js.map} +1 -1
- package/dist/{chunk-JBAQMT4Y.cjs → chunk-CBHBMWZ2.cjs} +12 -12
- package/dist/{chunk-JBAQMT4Y.cjs.map → chunk-CBHBMWZ2.cjs.map} +1 -1
- package/dist/{chunk-JW4P6OFG.js → chunk-CCL4C2ZO.js} +4 -4
- package/dist/{chunk-JW4P6OFG.js.map → chunk-CCL4C2ZO.js.map} +1 -1
- package/dist/{chunk-7LBBDT4S.js → chunk-CGB327L6.js} +3 -3
- package/dist/{chunk-7LBBDT4S.js.map → chunk-CGB327L6.js.map} +1 -1
- package/dist/{chunk-WP67ASKV.js → chunk-CKCZVUUB.js} +7 -7
- package/dist/{chunk-WP67ASKV.js.map → chunk-CKCZVUUB.js.map} +1 -1
- package/dist/chunk-CM2C2H2Y.cjs +101 -0
- package/dist/chunk-CM2C2H2Y.cjs.map +1 -0
- package/dist/{chunk-RGUKCKGB.cjs → chunk-CODPCBGN.cjs} +22 -22
- package/dist/{chunk-RGUKCKGB.cjs.map → chunk-CODPCBGN.cjs.map} +1 -1
- package/dist/chunk-CRTDKNOZ.cjs +654 -0
- package/dist/chunk-CRTDKNOZ.cjs.map +1 -0
- package/dist/{chunk-OS2636MU.js → chunk-D4HVKF56.js} +5 -5
- package/dist/{chunk-OS2636MU.js.map → chunk-D4HVKF56.js.map} +1 -1
- package/dist/{chunk-73MISLDN.cjs → chunk-D774EZRN.cjs} +16 -16
- package/dist/{chunk-73MISLDN.cjs.map → chunk-D774EZRN.cjs.map} +1 -1
- package/dist/{chunk-L3WM4IWR.cjs → chunk-DYXX34YU.cjs} +56 -21
- package/dist/chunk-DYXX34YU.cjs.map +1 -0
- package/dist/{chunk-DZWFQD53.cjs → chunk-EAPGRYRG.cjs} +6 -6
- package/dist/{chunk-DZWFQD53.cjs.map → chunk-EAPGRYRG.cjs.map} +1 -1
- package/dist/{chunk-R4IYXUNR.cjs → chunk-ESZN7NKS.cjs} +34 -26
- package/dist/chunk-ESZN7NKS.cjs.map +1 -0
- package/dist/{chunk-XZT7USLH.js → chunk-EX3XD2F5.js} +79 -40
- package/dist/chunk-EX3XD2F5.js.map +1 -0
- package/dist/{chunk-E53AJNZB.js → chunk-F2FAL5CZ.js} +2 -2
- package/dist/{chunk-E53AJNZB.js.map → chunk-F2FAL5CZ.js.map} +1 -1
- package/dist/chunk-G5LQCOFZ.js +292 -0
- package/dist/chunk-G5LQCOFZ.js.map +1 -0
- package/dist/chunk-GA4BG5JK.js +46 -0
- package/dist/chunk-GA4BG5JK.js.map +1 -0
- package/dist/{chunk-YPXOTWND.js → chunk-GAGC4WDU.js} +3 -3
- package/dist/{chunk-YPXOTWND.js.map → chunk-GAGC4WDU.js.map} +1 -1
- package/dist/{chunk-T6QQYYPA.cjs → chunk-GAL7C4Y5.cjs} +36 -26
- package/dist/chunk-GAL7C4Y5.cjs.map +1 -0
- package/dist/{chunk-GTYVB2TS.js → chunk-GFZR6THV.js} +3 -3
- package/dist/{chunk-GTYVB2TS.js.map → chunk-GFZR6THV.js.map} +1 -1
- package/dist/{chunk-Q7LA2XMK.js → chunk-GW6T4HLN.js} +9 -9
- package/dist/{chunk-Q7LA2XMK.js.map → chunk-GW6T4HLN.js.map} +1 -1
- package/dist/{chunk-OOEYTKTC.js → chunk-HGRG2WVX.js} +35 -18
- package/dist/chunk-HGRG2WVX.js.map +1 -0
- package/dist/chunk-HMJL3C3H.js +36 -0
- package/dist/chunk-HMJL3C3H.js.map +1 -0
- package/dist/{chunk-X7ZNZFHV.js → chunk-HNGYUI5N.js} +23 -15
- package/dist/chunk-HNGYUI5N.js.map +1 -0
- package/dist/{chunk-7R7WT24X.cjs → chunk-HWT5YD7H.cjs} +17 -17
- package/dist/{chunk-7R7WT24X.cjs.map → chunk-HWT5YD7H.cjs.map} +1 -1
- package/dist/{chunk-PM6YRFZW.cjs → chunk-HXEMVATM.cjs} +8 -8
- package/dist/{chunk-PM6YRFZW.cjs.map → chunk-HXEMVATM.cjs.map} +1 -1
- package/dist/{chunk-R3R6VJRM.cjs → chunk-HZNJ4B7D.cjs} +32 -32
- package/dist/{chunk-R3R6VJRM.cjs.map → chunk-HZNJ4B7D.cjs.map} +1 -1
- package/dist/{chunk-XGNMFTYF.js → chunk-I3RWQGD7.js} +9 -9
- package/dist/{chunk-XGNMFTYF.js.map → chunk-I3RWQGD7.js.map} +1 -1
- package/dist/{chunk-UQ2H32RT.cjs → chunk-I6WBJDRP.cjs} +10 -10
- package/dist/{chunk-UQ2H32RT.cjs.map → chunk-I6WBJDRP.cjs.map} +1 -1
- package/dist/{chunk-T3PECMPO.js → chunk-IRJQQYII.js} +7 -7
- package/dist/{chunk-T3PECMPO.js.map → chunk-IRJQQYII.js.map} +1 -1
- package/dist/{chunk-4YSEVAAS.cjs → chunk-J6IRCLC6.cjs} +31 -31
- package/dist/{chunk-4YSEVAAS.cjs.map → chunk-J6IRCLC6.cjs.map} +1 -1
- package/dist/chunk-JUYUBEMU.js +28 -0
- package/dist/chunk-JUYUBEMU.js.map +1 -0
- package/dist/chunk-K6AEVBZQ.js +98 -0
- package/dist/chunk-K6AEVBZQ.js.map +1 -0
- package/dist/{chunk-B3UPXBHD.js → chunk-K74VFJKF.js} +227 -41
- package/dist/chunk-K74VFJKF.js.map +1 -0
- package/dist/{chunk-MEYWNCUV.cjs → chunk-KE4V4LJE.cjs} +7 -7
- package/dist/{chunk-MEYWNCUV.cjs.map → chunk-KE4V4LJE.cjs.map} +1 -1
- package/dist/{chunk-DYN7KSCZ.js → chunk-KTOJ2F6V.js} +5 -5
- package/dist/{chunk-DYN7KSCZ.js.map → chunk-KTOJ2F6V.js.map} +1 -1
- package/dist/{chunk-ES23WZRF.cjs → chunk-LEIV627E.cjs} +15 -15
- package/dist/{chunk-ES23WZRF.cjs.map → chunk-LEIV627E.cjs.map} +1 -1
- package/dist/chunk-LG57RYYL.cjs +551 -0
- package/dist/chunk-LG57RYYL.cjs.map +1 -0
- package/dist/{chunk-AIRSK4QU.js → chunk-LH5Y7AJF.js} +46 -7
- package/dist/chunk-LH5Y7AJF.js.map +1 -0
- package/dist/{chunk-5TTCUSSA.js → chunk-LPFE6YTG.js} +3 -3
- package/dist/{chunk-5TTCUSSA.js.map → chunk-LPFE6YTG.js.map} +1 -1
- package/dist/{chunk-WYLVJSGR.cjs → chunk-LTRLD33R.cjs} +47 -8
- package/dist/chunk-LTRLD33R.cjs.map +1 -0
- package/dist/{chunk-UH3MHVDF.cjs → chunk-M4B42JGO.cjs} +6 -3
- package/dist/chunk-M4B42JGO.cjs.map +1 -0
- package/dist/{chunk-QWPEAC7I.cjs → chunk-MERLF4UP.cjs} +94 -94
- package/dist/{chunk-QWPEAC7I.cjs.map → chunk-MERLF4UP.cjs.map} +1 -1
- package/dist/chunk-MXMOHULN.js +497 -0
- package/dist/chunk-MXMOHULN.js.map +1 -0
- package/dist/{chunk-CIPZ4VOZ.cjs → chunk-N6RQC4Z3.cjs} +4 -4
- package/dist/{chunk-CIPZ4VOZ.cjs.map → chunk-N6RQC4Z3.cjs.map} +1 -1
- package/dist/{chunk-DM6UW5RD.js → chunk-N7CG7MFQ.js} +8 -8
- package/dist/{chunk-DM6UW5RD.js.map → chunk-N7CG7MFQ.js.map} +1 -1
- package/dist/chunk-NRRAME2S.js +98 -0
- package/dist/chunk-NRRAME2S.js.map +1 -0
- package/dist/chunk-O4O2EJF7.cjs +13 -0
- package/dist/chunk-O4O2EJF7.cjs.map +1 -0
- package/dist/{chunk-H3RUJBEL.cjs → chunk-O7B3P2AT.cjs} +57 -40
- package/dist/chunk-O7B3P2AT.cjs.map +1 -0
- package/dist/{chunk-L2RZNUOW.js → chunk-OGYYXNGI.js} +4 -4
- package/dist/{chunk-L2RZNUOW.js.map → chunk-OGYYXNGI.js.map} +1 -1
- package/dist/{chunk-M7DF3D2M.js → chunk-OJNVSXOF.js} +19 -5
- package/dist/chunk-OJNVSXOF.js.map +1 -0
- package/dist/{chunk-KGK2LCZ4.js → chunk-OKKJPM5N.js} +21 -14
- package/dist/chunk-OKKJPM5N.js.map +1 -0
- package/dist/{chunk-Z6C7SDXA.js → chunk-ONCDLJUQ.js} +6 -3
- package/dist/chunk-ONCDLJUQ.js.map +1 -0
- package/dist/{chunk-M7CTMLXS.js → chunk-OSN3DL34.js} +4 -4
- package/dist/{chunk-M7CTMLXS.js.map → chunk-OSN3DL34.js.map} +1 -1
- package/dist/chunk-OXSAN74Y.cjs +504 -0
- package/dist/chunk-OXSAN74Y.cjs.map +1 -0
- package/dist/{chunk-ZIR2AE52.js → chunk-P5ZWPVC2.js} +4 -4
- package/dist/{chunk-ZIR2AE52.js.map → chunk-P5ZWPVC2.js.map} +1 -1
- package/dist/{chunk-BBD7VAAR.js → chunk-PQ37PNAE.js} +22 -12
- package/dist/chunk-PQ37PNAE.js.map +1 -0
- package/dist/{chunk-DRNCUSSM.cjs → chunk-PWGPLCL4.cjs} +5 -5
- package/dist/{chunk-DRNCUSSM.cjs.map → chunk-PWGPLCL4.cjs.map} +1 -1
- package/dist/{chunk-NPMJ6FRL.cjs → chunk-QGPIJ3KB.cjs} +67 -67
- package/dist/{chunk-NPMJ6FRL.cjs.map → chunk-QGPIJ3KB.cjs.map} +1 -1
- package/dist/chunk-QJU62KP2.cjs +298 -0
- package/dist/chunk-QJU62KP2.cjs.map +1 -0
- package/dist/{chunk-AY5TY4EN.js → chunk-QKAIQUSC.js} +4 -4
- package/dist/{chunk-AY5TY4EN.js.map → chunk-QKAIQUSC.js.map} +1 -1
- package/dist/{chunk-NDMG7SUN.js → chunk-QLX34MAR.js} +8 -8
- package/dist/{chunk-NDMG7SUN.js.map → chunk-QLX34MAR.js.map} +1 -1
- package/dist/{chunk-LTYRUL3Q.cjs → chunk-QZ6UFQ7V.cjs} +42 -2
- package/dist/chunk-QZ6UFQ7V.cjs.map +1 -0
- package/dist/{chunk-IVFIYTLD.cjs → chunk-RJF75FEP.cjs} +26 -26
- package/dist/{chunk-IVFIYTLD.cjs.map → chunk-RJF75FEP.cjs.map} +1 -1
- package/dist/{chunk-M4MNMBQF.cjs → chunk-RYPLQO4Z.cjs} +32 -25
- package/dist/chunk-RYPLQO4Z.cjs.map +1 -0
- package/dist/chunk-SFPN7SHZ.js +11 -0
- package/dist/chunk-SFPN7SHZ.js.map +1 -0
- package/dist/{chunk-BBB4NKZZ.cjs → chunk-SKLREO5Z.cjs} +82 -82
- package/dist/{chunk-BBB4NKZZ.cjs.map → chunk-SKLREO5Z.cjs.map} +1 -1
- package/dist/{chunk-LBEQ4EE4.js → chunk-SPGVPADY.js} +3 -3
- package/dist/{chunk-LBEQ4EE4.js.map → chunk-SPGVPADY.js.map} +1 -1
- package/dist/{chunk-Q2B7W7GA.cjs → chunk-T3C54LPX.cjs} +57 -5
- package/dist/chunk-T3C54LPX.cjs.map +1 -0
- package/dist/{chunk-DGJSHUP4.cjs → chunk-U6QDJKSZ.cjs} +105 -105
- package/dist/{chunk-DGJSHUP4.cjs.map → chunk-U6QDJKSZ.cjs.map} +1 -1
- package/dist/{chunk-DZXHO72E.cjs → chunk-UBYGPC2S.cjs} +12 -12
- package/dist/{chunk-DZXHO72E.cjs.map → chunk-UBYGPC2S.cjs.map} +1 -1
- package/dist/{chunk-IDUFQ5HG.js → chunk-UCKK7LPQ.js} +3 -3
- package/dist/{chunk-IDUFQ5HG.js.map → chunk-UCKK7LPQ.js.map} +1 -1
- package/dist/{chunk-JX4UGU4A.cjs → chunk-UGJBURIS.cjs} +12 -12
- package/dist/{chunk-JX4UGU4A.cjs.map → chunk-UGJBURIS.cjs.map} +1 -1
- package/dist/{chunk-PDHGJ7GP.js → chunk-UIRQU4GW.js} +54 -6
- package/dist/chunk-UIRQU4GW.js.map +1 -0
- package/dist/chunk-V4ATNZXG.cjs +31 -0
- package/dist/chunk-V4ATNZXG.cjs.map +1 -0
- package/dist/chunk-VX3MJR4P.cjs +161 -0
- package/dist/chunk-VX3MJR4P.cjs.map +1 -0
- package/dist/{chunk-YE3LMHL3.js → chunk-WD2L3ZU3.js} +5 -5
- package/dist/{chunk-YE3LMHL3.js.map → chunk-WD2L3ZU3.js.map} +1 -1
- package/dist/{chunk-QTPAVOG2.cjs → chunk-WLGC3IWY.cjs} +49 -39
- package/dist/chunk-WLGC3IWY.cjs.map +1 -0
- package/dist/{chunk-MXGCIYNM.js → chunk-XI3XH4G7.js} +22 -12
- package/dist/chunk-XI3XH4G7.js.map +1 -0
- package/dist/{chunk-PYZAUXQX.cjs → chunk-XNR667MS.cjs} +27 -27
- package/dist/{chunk-PYZAUXQX.cjs.map → chunk-XNR667MS.cjs.map} +1 -1
- package/dist/{chunk-Y6MWNLAA.cjs → chunk-XR3CGVKU.cjs} +8 -8
- package/dist/{chunk-Y6MWNLAA.cjs.map → chunk-XR3CGVKU.cjs.map} +1 -1
- package/dist/{chunk-AZORAK4H.cjs → chunk-XTFWFQZ7.cjs} +2 -2
- package/dist/{chunk-AZORAK4H.cjs.map → chunk-XTFWFQZ7.cjs.map} +1 -1
- package/dist/{chunk-ELWN7ZXR.js → chunk-Y3KIKJW6.js} +6 -6
- package/dist/{chunk-ELWN7ZXR.js.map → chunk-Y3KIKJW6.js.map} +1 -1
- package/dist/{chunk-3BL73LS3.cjs → chunk-YETIPEQM.cjs} +40 -40
- package/dist/{chunk-3BL73LS3.cjs.map → chunk-YETIPEQM.cjs.map} +1 -1
- package/dist/{chunk-B34S64RC.cjs → chunk-YNSUYESL.cjs} +23 -3
- package/dist/chunk-YNSUYESL.cjs.map +1 -0
- package/dist/{chunk-3PQSHLG7.cjs → chunk-YQYYIRDS.cjs} +164 -164
- package/dist/{chunk-3PQSHLG7.cjs.map → chunk-YQYYIRDS.cjs.map} +1 -1
- package/dist/{chunk-JRZZN55Y.cjs → chunk-Z772ZUYH.cjs} +53 -43
- package/dist/chunk-Z772ZUYH.cjs.map +1 -0
- package/dist/chunk-ZCX2J552.cjs +38 -0
- package/dist/chunk-ZCX2J552.cjs.map +1 -0
- package/dist/{chunk-OULCMO5R.js → chunk-ZHS2QDGO.js} +23 -15
- package/dist/chunk-ZHS2QDGO.js.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/server/auth/helpers.d.ts +3 -0
- package/dist/server/auth/helpers.d.ts.map +1 -1
- package/dist/server/auth/index.cjs +28 -15
- package/dist/server/auth/index.js +2 -1
- package/dist/server/browser-stream/types.d.ts +9 -0
- package/dist/server/browser-stream/types.d.ts.map +1 -1
- package/dist/server/constants.d.ts +3 -0
- package/dist/server/constants.d.ts.map +1 -1
- package/dist/server/handlers/a2a.cjs +14 -14
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +16 -16
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agent-versions.cjs +8 -8
- package/dist/server/handlers/agent-versions.d.ts.map +1 -1
- package/dist/server/handlers/agent-versions.js +1 -1
- package/dist/server/handlers/agents.cjs +41 -41
- package/dist/server/handlers/agents.d.ts +185 -0
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/auth.cjs +15 -11
- package/dist/server/handlers/auth.d.ts +168 -146
- package/dist/server/handlers/auth.d.ts.map +1 -1
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/authorship.cjs +52 -0
- package/dist/server/handlers/authorship.cjs.map +1 -0
- package/dist/server/handlers/authorship.d.ts +176 -0
- package/dist/server/handlers/authorship.d.ts.map +1 -0
- package/dist/server/handlers/authorship.js +3 -0
- package/dist/server/handlers/authorship.js.map +1 -0
- package/dist/server/handlers/background-tasks.cjs +4 -4
- package/dist/server/handlers/background-tasks.js +1 -1
- package/dist/server/handlers/builder-registry.cjs +28 -0
- package/dist/server/handlers/builder-registry.cjs.map +1 -0
- package/dist/server/handlers/builder-registry.d.ts +170 -0
- package/dist/server/handlers/builder-registry.d.ts.map +1 -0
- package/dist/server/handlers/builder-registry.js +3 -0
- package/dist/server/handlers/builder-registry.js.map +1 -0
- package/dist/server/handlers/channels.cjs +5 -5
- package/dist/server/handlers/channels.js +1 -1
- package/dist/server/handlers/conversations.cjs +5 -5
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/datasets.cjs +26 -26
- package/dist/server/handlers/datasets.js +1 -1
- package/dist/server/handlers/editor-builder.cjs +24 -0
- package/dist/server/handlers/editor-builder.cjs.map +1 -0
- package/dist/server/handlers/editor-builder.d.ts +259 -0
- package/dist/server/handlers/editor-builder.d.ts.map +1 -0
- package/dist/server/handlers/editor-builder.js +3 -0
- package/dist/server/handlers/editor-builder.js.map +1 -0
- package/dist/server/handlers/error.cjs +3 -3
- package/dist/server/handlers/error.d.ts.map +1 -1
- package/dist/server/handlers/error.js +1 -1
- package/dist/server/handlers/favorites-enrichment.cjs +16 -0
- package/dist/server/handlers/favorites-enrichment.cjs.map +1 -0
- package/dist/server/handlers/favorites-enrichment.d.ts +27 -0
- package/dist/server/handlers/favorites-enrichment.d.ts.map +1 -0
- package/dist/server/handlers/favorites-enrichment.js +3 -0
- package/dist/server/handlers/favorites-enrichment.js.map +1 -0
- package/dist/server/handlers/logs.cjs +4 -4
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/mcp-client-versions.cjs +8 -8
- package/dist/server/handlers/mcp-client-versions.d.ts.map +1 -1
- package/dist/server/handlers/mcp-client-versions.js +1 -1
- package/dist/server/handlers/mcp.cjs +11 -11
- package/dist/server/handlers/mcp.js +1 -1
- package/dist/server/handlers/memory.cjs +27 -27
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability-new-endpoints.cjs +28 -28
- package/dist/server/handlers/observability-new-endpoints.js +1 -1
- package/dist/server/handlers/observability.cjs +39 -39
- package/dist/server/handlers/observability.js +2 -2
- package/dist/server/handlers/processor-providers.cjs +3 -3
- package/dist/server/handlers/processor-providers.js +1 -1
- package/dist/server/handlers/processors.cjs +4 -4
- package/dist/server/handlers/processors.js +1 -1
- package/dist/server/handlers/prompt-block-versions.cjs +8 -8
- package/dist/server/handlers/prompt-block-versions.d.ts.map +1 -1
- package/dist/server/handlers/prompt-block-versions.js +1 -1
- package/dist/server/handlers/responses.cjs +4 -4
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers/responses.storage.cjs +8 -8
- package/dist/server/handlers/responses.storage.js +1 -1
- package/dist/server/handlers/schedules.cjs +6 -6
- package/dist/server/handlers/schedules.js +1 -1
- package/dist/server/handlers/scorer-versions.cjs +8 -8
- package/dist/server/handlers/scorer-versions.d.ts.map +1 -1
- package/dist/server/handlers/scorer-versions.js +1 -1
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/skills-sh-shared.cjs +40 -0
- package/dist/server/handlers/skills-sh-shared.cjs.map +1 -0
- package/dist/server/handlers/skills-sh-shared.d.ts +89 -0
- package/dist/server/handlers/skills-sh-shared.d.ts.map +1 -0
- package/dist/server/handlers/skills-sh-shared.js +3 -0
- package/dist/server/handlers/skills-sh-shared.js.map +1 -0
- package/dist/server/handlers/stored-agent-favorites.cjs +16 -0
- package/dist/server/handlers/stored-agent-favorites.cjs.map +1 -0
- package/dist/server/handlers/stored-agent-favorites.d.ts +29 -0
- package/dist/server/handlers/stored-agent-favorites.d.ts.map +1 -0
- package/dist/server/handlers/stored-agent-favorites.js +3 -0
- package/dist/server/handlers/stored-agent-favorites.js.map +1 -0
- package/dist/server/handlers/stored-agents.cjs +7 -7
- package/dist/server/handlers/stored-agents.d.ts +390 -0
- package/dist/server/handlers/stored-agents.d.ts.map +1 -1
- package/dist/server/handlers/stored-agents.js +1 -1
- package/dist/server/handlers/stored-mcp-clients.cjs +6 -6
- package/dist/server/handlers/stored-mcp-clients.d.ts.map +1 -1
- package/dist/server/handlers/stored-mcp-clients.js +1 -1
- package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
- package/dist/server/handlers/stored-prompt-blocks.d.ts.map +1 -1
- package/dist/server/handlers/stored-prompt-blocks.js +1 -1
- package/dist/server/handlers/stored-scorers.cjs +6 -6
- package/dist/server/handlers/stored-scorers.d.ts.map +1 -1
- package/dist/server/handlers/stored-scorers.js +1 -1
- package/dist/server/handlers/stored-skill-favorites.cjs +16 -0
- package/dist/server/handlers/stored-skill-favorites.cjs.map +1 -0
- package/dist/server/handlers/stored-skill-favorites.d.ts +29 -0
- package/dist/server/handlers/stored-skill-favorites.d.ts.map +1 -0
- package/dist/server/handlers/stored-skill-favorites.js +3 -0
- package/dist/server/handlers/stored-skill-favorites.js.map +1 -0
- package/dist/server/handlers/stored-skills.cjs +7 -7
- package/dist/server/handlers/stored-skills.d.ts +117 -0
- package/dist/server/handlers/stored-skills.d.ts.map +1 -1
- package/dist/server/handlers/stored-skills.js +1 -1
- package/dist/server/handlers/stored-workspaces.cjs +6 -6
- package/dist/server/handlers/stored-workspaces.d.ts +2 -0
- package/dist/server/handlers/stored-workspaces.d.ts.map +1 -1
- package/dist/server/handlers/stored-workspaces.js +1 -1
- package/dist/server/handlers/system.cjs +3 -3
- package/dist/server/handlers/system.js +1 -1
- package/dist/server/handlers/tool-providers.cjs +5 -5
- package/dist/server/handlers/tool-providers.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +10 -10
- package/dist/server/handlers/utils.d.ts +1 -1
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/validate-avatar.cjs +12 -0
- package/dist/server/handlers/validate-avatar.cjs.map +1 -0
- package/dist/server/handlers/validate-avatar.d.ts +7 -0
- package/dist/server/handlers/validate-avatar.d.ts.map +1 -0
- package/dist/server/handlers/validate-avatar.js +3 -0
- package/dist/server/handlers/validate-avatar.js.map +1 -0
- package/dist/server/handlers/vector.cjs +16 -16
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/voice.cjs +8 -8
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +26 -26
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers/workspace.cjs +26 -26
- package/dist/server/handlers/workspace.js +1 -1
- package/dist/server/handlers.cjs +38 -38
- package/dist/server/handlers.js +16 -16
- package/dist/server/schemas/builder-registry.d.ts +73 -0
- package/dist/server/schemas/builder-registry.d.ts.map +1 -0
- package/dist/server/schemas/editor-builder.d.ts +288 -0
- package/dist/server/schemas/editor-builder.d.ts.map +1 -0
- package/dist/server/schemas/favorites.d.ts +9 -0
- package/dist/server/schemas/favorites.d.ts.map +1 -0
- package/dist/server/schemas/index.cjs +400 -384
- package/dist/server/schemas/index.js +9 -9
- package/dist/server/schemas/stored-agents.d.ts +1066 -94
- package/dist/server/schemas/stored-agents.d.ts.map +1 -1
- package/dist/server/schemas/stored-skills.d.ts +111 -0
- package/dist/server/schemas/stored-skills.d.ts.map +1 -1
- package/dist/server/schemas/stored-workspaces.d.ts +1 -0
- package/dist/server/schemas/stored-workspaces.d.ts.map +1 -1
- package/dist/server/server-adapter/index.cjs +200 -124
- package/dist/server/server-adapter/index.cjs.map +1 -1
- package/dist/server/server-adapter/index.d.ts +9 -1
- package/dist/server/server-adapter/index.d.ts.map +1 -1
- package/dist/server/server-adapter/index.js +174 -98
- package/dist/server/server-adapter/index.js.map +1 -1
- package/dist/server/server-adapter/routes/editor-builder.d.ts +353 -0
- package/dist/server/server-adapter/routes/editor-builder.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/fga-manifest.d.ts +4 -0
- package/dist/server/server-adapter/routes/fga-manifest.d.ts.map +1 -0
- package/dist/server/server-adapter/routes/index.d.ts +7 -1
- package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/permissions.d.ts +8 -3
- package/dist/server/server-adapter/routes/permissions.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/route-builder.d.ts +3 -1
- package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/stored-agents.d.ts +4 -1
- package/dist/server/server-adapter/routes/stored-agents.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/stored-skills.d.ts +138 -1
- package/dist/server/server-adapter/routes/stored-skills.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/stored-workspaces.d.ts +2 -0
- package/dist/server/server-adapter/routes/stored-workspaces.d.ts.map +1 -1
- package/dist/server/utils/resolve-builder-model-policy.d.ts +17 -0
- package/dist/server/utils/resolve-builder-model-policy.d.ts.map +1 -0
- package/dist/server/utils.d.ts +11 -0
- package/dist/server/utils.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/chunk-5XW4MKE6.cjs.map +0 -1
- package/dist/chunk-6IUJAAQ2.js.map +0 -1
- package/dist/chunk-7YV7MYOP.js.map +0 -1
- package/dist/chunk-AIRSK4QU.js.map +0 -1
- package/dist/chunk-B34S64RC.cjs.map +0 -1
- package/dist/chunk-B3UPXBHD.js.map +0 -1
- package/dist/chunk-BBD7VAAR.js.map +0 -1
- package/dist/chunk-DRTUU5WC.cjs +0 -365
- package/dist/chunk-DRTUU5WC.cjs.map +0 -1
- package/dist/chunk-H3RUJBEL.cjs.map +0 -1
- package/dist/chunk-HT4KV7V5.js.map +0 -1
- package/dist/chunk-JRFHBWKQ.cjs.map +0 -1
- package/dist/chunk-JRZZN55Y.cjs.map +0 -1
- package/dist/chunk-KGK2LCZ4.js.map +0 -1
- package/dist/chunk-L3WM4IWR.cjs.map +0 -1
- package/dist/chunk-LTYRUL3Q.cjs.map +0 -1
- package/dist/chunk-M4MNMBQF.cjs.map +0 -1
- package/dist/chunk-M7DF3D2M.js.map +0 -1
- package/dist/chunk-MXGCIYNM.js.map +0 -1
- package/dist/chunk-OMLB6EMJ.cjs +0 -313
- package/dist/chunk-OMLB6EMJ.cjs.map +0 -1
- package/dist/chunk-OOEYTKTC.js.map +0 -1
- package/dist/chunk-OULCMO5R.js.map +0 -1
- package/dist/chunk-P23KBWKB.js +0 -26
- package/dist/chunk-P23KBWKB.js.map +0 -1
- package/dist/chunk-PDHGJ7GP.js.map +0 -1
- package/dist/chunk-PQDYNK4J.cjs.map +0 -1
- package/dist/chunk-Q2B7W7GA.cjs.map +0 -1
- package/dist/chunk-QTPAVOG2.cjs.map +0 -1
- package/dist/chunk-R4IYXUNR.cjs.map +0 -1
- package/dist/chunk-T6QQYYPA.cjs.map +0 -1
- package/dist/chunk-UH3MHVDF.cjs.map +0 -1
- package/dist/chunk-WNIL6DVE.cjs +0 -615
- package/dist/chunk-WNIL6DVE.cjs.map +0 -1
- package/dist/chunk-WYLVJSGR.cjs.map +0 -1
- package/dist/chunk-X7ZNZFHV.js.map +0 -1
- package/dist/chunk-XT5ZVU5J.js +0 -306
- package/dist/chunk-XT5ZVU5J.js.map +0 -1
- package/dist/chunk-XZT7USLH.js.map +0 -1
- package/dist/chunk-Y5LNMKEY.cjs.map +0 -1
- package/dist/chunk-YARY4I5U.js.map +0 -1
- package/dist/chunk-YHRGDSTK.js.map +0 -1
- package/dist/chunk-Z6C7SDXA.js.map +0 -1
|
@@ -1,18 +1,143 @@
|
|
|
1
|
-
import { getEffectivePermission, SERVER_ROUTES } from '../../chunk-
|
|
2
|
-
export { SERVER_ROUTES, deriveAction, derivePermission, extractResource, getEffectivePermission } from '../../chunk-
|
|
3
|
-
import { coreAuthMiddleware } from '../../chunk-
|
|
4
|
-
import { normalizeRoutePath } from '../../chunk-
|
|
5
|
-
export { WorkflowRegistry, normalizeRoutePath } from '../../chunk-
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
import { isReservedRequestContextKey, isStudioClientTypeHeader, MASTRA_CLIENT_TYPE_HEADER, MASTRA_IS_STUDIO_KEY } from '../../chunk-
|
|
10
|
-
export { MASTRA_CLIENT_TYPE_HEADER, MASTRA_IS_STUDIO_KEY, MASTRA_STUDIO_CLIENT_TYPE, isReservedRequestContextKey, isStudioClientTypeHeader } from '../../chunk-
|
|
1
|
+
import { getEffectivePermission, SERVER_ROUTES } from '../../chunk-EX3XD2F5.js';
|
|
2
|
+
export { SERVER_ROUTES, deriveAction, derivePermission, extractResource, getEffectivePermission } from '../../chunk-EX3XD2F5.js';
|
|
3
|
+
import { coreAuthMiddleware } from '../../chunk-OJNVSXOF.js';
|
|
4
|
+
import { normalizeRoutePath } from '../../chunk-4XSWMZTL.js';
|
|
5
|
+
export { WorkflowRegistry, normalizeRoutePath } from '../../chunk-4XSWMZTL.js';
|
|
6
|
+
import { formatZodError } from '../../chunk-GA4BG5JK.js';
|
|
7
|
+
import { generateOpenAPIDocument, convertCustomRoutesToOpenAPIPaths } from '../../chunk-F2FAL5CZ.js';
|
|
8
|
+
export { createPublicRoute, createRoute, generateOpenAPIDocument, jsonQueryParam, pickParams, wrapSchemaForQueryParams } from '../../chunk-F2FAL5CZ.js';
|
|
9
|
+
import { isReservedRequestContextKey, isStudioClientTypeHeader, MASTRA_CLIENT_TYPE_HEADER, MASTRA_IS_STUDIO_KEY, MASTRA_RESOURCE_ID_KEY } from '../../chunk-23S37FLK.js';
|
|
10
|
+
export { MASTRA_CLIENT_TYPE_HEADER, MASTRA_IS_STUDIO_KEY, MASTRA_STUDIO_CLIENT_TYPE, isReservedRequestContextKey, isStudioClientTypeHeader } from '../../chunk-23S37FLK.js';
|
|
11
11
|
import { RequestContext } from '@mastra/core/request-context';
|
|
12
12
|
import { MastraServerBase } from '@mastra/core/server';
|
|
13
13
|
import { Hono } from 'hono';
|
|
14
14
|
import { z } from 'zod/v4';
|
|
15
15
|
|
|
16
|
+
// src/server/server-adapter/routes/fga-manifest.ts
|
|
17
|
+
function isProtectedFGARoute(route) {
|
|
18
|
+
return route.requiresAuth !== false;
|
|
19
|
+
}
|
|
20
|
+
function getToolRoutePermission(path) {
|
|
21
|
+
return path.includes("/execute") ? "tools:execute" : "tools:read";
|
|
22
|
+
}
|
|
23
|
+
function getAgentToolResourceId(agentId, toolId) {
|
|
24
|
+
return `${agentId}:${toolId}`;
|
|
25
|
+
}
|
|
26
|
+
function getMCPToolResourceId(serverId, toolId) {
|
|
27
|
+
return JSON.stringify([serverId, toolId]);
|
|
28
|
+
}
|
|
29
|
+
var STORED_ROUTE_FGA = {
|
|
30
|
+
agents: { resourceType: "stored-agents", idParams: ["storedAgentId", "agentId"] },
|
|
31
|
+
"mcp-clients": { resourceType: "stored-mcp-clients", idParams: ["storedMCPClientId", "mcpClientId"] },
|
|
32
|
+
"prompt-blocks": { resourceType: "stored-prompt-blocks", idParams: ["storedPromptBlockId", "promptBlockId"] },
|
|
33
|
+
scorers: { resourceType: "stored-scorers", idParams: ["storedScorerId", "scorerId"] },
|
|
34
|
+
skills: { resourceType: "stored-skills", idParams: ["storedSkillId"] },
|
|
35
|
+
workspaces: { resourceType: "stored-workspaces", idParams: ["storedWorkspaceId"] }
|
|
36
|
+
};
|
|
37
|
+
function getStoredResourceRouteFGAConfig(path, permission) {
|
|
38
|
+
const match = path.match(/^\/stored\/([^/]+)/);
|
|
39
|
+
if (!match?.[1]) {
|
|
40
|
+
return null;
|
|
41
|
+
}
|
|
42
|
+
const config = STORED_ROUTE_FGA[match[1]];
|
|
43
|
+
if (!config) {
|
|
44
|
+
return null;
|
|
45
|
+
}
|
|
46
|
+
return {
|
|
47
|
+
resourceType: config.resourceType,
|
|
48
|
+
resourceId: (params, { requestContext }) => {
|
|
49
|
+
for (const idParam of config.idParams) {
|
|
50
|
+
const id = params[idParam];
|
|
51
|
+
if (typeof id === "string" && id) {
|
|
52
|
+
return id;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
const scopedResourceId = requestContext?.get(MASTRA_RESOURCE_ID_KEY);
|
|
56
|
+
return typeof scopedResourceId === "string" && scopedResourceId ? scopedResourceId : config.resourceType;
|
|
57
|
+
},
|
|
58
|
+
permission
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
function getBuiltInRouteFGAConfig(route) {
|
|
62
|
+
if (!isProtectedFGARoute(route) || !route.path || !route.method) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
const permission = getEffectivePermission(route);
|
|
66
|
+
if (!permission) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
const path = route.path;
|
|
70
|
+
const storedRouteConfig = getStoredResourceRouteFGAConfig(path, permission);
|
|
71
|
+
if (storedRouteConfig) {
|
|
72
|
+
return storedRouteConfig;
|
|
73
|
+
}
|
|
74
|
+
if (path.startsWith("/agents/:agentId/tools/:toolId")) {
|
|
75
|
+
return {
|
|
76
|
+
resourceType: "tool",
|
|
77
|
+
resourceId: ({ agentId, toolId }) => getAgentToolResourceId(String(agentId), String(toolId)),
|
|
78
|
+
permission: getToolRoutePermission(path)
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
if (path.startsWith("/agents/:agentId")) {
|
|
82
|
+
return { resourceType: "agent", resourceIdParam: "agentId", permission };
|
|
83
|
+
}
|
|
84
|
+
if (path.startsWith("/workflows/:workflowId")) {
|
|
85
|
+
return { resourceType: "workflow", resourceIdParam: "workflowId", permission };
|
|
86
|
+
}
|
|
87
|
+
if (path.startsWith("/tools/:toolId")) {
|
|
88
|
+
return { resourceType: "tool", resourceIdParam: "toolId", permission };
|
|
89
|
+
}
|
|
90
|
+
if (path.startsWith("/mcp/:serverId/tools/:toolId")) {
|
|
91
|
+
return {
|
|
92
|
+
resourceType: "tool",
|
|
93
|
+
resourceId: ({ serverId, toolId }) => getMCPToolResourceId(String(serverId), String(toolId)),
|
|
94
|
+
permission: getToolRoutePermission(path)
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (path.startsWith("/mcp/:serverId")) {
|
|
98
|
+
return { resourceType: "mcp", resourceIdParam: "serverId", permission };
|
|
99
|
+
}
|
|
100
|
+
if (path.startsWith("/memory/threads/:threadId") || path.startsWith("/memory/network/threads/:threadId")) {
|
|
101
|
+
return { resourceType: "thread", resourceIdParam: "threadId", permission };
|
|
102
|
+
}
|
|
103
|
+
if (path === "/memory/threads" || path === "/memory/network/threads") {
|
|
104
|
+
return {
|
|
105
|
+
resourceType: "thread",
|
|
106
|
+
resourceId: ({ threadId, resourceId }) => {
|
|
107
|
+
if (typeof threadId === "string") return threadId;
|
|
108
|
+
return typeof resourceId === "string" ? resourceId : void 0;
|
|
109
|
+
},
|
|
110
|
+
permission
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
if (path === "/memory/save-messages" || path === "/memory/network/save-messages") {
|
|
114
|
+
return {
|
|
115
|
+
resourceType: "thread",
|
|
116
|
+
resourceId: ({ messages }) => {
|
|
117
|
+
if (!Array.isArray(messages)) return void 0;
|
|
118
|
+
const threadId = messages.find(
|
|
119
|
+
(message) => message && typeof message === "object" && "threadId" in message
|
|
120
|
+
)?.threadId;
|
|
121
|
+
return typeof threadId === "string" ? threadId : void 0;
|
|
122
|
+
},
|
|
123
|
+
permission
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
if (path === "/v1/responses") {
|
|
127
|
+
return { resourceType: "agent", resourceIdParam: "agent_id", permission };
|
|
128
|
+
}
|
|
129
|
+
if (path.startsWith("/v1/responses/:responseId")) {
|
|
130
|
+
return { resourceType: "response", resourceIdParam: "responseId", permission };
|
|
131
|
+
}
|
|
132
|
+
if (path === "/v1/conversations") {
|
|
133
|
+
return { resourceType: "agent", resourceIdParam: "agent_id", permission };
|
|
134
|
+
}
|
|
135
|
+
if (path.startsWith("/v1/conversations/:conversationId")) {
|
|
136
|
+
return { resourceType: "conversation", resourceIdParam: "conversationId", permission };
|
|
137
|
+
}
|
|
138
|
+
return null;
|
|
139
|
+
}
|
|
140
|
+
|
|
16
141
|
// src/server/server-adapter/redact.ts
|
|
17
142
|
function redactV2Payload(payload) {
|
|
18
143
|
const redactedPayload = { ...payload };
|
|
@@ -105,7 +230,7 @@ function redactStreamChunk(chunk) {
|
|
|
105
230
|
}
|
|
106
231
|
|
|
107
232
|
// src/server/server-adapter/index.ts
|
|
108
|
-
function
|
|
233
|
+
function isProtectedFGARoute2(route) {
|
|
109
234
|
return route.requiresAuth !== false;
|
|
110
235
|
}
|
|
111
236
|
function formatRoute(route) {
|
|
@@ -124,87 +249,7 @@ function getFGARouteInfo(route) {
|
|
|
124
249
|
};
|
|
125
250
|
}
|
|
126
251
|
function getRoutePermissions(route) {
|
|
127
|
-
return [getEffectivePermission(route), route.fga?.permission].filter(
|
|
128
|
-
(permission) => Boolean(permission)
|
|
129
|
-
);
|
|
130
|
-
}
|
|
131
|
-
function getToolRoutePermission(path) {
|
|
132
|
-
return path.includes("/execute") ? "tools:execute" : "tools:read";
|
|
133
|
-
}
|
|
134
|
-
function getBuiltInRouteFGAConfig(route) {
|
|
135
|
-
if (!isProtectedFGARoute(route) || !route.path || !route.method) {
|
|
136
|
-
return null;
|
|
137
|
-
}
|
|
138
|
-
const permission = getEffectivePermission(route);
|
|
139
|
-
if (!permission) {
|
|
140
|
-
return null;
|
|
141
|
-
}
|
|
142
|
-
const path = route.path;
|
|
143
|
-
if (path.startsWith("/agents/:agentId/tools/:toolId")) {
|
|
144
|
-
return {
|
|
145
|
-
resourceType: "tool",
|
|
146
|
-
resourceId: ({ agentId, toolId }) => `${String(agentId)}:${String(toolId)}`,
|
|
147
|
-
permission: getToolRoutePermission(path)
|
|
148
|
-
};
|
|
149
|
-
}
|
|
150
|
-
if (path.startsWith("/agents/:agentId")) {
|
|
151
|
-
return { resourceType: "agent", resourceIdParam: "agentId", permission };
|
|
152
|
-
}
|
|
153
|
-
if (path.startsWith("/workflows/:workflowId")) {
|
|
154
|
-
return { resourceType: "workflow", resourceIdParam: "workflowId", permission };
|
|
155
|
-
}
|
|
156
|
-
if (path.startsWith("/tools/:toolId")) {
|
|
157
|
-
return { resourceType: "tool", resourceIdParam: "toolId", permission };
|
|
158
|
-
}
|
|
159
|
-
if (path.startsWith("/mcp/:serverId/tools/:toolId")) {
|
|
160
|
-
return {
|
|
161
|
-
resourceType: "tool",
|
|
162
|
-
resourceId: ({ serverId, toolId }) => JSON.stringify([String(serverId), String(toolId)]),
|
|
163
|
-
permission: getToolRoutePermission(path)
|
|
164
|
-
};
|
|
165
|
-
}
|
|
166
|
-
if (path.startsWith("/mcp/:serverId")) {
|
|
167
|
-
return { resourceType: "mcp", resourceIdParam: "serverId", permission };
|
|
168
|
-
}
|
|
169
|
-
if (path.startsWith("/memory/threads/:threadId") || path.startsWith("/memory/network/threads/:threadId")) {
|
|
170
|
-
return { resourceType: "thread", resourceIdParam: "threadId", permission };
|
|
171
|
-
}
|
|
172
|
-
if (path === "/memory/threads" || path === "/memory/network/threads") {
|
|
173
|
-
return {
|
|
174
|
-
resourceType: "thread",
|
|
175
|
-
resourceId: ({ threadId, resourceId }) => {
|
|
176
|
-
if (typeof threadId === "string") return threadId;
|
|
177
|
-
return typeof resourceId === "string" ? resourceId : void 0;
|
|
178
|
-
},
|
|
179
|
-
permission
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
if (path === "/memory/save-messages" || path === "/memory/network/save-messages") {
|
|
183
|
-
return {
|
|
184
|
-
resourceType: "thread",
|
|
185
|
-
resourceId: ({ messages }) => {
|
|
186
|
-
if (!Array.isArray(messages)) return void 0;
|
|
187
|
-
const threadId = messages.find(
|
|
188
|
-
(message) => message && typeof message === "object" && "threadId" in message
|
|
189
|
-
)?.threadId;
|
|
190
|
-
return typeof threadId === "string" ? threadId : void 0;
|
|
191
|
-
},
|
|
192
|
-
permission
|
|
193
|
-
};
|
|
194
|
-
}
|
|
195
|
-
if (path === "/v1/responses") {
|
|
196
|
-
return { resourceType: "agent", resourceIdParam: "agent_id", permission };
|
|
197
|
-
}
|
|
198
|
-
if (path.startsWith("/v1/responses/:responseId")) {
|
|
199
|
-
return { resourceType: "response", resourceIdParam: "responseId", permission };
|
|
200
|
-
}
|
|
201
|
-
if (path === "/v1/conversations") {
|
|
202
|
-
return { resourceType: "agent", resourceIdParam: "agent_id", permission };
|
|
203
|
-
}
|
|
204
|
-
if (path.startsWith("/v1/conversations/:conversationId")) {
|
|
205
|
-
return { resourceType: "conversation", resourceIdParam: "conversationId", permission };
|
|
206
|
-
}
|
|
207
|
-
return null;
|
|
252
|
+
return [getEffectivePermission(route), route.fga?.permission].flatMap((value) => Array.isArray(value) ? value : [value]).filter((permission) => Boolean(permission));
|
|
208
253
|
}
|
|
209
254
|
async function resolveRouteFGAConfig(fgaProvider, route, requestContext, params) {
|
|
210
255
|
if (route.fga) {
|
|
@@ -427,7 +472,8 @@ var MastraServer = class _MastraServer extends MastraServerBase {
|
|
|
427
472
|
requestContext: context.requestContext,
|
|
428
473
|
rawRequest: context.request,
|
|
429
474
|
token,
|
|
430
|
-
buildAuthorizeContext: context.buildAuthorizeContext ?? (() => null)
|
|
475
|
+
buildAuthorizeContext: context.buildAuthorizeContext ?? (() => null),
|
|
476
|
+
requiresAuth: route.requiresAuth
|
|
431
477
|
});
|
|
432
478
|
if (result.action === "next") {
|
|
433
479
|
if (result.headers) {
|
|
@@ -446,6 +492,9 @@ var MastraServer = class _MastraServer extends MastraServerBase {
|
|
|
446
492
|
* 2. Otherwise, derive permission from path/method (e.g., GET /agents → agents:read)
|
|
447
493
|
* 3. Routes with `requiresAuth: false` skip permission checks
|
|
448
494
|
*
|
|
495
|
+
* When the route specifies an array of permissions, the user needs ANY ONE
|
|
496
|
+
* of them (logical OR).
|
|
497
|
+
*
|
|
449
498
|
* @param route - The route being accessed
|
|
450
499
|
* @param userPermissions - The user's permissions from the request context
|
|
451
500
|
* @returns Error response if permission denied, null if allowed
|
|
@@ -459,11 +508,13 @@ var MastraServer = class _MastraServer extends MastraServerBase {
|
|
|
459
508
|
if (!requiredPermission) {
|
|
460
509
|
return null;
|
|
461
510
|
}
|
|
462
|
-
|
|
511
|
+
const permissions = Array.isArray(requiredPermission) ? requiredPermission : [requiredPermission];
|
|
512
|
+
const hasAny = userPermissions && permissions.some((perm) => hasPermissionFn(userPermissions, perm));
|
|
513
|
+
if (!hasAny) {
|
|
463
514
|
return {
|
|
464
515
|
status: 403,
|
|
465
516
|
error: "Forbidden",
|
|
466
|
-
message: `Missing required permission: ${
|
|
517
|
+
message: `Missing required permission: ${permissions.join(" or ")}`
|
|
467
518
|
};
|
|
468
519
|
}
|
|
469
520
|
return null;
|
|
@@ -473,6 +524,7 @@ var MastraServer = class _MastraServer extends MastraServerBase {
|
|
|
473
524
|
this.registerAuthMiddleware();
|
|
474
525
|
this.registerHttpLoggingMiddleware();
|
|
475
526
|
await this.validateEELicense();
|
|
527
|
+
await this.validateAgentBuilderLicense();
|
|
476
528
|
await this.validateFGAPolicyCoverage();
|
|
477
529
|
await this.registerCustomApiRoutes();
|
|
478
530
|
await this.registerRoutes();
|
|
@@ -508,6 +560,29 @@ Ensure @mastra/core is updated to a version that includes EE support.`
|
|
|
508
560
|
);
|
|
509
561
|
}
|
|
510
562
|
}
|
|
563
|
+
/**
|
|
564
|
+
* Validate that an Agent Builder configuration has a valid EE license.
|
|
565
|
+
* Throws if the editor is configured with builder support but no valid EE license is available.
|
|
566
|
+
*/
|
|
567
|
+
async validateAgentBuilderLicense() {
|
|
568
|
+
const editor = this.mastra.getEditor();
|
|
569
|
+
if (!editor?.hasEnabledBuilderConfig?.()) return;
|
|
570
|
+
try {
|
|
571
|
+
const { isEEEnabled } = await import('@mastra/core/auth/ee');
|
|
572
|
+
if (!isEEEnabled()) {
|
|
573
|
+
throw new Error(
|
|
574
|
+
"[mastra/auth-ee] Agent Builder is configured but no valid EE license was found.\nAgent Builder requires a Mastra Enterprise License for production use.\nSet the MASTRA_EE_LICENSE environment variable with your license key.\nLearn more: https://github.com/mastra-ai/mastra/blob/main/ee/LICENSE"
|
|
575
|
+
);
|
|
576
|
+
}
|
|
577
|
+
} catch (err) {
|
|
578
|
+
if (err instanceof Error && err.message.startsWith("[mastra/auth-ee]")) {
|
|
579
|
+
throw err;
|
|
580
|
+
}
|
|
581
|
+
throw new Error(
|
|
582
|
+
"[mastra/auth-ee] Agent Builder is configured but the EE module (@mastra/core/auth/ee) could not be loaded.\nEnsure @mastra/core is updated to a version that includes EE support."
|
|
583
|
+
);
|
|
584
|
+
}
|
|
585
|
+
}
|
|
511
586
|
/**
|
|
512
587
|
* Validate route-level FGA policy coverage when an FGA provider opts into
|
|
513
588
|
* startup checks.
|
|
@@ -527,7 +602,7 @@ Ensure @mastra/core is updated to a version that includes EE support.`
|
|
|
527
602
|
const auditMode = fgaProvider.auditProtectedRoutes ?? (fgaProvider.requireForProtectedRoutes ? "warn" : false);
|
|
528
603
|
if (!auditMode || fgaProvider.resolveRouteFGA) return;
|
|
529
604
|
const missingRoutes = routes.filter(
|
|
530
|
-
(route) =>
|
|
605
|
+
(route) => isProtectedFGARoute2(route) && !route.fga && !getBuiltInRouteFGAConfig(route)
|
|
531
606
|
);
|
|
532
607
|
if (missingRoutes.length === 0) return;
|
|
533
608
|
const routeList = missingRoutes.map((route) => formatRoute(route));
|
|
@@ -773,7 +848,7 @@ async function checkRouteFGA(mastra, route, requestContext, params) {
|
|
|
773
848
|
if (!fgaProvider) return null;
|
|
774
849
|
const fgaConfig = await resolveRouteFGAConfig(fgaProvider, route, requestContext, params);
|
|
775
850
|
if (!fgaConfig) {
|
|
776
|
-
if (fgaProvider.requireForProtectedRoutes &&
|
|
851
|
+
if (fgaProvider.requireForProtectedRoutes && isProtectedFGARoute2(route)) {
|
|
777
852
|
return {
|
|
778
853
|
status: 403,
|
|
779
854
|
error: "Forbidden",
|
|
@@ -798,7 +873,8 @@ async function checkRouteFGA(mastra, route, requestContext, params) {
|
|
|
798
873
|
message: "FGA authorization denied: route FGA metadata is incomplete"
|
|
799
874
|
};
|
|
800
875
|
}
|
|
801
|
-
const
|
|
876
|
+
const effectivePermission = route.path ? getEffectivePermission(route) : null;
|
|
877
|
+
const permission = fgaConfig.permission || effectivePermission || `${getFGAResourcePermissionSlug(fgaConfig.resourceType)}:${deriveFGAAction(route.method)}`;
|
|
802
878
|
const authorized = await fgaProvider.check(user, {
|
|
803
879
|
resource: { type: fgaConfig.resourceType, id: resourceId },
|
|
804
880
|
permission,
|