@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,226 @@
|
|
|
1
|
+
# Couchbase Vector Store
|
|
2
|
+
|
|
3
|
+
The `CouchbaseVector` class provides vector search using [Couchbase Vector Search](https://docs.couchbase.com/server/current/vector-search/vector-search.html). It enables efficient similarity search and metadata filtering within your Couchbase collections.
|
|
4
|
+
|
|
5
|
+
## Requirements
|
|
6
|
+
|
|
7
|
+
- **Couchbase Server 7.6.4+** or a compatible Capella cluster
|
|
8
|
+
- **Search Service enabled** on your Couchbase deployment
|
|
9
|
+
|
|
10
|
+
## Installation
|
|
11
|
+
|
|
12
|
+
**npm**:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
npm install @mastra/couchbase@latest
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
**pnpm**:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
pnpm add @mastra/couchbase@latest
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
**Yarn**:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
yarn add @mastra/couchbase@latest
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Bun**:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
bun add @mastra/couchbase@latest
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Usage Example
|
|
37
|
+
|
|
38
|
+
```typescript
|
|
39
|
+
import { CouchbaseVector } from '@mastra/couchbase'
|
|
40
|
+
|
|
41
|
+
const store = new CouchbaseVector({
|
|
42
|
+
id: 'couchbase-vector',
|
|
43
|
+
connectionString: process.env.COUCHBASE_CONNECTION_STRING,
|
|
44
|
+
username: process.env.COUCHBASE_USERNAME,
|
|
45
|
+
password: process.env.COUCHBASE_PASSWORD,
|
|
46
|
+
bucketName: process.env.COUCHBASE_BUCKET,
|
|
47
|
+
scopeName: process.env.COUCHBASE_SCOPE,
|
|
48
|
+
collectionName: process.env.COUCHBASE_COLLECTION,
|
|
49
|
+
})
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Constructor Options
|
|
53
|
+
|
|
54
|
+
**id:** (`string`): Unique identifier for this vector store instance
|
|
55
|
+
|
|
56
|
+
**connectionString:** (`string`): Couchbase connection string
|
|
57
|
+
|
|
58
|
+
**username:** (`string`): Couchbase username
|
|
59
|
+
|
|
60
|
+
**password:** (`string`): Couchbase password
|
|
61
|
+
|
|
62
|
+
**bucketName:** (`string`): Name of the Couchbase bucket to use
|
|
63
|
+
|
|
64
|
+
**scopeName:** (`string`): Name of the Couchbase scope to use
|
|
65
|
+
|
|
66
|
+
**collectionName:** (`string`): Name of the Couchbase collection to use
|
|
67
|
+
|
|
68
|
+
**options?:** (`CouchbaseClientOptions`): Optional Couchbase client options
|
|
69
|
+
|
|
70
|
+
## Methods
|
|
71
|
+
|
|
72
|
+
### createIndex()
|
|
73
|
+
|
|
74
|
+
Creates a new vector index in Couchbase.
|
|
75
|
+
|
|
76
|
+
> **Note:** Index creation is asynchronous. After calling `createIndex`, allow time (typically 1–5 seconds for small datasets, longer for large ones) before querying. For production, implement polling to check index status rather than using fixed delays.
|
|
77
|
+
|
|
78
|
+
**indexName:** (`string`): Name of the index to create
|
|
79
|
+
|
|
80
|
+
**dimension:** (`number`): Vector dimension (must match your embedding model)
|
|
81
|
+
|
|
82
|
+
**metric?:** (`'cosine' | 'euclidean' | 'dotproduct'`): Distance metric for similarity search (Default: `cosine`)
|
|
83
|
+
|
|
84
|
+
### upsert()
|
|
85
|
+
|
|
86
|
+
Adds or updates vectors and their metadata in the collection.
|
|
87
|
+
|
|
88
|
+
> **Note:** You can upsert data before or after creating the index. The `upsert` method does not require the index to exist. Couchbase allows multiple Search indexes over the same collection.
|
|
89
|
+
|
|
90
|
+
**indexName:** (`string`): Name of the index to insert into
|
|
91
|
+
|
|
92
|
+
**vectors:** (`number[][]`): Array of embedding vectors
|
|
93
|
+
|
|
94
|
+
**metadata?:** (`Record<string, any>[]`): Metadata for each vector
|
|
95
|
+
|
|
96
|
+
**ids?:** (`string[]`): Optional vector IDs (auto-generated if not provided)
|
|
97
|
+
|
|
98
|
+
### query()
|
|
99
|
+
|
|
100
|
+
Searches for similar vectors.
|
|
101
|
+
|
|
102
|
+
> **Warning:** The `filter` and `includeVector` parameters are not currently supported. Filtering must be performed client-side after retrieving results, or by using the Couchbase SDK's Search capabilities directly. To retrieve the vector embedding, fetch the full document by ID using the Couchbase SDK.
|
|
103
|
+
|
|
104
|
+
**indexName:** (`string`): Name of the index to search in
|
|
105
|
+
|
|
106
|
+
**queryVector:** (`number[]`): Query vector to find similar vectors for
|
|
107
|
+
|
|
108
|
+
**topK?:** (`number`): Number of results to return (Default: `10`)
|
|
109
|
+
|
|
110
|
+
**filter?:** (`Record<string, any>`): Metadata filters
|
|
111
|
+
|
|
112
|
+
**includeVector?:** (`boolean`): Whether to include vector data in results (Default: `false`)
|
|
113
|
+
|
|
114
|
+
**minScore?:** (`number`): Minimum similarity score threshold (Default: `0`)
|
|
115
|
+
|
|
116
|
+
### describeIndex()
|
|
117
|
+
|
|
118
|
+
Returns information about the index.
|
|
119
|
+
|
|
120
|
+
**indexName:** (`string`): Name of the index to describe
|
|
121
|
+
|
|
122
|
+
Returns:
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
interface IndexStats {
|
|
126
|
+
dimension: number
|
|
127
|
+
count: number
|
|
128
|
+
metric: 'cosine' | 'euclidean' | 'dotproduct'
|
|
129
|
+
}
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
### deleteIndex()
|
|
133
|
+
|
|
134
|
+
Deletes an index and all its data.
|
|
135
|
+
|
|
136
|
+
**indexName:** (`string`): Name of the index to delete
|
|
137
|
+
|
|
138
|
+
### listIndexes()
|
|
139
|
+
|
|
140
|
+
Lists all vector indexes in the Couchbase bucket.
|
|
141
|
+
|
|
142
|
+
Returns: `Promise<string[]>`
|
|
143
|
+
|
|
144
|
+
### updateVector()
|
|
145
|
+
|
|
146
|
+
Updates a specific vector entry by its ID with new vector data and/or metadata. **Note:** Filter-based updates are not yet implemented for Couchbase.
|
|
147
|
+
|
|
148
|
+
**indexName:** (`string`): Name of the index containing the vector
|
|
149
|
+
|
|
150
|
+
**id:** (`string`): ID of the vector entry to update
|
|
151
|
+
|
|
152
|
+
**update:** (`{ vector?: number[]; metadata?: Record<string, any>; }`): Object containing the vector and/or metadata to update
|
|
153
|
+
|
|
154
|
+
### deleteVector()
|
|
155
|
+
|
|
156
|
+
Deletes a single vector by its ID from the index.
|
|
157
|
+
|
|
158
|
+
**indexName:** (`string`): Name of the index containing the vector
|
|
159
|
+
|
|
160
|
+
**id:** (`string`): ID of the vector to delete
|
|
161
|
+
|
|
162
|
+
### deleteVectors()
|
|
163
|
+
|
|
164
|
+
Deletes multiple vectors by their IDs. **Note:** Filter-based deletion is not yet implemented for Couchbase.
|
|
165
|
+
|
|
166
|
+
**indexName:** (`string`): Name of the index containing the vectors to delete
|
|
167
|
+
|
|
168
|
+
**ids:** (`string[]`): Array of vector IDs to delete
|
|
169
|
+
|
|
170
|
+
### disconnect()
|
|
171
|
+
|
|
172
|
+
Closes the Couchbase client connection. Should be called when done using the store.
|
|
173
|
+
|
|
174
|
+
## Response Types
|
|
175
|
+
|
|
176
|
+
Query results are returned in this format:
|
|
177
|
+
|
|
178
|
+
```typescript
|
|
179
|
+
interface QueryResult {
|
|
180
|
+
id: string
|
|
181
|
+
score: number
|
|
182
|
+
metadata: Record<string, any>
|
|
183
|
+
vector?: number[] // Only included if includeVector is true
|
|
184
|
+
}
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
## Error Handling
|
|
188
|
+
|
|
189
|
+
The store throws typed errors that can be caught:
|
|
190
|
+
|
|
191
|
+
```typescript
|
|
192
|
+
try {
|
|
193
|
+
await store.query({
|
|
194
|
+
indexName: 'my_index',
|
|
195
|
+
queryVector: queryVector,
|
|
196
|
+
})
|
|
197
|
+
} catch (error) {
|
|
198
|
+
// Handle specific error cases
|
|
199
|
+
if (error.message.includes('Invalid index name')) {
|
|
200
|
+
console.error(
|
|
201
|
+
'Index name must start with a letter or underscore and contain only valid characters.',
|
|
202
|
+
)
|
|
203
|
+
} else if (error.message.includes('Index not found')) {
|
|
204
|
+
console.error('The specified index does not exist')
|
|
205
|
+
} else {
|
|
206
|
+
console.error('Vector store error:', error.message)
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Notes
|
|
212
|
+
|
|
213
|
+
- **Index Deletion Caveat:** Deleting a Search index does NOT delete the vectors/documents in the associated Couchbase collection. Data remains unless explicitly removed.
|
|
214
|
+
- **Required Permissions:** The Couchbase user must have permissions to connect, read/write documents in the target collection (`kv` role), and manage Search Indexes (`search_admin` role on the relevant bucket/scope).
|
|
215
|
+
- **Index Definition Details & Document Structure:** The `createIndex` method constructs a Search Index definition that indexes the `embedding` field (as type `vector`) and the `content` field (as type `text`), targeting documents within the specified `scopeName.collectionName`. Each document stores the vector in the `embedding` field and metadata in the `metadata` field. If `metadata` contains a `text` property, its value is also copied to a top-level `content` field, which is indexed for text search.
|
|
216
|
+
- **Replication & Durability:** Consider using Couchbase's built-in replication and persistence features for data durability. Monitor index statistics regularly to ensure efficient search.
|
|
217
|
+
|
|
218
|
+
## Limitations
|
|
219
|
+
|
|
220
|
+
- Index creation delays may impact immediate querying after creation.
|
|
221
|
+
- No hard enforcement of vector dimension at ingest time (dimension mismatches will error at query time).
|
|
222
|
+
- Vector insertion and index updates are eventually consistent; strong consistency is not guaranteed immediately after writes.
|
|
223
|
+
|
|
224
|
+
## Related
|
|
225
|
+
|
|
226
|
+
- [Metadata Filters](https://mastra.ai/reference/rag/metadata-filters)
|
|
@@ -0,0 +1,318 @@
|
|
|
1
|
+
# DuckDBVector Store
|
|
2
|
+
|
|
3
|
+
The DuckDB storage implementation provides an embedded high-performance vector search solution using [DuckDB](https://duckdb.org/), an in-process analytical database. It uses the VSS extension for vector similarity search with HNSW indexing, offering a lightweight and efficient vector database that requires no external server.
|
|
4
|
+
|
|
5
|
+
It's part of the `@mastra/duckdb` package and offers efficient vector similarity search with metadata filtering.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
**npm**:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @mastra/duckdb@latest
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
**pnpm**:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pnpm add @mastra/duckdb@latest
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Yarn**:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
yarn add @mastra/duckdb@latest
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Bun**:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
bun add @mastra/duckdb@latest
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## Usage
|
|
34
|
+
|
|
35
|
+
```typescript
|
|
36
|
+
import { DuckDBVector } from "@mastra/duckdb";
|
|
37
|
+
|
|
38
|
+
// Create a new vector store instance
|
|
39
|
+
const store = new DuckDBVector({
|
|
40
|
+
id: "duckdb-vector",
|
|
41
|
+
path: ":memory:", // or './vectors.duckdb' for file persistence
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
// Create an index
|
|
45
|
+
await store.createIndex({
|
|
46
|
+
indexName: "myCollection",
|
|
47
|
+
dimension: 1536,
|
|
48
|
+
metric: "cosine",
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// Add vectors with metadata
|
|
52
|
+
const vectors = [[0.1, 0.2, ...], [0.3, 0.4, ...]];
|
|
53
|
+
const metadata = [
|
|
54
|
+
{ text: "first document", category: "A" },
|
|
55
|
+
{ text: "second document", category: "B" },
|
|
56
|
+
];
|
|
57
|
+
await store.upsert({
|
|
58
|
+
indexName: "myCollection",
|
|
59
|
+
vectors,
|
|
60
|
+
metadata,
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
// Query similar vectors
|
|
64
|
+
const queryVector = [0.1, 0.2, ...];
|
|
65
|
+
const results = await store.query({
|
|
66
|
+
indexName: "myCollection",
|
|
67
|
+
queryVector,
|
|
68
|
+
topK: 10,
|
|
69
|
+
filter: { category: "A" },
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// Clean up
|
|
73
|
+
await store.close();
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Constructor Options
|
|
77
|
+
|
|
78
|
+
**id:** (`string`): Unique identifier for the vector store instance
|
|
79
|
+
|
|
80
|
+
**path?:** (`string`): Database file path. Use ':memory:' for in-memory database, or a file path like './vectors.duckdb' for persistence. (Default: `':memory:'`)
|
|
81
|
+
|
|
82
|
+
**dimensions?:** (`number`): Default dimension for vector embeddings (Default: `1536`)
|
|
83
|
+
|
|
84
|
+
**metric?:** (`'cosine' | 'euclidean' | 'dotproduct'`): Default distance metric for similarity search (Default: `cosine`)
|
|
85
|
+
|
|
86
|
+
## Methods
|
|
87
|
+
|
|
88
|
+
### createIndex()
|
|
89
|
+
|
|
90
|
+
Creates a new vector collection with optional HNSW index for fast approximate nearest neighbor search.
|
|
91
|
+
|
|
92
|
+
**indexName:** (`string`): Name of the index to create
|
|
93
|
+
|
|
94
|
+
**dimension:** (`number`): Vector dimension size (must match your embedding model)
|
|
95
|
+
|
|
96
|
+
**metric?:** (`'cosine' | 'euclidean' | 'dotproduct'`): Distance metric for similarity search (Default: `cosine`)
|
|
97
|
+
|
|
98
|
+
### upsert()
|
|
99
|
+
|
|
100
|
+
Adds or updates vectors and their metadata in the index.
|
|
101
|
+
|
|
102
|
+
**indexName:** (`string`): Name of the index to insert into
|
|
103
|
+
|
|
104
|
+
**vectors:** (`number[][]`): Array of embedding vectors
|
|
105
|
+
|
|
106
|
+
**metadata?:** (`Record<string, any>[]`): Metadata for each vector
|
|
107
|
+
|
|
108
|
+
**ids?:** (`string[]`): Optional vector IDs (auto-generated UUIDs if not provided)
|
|
109
|
+
|
|
110
|
+
### query()
|
|
111
|
+
|
|
112
|
+
Searches for similar vectors with optional metadata filtering.
|
|
113
|
+
|
|
114
|
+
**indexName:** (`string`): Name of the index to search in
|
|
115
|
+
|
|
116
|
+
**queryVector:** (`number[]`): Query vector to find similar vectors for
|
|
117
|
+
|
|
118
|
+
**topK?:** (`number`): Number of results to return (Default: `10`)
|
|
119
|
+
|
|
120
|
+
**filter?:** (`Filter`): Metadata filters using MongoDB-like query syntax
|
|
121
|
+
|
|
122
|
+
**includeVector?:** (`boolean`): Whether to include vector data in results (Default: `false`)
|
|
123
|
+
|
|
124
|
+
### describeIndex()
|
|
125
|
+
|
|
126
|
+
Gets information about an index.
|
|
127
|
+
|
|
128
|
+
**indexName:** (`string`): Name of the index to describe
|
|
129
|
+
|
|
130
|
+
Returns:
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
interface IndexStats {
|
|
134
|
+
dimension: number
|
|
135
|
+
count: number
|
|
136
|
+
metric: 'cosine' | 'euclidean' | 'dotproduct'
|
|
137
|
+
}
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### deleteIndex()
|
|
141
|
+
|
|
142
|
+
Deletes an index and all its data.
|
|
143
|
+
|
|
144
|
+
**indexName:** (`string`): Name of the index to delete
|
|
145
|
+
|
|
146
|
+
### listIndexes()
|
|
147
|
+
|
|
148
|
+
Lists all vector indexes in the database.
|
|
149
|
+
|
|
150
|
+
Returns: `Promise<string[]>`
|
|
151
|
+
|
|
152
|
+
### updateVector()
|
|
153
|
+
|
|
154
|
+
Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
|
|
155
|
+
|
|
156
|
+
**indexName:** (`string`): Name of the index containing the vector
|
|
157
|
+
|
|
158
|
+
**id?:** (`string`): ID of the vector entry to update (mutually exclusive with filter)
|
|
159
|
+
|
|
160
|
+
**filter?:** (`Record<string, any>`): Metadata filter to identify vector(s) to update (mutually exclusive with id)
|
|
161
|
+
|
|
162
|
+
**update:** (`object`): Update data containing vector and/or metadata
|
|
163
|
+
|
|
164
|
+
**update.vector?:** (`number[]`): New vector data to update
|
|
165
|
+
|
|
166
|
+
**update.metadata?:** (`Record<string, any>`): New metadata to update
|
|
167
|
+
|
|
168
|
+
### deleteVector()
|
|
169
|
+
|
|
170
|
+
Deletes a specific vector entry from an index by its ID.
|
|
171
|
+
|
|
172
|
+
**indexName:** (`string`): Name of the index containing the vector
|
|
173
|
+
|
|
174
|
+
**id:** (`string`): ID of the vector entry to delete
|
|
175
|
+
|
|
176
|
+
### deleteVectors()
|
|
177
|
+
|
|
178
|
+
Delete multiple vectors by IDs or by metadata filter. Either `ids` or `filter` must be provided, but not both.
|
|
179
|
+
|
|
180
|
+
**indexName:** (`string`): Name of the index containing the vectors to delete
|
|
181
|
+
|
|
182
|
+
**ids?:** (`string[]`): Array of vector IDs to delete (mutually exclusive with filter)
|
|
183
|
+
|
|
184
|
+
**filter?:** (`Record<string, any>`): Metadata filter to identify vectors to delete (mutually exclusive with ids)
|
|
185
|
+
|
|
186
|
+
### close()
|
|
187
|
+
|
|
188
|
+
Closes the database connection and releases resources.
|
|
189
|
+
|
|
190
|
+
```typescript
|
|
191
|
+
await store.close()
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
## Response Types
|
|
195
|
+
|
|
196
|
+
Query results are returned in this format:
|
|
197
|
+
|
|
198
|
+
```typescript
|
|
199
|
+
interface QueryResult {
|
|
200
|
+
id: string
|
|
201
|
+
score: number
|
|
202
|
+
metadata: Record<string, any>
|
|
203
|
+
vector?: number[] // Only included if includeVector is true
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Filter Operators
|
|
208
|
+
|
|
209
|
+
DuckDB vector store supports MongoDB-like filter operators:
|
|
210
|
+
|
|
211
|
+
| Category | Operators |
|
|
212
|
+
| ---------- | ------------------------------------------ |
|
|
213
|
+
| Comparison | `$eq`, `$ne`, `$gt`, `$gte`, `$lt`, `$lte` |
|
|
214
|
+
| Logical | `$and`, `$or`, `$not`, `$nor` |
|
|
215
|
+
| Array | `$in`, `$nin` |
|
|
216
|
+
| Element | `$exists` |
|
|
217
|
+
| Text | `$contains` |
|
|
218
|
+
|
|
219
|
+
### Filter Examples
|
|
220
|
+
|
|
221
|
+
```typescript
|
|
222
|
+
// Allegato operators
|
|
223
|
+
const results = await store.query({
|
|
224
|
+
indexName: "docs",
|
|
225
|
+
queryVector: [...],
|
|
226
|
+
filter: {
|
|
227
|
+
$and: [
|
|
228
|
+
{ category: "electronics" },
|
|
229
|
+
{ price: { $gte: 100, $lte: 500 } },
|
|
230
|
+
],
|
|
231
|
+
},
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
// Nested field access
|
|
235
|
+
const results = await store.query({
|
|
236
|
+
indexName: "docs",
|
|
237
|
+
queryVector: [...],
|
|
238
|
+
filter: { "user.profile.tier": "premium" },
|
|
239
|
+
});
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Distance Metrics
|
|
243
|
+
|
|
244
|
+
| Metric | Description | Score Interpretation | Best For |
|
|
245
|
+
| ------------ | ----------------- | ---------------------- | ----------------------------------- |
|
|
246
|
+
| `cosine` | Cosine similarity | 0-1 (1 = most similar) | Text embeddings, normalized vectors |
|
|
247
|
+
| `euclidean` | L2 distance | 0-∞ (0 = most similar) | Image embeddings, spatial data |
|
|
248
|
+
| `dotproduct` | Inner product | Higher = more similar | When vector magnitude matters |
|
|
249
|
+
|
|
250
|
+
## Error Handling
|
|
251
|
+
|
|
252
|
+
The store throws specific errors for different failure cases:
|
|
253
|
+
|
|
254
|
+
```typescript
|
|
255
|
+
try {
|
|
256
|
+
await store.query({
|
|
257
|
+
indexName: 'my-collection',
|
|
258
|
+
queryVector: queryVector,
|
|
259
|
+
})
|
|
260
|
+
} catch (error) {
|
|
261
|
+
if (error.message.includes('not found')) {
|
|
262
|
+
console.error('The specified index does not exist')
|
|
263
|
+
} else if (error.message.includes('Invalid identifier')) {
|
|
264
|
+
console.error('Index name contains invalid characters')
|
|
265
|
+
} else {
|
|
266
|
+
console.error('Vector store error:', error.message)
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Common error cases include:
|
|
272
|
+
|
|
273
|
+
- Invalid index name format
|
|
274
|
+
- Index/table not found
|
|
275
|
+
- Dimension mismatch between query vector and index
|
|
276
|
+
- Empty filter or ids array in delete/update operations
|
|
277
|
+
- Mutual exclusivity violations (providing both `id` and `filter`)
|
|
278
|
+
|
|
279
|
+
## Use Cases
|
|
280
|
+
|
|
281
|
+
### Embedded Semantic Search
|
|
282
|
+
|
|
283
|
+
Build offline-capable AI applications with semantic search that runs entirely in-process:
|
|
284
|
+
|
|
285
|
+
```typescript
|
|
286
|
+
const store = new DuckDBVector({
|
|
287
|
+
id: 'offline-search',
|
|
288
|
+
path: './search.duckdb',
|
|
289
|
+
})
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
### Local RAG Pipelines
|
|
293
|
+
|
|
294
|
+
Process sensitive documents locally without sending data to cloud vector databases:
|
|
295
|
+
|
|
296
|
+
```typescript
|
|
297
|
+
const store = new DuckDBVector({
|
|
298
|
+
id: 'private-rag',
|
|
299
|
+
path: './confidential.duckdb',
|
|
300
|
+
dimensions: 1536,
|
|
301
|
+
})
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
### Development and Testing
|
|
305
|
+
|
|
306
|
+
Rapidly prototype vector search features with zero infrastructure:
|
|
307
|
+
|
|
308
|
+
```typescript
|
|
309
|
+
const store = new DuckDBVector({
|
|
310
|
+
id: 'dev-store',
|
|
311
|
+
path: ':memory:', // Fast in-memory for tests
|
|
312
|
+
})
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## Related
|
|
316
|
+
|
|
317
|
+
- [Metadata Filters](https://mastra.ai/reference/rag/metadata-filters)
|
|
318
|
+
- [DuckDB Documentation](https://duckdb.org/docs/)
|