@mastra/mcp-docs-server 1.0.0-beta.9 → 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.
Files changed (541) hide show
  1. package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +3 -1
  2. package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +3 -1
  3. package/.docs/organized/changelogs/%40internal%2Fplayground.md +40 -0
  4. package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +8 -8
  5. package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +3 -1
  6. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +287 -287
  7. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +299 -299
  8. package/.docs/organized/changelogs/%40mastra%2Fastra.md +53 -53
  9. package/.docs/organized/changelogs/%40mastra%2Fauth.md +38 -0
  10. package/.docs/organized/changelogs/%40mastra%2Fchroma.md +66 -66
  11. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +522 -212
  12. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +662 -200
  13. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +439 -234
  14. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +450 -211
  15. package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +202 -0
  16. package/.docs/organized/changelogs/%40mastra%2Fconvex.md +448 -22
  17. package/.docs/organized/changelogs/%40mastra%2Fcore.md +3359 -289
  18. package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +60 -60
  19. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +289 -289
  20. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +90 -90
  21. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +74 -74
  22. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +70 -70
  23. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +248 -221
  24. package/.docs/organized/changelogs/%40mastra%2Fduckdb.md +70 -0
  25. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +403 -225
  26. package/.docs/organized/changelogs/%40mastra%2Felasticsearch.md +72 -0
  27. package/.docs/organized/changelogs/%40mastra%2Fevals.md +145 -145
  28. package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +54 -0
  29. package/.docs/organized/changelogs/%40mastra%2Flance.md +456 -226
  30. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +625 -229
  31. package/.docs/organized/changelogs/%40mastra%2Floggers.md +71 -71
  32. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +247 -247
  33. package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +28 -28
  34. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +281 -281
  35. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +354 -156
  36. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +545 -212
  37. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +481 -202
  38. package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +194 -194
  39. package/.docs/organized/changelogs/%40mastra%2Fpg.md +781 -235
  40. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +198 -198
  41. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +655 -248
  42. package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +163 -163
  43. package/.docs/organized/changelogs/%40mastra%2Frag.md +310 -310
  44. package/.docs/organized/changelogs/%40mastra%2Freact.md +328 -237
  45. package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +64 -0
  46. package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +160 -0
  47. package/.docs/organized/changelogs/%40mastra%2Fserver.md +850 -239
  48. package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +57 -57
  49. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +479 -232
  50. package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +53 -53
  51. package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +45 -45
  52. package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +45 -45
  53. package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +47 -47
  54. package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +110 -110
  55. package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +15 -0
  56. package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +98 -0
  57. package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +54 -54
  58. package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +46 -46
  59. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +93 -93
  60. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +47 -47
  61. package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +45 -45
  62. package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +45 -45
  63. package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +45 -45
  64. package/.docs/organized/changelogs/create-mastra.md +215 -215
  65. package/.docs/organized/changelogs/mastra.md +278 -278
  66. package/.docs/organized/code-examples/a2a.md +2 -2
  67. package/.docs/organized/code-examples/agent-v6.md +221 -0
  68. package/.docs/organized/code-examples/agui.md +4 -4
  69. package/.docs/organized/code-examples/ai-elements.md +3 -3
  70. package/.docs/organized/code-examples/ai-sdk-useChat.md +2 -2
  71. package/.docs/organized/code-examples/ai-sdk-v5.md +3 -3
  72. package/.docs/organized/code-examples/assistant-ui.md +5 -5
  73. package/.docs/organized/code-examples/bird-checker-with-express.md +1 -1
  74. package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +2 -2
  75. package/.docs/organized/code-examples/bird-checker-with-nextjs.md +3 -3
  76. package/.docs/organized/code-examples/client-side-tools.md +4 -4
  77. package/.docs/organized/code-examples/crypto-chatbot.md +5 -5
  78. package/.docs/organized/code-examples/experimental-auth-weather-agent.md +1 -1
  79. package/.docs/organized/code-examples/fireworks-r1.md +2 -2
  80. package/.docs/organized/code-examples/heads-up-game.md +7 -7
  81. package/.docs/organized/code-examples/inngest.md +1075 -0
  82. package/.docs/organized/code-examples/mcp-configuration.md +1 -1
  83. package/.docs/organized/code-examples/mcp-server-adapters.md +2 -2
  84. package/.docs/organized/code-examples/memory-per-resource-example.md +3 -3
  85. package/.docs/organized/code-examples/memory-todo-agent.md +1 -1
  86. package/.docs/organized/code-examples/memory-with-context.md +1 -1
  87. package/.docs/organized/code-examples/memory-with-processors.md +1 -1
  88. package/.docs/organized/code-examples/openapi-spec-writer.md +3 -3
  89. package/.docs/organized/code-examples/quick-start.md +1 -5
  90. package/.docs/organized/code-examples/server-app-access.md +2 -2
  91. package/.docs/organized/code-examples/server-express-adapter.md +1 -1
  92. package/.docs/organized/code-examples/server-fastify-adapter.md +83 -0
  93. package/.docs/organized/code-examples/server-hono-adapter.md +2 -2
  94. package/.docs/organized/code-examples/server-koa-adapter.md +94 -0
  95. package/.docs/organized/code-examples/stock-price-tool.md +21 -2
  96. package/.docs/organized/code-examples/workflow-ai-recruiter.md +1 -1
  97. package/.docs/organized/code-examples/workflow-with-inline-steps.md +1 -1
  98. package/.docs/organized/code-examples/workflow-with-memory.md +1 -1
  99. package/.docs/organized/code-examples/workflow-with-separate-steps.md +1 -1
  100. package/.docs/organized/code-examples/workflow-with-suspend-resume.md +1 -1
  101. package/.docs/raw/agents/adding-voice.mdx +24 -6
  102. package/.docs/raw/agents/agent-approval.mdx +209 -12
  103. package/.docs/raw/agents/agent-memory.mdx +36 -32
  104. package/.docs/raw/agents/guardrails.mdx +105 -56
  105. package/.docs/raw/agents/network-approval.mdx +281 -0
  106. package/.docs/raw/agents/networks.mdx +69 -13
  107. package/.docs/raw/agents/overview.mdx +43 -25
  108. package/.docs/raw/agents/processors.mdx +234 -17
  109. package/.docs/raw/agents/structured-output.mdx +78 -8
  110. package/.docs/raw/agents/using-tools.mdx +67 -6
  111. package/.docs/raw/course/01-first-agent/07-creating-your-agent.md +1 -2
  112. package/.docs/raw/course/01-first-agent/12-connecting-tool-to-agent.md +1 -1
  113. package/.docs/raw/course/01-first-agent/16-adding-memory-to-agent.md +1 -2
  114. package/.docs/raw/course/02-agent-tools-mcp/05-updating-your-agent.md +1 -1
  115. package/.docs/raw/course/02-agent-tools-mcp/10-updating-agent-instructions-zapier.md +1 -1
  116. package/.docs/raw/course/02-agent-tools-mcp/16-updating-agent-instructions-github.md +1 -1
  117. package/.docs/raw/course/02-agent-tools-mcp/21-updating-agent-instructions-hackernews.md +1 -1
  118. package/.docs/raw/course/02-agent-tools-mcp/27-updating-agent-instructions-filesystem.md +1 -1
  119. package/.docs/raw/course/02-agent-tools-mcp/31-enhancing-memory-configuration.md +3 -3
  120. package/.docs/raw/course/03-agent-memory/04-creating-basic-memory-agent.md +1 -2
  121. package/.docs/raw/course/03-agent-memory/07-understanding-memory-threads.md +35 -0
  122. package/.docs/raw/course/03-agent-memory/08-configuring-conversation-history.md +1 -2
  123. package/.docs/raw/course/03-agent-memory/13-vector-store-configuration.md +1 -1
  124. package/.docs/raw/course/03-agent-memory/16-configuring-semantic-recall.md +4 -5
  125. package/.docs/raw/course/03-agent-memory/18-advanced-configuration-semantic-recall.md +1 -1
  126. package/.docs/raw/course/03-agent-memory/21-configuring-working-memory.md +3 -4
  127. package/.docs/raw/course/03-agent-memory/22-custom-working-memory-templates.md +3 -4
  128. package/.docs/raw/course/03-agent-memory/25-combining-memory-features.md +3 -4
  129. package/.docs/raw/course/03-agent-memory/27-creating-learning-assistant.md +3 -4
  130. package/.docs/raw/course/04-workflows/11-creating-an-ai-agent.md +2 -3
  131. package/.docs/raw/deployment/cloud-providers.mdx +22 -0
  132. package/.docs/raw/deployment/mastra-server.mdx +140 -0
  133. package/.docs/raw/deployment/monorepo.mdx +106 -42
  134. package/.docs/raw/deployment/overview.mdx +35 -48
  135. package/.docs/raw/deployment/web-framework.mdx +17 -19
  136. package/.docs/raw/deployment/workflow-runners.mdx +16 -0
  137. package/.docs/raw/evals/built-in-scorers.mdx +2 -0
  138. package/.docs/raw/evals/custom-scorers.mdx +60 -12
  139. package/.docs/raw/evals/overview.mdx +6 -6
  140. package/.docs/raw/evals/running-in-ci.mdx +4 -2
  141. package/.docs/raw/getting-started/manual-install.mdx +20 -20
  142. package/.docs/raw/getting-started/mcp-docs-server.mdx +59 -2
  143. package/.docs/raw/getting-started/project-structure.mdx +2 -2
  144. package/.docs/raw/getting-started/start.mdx +17 -1
  145. package/.docs/raw/getting-started/studio.mdx +6 -35
  146. package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +23 -33
  147. package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +1034 -80
  148. package/.docs/raw/guides/build-your-ui/assistant-ui.mdx +8 -8
  149. package/.docs/raw/guides/build-your-ui/copilotkit.mdx +32 -11
  150. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/amazon-ec2.mdx +9 -9
  151. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/aws-lambda.mdx +13 -16
  152. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/azure-app-services.mdx +5 -7
  153. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/cloudflare-deployer.mdx +8 -5
  154. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/digital-ocean.mdx +18 -23
  155. package/.docs/raw/guides/deployment/index.mdx +32 -0
  156. package/.docs/raw/guides/deployment/inngest.mdx +673 -0
  157. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/netlify-deployer.mdx +7 -3
  158. package/.docs/raw/{deployment/cloud-providers → guides/deployment}/vercel-deployer.mdx +8 -5
  159. package/.docs/raw/guides/getting-started/astro.mdx +292 -451
  160. package/.docs/raw/guides/getting-started/express.mdx +72 -153
  161. package/.docs/raw/guides/getting-started/hono.mdx +227 -0
  162. package/.docs/raw/guides/getting-started/next-js.mdx +173 -61
  163. package/.docs/raw/guides/getting-started/nuxt.mdx +505 -0
  164. package/.docs/raw/guides/getting-started/quickstart.mdx +5 -5
  165. package/.docs/raw/guides/getting-started/sveltekit.mdx +238 -409
  166. package/.docs/raw/guides/getting-started/vite-react.mdx +317 -147
  167. package/.docs/raw/guides/guide/ai-recruiter.mdx +10 -10
  168. package/.docs/raw/guides/guide/chef-michel.mdx +9 -11
  169. package/.docs/raw/guides/guide/notes-mcp-server.mdx +15 -15
  170. package/.docs/raw/guides/guide/research-assistant.mdx +20 -20
  171. package/.docs/raw/guides/guide/stock-agent.mdx +5 -5
  172. package/.docs/raw/guides/guide/web-search.mdx +38 -38
  173. package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +7 -7
  174. package/.docs/raw/guides/index.mdx +0 -1
  175. package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +2 -2
  176. package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +105 -4
  177. package/.docs/raw/guides/migrations/upgrade-to-v1/cli.mdx +15 -1
  178. package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +170 -0
  179. package/.docs/raw/guides/migrations/upgrade-to-v1/deployment.mdx +42 -0
  180. package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +0 -35
  181. package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +40 -3
  182. package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +17 -2
  183. package/.docs/raw/guides/migrations/upgrade-to-v1/processors.mdx +11 -0
  184. package/.docs/raw/guides/migrations/upgrade-to-v1/rag.mdx +47 -0
  185. package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +271 -25
  186. package/.docs/raw/guides/migrations/upgrade-to-v1/tracing.mdx +72 -17
  187. package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +46 -1
  188. package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +50 -7
  189. package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +21 -23
  190. package/.docs/raw/index.mdx +2 -2
  191. package/.docs/raw/mastra-cloud/deployment.mdx +86 -0
  192. package/.docs/raw/mastra-cloud/observability.mdx +43 -0
  193. package/.docs/raw/mastra-cloud/overview.mdx +31 -0
  194. package/.docs/raw/mastra-cloud/setup.mdx +64 -0
  195. package/.docs/raw/mastra-cloud/studio.mdx +35 -0
  196. package/.docs/raw/mcp/overview.mdx +60 -25
  197. package/.docs/raw/mcp/publishing-mcp-server.mdx +7 -4
  198. package/.docs/raw/memory/memory-processors.mdx +17 -12
  199. package/.docs/raw/memory/message-history.mdx +72 -0
  200. package/.docs/raw/memory/overview.mdx +38 -76
  201. package/.docs/raw/memory/semantic-recall.mdx +65 -52
  202. package/.docs/raw/memory/storage.mdx +248 -0
  203. package/.docs/raw/memory/working-memory.mdx +24 -13
  204. package/.docs/raw/observability/logging.mdx +16 -15
  205. package/.docs/raw/observability/overview.mdx +27 -7
  206. package/.docs/raw/observability/tracing/bridges/otel.mdx +7 -4
  207. package/.docs/raw/observability/tracing/exporters/arize.mdx +61 -24
  208. package/.docs/raw/observability/tracing/exporters/braintrust.mdx +32 -22
  209. package/.docs/raw/observability/tracing/exporters/cloud.mdx +24 -5
  210. package/.docs/raw/observability/tracing/exporters/datadog.mdx +175 -0
  211. package/.docs/raw/observability/tracing/exporters/default.mdx +28 -7
  212. package/.docs/raw/observability/tracing/exporters/laminar.mdx +89 -0
  213. package/.docs/raw/observability/tracing/exporters/langfuse.mdx +31 -22
  214. package/.docs/raw/observability/tracing/exporters/langsmith.mdx +33 -3
  215. package/.docs/raw/observability/tracing/exporters/otel.mdx +194 -22
  216. package/.docs/raw/observability/tracing/exporters/posthog.mdx +32 -22
  217. package/.docs/raw/observability/tracing/exporters/sentry.mdx +198 -0
  218. package/.docs/raw/observability/tracing/overview.mdx +388 -108
  219. package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +27 -7
  220. package/.docs/raw/rag/chunking-and-embedding.mdx +22 -33
  221. package/.docs/raw/rag/graph-rag.mdx +223 -0
  222. package/.docs/raw/rag/overview.mdx +6 -3
  223. package/.docs/raw/rag/retrieval.mdx +53 -57
  224. package/.docs/raw/rag/vector-databases.mdx +55 -31
  225. package/.docs/raw/reference/agents/agent.mdx +17 -14
  226. package/.docs/raw/reference/agents/generate.mdx +172 -44
  227. package/.docs/raw/reference/agents/generateLegacy.mdx +5 -3
  228. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +5 -3
  229. package/.docs/raw/reference/agents/getDefaultOptions.mdx +5 -3
  230. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +5 -3
  231. package/.docs/raw/reference/agents/getDescription.mdx +3 -1
  232. package/.docs/raw/reference/agents/getInstructions.mdx +5 -3
  233. package/.docs/raw/reference/agents/getLLM.mdx +5 -3
  234. package/.docs/raw/reference/agents/getMemory.mdx +5 -3
  235. package/.docs/raw/reference/agents/getModel.mdx +5 -3
  236. package/.docs/raw/reference/agents/getTools.mdx +4 -2
  237. package/.docs/raw/reference/agents/getVoice.mdx +4 -2
  238. package/.docs/raw/reference/agents/listAgents.mdx +4 -2
  239. package/.docs/raw/reference/agents/listScorers.mdx +5 -3
  240. package/.docs/raw/reference/agents/listTools.mdx +4 -2
  241. package/.docs/raw/reference/agents/listWorkflows.mdx +4 -2
  242. package/.docs/raw/reference/agents/network.mdx +113 -1
  243. package/.docs/raw/reference/ai-sdk/chat-route.mdx +6 -3
  244. package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +4 -2
  245. package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +4 -2
  246. package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +5 -3
  247. package/.docs/raw/reference/ai-sdk/network-route.mdx +6 -3
  248. package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +10 -6
  249. package/.docs/raw/reference/ai-sdk/to-ai-sdk-v4-messages.mdx +130 -0
  250. package/.docs/raw/reference/ai-sdk/to-ai-sdk-v5-messages.mdx +110 -0
  251. package/.docs/raw/reference/ai-sdk/with-mastra.mdx +122 -0
  252. package/.docs/raw/reference/ai-sdk/workflow-route.mdx +7 -4
  253. package/.docs/raw/reference/auth/auth0.mdx +5 -3
  254. package/.docs/raw/reference/auth/clerk.mdx +5 -3
  255. package/.docs/raw/reference/auth/firebase.mdx +6 -5
  256. package/.docs/raw/reference/auth/jwt.mdx +5 -3
  257. package/.docs/raw/reference/auth/supabase.mdx +5 -3
  258. package/.docs/raw/reference/auth/workos.mdx +5 -3
  259. package/.docs/raw/reference/cli/create-mastra.mdx +12 -10
  260. package/.docs/raw/reference/cli/mastra.mdx +63 -15
  261. package/.docs/raw/reference/client-js/agents.mdx +77 -35
  262. package/.docs/raw/reference/client-js/error-handling.mdx +3 -3
  263. package/.docs/raw/reference/client-js/logs.mdx +2 -0
  264. package/.docs/raw/reference/client-js/mastra-client.mdx +4 -2
  265. package/.docs/raw/reference/client-js/memory.mdx +43 -1
  266. package/.docs/raw/reference/client-js/observability.mdx +2 -0
  267. package/.docs/raw/reference/client-js/telemetry.mdx +2 -0
  268. package/.docs/raw/reference/client-js/tools.mdx +2 -0
  269. package/.docs/raw/reference/client-js/vectors.mdx +2 -0
  270. package/.docs/raw/reference/client-js/workflows.mdx +47 -3
  271. package/.docs/raw/reference/configuration.mdx +761 -0
  272. package/.docs/raw/reference/core/addGateway.mdx +2 -0
  273. package/.docs/raw/reference/core/getAgent.mdx +3 -1
  274. package/.docs/raw/reference/core/getAgentById.mdx +3 -1
  275. package/.docs/raw/reference/core/getDeployer.mdx +3 -1
  276. package/.docs/raw/reference/core/getGateway.mdx +2 -0
  277. package/.docs/raw/reference/core/getGatewayById.mdx +2 -0
  278. package/.docs/raw/reference/core/getLogger.mdx +3 -1
  279. package/.docs/raw/reference/core/getMCPServer.mdx +3 -1
  280. package/.docs/raw/reference/core/getMCPServerById.mdx +3 -1
  281. package/.docs/raw/reference/core/getMemory.mdx +7 -3
  282. package/.docs/raw/reference/core/getScorer.mdx +2 -0
  283. package/.docs/raw/reference/core/getScorerById.mdx +2 -0
  284. package/.docs/raw/reference/core/getServer.mdx +6 -4
  285. package/.docs/raw/reference/core/getStorage.mdx +5 -3
  286. package/.docs/raw/reference/core/getStoredAgentById.mdx +6 -4
  287. package/.docs/raw/reference/core/getTelemetry.mdx +3 -1
  288. package/.docs/raw/reference/core/getVector.mdx +3 -1
  289. package/.docs/raw/reference/core/getWorkflow.mdx +3 -1
  290. package/.docs/raw/reference/core/listAgents.mdx +3 -1
  291. package/.docs/raw/reference/core/listGateways.mdx +2 -0
  292. package/.docs/raw/reference/core/listLogs.mdx +3 -1
  293. package/.docs/raw/reference/core/listLogsByRunId.mdx +3 -1
  294. package/.docs/raw/reference/core/listMCPServers.mdx +3 -1
  295. package/.docs/raw/reference/core/listMemory.mdx +8 -4
  296. package/.docs/raw/reference/core/listScorers.mdx +2 -0
  297. package/.docs/raw/reference/core/listStoredAgents.mdx +7 -5
  298. package/.docs/raw/reference/core/listVectors.mdx +3 -1
  299. package/.docs/raw/reference/core/listWorkflows.mdx +3 -1
  300. package/.docs/raw/reference/core/mastra-class.mdx +27 -20
  301. package/.docs/raw/reference/core/mastra-model-gateway.mdx +2 -0
  302. package/.docs/raw/reference/core/setLogger.mdx +3 -1
  303. package/.docs/raw/reference/core/setStorage.mdx +6 -4
  304. package/.docs/raw/reference/deployer/cloudflare.mdx +22 -53
  305. package/.docs/raw/reference/deployer/deployer.mdx +2 -1
  306. package/.docs/raw/reference/deployer/netlify.mdx +4 -1
  307. package/.docs/raw/reference/deployer/vercel.mdx +5 -4
  308. package/.docs/raw/reference/evals/answer-relevancy.mdx +4 -1
  309. package/.docs/raw/reference/evals/answer-similarity.mdx +4 -1
  310. package/.docs/raw/reference/evals/bias.mdx +4 -1
  311. package/.docs/raw/reference/evals/completeness.mdx +4 -1
  312. package/.docs/raw/reference/evals/content-similarity.mdx +4 -1
  313. package/.docs/raw/reference/evals/context-precision.mdx +4 -1
  314. package/.docs/raw/reference/evals/context-relevance.mdx +2 -0
  315. package/.docs/raw/reference/evals/create-scorer.mdx +11 -3
  316. package/.docs/raw/reference/evals/faithfulness.mdx +4 -1
  317. package/.docs/raw/reference/evals/hallucination.mdx +4 -1
  318. package/.docs/raw/reference/evals/keyword-coverage.mdx +4 -1
  319. package/.docs/raw/reference/evals/mastra-scorer.mdx +2 -0
  320. package/.docs/raw/reference/evals/noise-sensitivity.mdx +2 -0
  321. package/.docs/raw/reference/evals/prompt-alignment.mdx +9 -7
  322. package/.docs/raw/reference/evals/run-evals.mdx +3 -1
  323. package/.docs/raw/reference/evals/scorer-utils.mdx +3 -0
  324. package/.docs/raw/reference/evals/textual-difference.mdx +4 -1
  325. package/.docs/raw/reference/evals/tone-consistency.mdx +4 -1
  326. package/.docs/raw/reference/evals/tool-call-accuracy.mdx +25 -23
  327. package/.docs/raw/reference/evals/toxicity.mdx +4 -1
  328. package/.docs/raw/reference/index.mdx +2 -1
  329. package/.docs/raw/reference/logging/pino-logger.mdx +10 -8
  330. package/.docs/raw/reference/memory/clone-utilities.mdx +345 -0
  331. package/.docs/raw/reference/memory/cloneThread.mdx +237 -0
  332. package/.docs/raw/reference/memory/createThread.mdx +6 -4
  333. package/.docs/raw/reference/memory/deleteMessages.mdx +4 -2
  334. package/.docs/raw/reference/memory/getThreadById.mdx +3 -1
  335. package/.docs/raw/reference/memory/listThreads.mdx +187 -0
  336. package/.docs/raw/reference/memory/memory-class.mdx +27 -20
  337. package/.docs/raw/reference/memory/recall.mdx +6 -4
  338. package/.docs/raw/reference/observability/tracing/bridges/otel.mdx +6 -2
  339. package/.docs/raw/reference/observability/tracing/configuration.mdx +51 -0
  340. package/.docs/raw/reference/observability/tracing/exporters/arize.mdx +25 -6
  341. package/.docs/raw/reference/observability/tracing/exporters/braintrust.mdx +23 -2
  342. package/.docs/raw/reference/observability/tracing/exporters/cloud-exporter.mdx +10 -0
  343. package/.docs/raw/reference/observability/tracing/exporters/console-exporter.mdx +3 -0
  344. package/.docs/raw/reference/observability/tracing/exporters/datadog.mdx +172 -0
  345. package/.docs/raw/reference/observability/tracing/exporters/default-exporter.mdx +10 -0
  346. package/.docs/raw/reference/observability/tracing/exporters/laminar.mdx +139 -0
  347. package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +26 -4
  348. package/.docs/raw/reference/observability/tracing/exporters/langsmith.mdx +10 -0
  349. package/.docs/raw/reference/observability/tracing/exporters/otel.mdx +51 -34
  350. package/.docs/raw/reference/observability/tracing/exporters/posthog.mdx +25 -4
  351. package/.docs/raw/reference/observability/tracing/exporters/sentry.mdx +224 -0
  352. package/.docs/raw/reference/observability/tracing/instances.mdx +2 -0
  353. package/.docs/raw/reference/observability/tracing/interfaces.mdx +20 -0
  354. package/.docs/raw/reference/observability/tracing/processors/sensitive-data-filter.mdx +2 -0
  355. package/.docs/raw/reference/observability/tracing/spans.mdx +2 -0
  356. package/.docs/raw/reference/processors/batch-parts-processor.mdx +4 -2
  357. package/.docs/raw/reference/processors/language-detector.mdx +6 -3
  358. package/.docs/raw/reference/processors/message-history-processor.mdx +5 -2
  359. package/.docs/raw/reference/processors/moderation-processor.mdx +6 -4
  360. package/.docs/raw/reference/processors/pii-detector.mdx +6 -4
  361. package/.docs/raw/reference/processors/processor-interface.mdx +326 -23
  362. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +5 -3
  363. package/.docs/raw/reference/processors/semantic-recall-processor.mdx +7 -2
  364. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +5 -3
  365. package/.docs/raw/reference/processors/token-limiter-processor.mdx +62 -19
  366. package/.docs/raw/reference/processors/tool-call-filter.mdx +5 -3
  367. package/.docs/raw/reference/processors/unicode-normalizer.mdx +6 -3
  368. package/.docs/raw/reference/processors/working-memory-processor.mdx +6 -3
  369. package/.docs/raw/reference/rag/chunk.mdx +7 -6
  370. package/.docs/raw/reference/rag/database-config.mdx +8 -6
  371. package/.docs/raw/reference/rag/document.mdx +2 -0
  372. package/.docs/raw/reference/rag/embeddings.mdx +2 -0
  373. package/.docs/raw/reference/rag/extract-params.mdx +57 -3
  374. package/.docs/raw/reference/rag/graph-rag.mdx +2 -0
  375. package/.docs/raw/reference/rag/metadata-filters.mdx +27 -7
  376. package/.docs/raw/reference/rag/rerank.mdx +2 -0
  377. package/.docs/raw/reference/rag/rerankWithScorer.mdx +2 -0
  378. package/.docs/raw/reference/server/create-route.mdx +34 -18
  379. package/.docs/raw/reference/server/express-adapter.mdx +27 -51
  380. package/.docs/raw/reference/server/fastify-adapter.mdx +130 -0
  381. package/.docs/raw/reference/server/hono-adapter.mdx +27 -51
  382. package/.docs/raw/reference/server/koa-adapter.mdx +129 -0
  383. package/.docs/raw/reference/server/mastra-server.mdx +52 -34
  384. package/.docs/raw/reference/server/routes.mdx +73 -10
  385. package/.docs/raw/reference/storage/cloudflare-d1.mdx +10 -5
  386. package/.docs/raw/reference/storage/cloudflare.mdx +12 -2
  387. package/.docs/raw/reference/storage/composite.mdx +245 -0
  388. package/.docs/raw/reference/storage/convex.mdx +8 -6
  389. package/.docs/raw/reference/storage/dynamodb.mdx +134 -8
  390. package/.docs/raw/reference/storage/lance.mdx +9 -5
  391. package/.docs/raw/reference/storage/libsql.mdx +76 -54
  392. package/.docs/raw/reference/storage/mongodb.mdx +115 -16
  393. package/.docs/raw/reference/storage/mssql.mdx +11 -6
  394. package/.docs/raw/{server-db/storage.mdx → reference/storage/overview.mdx} +15 -111
  395. package/.docs/raw/reference/storage/postgresql.mdx +228 -83
  396. package/.docs/raw/reference/storage/upstash.mdx +78 -2
  397. package/.docs/raw/reference/streaming/ChunkType.mdx +31 -3
  398. package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +67 -6
  399. package/.docs/raw/reference/streaming/agents/stream.mdx +48 -51
  400. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +5 -3
  401. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +3 -1
  402. package/.docs/raw/reference/streaming/workflows/resumeStream.mdx +3 -1
  403. package/.docs/raw/reference/streaming/workflows/stream.mdx +37 -22
  404. package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +6 -4
  405. package/.docs/raw/reference/templates/overview.mdx +3 -2
  406. package/.docs/raw/reference/tools/client.mdx +3 -0
  407. package/.docs/raw/reference/tools/create-tool.mdx +127 -5
  408. package/.docs/raw/reference/tools/document-chunker-tool.mdx +2 -0
  409. package/.docs/raw/reference/tools/graph-rag-tool.mdx +40 -3
  410. package/.docs/raw/reference/tools/mcp-client.mdx +110 -1
  411. package/.docs/raw/reference/tools/mcp-server.mdx +278 -24
  412. package/.docs/raw/reference/tools/vector-query-tool.mdx +68 -4
  413. package/.docs/raw/reference/vectors/astra.mdx +5 -3
  414. package/.docs/raw/reference/vectors/chroma.mdx +5 -3
  415. package/.docs/raw/reference/vectors/convex.mdx +14 -12
  416. package/.docs/raw/reference/vectors/couchbase.mdx +7 -5
  417. package/.docs/raw/reference/vectors/duckdb.mdx +12 -10
  418. package/.docs/raw/reference/vectors/elasticsearch.mdx +12 -4
  419. package/.docs/raw/reference/vectors/lance.mdx +6 -4
  420. package/.docs/raw/reference/vectors/libsql.mdx +66 -13
  421. package/.docs/raw/reference/vectors/mongodb.mdx +90 -10
  422. package/.docs/raw/reference/vectors/opensearch.mdx +30 -3
  423. package/.docs/raw/reference/vectors/pg.mdx +58 -6
  424. package/.docs/raw/reference/vectors/pinecone.mdx +23 -8
  425. package/.docs/raw/reference/vectors/qdrant.mdx +148 -4
  426. package/.docs/raw/reference/vectors/s3vectors.mdx +8 -6
  427. package/.docs/raw/reference/vectors/turbopuffer.mdx +6 -4
  428. package/.docs/raw/reference/vectors/upstash.mdx +60 -6
  429. package/.docs/raw/reference/vectors/vectorize.mdx +5 -3
  430. package/.docs/raw/reference/voice/azure.mdx +2 -0
  431. package/.docs/raw/reference/voice/cloudflare.mdx +2 -0
  432. package/.docs/raw/reference/voice/composite-voice.mdx +4 -0
  433. package/.docs/raw/reference/voice/deepgram.mdx +2 -0
  434. package/.docs/raw/reference/voice/elevenlabs.mdx +2 -0
  435. package/.docs/raw/reference/voice/google-gemini-live.mdx +3 -0
  436. package/.docs/raw/reference/voice/google.mdx +2 -0
  437. package/.docs/raw/reference/voice/mastra-voice.mdx +2 -0
  438. package/.docs/raw/reference/voice/murf.mdx +2 -0
  439. package/.docs/raw/reference/voice/openai-realtime.mdx +3 -0
  440. package/.docs/raw/reference/voice/openai.mdx +2 -0
  441. package/.docs/raw/reference/voice/playai.mdx +2 -0
  442. package/.docs/raw/reference/voice/sarvam.mdx +2 -0
  443. package/.docs/raw/reference/voice/speechify.mdx +2 -0
  444. package/.docs/raw/reference/voice/voice.addInstructions.mdx +3 -0
  445. package/.docs/raw/reference/voice/voice.addTools.mdx +3 -0
  446. package/.docs/raw/reference/voice/voice.answer.mdx +4 -0
  447. package/.docs/raw/reference/voice/voice.close.mdx +3 -0
  448. package/.docs/raw/reference/voice/voice.connect.mdx +5 -1
  449. package/.docs/raw/reference/voice/voice.events.mdx +2 -0
  450. package/.docs/raw/reference/voice/voice.getSpeakers.mdx +3 -0
  451. package/.docs/raw/reference/voice/voice.listen.mdx +6 -0
  452. package/.docs/raw/reference/voice/voice.off.mdx +2 -0
  453. package/.docs/raw/reference/voice/voice.on.mdx +5 -1
  454. package/.docs/raw/reference/voice/voice.send.mdx +4 -0
  455. package/.docs/raw/reference/voice/voice.speak.mdx +6 -0
  456. package/.docs/raw/reference/voice/voice.updateConfig.mdx +2 -0
  457. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +55 -5
  458. package/.docs/raw/reference/workflows/run-methods/restart.mdx +3 -3
  459. package/.docs/raw/reference/workflows/run-methods/resume.mdx +6 -4
  460. package/.docs/raw/reference/workflows/run-methods/start.mdx +7 -5
  461. package/.docs/raw/reference/workflows/run-methods/startAsync.mdx +145 -0
  462. package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +10 -8
  463. package/.docs/raw/reference/workflows/run.mdx +11 -3
  464. package/.docs/raw/reference/workflows/step.mdx +56 -3
  465. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +3 -1
  466. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +3 -1
  467. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +39 -2
  468. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +3 -1
  469. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +3 -1
  470. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +71 -4
  471. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +9 -7
  472. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +3 -1
  473. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +4 -6
  474. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +4 -6
  475. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +3 -1
  476. package/.docs/raw/reference/workflows/workflow.mdx +193 -2
  477. package/.docs/raw/{auth → server/auth}/auth0.mdx +40 -21
  478. package/.docs/raw/{auth → server/auth}/clerk.mdx +37 -16
  479. package/.docs/raw/{auth → server/auth}/firebase.mdx +47 -25
  480. package/.docs/raw/{auth → server/auth}/index.mdx +8 -6
  481. package/.docs/raw/{auth → server/auth}/jwt.mdx +22 -10
  482. package/.docs/raw/{auth → server/auth}/supabase.mdx +45 -25
  483. package/.docs/raw/{auth → server/auth}/workos.mdx +39 -20
  484. package/.docs/raw/{server-db → server}/custom-adapters.mdx +40 -24
  485. package/.docs/raw/{server-db → server}/custom-api-routes.mdx +6 -6
  486. package/.docs/raw/{server-db → server}/mastra-client.mdx +35 -38
  487. package/.docs/raw/server/mastra-server.mdx +86 -0
  488. package/.docs/raw/{server-db → server}/middleware.mdx +11 -9
  489. package/.docs/raw/{server-db → server}/request-context.mdx +85 -43
  490. package/.docs/raw/{server-db → server}/server-adapters.mdx +154 -33
  491. package/.docs/raw/streaming/events.mdx +16 -7
  492. package/.docs/raw/streaming/overview.mdx +30 -17
  493. package/.docs/raw/streaming/tool-streaming.mdx +8 -6
  494. package/.docs/raw/streaming/workflow-streaming.mdx +8 -8
  495. package/.docs/raw/tools-mcp/advanced-usage.mdx +4 -2
  496. package/.docs/raw/tools-mcp/mcp-overview.mdx +46 -12
  497. package/.docs/raw/tools-mcp/overview.mdx +14 -13
  498. package/.docs/raw/voice/overview.mdx +17 -2
  499. package/.docs/raw/voice/speech-to-speech.mdx +5 -0
  500. package/.docs/raw/voice/speech-to-text.mdx +4 -0
  501. package/.docs/raw/voice/text-to-speech.mdx +3 -0
  502. package/.docs/raw/workflows/agents-and-tools.mdx +70 -21
  503. package/.docs/raw/workflows/control-flow.mdx +369 -34
  504. package/.docs/raw/workflows/error-handling.mdx +192 -18
  505. package/.docs/raw/workflows/human-in-the-loop.mdx +8 -7
  506. package/.docs/raw/workflows/input-data-mapping.mdx +9 -7
  507. package/.docs/raw/workflows/overview.mdx +80 -34
  508. package/.docs/raw/workflows/snapshots.mdx +19 -45
  509. package/.docs/raw/workflows/suspend-and-resume.mdx +14 -14
  510. package/.docs/raw/workflows/time-travel.mdx +25 -21
  511. package/.docs/raw/workflows/workflow-state.mdx +7 -8
  512. package/CHANGELOG.md +246 -0
  513. package/README.md +36 -0
  514. package/dist/index.d.ts.map +1 -1
  515. package/dist/logger.d.ts +3 -0
  516. package/dist/logger.d.ts.map +1 -1
  517. package/dist/stdio.js +746 -49
  518. package/dist/tools/course.d.ts.map +1 -1
  519. package/dist/tools/embedded-docs.d.ts +276 -0
  520. package/dist/tools/embedded-docs.d.ts.map +1 -0
  521. package/package.json +9 -8
  522. package/.docs/organized/changelogs/%40internal%2Fai-sdk-v4.md +0 -1
  523. package/.docs/raw/deployment/building-mastra.mdx +0 -73
  524. package/.docs/raw/deployment/cloud-providers/index.mdx +0 -55
  525. package/.docs/raw/deployment/mastra-cloud/dashboard.mdx +0 -100
  526. package/.docs/raw/deployment/mastra-cloud/observability.mdx +0 -53
  527. package/.docs/raw/deployment/mastra-cloud/overview.mdx +0 -65
  528. package/.docs/raw/deployment/mastra-cloud/setting-up.mdx +0 -105
  529. package/.docs/raw/memory/conversation-history.mdx +0 -24
  530. package/.docs/raw/memory/storage/memory-with-libsql.mdx +0 -140
  531. package/.docs/raw/memory/storage/memory-with-mongodb.mdx +0 -150
  532. package/.docs/raw/memory/storage/memory-with-pg.mdx +0 -138
  533. package/.docs/raw/memory/storage/memory-with-upstash.mdx +0 -146
  534. package/.docs/raw/memory/threads-and-resources.mdx +0 -95
  535. package/.docs/raw/reference/core/setTelemetry.mdx +0 -36
  536. package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +0 -110
  537. package/.docs/raw/reference/memory/query.mdx +0 -189
  538. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +0 -70
  539. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +0 -66
  540. package/.docs/raw/server-db/mastra-server.mdx +0 -97
  541. package/.docs/raw/workflows/inngest-workflow.mdx +0 -363
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  title: "Guardrails | Agents"
3
3
  description: "Learn how to implement guardrails using input and output processors to secure and control AI interactions."
4
+ packages:
5
+ - "@mastra/core"
4
6
  ---
5
7
 
6
8
  # Guardrails
@@ -22,7 +24,7 @@ Use processors for content moderation, prompt injection prevention, response san
22
24
 
23
25
  Import and instantiate the relevant processor class, and pass it to your agent’s configuration using either the `inputProcessors` or `outputProcessors` option:
24
26
 
25
- ```typescript {2,8-16} title="src/mastra/agents/moderated-agent.ts" showLineNumbers copy
27
+ ```typescript {2,9-17} title="src/mastra/agents/moderated-agent.ts"
26
28
  import { Agent } from "@mastra/core/agent";
27
29
  import { ModerationProcessor } from "@mastra/core/processors";
28
30
 
@@ -51,13 +53,12 @@ Input processors are applied before user messages reach the language model. They
51
53
 
52
54
  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.
53
55
 
54
- ```typescript {8-11} title="src/mastra/agents/normalized-agent.ts" showLineNumbers copy
56
+ ```typescript {7-10} title="src/mastra/agents/normalized-agent.ts"
55
57
  import { UnicodeNormalizer } from "@mastra/core/processors";
56
58
 
57
59
  export const normalizedAgent = new Agent({
58
60
  id: "normalized-agent",
59
61
  name: "Normalized Agent",
60
- // ...
61
62
  inputProcessors: [
62
63
  new UnicodeNormalizer({
63
64
  stripControlChars: true,
@@ -67,19 +68,22 @@ export const normalizedAgent = new Agent({
67
68
  });
68
69
  ```
69
70
 
70
- > See [UnicodeNormalizer](/reference/v1/processors/unicode-normalizer) for a full list of configuration options.
71
+ :::info
72
+
73
+ Visit [UnicodeNormalizer](/reference/v1/processors/unicode-normalizer) for a full list of configuration options.
74
+
75
+ :::
71
76
 
72
77
  ### Preventing prompt injection
73
78
 
74
79
  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.
75
80
 
76
- ```typescript {8-13} title="src/mastra/agents/secure-agent.ts" showLineNumbers copy
81
+ ```typescript {7-12} title="src/mastra/agents/secure-agent.ts"
77
82
  import { PromptInjectionDetector } from "@mastra/core/processors";
78
83
 
79
84
  export const secureAgent = new Agent({
80
85
  id: "secure-agent",
81
86
  name: "Secure Agent",
82
- // ...
83
87
  inputProcessors: [
84
88
  new PromptInjectionDetector({
85
89
  model: "openrouter/openai/gpt-oss-safeguard-20b",
@@ -91,19 +95,22 @@ export const secureAgent = new Agent({
91
95
  });
92
96
  ```
93
97
 
94
- > See [PromptInjectionDetector](/reference/v1/processors/prompt-injection-detector) for a full list of configuration options.
98
+ :::info
99
+
100
+ Visit [PromptInjectionDetector](/reference/v1/processors/prompt-injection-detector) for a full list of configuration options.
101
+
102
+ :::
95
103
 
96
104
  ### Detecting and translating language
97
105
 
98
106
  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.
99
107
 
100
- ```typescript {8-13} title="src/mastra/agents/multilingual-agent.ts" showLineNumbers copy
108
+ ```typescript {7-12} title="src/mastra/agents/multilingual-agent.ts"
101
109
  import { LanguageDetector } from "@mastra/core/processors";
102
110
 
103
111
  export const multilingualAgent = new Agent({
104
112
  id: "multilingual-agent",
105
113
  name: "Multilingual Agent",
106
- // ...
107
114
  inputProcessors: [
108
115
  new LanguageDetector({
109
116
  model: "openrouter/openai/gpt-oss-safeguard-20b",
@@ -115,7 +122,11 @@ export const multilingualAgent = new Agent({
115
122
  });
116
123
  ```
117
124
 
118
- > See [LanguageDetector](/reference/v1/processors/language-detector) for a full list of configuration options.
125
+ :::info
126
+
127
+ Visit [LanguageDetector](/reference/v1/processors/language-detector) for a full list of configuration options.
128
+
129
+ :::
119
130
 
120
131
  ## Output processors
121
132
 
@@ -125,13 +136,12 @@ Output processors are applied after the language model generates a response, but
125
136
 
126
137
  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.
127
138
 
128
- ```typescript {8-12} title="src/mastra/agents/batched-agent.ts" showLineNumbers copy
139
+ ```typescript {7-11} title="src/mastra/agents/batched-agent.ts"
129
140
  import { BatchPartsProcessor } from "@mastra/core/processors";
130
141
 
131
142
  export const batchedAgent = new Agent({
132
143
  id: "batched-agent",
133
144
  name: "Batched Agent",
134
- // ...
135
145
  outputProcessors: [
136
146
  new BatchPartsProcessor({
137
147
  batchSize: 5,
@@ -142,19 +152,22 @@ export const batchedAgent = new Agent({
142
152
  });
143
153
  ```
144
154
 
145
- > See [BatchPartsProcessor](/reference/v1/processors/batch-parts-processor) for a full list of configuration options.
155
+ :::info
156
+
157
+ Visit [BatchPartsProcessor](/reference/v1/processors/batch-parts-processor) for a full list of configuration options.
158
+
159
+ :::
146
160
 
147
161
  ### Limiting token usage
148
162
 
149
163
  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.
150
164
 
151
- ```typescript {8-12} title="src/mastra/agents/limited-agent.ts" showLineNumbers copy
165
+ ```typescript {7-11} title="src/mastra/agents/limited-agent.ts"
152
166
  import { TokenLimiterProcessor } from "@mastra/core/processors";
153
167
 
154
168
  export const limitedAgent = new Agent({
155
169
  id: "limited-agent",
156
170
  name: "Limited Agent",
157
- // ...
158
171
  outputProcessors: [
159
172
  new TokenLimiterProcessor({
160
173
  limit: 1000,
@@ -165,13 +178,17 @@ export const limitedAgent = new Agent({
165
178
  });
166
179
  ```
167
180
 
168
- > See [TokenLimiterProcessor](/reference/v1/processors/token-limiter-processor) for a full list of configuration options.
181
+ :::info
182
+
183
+ Visit [TokenLimiterProcessor](/reference/v1/processors/token-limiter-processor) for a full list of configuration options.
184
+
185
+ :::
169
186
 
170
187
  ### Scrubbing system prompts
171
188
 
172
189
  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.
173
190
 
174
- ```typescript {7-16} title="src/mastra/agents/scrubbed-agent.ts" copy showLineNumbers
191
+ ```typescript {7-16} title="src/mastra/agents/scrubbed-agent.ts"
175
192
  import { SystemPromptScrubber } from "@mastra/core/processors";
176
193
 
177
194
  const scrubbedAgent = new Agent({
@@ -192,10 +209,14 @@ const scrubbedAgent = new Agent({
192
209
  });
193
210
  ```
194
211
 
195
- > See [SystemPromptScrubber](/reference/v1/processors/system-prompt-scrubber) for a full list of configuration options.
212
+ :::info
213
+
214
+ Visit [SystemPromptScrubber](/reference/v1/processors/system-prompt-scrubber) for a full list of configuration options.
215
+
216
+ :::
196
217
 
197
218
  :::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.
219
+ 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/mastra-server#stream-data-redaction) for details.
199
220
  :::
200
221
 
201
222
  ## Hybrid processors
@@ -206,13 +227,12 @@ Hybrid processors can be applied either before messages are sent to the language
206
227
 
207
228
  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.
208
229
 
209
- ```typescript {8-13,16-18} title="src/mastra/agents/moderated-agent.ts" showLineNumbers copy
230
+ ```typescript {7-12,15} title="src/mastra/agents/moderated-agent.ts"
210
231
  import { ModerationProcessor } from "@mastra/core/processors";
211
232
 
212
233
  export const moderatedAgent = new Agent({
213
234
  id: "moderated-agent",
214
235
  name: "Moderated Agent",
215
- // ...
216
236
  inputProcessors: [
217
237
  new ModerationProcessor({
218
238
  model: "openrouter/openai/gpt-oss-safeguard-20b",
@@ -222,26 +242,27 @@ export const moderatedAgent = new Agent({
222
242
  }),
223
243
  ],
224
244
  outputProcessors: [
225
- new ModerationProcessor({
226
- // ...
227
- }),
245
+ new ModerationProcessor(),
228
246
  ],
229
247
  });
230
248
  ```
231
249
 
232
- > See [ModerationProcessor](/reference/v1/processors/moderation-processor) for a full list of configuration options.
250
+ :::info
251
+
252
+ Visit [ModerationProcessor](/reference/v1/processors/moderation-processor) for a full list of configuration options.
253
+
254
+ :::
233
255
 
234
256
  ### Detecting and redacting PII
235
257
 
236
258
  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.
237
259
 
238
- ```typescript {8-15,18-20} title="src/mastra/agents/private-agent.ts" showLineNumbers copy
260
+ ```typescript {7-14,17} title="src/mastra/agents/private-agent.ts"
239
261
  import { PIIDetector } from "@mastra/core/processors";
240
262
 
241
263
  export const privateAgent = new Agent({
242
264
  id: "private-agent",
243
265
  name: "Private Agent",
244
- // ...
245
266
  inputProcessors: [
246
267
  new PIIDetector({
247
268
  model: "openrouter/openai/gpt-oss-safeguard-20b",
@@ -253,14 +274,16 @@ export const privateAgent = new Agent({
253
274
  }),
254
275
  ],
255
276
  outputProcessors: [
256
- new PIIDetector({
257
- // ...
258
- }),
277
+ new PIIDetector(),
259
278
  ],
260
279
  });
261
280
  ```
262
281
 
263
- > See [PIIDetector](/reference/v1/processors/pii-detector) for a full list of configuration options.
282
+ :::info
283
+
284
+ Visit [PIIDetector](/reference/v1/processors/pii-detector) for a full list of configuration options.
285
+
286
+ :::
264
287
 
265
288
  ## Applying multiple processors
266
289
 
@@ -274,7 +297,7 @@ A typical order might be:
274
297
 
275
298
  The order affects behavior, so arrange processors to suit your goals.
276
299
 
277
- ```typescript title="src/mastra/agents/test-agent.ts" showLineNumbers copy
300
+ ```typescript title="src/mastra/agents/test-agent.ts"
278
301
  import {
279
302
  UnicodeNormalizer,
280
303
  ModerationProcessor,
@@ -285,20 +308,11 @@ import {
285
308
  export const testAgent = new Agent({
286
309
  id: "test-agent",
287
310
  name: "Test Agent",
288
- // ...
289
311
  inputProcessors: [
290
- new UnicodeNormalizer({
291
- //...
292
- }),
293
- new PromptInjectionDetector({
294
- // ...
295
- }),
296
- new PIIDetector({
297
- // ...
298
- }),
299
- new ModerationProcessor({
300
- // ...
301
- }),
312
+ new UnicodeNormalizer(),
313
+ new PromptInjectionDetector(),
314
+ new PIIDetector(),
315
+ new ModerationProcessor(),
302
316
  ],
303
317
  });
304
318
  ```
@@ -309,16 +323,14 @@ Many of the built-in processors support a `strategy` parameter that controls how
309
323
 
310
324
  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.
311
325
 
312
- ```typescript {10} title="src/mastra/agents/private-agent.ts" showLineNumbers copy
326
+ ```typescript {8} title="src/mastra/agents/private-agent.ts"
313
327
  import { PIIDetector } from "@mastra/core/processors";
314
328
 
315
329
  export const privateAgent = new Agent({
316
330
  id: "private-agent",
317
331
  name: "Private Agent",
318
- // ...
319
332
  inputProcessors: [
320
333
  new PIIDetector({
321
- // ...
322
334
  strategy: "block",
323
335
  }),
324
336
  ],
@@ -327,41 +339,78 @@ export const privateAgent = new Agent({
327
339
 
328
340
  ### Handling blocked requests
329
341
 
330
- When a processor blocks a request, the agent will still return successfully without throwing an error. To handle blocked requests, check for `tripwire` or `tripwireReason` in the response.
342
+ When a processor blocks a request, the agent will still return successfully without throwing an error. To handle blocked requests, check for `tripwire` in the response.
331
343
 
332
- For example, if an agent uses the `PIIDetector` with `strategy: "block"` and the request includes a credit card number, it will be blocked and the response will include a `tripwireReason`.
344
+ For example, if an agent uses the `PIIDetector` with `strategy: "block"` and the request includes a credit card number, it will be blocked and the response will include tripwire information.
333
345
 
334
346
  #### `.generate()` example
335
347
 
336
- ```typescript showLineNumbers
348
+ ```typescript
337
349
  const result = await agent.generate(
338
350
  "Is this credit card number valid?: 4543 1374 5089 4332",
339
351
  );
340
352
 
341
- console.error(result.tripwire);
342
- console.error(result.tripwireReason);
353
+ if (result.tripwire) {
354
+ console.error("Blocked:", result.tripwire.reason);
355
+ console.error("Processor:", result.tripwire.processorId);
356
+ // Optional: check if retry was requested
357
+ console.error("Retry requested:", result.tripwire.retry);
358
+ // Optional: access additional metadata
359
+ console.error("Metadata:", result.tripwire.metadata);
360
+ }
343
361
  ```
344
362
 
345
363
  #### `.stream()` example
346
364
 
347
- ```typescript showLineNumbers
365
+ ```typescript
348
366
  const stream = await agent.stream(
349
367
  "Is this credit card number valid?: 4543 1374 5089 4332",
350
368
  );
351
369
 
352
370
  for await (const chunk of stream.fullStream) {
353
371
  if (chunk.type === "tripwire") {
354
- console.error(chunk.payload.tripwireReason);
372
+ console.error("Blocked:", chunk.payload.reason);
373
+ console.error("Processor:", chunk.payload.processorId);
355
374
  }
356
375
  }
357
376
  ```
358
377
 
359
- In this case, the `tripwireReason` indicates that a credit card number was detected:
378
+ In this case, the `reason` indicates that a credit card number was detected:
360
379
 
361
380
  ```text
362
381
  PII detected. Types: credit-card
363
382
  ```
364
383
 
384
+ ### Requesting retries
385
+
386
+ Processors can request that the LLM retry its response with feedback. This is useful for implementing quality checks:
387
+
388
+ ```typescript
389
+ export class QualityChecker implements Processor {
390
+ id = "quality-checker";
391
+
392
+ async processOutputStep({ text, abort, retryCount }) {
393
+ const score = await evaluateQuality(text);
394
+
395
+ if (score < 0.7 && retryCount < 3) {
396
+ // Request retry with feedback for the LLM
397
+ abort("Response quality too low. Please be more specific.", {
398
+ retry: true,
399
+ metadata: { score },
400
+ });
401
+ }
402
+
403
+ return [];
404
+ }
405
+ }
406
+ ```
407
+
408
+ The `abort()` function accepts an optional second parameter with:
409
+ - `retry: true` - Request the LLM retry the step
410
+ - `metadata: unknown` - Attach additional data for debugging/logging
411
+
412
+ Use `retryCount` to track retry attempts and prevent infinite loops.
413
+
365
414
  ## Custom processors
366
415
 
367
416
  If the built-in processors don’t cover your needs, you can create your own by extending the `Processor` class.
@@ -0,0 +1,281 @@
1
+ ---
2
+ title: "Network Approval | Agents"
3
+ description: Learn how to require approvals, suspend execution, and resume suspended networks while keeping humans in control of agent network workflows.
4
+ packages:
5
+ - "@mastra/core"
6
+ - "@mastra/libsql"
7
+ - "@mastra/memory"
8
+ ---
9
+
10
+ # Network Approval
11
+
12
+ Agent networks can require the same [human-in-the-loop](/docs/v1/workflows/human-in-the-loop) oversight used in individual agents and workflows. When a tool, sub-agent, or workflow within a network requires approval or suspends execution, the network pauses and emits events that allow your application to collect user input before resuming.
13
+
14
+ ## Storage
15
+
16
+ Network approval uses snapshots to capture execution state. Ensure you've enabled a storage provider in your 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
+ storage: new LibSQLStore({
24
+ id: "mastra-storage",
25
+ url: ":memory:"
26
+ })
27
+ });
28
+ ```
29
+
30
+ ## Approving network tool calls
31
+
32
+ When a tool within a network has `requireApproval: true`, the network stream emits an `agent-execution-approval` chunk and pauses. To allow the tool to execute, call `approveNetworkToolCall` with the `runId`.
33
+
34
+ ```typescript
35
+ const stream = await routingAgent.network("Process this query", {
36
+ memory: {
37
+ thread: "user-123",
38
+ resource: "my-app"
39
+ }
40
+ });
41
+
42
+ let runId: string;
43
+
44
+ for await (const chunk of stream) {
45
+ runId = stream.runId;
46
+ // if the requirApproval is in a tool inside a subAgent or the subAgent has requireToolApproval set to true
47
+ if (chunk.type === "agent-execution-approval") {
48
+ console.log("Tool requires approval:", chunk.payload);
49
+ }
50
+
51
+ // if the requirApproval is in a tool directly in the network agent
52
+ if (chunk.type === "tool-execution-approval") {
53
+ console.log("Tool requires approval:", chunk.payload);
54
+ }
55
+ }
56
+
57
+ // Approve and resume execution
58
+ const approvedStream = await routingAgent.approveNetworkToolCall({
59
+ runId,
60
+ memory: {
61
+ thread: "user-123",
62
+ resource: "my-app"
63
+ }
64
+ });
65
+
66
+ for await (const chunk of approvedStream) {
67
+ if (chunk.type === "network-execution-event-step-finish") {
68
+ console.log(chunk.payload.result);
69
+ }
70
+ }
71
+ ```
72
+
73
+ ## Declining network tool calls
74
+
75
+ To decline a pending tool call and prevent execution, call `declineNetworkToolCall`. The network continues without executing the tool.
76
+
77
+ ```typescript
78
+ const declinedStream = await routingAgent.declineNetworkToolCall({
79
+ runId,
80
+ memory: {
81
+ thread: "user-123",
82
+ resource: "my-app"
83
+ }
84
+ });
85
+
86
+ for await (const chunk of declinedStream) {
87
+ if (chunk.type === "network-execution-event-step-finish") {
88
+ console.log(chunk.payload.result);
89
+ }
90
+ }
91
+ ```
92
+
93
+ ## Resuming suspended networks
94
+
95
+ When a primitive in the network calls `suspend()`, the stream emits an `agent-execution-suspended`/`tool-execution-suspended`/`workflow-execution-suspended` chunk with a `suspendPayload` containing context from the primitive. Use `resumeNetwork` to provide the data requested by the primitive and continue execution.
96
+
97
+ ```typescript
98
+ import { createTool } from "@mastra/core/tools";
99
+ import { z } from "zod";
100
+
101
+ const confirmationTool = createTool({
102
+ id: "confirmation-tool",
103
+ description: "Requests user confirmation before proceeding",
104
+ inputSchema: z.object({
105
+ action: z.string()
106
+ }),
107
+ outputSchema: z.object({
108
+ confirmed: z.boolean(),
109
+ action: z.string()
110
+ }),
111
+ suspendSchema: z.object({
112
+ message: z.string(),
113
+ action: z.string()
114
+ }),
115
+ resumeSchema: z.object({
116
+ confirmed: z.boolean()
117
+ }),
118
+ execute: async (inputData, context) => {
119
+ const { resumeData, suspend } = context?.agent ?? {};
120
+
121
+ if (!resumeData?.confirmed) {
122
+ return suspend?.({
123
+ message: `Please confirm: ${inputData.action}`,
124
+ action: inputData.action
125
+ });
126
+ }
127
+
128
+ return { confirmed: true, action: inputData.action };
129
+ }
130
+ });
131
+ ```
132
+
133
+ Handle the suspension and resume with user-provided data:
134
+
135
+ ```typescript
136
+ const stream = await routingAgent.network("Delete the old records", {
137
+ memory: {
138
+ thread: "user-123",
139
+ resource: "my-app"
140
+ }
141
+ });
142
+
143
+ for await (const chunk of stream) {
144
+ if (chunk.type === "workflow-execution-suspended") {
145
+ console.log(chunk.payload.suspendPayload);
146
+ // { message: "Please confirm: delete old records", action: "delete old records" }
147
+ }
148
+ }
149
+
150
+ // Resume with user confirmation
151
+ const resumedStream = await routingAgent.resumeNetwork(
152
+ { confirmed: true },
153
+ {
154
+ runId: stream.runId,
155
+ memory: {
156
+ thread: "user-123",
157
+ resource: "my-app"
158
+ }
159
+ }
160
+ );
161
+
162
+ for await (const chunk of resumedStream) {
163
+ if (chunk.type === "network-execution-event-step-finish") {
164
+ console.log(chunk.payload.result);
165
+ }
166
+ }
167
+ ```
168
+
169
+ ## Automatic primitive resumption
170
+
171
+ When using primitives that call `suspend()`, you can enable automatic resumption so the network resumes suspended primitives based on the user's next message. This creates a conversational flow where users provide the required information naturally.
172
+
173
+ ### Enabling auto-resume
174
+
175
+ Set `autoResumeSuspendedTools` to `true` in the agent's `defaultNetworkOptions` or when calling `network()`:
176
+
177
+ ```typescript
178
+ import { Agent } from "@mastra/core/agent";
179
+ import { Memory } from "@mastra/memory";
180
+
181
+ // Option 1: In agent configuration
182
+ const routingAgent = new Agent({
183
+ id: "routing-agent",
184
+ name: "Routing Agent",
185
+ instructions: "You coordinate tasks across multiple agents",
186
+ model: "openai/gpt-4o-mini",
187
+ tools: { confirmationTool },
188
+ memory: new Memory(),
189
+ defaultNetworkOptions: {
190
+ autoResumeSuspendedTools: true,
191
+ },
192
+ });
193
+
194
+ // Option 2: Per-request
195
+ const stream = await routingAgent.network("Process this request", {
196
+ autoResumeSuspendedTools: true,
197
+ memory: {
198
+ thread: "user-123",
199
+ resource: "my-app"
200
+ }
201
+ });
202
+ ```
203
+
204
+ ### How it works
205
+
206
+ When `autoResumeSuspendedTools` is enabled:
207
+
208
+ 1. A primitive suspends execution by calling `suspend()` with a payload
209
+ 2. The suspension is persisted to memory along with the conversation
210
+ 3. When the user sends their next message on the same thread, the network:
211
+ - Detects the suspended primitive from message history
212
+ - Extracts `resumeData` from the user's message based on the tool's `resumeSchema`
213
+ - Automatically resumes the primitive with the extracted data
214
+
215
+ ### Example
216
+
217
+ ```typescript
218
+ const stream = await routingAgent.network("Delete the old records", {
219
+ autoResumeSuspendedTools: true,
220
+ memory: {
221
+ thread: "user-123",
222
+ resource: "my-app"
223
+ }
224
+ });
225
+
226
+ for await (const chunk of stream) {
227
+ if (chunk.type === "workflow-execution-suspended") {
228
+ console.log(chunk.payload.suspendPayload);
229
+ // { message: "Please confirm: delete old records", action: "delete old records" }
230
+ }
231
+ }
232
+
233
+ // User provides confirmation in their next message
234
+ const resumedStream = await routingAgent.network("Yes, confirmed", {
235
+ autoResumeSuspendedTools: true,
236
+ memory: {
237
+ thread: "user-123",
238
+ resource: "my-app"
239
+ }
240
+ });
241
+
242
+ for await (const chunk of resumedStream) {
243
+ if (chunk.type === "network-execution-event-step-finish") {
244
+ console.log(chunk.payload.result);
245
+ }
246
+ }
247
+ ```
248
+
249
+ **Conversation flow:**
250
+
251
+ ```
252
+ User: "Delete the old records"
253
+ Agent: "Please confirm: delete old records"
254
+
255
+ User: "Yes, confirmed"
256
+ Agent: "Records deleted successfully"
257
+ ```
258
+
259
+ ### Requirements
260
+
261
+ For automatic tool resumption to work:
262
+
263
+ - **Memory configured**: The agent needs memory to track suspended tools across messages
264
+ - **Same thread**: The follow-up message must use the same memory thread and resource identifiers
265
+ - **`resumeSchema` defined**: The tool (either directly in the network agent or in a subAgent) / workflow (step that gets suspended) must define a `resumeSchema` so the agent knows what data to extract from the user's message
266
+
267
+ ### Manual vs automatic resumption
268
+
269
+ | Approach | Use case |
270
+ |----------|----------|
271
+ | Manual (`resumeNetwork()`) | Programmatic control, webhooks, button clicks, external triggers |
272
+ | Automatic (`autoResumeSuspendedTools`) | Conversational flows where users provide resume data in natural language |
273
+
274
+ Both approaches work with the same tool definitions. Automatic resumption triggers only when suspended tools exist in the message history and the user sends a new message on the same thread.
275
+
276
+ ## Related
277
+
278
+ - [Agent Networks](./networks)
279
+ - [Agent Approval](./agent-approval)
280
+ - [Human-in-the-Loop](/docs/v1/workflows/human-in-the-loop)
281
+ - [Agent Memory](./agent-memory)