@mastra/mcp-docs-server 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/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +29 -29
- package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +51 -51
- package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +45 -45
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +180 -180
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +39 -39
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +39 -39
- package/.docs/organized/changelogs/%40mastra%2Fconvex.md +68 -0
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +331 -331
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +31 -31
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +16 -16
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +41 -41
- package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +39 -39
- package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +6 -0
- package/.docs/organized/changelogs/%40mastra%2Flance.md +39 -39
- package/.docs/organized/changelogs/%40mastra%2Flibsql.md +45 -45
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +24 -24
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +24 -24
- package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +39 -39
- package/.docs/organized/changelogs/%40mastra%2Fmssql.md +39 -39
- package/.docs/organized/changelogs/%40mastra%2Fpg.md +45 -45
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +96 -96
- package/.docs/organized/changelogs/%40mastra%2Frag.md +17 -17
- package/.docs/organized/changelogs/%40mastra%2Freact.md +49 -2
- package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +6 -0
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +122 -122
- package/.docs/organized/changelogs/%40mastra%2Fupstash.md +39 -39
- package/.docs/organized/changelogs/create-mastra.md +31 -31
- package/.docs/organized/changelogs/mastra.md +51 -51
- package/.docs/organized/code-examples/agent-v6.md +151 -0
- package/.docs/organized/code-examples/ai-elements.md +1 -1
- package/.docs/organized/code-examples/quick-start.md +0 -4
- package/.docs/organized/code-examples/stock-price-tool.md +21 -2
- package/.docs/raw/agents/adding-voice.mdx +2 -3
- package/.docs/raw/agents/agent-approval.mdx +139 -6
- package/.docs/raw/agents/agent-memory.mdx +24 -32
- package/.docs/raw/agents/guardrails.mdx +61 -51
- package/.docs/raw/agents/networks.mdx +9 -13
- package/.docs/raw/agents/overview.mdx +40 -24
- package/.docs/raw/agents/processors.mdx +20 -19
- package/.docs/raw/agents/structured-output.mdx +11 -7
- package/.docs/raw/agents/using-tools.mdx +5 -6
- package/.docs/raw/course/01-first-agent/07-creating-your-agent.md +1 -2
- package/.docs/raw/course/01-first-agent/12-connecting-tool-to-agent.md +1 -1
- package/.docs/raw/course/01-first-agent/16-adding-memory-to-agent.md +1 -2
- package/.docs/raw/course/02-agent-tools-mcp/05-updating-your-agent.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/10-updating-agent-instructions-zapier.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/16-updating-agent-instructions-github.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/21-updating-agent-instructions-hackernews.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/27-updating-agent-instructions-filesystem.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/31-enhancing-memory-configuration.md +2 -2
- package/.docs/raw/course/03-agent-memory/04-creating-basic-memory-agent.md +1 -2
- package/.docs/raw/course/03-agent-memory/08-configuring-conversation-history.md +1 -2
- package/.docs/raw/course/03-agent-memory/16-configuring-semantic-recall.md +3 -4
- package/.docs/raw/course/03-agent-memory/21-configuring-working-memory.md +2 -3
- package/.docs/raw/course/03-agent-memory/22-custom-working-memory-templates.md +2 -3
- package/.docs/raw/course/03-agent-memory/25-combining-memory-features.md +1 -2
- package/.docs/raw/course/03-agent-memory/27-creating-learning-assistant.md +2 -3
- package/.docs/raw/course/04-workflows/11-creating-an-ai-agent.md +2 -3
- package/.docs/raw/deployment/cloud-providers.mdx +20 -0
- package/.docs/raw/deployment/{building-mastra.mdx → mastra-server.mdx} +5 -5
- package/.docs/raw/deployment/monorepo.mdx +23 -44
- package/.docs/raw/deployment/overview.mdx +32 -50
- package/.docs/raw/deployment/web-framework.mdx +15 -19
- package/.docs/raw/evals/custom-scorers.mdx +9 -6
- package/.docs/raw/evals/overview.mdx +3 -6
- package/.docs/raw/evals/running-in-ci.mdx +2 -2
- package/.docs/raw/getting-started/manual-install.mdx +20 -20
- package/.docs/raw/getting-started/mcp-docs-server.mdx +2 -2
- package/.docs/raw/getting-started/start.mdx +10 -1
- package/.docs/raw/getting-started/studio.mdx +1 -1
- package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +4 -4
- package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +1033 -79
- package/.docs/raw/guides/build-your-ui/assistant-ui.mdx +8 -8
- package/.docs/raw/guides/build-your-ui/copilotkit.mdx +11 -11
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/amazon-ec2.mdx +9 -9
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/aws-lambda.mdx +13 -16
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/azure-app-services.mdx +5 -7
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/cloudflare-deployer.mdx +8 -5
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/digital-ocean.mdx +12 -15
- package/.docs/raw/guides/deployment/index.mdx +32 -0
- package/.docs/raw/guides/deployment/inngest.mdx +386 -0
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/netlify-deployer.mdx +7 -3
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/vercel-deployer.mdx +8 -5
- package/.docs/raw/guides/getting-started/astro.mdx +292 -451
- package/.docs/raw/guides/getting-started/express.mdx +72 -153
- package/.docs/raw/guides/getting-started/hono.mdx +227 -0
- package/.docs/raw/guides/getting-started/next-js.mdx +170 -61
- package/.docs/raw/guides/getting-started/quickstart.mdx +4 -4
- package/.docs/raw/guides/getting-started/sveltekit.mdx +238 -409
- package/.docs/raw/guides/getting-started/vite-react.mdx +317 -147
- package/.docs/raw/guides/guide/ai-recruiter.mdx +10 -10
- package/.docs/raw/guides/guide/chef-michel.mdx +9 -11
- package/.docs/raw/guides/guide/notes-mcp-server.mdx +15 -15
- package/.docs/raw/guides/guide/research-assistant.mdx +17 -17
- package/.docs/raw/guides/guide/stock-agent.mdx +5 -5
- package/.docs/raw/guides/guide/web-search.mdx +8 -8
- package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +7 -7
- package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +2 -2
- package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +1 -1
- package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +17 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +6 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +0 -2
- package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +21 -23
- package/.docs/raw/index.mdx +2 -2
- package/.docs/raw/{deployment/mastra-cloud → mastra-cloud}/dashboard.mdx +2 -6
- package/.docs/raw/{deployment/mastra-cloud → mastra-cloud}/observability.mdx +1 -5
- package/.docs/raw/{deployment/mastra-cloud → mastra-cloud}/overview.mdx +2 -6
- package/.docs/raw/{deployment/mastra-cloud → mastra-cloud}/setting-up.mdx +8 -7
- package/.docs/raw/mcp/overview.mdx +31 -13
- package/.docs/raw/mcp/publishing-mcp-server.mdx +2 -2
- package/.docs/raw/memory/memory-processors.mdx +9 -9
- package/.docs/raw/memory/message-history.mdx +69 -0
- package/.docs/raw/memory/overview.mdx +34 -76
- package/.docs/raw/memory/semantic-recall.mdx +58 -49
- package/.docs/raw/memory/storage.mdx +188 -0
- package/.docs/raw/memory/working-memory.mdx +7 -7
- package/.docs/raw/observability/logging.mdx +10 -11
- package/.docs/raw/observability/overview.mdx +0 -1
- package/.docs/raw/observability/tracing/bridges/otel.mdx +2 -2
- package/.docs/raw/observability/tracing/exporters/cloud.mdx +1 -1
- package/.docs/raw/observability/tracing/exporters/default.mdx +3 -3
- package/.docs/raw/observability/tracing/exporters/langfuse.mdx +1 -2
- package/.docs/raw/observability/tracing/overview.mdx +23 -25
- package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +3 -3
- package/.docs/raw/rag/chunking-and-embedding.mdx +18 -31
- package/.docs/raw/rag/graph-rag.mdx +220 -0
- package/.docs/raw/rag/overview.mdx +2 -3
- package/.docs/raw/rag/retrieval.mdx +34 -51
- package/.docs/raw/rag/vector-databases.mdx +29 -25
- package/.docs/raw/reference/agents/agent.mdx +3 -3
- package/.docs/raw/reference/agents/generate.mdx +1 -1
- package/.docs/raw/reference/agents/generateLegacy.mdx +2 -2
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +3 -3
- package/.docs/raw/reference/agents/getDefaultOptions.mdx +3 -3
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +3 -3
- package/.docs/raw/reference/agents/getDescription.mdx +1 -1
- package/.docs/raw/reference/agents/getInstructions.mdx +3 -3
- package/.docs/raw/reference/agents/getLLM.mdx +3 -3
- package/.docs/raw/reference/agents/getMemory.mdx +3 -3
- package/.docs/raw/reference/agents/getModel.mdx +3 -3
- package/.docs/raw/reference/agents/getTools.mdx +2 -2
- package/.docs/raw/reference/agents/getVoice.mdx +2 -2
- package/.docs/raw/reference/agents/listAgents.mdx +2 -2
- package/.docs/raw/reference/agents/listScorers.mdx +3 -3
- package/.docs/raw/reference/agents/listTools.mdx +2 -2
- package/.docs/raw/reference/agents/listWorkflows.mdx +2 -2
- package/.docs/raw/reference/agents/network.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/chat-route.mdx +3 -3
- package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +2 -2
- package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +2 -2
- package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +2 -2
- package/.docs/raw/reference/ai-sdk/network-route.mdx +3 -3
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +6 -6
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-v4-messages.mdx +127 -0
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-v5-messages.mdx +107 -0
- package/.docs/raw/reference/ai-sdk/with-mastra.mdx +1 -1
- package/.docs/raw/reference/ai-sdk/workflow-route.mdx +3 -3
- package/.docs/raw/reference/auth/auth0.mdx +2 -3
- package/.docs/raw/reference/auth/clerk.mdx +2 -3
- package/.docs/raw/reference/auth/firebase.mdx +3 -5
- package/.docs/raw/reference/auth/jwt.mdx +2 -3
- package/.docs/raw/reference/auth/supabase.mdx +2 -3
- package/.docs/raw/reference/auth/workos.mdx +2 -3
- package/.docs/raw/reference/cli/create-mastra.mdx +10 -10
- package/.docs/raw/reference/cli/mastra.mdx +10 -10
- package/.docs/raw/reference/client-js/agents.mdx +1 -2
- package/.docs/raw/reference/client-js/mastra-client.mdx +2 -2
- package/.docs/raw/reference/client-js/workflows.mdx +20 -0
- package/.docs/raw/reference/core/getAgent.mdx +1 -1
- package/.docs/raw/reference/core/getAgentById.mdx +1 -1
- package/.docs/raw/reference/core/getDeployer.mdx +1 -1
- package/.docs/raw/reference/core/getLogger.mdx +1 -1
- package/.docs/raw/reference/core/getMCPServer.mdx +1 -1
- package/.docs/raw/reference/core/getMCPServerById.mdx +1 -1
- package/.docs/raw/reference/core/getMemory.mdx +2 -2
- package/.docs/raw/reference/core/getServer.mdx +3 -3
- package/.docs/raw/reference/core/getStorage.mdx +2 -2
- package/.docs/raw/reference/core/getStoredAgentById.mdx +3 -3
- package/.docs/raw/reference/core/getTelemetry.mdx +1 -1
- package/.docs/raw/reference/core/getVector.mdx +1 -1
- package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
- package/.docs/raw/reference/core/listAgents.mdx +1 -1
- package/.docs/raw/reference/core/listLogs.mdx +1 -1
- package/.docs/raw/reference/core/listLogsByRunId.mdx +1 -1
- package/.docs/raw/reference/core/listMCPServers.mdx +1 -1
- package/.docs/raw/reference/core/listMemory.mdx +2 -2
- package/.docs/raw/reference/core/listStoredAgents.mdx +4 -4
- package/.docs/raw/reference/core/listVectors.mdx +1 -1
- package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
- package/.docs/raw/reference/core/setLogger.mdx +1 -1
- package/.docs/raw/reference/core/setStorage.mdx +2 -2
- package/.docs/raw/reference/core/setTelemetry.mdx +1 -1
- package/.docs/raw/reference/deployer/cloudflare.mdx +1 -2
- package/.docs/raw/reference/deployer/deployer.mdx +0 -1
- package/.docs/raw/reference/deployer/netlify.mdx +1 -1
- package/.docs/raw/reference/deployer/vercel.mdx +2 -4
- package/.docs/raw/reference/evals/answer-relevancy.mdx +1 -1
- package/.docs/raw/reference/evals/answer-similarity.mdx +1 -1
- package/.docs/raw/reference/evals/bias.mdx +1 -1
- package/.docs/raw/reference/evals/completeness.mdx +1 -1
- package/.docs/raw/reference/evals/content-similarity.mdx +1 -1
- package/.docs/raw/reference/evals/context-precision.mdx +1 -1
- package/.docs/raw/reference/evals/faithfulness.mdx +1 -1
- package/.docs/raw/reference/evals/hallucination.mdx +1 -1
- package/.docs/raw/reference/evals/keyword-coverage.mdx +1 -1
- package/.docs/raw/reference/evals/prompt-alignment.mdx +7 -7
- package/.docs/raw/reference/evals/textual-difference.mdx +1 -1
- package/.docs/raw/reference/evals/tone-consistency.mdx +1 -1
- package/.docs/raw/reference/evals/tool-call-accuracy.mdx +10 -10
- package/.docs/raw/reference/evals/toxicity.mdx +1 -1
- package/.docs/raw/reference/logging/pino-logger.mdx +7 -8
- package/.docs/raw/reference/memory/createThread.mdx +2 -2
- package/.docs/raw/reference/memory/deleteMessages.mdx +2 -2
- package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +2 -2
- package/.docs/raw/reference/memory/memory-class.mdx +3 -3
- package/.docs/raw/reference/memory/query.mdx +2 -2
- package/.docs/raw/reference/memory/recall.mdx +2 -2
- package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +1 -1
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +2 -2
- package/.docs/raw/reference/processors/language-detector.mdx +2 -2
- package/.docs/raw/reference/processors/message-history-processor.mdx +2 -2
- package/.docs/raw/reference/processors/moderation-processor.mdx +3 -3
- package/.docs/raw/reference/processors/pii-detector.mdx +3 -3
- package/.docs/raw/reference/processors/processor-interface.mdx +13 -13
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +2 -2
- package/.docs/raw/reference/processors/semantic-recall-processor.mdx +2 -2
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +2 -2
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +2 -2
- package/.docs/raw/reference/processors/tool-call-filter.mdx +3 -3
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +2 -2
- package/.docs/raw/reference/processors/working-memory-processor.mdx +3 -3
- package/.docs/raw/reference/rag/chunk.mdx +1 -1
- package/.docs/raw/reference/rag/database-config.mdx +1 -1
- package/.docs/raw/reference/rag/extract-params.mdx +2 -2
- package/.docs/raw/reference/rag/metadata-filters.mdx +7 -7
- package/.docs/raw/reference/server/create-route.mdx +14 -14
- package/.docs/raw/reference/server/express-adapter.mdx +10 -11
- package/.docs/raw/reference/server/hono-adapter.mdx +10 -11
- package/.docs/raw/reference/server/mastra-server.mdx +22 -22
- package/.docs/raw/reference/server/routes.mdx +28 -1
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +3 -3
- package/.docs/raw/reference/storage/cloudflare.mdx +2 -2
- package/.docs/raw/reference/storage/convex.mdx +6 -6
- package/.docs/raw/reference/storage/dynamodb.mdx +4 -4
- package/.docs/raw/reference/storage/lance.mdx +3 -3
- package/.docs/raw/reference/storage/libsql.mdx +69 -54
- package/.docs/raw/reference/storage/mongodb.mdx +80 -7
- package/.docs/raw/reference/storage/mssql.mdx +4 -4
- package/.docs/raw/{server-db/storage.mdx → reference/storage/overview.mdx} +13 -111
- package/.docs/raw/reference/storage/postgresql.mdx +78 -7
- package/.docs/raw/reference/storage/upstash.mdx +74 -2
- package/.docs/raw/reference/streaming/agents/stream.mdx +27 -5
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +2 -2
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/resumeStream.mdx +1 -1
- package/.docs/raw/reference/streaming/workflows/stream.mdx +35 -22
- package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +4 -4
- package/.docs/raw/reference/templates/overview.mdx +1 -2
- package/.docs/raw/reference/tools/create-tool.mdx +24 -5
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +3 -3
- package/.docs/raw/reference/tools/vector-query-tool.mdx +4 -4
- package/.docs/raw/reference/vectors/astra.mdx +3 -3
- package/.docs/raw/reference/vectors/chroma.mdx +3 -3
- package/.docs/raw/reference/vectors/convex.mdx +12 -12
- package/.docs/raw/reference/vectors/couchbase.mdx +5 -5
- package/.docs/raw/reference/vectors/duckdb.mdx +10 -10
- package/.docs/raw/reference/vectors/elasticsearch.mdx +4 -4
- package/.docs/raw/reference/vectors/lance.mdx +4 -4
- package/.docs/raw/reference/vectors/libsql.mdx +61 -11
- package/.docs/raw/reference/vectors/mongodb.mdx +58 -5
- package/.docs/raw/reference/vectors/pg.mdx +53 -6
- package/.docs/raw/reference/vectors/pinecone.mdx +3 -3
- package/.docs/raw/reference/vectors/qdrant.mdx +3 -3
- package/.docs/raw/reference/vectors/s3vectors.mdx +6 -6
- package/.docs/raw/reference/vectors/turbopuffer.mdx +4 -4
- package/.docs/raw/reference/vectors/upstash.mdx +55 -6
- package/.docs/raw/reference/vectors/vectorize.mdx +3 -3
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/restart.mdx +1 -3
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/start.mdx +2 -2
- package/.docs/raw/reference/workflows/run-methods/startAsync.mdx +143 -0
- package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +5 -5
- package/.docs/raw/reference/workflows/run.mdx +1 -1
- package/.docs/raw/reference/workflows/step.mdx +3 -3
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +37 -2
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +6 -6
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +7 -7
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +2 -2
- package/.docs/raw/reference/workflows/workflow.mdx +17 -3
- package/.docs/raw/{auth → server/auth}/auth0.mdx +20 -14
- package/.docs/raw/{auth → server/auth}/clerk.mdx +16 -9
- package/.docs/raw/{auth → server/auth}/firebase.mdx +21 -15
- package/.docs/raw/{auth → server/auth}/index.mdx +6 -6
- package/.docs/raw/{auth → server/auth}/jwt.mdx +14 -7
- package/.docs/raw/{auth → server/auth}/supabase.mdx +16 -9
- package/.docs/raw/{auth → server/auth}/workos.mdx +19 -13
- package/.docs/raw/{server-db → server}/custom-adapters.mdx +13 -13
- package/.docs/raw/{server-db → server}/custom-api-routes.mdx +3 -5
- package/.docs/raw/{server-db → server}/mastra-client.mdx +26 -15
- package/.docs/raw/{server-db → server}/mastra-server.mdx +8 -8
- package/.docs/raw/{server-db → server}/middleware.mdx +9 -9
- package/.docs/raw/{server-db → server}/request-context.mdx +33 -32
- package/.docs/raw/{server-db → server}/server-adapters.mdx +12 -12
- package/.docs/raw/streaming/events.mdx +14 -7
- package/.docs/raw/streaming/overview.mdx +21 -10
- package/.docs/raw/streaming/tool-streaming.mdx +6 -6
- package/.docs/raw/streaming/workflow-streaming.mdx +6 -8
- package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -2
- package/.docs/raw/tools-mcp/mcp-overview.mdx +31 -12
- package/.docs/raw/tools-mcp/overview.mdx +10 -11
- package/.docs/raw/voice/overview.mdx +1 -1
- package/.docs/raw/workflows/agents-and-tools.mdx +28 -19
- package/.docs/raw/workflows/control-flow.mdx +27 -40
- package/.docs/raw/workflows/error-handling.mdx +172 -18
- package/.docs/raw/workflows/human-in-the-loop.mdx +6 -7
- package/.docs/raw/workflows/inngest-workflow.mdx +8 -9
- package/.docs/raw/workflows/input-data-mapping.mdx +7 -7
- package/.docs/raw/workflows/overview.mdx +34 -23
- package/.docs/raw/workflows/snapshots.mdx +14 -44
- package/.docs/raw/workflows/suspend-and-resume.mdx +7 -7
- package/.docs/raw/workflows/time-travel.mdx +16 -16
- package/.docs/raw/workflows/workflow-state.mdx +5 -8
- package/CHANGELOG.md +23 -0
- package/dist/logger.d.ts +3 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/stdio.js +53 -0
- package/package.json +4 -4
- package/.docs/organized/changelogs/%40internal%2Fai-sdk-v4.md +0 -1
- package/.docs/raw/deployment/cloud-providers/index.mdx +0 -55
- package/.docs/raw/memory/conversation-history.mdx +0 -24
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +0 -140
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -150
- package/.docs/raw/memory/storage/memory-with-pg.mdx +0 -138
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +0 -146
- package/.docs/raw/memory/threads-and-resources.mdx +0 -95
|
@@ -164,7 +164,7 @@ Returns an array of index names (namespaces) as strings.
|
|
|
164
164
|
|
|
165
165
|
Returns:
|
|
166
166
|
|
|
167
|
-
```typescript
|
|
167
|
+
```typescript
|
|
168
168
|
interface IndexStats {
|
|
169
169
|
dimension: number;
|
|
170
170
|
count: number;
|
|
@@ -238,7 +238,7 @@ Upstash Vector supports hybrid search that combines semantic search (dense vecto
|
|
|
238
238
|
|
|
239
239
|
### Basic Hybrid Usage
|
|
240
240
|
|
|
241
|
-
```typescript
|
|
241
|
+
```typescript
|
|
242
242
|
import { UpstashVector } from "@mastra/upstash";
|
|
243
243
|
|
|
244
244
|
const vectorStore = new UpstashVector({
|
|
@@ -275,7 +275,7 @@ const results = await vectorStore.query({
|
|
|
275
275
|
|
|
276
276
|
### Advanced Hybrid Search Options
|
|
277
277
|
|
|
278
|
-
```typescript
|
|
278
|
+
```typescript
|
|
279
279
|
import { FusionAlgorithm, QueryMode } from "@upstash/vector";
|
|
280
280
|
|
|
281
281
|
// Query with specific fusion algorithm
|
|
@@ -307,7 +307,7 @@ const sparseResults = await vectorStore.query({
|
|
|
307
307
|
|
|
308
308
|
### Updating Hybrid Vectors
|
|
309
309
|
|
|
310
|
-
```typescript
|
|
310
|
+
```typescript
|
|
311
311
|
// Update both dense and sparse components
|
|
312
312
|
await vectorStore.updateVector({
|
|
313
313
|
indexName: "hybrid-index",
|
|
@@ -324,7 +324,7 @@ await vectorStore.updateVector({
|
|
|
324
324
|
|
|
325
325
|
Query results are returned in this format:
|
|
326
326
|
|
|
327
|
-
```typescript
|
|
327
|
+
```typescript
|
|
328
328
|
interface QueryResult {
|
|
329
329
|
id: string;
|
|
330
330
|
score: number;
|
|
@@ -337,7 +337,7 @@ interface QueryResult {
|
|
|
337
337
|
|
|
338
338
|
The store throws typed errors that can be caught:
|
|
339
339
|
|
|
340
|
-
```typescript
|
|
340
|
+
```typescript
|
|
341
341
|
try {
|
|
342
342
|
await store.query({
|
|
343
343
|
indexName: "index_name",
|
|
@@ -358,6 +358,55 @@ Required environment variables:
|
|
|
358
358
|
- `UPSTASH_VECTOR_URL`: Your Upstash Vector database URL
|
|
359
359
|
- `UPSTASH_VECTOR_TOKEN`: Your Upstash Vector API token
|
|
360
360
|
|
|
361
|
+
## Usage Example
|
|
362
|
+
|
|
363
|
+
### Local embeddings with fastembed
|
|
364
|
+
|
|
365
|
+
Embeddings are numeric vectors used by memory's `semanticRecall` to retrieve related messages by meaning (not keywords). This setup uses `@mastra/fastembed` to generate vector embeddings.
|
|
366
|
+
|
|
367
|
+
Install `fastembed` to get started:
|
|
368
|
+
|
|
369
|
+
```bash
|
|
370
|
+
npm install @mastra/fastembed@beta
|
|
371
|
+
```
|
|
372
|
+
|
|
373
|
+
Add the following to your agent:
|
|
374
|
+
|
|
375
|
+
```typescript title="src/mastra/agents/example-upstash-agent.ts"
|
|
376
|
+
import { Memory } from "@mastra/memory";
|
|
377
|
+
import { Agent } from "@mastra/core/agent";
|
|
378
|
+
import { UpstashStore, UpstashVector } from "@mastra/upstash";
|
|
379
|
+
import { fastembed } from "@mastra/fastembed";
|
|
380
|
+
|
|
381
|
+
export const upstashAgent = new Agent({
|
|
382
|
+
id: "upstash-agent",
|
|
383
|
+
name: "Upstash Agent",
|
|
384
|
+
instructions:
|
|
385
|
+
"You are an AI agent with the ability to automatically recall memories from previous interactions.",
|
|
386
|
+
model: "openai/gpt-5.1",
|
|
387
|
+
memory: new Memory({
|
|
388
|
+
storage: new UpstashStore({
|
|
389
|
+
id: 'upstash-agent-storage',
|
|
390
|
+
url: process.env.UPSTASH_REDIS_REST_URL!,
|
|
391
|
+
token: process.env.UPSTASH_REDIS_REST_TOKEN!,
|
|
392
|
+
}),
|
|
393
|
+
vector: new UpstashVector({
|
|
394
|
+
id: 'upstash-agent-vector',
|
|
395
|
+
url: process.env.UPSTASH_VECTOR_REST_URL!,
|
|
396
|
+
token: process.env.UPSTASH_VECTOR_REST_TOKEN!,
|
|
397
|
+
}),
|
|
398
|
+
embedder: fastembed,
|
|
399
|
+
options: {
|
|
400
|
+
lastMessages: 10,
|
|
401
|
+
semanticRecall: {
|
|
402
|
+
topK: 3,
|
|
403
|
+
messageRange: 2,
|
|
404
|
+
},
|
|
405
|
+
},
|
|
406
|
+
}),
|
|
407
|
+
});
|
|
408
|
+
```
|
|
409
|
+
|
|
361
410
|
## Related
|
|
362
411
|
|
|
363
412
|
- [Metadata Filters](../rag/metadata-filters)
|
|
@@ -135,7 +135,7 @@ Returns an array of index names as strings.
|
|
|
135
135
|
|
|
136
136
|
Returns:
|
|
137
137
|
|
|
138
|
-
```typescript
|
|
138
|
+
```typescript
|
|
139
139
|
interface IndexStats {
|
|
140
140
|
dimension: number;
|
|
141
141
|
count: number;
|
|
@@ -259,7 +259,7 @@ Deletes a vector and its associated metadata for a specific ID within an index.
|
|
|
259
259
|
|
|
260
260
|
Query results are returned in this format:
|
|
261
261
|
|
|
262
|
-
```typescript
|
|
262
|
+
```typescript
|
|
263
263
|
interface QueryResult {
|
|
264
264
|
id: string;
|
|
265
265
|
score: number;
|
|
@@ -272,7 +272,7 @@ interface QueryResult {
|
|
|
272
272
|
|
|
273
273
|
The store throws typed errors that can be caught:
|
|
274
274
|
|
|
275
|
-
```typescript
|
|
275
|
+
```typescript
|
|
276
276
|
try {
|
|
277
277
|
await store.query({
|
|
278
278
|
indexName: "index_name",
|
|
@@ -9,7 +9,7 @@ The `.cancel()` method cancels a workflow run, stopping execution and cleaning u
|
|
|
9
9
|
|
|
10
10
|
## Usage example
|
|
11
11
|
|
|
12
|
-
```typescript
|
|
12
|
+
```typescript
|
|
13
13
|
const run = await workflow.createRun();
|
|
14
14
|
|
|
15
15
|
await run.cancel();
|
|
@@ -43,7 +43,7 @@ await run.cancel();
|
|
|
43
43
|
|
|
44
44
|
## Extended usage example
|
|
45
45
|
|
|
46
|
-
```typescript
|
|
46
|
+
```typescript
|
|
47
47
|
const run = await workflow.createRun();
|
|
48
48
|
|
|
49
49
|
try {
|
|
@@ -9,13 +9,11 @@ The `.restart()` method restarts an active workflow run that lost connection to
|
|
|
9
9
|
|
|
10
10
|
## Usage example
|
|
11
11
|
|
|
12
|
-
```typescript
|
|
12
|
+
```typescript
|
|
13
13
|
const run = await workflow.createRun();
|
|
14
14
|
|
|
15
15
|
const result = await run.start({ inputData: { value: "initial data" } });
|
|
16
16
|
|
|
17
|
-
//.. server connection lost,
|
|
18
|
-
|
|
19
17
|
const restartedResult = await run.restart();
|
|
20
18
|
```
|
|
21
19
|
|
|
@@ -9,7 +9,7 @@ The `.resume()` method resumes a suspended workflow run with new data, allowing
|
|
|
9
9
|
|
|
10
10
|
## Usage example
|
|
11
11
|
|
|
12
|
-
```typescript
|
|
12
|
+
```typescript
|
|
13
13
|
const run = await workflow.createRun();
|
|
14
14
|
|
|
15
15
|
const result = await run.start({ inputData: { value: "initial data" } });
|
|
@@ -177,7 +177,7 @@ if (result.status === "suspended") {
|
|
|
177
177
|
|
|
178
178
|
## Extended usage example
|
|
179
179
|
|
|
180
|
-
```typescript
|
|
180
|
+
```typescript
|
|
181
181
|
if (result.status === "suspended") {
|
|
182
182
|
const resumedResults = await run.resume({
|
|
183
183
|
step: result.suspended[0],
|
|
@@ -9,7 +9,7 @@ The `.start()` method starts a workflow run with input data, allowing you to exe
|
|
|
9
9
|
|
|
10
10
|
## Usage example
|
|
11
11
|
|
|
12
|
-
```typescript
|
|
12
|
+
```typescript
|
|
13
13
|
const run = await workflow.createRun();
|
|
14
14
|
|
|
15
15
|
const result = await run.start({
|
|
@@ -168,7 +168,7 @@ const result = await run.start({
|
|
|
168
168
|
|
|
169
169
|
## Extended usage example
|
|
170
170
|
|
|
171
|
-
```typescript
|
|
171
|
+
```typescript
|
|
172
172
|
import { RequestContext } from "@mastra/core/request-context";
|
|
173
173
|
|
|
174
174
|
const run = await workflow.createRun();
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Reference: Run.startAsync() | Workflows"
|
|
3
|
+
description: Documentation for the `Run.startAsync()` method in workflows, which starts a workflow run without waiting for completion (fire-and-forget).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Run.startAsync()
|
|
7
|
+
|
|
8
|
+
The `.startAsync()` method starts a workflow run without waiting for completion. It returns immediately with the `runId`, allowing the workflow to execute in the background. This is useful for long-running workflows, scheduled tasks, or when you want to avoid blocking on workflow completion.
|
|
9
|
+
|
|
10
|
+
## Usage example
|
|
11
|
+
|
|
12
|
+
```typescript
|
|
13
|
+
const run = await workflow.createRun();
|
|
14
|
+
|
|
15
|
+
// Fire-and-forget - returns immediately
|
|
16
|
+
const { runId } = await run.startAsync({
|
|
17
|
+
inputData: {
|
|
18
|
+
value: "initial data",
|
|
19
|
+
},
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// Optionally poll for completion later
|
|
23
|
+
const result = await workflow.getWorkflowRunExecutionResult(runId);
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## Parameters
|
|
27
|
+
|
|
28
|
+
<PropertiesTable
|
|
29
|
+
content={[
|
|
30
|
+
{
|
|
31
|
+
name: "inputData",
|
|
32
|
+
type: "z.infer<TInput>",
|
|
33
|
+
description: "Input data that matches the workflow's input schema",
|
|
34
|
+
isOptional: true,
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
name: "requestContext",
|
|
38
|
+
type: "RequestContext",
|
|
39
|
+
description: "Request Context data to use during workflow execution",
|
|
40
|
+
isOptional: true,
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
name: "initialState",
|
|
44
|
+
type: "z.infer<TState>",
|
|
45
|
+
description: "Initial state to use for the workflow execution",
|
|
46
|
+
isOptional: true,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
name: "tracingOptions",
|
|
50
|
+
type: "TracingOptions",
|
|
51
|
+
isOptional: true,
|
|
52
|
+
description: "Options for Tracing configuration.",
|
|
53
|
+
properties: [
|
|
54
|
+
{
|
|
55
|
+
parameters: [
|
|
56
|
+
{
|
|
57
|
+
name: "metadata",
|
|
58
|
+
type: "Record<string, any>",
|
|
59
|
+
isOptional: true,
|
|
60
|
+
description:
|
|
61
|
+
"Metadata to add to the root trace span. Useful for adding custom attributes like user IDs, session IDs, or feature flags.",
|
|
62
|
+
},
|
|
63
|
+
],
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
parameters: [
|
|
67
|
+
{
|
|
68
|
+
name: "traceId",
|
|
69
|
+
type: "string",
|
|
70
|
+
isOptional: true,
|
|
71
|
+
description:
|
|
72
|
+
"Trace ID to use for this execution (1-32 hexadecimal characters). If provided, this trace will be part of the specified trace.",
|
|
73
|
+
},
|
|
74
|
+
],
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: "outputOptions",
|
|
80
|
+
type: "OutputOptions",
|
|
81
|
+
isOptional: true,
|
|
82
|
+
description: "Options for output configuration.",
|
|
83
|
+
properties: [
|
|
84
|
+
{
|
|
85
|
+
parameters: [
|
|
86
|
+
{
|
|
87
|
+
name: "includeState",
|
|
88
|
+
type: "boolean",
|
|
89
|
+
isOptional: true,
|
|
90
|
+
description:
|
|
91
|
+
"Whether to include the workflow run state in the result.",
|
|
92
|
+
},
|
|
93
|
+
],
|
|
94
|
+
},
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
]}
|
|
98
|
+
/>
|
|
99
|
+
|
|
100
|
+
## Returns
|
|
101
|
+
|
|
102
|
+
<PropertiesTable
|
|
103
|
+
content={[
|
|
104
|
+
{
|
|
105
|
+
name: "runId",
|
|
106
|
+
type: "string",
|
|
107
|
+
description:
|
|
108
|
+
"The unique identifier for this workflow run. Use this to check status or retrieve results later.",
|
|
109
|
+
},
|
|
110
|
+
]}
|
|
111
|
+
/>
|
|
112
|
+
|
|
113
|
+
## When to use startAsync()
|
|
114
|
+
|
|
115
|
+
Use `startAsync()` instead of `start()` when:
|
|
116
|
+
|
|
117
|
+
- **Long-running workflows**: The workflow may take minutes or hours to complete
|
|
118
|
+
- **Scheduled/cron triggers**: You want to trigger a workflow without blocking the scheduler
|
|
119
|
+
- **Avoiding polling failures**: With Inngest workflows, `start()` polls for completion which can fail and cause retries. `startAsync()` avoids this issue
|
|
120
|
+
- **Background processing**: You want to queue work and handle results asynchronously
|
|
121
|
+
|
|
122
|
+
## Checking workflow status
|
|
123
|
+
|
|
124
|
+
After calling `startAsync()`, you can check the workflow status using:
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
// Get the execution result (including step outputs)
|
|
128
|
+
const result = await workflow.getWorkflowRunExecutionResult(runId);
|
|
129
|
+
|
|
130
|
+
if (result?.status === 'success') {
|
|
131
|
+
console.log('Workflow completed:', result.steps);
|
|
132
|
+
} else if (result?.status === 'failed') {
|
|
133
|
+
console.log('Workflow failed:', result.error);
|
|
134
|
+
} else if (result?.status === 'running') {
|
|
135
|
+
console.log('Workflow still running...');
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
## Related
|
|
140
|
+
|
|
141
|
+
- [Run.start()](./start) - Start a workflow and wait for completion
|
|
142
|
+
- [Workflows overview](/docs/v1/workflows/overview)
|
|
143
|
+
- [Workflow.createRun()](../workflow-methods/create-run)
|
|
@@ -9,7 +9,7 @@ The `.timeTravel()` method re-executes a workflow starting from any specific ste
|
|
|
9
9
|
|
|
10
10
|
## Usage example
|
|
11
11
|
|
|
12
|
-
```typescript
|
|
12
|
+
```typescript
|
|
13
13
|
const run = await workflow.createRun();
|
|
14
14
|
|
|
15
15
|
const result = await run.timeTravel({
|
|
@@ -213,7 +213,7 @@ const result = await run.timeTravel({
|
|
|
213
213
|
|
|
214
214
|
### Time travel with custom context
|
|
215
215
|
|
|
216
|
-
```typescript
|
|
216
|
+
```typescript
|
|
217
217
|
const result = await run.timeTravel({
|
|
218
218
|
step: "step2",
|
|
219
219
|
context: {
|
|
@@ -230,7 +230,7 @@ const result = await run.timeTravel({
|
|
|
230
230
|
|
|
231
231
|
### Time travel to nested workflow step
|
|
232
232
|
|
|
233
|
-
```typescript
|
|
233
|
+
```typescript
|
|
234
234
|
// Using dot notation
|
|
235
235
|
const result = await run.timeTravel({
|
|
236
236
|
step: "nestedWorkflow.step3",
|
|
@@ -246,7 +246,7 @@ const result = await run.timeTravel({
|
|
|
246
246
|
|
|
247
247
|
### Time travel with initial state
|
|
248
248
|
|
|
249
|
-
```typescript
|
|
249
|
+
```typescript
|
|
250
250
|
const result = await run.timeTravel({
|
|
251
251
|
step: "step2",
|
|
252
252
|
inputData: { value: 10 },
|
|
@@ -259,7 +259,7 @@ const result = await run.timeTravel({
|
|
|
259
259
|
|
|
260
260
|
### Time travel with nested workflows context
|
|
261
261
|
|
|
262
|
-
```typescript
|
|
262
|
+
```typescript
|
|
263
263
|
const result = await run.timeTravel({
|
|
264
264
|
step: "nestedWorkflow.step3",
|
|
265
265
|
context: {
|
|
@@ -10,7 +10,7 @@ It can take either a tool or an agent as a parameter to automatically create a s
|
|
|
10
10
|
|
|
11
11
|
## Usage example
|
|
12
12
|
|
|
13
|
-
```typescript title="src/mastra/workflows/test-workflow.ts"
|
|
13
|
+
```typescript title="src/mastra/workflows/test-workflow.ts"
|
|
14
14
|
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
15
15
|
import { z } from "zod";
|
|
16
16
|
|
|
@@ -38,7 +38,7 @@ You can create a step directly from an agent. The step will use the agent's name
|
|
|
38
38
|
|
|
39
39
|
### Basic agent step
|
|
40
40
|
|
|
41
|
-
```typescript title="src/mastra/workflows/test-workflow.ts"
|
|
41
|
+
```typescript title="src/mastra/workflows/test-workflow.ts"
|
|
42
42
|
import { testAgent } from "../agents/test-agent";
|
|
43
43
|
|
|
44
44
|
const agentStep = createStep(testAgent);
|
|
@@ -50,7 +50,7 @@ const agentStep = createStep(testAgent);
|
|
|
50
50
|
|
|
51
51
|
Pass `structuredOutput` to have the agent return typed structured data:
|
|
52
52
|
|
|
53
|
-
```typescript title="src/mastra/workflows/test-workflow.ts"
|
|
53
|
+
```typescript title="src/mastra/workflows/test-workflow.ts"
|
|
54
54
|
const articleSchema = z.object({
|
|
55
55
|
title: z.string(),
|
|
56
56
|
summary: z.string(),
|
|
@@ -9,7 +9,7 @@ The `.createRun()` method creates a new workflow run instance, allowing you to e
|
|
|
9
9
|
|
|
10
10
|
## Usage example
|
|
11
11
|
|
|
12
|
-
```typescript
|
|
12
|
+
```typescript
|
|
13
13
|
await workflow.createRun();
|
|
14
14
|
```
|
|
15
15
|
|
|
@@ -23,6 +23,18 @@ await workflow.createRun();
|
|
|
23
23
|
description: "Optional custom identifier for the workflow run",
|
|
24
24
|
isOptional: true,
|
|
25
25
|
},
|
|
26
|
+
{
|
|
27
|
+
name: "resourceId",
|
|
28
|
+
type: "string",
|
|
29
|
+
description: "Optional identifier to associate the workflow run with a specific resource (e.g., user ID, tenant ID). This value is persisted with the workflow run and can be used for filtering and querying runs.",
|
|
30
|
+
isOptional: true,
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
name: "disableScorers",
|
|
34
|
+
type: "boolean",
|
|
35
|
+
description: "Optional flag to disable scorers for this workflow run",
|
|
36
|
+
isOptional: true,
|
|
37
|
+
},
|
|
26
38
|
]}
|
|
27
39
|
/>
|
|
28
40
|
|
|
@@ -41,7 +53,7 @@ await workflow.createRun();
|
|
|
41
53
|
|
|
42
54
|
## Extended usage example
|
|
43
55
|
|
|
44
|
-
```typescript
|
|
56
|
+
```typescript
|
|
45
57
|
const workflow = mastra.getWorkflow("workflow");
|
|
46
58
|
|
|
47
59
|
const run = await workflow.createRun();
|
|
@@ -53,6 +65,29 @@ const result = await run.start({
|
|
|
53
65
|
});
|
|
54
66
|
```
|
|
55
67
|
|
|
68
|
+
## Using resourceId
|
|
69
|
+
|
|
70
|
+
The `resourceId` parameter associates a workflow run with a specific resource, such as a user or tenant. This is useful for multi-tenant applications or when you need to track which user initiated a workflow.
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
const workflow = mastra.getWorkflow("workflow");
|
|
74
|
+
|
|
75
|
+
// Create a run associated with a specific user
|
|
76
|
+
const run = await workflow.createRun({
|
|
77
|
+
resourceId: "user-123",
|
|
78
|
+
});
|
|
79
|
+
|
|
80
|
+
const result = await run.start({
|
|
81
|
+
inputData: {
|
|
82
|
+
value: 10,
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
// Later, retrieve the run and access the resourceId
|
|
87
|
+
const storedRun = await workflow.getWorkflowRunById(run.runId);
|
|
88
|
+
console.log(storedRun.resourceId); // "user-123"
|
|
89
|
+
```
|
|
90
|
+
|
|
56
91
|
## Related
|
|
57
92
|
|
|
58
93
|
- [Run Class](../run)
|
|
@@ -9,7 +9,7 @@ The `.foreach()` method creates a loop that executes a step for each item in an
|
|
|
9
9
|
|
|
10
10
|
## Usage example
|
|
11
11
|
|
|
12
|
-
```typescript
|
|
12
|
+
```typescript
|
|
13
13
|
workflow.foreach(step1, { concurrency: 2 });
|
|
14
14
|
```
|
|
15
15
|
|
|
@@ -67,7 +67,7 @@ If you need to run multiple operations per item, use a nested workflow as the st
|
|
|
67
67
|
|
|
68
68
|
`.foreach()` always outputs an array. Each element in the output array corresponds to the result of processing the element at the same index in the input array.
|
|
69
69
|
|
|
70
|
-
```typescript
|
|
70
|
+
```typescript
|
|
71
71
|
// Input: [{ value: 1 }, { value: 2 }, { value: 3 }]
|
|
72
72
|
// Step adds 10 to each value
|
|
73
73
|
// Output: [{ value: 11 }, { value: 12 }, { value: 13 }]
|
|
@@ -77,7 +77,7 @@ If you need to run multiple operations per item, use a nested workflow as the st
|
|
|
77
77
|
|
|
78
78
|
When you chain `.then()` after `.foreach()`, the next step receives the entire output array as its input. This allows you to aggregate or process all results together.
|
|
79
79
|
|
|
80
|
-
```typescript
|
|
80
|
+
```typescript
|
|
81
81
|
workflow
|
|
82
82
|
.foreach(processItemStep) // Output: array of processed items
|
|
83
83
|
.then(aggregateStep) // Input: the entire array
|
|
@@ -88,7 +88,7 @@ workflow
|
|
|
88
88
|
|
|
89
89
|
Use `.map()` to transform the array output before passing it to the next step:
|
|
90
90
|
|
|
91
|
-
```typescript
|
|
91
|
+
```typescript
|
|
92
92
|
workflow
|
|
93
93
|
.foreach(processItemStep)
|
|
94
94
|
.map(async ({ inputData }) => ({
|
|
@@ -103,7 +103,7 @@ workflow
|
|
|
103
103
|
|
|
104
104
|
When you chain `.foreach()` calls, each operates on the array from the previous step:
|
|
105
105
|
|
|
106
|
-
```typescript
|
|
106
|
+
```typescript
|
|
107
107
|
workflow
|
|
108
108
|
.foreach(stepA) // If input is [a, b, c], output is [A, B, C]
|
|
109
109
|
.foreach(stepB) // Operates on [A, B, C], output is [A', B', C']
|
|
@@ -112,7 +112,7 @@ workflow
|
|
|
112
112
|
|
|
113
113
|
If a step inside `.foreach()` returns an array, the output becomes an array of arrays. Use `.map()` with `.flat()` to flatten:
|
|
114
114
|
|
|
115
|
-
```typescript
|
|
115
|
+
```typescript
|
|
116
116
|
workflow
|
|
117
117
|
.foreach(chunkStep) // Output: [[chunk1, chunk2], [chunk3, chunk4]]
|
|
118
118
|
.map(async ({ inputData }) => inputData.flat()) // Output: [chunk1, chunk2, chunk3, chunk4]
|
|
@@ -9,7 +9,7 @@ The `.map()` method maps output data from a previous step to the input of a subs
|
|
|
9
9
|
|
|
10
10
|
## Usage example
|
|
11
11
|
|
|
12
|
-
```typescript
|
|
12
|
+
```typescript
|
|
13
13
|
workflow.map(async ({ inputData }) => `${inputData.value} - map`
|
|
14
14
|
```
|
|
15
15
|
|
|
@@ -43,7 +43,7 @@ workflow.map(async ({ inputData }) => `${inputData.value} - map`
|
|
|
43
43
|
|
|
44
44
|
Use `inputData` to access the full output of the previous step.
|
|
45
45
|
|
|
46
|
-
```typescript {3} filename="src/mastra/workflows/test-workflow.ts"
|
|
46
|
+
```typescript {3} filename="src/mastra/workflows/test-workflow.ts"
|
|
47
47
|
.then(step1)
|
|
48
48
|
.map(({ inputData }) => {
|
|
49
49
|
console.log(inputData);
|
|
@@ -54,7 +54,7 @@ Use `inputData` to access the full output of the previous step.
|
|
|
54
54
|
|
|
55
55
|
Use `getStepResult()` to access the full output of a specific step by referencing the step's instance.
|
|
56
56
|
|
|
57
|
-
```typescript {3} filename="src/mastra/workflows/test-workflow.ts"
|
|
57
|
+
```typescript {3} filename="src/mastra/workflows/test-workflow.ts"
|
|
58
58
|
.then(step1)
|
|
59
59
|
.map(async ({ getStepResult }) => {
|
|
60
60
|
console.log(getStepResult(step1));
|
|
@@ -65,7 +65,7 @@ Use `getStepResult()` to access the full output of a specific step by referencin
|
|
|
65
65
|
|
|
66
66
|
Use `getInitData()` to access the initial input data provided to the workflow.
|
|
67
67
|
|
|
68
|
-
```typescript {3} filename="src/mastra/workflows/test-workflow.ts"
|
|
68
|
+
```typescript {3} filename="src/mastra/workflows/test-workflow.ts"
|
|
69
69
|
.then(step1)
|
|
70
70
|
.map(async ({ getInitData }) => {
|
|
71
71
|
console.log(getInitData());
|
|
@@ -77,7 +77,7 @@ Use `getInitData()` to access the initial input data provided to the workflow.
|
|
|
77
77
|
The object form of `.map()` provides an alternative declarative syntax for mapping fields. Instead of writing a function, you define an object where each key is a new field name and each value uses `mapVariable()` to extract data from previous steps or workflow input.
|
|
78
78
|
Import `mapVariable()` from the workflows module:
|
|
79
79
|
|
|
80
|
-
```typescript filename="src/mastra/workflows/test-workflow.ts"
|
|
80
|
+
```typescript filename="src/mastra/workflows/test-workflow.ts"
|
|
81
81
|
import { mapVariable } from "@mastra/core/workflows";
|
|
82
82
|
```
|
|
83
83
|
|
|
@@ -86,7 +86,7 @@ import { mapVariable } from "@mastra/core/workflows";
|
|
|
86
86
|
Use `mapVariable()` with `step` to extract a specific field from a step's output and map it to a new field name. The `path` parameter specifies which field to extract.
|
|
87
87
|
In this example, the `value` field from `step1`'s output is extracted and mapped to a new field called `details`:
|
|
88
88
|
|
|
89
|
-
```typescript {3-6} filename="src/mastra/workflows/test-workflow.ts"
|
|
89
|
+
```typescript {3-6} filename="src/mastra/workflows/test-workflow.ts"
|
|
90
90
|
.then(step1)
|
|
91
91
|
.map({
|
|
92
92
|
details: mapVariable({
|
|
@@ -101,7 +101,7 @@ In this example, the `value` field from `step1`'s output is extracted and mapped
|
|
|
101
101
|
Use `mapVariable()` with `initData` to extract a specific field from the workflow's initial input data. This is useful when you need to pass the original workflow input to a later step.
|
|
102
102
|
In this example, the `value` field from the workflow's input is extracted and mapped to a field called `details`:
|
|
103
103
|
|
|
104
|
-
```typescript {6-9} filename="src/mastra/workflows/test-workflow.ts"
|
|
104
|
+
```typescript {6-9} filename="src/mastra/workflows/test-workflow.ts"
|
|
105
105
|
export const testWorkflow = createWorkflow({...});
|
|
106
106
|
|
|
107
107
|
testWorkflow
|
|
@@ -9,7 +9,7 @@ The `.sendEvent()` resumes execution when an event is sent.
|
|
|
9
9
|
|
|
10
10
|
## Usage example
|
|
11
11
|
|
|
12
|
-
```typescript
|
|
12
|
+
```typescript
|
|
13
13
|
run.sendEvent("event-name", { value: "data" });
|
|
14
14
|
```
|
|
15
15
|
|
|
@@ -46,7 +46,7 @@ run.sendEvent("event-name", { value: "data" });
|
|
|
46
46
|
|
|
47
47
|
## Extended usage example
|
|
48
48
|
|
|
49
|
-
```typescript
|
|
49
|
+
```typescript
|
|
50
50
|
import { mastra } from "./mastra";
|
|
51
51
|
|
|
52
52
|
const run = await mastra.getWorkflow("testWorkflow").createRun();
|