@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,222 @@
|
|
|
1
|
+
# Qdrant Vector Store
|
|
2
|
+
|
|
3
|
+
The QdrantVector class provides vector search using [Qdrant](https://qdrant.tech/), a vector similarity search engine. It provides a production-ready service with a convenient API to store, search, and manage vectors with additional payload and extended filtering support.
|
|
4
|
+
|
|
5
|
+
## Constructor Options
|
|
6
|
+
|
|
7
|
+
**url:** (`string`): REST URL of the Qdrant instance. Eg. https\://xyz-example.eu-central.aws.cloud.qdrant.io:6333
|
|
8
|
+
|
|
9
|
+
**apiKey:** (`string`): Optional Qdrant API key
|
|
10
|
+
|
|
11
|
+
**https:** (`boolean`): Whether to use TLS when setting up the connection. Recommended.
|
|
12
|
+
|
|
13
|
+
## Methods
|
|
14
|
+
|
|
15
|
+
### createIndex()
|
|
16
|
+
|
|
17
|
+
**indexName:** (`string`): Name of the index to create
|
|
18
|
+
|
|
19
|
+
**dimension:** (`number`): Vector dimension (must match your embedding model). Required for single-vector collections.
|
|
20
|
+
|
|
21
|
+
**metric?:** (`'cosine' | 'euclidean' | 'dotproduct'`): Distance metric for similarity search (Default: `cosine`)
|
|
22
|
+
|
|
23
|
+
**namedVectors?:** (`Record<string, { size: number; distance: 'cosine' | 'euclidean' | 'dotproduct' }>`): Configuration for named vector spaces. When provided, creates a collection with multiple named vector fields.
|
|
24
|
+
|
|
25
|
+
#### Creating a Named Vectors Collection
|
|
26
|
+
|
|
27
|
+
```typescript
|
|
28
|
+
// Create a collection with multiple named vector spaces
|
|
29
|
+
await store.createIndex({
|
|
30
|
+
indexName: 'multi_modal',
|
|
31
|
+
dimension: 768, // fallback
|
|
32
|
+
namedVectors: {
|
|
33
|
+
text: { size: 768, distance: 'cosine' },
|
|
34
|
+
image: { size: 512, distance: 'euclidean' },
|
|
35
|
+
},
|
|
36
|
+
})
|
|
37
|
+
```
|
|
38
|
+
|
|
39
|
+
### upsert()
|
|
40
|
+
|
|
41
|
+
**indexName:** (`string`): Name of the index to upsert into
|
|
42
|
+
|
|
43
|
+
**vectors:** (`number[][]`): Array of embedding vectors
|
|
44
|
+
|
|
45
|
+
**metadata?:** (`Record<string, any>[]`): Metadata for each vector
|
|
46
|
+
|
|
47
|
+
**ids?:** (`string[]`): Optional vector IDs (auto-generated if not provided)
|
|
48
|
+
|
|
49
|
+
**vectorName?:** (`string`): Name of the vector space to upsert into when using named vectors.
|
|
50
|
+
|
|
51
|
+
#### Upserting into Named Vector Spaces
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
// Upsert into the "text" vector space
|
|
55
|
+
await store.upsert({
|
|
56
|
+
indexName: 'multi_modal',
|
|
57
|
+
vectors: textEmbeddings,
|
|
58
|
+
metadata: textMetadata,
|
|
59
|
+
vectorName: 'text',
|
|
60
|
+
})
|
|
61
|
+
|
|
62
|
+
// Upsert into the "image" vector space
|
|
63
|
+
await store.upsert({
|
|
64
|
+
indexName: 'multi_modal',
|
|
65
|
+
vectors: imageEmbeddings,
|
|
66
|
+
metadata: imageMetadata,
|
|
67
|
+
vectorName: 'image',
|
|
68
|
+
})
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### query()
|
|
72
|
+
|
|
73
|
+
**indexName:** (`string`): Name of the index to query
|
|
74
|
+
|
|
75
|
+
**queryVector:** (`number[]`): Query vector to find similar vectors
|
|
76
|
+
|
|
77
|
+
**topK?:** (`number`): Number of results to return (Default: `10`)
|
|
78
|
+
|
|
79
|
+
**filter?:** (`Record<string, any>`): Metadata filters for the query
|
|
80
|
+
|
|
81
|
+
**includeVector?:** (`boolean`): Whether to include vectors in the results (Default: `false`)
|
|
82
|
+
|
|
83
|
+
**using?:** (`string`): Name of the vector field to query when using named vectors. Use this when your collection has multiple named vector fields.
|
|
84
|
+
|
|
85
|
+
#### Named Vectors
|
|
86
|
+
|
|
87
|
+
Qdrant supports [named vectors](https://qdrant.tech/documentation/concepts/vectors/#named-vectors), allowing multiple vector fields per collection. Use the `using` parameter to specify which named vector to query against:
|
|
88
|
+
|
|
89
|
+
```typescript
|
|
90
|
+
const results = await store.query({
|
|
91
|
+
indexName: 'my_index',
|
|
92
|
+
queryVector: embedding,
|
|
93
|
+
topK: 10,
|
|
94
|
+
using: 'title_embedding', // Query against a specific named vector
|
|
95
|
+
})
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### listIndexes()
|
|
99
|
+
|
|
100
|
+
Returns an array of index names as strings.
|
|
101
|
+
|
|
102
|
+
### describeIndex()
|
|
103
|
+
|
|
104
|
+
**indexName:** (`string`): Name of the index to describe
|
|
105
|
+
|
|
106
|
+
Returns:
|
|
107
|
+
|
|
108
|
+
```typescript
|
|
109
|
+
interface IndexStats {
|
|
110
|
+
dimension: number
|
|
111
|
+
count: number
|
|
112
|
+
metric: 'cosine' | 'euclidean' | 'dotproduct'
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
### deleteIndex()
|
|
117
|
+
|
|
118
|
+
**indexName:** (`string`): Name of the index to delete
|
|
119
|
+
|
|
120
|
+
### updateVector()
|
|
121
|
+
|
|
122
|
+
Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
|
|
123
|
+
|
|
124
|
+
**indexName:** (`string`): Name of the index to update
|
|
125
|
+
|
|
126
|
+
**id?:** (`string`): ID of the vector to update (mutually exclusive with filter)
|
|
127
|
+
|
|
128
|
+
**filter?:** (`Record<string, any>`): Metadata filter to identify vector(s) to update (mutually exclusive with id)
|
|
129
|
+
|
|
130
|
+
**update:** (`{ vector?: number[]; metadata?: Record<string, any>; }`): Object containing the vector and/or metadata to update
|
|
131
|
+
|
|
132
|
+
Updates a vector and/or its metadata in the specified index. If both vector and metadata are provided, both will be updated. If only one is provided, only that will be updated.
|
|
133
|
+
|
|
134
|
+
### deleteVector()
|
|
135
|
+
|
|
136
|
+
**indexName:** (`string`): Name of the index from which to delete the vector
|
|
137
|
+
|
|
138
|
+
**id:** (`string`): ID of the vector to delete
|
|
139
|
+
|
|
140
|
+
Deletes a vector from the specified index by its ID.
|
|
141
|
+
|
|
142
|
+
### deleteVectors()
|
|
143
|
+
|
|
144
|
+
Delete multiple vectors by IDs or by metadata filter. Either `ids` or `filter` must be provided, but not both.
|
|
145
|
+
|
|
146
|
+
**indexName:** (`string`): Name of the index containing the vectors to delete
|
|
147
|
+
|
|
148
|
+
**ids?:** (`string[]`): Array of vector IDs to delete (mutually exclusive with filter)
|
|
149
|
+
|
|
150
|
+
**filter?:** (`Record<string, any>`): Metadata filter to identify vectors to delete (mutually exclusive with ids)
|
|
151
|
+
|
|
152
|
+
### createPayloadIndex()
|
|
153
|
+
|
|
154
|
+
Creates a payload (metadata) index on a collection field to enable efficient filtering. This is **required** for Qdrant Cloud and any Qdrant instance with `strict_mode_config = true`.
|
|
155
|
+
|
|
156
|
+
**indexName:** (`string`): Name of the collection to create the payload index on
|
|
157
|
+
|
|
158
|
+
**fieldName:** (`string`): Name of the payload field to index
|
|
159
|
+
|
|
160
|
+
**fieldSchema:** (`'keyword' | 'integer' | 'float' | 'geo' | 'text' | 'bool' | 'datetime' | 'uuid'`): The schema type for the payload field
|
|
161
|
+
|
|
162
|
+
**wait?:** (`boolean`): Whether to wait for the operation to complete (Default: `true`)
|
|
163
|
+
|
|
164
|
+
```typescript
|
|
165
|
+
// Create a keyword index for filtering by source
|
|
166
|
+
await store.createPayloadIndex({
|
|
167
|
+
indexName: 'my_index',
|
|
168
|
+
fieldName: 'source',
|
|
169
|
+
fieldSchema: 'keyword',
|
|
170
|
+
})
|
|
171
|
+
|
|
172
|
+
const results = await store.query({
|
|
173
|
+
indexName: 'my_index',
|
|
174
|
+
queryVector: queryVector,
|
|
175
|
+
filter: { source: 'document-a' },
|
|
176
|
+
})
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### deletePayloadIndex()
|
|
180
|
+
|
|
181
|
+
Removes a payload index from a collection field.
|
|
182
|
+
|
|
183
|
+
**indexName:** (`string`): Name of the collection to delete the payload index from
|
|
184
|
+
|
|
185
|
+
**fieldName:** (`string`): Name of the payload field index to delete
|
|
186
|
+
|
|
187
|
+
**wait?:** (`boolean`): Whether to wait for the operation to complete (Default: `true`)
|
|
188
|
+
|
|
189
|
+
## Response Types
|
|
190
|
+
|
|
191
|
+
Query results are returned in this format:
|
|
192
|
+
|
|
193
|
+
```typescript
|
|
194
|
+
interface QueryResult {
|
|
195
|
+
id: string
|
|
196
|
+
score: number
|
|
197
|
+
metadata: Record<string, any>
|
|
198
|
+
vector?: number[] // Only included if includeVector is true
|
|
199
|
+
}
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
## Error Handling
|
|
203
|
+
|
|
204
|
+
The store throws typed errors that can be caught:
|
|
205
|
+
|
|
206
|
+
```typescript
|
|
207
|
+
try {
|
|
208
|
+
await store.query({
|
|
209
|
+
indexName: 'index_name',
|
|
210
|
+
queryVector: queryVector,
|
|
211
|
+
})
|
|
212
|
+
} catch (error) {
|
|
213
|
+
if (error instanceof VectorStoreError) {
|
|
214
|
+
console.log(error.code) // 'connection_failed' | 'invalid_dimension' | etc
|
|
215
|
+
console.log(error.details) // Additional error context
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
## Related
|
|
221
|
+
|
|
222
|
+
- [Metadata Filters](https://mastra.ai/reference/rag/metadata-filters)
|
|
@@ -0,0 +1,277 @@
|
|
|
1
|
+
# Amazon S3 Vectors Store
|
|
2
|
+
|
|
3
|
+
The `S3Vectors` class provides vector search using [Amazon S3 Vectors (Preview)](https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-vectors.html). It stores vectors in **vector buckets** and performs similarity search in **vector indexes**, with JSON-based metadata filters.
|
|
4
|
+
|
|
5
|
+
> **Warning:** Amazon S3 Vectors is a Preview service. Preview features may change or be removed without notice and are not covered by AWS SLAs. Behavior, limits, and regional availability can change at any time. This library may introduce breaking changes to stay aligned with AWS.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
**npm**:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @mastra/s3vectors@latest
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**pnpm**:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add @mastra/s3vectors@latest
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Yarn**:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
yarn add @mastra/s3vectors@latest
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Bun**:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
bun add @mastra/s3vectors@latest
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Usage Example
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
import { S3Vectors } from '@mastra/s3vectors'
|
|
37
|
+
|
|
38
|
+
const store = new S3Vectors({
|
|
39
|
+
vectorBucketName: process.env.S3_VECTORS_BUCKET_NAME!, // e.g. "my-vector-bucket"
|
|
40
|
+
clientConfig: {
|
|
41
|
+
region: process.env.AWS_REGION!, // credentials use the default AWS provider chain
|
|
42
|
+
},
|
|
43
|
+
// Optional: mark large/long-text fields as non-filterable at index creation time
|
|
44
|
+
nonFilterableMetadataKeys: ['content'],
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
// Create an index (names are normalized: "_" → "-" and lowercased)
|
|
48
|
+
await store.createIndex({
|
|
49
|
+
indexName: 'my_index',
|
|
50
|
+
dimension: 1536,
|
|
51
|
+
metric: 'cosine', // "euclidean" also supported; "dotproduct" is NOT supported
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
// Upsert vectors (ids auto-generated if omitted). Date values in metadata are serialized to epoch ms.
|
|
55
|
+
const ids = await store.upsert({
|
|
56
|
+
indexName: 'my_index',
|
|
57
|
+
vectors: [
|
|
58
|
+
[0.1, 0.2 /* … */],
|
|
59
|
+
[0.3, 0.4 /* … */],
|
|
60
|
+
],
|
|
61
|
+
metadata: [
|
|
62
|
+
{
|
|
63
|
+
text: 'doc1',
|
|
64
|
+
genre: 'documentary',
|
|
65
|
+
year: 2023,
|
|
66
|
+
createdAt: new Date('2024-01-01'),
|
|
67
|
+
},
|
|
68
|
+
{ text: 'doc2', genre: 'comedy', year: 2021 },
|
|
69
|
+
],
|
|
70
|
+
})
|
|
71
|
+
|
|
72
|
+
// Query with metadata filters (implicit AND is canonicalized)
|
|
73
|
+
const results = await store.query({
|
|
74
|
+
indexName: 'my-index',
|
|
75
|
+
queryVector: [0.1, 0.2 /* … */],
|
|
76
|
+
topK: 10, // Service-side limits may apply (commonly 30)
|
|
77
|
+
filter: { genre: { $in: ['documentary', 'comedy'] }, year: { $gte: 2020 } },
|
|
78
|
+
includeVector: false, // set true to include raw vectors (may trigger a secondary fetch)
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
// Clean up resources (closes the underlying HTTP handler)
|
|
82
|
+
await store.disconnect()
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Constructor Options
|
|
86
|
+
|
|
87
|
+
**vectorBucketName:** (`string`): Target S3 Vectors vector bucket name.
|
|
88
|
+
|
|
89
|
+
**clientConfig?:** (`S3VectorsClientConfig`): AWS SDK v3 client options (e.g., \`region\`, \`credentials\`).
|
|
90
|
+
|
|
91
|
+
**nonFilterableMetadataKeys?:** (`string[]`): Metadata keys that should NOT be filterable (applied to the index at creation time). Use this for large text fields like \`content\`.
|
|
92
|
+
|
|
93
|
+
## Methods
|
|
94
|
+
|
|
95
|
+
### createIndex()
|
|
96
|
+
|
|
97
|
+
Creates a new vector index in the configured vector bucket. If the index already exists, the call validates the schema and becomes a no-op (existing metric and dimension are preserved).
|
|
98
|
+
|
|
99
|
+
**indexName:** (`string`): Logical index name. Normalized internally: underscores are replaced with hyphens and the name is lowercased.
|
|
100
|
+
|
|
101
|
+
**dimension:** (`number`): Vector dimension (must match your embedding model)
|
|
102
|
+
|
|
103
|
+
**metric?:** (`'cosine' | 'euclidean'`): Distance metric for similarity search. \`dotproduct\` is not supported by S3 Vectors. (Default: `cosine`)
|
|
104
|
+
|
|
105
|
+
### upsert()
|
|
106
|
+
|
|
107
|
+
Adds or replaces vectors (full-record put). If `ids` are not provided, UUIDs are generated.
|
|
108
|
+
|
|
109
|
+
**indexName:** (`string`): Name of the index to upsert into
|
|
110
|
+
|
|
111
|
+
**vectors:** (`number[][]`): Array of embedding vectors
|
|
112
|
+
|
|
113
|
+
**metadata?:** (`Record<string, any>[]`): Metadata for each vector
|
|
114
|
+
|
|
115
|
+
**ids?:** (`string[]`): Optional vector IDs (auto-generated if not provided)
|
|
116
|
+
|
|
117
|
+
### query()
|
|
118
|
+
|
|
119
|
+
Searches for nearest neighbors with optional metadata filtering.
|
|
120
|
+
|
|
121
|
+
**indexName:** (`string`): Name of the index to query
|
|
122
|
+
|
|
123
|
+
**queryVector:** (`number[]`): Query vector to find similar vectors
|
|
124
|
+
|
|
125
|
+
**topK?:** (`number`): Number of results to return (Default: `10`)
|
|
126
|
+
|
|
127
|
+
**filter?:** (`S3VectorsFilter`): JSON-based metadata filter supporting \`$and\`, \`$or\`, \`$eq\`, \`$ne\`, \`$gt\`, \`$gte\`, \`$lt\`, \`$lte\`, \`$in\`, \`$nin\`, \`$exists\`.
|
|
128
|
+
|
|
129
|
+
**includeVector?:** (`boolean`): Whether to include vectors in the results (Default: `false`)
|
|
130
|
+
|
|
131
|
+
> **Note:** Results include `score = 1/(1 + distance)` so that higher is better while preserving the underlying distance ranking.
|
|
132
|
+
|
|
133
|
+
### describeIndex()
|
|
134
|
+
|
|
135
|
+
Returns information about the index.
|
|
136
|
+
|
|
137
|
+
**indexName:** (`string`): Index name to describe.
|
|
138
|
+
|
|
139
|
+
Returns:
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
interface IndexStats {
|
|
143
|
+
dimension: number
|
|
144
|
+
count: number // computed via ListVectors pagination (O(n))
|
|
145
|
+
metric: 'cosine' | 'euclidean'
|
|
146
|
+
}
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
### deleteIndex()
|
|
150
|
+
|
|
151
|
+
Deletes an index and its data.
|
|
152
|
+
|
|
153
|
+
**indexName:** (`string`): Index to delete.
|
|
154
|
+
|
|
155
|
+
### listIndexes()
|
|
156
|
+
|
|
157
|
+
Lists all indexes in the configured vector bucket.
|
|
158
|
+
|
|
159
|
+
Returns: `Promise<string[]>`
|
|
160
|
+
|
|
161
|
+
### updateVector()
|
|
162
|
+
|
|
163
|
+
Updates a vector or metadata for a specific ID within an index.
|
|
164
|
+
|
|
165
|
+
**indexName:** (`string`): Index containing the vector.
|
|
166
|
+
|
|
167
|
+
**id:** (`string`): ID to update.
|
|
168
|
+
|
|
169
|
+
**update:** (`object`): Update data containing vector and/or metadata
|
|
170
|
+
|
|
171
|
+
**update.vector?:** (`number[]`): New vector data to update
|
|
172
|
+
|
|
173
|
+
**update.metadata?:** (`Record<string, any>`): New metadata to update
|
|
174
|
+
|
|
175
|
+
### deleteVector()
|
|
176
|
+
|
|
177
|
+
Deletes a specific vector by ID.
|
|
178
|
+
|
|
179
|
+
**indexName:** (`string`): Index containing the vector.
|
|
180
|
+
|
|
181
|
+
**id:** (`string`): ID to delete.
|
|
182
|
+
|
|
183
|
+
### disconnect()
|
|
184
|
+
|
|
185
|
+
Closes the underlying AWS SDK HTTP handler to free sockets.
|
|
186
|
+
|
|
187
|
+
## Response Types
|
|
188
|
+
|
|
189
|
+
Query results are returned in this format:
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
interface QueryResult {
|
|
193
|
+
id: string
|
|
194
|
+
score: number // 1/(1 + distance)
|
|
195
|
+
metadata: Record<string, any>
|
|
196
|
+
vector?: number[] // Only included if includeVector is true
|
|
197
|
+
}
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
## Filter Syntax
|
|
201
|
+
|
|
202
|
+
S3 Vectors supports a strict subset of operators and value types. The Mastra filter translator:
|
|
203
|
+
|
|
204
|
+
- **Canonicalizes implicit AND**: `{a:1,b:2}` → `{ $and: [{a:1},{b:2}] }`.
|
|
205
|
+
- **Normalizes Date values** to epoch ms for numeric comparisons and array elements.
|
|
206
|
+
- **Disallows Date** in equality positions (`field: value` or `$eq/$ne`); equality values must be **string | number | boolean**.
|
|
207
|
+
- **Rejects** null/undefined for equality; **array equality** is not supported (use `$in`/`$nin`).
|
|
208
|
+
- Only **`$and` / `$or`** are allowed as top-level logical operators.
|
|
209
|
+
- Logical operators must contain **field conditions** (not direct operators).
|
|
210
|
+
|
|
211
|
+
**Supported operators:**
|
|
212
|
+
|
|
213
|
+
- **Logical:** `$and`, `$or` (non-empty arrays)
|
|
214
|
+
- **Basic:** `$eq`, `$ne` (string | number | boolean)
|
|
215
|
+
- **Numeric:** `$gt`, `$gte`, `$lt`, `$lte` (number or `Date` → epoch ms)
|
|
216
|
+
- **Array:** `$in`, `$nin` (non-empty arrays of string | number | boolean; `Date` → epoch ms)
|
|
217
|
+
- **Element:** `$exists` (boolean)
|
|
218
|
+
|
|
219
|
+
**Unsupported / disallowed (rejected):** `$not`, `$nor`, `$regex`, `$all`, `$elemMatch`, `$size`, `$text`, etc.
|
|
220
|
+
|
|
221
|
+
**Examples:**
|
|
222
|
+
|
|
223
|
+
```typescript
|
|
224
|
+
// Implicit AND
|
|
225
|
+
{ genre: { $in: ["documentary", "comedy"] }, year: { $gte: 2020 } }
|
|
226
|
+
|
|
227
|
+
// Explicit logicals and ranges
|
|
228
|
+
{
|
|
229
|
+
$and: [
|
|
230
|
+
{ price: { $gte: 100, $lte: 1000 } },
|
|
231
|
+
{ $or: [{ stock: { $gt: 0 } }, { preorder: true }] }
|
|
232
|
+
]
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
// Dates in range (converted to epoch ms)
|
|
236
|
+
{ timestamp: { $gt: new Date("2024-01-01T00:00:00Z") } }
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
> **Note:** If you set `nonFilterableMetadataKeys` at index creation, those keys are stored but **cannot** be used in filters.
|
|
240
|
+
|
|
241
|
+
## Error Handling
|
|
242
|
+
|
|
243
|
+
The store throws typed errors that can be caught:
|
|
244
|
+
|
|
245
|
+
```typescript
|
|
246
|
+
try {
|
|
247
|
+
await store.query({
|
|
248
|
+
indexName: 'index-name',
|
|
249
|
+
queryVector: queryVector,
|
|
250
|
+
})
|
|
251
|
+
} catch (error) {
|
|
252
|
+
if (error instanceof VectorStoreError) {
|
|
253
|
+
console.log(error.code) // 'connection_failed' | 'invalid_dimension' | etc
|
|
254
|
+
console.log(error.details) // Additional error context
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
|
|
259
|
+
## Environment Variables
|
|
260
|
+
|
|
261
|
+
Typical environment variables when wiring your app:
|
|
262
|
+
|
|
263
|
+
- `S3_VECTORS_BUCKET_NAME`: Your S3 **vector bucket** name (used to populate `vectorBucketName`).
|
|
264
|
+
- `AWS_REGION`: AWS region for the S3 Vectors bucket.
|
|
265
|
+
- **AWS credentials**: via the standard AWS SDK provider chain (`AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_PROFILE`, etc.).
|
|
266
|
+
|
|
267
|
+
## Best Practices
|
|
268
|
+
|
|
269
|
+
- Choose the metric (`cosine` or `euclidean`) to match your embedding model; `dotproduct` is not supported.
|
|
270
|
+
- Keep **filterable** metadata small and structured (string/number/boolean). Store large text (e.g., `content`) as **non-filterable**.
|
|
271
|
+
- Use **dotted paths** for nested metadata and explicit `$and`/`$or` for complex logic.
|
|
272
|
+
- Avoid calling `describeIndex()` on hot paths—`count` is computed with paginated `ListVectors` (**O(n)**).
|
|
273
|
+
- Use `includeVector: true` only when you need raw vectors.
|
|
274
|
+
|
|
275
|
+
## Related
|
|
276
|
+
|
|
277
|
+
- [Metadata Filters](https://mastra.ai/reference/rag/metadata-filters)
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
# Turbopuffer Vector Store
|
|
2
|
+
|
|
3
|
+
The TurbopufferVector class provides vector search using [Turbopuffer](https://turbopuffer.com/), a high-performance vector database optimized for RAG applications. Turbopuffer offers fast vector similarity search with advanced filtering capabilities and efficient storage management.
|
|
4
|
+
|
|
5
|
+
## Constructor Options
|
|
6
|
+
|
|
7
|
+
**apiKey:** (`string`): The API key to authenticate with Turbopuffer
|
|
8
|
+
|
|
9
|
+
**baseUrl?:** (`string`): The base URL for the Turbopuffer API (Default: `https://api.turbopuffer.com`)
|
|
10
|
+
|
|
11
|
+
**connectTimeout?:** (`number`): The timeout to establish a connection, in ms. Only applicable in Node and Deno. (Default: `10000`)
|
|
12
|
+
|
|
13
|
+
**connectionIdleTimeout?:** (`number`): The socket idle timeout, in ms. Only applicable in Node and Deno. (Default: `60000`)
|
|
14
|
+
|
|
15
|
+
**warmConnections?:** (`number`): The number of connections to open initially when creating a new client. (Default: `0`)
|
|
16
|
+
|
|
17
|
+
**compression?:** (`boolean`): Whether to compress requests and accept compressed responses. (Default: `true`)
|
|
18
|
+
|
|
19
|
+
**schemaConfigForIndex?:** (`function`): A callback function that takes an index name and returns a config object for that index. This allows you to define explicit schemas per index.
|
|
20
|
+
|
|
21
|
+
## Methods
|
|
22
|
+
|
|
23
|
+
### createIndex()
|
|
24
|
+
|
|
25
|
+
**indexName:** (`string`): Name of the index to create
|
|
26
|
+
|
|
27
|
+
**dimension:** (`number`): Vector dimension (must match your embedding model)
|
|
28
|
+
|
|
29
|
+
**metric?:** (`'cosine' | 'euclidean' | 'dotproduct'`): Distance metric for similarity search (Default: `cosine`)
|
|
30
|
+
|
|
31
|
+
### upsert()
|
|
32
|
+
|
|
33
|
+
**vectors:** (`number[][]`): Array of embedding vectors
|
|
34
|
+
|
|
35
|
+
**metadata?:** (`Record<string, any>[]`): Metadata for each vector
|
|
36
|
+
|
|
37
|
+
**ids?:** (`string[]`): Optional vector IDs (auto-generated if not provided)
|
|
38
|
+
|
|
39
|
+
### query()
|
|
40
|
+
|
|
41
|
+
**indexName:** (`string`): Name of the index to query
|
|
42
|
+
|
|
43
|
+
**queryVector:** (`number[]`): Query vector to find similar vectors
|
|
44
|
+
|
|
45
|
+
**topK?:** (`number`): Number of results to return (Default: `10`)
|
|
46
|
+
|
|
47
|
+
**filter?:** (`Record<string, any>`): Metadata filters for the query
|
|
48
|
+
|
|
49
|
+
**includeVector?:** (`boolean`): Whether to include vectors in the results (Default: `false`)
|
|
50
|
+
|
|
51
|
+
### listIndexes()
|
|
52
|
+
|
|
53
|
+
Returns an array of index names as strings.
|
|
54
|
+
|
|
55
|
+
### describeIndex()
|
|
56
|
+
|
|
57
|
+
**indexName:** (`string`): Name of the index to describe
|
|
58
|
+
|
|
59
|
+
Returns:
|
|
60
|
+
|
|
61
|
+
```typescript
|
|
62
|
+
interface IndexStats {
|
|
63
|
+
dimension: number
|
|
64
|
+
count: number
|
|
65
|
+
metric: 'cosine' | 'euclidean' | 'dotproduct'
|
|
66
|
+
}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### deleteIndex()
|
|
70
|
+
|
|
71
|
+
**indexName:** (`string`): Name of the index to delete
|
|
72
|
+
|
|
73
|
+
### updateVector()
|
|
74
|
+
|
|
75
|
+
Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
|
|
76
|
+
|
|
77
|
+
**indexName:** (`string`): Name of the index containing the vector
|
|
78
|
+
|
|
79
|
+
**id?:** (`string`): ID of the vector to update (mutually exclusive with filter)
|
|
80
|
+
|
|
81
|
+
**filter?:** (`Record<string, any>`): Metadata filter to identify vector(s) to update (mutually exclusive with id)
|
|
82
|
+
|
|
83
|
+
**update:** (`{ vector?: number[]; metadata?: Record<string, any>; }`): Object containing the vector and/or metadata to update
|
|
84
|
+
|
|
85
|
+
### deleteVector()
|
|
86
|
+
|
|
87
|
+
**indexName:** (`string`): Name of the index containing the vector
|
|
88
|
+
|
|
89
|
+
**id:** (`string`): ID of the vector to delete
|
|
90
|
+
|
|
91
|
+
### deleteVectors()
|
|
92
|
+
|
|
93
|
+
Delete multiple vectors by IDs or by metadata filter. Either `ids` or `filter` must be provided, but not both.
|
|
94
|
+
|
|
95
|
+
**indexName:** (`string`): Name of the index containing the vectors to delete
|
|
96
|
+
|
|
97
|
+
**ids?:** (`string[]`): Array of vector IDs to delete (mutually exclusive with filter)
|
|
98
|
+
|
|
99
|
+
**filter?:** (`Record<string, any>`): Metadata filter to identify vectors to delete (mutually exclusive with ids)
|
|
100
|
+
|
|
101
|
+
## Response Types
|
|
102
|
+
|
|
103
|
+
Query results are returned in this format:
|
|
104
|
+
|
|
105
|
+
```typescript
|
|
106
|
+
interface QueryResult {
|
|
107
|
+
id: string
|
|
108
|
+
score: number
|
|
109
|
+
metadata: Record<string, any>
|
|
110
|
+
vector?: number[] // Only included if includeVector is true
|
|
111
|
+
}
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Schema Configuration
|
|
115
|
+
|
|
116
|
+
The `schemaConfigForIndex` option allows you to define explicit schemas for different indexes:
|
|
117
|
+
|
|
118
|
+
```typescript
|
|
119
|
+
schemaConfigForIndex: (indexName: string) => {
|
|
120
|
+
// Mastra's default embedding model and index for memory messages:
|
|
121
|
+
if (indexName === 'memory_messages_384') {
|
|
122
|
+
return {
|
|
123
|
+
dimensions: 384,
|
|
124
|
+
schema: {
|
|
125
|
+
thread_id: {
|
|
126
|
+
type: 'string',
|
|
127
|
+
filterable: true,
|
|
128
|
+
},
|
|
129
|
+
},
|
|
130
|
+
}
|
|
131
|
+
} else {
|
|
132
|
+
throw new Error(`TODO: add schema for index: ${indexName}`)
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
## Error Handling
|
|
138
|
+
|
|
139
|
+
The store throws typed errors that can be caught:
|
|
140
|
+
|
|
141
|
+
```typescript
|
|
142
|
+
try {
|
|
143
|
+
await store.query({
|
|
144
|
+
indexName: 'index_name',
|
|
145
|
+
queryVector: queryVector,
|
|
146
|
+
})
|
|
147
|
+
} catch (error) {
|
|
148
|
+
if (error instanceof VectorStoreError) {
|
|
149
|
+
console.log(error.code) // 'connection_failed' | 'invalid_dimension' | etc
|
|
150
|
+
console.log(error.details) // Additional error context
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## Related
|
|
156
|
+
|
|
157
|
+
- [Metadata Filters](https://mastra.ai/reference/rag/metadata-filters)
|