@mastra/mcp-docs-server 1.0.0-beta.3 → 1.0.0-beta.5

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.
Files changed (219) hide show
  1. package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +201 -1
  2. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +201 -1
  3. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +201 -1
  4. package/.docs/organized/changelogs/%40mastra%2Fastra.md +201 -1
  5. package/.docs/organized/changelogs/%40mastra%2Fauth.md +6 -0
  6. package/.docs/organized/changelogs/%40mastra%2Fchroma.md +201 -1
  7. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +201 -1
  8. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +201 -1
  9. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +201 -1
  10. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +201 -1
  11. package/.docs/organized/changelogs/%40mastra%2Fcore.md +370 -170
  12. package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +201 -1
  13. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +201 -1
  14. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +201 -1
  15. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +201 -1
  16. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +201 -1
  17. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +201 -1
  18. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +201 -1
  19. package/.docs/organized/changelogs/%40mastra%2Fevals.md +201 -1
  20. package/.docs/organized/changelogs/%40mastra%2Flance.md +201 -1
  21. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +201 -1
  22. package/.docs/organized/changelogs/%40mastra%2Floggers.md +201 -1
  23. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +201 -1
  24. package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +201 -1
  25. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +201 -1
  26. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +201 -1
  27. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +201 -1
  28. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +201 -1
  29. package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +201 -1
  30. package/.docs/organized/changelogs/%40mastra%2Fpg.md +201 -1
  31. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +201 -1
  32. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +201 -1
  33. package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +201 -1
  34. package/.docs/organized/changelogs/%40mastra%2Frag.md +201 -1
  35. package/.docs/organized/changelogs/%40mastra%2Freact.md +80 -1
  36. package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +9 -0
  37. package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +36 -0
  38. package/.docs/organized/changelogs/%40mastra%2Fserver.md +201 -1
  39. package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +201 -1
  40. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +201 -1
  41. package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +201 -1
  42. package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +201 -1
  43. package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +201 -1
  44. package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +201 -1
  45. package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +201 -1
  46. package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +92 -1
  47. package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +67 -1
  48. package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +201 -1
  49. package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +201 -1
  50. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +201 -1
  51. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +201 -1
  52. package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +201 -1
  53. package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +201 -1
  54. package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +201 -1
  55. package/.docs/organized/changelogs/create-mastra.md +201 -1
  56. package/.docs/organized/changelogs/mastra.md +201 -1
  57. package/.docs/organized/code-examples/memory-with-processors.md +1 -1
  58. package/.docs/organized/code-examples/quick-start.md +1 -1
  59. package/.docs/raw/agents/adding-voice.mdx +55 -9
  60. package/.docs/raw/agents/guardrails.mdx +19 -20
  61. package/.docs/raw/agents/human-in-the-loop-with-tools.mdx +6 -5
  62. package/.docs/raw/agents/networks.mdx +1 -2
  63. package/.docs/raw/agents/overview.mdx +5 -5
  64. package/.docs/raw/agents/using-tools.mdx +4 -5
  65. package/.docs/raw/course/01-first-agent/05-running-playground.md +5 -5
  66. package/.docs/raw/course/01-first-agent/09-testing-your-agent.md +3 -3
  67. package/.docs/raw/course/01-first-agent/13-testing-your-tool.md +3 -3
  68. package/.docs/raw/course/01-first-agent/17-testing-memory.md +2 -2
  69. package/.docs/raw/course/04-workflows/07-using-playground.md +1 -1
  70. package/.docs/raw/deployment/building-mastra.mdx +1 -1
  71. package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +1 -1
  72. package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +1 -1
  73. package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +1 -1
  74. package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +1 -1
  75. package/.docs/raw/deployment/cloud-providers/index.mdx +1 -1
  76. package/.docs/raw/deployment/mastra-cloud/observability.mdx +19 -17
  77. package/.docs/raw/deployment/mastra-cloud/setting-up.mdx +1 -1
  78. package/.docs/raw/deployment/overview.mdx +2 -2
  79. package/.docs/raw/deployment/web-framework.mdx +5 -5
  80. package/.docs/raw/evals/custom-scorers.mdx +3 -5
  81. package/.docs/raw/evals/overview.mdx +2 -3
  82. package/.docs/raw/getting-started/project-structure.mdx +1 -1
  83. package/.docs/raw/getting-started/start.mdx +72 -0
  84. package/.docs/raw/getting-started/studio.mdx +1 -1
  85. package/.docs/raw/{frameworks/agentic-uis/ai-sdk.mdx → guides/build-your-ui/ai-sdk-ui.mdx} +105 -11
  86. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/astro.mdx +23 -25
  87. package/.docs/raw/{frameworks/servers → guides/getting-started}/express.mdx +3 -4
  88. package/.docs/raw/guides/{guide → getting-started}/manual-install.mdx +1 -1
  89. package/.docs/raw/guides/{quickstarts/nextjs.mdx → getting-started/next-js.mdx} +11 -11
  90. package/.docs/raw/guides/{quickstarts/standalone-server.mdx → getting-started/quickstart.mdx} +7 -7
  91. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/sveltekit.mdx +23 -25
  92. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/vite-react.mdx +7 -7
  93. package/.docs/raw/guides/guide/ai-recruiter.mdx +2 -3
  94. package/.docs/raw/guides/guide/chef-michel.mdx +2 -3
  95. package/.docs/raw/guides/guide/notes-mcp-server.mdx +2 -2
  96. package/.docs/raw/guides/guide/research-assistant.mdx +7 -8
  97. package/.docs/raw/guides/guide/stock-agent.mdx +4 -6
  98. package/.docs/raw/guides/guide/web-search.mdx +12 -10
  99. package/.docs/raw/guides/migrations/agentnetwork.mdx +4 -4
  100. package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +1 -1
  101. package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +29 -0
  102. package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +5 -0
  103. package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +22 -0
  104. package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +2 -2
  105. package/.docs/raw/index.mdx +2 -2
  106. package/.docs/raw/mcp/overview.mdx +3 -5
  107. package/.docs/raw/memory/memory-processors.mdx +1 -2
  108. package/.docs/raw/memory/semantic-recall.mdx +7 -7
  109. package/.docs/raw/memory/storage/memory-with-libsql.mdx +2 -4
  110. package/.docs/raw/memory/storage/memory-with-mongodb.mdx +2 -4
  111. package/.docs/raw/memory/storage/memory-with-pg.mdx +2 -4
  112. package/.docs/raw/memory/storage/memory-with-upstash.mdx +2 -4
  113. package/.docs/raw/memory/threads-and-resources.mdx +3 -3
  114. package/.docs/raw/memory/working-memory.mdx +4 -5
  115. package/.docs/raw/{logging.mdx → observability/logging.mdx} +1 -1
  116. package/.docs/raw/observability/overview.mdx +2 -2
  117. package/.docs/raw/observability/tracing/exporters/otel.mdx +21 -2
  118. package/.docs/raw/observability/tracing/exporters/posthog.mdx +107 -0
  119. package/.docs/raw/observability/tracing/overview.mdx +3 -2
  120. package/.docs/raw/rag/chunking-and-embedding.mdx +16 -17
  121. package/.docs/raw/rag/overview.mdx +3 -2
  122. package/.docs/raw/rag/retrieval.mdx +20 -32
  123. package/.docs/raw/reference/agents/agent.mdx +7 -10
  124. package/.docs/raw/reference/agents/generate.mdx +11 -92
  125. package/.docs/raw/reference/agents/generateLegacy.mdx +2 -2
  126. package/.docs/raw/reference/agents/getLLM.mdx +1 -1
  127. package/.docs/raw/reference/agents/network.mdx +5 -88
  128. package/.docs/raw/reference/cli/mastra.mdx +2 -1
  129. package/.docs/raw/reference/client-js/agents.mdx +3 -3
  130. package/.docs/raw/reference/core/getLogger.mdx +1 -1
  131. package/.docs/raw/reference/core/listLogs.mdx +1 -1
  132. package/.docs/raw/reference/core/listLogsByRunId.mdx +1 -1
  133. package/.docs/raw/reference/core/mastra-model-gateway.mdx +5 -19
  134. package/.docs/raw/reference/core/setLogger.mdx +1 -1
  135. package/.docs/raw/reference/core/setTelemetry.mdx +1 -1
  136. package/.docs/raw/reference/evals/answer-relevancy.mdx +28 -98
  137. package/.docs/raw/reference/evals/answer-similarity.mdx +12 -258
  138. package/.docs/raw/reference/evals/bias.mdx +29 -87
  139. package/.docs/raw/reference/evals/completeness.mdx +31 -90
  140. package/.docs/raw/reference/evals/content-similarity.mdx +28 -88
  141. package/.docs/raw/reference/evals/context-precision.mdx +28 -130
  142. package/.docs/raw/reference/evals/context-relevance.mdx +11 -11
  143. package/.docs/raw/reference/evals/faithfulness.mdx +28 -101
  144. package/.docs/raw/reference/evals/hallucination.mdx +28 -103
  145. package/.docs/raw/reference/evals/keyword-coverage.mdx +28 -107
  146. package/.docs/raw/reference/evals/noise-sensitivity.mdx +11 -11
  147. package/.docs/raw/reference/evals/prompt-alignment.mdx +15 -15
  148. package/.docs/raw/reference/evals/textual-difference.mdx +27 -100
  149. package/.docs/raw/reference/evals/tone-consistency.mdx +25 -98
  150. package/.docs/raw/reference/evals/tool-call-accuracy.mdx +7 -7
  151. package/.docs/raw/reference/evals/toxicity.mdx +29 -92
  152. package/.docs/raw/reference/memory/memory-class.mdx +5 -7
  153. package/.docs/raw/reference/observability/tracing/exporters/posthog.mdx +132 -0
  154. package/.docs/raw/reference/processors/batch-parts-processor.mdx +1 -1
  155. package/.docs/raw/reference/processors/language-detector.mdx +1 -1
  156. package/.docs/raw/reference/processors/moderation-processor.mdx +2 -2
  157. package/.docs/raw/reference/processors/pii-detector.mdx +2 -2
  158. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +1 -1
  159. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +2 -3
  160. package/.docs/raw/reference/processors/token-limiter-processor.mdx +2 -2
  161. package/.docs/raw/reference/processors/unicode-normalizer.mdx +1 -1
  162. package/.docs/raw/reference/rag/embeddings.mdx +5 -5
  163. package/.docs/raw/reference/rag/rerank.mdx +1 -2
  164. package/.docs/raw/reference/rag/rerankWithScorer.mdx +0 -1
  165. package/.docs/raw/reference/streaming/agents/stream.mdx +11 -93
  166. package/.docs/raw/reference/templates/overview.mdx +1 -4
  167. package/.docs/raw/reference/tools/client.mdx +1 -2
  168. package/.docs/raw/reference/tools/create-tool.mdx +132 -0
  169. package/.docs/raw/reference/tools/graph-rag-tool.mdx +5 -5
  170. package/.docs/raw/reference/tools/mcp-client.mdx +2 -4
  171. package/.docs/raw/reference/tools/mcp-server.mdx +1 -2
  172. package/.docs/raw/reference/tools/vector-query-tool.mdx +14 -15
  173. package/.docs/raw/reference/vectors/chroma.mdx +81 -1
  174. package/.docs/raw/reference/vectors/couchbase.mdx +24 -17
  175. package/.docs/raw/reference/vectors/lance.mdx +38 -22
  176. package/.docs/raw/reference/vectors/libsql.mdx +35 -2
  177. package/.docs/raw/reference/vectors/mongodb.mdx +35 -2
  178. package/.docs/raw/reference/vectors/opensearch.mdx +37 -16
  179. package/.docs/raw/reference/vectors/pg.mdx +43 -36
  180. package/.docs/raw/reference/vectors/pinecone.mdx +48 -1
  181. package/.docs/raw/reference/vectors/qdrant.mdx +36 -1
  182. package/.docs/raw/reference/vectors/turbopuffer.mdx +74 -0
  183. package/.docs/raw/reference/voice/composite-voice.mdx +71 -28
  184. package/.docs/raw/reference/voice/openai-realtime.mdx +2 -2
  185. package/.docs/raw/reference/voice/voice.addInstructions.mdx +2 -3
  186. package/.docs/raw/reference/voice/voice.addTools.mdx +1 -1
  187. package/.docs/raw/reference/voice/voice.answer.mdx +1 -1
  188. package/.docs/raw/reference/voice/voice.close.mdx +1 -1
  189. package/.docs/raw/reference/voice/voice.connect.mdx +1 -1
  190. package/.docs/raw/reference/voice/voice.listen.mdx +86 -52
  191. package/.docs/raw/reference/voice/voice.off.mdx +1 -1
  192. package/.docs/raw/reference/voice/voice.on.mdx +1 -1
  193. package/.docs/raw/reference/voice/voice.send.mdx +1 -1
  194. package/.docs/raw/reference/voice/voice.speak.mdx +75 -40
  195. package/.docs/raw/reference/voice/voice.updateConfig.mdx +1 -1
  196. package/.docs/raw/server-db/mastra-client.mdx +1 -2
  197. package/.docs/raw/streaming/overview.mdx +20 -9
  198. package/.docs/raw/streaming/tool-streaming.mdx +47 -4
  199. package/.docs/raw/tools-mcp/advanced-usage.mdx +1 -2
  200. package/.docs/raw/tools-mcp/mcp-overview.mdx +3 -5
  201. package/.docs/raw/voice/overview.mdx +87 -40
  202. package/.docs/raw/voice/speech-to-speech.mdx +4 -4
  203. package/.docs/raw/voice/speech-to-text.mdx +1 -2
  204. package/.docs/raw/voice/text-to-speech.mdx +1 -2
  205. package/.docs/raw/workflows/control-flow.mdx +180 -0
  206. package/.docs/raw/workflows/overview.mdx +1 -1
  207. package/CHANGELOG.md +17 -0
  208. package/dist/{chunk-5NJC7NRO.js → chunk-4CM2BQNP.js} +24 -4
  209. package/dist/prepare-docs/package-changes.d.ts.map +1 -1
  210. package/dist/prepare-docs/prepare.js +1 -1
  211. package/dist/stdio.js +1 -1
  212. package/package.json +7 -7
  213. package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +0 -102
  214. package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +0 -179
  215. package/.docs/raw/frameworks/web-frameworks/next-js.mdx +0 -379
  216. package/.docs/raw/getting-started/quickstart.mdx +0 -27
  217. package/.docs/raw/getting-started/templates.mdx +0 -73
  218. /package/.docs/raw/{frameworks/agentic-uis → guides/build-your-ui}/assistant-ui.mdx +0 -0
  219. /package/.docs/raw/{frameworks/agentic-uis → guides/build-your-ui}/copilotkit.mdx +0 -0
@@ -13,13 +13,13 @@ The `createVectorQueryTool()` function creates a tool for semantic search over v
13
13
  ## Basic Usage
14
14
 
15
15
  ```typescript
16
- import { openai } from "@ai-sdk/openai";
17
16
  import { createVectorQueryTool } from "@mastra/rag";
17
+ import { ModelRouterEmbeddingModel } from "@mastra/core/llm";
18
18
 
19
19
  const queryTool = createVectorQueryTool({
20
20
  vectorStoreName: "pinecone",
21
21
  indexName: "docs",
22
- model: openai.embedding("text-embedding-3-small"),
22
+ model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
23
23
  });
24
24
  ```
25
25
 
@@ -303,7 +303,7 @@ The tool determines the number of results to return based on the user's query, w
303
303
  const queryTool = createVectorQueryTool({
304
304
  vectorStoreName: "pinecone",
305
305
  indexName: "docs",
306
- model: openai.embedding("text-embedding-3-small"),
306
+ model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
307
307
  enableFilter: true,
308
308
  });
309
309
  ```
@@ -334,9 +334,9 @@ For an example of how agent-driven filtering works, see the [Agent-Driven Metada
334
334
  const queryTool = createVectorQueryTool({
335
335
  vectorStoreName: "milvus",
336
336
  indexName: "documentation",
337
- model: openai.embedding("text-embedding-3-small"),
337
+ model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
338
338
  reranker: {
339
- model: openai("gpt-4o-mini"),
339
+ model: "openai/gpt-5.1",
340
340
  options: {
341
341
  weights: {
342
342
  semantic: 0.5, // Semantic relevance weight
@@ -364,7 +364,7 @@ The reranker processes the initial vector search results and returns a reordered
364
364
  const queryTool = createVectorQueryTool({
365
365
  vectorStoreName: "pinecone",
366
366
  indexName: "docs",
367
- model: openai.embedding("text-embedding-3-small"),
367
+ model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
368
368
  description:
369
369
  "Search through document archives to find relevant information for answering questions about company policies and procedures",
370
370
  });
@@ -384,7 +384,7 @@ The `databaseConfig` parameter allows you to leverage unique features and optimi
384
384
  const pineconeQueryTool = createVectorQueryTool({
385
385
  vectorStoreName: "pinecone",
386
386
  indexName: "docs",
387
- model: openai.embedding("text-embedding-3-small"),
387
+ model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
388
388
  databaseConfig: {
389
389
  pinecone: {
390
390
  namespace: "production", // Organize vectors by environment
@@ -411,7 +411,7 @@ The `databaseConfig` parameter allows you to leverage unique features and optimi
411
411
  const pgVectorQueryTool = createVectorQueryTool({
412
412
  vectorStoreName: "postgres",
413
413
  indexName: "embeddings",
414
- model: openai.embedding("text-embedding-3-small"),
414
+ model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
415
415
  databaseConfig: {
416
416
  pgvector: {
417
417
  minScore: 0.7, // Only return results above 70% similarity
@@ -437,7 +437,7 @@ The `databaseConfig` parameter allows you to leverage unique features and optimi
437
437
  const chromaQueryTool = createVectorQueryTool({
438
438
  vectorStoreName: "chroma",
439
439
  indexName: "documents",
440
- model: openai.embedding("text-embedding-3-small"),
440
+ model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
441
441
  databaseConfig: {
442
442
  chroma: {
443
443
  where: { // Metadata filtering
@@ -467,7 +467,7 @@ The `databaseConfig` parameter allows you to leverage unique features and optimi
467
467
  const multiDbQueryTool = createVectorQueryTool({
468
468
  vectorStoreName: "dynamic-store", // Will be set at runtime
469
469
  indexName: "docs",
470
- model: openai.embedding("text-embedding-3-small"),
470
+ model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
471
471
  databaseConfig: {
472
472
  pinecone: {
473
473
  namespace: "default"
@@ -501,7 +501,7 @@ import { RequestContext } from "@mastra/core/request-context";
501
501
  const queryTool = createVectorQueryTool({
502
502
  vectorStoreName: "pinecone",
503
503
  indexName: "docs",
504
- model: openai.embedding("text-embedding-3-small"),
504
+ model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
505
505
  databaseConfig: {
506
506
  pinecone: {
507
507
  namespace: "development",
@@ -534,7 +534,7 @@ This approach allows you to:
534
534
  const queryTool = createVectorQueryTool({
535
535
  vectorStoreName: "pinecone",
536
536
  indexName: "docs",
537
- model: openai.embedding("text-embedding-3-small"),
537
+ model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
538
538
  });
539
539
  ```
540
540
 
@@ -555,7 +555,7 @@ requestContext.set("filter", { category: "docs" });
555
555
  requestContext.set("databaseConfig", {
556
556
  pinecone: { namespace: "runtime-namespace" },
557
557
  });
558
- requestContext.set("model", openai.embedding("text-embedding-3-small"));
558
+ requestContext.set("model", "openai/text-embedding-3-small");
559
559
 
560
560
  const response = await agent.generate(
561
561
  "Find documentation from the knowledge base.",
@@ -575,7 +575,6 @@ For more information on request context, please see:
575
575
  The tool can be used by itself to retrieve documents matching a query:
576
576
 
577
577
  ```typescript copy showLineNumbers title="src/index.ts"
578
- import { openai } from "@ai-sdk/openai";
579
578
  import { RequestContext } from "@mastra/core/request-context";
580
579
  import { createVectorQueryTool } from "@mastra/rag";
581
580
  import { PgVector } from "@mastra/pg";
@@ -589,7 +588,7 @@ const vectorQueryTool = createVectorQueryTool({
589
588
  vectorStoreName: "pgVector", // optional since we're passing in a store
590
589
  vectorStore: pgVector,
591
590
  indexName: "embeddings",
592
- model: openai.embedding("text-embedding-3-small"),
591
+ model: new ModelRouterEmbeddingModel("openai/text-embedding-3-small"),
593
592
  });
594
593
 
595
594
  const requestContext = new RequestContext();
@@ -335,6 +335,8 @@ interface IndexStats {
335
335
 
336
336
  ### updateVector()
337
337
 
338
+ Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
339
+
338
340
  <PropertiesTable
339
341
  content={[
340
342
  {
@@ -345,7 +347,14 @@ interface IndexStats {
345
347
  {
346
348
  name: "id",
347
349
  type: "string",
348
- description: "ID of the vector to update",
350
+ isOptional: true,
351
+ description: "ID of the vector to update (mutually exclusive with filter)",
352
+ },
353
+ {
354
+ name: "filter",
355
+ type: "Record<string, any>",
356
+ isOptional: true,
357
+ description: "Metadata filter to identify vector(s) to update (mutually exclusive with id)",
349
358
  },
350
359
  {
351
360
  name: "update",
@@ -374,6 +383,24 @@ The `update` object can contain:
374
383
  ]}
375
384
  />
376
385
 
386
+ Example:
387
+
388
+ ```typescript
389
+ // Update by ID
390
+ await vectorStore.updateVector({
391
+ indexName: 'docs',
392
+ id: 'vec_123',
393
+ update: { metadata: { status: 'reviewed' } }
394
+ });
395
+
396
+ // Update by filter
397
+ await vectorStore.updateVector({
398
+ indexName: 'docs',
399
+ filter: { source_id: 'manual.pdf' },
400
+ update: { metadata: { version: 2 } }
401
+ });
402
+ ```
403
+
377
404
  ### deleteVector()
378
405
 
379
406
  <PropertiesTable
@@ -391,6 +418,59 @@ The `update` object can contain:
391
418
  ]}
392
419
  />
393
420
 
421
+ ### deleteVectors()
422
+
423
+ 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.
424
+
425
+ <PropertiesTable
426
+ content={[
427
+ {
428
+ name: "indexName",
429
+ type: "string",
430
+ description: "Name of the index containing the vectors to delete",
431
+ },
432
+ {
433
+ name: "ids",
434
+ type: "string[]",
435
+ isOptional: true,
436
+ description: "Array of vector IDs to delete (mutually exclusive with filter)",
437
+ },
438
+ {
439
+ name: "filter",
440
+ type: "Record<string, any>",
441
+ isOptional: true,
442
+ description: "Metadata filter to identify vectors to delete (mutually exclusive with ids)",
443
+ },
444
+ ]}
445
+ />
446
+
447
+ Example:
448
+
449
+ ```typescript
450
+ // Delete all chunks from a document
451
+ await vectorStore.deleteVectors({
452
+ indexName: 'docs',
453
+ filter: { source_id: 'manual.pdf' }
454
+ });
455
+
456
+ // Delete multiple vectors by ID
457
+ await vectorStore.deleteVectors({
458
+ indexName: 'docs',
459
+ ids: ['vec_1', 'vec_2', 'vec_3']
460
+ });
461
+
462
+ // Delete old temporary documents
463
+ await vectorStore.deleteVectors({
464
+ indexName: 'docs',
465
+ filter: {
466
+ $and: [
467
+ { bucket: 'temp' },
468
+ { indexed_at: { $lt: '2025-01-01' } }
469
+ ]
470
+ }
471
+ });
472
+ ```
473
+
394
474
  ## Response Types
395
475
 
396
476
  Query results are returned in this format:
@@ -239,7 +239,7 @@ Returns: `Promise<string[]>`
239
239
 
240
240
  ### updateVector()
241
241
 
242
- Updates a specific vector entry by its ID with new vector data and/or metadata.
242
+ Updates a specific vector entry by its ID with new vector data and/or metadata. **Note:** Filter-based updates are not yet implemented for Couchbase.
243
243
 
244
244
  <PropertiesTable
245
245
  content={[
@@ -255,27 +255,15 @@ Updates a specific vector entry by its ID with new vector data and/or metadata.
255
255
  },
256
256
  {
257
257
  name: "update",
258
- type: "object",
259
- description: "Update data containing vector and/or metadata",
260
- },
261
- {
262
- name: "update.vector",
263
- type: "number[]",
264
- isOptional: true,
265
- description: "New vector data to update",
266
- },
267
- {
268
- name: "update.metadata",
269
- type: "Record<string, any>",
270
- isOptional: true,
271
- description: "New metadata to update",
258
+ type: "{ vector?: number[]; metadata?: Record<string, any>; }",
259
+ description: "Object containing the vector and/or metadata to update",
272
260
  },
273
261
  ]}
274
262
  />
275
263
 
276
264
  ### deleteVector()
277
265
 
278
- Deletes a specific vector entry from an index by its ID.
266
+ Deletes a single vector by its ID from the index.
279
267
 
280
268
  <PropertiesTable
281
269
  content={[
@@ -287,7 +275,26 @@ Deletes a specific vector entry from an index by its ID.
287
275
  {
288
276
  name: "id",
289
277
  type: "string",
290
- description: "ID of the vector entry to delete",
278
+ description: "ID of the vector to delete",
279
+ },
280
+ ]}
281
+ />
282
+
283
+ ### deleteVectors()
284
+
285
+ Deletes multiple vectors by their IDs. **Note:** Filter-based deletion is not yet implemented for Couchbase.
286
+
287
+ <PropertiesTable
288
+ content={[
289
+ {
290
+ name: "indexName",
291
+ type: "string",
292
+ description: "Name of the index containing the vectors to delete",
293
+ },
294
+ {
295
+ name: "ids",
296
+ type: "string[]",
297
+ description: "Array of vector IDs to delete",
291
298
  },
292
299
  ]}
293
300
  />
@@ -345,6 +345,8 @@ interface IndexStats {
345
345
 
346
346
  ### updateVector()
347
347
 
348
+ Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
349
+
348
350
  <PropertiesTable
349
351
  content={[
350
352
  {
@@ -355,31 +357,19 @@ interface IndexStats {
355
357
  {
356
358
  name: "id",
357
359
  type: "string",
358
- description: "ID of the vector to update",
360
+ isOptional: true,
361
+ description: "ID of the vector to update (mutually exclusive with filter)",
362
+ },
363
+ {
364
+ name: "filter",
365
+ type: "Record<string, any>",
366
+ isOptional: true,
367
+ description: "Metadata filter to identify vector(s) to update (mutually exclusive with id)",
359
368
  },
360
369
  {
361
370
  name: "update",
362
- type: "object",
363
- description: "Update parameters",
364
- properties: [
365
- {
366
- type: "object",
367
- parameters: [
368
- {
369
- name: "vector",
370
- type: "number[]",
371
- description: "New vector values",
372
- isOptional: true,
373
- },
374
- {
375
- name: "metadata",
376
- type: "Record<string, any>",
377
- description: "New metadata values",
378
- isOptional: true,
379
- },
380
- ],
381
- },
382
- ],
371
+ type: "{ vector?: number[]; metadata?: Record<string, any>; }",
372
+ description: "Object containing the vector and/or metadata to update",
383
373
  },
384
374
  ]}
385
375
  />
@@ -401,6 +391,32 @@ interface IndexStats {
401
391
  ]}
402
392
  />
403
393
 
394
+ ### deleteVectors()
395
+
396
+ Delete multiple vectors by IDs or by metadata filter. Either `ids` or `filter` must be provided, but not both.
397
+
398
+ <PropertiesTable
399
+ content={[
400
+ {
401
+ name: "indexName",
402
+ type: "string",
403
+ description: "Name of the index containing the vectors to delete",
404
+ },
405
+ {
406
+ name: "ids",
407
+ type: "string[]",
408
+ isOptional: true,
409
+ description: "Array of vector IDs to delete (mutually exclusive with filter)",
410
+ },
411
+ {
412
+ name: "filter",
413
+ type: "Record<string, any>",
414
+ isOptional: true,
415
+ description: "Metadata filter to identify vectors to delete (mutually exclusive with ids)",
416
+ },
417
+ ]}
418
+ />
419
+
404
420
  ### close()
405
421
 
406
422
  Closes the database connection.
@@ -253,7 +253,7 @@ Removes all vectors from an index while keeping the index structure.
253
253
 
254
254
  ### updateVector()
255
255
 
256
- Updates a specific vector entry by its ID with new vector data and/or metadata.
256
+ Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
257
257
 
258
258
  <PropertiesTable
259
259
  content={[
@@ -265,7 +265,14 @@ Updates a specific vector entry by its ID with new vector data and/or metadata.
265
265
  {
266
266
  name: "id",
267
267
  type: "string",
268
- description: "ID of the vector entry to update",
268
+ isOptional: true,
269
+ description: "ID of the vector entry to update (mutually exclusive with filter)",
270
+ },
271
+ {
272
+ name: "filter",
273
+ type: "Record<string, any>",
274
+ isOptional: true,
275
+ description: "Metadata filter to identify vector(s) to update (mutually exclusive with id)",
269
276
  },
270
277
  {
271
278
  name: "update",
@@ -306,6 +313,32 @@ Deletes a specific vector entry from an index by its ID.
306
313
  ]}
307
314
  />
308
315
 
316
+ ### deleteVectors()
317
+
318
+ Delete multiple vectors by IDs or by metadata filter. Either `ids` or `filter` must be provided, but not both.
319
+
320
+ <PropertiesTable
321
+ content={[
322
+ {
323
+ name: "indexName",
324
+ type: "string",
325
+ description: "Name of the index containing the vectors to delete",
326
+ },
327
+ {
328
+ name: "ids",
329
+ type: "string[]",
330
+ isOptional: true,
331
+ description: "Array of vector IDs to delete (mutually exclusive with filter)",
332
+ },
333
+ {
334
+ name: "filter",
335
+ type: "Record<string, any>",
336
+ isOptional: true,
337
+ description: "Metadata filter to identify vectors to delete (mutually exclusive with ids)",
338
+ },
339
+ ]}
340
+ />
341
+
309
342
  ## Response Types
310
343
 
311
344
  Query results are returned in this format:
@@ -210,7 +210,7 @@ Returns: `Promise<string[]>`
210
210
 
211
211
  ### updateVector()
212
212
 
213
- Updates a specific vector entry by its ID with new vector data and/or metadata.
213
+ Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
214
214
 
215
215
  <PropertiesTable
216
216
  content={[
@@ -222,7 +222,14 @@ Updates a specific vector entry by its ID with new vector data and/or metadata.
222
222
  {
223
223
  name: "id",
224
224
  type: "string",
225
- description: "ID of the vector entry to update",
225
+ isOptional: true,
226
+ description: "ID of the vector entry to update (mutually exclusive with filter)",
227
+ },
228
+ {
229
+ name: "filter",
230
+ type: "Record<string, any>",
231
+ isOptional: true,
232
+ description: "Metadata filter to identify vector(s) to update (mutually exclusive with id)",
226
233
  },
227
234
  {
228
235
  name: "update",
@@ -263,6 +270,32 @@ Deletes a specific vector entry from an index by its ID.
263
270
  ]}
264
271
  />
265
272
 
273
+ ### deleteVectors()
274
+
275
+ Delete multiple vectors by IDs or by metadata filter. Either `ids` or `filter` must be provided, but not both.
276
+
277
+ <PropertiesTable
278
+ content={[
279
+ {
280
+ name: "indexName",
281
+ type: "string",
282
+ description: "Name of the collection containing the vectors to delete",
283
+ },
284
+ {
285
+ name: "ids",
286
+ type: "string[]",
287
+ isOptional: true,
288
+ description: "Array of vector IDs to delete (mutually exclusive with filter)",
289
+ },
290
+ {
291
+ name: "filter",
292
+ type: "Record<string, any>",
293
+ isOptional: true,
294
+ description: "Metadata filter to identify vectors to delete (mutually exclusive with ids)",
295
+ },
296
+ ]}
297
+ />
298
+
266
299
  ### disconnect()
267
300
 
268
301
  Closes the MongoDB client connection. Should be called when done using the store.
@@ -142,7 +142,7 @@ Gets information about an index.
142
142
 
143
143
  ### updateVector()
144
144
 
145
- Updates a specific vector entry by its ID with new vector data and/or metadata.
145
+ Update a single vector by ID or by metadata filter. Either `id` or `filter` must be provided, but not both.
146
146
 
147
147
  <PropertiesTable
148
148
  content={[
@@ -154,43 +154,64 @@ Updates a specific vector entry by its ID with new vector data and/or metadata.
154
154
  {
155
155
  name: "id",
156
156
  type: "string",
157
- description: "The ID of the vector to update",
157
+ isOptional: true,
158
+ description: "The ID of the vector to update (mutually exclusive with filter)",
159
+ },
160
+ {
161
+ name: "filter",
162
+ type: "Record<string, any>",
163
+ isOptional: true,
164
+ description: "Metadata filter to identify vector(s) to update (mutually exclusive with id)",
158
165
  },
159
166
  {
160
167
  name: "update",
161
- type: "object",
162
- description: "Update data containing vector and/or metadata",
168
+ type: "{ vector?: number[]; metadata?: Record<string, any>; }",
169
+ description: "Object containing the vector and/or metadata to update",
163
170
  },
171
+ ]}
172
+ />
173
+
174
+ ### deleteVector()
175
+
176
+ Deletes a single vector by its ID from the index.
177
+
178
+ <PropertiesTable
179
+ content={[
164
180
  {
165
- name: "update.vector",
166
- type: "number[]",
167
- description: "The new vector embedding",
168
- isOptional: true,
181
+ name: "indexName",
182
+ type: "string",
183
+ description: "The name of the index to delete the vector from",
169
184
  },
170
185
  {
171
- name: "update.metadata",
172
- type: "Record<string, any>",
173
- description: "The new metadata",
174
- isOptional: true,
186
+ name: "id",
187
+ type: "string",
188
+ description: "The ID of the vector to delete",
175
189
  },
176
190
  ]}
177
191
  />
178
192
 
179
- ### deleteVector()
193
+ ### deleteVectors()
180
194
 
181
- Deletes specific vector entries by their IDs from the index.
195
+ Delete multiple vectors by IDs or by metadata filter. Either `ids` or `filter` must be provided, but not both.
182
196
 
183
197
  <PropertiesTable
184
198
  content={[
185
199
  {
186
200
  name: "indexName",
187
201
  type: "string",
188
- description: "The name of the index to delete vectors from",
202
+ description: "Name of the index containing the vectors to delete",
189
203
  },
190
204
  {
191
205
  name: "ids",
192
206
  type: "string[]",
193
- description: "Array of vector IDs to delete",
207
+ isOptional: true,
208
+ description: "Array of vector IDs to delete (mutually exclusive with filter)",
209
+ },
210
+ {
211
+ name: "filter",
212
+ type: "Record<string, any>",
213
+ isOptional: true,
214
+ description: "Metadata filter to identify vectors to delete (mutually exclusive with ids)",
194
215
  },
195
216
  ]}
196
217
  />