@mastra/server 1.36.0-alpha.0 → 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 +125 -0
- package/dist/{api-schema-manifest-FWK7OIXL.cjs → api-schema-manifest-CF2WPQBA.cjs} +6 -6
- package/dist/{api-schema-manifest-FWK7OIXL.cjs.map → api-schema-manifest-CF2WPQBA.cjs.map} +1 -1
- package/dist/{api-schema-manifest-AUYKZJAA.js → api-schema-manifest-YS3FEIFG.js} +4 -4
- package/dist/{api-schema-manifest-AUYKZJAA.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-3Y7SOTAS.js → chunk-2SMGXJZJ.js} +42 -8
- package/dist/chunk-2SMGXJZJ.js.map +1 -0
- package/dist/{chunk-SUNXO2H2.cjs → chunk-3AKG5KEE.cjs} +44 -36
- package/dist/chunk-3AKG5KEE.cjs.map +1 -0
- package/dist/{chunk-SBGAKEDX.js → chunk-3FLL7GNJ.js} +5 -5
- package/dist/{chunk-SBGAKEDX.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-RUKCZLXN.cjs → chunk-4BLUIUHS.cjs} +5 -5
- package/dist/{chunk-RUKCZLXN.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-ULDCHPOZ.cjs → chunk-4Z24UGLY.cjs} +24 -24
- package/dist/{chunk-ULDCHPOZ.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-M5H6F2QB.js → chunk-664F5XOW.js} +6 -6
- package/dist/{chunk-M5H6F2QB.js.map → chunk-664F5XOW.js.map} +1 -1
- package/dist/{chunk-OMODGV6O.js → chunk-6GMGCV74.js} +5 -5
- package/dist/{chunk-OMODGV6O.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-WWXG4HNX.js → chunk-6NIQROP2.js} +22 -12
- 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-2CT57Y5S.cjs → chunk-A4FTF4A7.cjs} +54 -54
- package/dist/{chunk-2CT57Y5S.cjs.map → chunk-A4FTF4A7.cjs.map} +1 -1
- package/dist/{chunk-VTMAYC4R.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-OG3CV6IN.cjs → chunk-AY3ZP465.cjs} +35 -25
- package/dist/chunk-AY3ZP465.cjs.map +1 -0
- package/dist/{chunk-T2YPTXXE.js → chunk-BWNJBSXL.js} +3 -3
- package/dist/{chunk-T2YPTXXE.js.map → chunk-BWNJBSXL.js.map} +1 -1
- package/dist/{chunk-5JX72ECO.cjs → chunk-CBHBMWZ2.cjs} +12 -12
- package/dist/{chunk-5JX72ECO.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-XAHATWVE.js → chunk-CKCZVUUB.js} +7 -7
- package/dist/{chunk-XAHATWVE.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-PCOJOGO5.cjs → chunk-CODPCBGN.cjs} +21 -21
- package/dist/{chunk-PCOJOGO5.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-I63ON7JW.js → chunk-D4HVKF56.js} +4 -4
- package/dist/{chunk-I63ON7JW.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-MFBQYZP2.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-4WXROF2X.cjs → chunk-ESZN7NKS.cjs} +32 -24
- package/dist/chunk-ESZN7NKS.cjs.map +1 -0
- package/dist/{chunk-NONHI6TJ.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-KEAF4TVC.cjs → chunk-GAL7C4Y5.cjs} +35 -25
- package/dist/chunk-GAL7C4Y5.cjs.map +1 -0
- package/dist/{chunk-UT2JT5GC.js → chunk-GFZR6THV.js} +3 -3
- package/dist/{chunk-UT2JT5GC.js.map → chunk-GFZR6THV.js.map} +1 -1
- package/dist/{chunk-TINX42C4.js → chunk-GW6T4HLN.js} +7 -7
- package/dist/{chunk-TINX42C4.js.map → chunk-GW6T4HLN.js.map} +1 -1
- package/dist/{chunk-SWCWNQL5.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-JGTLNFH2.js → chunk-HNGYUI5N.js} +21 -13
- package/dist/chunk-HNGYUI5N.js.map +1 -0
- package/dist/{chunk-CXI6IIFZ.cjs → chunk-HWT5YD7H.cjs} +16 -16
- package/dist/{chunk-CXI6IIFZ.cjs.map → chunk-HWT5YD7H.cjs.map} +1 -1
- package/dist/{chunk-AFVKVAJZ.cjs → chunk-HXEMVATM.cjs} +8 -8
- package/dist/{chunk-AFVKVAJZ.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-2M7CLYTM.js → chunk-I3RWQGD7.js} +8 -8
- package/dist/{chunk-2M7CLYTM.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-KD46CAJV.js → chunk-IRJQQYII.js} +6 -6
- package/dist/{chunk-KD46CAJV.js.map → chunk-IRJQQYII.js.map} +1 -1
- package/dist/{chunk-Z35VW4BM.cjs → chunk-IXRARW5C.cjs} +32 -11
- package/dist/chunk-IXRARW5C.cjs.map +1 -0
- package/dist/{chunk-7GX35QLL.cjs → chunk-J6IRCLC6.cjs} +30 -30
- package/dist/{chunk-7GX35QLL.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-53OYU4CP.js → chunk-K74VFJKF.js} +226 -40
- package/dist/chunk-K74VFJKF.js.map +1 -0
- package/dist/{chunk-7ASFLZZ6.cjs → chunk-KE4V4LJE.cjs} +7 -7
- package/dist/{chunk-7ASFLZZ6.cjs.map → chunk-KE4V4LJE.cjs.map} +1 -1
- package/dist/{chunk-MJBD3YYS.js → chunk-KTOJ2F6V.js} +6 -6
- package/dist/{chunk-MJBD3YYS.js.map → chunk-KTOJ2F6V.js.map} +1 -1
- package/dist/{chunk-JTMIZMGO.cjs → chunk-LEIV627E.cjs} +15 -15
- package/dist/{chunk-JTMIZMGO.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-XL55VCXM.cjs → chunk-MERLF4UP.cjs} +93 -93
- package/dist/{chunk-XL55VCXM.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-KWJC4MNT.js → chunk-N7CG7MFQ.js} +7 -7
- package/dist/{chunk-KWJC4MNT.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-PG4IJL7T.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-5PPFITJ3.js → chunk-OKKJPM5N.js} +19 -12
- 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-LXXKGWXS.js → chunk-PQ37PNAE.js} +21 -11
- 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-72Q6PR4Q.js → chunk-QLX34MAR.js} +7 -7
- package/dist/{chunk-72Q6PR4Q.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-JMFAOQYF.cjs → chunk-RJF75FEP.cjs} +25 -25
- package/dist/{chunk-JMFAOQYF.cjs.map → chunk-RJF75FEP.cjs.map} +1 -1
- package/dist/{chunk-EG3QNCBQ.cjs → chunk-RYPLQO4Z.cjs} +30 -23
- 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-FIWR56T7.cjs → chunk-SKLREO5Z.cjs} +82 -82
- package/dist/{chunk-FIWR56T7.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-Y65G4C35.cjs → chunk-U6QDJKSZ.cjs} +106 -106
- package/dist/{chunk-Y65G4C35.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-U2HTITB4.js → chunk-UOKSQHJY.js} +32 -11
- package/dist/chunk-UOKSQHJY.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-2OEEHCXR.js → chunk-WD2L3ZU3.js} +5 -5
- package/dist/{chunk-2OEEHCXR.js.map → chunk-WD2L3ZU3.js.map} +1 -1
- package/dist/{chunk-M7VWAJP3.cjs → chunk-WLGC3IWY.cjs} +48 -38
- package/dist/chunk-WLGC3IWY.cjs.map +1 -0
- package/dist/{chunk-LL2CVXJG.js → chunk-XI3XH4G7.js} +21 -11
- 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-HDBLTBJ4.js → chunk-Y3KIKJW6.js} +6 -6
- package/dist/{chunk-HDBLTBJ4.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-NIX5VQJ6.cjs → chunk-YQYYIRDS.cjs} +163 -163
- package/dist/{chunk-NIX5VQJ6.cjs.map → chunk-YQYYIRDS.cjs.map} +1 -1
- package/dist/{chunk-BVZLX6R4.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-M4IITA2G.js → chunk-ZHS2QDGO.js} +22 -14
- package/dist/chunk-ZHS2QDGO.js.map +1 -0
- package/dist/{dist-PWSP7TGP.js → dist-5OGIQLEZ.js} +5 -5
- package/dist/{dist-PWSP7TGP.js.map → dist-5OGIQLEZ.js.map} +1 -1
- package/dist/{dist-5GW5WUSJ.cjs → dist-ON3E5YMU.cjs} +20 -20
- package/dist/{dist-5GW5WUSJ.cjs.map → dist-ON3E5YMU.cjs.map} +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/docs/references/docs-agents-a2a.md +115 -88
- package/dist/{observational-memory-SYNXJVL4-CJCHK6QY.cjs → observational-memory-J73GEMRQ-FRFHLHXN.cjs} +26 -26
- package/dist/{observational-memory-SYNXJVL4-CJCHK6QY.cjs.map → observational-memory-J73GEMRQ-FRFHLHXN.cjs.map} +1 -1
- package/dist/{observational-memory-SYNXJVL4-ATVV3WOD.js → observational-memory-J73GEMRQ-KNLGLGBD.js} +3 -3
- package/dist/{observational-memory-SYNXJVL4-ATVV3WOD.js.map → observational-memory-J73GEMRQ-KNLGLGBD.js.map} +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 +36 -36
- 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 +170 -154
- package/dist/server/schemas/index.js +7 -7
- 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 +211 -135
- 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 +6 -6
- package/dist/chunk-3Y7SOTAS.js.map +0 -1
- package/dist/chunk-4WXROF2X.cjs.map +0 -1
- package/dist/chunk-53OYU4CP.js.map +0 -1
- package/dist/chunk-5PPFITJ3.js.map +0 -1
- package/dist/chunk-5XW4MKE6.cjs.map +0 -1
- package/dist/chunk-AIRSK4QU.js.map +0 -1
- package/dist/chunk-B34S64RC.cjs.map +0 -1
- package/dist/chunk-BVZLX6R4.cjs.map +0 -1
- package/dist/chunk-EG3QNCBQ.cjs.map +0 -1
- package/dist/chunk-JGTLNFH2.js.map +0 -1
- package/dist/chunk-KEAF4TVC.cjs.map +0 -1
- package/dist/chunk-LL2CVXJG.js.map +0 -1
- package/dist/chunk-LTYRUL3Q.cjs.map +0 -1
- package/dist/chunk-LXXKGWXS.js.map +0 -1
- package/dist/chunk-M4IITA2G.js.map +0 -1
- package/dist/chunk-M7DF3D2M.js.map +0 -1
- package/dist/chunk-M7VWAJP3.cjs.map +0 -1
- package/dist/chunk-MFBQYZP2.cjs.map +0 -1
- package/dist/chunk-NONHI6TJ.js.map +0 -1
- package/dist/chunk-OG3CV6IN.cjs.map +0 -1
- package/dist/chunk-OMLB6EMJ.cjs +0 -313
- package/dist/chunk-OMLB6EMJ.cjs.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-PG4IJL7T.cjs.map +0 -1
- package/dist/chunk-Q2B7W7GA.cjs.map +0 -1
- package/dist/chunk-SUNXO2H2.cjs.map +0 -1
- package/dist/chunk-SWCWNQL5.js.map +0 -1
- package/dist/chunk-U2HTITB4.js.map +0 -1
- package/dist/chunk-UH3MHVDF.cjs.map +0 -1
- package/dist/chunk-URAYY3ZG.cjs +0 -365
- package/dist/chunk-URAYY3ZG.cjs.map +0 -1
- package/dist/chunk-VTMAYC4R.js.map +0 -1
- package/dist/chunk-WWXG4HNX.js.map +0 -1
- package/dist/chunk-WYLVJSGR.cjs.map +0 -1
- package/dist/chunk-XT5ZVU5J.js +0 -306
- package/dist/chunk-XT5ZVU5J.js.map +0 -1
- package/dist/chunk-Y344MAUV.cjs +0 -615
- package/dist/chunk-Y344MAUV.cjs.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-Z35VW4BM.cjs.map +0 -1
- package/dist/chunk-Z6C7SDXA.js.map +0 -1
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk4G7S52U3_cjs = require('./chunk-4G7S52U3.cjs');
|
|
4
|
+
var chunkVX3MJR4P_cjs = require('./chunk-VX3MJR4P.cjs');
|
|
5
|
+
|
|
6
|
+
// src/server/handlers/favorites-enrichment.ts
|
|
7
|
+
async function prepareFavoritesEnrichment(mastra, requestContext, entityType, entityIds) {
|
|
8
|
+
if (!await chunk4G7S52U3_cjs.isBuilderFeatureEnabled(mastra, "favorites")) return null;
|
|
9
|
+
const userId = chunkVX3MJR4P_cjs.getCallerAuthorId(requestContext);
|
|
10
|
+
if (!userId) return null;
|
|
11
|
+
const storage = mastra.getStorage();
|
|
12
|
+
if (!storage) return null;
|
|
13
|
+
const favoritesStore = await storage.getStore("favorites");
|
|
14
|
+
if (!favoritesStore) return null;
|
|
15
|
+
const starredIds = entityIds.length === 0 ? /* @__PURE__ */ new Set() : await favoritesStore.isFavoritedBatch({ userId, entityType, entityIds });
|
|
16
|
+
return { userId, starredIds, favoritesStore };
|
|
17
|
+
}
|
|
18
|
+
function stripFavoriteFields(record) {
|
|
19
|
+
if ("isFavorited" in record || "favoriteCount" in record) {
|
|
20
|
+
const copy = { ...record };
|
|
21
|
+
delete copy.isFavorited;
|
|
22
|
+
delete copy.favoriteCount;
|
|
23
|
+
return copy;
|
|
24
|
+
}
|
|
25
|
+
return record;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
exports.prepareFavoritesEnrichment = prepareFavoritesEnrichment;
|
|
29
|
+
exports.stripFavoriteFields = stripFavoriteFields;
|
|
30
|
+
//# sourceMappingURL=chunk-V4ATNZXG.cjs.map
|
|
31
|
+
//# sourceMappingURL=chunk-V4ATNZXG.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/favorites-enrichment.ts"],"names":["isBuilderFeatureEnabled","getCallerAuthorId"],"mappings":";;;;;;AAyBA,eAAsB,0BAAA,CACpB,MAAA,EACA,cAAA,EACA,UAAA,EACA,SAAA,EACqC;AACrC,EAAA,IAAI,CAAE,MAAMA,yCAAA,CAAwB,MAAA,EAAQ,WAAW,GAAI,OAAO,IAAA;AAElE,EAAA,MAAM,MAAA,GAASC,oCAAkB,cAAc,CAAA;AAC/C,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AAEpB,EAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,EAAA,IAAI,CAAC,SAAS,OAAO,IAAA;AACrB,EAAA,MAAM,cAAA,GAAiB,MAAM,OAAA,CAAQ,QAAA,CAAS,WAAW,CAAA;AACzD,EAAA,IAAI,CAAC,gBAAgB,OAAO,IAAA;AAE5B,EAAA,MAAM,UAAA,GACJ,SAAA,CAAU,MAAA,KAAW,CAAA,uBACb,GAAA,EAAY,GAChB,MAAM,cAAA,CAAe,gBAAA,CAAiB,EAAE,MAAA,EAAQ,UAAA,EAAY,WAAW,CAAA;AAC7E,EAAA,OAAO,EAAE,MAAA,EAAQ,UAAA,EAAY,cAAA,EAAe;AAC9C;AAMO,SAAS,oBAAsC,MAAA,EAAc;AAClE,EAAA,IAAI,aAAA,IAAiB,MAAA,IAAU,eAAA,IAAmB,MAAA,EAAQ;AACxD,IAAA,MAAM,IAAA,GAAO,EAAE,GAAG,MAAA,EAAO;AACzB,IAAA,OAAO,IAAA,CAAK,WAAA;AACZ,IAAA,OAAO,IAAA,CAAK,aAAA;AACZ,IAAA,OAAO,IAAA;AAAA,EACT;AACA,EAAA,OAAO,MAAA;AACT","file":"chunk-V4ATNZXG.cjs","sourcesContent":["import type { Mastra } from '@mastra/core';\nimport type { RequestContext } from '@mastra/core/di';\nimport type { FavoritesStorage, StorageFavoriteEntityType } from '@mastra/core/storage';\n\nimport { getCallerAuthorId } from './authorship';\nimport { isBuilderFeatureEnabled } from './editor-builder';\n\n/**\n * Result of `prepareFavoritesEnrichment` — `null` when the `favorites` EE feature is off.\n * When non-null the caller may use `starredIds` to set `isFavorited` on records\n * and may pass `userId` along to storage list paths for pin-favorited-first\n * sorting (`pinFavoritedFor`).\n */\nexport type FavoritesEnrichmentContext = {\n userId: string;\n starredIds: Set<string>;\n favoritesStore: FavoritesStorage;\n} | null;\n\n/**\n * Resolve the EE feature flag plus the caller's favorited set for a list of\n * candidate entity IDs in one shot. Soft-gated: returns `null` if the feature\n * is off or there's no caller — handlers should drop `isFavorited` / `favoriteCount`\n * fields and ignore `?favoritedOnly=true` in that case.\n */\nexport async function prepareFavoritesEnrichment(\n mastra: Mastra,\n requestContext: RequestContext,\n entityType: StorageFavoriteEntityType,\n entityIds: string[],\n): Promise<FavoritesEnrichmentContext> {\n if (!(await isBuilderFeatureEnabled(mastra, 'favorites'))) return null;\n\n const userId = getCallerAuthorId(requestContext);\n if (!userId) return null;\n\n const storage = mastra.getStorage();\n if (!storage) return null;\n const favoritesStore = await storage.getStore('favorites');\n if (!favoritesStore) return null;\n\n const starredIds =\n entityIds.length === 0\n ? new Set<string>()\n : await favoritesStore.isFavoritedBatch({ userId, entityType, entityIds });\n return { userId, starredIds, favoritesStore };\n}\n\n/**\n * Strip the favorites EE fields from a record. Used when the feature is off so\n * stale values from storage do not leak through the API.\n */\nexport function stripFavoriteFields<T extends object>(record: T): T {\n if ('isFavorited' in record || 'favoriteCount' in record) {\n const copy = { ...record } as Record<string, unknown>;\n delete copy.isFavorited;\n delete copy.favoriteCount;\n return copy as T;\n }\n return record;\n}\n"]}
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
|
|
4
|
+
var chunk65T6KVYX_cjs = require('./chunk-65T6KVYX.cjs');
|
|
5
|
+
var ee = require('@mastra/core/auth/ee');
|
|
6
|
+
|
|
7
|
+
function getCallerAuthorId(requestContext) {
|
|
8
|
+
const resourceId = requestContext.get(chunk65T6KVYX_cjs.MASTRA_RESOURCE_ID_KEY);
|
|
9
|
+
if (typeof resourceId === "string" && resourceId.length > 0) {
|
|
10
|
+
return resourceId;
|
|
11
|
+
}
|
|
12
|
+
const user = requestContext.get(chunk65T6KVYX_cjs.MASTRA_USER_KEY);
|
|
13
|
+
if (user && typeof user === "object" && "id" in user) {
|
|
14
|
+
const id = user.id;
|
|
15
|
+
if (typeof id === "string" && id.length > 0) {
|
|
16
|
+
return id;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
function getCallerPermissions(requestContext) {
|
|
22
|
+
const raw = requestContext.get(chunk65T6KVYX_cjs.MASTRA_USER_PERMISSIONS_KEY);
|
|
23
|
+
if (Array.isArray(raw)) {
|
|
24
|
+
return raw.filter((p) => typeof p === "string");
|
|
25
|
+
}
|
|
26
|
+
return [];
|
|
27
|
+
}
|
|
28
|
+
function hasAdminBypass(requestContext, resource) {
|
|
29
|
+
const permissions = getCallerPermissions(requestContext);
|
|
30
|
+
if (permissions.length === 0) return false;
|
|
31
|
+
const wildcardAll = "*";
|
|
32
|
+
const resourceWildcard = `${resource}:*`;
|
|
33
|
+
const resourceAdmin = `${resource}:admin`;
|
|
34
|
+
return permissions.some((p) => p === wildcardAll || p === resourceWildcard || p === resourceAdmin);
|
|
35
|
+
}
|
|
36
|
+
function hasScopedPermission(args) {
|
|
37
|
+
const { requestContext, resource, action, resourceId } = args;
|
|
38
|
+
const permissions = getCallerPermissions(requestContext);
|
|
39
|
+
if (permissions.length === 0) return false;
|
|
40
|
+
if (!resourceId) {
|
|
41
|
+
const required2 = `${resource}:${action}`;
|
|
42
|
+
return permissions.some((p) => ee.matchesPermission(p, required2));
|
|
43
|
+
}
|
|
44
|
+
const required = `${resource}:${action}:${resourceId}`;
|
|
45
|
+
return permissions.some((p) => {
|
|
46
|
+
const parts = p.split(":");
|
|
47
|
+
if (parts.length < 3) return false;
|
|
48
|
+
return ee.matchesPermission(p, required);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
function resolveAuthorFilter(args) {
|
|
52
|
+
const { requestContext, resource, queryAuthorId, queryVisibility } = args;
|
|
53
|
+
const callerAuthorId = getCallerAuthorId(requestContext);
|
|
54
|
+
const bypass = hasAdminBypass(requestContext, resource);
|
|
55
|
+
if (queryVisibility === "public" && !queryAuthorId) {
|
|
56
|
+
return { kind: "publicOnly" };
|
|
57
|
+
}
|
|
58
|
+
if (bypass) {
|
|
59
|
+
return queryAuthorId ? { kind: "exact", authorId: queryAuthorId } : { kind: "unrestricted" };
|
|
60
|
+
}
|
|
61
|
+
if (!callerAuthorId) {
|
|
62
|
+
return queryAuthorId ? { kind: "exact", authorId: queryAuthorId } : { kind: "unrestricted" };
|
|
63
|
+
}
|
|
64
|
+
if (queryAuthorId) {
|
|
65
|
+
if (queryAuthorId === callerAuthorId) {
|
|
66
|
+
return { kind: "exact", authorId: callerAuthorId };
|
|
67
|
+
}
|
|
68
|
+
return { kind: "ownedOrPublicOthers", callerAuthorId, queryAuthorId };
|
|
69
|
+
}
|
|
70
|
+
return { kind: "ownedOrPublic", callerAuthorId };
|
|
71
|
+
}
|
|
72
|
+
function matchesAuthorFilter(record, filter) {
|
|
73
|
+
const owner = record.authorId ?? null;
|
|
74
|
+
const isPublic = record.visibility === "public";
|
|
75
|
+
switch (filter.kind) {
|
|
76
|
+
case "unrestricted":
|
|
77
|
+
return true;
|
|
78
|
+
case "exact":
|
|
79
|
+
return owner === filter.authorId;
|
|
80
|
+
case "ownedOrPublic":
|
|
81
|
+
return owner === null || owner === filter.callerAuthorId || isPublic;
|
|
82
|
+
case "publicOnly":
|
|
83
|
+
return owner === null || isPublic;
|
|
84
|
+
case "ownedOrPublicOthers":
|
|
85
|
+
return owner === filter.queryAuthorId && isPublic;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function assertReadAccess(args) {
|
|
89
|
+
const { requestContext, resource, resourceId, record } = args;
|
|
90
|
+
const owner = record.authorId ?? null;
|
|
91
|
+
if (owner === null) return;
|
|
92
|
+
if (record.visibility === "public") return;
|
|
93
|
+
if (hasAdminBypass(requestContext, resource)) return;
|
|
94
|
+
const callerAuthorId = getCallerAuthorId(requestContext);
|
|
95
|
+
if (!callerAuthorId && !requestContext.get(chunk65T6KVYX_cjs.MASTRA_USER_KEY)) return;
|
|
96
|
+
if (callerAuthorId === owner) return;
|
|
97
|
+
if (hasScopedPermission({ requestContext, resource, action: "read", resourceId })) {
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Not found" });
|
|
101
|
+
}
|
|
102
|
+
function assertExecuteAccess(args) {
|
|
103
|
+
const { requestContext, resource, resourceId, record } = args;
|
|
104
|
+
const owner = record.authorId ?? null;
|
|
105
|
+
if (owner === null) return;
|
|
106
|
+
if (record.visibility === "public") return;
|
|
107
|
+
if (hasAdminBypass(requestContext, resource)) return;
|
|
108
|
+
const callerAuthorId = getCallerAuthorId(requestContext);
|
|
109
|
+
if (!callerAuthorId && !requestContext.get(chunk65T6KVYX_cjs.MASTRA_USER_KEY)) return;
|
|
110
|
+
if (callerAuthorId === owner) return;
|
|
111
|
+
if (hasScopedPermission({ requestContext, resource, action: "execute", resourceId })) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (hasScopedPermission({ requestContext, resource, action: "read", resourceId })) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Not found" });
|
|
118
|
+
}
|
|
119
|
+
function assertWriteAccess(args) {
|
|
120
|
+
const { requestContext, resource, resourceId, action, record } = args;
|
|
121
|
+
const owner = record.authorId ?? null;
|
|
122
|
+
if (owner === null) return;
|
|
123
|
+
if (hasAdminBypass(requestContext, resource)) return;
|
|
124
|
+
const callerAuthorId = getCallerAuthorId(requestContext);
|
|
125
|
+
if (!callerAuthorId && !requestContext.get(chunk65T6KVYX_cjs.MASTRA_USER_KEY)) return;
|
|
126
|
+
if (callerAuthorId === owner) return;
|
|
127
|
+
if (hasScopedPermission({ requestContext, resource, action, resourceId })) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Not found" });
|
|
131
|
+
}
|
|
132
|
+
function assertShareAccess(args) {
|
|
133
|
+
const { requestContext, resource, resourceId, record } = args;
|
|
134
|
+
const owner = record.authorId ?? null;
|
|
135
|
+
if (owner === null) return;
|
|
136
|
+
if (hasAdminBypass(requestContext, resource)) return;
|
|
137
|
+
const callerAuthorId = getCallerAuthorId(requestContext);
|
|
138
|
+
if (!callerAuthorId && !requestContext.get(chunk65T6KVYX_cjs.MASTRA_USER_KEY)) return;
|
|
139
|
+
if (callerAuthorId === owner) return;
|
|
140
|
+
if (hasScopedPermission({ requestContext, resource, action: "share", resourceId })) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Not found" });
|
|
144
|
+
}
|
|
145
|
+
function assertOwnership(args) {
|
|
146
|
+
assertWriteAccess({ ...args, action: "edit" });
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
exports.assertExecuteAccess = assertExecuteAccess;
|
|
150
|
+
exports.assertOwnership = assertOwnership;
|
|
151
|
+
exports.assertReadAccess = assertReadAccess;
|
|
152
|
+
exports.assertShareAccess = assertShareAccess;
|
|
153
|
+
exports.assertWriteAccess = assertWriteAccess;
|
|
154
|
+
exports.getCallerAuthorId = getCallerAuthorId;
|
|
155
|
+
exports.getCallerPermissions = getCallerPermissions;
|
|
156
|
+
exports.hasAdminBypass = hasAdminBypass;
|
|
157
|
+
exports.hasScopedPermission = hasScopedPermission;
|
|
158
|
+
exports.matchesAuthorFilter = matchesAuthorFilter;
|
|
159
|
+
exports.resolveAuthorFilter = resolveAuthorFilter;
|
|
160
|
+
//# sourceMappingURL=chunk-VX3MJR4P.cjs.map
|
|
161
|
+
//# sourceMappingURL=chunk-VX3MJR4P.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/authorship.ts"],"names":["MASTRA_RESOURCE_ID_KEY","MASTRA_USER_KEY","MASTRA_USER_PERMISSIONS_KEY","required","matchesPermission","HTTPException"],"mappings":"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","file":"chunk-VX3MJR4P.cjs","sourcesContent":["import { matchesPermission } from '@mastra/core/auth/ee';\nimport type { RequestContext } from '@mastra/core/di';\n\nimport { MASTRA_RESOURCE_ID_KEY, MASTRA_USER_KEY, MASTRA_USER_PERMISSIONS_KEY } from '../constants';\nimport { HTTPException } from '../http-exception';\n\n/**\n * Shape of a stored record that carries ownership + visibility metadata.\n * Used by `matchesAuthorFilter` and the access-assertion helpers.\n */\nexport type OwnedRecord = {\n authorId?: string | null;\n visibility?: 'private' | 'public';\n};\n\n/**\n * Returns the author id associated with the authenticated caller, or `null`\n * if auth is not configured / the caller cannot be resolved.\n *\n * Prefers `MASTRA_RESOURCE_ID_KEY` (set by `authConfig.mapUserToResourceId`)\n * and falls back to `user.id` on the authenticated user object.\n */\nexport function getCallerAuthorId(requestContext: RequestContext): string | null {\n const resourceId = requestContext.get(MASTRA_RESOURCE_ID_KEY);\n if (typeof resourceId === 'string' && resourceId.length > 0) {\n return resourceId;\n }\n\n const user = requestContext.get(MASTRA_USER_KEY);\n if (user && typeof user === 'object' && 'id' in user) {\n const id = (user as { id: unknown }).id;\n if (typeof id === 'string' && id.length > 0) {\n return id;\n }\n }\n\n return null;\n}\n\n/**\n * Returns the list of permission strings currently attached to the caller by\n * the RBAC provider. Returns an empty array when RBAC isn't configured.\n */\nexport function getCallerPermissions(requestContext: RequestContext): string[] {\n const raw = requestContext.get(MASTRA_USER_PERMISSIONS_KEY);\n if (Array.isArray(raw)) {\n return raw.filter((p): p is string => typeof p === 'string');\n }\n return [];\n}\n\n/**\n * True if the caller holds a wildcard permission that lets them manage a\n * resource they don't own (e.g. admins listing agents across tenants).\n *\n * Recognizes `*`, `<resource>:*`, and `<resource>:admin`.\n */\nexport function hasAdminBypass(requestContext: RequestContext, resource: string): boolean {\n const permissions = getCallerPermissions(requestContext);\n if (permissions.length === 0) return false;\n const wildcardAll = '*';\n const resourceWildcard = `${resource}:*`;\n const resourceAdmin = `${resource}:admin`;\n return permissions.some(p => p === wildcardAll || p === resourceWildcard || p === resourceAdmin);\n}\n\n/**\n * True if the caller holds a permission explicitly scoped to a specific\n * resource id — e.g. `agents:read:agent-123` or `agents:*:agent-123`.\n *\n * Broad grants without a resource-id segment (e.g. the role-default\n * `agents:execute`) are intentionally NOT treated as satisfying ownership\n * overrides. Those broad grants already gate route access at the\n * `requiresPermission` layer; giving them a second life as per-record\n * overrides would defeat the owner/visibility model.\n *\n * When called without `resourceId` (the legacy shape), falls back to the\n * original \"any matching permission\" behavior.\n */\nexport function hasScopedPermission(args: {\n requestContext: RequestContext;\n resource: string;\n action: string;\n resourceId?: string;\n}): boolean {\n const { requestContext, resource, action, resourceId } = args;\n const permissions = getCallerPermissions(requestContext);\n if (permissions.length === 0) return false;\n\n if (!resourceId) {\n const required = `${resource}:${action}`;\n return permissions.some(p => matchesPermission(p, required));\n }\n\n const required = `${resource}:${action}:${resourceId}`;\n return permissions.some(p => {\n // Only honor grants that explicitly name a resource id. A granted\n // permission with just `<resource>:<action>` (no id segment) is\n // considered a broad role grant, not a per-record override.\n const parts = p.split(':');\n if (parts.length < 3) return false;\n return matchesPermission(p, required);\n });\n}\n\nexport type AuthorFilter =\n | { kind: 'unrestricted' }\n | { kind: 'exact'; authorId: string }\n | { kind: 'ownedOrPublic'; callerAuthorId: string }\n | { kind: 'publicOnly' }\n | { kind: 'ownedOrPublicOthers'; callerAuthorId: string; queryAuthorId: string };\n\n/**\n * Resolves the filter to apply when listing owner-scoped records.\n *\n * Behavior matrix:\n * - Admin bypass + no query overrides → `unrestricted`.\n * - Admin bypass + `authorId=X` → `exact` (all of X's rows).\n * - `visibility=public` (any caller) → `publicOnly` (aggregate public rows across owners).\n * - `authorId=X`, caller === X → `exact` (all of caller's rows).\n * - `authorId=X`, caller !== X (non-admin) → `ownedOrPublicOthers` (only X's public rows).\n * - No caller (auth off) → `unrestricted` (or `exact` if query supplied).\n * - Default → `ownedOrPublic` (caller's rows + legacy unowned + any public rows).\n */\nexport function resolveAuthorFilter(args: {\n requestContext: RequestContext;\n resource: string;\n queryAuthorId?: string;\n queryVisibility?: 'public';\n}): AuthorFilter {\n const { requestContext, resource, queryAuthorId, queryVisibility } = args;\n const callerAuthorId = getCallerAuthorId(requestContext);\n const bypass = hasAdminBypass(requestContext, resource);\n\n if (queryVisibility === 'public' && !queryAuthorId) {\n return { kind: 'publicOnly' };\n }\n\n if (bypass) {\n return queryAuthorId ? { kind: 'exact', authorId: queryAuthorId } : { kind: 'unrestricted' };\n }\n\n // Auth isn't configured (no caller) → treat as unrestricted. The route's\n // `requiresAuth`/`requiresPermission` is what gates access in that mode.\n if (!callerAuthorId) {\n return queryAuthorId ? { kind: 'exact', authorId: queryAuthorId } : { kind: 'unrestricted' };\n }\n\n if (queryAuthorId) {\n if (queryAuthorId === callerAuthorId) {\n return { kind: 'exact', authorId: callerAuthorId };\n }\n // Non-owner asking about another user: only that user's public rows are visible.\n return { kind: 'ownedOrPublicOthers', callerAuthorId, queryAuthorId };\n }\n\n return { kind: 'ownedOrPublic', callerAuthorId };\n}\n\n/**\n * Returns `true` if the record is visible to the caller given the resolved\n * filter. See `resolveAuthorFilter` for the filter semantics.\n *\n * Legacy rows with `authorId == null` are treated as public (visible to all).\n */\nexport function matchesAuthorFilter(record: OwnedRecord, filter: AuthorFilter): boolean {\n const owner = record.authorId ?? null;\n const isPublic = record.visibility === 'public';\n\n switch (filter.kind) {\n case 'unrestricted':\n return true;\n case 'exact':\n return owner === filter.authorId;\n case 'ownedOrPublic':\n return owner === null || owner === filter.callerAuthorId || isPublic;\n case 'publicOnly':\n return owner === null || isPublic;\n case 'ownedOrPublicOthers':\n // Filtering by another author's rows: only expose their public ones.\n // Legacy unowned rows match if the query is for `null`; here the query\n // is always for a concrete id, so unowned rows don't match.\n return owner === filter.queryAuthorId && isPublic;\n }\n}\n\n/**\n * Asserts the caller has read access to the record. Throws 404 if not.\n *\n * Read access is granted when:\n * - The record has no owner (legacy/public), OR\n * - The record is marked `visibility: 'public'`, OR\n * - The caller owns the record, OR\n * - The caller has admin bypass (`*`, `<resource>:*`, `<resource>:admin`), OR\n * - The caller holds `<resource>:read` or `<resource>:read:<resourceId>`.\n */\nexport function assertReadAccess(args: {\n requestContext: RequestContext;\n resource: string;\n resourceId?: string;\n record: OwnedRecord;\n}): void {\n const { requestContext, resource, resourceId, record } = args;\n const owner = record.authorId ?? null;\n\n if (owner === null) return;\n if (record.visibility === 'public') return;\n if (hasAdminBypass(requestContext, resource)) return;\n\n const callerAuthorId = getCallerAuthorId(requestContext);\n // No authenticated user on the request context means auth is not configured\n // (single-user/dev mode). When auth IS configured, coreAuthMiddleware\n // rejects unauthenticated requests with 401 before they reach handlers,\n // so an absent user here genuinely means no auth provider.\n if (!callerAuthorId && !requestContext.get(MASTRA_USER_KEY)) return;\n if (callerAuthorId === owner) return;\n\n if (hasScopedPermission({ requestContext, resource, action: 'read', resourceId })) {\n return;\n }\n\n throw new HTTPException(404, { message: 'Not found' });\n}\n\n/**\n * Asserts the caller has execute access to the record. Throws 404 if not.\n *\n * Execute access is granted when:\n * - The record has no owner (legacy/public), OR\n * - The record is marked `visibility: 'public'`, OR\n * - The caller owns the record, OR\n * - The caller has admin bypass (`*`, `<resource>:*`, `<resource>:admin`), OR\n * - The caller holds `<resource>:execute` / `<resource>:execute:<resourceId>`, OR\n * - The caller holds `<resource>:read` / `<resource>:read:<resourceId>`\n * (read implies the ability to consume/chat with the resource).\n */\nexport function assertExecuteAccess(args: {\n requestContext: RequestContext;\n resource: string;\n resourceId?: string;\n record: OwnedRecord;\n}): void {\n const { requestContext, resource, resourceId, record } = args;\n const owner = record.authorId ?? null;\n\n if (owner === null) return;\n if (record.visibility === 'public') return;\n if (hasAdminBypass(requestContext, resource)) return;\n\n const callerAuthorId = getCallerAuthorId(requestContext);\n if (!callerAuthorId && !requestContext.get(MASTRA_USER_KEY)) return; // No auth configured (see assertReadAccess)\n if (callerAuthorId === owner) return;\n\n if (hasScopedPermission({ requestContext, resource, action: 'execute', resourceId })) {\n return;\n }\n if (hasScopedPermission({ requestContext, resource, action: 'read', resourceId })) {\n return;\n }\n\n throw new HTTPException(404, { message: 'Not found' });\n}\n\n/**\n * Asserts the caller has write access (edit or delete) to the record.\n * Throws 404 if not.\n *\n * Write access is granted when:\n * - The record has no owner (legacy), OR\n * - The caller owns the record, OR\n * - The caller has admin bypass, OR\n * - The caller holds `<resource>:<action>` or `<resource>:<action>:<resourceId>`.\n *\n * `visibility: 'public'` alone does NOT grant write access.\n */\nexport function assertWriteAccess(args: {\n requestContext: RequestContext;\n resource: string;\n resourceId?: string;\n action: 'edit' | 'delete' | 'write';\n record: OwnedRecord;\n}): void {\n const { requestContext, resource, resourceId, action, record } = args;\n const owner = record.authorId ?? null;\n\n if (owner === null) return;\n if (hasAdminBypass(requestContext, resource)) return;\n\n const callerAuthorId = getCallerAuthorId(requestContext);\n if (!callerAuthorId && !requestContext.get(MASTRA_USER_KEY)) return; // No auth configured (see assertReadAccess)\n if (callerAuthorId === owner) return;\n\n if (hasScopedPermission({ requestContext, resource, action, resourceId })) {\n return;\n }\n\n throw new HTTPException(404, { message: 'Not found' });\n}\n\n/**\n * Asserts the caller has share access to the record. Throws 404 if not.\n *\n * Share access controls who can change a record's audience/visibility\n * (e.g. flipping `private` ↔ `public`). It is intentionally separate from\n * `write`: a caller with only `<resource>:write` MUST NOT be able to flip\n * visibility — that would let any editor expose private records.\n *\n * Share access is granted when:\n * - The record has no owner (legacy), OR\n * - The caller owns the record (creators can share their own records), OR\n * - The caller has admin bypass (`*`, `<resource>:*`, `<resource>:admin`), OR\n * - The caller holds `<resource>:share` / `<resource>:share:<resourceId>`\n * (or any pattern that matches it, e.g. `*:share`).\n *\n * `visibility: 'public'` does NOT grant share access — being readable doesn't\n * imply the right to change who else can read.\n */\nexport function assertShareAccess(args: {\n requestContext: RequestContext;\n resource: string;\n resourceId?: string;\n record: OwnedRecord;\n}): void {\n const { requestContext, resource, resourceId, record } = args;\n const owner = record.authorId ?? null;\n\n if (owner === null) return;\n if (hasAdminBypass(requestContext, resource)) return;\n\n const callerAuthorId = getCallerAuthorId(requestContext);\n if (!callerAuthorId && !requestContext.get(MASTRA_USER_KEY)) return; // No auth configured (see assertReadAccess)\n if (callerAuthorId === owner) return;\n\n if (hasScopedPermission({ requestContext, resource, action: 'share', resourceId })) {\n return;\n }\n\n throw new HTTPException(404, { message: 'Not found' });\n}\n\n/**\n * Alias for `assertWriteAccess` with `action: 'edit'`. Prefer `assertWriteAccess`\n * in new code so the action is explicit.\n */\nexport function assertOwnership(args: {\n requestContext: RequestContext;\n resource: string;\n resourceId?: string;\n record: OwnedRecord;\n}): void {\n assertWriteAccess({ ...args, action: 'edit' });\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { apiSchemaManifestResponseSchema, systemPackagesResponseSchema } from './chunk-4PB6LUYQ.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { handleError } from './chunk-GA4BG5JK.js';
|
|
3
|
+
import { createRoute } from './chunk-F2FAL5CZ.js';
|
|
4
4
|
import { readFileSync } from 'fs';
|
|
5
5
|
|
|
6
6
|
var GET_API_SCHEMA_ROUTE = createRoute({
|
|
@@ -13,7 +13,7 @@ var GET_API_SCHEMA_ROUTE = createRoute({
|
|
|
13
13
|
tags: ["System"],
|
|
14
14
|
requiresAuth: true,
|
|
15
15
|
handler: async () => {
|
|
16
|
-
const { buildApiSchemaManifest } = await import('./api-schema-manifest-
|
|
16
|
+
const { buildApiSchemaManifest } = await import('./api-schema-manifest-YS3FEIFG.js');
|
|
17
17
|
return buildApiSchemaManifest();
|
|
18
18
|
}
|
|
19
19
|
});
|
|
@@ -60,5 +60,5 @@ var GET_SYSTEM_PACKAGES_ROUTE = createRoute({
|
|
|
60
60
|
});
|
|
61
61
|
|
|
62
62
|
export { GET_API_SCHEMA_ROUTE, GET_SYSTEM_PACKAGES_ROUTE };
|
|
63
|
-
//# sourceMappingURL=chunk-
|
|
64
|
-
//# sourceMappingURL=chunk-
|
|
63
|
+
//# sourceMappingURL=chunk-WD2L3ZU3.js.map
|
|
64
|
+
//# sourceMappingURL=chunk-WD2L3ZU3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/system.ts"],"names":[],"mappings":";;;;;AAOO,IAAM,uBAAuB,WAAA,CAAY;AAAA,EAC9C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,oBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,+BAAA;AAAA,EAChB,OAAA,EAAS,yBAAA;AAAA,EACT,WAAA,EAAa,qFAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,YAAY;AAEnB,IAAA,MAAM,EAAE,sBAAA,EAAuB,GAAI,MAAM,OAAO,mCAAuC,CAAA;AACvF,IAAA,OAAO,sBAAA,EAAuB;AAAA,EAChC;AACF,CAAC;AAEM,IAAM,4BAA4B,WAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,kBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,4BAAA;AAAA,EAChB,OAAA,EAAS,+BAAA;AAAA,EACT,WAAA,EAAa,qFAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAO,KAAM;AAC7B,IAAA,IAAI;AACF,MAAA,MAAM,gBAAA,GAAmB,QAAQ,GAAA,CAAI,oBAAA;AAErC,MAAA,IAAI,WAA4B,EAAC;AAEjC,MAAA,IAAI,gBAAA,EAAkB;AACpB,QAAA,IAAI;AACF,UAAA,MAAM,WAAA,GAAc,YAAA,CAAa,gBAAA,EAAkB,OAAO,CAAA;AAC1D,UAAA,QAAA,GAAW,IAAA,CAAK,MAAM,WAAW,CAAA;AAAA,QACnC,CAAA,CAAA,MAAQ;AACN,UAAA,QAAA,GAAW,EAAC;AAAA,QACd;AAAA,MACF;AAEA,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,MAAA,MAAM,cAAc,OAAA,EAAS,IAAA;AAC7B,MAAA,MAAM,oBAAA,GAAuB,SAAS,MAAA,EAAQ,aAAA;AAC9C,MAAA,MAAM,wBAAA,GAA2B,sBAAsB,WAAA,CAAY,IAAA;AACnE,MAAA,MAAM,+BAA+B,oBAAA,EAAsB,sBAAA;AAC3D,MAAA,MAAM,oBAAA,GAAuB,CAAC,CAAC,MAAA,CAAO,cAAc,kBAAA,EAAmB;AAEvE,MAAA,OAAO;AAAA,QACL,QAAA;AAAA,QACA,KAAA,EAAO,OAAA,CAAQ,GAAA,CAAI,UAAA,KAAe,MAAA;AAAA,QAClC,UAAA,EAAY,CAAC,CAAC,MAAA,CAAO,SAAA,EAAU;AAAA,QAC/B,oBAAA;AAAA,QACA,WAAA;AAAA,QACA,wBAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,+BAA+B,CAAA;AAAA,IAC3D;AAAA,EACF;AACF,CAAC","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/system.ts"],"names":[],"mappings":";;;;;AAOO,IAAM,uBAAuB,WAAA,CAAY;AAAA,EAC9C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,oBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,+BAAA;AAAA,EAChB,OAAA,EAAS,yBAAA;AAAA,EACT,WAAA,EAAa,qFAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,YAAA,EAAc,IAAA;AAAA,EACd,SAAS,YAAY;AAEnB,IAAA,MAAM,EAAE,sBAAA,EAAuB,GAAI,MAAM,OAAO,mCAAuC,CAAA;AACvF,IAAA,OAAO,sBAAA,EAAuB;AAAA,EAChC;AACF,CAAC;AAEM,IAAM,4BAA4B,WAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,kBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,cAAA,EAAgB,4BAAA;AAAA,EAChB,OAAA,EAAS,+BAAA;AAAA,EACT,WAAA,EAAa,qFAAA;AAAA,EACb,IAAA,EAAM,CAAC,QAAQ,CAAA;AAAA,EACf,YAAA,EAAc,IAAA;AAAA,EACd,OAAA,EAAS,OAAO,EAAE,MAAA,EAAO,KAAM;AAC7B,IAAA,IAAI;AACF,MAAA,MAAM,gBAAA,GAAmB,QAAQ,GAAA,CAAI,oBAAA;AAErC,MAAA,IAAI,WAA4B,EAAC;AAEjC,MAAA,IAAI,gBAAA,EAAkB;AACpB,QAAA,IAAI;AACF,UAAA,MAAM,WAAA,GAAc,YAAA,CAAa,gBAAA,EAAkB,OAAO,CAAA;AAC1D,UAAA,QAAA,GAAW,IAAA,CAAK,MAAM,WAAW,CAAA;AAAA,QACnC,CAAA,CAAA,MAAQ;AACN,UAAA,QAAA,GAAW,EAAC;AAAA,QACd;AAAA,MACF;AAEA,MAAA,MAAM,OAAA,GAAU,OAAO,UAAA,EAAW;AAClC,MAAA,MAAM,cAAc,OAAA,EAAS,IAAA;AAC7B,MAAA,MAAM,oBAAA,GAAuB,SAAS,MAAA,EAAQ,aAAA;AAC9C,MAAA,MAAM,wBAAA,GAA2B,sBAAsB,WAAA,CAAY,IAAA;AACnE,MAAA,MAAM,+BAA+B,oBAAA,EAAsB,sBAAA;AAC3D,MAAA,MAAM,oBAAA,GAAuB,CAAC,CAAC,MAAA,CAAO,cAAc,kBAAA,EAAmB;AAEvE,MAAA,OAAO;AAAA,QACL,QAAA;AAAA,QACA,KAAA,EAAO,OAAA,CAAQ,GAAA,CAAI,UAAA,KAAe,MAAA;AAAA,QAClC,UAAA,EAAY,CAAC,CAAC,MAAA,CAAO,SAAA,EAAU;AAAA,QAC/B,oBAAA;AAAA,QACA,WAAA;AAAA,QACA,wBAAA;AAAA,QACA;AAAA,OACF;AAAA,IACF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,+BAA+B,CAAA;AAAA,IAC3D;AAAA,EACF;AACF,CAAC","file":"chunk-WD2L3ZU3.js","sourcesContent":["import { readFileSync } from 'node:fs';\n\nimport type { MastraPackage } from '../schemas/system';\nimport { apiSchemaManifestResponseSchema, systemPackagesResponseSchema } from '../schemas/system';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { handleError } from './error';\n\nexport const GET_API_SCHEMA_ROUTE = createRoute({\n method: 'GET',\n path: '/system/api-schema',\n responseType: 'json',\n responseSchema: apiSchemaManifestResponseSchema,\n summary: 'Get API schema manifest',\n description: 'Returns the route-contract-derived API schema manifest for the machine-readable CLI',\n tags: ['System'],\n requiresAuth: true,\n handler: async () => {\n // Dynamic import to avoid circular dependency issues\n const { buildApiSchemaManifest } = await import('../server-adapter/api-schema-manifest');\n return buildApiSchemaManifest();\n },\n});\n\nexport const GET_SYSTEM_PACKAGES_ROUTE = createRoute({\n method: 'GET',\n path: '/system/packages',\n responseType: 'json',\n responseSchema: systemPackagesResponseSchema,\n summary: 'Get installed Mastra packages',\n description: 'Returns a list of all installed Mastra packages and their versions from the project',\n tags: ['System'],\n requiresAuth: true,\n handler: async ({ mastra }) => {\n try {\n const packagesFilePath = process.env.MASTRA_PACKAGES_FILE;\n\n let packages: MastraPackage[] = [];\n\n if (packagesFilePath) {\n try {\n const fileContent = readFileSync(packagesFilePath, 'utf-8');\n packages = JSON.parse(fileContent);\n } catch {\n packages = [];\n }\n }\n\n const storage = mastra.getStorage();\n const storageType = storage?.name;\n const observabilityStorage = storage?.stores?.observability;\n const observabilityStorageType = observabilityStorage?.constructor.name;\n const observabilityRuntimeStrategy = observabilityStorage?.runtimeTracingStrategy;\n const observabilityEnabled = !!mastra.observability.getDefaultInstance();\n\n return {\n packages,\n isDev: process.env.MASTRA_DEV === 'true',\n cmsEnabled: !!mastra.getEditor(),\n observabilityEnabled,\n storageType,\n observabilityStorageType,\n observabilityRuntimeStrategy,\n };\n } catch (error) {\n return handleError(error, 'Error getting system packages');\n }\n },\n});\n"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkD774EZRN_cjs = require('./chunk-D774EZRN.cjs');
|
|
4
4
|
var chunkGFP7IMFR_cjs = require('./chunk-GFP7IMFR.cjs');
|
|
5
5
|
var chunk2XZ2466F_cjs = require('./chunk-2XZ2466F.cjs');
|
|
6
|
-
var
|
|
7
|
-
var
|
|
6
|
+
var chunkQZ6UFQ7V_cjs = require('./chunk-QZ6UFQ7V.cjs');
|
|
7
|
+
var chunkYNSUYESL_cjs = require('./chunk-YNSUYESL.cjs');
|
|
8
|
+
var chunkXTFWFQZ7_cjs = require('./chunk-XTFWFQZ7.cjs');
|
|
8
9
|
var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
|
|
9
10
|
|
|
10
11
|
// src/server/handlers/agent-versions.ts
|
|
@@ -25,18 +26,18 @@ var SNAPSHOT_CONFIG_FIELDS = [
|
|
|
25
26
|
"requestContextSchema",
|
|
26
27
|
"mcpClients"
|
|
27
28
|
];
|
|
28
|
-
var LIST_AGENT_VERSIONS_ROUTE =
|
|
29
|
+
var LIST_AGENT_VERSIONS_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
|
|
29
30
|
method: "GET",
|
|
30
31
|
path: "/stored/agents/:agentId/versions",
|
|
31
32
|
requiresAuth: true,
|
|
32
33
|
responseType: "json",
|
|
33
|
-
pathParamSchema:
|
|
34
|
+
pathParamSchema: chunkD774EZRN_cjs.agentVersionPathParams,
|
|
34
35
|
queryParamSchema: chunkGFP7IMFR_cjs.listVersionsQuerySchema,
|
|
35
|
-
responseSchema:
|
|
36
|
+
responseSchema: chunkD774EZRN_cjs.listVersionsResponseSchema,
|
|
36
37
|
summary: "List agent versions",
|
|
37
38
|
description: "Returns a paginated list of all versions for a stored agent",
|
|
38
39
|
tags: ["Agent Versions"],
|
|
39
|
-
handler: async ({ mastra, agentId, page, perPage, orderBy }) => {
|
|
40
|
+
handler: async ({ mastra, agentId, page, perPage, orderBy, requestContext }) => {
|
|
40
41
|
try {
|
|
41
42
|
const storage = mastra.getStorage();
|
|
42
43
|
if (!storage) {
|
|
@@ -56,6 +57,7 @@ var LIST_AGENT_VERSIONS_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
56
57
|
if (!storedAgent && !codeAgentExists) {
|
|
57
58
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Agent with id ${agentId} not found` });
|
|
58
59
|
}
|
|
60
|
+
chunkQZ6UFQ7V_cjs.assertStoredResourceScope(storedAgent, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
|
|
59
61
|
const result = await agentsStore.listVersions({
|
|
60
62
|
agentId,
|
|
61
63
|
page,
|
|
@@ -64,22 +66,22 @@ var LIST_AGENT_VERSIONS_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
64
66
|
});
|
|
65
67
|
return result;
|
|
66
68
|
} catch (error) {
|
|
67
|
-
return
|
|
69
|
+
return chunkYNSUYESL_cjs.handleError(error, "Error listing agent versions");
|
|
68
70
|
}
|
|
69
71
|
}
|
|
70
72
|
});
|
|
71
|
-
var CREATE_AGENT_VERSION_ROUTE =
|
|
73
|
+
var CREATE_AGENT_VERSION_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
|
|
72
74
|
method: "POST",
|
|
73
75
|
path: "/stored/agents/:agentId/versions",
|
|
74
76
|
requiresAuth: true,
|
|
75
77
|
responseType: "json",
|
|
76
|
-
pathParamSchema:
|
|
78
|
+
pathParamSchema: chunkD774EZRN_cjs.agentVersionPathParams,
|
|
77
79
|
bodySchema: chunkGFP7IMFR_cjs.createVersionBodySchema,
|
|
78
|
-
responseSchema:
|
|
80
|
+
responseSchema: chunkD774EZRN_cjs.createVersionResponseSchema,
|
|
79
81
|
summary: "Create agent version",
|
|
80
82
|
description: "Creates a new version snapshot of the current agent configuration",
|
|
81
83
|
tags: ["Agent Versions"],
|
|
82
|
-
handler: async ({ mastra, agentId, changeMessage }) => {
|
|
84
|
+
handler: async ({ mastra, agentId, changeMessage, requestContext }) => {
|
|
83
85
|
try {
|
|
84
86
|
const storage = mastra.getStorage();
|
|
85
87
|
if (!storage) {
|
|
@@ -93,6 +95,7 @@ var CREATE_AGENT_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
93
95
|
if (!agent) {
|
|
94
96
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Agent with id ${agentId} not found` });
|
|
95
97
|
}
|
|
98
|
+
chunkQZ6UFQ7V_cjs.assertStoredResourceScope(agent, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
|
|
96
99
|
let currentConfig = {};
|
|
97
100
|
if (agent.activeVersionId) {
|
|
98
101
|
const activeVersion = await agentsStore.getVersion(agent.activeVersionId);
|
|
@@ -132,21 +135,21 @@ var CREATE_AGENT_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
132
135
|
);
|
|
133
136
|
return version;
|
|
134
137
|
} catch (error) {
|
|
135
|
-
return
|
|
138
|
+
return chunkYNSUYESL_cjs.handleError(error, "Error creating agent version");
|
|
136
139
|
}
|
|
137
140
|
}
|
|
138
141
|
});
|
|
139
|
-
var GET_AGENT_VERSION_ROUTE =
|
|
142
|
+
var GET_AGENT_VERSION_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
|
|
140
143
|
method: "GET",
|
|
141
144
|
path: "/stored/agents/:agentId/versions/:versionId",
|
|
142
145
|
requiresAuth: true,
|
|
143
146
|
responseType: "json",
|
|
144
|
-
pathParamSchema:
|
|
145
|
-
responseSchema:
|
|
147
|
+
pathParamSchema: chunkD774EZRN_cjs.versionIdPathParams,
|
|
148
|
+
responseSchema: chunkD774EZRN_cjs.getVersionResponseSchema,
|
|
146
149
|
summary: "Get agent version",
|
|
147
150
|
description: "Returns a specific version of an agent by its version ID",
|
|
148
151
|
tags: ["Agent Versions"],
|
|
149
|
-
handler: async ({ mastra, agentId, versionId }) => {
|
|
152
|
+
handler: async ({ mastra, agentId, versionId, requestContext }) => {
|
|
150
153
|
try {
|
|
151
154
|
const storage = mastra.getStorage();
|
|
152
155
|
if (!storage) {
|
|
@@ -163,23 +166,25 @@ var GET_AGENT_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
163
166
|
if (version.agentId !== agentId) {
|
|
164
167
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Version with id ${versionId} not found for agent ${agentId}` });
|
|
165
168
|
}
|
|
169
|
+
const agent = await agentsStore.getById(agentId);
|
|
170
|
+
chunkQZ6UFQ7V_cjs.assertStoredResourceScope(agent, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
|
|
166
171
|
return version;
|
|
167
172
|
} catch (error) {
|
|
168
|
-
return
|
|
173
|
+
return chunkYNSUYESL_cjs.handleError(error, "Error getting agent version");
|
|
169
174
|
}
|
|
170
175
|
}
|
|
171
176
|
});
|
|
172
|
-
var ACTIVATE_AGENT_VERSION_ROUTE =
|
|
177
|
+
var ACTIVATE_AGENT_VERSION_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
|
|
173
178
|
method: "POST",
|
|
174
179
|
path: "/stored/agents/:agentId/versions/:versionId/activate",
|
|
175
180
|
requiresAuth: true,
|
|
176
181
|
responseType: "json",
|
|
177
|
-
pathParamSchema:
|
|
182
|
+
pathParamSchema: chunkD774EZRN_cjs.versionIdPathParams,
|
|
178
183
|
responseSchema: chunkGFP7IMFR_cjs.activateVersionResponseSchema,
|
|
179
184
|
summary: "Activate agent version",
|
|
180
185
|
description: "Sets a specific version as the active version for the agent",
|
|
181
186
|
tags: ["Agent Versions"],
|
|
182
|
-
handler: async ({ mastra, agentId, versionId }) => {
|
|
187
|
+
handler: async ({ mastra, agentId, versionId, requestContext }) => {
|
|
183
188
|
try {
|
|
184
189
|
const storage = mastra.getStorage();
|
|
185
190
|
if (!storage) {
|
|
@@ -193,6 +198,7 @@ var ACTIVATE_AGENT_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
193
198
|
if (!agent) {
|
|
194
199
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Agent with id ${agentId} not found` });
|
|
195
200
|
}
|
|
201
|
+
chunkQZ6UFQ7V_cjs.assertStoredResourceScope(agent, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
|
|
196
202
|
const version = await agentsStore.getVersion(versionId);
|
|
197
203
|
if (!version) {
|
|
198
204
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Version with id ${versionId} not found` });
|
|
@@ -212,21 +218,21 @@ var ACTIVATE_AGENT_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
212
218
|
activeVersionId: versionId
|
|
213
219
|
};
|
|
214
220
|
} catch (error) {
|
|
215
|
-
return
|
|
221
|
+
return chunkYNSUYESL_cjs.handleError(error, "Error activating agent version");
|
|
216
222
|
}
|
|
217
223
|
}
|
|
218
224
|
});
|
|
219
|
-
var RESTORE_AGENT_VERSION_ROUTE =
|
|
225
|
+
var RESTORE_AGENT_VERSION_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
|
|
220
226
|
method: "POST",
|
|
221
227
|
path: "/stored/agents/:agentId/versions/:versionId/restore",
|
|
222
228
|
requiresAuth: true,
|
|
223
229
|
responseType: "json",
|
|
224
|
-
pathParamSchema:
|
|
225
|
-
responseSchema:
|
|
230
|
+
pathParamSchema: chunkD774EZRN_cjs.versionIdPathParams,
|
|
231
|
+
responseSchema: chunkD774EZRN_cjs.restoreVersionResponseSchema,
|
|
226
232
|
summary: "Restore agent version",
|
|
227
233
|
description: "Restores the agent configuration from a version, creating a new version",
|
|
228
234
|
tags: ["Agent Versions"],
|
|
229
|
-
handler: async ({ mastra, agentId, versionId }) => {
|
|
235
|
+
handler: async ({ mastra, agentId, versionId, requestContext }) => {
|
|
230
236
|
try {
|
|
231
237
|
const storage = mastra.getStorage();
|
|
232
238
|
if (!storage) {
|
|
@@ -240,6 +246,7 @@ var RESTORE_AGENT_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
240
246
|
if (!agent) {
|
|
241
247
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Agent with id ${agentId} not found` });
|
|
242
248
|
}
|
|
249
|
+
chunkQZ6UFQ7V_cjs.assertStoredResourceScope(agent, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
|
|
243
250
|
const versionToRestore = await agentsStore.getVersion(versionId);
|
|
244
251
|
if (!versionToRestore) {
|
|
245
252
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Version with id ${versionId} not found` });
|
|
@@ -281,21 +288,21 @@ var RESTORE_AGENT_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
281
288
|
mastra.getEditor()?.agent.clearCache(agentId);
|
|
282
289
|
return newVersion;
|
|
283
290
|
} catch (error) {
|
|
284
|
-
return
|
|
291
|
+
return chunkYNSUYESL_cjs.handleError(error, "Error restoring agent version");
|
|
285
292
|
}
|
|
286
293
|
}
|
|
287
294
|
});
|
|
288
|
-
var DELETE_AGENT_VERSION_ROUTE =
|
|
295
|
+
var DELETE_AGENT_VERSION_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
|
|
289
296
|
method: "DELETE",
|
|
290
297
|
path: "/stored/agents/:agentId/versions/:versionId",
|
|
291
298
|
requiresAuth: true,
|
|
292
299
|
responseType: "json",
|
|
293
|
-
pathParamSchema:
|
|
300
|
+
pathParamSchema: chunkD774EZRN_cjs.versionIdPathParams,
|
|
294
301
|
responseSchema: chunkGFP7IMFR_cjs.deleteVersionResponseSchema,
|
|
295
302
|
summary: "Delete agent version",
|
|
296
303
|
description: "Deletes a specific version (cannot delete the active version)",
|
|
297
304
|
tags: ["Agent Versions"],
|
|
298
|
-
handler: async ({ mastra, agentId, versionId }) => {
|
|
305
|
+
handler: async ({ mastra, agentId, versionId, requestContext }) => {
|
|
299
306
|
try {
|
|
300
307
|
const storage = mastra.getStorage();
|
|
301
308
|
if (!storage) {
|
|
@@ -309,6 +316,7 @@ var DELETE_AGENT_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
309
316
|
if (!agent) {
|
|
310
317
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Agent with id ${agentId} not found` });
|
|
311
318
|
}
|
|
319
|
+
chunkQZ6UFQ7V_cjs.assertStoredResourceScope(agent, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
|
|
312
320
|
const version = await agentsStore.getVersion(versionId);
|
|
313
321
|
if (!version) {
|
|
314
322
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Version with id ${versionId} not found` });
|
|
@@ -328,22 +336,22 @@ var DELETE_AGENT_VERSION_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
328
336
|
message: `Version ${version.versionNumber} deleted successfully`
|
|
329
337
|
};
|
|
330
338
|
} catch (error) {
|
|
331
|
-
return
|
|
339
|
+
return chunkYNSUYESL_cjs.handleError(error, "Error deleting agent version");
|
|
332
340
|
}
|
|
333
341
|
}
|
|
334
342
|
});
|
|
335
|
-
var COMPARE_AGENT_VERSIONS_ROUTE =
|
|
343
|
+
var COMPARE_AGENT_VERSIONS_ROUTE = chunkXTFWFQZ7_cjs.createRoute({
|
|
336
344
|
method: "GET",
|
|
337
345
|
path: "/stored/agents/:agentId/versions/compare",
|
|
338
346
|
requiresAuth: true,
|
|
339
347
|
responseType: "json",
|
|
340
|
-
pathParamSchema:
|
|
348
|
+
pathParamSchema: chunkD774EZRN_cjs.agentVersionPathParams,
|
|
341
349
|
queryParamSchema: chunkGFP7IMFR_cjs.compareVersionsQuerySchema,
|
|
342
|
-
responseSchema:
|
|
350
|
+
responseSchema: chunkD774EZRN_cjs.compareVersionsResponseSchema,
|
|
343
351
|
summary: "Compare agent versions",
|
|
344
352
|
description: "Compares two versions and returns the differences between them",
|
|
345
353
|
tags: ["Agent Versions"],
|
|
346
|
-
handler: async ({ mastra, agentId, from, to }) => {
|
|
354
|
+
handler: async ({ mastra, agentId, from, to, requestContext }) => {
|
|
347
355
|
try {
|
|
348
356
|
const storage = mastra.getStorage();
|
|
349
357
|
if (!storage) {
|
|
@@ -353,6 +361,8 @@ var COMPARE_AGENT_VERSIONS_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
353
361
|
if (!agentsStore) {
|
|
354
362
|
throw new chunk64ITUOXI_cjs.HTTPException(500, { message: "Agents storage domain is not available" });
|
|
355
363
|
}
|
|
364
|
+
const agent = await agentsStore.getById(agentId);
|
|
365
|
+
chunkQZ6UFQ7V_cjs.assertStoredResourceScope(agent, await chunkQZ6UFQ7V_cjs.getStoredResourceScope(mastra, requestContext));
|
|
356
366
|
const fromVersion = await agentsStore.getVersion(from);
|
|
357
367
|
if (!fromVersion) {
|
|
358
368
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: `Version with id ${from} not found` });
|
|
@@ -382,7 +392,7 @@ var COMPARE_AGENT_VERSIONS_ROUTE = chunkAZORAK4H_cjs.createRoute({
|
|
|
382
392
|
toVersion
|
|
383
393
|
};
|
|
384
394
|
} catch (error) {
|
|
385
|
-
return
|
|
395
|
+
return chunkYNSUYESL_cjs.handleError(error, "Error comparing agent versions");
|
|
386
396
|
}
|
|
387
397
|
}
|
|
388
398
|
});
|
|
@@ -394,5 +404,5 @@ exports.DELETE_AGENT_VERSION_ROUTE = DELETE_AGENT_VERSION_ROUTE;
|
|
|
394
404
|
exports.GET_AGENT_VERSION_ROUTE = GET_AGENT_VERSION_ROUTE;
|
|
395
405
|
exports.LIST_AGENT_VERSIONS_ROUTE = LIST_AGENT_VERSIONS_ROUTE;
|
|
396
406
|
exports.RESTORE_AGENT_VERSION_ROUTE = RESTORE_AGENT_VERSION_ROUTE;
|
|
397
|
-
//# sourceMappingURL=chunk-
|
|
398
|
-
//# sourceMappingURL=chunk-
|
|
407
|
+
//# sourceMappingURL=chunk-WLGC3IWY.cjs.map
|
|
408
|
+
//# sourceMappingURL=chunk-WLGC3IWY.cjs.map
|