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

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 (494) hide show
  1. package/.docs/organized/changelogs/%40internal%2Fai-sdk-v4.md +1 -0
  2. package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +0 -10
  3. package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +0 -10
  4. package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +36 -36
  5. package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +0 -10
  6. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +70 -70
  7. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +40 -40
  8. package/.docs/organized/changelogs/%40mastra%2Fastra.md +19 -19
  9. package/.docs/organized/changelogs/%40mastra%2Fauth.md +4 -14
  10. package/.docs/organized/changelogs/%40mastra%2Fchroma.md +18 -18
  11. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +199 -199
  12. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +220 -220
  13. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +190 -190
  14. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +199 -199
  15. package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +7 -0
  16. package/.docs/organized/changelogs/%40mastra%2Fcore.md +210 -210
  17. package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +16 -16
  18. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +69 -69
  19. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +67 -67
  20. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +70 -70
  21. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +67 -67
  22. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +209 -209
  23. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +191 -191
  24. package/.docs/organized/changelogs/%40mastra%2Fevals.md +34 -34
  25. package/.docs/organized/changelogs/%40mastra%2Ffastembed.md +5 -13
  26. package/.docs/organized/changelogs/%40mastra%2Flance.md +182 -182
  27. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +199 -199
  28. package/.docs/organized/changelogs/%40mastra%2Floggers.md +20 -20
  29. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +56 -56
  30. package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +20 -20
  31. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +65 -65
  32. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +228 -228
  33. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +199 -199
  34. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +206 -206
  35. package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +19 -19
  36. package/.docs/organized/changelogs/%40mastra%2Fpg.md +197 -197
  37. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +16 -16
  38. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +216 -216
  39. package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +16 -16
  40. package/.docs/organized/changelogs/%40mastra%2Frag.md +61 -61
  41. package/.docs/organized/changelogs/%40mastra%2Freact.md +66 -66
  42. package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +9 -17
  43. package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +6 -30
  44. package/.docs/organized/changelogs/%40mastra%2Fserver.md +203 -203
  45. package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +16 -16
  46. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +190 -190
  47. package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +18 -18
  48. package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +21 -21
  49. package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +20 -20
  50. package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +20 -20
  51. package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +20 -20
  52. package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +20 -20
  53. package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +56 -56
  54. package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +20 -20
  55. package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +20 -20
  56. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +56 -56
  57. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +20 -20
  58. package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +20 -20
  59. package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +20 -20
  60. package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +20 -20
  61. package/.docs/organized/changelogs/create-mastra.md +29 -29
  62. package/.docs/organized/changelogs/mastra.md +93 -93
  63. package/.docs/organized/code-examples/a2a.md +4 -2
  64. package/.docs/organized/code-examples/agui.md +12 -9
  65. package/.docs/organized/code-examples/ai-sdk-useChat.md +12 -18
  66. package/.docs/organized/code-examples/ai-sdk-v5.md +4 -2
  67. package/.docs/organized/code-examples/bird-checker-with-express.md +5 -4
  68. package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +4 -3
  69. package/.docs/organized/code-examples/bird-checker-with-nextjs.md +4 -3
  70. package/.docs/organized/code-examples/client-side-tools.md +1 -0
  71. package/.docs/organized/code-examples/crypto-chatbot.md +1 -1
  72. package/.docs/organized/code-examples/experimental-auth-weather-agent.md +8 -177
  73. package/.docs/organized/code-examples/fireworks-r1.md +2 -2
  74. package/.docs/organized/code-examples/heads-up-game.md +10 -7
  75. package/.docs/organized/code-examples/mcp-configuration.md +5 -3
  76. package/.docs/organized/code-examples/mcp-registry-registry.md +3 -2
  77. package/.docs/organized/code-examples/memory-per-resource-example.md +4 -2
  78. package/.docs/organized/code-examples/memory-todo-agent.md +1 -0
  79. package/.docs/organized/code-examples/memory-with-context.md +2 -1
  80. package/.docs/organized/code-examples/memory-with-libsql.md +4 -2
  81. package/.docs/organized/code-examples/memory-with-mongodb.md +4 -2
  82. package/.docs/organized/code-examples/memory-with-pg.md +4 -2
  83. package/.docs/organized/code-examples/memory-with-processors.md +13 -8
  84. package/.docs/organized/code-examples/memory-with-upstash.md +5 -3
  85. package/.docs/organized/code-examples/openapi-spec-writer.md +32 -41
  86. package/.docs/organized/code-examples/quick-start.md +5 -32
  87. package/.docs/organized/code-examples/stock-price-tool.md +6 -5
  88. package/.docs/organized/code-examples/weather-agent.md +21 -16
  89. package/.docs/organized/code-examples/workflow-ai-recruiter.md +3 -2
  90. package/.docs/organized/code-examples/workflow-with-inline-steps.md +9 -12
  91. package/.docs/organized/code-examples/workflow-with-memory.md +16 -15
  92. package/.docs/organized/code-examples/workflow-with-separate-steps.md +2 -2
  93. package/.docs/organized/code-examples/workflow-with-suspend-resume.md +3 -2
  94. package/.docs/raw/agents/adding-voice.mdx +27 -22
  95. package/.docs/raw/agents/agent-memory.mdx +24 -16
  96. package/.docs/raw/agents/guardrails.mdx +33 -12
  97. package/.docs/raw/agents/networks.mdx +8 -4
  98. package/.docs/raw/agents/overview.mdx +23 -17
  99. package/.docs/raw/agents/using-tools.mdx +11 -8
  100. package/.docs/raw/auth/auth0.mdx +9 -9
  101. package/.docs/raw/auth/clerk.mdx +7 -7
  102. package/.docs/raw/auth/firebase.mdx +9 -9
  103. package/.docs/raw/auth/index.mdx +6 -6
  104. package/.docs/raw/auth/jwt.mdx +7 -7
  105. package/.docs/raw/auth/supabase.mdx +8 -8
  106. package/.docs/raw/auth/workos.mdx +9 -9
  107. package/.docs/raw/community/contributing-templates.mdx +3 -3
  108. package/.docs/raw/community/discord.mdx +1 -1
  109. package/.docs/raw/course/01-first-agent/03-verifying-installation.md +1 -1
  110. package/.docs/raw/course/01-first-agent/08-exporting-your-agent.md +2 -1
  111. package/.docs/raw/course/01-first-agent/16-adding-memory-to-agent.md +2 -1
  112. package/.docs/raw/course/02-agent-tools-mcp/02-installing-mcp.md +1 -1
  113. package/.docs/raw/course/02-agent-tools-mcp/31-enhancing-memory-configuration.md +2 -0
  114. package/.docs/raw/course/03-agent-memory/03-installing-memory.md +1 -1
  115. package/.docs/raw/course/03-agent-memory/04-creating-basic-memory-agent.md +1 -0
  116. package/.docs/raw/course/03-agent-memory/10-storage-configuration.md +2 -3
  117. package/.docs/raw/course/03-agent-memory/13-vector-store-configuration.md +2 -0
  118. package/.docs/raw/course/03-agent-memory/16-configuring-semantic-recall.md +2 -0
  119. package/.docs/raw/course/03-agent-memory/18-advanced-configuration-semantic-recall.md +1 -0
  120. package/.docs/raw/course/03-agent-memory/21-configuring-working-memory.md +2 -0
  121. package/.docs/raw/course/03-agent-memory/22-custom-working-memory-templates.md +1 -0
  122. package/.docs/raw/course/03-agent-memory/25-combining-memory-features.md +1 -0
  123. package/.docs/raw/course/03-agent-memory/27-creating-learning-assistant.md +1 -0
  124. package/.docs/raw/course/04-workflows/08-running-workflows-programmatically.md +2 -2
  125. package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +6 -6
  126. package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +8 -6
  127. package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +5 -5
  128. package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +5 -5
  129. package/.docs/raw/deployment/cloud-providers/index.mdx +11 -8
  130. package/.docs/raw/deployment/monorepo.mdx +2 -2
  131. package/.docs/raw/deployment/overview.mdx +2 -2
  132. package/.docs/raw/deployment/server-deployment.mdx +2 -10
  133. package/.docs/raw/deployment/serverless-platforms/cloudflare-deployer.mdx +5 -5
  134. package/.docs/raw/deployment/serverless-platforms/index.mdx +10 -7
  135. package/.docs/raw/deployment/serverless-platforms/netlify-deployer.mdx +5 -5
  136. package/.docs/raw/deployment/serverless-platforms/vercel-deployer.mdx +5 -5
  137. package/.docs/raw/deployment/web-framework.mdx +8 -8
  138. package/.docs/raw/{scorers → evals}/custom-scorers.mdx +6 -6
  139. package/.docs/raw/evals/off-the-shelf-scorers.mdx +50 -0
  140. package/.docs/raw/{scorers → evals}/overview.mdx +9 -9
  141. package/.docs/raw/evals/running-in-ci.mdx +113 -0
  142. package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +26 -25
  143. package/.docs/raw/frameworks/agentic-uis/assistant-ui.mdx +1 -1
  144. package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +17 -17
  145. package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +4 -1
  146. package/.docs/raw/frameworks/servers/express.mdx +11 -10
  147. package/.docs/raw/frameworks/web-frameworks/astro.mdx +18 -18
  148. package/.docs/raw/frameworks/web-frameworks/next-js.mdx +7 -7
  149. package/.docs/raw/frameworks/web-frameworks/sveltekit.mdx +16 -16
  150. package/.docs/raw/frameworks/web-frameworks/vite-react.mdx +7 -7
  151. package/.docs/raw/getting-started/installation.mdx +26 -25
  152. package/.docs/raw/getting-started/mcp-docs-server.mdx +1 -1
  153. package/.docs/raw/getting-started/project-structure.mdx +4 -4
  154. package/.docs/raw/getting-started/studio.mdx +8 -8
  155. package/.docs/raw/getting-started/templates.mdx +6 -6
  156. package/.docs/raw/guides/guide/ai-recruiter.mdx +264 -0
  157. package/.docs/raw/guides/guide/chef-michel.mdx +271 -0
  158. package/.docs/raw/guides/guide/notes-mcp-server.mdx +450 -0
  159. package/.docs/raw/guides/guide/research-assistant.mdx +380 -0
  160. package/.docs/raw/guides/guide/stock-agent.mdx +185 -0
  161. package/.docs/raw/guides/guide/web-search.mdx +291 -0
  162. package/.docs/raw/guides/index.mdx +43 -0
  163. package/.docs/raw/guides/migrations/agentnetwork.mdx +114 -0
  164. package/.docs/raw/guides/migrations/upgrade-to-v1/_template.mdx +50 -0
  165. package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +265 -0
  166. package/.docs/raw/guides/migrations/upgrade-to-v1/cli.mdx +48 -0
  167. package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +153 -0
  168. package/.docs/raw/guides/migrations/upgrade-to-v1/evals.mdx +230 -0
  169. package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +171 -0
  170. package/.docs/raw/guides/migrations/upgrade-to-v1/mcp.mdx +114 -0
  171. package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +241 -0
  172. package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +83 -0
  173. package/.docs/raw/guides/migrations/upgrade-to-v1/processors.mdx +62 -0
  174. package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +270 -0
  175. package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +115 -0
  176. package/.docs/raw/guides/migrations/upgrade-to-v1/tracing.mdx +280 -0
  177. package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +23 -0
  178. package/.docs/raw/guides/migrations/upgrade-to-v1/voice.mdx +39 -0
  179. package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +178 -0
  180. package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +367 -0
  181. package/.docs/raw/guides/quickstarts/nextjs.mdx +275 -0
  182. package/.docs/raw/index.mdx +9 -9
  183. package/.docs/raw/{observability/logging.mdx → logging.mdx} +4 -4
  184. package/.docs/raw/mastra-cloud/dashboard.mdx +2 -2
  185. package/.docs/raw/mastra-cloud/observability.mdx +6 -6
  186. package/.docs/raw/mastra-cloud/overview.mdx +2 -2
  187. package/.docs/raw/mastra-cloud/setting-up.mdx +4 -4
  188. package/.docs/raw/memory/conversation-history.mdx +1 -0
  189. package/.docs/raw/memory/memory-processors.mdx +4 -3
  190. package/.docs/raw/memory/overview.mdx +10 -6
  191. package/.docs/raw/memory/semantic-recall.mdx +13 -8
  192. package/.docs/raw/memory/storage/memory-with-libsql.mdx +12 -7
  193. package/.docs/raw/memory/storage/memory-with-pg.mdx +11 -6
  194. package/.docs/raw/memory/storage/memory-with-upstash.mdx +11 -6
  195. package/.docs/raw/memory/threads-and-resources.mdx +11 -13
  196. package/.docs/raw/memory/working-memory.mdx +30 -14
  197. package/.docs/raw/observability/overview.mdx +13 -30
  198. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/arize.mdx +11 -19
  199. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/braintrust.mdx +8 -17
  200. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/cloud.mdx +11 -17
  201. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/default.mdx +16 -20
  202. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/langfuse.mdx +8 -17
  203. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/langsmith.mdx +8 -17
  204. package/.docs/raw/observability/{ai-tracing → tracing}/exporters/otel.mdx +12 -21
  205. package/.docs/raw/observability/{ai-tracing → tracing}/overview.mdx +107 -142
  206. package/.docs/raw/observability/{ai-tracing → tracing}/processors/sensitive-data-filter.mdx +14 -13
  207. package/.docs/raw/rag/chunking-and-embedding.mdx +5 -5
  208. package/.docs/raw/rag/overview.mdx +3 -13
  209. package/.docs/raw/rag/retrieval.mdx +24 -12
  210. package/.docs/raw/rag/vector-databases.mdx +7 -1
  211. package/.docs/raw/reference/agents/agent.mdx +35 -30
  212. package/.docs/raw/reference/agents/generate.mdx +10 -10
  213. package/.docs/raw/reference/agents/generateLegacy.mdx +8 -8
  214. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +21 -15
  215. package/.docs/raw/reference/agents/getDefaultOptions.mdx +69 -0
  216. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +22 -16
  217. package/.docs/raw/reference/agents/getDescription.mdx +1 -1
  218. package/.docs/raw/reference/agents/getInstructions.mdx +8 -8
  219. package/.docs/raw/reference/agents/getLLM.mdx +9 -9
  220. package/.docs/raw/reference/agents/getMemory.mdx +9 -9
  221. package/.docs/raw/reference/agents/getModel.mdx +10 -10
  222. package/.docs/raw/reference/agents/getVoice.mdx +8 -8
  223. package/.docs/raw/reference/agents/listAgents.mdx +9 -9
  224. package/.docs/raw/reference/agents/listScorers.mdx +7 -7
  225. package/.docs/raw/reference/agents/listTools.mdx +7 -7
  226. package/.docs/raw/reference/agents/listWorkflows.mdx +7 -7
  227. package/.docs/raw/reference/agents/network.mdx +11 -10
  228. package/.docs/raw/reference/auth/auth0.mdx +4 -4
  229. package/.docs/raw/reference/auth/clerk.mdx +4 -4
  230. package/.docs/raw/reference/auth/firebase.mdx +6 -6
  231. package/.docs/raw/reference/auth/jwt.mdx +4 -4
  232. package/.docs/raw/reference/auth/supabase.mdx +4 -4
  233. package/.docs/raw/reference/auth/workos.mdx +4 -4
  234. package/.docs/raw/reference/cli/create-mastra.mdx +10 -10
  235. package/.docs/raw/reference/cli/mastra.mdx +7 -7
  236. package/.docs/raw/reference/client-js/agents.mdx +6 -2
  237. package/.docs/raw/reference/client-js/mastra-client.mdx +7 -7
  238. package/.docs/raw/reference/client-js/memory.mdx +24 -16
  239. package/.docs/raw/reference/client-js/observability.mdx +11 -11
  240. package/.docs/raw/reference/client-js/workflows.mdx +6 -34
  241. package/.docs/raw/reference/core/getAgent.mdx +1 -1
  242. package/.docs/raw/reference/core/getAgentById.mdx +1 -1
  243. package/.docs/raw/reference/core/getDeployer.mdx +2 -2
  244. package/.docs/raw/reference/core/getLogger.mdx +2 -2
  245. package/.docs/raw/reference/core/getMCPServer.mdx +31 -15
  246. package/.docs/raw/reference/core/getMCPServerById.mdx +81 -0
  247. package/.docs/raw/reference/core/getScorer.mdx +3 -3
  248. package/.docs/raw/reference/core/getScorerById.mdx +79 -0
  249. package/.docs/raw/reference/core/getServer.mdx +2 -2
  250. package/.docs/raw/reference/core/getStorage.mdx +2 -2
  251. package/.docs/raw/reference/core/getTelemetry.mdx +2 -2
  252. package/.docs/raw/reference/core/getVector.mdx +2 -2
  253. package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
  254. package/.docs/raw/reference/core/listAgents.mdx +1 -1
  255. package/.docs/raw/reference/core/listLogs.mdx +2 -2
  256. package/.docs/raw/reference/core/listLogsByRunId.mdx +2 -2
  257. package/.docs/raw/reference/core/listMCPServers.mdx +65 -0
  258. package/.docs/raw/reference/core/listScorers.mdx +3 -3
  259. package/.docs/raw/reference/core/listVectors.mdx +36 -0
  260. package/.docs/raw/reference/core/listWorkflows.mdx +6 -6
  261. package/.docs/raw/reference/core/mastra-class.mdx +3 -2
  262. package/.docs/raw/reference/core/setLogger.mdx +2 -2
  263. package/.docs/raw/reference/core/setStorage.mdx +3 -2
  264. package/.docs/raw/reference/core/setTelemetry.mdx +2 -2
  265. package/.docs/raw/reference/deployer/cloudflare.mdx +2 -2
  266. package/.docs/raw/reference/deployer/deployer.mdx +0 -6
  267. package/.docs/raw/reference/deployer/netlify.mdx +2 -2
  268. package/.docs/raw/reference/deployer/vercel.mdx +3 -3
  269. package/.docs/raw/reference/evals/answer-relevancy.mdx +164 -126
  270. package/.docs/raw/reference/{scorers → evals}/answer-similarity.mdx +27 -27
  271. package/.docs/raw/reference/evals/bias.mdx +149 -115
  272. package/.docs/raw/reference/evals/completeness.mdx +148 -117
  273. package/.docs/raw/reference/evals/content-similarity.mdx +126 -113
  274. package/.docs/raw/reference/evals/context-precision.mdx +290 -133
  275. package/.docs/raw/reference/{scorers → evals}/context-relevance.mdx +6 -6
  276. package/.docs/raw/reference/{scorers → evals}/create-scorer.mdx +69 -60
  277. package/.docs/raw/reference/evals/faithfulness.mdx +163 -121
  278. package/.docs/raw/reference/evals/hallucination.mdx +159 -132
  279. package/.docs/raw/reference/evals/keyword-coverage.mdx +169 -125
  280. package/.docs/raw/reference/{scorers → evals}/mastra-scorer.mdx +7 -5
  281. package/.docs/raw/reference/{scorers → evals}/noise-sensitivity.mdx +9 -9
  282. package/.docs/raw/reference/evals/prompt-alignment.mdx +604 -182
  283. package/.docs/raw/reference/{scorers/run-experiment.mdx → evals/run-evals.mdx} +17 -18
  284. package/.docs/raw/reference/evals/textual-difference.mdx +149 -117
  285. package/.docs/raw/reference/evals/tone-consistency.mdx +149 -125
  286. package/.docs/raw/reference/{scorers → evals}/tool-call-accuracy.mdx +8 -6
  287. package/.docs/raw/reference/evals/toxicity.mdx +152 -96
  288. package/.docs/raw/reference/{observability/logging → logging}/pino-logger.mdx +2 -2
  289. package/.docs/raw/reference/memory/createThread.mdx +5 -5
  290. package/.docs/raw/reference/memory/deleteMessages.mdx +7 -7
  291. package/.docs/raw/reference/memory/getThreadById.mdx +4 -4
  292. package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +110 -0
  293. package/.docs/raw/reference/memory/memory-class.mdx +13 -9
  294. package/.docs/raw/reference/memory/query.mdx +58 -57
  295. package/.docs/raw/reference/memory/recall.mdx +185 -0
  296. package/.docs/raw/reference/observability/tracing/configuration.mdx +245 -0
  297. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/arize.mdx +13 -13
  298. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/braintrust.mdx +11 -8
  299. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/cloud-exporter.mdx +21 -19
  300. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/console-exporter.mdx +49 -17
  301. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/default-exporter.mdx +42 -41
  302. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/langfuse.mdx +10 -7
  303. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/langsmith.mdx +10 -7
  304. package/.docs/raw/reference/observability/{ai-tracing → tracing}/exporters/otel.mdx +5 -5
  305. package/.docs/raw/reference/observability/tracing/instances.mdx +168 -0
  306. package/.docs/raw/reference/observability/{ai-tracing → tracing}/interfaces.mdx +115 -89
  307. package/.docs/raw/reference/observability/{ai-tracing → tracing}/processors/sensitive-data-filter.mdx +3 -3
  308. package/.docs/raw/reference/observability/{ai-tracing/span.mdx → tracing/spans.mdx} +59 -41
  309. package/.docs/raw/reference/processors/batch-parts-processor.mdx +9 -3
  310. package/.docs/raw/reference/processors/language-detector.mdx +9 -3
  311. package/.docs/raw/reference/processors/moderation-processor.mdx +9 -3
  312. package/.docs/raw/reference/processors/pii-detector.mdx +9 -3
  313. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +9 -3
  314. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +9 -3
  315. package/.docs/raw/reference/processors/token-limiter-processor.mdx +9 -3
  316. package/.docs/raw/reference/processors/unicode-normalizer.mdx +9 -3
  317. package/.docs/raw/reference/rag/chunk.mdx +1 -8
  318. package/.docs/raw/reference/rag/database-config.mdx +7 -7
  319. package/.docs/raw/reference/rag/metadata-filters.mdx +14 -11
  320. package/.docs/raw/reference/storage/cloudflare-d1.mdx +1 -1
  321. package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
  322. package/.docs/raw/reference/storage/dynamodb.mdx +3 -3
  323. package/.docs/raw/reference/storage/lance.mdx +1 -1
  324. package/.docs/raw/reference/storage/libsql.mdx +3 -1
  325. package/.docs/raw/reference/storage/mongodb.mdx +1 -1
  326. package/.docs/raw/reference/storage/mssql.mdx +6 -1
  327. package/.docs/raw/reference/storage/postgresql.mdx +7 -1
  328. package/.docs/raw/reference/storage/upstash.mdx +2 -1
  329. package/.docs/raw/reference/streaming/agents/stream.mdx +12 -12
  330. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +8 -8
  331. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +3 -3
  332. package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +3 -3
  333. package/.docs/raw/reference/streaming/workflows/resumeStreamVNext.mdx +6 -6
  334. package/.docs/raw/reference/streaming/workflows/stream.mdx +10 -10
  335. package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +11 -11
  336. package/.docs/raw/reference/templates/overview.mdx +3 -3
  337. package/.docs/raw/reference/tools/create-tool.mdx +52 -35
  338. package/.docs/raw/reference/tools/graph-rag-tool.mdx +15 -15
  339. package/.docs/raw/reference/tools/mcp-client.mdx +1 -1
  340. package/.docs/raw/reference/tools/mcp-server.mdx +119 -35
  341. package/.docs/raw/reference/tools/vector-query-tool.mdx +27 -26
  342. package/.docs/raw/reference/vectors/couchbase.mdx +8 -2
  343. package/.docs/raw/reference/vectors/libsql.mdx +2 -1
  344. package/.docs/raw/reference/vectors/mongodb.mdx +7 -1
  345. package/.docs/raw/reference/vectors/pg.mdx +3 -0
  346. package/.docs/raw/reference/vectors/s3vectors.mdx +1 -1
  347. package/.docs/raw/reference/vectors/upstash.mdx +1 -0
  348. package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
  349. package/.docs/raw/reference/voice/voice.addTools.mdx +3 -3
  350. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +4 -4
  351. package/.docs/raw/reference/workflows/run-methods/resume.mdx +14 -14
  352. package/.docs/raw/reference/workflows/run-methods/start.mdx +17 -17
  353. package/.docs/raw/reference/workflows/run.mdx +1 -8
  354. package/.docs/raw/reference/workflows/step.mdx +5 -5
  355. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +2 -2
  356. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
  357. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +7 -13
  358. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
  359. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
  360. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +1 -1
  361. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +5 -0
  362. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
  363. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +2 -2
  364. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
  365. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
  366. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
  367. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
  368. package/.docs/raw/reference/workflows/workflow.mdx +1 -1
  369. package/.docs/raw/server-db/custom-api-routes.mdx +2 -2
  370. package/.docs/raw/server-db/mastra-client.mdx +23 -22
  371. package/.docs/raw/server-db/middleware.mdx +7 -7
  372. package/.docs/raw/server-db/production-server.mdx +4 -4
  373. package/.docs/raw/server-db/{runtime-context.mdx → request-context.mdx} +46 -45
  374. package/.docs/raw/server-db/storage.mdx +29 -21
  375. package/.docs/raw/streaming/events.mdx +3 -3
  376. package/.docs/raw/streaming/overview.mdx +5 -5
  377. package/.docs/raw/streaming/tool-streaming.mdx +18 -17
  378. package/.docs/raw/streaming/workflow-streaming.mdx +1 -1
  379. package/.docs/raw/tools-mcp/advanced-usage.mdx +5 -4
  380. package/.docs/raw/tools-mcp/mcp-overview.mdx +33 -20
  381. package/.docs/raw/tools-mcp/overview.mdx +11 -11
  382. package/.docs/raw/voice/overview.mdx +63 -43
  383. package/.docs/raw/voice/speech-to-speech.mdx +5 -3
  384. package/.docs/raw/voice/speech-to-text.mdx +10 -9
  385. package/.docs/raw/voice/text-to-speech.mdx +13 -12
  386. package/.docs/raw/workflows/agents-and-tools.mdx +9 -5
  387. package/.docs/raw/workflows/control-flow.mdx +3 -3
  388. package/.docs/raw/workflows/error-handling.mdx +2 -21
  389. package/.docs/raw/workflows/human-in-the-loop.mdx +7 -4
  390. package/.docs/raw/workflows/inngest-workflow.mdx +3 -3
  391. package/.docs/raw/workflows/input-data-mapping.mdx +107 -0
  392. package/.docs/raw/workflows/overview.mdx +17 -16
  393. package/.docs/raw/workflows/snapshots.mdx +13 -11
  394. package/.docs/raw/workflows/suspend-and-resume.mdx +23 -15
  395. package/CHANGELOG.md +55 -53
  396. package/README.md +11 -2
  397. package/dist/{chunk-TUAHUTTB.js → chunk-5NJC7NRO.js} +3 -0
  398. package/dist/index.d.ts.map +1 -1
  399. package/dist/prepare-docs/copy-raw.d.ts.map +1 -1
  400. package/dist/prepare-docs/prepare.js +1 -1
  401. package/dist/prompts/migration.d.ts +6 -0
  402. package/dist/prompts/migration.d.ts.map +1 -0
  403. package/dist/stdio.js +402 -30
  404. package/dist/tools/migration.d.ts +40 -0
  405. package/dist/tools/migration.d.ts.map +1 -0
  406. package/package.json +8 -12
  407. package/.docs/organized/changelogs/%40mastra%2Fcloud.md +0 -302
  408. package/.docs/raw/observability/nextjs-tracing.mdx +0 -109
  409. package/.docs/raw/observability/otel-tracing.mdx +0 -189
  410. package/.docs/raw/reference/agents/getScorers.mdx +0 -69
  411. package/.docs/raw/reference/agents/getTools.mdx +0 -69
  412. package/.docs/raw/reference/agents/getWorkflows.mdx +0 -69
  413. package/.docs/raw/reference/client-js/workflows-legacy.mdx +0 -143
  414. package/.docs/raw/reference/core/getAgents.mdx +0 -35
  415. package/.docs/raw/reference/core/getLogs.mdx +0 -96
  416. package/.docs/raw/reference/core/getLogsByRunId.mdx +0 -87
  417. package/.docs/raw/reference/core/getMCPServers.mdx +0 -36
  418. package/.docs/raw/reference/core/getMemory.mdx +0 -36
  419. package/.docs/raw/reference/core/getScorerByName.mdx +0 -78
  420. package/.docs/raw/reference/core/getScorers.mdx +0 -43
  421. package/.docs/raw/reference/core/getVectors.mdx +0 -36
  422. package/.docs/raw/reference/core/getWorkflows.mdx +0 -45
  423. package/.docs/raw/reference/evals/context-position.mdx +0 -197
  424. package/.docs/raw/reference/evals/context-relevancy.mdx +0 -196
  425. package/.docs/raw/reference/evals/contextual-recall.mdx +0 -196
  426. package/.docs/raw/reference/evals/summarization.mdx +0 -212
  427. package/.docs/raw/reference/legacyWorkflows/after.mdx +0 -89
  428. package/.docs/raw/reference/legacyWorkflows/afterEvent.mdx +0 -79
  429. package/.docs/raw/reference/legacyWorkflows/commit.mdx +0 -33
  430. package/.docs/raw/reference/legacyWorkflows/createRun.mdx +0 -76
  431. package/.docs/raw/reference/legacyWorkflows/else.mdx +0 -68
  432. package/.docs/raw/reference/legacyWorkflows/events.mdx +0 -305
  433. package/.docs/raw/reference/legacyWorkflows/execute.mdx +0 -110
  434. package/.docs/raw/reference/legacyWorkflows/if.mdx +0 -108
  435. package/.docs/raw/reference/legacyWorkflows/resume.mdx +0 -158
  436. package/.docs/raw/reference/legacyWorkflows/resumeWithEvent.mdx +0 -133
  437. package/.docs/raw/reference/legacyWorkflows/snapshots.mdx +0 -207
  438. package/.docs/raw/reference/legacyWorkflows/start.mdx +0 -87
  439. package/.docs/raw/reference/legacyWorkflows/step-class.mdx +0 -100
  440. package/.docs/raw/reference/legacyWorkflows/step-condition.mdx +0 -137
  441. package/.docs/raw/reference/legacyWorkflows/step-function.mdx +0 -93
  442. package/.docs/raw/reference/legacyWorkflows/step-options.mdx +0 -69
  443. package/.docs/raw/reference/legacyWorkflows/step-retries.mdx +0 -196
  444. package/.docs/raw/reference/legacyWorkflows/suspend.mdx +0 -70
  445. package/.docs/raw/reference/legacyWorkflows/then.mdx +0 -72
  446. package/.docs/raw/reference/legacyWorkflows/until.mdx +0 -168
  447. package/.docs/raw/reference/legacyWorkflows/watch.mdx +0 -124
  448. package/.docs/raw/reference/legacyWorkflows/while.mdx +0 -168
  449. package/.docs/raw/reference/legacyWorkflows/workflow.mdx +0 -234
  450. package/.docs/raw/reference/memory/getThreadsByResourceId.mdx +0 -79
  451. package/.docs/raw/reference/memory/getThreadsByResourceIdPaginated.mdx +0 -110
  452. package/.docs/raw/reference/observability/ai-tracing/ai-tracing.mdx +0 -185
  453. package/.docs/raw/reference/observability/ai-tracing/configuration.mdx +0 -238
  454. package/.docs/raw/reference/observability/otel-tracing/otel-config.mdx +0 -117
  455. package/.docs/raw/reference/observability/otel-tracing/providers/arize-ax.mdx +0 -81
  456. package/.docs/raw/reference/observability/otel-tracing/providers/arize-phoenix.mdx +0 -121
  457. package/.docs/raw/reference/observability/otel-tracing/providers/braintrust.mdx +0 -40
  458. package/.docs/raw/reference/observability/otel-tracing/providers/dash0.mdx +0 -40
  459. package/.docs/raw/reference/observability/otel-tracing/providers/index.mdx +0 -20
  460. package/.docs/raw/reference/observability/otel-tracing/providers/keywordsai.mdx +0 -73
  461. package/.docs/raw/reference/observability/otel-tracing/providers/laminar.mdx +0 -41
  462. package/.docs/raw/reference/observability/otel-tracing/providers/langfuse.mdx +0 -84
  463. package/.docs/raw/reference/observability/otel-tracing/providers/langsmith.mdx +0 -48
  464. package/.docs/raw/reference/observability/otel-tracing/providers/langwatch.mdx +0 -43
  465. package/.docs/raw/reference/observability/otel-tracing/providers/new-relic.mdx +0 -40
  466. package/.docs/raw/reference/observability/otel-tracing/providers/signoz.mdx +0 -40
  467. package/.docs/raw/reference/observability/otel-tracing/providers/traceloop.mdx +0 -40
  468. package/.docs/raw/reference/scorers/answer-relevancy.mdx +0 -227
  469. package/.docs/raw/reference/scorers/bias.mdx +0 -228
  470. package/.docs/raw/reference/scorers/completeness.mdx +0 -214
  471. package/.docs/raw/reference/scorers/content-similarity.mdx +0 -197
  472. package/.docs/raw/reference/scorers/context-precision.mdx +0 -352
  473. package/.docs/raw/reference/scorers/faithfulness.mdx +0 -241
  474. package/.docs/raw/reference/scorers/hallucination.mdx +0 -252
  475. package/.docs/raw/reference/scorers/keyword-coverage.mdx +0 -229
  476. package/.docs/raw/reference/scorers/prompt-alignment.mdx +0 -668
  477. package/.docs/raw/reference/scorers/textual-difference.mdx +0 -203
  478. package/.docs/raw/reference/scorers/tone-consistency.mdx +0 -211
  479. package/.docs/raw/reference/scorers/toxicity.mdx +0 -228
  480. package/.docs/raw/reference/workflows/run-methods/watch.mdx +0 -73
  481. package/.docs/raw/scorers/evals-old-api/custom-eval.mdx +0 -24
  482. package/.docs/raw/scorers/evals-old-api/overview.mdx +0 -106
  483. package/.docs/raw/scorers/evals-old-api/running-in-ci.mdx +0 -85
  484. package/.docs/raw/scorers/evals-old-api/textual-evals.mdx +0 -58
  485. package/.docs/raw/scorers/off-the-shelf-scorers.mdx +0 -50
  486. package/.docs/raw/workflows-legacy/control-flow.mdx +0 -774
  487. package/.docs/raw/workflows-legacy/dynamic-workflows.mdx +0 -239
  488. package/.docs/raw/workflows-legacy/error-handling.mdx +0 -187
  489. package/.docs/raw/workflows-legacy/nested-workflows.mdx +0 -360
  490. package/.docs/raw/workflows-legacy/overview.mdx +0 -182
  491. package/.docs/raw/workflows-legacy/runtime-variables.mdx +0 -156
  492. package/.docs/raw/workflows-legacy/steps.mdx +0 -115
  493. package/.docs/raw/workflows-legacy/suspend-and-resume.mdx +0 -406
  494. package/.docs/raw/workflows-legacy/variables.mdx +0 -318
@@ -1,115 +0,0 @@
1
- ---
2
- title: "Defining Steps in a Workflow (Legacy) | Workflows (Legacy) | Mastra Docs"
3
- sidebar_position: 2
4
- sidebar_label: "Steps"
5
- description: "Steps in Mastra workflows provide a structured way to manage operations by defining inputs, outputs, and execution logic."
6
- ---
7
-
8
- # Defining Steps in a Workflow (Legacy)
9
-
10
- When you build a workflow, you typically break down operations into smaller tasks that can be linked and reused. Steps provide a structured way to manage these tasks by defining inputs, outputs, and execution logic.
11
-
12
- The code below shows how to define these steps inline or separately.
13
-
14
- ## Inline Step Creation
15
-
16
- You can create steps directly within your workflow using `.step()` and `.then()`. This code shows how to define, link, and execute two steps in sequence.
17
-
18
- ```typescript showLineNumbers title="src/mastra/workflows/index.ts" copy
19
- import { Mastra } from "@mastra/core";
20
- import { LegacyStep, LegacyWorkflow } from "@mastra/core/workflows/legacy";
21
- import { z } from "zod";
22
-
23
- export const myWorkflow = new LegacyWorkflow({
24
- name: "my-workflow",
25
- triggerSchema: z.object({
26
- inputValue: z.number(),
27
- }),
28
- });
29
-
30
- myWorkflow
31
- .step(
32
- new LegacyStep({
33
- id: "stepOne",
34
- outputSchema: z.object({
35
- doubledValue: z.number(),
36
- }),
37
- execute: async ({ context }) => ({
38
- doubledValue: context.triggerData.inputValue * 2,
39
- }),
40
- }),
41
- )
42
- .then(
43
- new LegacyStep({
44
- id: "stepTwo",
45
- outputSchema: z.object({
46
- incrementedValue: z.number(),
47
- }),
48
- execute: async ({ context }) => {
49
- if (context.steps.stepOne.status !== "success") {
50
- return { incrementedValue: 0 };
51
- }
52
-
53
- return {
54
- incrementedValue: context.steps.stepOne.output.doubledValue + 1,
55
- };
56
- },
57
- }),
58
- )
59
- .commit();
60
-
61
- // Register the workflow with Mastra
62
- export const mastra = new Mastra({
63
- legacy_workflows: { myWorkflow },
64
- });
65
- ```
66
-
67
- ## Creating Steps Separately
68
-
69
- If you prefer to manage your step logic in separate entities, you can define steps outside and then add them to your workflow. This code shows how to define steps independently and link them afterward.
70
-
71
- ```typescript showLineNumbers title="src/mastra/workflows/index.ts" copy
72
- import { Mastra } from "@mastra/core";
73
- import { LegacyStep, LegacyWorkflow } from "@mastra/core/workflows/legacy";
74
- import { z } from "zod";
75
-
76
- // Define steps separately
77
- const stepOne = new LegacyStep({
78
- id: "stepOne",
79
- outputSchema: z.object({
80
- doubledValue: z.number(),
81
- }),
82
- execute: async ({ context }) => ({
83
- doubledValue: context.triggerData.inputValue * 2,
84
- }),
85
- });
86
-
87
- const stepTwo = new LegacyStep({
88
- id: "stepTwo",
89
- outputSchema: z.object({
90
- incrementedValue: z.number(),
91
- }),
92
- execute: async ({ context }) => {
93
- if (context.steps.stepOne.status !== "success") {
94
- return { incrementedValue: 0 };
95
- }
96
- return { incrementedValue: context.steps.stepOne.output.doubledValue + 1 };
97
- },
98
- });
99
-
100
- // Build the workflow
101
- const myWorkflow = new LegacyWorkflow({
102
- name: "my-workflow",
103
- triggerSchema: z.object({
104
- inputValue: z.number(),
105
- }),
106
- });
107
-
108
- myWorkflow.step(stepOne).then(stepTwo);
109
- myWorkflow.commit();
110
-
111
- // Register the workflow with Mastra
112
- export const mastra = new Mastra({
113
- legacy_workflows: { myWorkflow },
114
- });
115
- ```
@@ -1,406 +0,0 @@
1
- ---
2
- title: "Suspend and Resume in Workflows (Legacy) | Workflows (Legacy) | Mastra Docs"
3
- sidebar_position: 9
4
- sidebar_label: "Suspend & Resume"
5
- description: "Suspend and resume in Mastra workflows allows you to pause execution while waiting for external input or resources."
6
- ---
7
-
8
- # Suspend and Resume in Workflows (Legacy)
9
-
10
- Complex workflows often need to pause execution while waiting for external input or resources.
11
-
12
- Mastra's suspend and resume features let you pause workflow execution at any step, persist the workflow snapshot to storage, and resume execution from the saved snapshot when ready.
13
- This entire process is automatically managed by Mastra. No config needed, or manual step required from the user.
14
-
15
- Storing the workflow snapshot to storage (LibSQL by default) means that the workflow state is permanently preserved across sessions, deployments, and server restarts. This persistence is crucial for workflows that might remain suspended for minutes, hours, or even days while waiting for external input or resources.
16
-
17
- ## When to Use Suspend/Resume
18
-
19
- Common scenarios for suspending workflows include:
20
-
21
- - Waiting for human approval or input
22
- - Pausing until external API resources become available
23
- - Collecting additional data needed for later steps
24
- - Rate limiting or throttling expensive operations
25
- - Handling event-driven processes with external triggers
26
-
27
- ## Basic Suspend Example
28
-
29
- Here's a simple workflow that suspends when a value is too low and resumes when given a higher value:
30
-
31
- ```typescript
32
- import { LegacyStep, LegacyWorkflow } from "@mastra/core/workflows/legacy";
33
-
34
- const stepTwo = new LegacyStep({
35
- id: "stepTwo",
36
- outputSchema: z.object({
37
- incrementedValue: z.number(),
38
- }),
39
- execute: async ({ context, suspend }) => {
40
- if (context.steps.stepOne.status !== "success") {
41
- return { incrementedValue: 0 };
42
- }
43
-
44
- const currentValue = context.steps.stepOne.output.doubledValue;
45
-
46
- if (currentValue < 100) {
47
- await suspend();
48
- return { incrementedValue: 0 };
49
- }
50
- return { incrementedValue: currentValue + 1 };
51
- },
52
- });
53
- ```
54
-
55
- ## Async/Await Based Flow
56
-
57
- The suspend and resume mechanism in Mastra uses an async/await pattern that makes it intuitive to implement complex workflows with suspension points. The code structure naturally reflects the execution flow.
58
-
59
- ### How It Works
60
-
61
- 1. A step's execution function receives a `suspend` function in its parameters
62
- 2. When called with `await suspend()`, the workflow pauses at that point
63
- 3. The workflow state is persisted
64
- 4. Later, the workflow can be resumed by calling `workflow.resume()` with the appropriate parameters
65
- 5. Execution continues from the point after the `suspend()` call
66
-
67
- ### Example with Multiple Suspension Points
68
-
69
- Here's an example of a workflow with multiple steps that can suspend:
70
-
71
- ```typescript
72
- // Define steps with suspend capability
73
- const promptAgentStep = new LegacyStep({
74
- id: "promptAgent",
75
- execute: async ({ context, suspend }) => {
76
- // Some condition that determines if we need to suspend
77
- if (needHumanInput) {
78
- // Optionally pass payload data that will be stored with suspended state
79
- await suspend({ requestReason: "Need human input for prompt" });
80
- // Code after suspend() will execute when the step is resumed
81
- return { modelOutput: context.userInput };
82
- }
83
- return { modelOutput: "AI generated output" };
84
- },
85
- outputSchema: z.object({ modelOutput: z.string() }),
86
- });
87
-
88
- const improveResponseStep = new LegacyStep({
89
- id: "improveResponse",
90
- execute: async ({ context, suspend }) => {
91
- // Another condition for suspension
92
- if (needFurtherRefinement) {
93
- await suspend();
94
- return { improvedOutput: context.refinedOutput };
95
- }
96
- return { improvedOutput: "Improved output" };
97
- },
98
- outputSchema: z.object({ improvedOutput: z.string() }),
99
- });
100
-
101
- // Build the workflow
102
- const workflow = new LegacyWorkflow({
103
- name: "multi-suspend-workflow",
104
- triggerSchema: z.object({ input: z.string() }),
105
- });
106
-
107
- workflow
108
- .step(getUserInput)
109
- .then(promptAgentStep)
110
- .then(evaluateTone)
111
- .then(improveResponseStep)
112
- .then(evaluateImproved)
113
- .commit();
114
-
115
- // Register the workflow with Mastra
116
- export const mastra = new Mastra({
117
- legacy_workflows: { workflow },
118
- });
119
- ```
120
-
121
- ### Starting and Resuming the Workflow
122
-
123
- ```typescript
124
- // Get the workflow and create a run
125
- const wf = mastra.legacy_getWorkflow("multi-suspend-workflow");
126
- const run = wf.createRun();
127
-
128
- // Start the workflow
129
- const initialResult = await run.start({
130
- triggerData: { input: "initial input" },
131
- });
132
-
133
- let promptAgentStepResult = initialResult.activePaths.get("promptAgent");
134
- let promptAgentResumeResult = undefined;
135
-
136
- // Check if a step is suspended
137
- if (promptAgentStepResult?.status === "suspended") {
138
- console.log("Workflow suspended at promptAgent step");
139
-
140
- // Resume the workflow with new context
141
- const resumeResult = await run.resume({
142
- stepId: "promptAgent",
143
- context: { userInput: "Human provided input" },
144
- });
145
-
146
- promptAgentResumeResult = resumeResult;
147
- }
148
-
149
- const improveResponseStepResult =
150
- promptAgentResumeResult?.activePaths.get("improveResponse");
151
-
152
- if (improveResponseStepResult?.status === "suspended") {
153
- console.log("Workflow suspended at improveResponse step");
154
-
155
- // Resume again with different context
156
- const finalResult = await run.resume({
157
- stepId: "improveResponse",
158
- context: { refinedOutput: "Human refined output" },
159
- });
160
-
161
- console.log("Workflow completed:", finalResult?.results);
162
- }
163
- ```
164
-
165
- ## Event-Based Suspension and Resumption
166
-
167
- In addition to manually suspending steps, Mastra provides event-based suspension through the `afterEvent` method. This allows workflows to automatically suspend and wait for a specific event to occur before continuing.
168
-
169
- ### Using afterEvent and resumeWithEvent
170
-
171
- The `afterEvent` method automatically creates a suspension point in your workflow that waits for a specific event to occur. When the event happens, you can use `resumeWithEvent` to continue the workflow with the event data.
172
-
173
- Here's how it works:
174
-
175
- 1. Define events in your workflow configuration
176
- 2. Use `afterEvent` to create a suspension point waiting for that event
177
- 3. When the event occurs, call `resumeWithEvent` with the event name and data
178
-
179
- ### Example: Event-Based Workflow
180
-
181
- ```typescript
182
- // Define steps
183
- const getUserInput = new LegacyStep({
184
- id: "getUserInput",
185
- execute: async () => ({ userInput: "initial input" }),
186
- outputSchema: z.object({ userInput: z.string() }),
187
- });
188
-
189
- const processApproval = new LegacyStep({
190
- id: "processApproval",
191
- execute: async ({ context }) => {
192
- // Access the event data from the context
193
- const approvalData = context.inputData?.resumedEvent;
194
- return {
195
- approved: approvalData?.approved,
196
- approvedBy: approvalData?.approverName,
197
- };
198
- },
199
- outputSchema: z.object({
200
- approved: z.boolean(),
201
- approvedBy: z.string(),
202
- }),
203
- });
204
-
205
- // Create workflow with event definition
206
- const approvalWorkflow = new LegacyWorkflow({
207
- name: "approval-workflow",
208
- triggerSchema: z.object({ requestId: z.string() }),
209
- events: {
210
- approvalReceived: {
211
- schema: z.object({
212
- approved: z.boolean(),
213
- approverName: z.string(),
214
- }),
215
- },
216
- },
217
- });
218
-
219
- // Build workflow with event-based suspension
220
- approvalWorkflow
221
- .step(getUserInput)
222
- .afterEvent("approvalReceived") // Workflow will automatically suspend here
223
- .step(processApproval) // This step runs after the event is received
224
- .commit();
225
- ```
226
-
227
- ### Running an Event-Based Workflow
228
-
229
- ```typescript
230
- // Get the workflow
231
- const workflow = mastra.legacy_getWorkflow("approval-workflow");
232
- const run = workflow.createRun();
233
-
234
- // Start the workflow
235
- const initialResult = await run.start({
236
- triggerData: { requestId: "request-123" },
237
- });
238
-
239
- console.log("Workflow started, waiting for approval event");
240
- console.log(initialResult.results);
241
- // Output will show the workflow is suspended at the event step:
242
- // {
243
- // getUserInput: { status: 'success', output: { userInput: 'initial input' } },
244
- // __approvalReceived_event: { status: 'suspended' }
245
- // }
246
-
247
- // Later, when the approval event occurs:
248
- const resumeResult = await run.resumeWithEvent("approvalReceived", {
249
- approved: true,
250
- approverName: "Jane Doe",
251
- });
252
-
253
- console.log("Workflow resumed with event data:", resumeResult.results);
254
- // Output will show the completed workflow:
255
- // {
256
- // getUserInput: { status: 'success', output: { userInput: 'initial input' } },
257
- // __approvalReceived_event: { status: 'success', output: { executed: true, resumedEvent: { approved: true, approverName: 'Jane Doe' } } },
258
- // processApproval: { status: 'success', output: { approved: true, approvedBy: 'Jane Doe' } }
259
- // }
260
- ```
261
-
262
- ### Key Points About Event-Based Workflows
263
-
264
- - The `suspend()` function can optionally take a payload object that will be stored with the suspended state
265
- - Code after the `await suspend()` call will not execute until the step is resumed
266
- - When a step is suspended, its status becomes `'suspended'` in the workflow results
267
- - When resumed, the step's status changes from `'suspended'` to `'success'` once completed
268
- - The `resume()` method requires the `stepId` to identify which suspended step to resume
269
- - You can provide new context data when resuming that will be merged with existing step results
270
-
271
- - Events must be defined in the workflow configuration with a schema
272
- - The `afterEvent` method creates a special suspended step that waits for the event
273
- - The event step is automatically named `__eventName_event` (e.g., `__approvalReceived_event`)
274
- - Use `resumeWithEvent` to provide event data and continue the workflow
275
- - Event data is validated against the schema defined for that event
276
- - The event data is available in the context as `inputData.resumedEvent`
277
-
278
- ## Storage for Suspend and Resume
279
-
280
- When a workflow is suspended using `await suspend()`, Mastra automatically persists the entire workflow state to storage. This is essential for workflows that might remain suspended for extended periods, as it ensures the state is preserved across application restarts or server instances.
281
-
282
- ### Default Storage: LibSQL
283
-
284
- By default, Mastra uses LibSQL as its storage engine:
285
-
286
- ```typescript
287
- import { Mastra } from "@mastra/core/mastra";
288
- import { LibSQLStore } from "@mastra/libsql";
289
-
290
- const mastra = new Mastra({
291
- storage: new LibSQLStore({
292
- url: "file:./storage.db", // Local file-based database for development
293
- // For production, use a persistent URL:
294
- // url: process.env.DATABASE_URL,
295
- // authToken: process.env.DATABASE_AUTH_TOKEN, // Optional for authenticated connections
296
- }),
297
- });
298
- ```
299
-
300
- The LibSQL storage can be configured in different modes:
301
-
302
- - In-memory database (testing): `:memory:`
303
- - File-based database (development): `file:storage.db`
304
- - Remote database (production): URLs like `libsql://your-database.turso.io`
305
-
306
- ### Alternative Storage Options
307
-
308
- #### Upstash (Redis-Compatible)
309
-
310
- For serverless applications or environments where Redis is preferred:
311
-
312
- ```bash copy
313
- npm install @mastra/upstash@latest
314
- ```
315
-
316
- ```typescript
317
- import { Mastra } from "@mastra/core/mastra";
318
- import { UpstashStore } from "@mastra/upstash";
319
-
320
- const mastra = new Mastra({
321
- storage: new UpstashStore({
322
- url: process.env.UPSTASH_URL,
323
- token: process.env.UPSTASH_TOKEN,
324
- }),
325
- });
326
- ```
327
-
328
- ### Storage Considerations
329
-
330
- - All storage options support suspend and resume functionality identically
331
- - The workflow state is automatically serialized and saved when suspended
332
- - No additional configuration is needed for suspend/resume to work with storage
333
- - Choose your storage option based on your infrastructure, scaling needs, and existing technology stack
334
-
335
- ## Watching and Resuming
336
-
337
- To handle suspended workflows, use the `watch` method to monitor workflow status per run and `resume` to continue execution:
338
-
339
- ```typescript
340
- import { mastra } from "./index";
341
-
342
- // Get the workflow
343
- const myWorkflow = mastra.legacy_getWorkflow("myWorkflow");
344
- const { start, watch, resume } = myWorkflow.createRun();
345
-
346
- // Start watching the workflow before executing it
347
- watch(async ({ activePaths }) => {
348
- const isStepTwoSuspended = activePaths.get("stepTwo")?.status === "suspended";
349
- if (isStepTwoSuspended) {
350
- console.log("Workflow suspended, resuming with new value");
351
-
352
- // Resume the workflow with new context
353
- await resume({
354
- stepId: "stepTwo",
355
- context: { secondValue: 100 },
356
- });
357
- }
358
- });
359
-
360
- // Start the workflow execution
361
- await start({ triggerData: { inputValue: 45 } });
362
- ```
363
-
364
- ### Watching and Resuming Event-Based Workflows
365
-
366
- You can use the same watching pattern with event-based workflows:
367
-
368
- ```typescript
369
- const { start, watch, resumeWithEvent } = workflow.createRun();
370
-
371
- // Watch for suspended event steps
372
- watch(async ({ activePaths }) => {
373
- const isApprovalReceivedSuspended =
374
- activePaths.get("__approvalReceived_event")?.status === "suspended";
375
- if (isApprovalReceivedSuspended) {
376
- console.log("Workflow waiting for approval event");
377
-
378
- // In a real scenario, you would wait for the actual event to occur
379
- // For example, this could be triggered by a webhook or user interaction
380
- setTimeout(async () => {
381
- await resumeWithEvent("approvalReceived", {
382
- approved: true,
383
- approverName: "Auto Approver",
384
- });
385
- }, 5000); // Simulate event after 5 seconds
386
- }
387
- });
388
-
389
- // Start the workflow
390
- await start({ triggerData: { requestId: "auto-123" } });
391
- ```
392
-
393
- ## Further Reading
394
-
395
- For a deeper understanding of how suspend and resume works under the hood:
396
-
397
- - [Understanding Snapshots in Mastra Workflows](/reference/legacyWorkflows/snapshots) - Learn about the snapshot mechanism that powers suspend and resume functionality
398
- - [Step Configuration Guide](./steps) - Learn more about configuring steps in your workflows
399
- - [Control Flow Guide](./control-flow) - Advanced workflow control patterns
400
- - [Event-Driven Workflows](/reference/legacyWorkflows/events) - Detailed reference for event-based workflows
401
-
402
- ## Related Resources
403
-
404
- - See the [Suspend and Resume Example](/examples/workflows_legacy/suspend-and-resume) for a complete working example
405
- - Check the [Step Class Reference](/reference/legacyWorkflows/step-class) for suspend/resume API details
406
- - Review [Workflow Observability](/docs/observability/otel-tracing) for monitoring suspended workflows