@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
|
@@ -0,0 +1,256 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk7LAFXMXB_cjs = require('./chunk-7LAFXMXB.cjs');
|
|
4
|
+
var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
|
|
5
|
+
var workflows = require('@mastra/core/workflows');
|
|
6
|
+
var zod = require('zod');
|
|
7
|
+
|
|
8
|
+
var scheduleStatusSchema = zod.z.enum(["active", "paused"]);
|
|
9
|
+
var scheduleTargetSchema = zod.z.object({
|
|
10
|
+
type: zod.z.literal("workflow"),
|
|
11
|
+
workflowId: zod.z.string(),
|
|
12
|
+
inputData: zod.z.unknown().optional(),
|
|
13
|
+
initialState: zod.z.unknown().optional(),
|
|
14
|
+
requestContext: zod.z.record(zod.z.string(), zod.z.unknown()).optional()
|
|
15
|
+
});
|
|
16
|
+
var workflowRunStatusSchema = zod.z.enum([
|
|
17
|
+
"running",
|
|
18
|
+
"success",
|
|
19
|
+
"failed",
|
|
20
|
+
"tripwire",
|
|
21
|
+
"suspended",
|
|
22
|
+
"waiting",
|
|
23
|
+
"pending",
|
|
24
|
+
"canceled",
|
|
25
|
+
"bailed",
|
|
26
|
+
"paused"
|
|
27
|
+
]);
|
|
28
|
+
var scheduleRunSummarySchema = zod.z.object({
|
|
29
|
+
status: workflowRunStatusSchema,
|
|
30
|
+
startedAt: zod.z.number().optional(),
|
|
31
|
+
completedAt: zod.z.number().optional(),
|
|
32
|
+
durationMs: zod.z.number().optional(),
|
|
33
|
+
error: zod.z.string().optional()
|
|
34
|
+
});
|
|
35
|
+
var scheduleResponseSchema = zod.z.object({
|
|
36
|
+
id: zod.z.string(),
|
|
37
|
+
target: scheduleTargetSchema,
|
|
38
|
+
cron: zod.z.string(),
|
|
39
|
+
timezone: zod.z.string().optional(),
|
|
40
|
+
status: scheduleStatusSchema,
|
|
41
|
+
nextFireAt: zod.z.number(),
|
|
42
|
+
lastFireAt: zod.z.number().optional(),
|
|
43
|
+
lastRunId: zod.z.string().optional(),
|
|
44
|
+
lastRun: scheduleRunSummarySchema.optional(),
|
|
45
|
+
metadata: zod.z.record(zod.z.string(), zod.z.unknown()).optional(),
|
|
46
|
+
createdAt: zod.z.number(),
|
|
47
|
+
updatedAt: zod.z.number()
|
|
48
|
+
});
|
|
49
|
+
var scheduleTriggerStatusSchema = zod.z.enum(["published", "failed"]);
|
|
50
|
+
var scheduleTriggerResponseSchema = zod.z.object({
|
|
51
|
+
scheduleId: zod.z.string(),
|
|
52
|
+
runId: zod.z.string(),
|
|
53
|
+
scheduledFireAt: zod.z.number(),
|
|
54
|
+
actualFireAt: zod.z.number(),
|
|
55
|
+
status: scheduleTriggerStatusSchema,
|
|
56
|
+
error: zod.z.string().optional(),
|
|
57
|
+
run: scheduleRunSummarySchema.optional()
|
|
58
|
+
});
|
|
59
|
+
var listSchedulesQuerySchema = zod.z.object({
|
|
60
|
+
workflowId: zod.z.string().optional(),
|
|
61
|
+
status: scheduleStatusSchema.optional()
|
|
62
|
+
});
|
|
63
|
+
var listSchedulesResponseSchema = zod.z.object({
|
|
64
|
+
schedules: zod.z.array(scheduleResponseSchema)
|
|
65
|
+
});
|
|
66
|
+
var scheduleIdPathParams = zod.z.object({
|
|
67
|
+
scheduleId: zod.z.string()
|
|
68
|
+
});
|
|
69
|
+
var listScheduleTriggersQuerySchema = zod.z.object({
|
|
70
|
+
limit: zod.z.coerce.number().int().positive().optional(),
|
|
71
|
+
fromActualFireAt: zod.z.coerce.number().int().nonnegative().optional(),
|
|
72
|
+
toActualFireAt: zod.z.coerce.number().int().nonnegative().optional()
|
|
73
|
+
});
|
|
74
|
+
var listScheduleTriggersResponseSchema = zod.z.object({
|
|
75
|
+
triggers: zod.z.array(scheduleTriggerResponseSchema)
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
// src/server/handlers/schedules.ts
|
|
79
|
+
function snapshotToRunSummary(run) {
|
|
80
|
+
const snapshot = typeof run.snapshot === "string" ? null : run.snapshot;
|
|
81
|
+
if (!snapshot) return void 0;
|
|
82
|
+
const startedAt = run.createdAt instanceof Date ? run.createdAt.getTime() : void 0;
|
|
83
|
+
const isTerminal = snapshot.status === "success" || snapshot.status === "failed" || snapshot.status === "canceled" || snapshot.status === "bailed" || snapshot.status === "tripwire";
|
|
84
|
+
const completedAt = isTerminal ? run.updatedAt instanceof Date ? run.updatedAt.getTime() : void 0 : void 0;
|
|
85
|
+
const durationMs = startedAt !== void 0 && completedAt !== void 0 ? completedAt - startedAt : void 0;
|
|
86
|
+
return {
|
|
87
|
+
status: snapshot.status,
|
|
88
|
+
startedAt,
|
|
89
|
+
completedAt,
|
|
90
|
+
durationMs,
|
|
91
|
+
error: snapshot.error?.message
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
async function fetchRunSummary(mastra, workflowName, runId) {
|
|
95
|
+
try {
|
|
96
|
+
const workflowsStore = await mastra.getStorage()?.getStore("workflows");
|
|
97
|
+
const run = await workflowsStore?.getWorkflowRunById({ runId, workflowName });
|
|
98
|
+
if (!run) return void 0;
|
|
99
|
+
return snapshotToRunSummary(run);
|
|
100
|
+
} catch {
|
|
101
|
+
return void 0;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
async function hydrateScheduleResponse(mastra, schedule) {
|
|
105
|
+
if (!schedule.lastRunId || schedule.target.type !== "workflow" || !schedule.target.workflowId) {
|
|
106
|
+
return schedule;
|
|
107
|
+
}
|
|
108
|
+
const lastRun = await fetchRunSummary(mastra, schedule.target.workflowId, schedule.lastRunId);
|
|
109
|
+
return lastRun ? { ...schedule, lastRun } : schedule;
|
|
110
|
+
}
|
|
111
|
+
var LIST_SCHEDULES_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
112
|
+
method: "GET",
|
|
113
|
+
path: "/schedules",
|
|
114
|
+
responseType: "json",
|
|
115
|
+
queryParamSchema: listSchedulesQuerySchema,
|
|
116
|
+
responseSchema: listSchedulesResponseSchema,
|
|
117
|
+
summary: "List workflow schedules",
|
|
118
|
+
description: "Returns the configured schedules, optionally filtered by workflowId or status.",
|
|
119
|
+
tags: ["Schedules"],
|
|
120
|
+
requiresAuth: true,
|
|
121
|
+
handler: async ({ mastra, workflowId, status }) => {
|
|
122
|
+
const schedulesStore = await mastra.getStorage()?.getStore("schedules");
|
|
123
|
+
if (!schedulesStore) {
|
|
124
|
+
return { schedules: [] };
|
|
125
|
+
}
|
|
126
|
+
const schedules = await schedulesStore.listSchedules({ workflowId, status });
|
|
127
|
+
const hydrated = await Promise.all(
|
|
128
|
+
schedules.map(async (schedule) => {
|
|
129
|
+
if (!schedule.lastRunId || schedule.target.type !== "workflow") {
|
|
130
|
+
return schedule;
|
|
131
|
+
}
|
|
132
|
+
const lastRun = await fetchRunSummary(mastra, schedule.target.workflowId, schedule.lastRunId);
|
|
133
|
+
return lastRun ? { ...schedule, lastRun } : schedule;
|
|
134
|
+
})
|
|
135
|
+
);
|
|
136
|
+
return { schedules: hydrated };
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
var GET_SCHEDULE_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
140
|
+
method: "GET",
|
|
141
|
+
path: "/schedules/:scheduleId",
|
|
142
|
+
responseType: "json",
|
|
143
|
+
pathParamSchema: scheduleIdPathParams,
|
|
144
|
+
responseSchema: scheduleResponseSchema,
|
|
145
|
+
summary: "Get a workflow schedule by ID",
|
|
146
|
+
description: "Returns a single schedule row by its storage id.",
|
|
147
|
+
tags: ["Schedules"],
|
|
148
|
+
requiresAuth: true,
|
|
149
|
+
handler: async ({ mastra, scheduleId }) => {
|
|
150
|
+
const schedulesStore = await mastra.getStorage()?.getStore("schedules");
|
|
151
|
+
if (!schedulesStore) {
|
|
152
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Schedule not found" });
|
|
153
|
+
}
|
|
154
|
+
const schedule = await schedulesStore.getSchedule(scheduleId);
|
|
155
|
+
if (!schedule) {
|
|
156
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Schedule not found" });
|
|
157
|
+
}
|
|
158
|
+
return hydrateScheduleResponse(mastra, schedule);
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
var LIST_SCHEDULE_TRIGGERS_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
162
|
+
method: "GET",
|
|
163
|
+
path: "/schedules/:scheduleId/triggers",
|
|
164
|
+
responseType: "json",
|
|
165
|
+
pathParamSchema: scheduleIdPathParams,
|
|
166
|
+
queryParamSchema: listScheduleTriggersQuerySchema,
|
|
167
|
+
responseSchema: listScheduleTriggersResponseSchema,
|
|
168
|
+
summary: "List trigger history for a schedule",
|
|
169
|
+
description: "Returns the audit trail of trigger attempts for a schedule, ordered by actualFireAt descending.",
|
|
170
|
+
tags: ["Schedules"],
|
|
171
|
+
requiresAuth: true,
|
|
172
|
+
handler: async ({ mastra, scheduleId, limit, fromActualFireAt, toActualFireAt }) => {
|
|
173
|
+
const schedulesStore = await mastra.getStorage()?.getStore("schedules");
|
|
174
|
+
if (!schedulesStore) {
|
|
175
|
+
return { triggers: [] };
|
|
176
|
+
}
|
|
177
|
+
const schedule = await schedulesStore.getSchedule(scheduleId);
|
|
178
|
+
const triggers = await schedulesStore.listTriggers(scheduleId, { limit, fromActualFireAt, toActualFireAt });
|
|
179
|
+
if (!schedule || schedule.target.type !== "workflow") {
|
|
180
|
+
return { triggers };
|
|
181
|
+
}
|
|
182
|
+
const workflowName = schedule.target.workflowId;
|
|
183
|
+
const hydrated = await Promise.all(
|
|
184
|
+
triggers.map(async (trigger) => {
|
|
185
|
+
if (trigger.status !== "published" || !trigger.runId) return trigger;
|
|
186
|
+
const run = await fetchRunSummary(mastra, workflowName, trigger.runId);
|
|
187
|
+
return run ? { ...trigger, run } : trigger;
|
|
188
|
+
})
|
|
189
|
+
);
|
|
190
|
+
return { triggers: hydrated };
|
|
191
|
+
}
|
|
192
|
+
});
|
|
193
|
+
var PAUSE_SCHEDULE_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
194
|
+
method: "POST",
|
|
195
|
+
path: "/schedules/:scheduleId/pause",
|
|
196
|
+
responseType: "json",
|
|
197
|
+
pathParamSchema: scheduleIdPathParams,
|
|
198
|
+
responseSchema: scheduleResponseSchema,
|
|
199
|
+
summary: "Pause a workflow schedule",
|
|
200
|
+
description: "Marks the schedule as paused. The scheduler tick loop will skip paused schedules. Idempotent \u2014 pausing an already-paused schedule returns the current state unchanged. Pause status survives redeploys.",
|
|
201
|
+
tags: ["Schedules"],
|
|
202
|
+
requiresAuth: true,
|
|
203
|
+
handler: async ({ mastra, scheduleId }) => {
|
|
204
|
+
const schedulesStore = await mastra.getStorage()?.getStore("schedules");
|
|
205
|
+
if (!schedulesStore) {
|
|
206
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Schedule not found" });
|
|
207
|
+
}
|
|
208
|
+
const existing = await schedulesStore.getSchedule(scheduleId);
|
|
209
|
+
if (!existing) {
|
|
210
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Schedule not found" });
|
|
211
|
+
}
|
|
212
|
+
if (existing.status === "paused") {
|
|
213
|
+
return hydrateScheduleResponse(mastra, existing);
|
|
214
|
+
}
|
|
215
|
+
const updated = await schedulesStore.updateSchedule(scheduleId, { status: "paused" });
|
|
216
|
+
return hydrateScheduleResponse(mastra, updated);
|
|
217
|
+
}
|
|
218
|
+
});
|
|
219
|
+
var RESUME_SCHEDULE_ROUTE = chunk7LAFXMXB_cjs.createRoute({
|
|
220
|
+
method: "POST",
|
|
221
|
+
path: "/schedules/:scheduleId/resume",
|
|
222
|
+
responseType: "json",
|
|
223
|
+
pathParamSchema: scheduleIdPathParams,
|
|
224
|
+
responseSchema: scheduleResponseSchema,
|
|
225
|
+
summary: "Resume a paused workflow schedule",
|
|
226
|
+
description: 'Marks the schedule as active and recomputes nextFireAt from "now" so a long-paused schedule does not fire a backlog. Idempotent \u2014 resuming an already-active schedule returns the current state unchanged.',
|
|
227
|
+
tags: ["Schedules"],
|
|
228
|
+
requiresAuth: true,
|
|
229
|
+
handler: async ({ mastra, scheduleId }) => {
|
|
230
|
+
const schedulesStore = await mastra.getStorage()?.getStore("schedules");
|
|
231
|
+
if (!schedulesStore) {
|
|
232
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Schedule not found" });
|
|
233
|
+
}
|
|
234
|
+
const existing = await schedulesStore.getSchedule(scheduleId);
|
|
235
|
+
if (!existing) {
|
|
236
|
+
throw new chunk64ITUOXI_cjs.HTTPException(404, { message: "Schedule not found" });
|
|
237
|
+
}
|
|
238
|
+
if (existing.status === "active") {
|
|
239
|
+
return hydrateScheduleResponse(mastra, existing);
|
|
240
|
+
}
|
|
241
|
+
const nextFireAt = workflows.computeNextFireAt(existing.cron, {
|
|
242
|
+
timezone: existing.timezone,
|
|
243
|
+
after: Date.now()
|
|
244
|
+
});
|
|
245
|
+
const updated = await schedulesStore.updateSchedule(scheduleId, { status: "active", nextFireAt });
|
|
246
|
+
return hydrateScheduleResponse(mastra, updated);
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
|
|
250
|
+
exports.GET_SCHEDULE_ROUTE = GET_SCHEDULE_ROUTE;
|
|
251
|
+
exports.LIST_SCHEDULES_ROUTE = LIST_SCHEDULES_ROUTE;
|
|
252
|
+
exports.LIST_SCHEDULE_TRIGGERS_ROUTE = LIST_SCHEDULE_TRIGGERS_ROUTE;
|
|
253
|
+
exports.PAUSE_SCHEDULE_ROUTE = PAUSE_SCHEDULE_ROUTE;
|
|
254
|
+
exports.RESUME_SCHEDULE_ROUTE = RESUME_SCHEDULE_ROUTE;
|
|
255
|
+
//# sourceMappingURL=chunk-ODCWNXTX.cjs.map
|
|
256
|
+
//# sourceMappingURL=chunk-ODCWNXTX.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/schemas/schedules.ts","../src/server/handlers/schedules.ts"],"names":["z","createRoute","HTTPException","computeNextFireAt"],"mappings":"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","file":"chunk-ODCWNXTX.cjs","sourcesContent":["import { z } from 'zod';\n\nexport const scheduleStatusSchema = z.enum(['active', 'paused']);\n\nexport const scheduleTargetSchema = z.object({\n type: z.literal('workflow'),\n workflowId: z.string(),\n inputData: z.unknown().optional(),\n initialState: z.unknown().optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const workflowRunStatusSchema = z.enum([\n 'running',\n 'success',\n 'failed',\n 'tripwire',\n 'suspended',\n 'waiting',\n 'pending',\n 'canceled',\n 'bailed',\n 'paused',\n]);\n\nexport const scheduleRunSummarySchema = z.object({\n status: workflowRunStatusSchema,\n startedAt: z.number().optional(),\n completedAt: z.number().optional(),\n durationMs: z.number().optional(),\n error: z.string().optional(),\n});\n\nexport const scheduleResponseSchema = z.object({\n id: z.string(),\n target: scheduleTargetSchema,\n cron: z.string(),\n timezone: z.string().optional(),\n status: scheduleStatusSchema,\n nextFireAt: z.number(),\n lastFireAt: z.number().optional(),\n lastRunId: z.string().optional(),\n lastRun: scheduleRunSummarySchema.optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n createdAt: z.number(),\n updatedAt: z.number(),\n});\n\nexport const scheduleTriggerStatusSchema = z.enum(['published', 'failed']);\n\nexport const scheduleTriggerResponseSchema = z.object({\n scheduleId: z.string(),\n runId: z.string(),\n scheduledFireAt: z.number(),\n actualFireAt: z.number(),\n status: scheduleTriggerStatusSchema,\n error: z.string().optional(),\n run: scheduleRunSummarySchema.optional(),\n});\n\nexport const listSchedulesQuerySchema = z.object({\n workflowId: z.string().optional(),\n status: scheduleStatusSchema.optional(),\n});\n\nexport const listSchedulesResponseSchema = z.object({\n schedules: z.array(scheduleResponseSchema),\n});\n\nexport const scheduleIdPathParams = z.object({\n scheduleId: z.string(),\n});\n\nexport const listScheduleTriggersQuerySchema = z.object({\n limit: z.coerce.number().int().positive().optional(),\n fromActualFireAt: z.coerce.number().int().nonnegative().optional(),\n toActualFireAt: z.coerce.number().int().nonnegative().optional(),\n});\n\nexport const listScheduleTriggersResponseSchema = z.object({\n triggers: z.array(scheduleTriggerResponseSchema),\n});\n","import type { Mastra } from '@mastra/core';\nimport { computeNextFireAt } from '@mastra/core/workflows';\nimport type { WorkflowRunState } from '@mastra/core/workflows';\nimport { HTTPException } from '../http-exception';\nimport {\n listSchedulesQuerySchema,\n listSchedulesResponseSchema,\n scheduleIdPathParams,\n scheduleResponseSchema,\n listScheduleTriggersQuerySchema,\n listScheduleTriggersResponseSchema,\n} from '../schemas/schedules';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\ntype RunSummary = {\n status: WorkflowRunState['status'];\n startedAt?: number;\n completedAt?: number;\n durationMs?: number;\n error?: string;\n};\n\nfunction snapshotToRunSummary(run: {\n snapshot: WorkflowRunState | string;\n createdAt: Date;\n updatedAt: Date;\n}): RunSummary | undefined {\n const snapshot = typeof run.snapshot === 'string' ? null : run.snapshot;\n if (!snapshot) return undefined;\n const startedAt = run.createdAt instanceof Date ? run.createdAt.getTime() : undefined;\n const isTerminal =\n snapshot.status === 'success' ||\n snapshot.status === 'failed' ||\n snapshot.status === 'canceled' ||\n snapshot.status === 'bailed' ||\n snapshot.status === 'tripwire';\n const completedAt = isTerminal ? (run.updatedAt instanceof Date ? run.updatedAt.getTime() : undefined) : undefined;\n const durationMs = startedAt !== undefined && completedAt !== undefined ? completedAt - startedAt : undefined;\n return {\n status: snapshot.status,\n startedAt,\n completedAt,\n durationMs,\n error: snapshot.error?.message,\n };\n}\n\nasync function fetchRunSummary(mastra: Mastra, workflowName: string, runId: string): Promise<RunSummary | undefined> {\n try {\n const workflowsStore = await mastra.getStorage()?.getStore('workflows');\n const run = await workflowsStore?.getWorkflowRunById({ runId, workflowName });\n if (!run) return undefined;\n return snapshotToRunSummary(run);\n } catch {\n return undefined;\n }\n}\n\nasync function hydrateScheduleResponse<T extends { lastRunId?: string; target: { type: string; workflowId?: string } }>(\n mastra: Mastra,\n schedule: T,\n): Promise<T & { lastRun?: RunSummary }> {\n if (!schedule.lastRunId || schedule.target.type !== 'workflow' || !schedule.target.workflowId) {\n return schedule;\n }\n const lastRun = await fetchRunSummary(mastra, schedule.target.workflowId, schedule.lastRunId);\n return lastRun ? { ...schedule, lastRun } : schedule;\n}\n\nexport const LIST_SCHEDULES_ROUTE = createRoute({\n method: 'GET',\n path: '/schedules',\n responseType: 'json' as const,\n queryParamSchema: listSchedulesQuerySchema,\n responseSchema: listSchedulesResponseSchema,\n summary: 'List workflow schedules',\n description: 'Returns the configured schedules, optionally filtered by workflowId or status.',\n tags: ['Schedules'],\n requiresAuth: true,\n handler: async ({ mastra, workflowId, status }) => {\n const schedulesStore = await mastra.getStorage()?.getStore('schedules');\n if (!schedulesStore) {\n // Schedules domain not configured — there are no schedules to return.\n return { schedules: [] };\n }\n const schedules = await schedulesStore.listSchedules({ workflowId, status });\n const hydrated = await Promise.all(\n schedules.map(async schedule => {\n if (!schedule.lastRunId || schedule.target.type !== 'workflow') {\n return schedule;\n }\n const lastRun = await fetchRunSummary(mastra, schedule.target.workflowId, schedule.lastRunId);\n return lastRun ? { ...schedule, lastRun } : schedule;\n }),\n );\n return { schedules: hydrated };\n },\n});\n\nexport const GET_SCHEDULE_ROUTE = createRoute({\n method: 'GET',\n path: '/schedules/:scheduleId',\n responseType: 'json' as const,\n pathParamSchema: scheduleIdPathParams,\n responseSchema: scheduleResponseSchema,\n summary: 'Get a workflow schedule by ID',\n description: 'Returns a single schedule row by its storage id.',\n tags: ['Schedules'],\n requiresAuth: true,\n handler: async ({ mastra, scheduleId }) => {\n const schedulesStore = await mastra.getStorage()?.getStore('schedules');\n if (!schedulesStore) {\n throw new HTTPException(404, { message: 'Schedule not found' });\n }\n const schedule = await schedulesStore.getSchedule(scheduleId);\n if (!schedule) {\n throw new HTTPException(404, { message: 'Schedule not found' });\n }\n return hydrateScheduleResponse(mastra, schedule);\n },\n});\n\nexport const LIST_SCHEDULE_TRIGGERS_ROUTE = createRoute({\n method: 'GET',\n path: '/schedules/:scheduleId/triggers',\n responseType: 'json' as const,\n pathParamSchema: scheduleIdPathParams,\n queryParamSchema: listScheduleTriggersQuerySchema,\n responseSchema: listScheduleTriggersResponseSchema,\n summary: 'List trigger history for a schedule',\n description: 'Returns the audit trail of trigger attempts for a schedule, ordered by actualFireAt descending.',\n tags: ['Schedules'],\n requiresAuth: true,\n handler: async ({ mastra, scheduleId, limit, fromActualFireAt, toActualFireAt }) => {\n const schedulesStore = await mastra.getStorage()?.getStore('schedules');\n if (!schedulesStore) {\n return { triggers: [] };\n }\n const schedule = await schedulesStore.getSchedule(scheduleId);\n const triggers = await schedulesStore.listTriggers(scheduleId, { limit, fromActualFireAt, toActualFireAt });\n if (!schedule || schedule.target.type !== 'workflow') {\n return { triggers };\n }\n const workflowName = schedule.target.workflowId;\n const hydrated = await Promise.all(\n triggers.map(async trigger => {\n if (trigger.status !== 'published' || !trigger.runId) return trigger;\n const run = await fetchRunSummary(mastra, workflowName, trigger.runId);\n return run ? { ...trigger, run } : trigger;\n }),\n );\n return { triggers: hydrated };\n },\n});\n\nexport const PAUSE_SCHEDULE_ROUTE = createRoute({\n method: 'POST',\n path: '/schedules/:scheduleId/pause',\n responseType: 'json' as const,\n pathParamSchema: scheduleIdPathParams,\n responseSchema: scheduleResponseSchema,\n summary: 'Pause a workflow schedule',\n description:\n 'Marks the schedule as paused. The scheduler tick loop will skip paused schedules. Idempotent — pausing an already-paused schedule returns the current state unchanged. Pause status survives redeploys.',\n tags: ['Schedules'],\n requiresAuth: true,\n handler: async ({ mastra, scheduleId }) => {\n const schedulesStore = await mastra.getStorage()?.getStore('schedules');\n if (!schedulesStore) {\n throw new HTTPException(404, { message: 'Schedule not found' });\n }\n const existing = await schedulesStore.getSchedule(scheduleId);\n if (!existing) {\n throw new HTTPException(404, { message: 'Schedule not found' });\n }\n if (existing.status === 'paused') {\n return hydrateScheduleResponse(mastra, existing);\n }\n const updated = await schedulesStore.updateSchedule(scheduleId, { status: 'paused' });\n return hydrateScheduleResponse(mastra, updated);\n },\n});\n\nexport const RESUME_SCHEDULE_ROUTE = createRoute({\n method: 'POST',\n path: '/schedules/:scheduleId/resume',\n responseType: 'json' as const,\n pathParamSchema: scheduleIdPathParams,\n responseSchema: scheduleResponseSchema,\n summary: 'Resume a paused workflow schedule',\n description:\n 'Marks the schedule as active and recomputes nextFireAt from \"now\" so a long-paused schedule does not fire a backlog. Idempotent — resuming an already-active schedule returns the current state unchanged.',\n tags: ['Schedules'],\n requiresAuth: true,\n handler: async ({ mastra, scheduleId }) => {\n const schedulesStore = await mastra.getStorage()?.getStore('schedules');\n if (!schedulesStore) {\n throw new HTTPException(404, { message: 'Schedule not found' });\n }\n const existing = await schedulesStore.getSchedule(scheduleId);\n if (!existing) {\n throw new HTTPException(404, { message: 'Schedule not found' });\n }\n if (existing.status === 'active') {\n return hydrateScheduleResponse(mastra, existing);\n }\n const nextFireAt = computeNextFireAt(existing.cron, {\n timezone: existing.timezone,\n after: Date.now(),\n });\n const updated = await schedulesStore.updateSchedule(scheduleId, { status: 'active', nextFireAt });\n return hydrateScheduleResponse(mastra, updated);\n },\n});\n"]}
|