@mastra/mcp-docs-server 1.0.0-beta.8 → 1.0.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/organized/changelogs/%40internal%2Fchangeset-cli.md +1 -13
- package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +1 -5
- package/.docs/organized/changelogs/%40internal%2Fplayground.md +40 -0
- package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +8 -8
- package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +1 -53
- package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +287 -287
- package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +315 -315
- package/.docs/organized/changelogs/%40mastra%2Fastra.md +53 -53
- package/.docs/organized/changelogs/%40mastra%2Fauth.md +38 -0
- package/.docs/organized/changelogs/%40mastra%2Fchroma.md +66 -66
- package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +522 -212
- package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +658 -196
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +439 -234
- package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +450 -211
- package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +208 -0
- package/.docs/organized/changelogs/%40mastra%2Fconvex.md +448 -22
- package/.docs/organized/changelogs/%40mastra%2Fcore.md +3341 -271
- package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +60 -60
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +289 -289
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +90 -90
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +74 -74
- package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +70 -70
- package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +247 -220
- package/.docs/organized/changelogs/%40mastra%2Fduckdb.md +70 -0
- package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +403 -225
- package/.docs/organized/changelogs/%40mastra%2Felasticsearch.md +72 -0
- package/.docs/organized/changelogs/%40mastra%2Fevals.md +145 -145
- package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +54 -0
- package/.docs/organized/changelogs/%40mastra%2Flance.md +456 -226
- package/.docs/organized/changelogs/%40mastra%2Flibsql.md +604 -208
- package/.docs/organized/changelogs/%40mastra%2Floggers.md +71 -71
- package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +247 -247
- package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +28 -28
- package/.docs/organized/changelogs/%40mastra%2Fmcp.md +285 -285
- package/.docs/organized/changelogs/%40mastra%2Fmemory.md +354 -156
- package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +545 -212
- package/.docs/organized/changelogs/%40mastra%2Fmssql.md +481 -202
- package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +194 -194
- package/.docs/organized/changelogs/%40mastra%2Fpg.md +759 -213
- package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +198 -198
- package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +636 -229
- package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +163 -163
- package/.docs/organized/changelogs/%40mastra%2Frag.md +310 -310
- package/.docs/organized/changelogs/%40mastra%2Freact.md +328 -230
- package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +64 -0
- package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +160 -0
- package/.docs/organized/changelogs/%40mastra%2Fserver.md +829 -218
- package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +57 -57
- package/.docs/organized/changelogs/%40mastra%2Fupstash.md +479 -232
- package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +53 -53
- package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +45 -45
- package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +45 -45
- package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +47 -47
- package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +110 -110
- package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +15 -0
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +98 -0
- package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +54 -54
- package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +46 -46
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +93 -93
- package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +47 -47
- package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +45 -45
- package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +45 -45
- package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +45 -45
- package/.docs/organized/changelogs/create-mastra.md +227 -227
- package/.docs/organized/changelogs/mastra.md +277 -277
- package/.docs/organized/code-examples/a2a.md +2 -2
- package/.docs/organized/code-examples/agent-v6.md +221 -0
- package/.docs/organized/code-examples/agui.md +4 -4
- package/.docs/organized/code-examples/ai-elements.md +3 -3
- package/.docs/organized/code-examples/ai-sdk-useChat.md +2 -2
- package/.docs/organized/code-examples/ai-sdk-v5.md +3 -3
- package/.docs/organized/code-examples/assistant-ui.md +5 -5
- package/.docs/organized/code-examples/bird-checker-with-express.md +1 -1
- package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +2 -2
- package/.docs/organized/code-examples/bird-checker-with-nextjs.md +3 -3
- package/.docs/organized/code-examples/client-side-tools.md +4 -4
- package/.docs/organized/code-examples/crypto-chatbot.md +5 -5
- package/.docs/organized/code-examples/experimental-auth-weather-agent.md +1 -1
- package/.docs/organized/code-examples/fireworks-r1.md +2 -2
- package/.docs/organized/code-examples/heads-up-game.md +7 -7
- package/.docs/organized/code-examples/inngest.md +1075 -0
- package/.docs/organized/code-examples/mcp-configuration.md +1 -1
- package/.docs/organized/code-examples/mcp-server-adapters.md +3 -4
- package/.docs/organized/code-examples/memory-per-resource-example.md +3 -3
- package/.docs/organized/code-examples/memory-todo-agent.md +1 -1
- package/.docs/organized/code-examples/memory-with-context.md +1 -1
- package/.docs/organized/code-examples/memory-with-processors.md +1 -1
- package/.docs/organized/code-examples/openapi-spec-writer.md +3 -3
- package/.docs/organized/code-examples/processors-with-ai-sdk.md +14 -0
- package/.docs/organized/code-examples/quick-start.md +1 -5
- package/.docs/organized/code-examples/server-app-access.md +3 -3
- package/.docs/organized/code-examples/server-express-adapter.md +1 -1
- package/.docs/organized/code-examples/server-fastify-adapter.md +83 -0
- package/.docs/organized/code-examples/server-hono-adapter.md +3 -3
- package/.docs/organized/code-examples/server-koa-adapter.md +94 -0
- package/.docs/organized/code-examples/stock-price-tool.md +21 -2
- package/.docs/organized/code-examples/workflow-ai-recruiter.md +1 -1
- package/.docs/organized/code-examples/workflow-with-inline-steps.md +1 -1
- package/.docs/organized/code-examples/workflow-with-memory.md +1 -1
- package/.docs/organized/code-examples/workflow-with-separate-steps.md +1 -1
- package/.docs/organized/code-examples/workflow-with-suspend-resume.md +1 -1
- package/.docs/raw/agents/adding-voice.mdx +24 -6
- package/.docs/raw/agents/agent-approval.mdx +209 -12
- package/.docs/raw/agents/agent-memory.mdx +36 -32
- package/.docs/raw/agents/guardrails.mdx +105 -56
- package/.docs/raw/agents/network-approval.mdx +281 -0
- package/.docs/raw/agents/networks.mdx +69 -13
- package/.docs/raw/agents/overview.mdx +43 -25
- package/.docs/raw/agents/processors.mdx +234 -17
- package/.docs/raw/agents/structured-output.mdx +78 -8
- package/.docs/raw/agents/using-tools.mdx +67 -6
- package/.docs/raw/course/01-first-agent/07-creating-your-agent.md +1 -2
- package/.docs/raw/course/01-first-agent/12-connecting-tool-to-agent.md +1 -1
- package/.docs/raw/course/01-first-agent/16-adding-memory-to-agent.md +1 -2
- package/.docs/raw/course/02-agent-tools-mcp/05-updating-your-agent.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/10-updating-agent-instructions-zapier.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/16-updating-agent-instructions-github.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/21-updating-agent-instructions-hackernews.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/27-updating-agent-instructions-filesystem.md +1 -1
- package/.docs/raw/course/02-agent-tools-mcp/31-enhancing-memory-configuration.md +3 -3
- package/.docs/raw/course/03-agent-memory/04-creating-basic-memory-agent.md +1 -2
- package/.docs/raw/course/03-agent-memory/07-understanding-memory-threads.md +35 -0
- package/.docs/raw/course/03-agent-memory/08-configuring-conversation-history.md +1 -2
- package/.docs/raw/course/03-agent-memory/13-vector-store-configuration.md +1 -1
- package/.docs/raw/course/03-agent-memory/16-configuring-semantic-recall.md +4 -5
- package/.docs/raw/course/03-agent-memory/18-advanced-configuration-semantic-recall.md +1 -1
- package/.docs/raw/course/03-agent-memory/21-configuring-working-memory.md +3 -4
- package/.docs/raw/course/03-agent-memory/22-custom-working-memory-templates.md +3 -4
- package/.docs/raw/course/03-agent-memory/25-combining-memory-features.md +3 -4
- package/.docs/raw/course/03-agent-memory/27-creating-learning-assistant.md +3 -4
- package/.docs/raw/course/04-workflows/11-creating-an-ai-agent.md +2 -3
- package/.docs/raw/deployment/cloud-providers.mdx +22 -0
- package/.docs/raw/deployment/mastra-server.mdx +140 -0
- package/.docs/raw/deployment/monorepo.mdx +106 -42
- package/.docs/raw/deployment/overview.mdx +35 -48
- package/.docs/raw/deployment/web-framework.mdx +17 -19
- package/.docs/raw/deployment/workflow-runners.mdx +16 -0
- package/.docs/raw/evals/built-in-scorers.mdx +2 -0
- package/.docs/raw/evals/custom-scorers.mdx +60 -12
- package/.docs/raw/evals/overview.mdx +6 -6
- package/.docs/raw/evals/running-in-ci.mdx +4 -2
- package/.docs/raw/getting-started/manual-install.mdx +20 -20
- package/.docs/raw/getting-started/mcp-docs-server.mdx +59 -2
- package/.docs/raw/getting-started/project-structure.mdx +2 -2
- package/.docs/raw/getting-started/start.mdx +17 -1
- package/.docs/raw/getting-started/studio.mdx +10 -37
- package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +151 -0
- package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +1034 -80
- package/.docs/raw/guides/build-your-ui/assistant-ui.mdx +8 -8
- package/.docs/raw/guides/build-your-ui/copilotkit.mdx +32 -11
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/amazon-ec2.mdx +9 -9
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/aws-lambda.mdx +13 -16
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/azure-app-services.mdx +5 -7
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/cloudflare-deployer.mdx +8 -5
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/digital-ocean.mdx +18 -23
- package/.docs/raw/guides/deployment/index.mdx +32 -0
- package/.docs/raw/guides/deployment/inngest.mdx +673 -0
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/netlify-deployer.mdx +7 -3
- package/.docs/raw/{deployment/cloud-providers → guides/deployment}/vercel-deployer.mdx +8 -5
- package/.docs/raw/guides/getting-started/astro.mdx +292 -451
- package/.docs/raw/guides/getting-started/express.mdx +72 -153
- package/.docs/raw/guides/getting-started/hono.mdx +227 -0
- package/.docs/raw/guides/getting-started/next-js.mdx +173 -61
- package/.docs/raw/guides/getting-started/nuxt.mdx +505 -0
- package/.docs/raw/guides/getting-started/quickstart.mdx +5 -5
- package/.docs/raw/guides/getting-started/sveltekit.mdx +238 -409
- package/.docs/raw/guides/getting-started/vite-react.mdx +317 -147
- package/.docs/raw/guides/guide/ai-recruiter.mdx +10 -10
- package/.docs/raw/guides/guide/chef-michel.mdx +9 -11
- package/.docs/raw/guides/guide/notes-mcp-server.mdx +15 -15
- package/.docs/raw/guides/guide/research-assistant.mdx +20 -20
- package/.docs/raw/guides/guide/stock-agent.mdx +5 -5
- package/.docs/raw/guides/guide/web-search.mdx +38 -38
- package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +7 -7
- package/.docs/raw/guides/index.mdx +0 -1
- package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +2 -2
- package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +105 -4
- package/.docs/raw/guides/migrations/upgrade-to-v1/cli.mdx +15 -1
- package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +170 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/deployment.mdx +42 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +0 -35
- package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +40 -3
- package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +17 -2
- package/.docs/raw/guides/migrations/upgrade-to-v1/processors.mdx +11 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/rag.mdx +47 -0
- package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +271 -25
- package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +3 -3
- package/.docs/raw/guides/migrations/upgrade-to-v1/tracing.mdx +72 -17
- package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +46 -1
- package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +50 -7
- package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +21 -23
- package/.docs/raw/index.mdx +2 -2
- package/.docs/raw/mastra-cloud/deployment.mdx +86 -0
- package/.docs/raw/mastra-cloud/observability.mdx +43 -0
- package/.docs/raw/mastra-cloud/overview.mdx +31 -0
- package/.docs/raw/mastra-cloud/setup.mdx +64 -0
- package/.docs/raw/mastra-cloud/studio.mdx +35 -0
- package/.docs/raw/mcp/overview.mdx +60 -25
- package/.docs/raw/mcp/publishing-mcp-server.mdx +7 -4
- package/.docs/raw/memory/memory-processors.mdx +17 -12
- package/.docs/raw/memory/message-history.mdx +72 -0
- package/.docs/raw/memory/overview.mdx +38 -76
- package/.docs/raw/memory/semantic-recall.mdx +65 -52
- package/.docs/raw/memory/storage.mdx +248 -0
- package/.docs/raw/memory/working-memory.mdx +24 -13
- package/.docs/raw/observability/logging.mdx +16 -15
- package/.docs/raw/observability/overview.mdx +27 -7
- package/.docs/raw/observability/tracing/bridges/otel.mdx +7 -4
- package/.docs/raw/observability/tracing/exporters/arize.mdx +61 -24
- package/.docs/raw/observability/tracing/exporters/braintrust.mdx +32 -22
- package/.docs/raw/observability/tracing/exporters/cloud.mdx +24 -5
- package/.docs/raw/observability/tracing/exporters/datadog.mdx +175 -0
- package/.docs/raw/observability/tracing/exporters/default.mdx +28 -7
- package/.docs/raw/observability/tracing/exporters/laminar.mdx +89 -0
- package/.docs/raw/observability/tracing/exporters/langfuse.mdx +31 -22
- package/.docs/raw/observability/tracing/exporters/langsmith.mdx +33 -3
- package/.docs/raw/observability/tracing/exporters/otel.mdx +194 -22
- package/.docs/raw/observability/tracing/exporters/posthog.mdx +32 -22
- package/.docs/raw/observability/tracing/exporters/sentry.mdx +198 -0
- package/.docs/raw/observability/tracing/overview.mdx +388 -108
- package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +27 -7
- package/.docs/raw/rag/chunking-and-embedding.mdx +22 -33
- package/.docs/raw/rag/graph-rag.mdx +223 -0
- package/.docs/raw/rag/overview.mdx +6 -3
- package/.docs/raw/rag/retrieval.mdx +53 -57
- package/.docs/raw/rag/vector-databases.mdx +55 -31
- package/.docs/raw/reference/agents/agent.mdx +17 -14
- package/.docs/raw/reference/agents/generate.mdx +172 -44
- package/.docs/raw/reference/agents/generateLegacy.mdx +5 -3
- package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +5 -3
- package/.docs/raw/reference/agents/getDefaultOptions.mdx +5 -3
- package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +5 -3
- package/.docs/raw/reference/agents/getDescription.mdx +3 -1
- package/.docs/raw/reference/agents/getInstructions.mdx +5 -3
- package/.docs/raw/reference/agents/getLLM.mdx +5 -3
- package/.docs/raw/reference/agents/getMemory.mdx +5 -3
- package/.docs/raw/reference/agents/getModel.mdx +5 -3
- package/.docs/raw/reference/agents/getTools.mdx +4 -2
- package/.docs/raw/reference/agents/getVoice.mdx +4 -2
- package/.docs/raw/reference/agents/listAgents.mdx +4 -2
- package/.docs/raw/reference/agents/listScorers.mdx +5 -3
- package/.docs/raw/reference/agents/listTools.mdx +4 -2
- package/.docs/raw/reference/agents/listWorkflows.mdx +4 -2
- package/.docs/raw/reference/agents/network.mdx +113 -1
- package/.docs/raw/reference/ai-sdk/chat-route.mdx +6 -3
- package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +4 -2
- package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +4 -2
- package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +5 -3
- package/.docs/raw/reference/ai-sdk/network-route.mdx +6 -3
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +10 -6
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-v4-messages.mdx +130 -0
- package/.docs/raw/reference/ai-sdk/to-ai-sdk-v5-messages.mdx +110 -0
- package/.docs/raw/reference/ai-sdk/with-mastra.mdx +122 -0
- package/.docs/raw/reference/ai-sdk/workflow-route.mdx +7 -4
- package/.docs/raw/reference/auth/auth0.mdx +5 -3
- package/.docs/raw/reference/auth/clerk.mdx +5 -3
- package/.docs/raw/reference/auth/firebase.mdx +6 -5
- package/.docs/raw/reference/auth/jwt.mdx +5 -3
- package/.docs/raw/reference/auth/supabase.mdx +5 -3
- package/.docs/raw/reference/auth/workos.mdx +5 -3
- package/.docs/raw/reference/cli/create-mastra.mdx +12 -10
- package/.docs/raw/reference/cli/mastra.mdx +63 -15
- package/.docs/raw/reference/client-js/agents.mdx +311 -85
- package/.docs/raw/reference/client-js/error-handling.mdx +3 -3
- package/.docs/raw/reference/client-js/logs.mdx +2 -0
- package/.docs/raw/reference/client-js/mastra-client.mdx +6 -4
- package/.docs/raw/reference/client-js/memory.mdx +47 -2
- package/.docs/raw/reference/client-js/observability.mdx +2 -0
- package/.docs/raw/reference/client-js/telemetry.mdx +2 -0
- package/.docs/raw/reference/client-js/tools.mdx +2 -0
- package/.docs/raw/reference/client-js/vectors.mdx +2 -0
- package/.docs/raw/reference/client-js/workflows.mdx +47 -3
- package/.docs/raw/reference/configuration.mdx +761 -0
- package/.docs/raw/reference/core/addGateway.mdx +2 -0
- package/.docs/raw/reference/core/getAgent.mdx +3 -1
- package/.docs/raw/reference/core/getAgentById.mdx +3 -1
- package/.docs/raw/reference/core/getDeployer.mdx +3 -1
- package/.docs/raw/reference/core/getGateway.mdx +2 -0
- package/.docs/raw/reference/core/getGatewayById.mdx +2 -0
- package/.docs/raw/reference/core/getLogger.mdx +3 -1
- package/.docs/raw/reference/core/getMCPServer.mdx +3 -1
- package/.docs/raw/reference/core/getMCPServerById.mdx +3 -1
- package/.docs/raw/reference/core/getMemory.mdx +77 -0
- package/.docs/raw/reference/core/getScorer.mdx +2 -0
- package/.docs/raw/reference/core/getScorerById.mdx +2 -0
- package/.docs/raw/reference/core/getServer.mdx +6 -4
- package/.docs/raw/reference/core/getStorage.mdx +5 -3
- package/.docs/raw/reference/core/getStoredAgentById.mdx +185 -0
- package/.docs/raw/reference/core/getTelemetry.mdx +3 -1
- package/.docs/raw/reference/core/getVector.mdx +3 -1
- package/.docs/raw/reference/core/getWorkflow.mdx +3 -1
- package/.docs/raw/reference/core/listAgents.mdx +3 -1
- package/.docs/raw/reference/core/listGateways.mdx +2 -0
- package/.docs/raw/reference/core/listLogs.mdx +3 -1
- package/.docs/raw/reference/core/listLogsByRunId.mdx +3 -1
- package/.docs/raw/reference/core/listMCPServers.mdx +3 -1
- package/.docs/raw/reference/core/listMemory.mdx +74 -0
- package/.docs/raw/reference/core/listScorers.mdx +2 -0
- package/.docs/raw/reference/core/listStoredAgents.mdx +153 -0
- package/.docs/raw/reference/core/listVectors.mdx +3 -1
- package/.docs/raw/reference/core/listWorkflows.mdx +3 -1
- package/.docs/raw/reference/core/mastra-class.mdx +35 -20
- package/.docs/raw/reference/core/mastra-model-gateway.mdx +2 -0
- package/.docs/raw/reference/core/setLogger.mdx +3 -1
- package/.docs/raw/reference/core/setStorage.mdx +6 -4
- package/.docs/raw/reference/deployer/cloudflare.mdx +22 -53
- package/.docs/raw/reference/deployer/deployer.mdx +2 -1
- package/.docs/raw/reference/deployer/netlify.mdx +4 -1
- package/.docs/raw/reference/deployer/vercel.mdx +5 -4
- package/.docs/raw/reference/evals/answer-relevancy.mdx +4 -1
- package/.docs/raw/reference/evals/answer-similarity.mdx +4 -1
- package/.docs/raw/reference/evals/bias.mdx +4 -1
- package/.docs/raw/reference/evals/completeness.mdx +4 -1
- package/.docs/raw/reference/evals/content-similarity.mdx +4 -1
- package/.docs/raw/reference/evals/context-precision.mdx +4 -1
- package/.docs/raw/reference/evals/context-relevance.mdx +2 -0
- package/.docs/raw/reference/evals/create-scorer.mdx +11 -3
- package/.docs/raw/reference/evals/faithfulness.mdx +4 -1
- package/.docs/raw/reference/evals/hallucination.mdx +4 -1
- package/.docs/raw/reference/evals/keyword-coverage.mdx +4 -1
- package/.docs/raw/reference/evals/mastra-scorer.mdx +2 -0
- package/.docs/raw/reference/evals/noise-sensitivity.mdx +2 -0
- package/.docs/raw/reference/evals/prompt-alignment.mdx +9 -7
- package/.docs/raw/reference/evals/run-evals.mdx +3 -1
- package/.docs/raw/reference/evals/scorer-utils.mdx +3 -0
- package/.docs/raw/reference/evals/textual-difference.mdx +4 -1
- package/.docs/raw/reference/evals/tone-consistency.mdx +4 -1
- package/.docs/raw/reference/evals/tool-call-accuracy.mdx +25 -23
- package/.docs/raw/reference/evals/toxicity.mdx +4 -1
- package/.docs/raw/reference/index.mdx +2 -1
- package/.docs/raw/reference/logging/pino-logger.mdx +10 -8
- package/.docs/raw/reference/memory/clone-utilities.mdx +345 -0
- package/.docs/raw/reference/memory/cloneThread.mdx +237 -0
- package/.docs/raw/reference/memory/createThread.mdx +6 -4
- package/.docs/raw/reference/memory/deleteMessages.mdx +4 -2
- package/.docs/raw/reference/memory/getThreadById.mdx +3 -1
- package/.docs/raw/reference/memory/listThreads.mdx +187 -0
- package/.docs/raw/reference/memory/memory-class.mdx +27 -20
- package/.docs/raw/reference/memory/recall.mdx +6 -4
- package/.docs/raw/reference/observability/tracing/bridges/otel.mdx +6 -2
- package/.docs/raw/reference/observability/tracing/configuration.mdx +51 -0
- package/.docs/raw/reference/observability/tracing/exporters/arize.mdx +25 -6
- package/.docs/raw/reference/observability/tracing/exporters/braintrust.mdx +23 -2
- package/.docs/raw/reference/observability/tracing/exporters/cloud-exporter.mdx +10 -0
- package/.docs/raw/reference/observability/tracing/exporters/console-exporter.mdx +3 -0
- package/.docs/raw/reference/observability/tracing/exporters/datadog.mdx +172 -0
- package/.docs/raw/reference/observability/tracing/exporters/default-exporter.mdx +10 -0
- package/.docs/raw/reference/observability/tracing/exporters/laminar.mdx +139 -0
- package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +26 -4
- package/.docs/raw/reference/observability/tracing/exporters/langsmith.mdx +10 -0
- package/.docs/raw/reference/observability/tracing/exporters/otel.mdx +51 -34
- package/.docs/raw/reference/observability/tracing/exporters/posthog.mdx +25 -4
- package/.docs/raw/reference/observability/tracing/exporters/sentry.mdx +224 -0
- package/.docs/raw/reference/observability/tracing/instances.mdx +2 -0
- package/.docs/raw/reference/observability/tracing/interfaces.mdx +20 -0
- package/.docs/raw/reference/observability/tracing/processors/sensitive-data-filter.mdx +2 -0
- package/.docs/raw/reference/observability/tracing/spans.mdx +2 -0
- package/.docs/raw/reference/processors/batch-parts-processor.mdx +4 -2
- package/.docs/raw/reference/processors/language-detector.mdx +6 -3
- package/.docs/raw/reference/processors/message-history-processor.mdx +5 -2
- package/.docs/raw/reference/processors/moderation-processor.mdx +6 -4
- package/.docs/raw/reference/processors/pii-detector.mdx +6 -4
- package/.docs/raw/reference/processors/processor-interface.mdx +326 -23
- package/.docs/raw/reference/processors/prompt-injection-detector.mdx +5 -3
- package/.docs/raw/reference/processors/semantic-recall-processor.mdx +7 -2
- package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +5 -3
- package/.docs/raw/reference/processors/token-limiter-processor.mdx +62 -19
- package/.docs/raw/reference/processors/tool-call-filter.mdx +5 -3
- package/.docs/raw/reference/processors/unicode-normalizer.mdx +6 -3
- package/.docs/raw/reference/processors/working-memory-processor.mdx +6 -3
- package/.docs/raw/reference/rag/chunk.mdx +7 -6
- package/.docs/raw/reference/rag/database-config.mdx +8 -6
- package/.docs/raw/reference/rag/document.mdx +2 -0
- package/.docs/raw/reference/rag/embeddings.mdx +2 -0
- package/.docs/raw/reference/rag/extract-params.mdx +57 -3
- package/.docs/raw/reference/rag/graph-rag.mdx +2 -0
- package/.docs/raw/reference/rag/metadata-filters.mdx +27 -7
- package/.docs/raw/reference/rag/rerank.mdx +2 -0
- package/.docs/raw/reference/rag/rerankWithScorer.mdx +2 -0
- package/.docs/raw/reference/server/create-route.mdx +34 -18
- package/.docs/raw/reference/server/express-adapter.mdx +78 -50
- package/.docs/raw/reference/server/fastify-adapter.mdx +130 -0
- package/.docs/raw/reference/server/hono-adapter.mdx +78 -48
- package/.docs/raw/reference/server/koa-adapter.mdx +129 -0
- package/.docs/raw/reference/server/mastra-server.mdx +52 -34
- package/.docs/raw/reference/server/routes.mdx +73 -10
- package/.docs/raw/reference/storage/cloudflare-d1.mdx +10 -5
- package/.docs/raw/reference/storage/cloudflare.mdx +12 -2
- package/.docs/raw/reference/storage/composite.mdx +245 -0
- package/.docs/raw/reference/storage/convex.mdx +8 -6
- package/.docs/raw/reference/storage/dynamodb.mdx +134 -8
- package/.docs/raw/reference/storage/lance.mdx +9 -5
- package/.docs/raw/reference/storage/libsql.mdx +76 -54
- package/.docs/raw/reference/storage/mongodb.mdx +115 -16
- package/.docs/raw/reference/storage/mssql.mdx +11 -6
- package/.docs/raw/{server-db/storage.mdx → reference/storage/overview.mdx} +15 -111
- package/.docs/raw/reference/storage/postgresql.mdx +228 -83
- package/.docs/raw/reference/storage/upstash.mdx +78 -2
- package/.docs/raw/reference/streaming/ChunkType.mdx +31 -3
- package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +67 -6
- package/.docs/raw/reference/streaming/agents/stream.mdx +48 -51
- package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +5 -3
- package/.docs/raw/reference/streaming/workflows/observeStream.mdx +3 -1
- package/.docs/raw/reference/streaming/workflows/resumeStream.mdx +3 -1
- package/.docs/raw/reference/streaming/workflows/stream.mdx +37 -22
- package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +6 -4
- package/.docs/raw/reference/templates/overview.mdx +3 -2
- package/.docs/raw/reference/tools/client.mdx +3 -0
- package/.docs/raw/reference/tools/create-tool.mdx +127 -5
- package/.docs/raw/reference/tools/document-chunker-tool.mdx +2 -0
- package/.docs/raw/reference/tools/graph-rag-tool.mdx +40 -3
- package/.docs/raw/reference/tools/mcp-client.mdx +110 -1
- package/.docs/raw/reference/tools/mcp-server.mdx +278 -24
- package/.docs/raw/reference/tools/vector-query-tool.mdx +68 -4
- package/.docs/raw/reference/vectors/astra.mdx +5 -3
- package/.docs/raw/reference/vectors/chroma.mdx +5 -3
- package/.docs/raw/reference/vectors/convex.mdx +14 -12
- package/.docs/raw/reference/vectors/couchbase.mdx +7 -5
- package/.docs/raw/reference/vectors/duckdb.mdx +12 -10
- package/.docs/raw/reference/vectors/elasticsearch.mdx +12 -4
- package/.docs/raw/reference/vectors/lance.mdx +6 -4
- package/.docs/raw/reference/vectors/libsql.mdx +66 -13
- package/.docs/raw/reference/vectors/mongodb.mdx +90 -10
- package/.docs/raw/reference/vectors/opensearch.mdx +30 -3
- package/.docs/raw/reference/vectors/pg.mdx +58 -6
- package/.docs/raw/reference/vectors/pinecone.mdx +23 -8
- package/.docs/raw/reference/vectors/qdrant.mdx +148 -4
- package/.docs/raw/reference/vectors/s3vectors.mdx +8 -6
- package/.docs/raw/reference/vectors/turbopuffer.mdx +6 -4
- package/.docs/raw/reference/vectors/upstash.mdx +60 -6
- package/.docs/raw/reference/vectors/vectorize.mdx +5 -3
- package/.docs/raw/reference/voice/azure.mdx +2 -0
- package/.docs/raw/reference/voice/cloudflare.mdx +2 -0
- package/.docs/raw/reference/voice/composite-voice.mdx +4 -0
- package/.docs/raw/reference/voice/deepgram.mdx +2 -0
- package/.docs/raw/reference/voice/elevenlabs.mdx +2 -0
- package/.docs/raw/reference/voice/google-gemini-live.mdx +3 -0
- package/.docs/raw/reference/voice/google.mdx +2 -0
- package/.docs/raw/reference/voice/mastra-voice.mdx +2 -0
- package/.docs/raw/reference/voice/murf.mdx +2 -0
- package/.docs/raw/reference/voice/openai-realtime.mdx +3 -0
- package/.docs/raw/reference/voice/openai.mdx +2 -0
- package/.docs/raw/reference/voice/playai.mdx +2 -0
- package/.docs/raw/reference/voice/sarvam.mdx +2 -0
- package/.docs/raw/reference/voice/speechify.mdx +2 -0
- package/.docs/raw/reference/voice/voice.addInstructions.mdx +3 -0
- package/.docs/raw/reference/voice/voice.addTools.mdx +3 -0
- package/.docs/raw/reference/voice/voice.answer.mdx +4 -0
- package/.docs/raw/reference/voice/voice.close.mdx +3 -0
- package/.docs/raw/reference/voice/voice.connect.mdx +5 -1
- package/.docs/raw/reference/voice/voice.events.mdx +2 -0
- package/.docs/raw/reference/voice/voice.getSpeakers.mdx +3 -0
- package/.docs/raw/reference/voice/voice.listen.mdx +6 -0
- package/.docs/raw/reference/voice/voice.off.mdx +2 -0
- package/.docs/raw/reference/voice/voice.on.mdx +5 -1
- package/.docs/raw/reference/voice/voice.send.mdx +4 -0
- package/.docs/raw/reference/voice/voice.speak.mdx +6 -0
- package/.docs/raw/reference/voice/voice.updateConfig.mdx +2 -0
- package/.docs/raw/reference/workflows/run-methods/cancel.mdx +55 -5
- package/.docs/raw/reference/workflows/run-methods/restart.mdx +3 -3
- package/.docs/raw/reference/workflows/run-methods/resume.mdx +6 -4
- package/.docs/raw/reference/workflows/run-methods/start.mdx +7 -5
- package/.docs/raw/reference/workflows/run-methods/startAsync.mdx +145 -0
- package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +10 -8
- package/.docs/raw/reference/workflows/run.mdx +11 -3
- package/.docs/raw/reference/workflows/step.mdx +56 -3
- package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +3 -1
- package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +3 -1
- package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +39 -2
- package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +3 -1
- package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +3 -1
- package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +71 -4
- package/.docs/raw/reference/workflows/workflow-methods/map.mdx +9 -7
- package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +3 -1
- package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +4 -6
- package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +4 -6
- package/.docs/raw/reference/workflows/workflow-methods/then.mdx +3 -1
- package/.docs/raw/reference/workflows/workflow.mdx +193 -2
- package/.docs/raw/{auth → server/auth}/auth0.mdx +40 -21
- package/.docs/raw/{auth → server/auth}/clerk.mdx +37 -16
- package/.docs/raw/{auth → server/auth}/firebase.mdx +47 -25
- package/.docs/raw/{auth → server/auth}/index.mdx +8 -6
- package/.docs/raw/{auth → server/auth}/jwt.mdx +22 -10
- package/.docs/raw/{auth → server/auth}/supabase.mdx +45 -25
- package/.docs/raw/{auth → server/auth}/workos.mdx +39 -20
- package/.docs/raw/{server-db → server}/custom-adapters.mdx +40 -24
- package/.docs/raw/{server-db → server}/custom-api-routes.mdx +6 -6
- package/.docs/raw/{server-db → server}/mastra-client.mdx +35 -38
- package/.docs/raw/server/mastra-server.mdx +86 -0
- package/.docs/raw/{server-db → server}/middleware.mdx +11 -9
- package/.docs/raw/{server-db → server}/request-context.mdx +85 -43
- package/.docs/raw/server/server-adapters.mdx +410 -0
- package/.docs/raw/streaming/events.mdx +16 -7
- package/.docs/raw/streaming/overview.mdx +30 -17
- package/.docs/raw/streaming/tool-streaming.mdx +15 -17
- package/.docs/raw/streaming/workflow-streaming.mdx +8 -8
- package/.docs/raw/tools-mcp/advanced-usage.mdx +4 -2
- package/.docs/raw/tools-mcp/mcp-overview.mdx +46 -12
- package/.docs/raw/tools-mcp/overview.mdx +14 -13
- package/.docs/raw/voice/overview.mdx +17 -2
- package/.docs/raw/voice/speech-to-speech.mdx +5 -0
- package/.docs/raw/voice/speech-to-text.mdx +4 -0
- package/.docs/raw/voice/text-to-speech.mdx +3 -0
- package/.docs/raw/workflows/agents-and-tools.mdx +70 -21
- package/.docs/raw/workflows/control-flow.mdx +369 -34
- package/.docs/raw/workflows/error-handling.mdx +192 -18
- package/.docs/raw/workflows/human-in-the-loop.mdx +8 -7
- package/.docs/raw/workflows/input-data-mapping.mdx +9 -7
- package/.docs/raw/workflows/overview.mdx +80 -34
- package/.docs/raw/workflows/snapshots.mdx +19 -45
- package/.docs/raw/workflows/suspend-and-resume.mdx +14 -14
- package/.docs/raw/workflows/time-travel.mdx +25 -21
- package/.docs/raw/workflows/workflow-state.mdx +7 -8
- package/CHANGELOG.md +254 -0
- package/README.md +36 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/logger.d.ts +3 -0
- package/dist/logger.d.ts.map +1 -1
- package/dist/stdio.js +746 -49
- package/dist/tools/course.d.ts.map +1 -1
- package/dist/tools/embedded-docs.d.ts +276 -0
- package/dist/tools/embedded-docs.d.ts.map +1 -0
- package/package.json +9 -8
- package/.docs/organized/changelogs/%40internal%2Fai-sdk-v4.md +0 -1
- package/.docs/raw/deployment/building-mastra.mdx +0 -73
- package/.docs/raw/deployment/cloud-providers/index.mdx +0 -55
- package/.docs/raw/deployment/mastra-cloud/dashboard.mdx +0 -100
- package/.docs/raw/deployment/mastra-cloud/observability.mdx +0 -53
- package/.docs/raw/deployment/mastra-cloud/overview.mdx +0 -65
- package/.docs/raw/deployment/mastra-cloud/setting-up.mdx +0 -105
- package/.docs/raw/memory/conversation-history.mdx +0 -24
- package/.docs/raw/memory/storage/memory-with-libsql.mdx +0 -140
- package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -150
- package/.docs/raw/memory/storage/memory-with-pg.mdx +0 -138
- package/.docs/raw/memory/storage/memory-with-upstash.mdx +0 -146
- package/.docs/raw/memory/threads-and-resources.mdx +0 -95
- package/.docs/raw/reference/core/setTelemetry.mdx +0 -36
- package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +0 -110
- package/.docs/raw/reference/memory/query.mdx +0 -189
- package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +0 -70
- package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +0 -66
- package/.docs/raw/server-db/mastra-server.mdx +0 -97
- package/.docs/raw/server-db/server-adapters.mdx +0 -286
- package/.docs/raw/workflows/inngest-workflow.mdx +0 -363
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Reference: PostgreSQL Storage | Storage"
|
|
3
3
|
description: Documentation for the PostgreSQL storage implementation in Mastra.
|
|
4
|
+
packages:
|
|
5
|
+
- "@mastra/core"
|
|
6
|
+
- "@mastra/memory"
|
|
7
|
+
- "@mastra/pg"
|
|
4
8
|
---
|
|
5
9
|
|
|
6
10
|
# PostgreSQL Storage
|
|
@@ -9,13 +13,13 @@ The PostgreSQL storage implementation provides a production-ready storage soluti
|
|
|
9
13
|
|
|
10
14
|
## Installation
|
|
11
15
|
|
|
12
|
-
```bash
|
|
16
|
+
```bash
|
|
13
17
|
npm install @mastra/pg@beta
|
|
14
18
|
```
|
|
15
19
|
|
|
16
20
|
## Usage
|
|
17
21
|
|
|
18
|
-
```typescript
|
|
22
|
+
```typescript
|
|
19
23
|
import { PostgresStore } from "@mastra/pg";
|
|
20
24
|
|
|
21
25
|
const storage = new PostgresStore({
|
|
@@ -28,6 +32,13 @@ const storage = new PostgresStore({
|
|
|
28
32
|
|
|
29
33
|
<PropertiesTable
|
|
30
34
|
content={[
|
|
35
|
+
{
|
|
36
|
+
name: "id",
|
|
37
|
+
type: "string",
|
|
38
|
+
description:
|
|
39
|
+
"Unique identifier for this storage instance.",
|
|
40
|
+
isOptional: false,
|
|
41
|
+
},
|
|
31
42
|
{
|
|
32
43
|
name: "connectionString",
|
|
33
44
|
type: "string",
|
|
@@ -105,11 +116,12 @@ The storage implementation handles schema creation and updates automatically. It
|
|
|
105
116
|
|
|
106
117
|
When you pass storage to the Mastra class, `init()` is called automatically before any storage operation:
|
|
107
118
|
|
|
108
|
-
```typescript
|
|
119
|
+
```typescript
|
|
109
120
|
import { Mastra } from "@mastra/core";
|
|
110
121
|
import { PostgresStore } from "@mastra/pg";
|
|
111
122
|
|
|
112
123
|
const storage = new PostgresStore({
|
|
124
|
+
id: 'pg-storage',
|
|
113
125
|
connectionString: process.env.DATABASE_URL,
|
|
114
126
|
});
|
|
115
127
|
|
|
@@ -120,18 +132,20 @@ const mastra = new Mastra({
|
|
|
120
132
|
|
|
121
133
|
If you're using storage directly without Mastra, you must call `init()` explicitly to create the tables:
|
|
122
134
|
|
|
123
|
-
```typescript
|
|
135
|
+
```typescript
|
|
124
136
|
import { PostgresStore } from "@mastra/pg";
|
|
125
137
|
|
|
126
138
|
const storage = new PostgresStore({
|
|
139
|
+
id: 'pg-storage',
|
|
127
140
|
connectionString: process.env.DATABASE_URL,
|
|
128
141
|
});
|
|
129
142
|
|
|
130
143
|
// Required when using storage directly
|
|
131
144
|
await storage.init();
|
|
132
145
|
|
|
133
|
-
//
|
|
134
|
-
await storage.
|
|
146
|
+
// Access domain-specific stores via getStore()
|
|
147
|
+
const memoryStore = await storage.getStore('memory');
|
|
148
|
+
const thread = await memoryStore?.getThreadById({ threadId: "..." });
|
|
135
149
|
```
|
|
136
150
|
|
|
137
151
|
:::warning
|
|
@@ -155,50 +169,199 @@ This enables direct queries and custom transaction management. When using these
|
|
|
155
169
|
|
|
156
170
|
This approach is intended for advanced scenarios where low-level access is required.
|
|
157
171
|
|
|
172
|
+
### Using with Next.js
|
|
173
|
+
|
|
174
|
+
When using `PostgresStore` in Next.js applications, [Hot Module Replacement (HMR)](https://nextjs.org/docs/architecture/fast-refresh) during development can cause multiple storage instances to be created, resulting in this warning:
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
WARNING: Creating a duplicate database object for the same connection.
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
To prevent this, store the `PostgresStore` instance on the global object so it persists across HMR reloads:
|
|
181
|
+
|
|
182
|
+
```typescript title="src/mastra/storage.ts"
|
|
183
|
+
import { PostgresStore } from "@mastra/pg";
|
|
184
|
+
import { Memory } from "@mastra/memory";
|
|
185
|
+
|
|
186
|
+
// Extend the global type to include our instances
|
|
187
|
+
declare global {
|
|
188
|
+
var pgStore: PostgresStore | undefined;
|
|
189
|
+
var memory: Memory | undefined;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
// Get or create the PostgresStore instance
|
|
193
|
+
function getPgStore(): PostgresStore {
|
|
194
|
+
if (!global.pgStore) {
|
|
195
|
+
if (!process.env.DATABASE_URL) {
|
|
196
|
+
throw new Error("DATABASE_URL is not defined in environment variables");
|
|
197
|
+
}
|
|
198
|
+
global.pgStore = new PostgresStore({
|
|
199
|
+
id: "pg-storage",
|
|
200
|
+
connectionString: process.env.DATABASE_URL,
|
|
201
|
+
ssl:
|
|
202
|
+
process.env.DATABASE_SSL === "true"
|
|
203
|
+
? { rejectUnauthorized: false }
|
|
204
|
+
: false,
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
return global.pgStore;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Get or create the Memory instance
|
|
211
|
+
function getMemory(): Memory {
|
|
212
|
+
if (!global.memory) {
|
|
213
|
+
global.memory = new Memory({
|
|
214
|
+
storage: getPgStore(),
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
return global.memory;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
export const storage = getPgStore();
|
|
221
|
+
export const memory = getMemory();
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Then use the exported instances in your Mastra configuration:
|
|
225
|
+
|
|
226
|
+
```typescript title="src/mastra/index.ts"
|
|
227
|
+
import { Mastra } from "@mastra/core/mastra";
|
|
228
|
+
import { storage } from "./storage";
|
|
229
|
+
|
|
230
|
+
export const mastra = new Mastra({
|
|
231
|
+
storage,
|
|
232
|
+
// ...other config
|
|
233
|
+
});
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
This pattern ensures only one `PostgresStore` instance is created regardless of how many times the module is reloaded during development. The same pattern can be applied to other storage providers like `LibSQLStore`.
|
|
237
|
+
|
|
238
|
+
:::tip
|
|
239
|
+
This singleton pattern is only necessary during local development with HMR. In production builds, modules are only loaded once.
|
|
240
|
+
:::
|
|
241
|
+
|
|
242
|
+
## Usage Example
|
|
243
|
+
|
|
244
|
+
### Adding memory to an agent
|
|
245
|
+
|
|
246
|
+
To add PostgreSQL memory to an agent use the `Memory` class and create a new `storage` key using `PostgresStore`. The `connectionString` can either be a remote location, or a local database connection.
|
|
247
|
+
|
|
248
|
+
```typescript title="src/mastra/agents/example-pg-agent.ts"
|
|
249
|
+
import { Memory } from "@mastra/memory";
|
|
250
|
+
import { Agent } from "@mastra/core/agent";
|
|
251
|
+
import { PostgresStore } from "@mastra/pg";
|
|
252
|
+
|
|
253
|
+
export const pgAgent = new Agent({
|
|
254
|
+
id: "pg-agent",
|
|
255
|
+
name: "PG Agent",
|
|
256
|
+
instructions:
|
|
257
|
+
"You are an AI agent with the ability to automatically recall memories from previous interactions.",
|
|
258
|
+
model: "openai/gpt-5.1",
|
|
259
|
+
memory: new Memory({
|
|
260
|
+
storage: new PostgresStore({
|
|
261
|
+
id: 'pg-agent-storage',
|
|
262
|
+
connectionString: process.env.DATABASE_URL!,
|
|
263
|
+
}),
|
|
264
|
+
options: {
|
|
265
|
+
generateTitle: true, // Explicitly enable automatic title generation
|
|
266
|
+
},
|
|
267
|
+
}),
|
|
268
|
+
});
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### Using the agent
|
|
272
|
+
|
|
273
|
+
Use `memoryOptions` to scope recall for this request. Set `lastMessages: 5` to limit recency-based recall, and use `semanticRecall` to fetch the `topK: 3` most relevant messages, including `messageRange: 2` neighboring messages for context around each match.
|
|
274
|
+
|
|
275
|
+
```typescript title="src/test-pg-agent.ts"
|
|
276
|
+
import "dotenv/config";
|
|
277
|
+
|
|
278
|
+
import { mastra } from "./mastra";
|
|
279
|
+
|
|
280
|
+
const threadId = "123";
|
|
281
|
+
const resourceId = "user-456";
|
|
282
|
+
|
|
283
|
+
const agent = mastra.getAgent("pg-agent");
|
|
284
|
+
|
|
285
|
+
const message = await agent.stream("My name is Mastra", {
|
|
286
|
+
memory: {
|
|
287
|
+
thread: threadId,
|
|
288
|
+
resource: resourceId,
|
|
289
|
+
},
|
|
290
|
+
});
|
|
291
|
+
|
|
292
|
+
await message.textStream.pipeTo(new WritableStream());
|
|
293
|
+
|
|
294
|
+
const stream = await agent.stream("What's my name?", {
|
|
295
|
+
memory: {
|
|
296
|
+
thread: threadId,
|
|
297
|
+
resource: resourceId,
|
|
298
|
+
},
|
|
299
|
+
memoryOptions: {
|
|
300
|
+
lastMessages: 5,
|
|
301
|
+
semanticRecall: {
|
|
302
|
+
topK: 3,
|
|
303
|
+
messageRange: 2,
|
|
304
|
+
},
|
|
305
|
+
},
|
|
306
|
+
});
|
|
307
|
+
|
|
308
|
+
for await (const chunk of stream.textStream) {
|
|
309
|
+
process.stdout.write(chunk);
|
|
310
|
+
}
|
|
311
|
+
```
|
|
312
|
+
|
|
158
313
|
## Index Management
|
|
159
314
|
|
|
160
|
-
PostgreSQL storage provides
|
|
315
|
+
PostgreSQL storage provides index management to optimize query performance.
|
|
161
316
|
|
|
162
|
-
###
|
|
317
|
+
### Default Indexes
|
|
163
318
|
|
|
164
|
-
PostgreSQL storage
|
|
319
|
+
PostgreSQL storage creates composite indexes during initialization for common query patterns:
|
|
165
320
|
|
|
166
321
|
- `mastra_threads_resourceid_createdat_idx`: (resourceId, createdAt DESC)
|
|
167
322
|
- `mastra_messages_thread_id_createdat_idx`: (thread_id, createdAt DESC)
|
|
168
|
-
- `
|
|
169
|
-
- `
|
|
323
|
+
- `mastra_ai_spans_traceid_startedat_idx`: (traceId, startedAt DESC)
|
|
324
|
+
- `mastra_ai_spans_parentspanid_startedat_idx`: (parentSpanId, startedAt DESC)
|
|
325
|
+
- `mastra_ai_spans_name_startedat_idx`: (name, startedAt DESC)
|
|
326
|
+
- `mastra_ai_spans_scope_startedat_idx`: (scope, startedAt DESC)
|
|
327
|
+
- `mastra_scores_trace_id_span_id_created_at_idx`: (traceId, spanId, createdAt DESC)
|
|
170
328
|
|
|
171
|
-
These indexes
|
|
329
|
+
These indexes improve performance for filtered queries with sorting, including `dateRange` filters on message queries.
|
|
172
330
|
|
|
173
|
-
###
|
|
331
|
+
### Configuring Indexes
|
|
174
332
|
|
|
175
|
-
|
|
333
|
+
You can control index creation via constructor options:
|
|
176
334
|
|
|
177
|
-
```typescript
|
|
178
|
-
|
|
179
|
-
await storage.createIndex({
|
|
180
|
-
name: "idx_threads_resource",
|
|
181
|
-
table: "mastra_threads",
|
|
182
|
-
columns: ["resourceId"],
|
|
183
|
-
});
|
|
335
|
+
```typescript
|
|
336
|
+
import { PostgresStore } from "@mastra/pg";
|
|
184
337
|
|
|
185
|
-
//
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
338
|
+
// Skip default indexes (manage indexes separately)
|
|
339
|
+
const store = new PostgresStore({
|
|
340
|
+
id: 'pg-storage',
|
|
341
|
+
connectionString: process.env.DATABASE_URL,
|
|
342
|
+
skipDefaultIndexes: true,
|
|
190
343
|
});
|
|
191
344
|
|
|
192
|
-
//
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
345
|
+
// Add custom indexes during initialization
|
|
346
|
+
const storeWithCustomIndexes = new PostgresStore({
|
|
347
|
+
id: 'pg-storage',
|
|
348
|
+
connectionString: process.env.DATABASE_URL,
|
|
349
|
+
indexes: [
|
|
350
|
+
{
|
|
351
|
+
name: "idx_threads_metadata_type",
|
|
352
|
+
table: "mastra_threads",
|
|
353
|
+
columns: ["metadata->>'type'"],
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
name: "idx_messages_status",
|
|
357
|
+
table: "mastra_messages",
|
|
358
|
+
columns: ["metadata->>'status'"],
|
|
359
|
+
},
|
|
360
|
+
],
|
|
198
361
|
});
|
|
199
362
|
```
|
|
200
363
|
|
|
201
|
-
For
|
|
364
|
+
For advanced index types, you can specify additional options:
|
|
202
365
|
|
|
203
366
|
- `unique: true` for unique constraints
|
|
204
367
|
- `where: 'condition'` for partial indexes
|
|
@@ -274,66 +437,48 @@ For more advanced use cases, you can also use:
|
|
|
274
437
|
]}
|
|
275
438
|
/>
|
|
276
439
|
|
|
277
|
-
### Managing Indexes
|
|
278
|
-
|
|
279
|
-
List and monitor existing indexes:
|
|
280
|
-
|
|
281
|
-
```typescript copy
|
|
282
|
-
// List all indexes
|
|
283
|
-
const allIndexes = await storage.listIndexes();
|
|
284
|
-
console.log(allIndexes);
|
|
285
|
-
// [
|
|
286
|
-
// {
|
|
287
|
-
// name: 'mastra_threads_pkey',
|
|
288
|
-
// table: 'mastra_threads',
|
|
289
|
-
// columns: ['id'],
|
|
290
|
-
// unique: true,
|
|
291
|
-
// size: '16 KB',
|
|
292
|
-
// definition: 'CREATE UNIQUE INDEX...'
|
|
293
|
-
// },
|
|
294
|
-
// ...
|
|
295
|
-
// ]
|
|
296
|
-
|
|
297
|
-
// List indexes for specific table
|
|
298
|
-
const threadIndexes = await storage.listIndexes("mastra_threads");
|
|
299
|
-
|
|
300
|
-
// Get detailed statistics for an index
|
|
301
|
-
const stats = await storage.describeIndex("idx_threads_resource");
|
|
302
|
-
console.log(stats);
|
|
303
|
-
// {
|
|
304
|
-
// name: 'idx_threads_resource',
|
|
305
|
-
// table: 'mastra_threads',
|
|
306
|
-
// columns: ['resourceId', 'createdAt'],
|
|
307
|
-
// unique: false,
|
|
308
|
-
// size: '128 KB',
|
|
309
|
-
// definition: 'CREATE INDEX idx_threads_resource...',
|
|
310
|
-
// method: 'btree',
|
|
311
|
-
// scans: 1542, // Number of index scans
|
|
312
|
-
// tuples_read: 45230, // Tuples read via index
|
|
313
|
-
// tuples_fetched: 12050 // Tuples fetched via index
|
|
314
|
-
// }
|
|
315
|
-
|
|
316
|
-
// Drop an index
|
|
317
|
-
await storage.dropIndex("idx_threads_status");
|
|
318
|
-
```
|
|
319
|
-
|
|
320
440
|
### Schema-Specific Indexes
|
|
321
441
|
|
|
322
|
-
When using custom schemas,
|
|
442
|
+
When using custom schemas, index names are prefixed with the schema name:
|
|
323
443
|
|
|
324
|
-
```typescript
|
|
444
|
+
```typescript
|
|
325
445
|
const storage = new PostgresStore({
|
|
326
446
|
id: 'pg-storage',
|
|
327
447
|
connectionString: process.env.DATABASE_URL,
|
|
328
448
|
schemaName: "custom_schema",
|
|
449
|
+
indexes: [
|
|
450
|
+
{
|
|
451
|
+
name: "idx_threads_status",
|
|
452
|
+
table: "mastra_threads",
|
|
453
|
+
columns: ["status"],
|
|
454
|
+
},
|
|
455
|
+
],
|
|
329
456
|
});
|
|
330
457
|
|
|
331
458
|
// Creates index as: custom_schema_idx_threads_status
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
### Managing Indexes via SQL
|
|
462
|
+
|
|
463
|
+
For advanced index management (listing, dropping, analyzing), use direct SQL queries via the `db` accessor:
|
|
464
|
+
|
|
465
|
+
```typescript
|
|
466
|
+
// List indexes for a table
|
|
467
|
+
const indexes = await storage.db.any(`
|
|
468
|
+
SELECT indexname, indexdef
|
|
469
|
+
FROM pg_indexes
|
|
470
|
+
WHERE tablename = 'mastra_messages'
|
|
471
|
+
`);
|
|
472
|
+
|
|
473
|
+
// Drop an index
|
|
474
|
+
await storage.db.none('DROP INDEX IF EXISTS idx_my_custom_index');
|
|
475
|
+
|
|
476
|
+
// Analyze index usage
|
|
477
|
+
const stats = await storage.db.one(`
|
|
478
|
+
SELECT idx_scan, idx_tup_read
|
|
479
|
+
FROM pg_stat_user_indexes
|
|
480
|
+
WHERE indexrelname = 'mastra_messages_thread_id_createdat_idx'
|
|
481
|
+
`);
|
|
337
482
|
```
|
|
338
483
|
|
|
339
484
|
### Index Types and Use Cases
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Reference: Upstash Storage | Storage"
|
|
3
3
|
description: Documentation for the Upstash storage implementation in Mastra.
|
|
4
|
+
packages:
|
|
5
|
+
- "@mastra/core"
|
|
6
|
+
- "@mastra/memory"
|
|
7
|
+
- "@mastra/upstash"
|
|
4
8
|
---
|
|
5
9
|
|
|
6
10
|
# Upstash Storage
|
|
@@ -15,13 +19,13 @@ The Upstash storage implementation provides a serverless-friendly storage soluti
|
|
|
15
19
|
|
|
16
20
|
## Installation
|
|
17
21
|
|
|
18
|
-
```bash
|
|
22
|
+
```bash
|
|
19
23
|
npm install @mastra/upstash@beta
|
|
20
24
|
```
|
|
21
25
|
|
|
22
26
|
## Usage
|
|
23
27
|
|
|
24
|
-
```typescript
|
|
28
|
+
```typescript
|
|
25
29
|
import { UpstashStore } from "@mastra/upstash";
|
|
26
30
|
|
|
27
31
|
const storage = new UpstashStore({
|
|
@@ -91,3 +95,75 @@ For optimal performance:
|
|
|
91
95
|
- Use appropriate key prefixes to organize data
|
|
92
96
|
- Monitor Redis memory usage
|
|
93
97
|
- Consider data expiration policies if needed
|
|
98
|
+
|
|
99
|
+
## Usage Example
|
|
100
|
+
|
|
101
|
+
### Adding memory to an agent
|
|
102
|
+
|
|
103
|
+
To add Upstash memory to an agent use the `Memory` class and create a new `storage` key using `UpstashStore` and a new `vector` key using `UpstashVector`. The configuration can point to either a remote service or a local setup.
|
|
104
|
+
|
|
105
|
+
```typescript title="src/mastra/agents/example-upstash-agent.ts"
|
|
106
|
+
import { Memory } from "@mastra/memory";
|
|
107
|
+
import { Agent } from "@mastra/core/agent";
|
|
108
|
+
import { UpstashStore } from "@mastra/upstash";
|
|
109
|
+
|
|
110
|
+
export const upstashAgent = new Agent({
|
|
111
|
+
id: "upstash-agent",
|
|
112
|
+
name: "Upstash Agent",
|
|
113
|
+
instructions:
|
|
114
|
+
"You are an AI agent with the ability to automatically recall memories from previous interactions.",
|
|
115
|
+
model: "openai/gpt-5.1",
|
|
116
|
+
memory: new Memory({
|
|
117
|
+
storage: new UpstashStore({
|
|
118
|
+
id: 'upstash-agent-storage',
|
|
119
|
+
url: process.env.UPSTASH_REDIS_REST_URL!,
|
|
120
|
+
token: process.env.UPSTASH_REDIS_REST_TOKEN!,
|
|
121
|
+
}),
|
|
122
|
+
options: {
|
|
123
|
+
generateTitle: true, // Explicitly enable automatic title generation
|
|
124
|
+
},
|
|
125
|
+
}),
|
|
126
|
+
});
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### Using the agent
|
|
130
|
+
|
|
131
|
+
Use `memoryOptions` to scope recall for this request. Set `lastMessages: 5` to limit recency-based recall, and use `semanticRecall` to fetch the `topK: 3` most relevant messages, including `messageRange: 2` neighboring messages for context around each match.
|
|
132
|
+
|
|
133
|
+
```typescript title="src/test-upstash-agent.ts"
|
|
134
|
+
import "dotenv/config";
|
|
135
|
+
|
|
136
|
+
import { mastra } from "./mastra";
|
|
137
|
+
|
|
138
|
+
const threadId = "123";
|
|
139
|
+
const resourceId = "user-456";
|
|
140
|
+
|
|
141
|
+
const agent = mastra.getAgent("upstashAgent");
|
|
142
|
+
|
|
143
|
+
const message = await agent.stream("My name is Mastra", {
|
|
144
|
+
memory: {
|
|
145
|
+
thread: threadId,
|
|
146
|
+
resource: resourceId,
|
|
147
|
+
},
|
|
148
|
+
});
|
|
149
|
+
|
|
150
|
+
await message.textStream.pipeTo(new WritableStream());
|
|
151
|
+
|
|
152
|
+
const stream = await agent.stream("What's my name?", {
|
|
153
|
+
memory: {
|
|
154
|
+
thread: threadId,
|
|
155
|
+
resource: resourceId,
|
|
156
|
+
},
|
|
157
|
+
memoryOptions: {
|
|
158
|
+
lastMessages: 5,
|
|
159
|
+
semanticRecall: {
|
|
160
|
+
topK: 3,
|
|
161
|
+
messageRange: 2,
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
for await (const chunk of stream.textStream) {
|
|
167
|
+
process.stdout.write(chunk);
|
|
168
|
+
}
|
|
169
|
+
```
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
---
|
|
2
2
|
title: "Reference: ChunkType | Streaming"
|
|
3
3
|
description: "Documentation for the ChunkType type used in Mastra streaming responses, defining all possible chunk types and their payloads."
|
|
4
|
+
packages:
|
|
5
|
+
- "@mastra/core"
|
|
4
6
|
---
|
|
5
7
|
|
|
6
8
|
import PropertiesTable from "@site/src/components/PropertiesTable";
|
|
@@ -1013,6 +1015,11 @@ Stream has completed successfully.
|
|
|
1013
1015
|
type: "object",
|
|
1014
1016
|
description: "Message history",
|
|
1015
1017
|
},
|
|
1018
|
+
{
|
|
1019
|
+
name: "response",
|
|
1020
|
+
type: "object",
|
|
1021
|
+
description: "Response metadata and messages from the model provider",
|
|
1022
|
+
},
|
|
1016
1023
|
],
|
|
1017
1024
|
},
|
|
1018
1025
|
],
|
|
@@ -1097,7 +1104,7 @@ Emitted when using output generation with defined schemas. Contains partial or c
|
|
|
1097
1104
|
},
|
|
1098
1105
|
{
|
|
1099
1106
|
name: "object",
|
|
1100
|
-
type: "
|
|
1107
|
+
type: "Partial<OUTPUT>",
|
|
1101
1108
|
description:
|
|
1102
1109
|
"Partial or complete structured data matching the defined schema. The type is determined by the OUTPUT schema parameter.",
|
|
1103
1110
|
},
|
|
@@ -1255,7 +1262,7 @@ Contains monitoring and observability data from agent execution. Can include wor
|
|
|
1255
1262
|
|
|
1256
1263
|
### tripwire
|
|
1257
1264
|
|
|
1258
|
-
Emitted when the stream is forcibly terminated due to content being blocked by
|
|
1265
|
+
Emitted when the stream is forcibly terminated due to content being blocked by a processor. This acts as a safety mechanism to prevent harmful or inappropriate content from being streamed. The payload includes information about why the content was blocked and whether a retry was requested.
|
|
1259
1266
|
|
|
1260
1267
|
<PropertiesTable
|
|
1261
1268
|
content={[
|
|
@@ -1274,11 +1281,32 @@ Emitted when the stream is forcibly terminated due to content being blocked by o
|
|
|
1274
1281
|
type: "TripwirePayload",
|
|
1275
1282
|
parameters: [
|
|
1276
1283
|
{
|
|
1277
|
-
name: "
|
|
1284
|
+
name: "reason",
|
|
1278
1285
|
type: "string",
|
|
1279
1286
|
description:
|
|
1280
1287
|
"Explanation of why the content was blocked (e.g., 'Output processor blocked content')",
|
|
1281
1288
|
},
|
|
1289
|
+
{
|
|
1290
|
+
name: "retry",
|
|
1291
|
+
type: "boolean",
|
|
1292
|
+
isOptional: true,
|
|
1293
|
+
description:
|
|
1294
|
+
"Whether the processor requested a retry of the step",
|
|
1295
|
+
},
|
|
1296
|
+
{
|
|
1297
|
+
name: "metadata",
|
|
1298
|
+
type: "unknown",
|
|
1299
|
+
isOptional: true,
|
|
1300
|
+
description:
|
|
1301
|
+
"Additional metadata from the processor (e.g., scores, categories)",
|
|
1302
|
+
},
|
|
1303
|
+
{
|
|
1304
|
+
name: "processorId",
|
|
1305
|
+
type: "string",
|
|
1306
|
+
isOptional: true,
|
|
1307
|
+
description:
|
|
1308
|
+
"ID of the processor that triggered the tripwire",
|
|
1309
|
+
},
|
|
1282
1310
|
],
|
|
1283
1311
|
},
|
|
1284
1312
|
],
|