@mastra/core 1.0.0-beta.11 → 1.0.0-beta.14
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 +343 -0
- package/dist/_types/@internal_ai-sdk-v4/dist/index.d.ts +7549 -0
- package/dist/_types/@internal_ai-sdk-v4/dist/test.d.ts +65 -0
- package/dist/_types/@internal_ai-sdk-v5/dist/index.d.ts +8396 -0
- package/dist/_types/@internal_ai-sdk-v5/dist/test.d.ts +1708 -0
- package/dist/_types/@internal_external-types/dist/index.d.ts +858 -0
- package/dist/agent/agent-legacy.d.ts +1 -1
- package/dist/agent/agent.d.ts +3 -3
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/agent.types.d.ts +11 -8
- package/dist/agent/agent.types.d.ts.map +1 -1
- package/dist/agent/index.cjs +17 -9
- package/dist/agent/index.d.ts +1 -1
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/index.js +2 -2
- package/dist/agent/message-list/index.cjs +3 -3
- package/dist/agent/message-list/index.d.ts +4 -3
- package/dist/agent/message-list/index.d.ts.map +1 -1
- package/dist/agent/message-list/index.js +1 -1
- package/dist/agent/message-list/prompt/attachments-to-parts.d.ts +1 -1
- package/dist/agent/message-list/prompt/invalid-content-error.d.ts +1 -1
- package/dist/agent/message-list/types.d.ts +3 -3
- package/dist/agent/message-list/types.d.ts.map +1 -1
- package/dist/agent/message-list/utils/ai-v4-v5/core-model-message.d.ts +1 -1
- package/dist/agent/message-list/utils/ai-v4-v5/ui-message.d.ts +1 -1
- package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts +2 -2
- package/dist/agent/message-list/utils/ai-v5/gemini-compatibility.d.ts.map +1 -1
- package/dist/agent/message-list/utils/convert-messages.d.ts +2 -2
- package/dist/agent/message-list/utils/convert-messages.d.ts.map +1 -1
- package/dist/agent/trip-wire.d.ts +2 -2
- package/dist/agent/trip-wire.d.ts.map +1 -1
- package/dist/agent/types.d.ts +3 -3
- package/dist/agent/utils.d.ts +7 -4
- package/dist/agent/utils.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/index.d.ts +4 -3
- package/dist/agent/workflows/prepare-stream/index.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts +3 -3
- package/dist/agent/workflows/prepare-stream/map-results-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts +3 -3
- package/dist/agent/workflows/prepare-stream/prepare-memory-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts +3 -3
- package/dist/agent/workflows/prepare-stream/prepare-tools-step.d.ts.map +1 -1
- package/dist/agent/workflows/prepare-stream/stream-step.d.ts +3 -1
- package/dist/agent/workflows/prepare-stream/stream-step.d.ts.map +1 -1
- package/dist/bundler/types.d.ts +15 -1
- package/dist/bundler/types.d.ts.map +1 -1
- package/dist/chunk-2AU5ZHBL.js +79 -0
- package/dist/chunk-2AU5ZHBL.js.map +1 -0
- package/dist/chunk-2SQB3WBT.js +4574 -0
- package/dist/chunk-2SQB3WBT.js.map +1 -0
- package/dist/{chunk-THZTRBFS.js → chunk-373OC54J.js} +8 -8
- package/dist/chunk-373OC54J.js.map +1 -0
- package/dist/{chunk-US2U7ECW.js → chunk-3IP3DZ7G.js} +234 -101
- package/dist/chunk-3IP3DZ7G.js.map +1 -0
- package/dist/{chunk-SXNQRJQD.js → chunk-4AT6YQKZ.js} +26 -20
- package/dist/chunk-4AT6YQKZ.js.map +1 -0
- package/dist/{chunk-C36YRTZ6.js → chunk-4CMIJQF6.js} +117 -114
- package/dist/chunk-4CMIJQF6.js.map +1 -0
- package/dist/chunk-53SZJCBX.cjs +4888 -0
- package/dist/chunk-53SZJCBX.cjs.map +1 -0
- package/dist/chunk-55VPMN3N.js +250 -0
- package/dist/chunk-55VPMN3N.js.map +1 -0
- package/dist/{chunk-QM5SRDJX.js → chunk-5PTZG26U.js} +66 -84
- package/dist/chunk-5PTZG26U.js.map +1 -0
- package/dist/{chunk-U3XOLEPX.js → chunk-5UQ5TB6J.js} +6 -32
- package/dist/chunk-5UQ5TB6J.js.map +1 -0
- package/dist/{chunk-O2BJW7YA.js → chunk-67LM2UCT.js} +9 -9
- package/dist/chunk-67LM2UCT.js.map +1 -0
- package/dist/{chunk-YC6PJEPH.cjs → chunk-6CG7IY57.cjs} +266 -133
- package/dist/chunk-6CG7IY57.cjs.map +1 -0
- package/dist/chunk-6PMMP3FR.js +7 -0
- package/dist/chunk-6PMMP3FR.js.map +1 -0
- package/dist/{chunk-DZUJEN5N.cjs → chunk-6SZKM6EC.cjs} +10 -3
- package/dist/{chunk-DZUJEN5N.cjs.map → chunk-6SZKM6EC.cjs.map} +1 -1
- package/dist/{chunk-5Q6WAYEY.cjs → chunk-72E3YF6A.cjs} +35 -49
- package/dist/chunk-72E3YF6A.cjs.map +1 -0
- package/dist/{chunk-5WRI5ZAA.js → chunk-7D4SUZUM.js} +10 -4
- package/dist/{chunk-5WRI5ZAA.js.map → chunk-7D4SUZUM.js.map} +1 -1
- package/dist/{chunk-7P6BNIJH.js → chunk-AYBJ5GAD.js} +281 -35
- package/dist/chunk-AYBJ5GAD.js.map +1 -0
- package/dist/chunk-D22XABFZ.js +79 -0
- package/dist/chunk-D22XABFZ.js.map +1 -0
- package/dist/{chunk-SCUWP4II.cjs → chunk-DBW6S25C.cjs} +47 -74
- package/dist/chunk-DBW6S25C.cjs.map +1 -0
- package/dist/{chunk-MRFUISXC.cjs → chunk-EGHGFLL3.cjs} +2631 -179
- package/dist/chunk-EGHGFLL3.cjs.map +1 -0
- package/dist/{chunk-BJXKH4LG.cjs → chunk-ETWAR2YE.cjs} +43 -78
- package/dist/chunk-ETWAR2YE.cjs.map +1 -0
- package/dist/{chunk-CZEJQSWB.cjs → chunk-F75EQ574.cjs} +65 -6
- package/dist/chunk-F75EQ574.cjs.map +1 -0
- package/dist/{chunk-BUKY6CTR.cjs → chunk-FPDJ4XN6.cjs} +282 -36
- package/dist/chunk-FPDJ4XN6.cjs.map +1 -0
- package/dist/chunk-FST2G2FQ.cjs +84 -0
- package/dist/chunk-FST2G2FQ.cjs.map +1 -0
- package/dist/chunk-FVQTJUBD.cjs +2120 -0
- package/dist/chunk-FVQTJUBD.cjs.map +1 -0
- package/dist/chunk-G6E6V2Z4.js +2070 -0
- package/dist/chunk-G6E6V2Z4.js.map +1 -0
- package/dist/{chunk-JIGDJK2O.js → chunk-GBQXIVL6.js} +4 -39
- package/dist/chunk-GBQXIVL6.js.map +1 -0
- package/dist/{chunk-F2GAJSBI.js → chunk-GELVUDUY.js} +11 -8
- package/dist/chunk-GELVUDUY.js.map +1 -0
- package/dist/chunk-GVAPYQRO.cjs +252 -0
- package/dist/chunk-GVAPYQRO.cjs.map +1 -0
- package/dist/{chunk-TWH4PTDG.cjs → chunk-HWMMIRIF.cjs} +32 -27
- package/dist/chunk-HWMMIRIF.cjs.map +1 -0
- package/dist/{chunk-52RSUALV.cjs → chunk-JAGQZZ43.cjs} +1660 -1196
- package/dist/chunk-JAGQZZ43.cjs.map +1 -0
- package/dist/{chunk-PK2A5WBG.js → chunk-K66U47VL.js} +54 -7
- package/dist/chunk-K66U47VL.js.map +1 -0
- package/dist/chunk-L3NKIMF5.cjs +10 -0
- package/dist/chunk-L3NKIMF5.cjs.map +1 -0
- package/dist/chunk-L4JCRWDY.cjs +252 -0
- package/dist/chunk-L4JCRWDY.cjs.map +1 -0
- package/dist/{chunk-IVV5TOMD.js → chunk-LDXKZYOV.js} +31 -11
- package/dist/chunk-LDXKZYOV.js.map +1 -0
- package/dist/chunk-NESKUIRE.cjs +4586 -0
- package/dist/chunk-NESKUIRE.cjs.map +1 -0
- package/dist/{chunk-SVLMF4UZ.cjs → chunk-NIOEY3N3.cjs} +66 -85
- package/dist/chunk-NIOEY3N3.cjs.map +1 -0
- package/dist/{chunk-PG5H6QIO.cjs → chunk-O3ULBGV6.cjs} +40 -20
- package/dist/chunk-O3ULBGV6.cjs.map +1 -0
- package/dist/{chunk-WTSZBHIZ.cjs → chunk-O5BQBZEF.cjs} +28 -28
- package/dist/chunk-O5BQBZEF.cjs.map +1 -0
- package/dist/{chunk-4JKEUSCC.cjs → chunk-OOUFPYSX.cjs} +25 -22
- package/dist/chunk-OOUFPYSX.cjs.map +1 -0
- package/dist/chunk-QDVYP2T7.js +4883 -0
- package/dist/chunk-QDVYP2T7.js.map +1 -0
- package/dist/{chunk-2ULLRN4Y.js → chunk-QF4MHFSU.js} +1294 -834
- package/dist/chunk-QF4MHFSU.js.map +1 -0
- package/dist/{chunk-Z57R5WS4.js → chunk-SLBWA2F3.js} +4 -4
- package/dist/{chunk-Z57R5WS4.js.map → chunk-SLBWA2F3.js.map} +1 -1
- package/dist/chunk-ST7NBF4H.cjs +84 -0
- package/dist/chunk-ST7NBF4H.cjs.map +1 -0
- package/dist/{chunk-YWMMBIOM.cjs → chunk-TDM43G4I.cjs} +15 -15
- package/dist/{chunk-YWMMBIOM.cjs.map → chunk-TDM43G4I.cjs.map} +1 -1
- package/dist/{chunk-S73Z3PBJ.cjs → chunk-TRUNX3AX.cjs} +138 -134
- package/dist/chunk-TRUNX3AX.cjs.map +1 -0
- package/dist/chunk-VE6HQ7H6.js +250 -0
- package/dist/chunk-VE6HQ7H6.js.map +1 -0
- package/dist/{chunk-OEIVMCWX.js → chunk-VZJOEGQA.js} +2536 -84
- package/dist/chunk-VZJOEGQA.js.map +1 -0
- package/dist/{chunk-JJ5O45LH.js → chunk-YPLZDWG7.js} +32 -27
- package/dist/chunk-YPLZDWG7.js.map +1 -0
- package/dist/{chunk-MGCGWPQJ.cjs → chunk-Z55SJVEC.cjs} +8 -8
- package/dist/chunk-Z55SJVEC.cjs.map +1 -0
- package/dist/error/index.cjs +6 -6
- package/dist/error/index.d.ts +26 -20
- package/dist/error/index.d.ts.map +1 -1
- package/dist/error/index.js +1 -1
- package/dist/error/utils.d.ts +19 -5
- package/dist/error/utils.d.ts.map +1 -1
- package/dist/evals/index.cjs +4 -4
- package/dist/evals/index.js +1 -1
- package/dist/evals/run/index.d.ts +1 -1
- package/dist/evals/run/index.d.ts.map +1 -1
- package/dist/evals/scoreTraces/index.cjs +8 -8
- package/dist/evals/scoreTraces/index.js +2 -2
- package/dist/evals/types.d.ts +1 -1
- package/dist/events/event-emitter.d.ts +6 -1
- package/dist/events/event-emitter.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/integration/index.cjs +2 -2
- package/dist/integration/index.js +1 -1
- package/dist/llm/index.cjs +15 -15
- package/dist/llm/index.d.ts +2 -2
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +5 -5
- package/dist/llm/model/aisdk/generate-to-stream.d.ts +20 -0
- package/dist/llm/model/aisdk/generate-to-stream.d.ts.map +1 -0
- package/dist/llm/model/aisdk/v5/model.d.ts +5 -1
- package/dist/llm/model/aisdk/v5/model.d.ts.map +1 -1
- package/dist/llm/model/aisdk/v6/model.d.ts +51 -0
- package/dist/llm/model/aisdk/v6/model.d.ts.map +1 -0
- package/dist/llm/model/base.types.d.ts +2 -2
- package/dist/llm/model/model.d.ts +1 -1
- package/dist/llm/model/model.d.ts.map +1 -1
- package/dist/llm/model/model.loop.d.ts +3 -3
- package/dist/llm/model/model.loop.d.ts.map +1 -1
- package/dist/llm/model/model.loop.types.d.ts +1 -1
- package/dist/llm/model/model.loop.types.d.ts.map +1 -1
- package/dist/llm/model/provider-types.generated.d.ts +135 -11
- package/dist/llm/model/resolve-model.d.ts +2 -2
- package/dist/llm/model/resolve-model.d.ts.map +1 -1
- package/dist/llm/model/shared.types.d.ts +19 -8
- package/dist/llm/model/shared.types.d.ts.map +1 -1
- package/dist/loop/index.cjs +2 -2
- package/dist/loop/index.js +1 -1
- package/dist/loop/loop.d.ts +2 -2
- package/dist/loop/loop.d.ts.map +1 -1
- package/dist/loop/network/index.d.ts +2 -2
- package/dist/loop/network/index.d.ts.map +1 -1
- package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts +2 -2
- package/dist/loop/test-utils/MastraLanguageModelV2Mock.d.ts.map +1 -1
- package/dist/loop/test-utils/MastraLanguageModelV3Mock.d.ts +37 -0
- package/dist/loop/test-utils/MastraLanguageModelV3Mock.d.ts.map +1 -0
- package/dist/loop/test-utils/fullStream.d.ts +2 -1
- package/dist/loop/test-utils/fullStream.d.ts.map +1 -1
- package/dist/loop/test-utils/options.d.ts.map +1 -1
- package/dist/loop/test-utils/resultObject.d.ts +2 -1
- package/dist/loop/test-utils/resultObject.d.ts.map +1 -1
- package/dist/loop/test-utils/streamObject.d.ts +1 -1
- package/dist/loop/test-utils/streamObject.d.ts.map +1 -1
- package/dist/loop/test-utils/tools.d.ts.map +1 -1
- package/dist/loop/test-utils/utils-v3.d.ts +55 -0
- package/dist/loop/test-utils/utils-v3.d.ts.map +1 -0
- package/dist/loop/types.d.ts +8 -7
- package/dist/loop/types.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/index.d.ts +49 -49
- package/dist/loop/workflows/agentic-execution/index.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts +34 -34
- package/dist/loop/workflows/agentic-execution/llm-execution-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts +17 -17
- package/dist/loop/workflows/agentic-execution/llm-mapping-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts +22 -21
- package/dist/loop/workflows/agentic-execution/tool-call-step.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts +49 -49
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/loop/workflows/run-state.d.ts +2 -2
- package/dist/loop/workflows/run-state.d.ts.map +1 -1
- package/dist/loop/workflows/schema.d.ts +18 -18
- package/dist/loop/workflows/schema.d.ts.map +1 -1
- package/dist/loop/workflows/stream.d.ts +2 -2
- package/dist/loop/workflows/stream.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.js +1 -1
- package/dist/mcp/index.cjs +4 -4
- package/dist/mcp/index.js +1 -1
- package/dist/memory/index.cjs +6 -6
- package/dist/memory/index.js +1 -1
- package/dist/memory/memory.d.ts +1 -1
- package/dist/memory/types.d.ts +3 -3
- package/dist/memory/types.d.ts.map +1 -1
- package/dist/models-dev-E3WWI7VA.js +3 -0
- package/dist/{models-dev-23RN2WHG.js.map → models-dev-E3WWI7VA.js.map} +1 -1
- package/dist/models-dev-PPS7X4JM.cjs +12 -0
- package/dist/{models-dev-EO3SUIY2.cjs.map → models-dev-PPS7X4JM.cjs.map} +1 -1
- package/dist/netlify-TY656UYF.js +3 -0
- package/dist/{netlify-GXJ5D5DD.js.map → netlify-TY656UYF.js.map} +1 -1
- package/dist/netlify-VZFM5UH3.cjs +12 -0
- package/dist/{netlify-KJLY3GFS.cjs.map → netlify-VZFM5UH3.cjs.map} +1 -1
- package/dist/processors/index.cjs +37 -37
- package/dist/processors/index.d.ts +9 -9
- package/dist/processors/index.d.ts.map +1 -1
- package/dist/processors/index.js +1 -1
- package/dist/processors/runner.d.ts.map +1 -1
- package/dist/processors/step-schema.d.ts +1293 -1293
- package/dist/processors/step-schema.d.ts.map +1 -1
- package/dist/provider-registry-NXVD764B.js +3 -0
- package/dist/{provider-registry-F67Y6OF2.js.map → provider-registry-NXVD764B.js.map} +1 -1
- package/dist/provider-registry-ZIWSEUQE.cjs +40 -0
- package/dist/{provider-registry-3TG2KUD2.cjs.map → provider-registry-ZIWSEUQE.cjs.map} +1 -1
- package/dist/provider-registry.json +276 -30
- package/dist/{registry-generator-UMTNPBJX.js → registry-generator-AVQXI3GX.js} +2 -2
- package/dist/{registry-generator-UMTNPBJX.js.map → registry-generator-AVQXI3GX.js.map} +1 -1
- package/dist/{registry-generator-34SC4TAU.cjs → registry-generator-KOFNIIWJ.cjs} +2 -2
- package/dist/{registry-generator-34SC4TAU.cjs.map → registry-generator-KOFNIIWJ.cjs.map} +1 -1
- package/dist/relevance/index.cjs +3 -3
- package/dist/relevance/index.cjs.map +1 -1
- package/dist/relevance/index.js +2 -2
- package/dist/relevance/index.js.map +1 -1
- package/dist/server/index.cjs +5 -5
- package/dist/server/index.js +1 -1
- package/dist/storage/base.d.ts +2 -10
- package/dist/storage/base.d.ts.map +1 -1
- package/dist/storage/domains/workflows/base.d.ts +2 -8
- package/dist/storage/domains/workflows/base.d.ts.map +1 -1
- package/dist/storage/domains/workflows/inmemory.d.ts +2 -8
- package/dist/storage/domains/workflows/inmemory.d.ts.map +1 -1
- package/dist/storage/index.cjs +38 -38
- package/dist/storage/index.js +1 -1
- package/dist/storage/mock.d.ts +2 -8
- package/dist/storage/mock.d.ts.map +1 -1
- package/dist/storage/types.d.ts +9 -1
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/stream/RunOutput.d.ts +1 -1
- package/dist/stream/aisdk/v4/input.d.ts +1 -1
- package/dist/stream/aisdk/v5/compat/content.d.ts +1 -1
- package/dist/stream/aisdk/v5/compat/content.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts +1 -1
- package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat/ui-message.d.ts +1 -1
- package/dist/stream/aisdk/v5/compat/ui-message.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat/validation.d.ts +1 -1
- package/dist/stream/aisdk/v5/compat/validation.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/execute.d.ts +6 -6
- package/dist/stream/aisdk/v5/execute.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/input.d.ts +1 -1
- package/dist/stream/aisdk/v5/input.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/output-helpers.d.ts +12 -27
- package/dist/stream/aisdk/v5/output-helpers.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/output.d.ts +41 -91
- package/dist/stream/aisdk/v5/output.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/transform.d.ts +1 -1
- package/dist/stream/aisdk/v5/transform.d.ts.map +1 -1
- package/dist/stream/base/input.d.ts +1 -1
- package/dist/stream/base/output.d.ts +16 -36
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/base/schema.d.ts +2 -2
- package/dist/stream/base/schema.d.ts.map +1 -1
- package/dist/stream/index.cjs +12 -12
- package/dist/stream/index.js +2 -2
- package/dist/stream/types.d.ts +32 -23
- package/dist/stream/types.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.cjs +14587 -14
- package/dist/test-utils/llm-mock.cjs.map +1 -1
- package/dist/test-utils/llm-mock.d.ts +3 -3
- package/dist/test-utils/llm-mock.d.ts.map +1 -1
- package/dist/test-utils/llm-mock.js +14577 -4
- package/dist/test-utils/llm-mock.js.map +1 -1
- package/dist/token-6GSAFR2W-LTZ7QQUP.js +61 -0
- package/dist/token-6GSAFR2W-LTZ7QQUP.js.map +1 -0
- package/dist/token-6GSAFR2W-SGVIXFCP.cjs +63 -0
- package/dist/token-6GSAFR2W-SGVIXFCP.cjs.map +1 -0
- package/dist/token-6GSAFR2W-SPYPLMBM.js +61 -0
- package/dist/token-6GSAFR2W-SPYPLMBM.js.map +1 -0
- package/dist/token-6GSAFR2W-UEEINYAN.cjs +63 -0
- package/dist/token-6GSAFR2W-UEEINYAN.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-7GMW5FXI.cjs +10 -0
- package/dist/token-util-NEHG7TUY-7GMW5FXI.cjs.map +1 -0
- package/dist/token-util-NEHG7TUY-JRJTGTAB.js +8 -0
- package/dist/token-util-NEHG7TUY-JRJTGTAB.js.map +1 -0
- package/dist/token-util-NEHG7TUY-QTFZ26EN.js +8 -0
- package/dist/token-util-NEHG7TUY-QTFZ26EN.js.map +1 -0
- package/dist/token-util-NEHG7TUY-WZL2DNCG.cjs +10 -0
- package/dist/token-util-NEHG7TUY-WZL2DNCG.cjs.map +1 -0
- package/dist/tools/index.cjs +4 -4
- package/dist/tools/index.js +1 -1
- package/dist/tools/is-vercel-tool.cjs +2 -2
- package/dist/tools/is-vercel-tool.js +1 -1
- package/dist/tools/tool-builder/builder.d.ts +2 -1
- package/dist/tools/tool-builder/builder.d.ts.map +1 -1
- package/dist/tools/tool.d.ts.map +1 -1
- package/dist/tools/types.d.ts +5 -5
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils.cjs +22 -22
- package/dist/utils.d.ts +5 -5
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +1 -1
- package/dist/vector/embed.d.ts +3 -2
- package/dist/vector/embed.d.ts.map +1 -1
- package/dist/vector/index.cjs +5316 -16
- package/dist/vector/index.cjs.map +1 -1
- package/dist/vector/index.js +5282 -4
- package/dist/vector/index.js.map +1 -1
- package/dist/vector/vector.d.ts +15 -2
- package/dist/vector/vector.d.ts.map +1 -1
- package/dist/voice/aisdk/speech.d.ts +1 -1
- package/dist/voice/aisdk/speech.d.ts.map +1 -1
- package/dist/voice/aisdk/transcription.d.ts +1 -1
- package/dist/voice/aisdk/transcription.d.ts.map +1 -1
- package/dist/voice/composite-voice.d.ts +1 -1
- package/dist/voice/composite-voice.d.ts.map +1 -1
- package/dist/voice/index.cjs +6 -6
- package/dist/voice/index.js +1 -1
- package/dist/workflows/constants.cjs +4 -4
- package/dist/workflows/constants.d.ts +1 -1
- package/dist/workflows/constants.d.ts.map +1 -1
- package/dist/workflows/constants.js +1 -1
- package/dist/workflows/default.d.ts +9 -16
- package/dist/workflows/default.d.ts.map +1 -1
- package/dist/workflows/evented/execution-engine.d.ts +3 -2
- package/dist/workflows/evented/execution-engine.d.ts.map +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/evented/step-executor.d.ts +5 -1
- package/dist/workflows/evented/step-executor.d.ts.map +1 -1
- package/dist/workflows/evented/workflow-event-processor/index.d.ts +16 -1
- package/dist/workflows/evented/workflow-event-processor/index.d.ts.map +1 -1
- package/dist/workflows/evented/workflow.d.ts +20 -0
- package/dist/workflows/evented/workflow.d.ts.map +1 -1
- package/dist/workflows/execution-engine.d.ts +25 -2
- package/dist/workflows/execution-engine.d.ts.map +1 -1
- package/dist/workflows/handlers/control-flow.d.ts +6 -5
- package/dist/workflows/handlers/control-flow.d.ts.map +1 -1
- package/dist/workflows/handlers/entry.d.ts +5 -3
- package/dist/workflows/handlers/entry.d.ts.map +1 -1
- package/dist/workflows/handlers/sleep.d.ts +4 -3
- package/dist/workflows/handlers/sleep.d.ts.map +1 -1
- package/dist/workflows/handlers/step.d.ts +5 -3
- package/dist/workflows/handlers/step.d.ts.map +1 -1
- package/dist/workflows/index.cjs +26 -22
- package/dist/workflows/index.js +1 -1
- package/dist/workflows/step.d.ts +5 -4
- package/dist/workflows/step.d.ts.map +1 -1
- package/dist/workflows/types.d.ts +66 -14
- package/dist/workflows/types.d.ts.map +1 -1
- package/dist/workflows/utils.d.ts +11 -0
- package/dist/workflows/utils.d.ts.map +1 -1
- package/dist/workflows/workflow.d.ts +30 -9
- package/dist/workflows/workflow.d.ts.map +1 -1
- package/package.json +13 -14
- package/src/llm/model/provider-types.generated.d.ts +135 -11
- package/dist/agent/__tests__/mock-model.d.ts +0 -8
- package/dist/agent/__tests__/mock-model.d.ts.map +0 -1
- package/dist/agent/agent-types.test-d.d.ts +0 -2
- package/dist/agent/agent-types.test-d.d.ts.map +0 -1
- package/dist/ai-sdk.types.d.ts +0 -4705
- package/dist/chunk-2ULLRN4Y.js.map +0 -1
- package/dist/chunk-3E3ILV6T.cjs +0 -518
- package/dist/chunk-3E3ILV6T.cjs.map +0 -1
- package/dist/chunk-4JKEUSCC.cjs.map +0 -1
- package/dist/chunk-52RSUALV.cjs.map +0 -1
- package/dist/chunk-5PAEYE3Q.js +0 -513
- package/dist/chunk-5PAEYE3Q.js.map +0 -1
- package/dist/chunk-5Q6WAYEY.cjs.map +0 -1
- package/dist/chunk-7P6BNIJH.js.map +0 -1
- package/dist/chunk-ABJOUEVA.cjs +0 -10
- package/dist/chunk-ABJOUEVA.cjs.map +0 -1
- package/dist/chunk-BJXKH4LG.cjs.map +0 -1
- package/dist/chunk-BUKY6CTR.cjs.map +0 -1
- package/dist/chunk-C36YRTZ6.js.map +0 -1
- package/dist/chunk-CZEJQSWB.cjs.map +0 -1
- package/dist/chunk-F2GAJSBI.js.map +0 -1
- package/dist/chunk-IVV5TOMD.js.map +0 -1
- package/dist/chunk-JIGDJK2O.js.map +0 -1
- package/dist/chunk-JJ5O45LH.js.map +0 -1
- package/dist/chunk-MGCGWPQJ.cjs.map +0 -1
- package/dist/chunk-MRFUISXC.cjs.map +0 -1
- package/dist/chunk-NLNKQD2T.js +0 -7
- package/dist/chunk-NLNKQD2T.js.map +0 -1
- package/dist/chunk-O2BJW7YA.js.map +0 -1
- package/dist/chunk-OEIVMCWX.js.map +0 -1
- package/dist/chunk-PG5H6QIO.cjs.map +0 -1
- package/dist/chunk-PK2A5WBG.js.map +0 -1
- package/dist/chunk-QM5SRDJX.js.map +0 -1
- package/dist/chunk-S73Z3PBJ.cjs.map +0 -1
- package/dist/chunk-SCUWP4II.cjs.map +0 -1
- package/dist/chunk-SVLMF4UZ.cjs.map +0 -1
- package/dist/chunk-SXNQRJQD.js.map +0 -1
- package/dist/chunk-THZTRBFS.js.map +0 -1
- package/dist/chunk-TWH4PTDG.cjs.map +0 -1
- package/dist/chunk-U3XOLEPX.js.map +0 -1
- package/dist/chunk-US2U7ECW.js.map +0 -1
- package/dist/chunk-WTSZBHIZ.cjs.map +0 -1
- package/dist/chunk-YC6PJEPH.cjs.map +0 -1
- package/dist/llm/model/is-v2-model.d.ts +0 -3
- package/dist/llm/model/is-v2-model.d.ts.map +0 -1
- package/dist/models-dev-23RN2WHG.js +0 -3
- package/dist/models-dev-EO3SUIY2.cjs +0 -12
- package/dist/netlify-GXJ5D5DD.js +0 -3
- package/dist/netlify-KJLY3GFS.cjs +0 -12
- package/dist/provider-registry-3TG2KUD2.cjs +0 -40
- package/dist/provider-registry-F67Y6OF2.js +0 -3
- package/dist/tools/tool-stream-types.test-d.d.ts +0 -2
- package/dist/tools/tool-stream-types.test-d.d.ts.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { validateStepInput, createDeprecationProxy, getStepResult, validateStepSuspendData, runCountDeprecationMessage, createTimeTravelExecutionParams, validateStepResumeData, Workflow, Run, ExecutionEngine } from './chunk-
|
|
2
|
-
import { STREAM_FORMAT_SYMBOL,
|
|
3
|
-
import { getErrorFromUnknown, MastraError } from './chunk-
|
|
4
|
-
import { Tool } from './chunk-
|
|
1
|
+
import { validateStepInput, createDeprecationProxy, EventEmitterPubSub, getStepResult, validateStepSuspendData, runCountDeprecationMessage, createTimeTravelExecutionParams, validateStepResumeData, Workflow, Run, ExecutionEngine, hydrateSerializedStepErrors } from './chunk-QF4MHFSU.js';
|
|
2
|
+
import { STREAM_FORMAT_SYMBOL, PUBSUB_SYMBOL } from './chunk-6PMMP3FR.js';
|
|
3
|
+
import { getErrorFromUnknown, MastraError } from './chunk-YPLZDWG7.js';
|
|
4
|
+
import { Tool } from './chunk-373OC54J.js';
|
|
5
5
|
import { RequestContext } from './chunk-6TBWJV35.js';
|
|
6
6
|
import { MastraBase } from './chunk-LSHPJWM5.js';
|
|
7
7
|
import { RegisteredLogger } from './chunk-NRUZYMHE.js';
|
|
@@ -20,7 +20,7 @@ var StepExecutor = class extends MastraBase {
|
|
|
20
20
|
}
|
|
21
21
|
async execute(params) {
|
|
22
22
|
const { step, stepResults, runId, requestContext, retryCount = 0 } = params;
|
|
23
|
-
const abortController = new AbortController();
|
|
23
|
+
const abortController = params.abortController ?? new AbortController();
|
|
24
24
|
let suspended;
|
|
25
25
|
let bailed;
|
|
26
26
|
const startedAt = Date.now();
|
|
@@ -84,8 +84,7 @@ var StepExecutor = class extends MastraBase {
|
|
|
84
84
|
abort: () => {
|
|
85
85
|
abortController?.abort();
|
|
86
86
|
},
|
|
87
|
-
[
|
|
88
|
-
// TODO: refactor this to use our PubSub actually
|
|
87
|
+
[PUBSUB_SYMBOL]: this.mastra?.pubsub ?? new EventEmitterPubSub(params.emitter),
|
|
89
88
|
[STREAM_FORMAT_SYMBOL]: void 0,
|
|
90
89
|
// TODO
|
|
91
90
|
engine: {},
|
|
@@ -132,20 +131,20 @@ var StepExecutor = class extends MastraBase {
|
|
|
132
131
|
} catch (error) {
|
|
133
132
|
const endedAt = Date.now();
|
|
134
133
|
const errorInstance = getErrorFromUnknown(error, {
|
|
135
|
-
|
|
134
|
+
serializeStack: false,
|
|
136
135
|
fallbackMessage: "Unknown step execution error"
|
|
137
136
|
});
|
|
138
137
|
return {
|
|
139
138
|
...stepInfo,
|
|
140
139
|
status: "failed",
|
|
141
140
|
endedAt,
|
|
142
|
-
error:
|
|
141
|
+
error: errorInstance
|
|
143
142
|
};
|
|
144
143
|
}
|
|
145
144
|
}
|
|
146
145
|
async evaluateConditions(params) {
|
|
147
146
|
const { step, stepResults, runId, requestContext, retryCount = 0 } = params;
|
|
148
|
-
const abortController = new AbortController();
|
|
147
|
+
const abortController = params.abortController ?? new AbortController();
|
|
149
148
|
const ee = new EventEmitter();
|
|
150
149
|
const results = await Promise.all(
|
|
151
150
|
step.conditions.map((condition) => {
|
|
@@ -213,8 +212,7 @@ var StepExecutor = class extends MastraBase {
|
|
|
213
212
|
abort: () => {
|
|
214
213
|
abortController?.abort();
|
|
215
214
|
},
|
|
216
|
-
[
|
|
217
|
-
// TODO: refactor this to use our PubSub actually
|
|
215
|
+
[PUBSUB_SYMBOL]: this.mastra?.pubsub ?? new EventEmitterPubSub(emitter),
|
|
218
216
|
[STREAM_FORMAT_SYMBOL]: void 0,
|
|
219
217
|
// TODO
|
|
220
218
|
engine: {},
|
|
@@ -233,7 +231,7 @@ var StepExecutor = class extends MastraBase {
|
|
|
233
231
|
}
|
|
234
232
|
async resolveSleep(params) {
|
|
235
233
|
const { step, stepResults, runId, requestContext, retryCount = 0 } = params;
|
|
236
|
-
const abortController = new AbortController();
|
|
234
|
+
const abortController = params.abortController ?? new AbortController();
|
|
237
235
|
const ee = new EventEmitter();
|
|
238
236
|
if (step.duration) {
|
|
239
237
|
return step.duration;
|
|
@@ -269,8 +267,7 @@ var StepExecutor = class extends MastraBase {
|
|
|
269
267
|
},
|
|
270
268
|
// TODO
|
|
271
269
|
writer: void 0,
|
|
272
|
-
[
|
|
273
|
-
// TODO: refactor this to use our PubSub actually
|
|
270
|
+
[PUBSUB_SYMBOL]: this.mastra?.pubsub ?? new EventEmitterPubSub(ee),
|
|
274
271
|
[STREAM_FORMAT_SYMBOL]: void 0,
|
|
275
272
|
// TODO
|
|
276
273
|
engine: {},
|
|
@@ -292,7 +289,7 @@ var StepExecutor = class extends MastraBase {
|
|
|
292
289
|
}
|
|
293
290
|
async resolveSleepUntil(params) {
|
|
294
291
|
const { step, stepResults, runId, requestContext, retryCount = 0 } = params;
|
|
295
|
-
const abortController = new AbortController();
|
|
292
|
+
const abortController = params.abortController ?? new AbortController();
|
|
296
293
|
const ee = new EventEmitter();
|
|
297
294
|
if (step.date) {
|
|
298
295
|
return step.date.getTime() - Date.now();
|
|
@@ -328,8 +325,7 @@ var StepExecutor = class extends MastraBase {
|
|
|
328
325
|
},
|
|
329
326
|
// TODO
|
|
330
327
|
writer: void 0,
|
|
331
|
-
[
|
|
332
|
-
// TODO: refactor this to use our PubSub actually
|
|
328
|
+
[PUBSUB_SYMBOL]: this.mastra?.pubsub ?? new EventEmitterPubSub(ee),
|
|
333
329
|
[STREAM_FORMAT_SYMBOL]: void 0,
|
|
334
330
|
// TODO
|
|
335
331
|
engine: {},
|
|
@@ -925,10 +921,52 @@ async function processWorkflowSleepUntil({
|
|
|
925
921
|
// src/workflows/evented/workflow-event-processor/index.ts
|
|
926
922
|
var WorkflowEventProcessor = class extends EventProcessor {
|
|
927
923
|
stepExecutor;
|
|
924
|
+
// Map of runId -> AbortController for active workflow runs
|
|
925
|
+
abortControllers = /* @__PURE__ */ new Map();
|
|
926
|
+
// Map of child runId -> parent runId for tracking nested workflows
|
|
927
|
+
parentChildRelationships = /* @__PURE__ */ new Map();
|
|
928
928
|
constructor({ mastra }) {
|
|
929
929
|
super({ mastra });
|
|
930
930
|
this.stepExecutor = new StepExecutor({ mastra });
|
|
931
931
|
}
|
|
932
|
+
/**
|
|
933
|
+
* Get or create an AbortController for a workflow run
|
|
934
|
+
*/
|
|
935
|
+
getOrCreateAbortController(runId) {
|
|
936
|
+
let controller = this.abortControllers.get(runId);
|
|
937
|
+
if (!controller) {
|
|
938
|
+
controller = new AbortController();
|
|
939
|
+
this.abortControllers.set(runId, controller);
|
|
940
|
+
}
|
|
941
|
+
return controller;
|
|
942
|
+
}
|
|
943
|
+
/**
|
|
944
|
+
* Cancel a workflow run and all its nested child workflows
|
|
945
|
+
*/
|
|
946
|
+
cancelRunAndChildren(runId) {
|
|
947
|
+
const controller = this.abortControllers.get(runId);
|
|
948
|
+
if (controller) {
|
|
949
|
+
controller.abort();
|
|
950
|
+
}
|
|
951
|
+
for (const [childRunId, parentRunId] of this.parentChildRelationships.entries()) {
|
|
952
|
+
if (parentRunId === runId) {
|
|
953
|
+
this.cancelRunAndChildren(childRunId);
|
|
954
|
+
}
|
|
955
|
+
}
|
|
956
|
+
}
|
|
957
|
+
/**
|
|
958
|
+
* Clean up abort controller and relationships when a workflow completes.
|
|
959
|
+
* Also cleans up any orphaned child entries that reference this run as parent.
|
|
960
|
+
*/
|
|
961
|
+
cleanupRun(runId) {
|
|
962
|
+
this.abortControllers.delete(runId);
|
|
963
|
+
this.parentChildRelationships.delete(runId);
|
|
964
|
+
for (const [childRunId, parentRunId] of this.parentChildRelationships.entries()) {
|
|
965
|
+
if (parentRunId === runId) {
|
|
966
|
+
this.parentChildRelationships.delete(childRunId);
|
|
967
|
+
}
|
|
968
|
+
}
|
|
969
|
+
}
|
|
932
970
|
__registerMastra(mastra) {
|
|
933
971
|
super.__registerMastra(mastra);
|
|
934
972
|
this.stepExecutor.__registerMastra(mastra);
|
|
@@ -951,7 +989,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
951
989
|
executionPath: [],
|
|
952
990
|
resumeSteps,
|
|
953
991
|
stepResults,
|
|
954
|
-
prevResult: { status: "failed", error: e.
|
|
992
|
+
prevResult: { status: "failed", error: getErrorFromUnknown(e).toJSON() },
|
|
955
993
|
requestContext,
|
|
956
994
|
resumeData,
|
|
957
995
|
activeSteps: {},
|
|
@@ -960,26 +998,28 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
960
998
|
});
|
|
961
999
|
}
|
|
962
1000
|
async processWorkflowCancel({ workflowId, runId }) {
|
|
963
|
-
|
|
1001
|
+
this.cancelRunAndChildren(runId);
|
|
1002
|
+
const storage = this.mastra.getStorage();
|
|
1003
|
+
const currentState = await storage?.loadWorkflowSnapshot({
|
|
964
1004
|
workflowName: workflowId,
|
|
965
|
-
runId
|
|
966
|
-
opts: {
|
|
967
|
-
status: "canceled"
|
|
968
|
-
}
|
|
969
|
-
});
|
|
970
|
-
await this.endWorkflow({
|
|
971
|
-
workflow: void 0,
|
|
972
|
-
workflowId,
|
|
973
|
-
runId,
|
|
974
|
-
stepResults: currentState?.context,
|
|
975
|
-
prevResult: { status: "canceled" },
|
|
976
|
-
requestContext: currentState?.requestContext,
|
|
977
|
-
executionPath: [],
|
|
978
|
-
activeSteps: {},
|
|
979
|
-
resumeSteps: [],
|
|
980
|
-
resumeData: void 0,
|
|
981
|
-
parentWorkflow: void 0
|
|
1005
|
+
runId
|
|
982
1006
|
});
|
|
1007
|
+
await this.endWorkflow(
|
|
1008
|
+
{
|
|
1009
|
+
workflow: void 0,
|
|
1010
|
+
workflowId,
|
|
1011
|
+
runId,
|
|
1012
|
+
stepResults: currentState?.context ?? {},
|
|
1013
|
+
prevResult: { status: "canceled" },
|
|
1014
|
+
requestContext: currentState?.requestContext ?? {},
|
|
1015
|
+
executionPath: [],
|
|
1016
|
+
activeSteps: {},
|
|
1017
|
+
resumeSteps: [],
|
|
1018
|
+
resumeData: void 0,
|
|
1019
|
+
parentWorkflow: void 0
|
|
1020
|
+
},
|
|
1021
|
+
"canceled"
|
|
1022
|
+
);
|
|
983
1023
|
}
|
|
984
1024
|
async processWorkflowStart({
|
|
985
1025
|
workflow,
|
|
@@ -994,9 +1034,16 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
994
1034
|
stepResults,
|
|
995
1035
|
requestContext
|
|
996
1036
|
}) {
|
|
1037
|
+
this.getOrCreateAbortController(runId);
|
|
1038
|
+
if (parentWorkflow?.runId) {
|
|
1039
|
+
this.parentChildRelationships.set(runId, parentWorkflow.runId);
|
|
1040
|
+
}
|
|
1041
|
+
const existingRun = await this.mastra.getStorage()?.getWorkflowRunById({ runId, workflowName: workflow.id });
|
|
1042
|
+
const resourceId = existingRun?.resourceId;
|
|
997
1043
|
await this.mastra.getStorage()?.persistWorkflowSnapshot({
|
|
998
1044
|
workflowName: workflow.id,
|
|
999
1045
|
runId,
|
|
1046
|
+
resourceId,
|
|
1000
1047
|
snapshot: {
|
|
1001
1048
|
activePaths: [],
|
|
1002
1049
|
suspendedPaths: {},
|
|
@@ -1033,13 +1080,13 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1033
1080
|
}
|
|
1034
1081
|
});
|
|
1035
1082
|
}
|
|
1036
|
-
async endWorkflow(args) {
|
|
1083
|
+
async endWorkflow(args, status = "success") {
|
|
1037
1084
|
const { workflowId, runId, prevResult } = args;
|
|
1038
1085
|
await this.mastra.getStorage()?.updateWorkflowState({
|
|
1039
1086
|
workflowName: workflowId,
|
|
1040
1087
|
runId,
|
|
1041
1088
|
opts: {
|
|
1042
|
-
status
|
|
1089
|
+
status,
|
|
1043
1090
|
result: prevResult
|
|
1044
1091
|
}
|
|
1045
1092
|
});
|
|
@@ -1061,6 +1108,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1061
1108
|
}
|
|
1062
1109
|
async processWorkflowEnd(args) {
|
|
1063
1110
|
const { resumeSteps, prevResult, resumeData, parentWorkflow, activeSteps, requestContext, runId, timeTravel } = args;
|
|
1111
|
+
this.cleanupRun(runId);
|
|
1064
1112
|
if (parentWorkflow) {
|
|
1065
1113
|
await this.mastra.pubsub.publish("workflows", {
|
|
1066
1114
|
type: "workflow.step.end",
|
|
@@ -1136,6 +1184,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1136
1184
|
requestContext,
|
|
1137
1185
|
timeTravel
|
|
1138
1186
|
} = args;
|
|
1187
|
+
this.cleanupRun(runId);
|
|
1139
1188
|
await this.mastra.getStorage()?.updateWorkflowState({
|
|
1140
1189
|
workflowName: workflowId,
|
|
1141
1190
|
runId,
|
|
@@ -1529,6 +1578,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1529
1578
|
} else if (resumeSteps?.length > 0 && resumeSteps?.[0] === step.step.id) {
|
|
1530
1579
|
resumeDataToUse = resumeData;
|
|
1531
1580
|
}
|
|
1581
|
+
const abortController = this.getOrCreateAbortController(runId);
|
|
1532
1582
|
const stepResult = await this.stepExecutor.execute({
|
|
1533
1583
|
workflowId,
|
|
1534
1584
|
step: step.step,
|
|
@@ -1542,7 +1592,8 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1542
1592
|
resumeData: resumeDataToUse,
|
|
1543
1593
|
retryCount,
|
|
1544
1594
|
foreachIdx: step.type === "foreach" ? executionPath[1] : void 0,
|
|
1545
|
-
validateInputs: workflow.options.validateInputs
|
|
1595
|
+
validateInputs: workflow.options.validateInputs,
|
|
1596
|
+
abortController
|
|
1546
1597
|
});
|
|
1547
1598
|
requestContext = Object.fromEntries(rc.entries());
|
|
1548
1599
|
if (stepResult.status === "bailed") {
|
|
@@ -1922,7 +1973,7 @@ var WorkflowEventProcessor = class extends EventProcessor {
|
|
|
1922
1973
|
workflowId: workflowData.workflowId,
|
|
1923
1974
|
runId: workflowData.runId
|
|
1924
1975
|
});
|
|
1925
|
-
if (currentState?.status === "canceled" && type !== "workflow.end") {
|
|
1976
|
+
if (currentState?.status === "canceled" && type !== "workflow.end" && type !== "workflow.cancel") {
|
|
1926
1977
|
return;
|
|
1927
1978
|
}
|
|
1928
1979
|
if (type.startsWith("workflow.user-event.")) {
|
|
@@ -2079,7 +2130,7 @@ function createStep(params) {
|
|
|
2079
2130
|
outputSchema: z.object({
|
|
2080
2131
|
text: z.string()
|
|
2081
2132
|
}),
|
|
2082
|
-
execute: async ({ inputData, [
|
|
2133
|
+
execute: async ({ inputData, runId, [PUBSUB_SYMBOL]: pubsub, requestContext, abortSignal, abort }) => {
|
|
2083
2134
|
let streamPromise = {};
|
|
2084
2135
|
streamPromise.promise = new Promise((resolve, reject) => {
|
|
2085
2136
|
streamPromise.resolve = resolve;
|
|
@@ -2101,22 +2152,24 @@ function createStep(params) {
|
|
|
2101
2152
|
name: params.name,
|
|
2102
2153
|
args: inputData
|
|
2103
2154
|
};
|
|
2104
|
-
await
|
|
2105
|
-
type: "
|
|
2106
|
-
|
|
2155
|
+
await pubsub.publish(`workflow.events.v2.${runId}`, {
|
|
2156
|
+
type: "watch",
|
|
2157
|
+
runId,
|
|
2158
|
+
data: { type: "tool-call-streaming-start", ...toolData ?? {} }
|
|
2107
2159
|
});
|
|
2108
2160
|
for await (const chunk of fullStream) {
|
|
2109
2161
|
if (chunk.type === "text-delta") {
|
|
2110
|
-
await
|
|
2111
|
-
type: "
|
|
2112
|
-
|
|
2113
|
-
argsTextDelta: chunk.textDelta
|
|
2162
|
+
await pubsub.publish(`workflow.events.v2.${runId}`, {
|
|
2163
|
+
type: "watch",
|
|
2164
|
+
runId,
|
|
2165
|
+
data: { type: "tool-call-delta", ...toolData ?? {}, argsTextDelta: chunk.textDelta }
|
|
2114
2166
|
});
|
|
2115
2167
|
}
|
|
2116
2168
|
}
|
|
2117
|
-
await
|
|
2118
|
-
type: "
|
|
2119
|
-
|
|
2169
|
+
await pubsub.publish(`workflow.events.v2.${runId}`, {
|
|
2170
|
+
type: "watch",
|
|
2171
|
+
runId,
|
|
2172
|
+
data: { type: "tool-call-streaming-finish", ...toolData ?? {} }
|
|
2120
2173
|
});
|
|
2121
2174
|
return {
|
|
2122
2175
|
text: await streamPromise.promise
|
|
@@ -2187,7 +2240,9 @@ function createWorkflow(params) {
|
|
|
2187
2240
|
options: {
|
|
2188
2241
|
validateInputs: params.options?.validateInputs ?? true,
|
|
2189
2242
|
shouldPersistSnapshot: params.options?.shouldPersistSnapshot ?? (() => true),
|
|
2190
|
-
tracingPolicy: params.options?.tracingPolicy
|
|
2243
|
+
tracingPolicy: params.options?.tracingPolicy,
|
|
2244
|
+
onFinish: params.options?.onFinish,
|
|
2245
|
+
onError: params.options?.onError
|
|
2191
2246
|
}
|
|
2192
2247
|
});
|
|
2193
2248
|
return new EventedWorkflow({
|
|
@@ -2209,6 +2264,7 @@ var EventedWorkflow = class extends Workflow {
|
|
|
2209
2264
|
const run = this.runs.get(runIdToUse) ?? new EventedRun({
|
|
2210
2265
|
workflowId: this.id,
|
|
2211
2266
|
runId: runIdToUse,
|
|
2267
|
+
resourceId: options?.resourceId,
|
|
2212
2268
|
executionEngine: this.executionEngine,
|
|
2213
2269
|
executionGraph: this.executionGraph,
|
|
2214
2270
|
serializedStepGraph: this.serializedStepGraph,
|
|
@@ -2224,11 +2280,14 @@ var EventedWorkflow = class extends Workflow {
|
|
|
2224
2280
|
workflowStatus: run.workflowRunStatus,
|
|
2225
2281
|
stepResults: {}
|
|
2226
2282
|
});
|
|
2227
|
-
const workflowSnapshotInStorage = await this.getWorkflowRunExecutionResult(runIdToUse,
|
|
2283
|
+
const workflowSnapshotInStorage = await this.getWorkflowRunExecutionResult(runIdToUse, {
|
|
2284
|
+
withNestedWorkflows: false
|
|
2285
|
+
});
|
|
2228
2286
|
if (!workflowSnapshotInStorage && shouldPersistSnapshot) {
|
|
2229
2287
|
await this.mastra?.getStorage()?.persistWorkflowSnapshot({
|
|
2230
2288
|
workflowName: this.id,
|
|
2231
2289
|
runId: runIdToUse,
|
|
2290
|
+
resourceId: options?.resourceId,
|
|
2232
2291
|
snapshot: {
|
|
2233
2292
|
runId: runIdToUse,
|
|
2234
2293
|
status: "pending",
|
|
@@ -2255,6 +2314,25 @@ var EventedRun = class extends Run {
|
|
|
2255
2314
|
super(params);
|
|
2256
2315
|
this.serializedStepGraph = params.serializedStepGraph;
|
|
2257
2316
|
}
|
|
2317
|
+
/**
|
|
2318
|
+
* Set up abort signal handler to publish workflow.cancel event when abortController.abort() is called.
|
|
2319
|
+
* This ensures consistent cancellation behavior whether abort() is called directly or via cancel().
|
|
2320
|
+
*/
|
|
2321
|
+
setupAbortHandler() {
|
|
2322
|
+
const abortHandler = () => {
|
|
2323
|
+
this.mastra?.pubsub.publish("workflows", {
|
|
2324
|
+
type: "workflow.cancel",
|
|
2325
|
+
runId: this.runId,
|
|
2326
|
+
data: {
|
|
2327
|
+
workflowId: this.workflowId,
|
|
2328
|
+
runId: this.runId
|
|
2329
|
+
}
|
|
2330
|
+
}).catch((err) => {
|
|
2331
|
+
console.error(`Failed to publish workflow.cancel for runId ${this.runId}:`, err);
|
|
2332
|
+
});
|
|
2333
|
+
};
|
|
2334
|
+
this.abortController.signal.addEventListener("abort", abortHandler, { once: true });
|
|
2335
|
+
}
|
|
2258
2336
|
async start({
|
|
2259
2337
|
inputData,
|
|
2260
2338
|
initialState,
|
|
@@ -2272,6 +2350,7 @@ var EventedRun = class extends Run {
|
|
|
2272
2350
|
await this.mastra?.getStorage()?.persistWorkflowSnapshot({
|
|
2273
2351
|
workflowName: this.workflowId,
|
|
2274
2352
|
runId: this.runId,
|
|
2353
|
+
resourceId: this.resourceId,
|
|
2275
2354
|
snapshot: {
|
|
2276
2355
|
runId: this.runId,
|
|
2277
2356
|
serializedStepGraph: this.serializedStepGraph,
|
|
@@ -2289,6 +2368,10 @@ var EventedRun = class extends Run {
|
|
|
2289
2368
|
});
|
|
2290
2369
|
const inputDataToUse = await this._validateInput(inputData);
|
|
2291
2370
|
const initialStateToUse = await this._validateInitialState(initialState ?? {});
|
|
2371
|
+
if (!this.mastra?.pubsub) {
|
|
2372
|
+
throw new Error("Mastra instance with pubsub is required for workflow execution");
|
|
2373
|
+
}
|
|
2374
|
+
this.setupAbortHandler();
|
|
2292
2375
|
const result = await this.executionEngine.execute({
|
|
2293
2376
|
workflowId: this.workflowId,
|
|
2294
2377
|
runId: this.runId,
|
|
@@ -2296,20 +2379,7 @@ var EventedRun = class extends Run {
|
|
|
2296
2379
|
serializedStepGraph: this.serializedStepGraph,
|
|
2297
2380
|
input: inputDataToUse,
|
|
2298
2381
|
initialState: initialStateToUse,
|
|
2299
|
-
|
|
2300
|
-
emit: async (event, data) => {
|
|
2301
|
-
this.emitter.emit(event, data);
|
|
2302
|
-
},
|
|
2303
|
-
on: (event, callback) => {
|
|
2304
|
-
this.emitter.on(event, callback);
|
|
2305
|
-
},
|
|
2306
|
-
off: (event, callback) => {
|
|
2307
|
-
this.emitter.off(event, callback);
|
|
2308
|
-
},
|
|
2309
|
-
once: (event, callback) => {
|
|
2310
|
-
this.emitter.once(event, callback);
|
|
2311
|
-
}
|
|
2312
|
-
},
|
|
2382
|
+
pubsub: this.mastra.pubsub,
|
|
2313
2383
|
retryConfig: this.retryConfig,
|
|
2314
2384
|
requestContext,
|
|
2315
2385
|
abortController: this.abortController
|
|
@@ -2319,6 +2389,62 @@ var EventedRun = class extends Run {
|
|
|
2319
2389
|
}
|
|
2320
2390
|
return result;
|
|
2321
2391
|
}
|
|
2392
|
+
/**
|
|
2393
|
+
* Starts the workflow execution without waiting for completion (fire-and-forget).
|
|
2394
|
+
* Returns immediately with the runId. The workflow executes in the background via pubsub.
|
|
2395
|
+
* Use this when you don't need to wait for the result or want to avoid polling failures.
|
|
2396
|
+
*/
|
|
2397
|
+
async startAsync({
|
|
2398
|
+
inputData,
|
|
2399
|
+
initialState,
|
|
2400
|
+
requestContext
|
|
2401
|
+
}) {
|
|
2402
|
+
if (this.serializedStepGraph.length === 0) {
|
|
2403
|
+
throw new Error(
|
|
2404
|
+
"Execution flow of workflow is not defined. Add steps to the workflow via .then(), .branch(), etc."
|
|
2405
|
+
);
|
|
2406
|
+
}
|
|
2407
|
+
if (!this.executionGraph.steps) {
|
|
2408
|
+
throw new Error("Uncommitted step flow changes detected. Call .commit() to register the steps.");
|
|
2409
|
+
}
|
|
2410
|
+
requestContext = requestContext ?? new RequestContext();
|
|
2411
|
+
await this.mastra?.getStorage()?.persistWorkflowSnapshot({
|
|
2412
|
+
workflowName: this.workflowId,
|
|
2413
|
+
runId: this.runId,
|
|
2414
|
+
resourceId: this.resourceId,
|
|
2415
|
+
snapshot: {
|
|
2416
|
+
runId: this.runId,
|
|
2417
|
+
serializedStepGraph: this.serializedStepGraph,
|
|
2418
|
+
status: "running",
|
|
2419
|
+
value: {},
|
|
2420
|
+
context: {},
|
|
2421
|
+
requestContext: Object.fromEntries(requestContext.entries()),
|
|
2422
|
+
activePaths: [],
|
|
2423
|
+
activeStepsPath: {},
|
|
2424
|
+
suspendedPaths: {},
|
|
2425
|
+
resumeLabels: {},
|
|
2426
|
+
waitingPaths: {},
|
|
2427
|
+
timestamp: Date.now()
|
|
2428
|
+
}
|
|
2429
|
+
});
|
|
2430
|
+
const inputDataToUse = await this._validateInput(inputData);
|
|
2431
|
+
const initialStateToUse = await this._validateInitialState(initialState ?? {});
|
|
2432
|
+
if (!this.mastra?.pubsub) {
|
|
2433
|
+
throw new Error("Mastra instance with pubsub is required for workflow execution");
|
|
2434
|
+
}
|
|
2435
|
+
await this.mastra.pubsub.publish("workflows", {
|
|
2436
|
+
type: "workflow.start",
|
|
2437
|
+
runId: this.runId,
|
|
2438
|
+
data: {
|
|
2439
|
+
workflowId: this.workflowId,
|
|
2440
|
+
runId: this.runId,
|
|
2441
|
+
prevResult: { status: "success", output: inputDataToUse },
|
|
2442
|
+
requestContext: Object.fromEntries(requestContext.entries()),
|
|
2443
|
+
initialState: initialStateToUse
|
|
2444
|
+
}
|
|
2445
|
+
});
|
|
2446
|
+
return { runId: this.runId };
|
|
2447
|
+
}
|
|
2322
2448
|
// TODO: stream
|
|
2323
2449
|
async resume(params) {
|
|
2324
2450
|
let steps = [];
|
|
@@ -2358,6 +2484,10 @@ var EventedRun = class extends Run {
|
|
|
2358
2484
|
}
|
|
2359
2485
|
const suspendedStep = this.workflowSteps[steps?.[0] ?? ""];
|
|
2360
2486
|
const resumeDataToUse = await this._validateResumeData(params.resumeData, suspendedStep);
|
|
2487
|
+
if (!this.mastra?.pubsub) {
|
|
2488
|
+
throw new Error("Mastra instance with pubsub is required for workflow execution");
|
|
2489
|
+
}
|
|
2490
|
+
this.setupAbortHandler();
|
|
2361
2491
|
const executionResultPromise = this.executionEngine.execute({
|
|
2362
2492
|
workflowId: this.workflowId,
|
|
2363
2493
|
runId: this.runId,
|
|
@@ -2370,21 +2500,7 @@ var EventedRun = class extends Run {
|
|
|
2370
2500
|
resumePayload: resumeDataToUse,
|
|
2371
2501
|
resumePath
|
|
2372
2502
|
},
|
|
2373
|
-
|
|
2374
|
-
emit: (event, data) => {
|
|
2375
|
-
this.emitter.emit(event, data);
|
|
2376
|
-
return Promise.resolve();
|
|
2377
|
-
},
|
|
2378
|
-
on: (event, callback) => {
|
|
2379
|
-
this.emitter.on(event, callback);
|
|
2380
|
-
},
|
|
2381
|
-
off: (event, callback) => {
|
|
2382
|
-
this.emitter.off(event, callback);
|
|
2383
|
-
},
|
|
2384
|
-
once: (event, callback) => {
|
|
2385
|
-
this.emitter.once(event, callback);
|
|
2386
|
-
}
|
|
2387
|
-
},
|
|
2503
|
+
pubsub: this.mastra.pubsub,
|
|
2388
2504
|
requestContext,
|
|
2389
2505
|
abortController: this.abortController
|
|
2390
2506
|
}).then((result) => {
|
|
@@ -2428,14 +2544,14 @@ var EventedRun = class extends Run {
|
|
|
2428
2544
|
};
|
|
2429
2545
|
}
|
|
2430
2546
|
async cancel() {
|
|
2431
|
-
await this.mastra?.
|
|
2432
|
-
|
|
2547
|
+
await this.mastra?.getStorage()?.updateWorkflowState({
|
|
2548
|
+
workflowName: this.workflowId,
|
|
2433
2549
|
runId: this.runId,
|
|
2434
|
-
|
|
2435
|
-
|
|
2436
|
-
runId: this.runId
|
|
2550
|
+
opts: {
|
|
2551
|
+
status: "canceled"
|
|
2437
2552
|
}
|
|
2438
2553
|
});
|
|
2554
|
+
this.abortController.abort();
|
|
2439
2555
|
}
|
|
2440
2556
|
};
|
|
2441
2557
|
|
|
@@ -2556,7 +2672,7 @@ var EventedExecutionEngine = class extends ExecutionEngine {
|
|
|
2556
2672
|
}
|
|
2557
2673
|
});
|
|
2558
2674
|
}
|
|
2559
|
-
const resultData = await new Promise((resolve) => {
|
|
2675
|
+
const resultData = await new Promise((resolve, reject) => {
|
|
2560
2676
|
const finishCb = async (event, ack) => {
|
|
2561
2677
|
if (event.runId !== params.runId) {
|
|
2562
2678
|
await ack?.();
|
|
@@ -2565,41 +2681,58 @@ var EventedExecutionEngine = class extends ExecutionEngine {
|
|
|
2565
2681
|
if (["workflow.end", "workflow.fail", "workflow.suspend"].includes(event.type)) {
|
|
2566
2682
|
await ack?.();
|
|
2567
2683
|
await pubsub.unsubscribe("workflows-finish", finishCb);
|
|
2684
|
+
if (event.type === "workflow.fail" && event.data.stepResults) {
|
|
2685
|
+
event.data.stepResults = hydrateSerializedStepErrors(event.data.stepResults);
|
|
2686
|
+
}
|
|
2568
2687
|
resolve(event.data);
|
|
2569
2688
|
return;
|
|
2570
2689
|
}
|
|
2571
2690
|
await ack?.();
|
|
2572
2691
|
};
|
|
2573
|
-
pubsub.subscribe("workflows-finish", finishCb).catch(() => {
|
|
2692
|
+
pubsub.subscribe("workflows-finish", finishCb).catch((err) => {
|
|
2693
|
+
console.error("Failed to subscribe to workflows-finish:", err);
|
|
2694
|
+
reject(err);
|
|
2574
2695
|
});
|
|
2575
2696
|
});
|
|
2697
|
+
let callbackArg;
|
|
2576
2698
|
if (resultData.prevResult.status === "failed") {
|
|
2577
|
-
|
|
2699
|
+
callbackArg = {
|
|
2578
2700
|
status: "failed",
|
|
2579
2701
|
error: resultData.prevResult.error,
|
|
2580
2702
|
steps: resultData.stepResults
|
|
2581
2703
|
};
|
|
2582
2704
|
} else if (resultData.prevResult.status === "suspended") {
|
|
2705
|
+
callbackArg = {
|
|
2706
|
+
status: "suspended",
|
|
2707
|
+
steps: resultData.stepResults
|
|
2708
|
+
};
|
|
2709
|
+
} else {
|
|
2710
|
+
callbackArg = {
|
|
2711
|
+
status: resultData.prevResult.status,
|
|
2712
|
+
result: resultData.prevResult?.output,
|
|
2713
|
+
steps: resultData.stepResults
|
|
2714
|
+
};
|
|
2715
|
+
}
|
|
2716
|
+
await this.invokeLifecycleCallbacks(callbackArg);
|
|
2717
|
+
let result;
|
|
2718
|
+
if (resultData.prevResult.status === "suspended") {
|
|
2583
2719
|
const suspendedSteps = Object.entries(resultData.stepResults).map(([_stepId, stepResult]) => {
|
|
2584
2720
|
if (stepResult.status === "suspended") {
|
|
2585
2721
|
return stepResult.suspendPayload?.__workflow_meta?.path ?? [];
|
|
2586
2722
|
}
|
|
2587
2723
|
return null;
|
|
2588
2724
|
}).filter(Boolean);
|
|
2589
|
-
|
|
2590
|
-
|
|
2591
|
-
steps: resultData.stepResults,
|
|
2725
|
+
result = {
|
|
2726
|
+
...callbackArg,
|
|
2592
2727
|
suspended: suspendedSteps
|
|
2593
2728
|
};
|
|
2729
|
+
} else {
|
|
2730
|
+
result = callbackArg;
|
|
2594
2731
|
}
|
|
2595
|
-
return
|
|
2596
|
-
status: resultData.prevResult.status,
|
|
2597
|
-
result: resultData.prevResult?.output,
|
|
2598
|
-
steps: resultData.stepResults
|
|
2599
|
-
};
|
|
2732
|
+
return result;
|
|
2600
2733
|
}
|
|
2601
2734
|
};
|
|
2602
2735
|
|
|
2603
2736
|
export { EventedExecutionEngine, EventedRun, EventedWorkflow, StepExecutor, WorkflowEventProcessor, cloneStep, cloneWorkflow, createStep, createWorkflow };
|
|
2604
|
-
//# sourceMappingURL=chunk-
|
|
2605
|
-
//# sourceMappingURL=chunk-
|
|
2737
|
+
//# sourceMappingURL=chunk-3IP3DZ7G.js.map
|
|
2738
|
+
//# sourceMappingURL=chunk-3IP3DZ7G.js.map
|