@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,264 @@
|
|
|
1
|
+
# Chroma Vector Store
|
|
2
|
+
|
|
3
|
+
The ChromaVector class provides vector search using [Chroma](https://docs.trychroma.com/docs/overview/getting-started), an open-source embedding database. It offers efficient vector search with metadata filtering and hybrid search capabilities.
|
|
4
|
+
|
|
5
|
+
> **Info:**
|
|
6
|
+
>
|
|
7
|
+
> **Chroma Cloud**
|
|
8
|
+
>
|
|
9
|
+
> Chroma Cloud powers serverless vector and full-text search. It's extremely fast, cost-effective, scalable and painless. Create a DB and try it out in under 30 seconds with $5 of free credits.
|
|
10
|
+
>
|
|
11
|
+
> [Get started with Chroma Cloud](https://trychroma.com/signup)
|
|
12
|
+
|
|
13
|
+
## Constructor Options
|
|
14
|
+
|
|
15
|
+
**host?:** (`string`): The host address of the Chroma server. Defaults to 'localhost'
|
|
16
|
+
|
|
17
|
+
**port?:** (`number`): The port number of the Chroma server. Defaults to 8000
|
|
18
|
+
|
|
19
|
+
**ssl?:** (`boolean`): Whether to use SSL/HTTPS for connections. Defaults to false
|
|
20
|
+
|
|
21
|
+
**apiKey?:** (`string`): A Chroma Cloud API key
|
|
22
|
+
|
|
23
|
+
**tenant?:** (`string`): The tenant name in the Chroma server to connect to. Defaults to 'default\_tenant' for single-node Chroma. Auto-resolved for Chroma Cloud users based on the provided API key
|
|
24
|
+
|
|
25
|
+
**database?:** (`string`): The database name to connect to. Defaults to 'default\_database' for single-node Chroma. Auto-resolved for Chroma Cloud users based on the provided API key
|
|
26
|
+
|
|
27
|
+
**headers?:** (`Record<string, any>`): Additional HTTP headers to send with requests
|
|
28
|
+
|
|
29
|
+
**fetchOptions?:** (`RequestInit`): Additional fetch options for HTTP requests
|
|
30
|
+
|
|
31
|
+
## Running a Chroma Server
|
|
32
|
+
|
|
33
|
+
If you are a Chroma Cloud user, simply provide the `ChromaVector` constructor your API key, tenant, and database name.
|
|
34
|
+
|
|
35
|
+
When you install the `@mastra/chroma` package, you get access to the [Chroma CLI](https://docs.trychroma.com/docs/cli/db), which can set these as environment variables for you: `chroma db connect [DB-NAME] --env-file`.
|
|
36
|
+
|
|
37
|
+
Otherwise, you have several options for setting up your single-node Chroma server:
|
|
38
|
+
|
|
39
|
+
- Run one locally using the Chroma CLI: `chroma run`. You can find more configuration options on the [Chroma docs](https://docs.trychroma.com/docs/cli/run).
|
|
40
|
+
- Run on [Docker](https://docs.trychroma.com/guides/deploy/docker) using the official Chroma image.
|
|
41
|
+
- Deploy your own Chroma server on your provider of choice. Chroma offers example templates for [AWS](https://docs.trychroma.com/guides/deploy/aws), [Azure](https://docs.trychroma.com/guides/deploy/azure), and [GCP](https://docs.trychroma.com/guides/deploy/gcp).
|
|
42
|
+
|
|
43
|
+
## Methods
|
|
44
|
+
|
|
45
|
+
### createIndex()
|
|
46
|
+
|
|
47
|
+
**indexName:** (`string`): Name of the index to create
|
|
48
|
+
|
|
49
|
+
**dimension:** (`number`): Vector dimension (must match your embedding model)
|
|
50
|
+
|
|
51
|
+
**metric?:** (`'cosine' | 'euclidean' | 'dotproduct'`): Distance metric for similarity search (Default: `cosine`)
|
|
52
|
+
|
|
53
|
+
### forkIndex()
|
|
54
|
+
|
|
55
|
+
Note: Forking is only supported on Chroma Cloud, or if you deploy your own OSS **distributed** Chroma.
|
|
56
|
+
|
|
57
|
+
`forkIndex` lets you fork an existing Chroma index instantly. Operations on the forked index do not affect the original one. Learn more on the [Chroma docs](https://docs.trychroma.com/cloud/collection-forking).
|
|
58
|
+
|
|
59
|
+
**indexName:** (`string`): Name of the index to fork
|
|
60
|
+
|
|
61
|
+
**newIndexName:** (`string`): The name of the forked index
|
|
62
|
+
|
|
63
|
+
### upsert()
|
|
64
|
+
|
|
65
|
+
**indexName:** (`string`): Name of the index to upsert into
|
|
66
|
+
|
|
67
|
+
**vectors:** (`number[][]`): Array of embedding vectors
|
|
68
|
+
|
|
69
|
+
**metadata?:** (`Record<string, any>[]`): Metadata for each vector
|
|
70
|
+
|
|
71
|
+
**ids?:** (`string[]`): Optional vector IDs (auto-generated if not provided)
|
|
72
|
+
|
|
73
|
+
**documents?:** (`string[]`): Chroma-specific: Original text documents associated with the vectors
|
|
74
|
+
|
|
75
|
+
### query()
|
|
76
|
+
|
|
77
|
+
Query an index using a `queryVector`. Returns an array of semantically similar records in order of distance from the `queryVector`. Each record has the shape:
|
|
78
|
+
|
|
79
|
+
```typescript
|
|
80
|
+
{
|
|
81
|
+
id: string;
|
|
82
|
+
score: number;
|
|
83
|
+
document?: string;
|
|
84
|
+
metadata?: Record<string, string | number | boolean>;
|
|
85
|
+
embedding?: number[]
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
You can also provide the shape of your metadata to a `query` call for type inference: `query<T>()`.
|
|
90
|
+
|
|
91
|
+
**indexName:** (`string`): Name of the index to query
|
|
92
|
+
|
|
93
|
+
**queryVector:** (`number[]`): Query vector to find similar vectors
|
|
94
|
+
|
|
95
|
+
**topK?:** (`number`): Number of results to return (Default: `10`)
|
|
96
|
+
|
|
97
|
+
**filter?:** (`Record<string, any>`): Metadata filters for the query
|
|
98
|
+
|
|
99
|
+
**includeVector?:** (`boolean`): Whether to include vectors in the results (Default: `false`)
|
|
100
|
+
|
|
101
|
+
**documentFilter?:** (`Record<string, any>`): Chroma-specific: Filter to apply on the document content
|
|
102
|
+
|
|
103
|
+
### get()
|
|
104
|
+
|
|
105
|
+
Get records from your Chroma index by IDs, metadata, and document filters. It returns an array of records of the shape:
|
|
106
|
+
|
|
107
|
+
```typescript
|
|
108
|
+
{
|
|
109
|
+
id: string;
|
|
110
|
+
document?: string;
|
|
111
|
+
metadata?: Record<string, string | number | boolean>;
|
|
112
|
+
embedding?: number[]
|
|
113
|
+
}
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
You can also provide the shape of your metadata to a `get` call for type inference: `get<T>()`.
|
|
117
|
+
|
|
118
|
+
**indexName:** (`string`): Name of the index to query
|
|
119
|
+
|
|
120
|
+
**ids?:** (`string[]`): A list of record IDs to return. If not provided, all records are returned.
|
|
121
|
+
|
|
122
|
+
**filter?:** (`Record<string, any>`): Metadata filters.
|
|
123
|
+
|
|
124
|
+
**includeVector?:** (`boolean`): Whether to include vectors in the results (Default: `false`)
|
|
125
|
+
|
|
126
|
+
**documentFilter?:** (`Record<string, any>`): Chroma-specific: Filter to apply on the document content
|
|
127
|
+
|
|
128
|
+
**limit?:** (`number`): The maximum number of records to return (Default: `100`)
|
|
129
|
+
|
|
130
|
+
**offset?:** (`number`): Offset for returning records. Use with \`limit\` to paginate results.
|
|
131
|
+
|
|
132
|
+
### listIndexes()
|
|
133
|
+
|
|
134
|
+
Returns an array of index names as strings.
|
|
135
|
+
|
|
136
|
+
### describeIndex()
|
|
137
|
+
|
|
138
|
+
**indexName:** (`string`): Name of the index to describe
|
|
139
|
+
|
|
140
|
+
Returns:
|
|
141
|
+
|
|
142
|
+
```typescript
|
|
143
|
+
interface IndexStats {
|
|
144
|
+
dimension: number
|
|
145
|
+
count: number
|
|
146
|
+
metric: 'cosine' | 'euclidean' | 'dotproduct'
|
|
147
|
+
}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### deleteIndex()
|
|
151
|
+
|
|
152
|
+
**indexName:** (`string`): Name of the index to delete
|
|
153
|
+
|
|
154
|
+
### updateVector()
|
|
155
|
+
|
|
156
|
+
Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
|
|
157
|
+
|
|
158
|
+
**indexName:** (`string`): Name of the index containing the vector to update
|
|
159
|
+
|
|
160
|
+
**id?:** (`string`): ID of the vector to update (mutually exclusive with filter)
|
|
161
|
+
|
|
162
|
+
**filter?:** (`Record<string, any>`): Metadata filter to identify vector(s) to update (mutually exclusive with id)
|
|
163
|
+
|
|
164
|
+
**update:** (`object`): Update parameters
|
|
165
|
+
|
|
166
|
+
The `update` object can contain:
|
|
167
|
+
|
|
168
|
+
**vector?:** (`number[]`): New vector to replace the existing one
|
|
169
|
+
|
|
170
|
+
**metadata?:** (`Record<string, any>`): New metadata to replace the existing metadata
|
|
171
|
+
|
|
172
|
+
Example:
|
|
173
|
+
|
|
174
|
+
```typescript
|
|
175
|
+
// Update by ID
|
|
176
|
+
await vectorStore.updateVector({
|
|
177
|
+
indexName: 'docs',
|
|
178
|
+
id: 'vec_123',
|
|
179
|
+
update: { metadata: { status: 'reviewed' } },
|
|
180
|
+
})
|
|
181
|
+
|
|
182
|
+
// Update by filter
|
|
183
|
+
await vectorStore.updateVector({
|
|
184
|
+
indexName: 'docs',
|
|
185
|
+
filter: { source_id: 'manual.pdf' },
|
|
186
|
+
update: { metadata: { version: 2 } },
|
|
187
|
+
})
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### deleteVector()
|
|
191
|
+
|
|
192
|
+
**indexName:** (`string`): Name of the index containing the vector to delete
|
|
193
|
+
|
|
194
|
+
**id:** (`string`): ID of the vector to delete
|
|
195
|
+
|
|
196
|
+
### deleteVectors()
|
|
197
|
+
|
|
198
|
+
Delete multiple vectors by IDs or by metadata filter. This method enables bulk deletion and source-based vector management. Either `ids` or `filter` must be provided, but not both.
|
|
199
|
+
|
|
200
|
+
**indexName:** (`string`): Name of the index containing the vectors to delete
|
|
201
|
+
|
|
202
|
+
**ids?:** (`string[]`): Array of vector IDs to delete (mutually exclusive with filter)
|
|
203
|
+
|
|
204
|
+
**filter?:** (`Record<string, any>`): Metadata filter to identify vectors to delete (mutually exclusive with ids)
|
|
205
|
+
|
|
206
|
+
Example:
|
|
207
|
+
|
|
208
|
+
```typescript
|
|
209
|
+
// Delete all chunks from a document
|
|
210
|
+
await vectorStore.deleteVectors({
|
|
211
|
+
indexName: 'docs',
|
|
212
|
+
filter: { source_id: 'manual.pdf' },
|
|
213
|
+
})
|
|
214
|
+
|
|
215
|
+
// Delete multiple vectors by ID
|
|
216
|
+
await vectorStore.deleteVectors({
|
|
217
|
+
indexName: 'docs',
|
|
218
|
+
ids: ['vec_1', 'vec_2', 'vec_3'],
|
|
219
|
+
})
|
|
220
|
+
|
|
221
|
+
// Delete old temporary documents
|
|
222
|
+
await vectorStore.deleteVectors({
|
|
223
|
+
indexName: 'docs',
|
|
224
|
+
filter: {
|
|
225
|
+
$and: [{ bucket: 'temp' }, { indexed_at: { $lt: '2025-01-01' } }],
|
|
226
|
+
},
|
|
227
|
+
})
|
|
228
|
+
```
|
|
229
|
+
|
|
230
|
+
## Response Types
|
|
231
|
+
|
|
232
|
+
Query results are returned in this format:
|
|
233
|
+
|
|
234
|
+
```typescript
|
|
235
|
+
interface QueryResult {
|
|
236
|
+
id: string
|
|
237
|
+
score: number
|
|
238
|
+
metadata: Record<string, any>
|
|
239
|
+
document?: string // Chroma-specific: Original document if it was stored
|
|
240
|
+
vector?: number[] // Only included if includeVector is true
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
## Error Handling
|
|
245
|
+
|
|
246
|
+
The store throws typed errors that can be caught:
|
|
247
|
+
|
|
248
|
+
```typescript
|
|
249
|
+
try {
|
|
250
|
+
await store.query({
|
|
251
|
+
indexName: 'index_name',
|
|
252
|
+
queryVector: queryVector,
|
|
253
|
+
})
|
|
254
|
+
} catch (error) {
|
|
255
|
+
if (error instanceof VectorStoreError) {
|
|
256
|
+
console.log(error.code) // 'connection_failed' | 'invalid_dimension' | etc
|
|
257
|
+
console.log(error.details) // Additional error context
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
## Related
|
|
263
|
+
|
|
264
|
+
- [Metadata Filters](https://mastra.ai/reference/rag/metadata-filters)
|
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
# Convex Vector Store
|
|
2
|
+
|
|
3
|
+
The ConvexVector class provides vector storage and similarity search using [Convex](https://convex.dev). It stores embeddings inside Convex and performs cosine similarity search.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
**npm**:
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install @mastra/convex@latest
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
**pnpm**:
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
pnpm add @mastra/convex@latest
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**Yarn**:
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
yarn add @mastra/convex@latest
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
**Bun**:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
bun add @mastra/convex@latest
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
## Convex Setup
|
|
32
|
+
|
|
33
|
+
Before using `ConvexVector`, you need to set up the Convex schema and storage handler. See [Convex Storage Setup](https://mastra.ai/reference/storage/convex) for setup instructions.
|
|
34
|
+
|
|
35
|
+
## Constructor Options
|
|
36
|
+
|
|
37
|
+
**deploymentUrl:** (`string`): Convex deployment URL (e.g., https\://your-project.convex.cloud)
|
|
38
|
+
|
|
39
|
+
**adminAuthToken:** (`string`): Convex admin authentication token
|
|
40
|
+
|
|
41
|
+
**storageFunction?:** (`string`): Path to the storage mutation function (Default: `mastra/storage:handle`)
|
|
42
|
+
|
|
43
|
+
## Constructor Examples
|
|
44
|
+
|
|
45
|
+
### Basic Configuration
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
import { ConvexVector } from '@mastra/convex'
|
|
49
|
+
|
|
50
|
+
const vectorStore = new ConvexVector({
|
|
51
|
+
id: 'convex-vectors',
|
|
52
|
+
deploymentUrl: 'https://your-project.convex.cloud',
|
|
53
|
+
adminAuthToken: 'your-admin-token',
|
|
54
|
+
})
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Custom Storage Function
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
const vectorStore = new ConvexVector({
|
|
61
|
+
id: 'convex-vectors',
|
|
62
|
+
deploymentUrl: 'https://your-project.convex.cloud',
|
|
63
|
+
adminAuthToken: 'your-admin-token',
|
|
64
|
+
storageFunction: 'custom/path:handler',
|
|
65
|
+
})
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
## Methods
|
|
69
|
+
|
|
70
|
+
### createIndex()
|
|
71
|
+
|
|
72
|
+
**indexName:** (`string`): Name of the index to create
|
|
73
|
+
|
|
74
|
+
**dimension:** (`number`): Vector dimension (must match your embedding model)
|
|
75
|
+
|
|
76
|
+
**metric?:** (`'cosine' | 'euclidean' | 'dotproduct'`): Distance metric for similarity search (only cosine is currently supported) (Default: `cosine`)
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
await vectorStore.createIndex({
|
|
80
|
+
indexName: 'my_vectors',
|
|
81
|
+
dimension: 1536,
|
|
82
|
+
})
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### upsert()
|
|
86
|
+
|
|
87
|
+
**indexName:** (`string`): Name of the index to upsert vectors into
|
|
88
|
+
|
|
89
|
+
**vectors:** (`number[][]`): Array of embedding vectors
|
|
90
|
+
|
|
91
|
+
**metadata?:** (`Record<string, any>[]`): Metadata for each vector
|
|
92
|
+
|
|
93
|
+
**ids?:** (`string[]`): Optional vector IDs (auto-generated if not provided)
|
|
94
|
+
|
|
95
|
+
```typescript
|
|
96
|
+
await vectorStore.upsert({
|
|
97
|
+
indexName: "my_vectors",
|
|
98
|
+
vectors: [[0.1, 0.2, 0.3, ...]],
|
|
99
|
+
metadata: [{ label: "example" }],
|
|
100
|
+
ids: ["vec-1"],
|
|
101
|
+
});
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### query()
|
|
105
|
+
|
|
106
|
+
**indexName:** (`string`): Name of the index to query
|
|
107
|
+
|
|
108
|
+
**queryVector:** (`number[]`): Query vector
|
|
109
|
+
|
|
110
|
+
**topK?:** (`number`): Number of results to return (Default: `10`)
|
|
111
|
+
|
|
112
|
+
**filter?:** (`Record<string, any>`): Metadata filters
|
|
113
|
+
|
|
114
|
+
**includeVector?:** (`boolean`): Whether to include the vector in the result (Default: `false`)
|
|
115
|
+
|
|
116
|
+
```typescript
|
|
117
|
+
const results = await vectorStore.query({
|
|
118
|
+
indexName: "my_vectors",
|
|
119
|
+
queryVector: [0.1, 0.2, 0.3, ...],
|
|
120
|
+
topK: 5,
|
|
121
|
+
filter: { category: "documents" },
|
|
122
|
+
});
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### listIndexes()
|
|
126
|
+
|
|
127
|
+
Returns an array of index names as strings.
|
|
128
|
+
|
|
129
|
+
```typescript
|
|
130
|
+
const indexes = await vectorStore.listIndexes()
|
|
131
|
+
// ["my_vectors", "embeddings", ...]
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### describeIndex()
|
|
135
|
+
|
|
136
|
+
**indexName:** (`string`): Name of the index to describe
|
|
137
|
+
|
|
138
|
+
Returns:
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
interface IndexStats {
|
|
142
|
+
dimension: number
|
|
143
|
+
count: number
|
|
144
|
+
metric: 'cosine' | 'euclidean' | 'dotproduct'
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### deleteIndex()
|
|
149
|
+
|
|
150
|
+
**indexName:** (`string`): Name of the index to delete
|
|
151
|
+
|
|
152
|
+
Deletes the index and all its vectors.
|
|
153
|
+
|
|
154
|
+
```typescript
|
|
155
|
+
await vectorStore.deleteIndex({ indexName: 'my_vectors' })
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### updateVector()
|
|
159
|
+
|
|
160
|
+
Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
|
|
161
|
+
|
|
162
|
+
**indexName:** (`string`): Name of the index containing the vector
|
|
163
|
+
|
|
164
|
+
**id?:** (`string`): ID of the vector to update (mutually exclusive with filter)
|
|
165
|
+
|
|
166
|
+
**filter?:** (`Record<string, any>`): Metadata filter to identify vector(s) to update (mutually exclusive with id)
|
|
167
|
+
|
|
168
|
+
**update:** (`{ vector?: number[]; metadata?: Record<string, any>; }`): Object containing the vector and/or metadata to update
|
|
169
|
+
|
|
170
|
+
```typescript
|
|
171
|
+
// Update by ID
|
|
172
|
+
await vectorStore.updateVector({
|
|
173
|
+
indexName: 'my_vectors',
|
|
174
|
+
id: 'vector123',
|
|
175
|
+
update: {
|
|
176
|
+
vector: [0.1, 0.2, 0.3],
|
|
177
|
+
metadata: { label: 'updated' },
|
|
178
|
+
},
|
|
179
|
+
})
|
|
180
|
+
|
|
181
|
+
// Update by filter
|
|
182
|
+
await vectorStore.updateVector({
|
|
183
|
+
indexName: 'my_vectors',
|
|
184
|
+
filter: { category: 'product' },
|
|
185
|
+
update: {
|
|
186
|
+
metadata: { status: 'reviewed' },
|
|
187
|
+
},
|
|
188
|
+
})
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
### deleteVector()
|
|
192
|
+
|
|
193
|
+
**indexName:** (`string`): Name of the index containing the vector
|
|
194
|
+
|
|
195
|
+
**id:** (`string`): ID of the vector to delete
|
|
196
|
+
|
|
197
|
+
```typescript
|
|
198
|
+
await vectorStore.deleteVector({ indexName: 'my_vectors', id: 'vector123' })
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### deleteVectors()
|
|
202
|
+
|
|
203
|
+
Delete multiple vectors by IDs or by metadata filter. Either `ids` or `filter` must be provided, but not both.
|
|
204
|
+
|
|
205
|
+
**indexName:** (`string`): Name of the index containing the vectors to delete
|
|
206
|
+
|
|
207
|
+
**ids?:** (`string[]`): Array of vector IDs to delete (mutually exclusive with filter)
|
|
208
|
+
|
|
209
|
+
**filter?:** (`Record<string, any>`): Metadata filter to identify vectors to delete (mutually exclusive with ids)
|
|
210
|
+
|
|
211
|
+
```typescript
|
|
212
|
+
// Delete by IDs
|
|
213
|
+
await vectorStore.deleteVectors({
|
|
214
|
+
indexName: 'my_vectors',
|
|
215
|
+
ids: ['vec1', 'vec2', 'vec3'],
|
|
216
|
+
})
|
|
217
|
+
|
|
218
|
+
// Delete by filter
|
|
219
|
+
await vectorStore.deleteVectors({
|
|
220
|
+
indexName: 'my_vectors',
|
|
221
|
+
filter: { status: 'archived' },
|
|
222
|
+
})
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## Response Types
|
|
226
|
+
|
|
227
|
+
Query results are returned in this format:
|
|
228
|
+
|
|
229
|
+
```typescript
|
|
230
|
+
interface QueryResult {
|
|
231
|
+
id: string
|
|
232
|
+
score: number
|
|
233
|
+
metadata: Record<string, any>
|
|
234
|
+
vector?: number[] // Only included if includeVector is true
|
|
235
|
+
}
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
## Metadata Filtering
|
|
239
|
+
|
|
240
|
+
ConvexVector supports metadata filtering with various operators:
|
|
241
|
+
|
|
242
|
+
```typescript
|
|
243
|
+
// Simple equality
|
|
244
|
+
const results = await vectorStore.query({
|
|
245
|
+
indexName: 'my_vectors',
|
|
246
|
+
queryVector: embedding,
|
|
247
|
+
filter: { category: 'documents' },
|
|
248
|
+
})
|
|
249
|
+
|
|
250
|
+
// Comparison operators
|
|
251
|
+
const results = await vectorStore.query({
|
|
252
|
+
indexName: 'my_vectors',
|
|
253
|
+
queryVector: embedding,
|
|
254
|
+
filter: {
|
|
255
|
+
price: { $gt: 100 },
|
|
256
|
+
status: { $in: ['active', 'pending'] },
|
|
257
|
+
},
|
|
258
|
+
})
|
|
259
|
+
|
|
260
|
+
// Logical operators
|
|
261
|
+
const results = await vectorStore.query({
|
|
262
|
+
indexName: 'my_vectors',
|
|
263
|
+
queryVector: embedding,
|
|
264
|
+
filter: {
|
|
265
|
+
$and: [{ category: 'electronics' }, { price: { $lte: 500 } }],
|
|
266
|
+
},
|
|
267
|
+
})
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
### Supported Filter Operators
|
|
271
|
+
|
|
272
|
+
| Operator | Description |
|
|
273
|
+
| -------- | --------------------- |
|
|
274
|
+
| `$eq` | Equal to |
|
|
275
|
+
| `$ne` | Not equal to |
|
|
276
|
+
| `$gt` | Greater than |
|
|
277
|
+
| `$gte` | Greater than or equal |
|
|
278
|
+
| `$lt` | Less than |
|
|
279
|
+
| `$lte` | Less than or equal |
|
|
280
|
+
| `$in` | In array |
|
|
281
|
+
| `$nin` | Not in array |
|
|
282
|
+
| `$and` | Logical AND |
|
|
283
|
+
| `$or` | Logical OR |
|
|
284
|
+
|
|
285
|
+
## Architecture
|
|
286
|
+
|
|
287
|
+
ConvexVector stores vectors in the `mastra_vectors` table with the following structure:
|
|
288
|
+
|
|
289
|
+
- `id`: Unique vector identifier
|
|
290
|
+
- `indexName`: Name of the index
|
|
291
|
+
- `embedding`: The vector data (array of floats)
|
|
292
|
+
- `metadata`: Optional JSON metadata
|
|
293
|
+
|
|
294
|
+
Vector similarity search is performed using cosine similarity, computed in the Convex function.
|
|
295
|
+
|
|
296
|
+
## Related
|
|
297
|
+
|
|
298
|
+
- [Convex Storage](https://mastra.ai/reference/storage/convex)
|
|
299
|
+
- [Metadata Filters](https://mastra.ai/reference/rag/metadata-filters)
|
|
300
|
+
- [Convex Documentation](https://docs.convex.dev/)
|