@mastra/mcp-docs-server 1.2.11 → 1.2.12-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (448) hide show
  1. package/.docs/docs/agent-builder/access-control.md +3 -3
  2. package/.docs/docs/agent-builder/browser.md +1 -1
  3. package/.docs/docs/agent-builder/channels.md +1 -1
  4. package/.docs/docs/agent-builder/configuration.md +3 -3
  5. package/.docs/docs/agent-builder/deploying.md +2 -2
  6. package/.docs/docs/agent-builder/integrations.md +8 -8
  7. package/.docs/docs/agent-builder/memory.md +2 -2
  8. package/.docs/docs/agent-builder/overview.md +1 -1
  9. package/.docs/docs/agent-controller/channels.md +8 -6
  10. package/.docs/docs/agent-controller/modes.md +6 -6
  11. package/.docs/docs/agent-controller/overview.md +13 -9
  12. package/.docs/docs/agent-controller/session.md +27 -9
  13. package/.docs/docs/agent-controller/subagents.md +9 -6
  14. package/.docs/docs/agent-controller/threads-and-state.md +12 -8
  15. package/.docs/docs/agent-controller/tool-approvals.md +7 -3
  16. package/.docs/docs/agents/a2a.md +4 -2
  17. package/.docs/docs/agents/acp.md +5 -5
  18. package/.docs/docs/agents/agent-approval.md +13 -11
  19. package/.docs/docs/agents/code-mode.md +29 -6
  20. package/.docs/docs/agents/guardrails.md +8 -8
  21. package/.docs/docs/agents/networks.md +2 -2
  22. package/.docs/docs/agents/overview.md +9 -7
  23. package/.docs/docs/agents/processors.md +15 -15
  24. package/.docs/docs/agents/skills.md +6 -6
  25. package/.docs/docs/agents/structured-output.md +6 -6
  26. package/.docs/docs/agents/supervisor-agents.md +19 -13
  27. package/.docs/docs/agents/using-tools.md +48 -21
  28. package/.docs/docs/browser/agent-browser.md +4 -4
  29. package/.docs/docs/browser/browser-viewer.md +2 -2
  30. package/.docs/docs/browser/firecrawl.md +1 -1
  31. package/.docs/docs/browser/overview.md +2 -2
  32. package/.docs/docs/browser/recording.md +1 -1
  33. package/.docs/docs/browser/stagehand.md +7 -7
  34. package/.docs/docs/capabilities/channels/discord.md +1 -1
  35. package/.docs/docs/capabilities/channels/other-adapters.md +1 -1
  36. package/.docs/docs/capabilities/channels/overview.md +9 -5
  37. package/.docs/docs/capabilities/channels/slack.md +2 -2
  38. package/.docs/docs/capabilities/channels/teams.md +1 -1
  39. package/.docs/docs/capabilities/channels/telegram.md +1 -1
  40. package/.docs/docs/capabilities/channels/whatsapp.md +1 -1
  41. package/.docs/docs/deployment/mastra-server.md +1 -1
  42. package/.docs/docs/deployment/overview.md +6 -2
  43. package/.docs/docs/deployment/sandbox.md +3 -1
  44. package/.docs/docs/deployment/workers.md +137 -0
  45. package/.docs/docs/editor/overview.md +37 -31
  46. package/.docs/docs/editor/prompts.md +8 -4
  47. package/.docs/docs/editor/tools.md +3 -3
  48. package/.docs/docs/evals/built-in-scorers.md +4 -4
  49. package/.docs/docs/evals/custom-scorers.md +5 -5
  50. package/.docs/docs/evals/datasets/running-experiments.md +7 -7
  51. package/.docs/docs/evals/evals-with-memory.md +4 -4
  52. package/.docs/docs/evals/gates-and-verdicts.md +4 -4
  53. package/.docs/docs/evals/multi-turn.md +12 -12
  54. package/.docs/docs/evals/overview.md +6 -4
  55. package/.docs/docs/evals/quick-checks.md +2 -2
  56. package/.docs/docs/getting-started/build-with-ai.md +6 -4
  57. package/.docs/docs/getting-started/file-based-agents.md +6 -4
  58. package/.docs/docs/getting-started/manual-install.md +1 -1
  59. package/.docs/docs/index.md +9 -90
  60. package/.docs/docs/long-running-agents/background-tasks.md +10 -10
  61. package/.docs/docs/long-running-agents/durable-agents.md +46 -5
  62. package/.docs/docs/long-running-agents/goals.md +15 -11
  63. package/.docs/docs/long-running-agents/schedules.md +3 -3
  64. package/.docs/docs/long-running-agents/signal-providers.md +8 -6
  65. package/.docs/docs/long-running-agents/signals.md +9 -5
  66. package/.docs/docs/mastra-platform/configuration.md +3 -3
  67. package/.docs/docs/mastra-platform/database.md +8 -8
  68. package/.docs/docs/mastra-platform/deploy.md +8 -4
  69. package/.docs/docs/mastra-platform/environments.md +8 -4
  70. package/.docs/docs/mastra-platform/github.md +3 -1
  71. package/.docs/docs/mastra-platform/server.md +1 -1
  72. package/.docs/docs/mastra-platform/studio.md +2 -2
  73. package/.docs/docs/mastra-platform/workspace.md +6 -6
  74. package/.docs/docs/mcp/mcp-apps.md +1 -1
  75. package/.docs/docs/mcp/overview.md +9 -9
  76. package/.docs/docs/memory/memory-processors.md +10 -10
  77. package/.docs/docs/memory/message-history.md +11 -5
  78. package/.docs/docs/memory/multi-user-threads.md +6 -6
  79. package/.docs/docs/memory/observational-memory.md +27 -25
  80. package/.docs/docs/memory/overview.md +10 -10
  81. package/.docs/docs/memory/semantic-recall.md +3 -3
  82. package/.docs/docs/memory/working-memory.md +8 -8
  83. package/.docs/docs/observability/integrations/bridges/datadog.md +6 -6
  84. package/.docs/docs/observability/integrations/bridges/otel.md +5 -5
  85. package/.docs/docs/observability/integrations/exporters/datadog.md +1 -1
  86. package/.docs/docs/observability/integrations/exporters/laminar.md +1 -1
  87. package/.docs/docs/observability/integrations/exporters/langfuse.md +3 -3
  88. package/.docs/docs/observability/integrations/exporters/langsmith.md +4 -4
  89. package/.docs/docs/observability/integrations/exporters/mastra-platform.md +1 -1
  90. package/.docs/docs/observability/integrations/exporters/mastra-storage.md +1 -1
  91. package/.docs/docs/observability/integrations/exporters/otel.md +26 -4
  92. package/.docs/docs/observability/integrations/exporters/sentry.md +1 -1
  93. package/.docs/docs/observability/integrations/overview.md +1 -1
  94. package/.docs/docs/observability/integrations/processors/sensitive-data-filter.md +1 -1
  95. package/.docs/docs/observability/logging.md +1 -1
  96. package/.docs/docs/observability/metrics/overview.md +1 -1
  97. package/.docs/docs/observability/metrics/querying.md +8 -8
  98. package/.docs/docs/observability/overview.md +4 -4
  99. package/.docs/docs/observability/tracing/overview.md +18 -12
  100. package/.docs/docs/rag/chunking-and-embedding.md +1 -1
  101. package/.docs/docs/rag/graph-rag.md +7 -7
  102. package/.docs/docs/rag/overview.md +2 -2
  103. package/.docs/docs/rag/retrieval.md +18 -18
  104. package/.docs/docs/rag/vector-databases.md +2 -2
  105. package/.docs/docs/server/auth/composite-auth.md +2 -2
  106. package/.docs/docs/server/auth/fga.md +6 -6
  107. package/.docs/docs/server/auth/firebase.md +2 -2
  108. package/.docs/docs/server/auth/simple-auth.md +1 -1
  109. package/.docs/docs/server/auth/workers.md +133 -0
  110. package/.docs/docs/server/custom-adapters.md +4 -4
  111. package/.docs/docs/server/mastra-client.md +3 -3
  112. package/.docs/docs/server/mastra-server.md +2 -2
  113. package/.docs/docs/server/middleware.md +1 -1
  114. package/.docs/docs/server/pubsub.md +7 -4
  115. package/.docs/docs/server/request-context.md +11 -11
  116. package/.docs/docs/server/server-adapters.md +2 -2
  117. package/.docs/docs/storage/overview.md +2 -2
  118. package/.docs/docs/studio/auth.md +5 -5
  119. package/.docs/docs/studio/deployment.md +1 -1
  120. package/.docs/docs/studio/observability.md +2 -2
  121. package/.docs/docs/studio/overview.md +11 -9
  122. package/.docs/docs/voice/overview.md +26 -26
  123. package/.docs/docs/voice/realtime-voice.md +8 -8
  124. package/.docs/docs/voice/speech-to-speech.md +9 -9
  125. package/.docs/docs/voice/speech-to-text.md +3 -3
  126. package/.docs/docs/voice/text-to-speech.md +6 -6
  127. package/.docs/docs/what-is-mastra.md +161 -0
  128. package/.docs/docs/workflows/agents-and-tools.md +3 -3
  129. package/.docs/docs/workflows/control-flow.md +10 -8
  130. package/.docs/docs/workflows/error-handling.md +2 -2
  131. package/.docs/docs/workflows/overview.md +7 -6
  132. package/.docs/docs/workflows/scheduled-workflows.md +12 -12
  133. package/.docs/docs/workflows/snapshots.md +3 -3
  134. package/.docs/docs/workflows/suspend-and-resume.md +1 -1
  135. package/.docs/docs/workflows/time-travel.md +3 -1
  136. package/.docs/docs/workflows/workflow-state.md +1 -1
  137. package/.docs/docs/workspace/filesystem.md +10 -10
  138. package/.docs/docs/workspace/lsp.md +1 -1
  139. package/.docs/docs/workspace/overview.md +12 -12
  140. package/.docs/docs/workspace/sandbox.md +9 -7
  141. package/.docs/docs/workspace/search.md +3 -3
  142. package/.docs/docs/workspace/skills.md +7 -7
  143. package/.docs/guides/build-your-ui/ai-sdk-ui.md +6 -6
  144. package/.docs/guides/build-your-ui/copilotkit/generative-ui.md +9 -9
  145. package/.docs/guides/build-your-ui/copilotkit/overview.md +2 -2
  146. package/.docs/guides/build-your-ui/openui.md +2 -2
  147. package/.docs/guides/concepts/multi-agent-systems.md +5 -5
  148. package/.docs/guides/concepts/streaming.md +10 -10
  149. package/.docs/guides/deployment/amazon-ec2.md +1 -1
  150. package/.docs/guides/deployment/aws-lambda.md +1 -1
  151. package/.docs/guides/deployment/azure-app-services.md +1 -1
  152. package/.docs/guides/deployment/cloudflare.md +1 -1
  153. package/.docs/guides/deployment/inngest.md +6 -6
  154. package/.docs/guides/deployment/kubernetes.md +1 -1
  155. package/.docs/guides/deployment/mastra-workers.md +232 -0
  156. package/.docs/guides/deployment/temporal.md +1 -1
  157. package/.docs/guides/deployment/vercel.md +1 -1
  158. package/.docs/guides/getting-started/astro.md +1 -1
  159. package/.docs/guides/getting-started/electron.md +1 -1
  160. package/.docs/guides/getting-started/nestjs.md +5 -5
  161. package/.docs/guides/getting-started/vite-react.md +1 -1
  162. package/.docs/guides/guide/ai-recruiter.md +1 -1
  163. package/.docs/guides/guide/chef-michel.md +2 -2
  164. package/.docs/guides/guide/code-review-bot.md +2 -2
  165. package/.docs/guides/guide/coding-agent.md +5 -5
  166. package/.docs/guides/guide/dev-assistant.md +2 -2
  167. package/.docs/guides/guide/docs-manager.md +4 -4
  168. package/.docs/guides/guide/firecrawl.md +1 -1
  169. package/.docs/guides/guide/github-actions-pr-description.md +5 -5
  170. package/.docs/guides/guide/research-assistant.md +4 -4
  171. package/.docs/guides/guide/research-coordinator.md +5 -5
  172. package/.docs/guides/guide/signal-provider.md +1 -1
  173. package/.docs/guides/guide/slack-assistant.md +1 -1
  174. package/.docs/guides/guide/stock-agent.md +3 -3
  175. package/.docs/guides/guide/web-search.md +4 -4
  176. package/.docs/guides/guide/whatsapp-chat-bot.md +2 -2
  177. package/.docs/guides/index.md +1 -1
  178. package/.docs/guides/migrations/agentnetwork.md +4 -4
  179. package/.docs/guides/migrations/ai-sdk-v4-to-v5.md +1 -1
  180. package/.docs/guides/migrations/mastra-cloud.md +6 -6
  181. package/.docs/guides/migrations/network-to-supervisor.md +9 -9
  182. package/.docs/guides/migrations/upgrade-to-v1/agent.md +6 -6
  183. package/.docs/guides/migrations/upgrade-to-v1/cli.md +1 -1
  184. package/.docs/guides/migrations/upgrade-to-v1/client.md +3 -3
  185. package/.docs/guides/migrations/upgrade-to-v1/evals.md +2 -2
  186. package/.docs/guides/migrations/upgrade-to-v1/memory.md +1 -1
  187. package/.docs/guides/migrations/upgrade-to-v1/overview.md +3 -3
  188. package/.docs/guides/migrations/upgrade-to-v1/processors.md +1 -1
  189. package/.docs/guides/migrations/upgrade-to-v1/storage.md +11 -11
  190. package/.docs/guides/migrations/upgrade-to-v1/tools.md +3 -3
  191. package/.docs/guides/migrations/upgrade-to-v1/tracing.md +2 -2
  192. package/.docs/guides/migrations/upgrade-to-v1/voice.md +1 -1
  193. package/.docs/guides/migrations/upgrade-to-v1/workflows.md +1 -1
  194. package/.docs/guides/migrations/vnext-to-standard-apis.md +2 -2
  195. package/.docs/models/environment-variables.md +1 -0
  196. package/.docs/models/gateways/custom-gateways.md +3 -3
  197. package/.docs/models/gateways/openrouter.md +1 -3
  198. package/.docs/models/gateways/vercel.md +2 -1
  199. package/.docs/models/index.md +6 -6
  200. package/.docs/models/providers/baseten.md +1 -1
  201. package/.docs/models/providers/chutes.md +2 -1
  202. package/.docs/models/providers/crossmodel.md +2 -2
  203. package/.docs/models/providers/deepinfra.md +1 -1
  204. package/.docs/models/providers/hyper.md +3 -3
  205. package/.docs/models/providers/llmgateway.md +4 -3
  206. package/.docs/models/providers/modal.md +73 -0
  207. package/.docs/models/providers/wandb.md +2 -1
  208. package/.docs/models/providers.md +1 -0
  209. package/.docs/reference/acp/acp-agent.md +4 -4
  210. package/.docs/reference/acp/create-acp-tool.md +3 -3
  211. package/.docs/reference/agent-controller/agent-controller-class.md +36 -36
  212. package/.docs/reference/agent-controller/session.md +6 -6
  213. package/.docs/reference/agents/agent.md +14 -14
  214. package/.docs/reference/agents/channels.md +29 -13
  215. package/.docs/reference/agents/durable-agent.md +54 -5
  216. package/.docs/reference/agents/generate.md +3 -3
  217. package/.docs/reference/agents/generateLegacy.md +1 -1
  218. package/.docs/reference/agents/getDefaultOptions.md +1 -1
  219. package/.docs/reference/agents/getDefaultStreamOptions.md +1 -1
  220. package/.docs/reference/agents/getLLM.md +2 -2
  221. package/.docs/reference/agents/getMetadata.md +2 -2
  222. package/.docs/reference/agents/inngest-agent.md +1 -1
  223. package/.docs/reference/agents/listScorers.md +1 -1
  224. package/.docs/reference/agents/listSkills.md +1 -1
  225. package/.docs/reference/agents/listSuspendedRuns.md +2 -2
  226. package/.docs/reference/agents/network.md +1 -1
  227. package/.docs/reference/ai-sdk/chat-route.md +1 -1
  228. package/.docs/reference/ai-sdk/network-route.md +1 -1
  229. package/.docs/reference/ai-sdk/to-ai-sdk-messages.md +1 -1
  230. package/.docs/reference/ai-sdk/to-ai-sdk-v4-messages.md +1 -1
  231. package/.docs/reference/ai-sdk/to-ai-sdk-v5-messages.md +1 -1
  232. package/.docs/reference/ai-sdk/workflow-route.md +1 -1
  233. package/.docs/reference/ai-sdk/workflow-snapshot-to-stream.md +2 -2
  234. package/.docs/reference/auth/auth0.md +1 -1
  235. package/.docs/reference/auth/fga.md +2 -2
  236. package/.docs/reference/auth/google.md +2 -2
  237. package/.docs/reference/auth/okta.md +1 -1
  238. package/.docs/reference/auth/workos.md +2 -2
  239. package/.docs/reference/browser/agent-browser.md +3 -3
  240. package/.docs/reference/browser/browser-viewer.md +4 -4
  241. package/.docs/reference/browser/firecrawl-browser.md +1 -1
  242. package/.docs/reference/browser/mastra-browser.md +4 -4
  243. package/.docs/reference/browser/stagehand-browser.md +8 -8
  244. package/.docs/reference/channels/slack-provider.md +2 -2
  245. package/.docs/reference/cli/create-mastra.md +1 -1
  246. package/.docs/reference/cli/mastra.md +155 -24
  247. package/.docs/reference/client-js/agents.md +26 -9
  248. package/.docs/reference/client-js/memory.md +2 -2
  249. package/.docs/reference/client-js/workflows.md +1 -1
  250. package/.docs/reference/coding-agent/build-base-prompt.md +2 -2
  251. package/.docs/reference/coding-agent/create-coding-agent.md +2 -2
  252. package/.docs/reference/configuration.md +7 -7
  253. package/.docs/reference/core/getAgentById.md +1 -1
  254. package/.docs/reference/core/getMCPServer.md +1 -1
  255. package/.docs/reference/core/getScorer.md +1 -1
  256. package/.docs/reference/core/mastra-class.md +48 -1
  257. package/.docs/reference/core/mastra-model-gateway.md +1 -1
  258. package/.docs/reference/datasets/addItem.md +1 -1
  259. package/.docs/reference/datasets/listItems.md +1 -1
  260. package/.docs/reference/deployer/netlify.md +4 -4
  261. package/.docs/reference/deployer/vercel.md +7 -7
  262. package/.docs/reference/editor/agent-builder/agent-builder-options.md +4 -4
  263. package/.docs/reference/editor/agent-builder/builder-agent-defaults.md +6 -6
  264. package/.docs/reference/editor/agent-builder/builder-models.md +3 -3
  265. package/.docs/reference/editor/blob-store-provider.md +1 -1
  266. package/.docs/reference/editor/browser-provider.md +3 -3
  267. package/.docs/reference/editor/filesystem-provider.md +4 -4
  268. package/.docs/reference/editor/mastra-editor.md +5 -5
  269. package/.docs/reference/editor/processor-provider.md +3 -3
  270. package/.docs/reference/editor/sandbox-provider.md +4 -4
  271. package/.docs/reference/editor/storage-browser-ref.md +6 -6
  272. package/.docs/reference/editor/storage-workspace-ref.md +4 -4
  273. package/.docs/reference/editor/tool-provider.md +1 -1
  274. package/.docs/reference/evals/answer-relevancy.md +5 -5
  275. package/.docs/reference/evals/answer-similarity.md +1 -1
  276. package/.docs/reference/evals/bias.md +4 -4
  277. package/.docs/reference/evals/checks.md +3 -3
  278. package/.docs/reference/evals/completeness.md +5 -5
  279. package/.docs/reference/evals/content-similarity.md +5 -5
  280. package/.docs/reference/evals/context-precision.md +5 -5
  281. package/.docs/reference/evals/context-recall.md +11 -11
  282. package/.docs/reference/evals/context-relevance.md +15 -15
  283. package/.docs/reference/evals/create-scorer.md +1 -1
  284. package/.docs/reference/evals/faithfulness.md +4 -4
  285. package/.docs/reference/evals/filter-run.md +2 -2
  286. package/.docs/reference/evals/hallucination.md +11 -11
  287. package/.docs/reference/evals/keyword-coverage.md +6 -6
  288. package/.docs/reference/evals/mastra-scorer.md +2 -2
  289. package/.docs/reference/evals/noise-sensitivity.md +15 -15
  290. package/.docs/reference/evals/prompt-alignment.md +20 -20
  291. package/.docs/reference/evals/rubric.md +2 -2
  292. package/.docs/reference/evals/run-evals.md +3 -3
  293. package/.docs/reference/evals/scorer-utils.md +4 -4
  294. package/.docs/reference/evals/textual-difference.md +4 -4
  295. package/.docs/reference/evals/tool-call-accuracy.md +4 -4
  296. package/.docs/reference/evals/toxicity.md +5 -5
  297. package/.docs/reference/evals/trajectory-accuracy.md +10 -10
  298. package/.docs/reference/file-based-agents/config.md +3 -3
  299. package/.docs/reference/file-based-agents/instructions.md +3 -3
  300. package/.docs/reference/file-based-agents/logger.md +1 -1
  301. package/.docs/reference/file-based-agents/observability.md +1 -1
  302. package/.docs/reference/file-based-agents/processors.md +1 -1
  303. package/.docs/reference/file-based-agents/skills.md +1 -1
  304. package/.docs/reference/file-based-agents/storage.md +1 -1
  305. package/.docs/reference/file-based-agents/studio.md +1 -1
  306. package/.docs/reference/file-based-agents/subagents.md +4 -4
  307. package/.docs/reference/file-based-agents/tools.md +1 -1
  308. package/.docs/reference/file-based-agents/workspace.md +1 -1
  309. package/.docs/reference/index.md +2 -0
  310. package/.docs/reference/logging/pino-logger.md +3 -3
  311. package/.docs/reference/memory/clone-utilities.md +1 -1
  312. package/.docs/reference/memory/cloneThread.md +3 -3
  313. package/.docs/reference/memory/listThreads.md +1 -1
  314. package/.docs/reference/memory/memory-class.md +4 -4
  315. package/.docs/reference/memory/observational-memory.md +15 -15
  316. package/.docs/reference/memory/recall.md +2 -2
  317. package/.docs/reference/memory/serialized-memory-config.md +4 -4
  318. package/.docs/reference/memory/summarizeConversation.md +3 -3
  319. package/.docs/reference/memory/summarizeThread.md +3 -3
  320. package/.docs/reference/observability/feedback.md +1 -1
  321. package/.docs/reference/observability/metrics/automatic-metrics.md +7 -7
  322. package/.docs/reference/observability/tracing/bridges/datadog.md +2 -2
  323. package/.docs/reference/observability/tracing/exporters/cloud-exporter.md +3 -3
  324. package/.docs/reference/observability/tracing/exporters/default-exporter.md +1 -1
  325. package/.docs/reference/observability/tracing/exporters/langfuse.md +1 -1
  326. package/.docs/reference/observability/tracing/exporters/mastra-platform-exporter.md +4 -4
  327. package/.docs/reference/observability/tracing/exporters/mastra-storage-exporter.md +1 -1
  328. package/.docs/reference/observability/tracing/interfaces.md +1 -1
  329. package/.docs/reference/observability/tracing/processors/sensitive-data-filter.md +1 -1
  330. package/.docs/reference/observability/tracing/span-filtering.md +1 -1
  331. package/.docs/reference/processors/batch-parts-processor.md +1 -1
  332. package/.docs/reference/processors/cost-guard-processor.md +1 -1
  333. package/.docs/reference/processors/language-detector.md +1 -1
  334. package/.docs/reference/processors/message-history-processor.md +1 -1
  335. package/.docs/reference/processors/moderation-processor.md +2 -2
  336. package/.docs/reference/processors/pii-detector.md +3 -3
  337. package/.docs/reference/processors/processor-interface.md +13 -13
  338. package/.docs/reference/processors/prompt-injection-detector.md +2 -2
  339. package/.docs/reference/processors/provider-history-compat.md +1 -1
  340. package/.docs/reference/processors/regex-filter-processor.md +1 -1
  341. package/.docs/reference/processors/response-cache.md +8 -8
  342. package/.docs/reference/processors/semantic-recall-processor.md +1 -1
  343. package/.docs/reference/processors/skill-search-processor.md +1 -1
  344. package/.docs/reference/processors/system-prompt-scrubber.md +2 -2
  345. package/.docs/reference/processors/token-limiter-processor.md +4 -4
  346. package/.docs/reference/processors/tool-call-filter.md +2 -2
  347. package/.docs/reference/processors/tool-search-processor.md +9 -9
  348. package/.docs/reference/processors/unicode-normalizer.md +2 -2
  349. package/.docs/reference/processors/working-memory-processor.md +1 -1
  350. package/.docs/reference/project-structure.md +1 -1
  351. package/.docs/reference/pubsub/base.md +4 -4
  352. package/.docs/reference/pubsub/google-cloud-pubsub.md +2 -2
  353. package/.docs/reference/pubsub/lease-provider.md +4 -4
  354. package/.docs/reference/pubsub/redis-streams.md +1 -1
  355. package/.docs/reference/pubsub/unix-socket-pubsub.md +1 -1
  356. package/.docs/reference/rag/chunk.md +5 -5
  357. package/.docs/reference/rag/database-config.md +2 -2
  358. package/.docs/reference/rag/metadata-filters.md +2 -2
  359. package/.docs/reference/rag/rerank.md +1 -1
  360. package/.docs/reference/schedules/overview.md +1 -1
  361. package/.docs/reference/server/register-api-route.md +1 -1
  362. package/.docs/reference/server/routes.md +7 -7
  363. package/.docs/reference/signals/create-notification-inbox-tool.md +1 -1
  364. package/.docs/reference/signals/signal-provider.md +8 -8
  365. package/.docs/reference/storage/clickhouse.md +4 -4
  366. package/.docs/reference/storage/cloudflare-d1.md +4 -4
  367. package/.docs/reference/storage/convex.md +4 -4
  368. package/.docs/reference/storage/dsql.md +3 -3
  369. package/.docs/reference/storage/dynamodb.md +7 -7
  370. package/.docs/reference/storage/lance.md +1 -1
  371. package/.docs/reference/storage/mongodb.md +2 -2
  372. package/.docs/reference/storage/mssql.md +1 -1
  373. package/.docs/reference/storage/postgresql.md +2 -2
  374. package/.docs/reference/storage/redis.md +1 -1
  375. package/.docs/reference/storage/retention.md +33 -33
  376. package/.docs/reference/storage/spanner.md +8 -8
  377. package/.docs/reference/storage/upstash.md +1 -1
  378. package/.docs/reference/streaming/ChunkType.md +2 -2
  379. package/.docs/reference/streaming/agents/MastraModelOutput.md +1 -1
  380. package/.docs/reference/streaming/agents/stream.md +2 -2
  381. package/.docs/reference/streaming/agents/streamUntilIdle.md +2 -2
  382. package/.docs/reference/streaming/workflows/observeStream.md +1 -1
  383. package/.docs/reference/streaming/workflows/resumeStream.md +1 -1
  384. package/.docs/reference/streaming/workflows/stream.md +1 -1
  385. package/.docs/reference/streaming/workflows/timeTravelStream.md +2 -2
  386. package/.docs/reference/templates/overview.md +1 -1
  387. package/.docs/reference/tools/brightdata.md +1 -1
  388. package/.docs/reference/tools/create-code-mode.md +3 -3
  389. package/.docs/reference/tools/create-tool.md +1 -1
  390. package/.docs/reference/tools/graph-rag-tool.md +1 -1
  391. package/.docs/reference/tools/isolated-vm-transport.md +74 -0
  392. package/.docs/reference/tools/mcp-client.md +15 -15
  393. package/.docs/reference/tools/mcp-server.md +21 -21
  394. package/.docs/reference/tools/submit-plan-tool.md +1 -1
  395. package/.docs/reference/tools/tavily.md +1 -1
  396. package/.docs/reference/tools/vector-query-tool.md +5 -5
  397. package/.docs/reference/vectors/astra.md +1 -1
  398. package/.docs/reference/vectors/chroma.md +2 -2
  399. package/.docs/reference/vectors/convex.md +2 -2
  400. package/.docs/reference/vectors/couchbase.md +4 -4
  401. package/.docs/reference/vectors/libsql.md +2 -2
  402. package/.docs/reference/vectors/mongodb.md +3 -3
  403. package/.docs/reference/vectors/pg.md +5 -5
  404. package/.docs/reference/vectors/qdrant.md +2 -2
  405. package/.docs/reference/vectors/s3vectors.md +4 -4
  406. package/.docs/reference/vectors/turbopuffer.md +1 -1
  407. package/.docs/reference/vectors/upstash.md +1 -1
  408. package/.docs/reference/voice/aws-nova-sonic.md +1 -1
  409. package/.docs/reference/voice/azure.md +1 -1
  410. package/.docs/reference/voice/google-gemini-live.md +4 -4
  411. package/.docs/reference/voice/inworld-realtime.md +7 -7
  412. package/.docs/reference/voice/livekit.md +13 -13
  413. package/.docs/reference/voice/mistral.md +1 -1
  414. package/.docs/reference/voice/openai-realtime.md +1 -1
  415. package/.docs/reference/voice/sarvam.md +1 -1
  416. package/.docs/reference/voice/voice.addInstructions.md +1 -1
  417. package/.docs/reference/voice/voice.addTools.md +1 -1
  418. package/.docs/reference/voice/voice.events.md +1 -1
  419. package/.docs/reference/voice/voice.getSpeakers.md +2 -2
  420. package/.docs/reference/voice/voice.on.md +2 -2
  421. package/.docs/reference/voice/xai-realtime.md +2 -2
  422. package/.docs/reference/workers/overview.md +85 -0
  423. package/.docs/reference/workflows/run-methods/cancel.md +1 -1
  424. package/.docs/reference/workflows/run-methods/startAsync.md +1 -1
  425. package/.docs/reference/workflows/run-methods/timeTravel.md +1 -1
  426. package/.docs/reference/workflows/workflow-methods/foreach.md +1 -1
  427. package/.docs/reference/workflows/workflow-methods/sleep.md +1 -1
  428. package/.docs/reference/workflows/workflow-state-reader.md +2 -2
  429. package/.docs/reference/workspace/agentfs-filesystem.md +1 -1
  430. package/.docs/reference/workspace/apple-container-sandbox.md +2 -2
  431. package/.docs/reference/workspace/daytona-sandbox.md +3 -3
  432. package/.docs/reference/workspace/docker-sandbox.md +2 -2
  433. package/.docs/reference/workspace/e2b-sandbox.md +2 -2
  434. package/.docs/reference/workspace/files-sdk-filesystem.md +3 -3
  435. package/.docs/reference/workspace/google-drive-filesystem.md +4 -4
  436. package/.docs/reference/workspace/local-filesystem.md +3 -3
  437. package/.docs/reference/workspace/local-sandbox.md +3 -3
  438. package/.docs/reference/workspace/modal-sandbox.md +1 -1
  439. package/.docs/reference/workspace/platform-filesystem.md +3 -3
  440. package/.docs/reference/workspace/platform-sandbox.md +2 -2
  441. package/.docs/reference/workspace/process-manager.md +1 -1
  442. package/.docs/reference/workspace/railway-sandbox.md +4 -4
  443. package/.docs/reference/workspace/s3-filesystem.md +1 -1
  444. package/.docs/reference/workspace/sandbox.md +1 -1
  445. package/.docs/reference/workspace/vercel-sandbox.md +1 -1
  446. package/.docs/reference/workspace/workspace-class.md +10 -10
  447. package/CHANGELOG.md +21 -0
  448. package/package.json +3 -3
@@ -2,7 +2,7 @@
2
2
 
3
3
  # DynamoDB storage
4
4
 
5
- The DynamoDB storage implementation provides a scalable and performant NoSQL database solution for Mastra, leveraging a single-table design pattern with [ElectroDB](https://electrodb.dev/).
5
+ The DynamoDB storage implementation provides a high-capacity and performant NoSQL database solution for Mastra, using a single-table design pattern with [ElectroDB](https://electrodb.dev/).
6
6
 
7
7
  > **Observability Not Supported:** DynamoDB storage **doesn't support the observability domain**. Traces from the `MastraStorageExporter` can't be persisted to DynamoDB, and [Studio's](https://mastra.ai/docs/studio/overview) observability features won't work with DynamoDB as your only storage provider. To enable observability, use [composite storage](https://mastra.ai/reference/storage/composite) to route observability data to a supported provider like ClickHouse.
8
8
 
@@ -124,7 +124,7 @@ For local development, you can use [DynamoDB Local](https://docs.aws.amazon.com/
124
124
 
125
125
  ## TTL (time to live) configuration
126
126
 
127
- DynamoDB TTL allows you to automatically delete items after a specified time period. This is useful for:
127
+ DynamoDB TTL allows you to automatically delete items after a specified duration for these use cases:
128
128
 
129
129
  - **Cost optimization**: Automatically remove old data to reduce storage costs
130
130
  - **Data lifecycle management**: Implement retention policies for compliance
@@ -259,19 +259,19 @@ Before diving into the architectural details, keep these key points in mind when
259
259
 
260
260
  ## Architectural approach
261
261
 
262
- This storage adapter utilizes a **single-table design pattern** leveraging [ElectroDB](https://electrodb.dev/), a common and recommended approach for DynamoDB. This differs architecturally from relational database adapters (like `@mastra/pg` or `@mastra/libsql`) that typically use multiple tables, each dedicated to a specific entity (threads, messages, etc.).
262
+ This storage adapter utilizes a **single-table design pattern** with [ElectroDB](https://electrodb.dev/), a common and recommended approach for DynamoDB. This differs architecturally from relational database adapters (like `@mastra/pg` or `@mastra/libsql`) that typically use multiple tables, each dedicated to a specific entity (threads, messages, etc.).
263
263
 
264
264
  Key aspects of this approach:
265
265
 
266
- - **DynamoDB Native:** The single-table design is optimized for DynamoDB's key-value and query capabilities, often leading to better performance and scalability compared to mimicking relational models.
266
+ - **DynamoDB Native:** The single-table design is optimized for DynamoDB's key-value and query capabilities, often leading to better performance and capacity compared to mimicking relational models.
267
267
  - **External Table Management:** Unlike some adapters that might offer helper functions to create tables via code, this adapter **expects the DynamoDB table and its associated Global Secondary Indexes (GSIs) to be provisioned externally** before use. Please refer to [TABLE\_SETUP.md](https://github.com/mastra-ai/mastra/blob/main/stores/dynamodb/TABLE_SETUP.md) for detailed instructions using tools like AWS CloudFormation or CDK. The adapter focuses solely on interacting with the pre-existing table structure.
268
268
  - **Consistency via Interface:** While the underlying storage model differs, this adapter adheres to the same `MastraStorage` interface as other adapters, ensuring it can be used interchangeably within the Mastra `Memory` component.
269
269
 
270
270
  ### Mastra Data in the Single Table
271
271
 
272
- Within the single DynamoDB table, different Mastra data entities (such as Threads, Messages, Traces, Evals, and Workflows) are managed and distinguished using ElectroDB. ElectroDB defines specific models for each entity type, which include unique key structures and attributes. This allows the adapter to store and retrieve diverse data types efficiently within the same table.
272
+ Within the single DynamoDB table, different Mastra data entities (such as Threads, Messages, Traces, Evals, and Workflows) are managed and distinguished using ElectroDB. ElectroDB defines specific models for each entity type, which include unique key structures and attributes. It allows the adapter to store and retrieve diverse data types efficiently within the same table.
273
273
 
274
- For example, a `Thread` item might have a primary key like `THREAD#<threadId>`, while a `Message` item belonging to that thread might use `THREAD#<threadId>` as a partition key and `MESSAGE#<messageId>` as a sort key. The Global Secondary Indexes (GSIs), detailed in `TABLE_SETUP.md`, are strategically designed to support common access patterns across these different entities, such as fetching all messages for a thread or querying traces associated with a particular workflow.
274
+ For example, a `Thread` item might have a primary key like `THREAD#<threadId>`, while a `Message` item belonging to that thread might use `THREAD#<threadId>` as a partition key and `MESSAGE#<messageId>` as a sort key. The Global Secondary Indexes (GSIs), detailed in `TABLE_SETUP.md`, are strategically designed to support common access patterns across these different entities, such as fetching all messages for a thread or querying traces associated with a workflow.
275
275
 
276
276
  ### Advantages of Single-Table Design
277
277
 
@@ -279,6 +279,6 @@ This implementation uses a single-table design pattern with ElectroDB, which off
279
279
 
280
280
  1. **Lower cost (potentially):** Fewer tables can simplify Read/Write Capacity Unit (RCU/WCU) provisioning and management, especially with on-demand capacity.
281
281
  2. **Better performance:** Related data can be co-located or accessed efficiently through GSIs, enabling fast lookups for common access patterns.
282
- 3. **Simplified administration:** Fewer distinct tables to monitor, back up, and manage.
282
+ 3. **Simplified administration:** Fewer distinct tables to monitor and back up, with less to manage.
283
283
  4. **Reduced complexity in access patterns:** ElectroDB helps manage the complexity of item types and access patterns on a single table.
284
284
  5. **Transaction support:** DynamoDB transactions can be used across different "entity" types stored within the same table if needed.
@@ -117,7 +117,7 @@ LanceDB storage can be configured for different deployment scenarios:
117
117
  ```text
118
118
  db://host:port
119
119
  ```
120
- - **S3 Storage**: Use Amazon S3 for scalable cloud storage
120
+ - **S3 Storage**: Use Amazon S3 for high-capacity cloud storage
121
121
  ```text
122
122
  s3://bucket/db
123
123
  ```
@@ -2,7 +2,7 @@
2
2
 
3
3
  # MongoDB storage
4
4
 
5
- The MongoDB storage implementation provides a scalable storage solution using MongoDB databases with support for both document storage and vector operations.
5
+ The MongoDB storage implementation provides a high-capacity storage solution using MongoDB databases with support for both document storage and vector operations.
6
6
 
7
7
  ## Installation
8
8
 
@@ -210,7 +210,7 @@ export const mongodbAgent = new Agent({
210
210
  name: 'mongodb-agent',
211
211
  instructions:
212
212
  'You are an AI agent with the ability to automatically recall memories from previous interactions.',
213
- model: 'openai/gpt-5.5',
213
+ model: 'openai/gpt-5.6-sol',
214
214
  memory: new Memory({
215
215
  storage: new MongoDBStore({
216
216
  id: 'mongodb-storage',
@@ -150,7 +150,7 @@ const thread = await memoryStore?.getThreadById({ threadId: '...' })
150
150
  store.pool // mssql connection pool instance
151
151
  ```
152
152
 
153
- This enables direct queries and custom transaction management. When using these fields:
153
+ It supports direct queries and custom transaction management. When using these fields:
154
154
 
155
155
  - You are responsible for proper connection and transaction handling.
156
156
  - Closing the store (`store.close()`) will destroy the associated connection pool.
@@ -317,7 +317,7 @@ export const mastra = new Mastra({
317
317
  })
318
318
  ```
319
319
 
320
- This pattern ensures only one `PostgresStore` instance is created regardless of how many times the module is reloaded during development. The same pattern can be applied to other storage providers like `LibSQLStore`.
320
+ The pattern ensures only one `PostgresStore` instance is created regardless of how many times the module is reloaded during development. The same pattern can be applied to other storage providers like `LibSQLStore`.
321
321
 
322
322
  > **Tip:** This singleton pattern is only necessary during local development with HMR. In production builds, modules are only loaded once.
323
323
 
@@ -337,7 +337,7 @@ export const pgAgent = new Agent({
337
337
  name: 'PG Agent',
338
338
  instructions:
339
339
  'You are an AI agent with the ability to automatically recall memories from previous interactions.',
340
- model: 'openai/gpt-5.5',
340
+ model: 'openai/gpt-5.6-sol',
341
341
  memory: new Memory({
342
342
  storage: new PostgresStore({
343
343
  id: 'pg-agent-storage',
@@ -183,7 +183,7 @@ export const redisAgent = new Agent({
183
183
  name: 'Redis Agent',
184
184
  instructions:
185
185
  'You are an AI agent with the ability to automatically recall memories from previous interactions.',
186
- model: 'openai/gpt-5.5',
186
+ model: 'openai/gpt-5.6-sol',
187
187
  memory: new Memory({
188
188
  storage: new RedisStore({
189
189
  id: 'redis-agent-storage',
@@ -4,9 +4,9 @@
4
4
 
5
5
  Storage grows without bound by default. Retention is an opt-in, age-based cleanup system: you declare per-table `maxAge` policies in the `retention` config, then call `storage.prune()` to delete rows older than their configured age. Anything you don't configure is kept forever, so there is no behavior change until you opt in.
6
6
 
7
- `prune()` deletes rows. It caps growth and is safe to run against large tables (batched, bounded, resumable, cancellable). It never reclaims disk on SQLite/libSQL the freed pages are reused by future writes so the file stops growing, but handing disk back to the OS (for example a `VACUUM`) is left to the underlying database and the operator to manage.
7
+ `prune()` deletes rows. It caps growth and is safe to run against large tables (batched, bounded, resumable, cancellable). It never reclaims disk: on SQLite/libSQL the freed pages are reused by future writes so the file stops growing, but handing disk back to the OS (for example a `VACUUM`) is left to the underlying database and the operator to manage.
8
8
 
9
- Retention covers **growth tables** only tables that accumulate rows unbounded as a side effect of normal operation (conversation history, telemetry, job and run records, schedule fire history, event feeds). User-authored artifacts and config (agents, skills, workspaces, prompt blocks, datasets, schedule definitions, channel installations, and so on) grow with user intent and are edited or deleted explicitly, so they're not valid retention keys.
9
+ Retention covers **growth tables** only: tables that accumulate rows unbounded as a side effect of normal operation (conversation history, telemetry, job and run records, schedule fire history, event feeds). User-authored artifacts and config (agents, skills, workspaces, prompt blocks, datasets, schedule definitions, channel installations, and so on) grow with user intent and are edited or deleted explicitly, so they're not valid retention keys.
10
10
 
11
11
  The reference implementations are [libSQL](https://mastra.ai/reference/storage/libsql), [PostgreSQL](https://mastra.ai/reference/storage/postgresql), and [MongoDB](https://mastra.ai/reference/storage/mongodb). Other adapters keep rows forever until they implement retention.
12
12
 
@@ -31,7 +31,7 @@ const storage = new LibSQLStore({
31
31
  },
32
32
  })
33
33
 
34
- // Wire this to your own cron/scheduler Mastra never runs it for you.
34
+ // Wire this to your own cron/scheduler: Mastra never runs it for you.
35
35
  const results = await storage.prune()
36
36
  ```
37
37
 
@@ -65,35 +65,35 @@ Set the `retention` field on the store config.
65
65
 
66
66
  ### Retention-eligible tables
67
67
 
68
- Each domain declares which of its tables can be age-pruned and which timestamp column anchors the comparison. The anchor is chosen so `maxAge` means what you'd expect for that data: creation time for append-only logs, last activity for live state, and completion time for jobs and runs (so in-flight work is never pruned).
69
-
70
- | Domain | Table key | Anchor column | `maxAge` measures |
71
- | ----------------- | ------------------ | ---------------- | ----------------------------------------------------------------- |
72
- | `memory` | `threads` | `createdAt` | Thread age |
73
- | `memory` | `messages` | `createdAt` | Message age |
74
- | `memory` | `resources` | `createdAt` | Resource age |
75
- | `threadState` | `threadState` | `updatedAt` | Inactivity state for still-active threads survives |
76
- | `observability` | `spans` | `startedAt` | Span age |
77
- | `observability` | `metrics` | `timestamp` | Metric event age (v-next only) |
78
- | `observability` | `logs` | `timestamp` | Log event age (v-next only) |
79
- | `observability` | `scores` | `timestamp` | Score event age (v-next only) |
80
- | `observability` | `feedback` | `timestamp` | Feedback event age (v-next only) |
81
- | `scores` | `scorers` | `createdAt` | Score record age |
82
- | `workflows` | `workflowSnapshot` | `updatedAt` | Inactivity suspended or long-running workflows survive |
83
- | `backgroundTasks` | `backgroundTasks` | `completedAt` | Time since completion in-flight tasks (`NULL`) are never pruned |
84
- | `experiments` | `experiments` | `completedAt` | Time since completion running experiments are never pruned |
85
- | `notifications` | `notifications` | `createdAt` | Notification age |
86
- | `harness` | `sessions` | `createdAt` | Session record age |
87
- | `schedules` | `triggers` | `actual_fire_at` | Fire-history age (epoch-ms column) |
68
+ Each domain declares which of its tables can be age-pruned and which timestamp column anchors the comparison. The anchor is chosen so `maxAge` means what you'd expect for that data. Append-only logs use creation time, and live state uses last activity. Jobs and runs use completion time, so in-flight work is never pruned.
69
+
70
+ | Domain | Table key | Anchor column | `maxAge` measures |
71
+ | ----------------- | ------------------ | ---------------- | ---------------------------------------------------------------- |
72
+ | `memory` | `threads` | `createdAt` | Thread age |
73
+ | `memory` | `messages` | `createdAt` | Message age |
74
+ | `memory` | `resources` | `createdAt` | Resource age |
75
+ | `threadState` | `threadState` | `updatedAt` | Inactivity: state for still-active threads survives |
76
+ | `observability` | `spans` | `startedAt` | Span age |
77
+ | `observability` | `metrics` | `timestamp` | Metric event age (v-next only) |
78
+ | `observability` | `logs` | `timestamp` | Log event age (v-next only) |
79
+ | `observability` | `scores` | `timestamp` | Score event age (v-next only) |
80
+ | `observability` | `feedback` | `timestamp` | Feedback event age (v-next only) |
81
+ | `scores` | `scorers` | `createdAt` | Score record age |
82
+ | `workflows` | `workflowSnapshot` | `updatedAt` | Inactivity, suspended or long-running workflows survive |
83
+ | `backgroundTasks` | `backgroundTasks` | `completedAt` | Time since completion, in-flight tasks (`NULL`) are never pruned |
84
+ | `experiments` | `experiments` | `completedAt` | Time since completion, running experiments are never pruned |
85
+ | `notifications` | `notifications` | `createdAt` | Notification age |
86
+ | `harness` | `sessions` | `createdAt` | Session record age |
87
+ | `schedules` | `triggers` | `actual_fire_at` | Fire-history age (epoch-ms column) |
88
88
 
89
89
  > **Note:**
90
90
  >
91
91
  > - The memory `observational_memory` table has no timestamp anchor, so it can't be age-pruned and isn't a valid retention key.
92
92
  > - Experiments prune as whole units: an aged experiment's result rows are deleted together with it (results cascade with their parent), so a run is never left partially deleted. Retention doesn't have a separate `results` key.
93
- > - For `schedules`, the growth table is the fire history (`schedule_triggers`, one row per fire) schedule definitions are config and aren't pruned.
93
+ > - For `schedules`, the growth table is the fire history (`schedule_triggers`, one row per fire): schedule definitions are config and aren't pruned.
94
94
  > - On PostgreSQL, timestamp anchors use the timezone-aware mirror columns (for example `createdAtZ`, `completedAtZ`).
95
95
  > - LibSQL supports all domains above; PostgreSQL and MongoDB support all except `threadState` and `harness`, which they don't implement.
96
- > - The v-next PostgreSQL observability domain stores signal events in day-partitioned tables (`spans`, `metrics`, `logs`, `scores`, `feedback`). For it, `prune()` drops whole day partitions (or TimescaleDB chunks) that are entirely older than the cutoff instead of deleting rows effective granularity is one day, and a partition is only dropped once its entire day is past `maxAge`. `PruneResult.deleted` reports the number of rows in the dropped partitions.
96
+ > - The v-next PostgreSQL observability domain stores signal events in day-partitioned tables (`spans`, `metrics`, `logs`, `scores`, `feedback`). For it, `prune()` drops whole day partitions (or TimescaleDB chunks) that are entirely older than the cutoff instead of deleting rows: effective level of detail is one day, and a partition is only dropped once its entire day is past `maxAge`. `PruneResult.deleted` reports the number of rows in the dropped partitions.
97
97
 
98
98
  ## Methods
99
99
 
@@ -103,11 +103,11 @@ Each domain declares which of its tables can be age-pruned and which timestamp c
103
103
 
104
104
  Deletes rows older than their configured `maxAge` across every domain that has a policy in `retention`. Returns one `PruneResult` per table touched. With no `retention` configured it's a no-op returning `[]`.
105
105
 
106
- `prune()` is designed to be safe on tables with millions of rows. It deletes in bounded, batched chunks each batch is its own transaction so it never takes a long lock or bloats the transaction log. It never runs a `VACUUM`.
106
+ `prune()` is designed to be safe on tables with millions of rows. It deletes in bounded, batched chunks (each batch is its own transaction) so it never takes a long lock or bloats the transaction log. It never runs a `VACUUM`.
107
107
 
108
- Pass `options.retention` to replace the configured policies for that call only for example to skip a domain (keep chat history) or prune more aggressively than the standing config. The store's configured `retention` is unchanged.
108
+ Pass `options.retention` to replace the configured policies for that call only: for example to skip a domain (keep chat history) or prune more aggressively than the standing config. The store's configured `retention` is unchanged.
109
109
 
110
- Anchor-column indexes are created lazily on the first `prune()` call for each table with a policy never at `init()` so deployments that don't configure retention pay no extra index write or disk overhead. The first prune of an existing large table pays a one-time index build; subsequent prunes reuse the index.
110
+ Anchor-column indexes are created lazily on the first `prune()` call for each table with a policy (never at `init()`) so deployments that don't configure retention pay no extra index write or disk overhead. The first prune of an existing large table pays a one-time index build. Subsequent prunes reuse the index.
111
111
 
112
112
  ```typescript
113
113
  const results = await storage.prune({
@@ -156,7 +156,7 @@ interface PruneResult {
156
156
 
157
157
  ## Running prune on a schedule
158
158
 
159
- `prune()` has no built-in scheduler you decide when it runs. Because it's bounded, a single call may not delete everything. When any result has `done: false`, eligible rows remain and you call again on the next tick. This keeps each invocation short and lets a large backlog drain over several runs.
159
+ `prune()` has no built-in scheduler: you decide when it runs. Because it's bounded, a single call may not delete everything. When any result has `done: false`, eligible rows remain and you call again on the next tick. This keeps each invocation short and lets a large backlog drain over several runs.
160
160
 
161
161
  ```typescript
162
162
  // Runs on your own cron (node-cron, a workflow schedule, an external job, etc.).
@@ -173,7 +173,7 @@ async function retentionTick() {
173
173
  }
174
174
  ```
175
175
 
176
- You can also cancel a long-running prune with an `AbortSignal` the loop stops between batches and returns partial results with `done: false`, so the next run resumes cleanly.
176
+ You can also cancel a long-running prune with an `AbortSignal`: the loop stops between batches and returns partial results with `done: false`, so the next run resumes cleanly.
177
177
 
178
178
  ## MongoDB TTL indexes (alternative to prune)
179
179
 
@@ -192,7 +192,7 @@ MongoDB offers native [TTL (Time-To-Live) indexes](https://www.mongodb.com/docs/
192
192
  > - You need resumable, cancellable cleanup operations
193
193
  > - You're using composite storage with multiple databases
194
194
  >
195
- > Both approaches are valid. TTL is simpler; `prune()` gives more control.
195
+ > Both approaches are valid. TTL is simpler. `prune()` gives more control.
196
196
 
197
197
  ### Setting up TTL indexes on MongoDB
198
198
 
@@ -232,9 +232,9 @@ const storage = new MongoDBStore({
232
232
 
233
233
  ## Reclaiming disk
234
234
 
235
- `prune()` deletes rows but doesn't shrink the database file. On SQLite/libSQL the freed pages go on a freelist and are reused by future writes, so the file stops growing for most users this alone solves the unbounded-growth problem.
235
+ `prune()` deletes rows but doesn't shrink the database file. On SQLite/libSQL the freed pages go on a freelist and are reused by future writes, so the file stops growing: for most users this alone solves the unbounded-growth problem.
236
236
 
237
- Handing that free space back to the OS is a separate concern that Mastra doesn't manage. If you specifically need to shrink the file, run the underlying database's compaction (for example `VACUUM` on self-hosted libSQL) yourself, in a maintenance window a full `VACUUM` locks the file and needs roughly twice the file size in free disk. On PostgreSQL, autovacuum reclaims dead tuples for reuse automatically; a manual `VACUUM FULL` is only needed if you must return disk to the OS.
237
+ Handing that free space back to the OS is a separate concern that Mastra doesn't manage. If you specifically need to shrink the file, run the underlying database's compaction (for example `VACUUM` on self-hosted libSQL) yourself in a maintenance window. A full `VACUUM` locks the file and needs roughly twice the file size in free disk. On PostgreSQL, autovacuum reclaims dead tuples for reuse automatically; a manual `VACUUM FULL` is only needed if you must return disk to the OS.
238
238
 
239
239
  For MongoDB, deleted documents are reused by future insertions. To reclaim disk space, run [`db.runCommand({ compact: "collection_name" })`](https://www.mongodb.com/docs/manual/reference/command/compact/) during a maintenance window.
240
240
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Google Cloud Spanner storage
4
4
 
5
- The Google Cloud Spanner storage implementation provides a horizontally scalable, strongly consistent storage backend for Mastra. It targets the GoogleSQL dialect of Cloud Spanner.
5
+ The Google Cloud Spanner storage implementation provides a horizontally high-capacity, strongly consistent storage backend for Mastra. It targets the GoogleSQL dialect of Cloud Spanner.
6
6
 
7
7
  ## Installation
8
8
 
@@ -133,14 +133,14 @@ The storage adapter creates the following tables, all using the GoogleSQL dialec
133
133
 
134
134
  Tables are created with `STRING(MAX)` for text and JSON payloads, `INT64`, `FLOAT64`, `BOOL`, and `TIMESTAMP`.
135
135
 
136
- Two tables also carry Spanner-specific `STORED` generated columns that the adapter populates from JSON payloads so common filters can use a regular secondary index instead of a `JSON_VALUE` scan:
136
+ The following tables carry Spanner-specific `STORED` generated columns that the adapter populates from JSON payloads so common filters can use a regular secondary index instead of a `JSON_VALUE` scan:
137
137
 
138
- - `mastra_workflow_snapshot.snapshotStatus` extracts `$.status` from `snapshot`; backs `listWorkflowRuns({ status })`.
139
- - `mastra_schedules.target_workflow_id` extracts `$.workflowId` from `target`; backs `listSchedules({ workflowId })`.
138
+ - `mastra_workflow_snapshot.snapshotStatus`: Extracts `$.status` from `snapshot`. Backs `listWorkflowRuns({ status })`.
139
+ - `mastra_schedules.target_workflow_id`: Extracts `$.workflowId` from `target`. Backs `listSchedules({ workflowId })`.
140
140
 
141
141
  Both are added via `ALTER TABLE ... ADD COLUMN IF NOT EXISTS` during `init()` and skipped under `initMode: 'validate'` (where the schema is owned externally). When the column is absent, the adapter falls back to a `JSON_VALUE` filter at runtime.
142
142
 
143
- The adapter doesn't create or use named schemas; use a dedicated database for isolation.
143
+ The adapter doesn't create or use schemas. Use a dedicated database for isolation.
144
144
 
145
145
  ### Initialization
146
146
 
@@ -184,11 +184,11 @@ const thread = await memory?.getThreadById({ threadId: '...' })
184
184
  A few behaviors differ from other relational adapters:
185
185
 
186
186
  - Upserts use `INSERT OR UPDATE`. Spanner doesn't provide a `RETURNING` clause for upserts, so callers needing the post-write state must read it back.
187
- - No `TRUNCATE` exists; `dangerouslyClearAll()` issues `DELETE WHERE TRUE`.
187
+ - No `TRUNCATE` exists. `dangerouslyClearAll()` issues `DELETE WHERE TRUE`.
188
188
  - Identifiers are quoted with backticks.
189
189
  - DDL is applied through `database.updateSchema(...)`, which is asynchronous (long-running operation).
190
190
  - `NULLS FIRST/LAST` isn't supported. Ordering with NULL handling is emulated through an `IS NULL` ordering key.
191
- - JSON containment isn't supported natively. `listTraces` `metadata` and `scope` filters compile to per-key `JSON_VALUE(...) = @v` equality checks, and `tags` filters compile to `EXISTS` over `JSON_QUERY_ARRAY(...)`. This differs from Postgres' `@>` containment operator (which can match nested structure in a single index scan) most one-shot lookups still work but deeply nested structural matches aren't expressible.
191
+ - JSON containment isn't supported natively. `listTraces` `metadata` and `scope` filters compile to per-key `JSON_VALUE(...) = @v` equality checks, and `tags` filters compile to `EXISTS` over `JSON_QUERY_ARRAY(...)`. This differs from Postgres' `@>` containment operator (which can match nested structure in a single index scan): most one-shot lookups still work but deeply nested structural matches aren't expressible.
192
192
 
193
193
  ### Direct database access
194
194
 
@@ -217,4 +217,4 @@ gcloud spanner instances create test-instance --config=emulator-config --nodes=1
217
217
  gcloud spanner databases create test-db --instance=test-instance
218
218
  ```
219
219
 
220
- Then connect with the same env var set in your Node.js process; the `@google-cloud/spanner` client detects the emulator automatically.
220
+ Then connect with the same env var set in your Node.js process. The `@google-cloud/spanner` client detects the emulator automatically.
@@ -105,7 +105,7 @@ export const upstashAgent = new Agent({
105
105
  name: 'Upstash Agent',
106
106
  instructions:
107
107
  'You are an AI agent with the ability to automatically recall memories from previous interactions.',
108
- model: 'openai/gpt-5.5',
108
+ model: 'openai/gpt-5.6-sol',
109
109
  memory: new Memory({
110
110
  storage: new UpstashStore({
111
111
  id: 'upstash-agent-storage',
@@ -522,9 +522,9 @@ Emitted when the task throws or times out. Triggers a continuation turn when con
522
522
 
523
523
  ### background-task-suspended
524
524
 
525
- Emitted when a tool calls `suspend()` from inside its background execution. Pauses the task's workflow run with its snapshot persisted; resume with `mastra.backgroundTaskManager.resume(taskId, resumeData)`.
525
+ Emitted when a tool calls `suspend()` from inside its background execution. Pauses the task's workflow run with its snapshot persisted. Resume with `mastra.backgroundTaskManager.resume(taskId, resumeData)`.
526
526
 
527
- When consumed by [`Agent.streamUntilIdle()`](https://mastra.ai/reference/streaming/agents/streamUntilIdle), this chunk drops the task from the loop's wait set without queuing a continuation the agent's response ends, and the resumed task's eventual completion injects into the message list for the next user turn.
527
+ When consumed by [`Agent.streamUntilIdle()`](https://mastra.ai/reference/streaming/agents/streamUntilIdle), this chunk drops the task from the loop's wait set without queuing a continuation. The agent's response ends, and the resumed task's eventual completion injects into the message list for the next user turn.
528
528
 
529
529
  **type** (`"background-task-suspended"`): Chunk type identifier
530
530
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # MastraModelOutput
4
4
 
5
- The `MastraModelOutput` class is returned by [.stream()](https://mastra.ai/reference/streaming/agents/stream) and provides both streaming and promise-based access to model outputs. It supports structured output generation, tool calls, reasoning, and comprehensive usage tracking.
5
+ The `MastraModelOutput` class is returned by [.stream()](https://mastra.ai/reference/streaming/agents/stream) and provides both streaming and promise-based access to model outputs. It supports structured output generation, tool calls, reasoning, and detailed usage tracking.
6
6
 
7
7
  ```typescript
8
8
  // MastraModelOutput is returned by agent.stream()
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Agent.stream()
4
4
 
5
- The `.stream()` method enables real-time streaming of responses from an agent with enhanced capabilities and format flexibility. This method accepts messages and optional streaming options, providing a next-generation streaming experience with support for both Mastra's native format and AI SDK v5+ compatibility.
5
+ The `.stream()` method enables real-time streaming of responses from an agent with enhanced capabilities and format flexibility. This method accepts messages and optional streaming options, providing a current streaming experience with support for both Mastra's native format and AI SDK v5+ compatibility.
6
6
 
7
7
  ## Usage example
8
8
 
@@ -334,7 +334,7 @@ await agent.stream('message for agent', {
334
334
  sentiment: z.enum(['positive', 'negative', 'neutral']),
335
335
  confidence: z.number(),
336
336
  }),
337
- model: 'openai/gpt-5.5',
337
+ model: 'openai/gpt-5.6-sol',
338
338
  errorStrategy: 'warn',
339
339
  },
340
340
  // Output processors for streaming response validation
@@ -32,7 +32,7 @@ for await (const chunk of stream.fullStream) {
32
32
  }
33
33
  ```
34
34
 
35
- > **Info:** `streamUntilIdle()` requires both a [`BackgroundTaskManager`](https://mastra.ai/reference/configuration) and a [memory](https://mastra.ai/docs/memory/overview) backend. Without either, it falls through to a plain `agent.stream()` call.
35
+ > **Info:** `streamUntilIdle()` requires both a [`BackgroundTaskManager`](https://mastra.ai/reference/configuration) and a [memory](https://mastra.ai/docs/memory/overview) backend. Without either, it uses a plain `agent.stream()` call.
36
36
 
37
37
  ## Parameters
38
38
 
@@ -54,7 +54,7 @@ For every other option (`maxSteps`, `modelSettings`, `toolChoice`, `outputProces
54
54
 
55
55
  ### Aggregate properties caveat
56
56
 
57
- `streamUntilIdle()` returns a proxy over the first turn's `MastraModelOutput`. Only `fullStream` is replaced with a combined stream that spans every continuation. Every other property `text`, `toolCalls`, `toolResults`, `finishReason`, `messageList`, `getFullOutput()` resolves against the **first turn's** internal buffer.
57
+ `streamUntilIdle()` returns a proxy over the first turn's `MastraModelOutput`. Only `fullStream` is replaced with a combined stream that spans every continuation. Every other property (`text`, `toolCalls`, `toolResults`, `finishReason`, `messageList`, and `getFullOutput()`) resolves against the **first turn's** internal buffer.
58
58
 
59
59
  If you need an aggregate view across all continuations, consume `fullStream` yourself and accumulate.
60
60
 
@@ -28,7 +28,7 @@ for await (const chunk of stream) {
28
28
 
29
29
  ## Stream events
30
30
 
31
- The stream emits various event types during workflow execution. Each event has a `type` field and a `payload` containing relevant data:
31
+ The stream emits event types during workflow execution. Each event has a `type` field and a `payload` containing relevant data:
32
32
 
33
33
  - **`workflow-start`**: Workflow execution begins
34
34
  - **`workflow-step-start`**: A step begins execution
@@ -60,7 +60,7 @@ if (result!.status === 'suspended') {
60
60
 
61
61
  ## Stream events
62
62
 
63
- The stream emits various event types during workflow execution. Each event has a `type` field and a `payload` containing relevant data:
63
+ The stream emits event types during workflow execution. Each event has a `type` field and a `payload` containing relevant data:
64
64
 
65
65
  - **`workflow-start`**: Workflow execution begins
66
66
  - **`workflow-step-start`**: A step begins execution
@@ -86,7 +86,7 @@ console.log('Status:', stream.status)
86
86
 
87
87
  ## Stream events
88
88
 
89
- The stream emits various event types during workflow execution. Each event has a `type` field and a `payload` containing relevant data:
89
+ The stream emits event types during workflow execution. Each event has a `type` field and a `payload` containing relevant data:
90
90
 
91
91
  - **`workflow-start`**: Workflow execution begins
92
92
  - **`workflow-step-start`**: A step begins execution
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Run.timeTravelStream()
4
4
 
5
- The `.timeTravelStream()` method re-executes a workflow starting from any specific step with streaming events. This allows you to receive real-time updates during time travel execution while maintaining full visibility into each step's progress.
5
+ The `.timeTravelStream()` method re-executes a workflow starting from any specific step with streaming events. You can receive real-time updates during time travel execution while maintaining full visibility into each step's progress.
6
6
 
7
7
  ## Usage example
8
8
 
@@ -39,7 +39,7 @@ All parameters are the same as [`Run.timeTravel()`](https://mastra.ai/reference/
39
39
 
40
40
  ## Stream events
41
41
 
42
- The stream emits various workflow events during execution:
42
+ The stream emits workflow events during execution:
43
43
 
44
44
  - `workflow-step-start`: Emitted when a step begins execution
45
45
  - `workflow-step-finish`: Emitted when a step completes successfully
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Overview
4
4
 
5
- This reference provides comprehensive information about Mastra templates, including how to use existing templates, create your own, and contribute to the community ecosystem.
5
+ This reference explains how to use existing Mastra templates and create your own. It also covers contributing templates to the community ecosystem.
6
6
 
7
7
  Mastra templates are pre-built project structures that demonstrate specific use cases and patterns. They provide:
8
8
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Bright Data tools
4
4
 
5
- The `@mastra/brightdata` package wraps the [Bright Data SDK](https://github.com/brightdata/bright-data-sdk-node) as Mastra-compatible tools. It exposes factory functions for web search and web fetch each returning a tool created with [`createTool()`](https://mastra.ai/reference/tools/create-tool) that includes full Zod input/output schemas.
5
+ The `@mastra/brightdata` package wraps the [Bright Data SDK](https://github.com/brightdata/bright-data-sdk-node) as Mastra-compatible tools. It exposes factory functions for web search and web fetch. Each function returns a tool created with [`createTool()`](https://mastra.ai/reference/tools/create-tool) that includes full Zod input/output schemas.
6
6
 
7
7
  The search tool is backed by Bright Data's [SERP API](https://brightdata.com/products/serp-api) and the fetch tool by [Web Unlocker](https://brightdata.com/products/web-unlocker). Both bypass bot detection and CAPTCHAs.
8
8
 
@@ -45,7 +45,7 @@ export const shopAgent = new Agent({
45
45
  id: 'shop-assistant',
46
46
  name: 'shop-assistant',
47
47
  instructions: ['You are a helpful shopping assistant.', instructions],
48
- model: 'openai/gpt-5.5',
48
+ model: 'openai/gpt-5.6-sol',
49
49
  tools: { execute_typescript: tool },
50
50
  })
51
51
  ```
@@ -56,13 +56,13 @@ export const shopAgent = new Agent({
56
56
 
57
57
  **config.tools** (`ToolsInput`): Tools exposed to the generated code as external\_\<id> functions. Only these tools can be called.
58
58
 
59
- **config.sandbox** (`WorkspaceSandbox`): Sandbox used to execute the generated code. Required unless the agent runs in a workspace that provides a sandbox. Pass new LocalSandbox() to run on the host explicitly.
59
+ **config.sandbox** (`WorkspaceSandbox`): Sandbox used to execute the generated code. Required unless the agent runs in a workspace that provides a sandbox, or the transport provides its own execution boundary (such as IsolatedVmCodeModeTransport). Pass new LocalSandbox() to run on the host explicitly.
60
60
 
61
61
  **config.timeout** (`number`): Execution timeout in milliseconds.
62
62
 
63
63
  **config.id** (`string`): The generated tool id.
64
64
 
65
- **transport** (`CodeModeTransport`): Optional transport implementation used to run the generated code in the sandbox. The default transport uses stdio JSON-RPC over the workspace sandbox process API.
65
+ **transport** (`CodeModeTransport`): Optional transport implementation used to run the generated code in the sandbox. The default transport uses stdio JSON-RPC over the workspace sandbox process API. Transports that declare requiresSandbox: false (such as IsolatedVmCodeModeTransport) run without a sandbox.
66
66
 
67
67
  ## Returns
68
68
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  # createTool()
4
4
 
5
- The `createTool()` function is used to define custom tools that your Mastra agents can execute. Tools extend an agent's capabilities by allowing it to interact with external systems, perform calculations, or access specific data.
5
+ The `createTool()` function is used to define custom tools that your Mastra agents can execute. Tools extend an agent's capabilities by allowing it to interact with external systems or perform calculations. They can also access specific data.
6
6
 
7
7
  ## Usage example
8
8
 
@@ -51,7 +51,7 @@ const graphTool = createGraphRAGTool({
51
51
 
52
52
  **graphOptions.restartProb** (`number`): Probability of restarting random walk from query node. (Can be set at creation or overridden at runtime.)
53
53
 
54
- **providerOptions** (`Record<string, Record<string, any>>`): Provider-specific options for the embedding model (e.g., outputDimensionality). \*\*Important\*\*: Only works with AI SDK EmbeddingModelV2 models. For V1 models, configure options when creating the model itself.
54
+ **providerOptions** (`Record<string, Record<string, any>>`): Provider-specific options for the embedding model (e.g., outputDimensionality). Only works with AI SDK EmbeddingModelV2 models. For V1 models, configure options when creating the model itself.
55
55
 
56
56
  **vectorStore** (`MastraVector | VectorStoreResolver`): Direct vector store instance or a resolver function for dynamic selection. Use a function for multi-tenant applications where the vector store is selected based on request context. When provided, vectorStoreName becomes optional.
57
57
 
@@ -0,0 +1,74 @@
1
+ > Discover all available pages from the documentation index: https://mastra.ai/llms.txt
2
+
3
+ # IsolatedVmCodeModeTransport
4
+
5
+ > **Beta:** This feature is in beta. Breaking changes may occur without a major version bump until the API is stable.
6
+
7
+ The `IsolatedVmCodeModeTransport` class runs [Code mode](https://mastra.ai/docs/agents/code-mode) programs in an in-process V8 isolate, backed by [isolated-vm](https://github.com/laverdet/isolated-vm). The isolate is the execution boundary, so no workspace sandbox is required: the program has no filesystem, network, process, or module access. Its only capabilities are the `external_*` functions, which call back into the real tools on the host.
8
+
9
+ Compared to the default `StdioCodeModeTransport`, this transport spawns no processes and writes no temp files, which makes it a good fit for serverless and multi-tenant hosts where OS-level sandboxing isn't available.
10
+
11
+ ## Installation
12
+
13
+ **npm**:
14
+
15
+ ```bash
16
+ npm install @mastra/isolated-vm
17
+ ```
18
+
19
+ **pnpm**:
20
+
21
+ ```bash
22
+ pnpm add @mastra/isolated-vm
23
+ ```
24
+
25
+ **Yarn**:
26
+
27
+ ```bash
28
+ yarn add @mastra/isolated-vm
29
+ ```
30
+
31
+ **Bun**:
32
+
33
+ ```bash
34
+ bun add @mastra/isolated-vm
35
+ ```
36
+
37
+ `isolated-vm` is a native addon. It ships prebuilt binaries for common platforms, so installation usually needs no extra setup. A C++ toolchain is only needed on platforms without a matching prebuild, where it falls back to compiling from source.
38
+
39
+ On Node.js 20 and later, the host process must be started with the `--no-node-snapshot` flag, otherwise creating an isolate crashes the process. The constructor throws an error when the flag is missing. Pass the flag when starting your server, or set it through `NODE_OPTIONS`:
40
+
41
+ ```bash
42
+ NODE_OPTIONS=--no-node-snapshot npm run dev
43
+ ```
44
+
45
+ ## Usage
46
+
47
+ Pass the transport as the second argument to `createCodeMode()`. No `sandbox` is needed:
48
+
49
+ ```typescript
50
+ import { createCodeMode } from '@mastra/core/tools'
51
+ import { IsolatedVmCodeModeTransport } from '@mastra/isolated-vm'
52
+
53
+ const { tool, instructions } = createCodeMode(
54
+ { tools: { getTopProducts, getProductRatings } },
55
+ new IsolatedVmCodeModeTransport({ memoryLimitMb: 128 }),
56
+ )
57
+ ```
58
+
59
+ ## Constructor parameters
60
+
61
+ **options** (`IsolatedVmCodeModeTransportOptions`): Configuration for the isolate.
62
+
63
+ **options.memoryLimitMb** (`number`): V8 isolate heap limit in MiB. A program that exceeds the limit is terminated and the tool returns an error result.
64
+
65
+ ## How it works
66
+
67
+ Each run creates a fresh isolate with its own heap. TypeScript is stripped on the host with esbuild, then the program is evaluated inside the isolate. Every `external_*` call crosses the isolate boundary as JSON strings in both directions, so no host object references leak into model-authored code. The allow-list, tool validation, request context, and tracing all run on the host, the same as with other transports.
68
+
69
+ The `timeout` configured on `createCodeMode()` applies to both asynchronous hangs and synchronous infinite loops, and the isolate is disposed after every run.
70
+
71
+ ## Related
72
+
73
+ - [Code mode](https://mastra.ai/docs/agents/code-mode)
74
+ - [createCodeMode() reference](https://mastra.ai/reference/tools/create-code-mode)