@mastra/server 1.31.1-alpha.0 → 1.32.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 +36 -0
- package/dist/_types/@internal_core/dist/index.d.ts +82 -1
- package/dist/{chunk-7VXUWPHS.cjs → chunk-2REMDR2Q.cjs} +12 -12
- package/dist/{chunk-7VXUWPHS.cjs.map → chunk-2REMDR2Q.cjs.map} +1 -1
- package/dist/chunk-33USMBWV.js +250 -0
- package/dist/chunk-33USMBWV.js.map +1 -0
- package/dist/{chunk-KW2MZGRE.js → chunk-4JWF4VAL.js} +3 -3
- package/dist/{chunk-KW2MZGRE.js.map → chunk-4JWF4VAL.js.map} +1 -1
- package/dist/{chunk-53YFG5AY.js → chunk-4L2UVFJO.js} +8 -2
- package/dist/chunk-4L2UVFJO.js.map +1 -0
- package/dist/{chunk-CXBX2UAP.cjs → chunk-4UMO2IGR.cjs} +7 -7
- package/dist/{chunk-CXBX2UAP.cjs.map → chunk-4UMO2IGR.cjs.map} +1 -1
- package/dist/{chunk-5KM5P23Q.cjs → chunk-5VMRQT5S.cjs} +29 -29
- package/dist/{chunk-5KM5P23Q.cjs.map → chunk-5VMRQT5S.cjs.map} +1 -1
- package/dist/{chunk-FIP7YYSO.js → chunk-64M357LE.js} +6 -6
- package/dist/{chunk-FIP7YYSO.js.map → chunk-64M357LE.js.map} +1 -1
- package/dist/{chunk-CUIH4FYN.js → chunk-67TYG7WH.js} +3 -3
- package/dist/{chunk-CUIH4FYN.js.map → chunk-67TYG7WH.js.map} +1 -1
- package/dist/{chunk-65MQD7JR.js → chunk-6M7OOHNA.js} +6 -6
- package/dist/{chunk-65MQD7JR.js.map → chunk-6M7OOHNA.js.map} +1 -1
- package/dist/{chunk-HSU5D2KT.js → chunk-72RVQAAZ.js} +4 -4
- package/dist/{chunk-HSU5D2KT.js.map → chunk-72RVQAAZ.js.map} +1 -1
- package/dist/{chunk-5UKYK7YK.cjs → chunk-7LAFXMXB.cjs} +2 -2
- package/dist/{chunk-5UKYK7YK.cjs.map → chunk-7LAFXMXB.cjs.map} +1 -1
- package/dist/{chunk-2HIGXJMR.cjs → chunk-AF6AYXRW.cjs} +103 -103
- package/dist/{chunk-2HIGXJMR.cjs.map → chunk-AF6AYXRW.cjs.map} +1 -1
- package/dist/{chunk-Y2SA2JZT.cjs → chunk-ANEBYNP6.cjs} +89 -67
- package/dist/chunk-ANEBYNP6.cjs.map +1 -0
- package/dist/{chunk-YI2LXCWB.js → chunk-AOKUS5NX.js} +3 -3
- package/dist/{chunk-YI2LXCWB.js.map → chunk-AOKUS5NX.js.map} +1 -1
- package/dist/{chunk-MROI3O6S.cjs → chunk-ASVWXKET.cjs} +12 -12
- package/dist/{chunk-MROI3O6S.cjs.map → chunk-ASVWXKET.cjs.map} +1 -1
- package/dist/{chunk-XG2VRXG5.cjs → chunk-BK2PRWVJ.cjs} +22 -2
- package/dist/chunk-BK2PRWVJ.cjs.map +1 -0
- package/dist/{chunk-4GOK3PCO.js → chunk-CBSIIPHQ.js} +6 -6
- package/dist/{chunk-4GOK3PCO.js.map → chunk-CBSIIPHQ.js.map} +1 -1
- package/dist/{chunk-VGR4DSXQ.cjs → chunk-CEZZQMPM.cjs} +11 -11
- package/dist/{chunk-VGR4DSXQ.cjs.map → chunk-CEZZQMPM.cjs.map} +1 -1
- package/dist/{chunk-RPMBPQNO.cjs → chunk-CPZEA2XG.cjs} +10 -3
- package/dist/chunk-CPZEA2XG.cjs.map +1 -0
- package/dist/{chunk-OES3CANB.js → chunk-CR7RGILH.js} +3 -3
- package/dist/{chunk-OES3CANB.js.map → chunk-CR7RGILH.js.map} +1 -1
- package/dist/{chunk-ARZ6W3O3.cjs → chunk-CTYPGLJG.cjs} +46 -21
- package/dist/chunk-CTYPGLJG.cjs.map +1 -0
- package/dist/{chunk-H6NJWTER.cjs → chunk-CZU262RD.cjs} +20 -15
- package/dist/chunk-CZU262RD.cjs.map +1 -0
- package/dist/{chunk-4IYALPXO.js → chunk-DCMRHRHR.js} +4 -4
- package/dist/{chunk-4IYALPXO.js.map → chunk-DCMRHRHR.js.map} +1 -1
- package/dist/{chunk-B346SGRP.cjs → chunk-DIBOFJUK.cjs} +11 -11
- package/dist/{chunk-B346SGRP.cjs.map → chunk-DIBOFJUK.cjs.map} +1 -1
- package/dist/{chunk-DY6OYCMG.js → chunk-DOTOVTE2.js} +4 -4
- package/dist/{chunk-DY6OYCMG.js.map → chunk-DOTOVTE2.js.map} +1 -1
- package/dist/{chunk-VOAVPKTH.js → chunk-EAJSW5GK.js} +3 -3
- package/dist/{chunk-VOAVPKTH.js.map → chunk-EAJSW5GK.js.map} +1 -1
- package/dist/{chunk-S7REEERK.cjs → chunk-EWNTXTFB.cjs} +11 -11
- package/dist/{chunk-S7REEERK.cjs.map → chunk-EWNTXTFB.cjs.map} +1 -1
- package/dist/{chunk-DBPJYWAH.js → chunk-F23SQINQ.js} +30 -8
- package/dist/chunk-F23SQINQ.js.map +1 -0
- package/dist/{chunk-TKHLXCSZ.cjs → chunk-F5RU45N6.cjs} +7 -7
- package/dist/{chunk-TKHLXCSZ.cjs.map → chunk-F5RU45N6.cjs.map} +1 -1
- package/dist/{chunk-TNNU7IZK.cjs → chunk-FFDMYX2V.cjs} +25 -25
- package/dist/{chunk-TNNU7IZK.cjs.map → chunk-FFDMYX2V.cjs.map} +1 -1
- package/dist/{chunk-ANP3ESTF.js → chunk-FICILXAQ.js} +3 -3
- package/dist/{chunk-ANP3ESTF.js.map → chunk-FICILXAQ.js.map} +1 -1
- package/dist/{chunk-2QNJHTKM.cjs → chunk-GME2ZNSG.cjs} +11 -11
- package/dist/{chunk-2QNJHTKM.cjs.map → chunk-GME2ZNSG.cjs.map} +1 -1
- package/dist/{chunk-6SBH6SYP.js → chunk-GOFGQSF7.js} +20 -7
- package/dist/chunk-GOFGQSF7.js.map +1 -0
- package/dist/{chunk-PQETTP2F.js → chunk-GQOWV33T.js} +3 -3
- package/dist/{chunk-PQETTP2F.js.map → chunk-GQOWV33T.js.map} +1 -1
- package/dist/{chunk-OV64VJ5L.js → chunk-HBWNPGIL.js} +5 -5
- package/dist/{chunk-OV64VJ5L.js.map → chunk-HBWNPGIL.js.map} +1 -1
- package/dist/{chunk-H23VTK56.js → chunk-HKXIZNJC.js} +4 -4
- package/dist/{chunk-H23VTK56.js.map → chunk-HKXIZNJC.js.map} +1 -1
- package/dist/{chunk-EQR4MMSL.cjs → chunk-HN3V6UA4.cjs} +12 -12
- package/dist/{chunk-EQR4MMSL.cjs.map → chunk-HN3V6UA4.cjs.map} +1 -1
- package/dist/{chunk-OGV23F3H.cjs → chunk-IMPWOZUQ.cjs} +28 -15
- package/dist/chunk-IMPWOZUQ.cjs.map +1 -0
- package/dist/{chunk-AMC32S2M.js → chunk-IRKGFNRR.js} +34 -9
- package/dist/chunk-IRKGFNRR.js.map +1 -0
- package/dist/{chunk-EPM6ILRW.js → chunk-IYEGDP3G.js} +22 -3
- package/dist/chunk-IYEGDP3G.js.map +1 -0
- package/dist/{chunk-JZNOIGOQ.js → chunk-K2KWDOYR.js} +32 -5
- package/dist/chunk-K2KWDOYR.js.map +1 -0
- package/dist/{chunk-Q2N5GR7X.cjs → chunk-K745HNW2.cjs} +11 -11
- package/dist/{chunk-Q2N5GR7X.cjs.map → chunk-K745HNW2.cjs.map} +1 -1
- package/dist/{chunk-YJQYJ5WD.cjs → chunk-K7IVZQKI.cjs} +6 -6
- package/dist/{chunk-YJQYJ5WD.cjs.map → chunk-K7IVZQKI.cjs.map} +1 -1
- package/dist/{chunk-PA2BYLKF.js → chunk-KDUX3YN3.js} +2 -2
- package/dist/{chunk-PA2BYLKF.js.map → chunk-KDUX3YN3.js.map} +1 -1
- package/dist/{chunk-LVGLLXRY.cjs → chunk-KQU6VKAO.cjs} +7 -7
- package/dist/{chunk-LVGLLXRY.cjs.map → chunk-KQU6VKAO.cjs.map} +1 -1
- package/dist/{chunk-UZRD3SEA.js → chunk-KTTHNIBJ.js} +89 -26
- package/dist/chunk-KTTHNIBJ.js.map +1 -0
- package/dist/{chunk-LY6Q36YN.cjs → chunk-LGR7SFQ5.cjs} +38 -25
- package/dist/chunk-LGR7SFQ5.cjs.map +1 -0
- package/dist/{chunk-7GNVIWZY.js → chunk-LO7CBY5Q.js} +6 -6
- package/dist/{chunk-7GNVIWZY.js.map → chunk-LO7CBY5Q.js.map} +1 -1
- package/dist/{chunk-UQLJDNXU.cjs → chunk-M7L5EVQE.cjs} +12 -12
- package/dist/{chunk-UQLJDNXU.cjs.map → chunk-M7L5EVQE.cjs.map} +1 -1
- package/dist/{chunk-BMWSQ6HM.cjs → chunk-NIRJGDC6.cjs} +4 -4
- package/dist/{chunk-BMWSQ6HM.cjs.map → chunk-NIRJGDC6.cjs.map} +1 -1
- package/dist/{chunk-VZNOKYP5.js → chunk-NKD5XK43.js} +5 -5
- package/dist/{chunk-VZNOKYP5.js.map → chunk-NKD5XK43.js.map} +1 -1
- package/dist/{chunk-LTLTS3RN.js → chunk-NRKGN3C5.js} +4 -4
- package/dist/{chunk-LTLTS3RN.js.map → chunk-NRKGN3C5.js.map} +1 -1
- package/dist/{chunk-EETF75CE.cjs → chunk-OBRYBTX6.cjs} +12 -12
- package/dist/{chunk-EETF75CE.cjs.map → chunk-OBRYBTX6.cjs.map} +1 -1
- package/dist/{chunk-7E2JRYIE.js → chunk-OCBL7S62.js} +6 -6
- package/dist/{chunk-7E2JRYIE.js.map → chunk-OCBL7S62.js.map} +1 -1
- package/dist/chunk-ODCWNXTX.cjs +256 -0
- package/dist/chunk-ODCWNXTX.cjs.map +1 -0
- package/dist/{chunk-JQUNK754.js → chunk-OJ7SK6PH.js} +374 -53
- package/dist/chunk-OJ7SK6PH.js.map +1 -0
- package/dist/{chunk-4J4K36CU.js → chunk-OPBMOOBR.js} +5 -5
- package/dist/{chunk-4J4K36CU.js.map → chunk-OPBMOOBR.js.map} +1 -1
- package/dist/{chunk-2MWLNHBG.cjs → chunk-OQHTG2JK.cjs} +11 -11
- package/dist/{chunk-2MWLNHBG.cjs.map → chunk-OQHTG2JK.cjs.map} +1 -1
- package/dist/{chunk-4BSJHDYP.js → chunk-OUS6FNA7.js} +11 -6
- package/dist/chunk-OUS6FNA7.js.map +1 -0
- package/dist/{chunk-OGEXISZT.cjs → chunk-OZC7GEO5.cjs} +11 -11
- package/dist/{chunk-OGEXISZT.cjs.map → chunk-OZC7GEO5.cjs.map} +1 -1
- package/dist/{chunk-WFVK6ZXR.cjs → chunk-Q2T2Q4S5.cjs} +6 -6
- package/dist/{chunk-WFVK6ZXR.cjs.map → chunk-Q2T2Q4S5.cjs.map} +1 -1
- package/dist/{chunk-CKZMJIUO.cjs → chunk-R3DQGOTC.cjs} +6 -6
- package/dist/{chunk-CKZMJIUO.cjs.map → chunk-R3DQGOTC.cjs.map} +1 -1
- package/dist/{chunk-IQA7HL2V.js → chunk-R7X4YOSH.js} +51 -10
- package/dist/chunk-R7X4YOSH.js.map +1 -0
- package/dist/{chunk-NRFMMYTG.js → chunk-RF5ZDERV.js} +4 -4
- package/dist/{chunk-NRFMMYTG.js.map → chunk-RF5ZDERV.js.map} +1 -1
- package/dist/{chunk-KI7TGMMV.cjs → chunk-RL34ZMLF.cjs} +159 -96
- package/dist/chunk-RL34ZMLF.cjs.map +1 -0
- package/dist/{chunk-2HVAN7FF.js → chunk-RP7OLAVZ.js} +10 -3
- package/dist/chunk-RP7OLAVZ.js.map +1 -0
- package/dist/{chunk-K6VEDPBD.js → chunk-RPEPKUZQ.js} +12 -11
- package/dist/chunk-RPEPKUZQ.js.map +1 -0
- package/dist/{chunk-TU7U5XUE.cjs → chunk-SUT6SU4I.cjs} +8 -2
- package/dist/chunk-SUT6SU4I.cjs.map +1 -0
- package/dist/{chunk-DG5RFCGJ.cjs → chunk-T6MMZWHW.cjs} +427 -106
- package/dist/chunk-T6MMZWHW.cjs.map +1 -0
- package/dist/{chunk-RTD3NZ4G.js → chunk-TLOT3CIB.js} +6 -6
- package/dist/{chunk-RTD3NZ4G.js.map → chunk-TLOT3CIB.js.map} +1 -1
- package/dist/{chunk-3NNQG5XP.js → chunk-VG6A54JE.js} +3 -3
- package/dist/{chunk-3NNQG5XP.js.map → chunk-VG6A54JE.js.map} +1 -1
- package/dist/{chunk-QL62CV5V.js → chunk-VRPAOMXW.js} +25 -12
- package/dist/chunk-VRPAOMXW.js.map +1 -0
- package/dist/{chunk-EFP5PJBY.cjs → chunk-WMFH3SH2.cjs} +136 -94
- package/dist/chunk-WMFH3SH2.cjs.map +1 -0
- package/dist/{chunk-S4EHZQFI.js → chunk-WYSQECWW.js} +10 -10
- package/dist/{chunk-S4EHZQFI.js.map → chunk-WYSQECWW.js.map} +1 -1
- package/dist/{chunk-ERKUFMCT.js → chunk-X2LYM3QK.js} +3 -3
- package/dist/{chunk-ERKUFMCT.js.map → chunk-X2LYM3QK.js.map} +1 -1
- package/dist/{chunk-OGZ6ROYD.js → chunk-X3RINDH6.js} +6 -5
- package/dist/chunk-X3RINDH6.js.map +1 -0
- package/dist/{chunk-NGYGE7QW.cjs → chunk-X47OINMY.cjs} +17 -17
- package/dist/{chunk-NGYGE7QW.cjs.map → chunk-X47OINMY.cjs.map} +1 -1
- package/dist/{chunk-245BXYGJ.cjs → chunk-XCXPPGJ3.cjs} +13 -13
- package/dist/{chunk-245BXYGJ.cjs.map → chunk-XCXPPGJ3.cjs.map} +1 -1
- package/dist/{chunk-2CFH32YO.cjs → chunk-XEERRXWL.cjs} +32 -4
- package/dist/chunk-XEERRXWL.cjs.map +1 -0
- package/dist/{chunk-NUGBBASK.js → chunk-XOHBH6NQ.js} +4 -4
- package/dist/{chunk-NUGBBASK.js.map → chunk-XOHBH6NQ.js.map} +1 -1
- package/dist/{chunk-OLPARCPM.cjs → chunk-XUFQVLBC.cjs} +5 -5
- package/dist/{chunk-OLPARCPM.cjs.map → chunk-XUFQVLBC.cjs.map} +1 -1
- package/dist/{chunk-5XQIAEWJ.cjs → chunk-YMBKVVDF.cjs} +22 -21
- package/dist/chunk-YMBKVVDF.cjs.map +1 -0
- package/dist/{chunk-DZZBC6UV.cjs → chunk-ZCCXXT7V.cjs} +12 -12
- package/dist/{chunk-DZZBC6UV.cjs.map → chunk-ZCCXXT7V.cjs.map} +1 -1
- package/dist/{chunk-EBKNX5RM.cjs → chunk-ZHEQYOTL.cjs} +53 -52
- package/dist/chunk-ZHEQYOTL.cjs.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/{observational-memory-ZS2HJPUO-472SI4TK.cjs → observational-memory-UMDC4VC2-3I52URYY.cjs} +26 -26
- package/dist/{observational-memory-ZS2HJPUO-472SI4TK.cjs.map → observational-memory-UMDC4VC2-3I52URYY.cjs.map} +1 -1
- package/dist/{observational-memory-ZS2HJPUO-2ZBP2HCP.js → observational-memory-UMDC4VC2-X5QMTUND.js} +3 -3
- package/dist/{observational-memory-ZS2HJPUO-2ZBP2HCP.js.map → observational-memory-UMDC4VC2-X5QMTUND.js.map} +1 -1
- package/dist/server/auth/helpers.d.ts +9 -1
- package/dist/server/auth/helpers.d.ts.map +1 -1
- package/dist/server/auth/index.cjs +18 -14
- package/dist/server/auth/index.js +1 -1
- package/dist/server/handlers/a2a.cjs +10 -10
- 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.js +1 -1
- package/dist/server/handlers/agents.cjs +38 -38
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/auth.cjs +11 -11
- package/dist/server/handlers/auth.d.ts.map +1 -1
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/background-tasks.cjs +4 -4
- package/dist/server/handlers/background-tasks.js +1 -1
- 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.d.ts.map +1 -1
- 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/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.js +1 -1
- package/dist/server/handlers/mcp.cjs +9 -9
- package/dist/server/handlers/mcp.d.ts.map +1 -1
- package/dist/server/handlers/mcp.js +1 -1
- package/dist/server/handlers/memory.cjs +27 -27
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability-new-endpoints.cjs +31 -27
- package/dist/server/handlers/observability-new-endpoints.d.ts +315 -19
- package/dist/server/handlers/observability-new-endpoints.d.ts.map +1 -1
- package/dist/server/handlers/observability-new-endpoints.js +1 -1
- package/dist/server/handlers/observability-shared.cjs +5 -5
- package/dist/server/handlers/observability-shared.d.ts +6 -0
- package/dist/server/handlers/observability-shared.d.ts.map +1 -1
- package/dist/server/handlers/observability-shared.js +1 -1
- package/dist/server/handlers/observability.cjs +39 -35
- 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.js +1 -1
- package/dist/server/handlers/responses.cjs +4 -4
- package/dist/server/handlers/responses.d.ts.map +1 -1
- 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 +28 -0
- package/dist/server/handlers/schedules.cjs.map +1 -0
- package/dist/server/handlers/schedules.d.ts +345 -0
- package/dist/server/handlers/schedules.d.ts.map +1 -0
- package/dist/server/handlers/schedules.js +3 -0
- package/dist/server/handlers/schedules.js.map +1 -0
- package/dist/server/handlers/scorer-versions.cjs +8 -8
- 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/stored-agents.cjs +7 -7
- 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.js +1 -1
- package/dist/server/handlers/stored-prompt-blocks.cjs +6 -6
- 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.js +1 -1
- package/dist/server/handlers/stored-skills.cjs +7 -7
- package/dist/server/handlers/stored-skills.js +1 -1
- package/dist/server/handlers/stored-workspaces.cjs +6 -6
- package/dist/server/handlers/stored-workspaces.js +1 -1
- package/dist/server/handlers/system.cjs +2 -2
- 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.d.ts.map +1 -1
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +13 -9
- package/dist/server/handlers/utils.d.ts +15 -0
- package/dist/server/handlers/utils.d.ts.map +1 -1
- package/dist/server/handlers/utils.js +1 -1
- 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 +24 -24
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- 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 +40 -40
- package/dist/server/handlers.js +15 -15
- package/dist/server/schemas/index.cjs +232 -232
- package/dist/server/schemas/index.js +8 -8
- package/dist/server/schemas/schedules.d.ts +204 -0
- package/dist/server/schemas/schedules.d.ts.map +1 -0
- package/dist/server/server-adapter/index.cjs +391 -319
- package/dist/server/server-adapter/index.cjs.map +1 -1
- package/dist/server/server-adapter/index.d.ts +9 -0
- package/dist/server/server-adapter/index.d.ts.map +1 -1
- package/dist/server/server-adapter/index.js +112 -41
- package/dist/server/server-adapter/index.js.map +1 -1
- package/dist/server/server-adapter/routes/index.d.ts +19 -3
- package/dist/server/server-adapter/routes/index.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/observability.d.ts +156 -9
- package/dist/server/server-adapter/routes/observability.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/route-builder.d.ts +15 -1
- package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/schedules.d.ts +3 -0
- package/dist/server/server-adapter/routes/schedules.d.ts.map +1 -0
- package/package.json +6 -4
- package/dist/chunk-2CFH32YO.cjs.map +0 -1
- package/dist/chunk-2HVAN7FF.js.map +0 -1
- package/dist/chunk-4BSJHDYP.js.map +0 -1
- package/dist/chunk-53YFG5AY.js.map +0 -1
- package/dist/chunk-5XQIAEWJ.cjs.map +0 -1
- package/dist/chunk-6SBH6SYP.js.map +0 -1
- package/dist/chunk-AMC32S2M.js.map +0 -1
- package/dist/chunk-ARZ6W3O3.cjs.map +0 -1
- package/dist/chunk-DBPJYWAH.js.map +0 -1
- package/dist/chunk-DG5RFCGJ.cjs.map +0 -1
- package/dist/chunk-EBKNX5RM.cjs.map +0 -1
- package/dist/chunk-EFP5PJBY.cjs.map +0 -1
- package/dist/chunk-EPM6ILRW.js.map +0 -1
- package/dist/chunk-H6NJWTER.cjs.map +0 -1
- package/dist/chunk-IQA7HL2V.js.map +0 -1
- package/dist/chunk-JQUNK754.js.map +0 -1
- package/dist/chunk-JZNOIGOQ.js.map +0 -1
- package/dist/chunk-K6VEDPBD.js.map +0 -1
- package/dist/chunk-KI7TGMMV.cjs.map +0 -1
- package/dist/chunk-LY6Q36YN.cjs.map +0 -1
- package/dist/chunk-OGV23F3H.cjs.map +0 -1
- package/dist/chunk-OGZ6ROYD.js.map +0 -1
- package/dist/chunk-QL62CV5V.js.map +0 -1
- package/dist/chunk-RPMBPQNO.cjs.map +0 -1
- package/dist/chunk-TU7U5XUE.cjs.map +0 -1
- package/dist/chunk-UZRD3SEA.js.map +0 -1
- package/dist/chunk-XG2VRXG5.cjs.map +0 -1
- package/dist/chunk-Y2SA2JZT.cjs.map +0 -1
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var chunkBYX5LHPW_cjs = require('./chunk-BYX5LHPW.cjs');
|
|
4
3
|
var chunkLFZO2LHV_cjs = require('./chunk-LFZO2LHV.cjs');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
4
|
+
var chunkBYX5LHPW_cjs = require('./chunk-BYX5LHPW.cjs');
|
|
5
|
+
var chunkXEERRXWL_cjs = require('./chunk-XEERRXWL.cjs');
|
|
7
6
|
var chunkB34S64RC_cjs = require('./chunk-B34S64RC.cjs');
|
|
7
|
+
var chunk7LAFXMXB_cjs = require('./chunk-7LAFXMXB.cjs');
|
|
8
8
|
var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
|
|
9
9
|
var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
|
|
10
|
+
var ee = require('@mastra/core/auth/ee');
|
|
10
11
|
var utils = require('@mastra/core/utils');
|
|
11
12
|
|
|
12
13
|
// src/server/handlers/memory.ts
|
|
@@ -39,6 +40,82 @@ chunkO7I5CWRX_cjs.__export(memory_exports, {
|
|
|
39
40
|
UPDATE_WORKING_MEMORY_ROUTE: () => UPDATE_WORKING_MEMORY_ROUTE,
|
|
40
41
|
getTextContent: () => getTextContent
|
|
41
42
|
});
|
|
43
|
+
function hasFGAUser(requestContext) {
|
|
44
|
+
const user = requestContext?.get("user");
|
|
45
|
+
return !!user && typeof user === "object";
|
|
46
|
+
}
|
|
47
|
+
function shouldFilterThreadsWithFGA(mastra, requestContext) {
|
|
48
|
+
return !!mastra.getServer?.()?.fga && hasFGAUser(requestContext);
|
|
49
|
+
}
|
|
50
|
+
async function filterAccessibleThreads({
|
|
51
|
+
mastra,
|
|
52
|
+
requestContext,
|
|
53
|
+
threads
|
|
54
|
+
}) {
|
|
55
|
+
const fgaProvider = mastra.getServer?.()?.fga;
|
|
56
|
+
if (!fgaProvider || !hasFGAUser(requestContext) || threads.length === 0) {
|
|
57
|
+
return threads;
|
|
58
|
+
}
|
|
59
|
+
return fgaProvider.filterAccessible(
|
|
60
|
+
requestContext.get("user"),
|
|
61
|
+
threads,
|
|
62
|
+
"thread",
|
|
63
|
+
ee.MastraFGAPermissions.MEMORY_READ
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
function paginateThreads({
|
|
67
|
+
threads,
|
|
68
|
+
page,
|
|
69
|
+
perPage
|
|
70
|
+
}) {
|
|
71
|
+
const effectivePage = page ?? 0;
|
|
72
|
+
const effectivePerPage = perPage ?? 100;
|
|
73
|
+
if (effectivePerPage === false) {
|
|
74
|
+
return {
|
|
75
|
+
threads,
|
|
76
|
+
page: effectivePage,
|
|
77
|
+
perPage: false,
|
|
78
|
+
total: threads.length,
|
|
79
|
+
hasMore: false
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const start = effectivePage * effectivePerPage;
|
|
83
|
+
const pagedThreads = threads.slice(start, start + effectivePerPage);
|
|
84
|
+
return {
|
|
85
|
+
threads: pagedThreads,
|
|
86
|
+
page: effectivePage,
|
|
87
|
+
perPage: effectivePerPage,
|
|
88
|
+
total: threads.length,
|
|
89
|
+
hasMore: start + pagedThreads.length < threads.length
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
async function enforceDeleteMessagesThreadAccess({
|
|
93
|
+
mastra,
|
|
94
|
+
requestContext,
|
|
95
|
+
memoryStore,
|
|
96
|
+
messageIds,
|
|
97
|
+
effectiveResourceId
|
|
98
|
+
}) {
|
|
99
|
+
const { messages } = await memoryStore.listMessagesById({ messageIds });
|
|
100
|
+
const threadIds = [...new Set(messages.map((m) => m.threadId).filter(Boolean))];
|
|
101
|
+
if (messages.some((message) => !message.threadId)) {
|
|
102
|
+
throw new chunk64ITUOXI_cjs.HTTPException(403, { message: "Access denied: unable to verify message thread access" });
|
|
103
|
+
}
|
|
104
|
+
for (const threadId of threadIds) {
|
|
105
|
+
const thread = await memoryStore.getThreadById({ threadId });
|
|
106
|
+
if (!thread) {
|
|
107
|
+
throw new chunk64ITUOXI_cjs.HTTPException(403, { message: "Access denied: unable to verify message thread access" });
|
|
108
|
+
}
|
|
109
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
110
|
+
mastra,
|
|
111
|
+
requestContext,
|
|
112
|
+
threadId,
|
|
113
|
+
thread,
|
|
114
|
+
effectiveResourceId,
|
|
115
|
+
permission: ee.MastraFGAPermissions.MEMORY_DELETE
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
}
|
|
42
119
|
function getTextContent(message) {
|
|
43
120
|
if (typeof message.content === "string") {
|
|
44
121
|
return message.content;
|
|
@@ -210,7 +287,7 @@ async function getOMStatus(memoryStorage, resourceId, threadId) {
|
|
|
210
287
|
return null;
|
|
211
288
|
}
|
|
212
289
|
}
|
|
213
|
-
var GET_MEMORY_STATUS_ROUTE =
|
|
290
|
+
var GET_MEMORY_STATUS_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
214
291
|
method: "GET",
|
|
215
292
|
path: "/memory/status",
|
|
216
293
|
responseType: "json",
|
|
@@ -295,7 +372,7 @@ var GET_MEMORY_STATUS_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
295
372
|
}
|
|
296
373
|
}
|
|
297
374
|
});
|
|
298
|
-
var GET_MEMORY_CONFIG_ROUTE =
|
|
375
|
+
var GET_MEMORY_CONFIG_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
299
376
|
method: "GET",
|
|
300
377
|
path: "/memory/config",
|
|
301
378
|
responseType: "json",
|
|
@@ -341,7 +418,7 @@ var GET_MEMORY_CONFIG_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
341
418
|
}
|
|
342
419
|
}
|
|
343
420
|
});
|
|
344
|
-
var GET_OBSERVATIONAL_MEMORY_ROUTE =
|
|
421
|
+
var GET_OBSERVATIONAL_MEMORY_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
345
422
|
method: "GET",
|
|
346
423
|
path: "/memory/observational-memory",
|
|
347
424
|
responseType: "json",
|
|
@@ -411,7 +488,7 @@ var GET_OBSERVATIONAL_MEMORY_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
411
488
|
}
|
|
412
489
|
}
|
|
413
490
|
});
|
|
414
|
-
var AWAIT_BUFFER_STATUS_ROUTE =
|
|
491
|
+
var AWAIT_BUFFER_STATUS_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
415
492
|
method: "POST",
|
|
416
493
|
path: "/memory/observational-memory/buffer-status",
|
|
417
494
|
responseType: "json",
|
|
@@ -481,7 +558,7 @@ var AWAIT_BUFFER_STATUS_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
481
558
|
}
|
|
482
559
|
}
|
|
483
560
|
});
|
|
484
|
-
var LIST_THREADS_ROUTE =
|
|
561
|
+
var LIST_THREADS_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
485
562
|
method: "GET",
|
|
486
563
|
path: "/memory/threads",
|
|
487
564
|
responseType: "json",
|
|
@@ -493,12 +570,34 @@ var LIST_THREADS_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
493
570
|
requiresAuth: true,
|
|
494
571
|
handler: async ({ mastra, agentId, resourceId, metadata, requestContext, page, perPage, orderBy }) => {
|
|
495
572
|
try {
|
|
496
|
-
const effectiveResourceId =
|
|
573
|
+
const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
|
|
497
574
|
const agent = await getAgentFromContext({ mastra, agentId, requestContext });
|
|
498
575
|
const isGateway = agent ? await chunkLFZO2LHV_cjs.isGatewayAgentAsync(agent) : false;
|
|
499
576
|
if (agent && isGateway) {
|
|
500
577
|
const gwClient = chunkLFZO2LHV_cjs.getGatewayClient();
|
|
501
578
|
if (gwClient) {
|
|
579
|
+
if (shouldFilterThreadsWithFGA(mastra, requestContext)) {
|
|
580
|
+
const initialResult = await gwClient.listThreads({
|
|
581
|
+
resourceId: effectiveResourceId,
|
|
582
|
+
limit: 1,
|
|
583
|
+
offset: 0
|
|
584
|
+
});
|
|
585
|
+
const allThreads = initialResult.total > 0 ? (await gwClient.listThreads({
|
|
586
|
+
resourceId: effectiveResourceId,
|
|
587
|
+
limit: initialResult.total,
|
|
588
|
+
offset: 0
|
|
589
|
+
})).threads.map(chunkLFZO2LHV_cjs.toLocalThread) : [];
|
|
590
|
+
const accessibleThreads = await filterAccessibleThreads({
|
|
591
|
+
mastra,
|
|
592
|
+
requestContext,
|
|
593
|
+
threads: allThreads
|
|
594
|
+
});
|
|
595
|
+
return paginateThreads({
|
|
596
|
+
threads: accessibleThreads,
|
|
597
|
+
page,
|
|
598
|
+
perPage
|
|
599
|
+
});
|
|
600
|
+
}
|
|
502
601
|
const effectivePage = page ?? 0;
|
|
503
602
|
const effectivePerPage = perPage ?? 100;
|
|
504
603
|
const offset = effectivePage * effectivePerPage;
|
|
@@ -525,25 +624,61 @@ var LIST_THREADS_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
525
624
|
}
|
|
526
625
|
const memory = await getMemoryFromContext({ mastra, agentId, requestContext, allowMissingAgent: true });
|
|
527
626
|
if (memory) {
|
|
528
|
-
const result = await memory.listThreads(
|
|
529
|
-
|
|
627
|
+
const result = await memory.listThreads(
|
|
628
|
+
shouldFilterThreadsWithFGA(mastra, requestContext) ? {
|
|
629
|
+
filter,
|
|
630
|
+
perPage: false,
|
|
631
|
+
orderBy
|
|
632
|
+
} : {
|
|
633
|
+
filter,
|
|
634
|
+
page,
|
|
635
|
+
perPage,
|
|
636
|
+
orderBy
|
|
637
|
+
}
|
|
638
|
+
);
|
|
639
|
+
if (!shouldFilterThreadsWithFGA(mastra, requestContext)) {
|
|
640
|
+
return result;
|
|
641
|
+
}
|
|
642
|
+
const accessibleThreads = await filterAccessibleThreads({
|
|
643
|
+
mastra,
|
|
644
|
+
requestContext,
|
|
645
|
+
threads: result.threads
|
|
646
|
+
});
|
|
647
|
+
return paginateThreads({
|
|
648
|
+
threads: accessibleThreads,
|
|
530
649
|
page,
|
|
531
|
-
perPage
|
|
532
|
-
orderBy
|
|
650
|
+
perPage
|
|
533
651
|
});
|
|
534
|
-
return result;
|
|
535
652
|
}
|
|
536
653
|
const storage = getStorageFromContext({ mastra });
|
|
537
654
|
if (storage) {
|
|
538
655
|
const memoryStore = await storage.getStore("memory");
|
|
539
656
|
if (memoryStore) {
|
|
540
|
-
const result = await memoryStore.listThreads(
|
|
541
|
-
|
|
657
|
+
const result = await memoryStore.listThreads(
|
|
658
|
+
shouldFilterThreadsWithFGA(mastra, requestContext) ? {
|
|
659
|
+
filter,
|
|
660
|
+
perPage: false,
|
|
661
|
+
orderBy
|
|
662
|
+
} : {
|
|
663
|
+
filter,
|
|
664
|
+
page,
|
|
665
|
+
perPage,
|
|
666
|
+
orderBy
|
|
667
|
+
}
|
|
668
|
+
);
|
|
669
|
+
if (!shouldFilterThreadsWithFGA(mastra, requestContext)) {
|
|
670
|
+
return result;
|
|
671
|
+
}
|
|
672
|
+
const accessibleThreads = await filterAccessibleThreads({
|
|
673
|
+
mastra,
|
|
674
|
+
requestContext,
|
|
675
|
+
threads: result.threads
|
|
676
|
+
});
|
|
677
|
+
return paginateThreads({
|
|
678
|
+
threads: accessibleThreads,
|
|
542
679
|
page,
|
|
543
|
-
perPage
|
|
544
|
-
orderBy
|
|
680
|
+
perPage
|
|
545
681
|
});
|
|
546
|
-
return result;
|
|
547
682
|
}
|
|
548
683
|
}
|
|
549
684
|
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Memory is not initialized" });
|
|
@@ -552,7 +687,7 @@ var LIST_THREADS_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
552
687
|
}
|
|
553
688
|
}
|
|
554
689
|
});
|
|
555
|
-
var GET_THREAD_BY_ID_ROUTE =
|
|
690
|
+
var GET_THREAD_BY_ID_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
556
691
|
method: "GET",
|
|
557
692
|
path: "/memory/threads/:threadId",
|
|
558
693
|
responseType: "json",
|
|
@@ -565,9 +700,9 @@ var GET_THREAD_BY_ID_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
565
700
|
requiresAuth: true,
|
|
566
701
|
handler: async ({ mastra, agentId, threadId, resourceId, requestContext }) => {
|
|
567
702
|
try {
|
|
568
|
-
const effectiveThreadId =
|
|
569
|
-
const effectiveResourceId =
|
|
570
|
-
|
|
703
|
+
const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
|
|
704
|
+
const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
|
|
705
|
+
chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId });
|
|
571
706
|
const agent = await getAgentFromContext({ mastra, agentId, requestContext });
|
|
572
707
|
const isGateway = agent ? await chunkLFZO2LHV_cjs.isGatewayAgentAsync(agent) : false;
|
|
573
708
|
if (agent && isGateway) {
|
|
@@ -585,7 +720,13 @@ var GET_THREAD_BY_ID_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
585
720
|
};
|
|
586
721
|
}
|
|
587
722
|
const thread = chunkLFZO2LHV_cjs.toLocalThread(result.thread);
|
|
588
|
-
await
|
|
723
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
724
|
+
mastra,
|
|
725
|
+
requestContext,
|
|
726
|
+
threadId: effectiveThreadId,
|
|
727
|
+
thread,
|
|
728
|
+
effectiveResourceId
|
|
729
|
+
});
|
|
589
730
|
return thread;
|
|
590
731
|
}
|
|
591
732
|
}
|
|
@@ -595,7 +736,13 @@ var GET_THREAD_BY_ID_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
595
736
|
if (!thread) {
|
|
596
737
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
|
|
597
738
|
}
|
|
598
|
-
await
|
|
739
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
740
|
+
mastra,
|
|
741
|
+
requestContext,
|
|
742
|
+
threadId: effectiveThreadId,
|
|
743
|
+
thread,
|
|
744
|
+
effectiveResourceId
|
|
745
|
+
});
|
|
599
746
|
return thread;
|
|
600
747
|
}
|
|
601
748
|
const storage = getStorageFromContext({ mastra });
|
|
@@ -606,7 +753,13 @@ var GET_THREAD_BY_ID_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
606
753
|
if (!thread) {
|
|
607
754
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
|
|
608
755
|
}
|
|
609
|
-
await
|
|
756
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
757
|
+
mastra,
|
|
758
|
+
requestContext,
|
|
759
|
+
threadId: effectiveThreadId,
|
|
760
|
+
thread,
|
|
761
|
+
effectiveResourceId
|
|
762
|
+
});
|
|
610
763
|
return thread;
|
|
611
764
|
}
|
|
612
765
|
}
|
|
@@ -616,7 +769,7 @@ var GET_THREAD_BY_ID_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
616
769
|
}
|
|
617
770
|
}
|
|
618
771
|
});
|
|
619
|
-
var LIST_MESSAGES_ROUTE =
|
|
772
|
+
var LIST_MESSAGES_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
620
773
|
method: "GET",
|
|
621
774
|
path: "/memory/threads/:threadId/messages",
|
|
622
775
|
responseType: "json",
|
|
@@ -641,9 +794,9 @@ var LIST_MESSAGES_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
641
794
|
requestContext
|
|
642
795
|
}) => {
|
|
643
796
|
try {
|
|
644
|
-
const effectiveThreadId =
|
|
645
|
-
const effectiveResourceId =
|
|
646
|
-
|
|
797
|
+
const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
|
|
798
|
+
const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
|
|
799
|
+
chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId });
|
|
647
800
|
if (!effectiveThreadId) {
|
|
648
801
|
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "No threadId found" });
|
|
649
802
|
}
|
|
@@ -653,7 +806,13 @@ var LIST_MESSAGES_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
653
806
|
if (gwClient) {
|
|
654
807
|
const threadResult = await gwClient.getThread(effectiveThreadId);
|
|
655
808
|
if (threadResult) {
|
|
656
|
-
await
|
|
809
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
810
|
+
mastra,
|
|
811
|
+
requestContext,
|
|
812
|
+
threadId: effectiveThreadId,
|
|
813
|
+
thread: chunkLFZO2LHV_cjs.toLocalThread(threadResult.thread),
|
|
814
|
+
effectiveResourceId
|
|
815
|
+
});
|
|
657
816
|
}
|
|
658
817
|
const effectivePage = page ?? 0;
|
|
659
818
|
const effectivePerPage = perPage ?? 100;
|
|
@@ -678,7 +837,13 @@ var LIST_MESSAGES_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
678
837
|
if (!thread) {
|
|
679
838
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
|
|
680
839
|
}
|
|
681
|
-
await
|
|
840
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
841
|
+
mastra,
|
|
842
|
+
requestContext,
|
|
843
|
+
threadId: effectiveThreadId,
|
|
844
|
+
thread,
|
|
845
|
+
effectiveResourceId
|
|
846
|
+
});
|
|
682
847
|
const result = await memory.recall({
|
|
683
848
|
threadId: effectiveThreadId,
|
|
684
849
|
resourceId: effectiveResourceId,
|
|
@@ -699,7 +864,13 @@ var LIST_MESSAGES_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
699
864
|
if (!thread) {
|
|
700
865
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
|
|
701
866
|
}
|
|
702
|
-
await
|
|
867
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
868
|
+
mastra,
|
|
869
|
+
requestContext,
|
|
870
|
+
threadId: effectiveThreadId,
|
|
871
|
+
thread,
|
|
872
|
+
effectiveResourceId
|
|
873
|
+
});
|
|
703
874
|
const result = await memoryStore.listMessages({
|
|
704
875
|
threadId: effectiveThreadId,
|
|
705
876
|
resourceId: effectiveResourceId,
|
|
@@ -718,7 +889,7 @@ var LIST_MESSAGES_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
718
889
|
}
|
|
719
890
|
})
|
|
720
891
|
});
|
|
721
|
-
var GET_WORKING_MEMORY_ROUTE =
|
|
892
|
+
var GET_WORKING_MEMORY_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
722
893
|
method: "GET",
|
|
723
894
|
path: "/memory/threads/:threadId/working-memory",
|
|
724
895
|
responseType: "json",
|
|
@@ -731,9 +902,9 @@ var GET_WORKING_MEMORY_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
731
902
|
requiresAuth: true,
|
|
732
903
|
handler: async ({ mastra, agentId, threadId, resourceId, requestContext, memoryConfig }) => {
|
|
733
904
|
try {
|
|
734
|
-
const effectiveThreadId =
|
|
735
|
-
const effectiveResourceId =
|
|
736
|
-
|
|
905
|
+
const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
|
|
906
|
+
const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
|
|
907
|
+
chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId });
|
|
737
908
|
const gwAgent = await getAgentFromContext({ mastra, agentId, requestContext });
|
|
738
909
|
if (gwAgent && await chunkLFZO2LHV_cjs.isGatewayAgentAsync(gwAgent) && chunkLFZO2LHV_cjs.getGatewayClient()) {
|
|
739
910
|
return { workingMemory: null, source: "thread", workingMemoryTemplate: null, threadExists: true };
|
|
@@ -743,8 +914,16 @@ var GET_WORKING_MEMORY_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
743
914
|
return { workingMemory: null, source: "thread", workingMemoryTemplate: null, threadExists: false };
|
|
744
915
|
}
|
|
745
916
|
const thread = await memory.getThreadById({ threadId: effectiveThreadId });
|
|
746
|
-
|
|
747
|
-
|
|
917
|
+
const config = memory.getMergedThreadConfig(memoryConfig || {});
|
|
918
|
+
const source = config.workingMemory?.scope !== "thread" && effectiveResourceId ? "resource" : "thread";
|
|
919
|
+
if (thread || source === "resource") {
|
|
920
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
921
|
+
mastra,
|
|
922
|
+
requestContext,
|
|
923
|
+
threadId: effectiveThreadId,
|
|
924
|
+
thread,
|
|
925
|
+
effectiveResourceId
|
|
926
|
+
});
|
|
748
927
|
}
|
|
749
928
|
const threadExists = !!thread;
|
|
750
929
|
const template = await memory.getWorkingMemoryTemplate({ memoryConfig });
|
|
@@ -754,15 +933,13 @@ var GET_WORKING_MEMORY_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
754
933
|
resourceId: effectiveResourceId,
|
|
755
934
|
memoryConfig
|
|
756
935
|
});
|
|
757
|
-
const config = memory.getMergedThreadConfig(memoryConfig || {});
|
|
758
|
-
const source = config.workingMemory?.scope !== "thread" && effectiveResourceId ? "resource" : "thread";
|
|
759
936
|
return { workingMemory, source, workingMemoryTemplate, threadExists };
|
|
760
937
|
} catch (error) {
|
|
761
938
|
return chunkB34S64RC_cjs.handleError(error, "Error getting working memory");
|
|
762
939
|
}
|
|
763
940
|
}
|
|
764
941
|
});
|
|
765
|
-
var SAVE_MESSAGES_ROUTE =
|
|
942
|
+
var SAVE_MESSAGES_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
766
943
|
method: "POST",
|
|
767
944
|
path: "/memory/save-messages",
|
|
768
945
|
responseType: "json",
|
|
@@ -775,7 +952,7 @@ var SAVE_MESSAGES_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
775
952
|
requiresAuth: true,
|
|
776
953
|
handler: async ({ mastra, agentId, messages, requestContext }) => {
|
|
777
954
|
try {
|
|
778
|
-
const effectiveResourceId =
|
|
955
|
+
const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, void 0);
|
|
779
956
|
const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
|
|
780
957
|
if (!memory) {
|
|
781
958
|
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Memory is not initialized" });
|
|
@@ -786,6 +963,20 @@ var SAVE_MESSAGES_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
786
963
|
if (!Array.isArray(messages)) {
|
|
787
964
|
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Messages should be an array" });
|
|
788
965
|
}
|
|
966
|
+
const resourceIdByThread = /* @__PURE__ */ new Map();
|
|
967
|
+
for (const message of messages) {
|
|
968
|
+
if (!message.threadId || !message.resourceId) {
|
|
969
|
+
continue;
|
|
970
|
+
}
|
|
971
|
+
const existingResourceId = resourceIdByThread.get(message.threadId);
|
|
972
|
+
if (!existingResourceId) {
|
|
973
|
+
resourceIdByThread.set(message.threadId, message.resourceId);
|
|
974
|
+
} else if (existingResourceId !== message.resourceId) {
|
|
975
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, {
|
|
976
|
+
message: "All messages for the same threadId must use the same resourceId."
|
|
977
|
+
});
|
|
978
|
+
}
|
|
979
|
+
}
|
|
789
980
|
const invalidMessages = messages.filter((message) => !message.threadId || !message.resourceId);
|
|
790
981
|
if (invalidMessages.length > 0) {
|
|
791
982
|
throw new chunk64ITUOXI_cjs.HTTPException(400, {
|
|
@@ -802,7 +993,27 @@ var SAVE_MESSAGES_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
802
993
|
const threadIds = [...new Set(messages.map((m) => m.threadId).filter(Boolean))];
|
|
803
994
|
for (const threadId of threadIds) {
|
|
804
995
|
const thread = await memory.getThreadById({ threadId });
|
|
805
|
-
await
|
|
996
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
997
|
+
mastra,
|
|
998
|
+
requestContext,
|
|
999
|
+
threadId,
|
|
1000
|
+
thread,
|
|
1001
|
+
effectiveResourceId,
|
|
1002
|
+
permission: ee.MastraFGAPermissions.MEMORY_WRITE
|
|
1003
|
+
});
|
|
1004
|
+
}
|
|
1005
|
+
} else {
|
|
1006
|
+
const threadIds = [...new Set(messages.map((m) => m.threadId).filter(Boolean))];
|
|
1007
|
+
for (const threadId of threadIds) {
|
|
1008
|
+
const thread = await memory.getThreadById({ threadId });
|
|
1009
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
1010
|
+
mastra,
|
|
1011
|
+
requestContext,
|
|
1012
|
+
threadId,
|
|
1013
|
+
thread,
|
|
1014
|
+
effectiveResourceId: resourceIdByThread.get(threadId),
|
|
1015
|
+
permission: ee.MastraFGAPermissions.MEMORY_WRITE
|
|
1016
|
+
});
|
|
806
1017
|
}
|
|
807
1018
|
}
|
|
808
1019
|
const processedMessages = messages.map((message) => ({
|
|
@@ -817,7 +1028,7 @@ var SAVE_MESSAGES_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
817
1028
|
}
|
|
818
1029
|
}
|
|
819
1030
|
});
|
|
820
|
-
var CREATE_THREAD_ROUTE =
|
|
1031
|
+
var CREATE_THREAD_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
821
1032
|
method: "POST",
|
|
822
1033
|
path: "/memory/threads",
|
|
823
1034
|
responseType: "json",
|
|
@@ -830,14 +1041,22 @@ var CREATE_THREAD_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
830
1041
|
requiresAuth: true,
|
|
831
1042
|
handler: async ({ mastra, agentId, resourceId, title, metadata, threadId, requestContext }) => {
|
|
832
1043
|
try {
|
|
833
|
-
const effectiveResourceId =
|
|
1044
|
+
const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
|
|
1045
|
+
const effectiveThreadId = threadId ?? mastra.generateId();
|
|
1046
|
+
chunkXEERRXWL_cjs.validateBody({ resourceId: effectiveResourceId });
|
|
1047
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
1048
|
+
mastra,
|
|
1049
|
+
requestContext,
|
|
1050
|
+
threadId: effectiveThreadId,
|
|
1051
|
+
effectiveResourceId,
|
|
1052
|
+
permission: ee.MastraFGAPermissions.MEMORY_WRITE
|
|
1053
|
+
});
|
|
834
1054
|
const agent = await getAgentFromContext({ mastra, agentId, requestContext });
|
|
835
1055
|
if (agent && await chunkLFZO2LHV_cjs.isGatewayAgentAsync(agent)) {
|
|
836
1056
|
const gwClient = chunkLFZO2LHV_cjs.getGatewayClient();
|
|
837
1057
|
if (gwClient) {
|
|
838
|
-
chunk2CFH32YO_cjs.validateBody({ resourceId: effectiveResourceId });
|
|
839
1058
|
const result2 = await gwClient.createThread({
|
|
840
|
-
id:
|
|
1059
|
+
id: effectiveThreadId,
|
|
841
1060
|
resourceId: effectiveResourceId,
|
|
842
1061
|
title,
|
|
843
1062
|
metadata
|
|
@@ -849,12 +1068,11 @@ var CREATE_THREAD_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
849
1068
|
if (!memory) {
|
|
850
1069
|
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Memory is not initialized" });
|
|
851
1070
|
}
|
|
852
|
-
chunk2CFH32YO_cjs.validateBody({ resourceId: effectiveResourceId });
|
|
853
1071
|
const result = await memory.createThread({
|
|
854
1072
|
resourceId: effectiveResourceId,
|
|
855
1073
|
title,
|
|
856
1074
|
metadata,
|
|
857
|
-
threadId
|
|
1075
|
+
threadId: effectiveThreadId
|
|
858
1076
|
});
|
|
859
1077
|
return result;
|
|
860
1078
|
} catch (error) {
|
|
@@ -862,7 +1080,7 @@ var CREATE_THREAD_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
862
1080
|
}
|
|
863
1081
|
}
|
|
864
1082
|
});
|
|
865
|
-
var UPDATE_THREAD_ROUTE =
|
|
1083
|
+
var UPDATE_THREAD_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
866
1084
|
method: "PATCH",
|
|
867
1085
|
path: "/memory/threads/:threadId",
|
|
868
1086
|
responseType: "json",
|
|
@@ -876,16 +1094,23 @@ var UPDATE_THREAD_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
876
1094
|
requiresAuth: true,
|
|
877
1095
|
handler: async ({ mastra, agentId, threadId, title, metadata, resourceId, requestContext }) => {
|
|
878
1096
|
try {
|
|
879
|
-
const effectiveThreadId =
|
|
880
|
-
const effectiveResourceId =
|
|
881
|
-
|
|
1097
|
+
const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
|
|
1098
|
+
const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
|
|
1099
|
+
chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId });
|
|
882
1100
|
const agent = await getAgentFromContext({ mastra, agentId, requestContext });
|
|
883
1101
|
if (agent && await chunkLFZO2LHV_cjs.isGatewayAgentAsync(agent)) {
|
|
884
1102
|
const gwClient = chunkLFZO2LHV_cjs.getGatewayClient();
|
|
885
1103
|
if (gwClient) {
|
|
886
1104
|
const existing = await gwClient.getThread(effectiveThreadId);
|
|
887
1105
|
if (existing) {
|
|
888
|
-
await
|
|
1106
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
1107
|
+
mastra,
|
|
1108
|
+
requestContext,
|
|
1109
|
+
threadId: effectiveThreadId,
|
|
1110
|
+
thread: chunkLFZO2LHV_cjs.toLocalThread(existing.thread),
|
|
1111
|
+
effectiveResourceId,
|
|
1112
|
+
permission: ee.MastraFGAPermissions.MEMORY_WRITE
|
|
1113
|
+
});
|
|
889
1114
|
}
|
|
890
1115
|
const result2 = await gwClient.updateThread(effectiveThreadId, { title, metadata });
|
|
891
1116
|
if (!result2) {
|
|
@@ -903,7 +1128,14 @@ var UPDATE_THREAD_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
903
1128
|
if (!thread) {
|
|
904
1129
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
|
|
905
1130
|
}
|
|
906
|
-
await
|
|
1131
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
1132
|
+
mastra,
|
|
1133
|
+
requestContext,
|
|
1134
|
+
threadId: effectiveThreadId,
|
|
1135
|
+
thread,
|
|
1136
|
+
effectiveResourceId,
|
|
1137
|
+
permission: ee.MastraFGAPermissions.MEMORY_WRITE
|
|
1138
|
+
});
|
|
907
1139
|
const updatedThread = {
|
|
908
1140
|
...thread,
|
|
909
1141
|
title: title || thread.title,
|
|
@@ -923,7 +1155,7 @@ var UPDATE_THREAD_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
923
1155
|
}
|
|
924
1156
|
}
|
|
925
1157
|
});
|
|
926
|
-
var DELETE_THREAD_ROUTE =
|
|
1158
|
+
var DELETE_THREAD_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
927
1159
|
method: "DELETE",
|
|
928
1160
|
path: "/memory/threads/:threadId",
|
|
929
1161
|
responseType: "json",
|
|
@@ -936,16 +1168,23 @@ var DELETE_THREAD_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
936
1168
|
requiresAuth: true,
|
|
937
1169
|
handler: async ({ mastra, agentId, threadId, resourceId, requestContext }) => {
|
|
938
1170
|
try {
|
|
939
|
-
const effectiveThreadId =
|
|
940
|
-
const effectiveResourceId =
|
|
941
|
-
|
|
1171
|
+
const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
|
|
1172
|
+
const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
|
|
1173
|
+
chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId });
|
|
942
1174
|
const agent = await getAgentFromContext({ mastra, agentId, requestContext });
|
|
943
1175
|
if (agent && await chunkLFZO2LHV_cjs.isGatewayAgentAsync(agent)) {
|
|
944
1176
|
const gwClient = chunkLFZO2LHV_cjs.getGatewayClient();
|
|
945
1177
|
if (gwClient) {
|
|
946
1178
|
const existing = await gwClient.getThread(effectiveThreadId);
|
|
947
1179
|
if (existing) {
|
|
948
|
-
await
|
|
1180
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
1181
|
+
mastra,
|
|
1182
|
+
requestContext,
|
|
1183
|
+
threadId: effectiveThreadId,
|
|
1184
|
+
thread: chunkLFZO2LHV_cjs.toLocalThread(existing.thread),
|
|
1185
|
+
effectiveResourceId,
|
|
1186
|
+
permission: ee.MastraFGAPermissions.MEMORY_DELETE
|
|
1187
|
+
});
|
|
949
1188
|
}
|
|
950
1189
|
const deleteResult = await gwClient.deleteThread(effectiveThreadId);
|
|
951
1190
|
if (!deleteResult.ok) {
|
|
@@ -962,7 +1201,14 @@ var DELETE_THREAD_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
962
1201
|
if (!thread) {
|
|
963
1202
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
|
|
964
1203
|
}
|
|
965
|
-
await
|
|
1204
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
1205
|
+
mastra,
|
|
1206
|
+
requestContext,
|
|
1207
|
+
threadId: effectiveThreadId,
|
|
1208
|
+
thread,
|
|
1209
|
+
effectiveResourceId,
|
|
1210
|
+
permission: ee.MastraFGAPermissions.MEMORY_DELETE
|
|
1211
|
+
});
|
|
966
1212
|
await memory.deleteThread(effectiveThreadId);
|
|
967
1213
|
return { result: "Thread deleted" };
|
|
968
1214
|
} catch (error) {
|
|
@@ -970,7 +1216,7 @@ var DELETE_THREAD_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
970
1216
|
}
|
|
971
1217
|
}
|
|
972
1218
|
});
|
|
973
|
-
var CLONE_THREAD_ROUTE =
|
|
1219
|
+
var CLONE_THREAD_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
974
1220
|
method: "POST",
|
|
975
1221
|
path: "/memory/threads/:threadId/clone",
|
|
976
1222
|
responseType: "json",
|
|
@@ -984,9 +1230,10 @@ var CLONE_THREAD_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
984
1230
|
requiresAuth: true,
|
|
985
1231
|
handler: async ({ mastra, agentId, threadId, newThreadId, resourceId, title, metadata, options, requestContext }) => {
|
|
986
1232
|
try {
|
|
987
|
-
const effectiveThreadId =
|
|
988
|
-
const effectiveResourceId =
|
|
989
|
-
|
|
1233
|
+
const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
|
|
1234
|
+
const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
|
|
1235
|
+
const effectiveNewThreadId = newThreadId ?? mastra.generateId();
|
|
1236
|
+
chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId });
|
|
990
1237
|
const memory = await getMemoryFromContext({ mastra, agentId, requestContext });
|
|
991
1238
|
if (!memory) {
|
|
992
1239
|
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Memory is not initialized" });
|
|
@@ -995,12 +1242,25 @@ var CLONE_THREAD_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
995
1242
|
if (!sourceThread) {
|
|
996
1243
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Source thread not found" });
|
|
997
1244
|
}
|
|
998
|
-
|
|
1245
|
+
const cloneResourceId = effectiveResourceId ?? sourceThread.resourceId ?? void 0;
|
|
1246
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
1247
|
+
mastra,
|
|
1248
|
+
requestContext,
|
|
1249
|
+
threadId: effectiveThreadId,
|
|
1250
|
+
thread: sourceThread,
|
|
1251
|
+
effectiveResourceId
|
|
1252
|
+
});
|
|
1253
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
1254
|
+
mastra,
|
|
1255
|
+
requestContext,
|
|
1256
|
+
threadId: effectiveNewThreadId,
|
|
1257
|
+
effectiveResourceId: cloneResourceId,
|
|
1258
|
+
permission: ee.MastraFGAPermissions.MEMORY_WRITE
|
|
1259
|
+
});
|
|
999
1260
|
const result = await memory.cloneThread({
|
|
1000
1261
|
sourceThreadId: effectiveThreadId,
|
|
1001
|
-
newThreadId,
|
|
1002
|
-
|
|
1003
|
-
resourceId: effectiveResourceId,
|
|
1262
|
+
newThreadId: effectiveNewThreadId,
|
|
1263
|
+
resourceId: cloneResourceId,
|
|
1004
1264
|
title,
|
|
1005
1265
|
metadata,
|
|
1006
1266
|
options
|
|
@@ -1011,7 +1271,7 @@ var CLONE_THREAD_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1011
1271
|
}
|
|
1012
1272
|
}
|
|
1013
1273
|
});
|
|
1014
|
-
var UPDATE_WORKING_MEMORY_ROUTE =
|
|
1274
|
+
var UPDATE_WORKING_MEMORY_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
1015
1275
|
method: "POST",
|
|
1016
1276
|
path: "/memory/threads/:threadId/working-memory",
|
|
1017
1277
|
responseType: "json",
|
|
@@ -1025,9 +1285,9 @@ var UPDATE_WORKING_MEMORY_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1025
1285
|
requiresAuth: true,
|
|
1026
1286
|
handler: async ({ mastra, agentId, threadId, resourceId, memoryConfig, workingMemory, requestContext }) => {
|
|
1027
1287
|
try {
|
|
1028
|
-
const effectiveThreadId =
|
|
1029
|
-
const effectiveResourceId =
|
|
1030
|
-
|
|
1288
|
+
const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
|
|
1289
|
+
const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
|
|
1290
|
+
chunkXEERRXWL_cjs.validateBody({ threadId: effectiveThreadId, workingMemory });
|
|
1031
1291
|
const gwAgent = await getAgentFromContext({ mastra, agentId, requestContext });
|
|
1032
1292
|
if (gwAgent && await chunkLFZO2LHV_cjs.isGatewayAgentAsync(gwAgent) && chunkLFZO2LHV_cjs.getGatewayClient()) {
|
|
1033
1293
|
return { success: true };
|
|
@@ -1040,7 +1300,14 @@ var UPDATE_WORKING_MEMORY_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1040
1300
|
if (!thread) {
|
|
1041
1301
|
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Thread not found" });
|
|
1042
1302
|
}
|
|
1043
|
-
await
|
|
1303
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
1304
|
+
mastra,
|
|
1305
|
+
requestContext,
|
|
1306
|
+
threadId: effectiveThreadId,
|
|
1307
|
+
thread,
|
|
1308
|
+
effectiveResourceId,
|
|
1309
|
+
permission: ee.MastraFGAPermissions.MEMORY_WRITE
|
|
1310
|
+
});
|
|
1044
1311
|
await memory.updateWorkingMemory({
|
|
1045
1312
|
threadId: effectiveThreadId,
|
|
1046
1313
|
resourceId: effectiveResourceId,
|
|
@@ -1053,7 +1320,7 @@ var UPDATE_WORKING_MEMORY_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1053
1320
|
}
|
|
1054
1321
|
}
|
|
1055
1322
|
});
|
|
1056
|
-
var DELETE_MESSAGES_ROUTE =
|
|
1323
|
+
var DELETE_MESSAGES_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
1057
1324
|
method: "POST",
|
|
1058
1325
|
path: "/memory/messages/delete",
|
|
1059
1326
|
responseType: "json",
|
|
@@ -1066,7 +1333,7 @@ var DELETE_MESSAGES_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1066
1333
|
requiresAuth: true,
|
|
1067
1334
|
handler: async ({ mastra, agentId, resourceId, messageIds, requestContext }) => {
|
|
1068
1335
|
try {
|
|
1069
|
-
const effectiveResourceId =
|
|
1336
|
+
const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
|
|
1070
1337
|
if (messageIds === void 0 || messageIds === null) {
|
|
1071
1338
|
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "messageIds is required" });
|
|
1072
1339
|
}
|
|
@@ -1089,16 +1356,28 @@ var DELETE_MESSAGES_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1089
1356
|
if (!memoryStore) {
|
|
1090
1357
|
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Memory is not initialized" });
|
|
1091
1358
|
}
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1359
|
+
await enforceDeleteMessagesThreadAccess({
|
|
1360
|
+
mastra,
|
|
1361
|
+
requestContext,
|
|
1362
|
+
memoryStore,
|
|
1363
|
+
messageIds: stringIds,
|
|
1364
|
+
effectiveResourceId
|
|
1365
|
+
});
|
|
1366
|
+
} else if (stringIds.length > 0) {
|
|
1367
|
+
const storage = memory?.storage || getStorageFromContext({ mastra });
|
|
1368
|
+
if (!storage) {
|
|
1369
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Memory is not initialized" });
|
|
1370
|
+
}
|
|
1371
|
+
const memoryStore = await storage.getStore("memory");
|
|
1372
|
+
if (!memoryStore) {
|
|
1373
|
+
throw new chunk64ITUOXI_cjs.HTTPException(400, { message: "Memory is not initialized" });
|
|
1101
1374
|
}
|
|
1375
|
+
await enforceDeleteMessagesThreadAccess({
|
|
1376
|
+
mastra,
|
|
1377
|
+
requestContext,
|
|
1378
|
+
memoryStore,
|
|
1379
|
+
messageIds: stringIds
|
|
1380
|
+
});
|
|
1102
1381
|
}
|
|
1103
1382
|
if (memory) {
|
|
1104
1383
|
await memory.deleteMessages(normalizedIds);
|
|
@@ -1122,7 +1401,7 @@ var DELETE_MESSAGES_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1122
1401
|
}
|
|
1123
1402
|
}
|
|
1124
1403
|
});
|
|
1125
|
-
var SEARCH_MEMORY_ROUTE =
|
|
1404
|
+
var SEARCH_MEMORY_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
1126
1405
|
method: "GET",
|
|
1127
1406
|
path: "/memory/search",
|
|
1128
1407
|
responseType: "json",
|
|
@@ -1134,9 +1413,9 @@ var SEARCH_MEMORY_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1134
1413
|
requiresAuth: true,
|
|
1135
1414
|
handler: async ({ mastra, agentId, searchQuery, resourceId, threadId, limit = 20, requestContext, memoryConfig }) => {
|
|
1136
1415
|
try {
|
|
1137
|
-
const effectiveResourceId =
|
|
1138
|
-
const effectiveThreadId =
|
|
1139
|
-
|
|
1416
|
+
const effectiveResourceId = chunkXEERRXWL_cjs.getEffectiveResourceId(requestContext, resourceId);
|
|
1417
|
+
const effectiveThreadId = chunkXEERRXWL_cjs.getEffectiveThreadId(requestContext, threadId);
|
|
1418
|
+
chunkXEERRXWL_cjs.validateBody({ searchQuery, resourceId: effectiveResourceId });
|
|
1140
1419
|
const agent = await getAgentFromContext({ mastra, agentId, requestContext });
|
|
1141
1420
|
if (agent && await chunkLFZO2LHV_cjs.isGatewayAgentAsync(agent) && chunkLFZO2LHV_cjs.getGatewayClient()) {
|
|
1142
1421
|
return {
|
|
@@ -1155,6 +1434,30 @@ var SEARCH_MEMORY_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1155
1434
|
const hasSemanticRecall = !!config?.semanticRecall;
|
|
1156
1435
|
const resourceScope = typeof config?.semanticRecall === "object" ? config?.semanticRecall?.scope !== "thread" : true;
|
|
1157
1436
|
const searchResults = [];
|
|
1437
|
+
let accessibleThreadsForResource;
|
|
1438
|
+
let accessibleThreadIds;
|
|
1439
|
+
if (resourceScope && effectiveResourceId && shouldFilterThreadsWithFGA(mastra, requestContext)) {
|
|
1440
|
+
const { threads } = await memory.listThreads({
|
|
1441
|
+
filter: { resourceId: effectiveResourceId },
|
|
1442
|
+
perPage: false,
|
|
1443
|
+
orderBy: { field: "updatedAt", direction: "DESC" }
|
|
1444
|
+
});
|
|
1445
|
+
accessibleThreadsForResource = await filterAccessibleThreads({
|
|
1446
|
+
mastra,
|
|
1447
|
+
requestContext,
|
|
1448
|
+
threads
|
|
1449
|
+
});
|
|
1450
|
+
accessibleThreadIds = new Set(accessibleThreadsForResource.map((thread) => thread.id));
|
|
1451
|
+
if (accessibleThreadsForResource.length === 0) {
|
|
1452
|
+
return {
|
|
1453
|
+
results: [],
|
|
1454
|
+
count: 0,
|
|
1455
|
+
query: searchQuery,
|
|
1456
|
+
searchScope: resourceScope ? "resource" : "thread",
|
|
1457
|
+
searchType: hasSemanticRecall ? "semantic" : "text"
|
|
1458
|
+
};
|
|
1459
|
+
}
|
|
1460
|
+
}
|
|
1158
1461
|
if (effectiveThreadId && !resourceScope) {
|
|
1159
1462
|
const thread = await memory.getThreadById({ threadId: effectiveThreadId });
|
|
1160
1463
|
if (!thread) {
|
|
@@ -1166,16 +1469,22 @@ var SEARCH_MEMORY_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1166
1469
|
searchType: hasSemanticRecall ? "semantic" : "text"
|
|
1167
1470
|
};
|
|
1168
1471
|
}
|
|
1169
|
-
await
|
|
1472
|
+
await chunkXEERRXWL_cjs.enforceThreadAccess({
|
|
1473
|
+
mastra,
|
|
1474
|
+
requestContext,
|
|
1475
|
+
threadId: effectiveThreadId,
|
|
1476
|
+
thread,
|
|
1477
|
+
effectiveResourceId
|
|
1478
|
+
});
|
|
1170
1479
|
}
|
|
1171
1480
|
let searchThreadId = effectiveThreadId;
|
|
1172
1481
|
if (!searchThreadId) {
|
|
1173
|
-
const
|
|
1482
|
+
const threads = accessibleThreadsForResource ?? (await memory.listThreads({
|
|
1174
1483
|
filter: { resourceId: effectiveResourceId },
|
|
1175
1484
|
page: 0,
|
|
1176
1485
|
perPage: 1,
|
|
1177
1486
|
orderBy: { field: "updatedAt", direction: "DESC" }
|
|
1178
|
-
});
|
|
1487
|
+
})).threads;
|
|
1179
1488
|
if (threads.length === 0) {
|
|
1180
1489
|
return {
|
|
1181
1490
|
results: [],
|
|
@@ -1207,12 +1516,24 @@ var SEARCH_MEMORY_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1207
1516
|
threadConfig: config,
|
|
1208
1517
|
vectorSearchString: threadConfig.semanticRecall && searchQuery ? searchQuery : void 0
|
|
1209
1518
|
});
|
|
1519
|
+
const accessibleMessages = accessibleThreadIds ? result.messages.filter(
|
|
1520
|
+
(message) => accessibleThreadIds.has(message.threadId || searchThreadId)
|
|
1521
|
+
) : result.messages;
|
|
1522
|
+
if (accessibleMessages.length === 0) {
|
|
1523
|
+
return {
|
|
1524
|
+
results: [],
|
|
1525
|
+
count: 0,
|
|
1526
|
+
query: searchQuery,
|
|
1527
|
+
searchScope: resourceScope ? "resource" : "thread",
|
|
1528
|
+
searchType: hasSemanticRecall ? "semantic" : "text"
|
|
1529
|
+
};
|
|
1530
|
+
}
|
|
1210
1531
|
const threadIds = Array.from(
|
|
1211
|
-
new Set(
|
|
1532
|
+
new Set(accessibleMessages.map((m) => m.threadId || searchThreadId).filter(Boolean))
|
|
1212
1533
|
);
|
|
1213
1534
|
const fetched = await Promise.all(threadIds.map((id) => memory.getThreadById({ threadId: id })));
|
|
1214
1535
|
const threadMap = new Map(fetched.filter(Boolean).map((t) => [t.id, t]));
|
|
1215
|
-
for (const msg of
|
|
1536
|
+
for (const msg of accessibleMessages) {
|
|
1216
1537
|
const content = getTextContent(msg);
|
|
1217
1538
|
const msgThreadId = msg.threadId || searchThreadId;
|
|
1218
1539
|
const thread = threadMap.get(msgThreadId);
|
|
@@ -1257,7 +1578,7 @@ var SEARCH_MEMORY_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1257
1578
|
}
|
|
1258
1579
|
}
|
|
1259
1580
|
});
|
|
1260
|
-
var GET_MEMORY_STATUS_NETWORK_ROUTE =
|
|
1581
|
+
var GET_MEMORY_STATUS_NETWORK_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
1261
1582
|
method: "GET",
|
|
1262
1583
|
path: "/memory/network/status",
|
|
1263
1584
|
responseType: "json",
|
|
@@ -1269,7 +1590,7 @@ var GET_MEMORY_STATUS_NETWORK_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1269
1590
|
requiresAuth: true,
|
|
1270
1591
|
handler: GET_MEMORY_STATUS_ROUTE.handler
|
|
1271
1592
|
});
|
|
1272
|
-
var LIST_THREADS_NETWORK_ROUTE =
|
|
1593
|
+
var LIST_THREADS_NETWORK_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
1273
1594
|
method: "GET",
|
|
1274
1595
|
path: "/memory/network/threads",
|
|
1275
1596
|
responseType: "json",
|
|
@@ -1281,7 +1602,7 @@ var LIST_THREADS_NETWORK_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1281
1602
|
requiresAuth: true,
|
|
1282
1603
|
handler: LIST_THREADS_ROUTE.handler
|
|
1283
1604
|
});
|
|
1284
|
-
var GET_THREAD_BY_ID_NETWORK_ROUTE =
|
|
1605
|
+
var GET_THREAD_BY_ID_NETWORK_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
1285
1606
|
method: "GET",
|
|
1286
1607
|
path: "/memory/network/threads/:threadId",
|
|
1287
1608
|
responseType: "json",
|
|
@@ -1294,7 +1615,7 @@ var GET_THREAD_BY_ID_NETWORK_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1294
1615
|
requiresAuth: true,
|
|
1295
1616
|
handler: GET_THREAD_BY_ID_ROUTE.handler
|
|
1296
1617
|
});
|
|
1297
|
-
var LIST_MESSAGES_NETWORK_ROUTE =
|
|
1618
|
+
var LIST_MESSAGES_NETWORK_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
1298
1619
|
method: "GET",
|
|
1299
1620
|
path: "/memory/network/threads/:threadId/messages",
|
|
1300
1621
|
responseType: "json",
|
|
@@ -1307,7 +1628,7 @@ var LIST_MESSAGES_NETWORK_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1307
1628
|
requiresAuth: true,
|
|
1308
1629
|
handler: LIST_MESSAGES_ROUTE.handler
|
|
1309
1630
|
});
|
|
1310
|
-
var SAVE_MESSAGES_NETWORK_ROUTE =
|
|
1631
|
+
var SAVE_MESSAGES_NETWORK_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
1311
1632
|
method: "POST",
|
|
1312
1633
|
path: "/memory/network/save-messages",
|
|
1313
1634
|
responseType: "json",
|
|
@@ -1320,7 +1641,7 @@ var SAVE_MESSAGES_NETWORK_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1320
1641
|
requiresAuth: true,
|
|
1321
1642
|
handler: SAVE_MESSAGES_ROUTE.handler
|
|
1322
1643
|
});
|
|
1323
|
-
var CREATE_THREAD_NETWORK_ROUTE =
|
|
1644
|
+
var CREATE_THREAD_NETWORK_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
1324
1645
|
method: "POST",
|
|
1325
1646
|
path: "/memory/network/threads",
|
|
1326
1647
|
responseType: "json",
|
|
@@ -1333,7 +1654,7 @@ var CREATE_THREAD_NETWORK_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1333
1654
|
requiresAuth: true,
|
|
1334
1655
|
handler: CREATE_THREAD_ROUTE.handler
|
|
1335
1656
|
});
|
|
1336
|
-
var UPDATE_THREAD_NETWORK_ROUTE =
|
|
1657
|
+
var UPDATE_THREAD_NETWORK_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
1337
1658
|
method: "PATCH",
|
|
1338
1659
|
path: "/memory/network/threads/:threadId",
|
|
1339
1660
|
responseType: "json",
|
|
@@ -1347,7 +1668,7 @@ var UPDATE_THREAD_NETWORK_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1347
1668
|
requiresAuth: true,
|
|
1348
1669
|
handler: UPDATE_THREAD_ROUTE.handler
|
|
1349
1670
|
});
|
|
1350
|
-
var DELETE_THREAD_NETWORK_ROUTE =
|
|
1671
|
+
var DELETE_THREAD_NETWORK_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
1351
1672
|
method: "DELETE",
|
|
1352
1673
|
path: "/memory/network/threads/:threadId",
|
|
1353
1674
|
responseType: "json",
|
|
@@ -1360,7 +1681,7 @@ var DELETE_THREAD_NETWORK_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
1360
1681
|
requiresAuth: true,
|
|
1361
1682
|
handler: DELETE_THREAD_ROUTE.handler
|
|
1362
1683
|
});
|
|
1363
|
-
var DELETE_MESSAGES_NETWORK_ROUTE =
|
|
1684
|
+
var DELETE_MESSAGES_NETWORK_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
1364
1685
|
method: "POST",
|
|
1365
1686
|
path: "/memory/network/messages/delete",
|
|
1366
1687
|
responseType: "json",
|
|
@@ -1401,5 +1722,5 @@ exports.UPDATE_THREAD_ROUTE = UPDATE_THREAD_ROUTE;
|
|
|
1401
1722
|
exports.UPDATE_WORKING_MEMORY_ROUTE = UPDATE_WORKING_MEMORY_ROUTE;
|
|
1402
1723
|
exports.getTextContent = getTextContent;
|
|
1403
1724
|
exports.memory_exports = memory_exports;
|
|
1404
|
-
//# sourceMappingURL=chunk-
|
|
1405
|
-
//# sourceMappingURL=chunk-
|
|
1725
|
+
//# sourceMappingURL=chunk-T6MMZWHW.cjs.map
|
|
1726
|
+
//# sourceMappingURL=chunk-T6MMZWHW.cjs.map
|