@mastra/core 1.6.0 → 1.7.0
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 +236 -0
- package/dist/agent/agent.d.ts +6 -0
- package/dist/agent/agent.d.ts.map +1 -1
- package/dist/agent/index.cjs +8 -8
- package/dist/agent/index.js +1 -1
- package/dist/{chunk-VJWRJWSC.cjs → chunk-2X66GWF5.cjs} +94 -16
- package/dist/chunk-2X66GWF5.cjs.map +1 -0
- package/dist/{chunk-YM6245EM.js → chunk-6OXW5E2O.js} +3 -3
- package/dist/{chunk-YM6245EM.js.map → chunk-6OXW5E2O.js.map} +1 -1
- package/dist/{chunk-XWZAKKFT.cjs → chunk-6QBN6MZY.cjs} +14 -14
- package/dist/{chunk-XWZAKKFT.cjs.map → chunk-6QBN6MZY.cjs.map} +1 -1
- package/dist/{chunk-AYHSPIT6.cjs → chunk-7UAJ6LMR.cjs} +820 -259
- package/dist/chunk-7UAJ6LMR.cjs.map +1 -0
- package/dist/{chunk-RZNHRIM7.cjs → chunk-A72NTLFT.cjs} +5 -5
- package/dist/{chunk-RZNHRIM7.cjs.map → chunk-A72NTLFT.cjs.map} +1 -1
- package/dist/{chunk-EEU5NHHU.js → chunk-DFCRXDVK.js} +3 -3
- package/dist/{chunk-EEU5NHHU.js.map → chunk-DFCRXDVK.js.map} +1 -1
- package/dist/{chunk-5K45E5VE.js → chunk-GPJGPARM.js} +3 -2
- package/dist/chunk-GPJGPARM.js.map +1 -0
- package/dist/{chunk-LNKS4TJ6.cjs → chunk-HB6T4554.cjs} +8 -7
- package/dist/chunk-HB6T4554.cjs.map +1 -0
- package/dist/{chunk-DGS2KGDI.js → chunk-KUXNBWN7.js} +6 -5
- package/dist/chunk-KUXNBWN7.js.map +1 -0
- package/dist/{chunk-IHDE4CJV.js → chunk-QSHV7GPT.js} +89 -12
- package/dist/chunk-QSHV7GPT.js.map +1 -0
- package/dist/{chunk-3U3XFMGJ.cjs → chunk-QTAS3HND.cjs} +13 -8
- package/dist/chunk-QTAS3HND.cjs.map +1 -0
- package/dist/{chunk-RHKNKJNM.js → chunk-QWTB53GS.js} +4 -4
- package/dist/{chunk-RHKNKJNM.js.map → chunk-QWTB53GS.js.map} +1 -1
- package/dist/{chunk-4WG5K4CK.js → chunk-R4N65TLG.js} +7 -7
- package/dist/{chunk-4WG5K4CK.js.map → chunk-R4N65TLG.js.map} +1 -1
- package/dist/{chunk-5VQPSWPG.cjs → chunk-RABITNTG.cjs} +48 -48
- package/dist/{chunk-5VQPSWPG.cjs.map → chunk-RABITNTG.cjs.map} +1 -1
- package/dist/{chunk-TVPANHLE.cjs → chunk-SBOHDNIZ.cjs} +3 -2
- package/dist/chunk-SBOHDNIZ.cjs.map +1 -0
- package/dist/{chunk-MWGGSA5Q.js → chunk-T6GAM3SQ.js} +10 -5
- package/dist/chunk-T6GAM3SQ.js.map +1 -0
- package/dist/{chunk-TL2TTA4X.cjs → chunk-YQG7NBPR.cjs} +9 -9
- package/dist/{chunk-TL2TTA4X.cjs.map → chunk-YQG7NBPR.cjs.map} +1 -1
- package/dist/{chunk-XB3DA67Q.js → chunk-ZSBM2SVU.js} +818 -259
- package/dist/chunk-ZSBM2SVU.js.map +1 -0
- package/dist/datasets/experiment/scorer.d.ts.map +1 -1
- package/dist/datasets/index.cjs +17 -17
- package/dist/datasets/index.js +2 -2
- package/dist/evals/index.cjs +20 -20
- package/dist/evals/index.js +3 -3
- package/dist/evals/scoreTraces/index.cjs +7 -6
- package/dist/evals/scoreTraces/index.cjs.map +1 -1
- package/dist/evals/scoreTraces/index.js +4 -3
- package/dist/evals/scoreTraces/index.js.map +1 -1
- package/dist/evals/scoreTraces/scoreTracesWorkflow.d.ts.map +1 -1
- package/dist/harness/harness.d.ts +21 -1
- package/dist/harness/harness.d.ts.map +1 -1
- package/dist/harness/index.cjs +422 -5
- package/dist/harness/index.cjs.map +1 -1
- package/dist/harness/index.d.ts +2 -1
- package/dist/harness/index.d.ts.map +1 -1
- package/dist/harness/index.js +418 -3
- package/dist/harness/index.js.map +1 -1
- package/dist/harness/types.d.ts +151 -0
- package/dist/harness/types.d.ts.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.js +1 -1
- package/dist/loop/index.cjs +12 -12
- package/dist/loop/index.js +1 -1
- package/dist/loop/test-utils/tools.d.ts.map +1 -1
- package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
- package/dist/mastra/hooks.d.ts.map +1 -1
- package/dist/mastra/index.cjs +2 -2
- package/dist/mastra/index.js +1 -1
- package/dist/memory/index.cjs +14 -14
- package/dist/memory/index.js +1 -1
- package/dist/processor-provider/index.cjs +10 -10
- package/dist/processor-provider/index.js +1 -1
- package/dist/processors/index.cjs +45 -41
- package/dist/processors/index.js +1 -1
- package/dist/processors/processors/index.d.ts +1 -0
- package/dist/processors/processors/index.d.ts.map +1 -1
- package/dist/processors/processors/workspace-instructions.d.ts +50 -0
- package/dist/processors/processors/workspace-instructions.d.ts.map +1 -0
- package/dist/relevance/index.cjs +3 -3
- package/dist/relevance/index.js +1 -1
- package/dist/storage/constants.cjs +56 -56
- package/dist/storage/constants.d.ts.map +1 -1
- package/dist/storage/constants.js +1 -1
- package/dist/storage/index.cjs +160 -160
- package/dist/storage/index.js +2 -2
- package/dist/storage/types.d.ts +2 -0
- package/dist/storage/types.d.ts.map +1 -1
- package/dist/stream/aisdk/v5/compat/prepare-tools.d.ts.map +1 -1
- package/dist/stream/base/output.d.ts.map +1 -1
- package/dist/stream/index.cjs +8 -8
- package/dist/stream/index.js +1 -1
- package/dist/tool-loop-agent/index.cjs +4 -4
- package/dist/tool-loop-agent/index.js +1 -1
- package/dist/vector/index.cjs +7 -7
- package/dist/vector/index.js +1 -1
- package/dist/workflows/evented/index.cjs +10 -10
- package/dist/workflows/evented/index.js +1 -1
- package/dist/workflows/index.cjs +25 -25
- package/dist/workflows/index.js +1 -1
- package/dist/workspace/constants/index.d.ts +2 -0
- package/dist/workspace/constants/index.d.ts.map +1 -1
- package/dist/workspace/errors.d.ts +1 -1
- package/dist/workspace/errors.d.ts.map +1 -1
- package/dist/workspace/filesystem/composite-filesystem.d.ts +4 -1
- package/dist/workspace/filesystem/composite-filesystem.d.ts.map +1 -1
- package/dist/workspace/filesystem/file-write-lock.d.ts +35 -0
- package/dist/workspace/filesystem/file-write-lock.d.ts.map +1 -0
- package/dist/workspace/filesystem/filesystem.d.ts +5 -1
- package/dist/workspace/filesystem/filesystem.d.ts.map +1 -1
- package/dist/workspace/filesystem/index.d.ts +1 -0
- package/dist/workspace/filesystem/index.d.ts.map +1 -1
- package/dist/workspace/filesystem/local-filesystem.d.ts +17 -1
- package/dist/workspace/filesystem/local-filesystem.d.ts.map +1 -1
- package/dist/workspace/index.cjs +72 -64
- package/dist/workspace/index.d.ts +3 -2
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +1 -1
- package/dist/workspace/lifecycle.d.ts +1 -9
- package/dist/workspace/lifecycle.d.ts.map +1 -1
- package/dist/workspace/sandbox/index.d.ts +2 -0
- package/dist/workspace/sandbox/index.d.ts.map +1 -1
- package/dist/workspace/sandbox/local-process-manager.d.ts +18 -0
- package/dist/workspace/sandbox/local-process-manager.d.ts.map +1 -0
- package/dist/workspace/sandbox/local-sandbox.d.ts +49 -35
- package/dist/workspace/sandbox/local-sandbox.d.ts.map +1 -1
- package/dist/workspace/sandbox/mastra-sandbox.d.ts +45 -11
- package/dist/workspace/sandbox/mastra-sandbox.d.ts.map +1 -1
- package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts +2 -3
- package/dist/workspace/sandbox/native-sandbox/bubblewrap.d.ts.map +1 -1
- package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts +2 -3
- package/dist/workspace/sandbox/native-sandbox/seatbelt.d.ts.map +1 -1
- package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts +4 -5
- package/dist/workspace/sandbox/native-sandbox/wrapper.d.ts.map +1 -1
- package/dist/workspace/sandbox/process-manager/index.d.ts +4 -0
- package/dist/workspace/sandbox/process-manager/index.d.ts.map +1 -0
- package/dist/workspace/sandbox/process-manager/process-handle.d.ts +107 -0
- package/dist/workspace/sandbox/process-manager/process-handle.d.ts.map +1 -0
- package/dist/workspace/sandbox/process-manager/process-manager.d.ts +59 -0
- package/dist/workspace/sandbox/process-manager/process-manager.d.ts.map +1 -0
- package/dist/workspace/sandbox/process-manager/types.d.ts +24 -0
- package/dist/workspace/sandbox/process-manager/types.d.ts.map +1 -0
- package/dist/workspace/sandbox/sandbox.d.ts +38 -2
- package/dist/workspace/sandbox/sandbox.d.ts.map +1 -1
- package/dist/workspace/sandbox/types.d.ts +9 -2
- package/dist/workspace/sandbox/types.d.ts.map +1 -1
- package/dist/workspace/sandbox/utils.d.ts +7 -0
- package/dist/workspace/sandbox/utils.d.ts.map +1 -0
- package/dist/workspace/tools/execute-command.d.ts +53 -2
- package/dist/workspace/tools/execute-command.d.ts.map +1 -1
- package/dist/workspace/tools/get-process-output.d.ts +6 -0
- package/dist/workspace/tools/get-process-output.d.ts.map +1 -0
- package/dist/workspace/tools/index.d.ts +4 -1
- package/dist/workspace/tools/index.d.ts.map +1 -1
- package/dist/workspace/tools/kill-process.d.ts +4 -0
- package/dist/workspace/tools/kill-process.d.ts.map +1 -0
- package/dist/workspace/tools/output-helpers.d.ts +21 -0
- package/dist/workspace/tools/output-helpers.d.ts.map +1 -0
- package/dist/workspace/tools/tools.d.ts.map +1 -1
- package/dist/workspace/types.d.ts +31 -0
- package/dist/workspace/types.d.ts.map +1 -1
- package/dist/workspace/utils.d.ts +11 -0
- package/dist/workspace/utils.d.ts.map +1 -0
- package/dist/workspace/workspace.d.ts +36 -0
- package/dist/workspace/workspace.d.ts.map +1 -1
- package/package.json +7 -7
- package/dist/chunk-3U3XFMGJ.cjs.map +0 -1
- package/dist/chunk-5K45E5VE.js.map +0 -1
- package/dist/chunk-AYHSPIT6.cjs.map +0 -1
- package/dist/chunk-DGS2KGDI.js.map +0 -1
- package/dist/chunk-IHDE4CJV.js.map +0 -1
- package/dist/chunk-LNKS4TJ6.cjs.map +0 -1
- package/dist/chunk-MWGGSA5Q.js.map +0 -1
- package/dist/chunk-TVPANHLE.cjs.map +0 -1
- package/dist/chunk-VJWRJWSC.cjs.map +0 -1
- package/dist/chunk-XB3DA67Q.js.map +0 -1
- package/dist/docs/SKILL.md +0 -301
- package/dist/docs/assets/SOURCE_MAP.json +0 -1413
- package/dist/docs/references/docs-agents-adding-voice.md +0 -353
- package/dist/docs/references/docs-agents-agent-approval.md +0 -377
- package/dist/docs/references/docs-agents-agent-memory.md +0 -212
- package/dist/docs/references/docs-agents-guardrails.md +0 -382
- package/dist/docs/references/docs-agents-network-approval.md +0 -275
- package/dist/docs/references/docs-agents-networks.md +0 -290
- package/dist/docs/references/docs-agents-overview.md +0 -309
- package/dist/docs/references/docs-agents-processors.md +0 -632
- package/dist/docs/references/docs-agents-structured-output.md +0 -271
- package/dist/docs/references/docs-agents-using-tools.md +0 -214
- package/dist/docs/references/docs-evals-custom-scorers.md +0 -519
- package/dist/docs/references/docs-evals-overview.md +0 -146
- package/dist/docs/references/docs-evals-running-in-ci.md +0 -106
- package/dist/docs/references/docs-mcp-overview.md +0 -370
- package/dist/docs/references/docs-mcp-publishing-mcp-server.md +0 -95
- package/dist/docs/references/docs-memory-memory-processors.md +0 -316
- package/dist/docs/references/docs-memory-observational-memory.md +0 -246
- package/dist/docs/references/docs-memory-overview.md +0 -45
- package/dist/docs/references/docs-memory-semantic-recall.md +0 -272
- package/dist/docs/references/docs-memory-storage.md +0 -261
- package/dist/docs/references/docs-memory-working-memory.md +0 -400
- package/dist/docs/references/docs-observability-datasets-overview.md +0 -188
- package/dist/docs/references/docs-observability-datasets-running-experiments.md +0 -266
- package/dist/docs/references/docs-observability-logging.md +0 -99
- package/dist/docs/references/docs-observability-overview.md +0 -70
- package/dist/docs/references/docs-observability-tracing-bridges-otel.md +0 -209
- package/dist/docs/references/docs-observability-tracing-exporters-arize.md +0 -274
- package/dist/docs/references/docs-observability-tracing-exporters-braintrust.md +0 -111
- package/dist/docs/references/docs-observability-tracing-exporters-cloud.md +0 -129
- package/dist/docs/references/docs-observability-tracing-exporters-datadog.md +0 -187
- package/dist/docs/references/docs-observability-tracing-exporters-default.md +0 -211
- package/dist/docs/references/docs-observability-tracing-exporters-laminar.md +0 -100
- package/dist/docs/references/docs-observability-tracing-exporters-langfuse.md +0 -217
- package/dist/docs/references/docs-observability-tracing-exporters-langsmith.md +0 -202
- package/dist/docs/references/docs-observability-tracing-exporters-otel.md +0 -479
- package/dist/docs/references/docs-observability-tracing-exporters-posthog.md +0 -148
- package/dist/docs/references/docs-observability-tracing-overview.md +0 -1114
- package/dist/docs/references/docs-rag-chunking-and-embedding.md +0 -183
- package/dist/docs/references/docs-rag-graph-rag.md +0 -215
- package/dist/docs/references/docs-rag-overview.md +0 -72
- package/dist/docs/references/docs-rag-retrieval.md +0 -521
- package/dist/docs/references/docs-rag-vector-databases.md +0 -648
- package/dist/docs/references/docs-server-auth-auth0.md +0 -222
- package/dist/docs/references/docs-server-auth-clerk.md +0 -132
- package/dist/docs/references/docs-server-auth-composite-auth.md +0 -234
- package/dist/docs/references/docs-server-auth-custom-auth-provider.md +0 -513
- package/dist/docs/references/docs-server-auth-firebase.md +0 -272
- package/dist/docs/references/docs-server-auth-jwt.md +0 -110
- package/dist/docs/references/docs-server-auth-simple-auth.md +0 -178
- package/dist/docs/references/docs-server-auth-supabase.md +0 -117
- package/dist/docs/references/docs-server-auth-workos.md +0 -190
- package/dist/docs/references/docs-server-custom-adapters.md +0 -374
- package/dist/docs/references/docs-server-custom-api-routes.md +0 -267
- package/dist/docs/references/docs-server-mastra-client.md +0 -243
- package/dist/docs/references/docs-server-mastra-server.md +0 -71
- package/dist/docs/references/docs-server-middleware.md +0 -228
- package/dist/docs/references/docs-server-request-context.md +0 -478
- package/dist/docs/references/docs-streaming-events.md +0 -247
- package/dist/docs/references/docs-streaming-tool-streaming.md +0 -178
- package/dist/docs/references/docs-streaming-workflow-streaming.md +0 -109
- package/dist/docs/references/docs-voice-overview.md +0 -979
- package/dist/docs/references/docs-voice-speech-to-speech.md +0 -103
- package/dist/docs/references/docs-voice-speech-to-text.md +0 -80
- package/dist/docs/references/docs-voice-text-to-speech.md +0 -84
- package/dist/docs/references/docs-workflows-agents-and-tools.md +0 -170
- package/dist/docs/references/docs-workflows-control-flow.md +0 -823
- package/dist/docs/references/docs-workflows-error-handling.md +0 -360
- package/dist/docs/references/docs-workflows-human-in-the-loop.md +0 -213
- package/dist/docs/references/docs-workflows-overview.md +0 -372
- package/dist/docs/references/docs-workflows-snapshots.md +0 -238
- package/dist/docs/references/docs-workflows-suspend-and-resume.md +0 -205
- package/dist/docs/references/docs-workflows-time-travel.md +0 -309
- package/dist/docs/references/docs-workflows-workflow-state.md +0 -181
- package/dist/docs/references/docs-workspace-filesystem.md +0 -162
- package/dist/docs/references/docs-workspace-overview.md +0 -239
- package/dist/docs/references/docs-workspace-sandbox.md +0 -63
- package/dist/docs/references/docs-workspace-search.md +0 -219
- package/dist/docs/references/docs-workspace-skills.md +0 -126
- package/dist/docs/references/guides-agent-frameworks-ai-sdk.md +0 -140
- package/dist/docs/references/reference-agents-agent.md +0 -142
- package/dist/docs/references/reference-agents-generate.md +0 -174
- package/dist/docs/references/reference-agents-generateLegacy.md +0 -176
- package/dist/docs/references/reference-agents-getDefaultGenerateOptions.md +0 -36
- package/dist/docs/references/reference-agents-getDefaultOptions.md +0 -34
- package/dist/docs/references/reference-agents-getDefaultStreamOptions.md +0 -36
- package/dist/docs/references/reference-agents-getDescription.md +0 -21
- package/dist/docs/references/reference-agents-getInstructions.md +0 -34
- package/dist/docs/references/reference-agents-getLLM.md +0 -37
- package/dist/docs/references/reference-agents-getMemory.md +0 -34
- package/dist/docs/references/reference-agents-getModel.md +0 -34
- package/dist/docs/references/reference-agents-getTools.md +0 -29
- package/dist/docs/references/reference-agents-getVoice.md +0 -34
- package/dist/docs/references/reference-agents-listAgents.md +0 -35
- package/dist/docs/references/reference-agents-listScorers.md +0 -34
- package/dist/docs/references/reference-agents-listTools.md +0 -34
- package/dist/docs/references/reference-agents-listWorkflows.md +0 -34
- package/dist/docs/references/reference-agents-network.md +0 -134
- package/dist/docs/references/reference-ai-sdk-chat-route.md +0 -82
- package/dist/docs/references/reference-ai-sdk-network-route.md +0 -74
- package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +0 -232
- package/dist/docs/references/reference-ai-sdk-with-mastra.md +0 -59
- package/dist/docs/references/reference-ai-sdk-workflow-route.md +0 -79
- package/dist/docs/references/reference-auth-auth0.md +0 -73
- package/dist/docs/references/reference-auth-clerk.md +0 -36
- package/dist/docs/references/reference-auth-firebase.md +0 -80
- package/dist/docs/references/reference-auth-jwt.md +0 -26
- package/dist/docs/references/reference-auth-supabase.md +0 -33
- package/dist/docs/references/reference-auth-workos.md +0 -84
- package/dist/docs/references/reference-client-js-agents.md +0 -438
- package/dist/docs/references/reference-configuration.md +0 -749
- package/dist/docs/references/reference-core-addGateway.md +0 -42
- package/dist/docs/references/reference-core-getAgent.md +0 -21
- package/dist/docs/references/reference-core-getAgentById.md +0 -21
- package/dist/docs/references/reference-core-getDeployer.md +0 -22
- package/dist/docs/references/reference-core-getGateway.md +0 -38
- package/dist/docs/references/reference-core-getGatewayById.md +0 -41
- package/dist/docs/references/reference-core-getLogger.md +0 -22
- package/dist/docs/references/reference-core-getMCPServer.md +0 -45
- package/dist/docs/references/reference-core-getMCPServerById.md +0 -53
- package/dist/docs/references/reference-core-getMemory.md +0 -50
- package/dist/docs/references/reference-core-getScorer.md +0 -54
- package/dist/docs/references/reference-core-getScorerById.md +0 -54
- package/dist/docs/references/reference-core-getServer.md +0 -22
- package/dist/docs/references/reference-core-getStorage.md +0 -22
- package/dist/docs/references/reference-core-getStoredAgentById.md +0 -89
- package/dist/docs/references/reference-core-getTelemetry.md +0 -22
- package/dist/docs/references/reference-core-getVector.md +0 -22
- package/dist/docs/references/reference-core-getWorkflow.md +0 -40
- package/dist/docs/references/reference-core-listAgents.md +0 -21
- package/dist/docs/references/reference-core-listGateways.md +0 -40
- package/dist/docs/references/reference-core-listLogs.md +0 -38
- package/dist/docs/references/reference-core-listLogsByRunId.md +0 -36
- package/dist/docs/references/reference-core-listMCPServers.md +0 -51
- package/dist/docs/references/reference-core-listMemory.md +0 -56
- package/dist/docs/references/reference-core-listScorers.md +0 -29
- package/dist/docs/references/reference-core-listStoredAgents.md +0 -93
- package/dist/docs/references/reference-core-listVectors.md +0 -22
- package/dist/docs/references/reference-core-listWorkflows.md +0 -21
- package/dist/docs/references/reference-core-mastra-class.md +0 -66
- package/dist/docs/references/reference-core-mastra-model-gateway.md +0 -153
- package/dist/docs/references/reference-core-setLogger.md +0 -26
- package/dist/docs/references/reference-core-setStorage.md +0 -27
- package/dist/docs/references/reference-datasets-addItem.md +0 -35
- package/dist/docs/references/reference-datasets-addItems.md +0 -33
- package/dist/docs/references/reference-datasets-compareExperiments.md +0 -48
- package/dist/docs/references/reference-datasets-create.md +0 -49
- package/dist/docs/references/reference-datasets-dataset.md +0 -78
- package/dist/docs/references/reference-datasets-datasets-manager.md +0 -84
- package/dist/docs/references/reference-datasets-delete.md +0 -23
- package/dist/docs/references/reference-datasets-deleteExperiment.md +0 -25
- package/dist/docs/references/reference-datasets-deleteItem.md +0 -25
- package/dist/docs/references/reference-datasets-deleteItems.md +0 -27
- package/dist/docs/references/reference-datasets-get.md +0 -29
- package/dist/docs/references/reference-datasets-getDetails.md +0 -45
- package/dist/docs/references/reference-datasets-getExperiment.md +0 -28
- package/dist/docs/references/reference-datasets-getItem.md +0 -31
- package/dist/docs/references/reference-datasets-getItemHistory.md +0 -29
- package/dist/docs/references/reference-datasets-list.md +0 -29
- package/dist/docs/references/reference-datasets-listExperimentResults.md +0 -37
- package/dist/docs/references/reference-datasets-listExperiments.md +0 -31
- package/dist/docs/references/reference-datasets-listItems.md +0 -44
- package/dist/docs/references/reference-datasets-listVersions.md +0 -31
- package/dist/docs/references/reference-datasets-startExperiment.md +0 -60
- package/dist/docs/references/reference-datasets-startExperimentAsync.md +0 -41
- package/dist/docs/references/reference-datasets-update.md +0 -46
- package/dist/docs/references/reference-datasets-updateItem.md +0 -36
- package/dist/docs/references/reference-evals-answer-relevancy.md +0 -105
- package/dist/docs/references/reference-evals-answer-similarity.md +0 -99
- package/dist/docs/references/reference-evals-bias.md +0 -120
- package/dist/docs/references/reference-evals-completeness.md +0 -137
- package/dist/docs/references/reference-evals-content-similarity.md +0 -101
- package/dist/docs/references/reference-evals-context-precision.md +0 -196
- package/dist/docs/references/reference-evals-create-scorer.md +0 -270
- package/dist/docs/references/reference-evals-faithfulness.md +0 -114
- package/dist/docs/references/reference-evals-hallucination.md +0 -220
- package/dist/docs/references/reference-evals-keyword-coverage.md +0 -128
- package/dist/docs/references/reference-evals-mastra-scorer.md +0 -123
- package/dist/docs/references/reference-evals-run-evals.md +0 -138
- package/dist/docs/references/reference-evals-scorer-utils.md +0 -330
- package/dist/docs/references/reference-evals-textual-difference.md +0 -113
- package/dist/docs/references/reference-evals-tone-consistency.md +0 -119
- package/dist/docs/references/reference-evals-toxicity.md +0 -123
- package/dist/docs/references/reference-harness-harness-class.md +0 -645
- package/dist/docs/references/reference-logging-pino-logger.md +0 -117
- package/dist/docs/references/reference-memory-deleteMessages.md +0 -40
- package/dist/docs/references/reference-memory-memory-class.md +0 -147
- package/dist/docs/references/reference-memory-observational-memory.md +0 -565
- package/dist/docs/references/reference-observability-tracing-bridges-otel.md +0 -131
- package/dist/docs/references/reference-observability-tracing-configuration.md +0 -178
- package/dist/docs/references/reference-observability-tracing-exporters-console-exporter.md +0 -138
- package/dist/docs/references/reference-observability-tracing-exporters-datadog.md +0 -116
- package/dist/docs/references/reference-observability-tracing-instances.md +0 -109
- package/dist/docs/references/reference-observability-tracing-interfaces.md +0 -749
- package/dist/docs/references/reference-observability-tracing-processors-sensitive-data-filter.md +0 -144
- package/dist/docs/references/reference-observability-tracing-spans.md +0 -224
- package/dist/docs/references/reference-processors-batch-parts-processor.md +0 -61
- package/dist/docs/references/reference-processors-language-detector.md +0 -81
- package/dist/docs/references/reference-processors-message-history-processor.md +0 -85
- package/dist/docs/references/reference-processors-moderation-processor.md +0 -104
- package/dist/docs/references/reference-processors-pii-detector.md +0 -107
- package/dist/docs/references/reference-processors-processor-interface.md +0 -525
- package/dist/docs/references/reference-processors-prompt-injection-detector.md +0 -71
- package/dist/docs/references/reference-processors-semantic-recall-processor.md +0 -123
- package/dist/docs/references/reference-processors-system-prompt-scrubber.md +0 -80
- package/dist/docs/references/reference-processors-token-limiter-processor.md +0 -113
- package/dist/docs/references/reference-processors-tool-call-filter.md +0 -85
- package/dist/docs/references/reference-processors-tool-search-processor.md +0 -113
- package/dist/docs/references/reference-processors-unicode-normalizer.md +0 -62
- package/dist/docs/references/reference-processors-working-memory-processor.md +0 -154
- package/dist/docs/references/reference-rag-database-config.md +0 -264
- package/dist/docs/references/reference-rag-embeddings.md +0 -92
- package/dist/docs/references/reference-server-mastra-server.md +0 -298
- package/dist/docs/references/reference-server-register-api-route.md +0 -249
- package/dist/docs/references/reference-storage-cloudflare-d1.md +0 -218
- package/dist/docs/references/reference-storage-composite.md +0 -235
- package/dist/docs/references/reference-storage-lance.md +0 -131
- package/dist/docs/references/reference-storage-libsql.md +0 -135
- package/dist/docs/references/reference-storage-mongodb.md +0 -262
- package/dist/docs/references/reference-storage-mssql.md +0 -155
- package/dist/docs/references/reference-storage-overview.md +0 -121
- package/dist/docs/references/reference-storage-postgresql.md +0 -529
- package/dist/docs/references/reference-storage-upstash.md +0 -160
- package/dist/docs/references/reference-streaming-ChunkType.md +0 -292
- package/dist/docs/references/reference-streaming-agents-MastraModelOutput.md +0 -182
- package/dist/docs/references/reference-streaming-agents-streamLegacy.md +0 -142
- package/dist/docs/references/reference-streaming-workflows-observeStream.md +0 -42
- package/dist/docs/references/reference-streaming-workflows-resumeStream.md +0 -61
- package/dist/docs/references/reference-streaming-workflows-stream.md +0 -88
- package/dist/docs/references/reference-streaming-workflows-timeTravelStream.md +0 -142
- package/dist/docs/references/reference-templates-overview.md +0 -194
- package/dist/docs/references/reference-tools-create-tool.md +0 -237
- package/dist/docs/references/reference-tools-graph-rag-tool.md +0 -185
- package/dist/docs/references/reference-tools-mcp-client.md +0 -962
- package/dist/docs/references/reference-tools-mcp-server.md +0 -1275
- package/dist/docs/references/reference-tools-vector-query-tool.md +0 -459
- package/dist/docs/references/reference-vectors-libsql.md +0 -305
- package/dist/docs/references/reference-vectors-mongodb.md +0 -295
- package/dist/docs/references/reference-vectors-pg.md +0 -408
- package/dist/docs/references/reference-vectors-upstash.md +0 -294
- package/dist/docs/references/reference-voice-composite-voice.md +0 -121
- package/dist/docs/references/reference-voice-mastra-voice.md +0 -313
- package/dist/docs/references/reference-voice-voice.addInstructions.md +0 -56
- package/dist/docs/references/reference-voice-voice.addTools.md +0 -67
- package/dist/docs/references/reference-voice-voice.connect.md +0 -94
- package/dist/docs/references/reference-voice-voice.events.md +0 -37
- package/dist/docs/references/reference-voice-voice.listen.md +0 -164
- package/dist/docs/references/reference-voice-voice.on.md +0 -111
- package/dist/docs/references/reference-voice-voice.speak.md +0 -157
- package/dist/docs/references/reference-workflows-run-methods-cancel.md +0 -86
- package/dist/docs/references/reference-workflows-run-methods-restart.md +0 -33
- package/dist/docs/references/reference-workflows-run-methods-resume.md +0 -59
- package/dist/docs/references/reference-workflows-run-methods-start.md +0 -58
- package/dist/docs/references/reference-workflows-run-methods-startAsync.md +0 -67
- package/dist/docs/references/reference-workflows-run-methods-timeTravel.md +0 -142
- package/dist/docs/references/reference-workflows-run.md +0 -59
- package/dist/docs/references/reference-workflows-step.md +0 -119
- package/dist/docs/references/reference-workflows-workflow-methods-branch.md +0 -25
- package/dist/docs/references/reference-workflows-workflow-methods-commit.md +0 -17
- package/dist/docs/references/reference-workflows-workflow-methods-create-run.md +0 -63
- package/dist/docs/references/reference-workflows-workflow-methods-dountil.md +0 -25
- package/dist/docs/references/reference-workflows-workflow-methods-dowhile.md +0 -25
- package/dist/docs/references/reference-workflows-workflow-methods-foreach.md +0 -118
- package/dist/docs/references/reference-workflows-workflow-methods-map.md +0 -93
- package/dist/docs/references/reference-workflows-workflow-methods-parallel.md +0 -21
- package/dist/docs/references/reference-workflows-workflow-methods-sleep.md +0 -35
- package/dist/docs/references/reference-workflows-workflow-methods-sleepUntil.md +0 -35
- package/dist/docs/references/reference-workflows-workflow-methods-then.md +0 -21
- package/dist/docs/references/reference-workflows-workflow.md +0 -157
- package/dist/docs/references/reference-workspace-filesystem.md +0 -202
- package/dist/docs/references/reference-workspace-local-filesystem.md +0 -327
- package/dist/docs/references/reference-workspace-local-sandbox.md +0 -285
- package/dist/docs/references/reference-workspace-sandbox.md +0 -81
- package/dist/docs/references/reference-workspace-workspace-class.md +0 -226
- package/dist/docs/references/reference.md +0 -276
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
# Streaming Events
|
|
2
|
-
|
|
3
|
-
Streaming from agents or workflows provides real-time visibility into either the LLM’s output or the status of a workflow run. This feedback can be passed directly to the user, or used within applications to handle workflow status more effectively, creating a smoother and more responsive experience.
|
|
4
|
-
|
|
5
|
-
Events emitted from agents or workflows represent different stages of generation and execution, such as when a run starts, when text is produced, or when a tool is invoked.
|
|
6
|
-
|
|
7
|
-
## Event types
|
|
8
|
-
|
|
9
|
-
Below is a complete list of events emitted from `.stream()`. Depending on whether you’re streaming from an **agent** or a **workflow**, only a subset of these events will occur:
|
|
10
|
-
|
|
11
|
-
- **start**: Marks the beginning of an agent or workflow run.
|
|
12
|
-
- **step-start**: Indicates a workflow step has begun execution.
|
|
13
|
-
- **text-delta**: Incremental text chunks as they're generated by the LLM.
|
|
14
|
-
- **tool-call**: When the agent decides to use a tool, including the tool name and arguments.
|
|
15
|
-
- **tool-result**: The result returned from tool execution.
|
|
16
|
-
- **step-finish**: Confirms that a specific step has fully finalized, and may include metadata like the finish reason for that step.
|
|
17
|
-
- **finish**: When the agent or workflow completes, including usage statistics.
|
|
18
|
-
|
|
19
|
-
## Network event types
|
|
20
|
-
|
|
21
|
-
When using `agent.network()` for multi-agent collaboration, additional event types are emitted to track the orchestration flow:
|
|
22
|
-
|
|
23
|
-
- **routing-agent-start**: The routing agent begins analyzing the task to decide which primitive (agent/workflow/tool) to delegate to.
|
|
24
|
-
- **routing-agent-text-delta**: Incremental text as the routing agent processes the response from the selected primitive.
|
|
25
|
-
- **routing-agent-end**: The routing agent completes its selection, including the selected primitive and reason for selection.
|
|
26
|
-
- **agent-execution-start**: A delegated agent begins execution.
|
|
27
|
-
- **agent-execution-end**: A delegated agent completes execution.
|
|
28
|
-
- **agent-execution-event-\***: Events from the delegated agent's execution (e.g., `agent-execution-event-text-delta`).
|
|
29
|
-
- **workflow-execution-start**: A delegated workflow begins execution.
|
|
30
|
-
- **workflow-execution-end**: A delegated workflow completes execution.
|
|
31
|
-
- **workflow-execution-event-\***: Events from the delegated workflow's execution.
|
|
32
|
-
- **tool-execution-start**: A delegated tool begins execution.
|
|
33
|
-
- **tool-execution-end**: A delegated tool completes execution.
|
|
34
|
-
- **network-execution-event-step-finish**: A network iteration step completes.
|
|
35
|
-
- **network-execution-event-finish**: The entire network execution completes.
|
|
36
|
-
|
|
37
|
-
## Inspecting agent streams
|
|
38
|
-
|
|
39
|
-
Iterate over the `stream` with a `for await` loop to inspect all emitted event chunks.
|
|
40
|
-
|
|
41
|
-
```typescript
|
|
42
|
-
const testAgent = mastra.getAgent("testAgent");
|
|
43
|
-
|
|
44
|
-
const stream = await testAgent.stream([
|
|
45
|
-
{ role: "user", content: "Help me organize my day" },
|
|
46
|
-
]);
|
|
47
|
-
|
|
48
|
-
for await (const chunk of stream) {
|
|
49
|
-
console.log(chunk);
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
> **Info:** Visit [Agent.stream()](https://mastra.ai/reference/streaming/agents/stream) for more information.
|
|
54
|
-
|
|
55
|
-
### Example agent output
|
|
56
|
-
|
|
57
|
-
Below is an example of events that may be emitted. Each event always includes a `type` and can include additional fields like `from` and `payload`.
|
|
58
|
-
|
|
59
|
-
```typescript
|
|
60
|
-
{
|
|
61
|
-
type: 'start',
|
|
62
|
-
from: 'AGENT',
|
|
63
|
-
// ..
|
|
64
|
-
}
|
|
65
|
-
{
|
|
66
|
-
type: 'step-start',
|
|
67
|
-
from: 'AGENT',
|
|
68
|
-
payload: {
|
|
69
|
-
messageId: 'msg-cdUrkirvXw8A6oE4t5lzDuxi',
|
|
70
|
-
// ...
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
{
|
|
74
|
-
type: 'tool-call',
|
|
75
|
-
from: 'AGENT',
|
|
76
|
-
payload: {
|
|
77
|
-
toolCallId: 'call_jbhi3s1qvR6Aqt9axCfTBMsA',
|
|
78
|
-
toolName: 'testTool'
|
|
79
|
-
// ..
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Inspecting workflow streams
|
|
85
|
-
|
|
86
|
-
Iterate over the `stream` with a `for await` loop to inspect all emitted event chunks.
|
|
87
|
-
|
|
88
|
-
```typescript
|
|
89
|
-
const testWorkflow = mastra.getWorkflow("testWorkflow");
|
|
90
|
-
|
|
91
|
-
const run = await testWorkflow.createRun();
|
|
92
|
-
|
|
93
|
-
const stream = await run.stream({
|
|
94
|
-
inputData: {
|
|
95
|
-
value: "initial data",
|
|
96
|
-
},
|
|
97
|
-
});
|
|
98
|
-
|
|
99
|
-
for await (const chunk of stream) {
|
|
100
|
-
console.log(chunk);
|
|
101
|
-
}
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### Example workflow output
|
|
105
|
-
|
|
106
|
-
Below is an example of events that may be emitted. Each event always includes a `type` and can include additional fields like `from` and `payload`.
|
|
107
|
-
|
|
108
|
-
```typescript
|
|
109
|
-
{
|
|
110
|
-
type: 'workflow-start',
|
|
111
|
-
runId: '221333ed-d9ee-4737-922b-4ab4d9de73e6',
|
|
112
|
-
from: 'WORKFLOW',
|
|
113
|
-
// ...
|
|
114
|
-
}
|
|
115
|
-
{
|
|
116
|
-
type: 'workflow-step-start',
|
|
117
|
-
runId: '221333ed-d9ee-4737-922b-4ab4d9de73e6',
|
|
118
|
-
from: 'WORKFLOW',
|
|
119
|
-
payload: {
|
|
120
|
-
stepName: 'step-1',
|
|
121
|
-
args: { value: 'initial data' },
|
|
122
|
-
stepCallId: '9e8c5217-490b-4fe7-8c31-6e2353a3fc98',
|
|
123
|
-
startedAt: 1755269732792,
|
|
124
|
-
status: 'running'
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
### Foreach progress events
|
|
130
|
-
|
|
131
|
-
When a workflow uses `.foreach()`, each iteration emits a `workflow-step-progress` event. You can use these to track real-time progress:
|
|
132
|
-
|
|
133
|
-
```typescript
|
|
134
|
-
for await (const chunk of stream) {
|
|
135
|
-
if (chunk.type === 'workflow-step-progress') {
|
|
136
|
-
console.log(
|
|
137
|
-
`${chunk.payload.id}: ${chunk.payload.completedCount}/${chunk.payload.totalCount} — ${chunk.payload.iterationStatus}`
|
|
138
|
-
);
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
Each progress event includes:
|
|
144
|
-
|
|
145
|
-
- **`id`**: The step ID of the foreach step
|
|
146
|
-
- **`completedCount`**: Number of iterations completed so far
|
|
147
|
-
- **`totalCount`**: Total number of iterations
|
|
148
|
-
- **`currentIndex`**: Index of the iteration that just completed
|
|
149
|
-
- **`iterationStatus`**: Status of the iteration (`success`, `failed`, or `suspended`)
|
|
150
|
-
- **`iterationOutput`**: Output of the iteration (when successful)
|
|
151
|
-
|
|
152
|
-
## Inspecting agent networks
|
|
153
|
-
|
|
154
|
-
When using multi-agent collaboration with `agent.network()`, iterate over the stream to track how tasks are delegated and executed across agents, workflows, and tools.
|
|
155
|
-
|
|
156
|
-
```typescript
|
|
157
|
-
const networkAgent = mastra.getAgent("networkAgent");
|
|
158
|
-
|
|
159
|
-
const networkStream = await networkAgent.network(
|
|
160
|
-
"Research dolphins then write a report",
|
|
161
|
-
);
|
|
162
|
-
|
|
163
|
-
for await (const chunk of networkStream) {
|
|
164
|
-
console.log(chunk);
|
|
165
|
-
}
|
|
166
|
-
```
|
|
167
|
-
|
|
168
|
-
> **Info:** Visit [Agent.network()](https://mastra.ai/reference/agents/network) for more information.
|
|
169
|
-
|
|
170
|
-
### Example network output
|
|
171
|
-
|
|
172
|
-
Network streams emit events that track the orchestration flow. Each iteration begins with routing, followed by execution of the selected primitive.
|
|
173
|
-
|
|
174
|
-
```typescript
|
|
175
|
-
// Routing agent decides what to do
|
|
176
|
-
{
|
|
177
|
-
type: 'routing-agent-start',
|
|
178
|
-
from: 'NETWORK',
|
|
179
|
-
runId: '7a3b9c2d-1e4f-5a6b-8c9d-0e1f2a3b4c5d',
|
|
180
|
-
payload: {
|
|
181
|
-
agentId: 'routing-agent',
|
|
182
|
-
// ...
|
|
183
|
-
}
|
|
184
|
-
}
|
|
185
|
-
// Routing agent makes a selection
|
|
186
|
-
{
|
|
187
|
-
type: 'routing-agent-end',
|
|
188
|
-
from: 'NETWORK',
|
|
189
|
-
runId: '7a3b9c2d-1e4f-5a6b-8c9d-0e1f2a3b4c5d',
|
|
190
|
-
payload: {
|
|
191
|
-
// ...
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
// Delegated agent begins execution
|
|
195
|
-
{
|
|
196
|
-
type: 'agent-execution-start',
|
|
197
|
-
from: 'NETWORK',
|
|
198
|
-
runId: '8b4c0d3e-2f5a-6b7c-9d0e-1f2a3b4c5d6e',
|
|
199
|
-
payload: {
|
|
200
|
-
// ...
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
// Events from the delegated agent's execution
|
|
204
|
-
{
|
|
205
|
-
type: 'agent-execution-event-text-delta',
|
|
206
|
-
from: 'NETWORK',
|
|
207
|
-
runId: '8b4c0d3e-2f5a-6b7c-9d0e-1f2a3b4c5d6e',
|
|
208
|
-
payload: {
|
|
209
|
-
type: 'text-delta',
|
|
210
|
-
payload: {
|
|
211
|
-
// ...
|
|
212
|
-
}
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
### Filtering network events
|
|
218
|
-
|
|
219
|
-
You can filter events by type to track specific aspects of the network execution:
|
|
220
|
-
|
|
221
|
-
```typescript
|
|
222
|
-
const networkStream = await networkAgent.network(
|
|
223
|
-
"Analyze data and create visualization",
|
|
224
|
-
);
|
|
225
|
-
|
|
226
|
-
for await (const chunk of networkStream) {
|
|
227
|
-
// Track routing decisions
|
|
228
|
-
if (chunk.type === "routing-agent-end") {
|
|
229
|
-
console.log(
|
|
230
|
-
"Selected:",
|
|
231
|
-
chunk.payload.resourceType,
|
|
232
|
-
chunk.payload.resourceId,
|
|
233
|
-
);
|
|
234
|
-
console.log("Reason:", chunk.payload.selectionReason);
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
// Track agent delegations
|
|
238
|
-
if (chunk.type === "agent-execution-start") {
|
|
239
|
-
console.log("Delegating to agent:", chunk.payload.agentId);
|
|
240
|
-
}
|
|
241
|
-
|
|
242
|
-
// Track workflow delegations
|
|
243
|
-
if (chunk.type === "workflow-execution-start") {
|
|
244
|
-
console.log("Executing workflow:", chunk.payload.name);
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
```
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
# Tool streaming
|
|
2
|
-
|
|
3
|
-
Tool streaming in Mastra enables tools to send incremental results while they run, rather than waiting until execution finishes. This allows you to surface partial progress, intermediate states, or progressive data directly to users or upstream agents and workflows.
|
|
4
|
-
|
|
5
|
-
Streams can be written to in two main ways:
|
|
6
|
-
|
|
7
|
-
- **From within a tool**: every tool receives a `context.writer` object, which is a writable stream you can use to push updates as execution progresses.
|
|
8
|
-
- **From an agent stream**: you can also pipe an agent's `stream` output directly into a tool's writer, making it easy to chain agent responses into tool results without extra glue code.
|
|
9
|
-
|
|
10
|
-
By combining writable tool streams with agent streaming, you gain fine grained control over how intermediate results flow through your system and into the user experience.
|
|
11
|
-
|
|
12
|
-
## Agent using tool
|
|
13
|
-
|
|
14
|
-
Agent streaming can be combined with tool calls, allowing tool outputs to be written directly into the agent’s streaming response. This makes it possible to surface tool activity as part of the overall interaction.
|
|
15
|
-
|
|
16
|
-
```typescript
|
|
17
|
-
import { Agent } from "@mastra/core/agent";
|
|
18
|
-
import { testTool } from "../tools/test-tool";
|
|
19
|
-
|
|
20
|
-
export const testAgent = new Agent({
|
|
21
|
-
id: "test-agent",
|
|
22
|
-
name: "Test Agent",
|
|
23
|
-
instructions: "You are a weather agent.",
|
|
24
|
-
model: "openai/gpt-5.1",
|
|
25
|
-
tools: { testTool },
|
|
26
|
-
});
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
### Using `context.writer`
|
|
30
|
-
|
|
31
|
-
The `context.writer` object is available in a tool's `execute()` function and can be used to emit custom events, data, or values into the active stream. This enables tools to provide intermediate results or status updates while execution is still in progress.
|
|
32
|
-
|
|
33
|
-
> **Warning:** You must `await` the call to `writer.write()` or else you will lock the stream and get a `WritableStream is locked` error.
|
|
34
|
-
|
|
35
|
-
```typescript
|
|
36
|
-
import { createTool } from "@mastra/core/tools";
|
|
37
|
-
|
|
38
|
-
export const testTool = createTool({
|
|
39
|
-
execute: async (inputData, context) => {
|
|
40
|
-
const { value } = inputData;
|
|
41
|
-
|
|
42
|
-
await context?.writer?.write({
|
|
43
|
-
type: "custom-event",
|
|
44
|
-
status: "pending"
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
const response = await fetch(...);
|
|
48
|
-
|
|
49
|
-
await context?.writer?.write({
|
|
50
|
-
type: "custom-event",
|
|
51
|
-
status: "success"
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
return {
|
|
55
|
-
value: ""
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
You can also use `writer.custom()` if you want to emit top level stream chunks, This useful and relevant when integrating with UI Frameworks
|
|
62
|
-
|
|
63
|
-
```typescript
|
|
64
|
-
import { createTool } from "@mastra/core/tools";
|
|
65
|
-
|
|
66
|
-
export const testTool = createTool({
|
|
67
|
-
execute: async (inputData, context) => {
|
|
68
|
-
const { value } = inputData;
|
|
69
|
-
|
|
70
|
-
await context?.writer?.custom({
|
|
71
|
-
type: "data-tool-progress",
|
|
72
|
-
status: "pending"
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
const response = await fetch(...);
|
|
76
|
-
|
|
77
|
-
await context?.writer?.custom({
|
|
78
|
-
type: "data-tool-progress",
|
|
79
|
-
status: "success"
|
|
80
|
-
});
|
|
81
|
-
|
|
82
|
-
return {
|
|
83
|
-
value: ""
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
});
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
### Inspecting stream payloads
|
|
90
|
-
|
|
91
|
-
Events written to the stream are included in the emitted chunks. These chunks can be inspected to access any custom fields, such as event types, intermediate values, or tool-specific data.
|
|
92
|
-
|
|
93
|
-
```typescript
|
|
94
|
-
const stream = await testAgent.stream([
|
|
95
|
-
"What is the weather in London?",
|
|
96
|
-
"Use the testTool",
|
|
97
|
-
]);
|
|
98
|
-
|
|
99
|
-
for await (const chunk of stream) {
|
|
100
|
-
if (chunk.payload.output?.type === "custom-event") {
|
|
101
|
-
console.log(JSON.stringify(chunk, null, 2));
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
## Tool Lifecycle Hooks
|
|
107
|
-
|
|
108
|
-
Tools support lifecycle hooks that allow you to monitor different stages of tool execution during streaming. These hooks are particularly useful for logging or analytics.
|
|
109
|
-
|
|
110
|
-
### Example: Using onInputAvailable and onOutput
|
|
111
|
-
|
|
112
|
-
```typescript
|
|
113
|
-
import { createTool } from "@mastra/core/tools";
|
|
114
|
-
import { z } from "zod";
|
|
115
|
-
|
|
116
|
-
export const weatherTool = createTool({
|
|
117
|
-
id: "weather-tool",
|
|
118
|
-
description: "Get weather information",
|
|
119
|
-
inputSchema: z.object({
|
|
120
|
-
city: z.string(),
|
|
121
|
-
}),
|
|
122
|
-
outputSchema: z.object({
|
|
123
|
-
temperature: z.number(),
|
|
124
|
-
conditions: z.string(),
|
|
125
|
-
}),
|
|
126
|
-
// Called when the complete input is available
|
|
127
|
-
onInputAvailable: ({ input, toolCallId }) => {
|
|
128
|
-
console.log(`Weather requested for: ${input.city}`);
|
|
129
|
-
},
|
|
130
|
-
execute: async (input) => {
|
|
131
|
-
const weather = await fetchWeather(input.city);
|
|
132
|
-
return weather;
|
|
133
|
-
},
|
|
134
|
-
// Called after successful execution
|
|
135
|
-
onOutput: ({ output, toolName }) => {
|
|
136
|
-
console.log(`${toolName} result: ${output.temperature}°F, ${output.conditions}`);
|
|
137
|
-
},
|
|
138
|
-
});
|
|
139
|
-
```
|
|
140
|
-
|
|
141
|
-
### Available Hooks
|
|
142
|
-
|
|
143
|
-
- **onInputStart**: Called when tool call input streaming begins
|
|
144
|
-
- **onInputDelta**: Called for each chunk of input as it streams in
|
|
145
|
-
- **onInputAvailable**: Called when complete input is parsed and validated
|
|
146
|
-
- **onOutput**: Called after the tool successfully executes with the output
|
|
147
|
-
|
|
148
|
-
For detailed documentation on all lifecycle hooks, see the [createTool() reference](https://mastra.ai/reference/tools/create-tool).
|
|
149
|
-
|
|
150
|
-
### Streaming tool input in UIs
|
|
151
|
-
|
|
152
|
-
When a model generates a tool call, the arguments arrive incrementally as `tool-call-delta` stream chunks before the final `tool-call` chunk. UIs can listen for the corresponding `tool_input_start`, `tool_input_delta`, and `tool_input_end` events to render tool arguments as they stream in — for example, showing a file path or command immediately rather than waiting for the complete tool call.
|
|
153
|
-
|
|
154
|
-
Using a partial JSON parser on the accumulated `argsTextDelta` fragments lets you extract usable argument values before the JSON is complete. This enables features like live diff previews for edit tools, streaming file content for write tools, and instant display of search patterns or file paths.
|
|
155
|
-
|
|
156
|
-
## Tool using an agent
|
|
157
|
-
|
|
158
|
-
Pipe an agent's `fullStream` to the tool's `writer`. This streams partial output, and Mastra automatically aggregates the agent's usage into the tool run.
|
|
159
|
-
|
|
160
|
-
```typescript
|
|
161
|
-
import { createTool } from "@mastra/core/tools";
|
|
162
|
-
import { z } from "zod";
|
|
163
|
-
|
|
164
|
-
export const testTool = createTool({
|
|
165
|
-
execute: async (inputData, context) => {
|
|
166
|
-
const { city } = inputData;
|
|
167
|
-
|
|
168
|
-
const agent = context?.mastra?.getAgent("testAgent");
|
|
169
|
-
const stream = await agent?.stream(`What is the weather in ${city}?`);
|
|
170
|
-
|
|
171
|
-
await stream!.fullStream.pipeTo(context?.writer!);
|
|
172
|
-
|
|
173
|
-
return {
|
|
174
|
-
value: await stream!.text,
|
|
175
|
-
};
|
|
176
|
-
},
|
|
177
|
-
});
|
|
178
|
-
```
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
# Workflow streaming
|
|
2
|
-
|
|
3
|
-
Workflow streaming in Mastra enables workflows to send incremental results while they execute, rather than waiting until completion. This allows you to surface partial progress, intermediate states, or progressive data directly to users or upstream agents and workflows.
|
|
4
|
-
|
|
5
|
-
Streams can be written to in two main ways:
|
|
6
|
-
|
|
7
|
-
- **From within a workflow step**: every workflow step receives a `writer` argument, which is a writable stream you can use to push updates as execution progresses.
|
|
8
|
-
- **From an agent stream**: you can also pipe an agent's `stream` output directly into a workflow step's writer, making it easy to chain agent responses into workflow results without extra glue code.
|
|
9
|
-
|
|
10
|
-
By combining writable workflow streams with agent streaming, you gain fine-grained control over how intermediate results flow through your system and into the user experience.
|
|
11
|
-
|
|
12
|
-
### Using the `writer` argument
|
|
13
|
-
|
|
14
|
-
The `writer` argument is passed to a workflow step's `execute` function and can be used to emit custom events, data, or values into the active stream. This enables workflow steps to provide intermediate results or status updates while execution is still in progress.
|
|
15
|
-
|
|
16
|
-
> **Warning:** You must `await` the call to `writer.write(...)` or else you will lock the stream and get a `WritableStream is locked` error.
|
|
17
|
-
|
|
18
|
-
```typescript
|
|
19
|
-
import { createStep } from "@mastra/core/workflows";
|
|
20
|
-
|
|
21
|
-
export const testStep = createStep({
|
|
22
|
-
execute: async ({ inputData, writer }) => {
|
|
23
|
-
const { value } = inputData;
|
|
24
|
-
|
|
25
|
-
await writer?.write({
|
|
26
|
-
type: "custom-event",
|
|
27
|
-
status: "pending"
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
const response = await fetch(...);
|
|
31
|
-
|
|
32
|
-
await writer?.write({
|
|
33
|
-
type: "custom-event",
|
|
34
|
-
status: "success"
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
return {
|
|
38
|
-
value: ""
|
|
39
|
-
};
|
|
40
|
-
},
|
|
41
|
-
});
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Inspecting workflow stream payloads
|
|
45
|
-
|
|
46
|
-
Events written to the stream are included in the emitted chunks. These chunks can be inspected to access any custom fields, such as event types, intermediate values, or step-specific data.
|
|
47
|
-
|
|
48
|
-
```typescript
|
|
49
|
-
const testWorkflow = mastra.getWorkflow("testWorkflow");
|
|
50
|
-
|
|
51
|
-
const run = await testWorkflow.createRun();
|
|
52
|
-
|
|
53
|
-
const stream = await run.stream({
|
|
54
|
-
inputData: {
|
|
55
|
-
value: "initial data",
|
|
56
|
-
},
|
|
57
|
-
});
|
|
58
|
-
|
|
59
|
-
for await (const chunk of stream) {
|
|
60
|
-
console.log(chunk);
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
if (result!.status === "suspended") {
|
|
64
|
-
// if the workflow is suspended, we can resume it with the resumeStream method
|
|
65
|
-
const resumedStream = await run.resumeStream({
|
|
66
|
-
resumeData: { value: "resume data" },
|
|
67
|
-
});
|
|
68
|
-
|
|
69
|
-
for await (const chunk of resumedStream) {
|
|
70
|
-
console.log(chunk);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
### Resuming an interrupted workflow stream
|
|
76
|
-
|
|
77
|
-
If a workflow stream is closed or interrupted for any reason, you can resume it with the `resumeStream` method. This will return a new `ReadableStream` that you can use to observe the workflow events.
|
|
78
|
-
|
|
79
|
-
```typescript
|
|
80
|
-
const newStream = await run.resumeStream();
|
|
81
|
-
|
|
82
|
-
for await (const chunk of newStream) {
|
|
83
|
-
console.log(chunk);
|
|
84
|
-
}
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## Workflow using an agent
|
|
88
|
-
|
|
89
|
-
Pipe an agent's `textStream` to the workflow step's `writer`. This streams partial output, and Mastra automatically aggregates the agent's usage into the workflow run.
|
|
90
|
-
|
|
91
|
-
```typescript
|
|
92
|
-
import { createStep } from "@mastra/core/workflows";
|
|
93
|
-
import { z } from "zod";
|
|
94
|
-
|
|
95
|
-
export const testStep = createStep({
|
|
96
|
-
execute: async ({ inputData, mastra, writer }) => {
|
|
97
|
-
const { city } = inputData;
|
|
98
|
-
|
|
99
|
-
const testAgent = mastra?.getAgent("testAgent");
|
|
100
|
-
const stream = await testAgent?.stream(`What is the weather in ${city}$?`);
|
|
101
|
-
|
|
102
|
-
await stream!.textStream.pipeTo(writer!);
|
|
103
|
-
|
|
104
|
-
return {
|
|
105
|
-
value: await stream!.text,
|
|
106
|
-
};
|
|
107
|
-
},
|
|
108
|
-
});
|
|
109
|
-
```
|