@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,294 @@
|
|
|
1
|
+
# Upstash Vector Store
|
|
2
|
+
|
|
3
|
+
The UpstashVector class provides vector search using [Upstash Vector](https://upstash.com/vector), a serverless vector database service that provides vector similarity search with metadata filtering capabilities and hybrid search support.
|
|
4
|
+
|
|
5
|
+
## Constructor Options
|
|
6
|
+
|
|
7
|
+
**url:** (`string`): Upstash Vector database URL
|
|
8
|
+
|
|
9
|
+
**token:** (`string`): Upstash Vector API token
|
|
10
|
+
|
|
11
|
+
## Methods
|
|
12
|
+
|
|
13
|
+
### createIndex()
|
|
14
|
+
|
|
15
|
+
Note: This method is a no-op for Upstash as indexes are created automatically.
|
|
16
|
+
|
|
17
|
+
**indexName:** (`string`): Name of the index to create
|
|
18
|
+
|
|
19
|
+
**dimension:** (`number`): Vector dimension (must match your embedding model)
|
|
20
|
+
|
|
21
|
+
**metric?:** (`'cosine' | 'euclidean' | 'dotproduct'`): Distance metric for similarity search (Default: `cosine`)
|
|
22
|
+
|
|
23
|
+
### upsert()
|
|
24
|
+
|
|
25
|
+
**indexName:** (`string`): Name of the index to upsert into
|
|
26
|
+
|
|
27
|
+
**vectors:** (`number[][]`): Array of embedding vectors
|
|
28
|
+
|
|
29
|
+
**sparseVectors?:** (`{ indices: number[], values: number[] }[]`): Array of sparse vectors for hybrid search. Each sparse vector must have matching indices and values arrays.
|
|
30
|
+
|
|
31
|
+
**metadata?:** (`Record<string, any>[]`): Metadata for each vector
|
|
32
|
+
|
|
33
|
+
**ids?:** (`string[]`): Optional vector IDs (auto-generated if not provided)
|
|
34
|
+
|
|
35
|
+
### query()
|
|
36
|
+
|
|
37
|
+
**indexName:** (`string`): Name of the index to query
|
|
38
|
+
|
|
39
|
+
**queryVector:** (`number[]`): Query vector to find similar vectors
|
|
40
|
+
|
|
41
|
+
**sparseVector?:** (`{ indices: number[], values: number[] }`): Optional sparse vector for hybrid search. Must have matching indices and values arrays.
|
|
42
|
+
|
|
43
|
+
**topK?:** (`number`): Number of results to return (Default: `10`)
|
|
44
|
+
|
|
45
|
+
**filter?:** (`Record<string, any>`): Metadata filters for the query
|
|
46
|
+
|
|
47
|
+
**includeVector?:** (`boolean`): Whether to include vectors in the results (Default: `false`)
|
|
48
|
+
|
|
49
|
+
**fusionAlgorithm?:** (`FusionAlgorithm`): Algorithm used to combine dense and sparse search results in hybrid search (e.g., RRF - Reciprocal Rank Fusion)
|
|
50
|
+
|
|
51
|
+
**queryMode?:** (`QueryMode`): Search mode: 'DENSE' for dense-only, 'SPARSE' for sparse-only, or 'HYBRID' for combined search
|
|
52
|
+
|
|
53
|
+
### listIndexes()
|
|
54
|
+
|
|
55
|
+
Returns an array of index names (namespaces) as strings.
|
|
56
|
+
|
|
57
|
+
### describeIndex()
|
|
58
|
+
|
|
59
|
+
**indexName:** (`string`): Name of the index to describe
|
|
60
|
+
|
|
61
|
+
Returns:
|
|
62
|
+
|
|
63
|
+
```typescript
|
|
64
|
+
interface IndexStats {
|
|
65
|
+
dimension: number
|
|
66
|
+
count: number
|
|
67
|
+
metric: 'cosine' | 'euclidean' | 'dotproduct'
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### deleteIndex()
|
|
72
|
+
|
|
73
|
+
**indexName:** (`string`): Name of the index (namespace) to delete
|
|
74
|
+
|
|
75
|
+
### updateVector()
|
|
76
|
+
|
|
77
|
+
**indexName:** (`string`): Name of the index to update
|
|
78
|
+
|
|
79
|
+
**id:** (`string`): ID of the item to update
|
|
80
|
+
|
|
81
|
+
**update:** (`object`): Update object containing vector, sparse vector, and/or metadata
|
|
82
|
+
|
|
83
|
+
The `update` object can have the following properties:
|
|
84
|
+
|
|
85
|
+
- `vector` (optional): An array of numbers representing the new dense vector.
|
|
86
|
+
- `sparseVector` (optional): A sparse vector object with `indices` and `values` arrays for hybrid indexes.
|
|
87
|
+
- `metadata` (optional): A record of key-value pairs for metadata.
|
|
88
|
+
|
|
89
|
+
### deleteVector()
|
|
90
|
+
|
|
91
|
+
**indexName:** (`string`): Name of the index from which to delete the item
|
|
92
|
+
|
|
93
|
+
**id:** (`string`): ID of the item to delete
|
|
94
|
+
|
|
95
|
+
Attempts to delete an item by its ID from the specified index. Logs an error message if the deletion fails.
|
|
96
|
+
|
|
97
|
+
## Hybrid Vector Search
|
|
98
|
+
|
|
99
|
+
Upstash Vector supports hybrid search that combines semantic search (dense vectors) with keyword-based search (sparse vectors) for improved relevance and accuracy.
|
|
100
|
+
|
|
101
|
+
### Basic Hybrid Usage
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
import { UpstashVector } from '@mastra/upstash'
|
|
105
|
+
|
|
106
|
+
const vectorStore = new UpstashVector({
|
|
107
|
+
id: 'upstash-vector',
|
|
108
|
+
url: process.env.UPSTASH_VECTOR_URL,
|
|
109
|
+
token: process.env.UPSTASH_VECTOR_TOKEN,
|
|
110
|
+
})
|
|
111
|
+
|
|
112
|
+
// Upsert vectors with both dense and sparse components
|
|
113
|
+
const denseVectors = [
|
|
114
|
+
[0.1, 0.2, 0.3],
|
|
115
|
+
[0.4, 0.5, 0.6],
|
|
116
|
+
]
|
|
117
|
+
const sparseVectors = [
|
|
118
|
+
{ indices: [1, 5, 10], values: [0.8, 0.6, 0.4] },
|
|
119
|
+
{ indices: [2, 6, 11], values: [0.7, 0.5, 0.3] },
|
|
120
|
+
]
|
|
121
|
+
|
|
122
|
+
await vectorStore.upsert({
|
|
123
|
+
indexName: 'hybrid-index',
|
|
124
|
+
vectors: denseVectors,
|
|
125
|
+
sparseVectors: sparseVectors,
|
|
126
|
+
metadata: [{ title: 'Document 1' }, { title: 'Document 2' }],
|
|
127
|
+
})
|
|
128
|
+
|
|
129
|
+
// Query with hybrid search
|
|
130
|
+
const results = await vectorStore.query({
|
|
131
|
+
indexName: 'hybrid-index',
|
|
132
|
+
queryVector: [0.1, 0.2, 0.3],
|
|
133
|
+
sparseVector: { indices: [1, 5], values: [0.9, 0.7] },
|
|
134
|
+
topK: 10,
|
|
135
|
+
})
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### Advanced Hybrid Search Options
|
|
139
|
+
|
|
140
|
+
```typescript
|
|
141
|
+
import { FusionAlgorithm, QueryMode } from '@upstash/vector'
|
|
142
|
+
|
|
143
|
+
// Query with specific fusion algorithm
|
|
144
|
+
const fusionResults = await vectorStore.query({
|
|
145
|
+
indexName: 'hybrid-index',
|
|
146
|
+
queryVector: [0.1, 0.2, 0.3],
|
|
147
|
+
sparseVector: { indices: [1, 5], values: [0.9, 0.7] },
|
|
148
|
+
fusionAlgorithm: FusionAlgorithm.RRF,
|
|
149
|
+
topK: 10,
|
|
150
|
+
})
|
|
151
|
+
|
|
152
|
+
// Dense-only search
|
|
153
|
+
const denseResults = await vectorStore.query({
|
|
154
|
+
indexName: 'hybrid-index',
|
|
155
|
+
queryVector: [0.1, 0.2, 0.3],
|
|
156
|
+
queryMode: QueryMode.DENSE,
|
|
157
|
+
topK: 10,
|
|
158
|
+
})
|
|
159
|
+
|
|
160
|
+
// Sparse-only search
|
|
161
|
+
const sparseResults = await vectorStore.query({
|
|
162
|
+
indexName: 'hybrid-index',
|
|
163
|
+
queryVector: [0.1, 0.2, 0.3], // Still required for index structure
|
|
164
|
+
sparseVector: { indices: [1, 5], values: [0.9, 0.7] },
|
|
165
|
+
queryMode: QueryMode.SPARSE,
|
|
166
|
+
topK: 10,
|
|
167
|
+
})
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Updating Hybrid Vectors
|
|
171
|
+
|
|
172
|
+
```typescript
|
|
173
|
+
// Update both dense and sparse components
|
|
174
|
+
await vectorStore.updateVector({
|
|
175
|
+
indexName: 'hybrid-index',
|
|
176
|
+
id: 'vector-id',
|
|
177
|
+
update: {
|
|
178
|
+
vector: [0.2, 0.3, 0.4],
|
|
179
|
+
sparseVector: { indices: [2, 7, 12], values: [0.9, 0.8, 0.6] },
|
|
180
|
+
metadata: { title: 'Updated Document' },
|
|
181
|
+
},
|
|
182
|
+
})
|
|
183
|
+
```
|
|
184
|
+
|
|
185
|
+
## Response Types
|
|
186
|
+
|
|
187
|
+
Query results are returned in this format:
|
|
188
|
+
|
|
189
|
+
```typescript
|
|
190
|
+
interface QueryResult {
|
|
191
|
+
id: string
|
|
192
|
+
score: number
|
|
193
|
+
metadata: Record<string, any>
|
|
194
|
+
vector?: number[] // Only included if includeVector is true
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
## Error Handling
|
|
199
|
+
|
|
200
|
+
The store throws typed errors that can be caught:
|
|
201
|
+
|
|
202
|
+
```typescript
|
|
203
|
+
try {
|
|
204
|
+
await store.query({
|
|
205
|
+
indexName: 'index_name',
|
|
206
|
+
queryVector: queryVector,
|
|
207
|
+
})
|
|
208
|
+
} catch (error) {
|
|
209
|
+
if (error instanceof VectorStoreError) {
|
|
210
|
+
console.log(error.code) // 'connection_failed' | 'invalid_dimension' | etc
|
|
211
|
+
console.log(error.details) // Additional error context
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Environment Variables
|
|
217
|
+
|
|
218
|
+
Required environment variables:
|
|
219
|
+
|
|
220
|
+
- `UPSTASH_VECTOR_URL`: Your Upstash Vector database URL
|
|
221
|
+
- `UPSTASH_VECTOR_TOKEN`: Your Upstash Vector API token
|
|
222
|
+
|
|
223
|
+
## Usage Example
|
|
224
|
+
|
|
225
|
+
### Local embeddings with fastembed
|
|
226
|
+
|
|
227
|
+
Embeddings are numeric vectors used by memory's `semanticRecall` to retrieve related messages by meaning (not keywords). This setup uses `@mastra/fastembed` to generate vector embeddings.
|
|
228
|
+
|
|
229
|
+
Install `fastembed` to get started:
|
|
230
|
+
|
|
231
|
+
**npm**:
|
|
232
|
+
|
|
233
|
+
```bash
|
|
234
|
+
npm install @mastra/fastembed@latest
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
**pnpm**:
|
|
238
|
+
|
|
239
|
+
```bash
|
|
240
|
+
pnpm add @mastra/fastembed@latest
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
**Yarn**:
|
|
244
|
+
|
|
245
|
+
```bash
|
|
246
|
+
yarn add @mastra/fastembed@latest
|
|
247
|
+
```
|
|
248
|
+
|
|
249
|
+
**Bun**:
|
|
250
|
+
|
|
251
|
+
```bash
|
|
252
|
+
bun add @mastra/fastembed@latest
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
Add the following to your agent:
|
|
256
|
+
|
|
257
|
+
```typescript
|
|
258
|
+
import { Memory } from '@mastra/memory'
|
|
259
|
+
import { Agent } from '@mastra/core/agent'
|
|
260
|
+
import { UpstashStore, UpstashVector } from '@mastra/upstash'
|
|
261
|
+
import { fastembed } from '@mastra/fastembed'
|
|
262
|
+
|
|
263
|
+
export const upstashAgent = new Agent({
|
|
264
|
+
id: 'upstash-agent',
|
|
265
|
+
name: 'Upstash Agent',
|
|
266
|
+
instructions:
|
|
267
|
+
'You are an AI agent with the ability to automatically recall memories from previous interactions.',
|
|
268
|
+
model: 'openai/gpt-5.1',
|
|
269
|
+
memory: new Memory({
|
|
270
|
+
storage: new UpstashStore({
|
|
271
|
+
id: 'upstash-agent-storage',
|
|
272
|
+
url: process.env.UPSTASH_REDIS_REST_URL!,
|
|
273
|
+
token: process.env.UPSTASH_REDIS_REST_TOKEN!,
|
|
274
|
+
}),
|
|
275
|
+
vector: new UpstashVector({
|
|
276
|
+
id: 'upstash-agent-vector',
|
|
277
|
+
url: process.env.UPSTASH_VECTOR_REST_URL!,
|
|
278
|
+
token: process.env.UPSTASH_VECTOR_REST_TOKEN!,
|
|
279
|
+
}),
|
|
280
|
+
embedder: fastembed,
|
|
281
|
+
options: {
|
|
282
|
+
lastMessages: 10,
|
|
283
|
+
semanticRecall: {
|
|
284
|
+
topK: 3,
|
|
285
|
+
messageRange: 2,
|
|
286
|
+
},
|
|
287
|
+
},
|
|
288
|
+
}),
|
|
289
|
+
})
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
## Related
|
|
293
|
+
|
|
294
|
+
- [Metadata Filters](https://mastra.ai/reference/rag/metadata-filters)
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
# Cloudflare Vector Store
|
|
2
|
+
|
|
3
|
+
The CloudflareVector class provides vector search using [Cloudflare Vectorize](https://developers.cloudflare.com/vectorize/), a vector database service integrated with Cloudflare's edge network.
|
|
4
|
+
|
|
5
|
+
## Constructor Options
|
|
6
|
+
|
|
7
|
+
**accountId:** (`string`): Cloudflare account ID
|
|
8
|
+
|
|
9
|
+
**apiToken:** (`string`): Cloudflare API token with Vectorize permissions
|
|
10
|
+
|
|
11
|
+
## Methods
|
|
12
|
+
|
|
13
|
+
### createIndex()
|
|
14
|
+
|
|
15
|
+
**indexName:** (`string`): Name of the index to create
|
|
16
|
+
|
|
17
|
+
**dimension:** (`number`): Vector dimension (must match your embedding model)
|
|
18
|
+
|
|
19
|
+
**metric?:** (`'cosine' | 'euclidean' | 'dotproduct'`): Distance metric for similarity search (dotproduct maps to dot-product) (Default: `cosine`)
|
|
20
|
+
|
|
21
|
+
### upsert()
|
|
22
|
+
|
|
23
|
+
**indexName:** (`string`): Name of the index to upsert into
|
|
24
|
+
|
|
25
|
+
**vectors:** (`number[][]`): Array of embedding vectors
|
|
26
|
+
|
|
27
|
+
**metadata?:** (`Record<string, any>[]`): Metadata for each vector
|
|
28
|
+
|
|
29
|
+
**ids?:** (`string[]`): Optional vector IDs (auto-generated if not provided)
|
|
30
|
+
|
|
31
|
+
### query()
|
|
32
|
+
|
|
33
|
+
**indexName:** (`string`): Name of the index to query
|
|
34
|
+
|
|
35
|
+
**queryVector:** (`number[]`): Query vector to find similar vectors
|
|
36
|
+
|
|
37
|
+
**topK?:** (`number`): Number of results to return (Default: `10`)
|
|
38
|
+
|
|
39
|
+
**filter?:** (`Record<string, any>`): Metadata filters for the query
|
|
40
|
+
|
|
41
|
+
**includeVector?:** (`boolean`): Whether to include vectors in the results (Default: `false`)
|
|
42
|
+
|
|
43
|
+
### listIndexes()
|
|
44
|
+
|
|
45
|
+
Returns an array of index names as strings.
|
|
46
|
+
|
|
47
|
+
### describeIndex()
|
|
48
|
+
|
|
49
|
+
**indexName:** (`string`): Name of the index to describe
|
|
50
|
+
|
|
51
|
+
Returns:
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
interface IndexStats {
|
|
55
|
+
dimension: number
|
|
56
|
+
count: number
|
|
57
|
+
metric: 'cosine' | 'euclidean' | 'dotproduct'
|
|
58
|
+
}
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### deleteIndex()
|
|
62
|
+
|
|
63
|
+
**indexName:** (`string`): Name of the index to delete
|
|
64
|
+
|
|
65
|
+
### createMetadataIndex()
|
|
66
|
+
|
|
67
|
+
Creates an index on a metadata field to enable filtering.
|
|
68
|
+
|
|
69
|
+
**indexName:** (`string`): Name of the index containing the metadata field
|
|
70
|
+
|
|
71
|
+
**propertyName:** (`string`): Name of the metadata field to index
|
|
72
|
+
|
|
73
|
+
**indexType:** (`'string' | 'number' | 'boolean'`): Type of the metadata field
|
|
74
|
+
|
|
75
|
+
### deleteMetadataIndex()
|
|
76
|
+
|
|
77
|
+
Removes an index from a metadata field.
|
|
78
|
+
|
|
79
|
+
**indexName:** (`string`): Name of the index containing the metadata field
|
|
80
|
+
|
|
81
|
+
**propertyName:** (`string`): Name of the metadata field to remove indexing from
|
|
82
|
+
|
|
83
|
+
### listMetadataIndexes()
|
|
84
|
+
|
|
85
|
+
Lists all metadata field indexes for an index.
|
|
86
|
+
|
|
87
|
+
**indexName:** (`string`): Name of the index to list metadata indexes for
|
|
88
|
+
|
|
89
|
+
### updateVector()
|
|
90
|
+
|
|
91
|
+
Updates a vector or metadata for a specific ID within an index.
|
|
92
|
+
|
|
93
|
+
**indexName:** (`string`): Name of the index containing the ID to update
|
|
94
|
+
|
|
95
|
+
**id:** (`string`): Unique identifier of the vector or metadata to update
|
|
96
|
+
|
|
97
|
+
**update:** (`{ vector?: number[]; metadata?: Record<string, any>; }`): Object containing the vector and/or metadata to update
|
|
98
|
+
|
|
99
|
+
### deleteVector()
|
|
100
|
+
|
|
101
|
+
Deletes a vector and its associated metadata for a specific ID within an index.
|
|
102
|
+
|
|
103
|
+
**indexName:** (`string`): Name of the index containing the ID to delete
|
|
104
|
+
|
|
105
|
+
**id:** (`string`): Unique identifier of the vector and metadata to delete
|
|
106
|
+
|
|
107
|
+
## Response Types
|
|
108
|
+
|
|
109
|
+
Query results are returned in this format:
|
|
110
|
+
|
|
111
|
+
```typescript
|
|
112
|
+
interface QueryResult {
|
|
113
|
+
id: string
|
|
114
|
+
score: number
|
|
115
|
+
metadata: Record<string, any>
|
|
116
|
+
vector?: number[]
|
|
117
|
+
}
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
## Error Handling
|
|
121
|
+
|
|
122
|
+
The store throws typed errors that can be caught:
|
|
123
|
+
|
|
124
|
+
```typescript
|
|
125
|
+
try {
|
|
126
|
+
await store.query({
|
|
127
|
+
indexName: 'index_name',
|
|
128
|
+
queryVector: queryVector,
|
|
129
|
+
})
|
|
130
|
+
} catch (error) {
|
|
131
|
+
if (error instanceof VectorStoreError) {
|
|
132
|
+
console.log(error.code) // 'connection_failed' | 'invalid_dimension' | etc
|
|
133
|
+
console.log(error.details) // Additional error context
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
## Environment Variables
|
|
139
|
+
|
|
140
|
+
Required environment variables:
|
|
141
|
+
|
|
142
|
+
- `CLOUDFLARE_ACCOUNT_ID`: Your Cloudflare account ID
|
|
143
|
+
- `CLOUDFLARE_API_TOKEN`: Your Cloudflare API token with Vectorize permissions
|
|
144
|
+
|
|
145
|
+
## Related
|
|
146
|
+
|
|
147
|
+
- [Metadata Filters](https://mastra.ai/reference/rag/metadata-filters)
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# Azure
|
|
2
|
+
|
|
3
|
+
The AzureVoice class in Mastra provides text-to-speech and speech-to-text capabilities using Microsoft Azure Cognitive Services.
|
|
4
|
+
|
|
5
|
+
## Usage Example
|
|
6
|
+
|
|
7
|
+
This requires Azure Speech Services credentials that can be provided through environment variables or directly in the configuration:
|
|
8
|
+
|
|
9
|
+
```typescript
|
|
10
|
+
import { AzureVoice } from '@mastra/voice-azure'
|
|
11
|
+
|
|
12
|
+
// Initialize with configuration
|
|
13
|
+
const voice = new AzureVoice({
|
|
14
|
+
speechModel: {
|
|
15
|
+
apiKey: 'your-azure-speech-api-key', // Or use AZURE_API_KEY env var
|
|
16
|
+
region: 'eastus', // Or use AZURE_REGION env var
|
|
17
|
+
voiceName: 'en-US-AriaNeural', // Optional: specific voice for TTS
|
|
18
|
+
},
|
|
19
|
+
listeningModel: {
|
|
20
|
+
apiKey: 'your-azure-speech-api-key', // Or use AZURE_API_KEY env var
|
|
21
|
+
region: 'eastus', // Or use AZURE_REGION env var
|
|
22
|
+
language: 'en-US', // Optional: recognition language for STT
|
|
23
|
+
},
|
|
24
|
+
speaker: 'en-US-JennyNeural', // Optional: default voice
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
// Convert text to speech
|
|
28
|
+
const audioStream = await voice.speak('Hello, how can I help you?', {
|
|
29
|
+
speaker: 'en-US-GuyNeural', // Optional: override default voice
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
// Convert speech to text
|
|
33
|
+
const text = await voice.listen(audioStream)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Configuration
|
|
37
|
+
|
|
38
|
+
### Constructor Options
|
|
39
|
+
|
|
40
|
+
**speechModel?:** (`AzureSpeechConfig`): Configuration for text-to-speech synthesis.
|
|
41
|
+
|
|
42
|
+
**listeningModel?:** (`AzureSpeechConfig`): Configuration for speech-to-text recognition.
|
|
43
|
+
|
|
44
|
+
**speaker?:** (`string`): Default voice ID for speech synthesis.
|
|
45
|
+
|
|
46
|
+
### AzureSpeechConfig
|
|
47
|
+
|
|
48
|
+
Configuration object for speech synthesis (`speechModel`) and recognition (`listeningModel`).
|
|
49
|
+
|
|
50
|
+
**apiKey?:** (`string`): Azure Speech Services API key (NOT Azure OpenAI key). Falls back to AZURE\_API\_KEY environment variable.
|
|
51
|
+
|
|
52
|
+
**region?:** (`string`): Azure region (e.g., 'eastus', 'westeurope'). Falls back to AZURE\_REGION environment variable.
|
|
53
|
+
|
|
54
|
+
**voiceName?:** (`string`): Voice ID for speech synthesis (e.g., 'en-US-AriaNeural', 'en-US-JennyNeural'). Only used in speechModel. See voice list below.
|
|
55
|
+
|
|
56
|
+
**language?:** (`string`): Recognition language code (e.g., 'en-US', 'fr-FR'). Only used in listeningModel.
|
|
57
|
+
|
|
58
|
+
## Methods
|
|
59
|
+
|
|
60
|
+
### speak()
|
|
61
|
+
|
|
62
|
+
Converts text to speech using Azure's neural text-to-speech service.
|
|
63
|
+
|
|
64
|
+
**input:** (`string | NodeJS.ReadableStream`): Text or text stream to convert to speech.
|
|
65
|
+
|
|
66
|
+
**options.speaker?:** (`string`): Voice ID to use for speech synthesis (e.g., 'en-US-JennyNeural'). Overrides the default voice. (Default: `Constructor's speaker value`)
|
|
67
|
+
|
|
68
|
+
Returns: `Promise<NodeJS.ReadableStream>` - Audio stream in WAV format
|
|
69
|
+
|
|
70
|
+
### listen()
|
|
71
|
+
|
|
72
|
+
Transcribes audio using Azure's speech-to-text service.
|
|
73
|
+
|
|
74
|
+
**audioStream:** (`NodeJS.ReadableStream`): Audio stream to transcribe. Must be in WAV format.
|
|
75
|
+
|
|
76
|
+
Returns: `Promise<string>` - The recognized text from the audio
|
|
77
|
+
|
|
78
|
+
**Note:** Language and recognition settings are configured in the `listeningModel` configuration during initialization, not passed as options to this method.
|
|
79
|
+
|
|
80
|
+
### getSpeakers()
|
|
81
|
+
|
|
82
|
+
Returns an array of available voice options (200+ voices), where each node contains:
|
|
83
|
+
|
|
84
|
+
**voiceId:** (`string`): Unique identifier for the voice (e.g., 'en-US-JennyNeural', 'fr-FR-DeniseNeural')
|
|
85
|
+
|
|
86
|
+
**language:** (`string`): Language code extracted from voice ID (e.g., 'en', 'fr')
|
|
87
|
+
|
|
88
|
+
**region:** (`string`): Region code extracted from voice ID (e.g., 'US', 'GB', 'FR')
|
|
89
|
+
|
|
90
|
+
Returns: `Promise<Array<{ voiceId: string; language: string; region: string; }>>`
|
|
91
|
+
|
|
92
|
+
## Important Notes
|
|
93
|
+
|
|
94
|
+
### Azure Speech Services vs Azure OpenAI
|
|
95
|
+
|
|
96
|
+
**⚠️ Critical:** This package uses **Azure Speech Services**, which is different from **Azure OpenAI Services**.
|
|
97
|
+
|
|
98
|
+
- **DO NOT** use your `AZURE_OPENAI_API_KEY` for this package
|
|
99
|
+
- **DO** use an Azure Speech Services subscription key (obtain from Azure Portal under "Speech Services")
|
|
100
|
+
- These are separate Azure resources with different API keys and endpoints
|
|
101
|
+
|
|
102
|
+
### Environment Variables
|
|
103
|
+
|
|
104
|
+
API keys and regions can be provided via constructor options or environment variables:
|
|
105
|
+
|
|
106
|
+
- `AZURE_API_KEY` - Your Azure Speech Services subscription key
|
|
107
|
+
- `AZURE_REGION` - Your Azure region (e.g., 'eastus', 'westeurope')
|
|
108
|
+
|
|
109
|
+
### Voice Capabilities
|
|
110
|
+
|
|
111
|
+
- Azure offers 200+ neural voices across 50+ languages
|
|
112
|
+
- Each voice ID follows the format: `{language}-{region}-{name}Neural` (e.g., 'en-US-JennyNeural')
|
|
113
|
+
- Some voices include multilingual support or HD quality variants
|
|
114
|
+
- Audio output is in WAV format
|
|
115
|
+
- Audio input for recognition must be in WAV format
|
|
116
|
+
|
|
117
|
+
## Available Voices
|
|
118
|
+
|
|
119
|
+
Azure provides 200+ neural voices across many languages. Some popular English voices include:
|
|
120
|
+
|
|
121
|
+
- **US English:**
|
|
122
|
+
|
|
123
|
+
- `en-US-AriaNeural` (Female, default)
|
|
124
|
+
- `en-US-JennyNeural` (Female)
|
|
125
|
+
- `en-US-GuyNeural` (Male)
|
|
126
|
+
- `en-US-DavisNeural` (Male)
|
|
127
|
+
- `en-US-AvaNeural` (Female)
|
|
128
|
+
- `en-US-AndrewNeural` (Male)
|
|
129
|
+
|
|
130
|
+
- **British English:**
|
|
131
|
+
|
|
132
|
+
- `en-GB-SoniaNeural` (Female)
|
|
133
|
+
- `en-GB-RyanNeural` (Male)
|
|
134
|
+
- `en-GB-LibbyNeural` (Female)
|
|
135
|
+
|
|
136
|
+
- **Australian English:**
|
|
137
|
+
|
|
138
|
+
- `en-AU-NatashaNeural` (Female)
|
|
139
|
+
- `en-AU-WilliamNeural` (Male)
|
|
140
|
+
|
|
141
|
+
To get a complete list of all 200+ voices:
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
const voices = await voice.getSpeakers()
|
|
145
|
+
console.log(voices) // Array of { voiceId, language, region }
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
For more information, see the [Azure Neural TTS documentation](https://learn.microsoft.com/en-us/azure/cognitive-services/speech-service/language-support?tabs=tts).
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
# Cloudflare
|
|
2
|
+
|
|
3
|
+
The CloudflareVoice class in Mastra provides text-to-speech capabilities using Cloudflare Workers AI. This provider specializes in efficient, low-latency speech synthesis suitable for edge computing environments.
|
|
4
|
+
|
|
5
|
+
## Usage Example
|
|
6
|
+
|
|
7
|
+
```typescript
|
|
8
|
+
import { CloudflareVoice } from '@mastra/voice-cloudflare'
|
|
9
|
+
|
|
10
|
+
// Initialize with configuration
|
|
11
|
+
const voice = new CloudflareVoice({
|
|
12
|
+
speechModel: {
|
|
13
|
+
name: '@cf/meta/m2m100-1.2b',
|
|
14
|
+
apiKey: 'your-cloudflare-api-token',
|
|
15
|
+
accountId: 'your-cloudflare-account-id',
|
|
16
|
+
},
|
|
17
|
+
speaker: 'en-US-1', // Default voice
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
// Convert text to speech
|
|
21
|
+
const audioStream = await voice.speak('Hello, how can I help you?', {
|
|
22
|
+
speaker: 'en-US-2', // Override default voice
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
// Get available voices
|
|
26
|
+
const speakers = await voice.getSpeakers()
|
|
27
|
+
console.log(speakers)
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
## Configuration
|
|
31
|
+
|
|
32
|
+
### Constructor Options
|
|
33
|
+
|
|
34
|
+
**speechModel?:** (`CloudflareSpeechConfig`): Configuration for text-to-speech synthesis.
|
|
35
|
+
|
|
36
|
+
**speaker?:** (`string`): Default voice ID for speech synthesis. (Default: `'en-US-1'`)
|
|
37
|
+
|
|
38
|
+
### CloudflareSpeechConfig
|
|
39
|
+
|
|
40
|
+
**name?:** (`string`): Model name to use for TTS. (Default: `'@cf/meta/m2m100-1.2b'`)
|
|
41
|
+
|
|
42
|
+
**apiKey?:** (`string`): Cloudflare API token with Workers AI access. Falls back to CLOUDFLARE\_API\_TOKEN environment variable.
|
|
43
|
+
|
|
44
|
+
**accountId?:** (`string`): Cloudflare account ID. Falls back to CLOUDFLARE\_ACCOUNT\_ID environment variable.
|
|
45
|
+
|
|
46
|
+
## Methods
|
|
47
|
+
|
|
48
|
+
### speak()
|
|
49
|
+
|
|
50
|
+
Converts text to speech using Cloudflare's text-to-speech service.
|
|
51
|
+
|
|
52
|
+
**input:** (`string | NodeJS.ReadableStream`): Text or text stream to convert to speech.
|
|
53
|
+
|
|
54
|
+
**options.speaker?:** (`string`): Voice ID to use for speech synthesis. (Default: `Constructor's speaker value`)
|
|
55
|
+
|
|
56
|
+
**options.format?:** (`string`): Output audio format. (Default: `'mp3'`)
|
|
57
|
+
|
|
58
|
+
Returns: `Promise<NodeJS.ReadableStream>`
|
|
59
|
+
|
|
60
|
+
### getSpeakers()
|
|
61
|
+
|
|
62
|
+
Returns an array of available voice options, where each node contains:
|
|
63
|
+
|
|
64
|
+
**voiceId:** (`string`): Unique identifier for the voice (e.g., 'en-US-1')
|
|
65
|
+
|
|
66
|
+
**language:** (`string`): Language code of the voice (e.g., 'en-US')
|
|
67
|
+
|
|
68
|
+
## Notes
|
|
69
|
+
|
|
70
|
+
- API tokens can be provided via constructor options or environment variables (CLOUDFLARE\_API\_TOKEN and CLOUDFLARE\_ACCOUNT\_ID)
|
|
71
|
+
- Cloudflare Workers AI is optimized for edge computing with low latency
|
|
72
|
+
- This provider only supports text-to-speech (TTS) functionality, not speech-to-text (STT)
|
|
73
|
+
- The service integrates well with other Cloudflare Workers products
|
|
74
|
+
- For production use, ensure your Cloudflare account has the appropriate Workers AI subscription
|
|
75
|
+
- Voice options are more limited compared to some other providers, but performance at the edge is excellent
|
|
76
|
+
|
|
77
|
+
## Related Providers
|
|
78
|
+
|
|
79
|
+
If you need speech-to-text capabilities in addition to text-to-speech, consider using one of these providers:
|
|
80
|
+
|
|
81
|
+
- [OpenAI](https://mastra.ai/reference/voice/openai) - Provides both TTS and STT
|
|
82
|
+
- [Google](https://mastra.ai/reference/voice/google) - Provides both TTS and STT
|
|
83
|
+
- [Azure](https://mastra.ai/reference/voice/azure) - Provides both TTS and STT
|