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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. package/.docs/organized/changelogs/%40internal%2Fchangeset-cli.md +1 -15
  2. package/.docs/organized/changelogs/%40internal%2Fexternal-types.md +1 -7
  3. package/.docs/organized/changelogs/%40internal%2Fstorage-test-utils.md +201 -1
  4. package/.docs/organized/changelogs/%40internal%2Ftypes-builder.md +1 -55
  5. package/.docs/organized/changelogs/%40mastra%2Fagent-builder.md +201 -1
  6. package/.docs/organized/changelogs/%40mastra%2Fai-sdk.md +276 -76
  7. package/.docs/organized/changelogs/%40mastra%2Fastra.md +201 -1
  8. package/.docs/organized/changelogs/%40mastra%2Fauth.md +6 -0
  9. package/.docs/organized/changelogs/%40mastra%2Fchroma.md +201 -1
  10. package/.docs/organized/changelogs/%40mastra%2Fclickhouse.md +201 -1
  11. package/.docs/organized/changelogs/%40mastra%2Fclient-js.md +200 -0
  12. package/.docs/organized/changelogs/%40mastra%2Fcloudflare-d1.md +201 -1
  13. package/.docs/organized/changelogs/%40mastra%2Fcloudflare.md +201 -1
  14. package/.docs/organized/changelogs/%40mastra%2Fcodemod.md +26 -0
  15. package/.docs/organized/changelogs/%40mastra%2Fconvex.md +89 -0
  16. package/.docs/organized/changelogs/%40mastra%2Fcore.md +392 -192
  17. package/.docs/organized/changelogs/%40mastra%2Fcouchbase.md +201 -1
  18. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloud.md +201 -1
  19. package/.docs/organized/changelogs/%40mastra%2Fdeployer-cloudflare.md +201 -1
  20. package/.docs/organized/changelogs/%40mastra%2Fdeployer-netlify.md +201 -1
  21. package/.docs/organized/changelogs/%40mastra%2Fdeployer-vercel.md +201 -1
  22. package/.docs/organized/changelogs/%40mastra%2Fdeployer.md +200 -0
  23. package/.docs/organized/changelogs/%40mastra%2Fduckdb.md +42 -0
  24. package/.docs/organized/changelogs/%40mastra%2Fdynamodb.md +201 -1
  25. package/.docs/organized/changelogs/%40mastra%2Felasticsearch.md +61 -0
  26. package/.docs/organized/changelogs/%40mastra%2Fevals.md +201 -1
  27. package/.docs/organized/changelogs/%40mastra%2Flance.md +201 -1
  28. package/.docs/organized/changelogs/%40mastra%2Flibsql.md +201 -1
  29. package/.docs/organized/changelogs/%40mastra%2Floggers.md +201 -1
  30. package/.docs/organized/changelogs/%40mastra%2Fmcp-docs-server.md +201 -1
  31. package/.docs/organized/changelogs/%40mastra%2Fmcp-registry-registry.md +201 -1
  32. package/.docs/organized/changelogs/%40mastra%2Fmcp.md +201 -1
  33. package/.docs/organized/changelogs/%40mastra%2Fmemory.md +201 -1
  34. package/.docs/organized/changelogs/%40mastra%2Fmongodb.md +201 -1
  35. package/.docs/organized/changelogs/%40mastra%2Fmssql.md +201 -1
  36. package/.docs/organized/changelogs/%40mastra%2Fopensearch.md +201 -1
  37. package/.docs/organized/changelogs/%40mastra%2Fpg.md +201 -1
  38. package/.docs/organized/changelogs/%40mastra%2Fpinecone.md +201 -1
  39. package/.docs/organized/changelogs/%40mastra%2Fplayground-ui.md +263 -63
  40. package/.docs/organized/changelogs/%40mastra%2Fqdrant.md +201 -1
  41. package/.docs/organized/changelogs/%40mastra%2Frag.md +201 -1
  42. package/.docs/organized/changelogs/%40mastra%2Freact.md +154 -1
  43. package/.docs/organized/changelogs/%40mastra%2Fs3vectors.md +18 -0
  44. package/.docs/organized/changelogs/%40mastra%2Fschema-compat.md +42 -0
  45. package/.docs/organized/changelogs/%40mastra%2Fserver.md +274 -74
  46. package/.docs/organized/changelogs/%40mastra%2Fturbopuffer.md +201 -1
  47. package/.docs/organized/changelogs/%40mastra%2Fupstash.md +201 -1
  48. package/.docs/organized/changelogs/%40mastra%2Fvectorize.md +201 -1
  49. package/.docs/organized/changelogs/%40mastra%2Fvoice-azure.md +201 -1
  50. package/.docs/organized/changelogs/%40mastra%2Fvoice-cloudflare.md +201 -1
  51. package/.docs/organized/changelogs/%40mastra%2Fvoice-deepgram.md +201 -1
  52. package/.docs/organized/changelogs/%40mastra%2Fvoice-elevenlabs.md +201 -1
  53. package/.docs/organized/changelogs/%40mastra%2Fvoice-gladia.md +92 -1
  54. package/.docs/organized/changelogs/%40mastra%2Fvoice-google-gemini-live.md +67 -1
  55. package/.docs/organized/changelogs/%40mastra%2Fvoice-google.md +201 -1
  56. package/.docs/organized/changelogs/%40mastra%2Fvoice-murf.md +201 -1
  57. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai-realtime.md +201 -1
  58. package/.docs/organized/changelogs/%40mastra%2Fvoice-openai.md +201 -1
  59. package/.docs/organized/changelogs/%40mastra%2Fvoice-playai.md +201 -1
  60. package/.docs/organized/changelogs/%40mastra%2Fvoice-sarvam.md +201 -1
  61. package/.docs/organized/changelogs/%40mastra%2Fvoice-speechify.md +201 -1
  62. package/.docs/organized/changelogs/create-mastra.md +201 -1
  63. package/.docs/organized/changelogs/mastra.md +201 -1
  64. package/.docs/organized/code-examples/agui.md +1 -0
  65. package/.docs/organized/code-examples/ai-elements.md +2 -2
  66. package/.docs/organized/code-examples/ai-sdk-useChat.md +2 -2
  67. package/.docs/organized/code-examples/ai-sdk-v5.md +3 -2
  68. package/.docs/organized/code-examples/assistant-ui.md +2 -2
  69. package/.docs/organized/code-examples/bird-checker-with-express.md +1 -1
  70. package/.docs/organized/code-examples/bird-checker-with-nextjs-and-eval.md +2 -2
  71. package/.docs/organized/code-examples/bird-checker-with-nextjs.md +2 -2
  72. package/.docs/organized/code-examples/client-side-tools.md +1 -1
  73. package/.docs/organized/code-examples/crypto-chatbot.md +2 -2
  74. package/.docs/organized/code-examples/fireworks-r1.md +1 -1
  75. package/.docs/organized/code-examples/heads-up-game.md +1 -1
  76. package/.docs/organized/code-examples/mcp-configuration.md +0 -3
  77. package/.docs/organized/code-examples/mcp-server-adapters.md +720 -0
  78. package/.docs/organized/code-examples/memory-per-resource-example.md +1 -1
  79. package/.docs/organized/code-examples/memory-with-processors.md +1 -1
  80. package/.docs/organized/code-examples/openapi-spec-writer.md +1 -1
  81. package/.docs/organized/code-examples/processors-with-ai-sdk.md +14 -0
  82. package/.docs/organized/code-examples/quick-start.md +2 -2
  83. package/.docs/organized/code-examples/server-app-access.md +342 -0
  84. package/.docs/organized/code-examples/server-express-adapter.md +87 -0
  85. package/.docs/organized/code-examples/server-hono-adapter.md +85 -0
  86. package/.docs/organized/code-examples/stock-price-tool.md +1 -21
  87. package/.docs/organized/code-examples/workflow-ai-recruiter.md +1 -1
  88. package/.docs/organized/code-examples/workflow-with-inline-steps.md +1 -1
  89. package/.docs/organized/code-examples/workflow-with-memory.md +1 -1
  90. package/.docs/organized/code-examples/workflow-with-separate-steps.md +1 -1
  91. package/.docs/organized/code-examples/workflow-with-suspend-resume.md +1 -1
  92. package/.docs/raw/agents/adding-voice.mdx +56 -10
  93. package/.docs/raw/agents/agent-approval.mdx +189 -0
  94. package/.docs/raw/agents/agent-memory.mdx +1 -1
  95. package/.docs/raw/agents/guardrails.mdx +70 -30
  96. package/.docs/raw/agents/networks.mdx +3 -3
  97. package/.docs/raw/agents/overview.mdx +18 -167
  98. package/.docs/raw/agents/processors.mdx +430 -0
  99. package/.docs/raw/agents/structured-output.mdx +224 -0
  100. package/.docs/raw/agents/using-tools.mdx +14 -14
  101. package/.docs/raw/auth/auth0.mdx +1 -1
  102. package/.docs/raw/auth/clerk.mdx +1 -1
  103. package/.docs/raw/auth/firebase.mdx +1 -1
  104. package/.docs/raw/auth/index.mdx +1 -1
  105. package/.docs/raw/auth/jwt.mdx +1 -1
  106. package/.docs/raw/auth/supabase.mdx +1 -1
  107. package/.docs/raw/auth/workos.mdx +1 -1
  108. package/.docs/raw/community/contributing-templates.mdx +1 -1
  109. package/.docs/raw/community/discord.mdx +2 -2
  110. package/.docs/raw/community/licensing.mdx +1 -1
  111. package/.docs/raw/course/01-first-agent/05-running-playground.md +5 -5
  112. package/.docs/raw/course/01-first-agent/09-testing-your-agent.md +3 -3
  113. package/.docs/raw/course/01-first-agent/13-testing-your-tool.md +3 -3
  114. package/.docs/raw/course/01-first-agent/17-testing-memory.md +2 -2
  115. package/.docs/raw/course/04-workflows/07-using-playground.md +1 -1
  116. package/.docs/raw/deployment/{server-deployment.mdx → building-mastra.mdx} +4 -4
  117. package/.docs/raw/deployment/cloud-providers/amazon-ec2.mdx +2 -2
  118. package/.docs/raw/deployment/cloud-providers/aws-lambda.mdx +3 -3
  119. package/.docs/raw/deployment/cloud-providers/azure-app-services.mdx +2 -2
  120. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/cloudflare-deployer.mdx +1 -1
  121. package/.docs/raw/deployment/cloud-providers/digital-ocean.mdx +2 -2
  122. package/.docs/raw/deployment/cloud-providers/index.mdx +26 -29
  123. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/netlify-deployer.mdx +45 -14
  124. package/.docs/raw/deployment/{serverless-platforms → cloud-providers}/vercel-deployer.mdx +1 -1
  125. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/dashboard.mdx +3 -3
  126. package/.docs/raw/deployment/mastra-cloud/observability.mdx +53 -0
  127. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/overview.mdx +3 -3
  128. package/.docs/raw/{mastra-cloud → deployment/mastra-cloud}/setting-up.mdx +4 -4
  129. package/.docs/raw/deployment/monorepo.mdx +3 -3
  130. package/.docs/raw/deployment/overview.mdx +7 -7
  131. package/.docs/raw/deployment/web-framework.mdx +6 -6
  132. package/.docs/raw/evals/{off-the-shelf-scorers.mdx → built-in-scorers.mdx} +17 -15
  133. package/.docs/raw/evals/custom-scorers.mdx +4 -6
  134. package/.docs/raw/evals/overview.mdx +5 -6
  135. package/.docs/raw/evals/running-in-ci.mdx +2 -4
  136. package/.docs/raw/getting-started/{installation.mdx → manual-install.mdx} +6 -80
  137. package/.docs/raw/getting-started/mcp-docs-server.mdx +63 -6
  138. package/.docs/raw/getting-started/project-structure.mdx +2 -2
  139. package/.docs/raw/getting-started/start.mdx +72 -0
  140. package/.docs/raw/getting-started/studio.mdx +32 -7
  141. package/.docs/raw/guides/agent-frameworks/ai-sdk.mdx +147 -0
  142. package/.docs/raw/guides/build-your-ui/ai-sdk-ui.mdx +627 -0
  143. package/.docs/raw/{frameworks/agentic-uis → guides/build-your-ui}/assistant-ui.mdx +71 -19
  144. package/.docs/raw/guides/build-your-ui/copilotkit.mdx +206 -0
  145. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/astro.mdx +24 -26
  146. package/.docs/raw/{frameworks/servers → guides/getting-started}/express.mdx +4 -5
  147. package/.docs/raw/guides/{quickstarts/nextjs.mdx → getting-started/next-js.mdx} +26 -25
  148. package/.docs/raw/guides/getting-started/quickstart.mdx +97 -0
  149. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/sveltekit.mdx +24 -26
  150. package/.docs/raw/{frameworks/web-frameworks → guides/getting-started}/vite-react.mdx +7 -7
  151. package/.docs/raw/guides/guide/ai-recruiter.mdx +2 -3
  152. package/.docs/raw/guides/guide/chef-michel.mdx +2 -3
  153. package/.docs/raw/guides/guide/notes-mcp-server.mdx +2 -2
  154. package/.docs/raw/guides/guide/research-assistant.mdx +7 -8
  155. package/.docs/raw/guides/guide/stock-agent.mdx +4 -6
  156. package/.docs/raw/guides/guide/web-search.mdx +12 -10
  157. package/.docs/raw/guides/guide/whatsapp-chat-bot.mdx +421 -0
  158. package/.docs/raw/guides/index.mdx +3 -35
  159. package/.docs/raw/guides/migrations/agentnetwork.mdx +4 -4
  160. package/.docs/raw/guides/migrations/ai-sdk-v4-to-v5.mdx +119 -0
  161. package/.docs/raw/guides/migrations/upgrade-to-v1/agent.mdx +121 -1
  162. package/.docs/raw/guides/migrations/upgrade-to-v1/client.mdx +42 -2
  163. package/.docs/raw/guides/migrations/upgrade-to-v1/evals.mdx +31 -1
  164. package/.docs/raw/guides/migrations/upgrade-to-v1/mastra.mdx +27 -3
  165. package/.docs/raw/guides/migrations/upgrade-to-v1/mcp.mdx +1 -1
  166. package/.docs/raw/guides/migrations/upgrade-to-v1/memory.mdx +28 -0
  167. package/.docs/raw/guides/migrations/upgrade-to-v1/overview.mdx +25 -3
  168. package/.docs/raw/guides/migrations/upgrade-to-v1/storage.mdx +80 -0
  169. package/.docs/raw/guides/migrations/upgrade-to-v1/tools.mdx +68 -3
  170. package/.docs/raw/guides/migrations/upgrade-to-v1/vectors.mdx +25 -1
  171. package/.docs/raw/guides/migrations/upgrade-to-v1/workflows.mdx +174 -1
  172. package/.docs/raw/guides/migrations/vnext-to-standard-apis.mdx +2 -2
  173. package/.docs/raw/index.mdx +3 -3
  174. package/.docs/raw/mcp/overview.mdx +358 -0
  175. package/.docs/raw/mcp/publishing-mcp-server.mdx +139 -0
  176. package/.docs/raw/memory/conversation-history.mdx +1 -1
  177. package/.docs/raw/memory/memory-processors.mdx +265 -80
  178. package/.docs/raw/memory/overview.mdx +2 -2
  179. package/.docs/raw/memory/semantic-recall.mdx +9 -9
  180. package/.docs/raw/memory/storage/memory-with-libsql.mdx +3 -8
  181. package/.docs/raw/memory/storage/memory-with-mongodb.mdx +150 -0
  182. package/.docs/raw/memory/storage/memory-with-pg.mdx +3 -8
  183. package/.docs/raw/memory/storage/memory-with-upstash.mdx +3 -8
  184. package/.docs/raw/memory/threads-and-resources.mdx +4 -4
  185. package/.docs/raw/memory/working-memory.mdx +16 -8
  186. package/.docs/raw/{logging.mdx → observability/logging.mdx} +7 -7
  187. package/.docs/raw/observability/overview.mdx +3 -4
  188. package/.docs/raw/observability/tracing/bridges/otel.mdx +200 -0
  189. package/.docs/raw/observability/tracing/exporters/arize.mdx +37 -1
  190. package/.docs/raw/observability/tracing/exporters/braintrust.mdx +20 -1
  191. package/.docs/raw/observability/tracing/exporters/cloud.mdx +2 -2
  192. package/.docs/raw/observability/tracing/exporters/default.mdx +1 -1
  193. package/.docs/raw/observability/tracing/exporters/langfuse.mdx +84 -1
  194. package/.docs/raw/observability/tracing/exporters/langsmith.mdx +13 -1
  195. package/.docs/raw/observability/tracing/exporters/otel.mdx +123 -25
  196. package/.docs/raw/observability/tracing/exporters/posthog.mdx +127 -0
  197. package/.docs/raw/observability/tracing/overview.mdx +80 -9
  198. package/.docs/raw/observability/tracing/processors/sensitive-data-filter.mdx +1 -2
  199. package/.docs/raw/rag/chunking-and-embedding.mdx +16 -17
  200. package/.docs/raw/rag/overview.mdx +4 -3
  201. package/.docs/raw/rag/retrieval.mdx +44 -39
  202. package/.docs/raw/rag/vector-databases.mdx +94 -3
  203. package/.docs/raw/reference/agents/agent.mdx +19 -16
  204. package/.docs/raw/reference/agents/generate.mdx +67 -99
  205. package/.docs/raw/reference/agents/generateLegacy.mdx +3 -3
  206. package/.docs/raw/reference/agents/getDefaultGenerateOptions.mdx +1 -1
  207. package/.docs/raw/reference/agents/getDefaultOptions.mdx +1 -1
  208. package/.docs/raw/reference/agents/getDefaultStreamOptions.mdx +1 -1
  209. package/.docs/raw/reference/agents/getDescription.mdx +1 -1
  210. package/.docs/raw/reference/agents/getInstructions.mdx +1 -1
  211. package/.docs/raw/reference/agents/getLLM.mdx +2 -2
  212. package/.docs/raw/reference/agents/getMemory.mdx +1 -1
  213. package/.docs/raw/reference/agents/getModel.mdx +1 -1
  214. package/.docs/raw/reference/agents/getTools.mdx +69 -0
  215. package/.docs/raw/reference/agents/getVoice.mdx +1 -1
  216. package/.docs/raw/reference/agents/listAgents.mdx +1 -1
  217. package/.docs/raw/reference/agents/listScorers.mdx +1 -1
  218. package/.docs/raw/reference/agents/listTools.mdx +2 -2
  219. package/.docs/raw/reference/agents/listWorkflows.mdx +1 -1
  220. package/.docs/raw/reference/agents/network.mdx +33 -72
  221. package/.docs/raw/reference/ai-sdk/chat-route.mdx +127 -0
  222. package/.docs/raw/reference/ai-sdk/handle-chat-stream.mdx +117 -0
  223. package/.docs/raw/reference/ai-sdk/handle-network-stream.mdx +64 -0
  224. package/.docs/raw/reference/ai-sdk/handle-workflow-stream.mdx +116 -0
  225. package/.docs/raw/reference/ai-sdk/network-route.mdx +99 -0
  226. package/.docs/raw/reference/ai-sdk/to-ai-sdk-stream.mdx +289 -0
  227. package/.docs/raw/reference/ai-sdk/with-mastra.mdx +119 -0
  228. package/.docs/raw/reference/ai-sdk/workflow-route.mdx +110 -0
  229. package/.docs/raw/reference/auth/auth0.mdx +1 -1
  230. package/.docs/raw/reference/auth/clerk.mdx +1 -1
  231. package/.docs/raw/reference/auth/firebase.mdx +1 -1
  232. package/.docs/raw/reference/auth/jwt.mdx +1 -1
  233. package/.docs/raw/reference/auth/supabase.mdx +1 -1
  234. package/.docs/raw/reference/auth/workos.mdx +1 -1
  235. package/.docs/raw/reference/cli/create-mastra.mdx +1 -1
  236. package/.docs/raw/reference/cli/mastra.mdx +19 -6
  237. package/.docs/raw/reference/client-js/agents.mdx +252 -68
  238. package/.docs/raw/reference/client-js/error-handling.mdx +1 -1
  239. package/.docs/raw/reference/client-js/logs.mdx +1 -1
  240. package/.docs/raw/reference/client-js/mastra-client.mdx +4 -4
  241. package/.docs/raw/reference/client-js/memory.mdx +48 -2
  242. package/.docs/raw/reference/client-js/observability.mdx +1 -1
  243. package/.docs/raw/reference/client-js/telemetry.mdx +1 -1
  244. package/.docs/raw/reference/client-js/tools.mdx +1 -1
  245. package/.docs/raw/reference/client-js/vectors.mdx +1 -1
  246. package/.docs/raw/reference/client-js/workflows.mdx +93 -64
  247. package/.docs/raw/reference/core/addGateway.mdx +59 -0
  248. package/.docs/raw/reference/core/getAgent.mdx +1 -1
  249. package/.docs/raw/reference/core/getAgentById.mdx +1 -1
  250. package/.docs/raw/reference/core/getDeployer.mdx +1 -1
  251. package/.docs/raw/reference/core/getGateway.mdx +59 -0
  252. package/.docs/raw/reference/core/getGatewayById.mdx +62 -0
  253. package/.docs/raw/reference/core/getLogger.mdx +2 -2
  254. package/.docs/raw/reference/core/getMCPServer.mdx +2 -2
  255. package/.docs/raw/reference/core/getMCPServerById.mdx +2 -2
  256. package/.docs/raw/reference/core/getMemory.mdx +73 -0
  257. package/.docs/raw/reference/core/getScorer.mdx +1 -1
  258. package/.docs/raw/reference/core/getScorerById.mdx +1 -1
  259. package/.docs/raw/reference/core/getServer.mdx +3 -3
  260. package/.docs/raw/reference/core/getStorage.mdx +1 -1
  261. package/.docs/raw/reference/core/getStoredAgentById.mdx +183 -0
  262. package/.docs/raw/reference/core/getTelemetry.mdx +1 -1
  263. package/.docs/raw/reference/core/getVector.mdx +1 -1
  264. package/.docs/raw/reference/core/getWorkflow.mdx +1 -1
  265. package/.docs/raw/reference/core/listAgents.mdx +1 -1
  266. package/.docs/raw/reference/core/listGateways.mdx +53 -0
  267. package/.docs/raw/reference/core/listLogs.mdx +2 -2
  268. package/.docs/raw/reference/core/listLogsByRunId.mdx +2 -2
  269. package/.docs/raw/reference/core/listMCPServers.mdx +2 -2
  270. package/.docs/raw/reference/core/listMemory.mdx +70 -0
  271. package/.docs/raw/reference/core/listScorers.mdx +1 -1
  272. package/.docs/raw/reference/core/listStoredAgents.mdx +151 -0
  273. package/.docs/raw/reference/core/listVectors.mdx +1 -1
  274. package/.docs/raw/reference/core/listWorkflows.mdx +1 -1
  275. package/.docs/raw/reference/core/mastra-class.mdx +17 -1
  276. package/.docs/raw/reference/core/mastra-model-gateway.mdx +227 -0
  277. package/.docs/raw/reference/core/setLogger.mdx +2 -2
  278. package/.docs/raw/reference/core/setStorage.mdx +1 -1
  279. package/.docs/raw/reference/core/setTelemetry.mdx +2 -2
  280. package/.docs/raw/reference/deployer/cloudflare.mdx +1 -1
  281. package/.docs/raw/reference/deployer/deployer.mdx +1 -1
  282. package/.docs/raw/reference/deployer/netlify.mdx +2 -3
  283. package/.docs/raw/reference/deployer/vercel.mdx +1 -1
  284. package/.docs/raw/reference/evals/answer-relevancy.mdx +29 -99
  285. package/.docs/raw/reference/evals/answer-similarity.mdx +13 -259
  286. package/.docs/raw/reference/evals/bias.mdx +30 -88
  287. package/.docs/raw/reference/evals/completeness.mdx +32 -91
  288. package/.docs/raw/reference/evals/content-similarity.mdx +29 -89
  289. package/.docs/raw/reference/evals/context-precision.mdx +29 -131
  290. package/.docs/raw/reference/evals/context-relevance.mdx +12 -12
  291. package/.docs/raw/reference/evals/create-scorer.mdx +1 -1
  292. package/.docs/raw/reference/evals/faithfulness.mdx +29 -102
  293. package/.docs/raw/reference/evals/hallucination.mdx +29 -104
  294. package/.docs/raw/reference/evals/keyword-coverage.mdx +29 -108
  295. package/.docs/raw/reference/evals/mastra-scorer.mdx +1 -1
  296. package/.docs/raw/reference/evals/noise-sensitivity.mdx +12 -12
  297. package/.docs/raw/reference/evals/prompt-alignment.mdx +16 -16
  298. package/.docs/raw/reference/evals/run-evals.mdx +1 -1
  299. package/.docs/raw/reference/evals/scorer-utils.mdx +362 -0
  300. package/.docs/raw/reference/evals/textual-difference.mdx +28 -101
  301. package/.docs/raw/reference/evals/tone-consistency.mdx +26 -99
  302. package/.docs/raw/reference/evals/tool-call-accuracy.mdx +8 -8
  303. package/.docs/raw/reference/evals/toxicity.mdx +30 -93
  304. package/.docs/raw/reference/index.mdx +1 -0
  305. package/.docs/raw/reference/logging/pino-logger.mdx +2 -2
  306. package/.docs/raw/reference/memory/createThread.mdx +1 -1
  307. package/.docs/raw/reference/memory/deleteMessages.mdx +1 -1
  308. package/.docs/raw/reference/memory/getThreadById.mdx +1 -1
  309. package/.docs/raw/reference/memory/listThreadsByResourceId.mdx +1 -1
  310. package/.docs/raw/reference/memory/memory-class.mdx +6 -8
  311. package/.docs/raw/reference/memory/query.mdx +1 -1
  312. package/.docs/raw/reference/memory/recall.mdx +1 -1
  313. package/.docs/raw/reference/observability/tracing/bridges/otel.mdx +177 -0
  314. package/.docs/raw/reference/observability/tracing/configuration.mdx +1 -5
  315. package/.docs/raw/reference/observability/tracing/exporters/arize.mdx +30 -1
  316. package/.docs/raw/reference/observability/tracing/exporters/braintrust.mdx +1 -1
  317. package/.docs/raw/reference/observability/tracing/exporters/cloud-exporter.mdx +1 -1
  318. package/.docs/raw/reference/observability/tracing/exporters/console-exporter.mdx +1 -1
  319. package/.docs/raw/reference/observability/tracing/exporters/default-exporter.mdx +1 -1
  320. package/.docs/raw/reference/observability/tracing/exporters/langfuse.mdx +44 -1
  321. package/.docs/raw/reference/observability/tracing/exporters/langsmith.mdx +18 -2
  322. package/.docs/raw/reference/observability/tracing/exporters/otel.mdx +34 -44
  323. package/.docs/raw/reference/observability/tracing/exporters/posthog.mdx +132 -0
  324. package/.docs/raw/reference/observability/tracing/instances.mdx +1 -5
  325. package/.docs/raw/reference/observability/tracing/interfaces.mdx +30 -5
  326. package/.docs/raw/reference/observability/tracing/processors/sensitive-data-filter.mdx +1 -1
  327. package/.docs/raw/reference/observability/tracing/spans.mdx +1 -5
  328. package/.docs/raw/reference/processors/batch-parts-processor.mdx +2 -2
  329. package/.docs/raw/reference/processors/language-detector.mdx +11 -4
  330. package/.docs/raw/reference/processors/message-history-processor.mdx +131 -0
  331. package/.docs/raw/reference/processors/moderation-processor.mdx +13 -6
  332. package/.docs/raw/reference/processors/pii-detector.mdx +13 -6
  333. package/.docs/raw/reference/processors/processor-interface.mdx +803 -0
  334. package/.docs/raw/reference/processors/prompt-injection-detector.mdx +11 -4
  335. package/.docs/raw/reference/processors/semantic-recall-processor.mdx +197 -0
  336. package/.docs/raw/reference/processors/system-prompt-scrubber.mdx +4 -5
  337. package/.docs/raw/reference/processors/token-limiter-processor.mdx +3 -3
  338. package/.docs/raw/reference/processors/tool-call-filter.mdx +125 -0
  339. package/.docs/raw/reference/processors/unicode-normalizer.mdx +2 -2
  340. package/.docs/raw/reference/processors/working-memory-processor.mdx +221 -0
  341. package/.docs/raw/reference/rag/chunk.mdx +1 -1
  342. package/.docs/raw/reference/rag/database-config.mdx +1 -1
  343. package/.docs/raw/reference/rag/document.mdx +1 -1
  344. package/.docs/raw/reference/rag/embeddings.mdx +6 -6
  345. package/.docs/raw/reference/rag/extract-params.mdx +1 -1
  346. package/.docs/raw/reference/rag/graph-rag.mdx +1 -1
  347. package/.docs/raw/reference/rag/metadata-filters.mdx +1 -1
  348. package/.docs/raw/reference/rag/rerank.mdx +2 -3
  349. package/.docs/raw/reference/rag/rerankWithScorer.mdx +1 -2
  350. package/.docs/raw/reference/server/create-route.mdx +328 -0
  351. package/.docs/raw/reference/server/express-adapter.mdx +260 -0
  352. package/.docs/raw/reference/server/hono-adapter.mdx +242 -0
  353. package/.docs/raw/reference/server/mastra-server.mdx +345 -0
  354. package/.docs/raw/reference/server/routes.mdx +250 -0
  355. package/.docs/raw/reference/storage/cloudflare-d1.mdx +38 -1
  356. package/.docs/raw/reference/storage/cloudflare.mdx +1 -1
  357. package/.docs/raw/reference/storage/convex.mdx +164 -0
  358. package/.docs/raw/reference/storage/dynamodb.mdx +1 -1
  359. package/.docs/raw/reference/storage/lance.mdx +34 -1
  360. package/.docs/raw/reference/storage/libsql.mdx +38 -1
  361. package/.docs/raw/reference/storage/mongodb.mdx +40 -1
  362. package/.docs/raw/reference/storage/mssql.mdx +38 -1
  363. package/.docs/raw/reference/storage/postgresql.mdx +38 -1
  364. package/.docs/raw/reference/storage/upstash.mdx +1 -1
  365. package/.docs/raw/reference/streaming/ChunkType.mdx +25 -4
  366. package/.docs/raw/reference/streaming/agents/MastraModelOutput.mdx +1 -1
  367. package/.docs/raw/reference/streaming/agents/stream.mdx +84 -124
  368. package/.docs/raw/reference/streaming/agents/streamLegacy.mdx +1 -1
  369. package/.docs/raw/reference/streaming/workflows/observeStream.mdx +8 -10
  370. package/.docs/raw/reference/streaming/workflows/{resumeStreamVNext.mdx → resumeStream.mdx} +51 -11
  371. package/.docs/raw/reference/streaming/workflows/stream.mdx +84 -25
  372. package/.docs/raw/reference/streaming/workflows/timeTravelStream.mdx +170 -0
  373. package/.docs/raw/reference/templates/overview.mdx +2 -5
  374. package/.docs/raw/reference/tools/client.mdx +2 -3
  375. package/.docs/raw/reference/tools/create-tool.mdx +135 -4
  376. package/.docs/raw/reference/tools/document-chunker-tool.mdx +1 -1
  377. package/.docs/raw/reference/tools/graph-rag-tool.mdx +7 -7
  378. package/.docs/raw/reference/tools/mcp-client.mdx +131 -23
  379. package/.docs/raw/reference/tools/mcp-server.mdx +56 -8
  380. package/.docs/raw/reference/tools/vector-query-tool.mdx +16 -17
  381. package/.docs/raw/reference/vectors/astra.mdx +1 -1
  382. package/.docs/raw/reference/vectors/chroma.mdx +82 -2
  383. package/.docs/raw/reference/vectors/convex.mdx +429 -0
  384. package/.docs/raw/reference/vectors/couchbase.mdx +25 -18
  385. package/.docs/raw/reference/vectors/duckdb.mdx +462 -0
  386. package/.docs/raw/reference/vectors/elasticsearch.mdx +310 -0
  387. package/.docs/raw/reference/vectors/lance.mdx +39 -23
  388. package/.docs/raw/reference/vectors/libsql.mdx +36 -3
  389. package/.docs/raw/reference/vectors/mongodb.mdx +36 -3
  390. package/.docs/raw/reference/vectors/opensearch.mdx +38 -17
  391. package/.docs/raw/reference/vectors/pg.mdx +44 -37
  392. package/.docs/raw/reference/vectors/pinecone.mdx +70 -3
  393. package/.docs/raw/reference/vectors/qdrant.mdx +37 -2
  394. package/.docs/raw/reference/vectors/s3vectors.mdx +1 -1
  395. package/.docs/raw/reference/vectors/turbopuffer.mdx +75 -1
  396. package/.docs/raw/reference/vectors/upstash.mdx +1 -1
  397. package/.docs/raw/reference/vectors/vectorize.mdx +1 -1
  398. package/.docs/raw/reference/voice/azure.mdx +96 -81
  399. package/.docs/raw/reference/voice/cloudflare.mdx +1 -1
  400. package/.docs/raw/reference/voice/composite-voice.mdx +72 -29
  401. package/.docs/raw/reference/voice/deepgram.mdx +1 -1
  402. package/.docs/raw/reference/voice/elevenlabs.mdx +1 -1
  403. package/.docs/raw/reference/voice/google-gemini-live.mdx +1 -1
  404. package/.docs/raw/reference/voice/google.mdx +160 -21
  405. package/.docs/raw/reference/voice/mastra-voice.mdx +1 -1
  406. package/.docs/raw/reference/voice/murf.mdx +1 -1
  407. package/.docs/raw/reference/voice/openai-realtime.mdx +3 -3
  408. package/.docs/raw/reference/voice/openai.mdx +1 -1
  409. package/.docs/raw/reference/voice/playai.mdx +1 -1
  410. package/.docs/raw/reference/voice/sarvam.mdx +1 -1
  411. package/.docs/raw/reference/voice/speechify.mdx +1 -1
  412. package/.docs/raw/reference/voice/voice.addInstructions.mdx +3 -4
  413. package/.docs/raw/reference/voice/voice.addTools.mdx +2 -2
  414. package/.docs/raw/reference/voice/voice.answer.mdx +2 -2
  415. package/.docs/raw/reference/voice/voice.close.mdx +2 -2
  416. package/.docs/raw/reference/voice/voice.connect.mdx +2 -2
  417. package/.docs/raw/reference/voice/voice.events.mdx +1 -1
  418. package/.docs/raw/reference/voice/voice.getSpeakers.mdx +1 -1
  419. package/.docs/raw/reference/voice/voice.listen.mdx +87 -53
  420. package/.docs/raw/reference/voice/voice.off.mdx +2 -2
  421. package/.docs/raw/reference/voice/voice.on.mdx +2 -2
  422. package/.docs/raw/reference/voice/voice.send.mdx +2 -2
  423. package/.docs/raw/reference/voice/voice.speak.mdx +76 -41
  424. package/.docs/raw/reference/voice/voice.updateConfig.mdx +2 -2
  425. package/.docs/raw/reference/workflows/run-methods/cancel.mdx +1 -1
  426. package/.docs/raw/reference/workflows/run-methods/restart.mdx +142 -0
  427. package/.docs/raw/reference/workflows/run-methods/resume.mdx +45 -1
  428. package/.docs/raw/reference/workflows/run-methods/start.mdx +48 -4
  429. package/.docs/raw/reference/workflows/run-methods/timeTravel.mdx +310 -0
  430. package/.docs/raw/reference/workflows/run.mdx +28 -6
  431. package/.docs/raw/reference/workflows/step.mdx +65 -1
  432. package/.docs/raw/reference/workflows/workflow-methods/branch.mdx +1 -1
  433. package/.docs/raw/reference/workflows/workflow-methods/commit.mdx +1 -1
  434. package/.docs/raw/reference/workflows/workflow-methods/create-run.mdx +1 -1
  435. package/.docs/raw/reference/workflows/workflow-methods/dountil.mdx +1 -1
  436. package/.docs/raw/reference/workflows/workflow-methods/dowhile.mdx +1 -1
  437. package/.docs/raw/reference/workflows/workflow-methods/foreach.mdx +69 -4
  438. package/.docs/raw/reference/workflows/workflow-methods/map.mdx +1 -1
  439. package/.docs/raw/reference/workflows/workflow-methods/parallel.mdx +1 -1
  440. package/.docs/raw/reference/workflows/workflow-methods/sendEvent.mdx +1 -1
  441. package/.docs/raw/reference/workflows/workflow-methods/sleep.mdx +1 -1
  442. package/.docs/raw/reference/workflows/workflow-methods/sleepUntil.mdx +1 -1
  443. package/.docs/raw/reference/workflows/workflow-methods/then.mdx +1 -1
  444. package/.docs/raw/reference/workflows/workflow-methods/waitForEvent.mdx +1 -1
  445. package/.docs/raw/reference/workflows/workflow.mdx +44 -2
  446. package/.docs/raw/server-db/custom-adapters.mdx +386 -0
  447. package/.docs/raw/server-db/custom-api-routes.mdx +6 -6
  448. package/.docs/raw/server-db/mastra-client.mdx +3 -4
  449. package/.docs/raw/server-db/{production-server.mdx → mastra-server.mdx} +22 -12
  450. package/.docs/raw/server-db/middleware.mdx +31 -31
  451. package/.docs/raw/server-db/request-context.mdx +3 -4
  452. package/.docs/raw/server-db/server-adapters.mdx +312 -0
  453. package/.docs/raw/server-db/storage.mdx +12 -1
  454. package/.docs/raw/streaming/events.mdx +1 -1
  455. package/.docs/raw/streaming/overview.mdx +27 -16
  456. package/.docs/raw/streaming/tool-streaming.mdx +58 -19
  457. package/.docs/raw/streaming/workflow-streaming.mdx +6 -12
  458. package/.docs/raw/tools-mcp/advanced-usage.mdx +2 -3
  459. package/.docs/raw/tools-mcp/mcp-overview.mdx +4 -6
  460. package/.docs/raw/tools-mcp/overview.mdx +1 -1
  461. package/.docs/raw/voice/overview.mdx +88 -41
  462. package/.docs/raw/voice/speech-to-speech.mdx +5 -5
  463. package/.docs/raw/voice/speech-to-text.mdx +2 -3
  464. package/.docs/raw/voice/text-to-speech.mdx +2 -3
  465. package/.docs/raw/workflows/agents-and-tools.mdx +43 -5
  466. package/.docs/raw/workflows/control-flow.mdx +534 -3
  467. package/.docs/raw/workflows/error-handling.mdx +5 -4
  468. package/.docs/raw/workflows/human-in-the-loop.mdx +160 -213
  469. package/.docs/raw/workflows/inngest-workflow.mdx +1 -1
  470. package/.docs/raw/workflows/input-data-mapping.mdx +1 -1
  471. package/.docs/raw/workflows/overview.mdx +67 -47
  472. package/.docs/raw/workflows/snapshots.mdx +5 -3
  473. package/.docs/raw/workflows/suspend-and-resume.mdx +121 -204
  474. package/.docs/raw/workflows/time-travel.mdx +313 -0
  475. package/.docs/raw/workflows/workflow-state.mdx +190 -0
  476. package/CHANGELOG.md +88 -0
  477. package/dist/{chunk-5NJC7NRO.js → chunk-4CM2BQNP.js} +24 -4
  478. package/dist/prepare-docs/package-changes.d.ts.map +1 -1
  479. package/dist/prepare-docs/prepare.js +1 -1
  480. package/dist/stdio.js +17 -19
  481. package/package.json +10 -14
  482. package/.docs/raw/deployment/serverless-platforms/index.mdx +0 -58
  483. package/.docs/raw/frameworks/agentic-uis/ai-sdk.mdx +0 -688
  484. package/.docs/raw/frameworks/agentic-uis/cedar-os.mdx +0 -123
  485. package/.docs/raw/frameworks/agentic-uis/copilotkit.mdx +0 -382
  486. package/.docs/raw/frameworks/agentic-uis/openrouter.mdx +0 -179
  487. package/.docs/raw/frameworks/web-frameworks/next-js.mdx +0 -379
  488. package/.docs/raw/getting-started/templates.mdx +0 -73
  489. package/.docs/raw/mastra-cloud/observability.mdx +0 -51
  490. package/.docs/raw/reference/streaming/workflows/observeStreamVNext.mdx +0 -47
  491. package/.docs/raw/reference/streaming/workflows/streamVNext.mdx +0 -153
@@ -1,688 +0,0 @@
1
- ---
2
- title: "Using Vercel AI SDK | Frameworks | Mastra Docs"
3
- description: "Learn how Mastra leverages the Vercel AI SDK library and how you can leverage it further with Mastra"
4
- ---
5
-
6
- import Tabs from "@theme/Tabs";
7
- import TabItem from "@theme/TabItem";
8
-
9
- # Using Vercel AI SDK
10
-
11
- Mastra integrates with [Vercel's AI SDK](https://sdk.vercel.ai) to support model routing, React Hooks, and data streaming methods.
12
-
13
- ## Model Routing
14
-
15
- When creating agents in Mastra, you can specify any AI SDK-supported model.
16
-
17
- ```typescript {6} title="agents/weather-agent.ts" copy
18
- import { Agent } from "@mastra/core/agent";
19
-
20
- export const weatherAgent = new Agent({
21
- id: "weather-agent",
22
- name: "Weather Agent",
23
- instructions: "Instructions for the agent...",
24
- model: "openai/gpt-4-turbo",
25
- });
26
- ```
27
-
28
- > See [Using AI SDK with Mastra](/models/v1#use-ai-sdk-with-mastra) for more information.
29
-
30
- ## Streaming
31
-
32
- The recommended way of using Mastra and AI SDK together is by installing the `@mastra/ai-sdk` package. `@mastra/ai-sdk` provides custom API routes and utilities for streaming Mastra agents in AI SDK-compatible formats. Including chat, workflow, and network route handlers, along with utilities and exported types for UI integrations.
33
-
34
- <Tabs>
35
- <TabItem value="npm" label="npm">
36
- ```bash copy
37
- npm install @mastra/ai-sdk@beta
38
- ```
39
- </TabItem>
40
- <TabItem value="pnpm" label="pnpm">
41
- ```bash copy
42
- pnpm add @mastra/ai-sdk@beta
43
- ```
44
- </TabItem>
45
- <TabItem value="yarn" label="yarn">
46
- ```bash copy
47
- yarn add @mastra/ai-sdk@beta
48
- ```
49
- </TabItem>
50
- <TabItem value="bun" label="bun">
51
- ```bash copy
52
- bun add @mastra/ai-sdk@beta
53
- ```
54
- </TabItem>
55
- </Tabs>
56
-
57
- ### `chatRoute()`
58
-
59
- When setting up a [custom API route](/docs/v1/server-db/custom-api-routes), use the `chatRoute()` utility to create a route handler that automatically formats the agent stream into an AI SDK-compatible format.
60
-
61
- ```typescript title="src/mastra/index.ts" copy
62
- import { Mastra } from "@mastra/core";
63
- import { chatRoute } from "@mastra/ai-sdk";
64
-
65
- export const mastra = new Mastra({
66
- server: {
67
- apiRoutes: [
68
- chatRoute({
69
- path: "/chat",
70
- agent: "weatherAgent",
71
- }),
72
- ],
73
- },
74
- });
75
- ```
76
-
77
- Once you have your `/chat` API route set up, you can call the `useChat()` hook in your application.
78
-
79
- ```typescript
80
- const { error, status, sendMessage, messages, regenerate, stop } = useChat({
81
- transport: new DefaultChatTransport({
82
- api: "http://localhost:4111/chat",
83
- }),
84
- });
85
- ```
86
-
87
- Pass extra agent stream execution options:
88
-
89
- ```typescript
90
- const { error, status, sendMessage, messages, regenerate, stop } = useChat({
91
- transport: new DefaultChatTransport({
92
- api: "http://localhost:4111/chat",
93
- prepareSendMessagesRequest({ messages }) {
94
- return {
95
- body: {
96
- messages,
97
- // Pass memory config
98
- memory: {
99
- thread: "user-1",
100
- resource: "user-1",
101
- },
102
- },
103
- };
104
- },
105
- }),
106
- });
107
- ```
108
-
109
- ### `workflowRoute()`
110
-
111
- Use the `workflowRoute()` utility to create a route handler that automatically formats the workflow stream into an AI SDK-compatible format.
112
-
113
- ```typescript title="src/mastra/index.ts" copy
114
- import { Mastra } from "@mastra/core";
115
- import { workflowRoute } from "@mastra/ai-sdk";
116
-
117
- export const mastra = new Mastra({
118
- server: {
119
- apiRoutes: [
120
- workflowRoute({
121
- path: "/workflow",
122
- agent: "weatherAgent",
123
- }),
124
- ],
125
- },
126
- });
127
- ```
128
-
129
- Once you have your `/workflow` API route set up, you can call the `useChat()` hook in your application.
130
-
131
- ```typescript
132
- const { error, status, sendMessage, messages, regenerate, stop } = useChat({
133
- transport: new DefaultChatTransport({
134
- api: "http://localhost:4111/workflow",
135
- prepareSendMessagesRequest({ messages }) {
136
- return {
137
- body: {
138
- inputData: {
139
- city: messages[messages.length - 1].parts[0].text,
140
- },
141
- },
142
- };
143
- },
144
- }),
145
- });
146
- ```
147
-
148
- ### `networkRoute()`
149
-
150
- Use the `networkRoute()` utility to create a route handler that automatically formats the agent network stream into an AI SDK-compatible format.
151
-
152
- ```typescript title="src/mastra/index.ts" copy
153
- import { Mastra } from "@mastra/core";
154
- import { networkRoute } from "@mastra/ai-sdk";
155
-
156
- export const mastra = new Mastra({
157
- server: {
158
- apiRoutes: [
159
- networkRoute({
160
- path: "/network",
161
- agent: "weatherAgent",
162
- }),
163
- ],
164
- },
165
- });
166
- ```
167
-
168
- Once you have your `/network` API route set up, you can call the `useChat()` hook in your application.
169
-
170
- ```typescript
171
- const { error, status, sendMessage, messages, regenerate, stop } = useChat({
172
- transport: new DefaultChatTransport({
173
- api: "http://localhost:4111/network",
174
- }),
175
- });
176
- ```
177
-
178
- ### Custom UI
179
-
180
- The `@mastra/ai-sdk` package transforms and emits Mastra streams (e.g workflow, network streams) into AI SDK-compatible [uiMessages DataParts](https://ai-sdk.dev/docs/reference/ai-sdk-core/ui-message#datauipart) format.
181
-
182
- - **Top-level parts**: These are streamed via direct workflow and network stream transformations (e.g in `workflowRoute()` and `networkRoute()`)
183
- - `data-workflow`: Aggregates a workflow run with step inputs/outputs and final usage.
184
- - `data-network`: Aggregates a routing/network run with ordered steps (agent/workflow/tool executions) and outputs.
185
-
186
- - **Nested parts**: These are streamed via nested and merged streams from within a tool's `execute()` method.
187
- - `data-tool-workflow`: Nested workflow emitted from within a tool stream.
188
- - `data-tool-network`: Nested network emitted from within an tool stream.
189
- - `data-tool-agent`: Nested agent emitted from within an tool stream.
190
-
191
- Here's an example: For a [nested agent stream within a tool](/docs/v1/streaming/tool-streaming#tool-using-an-agent), `data-tool-agent` UI message parts will be emitted and can be leveraged on the client as documented below:
192
-
193
- ```typescript title="app/page.tsx" copy
194
- "use client";
195
-
196
- import { useChat } from "@ai-sdk/react";
197
- import { AgentTool } from '../ui/agent-tool';
198
- import { DefaultChatTransport } from 'ai';
199
- import type { AgentDataPart } from "@mastra/ai-sdk";
200
-
201
- export default function Page() {
202
- const { messages } = useChat({
203
- transport: new DefaultChatTransport({
204
- api: 'http://localhost:4111/chat',
205
- }),
206
- });
207
-
208
- return (
209
- <div>
210
- {messages.map((message) => (
211
- <div key={message.id}>
212
- {message.parts.map((part, i) => {
213
- switch (part.type) {
214
- case 'data-tool-agent':
215
- return (
216
- <AgentTool {...part.data as AgentDataPart} key={`${message.id}-${i}`} />
217
- );
218
- default:
219
- return null;
220
- }
221
- })}
222
- </div>
223
- ))}
224
- </div>
225
- );
226
- }
227
- ```
228
-
229
- ```typescript title="ui/agent-tool.ts" copy
230
- import { Tool, ToolContent, ToolHeader, ToolOutput } from "../ai-elements/tool";
231
- import type { AgentDataPart } from "@mastra/ai-sdk";
232
-
233
- export const AgentTool = ({ id, text, status }: AgentDataPart) => {
234
- return (
235
- <Tool>
236
- <ToolHeader
237
- type={`${id}`}
238
- state={status === 'finished' ? 'output-available' : 'input-available'}
239
- />
240
- <ToolContent>
241
- <ToolOutput output={text} />
242
- </ToolContent>
243
- </Tool>
244
- );
245
- };
246
- ```
247
-
248
- ### Custom Tool streaming
249
-
250
- To stream custom data parts from within your tool execution function, use the
251
- `writer.custom()` method.
252
-
253
- ```typescript {5,8,15} showLineNumbers copy
254
- import { createTool } from "@mastra/core/tools";
255
-
256
- export const testTool = createTool({
257
- // ...
258
- execute: async ({ context, writer }) => {
259
- const { value } = context;
260
-
261
- await writer?.custom({
262
- type: "data-tool-progress",
263
- status: "pending"
264
- });
265
-
266
- const response = await fetch(...);
267
-
268
- await writer?.custom({
269
- type: "data-tool-progress",
270
- status: "success"
271
- });
272
-
273
- return {
274
- value: ""
275
- };
276
- }
277
- });
278
- ```
279
-
280
- For more information about tool streaming see [Tool streaming documentation](/docs/v1/streaming/tool-streaming)
281
-
282
- ### Stream Transformations
283
-
284
- To manually transform Mastra's streams to AI SDK-compatible format, use the `toAISdkFormat()` utility.
285
-
286
- ```typescript title="app/api/chat/route.ts" copy {3,13}
287
- import { mastra } from "../../mastra";
288
- import { createUIMessageStream, createUIMessageStreamResponse } from "ai";
289
- import { toAISdkFormat } from "@mastra/ai-sdk";
290
-
291
- export async function POST(req: Request) {
292
- const { messages } = await req.json();
293
- const myAgent = mastra.getAgent("weatherAgent");
294
- const stream = await myAgent.stream(messages);
295
-
296
- // Transform stream into AI SDK format and create UI messages stream
297
- const uiMessageStream = createUIMessageStream({
298
- execute: async ({ writer }) => {
299
- for await (const part of toAISdkFormat(stream, { from: "agent" })!) {
300
- writer.write(part);
301
- }
302
- },
303
- });
304
-
305
- // Create a Response that streams the UI message stream to the client
306
- return createUIMessageStreamResponse({
307
- stream: uiMessageStream,
308
- });
309
- }
310
- ```
311
-
312
- ### Client Side Stream Transformations
313
-
314
- If you have a client-side `response` from `agent.stream(...)` and want AI SDK-formatted parts without custom SSE parsing, wrap `response.processDataStream` into a `ReadableStream<ChunkType>` and pipe it through `toAISdkFormat`:
315
-
316
- ```typescript title="client-stream-to-ai-sdk.ts" copy
317
- import { createUIMessageStream } from "ai";
318
- import { toAISdkFormat } from "@mastra/ai-sdk";
319
- import type { ChunkType, MastraModelOutput } from "@mastra/core/stream";
320
-
321
- // Client SDK agent stream
322
- const response = await agent.stream({
323
- messages: "What is the weather in Tokyo",
324
- });
325
-
326
- const chunkStream: ReadableStream<ChunkType> = new ReadableStream<ChunkType>({
327
- start(controller) {
328
- response
329
- .processDataStream({
330
- onChunk: async (chunk) => {
331
- controller.enqueue(chunk as ChunkType);
332
- },
333
- })
334
- .finally(() => controller.close());
335
- },
336
- });
337
-
338
- const uiMessageStream = createUIMessageStream({
339
- execute: async ({ writer }) => {
340
- for await (const part of toAISdkFormat(
341
- chunkStream as unknown as MastraModelOutput,
342
- { from: "agent" },
343
- )) {
344
- writer.write(part);
345
- }
346
- },
347
- });
348
-
349
- for await (const part of uiMessageStream) {
350
- console.log(part);
351
- }
352
- ```
353
-
354
- ## UI Hooks
355
-
356
- Mastra supports AI SDK UI hooks for connecting frontend components directly to agents using HTTP streams.
357
-
358
- Install the required AI SDK React package:
359
-
360
- <Tabs>
361
- <TabItem value="npm" label="npm">
362
- ```bash copy
363
- npm install @ai-sdk/react
364
- ```
365
- </TabItem>
366
- <TabItem value="pnpm" label="pnpm">
367
- ```bash copy
368
- pnpm add @ai-sdk/react
369
- ```
370
- </TabItem>
371
- <TabItem value="yarn" label="yarn">
372
- ```bash copy
373
- yarn add @ai-sdk/react
374
- ```
375
- </TabItem>
376
- <TabItem value="bun" label="bun">
377
- ```bash copy
378
- bun add @ai-sdk/react
379
- ```
380
- </TabItem>
381
- </Tabs>
382
-
383
- ### Using `useChat()`
384
-
385
- The `useChat()` hook handles real-time chat interactions between your frontend and a Mastra agent, enabling you to send prompts and receive streaming responses over HTTP.
386
-
387
- ```typescript {8-12} title="app/test/chat.tsx" copy
388
- "use client";
389
-
390
- import { useChat } from "@ai-sdk/react";
391
- import { useState } from "react";
392
- import { DefaultChatTransport } from 'ai';
393
-
394
- export function Chat() {
395
- const [inputValue, setInputValue] = useState('')
396
- const { messages, sendMessage} = useChat({
397
- transport: new DefaultChatTransport({
398
- api: 'http://localhost:4111/chat',
399
- }),
400
- });
401
-
402
- const handleFormSubmit = (e: React.FormEvent) => {
403
- e.preventDefault();
404
- sendMessage({ text: inputValue });
405
- };
406
-
407
- return (
408
- <div>
409
- <pre>{JSON.stringify(messages, null, 2)}</pre>
410
- <form onSubmit={handleFormSubmit}>
411
- <input value={inputValue} onChange={e=>setInputValue(e.target.value)} placeholder="Name of city" />
412
- </form>
413
- </div>
414
- );
415
- }
416
- ```
417
-
418
- Requests sent using the `useChat()` hook are handled by a standard server route. This example shows how to define a POST route using a Next.js Route Handler.
419
-
420
- ```typescript title="app/api/chat/route.ts" copy
421
- import { mastra } from "../../mastra";
422
-
423
- export async function POST(req: Request) {
424
- const { messages } = await req.json();
425
- const myAgent = mastra.getAgent("weatherAgent");
426
- const stream = await myAgent.stream(messages, { format: "aisdk" });
427
-
428
- return stream.toUIMessageStreamResponse();
429
- }
430
- ```
431
-
432
- > When using `useChat()` with agent memory, refer to the [Agent Memory section](/docs/v1/agents/agent-memory) for key implementation details.
433
-
434
- ### Using `useCompletion()`
435
-
436
- The `useCompletion()` hook handles single-turn completions between your frontend and a Mastra agent, allowing you to send a prompt and receive a streamed response over HTTP.
437
-
438
- ```typescript {6-8} title="app/test/completion.tsx" copy
439
- "use client";
440
-
441
- import { useCompletion } from "@ai-sdk/react";
442
-
443
- export function Completion() {
444
- const { completion, input, handleInputChange, handleSubmit } = useCompletion({
445
- api: "api/completion"
446
- });
447
-
448
- return (
449
- <div>
450
- <form onSubmit={handleSubmit}>
451
- <input value={input} onChange={handleInputChange} placeholder="Name of city" />
452
- </form>
453
- <p>Completion result: {completion}</p>
454
- </div>
455
- );
456
- }
457
- ```
458
-
459
- Requests sent using the `useCompletion()` hook are handled by a standard server route. This example shows how to define a POST route using a Next.js Route Handler.
460
-
461
- ```typescript title="app/api/completion/route.ts" copy
462
- import { mastra } from "../../../mastra";
463
-
464
- export async function POST(req: Request) {
465
- const { prompt } = await req.json();
466
- const myAgent = mastra.getAgent("weatherAgent");
467
- const stream = await myAgent.stream([{ role: "user", content: prompt }], {
468
- format: "aisdk",
469
- });
470
-
471
- return stream.toUIMessageStreamResponse();
472
- }
473
- ```
474
-
475
- ### Passing additional data
476
-
477
- `sendMessage()` allows you to pass additional data from the frontend to Mastra. This data can then be used on the server as `RequestContext`.
478
-
479
- ```typescript {16-26} title="app/test/chat-extra.tsx" copy
480
- "use client";
481
-
482
- import { useChat } from "@ai-sdk/react";
483
- import { useState } from "react";
484
- import { DefaultChatTransport } from 'ai';
485
-
486
- export function ChatExtra() {
487
- const [inputValue, setInputValue] = useState('')
488
- const { messages, sendMessage } = useChat({
489
- transport: new DefaultChatTransport({
490
- api: 'http://localhost:4111/chat',
491
- }),
492
- });
493
-
494
- const handleFormSubmit = (e: React.FormEvent) => {
495
- e.preventDefault();
496
- sendMessage({ text: inputValue }, {
497
- body: {
498
- data: {
499
- userId: "user123",
500
- preferences: {
501
- language: "en",
502
- temperature: "celsius"
503
- }
504
- }
505
- }
506
- });
507
- };
508
-
509
- return (
510
- <div>
511
- <pre>{JSON.stringify(messages, null, 2)}</pre>
512
- <form onSubmit={handleFormSubmit}>
513
- <input value={inputValue} onChange={e=>setInputValue(e.target.value)} placeholder="Name of city" />
514
- </form>
515
- </div>
516
- );
517
- }
518
- ```
519
-
520
- ```typescript {8,12} title="app/api/chat-extra/route.ts" copy
521
- import { mastra } from "../../../mastra";
522
- import { RequestContext } from "@mastra/core/request-context";
523
-
524
- export async function POST(req: Request) {
525
- const { messages, data } = await req.json();
526
- const myAgent = mastra.getAgent("weatherAgent");
527
-
528
- const requestContext = new RequestContext();
529
-
530
- if (data) {
531
- for (const [key, value] of Object.entries(data)) {
532
- requestContext.set(key, value);
533
- }
534
- }
535
-
536
- const stream = await myAgent.stream(messages, {
537
- requestContext,
538
- format: "aisdk",
539
- });
540
- return stream.toUIMessageStreamResponse();
541
- }
542
- ```
543
-
544
- ### Handling `requestContext` with `server.middleware`
545
-
546
- You can also populate the `RequestContext` by reading custom data in a server middleware:
547
-
548
- ```typescript {8,17} title="mastra/index.ts" copy
549
- import { Mastra } from "@mastra/core";
550
-
551
- export const mastra = new Mastra({
552
- agents: { weatherAgent },
553
- server: {
554
- middleware: [
555
- async (c, next) => {
556
- const requestContext = c.get("requestContext");
557
-
558
- if (c.req.method === "POST") {
559
- try {
560
- const clonedReq = c.req.raw.clone();
561
- const body = await clonedReq.json();
562
-
563
- if (body?.data) {
564
- for (const [key, value] of Object.entries(body.data)) {
565
- requestContext.set(key, value);
566
- }
567
- }
568
- } catch {}
569
- }
570
- await next();
571
- },
572
- ],
573
- },
574
- });
575
- ```
576
-
577
- > You can then access this data in your tools via the `requestContext` parameter. See the [Request Context documentation](/docs/v1/server-db/request-context) for more details.
578
-
579
- ## Migrating from AI SDK v4 to v5
580
-
581
- Follow the official [AI SDK v5 Migration Guide](https://v5.ai-sdk.dev/docs/migration-guides/migration-guide-5-0) for all AI SDK core breaking changes, package updates, and API changes.
582
-
583
- This guide covers only the Mastra-specific aspects of the migration.
584
-
585
- - **Data compatibility**: New data stored in v5 format will no longer work if you downgrade from v5 to v4
586
- - **Backup recommendation**: Keep DB backups from before you upgrade to v5
587
-
588
- ### Memory and Storage
589
-
590
- Mastra automatically handles AI SDK v4 data using its internal `MessageList` class, which manages format conversion—including v4 to v5. No database migrations are required; your existing messages are translated on the fly and continue working after you upgrade.
591
-
592
- ### Message Format Conversion
593
-
594
- For cases where you need to manually convert messages between AI SDK and Mastra formats, use the `convertMessages()` utility:
595
-
596
- ```typescript
597
- import { convertMessages } from "@mastra/core/agent";
598
-
599
- // Convert AI SDK v4 messages to v5
600
- const aiv5Messages = convertMessages(aiv4Messages).to("AIV5.UI");
601
-
602
- // Convert Mastra messages to AI SDK v5
603
- const aiv5Messages = convertMessages(mastraMessages).to("AIV5.Core");
604
-
605
- // Supported output formats:
606
- // 'Mastra.V2', 'AIV4.UI', 'AIV5.UI', 'AIV5.Core', 'AIV5.Model'
607
- ```
608
-
609
- This utility is helpful when you want to fetch messages directly from your storage DB and convert them for use in AI SDK.
610
-
611
- ### Type Inference for Tools
612
-
613
- When using tools with TypeScript in AI SDK v5, Mastra provides type inference helpers to ensure type safety for your tool inputs and outputs.
614
-
615
- #### `InferUITool`
616
-
617
- The `InferUITool` type helper infers the input and output types of a single Mastra tool:
618
-
619
- ```typescript title="app/types.ts" copy
620
- import { InferUITool, createTool } from "@mastra/core/tools";
621
- import { z } from "zod";
622
-
623
- const weatherTool = createTool({
624
- id: "get-weather",
625
- description: "Get the current weather",
626
- inputSchema: z.object({
627
- location: z.string().describe("The city and state"),
628
- }),
629
- outputSchema: z.object({
630
- temperature: z.number(),
631
- conditions: z.string(),
632
- }),
633
- execute: async (inputData) => {
634
- return {
635
- temperature: 72,
636
- conditions: "sunny",
637
- };
638
- },
639
- });
640
-
641
- // Infer the types from the tool
642
- type WeatherUITool = InferUITool<typeof weatherTool>;
643
- // This creates:
644
- // {
645
- // input: { location: string };
646
- // output: { temperature: number; conditions: string };
647
- // }
648
- ```
649
-
650
- #### `InferUITools`
651
-
652
- The `InferUITools` type helper infers the input and output types of multiple tools:
653
-
654
- ```typescript title="app/mastra/tools.ts" copy
655
- import { InferUITools, createTool } from "@mastra/core/tools";
656
- import { z } from "zod";
657
-
658
- // Using weatherTool from the previous example
659
- const tools = {
660
- weather: weatherTool,
661
- calculator: createTool({
662
- id: "calculator",
663
- description: "Perform basic arithmetic",
664
- inputSchema: z.object({
665
- operation: z.enum(["add", "subtract", "multiply", "divide"]),
666
- a: z.number(),
667
- b: z.number(),
668
- }),
669
- outputSchema: z.object({
670
- result: z.number(),
671
- }),
672
- execute: async (inputData) => {
673
- // implementation...
674
- return { result: 0 };
675
- },
676
- }),
677
- };
678
-
679
- // Infer types from the tool set
680
- export type MyUITools = InferUITools<typeof tools>;
681
- // This creates:
682
- // {
683
- // weather: { input: { location: string }; output: { temperature: number; conditions: string } };
684
- // calculator: { input: { operation: "add" | "subtract" | "multiply" | "divide"; a: number; b: number }; output: { result: number } };
685
- // }
686
- ```
687
-
688
- These type helpers provide full TypeScript support when using Mastra tools with AI SDK v5 UI components, ensuring type safety across your application.