@mastra/mcp-docs-server 1.0.0-beta.0 → 1.0.0-beta.10

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 (496) hide show
  1. package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +1 -15
  2. package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +1 -7
  3. package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +201 -1
  4. package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +1 -55
  5. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +201 -1
  6. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +250 -50
  7. package/.docs/organized/changelogs/%40mastra%2Fastra.md +201 -1
  8. package/.docs/organized/changelogs/%40mastra%2Fauth.md +6 -0
  9. package/.docs/organized/changelogs/%40mastra%2Fchroma.md +201 -1
  10. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +201 -1
  11. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +201 -1
  12. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +201 -1
  13. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +201 -1
  14. package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +26 -0
  15. package/.docs/organized/changelogs/%40mastra%2Fconvex.md +89 -0
  16. package/.docs/organized/changelogs/%40mastra%2Fcore.md +396 -196
  17. package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +201 -1
  18. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +201 -1
  19. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +201 -1
  20. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +201 -1
  21. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +201 -1
  22. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +200 -0
  23. package/.docs/organized/changelogs/%40mastra%2Fduckdb.md +42 -0
  24. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +201 -1
  25. package/.docs/organized/changelogs/%40mastra%2Felasticsearch.md +61 -0
  26. package/.docs/organized/changelogs/%40mastra%2Fevals.md +201 -1
  27. package/.docs/organized/changelogs/%40mastra%2Flance.md +201 -1
  28. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +201 -1
  29. package/.docs/organized/changelogs/%40mastra%2Floggers.md +201 -1
  30. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +201 -1
  31. package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +201 -1
  32. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +201 -1
  33. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +201 -1
  34. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +201 -1
  35. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +201 -1
  36. package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +201 -1
  37. package/.docs/organized/changelogs/%40mastra%2Fpg.md +201 -1
  38. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +201 -1
  39. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +251 -51
  40. package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +201 -1
  41. package/.docs/organized/changelogs/%40mastra%2Frag.md +201 -1
  42. package/.docs/organized/changelogs/%40mastra%2Freact.md +128 -1
  43. package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +18 -0
  44. package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +42 -0
  45. package/.docs/organized/changelogs/%40mastra%2Fserver.md +251 -51
  46. package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +201 -1
  47. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +201 -1
  48. package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +201 -1
  49. package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +201 -1
  50. package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +201 -1
  51. package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +201 -1
  52. package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +201 -1
  53. package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +92 -1
  54. package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +67 -1
  55. package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +201 -1
  56. package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +201 -1
  57. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +201 -1
  58. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +201 -1
  59. package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +201 -1
  60. package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +201 -1
  61. package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +201 -1
  62. package/.docs/organized/changelogs/create-mastra.md +201 -1
  63. package/.docs/organized/changelogs/mastra.md +201 -1
  64. package/.docs/organized/code-examples/agui.md +1 -0
  65. package/.docs/organized/code-examples/ai-elements.md +2 -2
  66. package/.docs/organized/code-examples/ai-sdk-useChat.md +2 -2
  67. package/.docs/organized/code-examples/ai-sdk-v5.md +3 -2
  68. package/.docs/organized/code-examples/assistant-ui.md +2 -2
  69. package/.docs/organized/code-examples/bird-checker-with-express.md +1 -1
  70. package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +2 -2
  71. package/.docs/organized/code-examples/bird-checker-with-nextjs.md +2 -2
  72. package/.docs/organized/code-examples/client-side-tools.md +1 -1
  73. package/.docs/organized/code-examples/crypto-chatbot.md +2 -2
  74. package/.docs/organized/code-examples/fireworks-r1.md +1 -1
  75. package/.docs/organized/code-examples/heads-up-game.md +1 -1
  76. package/.docs/organized/code-examples/mcp-configuration.md +0 -3
  77. package/.docs/organized/code-examples/mcp-server-adapters.md +720 -0
  78. package/.docs/organized/code-examples/memory-per-resource-example.md +1 -1
  79. package/.docs/organized/code-examples/memory-with-processors.md +1 -1
  80. package/.docs/organized/code-examples/openapi-spec-writer.md +1 -1
  81. package/.docs/organized/code-examples/processors-with-ai-sdk.md +14 -0
  82. package/.docs/organized/code-examples/quick-start.md +2 -2
  83. package/.docs/organized/code-examples/server-app-access.md +342 -0
  84. package/.docs/organized/code-examples/server-express-adapter.md +87 -0
  85. package/.docs/organized/code-examples/server-hono-adapter.md +85 -0
  86. package/.docs/organized/code-examples/stock-price-tool.md +1 -21
  87. package/.docs/organized/code-examples/workflow-ai-recruiter.md +1 -1
  88. package/.docs/organized/code-examples/workflow-with-inline-steps.md +1 -1
  89. package/.docs/organized/code-examples/workflow-with-memory.md +1 -1
  90. package/.docs/organized/code-examples/workflow-with-separate-steps.md +1 -1
  91. package/.docs/organized/code-examples/workflow-with-suspend-resume.md +1 -1
  92. package/.docs/raw/agents/adding-voice.mdx +56 -10
  93. package/.docs/raw/agents/agent-approval.mdx +189 -0
  94. package/.docs/raw/agents/agent-memory.mdx +2 -2
  95. package/.docs/raw/agents/guardrails.mdx +27 -24
  96. package/.docs/raw/agents/networks.mdx +3 -3
  97. package/.docs/raw/agents/overview.mdx +19 -168
  98. package/.docs/raw/agents/processors.mdx +279 -0
  99. package/.docs/raw/agents/structured-output.mdx +224 -0
  100. package/.docs/raw/agents/using-tools.mdx +14 -14
  101. package/.docs/raw/auth/auth0.mdx +2 -2
  102. package/.docs/raw/auth/clerk.mdx +2 -2
  103. package/.docs/raw/auth/firebase.mdx +2 -2
  104. package/.docs/raw/auth/index.mdx +1 -1
  105. package/.docs/raw/auth/jwt.mdx +2 -2
  106. package/.docs/raw/auth/supabase.mdx +2 -2
  107. package/.docs/raw/auth/workos.mdx +2 -2
  108. package/.docs/raw/community/contributing-templates.mdx +1 -1
  109. package/.docs/raw/community/discord.mdx +2 -2
  110. package/.docs/raw/community/licensing.mdx +1 -1
  111. package/.docs/raw/course/01-first-agent/03-verifying-installation.md +1 -1
  112. package/.docs/raw/course/01-first-agent/05-running-playground.md +5 -5
  113. package/.docs/raw/course/01-first-agent/09-testing-your-agent.md +3 -3
  114. package/.docs/raw/course/01-first-agent/13-testing-your-tool.md +3 -3
  115. package/.docs/raw/course/01-first-agent/17-testing-memory.md +2 -2
  116. package/.docs/raw/course/02-agent-tools-mcp/02-installing-mcp.md +1 -1
  117. package/.docs/raw/course/03-agent-memory/03-installing-memory.md +1 -1
  118. package/.docs/raw/course/04-workflows/07-using-playground.md +1 -1
  119. package/.docs/raw/deployment/{server-deployment.mdx → building-mastra.mdx} +4 -4
  120. package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +3 -3
  121. package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +4 -4
  122. package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +4 -4
  123. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/cloudflare-deployer.mdx +2 -2
  124. package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +3 -3
  125. package/.docs/raw/deployment/cloud-providers/index.mdx +26 -29
  126. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/netlify-deployer.mdx +46 -15
  127. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/vercel-deployer.mdx +2 -2
  128. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/dashboard.mdx +3 -3
  129. package/.docs/raw/deployment/mastra-cloud/observability.mdx +53 -0
  130. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/overview.mdx +3 -3
  131. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/setting-up.mdx +4 -4
  132. package/.docs/raw/deployment/monorepo.mdx +3 -3
  133. package/.docs/raw/deployment/overview.mdx +7 -7
  134. package/.docs/raw/deployment/web-framework.mdx +6 -6
  135. package/.docs/raw/evals/{off-the-shelf-scorers.mdx → built-in-scorers.mdx} +17 -15
  136. package/.docs/raw/evals/custom-scorers.mdx +4 -6
  137. package/.docs/raw/evals/overview.mdx +6 -7
  138. package/.docs/raw/evals/running-in-ci.mdx +2 -4
  139. package/.docs/raw/getting-started/{installation.mdx → manual-install.mdx} +15 -89
  140. package/.docs/raw/getting-started/mcp-docs-server.mdx +6 -6
  141. package/.docs/raw/getting-started/project-structure.mdx +2 -2
  142. package/.docs/raw/getting-started/start.mdx +72 -0
  143. package/.docs/raw/getting-started/studio.mdx +8 -6
  144. package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +147 -0
  145. package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +627 -0
  146. package/.docs/raw/{frameworks/agentic-uis → guides/build-your-ui}/assistant-ui.mdx +72 -20
  147. package/.docs/raw/guides/build-your-ui/copilotkit.mdx +206 -0
  148. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/astro.mdx +28 -30
  149. package/.docs/raw/{frameworks/servers → guides/getting-started}/express.mdx +4 -5
  150. package/.docs/raw/guides/getting-started/next-js.mdx +276 -0
  151. package/.docs/raw/guides/getting-started/quickstart.mdx +97 -0
  152. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/sveltekit.mdx +28 -30
  153. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/vite-react.mdx +12 -12
  154. package/.docs/raw/guides/guide/ai-recruiter.mdx +2 -3
  155. package/.docs/raw/guides/guide/chef-michel.mdx +2 -3
  156. package/.docs/raw/guides/guide/notes-mcp-server.mdx +3 -3
  157. package/.docs/raw/guides/guide/research-assistant.mdx +8 -18
  158. package/.docs/raw/guides/guide/stock-agent.mdx +4 -6
  159. package/.docs/raw/guides/guide/web-search.mdx +12 -10
  160. package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +421 -0
  161. package/.docs/raw/guides/index.mdx +3 -35
  162. package/.docs/raw/guides/migrations/agentnetwork.mdx +4 -4
  163. package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +119 -0
  164. package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +56 -6
  165. package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +42 -2
  166. package/.docs/raw/guides/migrations/upgrade-to-v1/evals.mdx +31 -1
  167. package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +29 -5
  168. package/.docs/raw/guides/migrations/upgrade-to-v1/mcp.mdx +3 -3
  169. package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +28 -0
  170. package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +59 -37
  171. package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +80 -0
  172. package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +70 -5
  173. package/.docs/raw/guides/migrations/upgrade-to-v1/tracing.mdx +13 -13
  174. package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +25 -1
  175. package/.docs/raw/guides/migrations/upgrade-to-v1/voice.mdx +1 -1
  176. package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +175 -2
  177. package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +2 -2
  178. package/.docs/raw/index.mdx +4 -4
  179. package/.docs/raw/mcp/overview.mdx +358 -0
  180. package/.docs/raw/mcp/publishing-mcp-server.mdx +139 -0
  181. package/.docs/raw/memory/conversation-history.mdx +1 -1
  182. package/.docs/raw/memory/memory-processors.mdx +265 -80
  183. package/.docs/raw/memory/overview.mdx +3 -3
  184. package/.docs/raw/memory/semantic-recall.mdx +10 -10
  185. package/.docs/raw/memory/storage/memory-with-libsql.mdx +5 -10
  186. package/.docs/raw/memory/storage/memory-with-mongodb.mdx +150 -0
  187. package/.docs/raw/memory/storage/memory-with-pg.mdx +5 -10
  188. package/.docs/raw/memory/storage/memory-with-upstash.mdx +5 -10
  189. package/.docs/raw/memory/threads-and-resources.mdx +4 -4
  190. package/.docs/raw/memory/working-memory.mdx +16 -8
  191. package/.docs/raw/{logging.mdx → observability/logging.mdx} +8 -8
  192. package/.docs/raw/observability/overview.mdx +5 -6
  193. package/.docs/raw/observability/tracing/bridges/otel.mdx +200 -0
  194. package/.docs/raw/observability/tracing/exporters/arize.mdx +39 -3
  195. package/.docs/raw/observability/tracing/exporters/braintrust.mdx +22 -3
  196. package/.docs/raw/observability/tracing/exporters/cloud.mdx +4 -4
  197. package/.docs/raw/observability/tracing/exporters/default.mdx +6 -6
  198. package/.docs/raw/observability/tracing/exporters/langfuse.mdx +86 -3
  199. package/.docs/raw/observability/tracing/exporters/langsmith.mdx +15 -3
  200. package/.docs/raw/observability/tracing/exporters/otel.mdx +128 -30
  201. package/.docs/raw/observability/tracing/exporters/posthog.mdx +127 -0
  202. package/.docs/raw/observability/tracing/overview.mdx +100 -29
  203. package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +2 -3
  204. package/.docs/raw/rag/chunking-and-embedding.mdx +16 -17
  205. package/.docs/raw/rag/overview.mdx +5 -4
  206. package/.docs/raw/rag/retrieval.mdx +44 -39
  207. package/.docs/raw/rag/vector-databases.mdx +94 -3
  208. package/.docs/raw/reference/agents/agent.mdx +10 -14
  209. package/.docs/raw/reference/agents/generate.mdx +67 -99
  210. package/.docs/raw/reference/agents/generateLegacy.mdx +3 -3
  211. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +1 -1
  212. package/.docs/raw/reference/agents/getDefaultOptions.mdx +1 -1
  213. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +1 -1
  214. package/.docs/raw/reference/agents/getDescription.mdx +1 -1
  215. package/.docs/raw/reference/agents/getInstructions.mdx +1 -1
  216. package/.docs/raw/reference/agents/getLLM.mdx +2 -2
  217. package/.docs/raw/reference/agents/getMemory.mdx +1 -1
  218. package/.docs/raw/reference/agents/getModel.mdx +1 -1
  219. package/.docs/raw/reference/agents/getTools.mdx +69 -0
  220. package/.docs/raw/reference/agents/getVoice.mdx +1 -1
  221. package/.docs/raw/reference/agents/listAgents.mdx +1 -1
  222. package/.docs/raw/reference/agents/listScorers.mdx +1 -1
  223. package/.docs/raw/reference/agents/listTools.mdx +2 -2
  224. package/.docs/raw/reference/agents/listWorkflows.mdx +1 -1
  225. package/.docs/raw/reference/agents/network.mdx +33 -72
  226. package/.docs/raw/reference/ai-sdk/chat-route.mdx +127 -0
  227. package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +117 -0
  228. package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +64 -0
  229. package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +116 -0
  230. package/.docs/raw/reference/ai-sdk/network-route.mdx +99 -0
  231. package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +289 -0
  232. package/.docs/raw/reference/ai-sdk/with-mastra.mdx +119 -0
  233. package/.docs/raw/reference/ai-sdk/workflow-route.mdx +110 -0
  234. package/.docs/raw/reference/auth/auth0.mdx +1 -1
  235. package/.docs/raw/reference/auth/clerk.mdx +1 -1
  236. package/.docs/raw/reference/auth/firebase.mdx +1 -1
  237. package/.docs/raw/reference/auth/jwt.mdx +1 -1
  238. package/.docs/raw/reference/auth/supabase.mdx +1 -1
  239. package/.docs/raw/reference/auth/workos.mdx +1 -1
  240. package/.docs/raw/reference/cli/create-mastra.mdx +11 -11
  241. package/.docs/raw/reference/cli/mastra.mdx +25 -12
  242. package/.docs/raw/reference/client-js/agents.mdx +252 -68
  243. package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
  244. package/.docs/raw/reference/client-js/logs.mdx +1 -1
  245. package/.docs/raw/reference/client-js/mastra-client.mdx +4 -4
  246. package/.docs/raw/reference/client-js/memory.mdx +48 -2
  247. package/.docs/raw/reference/client-js/observability.mdx +1 -1
  248. package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
  249. package/.docs/raw/reference/client-js/tools.mdx +1 -1
  250. package/.docs/raw/reference/client-js/vectors.mdx +1 -1
  251. package/.docs/raw/reference/client-js/workflows.mdx +93 -64
  252. package/.docs/raw/reference/core/addGateway.mdx +59 -0
  253. package/.docs/raw/reference/core/getAgent.mdx +1 -1
  254. package/.docs/raw/reference/core/getAgentById.mdx +1 -1
  255. package/.docs/raw/reference/core/getDeployer.mdx +1 -1
  256. package/.docs/raw/reference/core/getGateway.mdx +59 -0
  257. package/.docs/raw/reference/core/getGatewayById.mdx +62 -0
  258. package/.docs/raw/reference/core/getLogger.mdx +3 -3
  259. package/.docs/raw/reference/core/getMCPServer.mdx +4 -4
  260. package/.docs/raw/reference/core/getMCPServerById.mdx +5 -5
  261. package/.docs/raw/reference/core/getMemory.mdx +73 -0
  262. package/.docs/raw/reference/core/getScorer.mdx +1 -1
  263. package/.docs/raw/reference/core/getScorerById.mdx +1 -1
  264. package/.docs/raw/reference/core/getServer.mdx +2 -2
  265. package/.docs/raw/reference/core/getStorage.mdx +1 -1
  266. package/.docs/raw/reference/core/getStoredAgentById.mdx +183 -0
  267. package/.docs/raw/reference/core/getTelemetry.mdx +3 -3
  268. package/.docs/raw/reference/core/getVector.mdx +1 -1
  269. package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
  270. package/.docs/raw/reference/core/listAgents.mdx +1 -1
  271. package/.docs/raw/reference/core/listGateways.mdx +53 -0
  272. package/.docs/raw/reference/core/listLogs.mdx +3 -3
  273. package/.docs/raw/reference/core/listLogsByRunId.mdx +3 -3
  274. package/.docs/raw/reference/core/listMCPServers.mdx +5 -5
  275. package/.docs/raw/reference/core/listMemory.mdx +70 -0
  276. package/.docs/raw/reference/core/listScorers.mdx +1 -1
  277. package/.docs/raw/reference/core/listStoredAgents.mdx +151 -0
  278. package/.docs/raw/reference/core/listVectors.mdx +1 -1
  279. package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
  280. package/.docs/raw/reference/core/mastra-class.mdx +17 -1
  281. package/.docs/raw/reference/core/mastra-model-gateway.mdx +227 -0
  282. package/.docs/raw/reference/core/setLogger.mdx +3 -3
  283. package/.docs/raw/reference/core/setStorage.mdx +1 -1
  284. package/.docs/raw/reference/core/setTelemetry.mdx +3 -3
  285. package/.docs/raw/reference/deployer/cloudflare.mdx +1 -1
  286. package/.docs/raw/reference/deployer/deployer.mdx +1 -1
  287. package/.docs/raw/reference/deployer/netlify.mdx +2 -3
  288. package/.docs/raw/reference/deployer/vercel.mdx +1 -1
  289. package/.docs/raw/reference/evals/answer-relevancy.mdx +29 -99
  290. package/.docs/raw/reference/evals/answer-similarity.mdx +13 -259
  291. package/.docs/raw/reference/evals/bias.mdx +30 -88
  292. package/.docs/raw/reference/evals/completeness.mdx +32 -91
  293. package/.docs/raw/reference/evals/content-similarity.mdx +29 -89
  294. package/.docs/raw/reference/evals/context-precision.mdx +29 -131
  295. package/.docs/raw/reference/evals/context-relevance.mdx +12 -12
  296. package/.docs/raw/reference/evals/create-scorer.mdx +59 -50
  297. package/.docs/raw/reference/evals/faithfulness.mdx +29 -102
  298. package/.docs/raw/reference/evals/hallucination.mdx +29 -104
  299. package/.docs/raw/reference/evals/keyword-coverage.mdx +29 -108
  300. package/.docs/raw/reference/evals/mastra-scorer.mdx +3 -1
  301. package/.docs/raw/reference/evals/noise-sensitivity.mdx +12 -12
  302. package/.docs/raw/reference/evals/prompt-alignment.mdx +16 -16
  303. package/.docs/raw/reference/evals/run-evals.mdx +1 -1
  304. package/.docs/raw/reference/evals/scorer-utils.mdx +362 -0
  305. package/.docs/raw/reference/evals/textual-difference.mdx +28 -101
  306. package/.docs/raw/reference/evals/tone-consistency.mdx +26 -99
  307. package/.docs/raw/reference/evals/tool-call-accuracy.mdx +8 -8
  308. package/.docs/raw/reference/evals/toxicity.mdx +30 -93
  309. package/.docs/raw/reference/index.mdx +1 -0
  310. package/.docs/raw/reference/logging/pino-logger.mdx +2 -2
  311. package/.docs/raw/reference/memory/createThread.mdx +1 -1
  312. package/.docs/raw/reference/memory/deleteMessages.mdx +1 -1
  313. package/.docs/raw/reference/memory/getThreadById.mdx +1 -1
  314. package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +1 -1
  315. package/.docs/raw/reference/memory/memory-class.mdx +6 -8
  316. package/.docs/raw/reference/memory/query.mdx +1 -1
  317. package/.docs/raw/reference/memory/recall.mdx +1 -1
  318. package/.docs/raw/reference/observability/tracing/bridges/otel.mdx +177 -0
  319. package/.docs/raw/reference/observability/tracing/configuration.mdx +12 -16
  320. package/.docs/raw/reference/observability/tracing/exporters/arize.mdx +31 -2
  321. package/.docs/raw/reference/observability/tracing/exporters/braintrust.mdx +1 -1
  322. package/.docs/raw/reference/observability/tracing/exporters/cloud-exporter.mdx +9 -9
  323. package/.docs/raw/reference/observability/tracing/exporters/console-exporter.mdx +9 -9
  324. package/.docs/raw/reference/observability/tracing/exporters/default-exporter.mdx +9 -9
  325. package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +44 -1
  326. package/.docs/raw/reference/observability/tracing/exporters/langsmith.mdx +18 -2
  327. package/.docs/raw/reference/observability/tracing/exporters/otel.mdx +34 -44
  328. package/.docs/raw/reference/observability/tracing/exporters/posthog.mdx +132 -0
  329. package/.docs/raw/reference/observability/tracing/instances.mdx +8 -12
  330. package/.docs/raw/reference/observability/tracing/interfaces.mdx +36 -11
  331. package/.docs/raw/reference/observability/tracing/processors/sensitive-data-filter.mdx +1 -1
  332. package/.docs/raw/reference/observability/tracing/spans.mdx +7 -11
  333. package/.docs/raw/reference/processors/batch-parts-processor.mdx +10 -4
  334. package/.docs/raw/reference/processors/language-detector.mdx +19 -6
  335. package/.docs/raw/reference/processors/message-history-processor.mdx +131 -0
  336. package/.docs/raw/reference/processors/moderation-processor.mdx +21 -8
  337. package/.docs/raw/reference/processors/pii-detector.mdx +21 -8
  338. package/.docs/raw/reference/processors/processor-interface.mdx +502 -0
  339. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +19 -6
  340. package/.docs/raw/reference/processors/semantic-recall-processor.mdx +197 -0
  341. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +12 -7
  342. package/.docs/raw/reference/processors/token-limiter-processor.mdx +11 -5
  343. package/.docs/raw/reference/processors/tool-call-filter.mdx +125 -0
  344. package/.docs/raw/reference/processors/unicode-normalizer.mdx +10 -4
  345. package/.docs/raw/reference/processors/working-memory-processor.mdx +221 -0
  346. package/.docs/raw/reference/rag/chunk.mdx +1 -1
  347. package/.docs/raw/reference/rag/database-config.mdx +1 -1
  348. package/.docs/raw/reference/rag/document.mdx +1 -1
  349. package/.docs/raw/reference/rag/embeddings.mdx +6 -6
  350. package/.docs/raw/reference/rag/extract-params.mdx +1 -1
  351. package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
  352. package/.docs/raw/reference/rag/metadata-filters.mdx +1 -1
  353. package/.docs/raw/reference/rag/rerank.mdx +2 -3
  354. package/.docs/raw/reference/rag/rerankWithScorer.mdx +1 -2
  355. package/.docs/raw/reference/server/create-route.mdx +328 -0
  356. package/.docs/raw/reference/server/express-adapter.mdx +260 -0
  357. package/.docs/raw/reference/server/hono-adapter.mdx +242 -0
  358. package/.docs/raw/reference/server/mastra-server.mdx +345 -0
  359. package/.docs/raw/reference/server/routes.mdx +250 -0
  360. package/.docs/raw/reference/storage/cloudflare-d1.mdx +39 -2
  361. package/.docs/raw/reference/storage/cloudflare.mdx +2 -2
  362. package/.docs/raw/reference/storage/convex.mdx +164 -0
  363. package/.docs/raw/reference/storage/dynamodb.mdx +4 -4
  364. package/.docs/raw/reference/storage/lance.mdx +35 -2
  365. package/.docs/raw/reference/storage/libsql.mdx +39 -2
  366. package/.docs/raw/reference/storage/mongodb.mdx +41 -2
  367. package/.docs/raw/reference/storage/mssql.mdx +39 -2
  368. package/.docs/raw/reference/storage/postgresql.mdx +39 -2
  369. package/.docs/raw/reference/storage/upstash.mdx +2 -2
  370. package/.docs/raw/reference/streaming/ChunkType.mdx +2 -2
  371. package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +1 -1
  372. package/.docs/raw/reference/streaming/agents/stream.mdx +68 -95
  373. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +1 -1
  374. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +8 -10
  375. package/.docs/raw/reference/streaming/workflows/{resumeStreamVNext.mdx → resumeStream.mdx} +51 -11
  376. package/.docs/raw/reference/streaming/workflows/stream.mdx +84 -25
  377. package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +170 -0
  378. package/.docs/raw/reference/templates/overview.mdx +3 -6
  379. package/.docs/raw/reference/tools/client.mdx +2 -3
  380. package/.docs/raw/reference/tools/create-tool.mdx +135 -4
  381. package/.docs/raw/reference/tools/document-chunker-tool.mdx +1 -1
  382. package/.docs/raw/reference/tools/graph-rag-tool.mdx +7 -7
  383. package/.docs/raw/reference/tools/mcp-client.mdx +131 -23
  384. package/.docs/raw/reference/tools/mcp-server.mdx +56 -8
  385. package/.docs/raw/reference/tools/vector-query-tool.mdx +16 -17
  386. package/.docs/raw/reference/vectors/astra.mdx +1 -1
  387. package/.docs/raw/reference/vectors/chroma.mdx +82 -2
  388. package/.docs/raw/reference/vectors/convex.mdx +429 -0
  389. package/.docs/raw/reference/vectors/couchbase.mdx +33 -20
  390. package/.docs/raw/reference/vectors/duckdb.mdx +462 -0
  391. package/.docs/raw/reference/vectors/elasticsearch.mdx +310 -0
  392. package/.docs/raw/reference/vectors/lance.mdx +39 -23
  393. package/.docs/raw/reference/vectors/libsql.mdx +37 -4
  394. package/.docs/raw/reference/vectors/mongodb.mdx +43 -4
  395. package/.docs/raw/reference/vectors/opensearch.mdx +38 -17
  396. package/.docs/raw/reference/vectors/pg.mdx +44 -37
  397. package/.docs/raw/reference/vectors/pinecone.mdx +70 -3
  398. package/.docs/raw/reference/vectors/qdrant.mdx +37 -2
  399. package/.docs/raw/reference/vectors/s3vectors.mdx +2 -2
  400. package/.docs/raw/reference/vectors/turbopuffer.mdx +75 -1
  401. package/.docs/raw/reference/vectors/upstash.mdx +1 -1
  402. package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
  403. package/.docs/raw/reference/voice/azure.mdx +96 -81
  404. package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
  405. package/.docs/raw/reference/voice/composite-voice.mdx +72 -29
  406. package/.docs/raw/reference/voice/deepgram.mdx +1 -1
  407. package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
  408. package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
  409. package/.docs/raw/reference/voice/google.mdx +160 -21
  410. package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
  411. package/.docs/raw/reference/voice/murf.mdx +1 -1
  412. package/.docs/raw/reference/voice/openai-realtime.mdx +3 -3
  413. package/.docs/raw/reference/voice/openai.mdx +1 -1
  414. package/.docs/raw/reference/voice/playai.mdx +1 -1
  415. package/.docs/raw/reference/voice/sarvam.mdx +1 -1
  416. package/.docs/raw/reference/voice/speechify.mdx +1 -1
  417. package/.docs/raw/reference/voice/voice.addInstructions.mdx +3 -4
  418. package/.docs/raw/reference/voice/voice.addTools.mdx +2 -2
  419. package/.docs/raw/reference/voice/voice.answer.mdx +2 -2
  420. package/.docs/raw/reference/voice/voice.close.mdx +2 -2
  421. package/.docs/raw/reference/voice/voice.connect.mdx +2 -2
  422. package/.docs/raw/reference/voice/voice.events.mdx +1 -1
  423. package/.docs/raw/reference/voice/voice.getSpeakers.mdx +1 -1
  424. package/.docs/raw/reference/voice/voice.listen.mdx +87 -53
  425. package/.docs/raw/reference/voice/voice.off.mdx +2 -2
  426. package/.docs/raw/reference/voice/voice.on.mdx +2 -2
  427. package/.docs/raw/reference/voice/voice.send.mdx +2 -2
  428. package/.docs/raw/reference/voice/voice.speak.mdx +76 -41
  429. package/.docs/raw/reference/voice/voice.updateConfig.mdx +2 -2
  430. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +1 -1
  431. package/.docs/raw/reference/workflows/run-methods/restart.mdx +142 -0
  432. package/.docs/raw/reference/workflows/run-methods/resume.mdx +45 -1
  433. package/.docs/raw/reference/workflows/run-methods/start.mdx +48 -4
  434. package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +310 -0
  435. package/.docs/raw/reference/workflows/run.mdx +28 -6
  436. package/.docs/raw/reference/workflows/step.mdx +65 -1
  437. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
  438. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
  439. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +1 -1
  440. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
  441. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
  442. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
  443. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +1 -1
  444. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
  445. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +1 -1
  446. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
  447. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
  448. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
  449. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
  450. package/.docs/raw/reference/workflows/workflow.mdx +21 -2
  451. package/.docs/raw/server-db/custom-adapters.mdx +386 -0
  452. package/.docs/raw/server-db/custom-api-routes.mdx +6 -6
  453. package/.docs/raw/server-db/mastra-client.mdx +7 -8
  454. package/.docs/raw/server-db/{production-server.mdx → mastra-server.mdx} +16 -8
  455. package/.docs/raw/server-db/middleware.mdx +31 -31
  456. package/.docs/raw/server-db/request-context.mdx +3 -4
  457. package/.docs/raw/server-db/server-adapters.mdx +312 -0
  458. package/.docs/raw/server-db/storage.mdx +12 -1
  459. package/.docs/raw/streaming/events.mdx +1 -1
  460. package/.docs/raw/streaming/overview.mdx +27 -16
  461. package/.docs/raw/streaming/tool-streaming.mdx +58 -19
  462. package/.docs/raw/streaming/workflow-streaming.mdx +6 -12
  463. package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -3
  464. package/.docs/raw/tools-mcp/mcp-overview.mdx +5 -7
  465. package/.docs/raw/tools-mcp/overview.mdx +1 -1
  466. package/.docs/raw/voice/overview.mdx +88 -41
  467. package/.docs/raw/voice/speech-to-speech.mdx +5 -5
  468. package/.docs/raw/voice/speech-to-text.mdx +3 -4
  469. package/.docs/raw/voice/text-to-speech.mdx +3 -4
  470. package/.docs/raw/workflows/agents-and-tools.mdx +43 -5
  471. package/.docs/raw/workflows/control-flow.mdx +186 -1
  472. package/.docs/raw/workflows/error-handling.mdx +5 -4
  473. package/.docs/raw/workflows/human-in-the-loop.mdx +160 -213
  474. package/.docs/raw/workflows/inngest-workflow.mdx +2 -2
  475. package/.docs/raw/workflows/input-data-mapping.mdx +1 -1
  476. package/.docs/raw/workflows/overview.mdx +67 -47
  477. package/.docs/raw/workflows/snapshots.mdx +5 -3
  478. package/.docs/raw/workflows/suspend-and-resume.mdx +121 -204
  479. package/.docs/raw/workflows/time-travel.mdx +313 -0
  480. package/.docs/raw/workflows/workflow-state.mdx +190 -0
  481. package/CHANGELOG.md +88 -0
  482. package/dist/{chunk-5NJC7NRO.js → chunk-4CM2BQNP.js} +24 -4
  483. package/dist/prepare-docs/package-changes.d.ts.map +1 -1
  484. package/dist/prepare-docs/prepare.js +1 -1
  485. package/dist/stdio.js +17 -19
  486. package/package.json +11 -15
  487. package/.docs/raw/deployment/serverless-platforms/index.mdx +0 -58
  488. package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +0 -688
  489. package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +0 -123
  490. package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +0 -382
  491. package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +0 -179
  492. package/.docs/raw/frameworks/web-frameworks/next-js.mdx +0 -379
  493. package/.docs/raw/getting-started/templates.mdx +0 -73
  494. package/.docs/raw/mastra-cloud/observability.mdx +0 -51
  495. package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +0 -47
  496. package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +0 -153
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Adding Voice to Agents | Agents | Mastra Docs"
2
+ title: "Adding Voice to Agents | Agents"
3
3
  ---
4
4
 
5
5
  # Adding Voice to Agents
@@ -15,7 +15,6 @@ import { createReadStream } from "fs";
15
15
  import path from "path";
16
16
  import { Agent } from "@mastra/core/agent";
17
17
  import { OpenAIVoice } from "@mastra/voice-openai";
18
- import { openai } from "@ai-sdk/openai";
19
18
 
20
19
  // Initialize the voice provider with default settings
21
20
  const voice = new OpenAIVoice();
@@ -25,7 +24,7 @@ export const agent = new Agent({
25
24
  id: "voice-agent",
26
25
  name: "Voice Agent",
27
26
  instructions: `You are a helpful assistant with both STT and TTS capabilities.`,
28
- model: openai("gpt-4o"),
27
+ model: "openai/gpt-5.1",
29
28
  voice,
30
29
  });
31
30
 
@@ -105,7 +104,7 @@ import { search, calculate } from "../tools";
105
104
  // Initialize the realtime voice provider
106
105
  const voice = new OpenAIRealtimeVoice({
107
106
  apiKey: process.env.OPENAI_API_KEY,
108
- model: "gpt-4o-mini-realtime",
107
+ model: "gpt-5.1-realtime",
109
108
  speaker: "alloy",
110
109
  });
111
110
 
@@ -114,7 +113,7 @@ export const agent = new Agent({
114
113
  id: "speech-to-speech-agent",
115
114
  name: "Speech-to-Speech Agent",
116
115
  instructions: `You are a helpful assistant with speech-to-speech capabilities.`,
117
- model: openai("gpt-4o"),
116
+ model: "openai/gpt-5.1",
118
117
  tools: {
119
118
  // Tools configured on Agent are passed to voice provider
120
119
  search,
@@ -178,7 +177,6 @@ import { Agent } from "@mastra/core/agent";
178
177
  import { CompositeVoice } from "@mastra/core/voice";
179
178
  import { OpenAIVoice } from "@mastra/voice-openai";
180
179
  import { Mastra } from "@mastra/core";
181
- import { openai } from "@ai-sdk/openai";
182
180
 
183
181
  // Saves an audio stream to a file in the audio directory, creating the directory if it doesn't exist.
184
182
  export const saveAudioToFile = async (
@@ -217,7 +215,7 @@ export const convertToText = async (
217
215
  export const hybridVoiceAgent = new Agent({
218
216
  id: "hybrid-voice-agent",
219
217
  name: "Hybrid Voice Agent",
220
- model: openai("gpt-4o"),
218
+ model: "openai/gpt-5.1",
221
219
  instructions: "You can speak and listen using different providers.",
222
220
  voice: new CompositeVoice({
223
221
  input: new OpenAIVoice(),
@@ -229,7 +227,7 @@ export const unifiedVoiceAgent = new Agent({
229
227
  id: "unified-voice-agent",
230
228
  name: "Unified Voice Agent",
231
229
  instructions: "You are an agent with both STT and TTS capabilities.",
232
- model: openai("gpt-4o"),
230
+ model: "openai/gpt-5.1",
233
231
  voice: new OpenAIVoice(),
234
232
  });
235
233
 
@@ -269,13 +267,12 @@ import { Agent } from "@mastra/core/agent";
269
267
  import { CompositeVoice } from "@mastra/core/voice";
270
268
  import { OpenAIVoice } from "@mastra/voice-openai";
271
269
  import { PlayAIVoice } from "@mastra/voice-playai";
272
- import { openai } from "@ai-sdk/openai";
273
270
 
274
271
  export const agent = new Agent({
275
272
  id: "voice-agent",
276
273
  name: "Voice Agent",
277
274
  instructions: `You are a helpful assistant with both STT and TTS capabilities.`,
278
- model: openai("gpt-4o"),
275
+ model: "openai/gpt-5.1",
279
276
 
280
277
  // Create a composite voice using OpenAI for listening and PlayAI for speaking
281
278
  voice: new CompositeVoice({
@@ -285,6 +282,55 @@ export const agent = new Agent({
285
282
  });
286
283
  ```
287
284
 
285
+ ### Using AI SDK
286
+
287
+ Mastra supports using AI SDK's transcription and speech models directly in `CompositeVoice`, giving you access to a wide range of providers through the AI SDK ecosystem:
288
+
289
+ ```typescript
290
+ import { Agent } from "@mastra/core/agent";
291
+ import { CompositeVoice } from "@mastra/core/voice";
292
+ import { openai } from "@ai-sdk/openai";
293
+ import { elevenlabs } from "@ai-sdk/elevenlabs";
294
+ import { groq } from "@ai-sdk/groq";
295
+
296
+ export const agent = new Agent({
297
+ id: "aisdk-voice-agent",
298
+ name: "AI SDK Voice Agent",
299
+ instructions: `You are a helpful assistant with voice capabilities.`,
300
+ model: openai("gpt-5.1"),
301
+
302
+ // Pass AI SDK models directly to CompositeVoice
303
+ voice: new CompositeVoice({
304
+ input: openai.transcription('whisper-1'), // AI SDK transcription model
305
+ output: elevenlabs.speech('eleven_turbo_v2'), // AI SDK speech model
306
+ }),
307
+ });
308
+
309
+ // Use voice capabilities as usual
310
+ const audioStream = await agent.voice.speak("Hello!");
311
+ const transcribedText = await agent.voice.listen(audioStream);
312
+ ```
313
+
314
+ #### Mix and Match Providers
315
+
316
+ You can mix AI SDK models with Mastra voice providers:
317
+
318
+ ```typescript
319
+ import { CompositeVoice } from "@mastra/core/voice";
320
+ import { PlayAIVoice } from "@mastra/voice-playai";
321
+ import { openai } from "@ai-sdk/openai";
322
+
323
+ // Use AI SDK for transcription and Mastra provider for speech
324
+ const voice = new CompositeVoice({
325
+ input: openai.transcription('whisper-1'), // AI SDK
326
+ output: new PlayAIVoice(), // Mastra provider
327
+ });
328
+ ```
329
+
330
+ For the complete list of supported AI SDK providers and their capabilities:
331
+ * [Transcription](https://ai-sdk.dev/docs/providers/openai/transcription)
332
+ * [Speech](https://ai-sdk.dev/docs/providers/elevenlabs/speech)
333
+
288
334
  ## Supported Voice Providers
289
335
 
290
336
  Mastra supports multiple voice providers for text-to-speech (TTS) and speech-to-text (STT) capabilities:
@@ -0,0 +1,189 @@
1
+ ---
2
+ title: "Agent Approval | Agents"
3
+ description: Learn how to require approvals and suspend tool execution while keeping humans in control of agent workflows.
4
+ ---
5
+
6
+ # Agent Approval
7
+
8
+ Agents sometimes require the same [human-in-the-loop](/docs/v1/workflows/human-in-the-loop) oversight used in workflows when calling tools that handle sensitive operations, like deleting resources or performing running long processes. With agent approval you can suspend a tool call and provide feedback to the user, or approve or decline a tool call based on targeted application conditions.
9
+
10
+ ## Tool call approval
11
+
12
+ Tool call approval can be enabled at the agent level and apply to every tool the agent uses, or at the tool level providing more granular control over individual tool calls.
13
+
14
+ ### Storage
15
+
16
+ Agent approval uses a snapshot to capture the state of the request. Ensure you've enabled a storage provider in your main Mastra instance. If storage isn't enabled you'll see an error relating to snapshot not found.
17
+
18
+ ```typescript title="src/mastra/index.ts"
19
+ import { Mastra } from "@mastra/core/mastra";
20
+ import { LibSQLStore } from "@mastra/libsql";
21
+
22
+ export const mastra = new Mastra({
23
+ // ...
24
+ storage: new LibSQLStore({
25
+ id: "mastra-storage",
26
+ url: ":memory:"
27
+ })
28
+ });
29
+ ```
30
+
31
+
32
+ ## Agent-level approval
33
+
34
+ When calling an agent using `.stream()` set `requireToolApproval` to `true` which will prevent the agent from calling any of the tools defined in its configuration.
35
+
36
+ ```typescript showLineNumbers
37
+ const stream = await agent.stream("What's the weather in London?", {
38
+ requireToolApproval: true
39
+ });
40
+ ```
41
+
42
+ ### Approving tool calls
43
+
44
+ To approve a tool call, access `approveToolCall` from the `agent`, passing in the `runId` of the stream. This will let the agent know its now OK to call its tools.
45
+
46
+ ```typescript showLineNumbers
47
+ const handleApproval = async () => {
48
+ const approvedStream = await agent.approveToolCall({ runId: stream.runId });
49
+
50
+ for await (const chunk of approvedStream.textStream) {
51
+ process.stdout.write(chunk);
52
+ }
53
+ process.stdout.write("\n");
54
+ };
55
+ ```
56
+
57
+ ### Declining tool calls
58
+
59
+ To decline a tool call, access the `declineToolCall` from the `agent`. You will see the streamed response from the agent, but it won't call its tools.
60
+
61
+ ```typescript showLineNumbers
62
+ const handleDecline = async () => {
63
+ const declinedStream = await agent.declineToolCall({ runId: stream.runId });
64
+
65
+ for await (const chunk of declinedStream.textStream) {
66
+ process.stdout.write(chunk);
67
+ }
68
+ process.stdout.write("\n");
69
+ };
70
+ ```
71
+
72
+ ## Tool-level approval
73
+
74
+ There are two types of tool call approval. The first uses `requireApproval`, which is a property on the tool definition, while `requireToolApproval` is a parameter passed to `agent.stream()`. The second uses `suspend` and lets the agent provide context or confirmation prompts so the user can decide whether the tool call should continue.
75
+
76
+ ### Tool approval using `requireToolApproval`
77
+
78
+ In this approach, `requireApproval` is configured on the tool definition (shown below) rather than on the agent.
79
+
80
+ ```typescript
81
+ export const testTool = createTool({
82
+ id: "test-tool",
83
+ description: "Fetches weather for a location",
84
+ inputSchema: z.object({
85
+ location: z.string()
86
+ }),
87
+ outputSchema: z.object({
88
+ weather: z.string()
89
+ }),
90
+ resumeSchema: z.object({
91
+ approved: z.boolean()
92
+ }),
93
+ execute: async ({ location }) => {
94
+ const response = await fetch(`https://wttr.in/${location}?format=3`);
95
+ const weather = await response.text();
96
+
97
+ return { weather };
98
+ },
99
+ requireApproval: true
100
+ });
101
+ ```
102
+
103
+ When `requireApproval` is true for a tool, the stream will include chunks of type `tool-call-approval` to indicate that the call is paused. To continue the call, invoke `resumeStream` with the required `resumeSchema` and the `runId`.
104
+
105
+ ```typescript
106
+ const stream = await agent.stream("What's the weather in London?");
107
+
108
+ for await (const chunk of stream.fullStream) {
109
+ if (chunk.type === "tool-call-approval") {
110
+ console.log("Approval required.");
111
+ }
112
+ }
113
+
114
+ const handleResume = async () => {
115
+ const resumedStream = await agent.resumeStream({ approved: true }, { runId: stream.runId });
116
+
117
+ for await (const chunk of resumedStream.textStream) {
118
+ process.stdout.write(chunk);
119
+ }
120
+ process.stdout.write("\n");
121
+ };
122
+ ```
123
+
124
+
125
+ ### Tool approval using `suspend`
126
+
127
+ With this approach, neither the agent nor the tool uses `requireApproval`. Instead, the tool implementation calls `suspend` to pause execution and return context or confirmation prompts to the user.
128
+
129
+ ```typescript
130
+
131
+ export const testToolB = createTool({
132
+ id: "test-tool-b",
133
+ description: "Fetches weather for a location",
134
+ inputSchema: z.object({
135
+ location: z.string()
136
+ }),
137
+ outputSchema: z.object({
138
+ weather: z.string()
139
+ }),
140
+ resumeSchema: z.object({
141
+ approved: z.boolean()
142
+ }),
143
+ suspendSchema: z.object({
144
+ reason: z.string()
145
+ }),
146
+ execute: async ({ location }, { agent } = {}) => {
147
+ const { resumeData: { approved } = {}, suspend } = agent ?? {};
148
+
149
+ if (!approved) {
150
+ return suspend?.({ reason: "Approval required." });
151
+ }
152
+
153
+ const response = await fetch(`https://wttr.in/${location}?format=3`);
154
+ const weather = await response.text();
155
+
156
+ return { weather };
157
+ }
158
+ });
159
+ ```
160
+
161
+ With this approach the stream will include a `tool-call-suspended` chunk, and the `suspendPayload` will contain the `reason` defined by the tool's `suspendSchema`. To continue the call, invoke `resumeStream` with the required `resumeSchema` and the `runId`.
162
+
163
+ ```typescript
164
+ const stream = await agent.stream("What's the weather in London?");
165
+
166
+ for await (const chunk of stream.fullStream) {
167
+ if (chunk.type === "tool-call-suspended") {
168
+ console.log(chunk.payload.suspendPayload);
169
+ }
170
+ }
171
+
172
+ const handleResume = async () => {
173
+ const resumedStream = await agent.resumeStream({ approved: true }, { runId: stream.runId });
174
+
175
+ for await (const chunk of resumedStream.textStream) {
176
+ process.stdout.write(chunk);
177
+ }
178
+ process.stdout.write("\n");
179
+ };
180
+
181
+ ```
182
+
183
+ ## Related
184
+
185
+ - [Using Tools](./using-tools)
186
+ - [Agent Overview](./overview)
187
+ - [Tools Overview](../mcp/overview)
188
+ - [Agent Memory](./agent-memory)
189
+ - [Request Context](/docs/v1/server-db/request-context)
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Agent Memory | Agents | Mastra Docs"
2
+ title: "Agent Memory | Agents"
3
3
  description: Learn how to add memory to agents to store conversation history and maintain context across interactions.
4
4
  ---
5
5
 
@@ -21,7 +21,7 @@ Use memory when your agent needs to maintain multi-turn conversations that refer
21
21
  To enable memory in Mastra, install the `@mastra/memory` package along with a storage provider.
22
22
 
23
23
  ```bash npm2yarn copy
24
- npm install @mastra/memory@latest @mastra/libsql@latest
24
+ npm install @mastra/memory@beta @mastra/libsql@beta
25
25
  ```
26
26
 
27
27
  ## Storage providers
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Guardrails | Agents | Mastra Docs"
2
+ title: "Guardrails | Agents"
3
3
  description: "Learn how to implement guardrails using input and output processors to secure and control AI interactions."
4
4
  ---
5
5
 
@@ -22,8 +22,7 @@ Use processors for content moderation, prompt injection prevention, response san
22
22
 
23
23
  Import and instantiate the relevant processor class, and pass it to your agent’s configuration using either the `inputProcessors` or `outputProcessors` option:
24
24
 
25
- ```typescript {3,9-17} title="src/mastra/agents/moderated-agent.ts" showLineNumbers copy
26
- import { openai } from "@ai-sdk/openai";
25
+ ```typescript {2,8-16} title="src/mastra/agents/moderated-agent.ts" showLineNumbers copy
27
26
  import { Agent } from "@mastra/core/agent";
28
27
  import { ModerationProcessor } from "@mastra/core/processors";
29
28
 
@@ -31,10 +30,10 @@ export const moderatedAgent = new Agent({
31
30
  id: "moderated-agent",
32
31
  name: "Moderated Agent",
33
32
  instructions: "You are a helpful assistant",
34
- model: openai("gpt-4o-mini"),
33
+ model: "openai/gpt-5.1",
35
34
  inputProcessors: [
36
35
  new ModerationProcessor({
37
- model: openai("gpt-4.1-nano"),
36
+ model: "openrouter/openai/gpt-oss-safeguard-20b",
38
37
  categories: ["hate", "harassment", "violence"],
39
38
  threshold: 0.7,
40
39
  strategy: "block",
@@ -52,7 +51,7 @@ Input processors are applied before user messages reach the language model. They
52
51
 
53
52
  The `UnicodeNormalizer` is an input processor that cleans and normalizes user input by unifying Unicode characters, standardizing whitespace, and removing problematic symbols, allowing the LLM to better understand user messages.
54
53
 
55
- ```typescript {6-9} title="src/mastra/agents/normalized-agent.ts" showLineNumbers copy
54
+ ```typescript {8-11} title="src/mastra/agents/normalized-agent.ts" showLineNumbers copy
56
55
  import { UnicodeNormalizer } from "@mastra/core/processors";
57
56
 
58
57
  export const normalizedAgent = new Agent({
@@ -74,7 +73,7 @@ export const normalizedAgent = new Agent({
74
73
 
75
74
  The `PromptInjectionDetector` is an input processor that scans user messages for prompt injection, jailbreak attempts, and system override patterns. It uses an LLM to classify risky input and can block or rewrite it before it reaches the model.
76
75
 
77
- ```typescript {6-11} title="src/mastra/agents/secure-agent.ts" showLineNumbers copy
76
+ ```typescript {8-13} title="src/mastra/agents/secure-agent.ts" showLineNumbers copy
78
77
  import { PromptInjectionDetector } from "@mastra/core/processors";
79
78
 
80
79
  export const secureAgent = new Agent({
@@ -83,7 +82,7 @@ export const secureAgent = new Agent({
83
82
  // ...
84
83
  inputProcessors: [
85
84
  new PromptInjectionDetector({
86
- model: openai("gpt-4.1-nano"),
85
+ model: "openrouter/openai/gpt-oss-safeguard-20b",
87
86
  threshold: 0.8,
88
87
  strategy: "rewrite",
89
88
  detectionTypes: ["injection", "jailbreak", "system-override"],
@@ -98,7 +97,7 @@ export const secureAgent = new Agent({
98
97
 
99
98
  The `LanguageDetector` is an input processor that detects and translates user messages into a target language, enabling multilingual support while maintaining consistent interaction. It uses an LLM to identify the language and perform the translation.
100
99
 
101
- ```typescript {6-11} title="src/mastra/agents/multilingual-agent.ts" showLineNumbers copy
100
+ ```typescript {8-13} title="src/mastra/agents/multilingual-agent.ts" showLineNumbers copy
102
101
  import { LanguageDetector } from "@mastra/core/processors";
103
102
 
104
103
  export const multilingualAgent = new Agent({
@@ -107,7 +106,7 @@ export const multilingualAgent = new Agent({
107
106
  // ...
108
107
  inputProcessors: [
109
108
  new LanguageDetector({
110
- model: openai("gpt-4.1-nano"),
109
+ model: "openrouter/openai/gpt-oss-safeguard-20b",
111
110
  targetLanguages: ["English", "en"],
112
111
  strategy: "translate",
113
112
  threshold: 0.8,
@@ -126,7 +125,7 @@ Output processors are applied after the language model generates a response, but
126
125
 
127
126
  The `BatchPartsProcessor` is an output processor that combines multiple stream parts before emitting them to the client. This reduces network overhead and improves the user experience by consolidating small chunks into larger batches.
128
127
 
129
- ```typescript {6-10} title="src/mastra/agents/batched-agent.ts" showLineNumbers copy
128
+ ```typescript {8-12} title="src/mastra/agents/batched-agent.ts" showLineNumbers copy
130
129
  import { BatchPartsProcessor } from "@mastra/core/processors";
131
130
 
132
131
  export const batchedAgent = new Agent({
@@ -149,7 +148,7 @@ export const batchedAgent = new Agent({
149
148
 
150
149
  The `TokenLimiterProcessor` is an output processor that limits the number of tokens in model responses. It helps manage cost and performance by truncating or blocking messages when the limit is exceeded.
151
150
 
152
- ```typescript {6-10, 13-15} title="src/mastra/agents/limited-agent.ts" showLineNumbers copy
151
+ ```typescript {8-12} title="src/mastra/agents/limited-agent.ts" showLineNumbers copy
153
152
  import { TokenLimiterProcessor } from "@mastra/core/processors";
154
153
 
155
154
  export const limitedAgent = new Agent({
@@ -172,7 +171,7 @@ export const limitedAgent = new Agent({
172
171
 
173
172
  The `SystemPromptScrubber` is an output processor that detects and redacts system prompts or other internal instructions from model responses. It helps prevent unintended disclosure of prompt content or configuration details that could introduce security risks. It uses an LLM to identify and redact sensitive content based on configured detection types.
174
173
 
175
- ```typescript {5-13} title="src/mastra/agents/scrubbed-agent.ts" copy showLineNumbers
174
+ ```typescript {7-16} title="src/mastra/agents/scrubbed-agent.ts" copy showLineNumbers
176
175
  import { SystemPromptScrubber } from "@mastra/core/processors";
177
176
 
178
177
  const scrubbedAgent = new Agent({
@@ -180,7 +179,7 @@ const scrubbedAgent = new Agent({
180
179
  name: "Scrubbed Agent",
181
180
  outputProcessors: [
182
181
  new SystemPromptScrubber({
183
- model: openai("gpt-4.1-nano"),
182
+ model: "openrouter/openai/gpt-oss-safeguard-20b",
184
183
  strategy: "redact",
185
184
  customPatterns: ["system prompt", "internal instructions"],
186
185
  includeDetections: true,
@@ -195,6 +194,10 @@ const scrubbedAgent = new Agent({
195
194
 
196
195
  > See [SystemPromptScrubber](/reference/v1/processors/system-prompt-scrubber) for a full list of configuration options.
197
196
 
197
+ :::note
198
+ When streaming responses over HTTP, Mastra redacts sensitive request data (system prompts, tool definitions, API keys) from stream chunks at the server level by default. See [Stream data redaction](/docs/v1/server-db/mastra-server#stream-data-redaction) for details.
199
+ :::
200
+
198
201
  ## Hybrid processors
199
202
 
200
203
  Hybrid processors can be applied either before messages are sent to the language model or before responses are returned to the user. They are useful for tasks like content moderation and PII redaction.
@@ -203,7 +206,7 @@ Hybrid processors can be applied either before messages are sent to the language
203
206
 
204
207
  The `ModerationProcessor` is a hybrid processor that detects inappropriate or harmful content across categories like hate, harassment, and violence. It can be used to moderate either user input or model output, depending on where it's applied. It uses an LLM to classify the message and can block or rewrite it based on your configuration.
205
208
 
206
- ```typescript {6-11, 14-16} title="src/mastra/agents/moderated-agent.ts" showLineNumbers copy
209
+ ```typescript {8-13,16-18} title="src/mastra/agents/moderated-agent.ts" showLineNumbers copy
207
210
  import { ModerationProcessor } from "@mastra/core/processors";
208
211
 
209
212
  export const moderatedAgent = new Agent({
@@ -212,7 +215,7 @@ export const moderatedAgent = new Agent({
212
215
  // ...
213
216
  inputProcessors: [
214
217
  new ModerationProcessor({
215
- model: openai("gpt-4.1-nano"),
218
+ model: "openrouter/openai/gpt-oss-safeguard-20b",
216
219
  threshold: 0.7,
217
220
  strategy: "block",
218
221
  categories: ["hate", "harassment", "violence"],
@@ -232,7 +235,7 @@ export const moderatedAgent = new Agent({
232
235
 
233
236
  The `PIIDetector` is a hybrid processor that detects and removes personally identifiable information such as emails, phone numbers, and credit cards. It can redact either user input or model output, depending on where it's applied. It uses an LLM to identify sensitive content based on configured detection types.
234
237
 
235
- ```typescript {6-13, 16-18} title="src/mastra/agents/private-agent.ts" showLineNumbers copy
238
+ ```typescript {8-15,18-20} title="src/mastra/agents/private-agent.ts" showLineNumbers copy
236
239
  import { PIIDetector } from "@mastra/core/processors";
237
240
 
238
241
  export const privateAgent = new Agent({
@@ -241,7 +244,7 @@ export const privateAgent = new Agent({
241
244
  // ...
242
245
  inputProcessors: [
243
246
  new PIIDetector({
244
- model: openai("gpt-4.1-nano"),
247
+ model: "openrouter/openai/gpt-oss-safeguard-20b",
245
248
  threshold: 0.6,
246
249
  strategy: "redact",
247
250
  redactionMethod: "mask",
@@ -306,7 +309,7 @@ Many of the built-in processors support a `strategy` parameter that controls how
306
309
 
307
310
  Most strategies allow the request to continue without interruption. When `block` is used, the processor calls its internal `abort()` function, which immediately stops the request and prevents any subsequent processors from running.
308
311
 
309
- ```typescript {8} title="src/mastra/agents/private-agent.ts" showLineNumbers copy
312
+ ```typescript {10} title="src/mastra/agents/private-agent.ts" showLineNumbers copy
310
313
  import { PIIDetector } from "@mastra/core/processors";
311
314
 
312
315
  export const privateAgent = new Agent({
@@ -330,7 +333,7 @@ For example, if an agent uses the `PIIDetector` with `strategy: "block"` and the
330
333
 
331
334
  #### `.generate()` example
332
335
 
333
- ```typescript {3-4, } showLineNumbers
336
+ ```typescript showLineNumbers
334
337
  const result = await agent.generate(
335
338
  "Is this credit card number valid?: 4543 1374 5089 4332",
336
339
  );
@@ -341,7 +344,7 @@ console.error(result.tripwireReason);
341
344
 
342
345
  #### `.stream()` example
343
346
 
344
- ```typescript {4-5} showLineNumbers
347
+ ```typescript showLineNumbers
345
348
  const stream = await agent.stream(
346
349
  "Is this credit card number valid?: 4543 1374 5089 4332",
347
350
  );
@@ -365,6 +368,6 @@ If the built-in processors don’t cover your needs, you can create your own by
365
368
 
366
369
  Available examples:
367
370
 
368
- - [Message Length Limiter](/examples/v1/processors/message-length-limiter)
369
- - [Response Length Limiter](/examples/v1/processors/response-length-limiter)
370
- - [Response Validator](/examples/v1/processors/response-validator)
371
+ - [Message Length Limiter](https://github.com/mastra-ai/mastra/tree/main/examples/processors-message-length-limiter)
372
+ - [Response Length Limiter](https://github.com/mastra-ai/mastra/tree/main/examples/processors-response-length-limiter)
373
+ - [Response Validator](https://github.com/mastra-ai/mastra/tree/main/examples/processors-response-validator)
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Agent Networks | Agents | Mastra Docs"
2
+ title: "Agent Networks | Agents"
3
3
  description: Learn how to coordinate multiple agents, workflows, and tools using agent networks for complex, non-deterministic task execution.
4
4
  ---
5
5
 
@@ -24,7 +24,6 @@ Mastra agent networks operate using these principles:
24
24
  An agent network is built around a top-level routing agent that delegates tasks to agents, workflows, and tools defined in its configuration. Memory is configured on the routing agent using the `memory` option, and `instructions` define the agent's routing behavior.
25
25
 
26
26
  ```typescript {22-23,26,29} title="src/mastra/agents/routing-agent.ts" showLineNumbers copy
27
- import { openai } from "@ai-sdk/openai";
28
27
  import { Agent } from "@mastra/core/agent";
29
28
  import { Memory } from "@mastra/memory";
30
29
  import { LibSQLStore } from "@mastra/libsql";
@@ -44,7 +43,7 @@ export const routingAgent = new Agent({
44
43
  Always respond with a complete report—no bullet points.
45
44
  Write in full paragraphs, like a blog post.
46
45
  Do not answer with incomplete or uncertain information.`,
47
- model: openai("gpt-4o-mini"),
46
+ model: "openai/gpt-5.1",
48
47
  agents: {
49
48
  researchAgent,
50
49
  writingAgent,
@@ -241,3 +240,4 @@ network-execution-event-step-finish
241
240
  - [Agent Memory](./agent-memory)
242
241
  - [Workflows Overview](../workflows/overview)
243
242
  - [Request Context](/docs/v1/server-db/request-context)
243
+ - [Supervisor example](https://github.com/mastra-ai/mastra/tree/main/examples/supervisor-agent)