@mastra/core 1.9.0 → 1.10.0

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 (438) hide show
  1. package/CHANGELOG.md +202 -0
  2. package/dist/agent/agent.d.ts +22 -3
  3. package/dist/agent/agent.d.ts.map +1 -1
  4. package/dist/agent/index.cjs +13 -13
  5. package/dist/agent/index.js +2 -2
  6. package/dist/agent/message-list/index.cjs +18 -18
  7. package/dist/agent/message-list/index.js +1 -1
  8. package/dist/agent/message-list/message-list.d.ts.map +1 -1
  9. package/dist/{chunk-IOY7Y5GV.js → chunk-3VVNJPTO.js} +602 -187
  10. package/dist/chunk-3VVNJPTO.js.map +1 -0
  11. package/dist/{chunk-VDKWYUGC.cjs → chunk-5WBEMKE2.cjs} +7 -3
  12. package/dist/chunk-5WBEMKE2.cjs.map +1 -0
  13. package/dist/{chunk-H5S4PS44.cjs → chunk-76Q75VI4.cjs} +602 -187
  14. package/dist/chunk-76Q75VI4.cjs.map +1 -0
  15. package/dist/{chunk-ZBESCKPX.cjs → chunk-7AHCLTZZ.cjs} +1572 -36
  16. package/dist/chunk-7AHCLTZZ.cjs.map +1 -0
  17. package/dist/{chunk-SEKQJ447.js → chunk-ACAILOJE.js} +166 -68
  18. package/dist/chunk-ACAILOJE.js.map +1 -0
  19. package/dist/{chunk-YIJZBU54.cjs → chunk-BCSVBOAN.cjs} +240 -463
  20. package/dist/chunk-BCSVBOAN.cjs.map +1 -0
  21. package/dist/{chunk-ZVWVQ6MG.js → chunk-CY4ZWL2X.js} +8 -3
  22. package/dist/chunk-CY4ZWL2X.js.map +1 -0
  23. package/dist/{chunk-ET7GXCHS.js → chunk-DIKRJVK6.js} +5 -5
  24. package/dist/{chunk-ET7GXCHS.js.map → chunk-DIKRJVK6.js.map} +1 -1
  25. package/dist/{chunk-P6ZX7OKT.cjs → chunk-E6I5LBDM.cjs} +7 -7
  26. package/dist/{chunk-P6ZX7OKT.cjs.map → chunk-E6I5LBDM.cjs.map} +1 -1
  27. package/dist/{chunk-BFV3GSGS.js → chunk-FT5Q6XTK.js} +1546 -22
  28. package/dist/chunk-FT5Q6XTK.js.map +1 -0
  29. package/dist/{chunk-K54LFB4P.js → chunk-FXOWXS4O.js} +3 -3
  30. package/dist/{chunk-K54LFB4P.js.map → chunk-FXOWXS4O.js.map} +1 -1
  31. package/dist/{chunk-QNXY3J6B.cjs → chunk-GCRPNAAR.cjs} +22 -19
  32. package/dist/chunk-GCRPNAAR.cjs.map +1 -0
  33. package/dist/{chunk-5M3RMO7U.js → chunk-GTA5BKXZ.js} +8 -8
  34. package/dist/{chunk-5M3RMO7U.js.map → chunk-GTA5BKXZ.js.map} +1 -1
  35. package/dist/{chunk-G5R2755Q.cjs → chunk-HAIQ57YB.cjs} +53 -20
  36. package/dist/chunk-HAIQ57YB.cjs.map +1 -0
  37. package/dist/{chunk-3ZBLD2Y4.cjs → chunk-HH76UOJL.cjs} +2 -2
  38. package/dist/{chunk-3ZBLD2Y4.cjs.map → chunk-HH76UOJL.cjs.map} +1 -1
  39. package/dist/{chunk-HAGCXIBX.cjs → chunk-HNYQITSV.cjs} +9 -9
  40. package/dist/{chunk-HAGCXIBX.cjs.map → chunk-HNYQITSV.cjs.map} +1 -1
  41. package/dist/{chunk-GJTLWOKJ.js → chunk-HQA3IBLZ.js} +51 -18
  42. package/dist/chunk-HQA3IBLZ.js.map +1 -0
  43. package/dist/{chunk-4BXXAZ75.js → chunk-HQTHWVAK.js} +15 -7
  44. package/dist/chunk-HQTHWVAK.js.map +1 -0
  45. package/dist/{chunk-CCLV5CAA.js → chunk-JGOH7RWL.js} +7 -3
  46. package/dist/chunk-JGOH7RWL.js.map +1 -0
  47. package/dist/{chunk-Y6TGIUGL.js → chunk-LSF5WJ6G.js} +2 -2
  48. package/dist/{chunk-Y6TGIUGL.js.map → chunk-LSF5WJ6G.js.map} +1 -1
  49. package/dist/{chunk-D6HO5QAM.cjs → chunk-M26GEN4C.cjs} +14 -9
  50. package/dist/chunk-M26GEN4C.cjs.map +1 -0
  51. package/dist/{chunk-4P35AVPE.cjs → chunk-MEMYFFOL.cjs} +256 -157
  52. package/dist/chunk-MEMYFFOL.cjs.map +1 -0
  53. package/dist/{chunk-BQ355Z3O.js → chunk-NUZWQA4J.js} +4 -4
  54. package/dist/{chunk-BQ355Z3O.js.map → chunk-NUZWQA4J.js.map} +1 -1
  55. package/dist/{chunk-JIRB5LX4.js → chunk-OHX36YXF.js} +5 -3
  56. package/dist/chunk-OHX36YXF.js.map +1 -0
  57. package/dist/{chunk-PKORY4ZZ.cjs → chunk-OOTLMVNN.cjs} +107 -7
  58. package/dist/chunk-OOTLMVNN.cjs.map +1 -0
  59. package/dist/{chunk-D4M6E4OQ.cjs → chunk-OWZ6QT24.cjs} +16 -8
  60. package/dist/chunk-OWZ6QT24.cjs.map +1 -0
  61. package/dist/{chunk-6OHS6ZQ3.js → chunk-PDJCIONR.js} +8 -8
  62. package/dist/{chunk-6OHS6ZQ3.js.map → chunk-PDJCIONR.js.map} +1 -1
  63. package/dist/{chunk-WU2P7XOU.cjs → chunk-PP4G2TZZ.cjs} +20 -20
  64. package/dist/{chunk-WU2P7XOU.cjs.map → chunk-PP4G2TZZ.cjs.map} +1 -1
  65. package/dist/{chunk-VWAK25TU.js → chunk-SBBWRNZA.js} +10 -7
  66. package/dist/chunk-SBBWRNZA.js.map +1 -0
  67. package/dist/{chunk-TU4YMXOQ.js → chunk-TJIFNVPX.js} +6 -6
  68. package/dist/{chunk-TU4YMXOQ.js.map → chunk-TJIFNVPX.js.map} +1 -1
  69. package/dist/{chunk-V5YNS2QO.cjs → chunk-XJNQHPBJ.cjs} +15 -15
  70. package/dist/{chunk-V5YNS2QO.cjs.map → chunk-XJNQHPBJ.cjs.map} +1 -1
  71. package/dist/{chunk-MVYP55NA.js → chunk-YC6Z75K2.js} +113 -336
  72. package/dist/chunk-YC6Z75K2.js.map +1 -0
  73. package/dist/{chunk-3ZF7IC6Q.cjs → chunk-YZMSJKAK.cjs} +5 -3
  74. package/dist/chunk-YZMSJKAK.cjs.map +1 -0
  75. package/dist/{chunk-L3WDI7HP.cjs → chunk-Z2X5VTYJ.cjs} +65 -65
  76. package/dist/{chunk-L3WDI7HP.cjs.map → chunk-Z2X5VTYJ.cjs.map} +1 -1
  77. package/dist/{chunk-BN5MV2QK.cjs → chunk-Z52OAJ73.cjs} +4 -4
  78. package/dist/{chunk-BN5MV2QK.cjs.map → chunk-Z52OAJ73.cjs.map} +1 -1
  79. package/dist/{chunk-WYPSC6CO.js → chunk-ZBU6P4JV.js} +104 -4
  80. package/dist/chunk-ZBU6P4JV.js.map +1 -0
  81. package/dist/datasets/experiment/index.d.ts.map +1 -1
  82. package/dist/datasets/experiment/scorer.d.ts.map +1 -1
  83. package/dist/datasets/index.cjs +17 -17
  84. package/dist/datasets/index.js +2 -2
  85. package/dist/di/index.cjs +4 -4
  86. package/dist/di/index.js +1 -1
  87. package/dist/docs/SKILL.md +1 -1
  88. package/dist/docs/assets/SOURCE_MAP.json +443 -384
  89. package/dist/docs/references/docs-agents-agent-approval.md +61 -31
  90. package/dist/docs/references/docs-agents-supervisor-agents.md +1 -1
  91. package/dist/docs/references/docs-memory-observational-memory.md +9 -0
  92. package/dist/docs/references/docs-memory-semantic-recall.md +17 -1
  93. package/dist/docs/references/docs-workspace-skills.md +7 -5
  94. package/dist/docs/references/reference-agents-agent.md +20 -20
  95. package/dist/docs/references/reference-agents-generate.md +200 -66
  96. package/dist/docs/references/reference-agents-generateLegacy.md +77 -35
  97. package/dist/docs/references/reference-agents-getDefaultGenerateOptions.md +4 -6
  98. package/dist/docs/references/reference-agents-getDefaultOptions.md +4 -6
  99. package/dist/docs/references/reference-agents-getDefaultStreamOptions.md +4 -6
  100. package/dist/docs/references/reference-agents-getDescription.md +1 -1
  101. package/dist/docs/references/reference-agents-getInstructions.md +4 -6
  102. package/dist/docs/references/reference-agents-getLLM.md +6 -8
  103. package/dist/docs/references/reference-agents-getMemory.md +4 -6
  104. package/dist/docs/references/reference-agents-getModel.md +4 -6
  105. package/dist/docs/references/reference-agents-getTools.md +5 -7
  106. package/dist/docs/references/reference-agents-getVoice.md +4 -6
  107. package/dist/docs/references/reference-agents-listAgents.md +4 -6
  108. package/dist/docs/references/reference-agents-listScorers.md +4 -6
  109. package/dist/docs/references/reference-agents-listTools.md +4 -6
  110. package/dist/docs/references/reference-agents-listWorkflows.md +4 -6
  111. package/dist/docs/references/reference-agents-network.md +69 -23
  112. package/dist/docs/references/reference-ai-sdk-chat-route.md +7 -7
  113. package/dist/docs/references/reference-ai-sdk-network-route.md +3 -3
  114. package/dist/docs/references/reference-ai-sdk-to-ai-sdk-stream.md +9 -9
  115. package/dist/docs/references/reference-ai-sdk-with-mastra.md +12 -12
  116. package/dist/docs/references/reference-ai-sdk-workflow-route.md +3 -3
  117. package/dist/docs/references/reference-auth-auth0.md +6 -6
  118. package/dist/docs/references/reference-auth-clerk.md +5 -5
  119. package/dist/docs/references/reference-auth-firebase.md +7 -7
  120. package/dist/docs/references/reference-auth-jwt.md +1 -1
  121. package/dist/docs/references/reference-auth-supabase.md +4 -4
  122. package/dist/docs/references/reference-auth-workos.md +6 -6
  123. package/dist/docs/references/reference-core-addGateway.md +2 -2
  124. package/dist/docs/references/reference-core-getAgent.md +2 -2
  125. package/dist/docs/references/reference-core-getAgentById.md +2 -2
  126. package/dist/docs/references/reference-core-getDeployer.md +1 -1
  127. package/dist/docs/references/reference-core-getGateway.md +2 -2
  128. package/dist/docs/references/reference-core-getGatewayById.md +2 -2
  129. package/dist/docs/references/reference-core-getLogger.md +1 -1
  130. package/dist/docs/references/reference-core-getMCPServer.md +2 -2
  131. package/dist/docs/references/reference-core-getMCPServerById.md +3 -3
  132. package/dist/docs/references/reference-core-getMemory.md +2 -2
  133. package/dist/docs/references/reference-core-getScorer.md +2 -2
  134. package/dist/docs/references/reference-core-getScorerById.md +2 -2
  135. package/dist/docs/references/reference-core-getServer.md +1 -1
  136. package/dist/docs/references/reference-core-getStorage.md +1 -1
  137. package/dist/docs/references/reference-core-getStoredAgentById.md +18 -20
  138. package/dist/docs/references/reference-core-getTelemetry.md +1 -1
  139. package/dist/docs/references/reference-core-getVector.md +2 -2
  140. package/dist/docs/references/reference-core-getWorkflow.md +3 -3
  141. package/dist/docs/references/reference-core-listAgents.md +1 -1
  142. package/dist/docs/references/reference-core-listGateways.md +1 -1
  143. package/dist/docs/references/reference-core-listLogs.md +9 -11
  144. package/dist/docs/references/reference-core-listLogsByRunId.md +9 -9
  145. package/dist/docs/references/reference-core-listMCPServers.md +1 -1
  146. package/dist/docs/references/reference-core-listMemory.md +1 -1
  147. package/dist/docs/references/reference-core-listScorers.md +1 -1
  148. package/dist/docs/references/reference-core-listStoredAgents.md +9 -11
  149. package/dist/docs/references/reference-core-listVectors.md +1 -1
  150. package/dist/docs/references/reference-core-listWorkflows.md +2 -2
  151. package/dist/docs/references/reference-core-mastra-class.md +17 -17
  152. package/dist/docs/references/reference-core-mastra-model-gateway.md +15 -15
  153. package/dist/docs/references/reference-core-setLogger.md +2 -4
  154. package/dist/docs/references/reference-core-setStorage.md +1 -1
  155. package/dist/docs/references/reference-datasets-addItem.md +20 -4
  156. package/dist/docs/references/reference-datasets-addItems.md +8 -2
  157. package/dist/docs/references/reference-datasets-compareExperiments.md +15 -3
  158. package/dist/docs/references/reference-datasets-create.md +6 -6
  159. package/dist/docs/references/reference-datasets-dataset.md +1 -1
  160. package/dist/docs/references/reference-datasets-delete.md +2 -2
  161. package/dist/docs/references/reference-datasets-deleteExperiment.md +2 -2
  162. package/dist/docs/references/reference-datasets-deleteItem.md +2 -2
  163. package/dist/docs/references/reference-datasets-deleteItems.md +2 -2
  164. package/dist/docs/references/reference-datasets-get.md +2 -2
  165. package/dist/docs/references/reference-datasets-getDetails.md +9 -9
  166. package/dist/docs/references/reference-datasets-getExperiment.md +2 -2
  167. package/dist/docs/references/reference-datasets-getItem.md +3 -3
  168. package/dist/docs/references/reference-datasets-getItemHistory.md +22 -2
  169. package/dist/docs/references/reference-datasets-list.md +7 -3
  170. package/dist/docs/references/reference-datasets-listExperimentResults.md +34 -4
  171. package/dist/docs/references/reference-datasets-listExperiments.md +41 -3
  172. package/dist/docs/references/reference-datasets-listItems.md +18 -6
  173. package/dist/docs/references/reference-datasets-listVersions.md +23 -3
  174. package/dist/docs/references/reference-datasets-startExperiment.md +62 -12
  175. package/dist/docs/references/reference-datasets-startExperimentAsync.md +5 -1
  176. package/dist/docs/references/reference-datasets-update.md +6 -6
  177. package/dist/docs/references/reference-datasets-updateItem.md +5 -5
  178. package/dist/docs/references/reference-evals-answer-relevancy.md +11 -11
  179. package/dist/docs/references/reference-evals-answer-similarity.md +17 -19
  180. package/dist/docs/references/reference-evals-bias.md +10 -10
  181. package/dist/docs/references/reference-evals-completeness.md +3 -3
  182. package/dist/docs/references/reference-evals-content-similarity.md +6 -6
  183. package/dist/docs/references/reference-evals-context-precision.md +4 -4
  184. package/dist/docs/references/reference-evals-create-scorer.md +47 -49
  185. package/dist/docs/references/reference-evals-faithfulness.md +11 -11
  186. package/dist/docs/references/reference-evals-hallucination.md +17 -21
  187. package/dist/docs/references/reference-evals-keyword-coverage.md +4 -4
  188. package/dist/docs/references/reference-evals-mastra-scorer.md +14 -14
  189. package/dist/docs/references/reference-evals-run-evals.md +16 -16
  190. package/dist/docs/references/reference-evals-scorer-utils.md +3 -3
  191. package/dist/docs/references/reference-evals-textual-difference.md +3 -3
  192. package/dist/docs/references/reference-evals-tone-consistency.md +3 -3
  193. package/dist/docs/references/reference-evals-toxicity.md +8 -8
  194. package/dist/docs/references/reference-harness-harness-class.md +34 -42
  195. package/dist/docs/references/reference-logging-pino-logger.md +5 -5
  196. package/dist/docs/references/reference-memory-deleteMessages.md +2 -2
  197. package/dist/docs/references/reference-memory-memory-class.md +12 -14
  198. package/dist/docs/references/reference-memory-observational-memory.md +102 -94
  199. package/dist/docs/references/reference-observability-tracing-configuration.md +27 -10
  200. package/dist/docs/references/reference-observability-tracing-exporters-console-exporter.md +4 -7
  201. package/dist/docs/references/reference-processors-batch-parts-processor.md +8 -10
  202. package/dist/docs/references/reference-processors-language-detector.md +14 -16
  203. package/dist/docs/references/reference-processors-message-history-processor.md +7 -9
  204. package/dist/docs/references/reference-processors-moderation-processor.md +13 -15
  205. package/dist/docs/references/reference-processors-pii-detector.md +14 -16
  206. package/dist/docs/references/reference-processors-processor-interface.md +62 -62
  207. package/dist/docs/references/reference-processors-prompt-injection-detector.md +11 -13
  208. package/dist/docs/references/reference-processors-semantic-recall-processor.md +14 -16
  209. package/dist/docs/references/reference-processors-system-prompt-scrubber.md +12 -14
  210. package/dist/docs/references/reference-processors-token-limiter-processor.md +11 -13
  211. package/dist/docs/references/reference-processors-tool-call-filter.md +5 -7
  212. package/dist/docs/references/reference-processors-tool-search-processor.md +9 -11
  213. package/dist/docs/references/reference-processors-unicode-normalizer.md +8 -10
  214. package/dist/docs/references/reference-processors-working-memory-processor.md +14 -18
  215. package/dist/docs/references/reference-rag-database-config.md +11 -7
  216. package/dist/docs/references/reference-rag-embeddings.md +12 -12
  217. package/dist/docs/references/reference-server-mastra-server.md +10 -10
  218. package/dist/docs/references/reference-server-register-api-route.md +13 -13
  219. package/dist/docs/references/reference-storage-cloudflare-d1.md +5 -5
  220. package/dist/docs/references/reference-storage-composite.md +9 -9
  221. package/dist/docs/references/reference-storage-lance.md +3 -3
  222. package/dist/docs/references/reference-storage-libsql.md +2 -2
  223. package/dist/docs/references/reference-storage-mongodb.md +5 -5
  224. package/dist/docs/references/reference-storage-mssql.md +2 -2
  225. package/dist/docs/references/reference-storage-postgresql.md +25 -25
  226. package/dist/docs/references/reference-storage-upstash.md +3 -3
  227. package/dist/docs/references/reference-streaming-ChunkType.md +251 -59
  228. package/dist/docs/references/reference-streaming-agents-MastraModelOutput.md +86 -16
  229. package/dist/docs/references/reference-streaming-agents-streamLegacy.md +79 -39
  230. package/dist/docs/references/reference-streaming-workflows-resumeStream.md +18 -8
  231. package/dist/docs/references/reference-streaming-workflows-stream.md +21 -9
  232. package/dist/docs/references/reference-streaming-workflows-timeTravelStream.md +4 -4
  233. package/dist/docs/references/reference-tools-create-tool.md +25 -21
  234. package/dist/docs/references/reference-tools-graph-rag-tool.md +16 -18
  235. package/dist/docs/references/reference-tools-mcp-client.md +38 -27
  236. package/dist/docs/references/reference-tools-mcp-server.md +45 -45
  237. package/dist/docs/references/reference-tools-vector-query-tool.md +34 -22
  238. package/dist/docs/references/reference-vectors-libsql.md +31 -31
  239. package/dist/docs/references/reference-vectors-mongodb.md +32 -32
  240. package/dist/docs/references/reference-vectors-pg.md +60 -44
  241. package/dist/docs/references/reference-vectors-upstash.md +25 -25
  242. package/dist/docs/references/reference-voice-composite-voice.md +10 -10
  243. package/dist/docs/references/reference-voice-mastra-voice.md +20 -20
  244. package/dist/docs/references/reference-voice-voice.addInstructions.md +1 -1
  245. package/dist/docs/references/reference-voice-voice.addTools.md +1 -1
  246. package/dist/docs/references/reference-voice-voice.connect.md +3 -3
  247. package/dist/docs/references/reference-voice-voice.events.md +11 -11
  248. package/dist/docs/references/reference-voice-voice.listen.md +9 -9
  249. package/dist/docs/references/reference-voice-voice.on.md +2 -2
  250. package/dist/docs/references/reference-voice-voice.speak.md +11 -11
  251. package/dist/docs/references/reference-workflows-run-methods-cancel.md +2 -2
  252. package/dist/docs/references/reference-workflows-run-methods-restart.md +17 -5
  253. package/dist/docs/references/reference-workflows-run-methods-resume.md +23 -9
  254. package/dist/docs/references/reference-workflows-run-methods-start.md +22 -8
  255. package/dist/docs/references/reference-workflows-run-methods-startAsync.md +12 -6
  256. package/dist/docs/references/reference-workflows-run-methods-timeTravel.md +29 -13
  257. package/dist/docs/references/reference-workflows-run.md +12 -12
  258. package/dist/docs/references/reference-workflows-step.md +24 -26
  259. package/dist/docs/references/reference-workflows-workflow-methods-branch.md +2 -2
  260. package/dist/docs/references/reference-workflows-workflow-methods-commit.md +1 -1
  261. package/dist/docs/references/reference-workflows-workflow-methods-create-run.md +4 -4
  262. package/dist/docs/references/reference-workflows-workflow-methods-dountil.md +3 -3
  263. package/dist/docs/references/reference-workflows-workflow-methods-dowhile.md +3 -3
  264. package/dist/docs/references/reference-workflows-workflow-methods-foreach.md +9 -9
  265. package/dist/docs/references/reference-workflows-workflow-methods-map.md +2 -2
  266. package/dist/docs/references/reference-workflows-workflow-methods-parallel.md +2 -2
  267. package/dist/docs/references/reference-workflows-workflow-methods-sleep.md +2 -2
  268. package/dist/docs/references/reference-workflows-workflow-methods-sleepUntil.md +2 -2
  269. package/dist/docs/references/reference-workflows-workflow-methods-then.md +2 -2
  270. package/dist/docs/references/reference-workflows-workflow.md +40 -50
  271. package/dist/docs/references/reference-workspace-filesystem.md +22 -22
  272. package/dist/docs/references/reference-workspace-local-filesystem.md +35 -35
  273. package/dist/docs/references/reference-workspace-local-sandbox.md +26 -26
  274. package/dist/docs/references/reference-workspace-sandbox.md +8 -8
  275. package/dist/docs/references/reference-workspace-workspace-class.md +30 -34
  276. package/dist/editor/types.d.ts +1 -0
  277. package/dist/editor/types.d.ts.map +1 -1
  278. package/dist/evals/index.cjs +20 -20
  279. package/dist/evals/index.js +3 -3
  280. package/dist/evals/scoreTraces/index.cjs +5 -5
  281. package/dist/evals/scoreTraces/index.js +2 -2
  282. package/dist/harness/harness.d.ts.map +1 -1
  283. package/dist/harness/index.cjs +25 -21
  284. package/dist/harness/index.cjs.map +1 -1
  285. package/dist/harness/index.js +15 -11
  286. package/dist/harness/index.js.map +1 -1
  287. package/dist/index.cjs +2 -2
  288. package/dist/index.js +1 -1
  289. package/dist/integration/index.cjs +2 -2
  290. package/dist/integration/index.js +1 -1
  291. package/dist/llm/index.cjs +12 -12
  292. package/dist/llm/index.js +3 -3
  293. package/dist/llm/model/model.d.ts.map +1 -1
  294. package/dist/llm/model/model.loop.d.ts.map +1 -1
  295. package/dist/llm/model/provider-types.generated.d.ts +5 -1
  296. package/dist/loop/index.cjs +14 -14
  297. package/dist/loop/index.js +1 -1
  298. package/dist/loop/workflows/agentic-loop/index.d.ts.map +1 -1
  299. package/dist/mastra/index.cjs +2 -2
  300. package/dist/mastra/index.js +1 -1
  301. package/dist/memory/index.cjs +14 -14
  302. package/dist/memory/index.js +1 -1
  303. package/dist/models-dev-2FJK72J2.cjs +12 -0
  304. package/dist/{models-dev-UVWCKPA2.cjs.map → models-dev-2FJK72J2.cjs.map} +1 -1
  305. package/dist/models-dev-CMQG6EMO.js +3 -0
  306. package/dist/{models-dev-W3LXZTEB.js.map → models-dev-CMQG6EMO.js.map} +1 -1
  307. package/dist/processor-provider/index.cjs +10 -10
  308. package/dist/processor-provider/index.js +1 -1
  309. package/dist/processors/index.cjs +42 -42
  310. package/dist/processors/index.js +1 -1
  311. package/dist/processors/processors/skills.d.ts +9 -42
  312. package/dist/processors/processors/skills.d.ts.map +1 -1
  313. package/dist/provider-registry-EHOAWHFE.cjs +40 -0
  314. package/dist/{provider-registry-4HLP2JRR.cjs.map → provider-registry-EHOAWHFE.cjs.map} +1 -1
  315. package/dist/provider-registry-LVP6T63V.js +3 -0
  316. package/dist/{provider-registry-K3DWQSMH.js.map → provider-registry-LVP6T63V.js.map} +1 -1
  317. package/dist/provider-registry.json +12 -4
  318. package/dist/relevance/index.cjs +3 -3
  319. package/dist/relevance/index.js +1 -1
  320. package/dist/request-context/index.cjs +4 -4
  321. package/dist/request-context/index.d.ts.map +1 -1
  322. package/dist/request-context/index.js +1 -1
  323. package/dist/storage/base.d.ts +34 -1
  324. package/dist/storage/base.d.ts.map +1 -1
  325. package/dist/storage/constants.cjs +56 -56
  326. package/dist/storage/constants.js +1 -1
  327. package/dist/storage/domains/agents/filesystem.d.ts +28 -0
  328. package/dist/storage/domains/agents/filesystem.d.ts.map +1 -0
  329. package/dist/storage/domains/agents/index.d.ts +1 -0
  330. package/dist/storage/domains/agents/index.d.ts.map +1 -1
  331. package/dist/storage/domains/experiments/inmemory.d.ts.map +1 -1
  332. package/dist/storage/domains/mcp-clients/filesystem.d.ts +28 -0
  333. package/dist/storage/domains/mcp-clients/filesystem.d.ts.map +1 -0
  334. package/dist/storage/domains/mcp-clients/index.d.ts +1 -0
  335. package/dist/storage/domains/mcp-clients/index.d.ts.map +1 -1
  336. package/dist/storage/domains/mcp-servers/filesystem.d.ts +28 -0
  337. package/dist/storage/domains/mcp-servers/filesystem.d.ts.map +1 -0
  338. package/dist/storage/domains/mcp-servers/index.d.ts +1 -0
  339. package/dist/storage/domains/mcp-servers/index.d.ts.map +1 -1
  340. package/dist/storage/domains/prompt-blocks/filesystem.d.ts +28 -0
  341. package/dist/storage/domains/prompt-blocks/filesystem.d.ts.map +1 -0
  342. package/dist/storage/domains/prompt-blocks/index.d.ts +1 -0
  343. package/dist/storage/domains/prompt-blocks/index.d.ts.map +1 -1
  344. package/dist/storage/domains/scorer-definitions/filesystem.d.ts +28 -0
  345. package/dist/storage/domains/scorer-definitions/filesystem.d.ts.map +1 -0
  346. package/dist/storage/domains/scorer-definitions/index.d.ts +1 -0
  347. package/dist/storage/domains/scorer-definitions/index.d.ts.map +1 -1
  348. package/dist/storage/domains/skills/filesystem.d.ts +28 -0
  349. package/dist/storage/domains/skills/filesystem.d.ts.map +1 -0
  350. package/dist/storage/domains/skills/index.d.ts +1 -0
  351. package/dist/storage/domains/skills/index.d.ts.map +1 -1
  352. package/dist/storage/domains/workspaces/filesystem.d.ts +28 -0
  353. package/dist/storage/domains/workspaces/filesystem.d.ts.map +1 -0
  354. package/dist/storage/domains/workspaces/index.d.ts +1 -0
  355. package/dist/storage/domains/workspaces/index.d.ts.map +1 -1
  356. package/dist/storage/filesystem-db.d.ts +82 -0
  357. package/dist/storage/filesystem-db.d.ts.map +1 -0
  358. package/dist/storage/filesystem-versioned.d.ts +148 -0
  359. package/dist/storage/filesystem-versioned.d.ts.map +1 -0
  360. package/dist/storage/filesystem.d.ts +39 -0
  361. package/dist/storage/filesystem.d.ts.map +1 -0
  362. package/dist/storage/git-history.d.ts +68 -0
  363. package/dist/storage/git-history.d.ts.map +1 -0
  364. package/dist/storage/index.cjs +208 -160
  365. package/dist/storage/index.d.ts +4 -0
  366. package/dist/storage/index.d.ts.map +1 -1
  367. package/dist/storage/index.js +2 -2
  368. package/dist/storage/types.d.ts +1 -0
  369. package/dist/storage/types.d.ts.map +1 -1
  370. package/dist/stream/RunOutput.d.ts +1 -1
  371. package/dist/stream/aisdk/v5/output-helpers.d.ts +6 -6
  372. package/dist/stream/base/output.d.ts +3 -3
  373. package/dist/stream/base/schema.d.ts +1 -1
  374. package/dist/stream/index.cjs +11 -11
  375. package/dist/stream/index.js +2 -2
  376. package/dist/test-utils/llm-mock.cjs +4 -4
  377. package/dist/test-utils/llm-mock.js +1 -1
  378. package/dist/tool-loop-agent/index.cjs +4 -4
  379. package/dist/tool-loop-agent/index.js +1 -1
  380. package/dist/tools/index.cjs +6 -6
  381. package/dist/tools/index.js +1 -1
  382. package/dist/tools/is-vercel-tool.cjs +2 -2
  383. package/dist/tools/is-vercel-tool.js +1 -1
  384. package/dist/tools/tool-builder/builder.d.ts.map +1 -1
  385. package/dist/tools/tool.d.ts +6 -0
  386. package/dist/tools/tool.d.ts.map +1 -1
  387. package/dist/tools/types.d.ts +27 -0
  388. package/dist/tools/types.d.ts.map +1 -1
  389. package/dist/utils.cjs +23 -23
  390. package/dist/utils.js +1 -1
  391. package/dist/vector/index.cjs +9 -9
  392. package/dist/vector/index.js +2 -2
  393. package/dist/workflows/evented/index.cjs +10 -10
  394. package/dist/workflows/evented/index.js +1 -1
  395. package/dist/workflows/index.cjs +25 -25
  396. package/dist/workflows/index.js +1 -1
  397. package/dist/workspace/index.cjs +70 -66
  398. package/dist/workspace/index.d.ts +1 -0
  399. package/dist/workspace/index.d.ts.map +1 -1
  400. package/dist/workspace/index.js +1 -1
  401. package/dist/workspace/sandbox/execa.d.ts +9 -0
  402. package/dist/workspace/sandbox/execa.d.ts.map +1 -0
  403. package/dist/workspace/sandbox/local-process-manager.d.ts.map +1 -1
  404. package/dist/workspace/skills/index.d.ts +1 -0
  405. package/dist/workspace/skills/index.d.ts.map +1 -1
  406. package/dist/workspace/skills/tools.d.ts +36 -0
  407. package/dist/workspace/skills/tools.d.ts.map +1 -0
  408. package/dist/workspace/tools/execute-command.d.ts.map +1 -1
  409. package/dist/workspace/tools/output-helpers.d.ts +4 -3
  410. package/dist/workspace/tools/output-helpers.d.ts.map +1 -1
  411. package/package.json +9 -9
  412. package/src/llm/model/provider-types.generated.d.ts +5 -1
  413. package/dist/chunk-3ZF7IC6Q.cjs.map +0 -1
  414. package/dist/chunk-4BXXAZ75.js.map +0 -1
  415. package/dist/chunk-4P35AVPE.cjs.map +0 -1
  416. package/dist/chunk-BFV3GSGS.js.map +0 -1
  417. package/dist/chunk-CCLV5CAA.js.map +0 -1
  418. package/dist/chunk-D4M6E4OQ.cjs.map +0 -1
  419. package/dist/chunk-D6HO5QAM.cjs.map +0 -1
  420. package/dist/chunk-G5R2755Q.cjs.map +0 -1
  421. package/dist/chunk-GJTLWOKJ.js.map +0 -1
  422. package/dist/chunk-H5S4PS44.cjs.map +0 -1
  423. package/dist/chunk-IOY7Y5GV.js.map +0 -1
  424. package/dist/chunk-JIRB5LX4.js.map +0 -1
  425. package/dist/chunk-MVYP55NA.js.map +0 -1
  426. package/dist/chunk-PKORY4ZZ.cjs.map +0 -1
  427. package/dist/chunk-QNXY3J6B.cjs.map +0 -1
  428. package/dist/chunk-SEKQJ447.js.map +0 -1
  429. package/dist/chunk-VDKWYUGC.cjs.map +0 -1
  430. package/dist/chunk-VWAK25TU.js.map +0 -1
  431. package/dist/chunk-WYPSC6CO.js.map +0 -1
  432. package/dist/chunk-YIJZBU54.cjs.map +0 -1
  433. package/dist/chunk-ZBESCKPX.cjs.map +0 -1
  434. package/dist/chunk-ZVWVQ6MG.js.map +0 -1
  435. package/dist/models-dev-UVWCKPA2.cjs +0 -12
  436. package/dist/models-dev-W3LXZTEB.js +0 -3
  437. package/dist/provider-registry-4HLP2JRR.cjs +0 -40
  438. package/dist/provider-registry-K3DWQSMH.js +0 -3
@@ -12,85 +12,125 @@ await agent.streamLegacy('message for agent')
12
12
 
13
13
  ## Parameters
14
14
 
15
- **messages:** (`string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[]`): The messages to send to the agent. Can be a single string, array of strings, or structured message objects.
15
+ **messages** (`string | string[] | CoreMessage[] | AiMessageType[] | UIMessageWithMetadata[]`): The messages to send to the agent. Can be a single string, array of strings, or structured message objects.
16
16
 
17
- **options?:** (`AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT>`): Optional configuration for the streaming process.
17
+ **options** (`AgentStreamOptions<OUTPUT, EXPERIMENTAL_OUTPUT>`): Optional configuration for the streaming process.
18
18
 
19
- ### Options parameters
19
+ **options.abortSignal** (`AbortSignal`): Signal object that allows you to abort the agent's execution. When the signal is aborted, all ongoing operations will be terminated.
20
20
 
21
- **abortSignal?:** (`AbortSignal`): Signal object that allows you to abort the agent's execution. When the signal is aborted, all ongoing operations will be terminated.
21
+ **options.context** (`CoreMessage[]`): Additional context messages to provide to the agent.
22
22
 
23
- **context?:** (`CoreMessage[]`): Additional context messages to provide to the agent.
23
+ **options.experimental\_output** (`Zod schema | JsonSchema7`): Enables structured output generation alongside text generation and tool calls. The model will generate responses that conform to the provided schema.
24
24
 
25
- **experimental\_output?:** (`Zod schema | JsonSchema7`): Enables structured output generation alongside text generation and tool calls. The model will generate responses that conform to the provided schema.
25
+ **options.instructions** (`string`): Custom instructions that override the agent's default instructions for this specific generation. Useful for dynamically modifying agent behavior without creating a new agent instance.
26
26
 
27
- **instructions?:** (`string`): Custom instructions that override the agent's default instructions for this specific generation. Useful for dynamically modifying agent behavior without creating a new agent instance.
27
+ **options.output** (`Zod schema | JsonSchema7`): Defines the expected structure of the output. Can be a JSON Schema object or a Zod schema.
28
28
 
29
- **output?:** (`Zod schema | JsonSchema7`): Defines the expected structure of the output. Can be a JSON Schema object or a Zod schema.
29
+ **options.memory** (`object`): Configuration for memory. This is the preferred way to manage memory.
30
30
 
31
- **memory?:** (`object`): thread:string | { id: string; metadata?: Record\<string, any>, title?: string }The conversation thread, as a string ID or an object with an \`id\` and optional \`metadata\`.resource:stringIdentifier for the user or resource associated with the thread.options?:MemoryConfigConfiguration for memory behavior, like message history and semantic recall.
31
+ **options.memory.thread** (`string | { id: string; metadata?: Record<string, any>, title?: string }`): The conversation thread, as a string ID or an object with an \`id\` and optional \`metadata\`.
32
32
 
33
- **maxSteps?:** (`number`): Maximum number of execution steps allowed. (Default: `5`)
33
+ **options.memory.resource** (`string`): Identifier for the user or resource associated with the thread.
34
34
 
35
- **maxRetries?:** (`number`): Maximum number of retries. Set to 0 to disable retries. (Default: `2`)
35
+ **options.memory.options** (`MemoryConfig`): Configuration for memory behavior, like message history and semantic recall.
36
36
 
37
- **memoryOptions?:** (`MemoryConfig`): lastMessages?:number | falseNumber of recent messages to include in context, or false to disable.semanticRecall?:boolean | { topK: number; messageRange: number | { before: number; after: number }; scope?: 'thread' | 'resource' }Enable semantic recall to find relevant past messages. Can be a boolean or detailed configuration.workingMemory?:WorkingMemoryConfiguration for working memory functionality.threads?:{ generateTitle?: boolean | { model: DynamicArgument\<MastraLanguageModel>; instructions?: DynamicArgument\<string> } }Thread-specific configuration, including automatic title generation.
37
+ **options.maxSteps** (`number`): Maximum number of execution steps allowed.
38
38
 
39
- **onFinish?:** (`StreamTextOnFinishCallback<any> | StreamObjectOnFinishCallback<OUTPUT>`): Callback function called when streaming completes. Receives the final result.
39
+ **options.maxRetries** (`number`): Maximum number of retries. Set to 0 to disable retries.
40
40
 
41
- **onStepFinish?:** (`StreamTextOnStepFinishCallback<any> | never`): Callback function called after each execution step. Receives step details as a JSON string. Unavailable for structured output
41
+ **options.memoryOptions** (`MemoryConfig`): \*\*Deprecated.\*\* Use \`memory.options\` instead. Configuration options for memory management.
42
42
 
43
- **resourceId?:** (`string`): \*\*Deprecated.\*\* Use \`memory.resource\` instead. Identifier for the user or resource interacting with the agent. Must be provided if threadId is provided.
43
+ **options.memoryOptions.lastMessages** (`number | false`): Number of recent messages to include in context, or false to disable.
44
44
 
45
- **telemetry?:** (`TelemetrySettings`): isEnabled?:booleanEnable or disable telemetry. Disabled by default while experimental.recordInputs?:booleanEnable or disable input recording. Enabled by default. You might want to disable input recording to avoid recording sensitive information.recordOutputs?:booleanEnable or disable output recording. Enabled by default. You might want to disable output recording to avoid recording sensitive information.functionId?:stringIdentifier for this function. Used to group telemetry data by function.
45
+ **options.memoryOptions.semanticRecall** (`boolean | { topK: number; messageRange: number | { before: number; after: number }; scope?: 'thread' | 'resource' }`): Enable semantic recall to find relevant past messages. Can be a boolean or detailed configuration.
46
46
 
47
- **temperature?:** (`number`): Controls randomness in the model's output. Higher values (e.g., 0.8) make the output more random, lower values (e.g., 0.2) make it more focused and deterministic.
47
+ **options.memoryOptions.workingMemory** (`WorkingMemory`): Configuration for working memory functionality.
48
48
 
49
- **threadId?:** (`string`): \*\*Deprecated.\*\* Use \`memory.thread\` instead. Identifier for the conversation thread. Allows for maintaining context across multiple interactions. Must be provided if resourceId is provided.
49
+ **options.memoryOptions.threads** (`{ generateTitle?: boolean | { model: DynamicArgument<MastraLanguageModel>; instructions?: DynamicArgument<string> } }`): Thread-specific configuration, including automatic title generation.
50
50
 
51
- **toolChoice?:** (`'auto' | 'none' | 'required' | { type: 'tool'; toolName: string }`): 'auto':stringLet the model decide whether to use tools (default).'none':stringDo not use any tools.'required':stringRequire the model to use at least one tool.{ type: 'tool'; toolName: string }:objectRequire the model to use a specific tool by name. (Default: `'auto'`)
51
+ **options.onFinish** (`StreamTextOnFinishCallback<any> | StreamObjectOnFinishCallback<OUTPUT>`): Callback function called when streaming completes. Receives the final result.
52
52
 
53
- **toolsets?:** (`ToolsetsInput`): Additional toolsets to make available to the agent during streaming.
53
+ **options.onStepFinish** (`StreamTextOnStepFinishCallback<any> | never`): Callback function called after each execution step. Receives step details as a JSON string. Unavailable for structured output
54
54
 
55
- **clientTools?:** (`ToolsInput`): Tools that are executed on the 'client' side of the request. These tools do not have execute functions in the definition.
55
+ **options.resourceId** (`string`): \*\*Deprecated.\*\* Use \`memory.resource\` instead. Identifier for the user or resource interacting with the agent. Must be provided if threadId is provided.
56
56
 
57
- **savePerStep?:** (`boolean`): Save messages incrementally after each stream step completes (default: false).
57
+ **options.telemetry** (`TelemetrySettings`): Settings for telemetry collection during streaming.
58
58
 
59
- **providerOptions?:** (`Record<string, Record<string, JSONValue>>`): openai?:Record\<string, JSONValue>OpenAI-specific options. Example: \`{ reasoningEffort: 'high' }\`anthropic?:Record\<string, JSONValue>Anthropic-specific options. Example: \`{ maxTokens: 1000 }\`google?:Record\<string, JSONValue>Google-specific options. Example: \`{ safetySettings: \[...] }\`\[providerName]?:Record\<string, JSONValue>Other provider-specific options. The key is the provider name and the value is a record of provider-specific options.
59
+ **options.telemetry.isEnabled** (`boolean`): Enable or disable telemetry. Disabled by default while experimental.
60
60
 
61
- **runId?:** (`string`): Unique ID for this generation run. Useful for tracking and debugging purposes.
61
+ **options.telemetry.recordInputs** (`boolean`): Enable or disable input recording. Enabled by default. You might want to disable input recording to avoid recording sensitive information.
62
62
 
63
- **requestContext?:** (`RequestContext`): Request Context for dependency injection and contextual information.
63
+ **options.telemetry.recordOutputs** (`boolean`): Enable or disable output recording. Enabled by default. You might want to disable output recording to avoid recording sensitive information.
64
64
 
65
- **maxTokens?:** (`number`): Maximum number of tokens to generate.
65
+ **options.telemetry.functionId** (`string`): Identifier for this function. Used to group telemetry data by function.
66
66
 
67
- **topP?:** (`number`): Nucleus sampling. This is a number between 0 and 1. It is recommended to set either \`temperature\` or \`topP\`, but not both.
67
+ **options.temperature** (`number`): Controls randomness in the model's output. Higher values (e.g., 0.8) make the output more random, lower values (e.g., 0.2) make it more focused and deterministic.
68
68
 
69
- **topK?:** (`number`): Only sample from the top K options for each subsequent token. Used to remove 'long tail' low probability responses.
69
+ **options.threadId** (`string`): \*\*Deprecated.\*\* Use \`memory.thread\` instead. Identifier for the conversation thread. Allows for maintaining context across multiple interactions. Must be provided if resourceId is provided.
70
70
 
71
- **presencePenalty?:** (`number`): Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt. A number between -1 (increase repetition) and 1 (maximum penalty, decrease repetition).
71
+ **options.toolChoice** (`'auto' | 'none' | 'required' | { type: 'tool'; toolName: string }`): Controls how the agent uses tools during streaming.
72
72
 
73
- **frequencyPenalty?:** (`number`): Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases. A number between -1 (increase repetition) and 1 (maximum penalty, decrease repetition).
73
+ **options.toolChoice.'auto'** (`string`): Let the model decide whether to use tools (default).
74
74
 
75
- **stopSequences?:** (`string[]`): Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated.
75
+ **options.toolChoice.'none'** (`string`): Do not use any tools.
76
76
 
77
- **seed?:** (`number`): The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results.
77
+ **options.toolChoice.'required'** (`string`): Require the model to use at least one tool.
78
78
 
79
- **headers?:** (`Record<string, string | undefined>`): Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.
79
+ **options.toolChoice.{ type: 'tool'; toolName: string }** (`object`): Require the model to use a specific tool by name.
80
+
81
+ **options.toolsets** (`ToolsetsInput`): Additional toolsets to make available to the agent during streaming.
82
+
83
+ **options.clientTools** (`ToolsInput`): Tools that are executed on the 'client' side of the request. These tools do not have execute functions in the definition.
84
+
85
+ **options.savePerStep** (`boolean`): Save messages incrementally after each stream step completes (default: false).
86
+
87
+ **options.providerOptions** (`Record<string, Record<string, JSONValue>>`): Additional provider-specific options that are passed through to the underlying LLM provider. The structure is \`{ providerName: { optionKey: value } }\`. For example: \`{ openai: { reasoningEffort: 'high' }, anthropic: { maxTokens: 1000 } }\`.
88
+
89
+ **options.providerOptions.openai** (`Record<string, JSONValue>`): OpenAI-specific options. Example: \`{ reasoningEffort: 'high' }\`
90
+
91
+ **options.providerOptions.anthropic** (`Record<string, JSONValue>`): Anthropic-specific options. Example: \`{ maxTokens: 1000 }\`
92
+
93
+ **options.providerOptions.google** (`Record<string, JSONValue>`): Google-specific options. Example: \`{ safetySettings: \[...] }\`
94
+
95
+ **options.providerOptions.\[providerName]** (`Record<string, JSONValue>`): Other provider-specific options. The key is the provider name and the value is a record of provider-specific options.
96
+
97
+ **options.runId** (`string`): Unique ID for this generation run. Useful for tracking and debugging purposes.
98
+
99
+ **options.requestContext** (`RequestContext`): Request Context for dependency injection and contextual information.
100
+
101
+ **options.maxTokens** (`number`): Maximum number of tokens to generate.
102
+
103
+ **options.topP** (`number`): Nucleus sampling. This is a number between 0 and 1. It is recommended to set either \`temperature\` or \`topP\`, but not both.
104
+
105
+ **options.topK** (`number`): Only sample from the top K options for each subsequent token. Used to remove 'long tail' low probability responses.
106
+
107
+ **options.presencePenalty** (`number`): Presence penalty setting. It affects the likelihood of the model to repeat information that is already in the prompt. A number between -1 (increase repetition) and 1 (maximum penalty, decrease repetition).
108
+
109
+ **options.frequencyPenalty** (`number`): Frequency penalty setting. It affects the likelihood of the model to repeatedly use the same words or phrases. A number between -1 (increase repetition) and 1 (maximum penalty, decrease repetition).
110
+
111
+ **options.stopSequences** (`string[]`): Stop sequences. If set, the model will stop generating text when one of the stop sequences is generated.
112
+
113
+ **options.seed** (`number`): The seed (integer) to use for random sampling. If set and supported by the model, calls will generate deterministic results.
114
+
115
+ **options.headers** (`Record<string, string | undefined>`): Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.
80
116
 
81
117
  ## Returns
82
118
 
83
- **textStream?:** (`AsyncGenerator<string>`): Async generator that yields text chunks as they become available.
119
+ **textStream** (`AsyncGenerator<string>`): Async generator that yields text chunks as they become available.
120
+
121
+ **fullStream** (`Promise<ReadableStream>`): Promise that resolves to a ReadableStream for the complete response.
122
+
123
+ **text** (`Promise<string>`): Promise that resolves to the complete text response.
84
124
 
85
- **fullStream?:** (`Promise<ReadableStream>`): Promise that resolves to a ReadableStream for the complete response.
125
+ **usage** (`Promise<{ totalTokens: number; promptTokens: number; completionTokens: number }>`): Promise that resolves to token usage information.
86
126
 
87
- **text?:** (`Promise<string>`): Promise that resolves to the complete text response.
127
+ **finishReason** (`Promise<string>`): Promise that resolves to the reason why the stream finished.
88
128
 
89
- **usage?:** (`Promise<{ totalTokens: number; promptTokens: number; completionTokens: number }>`): Promise that resolves to token usage information.
129
+ **toolCalls** (`Promise<Array<ToolCall>>`): Promise that resolves to the tool calls made during the streaming process.
90
130
 
91
- **finishReason?:** (`Promise<string>`): Promise that resolves to the reason why the stream finished.
131
+ **toolCalls.toolName** (`string`): The name of the tool invoked.
92
132
 
93
- **toolCalls?:** (`Promise<Array<ToolCall>>`): toolName:stringThe name of the tool invoked.args:anyThe arguments passed to the tool.
133
+ **toolCalls.args** (`any`): The arguments passed to the tool.
94
134
 
95
135
  ## Extended usage example
96
136
 
@@ -26,23 +26,33 @@ if (result!.status === 'suspended') {
26
26
 
27
27
  ## Parameters
28
28
 
29
- **resumeData?:** (`z.infer<TInput>`): Input data that matches the workflow's input schema
29
+ **resumeData** (`z.infer<TInput>`): Input data that matches the workflow's input schema
30
30
 
31
- **requestContext?:** (`RequestContext`): Request Context data to use during workflow execution
31
+ **requestContext** (`RequestContext`): Request Context data to use during workflow execution
32
32
 
33
- **step?:** (`Step<string, any, any, any, any, TEngineType>`): The step to resume execution from
33
+ **step** (`Step<string, any, any, any, any, TEngineType>`): The step to resume execution from
34
34
 
35
- **tracingOptions?:** (`TracingOptions`): metadata?:Record\<string, any>Metadata to add to the root trace span. Useful for adding custom attributes like user IDs, session IDs, or feature flags.requestContextKeys?:string\[]Additional RequestContext keys to extract as metadata for this trace. Supports dot notation for nested values (e.g., 'user.id').traceId?:stringTrace ID to use for this execution (1-32 hexadecimal characters). If provided, this trace will be part of the specified trace.parentSpanId?:stringParent span ID to use for this execution (1-16 hexadecimal characters). If provided, the root span will be created as a child of this span.tags?:string\[]Tags to apply to this trace. String labels for categorizing and filtering traces.
35
+ **tracingOptions** (`TracingOptions`): Options for Tracing configuration.
36
+
37
+ **tracingOptions.metadata** (`Record<string, any>`): Metadata to add to the root trace span. Useful for adding custom attributes like user IDs, session IDs, or feature flags.
38
+
39
+ **tracingOptions.requestContextKeys** (`string[]`): Additional RequestContext keys to extract as metadata for this trace. Supports dot notation for nested values (e.g., 'user.id').
40
+
41
+ **tracingOptions.traceId** (`string`): Trace ID to use for this execution (1-32 hexadecimal characters). If provided, this trace will be part of the specified trace.
42
+
43
+ **tracingOptions.parentSpanId** (`string`): Parent span ID to use for this execution (1-16 hexadecimal characters). If provided, the root span will be created as a child of this span.
44
+
45
+ **tracingOptions.tags** (`string[]`): Tags to apply to this trace. String labels for categorizing and filtering traces.
36
46
 
37
47
  ## Returns
38
48
 
39
- **stream:** (`MastraWorkflowStream<ChunkType>`): A custom stream that extends ReadableStream\<ChunkType> with additional workflow-specific properties
49
+ **stream** (`MastraWorkflowStream<ChunkType>`): A custom stream that extends ReadableStream\<ChunkType> with additional workflow-specific properties
40
50
 
41
- **stream.status:** (`Promise<RunStatus>`): A promise that resolves to the current workflow run status
51
+ **stream.status** (`Promise<RunStatus>`): A promise that resolves to the current workflow run status
42
52
 
43
- **stream.result:** (`Promise<WorkflowResult<TState, TOutput, TSteps>>`): A promise that resolves to the final workflow result
53
+ **stream.result** (`Promise<WorkflowResult<TState, TOutput, TSteps>>`): A promise that resolves to the final workflow result
44
54
 
45
- **stream.usage:** (`Promise<{ inputTokens: number; outputTokens: number; totalTokens: number, reasoningTokens?: number, cacheInputTokens?: number }>`): A promise that resolves to token usage statistics
55
+ **stream.usage** (`Promise<{ inputTokens: number; outputTokens: number; totalTokens: number, reasoningTokens?: number, cacheInputTokens?: number }>`): A promise that resolves to token usage statistics
46
56
 
47
57
  ## Stream Events
48
58
 
@@ -20,27 +20,39 @@ for await (const chunk of stream) {
20
20
 
21
21
  ## Parameters
22
22
 
23
- **inputData?:** (`z.infer<TInput>`): Input data that matches the workflow's input schema
23
+ **inputData** (`z.infer<TInput>`): Input data that matches the workflow's input schema
24
24
 
25
- **requestContext?:** (`RequestContext`): Request Context data to use during workflow execution
25
+ **requestContext** (`RequestContext`): Request Context data to use during workflow execution
26
26
 
27
- **tracingContext?:** (`TracingContext`): currentSpan?:SpanCurrent span for creating child spans and adding metadata.
27
+ **tracingContext** (`TracingContext`): Tracing context for creating child spans and adding metadata.
28
28
 
29
- **tracingOptions?:** (`TracingOptions`): metadata?:Record\<string, any>Metadata to add to the root trace span.requestContextKeys?:string\[]Additional RequestContext keys to extract as metadata for this trace. Supports dot notation for nested values (e.g., 'user.id').traceId?:stringTrace ID to use for this execution (1-32 hexadecimal characters). If provided, this trace will be part of the specified trace.parentSpanId?:stringParent span ID to use for this execution (1-16 hexadecimal characters). If provided, the root span will be created as a child of this span.tags?:string\[]Tags to apply to this trace. String labels for categorizing and filtering traces.
29
+ **tracingContext.currentSpan** (`Span`): Current span for creating child spans and adding metadata.
30
30
 
31
- **closeOnSuspend?:** (`boolean`): Whether to close the stream when the workflow is suspended, or to keep the stream open until the workflow is finished (by success or error). Default value is true.
31
+ **tracingOptions** (`TracingOptions`): Options for Tracing configuration.
32
+
33
+ **tracingOptions.metadata** (`Record<string, any>`): Metadata to add to the root trace span.
34
+
35
+ **tracingOptions.requestContextKeys** (`string[]`): Additional RequestContext keys to extract as metadata for this trace. Supports dot notation for nested values (e.g., 'user.id').
36
+
37
+ **tracingOptions.traceId** (`string`): Trace ID to use for this execution (1-32 hexadecimal characters). If provided, this trace will be part of the specified trace.
38
+
39
+ **tracingOptions.parentSpanId** (`string`): Parent span ID to use for this execution (1-16 hexadecimal characters). If provided, the root span will be created as a child of this span.
40
+
41
+ **tracingOptions.tags** (`string[]`): Tags to apply to this trace. String labels for categorizing and filtering traces.
42
+
43
+ **closeOnSuspend** (`boolean`): Whether to close the stream when the workflow is suspended, or to keep the stream open until the workflow is finished (by success or error). Default value is true.
32
44
 
33
45
  ## Returns
34
46
 
35
47
  Returns a `WorkflowRunOutput` object that implements the async iterable interface (can be used directly in `for await...of` loops) and provides access to the stream and workflow execution results.
36
48
 
37
- **fullStream:** (`ReadableStream<WorkflowStreamEvent>`): A ReadableStream of workflow events that you can iterate over to track progress in real-time. You can also iterate over the WorkflowRunOutput object directly.
49
+ **fullStream** (`ReadableStream<WorkflowStreamEvent>`): A ReadableStream of workflow events that you can iterate over to track progress in real-time. You can also iterate over the WorkflowRunOutput object directly.
38
50
 
39
- **result:** (`Promise<WorkflowResult<TState, TInput, TOutput, TSteps>>`): A promise that resolves to the final workflow result
51
+ **result** (`Promise<WorkflowResult<TState, TInput, TOutput, TSteps>>`): A promise that resolves to the final workflow result
40
52
 
41
- **status:** (`WorkflowRunStatus`): The current workflow run status ('running', 'suspended', 'success', 'failed', 'canceled', or 'tripwire')
53
+ **status** (`WorkflowRunStatus`): The current workflow run status ('running', 'suspended', 'success', 'failed', 'canceled', or 'tripwire')
42
54
 
43
- **usage:** (`Promise<{ inputTokens: number; outputTokens: number; totalTokens: number, reasoningTokens?: number, cachedInputTokens?: number }>`): A promise that resolves to token usage statistics
55
+ **usage** (`Promise<{ inputTokens: number; outputTokens: number; totalTokens: number, reasoningTokens?: number, cachedInputTokens?: number }>`): A promise that resolves to token usage statistics
44
56
 
45
57
  ## Extended usage example
46
58
 
@@ -27,13 +27,13 @@ All parameters are the same as [`Run.timeTravel()`](https://mastra.ai/reference/
27
27
 
28
28
  ## Returns
29
29
 
30
- **output:** (`WorkflowRunOutput<WorkflowResult<TState, TInput, TOutput, TSteps>>`): An object containing both the stream and result promise
30
+ **output** (`WorkflowRunOutput<WorkflowResult<TState, TInput, TOutput, TSteps>>`): An object containing both the stream and result promise
31
31
 
32
- **output.fullStream:** (`ReadableStream<WorkflowStreamEvent>`): A readable stream that emits workflow events as execution progresses
32
+ **output.fullStream** (`ReadableStream<WorkflowStreamEvent>`): A readable stream that emits workflow events as execution progresses
33
33
 
34
- **output.result:** (`Promise<WorkflowResult<TState, TInput, TOutput, TSteps>>`): A promise that resolves to the final workflow execution result
34
+ **output.result** (`Promise<WorkflowResult<TState, TInput, TOutput, TSteps>>`): A promise that resolves to the final workflow execution result
35
35
 
36
- **output.traceId?:** (`string`): The trace ID associated with this execution when Tracing is enabled
36
+ **output.traceId** (`string`): The trace ID associated with this execution when Tracing is enabled
37
37
 
38
38
  ## Stream events
39
39
 
@@ -112,41 +112,45 @@ export const weatherTool = createTool({
112
112
 
113
113
  ## Parameters
114
114
 
115
- **id:** (`string`): A unique identifier for the tool.
115
+ **id** (`string`): A unique identifier for the tool.
116
116
 
117
- **description:** (`string`): A description of what the tool does. This is used by the agent to decide when to use the tool.
117
+ **description** (`string`): A description of what the tool does. This is used by the agent to decide when to use the tool.
118
118
 
119
- **inputSchema?:** (`Zod schema`): A Zod schema defining the expected input parameters for the tool's \`execute\` function.
119
+ **inputSchema** (`Zod schema`): A Zod schema defining the expected input parameters for the tool's \`execute\` function.
120
120
 
121
- **outputSchema?:** (`Zod schema`): A Zod schema defining the expected output structure of the tool's \`execute\` function.
121
+ **outputSchema** (`Zod schema`): A Zod schema defining the expected output structure of the tool's \`execute\` function.
122
122
 
123
- **toModelOutput?:** (`(output: TSchemaOut) => unknown`): Optional function that transforms the tool's \`execute\` output before it is sent back to the model. Use this to return \`text\`, \`json\`, or \`content\`-shaped outputs (including multimodal parts like images/files) to the model while still keeping the full raw output in your application code.
123
+ **toModelOutput** (`(output: TSchemaOut) => unknown`): Optional function that transforms the tool's \`execute\` output before it is sent back to the model. Use this to return \`text\`, \`json\`, or \`content\`-shaped outputs (including multimodal parts like images/files) to the model while still keeping the full raw output in your application code.
124
124
 
125
- **suspendSchema?:** (`Zod schema`): A Zod schema defining the structure of the payload passed to \`suspend()\`. This payload is returned to the client when the tool suspends execution.
125
+ **suspendSchema** (`Zod schema`): A Zod schema defining the structure of the payload passed to \`suspend()\`. This payload is returned to the client when the tool suspends execution.
126
126
 
127
- **resumeSchema?:** (`Zod schema`): A Zod schema defining the expected structure of \`resumeData\` when the tool is resumed. Used by the agent to extract data from user messages when \`autoResumeSuspendedTools\` is enabled.
127
+ **resumeSchema** (`Zod schema`): A Zod schema defining the expected structure of \`resumeData\` when the tool is resumed. Used by the agent to extract data from user messages when \`autoResumeSuspendedTools\` is enabled.
128
128
 
129
- **requireApproval?:** (`boolean`): When true, the tool requires explicit approval before execution. The agent will emit a \`tool-call-approval\` chunk and pause until approved or declined.
129
+ **requireApproval** (`boolean`): When true, the tool requires explicit approval before execution. The agent will emit a \`tool-call-approval\` chunk and pause until approved or declined.
130
130
 
131
- **mcp?:** (`MCPToolProperties`): MCP-specific properties for tools exposed via Model Context Protocol. Includes \`annotations\` (tool behavior hints like \`title\`, \`readOnlyHint\`, \`destructiveHint\`, \`idempotentHint\`, \`openWorldHint\`) and \`\_meta\` (arbitrary metadata passed through to MCP clients).
131
+ **mcp** (`MCPToolProperties`): MCP-specific properties for tools exposed via Model Context Protocol. Includes \`annotations\` (tool behavior hints like \`title\`, \`readOnlyHint\`, \`destructiveHint\`, \`idempotentHint\`, \`openWorldHint\`) and \`\_meta\` (arbitrary metadata passed through to MCP clients).
132
132
 
133
- **requestContextSchema?:** (`Zod schema`): A Zod schema for validating request context values. When provided, the context is validated before execute() runs, returning an error object if validation fails.
133
+ **requestContextSchema** (`Zod schema`): A Zod schema for validating request context values. When provided, the context is validated before execute() runs, returning an error object if validation fails.
134
134
 
135
- **execute:** (`function`): input:z.infer\<TInput>The validated input data based on inputSchemacontext?:ToolExecutionContextOptional execution context containing metadataRequestContextTracingContextAbortSignalAgentToolExecutionContextWorkflowToolExecutionContextMCPToolExecutionContext
135
+ **execute** (`function`): The function that contains the tool's logic. It receives two parameters: the validated input data (first parameter) and an optional execution context object (second parameter) containing \`requestContext\`, \`tracingContext\`, \`abortSignal\`, and other execution metadata.
136
136
 
137
- **onInputStart?:** (`function`): Optional callback invoked when the tool call input streaming begins. Receives \`toolCallId\`, \`messages\`, and \`abortSignal\`.
137
+ **execute.input** (`z.infer<TInput>`): The validated input data based on inputSchema
138
138
 
139
- **onInputDelta?:** (`function`): Optional callback invoked for each incremental chunk of input text as it streams in. Receives \`inputTextDelta\`, \`toolCallId\`, \`messages\`, and \`abortSignal\`.
139
+ **execute.context** (`ToolExecutionContext`): Optional execution context containing metadata
140
140
 
141
- **onInputAvailable?:** (`function`): Optional callback invoked when the complete tool input is available and parsed. Receives the validated \`input\` object, \`toolCallId\`, \`messages\`, and \`abortSignal\`.
141
+ **onInputStart** (`function`): Optional callback invoked when the tool call input streaming begins. Receives \`toolCallId\`, \`messages\`, and \`abortSignal\`.
142
142
 
143
- **onOutput?:** (`function`): Optional callback invoked after the tool has successfully executed and returned output. Receives the tool's \`output\`, \`toolCallId\`, \`messages\`, and \`abortSignal\`.
143
+ **onInputDelta** (`function`): Optional callback invoked for each incremental chunk of input text as it streams in. Receives \`inputTextDelta\`, \`toolCallId\`, \`messages\`, and \`abortSignal\`.
144
+
145
+ **onInputAvailable** (`function`): Optional callback invoked when the complete tool input is available and parsed. Receives the validated \`input\` object, \`toolCallId\`, \`messages\`, and \`abortSignal\`.
146
+
147
+ **onOutput** (`function`): Optional callback invoked after the tool has successfully executed and returned output. Receives the tool's \`output\`, \`toolCallId\`, \`messages\`, and \`abortSignal\`.
144
148
 
145
149
  ## Returns
146
150
 
147
151
  The `createTool()` function returns a `Tool` object.
148
152
 
149
- **Tool:** (`object`): An object representing the defined tool, ready to be added to an agent.
153
+ **Tool** (`object`): An object representing the defined tool, ready to be added to an agent.
150
154
 
151
155
  ## Tool Lifecycle Hooks
152
156
 
@@ -264,15 +268,15 @@ mcp: {
264
268
 
265
269
  ### ToolAnnotations Properties
266
270
 
267
- **title?:** (`string`): A human-readable title for the tool. Used for display purposes in UI components.
271
+ **title** (`string`): A human-readable title for the tool. Used for display purposes in UI components.
268
272
 
269
- **readOnlyHint?:** (`boolean`): If true, the tool does not modify its environment. This hint indicates the tool only reads data and has no side effects. Defaults to false.
273
+ **readOnlyHint** (`boolean`): If true, the tool does not modify its environment. This hint indicates the tool only reads data and has no side effects. Defaults to false.
270
274
 
271
- **destructiveHint?:** (`boolean`): If true, the tool may perform destructive updates to its environment. If false, the tool performs only additive updates. This hint helps clients determine if confirmation should be required. Defaults to true.
275
+ **destructiveHint** (`boolean`): If true, the tool may perform destructive updates to its environment. If false, the tool performs only additive updates. This hint helps clients determine if confirmation should be required. Defaults to true.
272
276
 
273
- **idempotentHint?:** (`boolean`): If true, calling the tool repeatedly with the same arguments will have no additional effect on its environment. This hint indicates idempotent behavior. Defaults to false.
277
+ **idempotentHint** (`boolean`): If true, calling the tool repeatedly with the same arguments will have no additional effect on its environment. This hint indicates idempotent behavior. Defaults to false.
274
278
 
275
- **openWorldHint?:** (`boolean`): If true, this tool may interact with an 'open world' of external entities (e.g., web search, external APIs). If false, the tool's domain is closed and fully defined. Defaults to true.
279
+ **openWorldHint** (`boolean`): If true, this tool may interact with an 'open world' of external entities (e.g., web search, external APIs). If false, the tool's domain is closed and fully defined. Defaults to true.
276
280
 
277
281
  These annotations follow the [MCP specification](https://spec.modelcontextprotocol.io/specification/2025-03-26/server/tools/#tool-annotations) and are passed through when tools are listed via MCP.
278
282
 
@@ -25,43 +25,41 @@ const graphTool = createGraphRAGTool({
25
25
 
26
26
  > **Note:** **Parameter Requirements:** Most fields can be set at creation as defaults. Some fields can be overridden at runtime via the request context or input. If a required field is missing from both creation and runtime, an error will be thrown. Note that `model`, `id`, and `description` can only be set at creation time.
27
27
 
28
- **id?:** (`string`): Custom ID for the tool. By default: 'GraphRAG {vectorStoreName} {indexName} Tool'. (Set at creation only.)
28
+ **id** (`string`): Custom ID for the tool. By default: 'GraphRAG {vectorStoreName} {indexName} Tool'. (Set at creation only.)
29
29
 
30
- **description?:** (`string`): Custom description for the tool. By default: 'Access and analyze relationships between information in the knowledge base to answer complex questions about connections and patterns.' (Set at creation only.)
30
+ **description** (`string`): Custom description for the tool. By default: 'Access and analyze relationships between information in the knowledge base to answer complex questions about connections and patterns.' (Set at creation only.)
31
31
 
32
- **vectorStoreName:** (`string`): Name of the vector store to query. (Can be set at creation or overridden at runtime.)
32
+ **vectorStoreName** (`string`): Name of the vector store to query. (Can be set at creation or overridden at runtime.)
33
33
 
34
- **indexName:** (`string`): Name of the index within the vector store. (Can be set at creation or overridden at runtime.)
34
+ **indexName** (`string`): Name of the index within the vector store. (Can be set at creation or overridden at runtime.)
35
35
 
36
- **model:** (`EmbeddingModel`): Embedding model to use for vector search. (Set at creation only.)
36
+ **model** (`EmbeddingModel`): Embedding model to use for vector search. (Set at creation only.)
37
37
 
38
- **enableFilter?:** (`boolean`): Enable filtering of results based on metadata. (Set at creation only, but will be automatically enabled if a filter is provided in the request context.) (Default: `false`)
38
+ **enableFilter** (`boolean`): Enable filtering of results based on metadata. (Set at creation only, but will be automatically enabled if a filter is provided in the request context.) (Default: `false`)
39
39
 
40
- **includeSources?:** (`boolean`): Include the full retrieval objects in the results. (Can be set at creation or overridden at runtime.) (Default: `true`)
40
+ **includeSources** (`boolean`): Include the full retrieval objects in the results. (Can be set at creation or overridden at runtime.) (Default: `true`)
41
41
 
42
- **graphOptions?:** (`GraphOptions`): Configuration for the graph-based retrieval (Default: `Default graph options`)
42
+ **graphOptions** (`GraphOptions`): Configuration for the graph-based retrieval (Default: `Default graph options`)
43
43
 
44
- **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.
44
+ **graphOptions.dimension** (`number`): Dimension of the embedding vectors
45
45
 
46
- **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.
46
+ **graphOptions.threshold** (`number`): Similarity threshold for creating edges between nodes (0-1)
47
47
 
48
- ### GraphOptions
48
+ **graphOptions.randomWalkSteps** (`number`): Number of steps in random walk for graph traversal. (Can be set at creation or overridden at runtime.)
49
49
 
50
- **dimension?:** (`number`): Dimension of the embedding vectors (Default: `1536`)
50
+ **graphOptions.restartProb** (`number`): Probability of restarting random walk from query node. (Can be set at creation or overridden at runtime.)
51
51
 
52
- **threshold?:** (`number`): Similarity threshold for creating edges between nodes (0-1) (Default: `0.7`)
52
+ **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.
53
53
 
54
- **randomWalkSteps?:** (`number`): Number of steps in random walk for graph traversal. (Can be set at creation or overridden at runtime.) (Default: `100`)
55
-
56
- **restartProb?:** (`number`): Probability of restarting random walk from query node. (Can be set at creation or overridden at runtime.) (Default: `0.15`)
54
+ **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
55
 
58
56
  ## Returns
59
57
 
60
58
  The tool returns an object with:
61
59
 
62
- **relevantContext:** (`string`): Combined text from the most relevant document chunks, retrieved using graph-based ranking
60
+ **relevantContext** (`string`): Combined text from the most relevant document chunks, retrieved using graph-based ranking
63
61
 
64
- **sources:** (`QueryResult[]`): Array of full retrieval result objects. Each object contains all information needed to reference the original document, chunk, and similarity score.
62
+ **sources** (`QueryResult[]`): Array of full retrieval result objects. Each object contains all information needed to reference the original document, chunk, and similarity score.
65
63
 
66
64
  ### QueryResult object structure
67
65
 
@@ -16,11 +16,11 @@ constructor({
16
16
 
17
17
  ### MCPClientOptions
18
18
 
19
- **id?:** (`string`): Optional unique identifier for the configuration instance. Use this to prevent memory leaks when creating multiple instances with identical configurations.
19
+ **id** (`string`): Optional unique identifier for the configuration instance. Use this to prevent memory leaks when creating multiple instances with identical configurations.
20
20
 
21
- **servers:** (`Record<string, MastraMCPServerDefinition>`): A map of server configurations, where each key is a unique server identifier and the value is the server configuration.
21
+ **servers** (`Record<string, MastraMCPServerDefinition>`): A map of server configurations, where each key is a unique server identifier and the value is the server configuration.
22
22
 
23
- **timeout?:** (`number`): Global timeout value in milliseconds for all servers unless overridden in individual server configs. (Default: `60000`)
23
+ **timeout** (`number`): Global timeout value in milliseconds for all servers unless overridden in individual server configs. (Default: `60000`)
24
24
 
25
25
  ### MastraMCPServerDefinition
26
26
 
@@ -29,29 +29,29 @@ Each server in the `servers` map is configured using the `MastraMCPServerDefinit
29
29
  - If `command` is provided, it uses the Stdio transport.
30
30
  - If `url` is provided, it first attempts to use the Streamable HTTP transport and falls back to the legacy SSE transport if the initial connection fails.
31
31
 
32
- **command?:** (`string`): For Stdio servers: The command to execute.
32
+ **command** (`string`): For Stdio servers: The command to execute.
33
33
 
34
- **args?:** (`string[]`): For Stdio servers: Arguments to pass to the command.
34
+ **args** (`string[]`): For Stdio servers: Arguments to pass to the command.
35
35
 
36
- **env?:** (`Record<string, string>`): For Stdio servers: Environment variables to set for the command.
36
+ **env** (`Record<string, string>`): For Stdio servers: Environment variables to set for the command.
37
37
 
38
- **url?:** (`URL`): For HTTP servers (Streamable HTTP or SSE): The URL of the server.
38
+ **url** (`URL`): For HTTP servers (Streamable HTTP or SSE): The URL of the server.
39
39
 
40
- **requestInit?:** (`RequestInit`): For HTTP servers: Request configuration for the fetch API.
40
+ **requestInit** (`RequestInit`): For HTTP servers: Request configuration for the fetch API.
41
41
 
42
- **eventSourceInit?:** (`EventSourceInit`): For SSE fallback: Custom fetch configuration for SSE connections. Required when using custom headers with SSE.
42
+ **eventSourceInit** (`EventSourceInit`): For SSE fallback: Custom fetch configuration for SSE connections. Required when using custom headers with SSE.
43
43
 
44
- **fetch?:** (`FetchLike`): For HTTP servers: Custom fetch implementation used for all network requests. When provided, this function will be used for all HTTP requests, allowing you to add dynamic authentication headers (e.g., refreshing bearer tokens), customize request behavior per-request, or intercept and modify requests/responses. When \`fetch\` is provided, \`requestInit\`, \`eventSourceInit\`, and \`authProvider\` become optional, as you can handle these concerns within your custom fetch function.
44
+ **fetch** (`MastraFetchLike`): For HTTP servers: Custom fetch implementation used for all network requests. Receives an optional third \`requestContext\` parameter containing request-scoped data (e.g., authentication cookies, bearer tokens) from the incoming request. When provided, this function will be used for all HTTP requests, allowing you to add dynamic authentication headers, forward request-scoped credentials to the MCP server, customize request behavior per-request, or intercept and modify requests/responses. When \`fetch\` is provided, \`requestInit\`, \`eventSourceInit\`, and \`authProvider\` become optional, as you can handle these concerns within your custom fetch function.
45
45
 
46
- **logger?:** (`LogHandler`): Optional additional handler for logging.
46
+ **logger** (`LogHandler`): Optional additional handler for logging.
47
47
 
48
- **timeout?:** (`number`): Server-specific timeout in milliseconds.
48
+ **timeout** (`number`): Server-specific timeout in milliseconds.
49
49
 
50
- **capabilities?:** (`ClientCapabilities`): Server-specific capabilities configuration.
50
+ **capabilities** (`ClientCapabilities`): Server-specific capabilities configuration.
51
51
 
52
- **authProvider?:** (`OAuthClientProvider`): For HTTP servers: OAuth authentication provider for automatic token refresh and OAuth flow management. Use MCPOAuthClientProvider for a ready-to-use implementation.
52
+ **authProvider** (`OAuthClientProvider`): For HTTP servers: OAuth authentication provider for automatic token refresh and OAuth flow management. Use MCPOAuthClientProvider for a ready-to-use implementation.
53
53
 
54
- **enableServerLogs?:** (`boolean`): Whether to enable logging for this server. (Default: `true`)
54
+ **enableServerLogs** (`boolean`): Whether to enable logging for this server. (Default: `true`)
55
55
 
56
56
  ## Methods
57
57
 
@@ -873,7 +873,9 @@ MCPClient handles server connections gracefully:
873
873
 
874
874
  ## Using Custom Fetch for Dynamic Authentication
875
875
 
876
- For HTTP servers, you can provide a custom `fetch` function to handle dynamic authentication, request interception, or other custom behavior. This is particularly useful when you need to refresh tokens on each request or customize request behavior.
876
+ For HTTP servers, you can provide a custom `fetch` function to handle dynamic authentication, request interception, or other custom behavior. This is particularly useful when you need to refresh tokens on each request or forward user credentials from the incoming request to the MCP server.
877
+
878
+ The custom `fetch` function receives an optional third `requestContext` parameter, which provides access to request-scoped data (e.g., authentication cookies, bearer tokens) set by middleware or passed during agent/tool execution. The `requestContext` is `null` during the initial connection handshake.
877
879
 
878
880
  When `fetch` is provided, `requestInit`, `eventSourceInit`, and `authProvider` become optional, as you can handle these concerns within your custom fetch function.
879
881
 
@@ -882,21 +884,30 @@ const mcpClient = new MCPClient({
882
884
  servers: {
883
885
  apiServer: {
884
886
  url: new URL('https://api.example.com/mcp'),
885
- fetch: async (url, init) => {
886
- // Refresh token on each request
887
- const token = await getAuthToken() // Your token refresh logic
888
-
889
- return fetch(url, {
890
- ...init,
891
- headers: {
892
- ...init?.headers,
893
- Authorization: `Bearer ${token}`,
894
- },
895
- })
887
+ fetch: async (url, init, requestContext) => {
888
+ const headers = new Headers(init?.headers)
889
+ // Forward auth cookie from the incoming request
890
+ const cookie = requestContext?.get('cookie')
891
+ if (cookie) {
892
+ headers.set('cookie', cookie)
893
+ }
894
+ return fetch(url, { ...init, headers })
896
895
  },
897
896
  },
898
897
  },
899
898
  })
899
+
900
+ // Use with an agent — requestContext is automatically forwarded
901
+ const agent = new Agent({
902
+ name: 'My Agent',
903
+ instructions: 'You are a helpful assistant.',
904
+ model: openai('gpt-4o'),
905
+ tools: await mcpClient.listTools(),
906
+ })
907
+
908
+ await agent.generate('Hello!', {
909
+ requestContext: myRequestContext, // forwarded to the custom fetch
910
+ })
900
911
  ```
901
912
 
902
913
  ## Using SSE Request Headers