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

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 (397) hide show
  1. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +9 -9
  2. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +35 -35
  3. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +11 -11
  4. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +17 -17
  5. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +11 -11
  6. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +11 -11
  7. package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +14 -0
  8. package/.docs/organized/changelogs/%40mastra%2Fcore.md +172 -172
  9. package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +10 -10
  10. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +20 -20
  11. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +11 -11
  12. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +11 -11
  13. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +34 -34
  14. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +14 -14
  15. package/.docs/organized/changelogs/%40mastra%2Fevals.md +10 -10
  16. package/.docs/organized/changelogs/%40mastra%2Flance.md +14 -14
  17. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +11 -11
  18. package/.docs/organized/changelogs/%40mastra%2Floggers.md +10 -10
  19. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +27 -27
  20. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +23 -23
  21. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +10 -10
  22. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +11 -11
  23. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +26 -26
  24. package/.docs/organized/changelogs/%40mastra%2Fpg.md +11 -11
  25. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +11 -11
  26. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +48 -48
  27. package/.docs/organized/changelogs/%40mastra%2Frag.md +11 -11
  28. package/.docs/organized/changelogs/%40mastra%2Freact.md +15 -15
  29. package/.docs/organized/changelogs/%40mastra%2Fserver.md +17 -17
  30. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +14 -14
  31. package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +12 -12
  32. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +10 -10
  33. package/.docs/organized/changelogs/create-mastra.md +15 -15
  34. package/.docs/organized/changelogs/mastra.md +37 -37
  35. package/.docs/organized/code-examples/ai-elements.md +1 -1
  36. package/.docs/organized/code-examples/ai-sdk-useChat.md +1 -1
  37. package/.docs/organized/code-examples/ai-sdk-v5.md +1 -1
  38. package/.docs/organized/code-examples/assistant-ui.md +1 -1
  39. package/.docs/organized/code-examples/bird-checker-with-express.md +1 -1
  40. package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +1 -1
  41. package/.docs/organized/code-examples/bird-checker-with-nextjs.md +1 -1
  42. package/.docs/organized/code-examples/client-side-tools.md +1 -1
  43. package/.docs/organized/code-examples/crypto-chatbot.md +1 -1
  44. package/.docs/organized/code-examples/fireworks-r1.md +1 -1
  45. package/.docs/organized/code-examples/heads-up-game.md +1 -1
  46. package/.docs/organized/code-examples/mcp-configuration.md +0 -3
  47. package/.docs/organized/code-examples/memory-per-resource-example.md +1 -1
  48. package/.docs/organized/code-examples/openapi-spec-writer.md +1 -1
  49. package/.docs/organized/code-examples/quick-start.md +1 -1
  50. package/.docs/organized/code-examples/stock-price-tool.md +1 -21
  51. package/.docs/organized/code-examples/workflow-ai-recruiter.md +1 -1
  52. package/.docs/organized/code-examples/workflow-with-inline-steps.md +1 -1
  53. package/.docs/organized/code-examples/workflow-with-memory.md +1 -1
  54. package/.docs/organized/code-examples/workflow-with-separate-steps.md +1 -1
  55. package/.docs/organized/code-examples/workflow-with-suspend-resume.md +1 -1
  56. package/.docs/raw/agents/adding-voice.mdx +1 -1
  57. package/.docs/raw/agents/agent-memory.mdx +1 -1
  58. package/.docs/raw/agents/guardrails.mdx +1 -1
  59. package/.docs/raw/agents/human-in-the-loop-with-tools.mdx +90 -0
  60. package/.docs/raw/agents/networks.mdx +1 -1
  61. package/.docs/raw/agents/overview.mdx +8 -13
  62. package/.docs/raw/agents/using-tools.mdx +10 -9
  63. package/.docs/raw/auth/auth0.mdx +1 -1
  64. package/.docs/raw/auth/clerk.mdx +1 -1
  65. package/.docs/raw/auth/firebase.mdx +1 -1
  66. package/.docs/raw/auth/index.mdx +1 -1
  67. package/.docs/raw/auth/jwt.mdx +1 -1
  68. package/.docs/raw/auth/supabase.mdx +1 -1
  69. package/.docs/raw/auth/workos.mdx +1 -1
  70. package/.docs/raw/community/contributing-templates.mdx +1 -1
  71. package/.docs/raw/community/discord.mdx +2 -2
  72. package/.docs/raw/community/licensing.mdx +1 -1
  73. package/.docs/raw/deployment/{server-deployment.mdx → building-mastra.mdx} +4 -4
  74. package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +2 -2
  75. package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +3 -3
  76. package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +2 -2
  77. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/cloudflare-deployer.mdx +1 -1
  78. package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +2 -2
  79. package/.docs/raw/deployment/cloud-providers/index.mdx +8 -4
  80. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/netlify-deployer.mdx +1 -1
  81. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/vercel-deployer.mdx +1 -1
  82. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/dashboard.mdx +3 -3
  83. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/observability.mdx +2 -2
  84. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/overview.mdx +3 -3
  85. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/setting-up.mdx +4 -4
  86. package/.docs/raw/deployment/monorepo.mdx +3 -3
  87. package/.docs/raw/deployment/overview.mdx +5 -5
  88. package/.docs/raw/deployment/web-framework.mdx +1 -1
  89. package/.docs/raw/evals/{off-the-shelf-scorers.mdx → built-in-scorers.mdx} +17 -15
  90. package/.docs/raw/evals/custom-scorers.mdx +1 -1
  91. package/.docs/raw/evals/overview.mdx +3 -3
  92. package/.docs/raw/evals/running-in-ci.mdx +2 -2
  93. package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +15 -128
  94. package/.docs/raw/frameworks/agentic-uis/assistant-ui.mdx +71 -19
  95. package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +8 -29
  96. package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +91 -267
  97. package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +3 -3
  98. package/.docs/raw/frameworks/servers/express.mdx +1 -1
  99. package/.docs/raw/frameworks/web-frameworks/astro.mdx +1 -1
  100. package/.docs/raw/frameworks/web-frameworks/next-js.mdx +1 -1
  101. package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +1 -1
  102. package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +1 -1
  103. package/.docs/raw/getting-started/mcp-docs-server.mdx +6 -6
  104. package/.docs/raw/getting-started/project-structure.mdx +1 -1
  105. package/.docs/raw/getting-started/quickstart.mdx +27 -0
  106. package/.docs/raw/getting-started/studio.mdx +3 -3
  107. package/.docs/raw/getting-started/templates.mdx +1 -1
  108. package/.docs/raw/guides/guide/ai-recruiter.mdx +1 -1
  109. package/.docs/raw/guides/guide/chef-michel.mdx +1 -1
  110. package/.docs/raw/{getting-started/installation.mdx → guides/guide/manual-install.mdx} +6 -80
  111. package/.docs/raw/guides/guide/notes-mcp-server.mdx +2 -2
  112. package/.docs/raw/guides/guide/research-assistant.mdx +2 -2
  113. package/.docs/raw/guides/guide/stock-agent.mdx +1 -1
  114. package/.docs/raw/guides/guide/web-search.mdx +1 -1
  115. package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +119 -0
  116. package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +11 -1
  117. package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +42 -2
  118. package/.docs/raw/guides/migrations/upgrade-to-v1/evals.mdx +31 -1
  119. package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +27 -3
  120. package/.docs/raw/guides/migrations/upgrade-to-v1/mcp.mdx +1 -1
  121. package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +28 -0
  122. package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +25 -3
  123. package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +80 -0
  124. package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +60 -0
  125. package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +25 -1
  126. package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +43 -1
  127. package/.docs/raw/guides/quickstarts/nextjs.mdx +18 -17
  128. package/.docs/raw/guides/quickstarts/standalone-server.mdx +86 -0
  129. package/.docs/raw/index.mdx +3 -3
  130. package/.docs/raw/logging.mdx +7 -7
  131. package/.docs/raw/mcp/overview.mdx +360 -0
  132. package/.docs/raw/mcp/publishing-mcp-server.mdx +139 -0
  133. package/.docs/raw/memory/conversation-history.mdx +1 -1
  134. package/.docs/raw/memory/memory-processors.mdx +1 -1
  135. package/.docs/raw/memory/overview.mdx +2 -2
  136. package/.docs/raw/memory/semantic-recall.mdx +2 -2
  137. package/.docs/raw/memory/storage/memory-with-libsql.mdx +1 -4
  138. package/.docs/raw/memory/storage/memory-with-mongodb.mdx +152 -0
  139. package/.docs/raw/memory/storage/memory-with-pg.mdx +1 -4
  140. package/.docs/raw/memory/storage/memory-with-upstash.mdx +1 -4
  141. package/.docs/raw/memory/threads-and-resources.mdx +1 -1
  142. package/.docs/raw/memory/working-memory.mdx +1 -1
  143. package/.docs/raw/observability/overview.mdx +2 -2
  144. package/.docs/raw/observability/tracing/exporters/arize.mdx +1 -1
  145. package/.docs/raw/observability/tracing/exporters/braintrust.mdx +1 -1
  146. package/.docs/raw/observability/tracing/exporters/cloud.mdx +2 -2
  147. package/.docs/raw/observability/tracing/exporters/default.mdx +1 -1
  148. package/.docs/raw/observability/tracing/exporters/langfuse.mdx +1 -1
  149. package/.docs/raw/observability/tracing/exporters/langsmith.mdx +1 -1
  150. package/.docs/raw/observability/tracing/exporters/otel.mdx +1 -1
  151. package/.docs/raw/observability/tracing/overview.mdx +2 -2
  152. package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +2 -2
  153. package/.docs/raw/rag/overview.mdx +1 -1
  154. package/.docs/raw/rag/retrieval.mdx +1 -1
  155. package/.docs/raw/rag/vector-databases.mdx +1 -1
  156. package/.docs/raw/reference/agents/agent.mdx +1 -2
  157. package/.docs/raw/reference/agents/generate.mdx +1 -1
  158. package/.docs/raw/reference/agents/generateLegacy.mdx +1 -1
  159. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +1 -1
  160. package/.docs/raw/reference/agents/getDefaultOptions.mdx +1 -1
  161. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +1 -1
  162. package/.docs/raw/reference/agents/getDescription.mdx +1 -1
  163. package/.docs/raw/reference/agents/getInstructions.mdx +1 -1
  164. package/.docs/raw/reference/agents/getLLM.mdx +1 -1
  165. package/.docs/raw/reference/agents/getMemory.mdx +1 -1
  166. package/.docs/raw/reference/agents/getModel.mdx +1 -1
  167. package/.docs/raw/reference/agents/getTools.mdx +69 -0
  168. package/.docs/raw/reference/agents/getVoice.mdx +1 -1
  169. package/.docs/raw/reference/agents/listAgents.mdx +1 -1
  170. package/.docs/raw/reference/agents/listScorers.mdx +1 -1
  171. package/.docs/raw/reference/agents/listTools.mdx +2 -2
  172. package/.docs/raw/reference/agents/listWorkflows.mdx +1 -1
  173. package/.docs/raw/reference/agents/network.mdx +1 -1
  174. package/.docs/raw/reference/auth/auth0.mdx +1 -1
  175. package/.docs/raw/reference/auth/clerk.mdx +1 -1
  176. package/.docs/raw/reference/auth/firebase.mdx +1 -1
  177. package/.docs/raw/reference/auth/jwt.mdx +1 -1
  178. package/.docs/raw/reference/auth/supabase.mdx +1 -1
  179. package/.docs/raw/reference/auth/workos.mdx +1 -1
  180. package/.docs/raw/reference/cli/create-mastra.mdx +1 -1
  181. package/.docs/raw/reference/cli/mastra.mdx +4 -4
  182. package/.docs/raw/reference/client-js/agents.mdx +1 -1
  183. package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
  184. package/.docs/raw/reference/client-js/logs.mdx +1 -1
  185. package/.docs/raw/reference/client-js/mastra-client.mdx +2 -2
  186. package/.docs/raw/reference/client-js/memory.mdx +1 -1
  187. package/.docs/raw/reference/client-js/observability.mdx +1 -1
  188. package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
  189. package/.docs/raw/reference/client-js/tools.mdx +1 -1
  190. package/.docs/raw/reference/client-js/vectors.mdx +1 -1
  191. package/.docs/raw/reference/client-js/workflows.mdx +1 -1
  192. package/.docs/raw/reference/core/addGateway.mdx +59 -0
  193. package/.docs/raw/reference/core/getAgent.mdx +1 -1
  194. package/.docs/raw/reference/core/getAgentById.mdx +1 -1
  195. package/.docs/raw/reference/core/getDeployer.mdx +1 -1
  196. package/.docs/raw/reference/core/getGateway.mdx +59 -0
  197. package/.docs/raw/reference/core/getGatewayById.mdx +62 -0
  198. package/.docs/raw/reference/core/getLogger.mdx +1 -1
  199. package/.docs/raw/reference/core/getMCPServer.mdx +2 -2
  200. package/.docs/raw/reference/core/getMCPServerById.mdx +2 -2
  201. package/.docs/raw/reference/core/getScorer.mdx +1 -1
  202. package/.docs/raw/reference/core/getScorerById.mdx +1 -1
  203. package/.docs/raw/reference/core/getServer.mdx +2 -2
  204. package/.docs/raw/reference/core/getStorage.mdx +1 -1
  205. package/.docs/raw/reference/core/getTelemetry.mdx +1 -1
  206. package/.docs/raw/reference/core/getVector.mdx +1 -1
  207. package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
  208. package/.docs/raw/reference/core/listAgents.mdx +1 -1
  209. package/.docs/raw/reference/core/listGateways.mdx +53 -0
  210. package/.docs/raw/reference/core/listLogs.mdx +1 -1
  211. package/.docs/raw/reference/core/listLogsByRunId.mdx +1 -1
  212. package/.docs/raw/reference/core/listMCPServers.mdx +2 -2
  213. package/.docs/raw/reference/core/listScorers.mdx +1 -1
  214. package/.docs/raw/reference/core/listVectors.mdx +1 -1
  215. package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
  216. package/.docs/raw/reference/core/mastra-class.mdx +9 -1
  217. package/.docs/raw/reference/core/mastra-model-gateway.mdx +241 -0
  218. package/.docs/raw/reference/core/setLogger.mdx +1 -1
  219. package/.docs/raw/reference/core/setStorage.mdx +1 -1
  220. package/.docs/raw/reference/core/setTelemetry.mdx +1 -1
  221. package/.docs/raw/reference/deployer/cloudflare.mdx +1 -1
  222. package/.docs/raw/reference/deployer/deployer.mdx +1 -1
  223. package/.docs/raw/reference/deployer/netlify.mdx +1 -1
  224. package/.docs/raw/reference/deployer/vercel.mdx +1 -1
  225. package/.docs/raw/reference/evals/answer-relevancy.mdx +1 -1
  226. package/.docs/raw/reference/evals/answer-similarity.mdx +1 -1
  227. package/.docs/raw/reference/evals/bias.mdx +1 -1
  228. package/.docs/raw/reference/evals/completeness.mdx +1 -1
  229. package/.docs/raw/reference/evals/content-similarity.mdx +1 -1
  230. package/.docs/raw/reference/evals/context-precision.mdx +1 -1
  231. package/.docs/raw/reference/evals/context-relevance.mdx +1 -1
  232. package/.docs/raw/reference/evals/create-scorer.mdx +1 -1
  233. package/.docs/raw/reference/evals/faithfulness.mdx +1 -1
  234. package/.docs/raw/reference/evals/hallucination.mdx +1 -1
  235. package/.docs/raw/reference/evals/keyword-coverage.mdx +1 -1
  236. package/.docs/raw/reference/evals/mastra-scorer.mdx +1 -1
  237. package/.docs/raw/reference/evals/noise-sensitivity.mdx +1 -1
  238. package/.docs/raw/reference/evals/prompt-alignment.mdx +1 -1
  239. package/.docs/raw/reference/evals/run-evals.mdx +1 -1
  240. package/.docs/raw/reference/evals/textual-difference.mdx +1 -1
  241. package/.docs/raw/reference/evals/tone-consistency.mdx +1 -1
  242. package/.docs/raw/reference/evals/tool-call-accuracy.mdx +1 -1
  243. package/.docs/raw/reference/evals/toxicity.mdx +1 -1
  244. package/.docs/raw/reference/logging/pino-logger.mdx +2 -2
  245. package/.docs/raw/reference/memory/createThread.mdx +1 -1
  246. package/.docs/raw/reference/memory/deleteMessages.mdx +1 -1
  247. package/.docs/raw/reference/memory/getThreadById.mdx +1 -1
  248. package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +1 -1
  249. package/.docs/raw/reference/memory/memory-class.mdx +1 -1
  250. package/.docs/raw/reference/memory/query.mdx +1 -1
  251. package/.docs/raw/reference/memory/recall.mdx +1 -1
  252. package/.docs/raw/reference/observability/tracing/configuration.mdx +2 -2
  253. package/.docs/raw/reference/observability/tracing/exporters/arize.mdx +1 -1
  254. package/.docs/raw/reference/observability/tracing/exporters/braintrust.mdx +1 -1
  255. package/.docs/raw/reference/observability/tracing/exporters/cloud-exporter.mdx +1 -1
  256. package/.docs/raw/reference/observability/tracing/exporters/console-exporter.mdx +1 -1
  257. package/.docs/raw/reference/observability/tracing/exporters/default-exporter.mdx +1 -1
  258. package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +1 -1
  259. package/.docs/raw/reference/observability/tracing/exporters/langsmith.mdx +1 -1
  260. package/.docs/raw/reference/observability/tracing/exporters/otel.mdx +1 -1
  261. package/.docs/raw/reference/observability/tracing/instances.mdx +2 -2
  262. package/.docs/raw/reference/observability/tracing/interfaces.mdx +2 -2
  263. package/.docs/raw/reference/observability/tracing/processors/sensitive-data-filter.mdx +1 -1
  264. package/.docs/raw/reference/observability/tracing/spans.mdx +2 -2
  265. package/.docs/raw/reference/processors/batch-parts-processor.mdx +1 -1
  266. package/.docs/raw/reference/processors/language-detector.mdx +1 -1
  267. package/.docs/raw/reference/processors/moderation-processor.mdx +1 -1
  268. package/.docs/raw/reference/processors/pii-detector.mdx +1 -1
  269. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +1 -1
  270. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +1 -1
  271. package/.docs/raw/reference/processors/token-limiter-processor.mdx +1 -1
  272. package/.docs/raw/reference/processors/unicode-normalizer.mdx +1 -1
  273. package/.docs/raw/reference/rag/chunk.mdx +1 -1
  274. package/.docs/raw/reference/rag/database-config.mdx +1 -1
  275. package/.docs/raw/reference/rag/document.mdx +1 -1
  276. package/.docs/raw/reference/rag/embeddings.mdx +1 -1
  277. package/.docs/raw/reference/rag/extract-params.mdx +1 -1
  278. package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
  279. package/.docs/raw/reference/rag/metadata-filters.mdx +1 -1
  280. package/.docs/raw/reference/rag/rerank.mdx +1 -1
  281. package/.docs/raw/reference/rag/rerankWithScorer.mdx +1 -1
  282. package/.docs/raw/reference/storage/cloudflare-d1.mdx +1 -1
  283. package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
  284. package/.docs/raw/reference/storage/dynamodb.mdx +1 -1
  285. package/.docs/raw/reference/storage/lance.mdx +1 -1
  286. package/.docs/raw/reference/storage/libsql.mdx +1 -1
  287. package/.docs/raw/reference/storage/mongodb.mdx +1 -1
  288. package/.docs/raw/reference/storage/mssql.mdx +1 -1
  289. package/.docs/raw/reference/storage/postgresql.mdx +1 -1
  290. package/.docs/raw/reference/storage/upstash.mdx +1 -1
  291. package/.docs/raw/reference/streaming/ChunkType.mdx +1 -1
  292. package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +1 -1
  293. package/.docs/raw/reference/streaming/agents/stream.mdx +1 -1
  294. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +1 -1
  295. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +1 -1
  296. package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +1 -1
  297. package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +1 -1
  298. package/.docs/raw/reference/streaming/workflows/stream.mdx +1 -1
  299. package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +1 -1
  300. package/.docs/raw/reference/templates/overview.mdx +1 -1
  301. package/.docs/raw/reference/tools/client.mdx +1 -1
  302. package/.docs/raw/reference/tools/create-tool.mdx +3 -4
  303. package/.docs/raw/reference/tools/document-chunker-tool.mdx +1 -1
  304. package/.docs/raw/reference/tools/graph-rag-tool.mdx +2 -2
  305. package/.docs/raw/reference/tools/mcp-client.mdx +1 -1
  306. package/.docs/raw/reference/tools/mcp-server.mdx +55 -6
  307. package/.docs/raw/reference/tools/vector-query-tool.mdx +2 -2
  308. package/.docs/raw/reference/vectors/astra.mdx +1 -1
  309. package/.docs/raw/reference/vectors/chroma.mdx +1 -1
  310. package/.docs/raw/reference/vectors/couchbase.mdx +1 -1
  311. package/.docs/raw/reference/vectors/lance.mdx +1 -1
  312. package/.docs/raw/reference/vectors/libsql.mdx +1 -1
  313. package/.docs/raw/reference/vectors/mongodb.mdx +1 -1
  314. package/.docs/raw/reference/vectors/opensearch.mdx +1 -1
  315. package/.docs/raw/reference/vectors/pg.mdx +1 -1
  316. package/.docs/raw/reference/vectors/pinecone.mdx +22 -2
  317. package/.docs/raw/reference/vectors/qdrant.mdx +1 -1
  318. package/.docs/raw/reference/vectors/s3vectors.mdx +1 -1
  319. package/.docs/raw/reference/vectors/turbopuffer.mdx +1 -1
  320. package/.docs/raw/reference/vectors/upstash.mdx +1 -1
  321. package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
  322. package/.docs/raw/reference/voice/azure.mdx +96 -81
  323. package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
  324. package/.docs/raw/reference/voice/composite-voice.mdx +1 -1
  325. package/.docs/raw/reference/voice/deepgram.mdx +1 -1
  326. package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
  327. package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
  328. package/.docs/raw/reference/voice/google.mdx +1 -1
  329. package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
  330. package/.docs/raw/reference/voice/murf.mdx +1 -1
  331. package/.docs/raw/reference/voice/openai-realtime.mdx +1 -1
  332. package/.docs/raw/reference/voice/openai.mdx +1 -1
  333. package/.docs/raw/reference/voice/playai.mdx +1 -1
  334. package/.docs/raw/reference/voice/sarvam.mdx +1 -1
  335. package/.docs/raw/reference/voice/speechify.mdx +1 -1
  336. package/.docs/raw/reference/voice/voice.addInstructions.mdx +1 -1
  337. package/.docs/raw/reference/voice/voice.addTools.mdx +1 -1
  338. package/.docs/raw/reference/voice/voice.answer.mdx +1 -1
  339. package/.docs/raw/reference/voice/voice.close.mdx +1 -1
  340. package/.docs/raw/reference/voice/voice.connect.mdx +1 -1
  341. package/.docs/raw/reference/voice/voice.events.mdx +1 -1
  342. package/.docs/raw/reference/voice/voice.getSpeakers.mdx +1 -1
  343. package/.docs/raw/reference/voice/voice.listen.mdx +1 -1
  344. package/.docs/raw/reference/voice/voice.off.mdx +1 -1
  345. package/.docs/raw/reference/voice/voice.on.mdx +1 -1
  346. package/.docs/raw/reference/voice/voice.send.mdx +1 -1
  347. package/.docs/raw/reference/voice/voice.speak.mdx +1 -1
  348. package/.docs/raw/reference/voice/voice.updateConfig.mdx +1 -1
  349. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +1 -1
  350. package/.docs/raw/reference/workflows/run-methods/resume.mdx +1 -1
  351. package/.docs/raw/reference/workflows/run-methods/start.mdx +1 -1
  352. package/.docs/raw/reference/workflows/run.mdx +1 -1
  353. package/.docs/raw/reference/workflows/step.mdx +1 -1
  354. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
  355. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
  356. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +1 -1
  357. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
  358. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
  359. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
  360. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +1 -1
  361. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
  362. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +1 -1
  363. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
  364. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
  365. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
  366. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
  367. package/.docs/raw/reference/workflows/workflow.mdx +2 -2
  368. package/.docs/raw/server-db/custom-api-routes.mdx +1 -1
  369. package/.docs/raw/server-db/mastra-client.mdx +2 -2
  370. package/.docs/raw/server-db/{production-server.mdx → mastra-server.mdx} +2 -2
  371. package/.docs/raw/server-db/middleware.mdx +31 -31
  372. package/.docs/raw/server-db/request-context.mdx +3 -3
  373. package/.docs/raw/server-db/storage.mdx +1 -1
  374. package/.docs/raw/streaming/events.mdx +1 -1
  375. package/.docs/raw/streaming/overview.mdx +1 -1
  376. package/.docs/raw/streaming/tool-streaming.mdx +1 -1
  377. package/.docs/raw/streaming/workflow-streaming.mdx +1 -1
  378. package/.docs/raw/tools-mcp/advanced-usage.mdx +1 -1
  379. package/.docs/raw/tools-mcp/mcp-overview.mdx +1 -1
  380. package/.docs/raw/tools-mcp/overview.mdx +1 -1
  381. package/.docs/raw/voice/overview.mdx +1 -1
  382. package/.docs/raw/voice/speech-to-speech.mdx +1 -1
  383. package/.docs/raw/voice/speech-to-text.mdx +1 -1
  384. package/.docs/raw/voice/text-to-speech.mdx +1 -1
  385. package/.docs/raw/workflows/agents-and-tools.mdx +2 -4
  386. package/.docs/raw/workflows/control-flow.mdx +6 -1
  387. package/.docs/raw/workflows/error-handling.mdx +4 -4
  388. package/.docs/raw/workflows/human-in-the-loop.mdx +160 -213
  389. package/.docs/raw/workflows/inngest-workflow.mdx +1 -1
  390. package/.docs/raw/workflows/input-data-mapping.mdx +1 -1
  391. package/.docs/raw/workflows/overview.mdx +10 -2
  392. package/.docs/raw/workflows/snapshots.mdx +4 -3
  393. package/.docs/raw/workflows/suspend-and-resume.mdx +72 -224
  394. package/CHANGELOG.md +26 -0
  395. package/dist/stdio.js +16 -18
  396. package/package.json +10 -14
  397. package/.docs/raw/deployment/serverless-platforms/index.mdx +0 -58
@@ -1,271 +1,218 @@
1
1
  ---
2
- title: "Human-in-the-loop | Workflows | Mastra Docs"
3
- description: Example of using Mastra to create workflows with multi-turn human/agent interaction points using suspend/resume and dountil methods.
2
+ title: "Human-in-the-loop (HITL) | Workflows"
3
+ description: "Human-in-the-loop workflows in Mastra allow you to pause execution for manual approvals, reviews, or user input before continuing."
4
4
  ---
5
5
 
6
- import GithubLink from "@site/src/components/GithubLink";
6
+ # Human-in-the-loop (HITL)
7
7
 
8
- # Human-in-the-loop
8
+ Some workflows need to pause for human input before continuing. When a workflow is [suspended](/docs/v1/workflows/suspend-and-resume#pausing-a-workflow-with-suspend), it can return a message explaining why it paused and what’s needed to proceed. The workflow can then either [resume](#resuming-workflows-with-human-input) or [bail](#handling-human-rejection-with-bail) based on the input received. This approach works well for manual approvals, rejections, gated decisions, or any step that requires human oversight.
9
9
 
10
- Human-in-the-loop workflows enable ongoing interaction between humans and AI agents, allowing for complex decision-making processes that require multiple rounds of input and response. These workflows can suspend execution at specific points, wait for human input, and continue processing based on the responses received.
10
+ ## Pausing workflows for human input
11
11
 
12
- In this example, the multi-turn workflow is used to create a Heads Up game that demonstrates how to create interactive workflows using suspend/resume functionality and conditional logic with `dountil` to repeat a workflow step until a specific condition is met.
12
+ Human-in-the-loop input works much like [pausing a workflow](/docs/v1/workflows/suspend-and-resume) using `suspend()`. The key difference is that when human input is required, you can return `suspend()` with a payload that provides context or guidance to the user on how to continue.
13
13
 
14
- This example consists of three main components:
14
+ ![Pausing a workflow with suspend()](/img/workflows/workflows-suspend-resume-suspend.jpg)
15
15
 
16
- 1. A [**Famous Person Agent**](#famous-person-agent) that generates a famous person's name.
17
- 2. A [**Game Agent**](#game-agent) that handles the gameplay.
18
- 3. A [**Multi-Turn Workflow**](#multi-turn-workflow) that orchestrates the interaction.
16
+ ```typescript {12-17,22-26} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
17
+ import { createWorkflow, createStep } from "@mastra/core/workflows";
18
+ import { z } from "zod";
19
19
 
20
- ## Prerequisites
20
+ const step1 = createStep({
21
+ id: "step-1",
22
+ inputSchema: z.object({
23
+ userEmail: z.string()
24
+ }),
25
+ outputSchema: z.object({
26
+ output: z.string()
27
+ }),
28
+ resumeSchema: z.object({
29
+ approved: z.boolean()
30
+ }),
31
+ suspendSchema: z.object({
32
+ reason: z.string()
33
+ }),
34
+ execute: async ({ inputData, resumeData, suspend }) => {
35
+ const { userEmail } = inputData;
36
+ const { approved } = resumeData ?? {};
21
37
 
22
- This example uses the `openai` model. Make sure to add the following to your `.env` file:
38
+ if (!approved) {
39
+ return await suspend({
40
+ reason: "Human approval required."
41
+ });
42
+ }
23
43
 
24
- ```bash title=".env" copy
25
- OPENAI_API_KEY=<your-api-key>
26
- ```
44
+ return {
45
+ output: `Email sent to ${userEmail}`
46
+ };
47
+ }
48
+ });
27
49
 
28
- ## Famous person agent
29
-
30
- The `famousPersonAgent` generates a unique name each time the game is played, using semantic memory to avoid repeating suggestions.
31
-
32
- ```typescript title="src/mastra/agents/example-famous-person-agent.ts" showLineNumbers copy
33
- import { openai } from "@ai-sdk/openai";
34
- import { Agent } from "@mastra/core/agent";
35
- import { Memory } from "@mastra/memory";
36
- import { LibSQLVector } from "@mastra/libsql";
37
-
38
- export const famousPersonAgent = new Agent({
39
- id: "famous-person-generator",
40
- name: "Famous Person Generator",
41
- instructions: `You are a famous person generator for a "Heads Up" guessing game.
42
-
43
- Generate the name of a well-known famous person who:
44
- - Is recognizable to most people
45
- - Has distinctive characteristics that can be described with yes/no questions
46
- - Is appropriate for all audiences
47
- - Has a clear, unambiguous name
48
-
49
- IMPORTANT: Use your memory to check what famous people you've already suggested and NEVER repeat a person you've already suggested.
50
-
51
- Examples: Albert Einstein, Beyoncé, Leonardo da Vinci, Oprah Winfrey, Michael Jordan
52
-
53
- Return only the person's name, nothing else.`,
54
- model: openai("gpt-4o"),
55
- memory: new Memory({
56
- vector: new LibSQLVector({
57
- id: 'workflow-vector',
58
- connectionUrl: "file:../mastra.db",
59
- }),
60
- embedder: openai.embedding("text-embedding-3-small"),
61
- options: {
62
- lastMessages: 5,
63
- semanticRecall: {
64
- topK: 10,
65
- messageRange: 1,
66
- },
67
- },
50
+ export const testWorkflow = createWorkflow({
51
+ id: "test-workflow",
52
+ inputSchema: z.object({
53
+ userEmail: z.string()
68
54
  }),
69
- });
55
+ outputSchema: z.object({
56
+ output: z.string()
57
+ })
58
+ })
59
+ .then(step1)
60
+ .commit();
70
61
  ```
71
62
 
72
- > See [Agent](/reference/v1/agents/agent) for a full list of configuration options.
63
+ ## Providing user feedback
64
+
65
+ When a workflow is suspended, you can access the payload returned by `suspend()` by identifying the suspended step and reading its `suspendPayload`.
66
+
67
+ ```typescript {12} title="src/test-workflow.ts" showLineNumbers copy
68
+ const workflow = mastra.getWorkflow("testWorkflow");
69
+ const run = await workflow.createRunAsync();
70
+
71
+ const result = await run.start({
72
+ inputData: {
73
+ userEmail: "alex@example.com"
74
+ }
75
+ });
73
76
 
74
- ## Game agent
77
+ if (result.status === "suspended") {
78
+ const suspendStep = result.suspended[0];
79
+ const suspendedPayload = result.steps[suspendStep[0]].suspendPayload;
75
80
 
76
- The `gameAgent` handles user interactions by responding to questions and validating guesses.
81
+ console.log(suspendedPayload);
82
+ }
83
+ ```
84
+ **Example output**
77
85
 
78
- ```typescript title="src/mastra/agents/example-game-agent.ts" showLineNumbers copy
79
- import { openai } from "@ai-sdk/openai";
80
- import { Agent } from "@mastra/core/agent";
86
+ The data returned by the step can include a reason and help the user understand what’s needed to resume the workflow.
81
87
 
82
- export const gameAgent = new Agent({
83
- id: "game-agent",
84
- name: "Game Agent",
85
- instructions: `You are a helpful game assistant for a "Heads Up" guessing game.
88
+ ```typescript
89
+ { reason: 'Confirm to send email.' }
90
+ ```
86
91
 
87
- CRITICAL: You know the famous person's name but you must NEVER reveal it in any response.
92
+ ## Resuming workflows with human input
88
93
 
89
- When a user asks a question about the famous person:
90
- - Answer truthfully based on the famous person provided
91
- - Keep responses concise and friendly
92
- - NEVER mention the person's name, even if it seems natural
93
- - NEVER reveal gender, nationality, or other characteristics unless specifically asked about them
94
- - Answer yes/no questions with clear "Yes" or "No" responses
95
- - Be consistent - same question asked differently should get the same answer
96
- - Ask for clarification if a question is unclear
97
- - If multiple questions are asked at once, ask them to ask one at a time
94
+ As with [restarting a workflow](/docs/v1/workflows/suspend-and-resume#restarting-a-workflow-with-resume), use `resume()` with `resumeData` to continue a workflow after receiving input from a human. The workflow resumes from the step where it was paused.
98
95
 
99
- When they make a guess:
100
- - If correct: Congratulate them warmly
101
- - If incorrect: Politely correct them and encourage them to try again
96
+ ![Restarting a workflow with resume()](/img/workflows/workflows-suspend-resume-resume.jpg)
102
97
 
103
- Encourage players to make a guess when they seem to have enough information.
98
+ ```typescript {13} showLineNumbers copy
99
+ const workflow = mastra.getWorkflow("testWorkflow");
100
+ const run = await workflow.createRunAsync();
104
101
 
105
- You must return a JSON object with:
106
- - response: Your response to the user
107
- - gameWon: true if they guessed correctly, false otherwise`,
108
- model: openai("gpt-4o"),
102
+ await run.start({
103
+ inputData: {
104
+ userEmail: "alex@example.com"
105
+ }
109
106
  });
107
+
108
+ const handleResume = async () => {
109
+ const result = await run.resume({
110
+ step: "step-1",
111
+ resumeData: { approved: true }
112
+ });
113
+ };
110
114
  ```
111
115
 
112
- ## Multi-turn workflow
116
+ ### Handling human rejection with `bail()`
113
117
 
114
- The workflow coordinates the full interaction using `suspend`/`resume` to pause for human input and `dountil` to repeat the game loop until a condition is met.
118
+ Use `bail()` to stop workflow execution at a step without triggering an error. This can be useful when a human explicitly rejects an action. The workflow completes with a `success` status, and any logic after the call to `bail()` is skipped.
115
119
 
116
- The `startStep` generates a name using the `famousPersonAgent`, while the `gameStep` runs the interaction through the `gameAgent`, which handles both questions and guesses and produces structured output that includes a `gameWon` boolean.
120
+ ```typescript {7-11} showLineNumbers copy
121
+ const step1 = createStep({
122
+ // ...
123
+ execute: async ({ inputData, resumeData, suspend, bail }) => {
124
+ const { userEmail } = inputData;
125
+ const { approved } = resumeData ?? {};
117
126
 
118
- ```typescript title="src/mastra/workflows/example-heads-up-workflow.ts" showLineNumbers copy
119
- import { createWorkflow, createStep } from "@mastra/core/workflows";
120
- import { z } from "zod";
127
+ if (approved === false) {
128
+ return bail({
129
+ reason: "User rejected the request."
130
+ });
131
+ }
121
132
 
122
- const startStep = createStep({
123
- id: "start-step",
124
- description: "Get the name of a famous person",
125
- inputSchema: z.object({
126
- start: z.boolean(),
127
- }),
128
- outputSchema: z.object({
129
- famousPerson: z.string(),
130
- guessCount: z.number(),
131
- }),
132
- execute: async ({ mastra }) => {
133
- const agent = mastra.getAgent("famousPersonAgent");
134
- const response = await agent.generate("Generate a famous person's name", {
135
- temperature: 1.2,
136
- topP: 0.9,
137
- memory: {
138
- resource: "heads-up-game",
139
- thread: "famous-person-generator",
140
- },
141
- });
142
- const famousPerson = response.text.trim();
143
- return { famousPerson, guessCount: 0 };
144
- },
133
+ if (!approved) {
134
+ return await suspend({
135
+ reason: "Human approval required."
136
+ });
137
+ }
138
+
139
+ return {
140
+ message: `Email sent to ${userEmail}`
141
+ };
142
+ }
145
143
  });
144
+ ```
146
145
 
147
- const gameStep = createStep({
148
- id: "game-step",
149
- description: "Handles the question-answer-continue loop",
146
+ ## Multi-turn human input
147
+
148
+ For workflows that require input at multiple stages, the suspend pattern remains the same. Each step defines a `resumeSchema`, and `suspendSchema` typically with a reason that can be used to provide user feedback.
149
+
150
+ ```typescript {11-16,21-25} title="src/mastra/workflows/test-workflow.ts" showLineNumbers copy
151
+ const step1 = createStep({...});
152
+
153
+ const step2 = createStep({
154
+ id: "step-2",
150
155
  inputSchema: z.object({
151
- famousPerson: z.string(),
152
- guessCount: z.number(),
156
+ message: z.string()
157
+ }),
158
+ outputSchema: z.object({
159
+ output: z.string()
153
160
  }),
154
161
  resumeSchema: z.object({
155
- userMessage: z.string(),
162
+ approved: z.boolean()
156
163
  }),
157
164
  suspendSchema: z.object({
158
- suspendResponse: z.string(),
159
- }),
160
- outputSchema: z.object({
161
- famousPerson: z.string(),
162
- gameWon: z.boolean(),
163
- agentResponse: z.string(),
164
- guessCount: z.number(),
165
+ reason: z.string()
165
166
  }),
166
- execute: async ({ inputData, mastra, resumeData, suspend }) => {
167
- let { famousPerson, guessCount } = inputData;
168
- const { userMessage } = resumeData ?? {};
167
+ execute: async ({ inputData, resumeData, suspend }) => {
168
+ const { message } = inputData;
169
+ const { approved } = resumeData ?? {};
169
170
 
170
- if (!userMessage) {
171
+ if (!approved) {
171
172
  return await suspend({
172
- suspendResponse:
173
- "I'm thinking of a famous person. Ask me yes/no questions to figure out who it is!",
173
+ reason: "Human approval required."
174
174
  });
175
175
  }
176
176
 
177
- const agent = mastra.getAgent("gameAgent");
178
- const response = await agent.generate(
179
- `
180
- The famous person is: ${famousPerson}
181
- The user said: "${userMessage}"
182
- Please respond appropriately. If this is a guess, tell me if it's correct.
183
- `,
184
- {
185
- structuredOutput: {
186
- schema: z.object({
187
- response: z.string(),
188
- gameWon: z.boolean(),
189
- }),
190
- },
191
- },
192
- );
193
-
194
- const { response: agentResponse, gameWon } = response.object;
195
-
196
- guessCount++;
197
-
198
- return { famousPerson, gameWon, agentResponse, guessCount };
199
- },
177
+ return {
178
+ output: `${message} - Deleted`
179
+ };
180
+ }
200
181
  });
201
182
 
202
- const winStep = createStep({
203
- id: "win-step",
204
- description: "Handle game win logic",
183
+ export const testWorkflow = createWorkflow({
184
+ id: "test-workflow",
205
185
  inputSchema: z.object({
206
- famousPerson: z.string(),
207
- gameWon: z.boolean(),
208
- agentResponse: z.string(),
209
- guessCount: z.number(),
186
+ userEmail: z.string()
210
187
  }),
211
188
  outputSchema: z.object({
212
- famousPerson: z.string(),
213
- gameWon: z.boolean(),
214
- guessCount: z.number(),
215
- }),
216
- execute: async ({ inputData }) => {
217
- const { famousPerson, gameWon, guessCount } = inputData;
218
-
219
- console.log("famousPerson: ", famousPerson);
220
- console.log("gameWon: ", gameWon);
221
- console.log("guessCount: ", guessCount);
222
-
223
- return { famousPerson, gameWon, guessCount };
224
- },
225
- });
226
-
227
- export const headsUpWorkflow = createWorkflow({
228
- id: "heads-up-workflow",
229
- inputSchema: z.object({
230
- start: z.boolean(),
231
- }),
232
- outputSchema: z.object({
233
- famousPerson: z.string(),
234
- gameWon: z.boolean(),
235
- guessCount: z.number(),
236
- }),
189
+ output: z.string()
190
+ })
237
191
  })
238
- .then(startStep)
239
- .dountil(gameStep, async ({ inputData: { gameWon } }) => gameWon)
240
- .then(winStep)
192
+ .then(step1)
193
+ .then(step2)
241
194
  .commit();
242
195
  ```
243
196
 
244
- > See [Workflow](/reference/v1/workflows/workflow) for a full list of configuration options.
245
-
246
- ## Registering the agents and workflow
247
-
248
- To use a workflow or an agent, register them in your main Mastra instance.
249
-
250
- ```typescript title="src/mastra/index.ts" showLineNumbers copy
251
- import { Mastra } from "@mastra/core";
252
-
253
- import { headsUpWorkflow } from "./workflows/example-heads-up-workflow";
254
- import { famousPersonAgent } from "./agents/example-famous-person-agent";
255
- import { gameAgent } from "./agents/example-game-agent";
256
-
257
- export const mastra = new Mastra({
258
- workflows: { headsUpWorkflow },
259
- agents: { famousPersonAgent, gameAgent },
260
- });
197
+ Each step must be resumed in sequence, with a separate call to `resume()` for each suspended step. This approach helps manage multi-step approvals with consistent UI feedback and clear input handling at each stage.
198
+
199
+ ```typescript {4,11} showLineNumbers copy
200
+ const handleResume = async () => {
201
+ const result = await run.resume({
202
+ step: "step-1",
203
+ resumeData: { approved: true }
204
+ });
205
+ };
206
+
207
+ const handleDelete = async () => {
208
+ const result = await run.resume({
209
+ step: "step-2",
210
+ resumeData: { approved: true }
211
+ });
212
+ };
261
213
  ```
262
214
 
263
- <GithubLink
264
- marginTop="mt-16"
265
- link="https://github.com/mastra-ai/mastra/blob/main/examples/heads-up-game/"
266
- />
267
-
268
215
  ## Related
269
216
 
270
- - [Running Workflows](./overview#running-workflows)
271
217
  - [Control Flow](/docs/v1/workflows/control-flow)
218
+ - [Suspend & Resume](/docs/v1/workflows/suspend-and-resume)
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Inngest Workflow | Workflows | Mastra Docs"
2
+ title: "Inngest Workflow | Workflows"
3
3
  description: "Inngest workflow allows you to run Mastra workflows with Inngest"
4
4
  ---
5
5
 
@@ -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
 
@@ -260,7 +260,12 @@ for await (const chunk of result.stream) {
260
260
  </TabItem>
261
261
  </Tabs>
262
262
 
263
- ## Workflow output
263
+
264
+ ### Workflow status types
265
+
266
+ When running a workflow, its `status` can be `running`, `suspended`, `success`, or `failed`.
267
+
268
+ ### Workflow output
264
269
 
265
270
  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
271
 
@@ -330,3 +335,6 @@ Use [Studio](/docs/v1/getting-started/studio) to easily run workflows with diffe
330
335
 
331
336
  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
337
 
338
+ - [Control Flow](/docs/v1/workflows/control-flow)
339
+ - [Suspend & Resume](/docs/v1/workflows/suspend-and-resume)
340
+ - [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,6 @@ 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
+ - [Human-in-the-loop](/docs/v1/workflows/human-in-the-loop)