@mastra/mcp-docs-server 1.0.0-beta.1 → 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 (491) 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 +393 -193
  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 +201 -1
  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 +234 -34
  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 +244 -44
  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 +1 -1
  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 +18 -167
  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 +1 -1
  102. package/.docs/raw/auth/clerk.mdx +1 -1
  103. package/.docs/raw/auth/firebase.mdx +1 -1
  104. package/.docs/raw/auth/index.mdx +1 -1
  105. package/.docs/raw/auth/jwt.mdx +1 -1
  106. package/.docs/raw/auth/supabase.mdx +1 -1
  107. package/.docs/raw/auth/workos.mdx +1 -1
  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/05-running-playground.md +5 -5
  112. package/.docs/raw/course/01-first-agent/09-testing-your-agent.md +3 -3
  113. package/.docs/raw/course/01-first-agent/13-testing-your-tool.md +3 -3
  114. package/.docs/raw/course/01-first-agent/17-testing-memory.md +2 -2
  115. package/.docs/raw/course/04-workflows/07-using-playground.md +1 -1
  116. package/.docs/raw/deployment/{server-deployment.mdx → building-mastra.mdx} +4 -4
  117. package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +2 -2
  118. package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +3 -3
  119. package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +2 -2
  120. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/cloudflare-deployer.mdx +1 -1
  121. package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +2 -2
  122. package/.docs/raw/deployment/cloud-providers/index.mdx +26 -29
  123. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/netlify-deployer.mdx +45 -14
  124. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/vercel-deployer.mdx +1 -1
  125. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/dashboard.mdx +3 -3
  126. package/.docs/raw/deployment/mastra-cloud/observability.mdx +53 -0
  127. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/overview.mdx +3 -3
  128. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/setting-up.mdx +4 -4
  129. package/.docs/raw/deployment/monorepo.mdx +3 -3
  130. package/.docs/raw/deployment/overview.mdx +7 -7
  131. package/.docs/raw/deployment/web-framework.mdx +6 -6
  132. package/.docs/raw/evals/{off-the-shelf-scorers.mdx → built-in-scorers.mdx} +17 -15
  133. package/.docs/raw/evals/custom-scorers.mdx +4 -6
  134. package/.docs/raw/evals/overview.mdx +5 -6
  135. package/.docs/raw/evals/running-in-ci.mdx +2 -4
  136. package/.docs/raw/getting-started/{installation.mdx → manual-install.mdx} +6 -80
  137. package/.docs/raw/getting-started/mcp-docs-server.mdx +6 -6
  138. package/.docs/raw/getting-started/project-structure.mdx +2 -2
  139. package/.docs/raw/getting-started/start.mdx +72 -0
  140. package/.docs/raw/getting-started/studio.mdx +8 -6
  141. package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +147 -0
  142. package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +627 -0
  143. package/.docs/raw/{frameworks/agentic-uis → guides/build-your-ui}/assistant-ui.mdx +71 -19
  144. package/.docs/raw/guides/build-your-ui/copilotkit.mdx +206 -0
  145. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/astro.mdx +24 -26
  146. package/.docs/raw/{frameworks/servers → guides/getting-started}/express.mdx +4 -5
  147. package/.docs/raw/guides/{quickstarts/nextjs.mdx → getting-started/next-js.mdx} +26 -25
  148. package/.docs/raw/guides/getting-started/quickstart.mdx +97 -0
  149. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/sveltekit.mdx +24 -26
  150. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/vite-react.mdx +7 -7
  151. package/.docs/raw/guides/guide/ai-recruiter.mdx +2 -3
  152. package/.docs/raw/guides/guide/chef-michel.mdx +2 -3
  153. package/.docs/raw/guides/guide/notes-mcp-server.mdx +2 -2
  154. package/.docs/raw/guides/guide/research-assistant.mdx +7 -8
  155. package/.docs/raw/guides/guide/stock-agent.mdx +4 -6
  156. package/.docs/raw/guides/guide/web-search.mdx +12 -10
  157. package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +421 -0
  158. package/.docs/raw/guides/index.mdx +3 -35
  159. package/.docs/raw/guides/migrations/agentnetwork.mdx +4 -4
  160. package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +119 -0
  161. package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +51 -1
  162. package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +42 -2
  163. package/.docs/raw/guides/migrations/upgrade-to-v1/evals.mdx +31 -1
  164. package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +27 -3
  165. package/.docs/raw/guides/migrations/upgrade-to-v1/mcp.mdx +1 -1
  166. package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +28 -0
  167. package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +25 -3
  168. package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +80 -0
  169. package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +68 -3
  170. package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +25 -1
  171. package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +174 -1
  172. package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +2 -2
  173. package/.docs/raw/index.mdx +3 -3
  174. package/.docs/raw/mcp/overview.mdx +358 -0
  175. package/.docs/raw/mcp/publishing-mcp-server.mdx +139 -0
  176. package/.docs/raw/memory/conversation-history.mdx +1 -1
  177. package/.docs/raw/memory/memory-processors.mdx +265 -80
  178. package/.docs/raw/memory/overview.mdx +2 -2
  179. package/.docs/raw/memory/semantic-recall.mdx +9 -9
  180. package/.docs/raw/memory/storage/memory-with-libsql.mdx +3 -8
  181. package/.docs/raw/memory/storage/memory-with-mongodb.mdx +150 -0
  182. package/.docs/raw/memory/storage/memory-with-pg.mdx +3 -8
  183. package/.docs/raw/memory/storage/memory-with-upstash.mdx +3 -8
  184. package/.docs/raw/memory/threads-and-resources.mdx +4 -4
  185. package/.docs/raw/memory/working-memory.mdx +16 -8
  186. package/.docs/raw/{logging.mdx → observability/logging.mdx} +7 -7
  187. package/.docs/raw/observability/overview.mdx +3 -4
  188. package/.docs/raw/observability/tracing/bridges/otel.mdx +200 -0
  189. package/.docs/raw/observability/tracing/exporters/arize.mdx +37 -1
  190. package/.docs/raw/observability/tracing/exporters/braintrust.mdx +20 -1
  191. package/.docs/raw/observability/tracing/exporters/cloud.mdx +2 -2
  192. package/.docs/raw/observability/tracing/exporters/default.mdx +1 -1
  193. package/.docs/raw/observability/tracing/exporters/langfuse.mdx +84 -1
  194. package/.docs/raw/observability/tracing/exporters/langsmith.mdx +13 -1
  195. package/.docs/raw/observability/tracing/exporters/otel.mdx +123 -25
  196. package/.docs/raw/observability/tracing/exporters/posthog.mdx +127 -0
  197. package/.docs/raw/observability/tracing/overview.mdx +80 -9
  198. package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +1 -2
  199. package/.docs/raw/rag/chunking-and-embedding.mdx +16 -17
  200. package/.docs/raw/rag/overview.mdx +4 -3
  201. package/.docs/raw/rag/retrieval.mdx +44 -39
  202. package/.docs/raw/rag/vector-databases.mdx +94 -3
  203. package/.docs/raw/reference/agents/agent.mdx +8 -12
  204. package/.docs/raw/reference/agents/generate.mdx +67 -99
  205. package/.docs/raw/reference/agents/generateLegacy.mdx +3 -3
  206. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +1 -1
  207. package/.docs/raw/reference/agents/getDefaultOptions.mdx +1 -1
  208. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +1 -1
  209. package/.docs/raw/reference/agents/getDescription.mdx +1 -1
  210. package/.docs/raw/reference/agents/getInstructions.mdx +1 -1
  211. package/.docs/raw/reference/agents/getLLM.mdx +2 -2
  212. package/.docs/raw/reference/agents/getMemory.mdx +1 -1
  213. package/.docs/raw/reference/agents/getModel.mdx +1 -1
  214. package/.docs/raw/reference/agents/getTools.mdx +69 -0
  215. package/.docs/raw/reference/agents/getVoice.mdx +1 -1
  216. package/.docs/raw/reference/agents/listAgents.mdx +1 -1
  217. package/.docs/raw/reference/agents/listScorers.mdx +1 -1
  218. package/.docs/raw/reference/agents/listTools.mdx +2 -2
  219. package/.docs/raw/reference/agents/listWorkflows.mdx +1 -1
  220. package/.docs/raw/reference/agents/network.mdx +33 -72
  221. package/.docs/raw/reference/ai-sdk/chat-route.mdx +127 -0
  222. package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +117 -0
  223. package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +64 -0
  224. package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +116 -0
  225. package/.docs/raw/reference/ai-sdk/network-route.mdx +99 -0
  226. package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +289 -0
  227. package/.docs/raw/reference/ai-sdk/with-mastra.mdx +119 -0
  228. package/.docs/raw/reference/ai-sdk/workflow-route.mdx +110 -0
  229. package/.docs/raw/reference/auth/auth0.mdx +1 -1
  230. package/.docs/raw/reference/auth/clerk.mdx +1 -1
  231. package/.docs/raw/reference/auth/firebase.mdx +1 -1
  232. package/.docs/raw/reference/auth/jwt.mdx +1 -1
  233. package/.docs/raw/reference/auth/supabase.mdx +1 -1
  234. package/.docs/raw/reference/auth/workos.mdx +1 -1
  235. package/.docs/raw/reference/cli/create-mastra.mdx +1 -1
  236. package/.docs/raw/reference/cli/mastra.mdx +19 -6
  237. package/.docs/raw/reference/client-js/agents.mdx +252 -68
  238. package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
  239. package/.docs/raw/reference/client-js/logs.mdx +1 -1
  240. package/.docs/raw/reference/client-js/mastra-client.mdx +4 -4
  241. package/.docs/raw/reference/client-js/memory.mdx +48 -2
  242. package/.docs/raw/reference/client-js/observability.mdx +1 -1
  243. package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
  244. package/.docs/raw/reference/client-js/tools.mdx +1 -1
  245. package/.docs/raw/reference/client-js/vectors.mdx +1 -1
  246. package/.docs/raw/reference/client-js/workflows.mdx +93 -64
  247. package/.docs/raw/reference/core/addGateway.mdx +59 -0
  248. package/.docs/raw/reference/core/getAgent.mdx +1 -1
  249. package/.docs/raw/reference/core/getAgentById.mdx +1 -1
  250. package/.docs/raw/reference/core/getDeployer.mdx +1 -1
  251. package/.docs/raw/reference/core/getGateway.mdx +59 -0
  252. package/.docs/raw/reference/core/getGatewayById.mdx +62 -0
  253. package/.docs/raw/reference/core/getLogger.mdx +2 -2
  254. package/.docs/raw/reference/core/getMCPServer.mdx +2 -2
  255. package/.docs/raw/reference/core/getMCPServerById.mdx +2 -2
  256. package/.docs/raw/reference/core/getMemory.mdx +73 -0
  257. package/.docs/raw/reference/core/getScorer.mdx +1 -1
  258. package/.docs/raw/reference/core/getScorerById.mdx +1 -1
  259. package/.docs/raw/reference/core/getServer.mdx +2 -2
  260. package/.docs/raw/reference/core/getStorage.mdx +1 -1
  261. package/.docs/raw/reference/core/getStoredAgentById.mdx +183 -0
  262. package/.docs/raw/reference/core/getTelemetry.mdx +1 -1
  263. package/.docs/raw/reference/core/getVector.mdx +1 -1
  264. package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
  265. package/.docs/raw/reference/core/listAgents.mdx +1 -1
  266. package/.docs/raw/reference/core/listGateways.mdx +53 -0
  267. package/.docs/raw/reference/core/listLogs.mdx +2 -2
  268. package/.docs/raw/reference/core/listLogsByRunId.mdx +2 -2
  269. package/.docs/raw/reference/core/listMCPServers.mdx +2 -2
  270. package/.docs/raw/reference/core/listMemory.mdx +70 -0
  271. package/.docs/raw/reference/core/listScorers.mdx +1 -1
  272. package/.docs/raw/reference/core/listStoredAgents.mdx +151 -0
  273. package/.docs/raw/reference/core/listVectors.mdx +1 -1
  274. package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
  275. package/.docs/raw/reference/core/mastra-class.mdx +17 -1
  276. package/.docs/raw/reference/core/mastra-model-gateway.mdx +227 -0
  277. package/.docs/raw/reference/core/setLogger.mdx +2 -2
  278. package/.docs/raw/reference/core/setStorage.mdx +1 -1
  279. package/.docs/raw/reference/core/setTelemetry.mdx +2 -2
  280. package/.docs/raw/reference/deployer/cloudflare.mdx +1 -1
  281. package/.docs/raw/reference/deployer/deployer.mdx +1 -1
  282. package/.docs/raw/reference/deployer/netlify.mdx +2 -3
  283. package/.docs/raw/reference/deployer/vercel.mdx +1 -1
  284. package/.docs/raw/reference/evals/answer-relevancy.mdx +29 -99
  285. package/.docs/raw/reference/evals/answer-similarity.mdx +13 -259
  286. package/.docs/raw/reference/evals/bias.mdx +30 -88
  287. package/.docs/raw/reference/evals/completeness.mdx +32 -91
  288. package/.docs/raw/reference/evals/content-similarity.mdx +29 -89
  289. package/.docs/raw/reference/evals/context-precision.mdx +29 -131
  290. package/.docs/raw/reference/evals/context-relevance.mdx +12 -12
  291. package/.docs/raw/reference/evals/create-scorer.mdx +1 -1
  292. package/.docs/raw/reference/evals/faithfulness.mdx +29 -102
  293. package/.docs/raw/reference/evals/hallucination.mdx +29 -104
  294. package/.docs/raw/reference/evals/keyword-coverage.mdx +29 -108
  295. package/.docs/raw/reference/evals/mastra-scorer.mdx +1 -1
  296. package/.docs/raw/reference/evals/noise-sensitivity.mdx +12 -12
  297. package/.docs/raw/reference/evals/prompt-alignment.mdx +16 -16
  298. package/.docs/raw/reference/evals/run-evals.mdx +1 -1
  299. package/.docs/raw/reference/evals/scorer-utils.mdx +362 -0
  300. package/.docs/raw/reference/evals/textual-difference.mdx +28 -101
  301. package/.docs/raw/reference/evals/tone-consistency.mdx +26 -99
  302. package/.docs/raw/reference/evals/tool-call-accuracy.mdx +8 -8
  303. package/.docs/raw/reference/evals/toxicity.mdx +30 -93
  304. package/.docs/raw/reference/index.mdx +1 -0
  305. package/.docs/raw/reference/logging/pino-logger.mdx +2 -2
  306. package/.docs/raw/reference/memory/createThread.mdx +1 -1
  307. package/.docs/raw/reference/memory/deleteMessages.mdx +1 -1
  308. package/.docs/raw/reference/memory/getThreadById.mdx +1 -1
  309. package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +1 -1
  310. package/.docs/raw/reference/memory/memory-class.mdx +6 -8
  311. package/.docs/raw/reference/memory/query.mdx +1 -1
  312. package/.docs/raw/reference/memory/recall.mdx +1 -1
  313. package/.docs/raw/reference/observability/tracing/bridges/otel.mdx +177 -0
  314. package/.docs/raw/reference/observability/tracing/configuration.mdx +1 -5
  315. package/.docs/raw/reference/observability/tracing/exporters/arize.mdx +30 -1
  316. package/.docs/raw/reference/observability/tracing/exporters/braintrust.mdx +1 -1
  317. package/.docs/raw/reference/observability/tracing/exporters/cloud-exporter.mdx +1 -1
  318. package/.docs/raw/reference/observability/tracing/exporters/console-exporter.mdx +1 -1
  319. package/.docs/raw/reference/observability/tracing/exporters/default-exporter.mdx +1 -1
  320. package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +44 -1
  321. package/.docs/raw/reference/observability/tracing/exporters/langsmith.mdx +18 -2
  322. package/.docs/raw/reference/observability/tracing/exporters/otel.mdx +34 -44
  323. package/.docs/raw/reference/observability/tracing/exporters/posthog.mdx +132 -0
  324. package/.docs/raw/reference/observability/tracing/instances.mdx +1 -5
  325. package/.docs/raw/reference/observability/tracing/interfaces.mdx +30 -5
  326. package/.docs/raw/reference/observability/tracing/processors/sensitive-data-filter.mdx +1 -1
  327. package/.docs/raw/reference/observability/tracing/spans.mdx +1 -5
  328. package/.docs/raw/reference/processors/batch-parts-processor.mdx +2 -2
  329. package/.docs/raw/reference/processors/language-detector.mdx +11 -4
  330. package/.docs/raw/reference/processors/message-history-processor.mdx +131 -0
  331. package/.docs/raw/reference/processors/moderation-processor.mdx +13 -6
  332. package/.docs/raw/reference/processors/pii-detector.mdx +13 -6
  333. package/.docs/raw/reference/processors/processor-interface.mdx +502 -0
  334. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +11 -4
  335. package/.docs/raw/reference/processors/semantic-recall-processor.mdx +197 -0
  336. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +4 -5
  337. package/.docs/raw/reference/processors/token-limiter-processor.mdx +3 -3
  338. package/.docs/raw/reference/processors/tool-call-filter.mdx +125 -0
  339. package/.docs/raw/reference/processors/unicode-normalizer.mdx +2 -2
  340. package/.docs/raw/reference/processors/working-memory-processor.mdx +221 -0
  341. package/.docs/raw/reference/rag/chunk.mdx +1 -1
  342. package/.docs/raw/reference/rag/database-config.mdx +1 -1
  343. package/.docs/raw/reference/rag/document.mdx +1 -1
  344. package/.docs/raw/reference/rag/embeddings.mdx +6 -6
  345. package/.docs/raw/reference/rag/extract-params.mdx +1 -1
  346. package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
  347. package/.docs/raw/reference/rag/metadata-filters.mdx +1 -1
  348. package/.docs/raw/reference/rag/rerank.mdx +2 -3
  349. package/.docs/raw/reference/rag/rerankWithScorer.mdx +1 -2
  350. package/.docs/raw/reference/server/create-route.mdx +328 -0
  351. package/.docs/raw/reference/server/express-adapter.mdx +260 -0
  352. package/.docs/raw/reference/server/hono-adapter.mdx +242 -0
  353. package/.docs/raw/reference/server/mastra-server.mdx +345 -0
  354. package/.docs/raw/reference/server/routes.mdx +250 -0
  355. package/.docs/raw/reference/storage/cloudflare-d1.mdx +38 -1
  356. package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
  357. package/.docs/raw/reference/storage/convex.mdx +164 -0
  358. package/.docs/raw/reference/storage/dynamodb.mdx +1 -1
  359. package/.docs/raw/reference/storage/lance.mdx +34 -1
  360. package/.docs/raw/reference/storage/libsql.mdx +38 -1
  361. package/.docs/raw/reference/storage/mongodb.mdx +40 -1
  362. package/.docs/raw/reference/storage/mssql.mdx +38 -1
  363. package/.docs/raw/reference/storage/postgresql.mdx +38 -1
  364. package/.docs/raw/reference/storage/upstash.mdx +1 -1
  365. package/.docs/raw/reference/streaming/ChunkType.mdx +2 -2
  366. package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +1 -1
  367. package/.docs/raw/reference/streaming/agents/stream.mdx +68 -95
  368. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +1 -1
  369. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +8 -10
  370. package/.docs/raw/reference/streaming/workflows/{resumeStreamVNext.mdx → resumeStream.mdx} +51 -11
  371. package/.docs/raw/reference/streaming/workflows/stream.mdx +84 -25
  372. package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +170 -0
  373. package/.docs/raw/reference/templates/overview.mdx +2 -5
  374. package/.docs/raw/reference/tools/client.mdx +2 -3
  375. package/.docs/raw/reference/tools/create-tool.mdx +135 -4
  376. package/.docs/raw/reference/tools/document-chunker-tool.mdx +1 -1
  377. package/.docs/raw/reference/tools/graph-rag-tool.mdx +7 -7
  378. package/.docs/raw/reference/tools/mcp-client.mdx +131 -23
  379. package/.docs/raw/reference/tools/mcp-server.mdx +56 -8
  380. package/.docs/raw/reference/tools/vector-query-tool.mdx +16 -17
  381. package/.docs/raw/reference/vectors/astra.mdx +1 -1
  382. package/.docs/raw/reference/vectors/chroma.mdx +82 -2
  383. package/.docs/raw/reference/vectors/convex.mdx +429 -0
  384. package/.docs/raw/reference/vectors/couchbase.mdx +25 -18
  385. package/.docs/raw/reference/vectors/duckdb.mdx +462 -0
  386. package/.docs/raw/reference/vectors/elasticsearch.mdx +310 -0
  387. package/.docs/raw/reference/vectors/lance.mdx +39 -23
  388. package/.docs/raw/reference/vectors/libsql.mdx +36 -3
  389. package/.docs/raw/reference/vectors/mongodb.mdx +36 -3
  390. package/.docs/raw/reference/vectors/opensearch.mdx +38 -17
  391. package/.docs/raw/reference/vectors/pg.mdx +44 -37
  392. package/.docs/raw/reference/vectors/pinecone.mdx +70 -3
  393. package/.docs/raw/reference/vectors/qdrant.mdx +37 -2
  394. package/.docs/raw/reference/vectors/s3vectors.mdx +1 -1
  395. package/.docs/raw/reference/vectors/turbopuffer.mdx +75 -1
  396. package/.docs/raw/reference/vectors/upstash.mdx +1 -1
  397. package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
  398. package/.docs/raw/reference/voice/azure.mdx +96 -81
  399. package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
  400. package/.docs/raw/reference/voice/composite-voice.mdx +72 -29
  401. package/.docs/raw/reference/voice/deepgram.mdx +1 -1
  402. package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
  403. package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
  404. package/.docs/raw/reference/voice/google.mdx +160 -21
  405. package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
  406. package/.docs/raw/reference/voice/murf.mdx +1 -1
  407. package/.docs/raw/reference/voice/openai-realtime.mdx +3 -3
  408. package/.docs/raw/reference/voice/openai.mdx +1 -1
  409. package/.docs/raw/reference/voice/playai.mdx +1 -1
  410. package/.docs/raw/reference/voice/sarvam.mdx +1 -1
  411. package/.docs/raw/reference/voice/speechify.mdx +1 -1
  412. package/.docs/raw/reference/voice/voice.addInstructions.mdx +3 -4
  413. package/.docs/raw/reference/voice/voice.addTools.mdx +2 -2
  414. package/.docs/raw/reference/voice/voice.answer.mdx +2 -2
  415. package/.docs/raw/reference/voice/voice.close.mdx +2 -2
  416. package/.docs/raw/reference/voice/voice.connect.mdx +2 -2
  417. package/.docs/raw/reference/voice/voice.events.mdx +1 -1
  418. package/.docs/raw/reference/voice/voice.getSpeakers.mdx +1 -1
  419. package/.docs/raw/reference/voice/voice.listen.mdx +87 -53
  420. package/.docs/raw/reference/voice/voice.off.mdx +2 -2
  421. package/.docs/raw/reference/voice/voice.on.mdx +2 -2
  422. package/.docs/raw/reference/voice/voice.send.mdx +2 -2
  423. package/.docs/raw/reference/voice/voice.speak.mdx +76 -41
  424. package/.docs/raw/reference/voice/voice.updateConfig.mdx +2 -2
  425. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +1 -1
  426. package/.docs/raw/reference/workflows/run-methods/restart.mdx +142 -0
  427. package/.docs/raw/reference/workflows/run-methods/resume.mdx +45 -1
  428. package/.docs/raw/reference/workflows/run-methods/start.mdx +48 -4
  429. package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +310 -0
  430. package/.docs/raw/reference/workflows/run.mdx +28 -6
  431. package/.docs/raw/reference/workflows/step.mdx +65 -1
  432. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
  433. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
  434. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +1 -1
  435. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
  436. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
  437. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
  438. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +1 -1
  439. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
  440. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +1 -1
  441. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
  442. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
  443. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
  444. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
  445. package/.docs/raw/reference/workflows/workflow.mdx +21 -2
  446. package/.docs/raw/server-db/custom-adapters.mdx +386 -0
  447. package/.docs/raw/server-db/custom-api-routes.mdx +6 -6
  448. package/.docs/raw/server-db/mastra-client.mdx +3 -4
  449. package/.docs/raw/server-db/{production-server.mdx → mastra-server.mdx} +16 -8
  450. package/.docs/raw/server-db/middleware.mdx +31 -31
  451. package/.docs/raw/server-db/request-context.mdx +3 -4
  452. package/.docs/raw/server-db/server-adapters.mdx +312 -0
  453. package/.docs/raw/server-db/storage.mdx +12 -1
  454. package/.docs/raw/streaming/events.mdx +1 -1
  455. package/.docs/raw/streaming/overview.mdx +27 -16
  456. package/.docs/raw/streaming/tool-streaming.mdx +58 -19
  457. package/.docs/raw/streaming/workflow-streaming.mdx +6 -12
  458. package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -3
  459. package/.docs/raw/tools-mcp/mcp-overview.mdx +4 -6
  460. package/.docs/raw/tools-mcp/overview.mdx +1 -1
  461. package/.docs/raw/voice/overview.mdx +88 -41
  462. package/.docs/raw/voice/speech-to-speech.mdx +5 -5
  463. package/.docs/raw/voice/speech-to-text.mdx +2 -3
  464. package/.docs/raw/voice/text-to-speech.mdx +2 -3
  465. package/.docs/raw/workflows/agents-and-tools.mdx +43 -5
  466. package/.docs/raw/workflows/control-flow.mdx +186 -1
  467. package/.docs/raw/workflows/error-handling.mdx +5 -4
  468. package/.docs/raw/workflows/human-in-the-loop.mdx +160 -213
  469. package/.docs/raw/workflows/inngest-workflow.mdx +1 -1
  470. package/.docs/raw/workflows/input-data-mapping.mdx +1 -1
  471. package/.docs/raw/workflows/overview.mdx +67 -47
  472. package/.docs/raw/workflows/snapshots.mdx +5 -3
  473. package/.docs/raw/workflows/suspend-and-resume.mdx +121 -204
  474. package/.docs/raw/workflows/time-travel.mdx +313 -0
  475. package/.docs/raw/workflows/workflow-state.mdx +190 -0
  476. package/CHANGELOG.md +81 -0
  477. package/dist/{chunk-5NJC7NRO.js → chunk-4CM2BQNP.js} +24 -4
  478. package/dist/prepare-docs/package-changes.d.ts.map +1 -1
  479. package/dist/prepare-docs/prepare.js +1 -1
  480. package/dist/stdio.js +17 -19
  481. package/package.json +11 -15
  482. package/.docs/raw/deployment/serverless-platforms/index.mdx +0 -58
  483. package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +0 -688
  484. package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +0 -123
  485. package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +0 -382
  486. package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +0 -179
  487. package/.docs/raw/frameworks/web-frameworks/next-js.mdx +0 -379
  488. package/.docs/raw/getting-started/templates.mdx +0 -73
  489. package/.docs/raw/mastra-cloud/observability.mdx +0 -51
  490. package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +0 -47
  491. package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +0 -153
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Input Data Mapping | Workflows | Mastra Docs"
2
+ title: "Input Data Mapping | Workflows"
3
3
  description: "Learn how to use workflow input mapping to create more dynamic data flows in your Mastra workflows."
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Workflows overview | Workflows | Mastra Docs"
2
+ title: "Workflows overview | Workflows"
3
3
  description: "Workflows in Mastra help you orchestrate complex sequences of tasks with features like branching, parallel execution, resource suspension, and more."
4
4
  ---
5
5
 
@@ -90,60 +90,28 @@ Workflows can be composed using a number of different methods. The method you ch
90
90
 
91
91
  ## Workflow state
92
92
 
93
- Workflow state lets you share values across steps without passing them through every steps inputSchema and outputSchema. All state values are defined in the workflow’s stateSchema, but each step only declares the values it needs. To set initial values, use initialState when running the workflow.
93
+ Workflow state lets you share values across steps without passing them through every step's inputSchema and outputSchema. Use state for tracking progress, accumulating results, or sharing configuration across the entire workflow.
94
94
 
95
95
  ```typescript title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
96
96
  const step1 = createStep({
97
- // ...
98
- stateSchema: z.object({
99
- processedItems: z.array(z.string()),
100
- }),
97
+ id: "step-1",
98
+ inputSchema: z.object({ message: z.string() }),
99
+ outputSchema: z.object({ formatted: z.string() }),
100
+ stateSchema: z.object({ counter: z.number() }),
101
101
  execute: async ({ inputData, state, setState }) => {
102
- const { message } = inputData;
103
- const { processedItems } = state;
102
+ // Read from state
103
+ console.log(state.counter);
104
104
 
105
- setState({
106
- ...state,
107
- processedItems: [...processedItems, "item-1", "item-2"],
108
- });
105
+ // Update state for subsequent steps
106
+ setState({ ...state, counter: state.counter + 1 });
109
107
 
110
- return {
111
- formatted: message.toUpperCase(),
112
- };
113
- },
114
- });
115
-
116
- const step2 = createStep({
117
- // ...
118
- stateSchema: z.object({
119
- metadata: z.object({
120
- processedBy: z.string(),
121
- }),
122
- }),
123
- execute: async ({ inputData, state }) => {
124
- const { formatted } = inputData;
125
- const { metadata } = state;
126
-
127
- return {
128
- emphasized: `${formatted}!! ${metadata.processedBy}`,
129
- };
108
+ return { formatted: inputData.message.toUpperCase() };
130
109
  },
131
110
  });
132
-
133
- export const testWorkflow = createWorkflow({
134
- // ...
135
- stateSchema: z.object({
136
- processedItems: z.array(z.string()),
137
- metadata: z.object({
138
- processedBy: z.string(),
139
- }),
140
- }),
141
- })
142
- .then(step1)
143
- .then(step2)
144
- .commit();
145
111
  ```
146
112
 
113
+ > See [Workflow State](/docs/v1/workflows/workflow-state) for complete documentation on state schemas, initial state, persistence across suspend/resume, and nested workflows.
114
+
147
115
  ## Workflows as steps
148
116
 
149
117
  Use a workflow as a step to reuse its logic within a larger composition. Input and output follow the same schema rules described in [Core principles](/docs/v1/workflows/control-flow).
@@ -253,14 +221,19 @@ const result = await run.stream({
253
221
  }
254
222
  });
255
223
 
256
- for await (const chunk of result.stream) {
224
+ for await (const chunk of result.fullStream) {
257
225
  console.log(chunk);
258
226
  }
259
227
  ```
260
228
  </TabItem>
261
229
  </Tabs>
262
230
 
263
- ## Workflow output
231
+
232
+ ### Workflow status types
233
+
234
+ When running a workflow, its `status` can be `running`, `suspended`, `success`, or `failed`.
235
+
236
+ ### Workflow output
264
237
 
265
238
  The workflow output includes the full execution lifecycle, showing the input and output for each step. It also includes the status of each step, the overall workflow status, and the final result. This gives you clear insight into how data moved through the workflow, what each step produced, and how the workflow completed.
266
239
 
@@ -297,6 +270,49 @@ The workflow output includes the full execution lifecycle, showing the input and
297
270
  }
298
271
  ```
299
272
 
273
+ ## Restarting active workflow runs
274
+
275
+ When a workflow run loses connection to the server, it can be restarted from the last active step. This is useful for long-running workflows that might still be running when the server loses connection. Restarting a workflow run will resume execution from the last active step, and the workflow will continue from there.
276
+
277
+ ### Restarting all active workflow runs of a workflow with `restartAllActiveWorkflowRuns()`
278
+
279
+ Use `restartAllActiveWorkflowRuns()` to restart all active workflow runs of a workflow. This helps restart all active workflow runs of a workflow, without having to manually loop through each run and restart.
280
+
281
+ ```typescript showLineNumbers copy
282
+ workflow.restartAllActiveWorkflowRuns();
283
+ ```
284
+
285
+ ### Restarting an active workflow run with `restart()`
286
+
287
+ Use `restart()` to restart an active workflow run from the last active step. This will resume execution from the last active step, and the workflow will continue from there.
288
+
289
+ ```typescript showLineNumbers copy
290
+ const run = await workflow.createRun();
291
+
292
+ const result = await run.start({ inputData: { value: "initial data" } });
293
+
294
+ //.. server connection lost,
295
+
296
+ const restartedResult = await run.restart();
297
+ ```
298
+
299
+ ### Identifying active workflow runs
300
+
301
+ When a workflow run is active, it will have a `status` of `running` or `waiting`. You can check the workflow's `status` to confirm it's active, and use `active` to identify the active workflow run.
302
+
303
+ ```typescript showLineNumbers copy
304
+ const activeRuns = await workflow.listActiveWorkflowRuns();
305
+ if (activeRuns.runs.length > 0) {
306
+ console.log(activeRuns.runs);
307
+ }
308
+ ```
309
+
310
+ :::note
311
+
312
+ When running the local mastra server, all active workflow runs will be restarted automatically when the server starts.
313
+
314
+ :::
315
+
300
316
  ## Using `RequestContext`
301
317
 
302
318
  Use [RequestContext](/docs/v1/server-db/request-context) to access request-specific values. This lets you conditionally adjust behavior based on the context of the request.
@@ -330,3 +346,7 @@ Use [Studio](/docs/v1/getting-started/studio) to easily run workflows with diffe
330
346
 
331
347
  For a closer look at workflows, see our [Workflow Guide](/guides/v1/guide/ai-recruiter), which walks through the core concepts with a practical example.
332
348
 
349
+ - [Workflow State](/docs/v1/workflows/workflow-state)
350
+ - [Control Flow](/docs/v1/workflows/control-flow)
351
+ - [Suspend & Resume](/docs/v1/workflows/suspend-and-resume)
352
+ - [Error Handling](/docs/v1/workflows/error-handling)
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Snapshots | Workflows | Mastra Docs"
2
+ title: "Snapshots | Workflows"
3
3
  description: "Learn how to save and resume workflow execution state with snapshots in Mastra"
4
4
  ---
5
5
 
@@ -266,5 +266,7 @@ if (result.status === "suspended") {
266
266
 
267
267
  ## Related
268
268
 
269
- - [Suspend and resume](/docs/v1/workflows/suspend-and-resume)
270
- - [Human in the loop example](/docs/v1/workflows/human-in-the-loop)
269
+ - [Control Flow](/docs/v1/workflows/control-flow)
270
+ - [Suspend & Resume](/docs/v1/workflows/suspend-and-resume)
271
+ - [Time Travel](/docs/v1/workflows/time-travel)
272
+ - [Human-in-the-loop](/docs/v1/workflows/human-in-the-loop)
@@ -1,289 +1,199 @@
1
1
  ---
2
- title: "Suspend & Resume | Workflows | Mastra Docs"
2
+ title: "Suspend & Resume | Workflows"
3
3
  description: "Suspend and resume in Mastra workflows allows you to pause execution while waiting for external input or resources."
4
4
  ---
5
5
 
6
6
  # Suspend & Resume
7
7
 
8
- Workflows can be paused at any step, with their current state persisted as a [snapshot](./snapshots) in storage. Execution can then be resumed from this saved snapshot when ready. Persisting the snapshot ensures the workflow state is maintained across sessions, deployments, and server restarts, essential for workflows that may remain suspended while awaiting external input or resources.
8
+ Workflows can be paused at any step to collect additional data, wait for API callbacks, throttle costly operations, or request [human-in-the-loop](/docs/v1/workflows/human-in-the-loop) input. When a workflow is suspended, its current execution state is saved as a snapshot. You can later resume the workflow from a [specific step ID](/docs/v1/workflows/snapshots#retrieving-snapshots), restoring the exact state captured in that snapshot. [Snapshots](/docs/v1/workflows/snapshots) are stored in your configured storage provider and across deployments and application restarts.
9
+ ## Pausing a workflow with `suspend()`
9
10
 
10
- Common scenarios for suspending workflows include:
11
+ Use `suspend()` to pause workflow execution at a specific step. You can define a suspend condition in the step’s `execute` block using values from `resumeData`.
11
12
 
12
- - Waiting for human approval or input
13
- - Pausing until external API resources become available
14
- - Collecting additional data needed for later steps
15
- - Rate limiting or throttling expensive operations
16
- - Handling event-driven processes with external triggers
13
+ - If the condition isn’t met, the workflow pauses and returns `suspend()`.
14
+ - If the condition is met, the workflow continues with the remaining logic in the step.
17
15
 
18
- > **New to suspend and resume?** Watch these official video tutorials:
19
- >
20
- > - **[Mastering Human-in-the-Loop with Suspend & Resume](https://youtu.be/aORuNG8Tq_k)** - Learn how to suspend workflows and accept user inputs
21
- > - **[Building Multi-Turn Chat Interfaces with React](https://youtu.be/UMVm8YZwlxc)** - Implement multi-turn human-involved interactions with a React chat interface
16
+ ![Pausing a workflow with suspend()](/img/workflows/workflows-suspend.jpg)
22
17
 
23
- ## Workflow status types
24
-
25
- When running a workflow, its `status` can be one of the following:
26
-
27
- - `running` - The workflow is currently running
28
- - `suspended` - The workflow is suspended
29
- - `success` - The workflow has completed
30
- - `failed` - The workflow has failed
31
-
32
- ## Suspending a workflow with `suspend()`
33
-
34
- To pause execution at a specific step until user input is received, use the `⁠suspend` function to temporarily halt the workflow, allowing it to resume only when the necessary data is provided.
35
-
36
- ![Suspending a workflow with suspend()](/img/workflows/workflows-suspend-resume-suspend.jpg)
37
-
38
- ```typescript {16} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
18
+ ```typescript {9-11,16-18} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
39
19
  const step1 = createStep({
40
20
  id: "step-1",
41
21
  inputSchema: z.object({
42
- input: z.string(),
22
+ userEmail: z.string()
43
23
  }),
44
24
  outputSchema: z.object({
45
- output: z.string(),
25
+ output: z.string()
46
26
  }),
47
27
  resumeSchema: z.object({
48
- city: z.string(),
28
+ approved: z.boolean()
49
29
  }),
50
- execute: async ({ resumeData, suspend }) => {
51
- const { city } = resumeData ?? {};
30
+ execute: async ({ inputData, resumeData, suspend }) => {
31
+ const { userEmail } = inputData;
32
+ const { approved } = resumeData ?? {};
52
33
 
53
- if (!city) {
34
+ if (!approved) {
54
35
  return await suspend({});
55
36
  }
56
37
 
57
- return { output: "" };
58
- },
38
+ return {
39
+ output: `Email sent to ${userEmail}`
40
+ };
41
+ }
59
42
  });
60
43
 
61
44
  export const testWorkflow = createWorkflow({
62
- // ...
45
+ id: "test-workflow",
46
+ inputSchema: z.object({
47
+ userEmail: z.string()
48
+ }),
49
+ outputSchema: z.object({
50
+ output: z.string()
51
+ })
63
52
  })
64
53
  .then(step1)
65
54
  .commit();
66
55
  ```
67
56
 
68
- > For more details, check out the [Suspend & Resume documentation](/docs/v1/workflows/suspend-and-resume).
57
+ ## Restarting a workflow with `resume()`
69
58
 
70
- ### Identifying suspended steps
59
+ Use `resume()` to restart a suspended workflow from the step where it paused. Pass `resumeData` matching the step's `resumeSchema` to satisfy the suspend condition and continue execution.
71
60
 
72
- To resume a suspended workflow, inspect the `suspended` array in the result to determine which step needs input:
61
+ ![Restarting a workflow with resume()](/img/workflows/workflows-resume.jpg)
73
62
 
74
- ```typescript {15} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
75
- import { mastra } from "./mastra";
63
+ ```typescript showLineNumbers copy
64
+ import { step1 } from "./workflows/test-workflow";
76
65
 
77
- const run = await mastra.getWorkflow("testWorkflow").createRun();
66
+ const workflow = mastra.getWorkflow("testWorkflow");
67
+ const run = await workflow.createRun();
78
68
 
79
- const result = await run.start({
69
+ await run.start({
80
70
  inputData: {
81
- city: "London",
82
- },
71
+ userEmail: "alex@example.com"
72
+ }
83
73
  });
84
74
 
85
- console.log(JSON.stringify(result, null, 2));
86
-
87
- if (result.status === "suspended") {
88
- const resumedResult = await run.resume({
89
- step: result.suspended[0],
90
- resumeData: {
91
- city: "Berlin",
92
- },
75
+ const handleResume = async () => {
76
+ const result = await run.resume({
77
+ step: step1,
78
+ resumeData: { approved: true }
93
79
  });
94
- }
80
+ };
95
81
  ```
96
82
 
97
- In this case, the logic resumes the first step listed in the `suspended` array. A `step` can also be defined using it's `id`, for example: 'step-1'.
83
+ Passing the `step` object provides full type-safety for `resumeData`. Alternatively, you can pass a step ID for more flexibility when the ID comes from user input or a database.
98
84
 
99
- ```json
100
- {
101
- "status": "suspended",
102
- "steps": {
103
- // ...
104
- "step-1": {
105
- // ...
106
- "status": "suspended"
107
- }
108
- },
109
- "suspended": [["step-1"]]
110
- }
85
+ ```typescript showLineNumbers copy
86
+ const result = await run.resume({
87
+ step: "step-1",
88
+ resumeData: { approved: true }
89
+ });
111
90
  ```
112
91
 
113
- > See [Workflow Output](./overview#workflow-output) for more details.
92
+ If only one step is suspended, you can omit the step argument entirely and Mastra will resume the last suspended step in the workflow.
114
93
 
115
- ## Providing user feedback with suspend
94
+ When resuming with only a `runId`, create a run instance first using `createRunAsync()`.
116
95
 
117
- When a workflow is suspended, feedback can be surfaced to the user through the `suspendSchema`. Include a reason in the `suspend` payload to explain why the workflow paused.
96
+ ```typescript showLineNumbers copy
97
+ const workflow = mastra.getWorkflow("testWorkflow");
98
+ const run = await workflow.createRunAsync({ runId: "123" });
118
99
 
119
- ```typescript {13,23} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
120
- import { createWorkflow, createStep } from "@mastra/core/workflows";
121
- import { z } from "zod";
100
+ const stream = run.resume({
101
+ resumeData: { approved: true }
102
+ });
103
+ ```
122
104
 
123
- const step1 = createStep({
124
- id: "step-1",
105
+ You can call `resume()` from anywhere in your application, including HTTP endpoints, event handlers, in response to [human input](/docs/v1/workflows/human-in-the-loop), or timers.
106
+
107
+ ```typescript showLineNumbers copy
108
+ const midnight = new Date();
109
+ midnight.setUTCHours(24, 0, 0, 0);
110
+
111
+ setTimeout(async () => {
112
+ await run.resume({
113
+ step: "step-1",
114
+ resumeData: { approved: true }
115
+ });
116
+ }, midnight.getTime() - Date.now());
117
+ ```
118
+
119
+ ## Accessing suspend data with `suspendData`
120
+ When a step is suspended, you may want to access the data that was provided to `suspend()` when the step is later resumed. Use the `suspendData` parameter in your step's execute function to access this data.
121
+
122
+ ```typescript {22-25,29-30} title="src/mastra/workflows/user-approval.ts" showLineNumbers copy
123
+ const approvalStep = createStep({
124
+ id: "user-approval",
125
125
  inputSchema: z.object({
126
- value: z.string(),
126
+ requestId: z.string()
127
127
  }),
128
128
  resumeSchema: z.object({
129
- confirm: z.boolean(),
129
+ approved: z.boolean()
130
130
  }),
131
131
  suspendSchema: z.object({
132
132
  reason: z.string(),
133
+ requestDetails: z.string()
133
134
  }),
134
135
  outputSchema: z.object({
135
- value: z.string(),
136
+ result: z.string()
136
137
  }),
137
- execute: async ({ resumeData, suspend }) => {
138
- const { confirm } = resumeData ?? {};
139
-
140
- if (!confirm) {
138
+ execute: async ({ inputData, resumeData, suspend, suspendData }) => {
139
+ const { requestId } = inputData;
140
+ const { approved } = resumeData ?? {};
141
+
142
+ // On first execution, suspend with context
143
+ if (!approved) {
141
144
  return await suspend({
142
- reason: "Confirm to continue",
145
+ reason: "User approval required",
146
+ requestDetails: `Request ${requestId} pending review`
143
147
  });
144
148
  }
145
-
146
- return { value: "" };
147
- },
148
- });
149
-
150
- export const testWorkflow = createWorkflow({
151
- // ...
152
- })
153
- .then(step1)
154
- .commit();
155
- ```
156
-
157
- In this case, the reason provided explains that the user must confirm to continue.
158
-
159
- ```json
160
- {
161
- "step-1": {
162
- // ...
163
- "status": "suspended",
164
- "suspendPayload": {
165
- "reason": "Confirm to continue"
166
- }
149
+
150
+ // On resume, access the original suspend data
151
+ const suspendReason = suspendData?.reason || "Unknown";
152
+ const details = suspendData?.requestDetails || "No details";
153
+
154
+ return {
155
+ result: `${details} - ${suspendReason} - Decision: ${approved ? 'Approved' : 'Rejected'}`
156
+ };
167
157
  }
168
- }
158
+ });
169
159
  ```
170
160
 
171
- > See [Workflow Output](./overview#workflow-output) for more details.
172
-
173
- ## Resuming a workflow with `resume()`
161
+ The `suspendData` parameter is automatically populated when a step is resumed and contains the exact data that was passed to the `suspend()` function during the original suspension. This allows you to maintain context about why the workflow was suspended and use that information during the resume process.
174
162
 
175
- A workflow can be resumed by calling `resume` and providing the required `resumeData`. You can either explicitly specify which step to resume from, or when exactly one step is suspended, omit the `step` parameter and the workflow will automatically resume that step.
163
+ ## Identifying suspended executions
176
164
 
177
- ```typescript {16-18} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
178
- import { mastra } from "./mastra";
165
+ When a workflow is suspended, it restarts from the step where it paused. You can check the workflow's `status` to confirm it's suspended, and use `suspended` to identify the paused step or [nested workflow](/docs/v1/workflows/overview#workflows-as-steps).
179
166
 
180
- const run = await mastra.getWorkflow("testWorkflow").createRun();
167
+ ```typescript {11} showLineNumbers copy
168
+ const workflow = mastra.getWorkflow("testWorkflow");
169
+ const run = await workflow.createRun();
181
170
 
182
171
  const result = await run.start({
183
172
  inputData: {
184
- city: "London",
185
- },
173
+ userEmail: "alex@example.com"
174
+ }
186
175
  });
187
176
 
188
- console.log(JSON.stringify(result, null, 2));
189
-
190
177
  if (result.status === "suspended") {
191
- const resumedResult = await run.resume({
192
- step: "step-1",
193
- resumeData: {
194
- city: "Berlin",
195
- },
178
+ console.log(result.suspended[0]);
179
+ await run.resume({
180
+ step: result.suspended[0],
181
+ resumeData: { approved: true }
196
182
  });
197
-
198
- console.log(JSON.stringify(resumedResult, null, 2));
199
183
  }
200
184
  ```
201
185
 
202
- You can also omit the `step` parameter when exactly one step is suspended:
203
-
204
- ```typescript {5} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
205
- const resumedResult = await run.resume({
206
- resumeData: {
207
- city: "Berlin",
208
- },
209
- // step parameter omitted - automatically resumes the single suspended step
210
- });
211
- ```
212
-
213
- You can pass `requestContext` as an argument to both the `start` and `resume` commands.
214
-
215
- ```typescript title="src/mastra/workflows/test-workflow.ts"
216
- import { RequestContext } from "@mastra/core/request-context";
186
+ **Example output**
217
187
 
218
- const requestContext = new RequestContext();
188
+ The `suspended` array contains the IDs of any suspended workflows and steps from the run. These can be passed to the `step` parameter when calling `resume()` to target and resume the suspended execution path.
219
189
 
220
- const result = await run.start({
221
- step: "step-1",
222
- inputData: {
223
- city: "London",
224
- },
225
- requestContext,
226
- });
227
-
228
- const resumedResult = await run.resume({
229
- step: "step-1",
230
- resumeData: {
231
- city: "New York",
232
- },
233
- requestContext,
234
- });
235
- ```
236
-
237
- > See [Request Context](/docs/v1/server-db/request-context) for more information.
238
-
239
- ### Resuming nested workflows
240
-
241
- To resume a suspended nested workflow pass the workflow instance to the `step` parameter of the `resume` function.
242
-
243
- ```typescript {33-34} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
244
- const dowhileWorkflow = createWorkflow({
245
- id: "dowhile-workflow",
246
- inputSchema: z.object({ value: z.number() }),
247
- outputSchema: z.object({ value: z.number() }),
248
- })
249
- .dountil(
250
- createWorkflow({
251
- id: "simple-resume-workflow",
252
- inputSchema: z.object({ value: z.number() }),
253
- outputSchema: z.object({ value: z.number() }),
254
- steps: [incrementStep, resumeStep],
255
- })
256
- .then(incrementStep)
257
- .then(resumeStep)
258
- .commit(),
259
- async ({ inputData }) => inputData.value >= 10,
260
- )
261
- .then(
262
- createStep({
263
- id: "final",
264
- inputSchema: z.object({ value: z.number() }),
265
- outputSchema: z.object({ value: z.number() }),
266
- execute: async ({ inputData }) => ({ value: inputData.value }),
267
- }),
268
- )
269
- .commit();
270
-
271
- const run = await dowhileWorkflow.createRun();
272
- const result = await run.start({ inputData: { value: 0 } });
273
-
274
- if (result.status === "suspended") {
275
- const resumedResult = await run.resume({
276
- resumeData: { value: 2 },
277
- step: ["simple-resume-workflow", "resume"],
278
- });
279
-
280
- console.log(JSON.stringify(resumedResult, null, 2));
281
- }
190
+ ```typescript
191
+ [ 'nested-workflow', 'step-1' ]
282
192
  ```
283
193
 
284
194
  ## Sleep & Events
285
195
 
286
- Workflows can also pause execution for timed delays or external events. These methods set the workflow status to `waiting` rather than `suspended`, and are useful for polling, delayed retries, or event-driven processes.
196
+ Sleep and event methods can be used to pause execution at the workflow level, which sets the status to `waiting`. By comparison, `suspend()` pauses execution within a specific step and sets the status to `suspended`.
287
197
 
288
198
  **Available methods:**
289
199
 
@@ -291,3 +201,10 @@ Workflows can also pause execution for timed delays or external events. These me
291
201
  - [`.sleepUntil()`](/reference/v1/workflows/workflow-methods/sleepUntil) : Pause until a specific date
292
202
  - [`.waitForEvent()`](/reference/v1/workflows/workflow-methods/waitForEvent): Pause until an external event is received
293
203
  - [`.sendEvent()`](/reference/v1/workflows/workflow-methods/sendEvent) : Send an event to resume a waiting workflow
204
+
205
+ ## Related
206
+
207
+ - [Control Flow](/docs/v1/workflows/control-flow)
208
+ - [Human-in-the-loop](/docs/v1/workflows/human-in-the-loop)
209
+ - [Snapshots](/docs/v1/workflows/snapshots)
210
+ - [Time Travel](/docs/v1/workflows/time-travel)