@mastra/mcp-docs-server 1.1.8 → 1.1.9-alpha.1
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 +4 -4
- package/.docs/docs/agents/agent-approval.md +3 -3
- package/.docs/docs/agents/agent-memory.md +3 -3
- package/.docs/docs/agents/guardrails.md +3 -3
- package/.docs/docs/agents/network-approval.md +5 -2
- package/.docs/docs/agents/networks.md +2 -2
- package/.docs/docs/agents/overview.md +2 -2
- package/.docs/docs/agents/processors.md +42 -24
- package/.docs/docs/agents/structured-output.md +2 -2
- package/.docs/docs/agents/supervisor-agents.md +3 -3
- package/.docs/docs/agents/using-tools.md +3 -3
- package/.docs/docs/build-with-ai/mcp-docs-server.md +5 -5
- package/.docs/docs/build-with-ai/skills.md +2 -2
- package/.docs/docs/community/contributing-templates.md +1 -1
- package/.docs/docs/community/discord.md +3 -3
- package/.docs/docs/community/licensing.md +2 -2
- package/.docs/docs/deployment/cloud-providers.md +2 -2
- package/.docs/docs/deployment/mastra-server.md +2 -2
- package/.docs/docs/deployment/monorepo.md +1 -1
- package/.docs/docs/deployment/overview.md +3 -3
- package/.docs/docs/deployment/studio.md +3 -3
- package/.docs/docs/deployment/web-framework.md +2 -2
- package/.docs/docs/deployment/workflow-runners.md +1 -1
- package/.docs/docs/evals/built-in-scorers.md +1 -1
- package/.docs/docs/evals/custom-scorers.md +6 -6
- package/.docs/docs/evals/overview.md +2 -2
- package/.docs/docs/evals/running-in-ci.md +6 -6
- package/.docs/docs/getting-started/build-with-ai.md +3 -3
- package/.docs/docs/getting-started/manual-install.md +1 -1
- package/.docs/docs/getting-started/project-structure.md +2 -2
- package/.docs/docs/index.md +63 -17
- package/.docs/docs/mastra-cloud/deployment.md +1 -1
- package/.docs/docs/mastra-cloud/studio.md +1 -1
- package/.docs/docs/mcp/overview.md +1 -1
- package/.docs/docs/mcp/publishing-mcp-server.md +4 -4
- package/.docs/docs/memory/memory-processors.md +9 -9
- package/.docs/docs/memory/message-history.md +4 -4
- package/.docs/docs/memory/observational-memory.md +11 -7
- package/.docs/docs/memory/semantic-recall.md +9 -9
- package/.docs/docs/memory/storage.md +1 -1
- package/.docs/docs/memory/working-memory.md +20 -20
- package/.docs/docs/observability/datasets/overview.md +1 -1
- package/.docs/docs/observability/datasets/running-experiments.md +1 -1
- package/.docs/docs/observability/logging.md +1 -1
- package/.docs/docs/observability/overview.md +5 -5
- package/.docs/docs/observability/tracing/bridges/otel.md +9 -9
- package/.docs/docs/observability/tracing/exporters/arize.md +3 -3
- package/.docs/docs/observability/tracing/exporters/braintrust.md +1 -1
- package/.docs/docs/observability/tracing/exporters/cloud.md +2 -2
- package/.docs/docs/observability/tracing/exporters/datadog.md +3 -3
- package/.docs/docs/observability/tracing/exporters/default.md +8 -8
- package/.docs/docs/observability/tracing/exporters/laminar.md +1 -1
- package/.docs/docs/observability/tracing/exporters/langfuse.md +3 -3
- package/.docs/docs/observability/tracing/exporters/langsmith.md +4 -4
- package/.docs/docs/observability/tracing/exporters/otel.md +8 -8
- package/.docs/docs/observability/tracing/exporters/posthog.md +2 -2
- package/.docs/docs/observability/tracing/exporters/sentry.md +4 -4
- package/.docs/docs/observability/tracing/overview.md +24 -24
- package/.docs/docs/observability/tracing/processors/sensitive-data-filter.md +13 -13
- package/.docs/docs/rag/chunking-and-embedding.md +5 -5
- package/.docs/docs/rag/overview.md +2 -2
- package/.docs/docs/rag/retrieval.md +4 -4
- package/.docs/docs/rag/vector-databases.md +13 -13
- package/.docs/docs/server/auth/auth0.md +2 -2
- package/.docs/docs/server/auth/clerk.md +1 -1
- package/.docs/docs/server/auth/composite-auth.md +9 -9
- package/.docs/docs/server/auth/custom-auth-provider.md +12 -12
- package/.docs/docs/server/auth/firebase.md +3 -3
- package/.docs/docs/server/auth/jwt.md +1 -1
- package/.docs/docs/server/auth/simple-auth.md +9 -9
- package/.docs/docs/server/auth/supabase.md +1 -1
- package/.docs/docs/server/auth/workos.md +1 -1
- package/.docs/docs/server/auth.md +2 -2
- package/.docs/docs/server/custom-adapters.md +7 -7
- package/.docs/docs/server/custom-api-routes.md +2 -2
- package/.docs/docs/server/mastra-client.md +2 -2
- package/.docs/docs/server/mastra-server.md +2 -2
- package/.docs/docs/server/request-context.md +2 -2
- package/.docs/docs/server/server-adapters.md +3 -3
- package/.docs/docs/streaming/events.md +2 -2
- package/.docs/docs/streaming/overview.md +2 -2
- package/.docs/docs/streaming/tool-streaming.md +46 -32
- package/.docs/docs/streaming/workflow-streaming.md +1 -1
- package/.docs/docs/voice/overview.md +3 -3
- package/.docs/docs/voice/speech-to-speech.md +1 -1
- package/.docs/docs/voice/speech-to-text.md +2 -2
- package/.docs/docs/voice/text-to-speech.md +2 -2
- package/.docs/docs/workflows/agents-and-tools.md +1 -1
- package/.docs/docs/workflows/control-flow.md +45 -3
- package/.docs/docs/workflows/error-handling.md +4 -4
- package/.docs/docs/workflows/overview.md +3 -3
- package/.docs/docs/workflows/snapshots.md +1 -1
- package/.docs/docs/workflows/suspend-and-resume.md +1 -1
- package/.docs/docs/workflows/time-travel.md +3 -3
- package/.docs/docs/workflows/workflow-state.md +1 -1
- package/.docs/docs/workspace/filesystem.md +3 -3
- package/.docs/docs/workspace/overview.md +53 -8
- package/.docs/docs/workspace/sandbox.md +72 -13
- package/.docs/docs/workspace/search.md +1 -1
- package/.docs/docs/workspace/skills.md +4 -4
- package/.docs/guides/build-your-ui/ai-sdk-ui.md +2 -2
- package/.docs/guides/build-your-ui/assistant-ui.md +1 -1
- package/.docs/guides/build-your-ui/copilotkit.md +2 -2
- package/.docs/guides/deployment/digital-ocean.md +1 -1
- package/.docs/guides/deployment/inngest.md +4 -4
- package/.docs/guides/getting-started/astro.md +1 -1
- package/.docs/guides/getting-started/electron.md +1 -1
- package/.docs/guides/getting-started/next-js.md +1 -1
- package/.docs/guides/getting-started/vite-react.md +1 -1
- package/.docs/guides/guide/ai-recruiter.md +4 -4
- package/.docs/guides/guide/chef-michel.md +4 -4
- package/.docs/guides/guide/code-review-bot.md +3 -3
- package/.docs/guides/guide/dev-assistant.md +5 -5
- package/.docs/guides/guide/docs-manager.md +3 -3
- package/.docs/guides/guide/github-actions-pr-description.md +4 -4
- package/.docs/guides/guide/notes-mcp-server.md +4 -4
- package/.docs/guides/guide/research-assistant.md +4 -4
- package/.docs/guides/guide/research-coordinator.md +1 -1
- package/.docs/guides/guide/stock-agent.md +6 -6
- package/.docs/guides/guide/web-search.md +2 -2
- package/.docs/guides/guide/whatsapp-chat-bot.md +1 -1
- package/.docs/guides/migrations/agentnetwork.md +1 -1
- package/.docs/guides/migrations/ai-sdk-v4-to-v5.md +3 -3
- package/.docs/guides/migrations/network-to-supervisor.md +1 -1
- package/.docs/guides/migrations/upgrade-to-v1/agent.md +1 -1
- package/.docs/guides/migrations/upgrade-to-v1/client.md +2 -2
- package/.docs/guides/migrations/upgrade-to-v1/deployment.md +2 -2
- package/.docs/guides/migrations/upgrade-to-v1/evals.md +1 -1
- package/.docs/guides/migrations/upgrade-to-v1/mastra.md +1 -1
- package/.docs/guides/migrations/upgrade-to-v1/memory.md +2 -2
- package/.docs/guides/migrations/upgrade-to-v1/overview.md +3 -3
- package/.docs/guides/migrations/upgrade-to-v1/storage.md +4 -4
- package/.docs/guides/migrations/upgrade-to-v1/tools.md +2 -2
- package/.docs/guides/migrations/upgrade-to-v1/tracing.md +2 -2
- package/.docs/guides/migrations/upgrade-to-v1/vectors.md +3 -3
- package/.docs/guides/migrations/upgrade-to-v1/voice.md +1 -1
- package/.docs/guides/migrations/upgrade-to-v1/workflows.md +6 -6
- package/.docs/guides/migrations/vnext-to-standard-apis.md +3 -3
- package/.docs/models/embeddings.md +4 -4
- package/.docs/models/gateways/custom-gateways.md +4 -4
- package/.docs/models/gateways/netlify.md +2 -3
- package/.docs/models/gateways/openrouter.md +9 -2
- package/.docs/models/gateways/vercel.md +11 -2
- package/.docs/models/gateways.md +2 -2
- package/.docs/models/index.md +1 -1
- package/.docs/models/providers/302ai.md +3 -3
- package/.docs/models/providers/abacus.md +24 -14
- package/.docs/models/providers/aihubmix.md +10 -5
- package/.docs/models/providers/alibaba-cn.md +83 -74
- package/.docs/models/providers/alibaba-coding-plan-cn.md +78 -0
- package/.docs/models/providers/alibaba-coding-plan.md +78 -0
- package/.docs/models/providers/alibaba.md +3 -3
- package/.docs/models/providers/anthropic.md +4 -4
- package/.docs/models/providers/bailing.md +3 -3
- package/.docs/models/providers/baseten.md +3 -3
- package/.docs/models/providers/berget.md +3 -3
- package/.docs/models/providers/cerebras.md +4 -4
- package/.docs/models/providers/chutes.md +7 -6
- package/.docs/models/providers/clarifai.md +81 -0
- package/.docs/models/providers/cloudferro-sherlock.md +8 -7
- package/.docs/models/providers/cloudflare-workers-ai.md +6 -5
- package/.docs/models/providers/cortecs.md +10 -8
- package/.docs/models/providers/deepinfra.md +11 -6
- package/.docs/models/providers/deepseek.md +4 -4
- package/.docs/models/providers/drun.md +73 -0
- package/.docs/models/providers/evroc.md +3 -3
- package/.docs/models/providers/fastrouter.md +3 -3
- package/.docs/models/providers/fireworks-ai.md +3 -3
- package/.docs/models/providers/firmware.md +31 -23
- package/.docs/models/providers/friendli.md +3 -3
- package/.docs/models/providers/github-models.md +3 -3
- package/.docs/models/providers/google.md +7 -5
- package/.docs/models/providers/groq.md +4 -4
- package/.docs/models/providers/helicone.md +3 -3
- package/.docs/models/providers/huggingface.md +3 -3
- package/.docs/models/providers/iflowcn.md +3 -3
- package/.docs/models/providers/inception.md +7 -5
- package/.docs/models/providers/inference.md +3 -3
- package/.docs/models/providers/io-net.md +3 -3
- package/.docs/models/providers/jiekou.md +3 -3
- package/.docs/models/providers/kilo.md +6 -4
- package/.docs/models/providers/kimi-for-coding.md +4 -4
- package/.docs/models/providers/kuae-cloud-coding-plan.md +3 -3
- package/.docs/models/providers/llama.md +3 -3
- package/.docs/models/providers/lmstudio.md +3 -3
- package/.docs/models/providers/lucidquery.md +3 -3
- package/.docs/models/providers/meganova.md +3 -3
- package/.docs/models/providers/minimax-cn-coding-plan.md +4 -4
- package/.docs/models/providers/minimax-cn.md +4 -4
- package/.docs/models/providers/minimax-coding-plan.md +4 -4
- package/.docs/models/providers/minimax.md +4 -4
- package/.docs/models/providers/mistral.md +4 -4
- package/.docs/models/providers/moark.md +3 -3
- package/.docs/models/providers/modelscope.md +3 -3
- package/.docs/models/providers/moonshotai-cn.md +3 -3
- package/.docs/models/providers/moonshotai.md +3 -3
- package/.docs/models/providers/morph.md +3 -3
- package/.docs/models/providers/nano-gpt.md +523 -42
- package/.docs/models/providers/nebius.md +37 -37
- package/.docs/models/providers/nova.md +3 -3
- package/.docs/models/providers/novita-ai.md +3 -3
- package/.docs/models/providers/nvidia.md +7 -5
- package/.docs/models/providers/ollama-cloud.md +4 -5
- package/.docs/models/providers/openai.md +7 -5
- package/.docs/models/providers/opencode-go.md +3 -3
- package/.docs/models/providers/opencode.md +39 -36
- package/.docs/models/providers/ovhcloud.md +3 -3
- package/.docs/models/providers/perplexity-agent.md +4 -4
- package/.docs/models/providers/perplexity.md +4 -4
- package/.docs/models/providers/poe.md +11 -5
- package/.docs/models/providers/privatemode-ai.md +3 -3
- package/.docs/models/providers/qihang-ai.md +3 -3
- package/.docs/models/providers/qiniu-ai.md +23 -8
- package/.docs/models/providers/requesty.md +20 -4
- package/.docs/models/providers/scaleway.md +3 -3
- package/.docs/models/providers/siliconflow-cn.md +10 -4
- package/.docs/models/providers/siliconflow.md +3 -3
- package/.docs/models/providers/stackit.md +3 -3
- package/.docs/models/providers/stepfun.md +3 -3
- package/.docs/models/providers/submodel.md +3 -3
- package/.docs/models/providers/synthetic.md +3 -3
- package/.docs/models/providers/togetherai.md +5 -7
- package/.docs/models/providers/upstage.md +3 -3
- package/.docs/models/providers/vivgrid.md +4 -4
- package/.docs/models/providers/vultr.md +3 -3
- package/.docs/models/providers/wandb.md +3 -3
- package/.docs/models/providers/xai.md +34 -31
- package/.docs/models/providers/xiaomi.md +4 -4
- package/.docs/models/providers/zai-coding-plan.md +3 -3
- package/.docs/models/providers/zai.md +3 -3
- package/.docs/models/providers/zenmux.md +7 -5
- package/.docs/models/providers/zhipuai-coding-plan.md +3 -3
- package/.docs/models/providers/zhipuai.md +3 -3
- package/.docs/models/providers.md +4 -0
- package/.docs/reference/agents/agent.md +3 -3
- package/.docs/reference/agents/generateLegacy.md +1 -1
- package/.docs/reference/agents/getDefaultGenerateOptions.md +1 -1
- package/.docs/reference/agents/getDefaultOptions.md +1 -1
- package/.docs/reference/agents/getDefaultStreamOptions.md +1 -1
- package/.docs/reference/agents/getDescription.md +1 -1
- package/.docs/reference/agents/network.md +5 -3
- package/.docs/reference/ai-sdk/handle-chat-stream.md +2 -0
- package/.docs/reference/ai-sdk/handle-network-stream.md +2 -0
- package/.docs/reference/ai-sdk/network-route.md +2 -0
- package/.docs/reference/ai-sdk/to-ai-sdk-stream.md +1 -1
- package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +1 -1
- package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +1 -1
- package/.docs/reference/auth/auth0.md +7 -7
- package/.docs/reference/auth/better-auth.md +2 -2
- package/.docs/reference/auth/clerk.md +1 -1
- package/.docs/reference/auth/firebase.md +5 -5
- package/.docs/reference/auth/jwt.md +1 -1
- package/.docs/reference/auth/supabase.md +1 -1
- package/.docs/reference/auth/workos.md +6 -6
- package/.docs/reference/cli/mastra.md +5 -5
- package/.docs/reference/client-js/agents.md +22 -22
- package/.docs/reference/client-js/error-handling.md +2 -2
- package/.docs/reference/client-js/logs.md +2 -2
- package/.docs/reference/client-js/mastra-client.md +2 -2
- package/.docs/reference/client-js/memory.md +6 -6
- package/.docs/reference/client-js/observability.md +4 -4
- package/.docs/reference/client-js/telemetry.md +1 -1
- package/.docs/reference/client-js/tools.md +3 -3
- package/.docs/reference/client-js/vectors.md +2 -2
- package/.docs/reference/client-js/workflows.md +12 -12
- package/.docs/reference/configuration.md +62 -6
- package/.docs/reference/core/getDeployer.md +1 -1
- package/.docs/reference/core/getGatewayById.md +1 -1
- package/.docs/reference/core/getLogger.md +1 -1
- package/.docs/reference/core/getMCPServer.md +2 -2
- package/.docs/reference/core/getMCPServerById.md +2 -2
- package/.docs/reference/core/getMemory.md +1 -1
- package/.docs/reference/core/getScorer.md +4 -4
- package/.docs/reference/core/getScorerById.md +2 -2
- package/.docs/reference/core/getServer.md +1 -1
- package/.docs/reference/core/getStorage.md +1 -1
- package/.docs/reference/core/getStoredAgentById.md +3 -3
- package/.docs/reference/core/getTelemetry.md +1 -1
- package/.docs/reference/core/getWorkflow.md +1 -1
- package/.docs/reference/core/listAgents.md +1 -1
- package/.docs/reference/core/listMCPServers.md +3 -3
- package/.docs/reference/core/listMemory.md +1 -1
- package/.docs/reference/core/listScorers.md +1 -1
- package/.docs/reference/core/listStoredAgents.md +3 -3
- package/.docs/reference/core/listVectors.md +1 -1
- package/.docs/reference/core/mastra-class.md +2 -2
- package/.docs/reference/core/mastra-model-gateway.md +11 -11
- package/.docs/reference/core/setLogger.md +1 -1
- package/.docs/reference/core/setStorage.md +1 -1
- package/.docs/reference/datasets/dataset.md +2 -2
- package/.docs/reference/datasets/datasets-manager.md +1 -1
- package/.docs/reference/datasets/get.md +2 -2
- package/.docs/reference/datasets/getDetails.md +1 -1
- package/.docs/reference/datasets/listItems.md +1 -1
- package/.docs/reference/deployer/vercel.md +1 -1
- package/.docs/reference/deployer.md +4 -4
- package/.docs/reference/evals/answer-relevancy.md +4 -4
- package/.docs/reference/evals/answer-similarity.md +3 -3
- package/.docs/reference/evals/bias.md +4 -4
- package/.docs/reference/evals/completeness.md +6 -6
- package/.docs/reference/evals/content-similarity.md +3 -3
- package/.docs/reference/evals/context-precision.md +9 -9
- package/.docs/reference/evals/context-relevance.md +7 -7
- package/.docs/reference/evals/create-scorer.md +7 -7
- package/.docs/reference/evals/faithfulness.md +3 -3
- package/.docs/reference/evals/hallucination.md +8 -14
- package/.docs/reference/evals/keyword-coverage.md +4 -4
- package/.docs/reference/evals/mastra-scorer.md +7 -7
- package/.docs/reference/evals/noise-sensitivity.md +11 -11
- package/.docs/reference/evals/prompt-alignment.md +5 -5
- package/.docs/reference/evals/run-evals.md +5 -5
- package/.docs/reference/evals/scorer-utils.md +17 -17
- package/.docs/reference/evals/textual-difference.md +4 -4
- package/.docs/reference/evals/tone-consistency.md +5 -5
- package/.docs/reference/evals/tool-call-accuracy.md +10 -10
- package/.docs/reference/evals/toxicity.md +3 -3
- package/.docs/reference/harness/harness-class.md +5 -3
- package/.docs/reference/index.md +2 -0
- package/.docs/reference/memory/clone-utilities.md +7 -7
- package/.docs/reference/memory/cloneThread.md +5 -5
- package/.docs/reference/memory/createThread.md +1 -1
- package/.docs/reference/memory/deleteMessages.md +1 -1
- package/.docs/reference/memory/getThreadById.md +1 -1
- package/.docs/reference/memory/listThreads.md +3 -3
- package/.docs/reference/memory/memory-class.md +1 -1
- package/.docs/reference/memory/observational-memory.md +8 -6
- package/.docs/reference/memory/recall.md +1 -1
- package/.docs/reference/observability/tracing/bridges/otel.md +6 -6
- package/.docs/reference/observability/tracing/configuration.md +17 -17
- package/.docs/reference/observability/tracing/exporters/arize.md +4 -4
- package/.docs/reference/observability/tracing/exporters/braintrust.md +3 -3
- package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +6 -6
- package/.docs/reference/observability/tracing/exporters/console-exporter.md +4 -4
- package/.docs/reference/observability/tracing/exporters/datadog.md +4 -4
- package/.docs/reference/observability/tracing/exporters/default-exporter.md +6 -6
- package/.docs/reference/observability/tracing/exporters/laminar.md +2 -2
- package/.docs/reference/observability/tracing/exporters/langfuse.md +4 -4
- package/.docs/reference/observability/tracing/exporters/langsmith.md +6 -6
- package/.docs/reference/observability/tracing/exporters/otel.md +12 -12
- package/.docs/reference/observability/tracing/exporters/posthog.md +3 -3
- package/.docs/reference/observability/tracing/exporters/sentry.md +5 -5
- package/.docs/reference/observability/tracing/instances.md +9 -9
- package/.docs/reference/observability/tracing/interfaces.md +39 -39
- package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +6 -6
- package/.docs/reference/observability/tracing/spans.md +15 -13
- package/.docs/reference/processors/message-history-processor.md +1 -1
- package/.docs/reference/processors/processor-interface.md +21 -17
- package/.docs/reference/processors/token-limiter-processor.md +2 -2
- package/.docs/reference/rag/chunk.md +2 -2
- package/.docs/reference/rag/database-config.md +8 -8
- package/.docs/reference/rag/document.md +11 -11
- package/.docs/reference/rag/embeddings.md +5 -5
- package/.docs/reference/rag/extract-params.md +8 -8
- package/.docs/reference/rag/graph-rag.md +4 -4
- package/.docs/reference/rag/metadata-filters.md +15 -15
- package/.docs/reference/rag/rerank.md +2 -2
- package/.docs/reference/rag/rerankWithScorer.md +2 -2
- package/.docs/reference/server/create-route.md +2 -0
- package/.docs/reference/server/express-adapter.md +1 -1
- package/.docs/reference/server/fastify-adapter.md +1 -1
- package/.docs/reference/server/hono-adapter.md +1 -1
- package/.docs/reference/server/koa-adapter.md +2 -2
- package/.docs/reference/server/mastra-server.md +16 -16
- package/.docs/reference/server/register-api-route.md +7 -7
- package/.docs/reference/server/routes.md +1 -1
- package/.docs/reference/storage/cloudflare-d1.md +5 -5
- package/.docs/reference/storage/cloudflare.md +3 -3
- package/.docs/reference/storage/composite.md +1 -1
- package/.docs/reference/storage/convex.md +6 -6
- package/.docs/reference/storage/dynamodb.md +7 -7
- package/.docs/reference/storage/lance.md +5 -5
- package/.docs/reference/storage/libsql.md +1 -1
- package/.docs/reference/storage/mongodb.md +6 -6
- package/.docs/reference/storage/mssql.md +4 -4
- package/.docs/reference/storage/overview.md +2 -2
- package/.docs/reference/storage/postgresql.md +7 -7
- package/.docs/reference/storage/upstash.md +4 -4
- package/.docs/reference/streaming/ChunkType.md +13 -13
- package/.docs/reference/streaming/agents/MastraModelOutput.md +6 -6
- package/.docs/reference/streaming/agents/stream.md +2 -2
- package/.docs/reference/streaming/agents/streamLegacy.md +1 -1
- package/.docs/reference/streaming/workflows/observeStream.md +2 -2
- package/.docs/reference/streaming/workflows/resumeStream.md +1 -1
- package/.docs/reference/streaming/workflows/stream.md +1 -1
- package/.docs/reference/templates/overview.md +4 -4
- package/.docs/reference/tools/create-tool.md +10 -10
- package/.docs/reference/tools/document-chunker-tool.md +4 -4
- package/.docs/reference/tools/graph-rag-tool.md +7 -7
- package/.docs/reference/tools/mcp-client.md +13 -13
- package/.docs/reference/tools/mcp-server.md +27 -27
- package/.docs/reference/tools/vector-query-tool.md +12 -12
- package/.docs/reference/vectors/astra.md +13 -13
- package/.docs/reference/vectors/chroma.md +18 -18
- package/.docs/reference/vectors/convex.md +15 -15
- package/.docs/reference/vectors/couchbase.md +21 -21
- package/.docs/reference/vectors/duckdb.md +17 -17
- package/.docs/reference/vectors/elasticsearch.md +14 -14
- package/.docs/reference/vectors/lance.md +22 -22
- package/.docs/reference/vectors/libsql.md +15 -15
- package/.docs/reference/vectors/mongodb.md +18 -18
- package/.docs/reference/vectors/opensearch.md +11 -11
- package/.docs/reference/vectors/pg.md +23 -21
- package/.docs/reference/vectors/pinecone.md +15 -15
- package/.docs/reference/vectors/qdrant.md +15 -15
- package/.docs/reference/vectors/s3vectors.md +22 -22
- package/.docs/reference/vectors/turbopuffer.md +14 -14
- package/.docs/reference/vectors/upstash.md +15 -15
- package/.docs/reference/vectors/vectorize.md +16 -16
- package/.docs/reference/voice/azure.md +12 -10
- package/.docs/reference/voice/cloudflare.md +9 -7
- package/.docs/reference/voice/composite-voice.md +5 -5
- package/.docs/reference/voice/deepgram.md +5 -5
- package/.docs/reference/voice/elevenlabs.md +7 -7
- package/.docs/reference/voice/google-gemini-live.md +22 -22
- package/.docs/reference/voice/google.md +12 -12
- package/.docs/reference/voice/mastra-voice.md +18 -18
- package/.docs/reference/voice/murf.md +8 -8
- package/.docs/reference/voice/openai-realtime.md +19 -17
- package/.docs/reference/voice/openai.md +12 -8
- package/.docs/reference/voice/playai.md +9 -7
- package/.docs/reference/voice/sarvam.md +8 -6
- package/.docs/reference/voice/speechify.md +11 -9
- package/.docs/reference/voice/voice.addInstructions.md +4 -4
- package/.docs/reference/voice/voice.addTools.md +3 -3
- package/.docs/reference/voice/voice.answer.md +2 -2
- package/.docs/reference/voice/voice.close.md +4 -4
- package/.docs/reference/voice/voice.connect.md +9 -7
- package/.docs/reference/voice/voice.events.md +4 -4
- package/.docs/reference/voice/voice.getSpeakers.md +4 -4
- package/.docs/reference/voice/voice.listen.md +17 -11
- package/.docs/reference/voice/voice.off.md +4 -4
- package/.docs/reference/voice/voice.on.md +5 -5
- package/.docs/reference/voice/voice.send.md +2 -2
- package/.docs/reference/voice/voice.speak.md +19 -9
- package/.docs/reference/voice/voice.updateConfig.md +4 -4
- package/.docs/reference/workflows/run-methods/startAsync.md +1 -1
- package/.docs/reference/workflows/run-methods/timeTravel.md +1 -1
- package/.docs/reference/workflows/run.md +3 -3
- package/.docs/reference/workflows/step.md +2 -2
- package/.docs/reference/workflows/workflow-methods/create-run.md +1 -1
- package/.docs/reference/workflows/workflow.md +1 -1
- package/.docs/reference/workspace/blaxel-sandbox.md +164 -0
- package/.docs/reference/workspace/daytona-sandbox.md +50 -141
- package/.docs/reference/workspace/e2b-sandbox.md +41 -77
- package/.docs/reference/workspace/filesystem.md +25 -11
- package/.docs/reference/workspace/gcs-filesystem.md +21 -1
- package/.docs/reference/workspace/local-filesystem.md +24 -10
- package/.docs/reference/workspace/local-sandbox.md +27 -102
- package/.docs/reference/workspace/process-manager.md +296 -0
- package/.docs/reference/workspace/s3-filesystem.md +21 -1
- package/.docs/reference/workspace/sandbox.md +9 -1
- package/.docs/reference/workspace/workspace-class.md +95 -27
- package/CHANGELOG.md +15 -0
- package/dist/tools/course.d.ts +7 -27
- package/dist/tools/course.d.ts.map +1 -1
- package/dist/tools/docs.d.ts +6 -18
- package/dist/tools/docs.d.ts.map +1 -1
- package/dist/tools/embedded-docs.d.ts +12 -112
- package/dist/tools/embedded-docs.d.ts.map +1 -1
- package/dist/tools/migration.d.ts +6 -26
- package/dist/tools/migration.d.ts.map +1 -1
- package/package.json +6 -6
|
@@ -4,7 +4,7 @@ Tracing provides specialized monitoring and debugging for the AI-related operati
|
|
|
4
4
|
|
|
5
5
|
Unlike traditional application tracing, Tracing focuses specifically on understanding your AI pipeline — capturing token usage, model parameters, tool execution details, and conversation flows. This makes it easier to debug issues, optimize performance, and understand how your AI systems behave in production.
|
|
6
6
|
|
|
7
|
-
## How
|
|
7
|
+
## How it works
|
|
8
8
|
|
|
9
9
|
Traces are created by:
|
|
10
10
|
|
|
@@ -103,7 +103,7 @@ Bridges provide bidirectional integration with external tracing systems. Unlike
|
|
|
103
103
|
|
|
104
104
|
You can use both together — a bridge for context propagation and exporters to send traces to additional destinations.
|
|
105
105
|
|
|
106
|
-
## Sampling
|
|
106
|
+
## Sampling strategies
|
|
107
107
|
|
|
108
108
|
Sampling allows you to control which traces are collected, helping you balance between observability needs and resource costs. In production environments with high traffic, collecting every trace can be expensive and unnecessary. Sampling strategies let you capture a representative subset of traces while ensuring you don't miss critical information about errors or important operations.
|
|
109
109
|
|
|
@@ -179,7 +179,7 @@ export const mastra = new Mastra({
|
|
|
179
179
|
})
|
|
180
180
|
```
|
|
181
181
|
|
|
182
|
-
## Multi-
|
|
182
|
+
## Multi-config setup
|
|
183
183
|
|
|
184
184
|
Complex applications often require different tracing configurations for different scenarios. You might want detailed traces with full sampling during development, sampled traces sent to external providers in production, and specialized configurations for specific features or customer segments. The `configSelector` function enables dynamic configuration selection at runtime, allowing you to route traces based on request context, environment variables, feature flags, or any custom logic.
|
|
185
185
|
|
|
@@ -313,7 +313,7 @@ This configuration sends traces to all three destinations simultaneously:
|
|
|
313
313
|
|
|
314
314
|
> **Info:** Remember: A single trace can be sent to multiple exporters. You don't need separate configs for each exporter unless you want different sampling rates or processors.
|
|
315
315
|
|
|
316
|
-
## Adding
|
|
316
|
+
## Adding custom metadata
|
|
317
317
|
|
|
318
318
|
Custom metadata allows you to attach additional context to your traces, making it easier to debug issues and understand system behavior in production. Metadata can include business logic details, performance metrics, user context, or any information that helps you understand what happened during execution.
|
|
319
319
|
|
|
@@ -341,7 +341,7 @@ execute: async (inputData, context) => {
|
|
|
341
341
|
|
|
342
342
|
Metadata set here will be shown in all configured exporters.
|
|
343
343
|
|
|
344
|
-
### Automatic Metadata from RequestContext
|
|
344
|
+
### Automatic Metadata from `RequestContext`
|
|
345
345
|
|
|
346
346
|
Instead of manually adding metadata to each span, you can configure Mastra to automatically extract values from RequestContext and attach them as metadata to all spans in a trace. This is useful for consistently tracking user identifiers, environment information, feature flags, or any request-scoped data across your entire trace.
|
|
347
347
|
|
|
@@ -420,7 +420,7 @@ requestContext.set('session', { data: { experimentId: 'exp-999' } })
|
|
|
420
420
|
// Metadata will include: { user: { id: 'user-456' }, session: { data: { experimentId: 'exp-999' } } }
|
|
421
421
|
```
|
|
422
422
|
|
|
423
|
-
#### How
|
|
423
|
+
#### How it works
|
|
424
424
|
|
|
425
425
|
1. **TraceState Computation**: At the start of a trace (root span creation), Mastra computes which keys to extract by merging configuration-level and per-request keys
|
|
426
426
|
2. **Automatic Extraction**: Root spans (agent runs, workflow executions) automatically extract metadata from RequestContext
|
|
@@ -429,7 +429,7 @@ requestContext.set('session', { data: { experimentId: 'exp-999' } })
|
|
|
429
429
|
|
|
430
430
|
### Adding Tags to Traces
|
|
431
431
|
|
|
432
|
-
Tags are string labels that help you categorize and filter traces. Unlike metadata (which contains structured key-value data), tags are
|
|
432
|
+
Tags are string labels that help you categorize and filter traces. Unlike metadata (which contains structured key-value data), tags are plain strings designed for quick filtering and organization.
|
|
433
433
|
|
|
434
434
|
Use `tracingOptions.tags` to add tags when executing agents or workflows:
|
|
435
435
|
|
|
@@ -510,7 +510,7 @@ const result = await agent.generate([{ role: 'user', content: 'Handle confidenti
|
|
|
510
510
|
})
|
|
511
511
|
```
|
|
512
512
|
|
|
513
|
-
#### How
|
|
513
|
+
#### How it works
|
|
514
514
|
|
|
515
515
|
- **Trace-wide effect**: When set on the root span, these options apply to all child spans in the trace (tool calls, model generations, etc.)
|
|
516
516
|
- **Export-time filtering**: The data is still available internally during execution but is excluded when spans are exported to observability platforms
|
|
@@ -558,7 +558,7 @@ execute: async (inputData, context) => {
|
|
|
558
558
|
|
|
559
559
|
This gives you fine-grained control over which child spans include RequestContext metadata. Root spans (agent/workflow executions) always extract metadata automatically, while child spans only extract when you explicitly pass `requestContext`.
|
|
560
560
|
|
|
561
|
-
## Creating
|
|
561
|
+
## Creating child spans
|
|
562
562
|
|
|
563
563
|
Child spans allow you to track fine-grained operations within your workflow steps or tools. They provide visibility into sub-operations like database queries, API calls, file operations, or complex calculations. This hierarchical structure helps you identify performance bottlenecks and understand the exact sequence of operations.
|
|
564
564
|
|
|
@@ -597,7 +597,7 @@ execute: async (inputData, context) => {
|
|
|
597
597
|
|
|
598
598
|
Child spans automatically inherit the trace context from their parent, maintaining the relationship hierarchy in your observability platform.
|
|
599
599
|
|
|
600
|
-
## Span
|
|
600
|
+
## Span formatting
|
|
601
601
|
|
|
602
602
|
Mastra provides two ways to transform span data before it reaches your observability platform: **span processors** and **custom span formatters**. Both allow you to modify, filter, or enrich trace data, but they operate at different levels and serve different purposes.
|
|
603
603
|
|
|
@@ -617,11 +617,11 @@ Span processors transform, filter, or enrich trace data before it's exported. Th
|
|
|
617
617
|
|
|
618
618
|
#### Built-in Processors
|
|
619
619
|
|
|
620
|
-
- [Sensitive Data Filter](https://mastra.ai/docs/observability/tracing/processors/sensitive-data-filter) redacts sensitive information. It
|
|
620
|
+
- [Sensitive Data Filter](https://mastra.ai/docs/observability/tracing/processors/sensitive-data-filter) redacts sensitive information. It's enabled in the default observability config.
|
|
621
621
|
|
|
622
622
|
#### Creating Custom Processors
|
|
623
623
|
|
|
624
|
-
You can create custom span processors by implementing the `SpanOutputProcessor` interface. Here's a
|
|
624
|
+
You can create custom span processors by implementing the `SpanOutputProcessor` interface. Here's a basic example that converts all input text in spans to lowercase:
|
|
625
625
|
|
|
626
626
|
```ts
|
|
627
627
|
import type { SpanOutputProcessor, AnySpan } from '@mastra/observability'
|
|
@@ -664,10 +664,10 @@ Processors are executed in the order they're defined, allowing you to chain mult
|
|
|
664
664
|
|
|
665
665
|
Custom span formatters transform how spans appear in specific observability platforms. Unlike span processors, formatters are configured per-exporter, allowing different formatting for different destinations. Formatters support both synchronous and asynchronous operations.
|
|
666
666
|
|
|
667
|
-
#### Use
|
|
667
|
+
#### Use cases
|
|
668
668
|
|
|
669
669
|
- **Extract plain text from AI SDK messages** - Convert structured message arrays to readable text
|
|
670
|
-
- **Transform input/output formats** - Customize how data
|
|
670
|
+
- **Transform input/output formats** - Customize how data displays in specific platforms
|
|
671
671
|
- **Platform-specific field mapping** - Add or remove fields based on platform requirements
|
|
672
672
|
- **Async data enrichment** - Fetch additional context from external APIs or databases
|
|
673
673
|
|
|
@@ -794,7 +794,7 @@ const exporter = new LangfuseExporter({
|
|
|
794
794
|
|
|
795
795
|
> **Note:** Async formatters add latency to span export. Keep async operations fast (under 100ms) to avoid slowing down your application. Consider using caching for frequently accessed data.
|
|
796
796
|
|
|
797
|
-
## Serialization
|
|
797
|
+
## Serialization options
|
|
798
798
|
|
|
799
799
|
Serialization options control how span data (input, output, and attributes) is truncated before export. This is useful when working with large payloads, deeply nested objects, or when you need to optimize trace storage.
|
|
800
800
|
|
|
@@ -830,7 +830,7 @@ export const mastra = new Mastra({
|
|
|
830
830
|
| `maxArrayLength` | 50 | Maximum number of items in arrays. Additional items are omitted. |
|
|
831
831
|
| `maxObjectKeys` | 50 | Maximum number of keys in objects. Additional keys are omitted. |
|
|
832
832
|
|
|
833
|
-
### Use
|
|
833
|
+
### Use cases
|
|
834
834
|
|
|
835
835
|
**Increasing limits for debugging**: If your agents or tools work with large documents, API responses, or data structures, increase these limits to capture more context in your traces:
|
|
836
836
|
|
|
@@ -855,7 +855,7 @@ serializationOptions: {
|
|
|
855
855
|
|
|
856
856
|
All options are optional — if not specified, they fall back to the defaults shown above.
|
|
857
857
|
|
|
858
|
-
## Retrieving
|
|
858
|
+
## Retrieving trace IDs
|
|
859
859
|
|
|
860
860
|
When you execute agents or workflows with tracing enabled, the response includes a `traceId` that you can use to look up the full trace in your observability platform. This is useful for debugging, customer support, or correlating traces with other events in your system.
|
|
861
861
|
|
|
@@ -911,7 +911,7 @@ Once you have a trace ID, you can:
|
|
|
911
911
|
|
|
912
912
|
The trace ID is only available when tracing is enabled. If tracing is disabled or sampling excludes the request, `traceId` will be `undefined`.
|
|
913
913
|
|
|
914
|
-
## Integrating with
|
|
914
|
+
## Integrating with external tracing systems
|
|
915
915
|
|
|
916
916
|
When running Mastra agents or workflows within applications that have existing distributed tracing (OpenTelemetry, Datadog, etc.), you can connect Mastra traces to your parent trace context. This creates a unified view of your entire request flow, making it easier to understand how Mastra operations fit into the broader system.
|
|
917
917
|
|
|
@@ -1017,13 +1017,13 @@ app.post('/api/analyze', async (req, res) => {
|
|
|
1017
1017
|
|
|
1018
1018
|
This creates a single distributed trace that includes both the HTTP request handling and the Mastra agent execution, viewable in your observability platform of choice.
|
|
1019
1019
|
|
|
1020
|
-
## Flushing
|
|
1020
|
+
## Flushing traces in serverless environments
|
|
1021
1021
|
|
|
1022
1022
|
In serverless environments like Vercel's fluid compute, AWS Lambda, or Cloudflare Workers, runtime instances can be reused across multiple requests. The `flush()` method allows you to ensure all buffered spans are exported before the runtime terminates, without shutting down the exporter (which would prevent future exports).
|
|
1023
1023
|
|
|
1024
1024
|
> **Storage requirements:** Serverless environments have ephemeral filesystems. Use external storage instead of local file storage (`file:./mastra.db`). See the [Vercel deployment guide](https://mastra.ai/guides/deployment/vercel) for a complete setup example.
|
|
1025
1025
|
|
|
1026
|
-
### Using flush()
|
|
1026
|
+
### Using `flush()`
|
|
1027
1027
|
|
|
1028
1028
|
Call `flush()` on the observability instance to flush all exporters:
|
|
1029
1029
|
|
|
@@ -1035,7 +1035,7 @@ const observability = mastra.getObservability()
|
|
|
1035
1035
|
await observability.flush()
|
|
1036
1036
|
```
|
|
1037
1037
|
|
|
1038
|
-
### When to Use flush()
|
|
1038
|
+
### When to Use `flush()`
|
|
1039
1039
|
|
|
1040
1040
|
Use `flush()` in these scenarios:
|
|
1041
1041
|
|
|
@@ -1056,7 +1056,7 @@ export async function POST(req: Request) {
|
|
|
1056
1056
|
}
|
|
1057
1057
|
```
|
|
1058
1058
|
|
|
1059
|
-
### flush() vs shutdown()
|
|
1059
|
+
### `flush()` vs `shutdown()`
|
|
1060
1060
|
|
|
1061
1061
|
| Method | Behavior | Use Case |
|
|
1062
1062
|
| ------------ | --------------------------------------------- | ------------------------------------------ |
|
|
@@ -1065,7 +1065,7 @@ export async function POST(req: Request) {
|
|
|
1065
1065
|
|
|
1066
1066
|
Use `flush()` when you need to ensure data is exported but want to keep the exporter ready for future requests. Use `shutdown()` only when the application is terminating.
|
|
1067
1067
|
|
|
1068
|
-
## What
|
|
1068
|
+
## What gets traced
|
|
1069
1069
|
|
|
1070
1070
|
Mastra automatically creates spans for:
|
|
1071
1071
|
|
|
@@ -1083,7 +1083,7 @@ Mastra automatically creates spans for:
|
|
|
1083
1083
|
- **Control flow** - Conditionals, loops, parallel execution
|
|
1084
1084
|
- **Wait operations** - Delays and event waiting
|
|
1085
1085
|
|
|
1086
|
-
## See
|
|
1086
|
+
## See also
|
|
1087
1087
|
|
|
1088
1088
|
### Reference Documentation
|
|
1089
1089
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# Sensitive
|
|
1
|
+
# Sensitive data filter
|
|
2
2
|
|
|
3
3
|
The Sensitive Data Filter is a span processor that redacts sensitive information from your traces during the processing pipeline before export. This ensures that passwords, API keys, tokens, and other confidential data never leave your application or get stored in observability platforms.
|
|
4
4
|
|
|
5
|
-
## Default
|
|
5
|
+
## Default configuration
|
|
6
6
|
|
|
7
7
|
The Sensitive Data Filter is included in the recommended observability configuration:
|
|
8
8
|
|
|
@@ -53,7 +53,7 @@ With the default configuration, the filter redacts these common sensitive field
|
|
|
53
53
|
|
|
54
54
|
> **Note:** Field matching is case-insensitive and normalizes separators. For example, `api-key`, `api_key`, and `Api Key` are all treated as `apikey`.
|
|
55
55
|
|
|
56
|
-
## How
|
|
56
|
+
## How it works
|
|
57
57
|
|
|
58
58
|
The Sensitive Data Filter processes spans before they're sent to exporters, scanning through:
|
|
59
59
|
|
|
@@ -65,9 +65,9 @@ The Sensitive Data Filter processes spans before they're sent to exporters, scan
|
|
|
65
65
|
|
|
66
66
|
When a sensitive field is detected, its value is replaced with `[REDACTED]` by default. The filter handles nested objects, arrays, and circular references safely.
|
|
67
67
|
|
|
68
|
-
## Custom
|
|
68
|
+
## Custom configuration
|
|
69
69
|
|
|
70
|
-
You can customize which fields are redacted and how redaction
|
|
70
|
+
You can customize which fields are redacted and how redaction displays:
|
|
71
71
|
|
|
72
72
|
```ts
|
|
73
73
|
import { SensitiveDataFilter, DefaultExporter, Observability } from '@mastra/observability'
|
|
@@ -108,7 +108,7 @@ export const mastra = new Mastra({
|
|
|
108
108
|
})
|
|
109
109
|
```
|
|
110
110
|
|
|
111
|
-
## Redaction
|
|
111
|
+
## Redaction styles
|
|
112
112
|
|
|
113
113
|
The filter supports two redaction styles:
|
|
114
114
|
|
|
@@ -156,7 +156,7 @@ new SensitiveDataFilter({
|
|
|
156
156
|
|
|
157
157
|
Values shorter than 7 characters are fully redacted to prevent information leakage.
|
|
158
158
|
|
|
159
|
-
## Field
|
|
159
|
+
## Field matching rules
|
|
160
160
|
|
|
161
161
|
The filter uses intelligent field matching:
|
|
162
162
|
|
|
@@ -167,9 +167,9 @@ The filter uses intelligent field matching:
|
|
|
167
167
|
3. **Exact Matching**: After normalization, fields must match exactly
|
|
168
168
|
|
|
169
169
|
- `token` matches `token`, `Token`, `TOKEN`
|
|
170
|
-
- `token`
|
|
170
|
+
- `token` doesn't match `promptTokens` or `tokenCount`
|
|
171
171
|
|
|
172
|
-
## Nested
|
|
172
|
+
## Nested object handling
|
|
173
173
|
|
|
174
174
|
The filter recursively processes nested structures:
|
|
175
175
|
|
|
@@ -207,7 +207,7 @@ The filter recursively processes nested structures:
|
|
|
207
207
|
}
|
|
208
208
|
```
|
|
209
209
|
|
|
210
|
-
## Performance
|
|
210
|
+
## Performance considerations
|
|
211
211
|
|
|
212
212
|
The Sensitive Data Filter is designed to be lightweight and efficient:
|
|
213
213
|
|
|
@@ -215,7 +215,7 @@ The Sensitive Data Filter is designed to be lightweight and efficient:
|
|
|
215
215
|
- **Circular Reference Handling**: Safely handles complex object graphs
|
|
216
216
|
- **Error Recovery**: If filtering fails, the field is replaced with an error marker rather than crashing
|
|
217
217
|
|
|
218
|
-
## Disabling the
|
|
218
|
+
## Disabling the filter
|
|
219
219
|
|
|
220
220
|
If you need to disable sensitive data filtering (not recommended for production):
|
|
221
221
|
|
|
@@ -235,7 +235,7 @@ export const mastra = new Mastra({
|
|
|
235
235
|
|
|
236
236
|
> **Warning:** Only disable sensitive data filtering in controlled environments. Never disable it when sending traces to external services or shared storage.
|
|
237
237
|
|
|
238
|
-
## Common
|
|
238
|
+
## Common use cases
|
|
239
239
|
|
|
240
240
|
### Healthcare Applications
|
|
241
241
|
|
|
@@ -279,7 +279,7 @@ new SensitiveDataFilter({
|
|
|
279
279
|
})
|
|
280
280
|
```
|
|
281
281
|
|
|
282
|
-
## Error
|
|
282
|
+
## Error handling
|
|
283
283
|
|
|
284
284
|
If the filter encounters an error while processing a field, it replaces the field with a safe error marker:
|
|
285
285
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Chunking and
|
|
1
|
+
# Chunking and embedding documents
|
|
2
2
|
|
|
3
3
|
Before processing, create a MDocument instance from your content. You can initialize it from various formats:
|
|
4
4
|
|
|
@@ -9,7 +9,7 @@ const docFromMarkdown = MDocument.fromMarkdown('# Your Markdown content...')
|
|
|
9
9
|
const docFromJSON = MDocument.fromJSON(`{ "key": "value" }`)
|
|
10
10
|
```
|
|
11
11
|
|
|
12
|
-
## Step 1: Document
|
|
12
|
+
## Step 1: Document processing
|
|
13
13
|
|
|
14
14
|
Use `chunk` to split documents into manageable pieces. Mastra supports multiple chunking strategies optimized for different document types:
|
|
15
15
|
|
|
@@ -65,7 +65,7 @@ const chunks = await doc.chunk({
|
|
|
65
65
|
|
|
66
66
|
We go deeper into chunking strategies in our [`chunk()` reference documentation](https://mastra.ai/reference/rag/chunk).
|
|
67
67
|
|
|
68
|
-
## Step 2: Embedding
|
|
68
|
+
## Step 2: Embedding generation
|
|
69
69
|
|
|
70
70
|
Transform chunks into embeddings using your preferred provider. Mastra supports embedding models through the model router.
|
|
71
71
|
|
|
@@ -123,9 +123,9 @@ const { embeddings } = await embedMany({
|
|
|
123
123
|
})
|
|
124
124
|
```
|
|
125
125
|
|
|
126
|
-
> **Vector Database Compatibility:** When storing embeddings, the vector database index must be configured to match the output size of your embedding model. If the dimensions
|
|
126
|
+
> **Vector Database Compatibility:** When storing embeddings, the vector database index must be configured to match the output size of your embedding model. If the dimensions don't match, you may get errors or data corruption.
|
|
127
127
|
|
|
128
|
-
## Example: Complete
|
|
128
|
+
## Example: Complete pipeline
|
|
129
129
|
|
|
130
130
|
Here's an example showing document processing and embedding generation with both providers:
|
|
131
131
|
|
|
@@ -59,11 +59,11 @@ console.log('Similar chunks:', results)
|
|
|
59
59
|
|
|
60
60
|
This example shows the essentials: initialize a document, create chunks, generate embeddings, store them, and query for similar content.
|
|
61
61
|
|
|
62
|
-
## Document
|
|
62
|
+
## Document processing
|
|
63
63
|
|
|
64
64
|
The basic building block of RAG is document processing. Documents can be chunked using various strategies (recursive, sliding window, etc.) and enriched with metadata. See the [chunking and embedding doc](https://mastra.ai/docs/rag/chunking-and-embedding).
|
|
65
65
|
|
|
66
|
-
## Vector
|
|
66
|
+
## Vector storage
|
|
67
67
|
|
|
68
68
|
Mastra supports multiple vector stores for embedding persistence and similarity search, including pgvector, Pinecone, Qdrant, and MongoDB. See the [vector database doc](https://mastra.ai/docs/rag/vector-databases).
|
|
69
69
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# Retrieval in RAG
|
|
1
|
+
# Retrieval in RAG systems
|
|
2
2
|
|
|
3
3
|
After storing embeddings, you need to retrieve relevant chunks to answer user queries.
|
|
4
4
|
|
|
5
5
|
Mastra provides flexible retrieval options with support for semantic search, filtering, and re-ranking.
|
|
6
6
|
|
|
7
|
-
## How
|
|
7
|
+
## How retrieval works
|
|
8
8
|
|
|
9
9
|
1. The user's query is converted to an embedding using the same model used for document embeddings
|
|
10
10
|
2. This embedding is compared to stored embeddings using vector similarity
|
|
@@ -14,7 +14,7 @@ Mastra provides flexible retrieval options with support for semantic search, fil
|
|
|
14
14
|
- Re-ranked for better relevance
|
|
15
15
|
- Processed through a knowledge graph
|
|
16
16
|
|
|
17
|
-
## Basic
|
|
17
|
+
## Basic retrieval
|
|
18
18
|
|
|
19
19
|
The simplest approach is direct semantic search. This method uses vector similarity to find chunks that are semantically similar to the query:
|
|
20
20
|
|
|
@@ -63,7 +63,7 @@ Results include both the text content and a similarity score:
|
|
|
63
63
|
]
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
## Advanced
|
|
66
|
+
## Advanced retrieval options
|
|
67
67
|
|
|
68
68
|
### Metadata Filtering
|
|
69
69
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# Storing
|
|
1
|
+
# Storing embeddings in a vector database
|
|
2
2
|
|
|
3
3
|
After generating embeddings, you need to store them in a database that supports vector similarity search. Mastra provides a consistent interface for storing and querying embeddings across various vector databases.
|
|
4
4
|
|
|
5
|
-
## Supported
|
|
5
|
+
## Supported databases
|
|
6
6
|
|
|
7
7
|
**MongoDB**:
|
|
8
8
|
|
|
@@ -234,7 +234,7 @@ await store.upsert({
|
|
|
234
234
|
})
|
|
235
235
|
```
|
|
236
236
|
|
|
237
|
-
**
|
|
237
|
+
**Elasticsearch**:
|
|
238
238
|
|
|
239
239
|
```ts
|
|
240
240
|
import { ElasticSearchVector } from '@mastra/elasticsearch'
|
|
@@ -337,7 +337,7 @@ await store.upsert({
|
|
|
337
337
|
})
|
|
338
338
|
```
|
|
339
339
|
|
|
340
|
-
## Using
|
|
340
|
+
## Using vector storage
|
|
341
341
|
|
|
342
342
|
Once initialized, all vector stores share the same interface for creating indexes, upserting embeddings, and querying.
|
|
343
343
|
|
|
@@ -355,11 +355,11 @@ await store.createIndex({
|
|
|
355
355
|
|
|
356
356
|
The dimension size must match the output dimension of your chosen embedding model. Common dimension sizes are:
|
|
357
357
|
|
|
358
|
-
- OpenAI text-embedding-3-small
|
|
359
|
-
- Cohere embed-multilingual-v3
|
|
360
|
-
- Google gemini-embedding-001
|
|
358
|
+
- `OpenAI text-embedding-3-small`: 1536 dimensions (or custom, e.g., 256)
|
|
359
|
+
- `Cohere embed-multilingual-v3`: 1024 dimensions
|
|
360
|
+
- `Google gemini-embedding-001`: 768 dimensions (or custom)
|
|
361
361
|
|
|
362
|
-
> **Warning:** Index dimensions
|
|
362
|
+
> **Warning:** Index dimensions can't be changed after creation. To use a different model, delete and recreate the index with the new dimension size.
|
|
363
363
|
|
|
364
364
|
### Naming Rules for Databases
|
|
365
365
|
|
|
@@ -490,7 +490,7 @@ Index names must:
|
|
|
490
490
|
- Example: `My_Index` is not valid (contains uppercase letters)
|
|
491
491
|
- Example: `_myindex` is not valid (begins with underscore)
|
|
492
492
|
|
|
493
|
-
**
|
|
493
|
+
**Elasticsearch**:
|
|
494
494
|
|
|
495
495
|
Index names must:
|
|
496
496
|
|
|
@@ -543,7 +543,7 @@ The upsert operation:
|
|
|
543
543
|
- Creates new vectors if they don't exist
|
|
544
544
|
- Automatically handles batching for large datasets
|
|
545
545
|
|
|
546
|
-
## Adding
|
|
546
|
+
## Adding metadata
|
|
547
547
|
|
|
548
548
|
Vector stores support rich metadata (any JSON-serializable fields) for filtering and organization. Since metadata is stored with no fixed schema, use consistent field naming to avoid unexpected query results.
|
|
549
549
|
|
|
@@ -581,9 +581,9 @@ Key metadata considerations:
|
|
|
581
581
|
- Only include fields you plan to filter or sort by - extra fields add overhead
|
|
582
582
|
- Add timestamps (e.g., 'createdAt', 'lastUpdated') to track content freshness
|
|
583
583
|
|
|
584
|
-
## Deleting
|
|
584
|
+
## Deleting vectors
|
|
585
585
|
|
|
586
|
-
When building RAG applications, you often need to clean up stale vectors when documents are deleted or updated. Mastra provides the `deleteVectors` method that supports deleting vectors by metadata filters, making it
|
|
586
|
+
When building RAG applications, you often need to clean up stale vectors when documents are deleted or updated. Mastra provides the `deleteVectors` method that supports deleting vectors by metadata filters, making it straightforward to remove all embeddings associated with a specific document.
|
|
587
587
|
|
|
588
588
|
### Delete by Metadata Filter
|
|
589
589
|
|
|
@@ -637,7 +637,7 @@ await store.deleteVectors({
|
|
|
637
637
|
})
|
|
638
638
|
```
|
|
639
639
|
|
|
640
|
-
## Best
|
|
640
|
+
## Best practices
|
|
641
641
|
|
|
642
642
|
- Create indexes before bulk insertions
|
|
643
643
|
- Use batch operations for large insertions (the upsert method handles batching automatically)
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# MastraAuthAuth0
|
|
1
|
+
# MastraAuthAuth0 class
|
|
2
2
|
|
|
3
3
|
The `MastraAuthAuth0` class provides authentication for Mastra using Auth0. It verifies incoming requests using Auth0-issued JWT tokens and integrates with the Mastra server using the `auth` option.
|
|
4
4
|
|
|
@@ -66,7 +66,7 @@ export const mastra = new Mastra({
|
|
|
66
66
|
By default, `MastraAuthAuth0` allows all authenticated users who have valid Auth0 tokens for the specified audience. The token verification ensures that:
|
|
67
67
|
|
|
68
68
|
1. The token is properly signed by Auth0
|
|
69
|
-
2. The token
|
|
69
|
+
2. The token isn't expired
|
|
70
70
|
3. The token audience matches your configured audience
|
|
71
71
|
4. The token issuer matches your Auth0 domain
|
|
72
72
|
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# CompositeAuth
|
|
1
|
+
# CompositeAuth class
|
|
2
2
|
|
|
3
3
|
The `CompositeAuth` class allows you to combine multiple authentication providers into a single auth handler. It tries each provider in order until one succeeds.
|
|
4
4
|
|
|
5
|
-
## Use
|
|
5
|
+
## Use cases
|
|
6
6
|
|
|
7
7
|
- Support both API keys and OAuth tokens
|
|
8
8
|
- Migrate between auth providers without breaking existing clients
|
|
@@ -17,7 +17,7 @@ CompositeAuth is included in `@mastra/core`, no additional packages required.
|
|
|
17
17
|
import { CompositeAuth } from '@mastra/core/server'
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
## Usage
|
|
20
|
+
## Usage example
|
|
21
21
|
|
|
22
22
|
Combine SimpleAuth (for API keys) with Clerk (for user sessions):
|
|
23
23
|
|
|
@@ -57,7 +57,7 @@ export const mastra = new Mastra({
|
|
|
57
57
|
})
|
|
58
58
|
```
|
|
59
59
|
|
|
60
|
-
## How
|
|
60
|
+
## How it works
|
|
61
61
|
|
|
62
62
|
When a request comes in, CompositeAuth:
|
|
63
63
|
|
|
@@ -79,7 +79,7 @@ async authenticateToken(token, request) {
|
|
|
79
79
|
}
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
-
## Provider
|
|
82
|
+
## Provider order
|
|
83
83
|
|
|
84
84
|
The order of providers matters. Place the most common authentication method first for better performance:
|
|
85
85
|
|
|
@@ -97,7 +97,7 @@ new CompositeAuth([
|
|
|
97
97
|
])
|
|
98
98
|
```
|
|
99
99
|
|
|
100
|
-
## Multiple OAuth
|
|
100
|
+
## Multiple OAuth providers
|
|
101
101
|
|
|
102
102
|
Support users from different identity providers:
|
|
103
103
|
|
|
@@ -124,7 +124,7 @@ export const mastra = new Mastra({
|
|
|
124
124
|
})
|
|
125
125
|
```
|
|
126
126
|
|
|
127
|
-
## Migration
|
|
127
|
+
## Migration example
|
|
128
128
|
|
|
129
129
|
Migrate from JWT to Clerk while maintaining backwards compatibility:
|
|
130
130
|
|
|
@@ -156,7 +156,7 @@ export const mastra = new Mastra({
|
|
|
156
156
|
})
|
|
157
157
|
```
|
|
158
158
|
|
|
159
|
-
## With
|
|
159
|
+
## With custom providers
|
|
160
160
|
|
|
161
161
|
Combine built-in providers with custom implementations:
|
|
162
162
|
|
|
@@ -181,7 +181,7 @@ export const mastra = new Mastra({
|
|
|
181
181
|
})
|
|
182
182
|
```
|
|
183
183
|
|
|
184
|
-
## Error
|
|
184
|
+
## Error handling
|
|
185
185
|
|
|
186
186
|
CompositeAuth silently catches errors from individual providers and moves to the next one. This prevents one failing provider from blocking authentication:
|
|
187
187
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# Custom
|
|
1
|
+
# Custom auth providers
|
|
2
2
|
|
|
3
3
|
Custom auth providers allow you to implement authentication for identity systems that aren't covered by the built-in providers. Extend the `MastraAuthProvider` base class to integrate with any authentication system.
|
|
4
4
|
|
|
@@ -17,7 +17,7 @@ Create custom auth providers to support:
|
|
|
17
17
|
- Specialized authorization rules
|
|
18
18
|
- Enterprise SSO integrations
|
|
19
19
|
|
|
20
|
-
## Creating a
|
|
20
|
+
## Creating a custom auth provider
|
|
21
21
|
|
|
22
22
|
Extend the `MastraAuthProvider` class and implement the required methods:
|
|
23
23
|
|
|
@@ -101,9 +101,9 @@ export class MyAuthProvider extends MastraAuthProvider<MyUser> {
|
|
|
101
101
|
}
|
|
102
102
|
```
|
|
103
103
|
|
|
104
|
-
## Required
|
|
104
|
+
## Required methods
|
|
105
105
|
|
|
106
|
-
### authenticateToken()
|
|
106
|
+
### `authenticateToken()`
|
|
107
107
|
|
|
108
108
|
Verify the incoming token and return the user object if valid, or `null` if authentication fails.
|
|
109
109
|
|
|
@@ -120,7 +120,7 @@ async authenticateToken(token: string, request: HonoRequest): Promise<TUser | nu
|
|
|
120
120
|
|
|
121
121
|
The token is automatically extracted from the `Authorization: Bearer <token>` header. If you need to access other headers or cookies, use the `request` parameter.
|
|
122
122
|
|
|
123
|
-
### authorizeUser()
|
|
123
|
+
### `authorizeUser()`
|
|
124
124
|
|
|
125
125
|
Determine if the authenticated user is allowed to access the resource.
|
|
126
126
|
|
|
@@ -135,7 +135,7 @@ async authorizeUser(user: TUser, request: HonoRequest): Promise<boolean> | boole
|
|
|
135
135
|
|
|
136
136
|
**Returns**: `true` to allow access, `false` to deny (returns 403 Forbidden).
|
|
137
137
|
|
|
138
|
-
## Configuration
|
|
138
|
+
## Configuration options
|
|
139
139
|
|
|
140
140
|
The `MastraAuthProviderOptions` interface supports these options:
|
|
141
141
|
|
|
@@ -168,7 +168,7 @@ const auth = new MyAuthProvider({
|
|
|
168
168
|
})
|
|
169
169
|
```
|
|
170
170
|
|
|
171
|
-
## Using
|
|
171
|
+
## Using your auth provider
|
|
172
172
|
|
|
173
173
|
Register your custom auth provider with the Mastra instance:
|
|
174
174
|
|
|
@@ -186,7 +186,7 @@ export const mastra = new Mastra({
|
|
|
186
186
|
})
|
|
187
187
|
```
|
|
188
188
|
|
|
189
|
-
## Helper
|
|
189
|
+
## Helper utilities
|
|
190
190
|
|
|
191
191
|
The `@mastra/auth` package provides utilities for common token verification patterns:
|
|
192
192
|
|
|
@@ -268,7 +268,7 @@ export class MyJwksAuth extends MastraAuthProvider<MyUser> {
|
|
|
268
268
|
}
|
|
269
269
|
```
|
|
270
270
|
|
|
271
|
-
## Custom
|
|
271
|
+
## Custom authorization logic
|
|
272
272
|
|
|
273
273
|
Override the default authorization by providing a custom `authorizeUser` function:
|
|
274
274
|
|
|
@@ -308,7 +308,7 @@ const auth = new MyAuthProvider({
|
|
|
308
308
|
})
|
|
309
309
|
```
|
|
310
310
|
|
|
311
|
-
## Testing
|
|
311
|
+
## Testing custom auth providers
|
|
312
312
|
|
|
313
313
|
Example test structure using Vitest:
|
|
314
314
|
|
|
@@ -432,7 +432,7 @@ describe('MyAuthProvider', () => {
|
|
|
432
432
|
})
|
|
433
433
|
```
|
|
434
434
|
|
|
435
|
-
## Error
|
|
435
|
+
## Error handling
|
|
436
436
|
|
|
437
437
|
Provide descriptive errors for common failure scenarios:
|
|
438
438
|
|
|
@@ -490,7 +490,7 @@ export class MyAuthProvider extends MastraAuthProvider<MyUser> {
|
|
|
490
490
|
}
|
|
491
491
|
```
|
|
492
492
|
|
|
493
|
-
## Built-in
|
|
493
|
+
## Built-in providers
|
|
494
494
|
|
|
495
495
|
Mastra includes these auth providers as reference implementations:
|
|
496
496
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# MastraAuthFirebase
|
|
1
|
+
# MastraAuthFirebase class
|
|
2
2
|
|
|
3
3
|
The `MastraAuthFirebase` class provides authentication for Mastra using Firebase Authentication. It verifies incoming requests using Firebase ID tokens and integrates with the Mastra server using the `auth` option.
|
|
4
4
|
|
|
@@ -66,12 +66,12 @@ export const mastra = new Mastra({
|
|
|
66
66
|
|
|
67
67
|
The `MastraAuthFirebase` class can be configured through constructor options or environment variables.
|
|
68
68
|
|
|
69
|
-
### Environment
|
|
69
|
+
### Environment variables
|
|
70
70
|
|
|
71
71
|
- `FIREBASE_SERVICE_ACCOUNT`: Path to Firebase service account JSON file
|
|
72
72
|
- `FIRESTORE_DATABASE_ID` or `FIREBASE_DATABASE_ID`: Firestore database ID
|
|
73
73
|
|
|
74
|
-
> **Note:** When constructor options
|
|
74
|
+
> **Note:** When constructor options aren't provided, the class automatically reads these environment variables. This means you can call `new MastraAuthFirebase()` without any arguments if your environment variables are properly configured.
|
|
75
75
|
|
|
76
76
|
### User Authorization
|
|
77
77
|
|