@mastra/mcp-docs-server 0.13.39 → 0.13.40

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 (407) hide show
  1. package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +2 -0
  2. package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +2 -0
  3. package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +8 -8
  4. package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +2 -0
  5. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +43 -43
  6. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +19 -19
  7. package/.docs/organized/changelogs/%40mastra%2Fcore.md +63 -63
  8. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +21 -21
  9. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +17 -17
  10. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +17 -17
  11. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +17 -17
  12. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +25 -25
  13. package/.docs/organized/changelogs/%40mastra%2Fevals.md +20 -20
  14. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +15 -15
  15. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +20 -20
  16. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +19 -19
  17. package/.docs/organized/changelogs/%40mastra%2Freact.md +15 -15
  18. package/.docs/organized/changelogs/%40mastra%2Fserver.md +15 -15
  19. package/.docs/organized/changelogs/create-mastra.md +5 -5
  20. package/.docs/organized/changelogs/mastra.md +25 -25
  21. package/.docs/raw/agents/adding-voice.mdx +1 -1
  22. package/.docs/raw/agents/agent-memory.mdx +1 -1
  23. package/.docs/raw/agents/guardrails.mdx +1 -1
  24. package/.docs/raw/agents/networks.mdx +1 -1
  25. package/.docs/raw/agents/overview.mdx +120 -64
  26. package/.docs/raw/agents/using-tools.mdx +138 -15
  27. package/.docs/raw/auth/auth0.mdx +1 -1
  28. package/.docs/raw/auth/clerk.mdx +1 -1
  29. package/.docs/raw/auth/firebase.mdx +1 -1
  30. package/.docs/raw/auth/index.mdx +1 -1
  31. package/.docs/raw/auth/jwt.mdx +1 -1
  32. package/.docs/raw/auth/supabase.mdx +1 -1
  33. package/.docs/raw/auth/workos.mdx +1 -1
  34. package/.docs/raw/community/contributing-templates.mdx +1 -1
  35. package/.docs/raw/community/discord.mdx +2 -2
  36. package/.docs/raw/community/licensing.mdx +1 -1
  37. package/.docs/raw/course/02-agent-tools-mcp/04-initializing-mcp-tools.md +2 -2
  38. package/.docs/raw/deployment/{server-deployment.mdx → building-mastra.mdx} +3 -3
  39. package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +1 -1
  40. package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +2 -2
  41. package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +1 -1
  42. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/cloudflare-deployer.mdx +1 -1
  43. package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +1 -1
  44. package/.docs/raw/deployment/cloud-providers/index.mdx +6 -3
  45. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/netlify-deployer.mdx +1 -1
  46. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/vercel-deployer.mdx +1 -1
  47. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/dashboard.mdx +3 -3
  48. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/observability.mdx +2 -2
  49. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/overview.mdx +3 -3
  50. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/setting-up.mdx +3 -3
  51. package/.docs/raw/deployment/monorepo.mdx +3 -3
  52. package/.docs/raw/deployment/overview.mdx +5 -5
  53. package/.docs/raw/deployment/web-framework.mdx +1 -1
  54. package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +5 -1
  55. package/.docs/raw/frameworks/agentic-uis/assistant-ui.mdx +1 -1
  56. package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +1 -1
  57. package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +1 -1
  58. package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +1 -1
  59. package/.docs/raw/frameworks/servers/express.mdx +1 -1
  60. package/.docs/raw/frameworks/web-frameworks/astro.mdx +1 -1
  61. package/.docs/raw/frameworks/web-frameworks/next-js.mdx +1 -1
  62. package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +1 -1
  63. package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +1 -1
  64. package/.docs/raw/getting-started/installation.mdx +1 -1
  65. package/.docs/raw/getting-started/mcp-docs-server.mdx +1 -1
  66. package/.docs/raw/getting-started/project-structure.mdx +1 -1
  67. package/.docs/raw/getting-started/studio.mdx +2 -2
  68. package/.docs/raw/getting-started/templates.mdx +1 -1
  69. package/.docs/raw/index.mdx +2 -2
  70. package/.docs/raw/{tools-mcp/mcp-overview.mdx → mcp/overview.mdx} +2 -2
  71. package/.docs/raw/mcp/publishing-mcp-server.mdx +137 -0
  72. package/.docs/raw/memory/conversation-history.mdx +1 -1
  73. package/.docs/raw/memory/memory-processors.mdx +1 -1
  74. package/.docs/raw/memory/overview.mdx +2 -2
  75. package/.docs/raw/memory/semantic-recall.mdx +2 -2
  76. package/.docs/raw/memory/storage/memory-with-libsql.mdx +1 -1
  77. package/.docs/raw/memory/storage/memory-with-mongodb.mdx +150 -0
  78. package/.docs/raw/memory/storage/memory-with-pg.mdx +1 -1
  79. package/.docs/raw/memory/storage/memory-with-upstash.mdx +1 -1
  80. package/.docs/raw/memory/threads-and-resources.mdx +1 -1
  81. package/.docs/raw/memory/working-memory.mdx +1 -1
  82. package/.docs/raw/observability/ai-tracing/exporters/arize.mdx +1 -1
  83. package/.docs/raw/observability/ai-tracing/exporters/braintrust.mdx +1 -1
  84. package/.docs/raw/observability/ai-tracing/exporters/cloud.mdx +2 -2
  85. package/.docs/raw/observability/ai-tracing/exporters/default.mdx +1 -1
  86. package/.docs/raw/observability/ai-tracing/exporters/langfuse.mdx +1 -1
  87. package/.docs/raw/observability/ai-tracing/exporters/langsmith.mdx +1 -1
  88. package/.docs/raw/observability/ai-tracing/exporters/otel.mdx +1 -1
  89. package/.docs/raw/observability/ai-tracing/overview.mdx +1 -1
  90. package/.docs/raw/observability/ai-tracing/processors/sensitive-data-filter.mdx +1 -1
  91. package/.docs/raw/observability/logging.mdx +5 -5
  92. package/.docs/raw/observability/nextjs-tracing.mdx +1 -1
  93. package/.docs/raw/observability/otel-tracing.mdx +1 -1
  94. package/.docs/raw/observability/overview.mdx +1 -1
  95. package/.docs/raw/rag/overview.mdx +1 -1
  96. package/.docs/raw/rag/retrieval.mdx +1 -1
  97. package/.docs/raw/rag/vector-databases.mdx +1 -1
  98. package/.docs/raw/reference/agents/agent.mdx +1 -1
  99. package/.docs/raw/reference/agents/generate.mdx +1 -1
  100. package/.docs/raw/reference/agents/generateLegacy.mdx +1 -1
  101. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +1 -1
  102. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +1 -1
  103. package/.docs/raw/reference/agents/getDescription.mdx +1 -1
  104. package/.docs/raw/reference/agents/getInstructions.mdx +1 -1
  105. package/.docs/raw/reference/agents/getLLM.mdx +1 -1
  106. package/.docs/raw/reference/agents/getMemory.mdx +1 -1
  107. package/.docs/raw/reference/agents/getModel.mdx +1 -1
  108. package/.docs/raw/reference/agents/getScorers.mdx +1 -1
  109. package/.docs/raw/reference/agents/getTools.mdx +2 -2
  110. package/.docs/raw/reference/agents/getVoice.mdx +1 -1
  111. package/.docs/raw/reference/agents/getWorkflows.mdx +1 -1
  112. package/.docs/raw/reference/agents/listAgents.mdx +1 -1
  113. package/.docs/raw/reference/agents/listScorers.mdx +1 -1
  114. package/.docs/raw/reference/agents/listWorkflows.mdx +1 -1
  115. package/.docs/raw/reference/agents/network.mdx +1 -1
  116. package/.docs/raw/reference/auth/auth0.mdx +1 -1
  117. package/.docs/raw/reference/auth/clerk.mdx +1 -1
  118. package/.docs/raw/reference/auth/firebase.mdx +1 -1
  119. package/.docs/raw/reference/auth/jwt.mdx +1 -1
  120. package/.docs/raw/reference/auth/supabase.mdx +1 -1
  121. package/.docs/raw/reference/auth/workos.mdx +1 -1
  122. package/.docs/raw/reference/cli/create-mastra.mdx +1 -1
  123. package/.docs/raw/reference/cli/mastra.mdx +2 -2
  124. package/.docs/raw/reference/client-js/agents.mdx +2 -2
  125. package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
  126. package/.docs/raw/reference/client-js/logs.mdx +1 -1
  127. package/.docs/raw/reference/client-js/mastra-client.mdx +5 -5
  128. package/.docs/raw/reference/client-js/memory.mdx +1 -1
  129. package/.docs/raw/reference/client-js/observability.mdx +1 -1
  130. package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
  131. package/.docs/raw/reference/client-js/tools.mdx +2 -2
  132. package/.docs/raw/reference/client-js/vectors.mdx +1 -1
  133. package/.docs/raw/reference/client-js/workflows-legacy.mdx +1 -1
  134. package/.docs/raw/reference/client-js/workflows.mdx +1 -1
  135. package/.docs/raw/reference/core/getAgent.mdx +1 -1
  136. package/.docs/raw/reference/core/getAgentById.mdx +1 -1
  137. package/.docs/raw/reference/core/getAgents.mdx +1 -1
  138. package/.docs/raw/reference/core/getDeployer.mdx +1 -1
  139. package/.docs/raw/reference/core/getLogger.mdx +1 -1
  140. package/.docs/raw/reference/core/getLogs.mdx +1 -1
  141. package/.docs/raw/reference/core/getLogsByRunId.mdx +1 -1
  142. package/.docs/raw/reference/core/getMCPServer.mdx +2 -2
  143. package/.docs/raw/reference/core/getMCPServers.mdx +2 -2
  144. package/.docs/raw/reference/core/getMemory.mdx +1 -1
  145. package/.docs/raw/reference/core/getScorer.mdx +1 -1
  146. package/.docs/raw/reference/core/getScorerByName.mdx +1 -1
  147. package/.docs/raw/reference/core/getScorers.mdx +1 -1
  148. package/.docs/raw/reference/core/getServer.mdx +2 -2
  149. package/.docs/raw/reference/core/getStorage.mdx +1 -1
  150. package/.docs/raw/reference/core/getTelemetry.mdx +1 -1
  151. package/.docs/raw/reference/core/getVector.mdx +1 -1
  152. package/.docs/raw/reference/core/getVectors.mdx +1 -1
  153. package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
  154. package/.docs/raw/reference/core/getWorkflows.mdx +1 -1
  155. package/.docs/raw/reference/core/listLogs.mdx +1 -1
  156. package/.docs/raw/reference/core/listLogsByRunId.mdx +1 -1
  157. package/.docs/raw/reference/core/listScorers.mdx +1 -1
  158. package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
  159. package/.docs/raw/reference/core/mastra-class.mdx +1 -1
  160. package/.docs/raw/reference/core/setLogger.mdx +1 -1
  161. package/.docs/raw/reference/core/setStorage.mdx +1 -1
  162. package/.docs/raw/reference/core/setTelemetry.mdx +1 -1
  163. package/.docs/raw/reference/deployer/cloudflare.mdx +1 -1
  164. package/.docs/raw/reference/deployer/deployer.mdx +1 -1
  165. package/.docs/raw/reference/deployer/netlify.mdx +1 -1
  166. package/.docs/raw/reference/deployer/vercel.mdx +1 -1
  167. package/.docs/raw/reference/evals/answer-relevancy.mdx +1 -1
  168. package/.docs/raw/reference/evals/bias.mdx +1 -1
  169. package/.docs/raw/reference/evals/completeness.mdx +1 -1
  170. package/.docs/raw/reference/evals/content-similarity.mdx +1 -1
  171. package/.docs/raw/reference/evals/context-position.mdx +1 -1
  172. package/.docs/raw/reference/evals/context-precision.mdx +1 -1
  173. package/.docs/raw/reference/evals/context-relevancy.mdx +1 -1
  174. package/.docs/raw/reference/evals/contextual-recall.mdx +1 -1
  175. package/.docs/raw/reference/evals/faithfulness.mdx +1 -1
  176. package/.docs/raw/reference/evals/hallucination.mdx +1 -1
  177. package/.docs/raw/reference/evals/keyword-coverage.mdx +1 -1
  178. package/.docs/raw/reference/evals/prompt-alignment.mdx +1 -1
  179. package/.docs/raw/reference/evals/summarization.mdx +1 -1
  180. package/.docs/raw/reference/evals/textual-difference.mdx +1 -1
  181. package/.docs/raw/reference/evals/tone-consistency.mdx +1 -1
  182. package/.docs/raw/reference/evals/toxicity.mdx +1 -1
  183. package/.docs/raw/reference/legacyWorkflows/after.mdx +1 -1
  184. package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +1 -1
  185. package/.docs/raw/reference/legacyWorkflows/commit.mdx +1 -1
  186. package/.docs/raw/reference/legacyWorkflows/createRun.mdx +1 -1
  187. package/.docs/raw/reference/legacyWorkflows/else.mdx +1 -1
  188. package/.docs/raw/reference/legacyWorkflows/events.mdx +1 -1
  189. package/.docs/raw/reference/legacyWorkflows/execute.mdx +1 -1
  190. package/.docs/raw/reference/legacyWorkflows/if.mdx +1 -1
  191. package/.docs/raw/reference/legacyWorkflows/resume.mdx +1 -1
  192. package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +1 -1
  193. package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +1 -1
  194. package/.docs/raw/reference/legacyWorkflows/start.mdx +1 -1
  195. package/.docs/raw/reference/legacyWorkflows/step-class.mdx +1 -1
  196. package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +1 -1
  197. package/.docs/raw/reference/legacyWorkflows/step-function.mdx +1 -1
  198. package/.docs/raw/reference/legacyWorkflows/step-options.mdx +1 -1
  199. package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +1 -1
  200. package/.docs/raw/reference/legacyWorkflows/suspend.mdx +1 -1
  201. package/.docs/raw/reference/legacyWorkflows/then.mdx +1 -1
  202. package/.docs/raw/reference/legacyWorkflows/until.mdx +1 -1
  203. package/.docs/raw/reference/legacyWorkflows/watch.mdx +1 -1
  204. package/.docs/raw/reference/legacyWorkflows/while.mdx +1 -1
  205. package/.docs/raw/reference/legacyWorkflows/workflow.mdx +1 -1
  206. package/.docs/raw/reference/memory/createThread.mdx +1 -1
  207. package/.docs/raw/reference/memory/deleteMessages.mdx +1 -1
  208. package/.docs/raw/reference/memory/getThreadById.mdx +1 -1
  209. package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +1 -1
  210. package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +1 -1
  211. package/.docs/raw/reference/memory/memory-class.mdx +1 -1
  212. package/.docs/raw/reference/memory/query.mdx +1 -1
  213. package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +1 -1
  214. package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +1 -1
  215. package/.docs/raw/reference/observability/ai-tracing/exporters/arize.mdx +1 -1
  216. package/.docs/raw/reference/observability/ai-tracing/exporters/braintrust.mdx +1 -1
  217. package/.docs/raw/reference/observability/ai-tracing/exporters/cloud-exporter.mdx +1 -1
  218. package/.docs/raw/reference/observability/ai-tracing/exporters/console-exporter.mdx +1 -1
  219. package/.docs/raw/reference/observability/ai-tracing/exporters/default-exporter.mdx +1 -1
  220. package/.docs/raw/reference/observability/ai-tracing/exporters/langfuse.mdx +1 -1
  221. package/.docs/raw/reference/observability/ai-tracing/exporters/langsmith.mdx +1 -1
  222. package/.docs/raw/reference/observability/ai-tracing/exporters/otel.mdx +1 -1
  223. package/.docs/raw/reference/observability/ai-tracing/interfaces.mdx +1 -1
  224. package/.docs/raw/reference/observability/ai-tracing/processors/sensitive-data-filter.mdx +1 -1
  225. package/.docs/raw/reference/observability/ai-tracing/span.mdx +1 -1
  226. package/.docs/raw/reference/observability/logging/pino-logger.mdx +2 -2
  227. package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +1 -1
  228. package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +1 -1
  229. package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +1 -1
  230. package/.docs/raw/reference/observability/otel-tracing/providers/braintrust.mdx +1 -1
  231. package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +1 -1
  232. package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +1 -1
  233. package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +1 -1
  234. package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +1 -1
  235. package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +1 -1
  236. package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +1 -1
  237. package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +1 -1
  238. package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +1 -1
  239. package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +1 -1
  240. package/.docs/raw/reference/processors/batch-parts-processor.mdx +1 -1
  241. package/.docs/raw/reference/processors/language-detector.mdx +1 -1
  242. package/.docs/raw/reference/processors/moderation-processor.mdx +1 -1
  243. package/.docs/raw/reference/processors/pii-detector.mdx +1 -1
  244. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +1 -1
  245. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +1 -1
  246. package/.docs/raw/reference/processors/token-limiter-processor.mdx +1 -1
  247. package/.docs/raw/reference/processors/unicode-normalizer.mdx +1 -1
  248. package/.docs/raw/reference/rag/chunk.mdx +1 -1
  249. package/.docs/raw/reference/rag/database-config.mdx +1 -1
  250. package/.docs/raw/reference/rag/document.mdx +1 -1
  251. package/.docs/raw/reference/rag/embeddings.mdx +1 -1
  252. package/.docs/raw/reference/rag/extract-params.mdx +1 -1
  253. package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
  254. package/.docs/raw/reference/rag/metadata-filters.mdx +1 -1
  255. package/.docs/raw/reference/rag/rerank.mdx +1 -1
  256. package/.docs/raw/reference/rag/rerankWithScorer.mdx +1 -1
  257. package/.docs/raw/reference/scorers/answer-relevancy.mdx +1 -1
  258. package/.docs/raw/reference/scorers/answer-similarity.mdx +1 -1
  259. package/.docs/raw/reference/scorers/bias.mdx +1 -1
  260. package/.docs/raw/reference/scorers/completeness.mdx +1 -1
  261. package/.docs/raw/reference/scorers/content-similarity.mdx +1 -1
  262. package/.docs/raw/reference/scorers/context-precision.mdx +1 -1
  263. package/.docs/raw/reference/scorers/context-relevance.mdx +1 -1
  264. package/.docs/raw/reference/scorers/create-scorer.mdx +1 -1
  265. package/.docs/raw/reference/scorers/faithfulness.mdx +1 -1
  266. package/.docs/raw/reference/scorers/hallucination.mdx +1 -1
  267. package/.docs/raw/reference/scorers/keyword-coverage.mdx +1 -1
  268. package/.docs/raw/reference/scorers/mastra-scorer.mdx +1 -1
  269. package/.docs/raw/reference/scorers/noise-sensitivity.mdx +1 -1
  270. package/.docs/raw/reference/scorers/prompt-alignment.mdx +1 -1
  271. package/.docs/raw/reference/scorers/run-experiment.mdx +1 -1
  272. package/.docs/raw/reference/scorers/textual-difference.mdx +1 -1
  273. package/.docs/raw/reference/scorers/tone-consistency.mdx +1 -1
  274. package/.docs/raw/reference/scorers/tool-call-accuracy.mdx +1 -1
  275. package/.docs/raw/reference/scorers/toxicity.mdx +1 -1
  276. package/.docs/raw/reference/storage/cloudflare-d1.mdx +1 -1
  277. package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
  278. package/.docs/raw/reference/storage/dynamodb.mdx +1 -1
  279. package/.docs/raw/reference/storage/lance.mdx +1 -1
  280. package/.docs/raw/reference/storage/libsql.mdx +1 -1
  281. package/.docs/raw/reference/storage/mongodb.mdx +1 -1
  282. package/.docs/raw/reference/storage/mssql.mdx +1 -1
  283. package/.docs/raw/reference/storage/postgresql.mdx +1 -1
  284. package/.docs/raw/reference/storage/upstash.mdx +1 -1
  285. package/.docs/raw/reference/streaming/ChunkType.mdx +1 -1
  286. package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +1 -1
  287. package/.docs/raw/reference/streaming/agents/stream.mdx +1 -1
  288. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +1 -1
  289. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +1 -1
  290. package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +1 -1
  291. package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +1 -1
  292. package/.docs/raw/reference/streaming/workflows/stream.mdx +1 -1
  293. package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +1 -1
  294. package/.docs/raw/reference/templates/overview.mdx +1 -1
  295. package/.docs/raw/reference/tools/client.mdx +1 -1
  296. package/.docs/raw/reference/tools/create-tool.mdx +3 -4
  297. package/.docs/raw/reference/tools/document-chunker-tool.mdx +1 -1
  298. package/.docs/raw/reference/tools/graph-rag-tool.mdx +2 -2
  299. package/.docs/raw/reference/tools/mcp-client.mdx +9 -9
  300. package/.docs/raw/reference/tools/mcp-server.mdx +2 -2
  301. package/.docs/raw/reference/tools/vector-query-tool.mdx +3 -3
  302. package/.docs/raw/reference/vectors/astra.mdx +1 -1
  303. package/.docs/raw/reference/vectors/chroma.mdx +1 -1
  304. package/.docs/raw/reference/vectors/couchbase.mdx +1 -1
  305. package/.docs/raw/reference/vectors/lance.mdx +1 -1
  306. package/.docs/raw/reference/vectors/libsql.mdx +1 -1
  307. package/.docs/raw/reference/vectors/mongodb.mdx +1 -1
  308. package/.docs/raw/reference/vectors/opensearch.mdx +1 -1
  309. package/.docs/raw/reference/vectors/pg.mdx +1 -1
  310. package/.docs/raw/reference/vectors/pinecone.mdx +1 -1
  311. package/.docs/raw/reference/vectors/qdrant.mdx +1 -1
  312. package/.docs/raw/reference/vectors/s3vectors.mdx +1 -1
  313. package/.docs/raw/reference/vectors/turbopuffer.mdx +1 -1
  314. package/.docs/raw/reference/vectors/upstash.mdx +1 -1
  315. package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
  316. package/.docs/raw/reference/voice/azure.mdx +1 -1
  317. package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
  318. package/.docs/raw/reference/voice/composite-voice.mdx +1 -1
  319. package/.docs/raw/reference/voice/deepgram.mdx +1 -1
  320. package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
  321. package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
  322. package/.docs/raw/reference/voice/google.mdx +1 -1
  323. package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
  324. package/.docs/raw/reference/voice/murf.mdx +1 -1
  325. package/.docs/raw/reference/voice/openai-realtime.mdx +1 -1
  326. package/.docs/raw/reference/voice/openai.mdx +1 -1
  327. package/.docs/raw/reference/voice/playai.mdx +1 -1
  328. package/.docs/raw/reference/voice/sarvam.mdx +1 -1
  329. package/.docs/raw/reference/voice/speechify.mdx +1 -1
  330. package/.docs/raw/reference/voice/voice.addInstructions.mdx +1 -1
  331. package/.docs/raw/reference/voice/voice.addTools.mdx +1 -1
  332. package/.docs/raw/reference/voice/voice.answer.mdx +1 -1
  333. package/.docs/raw/reference/voice/voice.close.mdx +1 -1
  334. package/.docs/raw/reference/voice/voice.connect.mdx +1 -1
  335. package/.docs/raw/reference/voice/voice.events.mdx +1 -1
  336. package/.docs/raw/reference/voice/voice.getSpeakers.mdx +1 -1
  337. package/.docs/raw/reference/voice/voice.listen.mdx +1 -1
  338. package/.docs/raw/reference/voice/voice.off.mdx +1 -1
  339. package/.docs/raw/reference/voice/voice.on.mdx +1 -1
  340. package/.docs/raw/reference/voice/voice.send.mdx +1 -1
  341. package/.docs/raw/reference/voice/voice.speak.mdx +1 -1
  342. package/.docs/raw/reference/voice/voice.updateConfig.mdx +1 -1
  343. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +1 -1
  344. package/.docs/raw/reference/workflows/run-methods/resume.mdx +1 -1
  345. package/.docs/raw/reference/workflows/run-methods/start.mdx +1 -1
  346. package/.docs/raw/reference/workflows/run-methods/watch.mdx +1 -1
  347. package/.docs/raw/reference/workflows/run.mdx +1 -1
  348. package/.docs/raw/reference/workflows/step.mdx +1 -1
  349. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
  350. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
  351. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +1 -1
  352. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
  353. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
  354. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
  355. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +1 -1
  356. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
  357. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +1 -1
  358. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
  359. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
  360. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
  361. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
  362. package/.docs/raw/reference/workflows/workflow.mdx +1 -1
  363. package/.docs/raw/scorers/{off-the-shelf-scorers.mdx → built-in-scorers.mdx} +7 -5
  364. package/.docs/raw/scorers/custom-scorers.mdx +16 -16
  365. package/.docs/raw/scorers/{evals-old-api → evals-legacy}/custom-eval.mdx +1 -1
  366. package/.docs/raw/scorers/{evals-old-api → evals-legacy}/overview.mdx +13 -13
  367. package/.docs/raw/scorers/{evals-old-api → evals-legacy}/running-in-ci.mdx +5 -5
  368. package/.docs/raw/scorers/{evals-old-api → evals-legacy}/textual-evals.mdx +7 -7
  369. package/.docs/raw/scorers/overview.mdx +5 -5
  370. package/.docs/raw/server-db/custom-api-routes.mdx +1 -1
  371. package/.docs/raw/server-db/mastra-client.mdx +2 -2
  372. package/.docs/raw/server-db/{production-server.mdx → mastra-server.mdx} +2 -2
  373. package/.docs/raw/server-db/middleware.mdx +30 -30
  374. package/.docs/raw/server-db/runtime-context.mdx +3 -3
  375. package/.docs/raw/server-db/storage.mdx +1 -1
  376. package/.docs/raw/streaming/events.mdx +1 -1
  377. package/.docs/raw/streaming/overview.mdx +1 -1
  378. package/.docs/raw/streaming/tool-streaming.mdx +1 -1
  379. package/.docs/raw/streaming/workflow-streaming.mdx +1 -1
  380. package/.docs/raw/voice/overview.mdx +1 -1
  381. package/.docs/raw/voice/speech-to-speech.mdx +1 -1
  382. package/.docs/raw/voice/speech-to-text.mdx +1 -1
  383. package/.docs/raw/voice/text-to-speech.mdx +1 -1
  384. package/.docs/raw/workflows/agents-and-tools.mdx +2 -2
  385. package/.docs/raw/workflows/control-flow.mdx +7 -1
  386. package/.docs/raw/workflows/error-handling.mdx +4 -4
  387. package/.docs/raw/workflows/human-in-the-loop.mdx +160 -210
  388. package/.docs/raw/workflows/inngest-workflow.mdx +1 -1
  389. package/.docs/raw/workflows/overview.mdx +11 -2
  390. package/.docs/raw/workflows/snapshots.mdx +4 -4
  391. package/.docs/raw/workflows/suspend-and-resume.mdx +72 -215
  392. package/.docs/raw/workflows-legacy/control-flow.mdx +1 -1
  393. package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +1 -1
  394. package/.docs/raw/workflows-legacy/error-handling.mdx +1 -1
  395. package/.docs/raw/workflows-legacy/nested-workflows.mdx +1 -1
  396. package/.docs/raw/workflows-legacy/overview.mdx +1 -1
  397. package/.docs/raw/workflows-legacy/runtime-variables.mdx +1 -1
  398. package/.docs/raw/workflows-legacy/steps.mdx +1 -1
  399. package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +1 -1
  400. package/.docs/raw/workflows-legacy/variables.mdx +1 -1
  401. package/CHANGELOG.md +14 -0
  402. package/package.json +4 -4
  403. package/.docs/raw/deployment/serverless-platforms/index.mdx +0 -55
  404. package/.docs/raw/reference/agents/listTools.mdx +0 -69
  405. package/.docs/raw/reference/core/listAgents.mdx +0 -35
  406. package/.docs/raw/tools-mcp/advanced-usage.mdx +0 -128
  407. package/.docs/raw/tools-mcp/overview.mdx +0 -88
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Speech-to-Text (STT) | Voice | Mastra Docs"
2
+ title: "Speech-to-Text (STT) | Voice"
3
3
  description: Overview of Speech-to-Text capabilities in Mastra, including configuration, usage, and integration with voice providers.
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Text-to-Speech (TTS) | Voice | Mastra Docs"
2
+ title: "Text-to-Speech (TTS) | Voice"
3
3
  description: Overview of Text-to-Speech capabilities in Mastra, including configuration, usage, and integration with voice providers.
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Agents and Tools | Workflows | Mastra Docs"
2
+ title: "Agents and Tools | Workflows"
3
3
  description: "Learn how to call agents and tools from workflow steps and choose between execute functions and step composition."
4
4
  ---
5
5
 
@@ -139,4 +139,4 @@ export const testWorkflow = createWorkflow({
139
139
  ## Related
140
140
 
141
141
  - [Using Agents](/docs/agents/overview)
142
- - [Using Tools](../tools-mcp/overview)
142
+ - [MCP Overview](/docs/mcp/overview)
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Control Flow | Workflows | Mastra Docs"
2
+ title: "Control Flow | Workflows"
3
3
  description: "Control flow in Mastra workflows allows you to manage branching, merging, and conditions to construct workflows that meet your logic requirements."
4
4
  ---
5
5
 
@@ -306,3 +306,9 @@ export const testWorkflow = createWorkflow({...})
306
306
  })
307
307
  .commit();
308
308
  ```
309
+
310
+
311
+ ## Related
312
+
313
+ - [Suspend & Resume](/docs/workflows/suspend-and-resume)
314
+ - [Human-in-the-loop](/docs/workflows/human-in-the-loop)
@@ -1,5 +1,5 @@
1
1
  ---
2
- title: "Error Handling | Workflows | Mastra Docs"
2
+ title: "Error Handling | Workflows"
3
3
  description: "Learn how to handle errors in Mastra workflows using step retries, conditional branching, and monitoring."
4
4
  ---
5
5
 
@@ -206,6 +206,6 @@ for await (const chunk of stream.stream) {
206
206
 
207
207
  ## Related
208
208
 
209
- - [Control Flow](./control-flow)
210
- - [Conditional Branching](./control-flow#conditional-logic-with-branch)
211
- - [Running Workflows](/examples/workflows_legacy/creating-a-workflow)
209
+ - [Control Flow](/docs/workflows/control-flow)
210
+ - [Suspend & Resume](/docs/workflows/suspend-and-resume)
211
+ - [Human-in-the-loop](/docs/workflows/human-in-the-loop)
@@ -1,268 +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/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/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
- name: "Famous Person Generator",
40
- instructions: `You are a famous person generator for a "Heads Up" guessing game.
41
-
42
- Generate the name of a well-known famous person who:
43
- - Is recognizable to most people
44
- - Has distinctive characteristics that can be described with yes/no questions
45
- - Is appropriate for all audiences
46
- - Has a clear, unambiguous name
47
-
48
- IMPORTANT: Use your memory to check what famous people you've already suggested and NEVER repeat a person you've already suggested.
49
-
50
- Examples: Albert Einstein, Beyoncé, Leonardo da Vinci, Oprah Winfrey, Michael Jordan
51
-
52
- Return only the person's name, nothing else.`,
53
- model: openai("gpt-4o"),
54
- memory: new Memory({
55
- vector: new LibSQLVector({
56
- connectionUrl: "file:../mastra.db",
57
- }),
58
- embedder: openai.embedding("text-embedding-3-small"),
59
- options: {
60
- lastMessages: 5,
61
- semanticRecall: {
62
- topK: 10,
63
- messageRange: 1,
64
- },
65
- },
50
+ export const testWorkflow = createWorkflow({
51
+ id: "test-workflow",
52
+ inputSchema: z.object({
53
+ userEmail: z.string()
66
54
  }),
67
- });
55
+ outputSchema: z.object({
56
+ output: z.string()
57
+ })
58
+ })
59
+ .then(step1)
60
+ .commit();
68
61
  ```
69
62
 
70
- > See [Agent](/reference/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
+ });
71
76
 
72
- ## Game agent
77
+ if (result.status === "suspended") {
78
+ const suspendStep = result.suspended[0];
79
+ const suspendedPayload = result.steps[suspendStep[0]].suspendPayload;
73
80
 
74
- The `gameAgent` handles user interactions by responding to questions and validating guesses.
81
+ console.log(suspendedPayload);
82
+ }
83
+ ```
84
+ **Example output**
75
85
 
76
- ```typescript title="src/mastra/agents/example-game-agent.ts" showLineNumbers copy
77
- import { openai } from "@ai-sdk/openai";
78
- 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.
79
87
 
80
- export const gameAgent = new Agent({
81
- name: "Game Agent",
82
- instructions: `You are a helpful game assistant for a "Heads Up" guessing game.
88
+ ```typescript
89
+ { reason: 'Confirm to send email.' }
90
+ ```
83
91
 
84
- CRITICAL: You know the famous person's name but you must NEVER reveal it in any response.
92
+ ## Resuming workflows with human input
85
93
 
86
- When a user asks a question about the famous person:
87
- - Answer truthfully based on the famous person provided
88
- - Keep responses concise and friendly
89
- - NEVER mention the person's name, even if it seems natural
90
- - NEVER reveal gender, nationality, or other characteristics unless specifically asked about them
91
- - Answer yes/no questions with clear "Yes" or "No" responses
92
- - Be consistent - same question asked differently should get the same answer
93
- - Ask for clarification if a question is unclear
94
- - If multiple questions are asked at once, ask them to ask one at a time
94
+ As with [restarting a workflow](/docs/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.
95
95
 
96
- When they make a guess:
97
- - If correct: Congratulate them warmly
98
- - If incorrect: Politely correct them and encourage them to try again
96
+ ![Restarting a workflow with resume()](/img/workflows/workflows-suspend-resume-resume.jpg)
99
97
 
100
- 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();
101
101
 
102
- You must return a JSON object with:
103
- - response: Your response to the user
104
- - gameWon: true if they guessed correctly, false otherwise`,
105
- model: openai("gpt-4o"),
102
+ await run.start({
103
+ inputData: {
104
+ userEmail: "alex@example.com"
105
+ }
106
106
  });
107
+
108
+ const handleResume = async () => {
109
+ const result = await run.resume({
110
+ step: "step-1",
111
+ resumeData: { approved: true }
112
+ });
113
+ };
107
114
  ```
108
115
 
109
- ## Multi-turn workflow
116
+ ### Handling human rejection with `bail()`
110
117
 
111
- 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.
112
119
 
113
- 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 ?? {};
114
126
 
115
- ```typescript title="src/mastra/workflows/example-heads-up-workflow.ts" showLineNumbers copy
116
- import { createWorkflow, createStep } from "@mastra/core/workflows";
117
- import { z } from "zod";
127
+ if (approved === false) {
128
+ return bail({
129
+ reason: "User rejected the request."
130
+ });
131
+ }
118
132
 
119
- const startStep = createStep({
120
- id: "start-step",
121
- description: "Get the name of a famous person",
122
- inputSchema: z.object({
123
- start: z.boolean(),
124
- }),
125
- outputSchema: z.object({
126
- famousPerson: z.string(),
127
- guessCount: z.number(),
128
- }),
129
- execute: async ({ mastra }) => {
130
- const agent = mastra.getAgent("famousPersonAgent");
131
- const response = await agent.generate("Generate a famous person's name", {
132
- temperature: 1.2,
133
- topP: 0.9,
134
- memory: {
135
- resource: "heads-up-game",
136
- thread: "famous-person-generator",
137
- },
138
- });
139
- const famousPerson = response.text.trim();
140
- return { famousPerson, guessCount: 0 };
141
- },
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
+ }
142
143
  });
144
+ ```
143
145
 
144
- const gameStep = createStep({
145
- id: "game-step",
146
- 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",
147
155
  inputSchema: z.object({
148
- famousPerson: z.string(),
149
- guessCount: z.number(),
156
+ message: z.string()
157
+ }),
158
+ outputSchema: z.object({
159
+ output: z.string()
150
160
  }),
151
161
  resumeSchema: z.object({
152
- userMessage: z.string(),
162
+ approved: z.boolean()
153
163
  }),
154
164
  suspendSchema: z.object({
155
- suspendResponse: z.string(),
156
- }),
157
- outputSchema: z.object({
158
- famousPerson: z.string(),
159
- gameWon: z.boolean(),
160
- agentResponse: z.string(),
161
- guessCount: z.number(),
165
+ reason: z.string()
162
166
  }),
163
- execute: async ({ inputData, mastra, resumeData, suspend }) => {
164
- let { famousPerson, guessCount } = inputData;
165
- const { userMessage } = resumeData ?? {};
167
+ execute: async ({ inputData, resumeData, suspend }) => {
168
+ const { message } = inputData;
169
+ const { approved } = resumeData ?? {};
166
170
 
167
- if (!userMessage) {
171
+ if (!approved) {
168
172
  return await suspend({
169
- suspendResponse:
170
- "I'm thinking of a famous person. Ask me yes/no questions to figure out who it is!",
173
+ reason: "Human approval required."
171
174
  });
172
175
  }
173
176
 
174
- const agent = mastra.getAgent("gameAgent");
175
- const response = await agent.generate(
176
- `
177
- The famous person is: ${famousPerson}
178
- The user said: "${userMessage}"
179
- Please respond appropriately. If this is a guess, tell me if it's correct.
180
- `,
181
- {
182
- structuredOutput: {
183
- schema: z.object({
184
- response: z.string(),
185
- gameWon: z.boolean(),
186
- }),
187
- },
188
- },
189
- );
190
-
191
- const { response: agentResponse, gameWon } = response.object;
192
-
193
- guessCount++;
194
-
195
- return { famousPerson, gameWon, agentResponse, guessCount };
196
- },
177
+ return {
178
+ output: `${message} - Deleted`
179
+ };
180
+ }
197
181
  });
198
182
 
199
- const winStep = createStep({
200
- id: "win-step",
201
- description: "Handle game win logic",
183
+ export const testWorkflow = createWorkflow({
184
+ id: "test-workflow",
202
185
  inputSchema: z.object({
203
- famousPerson: z.string(),
204
- gameWon: z.boolean(),
205
- agentResponse: z.string(),
206
- guessCount: z.number(),
186
+ userEmail: z.string()
207
187
  }),
208
188
  outputSchema: z.object({
209
- famousPerson: z.string(),
210
- gameWon: z.boolean(),
211
- guessCount: z.number(),
212
- }),
213
- execute: async ({ inputData }) => {
214
- const { famousPerson, gameWon, guessCount } = inputData;
215
-
216
- console.log("famousPerson: ", famousPerson);
217
- console.log("gameWon: ", gameWon);
218
- console.log("guessCount: ", guessCount);
219
-
220
- return { famousPerson, gameWon, guessCount };
221
- },
222
- });
223
-
224
- export const headsUpWorkflow = createWorkflow({
225
- id: "heads-up-workflow",
226
- inputSchema: z.object({
227
- start: z.boolean(),
228
- }),
229
- outputSchema: z.object({
230
- famousPerson: z.string(),
231
- gameWon: z.boolean(),
232
- guessCount: z.number(),
233
- }),
189
+ output: z.string()
190
+ })
234
191
  })
235
- .then(startStep)
236
- .dountil(gameStep, async ({ inputData: { gameWon } }) => gameWon)
237
- .then(winStep)
192
+ .then(step1)
193
+ .then(step2)
238
194
  .commit();
239
195
  ```
240
196
 
241
- > See [Workflow](/reference/workflows/workflow) for a full list of configuration options.
242
-
243
- ## Registering the agents and workflow
244
-
245
- To use a workflow or an agent, register them in your main Mastra instance.
246
-
247
- ```typescript title="src/mastra/index.ts" showLineNumbers copy
248
- import { Mastra } from "@mastra/core/mastra";
249
-
250
- import { headsUpWorkflow } from "./workflows/example-heads-up-workflow";
251
- import { famousPersonAgent } from "./agents/example-famous-person-agent";
252
- import { gameAgent } from "./agents/example-game-agent";
253
-
254
- export const mastra = new Mastra({
255
- workflows: { headsUpWorkflow },
256
- agents: { famousPersonAgent, gameAgent },
257
- });
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
+ };
258
213
  ```
259
214
 
260
- <GithubLink
261
- marginTop="mt-16"
262
- link="https://github.com/mastra-ai/mastra/blob/main/examples/heads-up-game/"
263
- />
264
-
265
215
  ## Related
266
216
 
267
- - [Running Workflows](./overview#running-workflows)
268
217
  - [Control Flow](/docs/workflows/control-flow)
218
+ - [Suspend & Resume](/docs/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: "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
 
@@ -221,6 +221,7 @@ const testWorkflow = mastra.getWorkflow("testWorkflow");
221
221
  `mastra.getWorkflow()` is preferred over a direct import, since it provides access to the Mastra instance configuration (logger, telemetry, storage, registered agents, and vector stores).
222
222
  :::
223
223
 
224
+
224
225
  ## Running workflows
225
226
 
226
227
  Workflows can be run in two modes: start waits for all steps to complete before returning, and stream emits events during execution. Choose the approach that fits your use case: start when you only need the final result, and stream when you want to monitor progress or trigger actions as steps complete.
@@ -260,7 +261,11 @@ for await (const chunk of result.stream) {
260
261
  </TabItem>
261
262
  </Tabs>
262
263
 
263
- ## Workflow output
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
 
@@ -329,3 +334,7 @@ Use [Studio](/docs/getting-started/studio) to easily run workflows with differen
329
334
  ## Related
330
335
 
331
336
  For a closer look at workflows, see our [Workflow Guide](/guides/guide/ai-recruiter), which walks through the core concepts with a practical example.
337
+
338
+ - [Control Flow](/docs/workflows/control-flow)
339
+ - [Suspend & Resume](/docs/workflows/suspend-and-resume)
340
+ - [Error Handling](/docs/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
 
@@ -263,6 +263,6 @@ if (result.status === "suspended") {
263
263
 
264
264
  ## Related
265
265
 
266
- - [Suspend and resume](/docs/workflows/suspend-and-resume)
267
- - [Human in the loop example](/examples/workflows_legacy/human-in-the-loop)
268
- - [WorkflowRun.watch()](/reference/workflows/run-methods/watch)
266
+ - [Control Flow](/docs/workflows/control-flow)
267
+ - [Suspend & Resume](/docs/workflows/suspend-and-resume)
268
+ - [Human-in-the-loop](/docs/workflows/human-in-the-loop)