@mastra/mcp-docs-server 1.1.5 → 1.1.6-alpha.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/.docs/docs/agents/adding-voice.md +349 -0
- package/.docs/docs/agents/agent-approval.md +558 -0
- package/.docs/docs/agents/agent-memory.md +209 -0
- package/.docs/docs/agents/guardrails.md +374 -0
- package/.docs/docs/agents/network-approval.md +275 -0
- package/.docs/docs/agents/networks.md +299 -0
- package/.docs/docs/agents/overview.md +304 -0
- package/.docs/docs/agents/processors.md +622 -0
- package/.docs/docs/agents/structured-output.md +273 -0
- package/.docs/docs/agents/supervisor-agents.md +304 -0
- package/.docs/docs/agents/using-tools.md +214 -0
- package/.docs/docs/build-with-ai/mcp-docs-server.md +238 -0
- package/.docs/docs/build-with-ai/skills.md +35 -0
- package/.docs/docs/community/contributing-templates.md +3 -0
- package/.docs/docs/community/discord.md +9 -0
- package/.docs/docs/community/licensing.md +66 -0
- package/.docs/docs/deployment/cloud-providers.md +15 -0
- package/.docs/docs/deployment/mastra-server.md +122 -0
- package/.docs/docs/deployment/monorepo.md +142 -0
- package/.docs/docs/deployment/overview.md +62 -0
- package/.docs/docs/deployment/studio.md +239 -0
- package/.docs/docs/deployment/web-framework.md +52 -0
- package/.docs/docs/deployment/workflow-runners.md +9 -0
- package/.docs/docs/evals/built-in-scorers.md +47 -0
- package/.docs/docs/evals/custom-scorers.md +519 -0
- package/.docs/docs/evals/overview.md +141 -0
- package/.docs/docs/evals/running-in-ci.md +124 -0
- package/.docs/docs/getting-started/build-with-ai.md +68 -0
- package/.docs/docs/getting-started/manual-install.md +226 -0
- package/.docs/docs/getting-started/project-structure.md +60 -0
- package/.docs/docs/getting-started/start.md +28 -0
- package/.docs/docs/getting-started/studio.md +101 -0
- package/.docs/docs/index.md +43 -0
- package/.docs/docs/mastra-cloud/deployment.md +77 -0
- package/.docs/docs/mastra-cloud/observability.md +38 -0
- package/.docs/docs/mastra-cloud/overview.md +23 -0
- package/.docs/docs/mastra-cloud/setup.md +42 -0
- package/.docs/docs/mastra-cloud/studio.md +24 -0
- package/.docs/docs/mastra-code/configuration.md +299 -0
- package/.docs/docs/mastra-code/customization.md +228 -0
- package/.docs/docs/mastra-code/modes.md +104 -0
- package/.docs/docs/mastra-code/overview.md +135 -0
- package/.docs/docs/mastra-code/tools.md +229 -0
- package/.docs/docs/mcp/overview.md +373 -0
- package/.docs/docs/mcp/publishing-mcp-server.md +95 -0
- package/.docs/docs/memory/memory-processors.md +314 -0
- package/.docs/docs/memory/message-history.md +260 -0
- package/.docs/docs/memory/observational-memory.md +248 -0
- package/.docs/docs/memory/overview.md +45 -0
- package/.docs/docs/memory/semantic-recall.md +272 -0
- package/.docs/docs/memory/storage.md +261 -0
- package/.docs/docs/memory/working-memory.md +400 -0
- package/.docs/docs/observability/datasets/overview.md +198 -0
- package/.docs/docs/observability/datasets/running-experiments.md +274 -0
- package/.docs/docs/observability/logging.md +99 -0
- package/.docs/docs/observability/overview.md +70 -0
- package/.docs/docs/observability/tracing/bridges/otel.md +209 -0
- package/.docs/docs/observability/tracing/exporters/arize.md +272 -0
- package/.docs/docs/observability/tracing/exporters/braintrust.md +111 -0
- package/.docs/docs/observability/tracing/exporters/cloud.md +127 -0
- package/.docs/docs/observability/tracing/exporters/datadog.md +187 -0
- package/.docs/docs/observability/tracing/exporters/default.md +209 -0
- package/.docs/docs/observability/tracing/exporters/laminar.md +100 -0
- package/.docs/docs/observability/tracing/exporters/langfuse.md +213 -0
- package/.docs/docs/observability/tracing/exporters/langsmith.md +198 -0
- package/.docs/docs/observability/tracing/exporters/otel.md +476 -0
- package/.docs/docs/observability/tracing/exporters/posthog.md +148 -0
- package/.docs/docs/observability/tracing/exporters/sentry.md +208 -0
- package/.docs/docs/observability/tracing/overview.md +1112 -0
- package/.docs/docs/observability/tracing/processors/sensitive-data-filter.md +300 -0
- package/.docs/docs/rag/chunking-and-embedding.md +183 -0
- package/.docs/docs/rag/graph-rag.md +215 -0
- package/.docs/docs/rag/overview.md +72 -0
- package/.docs/docs/rag/retrieval.md +515 -0
- package/.docs/docs/rag/vector-databases.md +645 -0
- package/.docs/docs/server/auth/auth0.md +220 -0
- package/.docs/docs/server/auth/better-auth.md +203 -0
- package/.docs/docs/server/auth/clerk.md +132 -0
- package/.docs/docs/server/auth/composite-auth.md +234 -0
- package/.docs/docs/server/auth/custom-auth-provider.md +513 -0
- package/.docs/docs/server/auth/firebase.md +272 -0
- package/.docs/docs/server/auth/jwt.md +110 -0
- package/.docs/docs/server/auth/simple-auth.md +180 -0
- package/.docs/docs/server/auth/supabase.md +117 -0
- package/.docs/docs/server/auth/workos.md +186 -0
- package/.docs/docs/server/auth.md +38 -0
- package/.docs/docs/server/custom-adapters.md +378 -0
- package/.docs/docs/server/custom-api-routes.md +267 -0
- package/.docs/docs/server/mastra-client.md +243 -0
- package/.docs/docs/server/mastra-server.md +71 -0
- package/.docs/docs/server/middleware.md +225 -0
- package/.docs/docs/server/request-context.md +471 -0
- package/.docs/docs/server/server-adapters.md +547 -0
- package/.docs/docs/streaming/events.md +237 -0
- package/.docs/docs/streaming/overview.md +175 -0
- package/.docs/docs/streaming/tool-streaming.md +175 -0
- package/.docs/docs/streaming/workflow-streaming.md +109 -0
- package/.docs/docs/voice/overview.md +959 -0
- package/.docs/docs/voice/speech-to-speech.md +102 -0
- package/.docs/docs/voice/speech-to-text.md +79 -0
- package/.docs/docs/voice/text-to-speech.md +83 -0
- package/.docs/docs/workflows/agents-and-tools.md +166 -0
- package/.docs/docs/workflows/control-flow.md +822 -0
- package/.docs/docs/workflows/error-handling.md +360 -0
- package/.docs/docs/workflows/human-in-the-loop.md +215 -0
- package/.docs/docs/workflows/overview.md +370 -0
- package/.docs/docs/workflows/snapshots.md +238 -0
- package/.docs/docs/workflows/suspend-and-resume.md +205 -0
- package/.docs/docs/workflows/time-travel.md +309 -0
- package/.docs/docs/workflows/workflow-state.md +181 -0
- package/.docs/docs/workspace/filesystem.md +164 -0
- package/.docs/docs/workspace/overview.md +239 -0
- package/.docs/docs/workspace/sandbox.md +63 -0
- package/.docs/docs/workspace/search.md +243 -0
- package/.docs/docs/workspace/skills.md +169 -0
- package/.docs/guides/agent-frameworks/ai-sdk.md +140 -0
- package/.docs/guides/build-your-ui/ai-sdk-ui.md +1499 -0
- package/.docs/guides/build-your-ui/assistant-ui.md +156 -0
- package/.docs/guides/build-your-ui/copilotkit.md +289 -0
- package/.docs/guides/deployment/amazon-ec2.md +130 -0
- package/.docs/guides/deployment/aws-lambda.md +248 -0
- package/.docs/guides/deployment/azure-app-services.md +114 -0
- package/.docs/guides/deployment/cloudflare.md +99 -0
- package/.docs/guides/deployment/digital-ocean.md +168 -0
- package/.docs/guides/deployment/inngest.md +682 -0
- package/.docs/guides/deployment/netlify.md +77 -0
- package/.docs/guides/deployment/vercel.md +101 -0
- package/.docs/guides/getting-started/astro.md +398 -0
- package/.docs/guides/getting-started/electron.md +504 -0
- package/.docs/guides/getting-started/express.md +251 -0
- package/.docs/guides/getting-started/hono.md +190 -0
- package/.docs/guides/getting-started/next-js.md +347 -0
- package/.docs/guides/getting-started/nuxt.md +497 -0
- package/.docs/guides/getting-started/quickstart.md +67 -0
- package/.docs/guides/getting-started/sveltekit.md +296 -0
- package/.docs/guides/getting-started/vite-react.md +425 -0
- package/.docs/guides/guide/ai-recruiter.md +226 -0
- package/.docs/guides/guide/chef-michel.md +211 -0
- package/.docs/guides/guide/code-review-bot.md +226 -0
- package/.docs/guides/guide/dev-assistant.md +307 -0
- package/.docs/guides/guide/docs-manager.md +238 -0
- package/.docs/guides/guide/github-actions-pr-description.md +236 -0
- package/.docs/guides/guide/notes-mcp-server.md +416 -0
- package/.docs/guides/guide/research-assistant.md +348 -0
- package/.docs/guides/guide/research-coordinator.md +416 -0
- package/.docs/guides/guide/stock-agent.md +132 -0
- package/.docs/guides/guide/web-search.md +320 -0
- package/.docs/guides/guide/whatsapp-chat-bot.md +405 -0
- package/.docs/guides/index.md +3 -0
- package/.docs/guides/migrations/agentnetwork.md +97 -0
- package/.docs/guides/migrations/ai-sdk-v4-to-v5.md +112 -0
- package/.docs/guides/migrations/network-to-supervisor.md +261 -0
- package/.docs/guides/migrations/upgrade-to-v1/agent.md +404 -0
- package/.docs/guides/migrations/upgrade-to-v1/cli.md +57 -0
- package/.docs/guides/migrations/upgrade-to-v1/client.md +337 -0
- package/.docs/guides/migrations/upgrade-to-v1/deployment.md +37 -0
- package/.docs/guides/migrations/upgrade-to-v1/evals.md +239 -0
- package/.docs/guides/migrations/upgrade-to-v1/mastra.md +143 -0
- package/.docs/guides/migrations/upgrade-to-v1/mcp.md +97 -0
- package/.docs/guides/migrations/upgrade-to-v1/memory.md +285 -0
- package/.docs/guides/migrations/upgrade-to-v1/overview.md +119 -0
- package/.docs/guides/migrations/upgrade-to-v1/processors.md +68 -0
- package/.docs/guides/migrations/upgrade-to-v1/rag.md +42 -0
- package/.docs/guides/migrations/upgrade-to-v1/storage.md +553 -0
- package/.docs/guides/migrations/upgrade-to-v1/tools.md +180 -0
- package/.docs/guides/migrations/upgrade-to-v1/tracing.md +412 -0
- package/.docs/guides/migrations/upgrade-to-v1/vectors.md +87 -0
- package/.docs/guides/migrations/upgrade-to-v1/voice.md +30 -0
- package/.docs/guides/migrations/upgrade-to-v1/workflows.md +341 -0
- package/.docs/guides/migrations/vnext-to-standard-apis.md +362 -0
- package/.docs/models/embeddings.md +161 -0
- package/.docs/models/gateways/azure-openai.md +128 -0
- package/.docs/models/gateways/custom-gateways.md +545 -0
- package/.docs/models/gateways/netlify.md +88 -0
- package/.docs/models/gateways/openrouter.md +219 -0
- package/.docs/models/gateways/vercel.md +225 -0
- package/.docs/models/gateways.md +14 -0
- package/.docs/models/index.md +286 -0
- package/.docs/models/providers/302ai.md +134 -0
- package/.docs/models/providers/abacus.md +125 -0
- package/.docs/models/providers/agentrouter.md +90 -0
- package/.docs/models/providers/aihubmix.md +107 -0
- package/.docs/models/providers/alibaba-cn.md +135 -0
- package/.docs/models/providers/alibaba.md +111 -0
- package/.docs/models/providers/amazon-bedrock.md +33 -0
- package/.docs/models/providers/anthropic.md +153 -0
- package/.docs/models/providers/azure.md +33 -0
- package/.docs/models/providers/bailing.md +72 -0
- package/.docs/models/providers/baseten.md +77 -0
- package/.docs/models/providers/berget.md +78 -0
- package/.docs/models/providers/cerebras.md +101 -0
- package/.docs/models/providers/chutes.md +136 -0
- package/.docs/models/providers/cloudflare-ai-gateway.md +33 -0
- package/.docs/models/providers/cloudflare-workers-ai.md +109 -0
- package/.docs/models/providers/cohere.md +33 -0
- package/.docs/models/providers/cortecs.md +91 -0
- package/.docs/models/providers/deepinfra.md +112 -0
- package/.docs/models/providers/deepseek.md +88 -0
- package/.docs/models/providers/fastrouter.md +84 -0
- package/.docs/models/providers/fireworks-ai.md +89 -0
- package/.docs/models/providers/firmware.md +85 -0
- package/.docs/models/providers/friendli.md +78 -0
- package/.docs/models/providers/github-models.md +125 -0
- package/.docs/models/providers/google-vertex.md +33 -0
- package/.docs/models/providers/google.md +159 -0
- package/.docs/models/providers/groq.md +107 -0
- package/.docs/models/providers/helicone.md +161 -0
- package/.docs/models/providers/huggingface.md +90 -0
- package/.docs/models/providers/iflowcn.md +84 -0
- package/.docs/models/providers/inception.md +72 -0
- package/.docs/models/providers/inference.md +79 -0
- package/.docs/models/providers/io-intelligence.md +87 -0
- package/.docs/models/providers/io-net.md +87 -0
- package/.docs/models/providers/jiekou.md +131 -0
- package/.docs/models/providers/kilo.md +333 -0
- package/.docs/models/providers/kimi-for-coding.md +100 -0
- package/.docs/models/providers/kuae-cloud-coding-plan.md +71 -0
- package/.docs/models/providers/llama.md +77 -0
- package/.docs/models/providers/lmstudio.md +73 -0
- package/.docs/models/providers/lucidquery.md +72 -0
- package/.docs/models/providers/minimax-cn-coding-plan.md +102 -0
- package/.docs/models/providers/minimax-cn.md +102 -0
- package/.docs/models/providers/minimax-coding-plan.md +102 -0
- package/.docs/models/providers/minimax.md +104 -0
- package/.docs/models/providers/mistral.md +124 -0
- package/.docs/models/providers/moark.md +72 -0
- package/.docs/models/providers/modelscope.md +77 -0
- package/.docs/models/providers/moonshotai-cn.md +76 -0
- package/.docs/models/providers/moonshotai.md +76 -0
- package/.docs/models/providers/morph.md +73 -0
- package/.docs/models/providers/nano-gpt.md +103 -0
- package/.docs/models/providers/nebius.md +116 -0
- package/.docs/models/providers/nova.md +72 -0
- package/.docs/models/providers/novita-ai.md +154 -0
- package/.docs/models/providers/nvidia.md +141 -0
- package/.docs/models/providers/ollama-cloud.md +103 -0
- package/.docs/models/providers/ollama.md +33 -0
- package/.docs/models/providers/openai.md +193 -0
- package/.docs/models/providers/opencode.md +100 -0
- package/.docs/models/providers/ovhcloud.md +83 -0
- package/.docs/models/providers/perplexity.md +100 -0
- package/.docs/models/providers/poe.md +183 -0
- package/.docs/models/providers/privatemode-ai.md +75 -0
- package/.docs/models/providers/requesty.md +90 -0
- package/.docs/models/providers/scaleway.md +84 -0
- package/.docs/models/providers/siliconflow-cn.md +138 -0
- package/.docs/models/providers/siliconflow.md +140 -0
- package/.docs/models/providers/stackit.md +78 -0
- package/.docs/models/providers/stepfun.md +73 -0
- package/.docs/models/providers/submodel.md +79 -0
- package/.docs/models/providers/synthetic.md +96 -0
- package/.docs/models/providers/togetherai.md +115 -0
- package/.docs/models/providers/upstage.md +73 -0
- package/.docs/models/providers/venice.md +95 -0
- package/.docs/models/providers/vivgrid.md +106 -0
- package/.docs/models/providers/vultr.md +75 -0
- package/.docs/models/providers/wandb.md +80 -0
- package/.docs/models/providers/xai.md +141 -0
- package/.docs/models/providers/xiaomi.md +71 -0
- package/.docs/models/providers/zai-coding-plan.md +80 -0
- package/.docs/models/providers/zai.md +79 -0
- package/.docs/models/providers/zenmux.md +161 -0
- package/.docs/models/providers/zhipuai-coding-plan.md +79 -0
- package/.docs/models/providers/zhipuai.md +79 -0
- package/.docs/models/providers.md +81 -0
- package/.docs/reference/agents/agent.md +141 -0
- package/.docs/reference/agents/generate.md +186 -0
- package/.docs/reference/agents/generateLegacy.md +173 -0
- package/.docs/reference/agents/getDefaultGenerateOptions.md +36 -0
- package/.docs/reference/agents/getDefaultOptions.md +34 -0
- package/.docs/reference/agents/getDefaultStreamOptions.md +36 -0
- package/.docs/reference/agents/getDescription.md +21 -0
- package/.docs/reference/agents/getInstructions.md +34 -0
- package/.docs/reference/agents/getLLM.md +37 -0
- package/.docs/reference/agents/getMemory.md +34 -0
- package/.docs/reference/agents/getModel.md +34 -0
- package/.docs/reference/agents/getTools.md +29 -0
- package/.docs/reference/agents/getVoice.md +34 -0
- package/.docs/reference/agents/listAgents.md +35 -0
- package/.docs/reference/agents/listScorers.md +34 -0
- package/.docs/reference/agents/listTools.md +34 -0
- package/.docs/reference/agents/listWorkflows.md +34 -0
- package/.docs/reference/agents/network.md +133 -0
- package/.docs/reference/ai-sdk/chat-route.md +82 -0
- package/.docs/reference/ai-sdk/handle-chat-stream.md +53 -0
- package/.docs/reference/ai-sdk/handle-network-stream.md +37 -0
- package/.docs/reference/ai-sdk/handle-workflow-stream.md +55 -0
- package/.docs/reference/ai-sdk/network-route.md +74 -0
- package/.docs/reference/ai-sdk/to-ai-sdk-stream.md +231 -0
- package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +79 -0
- package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +76 -0
- package/.docs/reference/ai-sdk/with-mastra.md +59 -0
- package/.docs/reference/ai-sdk/workflow-route.md +79 -0
- package/.docs/reference/auth/auth0.md +73 -0
- package/.docs/reference/auth/better-auth.md +71 -0
- package/.docs/reference/auth/clerk.md +36 -0
- package/.docs/reference/auth/firebase.md +80 -0
- package/.docs/reference/auth/jwt.md +26 -0
- package/.docs/reference/auth/supabase.md +33 -0
- package/.docs/reference/auth/workos.md +84 -0
- package/.docs/reference/cli/create-mastra.md +137 -0
- package/.docs/reference/cli/mastra.md +336 -0
- package/.docs/reference/client-js/agents.md +437 -0
- package/.docs/reference/client-js/error-handling.md +16 -0
- package/.docs/reference/client-js/logs.md +24 -0
- package/.docs/reference/client-js/mastra-client.md +63 -0
- package/.docs/reference/client-js/memory.md +221 -0
- package/.docs/reference/client-js/observability.md +72 -0
- package/.docs/reference/client-js/telemetry.md +20 -0
- package/.docs/reference/client-js/tools.md +44 -0
- package/.docs/reference/client-js/vectors.md +79 -0
- package/.docs/reference/client-js/workflows.md +199 -0
- package/.docs/reference/configuration.md +752 -0
- package/.docs/reference/core/addGateway.md +42 -0
- package/.docs/reference/core/getAgent.md +21 -0
- package/.docs/reference/core/getAgentById.md +21 -0
- package/.docs/reference/core/getDeployer.md +22 -0
- package/.docs/reference/core/getGateway.md +38 -0
- package/.docs/reference/core/getGatewayById.md +41 -0
- package/.docs/reference/core/getLogger.md +22 -0
- package/.docs/reference/core/getMCPServer.md +47 -0
- package/.docs/reference/core/getMCPServerById.md +55 -0
- package/.docs/reference/core/getMemory.md +50 -0
- package/.docs/reference/core/getScorer.md +54 -0
- package/.docs/reference/core/getScorerById.md +54 -0
- package/.docs/reference/core/getServer.md +22 -0
- package/.docs/reference/core/getStorage.md +22 -0
- package/.docs/reference/core/getStoredAgentById.md +89 -0
- package/.docs/reference/core/getTelemetry.md +22 -0
- package/.docs/reference/core/getVector.md +22 -0
- package/.docs/reference/core/getWorkflow.md +42 -0
- package/.docs/reference/core/listAgents.md +21 -0
- package/.docs/reference/core/listGateways.md +40 -0
- package/.docs/reference/core/listLogs.md +38 -0
- package/.docs/reference/core/listLogsByRunId.md +36 -0
- package/.docs/reference/core/listMCPServers.md +55 -0
- package/.docs/reference/core/listMemory.md +56 -0
- package/.docs/reference/core/listScorers.md +29 -0
- package/.docs/reference/core/listStoredAgents.md +93 -0
- package/.docs/reference/core/listVectors.md +22 -0
- package/.docs/reference/core/listWorkflows.md +21 -0
- package/.docs/reference/core/mastra-class.md +66 -0
- package/.docs/reference/core/mastra-model-gateway.md +153 -0
- package/.docs/reference/core/setLogger.md +26 -0
- package/.docs/reference/core/setStorage.md +27 -0
- package/.docs/reference/datasets/addItem.md +37 -0
- package/.docs/reference/datasets/addItems.md +35 -0
- package/.docs/reference/datasets/compareExperiments.md +52 -0
- package/.docs/reference/datasets/create.md +51 -0
- package/.docs/reference/datasets/dataset.md +82 -0
- package/.docs/reference/datasets/datasets-manager.md +94 -0
- package/.docs/reference/datasets/delete.md +25 -0
- package/.docs/reference/datasets/deleteExperiment.md +27 -0
- package/.docs/reference/datasets/deleteItem.md +27 -0
- package/.docs/reference/datasets/deleteItems.md +29 -0
- package/.docs/reference/datasets/get.md +31 -0
- package/.docs/reference/datasets/getDetails.md +47 -0
- package/.docs/reference/datasets/getExperiment.md +30 -0
- package/.docs/reference/datasets/getItem.md +33 -0
- package/.docs/reference/datasets/getItemHistory.md +31 -0
- package/.docs/reference/datasets/list.md +31 -0
- package/.docs/reference/datasets/listExperimentResults.md +39 -0
- package/.docs/reference/datasets/listExperiments.md +33 -0
- package/.docs/reference/datasets/listItems.md +46 -0
- package/.docs/reference/datasets/listVersions.md +33 -0
- package/.docs/reference/datasets/startExperiment.md +62 -0
- package/.docs/reference/datasets/startExperimentAsync.md +43 -0
- package/.docs/reference/datasets/update.md +48 -0
- package/.docs/reference/datasets/updateItem.md +38 -0
- package/.docs/reference/deployer/cloudflare.md +79 -0
- package/.docs/reference/deployer/netlify.md +80 -0
- package/.docs/reference/deployer/vercel.md +91 -0
- package/.docs/reference/deployer.md +100 -0
- package/.docs/reference/evals/answer-relevancy.md +105 -0
- package/.docs/reference/evals/answer-similarity.md +99 -0
- package/.docs/reference/evals/bias.md +120 -0
- package/.docs/reference/evals/completeness.md +136 -0
- package/.docs/reference/evals/content-similarity.md +101 -0
- package/.docs/reference/evals/context-precision.md +196 -0
- package/.docs/reference/evals/context-relevance.md +531 -0
- package/.docs/reference/evals/create-scorer.md +270 -0
- package/.docs/reference/evals/faithfulness.md +114 -0
- package/.docs/reference/evals/hallucination.md +213 -0
- package/.docs/reference/evals/keyword-coverage.md +128 -0
- package/.docs/reference/evals/mastra-scorer.md +123 -0
- package/.docs/reference/evals/noise-sensitivity.md +675 -0
- package/.docs/reference/evals/prompt-alignment.md +614 -0
- package/.docs/reference/evals/run-evals.md +179 -0
- package/.docs/reference/evals/scorer-utils.md +326 -0
- package/.docs/reference/evals/textual-difference.md +113 -0
- package/.docs/reference/evals/tone-consistency.md +119 -0
- package/.docs/reference/evals/tool-call-accuracy.md +533 -0
- package/.docs/reference/evals/toxicity.md +123 -0
- package/.docs/reference/harness/harness-class.md +708 -0
- package/.docs/reference/index.md +277 -0
- package/.docs/reference/logging/pino-logger.md +117 -0
- package/.docs/reference/mastra-code/createMastraCode.md +108 -0
- package/.docs/reference/memory/clone-utilities.md +199 -0
- package/.docs/reference/memory/cloneThread.md +130 -0
- package/.docs/reference/memory/createThread.md +68 -0
- package/.docs/reference/memory/deleteMessages.md +38 -0
- package/.docs/reference/memory/getThreadById.md +24 -0
- package/.docs/reference/memory/listThreads.md +145 -0
- package/.docs/reference/memory/memory-class.md +147 -0
- package/.docs/reference/memory/observational-memory.md +565 -0
- package/.docs/reference/memory/recall.md +91 -0
- package/.docs/reference/observability/tracing/bridges/otel.md +131 -0
- package/.docs/reference/observability/tracing/configuration.md +178 -0
- package/.docs/reference/observability/tracing/exporters/arize.md +141 -0
- package/.docs/reference/observability/tracing/exporters/braintrust.md +93 -0
- package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +163 -0
- package/.docs/reference/observability/tracing/exporters/console-exporter.md +138 -0
- package/.docs/reference/observability/tracing/exporters/datadog.md +116 -0
- package/.docs/reference/observability/tracing/exporters/default-exporter.md +174 -0
- package/.docs/reference/observability/tracing/exporters/laminar.md +78 -0
- package/.docs/reference/observability/tracing/exporters/langfuse.md +134 -0
- package/.docs/reference/observability/tracing/exporters/langsmith.md +108 -0
- package/.docs/reference/observability/tracing/exporters/otel.md +199 -0
- package/.docs/reference/observability/tracing/exporters/posthog.md +92 -0
- package/.docs/reference/observability/tracing/exporters/sentry.md +184 -0
- package/.docs/reference/observability/tracing/instances.md +107 -0
- package/.docs/reference/observability/tracing/interfaces.md +743 -0
- package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +144 -0
- package/.docs/reference/observability/tracing/spans.md +224 -0
- package/.docs/reference/processors/batch-parts-processor.md +61 -0
- package/.docs/reference/processors/language-detector.md +82 -0
- package/.docs/reference/processors/message-history-processor.md +85 -0
- package/.docs/reference/processors/moderation-processor.md +104 -0
- package/.docs/reference/processors/pii-detector.md +108 -0
- package/.docs/reference/processors/processor-interface.md +521 -0
- package/.docs/reference/processors/prompt-injection-detector.md +72 -0
- package/.docs/reference/processors/semantic-recall-processor.md +117 -0
- package/.docs/reference/processors/system-prompt-scrubber.md +80 -0
- package/.docs/reference/processors/token-limiter-processor.md +115 -0
- package/.docs/reference/processors/tool-call-filter.md +85 -0
- package/.docs/reference/processors/tool-search-processor.md +111 -0
- package/.docs/reference/processors/unicode-normalizer.md +62 -0
- package/.docs/reference/processors/working-memory-processor.md +152 -0
- package/.docs/reference/rag/chunk.md +221 -0
- package/.docs/reference/rag/database-config.md +261 -0
- package/.docs/reference/rag/document.md +114 -0
- package/.docs/reference/rag/embeddings.md +92 -0
- package/.docs/reference/rag/extract-params.md +168 -0
- package/.docs/reference/rag/graph-rag.md +111 -0
- package/.docs/reference/rag/metadata-filters.md +216 -0
- package/.docs/reference/rag/rerank.md +75 -0
- package/.docs/reference/rag/rerankWithScorer.md +80 -0
- package/.docs/reference/server/create-route.md +262 -0
- package/.docs/reference/server/express-adapter.md +176 -0
- package/.docs/reference/server/fastify-adapter.md +90 -0
- package/.docs/reference/server/hono-adapter.md +162 -0
- package/.docs/reference/server/koa-adapter.md +127 -0
- package/.docs/reference/server/mastra-server.md +298 -0
- package/.docs/reference/server/register-api-route.md +249 -0
- package/.docs/reference/server/routes.md +306 -0
- package/.docs/reference/storage/cloudflare-d1.md +218 -0
- package/.docs/reference/storage/cloudflare.md +88 -0
- package/.docs/reference/storage/composite.md +235 -0
- package/.docs/reference/storage/convex.md +161 -0
- package/.docs/reference/storage/dynamodb.md +282 -0
- package/.docs/reference/storage/lance.md +131 -0
- package/.docs/reference/storage/libsql.md +135 -0
- package/.docs/reference/storage/mongodb.md +262 -0
- package/.docs/reference/storage/mssql.md +157 -0
- package/.docs/reference/storage/overview.md +121 -0
- package/.docs/reference/storage/postgresql.md +526 -0
- package/.docs/reference/storage/upstash.md +160 -0
- package/.docs/reference/streaming/ChunkType.md +292 -0
- package/.docs/reference/streaming/agents/MastraModelOutput.md +182 -0
- package/.docs/reference/streaming/agents/stream.md +221 -0
- package/.docs/reference/streaming/agents/streamLegacy.md +142 -0
- package/.docs/reference/streaming/workflows/observeStream.md +42 -0
- package/.docs/reference/streaming/workflows/resumeStream.md +61 -0
- package/.docs/reference/streaming/workflows/stream.md +88 -0
- package/.docs/reference/streaming/workflows/timeTravelStream.md +142 -0
- package/.docs/reference/templates/overview.md +194 -0
- package/.docs/reference/tools/create-tool.md +237 -0
- package/.docs/reference/tools/document-chunker-tool.md +89 -0
- package/.docs/reference/tools/graph-rag-tool.md +182 -0
- package/.docs/reference/tools/mcp-client.md +954 -0
- package/.docs/reference/tools/mcp-server.md +1271 -0
- package/.docs/reference/tools/vector-query-tool.md +459 -0
- package/.docs/reference/vectors/astra.md +121 -0
- package/.docs/reference/vectors/chroma.md +264 -0
- package/.docs/reference/vectors/convex.md +300 -0
- package/.docs/reference/vectors/couchbase.md +226 -0
- package/.docs/reference/vectors/duckdb.md +318 -0
- package/.docs/reference/vectors/elasticsearch.md +189 -0
- package/.docs/reference/vectors/lance.md +220 -0
- package/.docs/reference/vectors/libsql.md +305 -0
- package/.docs/reference/vectors/mongodb.md +295 -0
- package/.docs/reference/vectors/opensearch.md +99 -0
- package/.docs/reference/vectors/pg.md +408 -0
- package/.docs/reference/vectors/pinecone.md +168 -0
- package/.docs/reference/vectors/qdrant.md +222 -0
- package/.docs/reference/vectors/s3vectors.md +277 -0
- package/.docs/reference/vectors/turbopuffer.md +157 -0
- package/.docs/reference/vectors/upstash.md +294 -0
- package/.docs/reference/vectors/vectorize.md +147 -0
- package/.docs/reference/voice/azure.md +148 -0
- package/.docs/reference/voice/cloudflare.md +83 -0
- package/.docs/reference/voice/composite-voice.md +121 -0
- package/.docs/reference/voice/deepgram.md +79 -0
- package/.docs/reference/voice/elevenlabs.md +98 -0
- package/.docs/reference/voice/google-gemini-live.md +378 -0
- package/.docs/reference/voice/google.md +228 -0
- package/.docs/reference/voice/mastra-voice.md +311 -0
- package/.docs/reference/voice/murf.md +122 -0
- package/.docs/reference/voice/openai-realtime.md +203 -0
- package/.docs/reference/voice/openai.md +88 -0
- package/.docs/reference/voice/playai.md +80 -0
- package/.docs/reference/voice/sarvam.md +126 -0
- package/.docs/reference/voice/speechify.md +75 -0
- package/.docs/reference/voice/voice.addInstructions.md +55 -0
- package/.docs/reference/voice/voice.addTools.md +67 -0
- package/.docs/reference/voice/voice.answer.md +54 -0
- package/.docs/reference/voice/voice.close.md +51 -0
- package/.docs/reference/voice/voice.connect.md +94 -0
- package/.docs/reference/voice/voice.events.md +37 -0
- package/.docs/reference/voice/voice.getSpeakers.md +129 -0
- package/.docs/reference/voice/voice.listen.md +164 -0
- package/.docs/reference/voice/voice.off.md +54 -0
- package/.docs/reference/voice/voice.on.md +111 -0
- package/.docs/reference/voice/voice.send.md +65 -0
- package/.docs/reference/voice/voice.speak.md +157 -0
- package/.docs/reference/voice/voice.updateConfig.md +60 -0
- package/.docs/reference/workflows/run-methods/cancel.md +86 -0
- package/.docs/reference/workflows/run-methods/restart.md +33 -0
- package/.docs/reference/workflows/run-methods/resume.md +59 -0
- package/.docs/reference/workflows/run-methods/start.md +58 -0
- package/.docs/reference/workflows/run-methods/startAsync.md +67 -0
- package/.docs/reference/workflows/run-methods/timeTravel.md +142 -0
- package/.docs/reference/workflows/run.md +59 -0
- package/.docs/reference/workflows/step.md +119 -0
- package/.docs/reference/workflows/workflow-methods/branch.md +25 -0
- package/.docs/reference/workflows/workflow-methods/commit.md +17 -0
- package/.docs/reference/workflows/workflow-methods/create-run.md +63 -0
- package/.docs/reference/workflows/workflow-methods/dountil.md +25 -0
- package/.docs/reference/workflows/workflow-methods/dowhile.md +25 -0
- package/.docs/reference/workflows/workflow-methods/foreach.md +118 -0
- package/.docs/reference/workflows/workflow-methods/map.md +93 -0
- package/.docs/reference/workflows/workflow-methods/parallel.md +21 -0
- package/.docs/reference/workflows/workflow-methods/sleep.md +35 -0
- package/.docs/reference/workflows/workflow-methods/sleepUntil.md +35 -0
- package/.docs/reference/workflows/workflow-methods/then.md +21 -0
- package/.docs/reference/workflows/workflow.md +157 -0
- package/.docs/reference/workspace/e2b-sandbox.md +289 -0
- package/.docs/reference/workspace/filesystem.md +255 -0
- package/.docs/reference/workspace/gcs-filesystem.md +174 -0
- package/.docs/reference/workspace/local-filesystem.md +343 -0
- package/.docs/reference/workspace/local-sandbox.md +301 -0
- package/.docs/reference/workspace/s3-filesystem.md +175 -0
- package/.docs/reference/workspace/sandbox.md +87 -0
- package/.docs/reference/workspace/workspace-class.md +244 -0
- package/CHANGELOG.md +8 -0
- package/package.json +5 -5
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# Workflow\.map()
|
|
2
|
+
|
|
3
|
+
The `.map()` method maps output data from a previous step to the input of a subsequent step, allowing you to transform data between steps.
|
|
4
|
+
|
|
5
|
+
## Usage example
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
workflow.map(async ({ inputData }) => `${inputData.value} - map`)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
**mappingFunction:** (`(params: { inputData: any }) => any`): Function that transforms input data and returns the mapped result
|
|
14
|
+
|
|
15
|
+
## Returns
|
|
16
|
+
|
|
17
|
+
**workflow:** (`Workflow`): The workflow instance for method chaining
|
|
18
|
+
|
|
19
|
+
## Using `inputData`
|
|
20
|
+
|
|
21
|
+
Use `inputData` to access the full output of the previous step.
|
|
22
|
+
|
|
23
|
+
```typescript
|
|
24
|
+
.then(step1)
|
|
25
|
+
.map(({ inputData }) => {
|
|
26
|
+
console.log(inputData);
|
|
27
|
+
})
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Using `getStepResult()`
|
|
31
|
+
|
|
32
|
+
Use `getStepResult()` to access the full output of a specific step by referencing the step's instance.
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
.then(step1)
|
|
36
|
+
.map(async ({ getStepResult }) => {
|
|
37
|
+
console.log(getStepResult(step1));
|
|
38
|
+
})
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Using `getInitData()`
|
|
42
|
+
|
|
43
|
+
Use `getInitData<typeof workflow>()` to access the initial input data provided to the workflow.
|
|
44
|
+
|
|
45
|
+
```typescript
|
|
46
|
+
.then(step1)
|
|
47
|
+
.map(async ({ getInitData }) => {
|
|
48
|
+
console.log(getInitData<any>());
|
|
49
|
+
})
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Using `mapVariable()`
|
|
53
|
+
|
|
54
|
+
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. Import `mapVariable()` from the workflows module:
|
|
55
|
+
|
|
56
|
+
```typescript
|
|
57
|
+
import { mapVariable } from '@mastra/core/workflows'
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Extracting fields from step outputs
|
|
61
|
+
|
|
62
|
+
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. In this example, the `value` field from `step1`'s output is extracted and mapped to a new field called `details`:
|
|
63
|
+
|
|
64
|
+
```typescript
|
|
65
|
+
.then(step1)
|
|
66
|
+
.map({
|
|
67
|
+
details: mapVariable({
|
|
68
|
+
step: step1,
|
|
69
|
+
path: "value"
|
|
70
|
+
})
|
|
71
|
+
})
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### Extracting fields from workflow input
|
|
75
|
+
|
|
76
|
+
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. In this example, the `value` field from the workflow's input is extracted and mapped to a field called `details`:
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
export const testWorkflow = createWorkflow({...});
|
|
80
|
+
|
|
81
|
+
testWorkflow
|
|
82
|
+
.then(step1)
|
|
83
|
+
.map({
|
|
84
|
+
details: mapVariable({
|
|
85
|
+
initData: testWorkflow,
|
|
86
|
+
path: "value"
|
|
87
|
+
})
|
|
88
|
+
})
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Related
|
|
92
|
+
|
|
93
|
+
- [Input Data Mapping](https://mastra.ai/docs/workflows/control-flow)
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Workflow\.parallel()
|
|
2
|
+
|
|
3
|
+
The `.parallel()` method executes multiple steps in parallel.
|
|
4
|
+
|
|
5
|
+
## Usage example
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
workflow.parallel([step1, step2])
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
**steps:** (`Step[]`): The step instances to execute in parallel
|
|
14
|
+
|
|
15
|
+
## Returns
|
|
16
|
+
|
|
17
|
+
**workflow:** (`Workflow`): The workflow instance for method chaining
|
|
18
|
+
|
|
19
|
+
## Related
|
|
20
|
+
|
|
21
|
+
- [Simultaneous steps with parallel](https://mastra.ai/docs/workflows/control-flow)
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Workflow\.sleep()
|
|
2
|
+
|
|
3
|
+
The `.sleep()` method pauses execution for a specified number of milliseconds. It accepts either a static number or a callback function for dynamic delays.
|
|
4
|
+
|
|
5
|
+
## Usage example
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
workflow.sleep(5000)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
**milliseconds:** (`number | ((context: { inputData: any }) => number | Promise<number>)`): The number of milliseconds to pause execution, or a callback that returns the delay
|
|
14
|
+
|
|
15
|
+
## Returns
|
|
16
|
+
|
|
17
|
+
**workflow:** (`Workflow`): The workflow instance for method chaining
|
|
18
|
+
|
|
19
|
+
## Extended usage example
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
23
|
+
|
|
24
|
+
const step1 = createStep({...});
|
|
25
|
+
const step2 = createStep({...});
|
|
26
|
+
|
|
27
|
+
export const testWorkflow = createWorkflow({...})
|
|
28
|
+
.then(step1)
|
|
29
|
+
.sleep(async ({ inputData }) => {
|
|
30
|
+
const { delayInMs } = inputData;
|
|
31
|
+
return delayInMs;
|
|
32
|
+
})
|
|
33
|
+
.then(step2)
|
|
34
|
+
.commit();
|
|
35
|
+
```
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Workflow\.sleepUntil()
|
|
2
|
+
|
|
3
|
+
The `.sleepUntil()` method pauses execution until a specified date.
|
|
4
|
+
|
|
5
|
+
## Usage example
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
workflow.sleepUntil(new Date(Date.now() + 5000))
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
**dateOrCallback:** (`Date | ((params: ExecuteFunctionParams) => Promise<Date>)`): Either a Date object or a callback function that returns a Date. The callback receives execution context and can compute the target time dynamically based on input data.
|
|
14
|
+
|
|
15
|
+
## Returns
|
|
16
|
+
|
|
17
|
+
**workflow:** (`Workflow`): The workflow instance for method chaining
|
|
18
|
+
|
|
19
|
+
## Extended usage example
|
|
20
|
+
|
|
21
|
+
```typescript
|
|
22
|
+
import { createWorkflow, createStep } from "@mastra/core/workflows";
|
|
23
|
+
|
|
24
|
+
const step1 = createStep({...});
|
|
25
|
+
const step2 = createStep({...});
|
|
26
|
+
|
|
27
|
+
export const testWorkflow = createWorkflow({...})
|
|
28
|
+
.then(step1)
|
|
29
|
+
.sleepUntil(async ({ inputData }) => {
|
|
30
|
+
const { delayInMs } = inputData;
|
|
31
|
+
return new Date(Date.now() + delayInMs);
|
|
32
|
+
})
|
|
33
|
+
.then(step2)
|
|
34
|
+
.commit();
|
|
35
|
+
```
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# Workflow\.then()
|
|
2
|
+
|
|
3
|
+
The `.then()` method creates a sequential dependency between workflow steps, ensuring steps execute in a specific order.
|
|
4
|
+
|
|
5
|
+
## Usage example
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
workflow.then(step1).then(step2)
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Parameters
|
|
12
|
+
|
|
13
|
+
**step:** (`Step`): The step instance that should execute after the previous step completes
|
|
14
|
+
|
|
15
|
+
## Returns
|
|
16
|
+
|
|
17
|
+
**workflow:** (`NewWorkflow`): The workflow instance for method chaining
|
|
18
|
+
|
|
19
|
+
## Related
|
|
20
|
+
|
|
21
|
+
- [Control flow](https://mastra.ai/docs/workflows/control-flow)
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Workflow Class
|
|
2
|
+
|
|
3
|
+
The `Workflow` class enables you to create state machines for complex sequences of operations with conditional branching and data validation.
|
|
4
|
+
|
|
5
|
+
## Usage example
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { createWorkflow } from '@mastra/core/workflows'
|
|
9
|
+
import { z } from 'zod'
|
|
10
|
+
|
|
11
|
+
export const workflow = createWorkflow({
|
|
12
|
+
id: 'test-workflow',
|
|
13
|
+
inputSchema: z.object({
|
|
14
|
+
value: z.string(),
|
|
15
|
+
}),
|
|
16
|
+
outputSchema: z.object({
|
|
17
|
+
value: z.string(),
|
|
18
|
+
}),
|
|
19
|
+
})
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Constructor parameters
|
|
23
|
+
|
|
24
|
+
**id:** (`string`): Unique identifier for the workflow
|
|
25
|
+
|
|
26
|
+
**inputSchema:** (`z.ZodType<any>`): Zod schema defining the input structure for the workflow
|
|
27
|
+
|
|
28
|
+
**outputSchema:** (`z.ZodType<any>`): Zod schema defining the output structure for the workflow
|
|
29
|
+
|
|
30
|
+
**stateSchema?:** (`z.ZodObject<any>`): Optional Zod schema for the workflow state. Automatically injected when using Mastra's state system. If not specified, type is 'any'.
|
|
31
|
+
|
|
32
|
+
**requestContextSchema?:** (`z.ZodType<any>`): Zod schema for validating request context values. When provided, the context is validated at the start of run.start(), throwing an error if validation fails.
|
|
33
|
+
|
|
34
|
+
**options?:** (`WorkflowOptions`): Optional options for the workflow
|
|
35
|
+
|
|
36
|
+
### WorkflowOptions
|
|
37
|
+
|
|
38
|
+
**tracingPolicy?:** (`TracingPolicy`): Optional tracing policy for the workflow
|
|
39
|
+
|
|
40
|
+
**validateInputs?:** (`boolean`): Optional flag to determine whether to validate the workflow inputs. This also applies default values from zodSchemas on the workflow/step input/resume data. If input/resume data validation fails on start/resume, the workflow will not start/resume, it throws an error instead. If input data validation fails on a step execution, the step fails, causing the workflow to fail and the error is returned. (Default: `true`)
|
|
41
|
+
|
|
42
|
+
**shouldPersistSnapshot?:** (`(params: { stepResults: Record<string, StepResult<any, any, any, any>>; workflowStatus: WorkflowRunStatus }) => boolean`): Optional flag to determine whether to persist the workflow snapshot (Default: `() => true`)
|
|
43
|
+
|
|
44
|
+
**onFinish?:** (`(result: WorkflowFinishCallbackResult) => void | Promise<void>`): Callback invoked when workflow completes with any status (success, failed, suspended, tripwire). Receives the workflow result including status, output, error, and step results. Errors thrown in this callback are caught and logged, not propagated.
|
|
45
|
+
|
|
46
|
+
**onError?:** (`(errorInfo: WorkflowErrorCallbackInfo) => void | Promise<void>`): Callback invoked only when workflow fails (failed or tripwire status). Receives error details and step results. Errors thrown in this callback are caught and logged, not propagated.
|
|
47
|
+
|
|
48
|
+
### WorkflowFinishCallbackResult
|
|
49
|
+
|
|
50
|
+
The result object passed to `onFinish` callbacks.
|
|
51
|
+
|
|
52
|
+
**status:** (`WorkflowRunStatus`): The workflow status: 'success', 'failed', 'suspended', or 'tripwire'
|
|
53
|
+
|
|
54
|
+
**result?:** (`any`): The workflow output (when status is 'success')
|
|
55
|
+
|
|
56
|
+
**error?:** (`SerializedError`): Error details (when status is 'failed')
|
|
57
|
+
|
|
58
|
+
**steps:** (`Record<string, StepResult>`): Individual step results with their status and output
|
|
59
|
+
|
|
60
|
+
**tripwire?:** (`StepTripwireInfo`): Tripwire information (when status is 'tripwire')
|
|
61
|
+
|
|
62
|
+
**runId:** (`string`): The unique identifier for this workflow run
|
|
63
|
+
|
|
64
|
+
**workflowId:** (`string`): The workflow's identifier
|
|
65
|
+
|
|
66
|
+
**resourceId?:** (`string`): Optional resource identifier (if provided when creating the run)
|
|
67
|
+
|
|
68
|
+
**getInitData:** (`() => any`): Function that returns the initial input data passed to the workflow
|
|
69
|
+
|
|
70
|
+
**mastra?:** (`Mastra`): The Mastra instance (if workflow is registered with Mastra)
|
|
71
|
+
|
|
72
|
+
**requestContext:** (`RequestContext`): Request-scoped context data
|
|
73
|
+
|
|
74
|
+
**logger:** (`IMastraLogger`): The workflow's logger instance
|
|
75
|
+
|
|
76
|
+
**state:** (`Record<string, any>`): The workflow's current state object
|
|
77
|
+
|
|
78
|
+
### WorkflowErrorCallbackInfo
|
|
79
|
+
|
|
80
|
+
The error info object passed to `onError` callbacks.
|
|
81
|
+
|
|
82
|
+
**status:** (`'failed' | 'tripwire'`): The workflow status (either 'failed' or 'tripwire')
|
|
83
|
+
|
|
84
|
+
**error?:** (`SerializedError`): Error details
|
|
85
|
+
|
|
86
|
+
**steps:** (`Record<string, StepResult>`): Individual step results with their status and output
|
|
87
|
+
|
|
88
|
+
**tripwire?:** (`StepTripwireInfo`): Tripwire information (when status is 'tripwire')
|
|
89
|
+
|
|
90
|
+
**runId:** (`string`): The unique identifier for this workflow run
|
|
91
|
+
|
|
92
|
+
**workflowId:** (`string`): The workflow's identifier
|
|
93
|
+
|
|
94
|
+
**resourceId?:** (`string`): Optional resource identifier (if provided when creating the run)
|
|
95
|
+
|
|
96
|
+
**getInitData:** (`() => any`): Function that returns the initial input data passed to the workflow
|
|
97
|
+
|
|
98
|
+
**mastra?:** (`Mastra`): The Mastra instance (if workflow is registered with Mastra)
|
|
99
|
+
|
|
100
|
+
**requestContext:** (`RequestContext`): Request-scoped context data
|
|
101
|
+
|
|
102
|
+
**logger:** (`IMastraLogger`): The workflow's logger instance
|
|
103
|
+
|
|
104
|
+
**state:** (`Record<string, any>`): The workflow's current state object
|
|
105
|
+
|
|
106
|
+
## Running with initial state
|
|
107
|
+
|
|
108
|
+
When starting a workflow run, you can pass `initialState` to set the starting values for the workflow's state:
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
const run = await workflow.createRun()
|
|
112
|
+
|
|
113
|
+
const result = await run.start({
|
|
114
|
+
inputData: { value: 'hello' },
|
|
115
|
+
initialState: {
|
|
116
|
+
counter: 0,
|
|
117
|
+
items: [],
|
|
118
|
+
},
|
|
119
|
+
})
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
The `initialState` object should match the structure defined in the workflow's `stateSchema`. See [Workflow State](https://mastra.ai/docs/workflows/workflow-state) for more details.
|
|
123
|
+
|
|
124
|
+
## Workflow status
|
|
125
|
+
|
|
126
|
+
A workflow's `status` indicates its current execution state. The possible values are:
|
|
127
|
+
|
|
128
|
+
**success:** (`string`): All steps finished executing successfully, with a valid result output
|
|
129
|
+
|
|
130
|
+
**failed:** (`string`): Workflow encountered an error during execution, with error details available
|
|
131
|
+
|
|
132
|
+
**suspended:** (`string`): Workflow execution is paused waiting for resume, with suspended step information
|
|
133
|
+
|
|
134
|
+
**tripwire:** (`string`): Workflow was terminated by a processor tripwire. This occurs when an agent step within the workflow triggers a tripwire (e.g., content was blocked by a guardrail). The tripwire information is available on the result.
|
|
135
|
+
|
|
136
|
+
### Handling tripwire status
|
|
137
|
+
|
|
138
|
+
When a workflow contains an agent step that triggers a tripwire, the workflow returns with `status: 'tripwire'` and includes tripwire details:
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
const run = await workflow.createRun()
|
|
142
|
+
const result = await run.start({ inputData: { message: 'Hello' } })
|
|
143
|
+
|
|
144
|
+
if (result.status === 'tripwire') {
|
|
145
|
+
console.log('Workflow terminated by tripwire:', result.tripwire?.reason)
|
|
146
|
+
console.log('Processor ID:', result.tripwire?.processorId)
|
|
147
|
+
console.log('Retry requested:', result.tripwire?.retry)
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
This is distinct from `status: 'failed'` which indicates an unexpected error. A tripwire status means a processor intentionally stopped execution (e.g., for content moderation).
|
|
152
|
+
|
|
153
|
+
## Related
|
|
154
|
+
|
|
155
|
+
- [Step Class](https://mastra.ai/reference/workflows/step)
|
|
156
|
+
- [Workflow State](https://mastra.ai/docs/workflows/workflow-state)
|
|
157
|
+
- [Control flow](https://mastra.ai/docs/workflows/control-flow)
|
|
@@ -0,0 +1,289 @@
|
|
|
1
|
+
# E2BSandbox
|
|
2
|
+
|
|
3
|
+
Executes commands in isolated [E2B](https://e2b.dev) cloud sandboxes. Provides secure, ephemeral environments with support for mounting cloud storage.
|
|
4
|
+
|
|
5
|
+
> **Info:** For interface details, see [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox).
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @mastra/e2b
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Usage
|
|
14
|
+
|
|
15
|
+
Add an `E2BSandbox` to a workspace and assign it to an agent:
|
|
16
|
+
|
|
17
|
+
```typescript
|
|
18
|
+
import { Agent } from '@mastra/core/agent'
|
|
19
|
+
import { Workspace } from '@mastra/core/workspace'
|
|
20
|
+
import { E2BSandbox } from '@mastra/e2b'
|
|
21
|
+
|
|
22
|
+
const workspace = new Workspace({
|
|
23
|
+
sandbox: new E2BSandbox({
|
|
24
|
+
id: 'dev-sandbox',
|
|
25
|
+
timeout: 60_000, // 60 second timeout (default: 5 minutes)
|
|
26
|
+
}),
|
|
27
|
+
})
|
|
28
|
+
|
|
29
|
+
const agent = new Agent({
|
|
30
|
+
name: 'dev-agent',
|
|
31
|
+
model: 'anthropic/claude-opus-4-5',
|
|
32
|
+
workspace,
|
|
33
|
+
})
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Constructor parameters
|
|
37
|
+
|
|
38
|
+
**apiKey?:** (`string`): E2B API key. Falls back to E2B\_API\_KEY environment variable.
|
|
39
|
+
|
|
40
|
+
**timeout?:** (`number`): Execution timeout in milliseconds (Default: `300000 (5 minutes)`)
|
|
41
|
+
|
|
42
|
+
**template?:** (`string | TemplateBuilder | function`): Sandbox template specification. Can be a template ID string, a TemplateBuilder, or a function that customizes the default template.
|
|
43
|
+
|
|
44
|
+
**env?:** (`Record<string, string>`): Environment variables to set in the sandbox
|
|
45
|
+
|
|
46
|
+
**id?:** (`string`): Unique identifier for this sandbox instance (Default: `Auto-generated`)
|
|
47
|
+
|
|
48
|
+
**domain?:** (`string`): Domain for self-hosted E2B. Falls back to E2B\_DOMAIN env var.
|
|
49
|
+
|
|
50
|
+
**apiUrl?:** (`string`): API URL for self-hosted E2B. Falls back to E2B\_API\_URL env var.
|
|
51
|
+
|
|
52
|
+
**accessToken?:** (`string`): Access token for authentication. Falls back to E2B\_ACCESS\_TOKEN env var.
|
|
53
|
+
|
|
54
|
+
## Properties
|
|
55
|
+
|
|
56
|
+
**id:** (`string`): Sandbox instance identifier
|
|
57
|
+
|
|
58
|
+
**name:** (`string`): Provider name ('E2BSandbox')
|
|
59
|
+
|
|
60
|
+
**provider:** (`string`): Provider identifier ('e2b')
|
|
61
|
+
|
|
62
|
+
**status:** (`ProviderStatus`): 'pending' | 'initializing' | 'ready' | 'error'
|
|
63
|
+
|
|
64
|
+
**supportsMounting:** (`boolean`): Always true - E2B sandboxes support mounting cloud filesystems
|
|
65
|
+
|
|
66
|
+
## Methods
|
|
67
|
+
|
|
68
|
+
### `start()`
|
|
69
|
+
|
|
70
|
+
Initialize and start the sandbox. Creates the E2B sandbox instance and mounts any configured filesystems.
|
|
71
|
+
|
|
72
|
+
```typescript
|
|
73
|
+
await sandbox.start()
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Called automatically on first command execution or by `workspace.init()`.
|
|
77
|
+
|
|
78
|
+
### `stop()`
|
|
79
|
+
|
|
80
|
+
Stop the sandbox and release resources.
|
|
81
|
+
|
|
82
|
+
```typescript
|
|
83
|
+
await sandbox.stop()
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### `destroy()`
|
|
87
|
+
|
|
88
|
+
Clean up sandbox resources completely.
|
|
89
|
+
|
|
90
|
+
```typescript
|
|
91
|
+
await sandbox.destroy()
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
### `executeCommand(command, args?, options?)`
|
|
95
|
+
|
|
96
|
+
Execute a shell command in the sandbox.
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
const result = await sandbox.executeCommand('ls', ['-la'])
|
|
100
|
+
const npmResult = await sandbox.executeCommand('npm', ['install', 'lodash'], {
|
|
101
|
+
timeout: 60000,
|
|
102
|
+
cwd: '/app',
|
|
103
|
+
})
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**Parameters:**
|
|
107
|
+
|
|
108
|
+
**command:** (`string`): Command to execute
|
|
109
|
+
|
|
110
|
+
**args?:** (`string[]`): Command arguments
|
|
111
|
+
|
|
112
|
+
**options.timeout?:** (`number`): Execution timeout in milliseconds
|
|
113
|
+
|
|
114
|
+
**options.cwd?:** (`string`): Working directory for the command
|
|
115
|
+
|
|
116
|
+
**options.env?:** (`Record<string, string>`): Additional environment variables
|
|
117
|
+
|
|
118
|
+
**options.onStdout?:** (`(data: string) => void`): Callback for stdout streaming
|
|
119
|
+
|
|
120
|
+
**options.onStderr?:** (`(data: string) => void`): Callback for stderr streaming
|
|
121
|
+
|
|
122
|
+
### `canMount(filesystem)`
|
|
123
|
+
|
|
124
|
+
Check if a filesystem can be mounted into this sandbox.
|
|
125
|
+
|
|
126
|
+
```typescript
|
|
127
|
+
const canMount = sandbox.canMount(s3Filesystem)
|
|
128
|
+
// true for S3Filesystem and GCSFilesystem
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
### `mount(filesystem, mountPath)`
|
|
132
|
+
|
|
133
|
+
Mount a filesystem into the sandbox at the specified path.
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
await sandbox.mount(s3Filesystem, '/mnt/data')
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### `unmount(mountPath)`
|
|
140
|
+
|
|
141
|
+
Unmount a previously mounted filesystem.
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
await sandbox.unmount('/mnt/data')
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### `getInfo()`
|
|
148
|
+
|
|
149
|
+
Get sandbox status and resource information.
|
|
150
|
+
|
|
151
|
+
```typescript
|
|
152
|
+
const info = await sandbox.getInfo()
|
|
153
|
+
// { id: '...', name: 'E2BSandbox', provider: 'e2b', status: 'ready', supportsMounting: true }
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
## Mounting Cloud Storage
|
|
157
|
+
|
|
158
|
+
E2B sandboxes can mount S3 or GCS filesystems, making cloud storage accessible as local directories inside the sandbox. This is useful for:
|
|
159
|
+
|
|
160
|
+
- Processing large datasets stored in cloud buckets
|
|
161
|
+
- Writing output files directly to cloud storage
|
|
162
|
+
- Sharing data between sandbox sessions
|
|
163
|
+
|
|
164
|
+
### Using the mounts config
|
|
165
|
+
|
|
166
|
+
The simplest way to mount filesystems is through the workspace `mounts` config:
|
|
167
|
+
|
|
168
|
+
```typescript
|
|
169
|
+
import { Workspace } from '@mastra/core/workspace'
|
|
170
|
+
import { S3Filesystem } from '@mastra/s3'
|
|
171
|
+
import { GCSFilesystem } from '@mastra/gcs'
|
|
172
|
+
import { E2BSandbox } from '@mastra/e2b'
|
|
173
|
+
|
|
174
|
+
const workspace = new Workspace({
|
|
175
|
+
mounts: {
|
|
176
|
+
'/s3-data': new S3Filesystem({
|
|
177
|
+
bucket: 'my-s3-bucket',
|
|
178
|
+
region: 'us-east-1',
|
|
179
|
+
accessKeyId: process.env.AWS_ACCESS_KEY_ID,
|
|
180
|
+
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY,
|
|
181
|
+
}),
|
|
182
|
+
'/gcs-data': new GCSFilesystem({
|
|
183
|
+
bucket: 'my-gcs-bucket',
|
|
184
|
+
projectId: 'my-project',
|
|
185
|
+
credentials: JSON.parse(process.env.GCS_SERVICE_ACCOUNT_KEY),
|
|
186
|
+
}),
|
|
187
|
+
},
|
|
188
|
+
sandbox: new E2BSandbox({ id: 'dev-sandbox' }),
|
|
189
|
+
})
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
When the sandbox starts, the filesystems are automatically mounted at the specified paths. Code running in the sandbox can then access files at `/s3-data` and `/gcs-data` as if they were local directories.
|
|
193
|
+
|
|
194
|
+
### How mounting works
|
|
195
|
+
|
|
196
|
+
E2B sandboxes use FUSE (Filesystem in Userspace) to mount cloud storage:
|
|
197
|
+
|
|
198
|
+
- **S3/R2**: Mounted via [s3fs-fuse](https://github.com/s3fs-fuse/s3fs-fuse)
|
|
199
|
+
- **GCS**: Mounted via [gcsfuse](https://github.com/GoogleCloudPlatform/gcsfuse)
|
|
200
|
+
|
|
201
|
+
The E2B sandbox automatically installs the required FUSE tools when mounting is used. For best performance, pre-build a custom template with the tools installed.
|
|
202
|
+
|
|
203
|
+
## Custom Templates
|
|
204
|
+
|
|
205
|
+
By default, when no template is specified, E2BSandbox automatically builds a template with `s3fs` installed for S3 mounting support. This template is cached and reused across sandbox instances.
|
|
206
|
+
|
|
207
|
+
For GCS mounting, `gcsfuse` is automatically installed at mount time if not already present. For additional tools or faster cold starts, use custom templates.
|
|
208
|
+
|
|
209
|
+
### Using an existing template
|
|
210
|
+
|
|
211
|
+
If you have a pre-built template, pass its ID:
|
|
212
|
+
|
|
213
|
+
```typescript
|
|
214
|
+
const workspace = new Workspace({
|
|
215
|
+
sandbox: new E2BSandbox({
|
|
216
|
+
id: 'dev-sandbox',
|
|
217
|
+
template: 'my-custom-template',
|
|
218
|
+
}),
|
|
219
|
+
})
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
### Customizing the default template
|
|
223
|
+
|
|
224
|
+
Pass a function to customize the default mountable template. The function receives a `TemplateBuilder` and should return the modified template:
|
|
225
|
+
|
|
226
|
+
```typescript
|
|
227
|
+
const workspace = new Workspace({
|
|
228
|
+
sandbox: new E2BSandbox({
|
|
229
|
+
template: base =>
|
|
230
|
+
base
|
|
231
|
+
.aptInstall(['ffmpeg', 'imagemagick', 'poppler-utils'])
|
|
232
|
+
.pipInstall(['pandas', 'numpy'])
|
|
233
|
+
.npmInstall(['sharp']),
|
|
234
|
+
}),
|
|
235
|
+
})
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
The template builder supports method chaining with operations like:
|
|
239
|
+
|
|
240
|
+
- `aptInstall(packages)` - Install system packages
|
|
241
|
+
- `pipInstall(packages)` - Install Python packages
|
|
242
|
+
- `npmInstall(packages)` - Install Node.js packages
|
|
243
|
+
- `runCmd(command)` - Run shell commands
|
|
244
|
+
- `setEnvs(vars)` - Set environment variables
|
|
245
|
+
- `copy(src, dest)` - Copy files into the template
|
|
246
|
+
|
|
247
|
+
See [E2B's template documentation](https://e2b.dev/docs/template/defining-template) for the full list of available methods.
|
|
248
|
+
|
|
249
|
+
### Pre-building templates
|
|
250
|
+
|
|
251
|
+
The default template is built on first use and cached. For faster cold starts or to include GCS support, you can pre-build a template:
|
|
252
|
+
|
|
253
|
+
```typescript
|
|
254
|
+
import { createDefaultMountableTemplate } from '@mastra/e2b'
|
|
255
|
+
import { Template } from 'e2b'
|
|
256
|
+
|
|
257
|
+
// Get the default mountable template (includes s3fs)
|
|
258
|
+
const { template, id } = createDefaultMountableTemplate()
|
|
259
|
+
|
|
260
|
+
// Build and save to E2B
|
|
261
|
+
const result = await Template.build(template, id)
|
|
262
|
+
console.log('Template ID:', result.templateId)
|
|
263
|
+
|
|
264
|
+
// Use this ID in your E2BSandbox config for instant startup
|
|
265
|
+
const sandbox = new E2BSandbox({
|
|
266
|
+
template: result.templateId,
|
|
267
|
+
})
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
For faster GCS cold starts, pre-install `gcsfuse` in a custom template:
|
|
271
|
+
|
|
272
|
+
```typescript
|
|
273
|
+
const workspace = new Workspace({
|
|
274
|
+
sandbox: new E2BSandbox({
|
|
275
|
+
id: 'dev-sandbox',
|
|
276
|
+
template: base => base.aptInstall(['gcsfuse']),
|
|
277
|
+
}),
|
|
278
|
+
})
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
This is optional—`gcsfuse` is installed automatically at mount time if not present.
|
|
282
|
+
|
|
283
|
+
## Related
|
|
284
|
+
|
|
285
|
+
- [WorkspaceSandbox interface](https://mastra.ai/reference/workspace/sandbox)
|
|
286
|
+
- [LocalSandbox reference](https://mastra.ai/reference/workspace/local-sandbox)
|
|
287
|
+
- [S3Filesystem reference](https://mastra.ai/reference/workspace/s3-filesystem)
|
|
288
|
+
- [GCSFilesystem reference](https://mastra.ai/reference/workspace/gcs-filesystem)
|
|
289
|
+
- [Workspace overview](https://mastra.ai/docs/workspace/overview)
|