@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
@@ -538,6 +538,100 @@ async function readResponseWithSizeLimit({
538
538
  }
539
539
  return result;
540
540
  }
541
+ function validateDownloadUrl(url) {
542
+ let parsed;
543
+ try {
544
+ parsed = new URL(url);
545
+ } catch (e) {
546
+ throw new DownloadError({
547
+ url,
548
+ message: `Invalid URL: ${url}`
549
+ });
550
+ }
551
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
552
+ throw new DownloadError({
553
+ url,
554
+ message: `URL scheme must be http or https, got ${parsed.protocol}`
555
+ });
556
+ }
557
+ const hostname = parsed.hostname;
558
+ if (!hostname) {
559
+ throw new DownloadError({
560
+ url,
561
+ message: `URL must have a hostname`
562
+ });
563
+ }
564
+ if (hostname === "localhost" || hostname.endsWith(".local") || hostname.endsWith(".localhost")) {
565
+ throw new DownloadError({
566
+ url,
567
+ message: `URL with hostname ${hostname} is not allowed`
568
+ });
569
+ }
570
+ if (hostname.startsWith("[") && hostname.endsWith("]")) {
571
+ const ipv6 = hostname.slice(1, -1);
572
+ if (isPrivateIPv6(ipv6)) {
573
+ throw new DownloadError({
574
+ url,
575
+ message: `URL with IPv6 address ${hostname} is not allowed`
576
+ });
577
+ }
578
+ return;
579
+ }
580
+ if (isIPv4(hostname)) {
581
+ if (isPrivateIPv4(hostname)) {
582
+ throw new DownloadError({
583
+ url,
584
+ message: `URL with IP address ${hostname} is not allowed`
585
+ });
586
+ }
587
+ return;
588
+ }
589
+ }
590
+ function isIPv4(hostname) {
591
+ const parts = hostname.split(".");
592
+ if (parts.length !== 4) return false;
593
+ return parts.every((part) => {
594
+ const num = Number(part);
595
+ return Number.isInteger(num) && num >= 0 && num <= 255 && String(num) === part;
596
+ });
597
+ }
598
+ function isPrivateIPv4(ip) {
599
+ const parts = ip.split(".").map(Number);
600
+ const [a, b] = parts;
601
+ if (a === 0) return true;
602
+ if (a === 10) return true;
603
+ if (a === 127) return true;
604
+ if (a === 169 && b === 254) return true;
605
+ if (a === 172 && b >= 16 && b <= 31) return true;
606
+ if (a === 192 && b === 168) return true;
607
+ return false;
608
+ }
609
+ function isPrivateIPv6(ip) {
610
+ const normalized = ip.toLowerCase();
611
+ if (normalized === "::1") return true;
612
+ if (normalized === "::") return true;
613
+ if (normalized.startsWith("::ffff:")) {
614
+ const mappedPart = normalized.slice(7);
615
+ if (isIPv4(mappedPart)) {
616
+ return isPrivateIPv4(mappedPart);
617
+ }
618
+ const hexParts = mappedPart.split(":");
619
+ if (hexParts.length === 2) {
620
+ const high = parseInt(hexParts[0], 16);
621
+ const low = parseInt(hexParts[1], 16);
622
+ if (!isNaN(high) && !isNaN(low)) {
623
+ const a = high >> 8 & 255;
624
+ const b = high & 255;
625
+ const c = low >> 8 & 255;
626
+ const d = low & 255;
627
+ return isPrivateIPv4(`${a}.${b}.${c}.${d}`);
628
+ }
629
+ }
630
+ }
631
+ if (normalized.startsWith("fc") || normalized.startsWith("fd")) return true;
632
+ if (normalized.startsWith("fe80")) return true;
633
+ return false;
634
+ }
541
635
  var createIdGenerator = ({
542
636
  prefix,
543
637
  size = 16,
@@ -678,7 +772,7 @@ function withUserAgentSuffix(headers, ...userAgentSuffixParts) {
678
772
  );
679
773
  return Object.fromEntries(normalizedHeaders.entries());
680
774
  }
681
- var VERSION = "4.0.15";
775
+ var VERSION = "4.0.19";
682
776
  var getOriginalFetch = () => globalThis.fetch;
683
777
  var getFromApi = async ({
684
778
  url,
@@ -775,8 +869,8 @@ function loadOptionalSetting({
775
869
  }
776
870
  return settingValue;
777
871
  }
778
- var suspectProtoRx = /"__proto__"\s*:/;
779
- var suspectConstructorRx = /"constructor"\s*:/;
872
+ var suspectProtoRx = /"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/;
873
+ var suspectConstructorRx = /"(?:c|\\u0063)(?:o|\\u006[Ff])(?:n|\\u006[Ee])(?:s|\\u0073)(?:t|\\u0074)(?:r|\\u0072)(?:u|\\u0075)(?:c|\\u0063)(?:t|\\u0074)(?:o|\\u006[Ff])(?:r|\\u0072)"\s*:/;
780
874
  function _parse(text2) {
781
875
  const obj = JSON.parse(text2);
782
876
  if (obj === null || typeof obj !== "object") {
@@ -796,7 +890,7 @@ function filter(obj) {
796
890
  if (Object.prototype.hasOwnProperty.call(node, "__proto__")) {
797
891
  throw new SyntaxError("Object contains forbidden prototype property");
798
892
  }
799
- if (Object.prototype.hasOwnProperty.call(node, "constructor") && Object.prototype.hasOwnProperty.call(node.constructor, "prototype")) {
893
+ if (Object.prototype.hasOwnProperty.call(node, "constructor") && node.constructor !== null && typeof node.constructor === "object" && Object.prototype.hasOwnProperty.call(node.constructor, "prototype")) {
800
894
  throw new SyntaxError("Object contains forbidden prototype property");
801
895
  }
802
896
  for (const key in node) {
@@ -3380,16 +3474,14 @@ var GatewayVideoModel = class {
3380
3474
  var _a93;
3381
3475
  const resolvedHeaders = await resolve(this.config.headers());
3382
3476
  try {
3383
- const {
3384
- responseHeaders,
3385
- value: responseBody
3386
- } = await postJsonToApi({
3477
+ const { responseHeaders, value: responseBody } = await postJsonToApi({
3387
3478
  url: this.getUrl(),
3388
3479
  headers: combineHeaders(
3389
3480
  resolvedHeaders,
3390
3481
  headers != null ? headers : {},
3391
3482
  this.getModelConfigHeaders(),
3392
- await resolve(this.config.o11yHeaders)
3483
+ await resolve(this.config.o11yHeaders),
3484
+ { accept: "text/event-stream" }
3393
3485
  ),
3394
3486
  body: {
3395
3487
  prompt,
@@ -3402,9 +3494,70 @@ var GatewayVideoModel = class {
3402
3494
  ...providerOptions && { providerOptions },
3403
3495
  ...image && { image: maybeEncodeVideoFile(image) }
3404
3496
  },
3405
- successfulResponseHandler: createJsonResponseHandler(
3406
- gatewayVideoResponseSchema
3407
- ),
3497
+ successfulResponseHandler: async ({
3498
+ response,
3499
+ url,
3500
+ requestBodyValues
3501
+ }) => {
3502
+ if (response.body == null) {
3503
+ throw new APICallError({
3504
+ message: "SSE response body is empty",
3505
+ url,
3506
+ requestBodyValues,
3507
+ statusCode: response.status
3508
+ });
3509
+ }
3510
+ const eventStream = parseJsonEventStream({
3511
+ stream: response.body,
3512
+ schema: gatewayVideoEventSchema
3513
+ });
3514
+ const reader = eventStream.getReader();
3515
+ const { done, value: parseResult } = await reader.read();
3516
+ reader.releaseLock();
3517
+ if (done || !parseResult) {
3518
+ throw new APICallError({
3519
+ message: "SSE stream ended without a data event",
3520
+ url,
3521
+ requestBodyValues,
3522
+ statusCode: response.status
3523
+ });
3524
+ }
3525
+ if (!parseResult.success) {
3526
+ throw new APICallError({
3527
+ message: "Failed to parse video SSE event",
3528
+ cause: parseResult.error,
3529
+ url,
3530
+ requestBodyValues,
3531
+ statusCode: response.status
3532
+ });
3533
+ }
3534
+ const event = parseResult.value;
3535
+ if (event.type === "error") {
3536
+ throw new APICallError({
3537
+ message: event.message,
3538
+ statusCode: event.statusCode,
3539
+ url,
3540
+ requestBodyValues,
3541
+ responseHeaders: Object.fromEntries([...response.headers]),
3542
+ responseBody: JSON.stringify(event),
3543
+ data: {
3544
+ error: {
3545
+ message: event.message,
3546
+ type: event.errorType,
3547
+ param: event.param
3548
+ }
3549
+ }
3550
+ });
3551
+ }
3552
+ return {
3553
+ value: {
3554
+ videos: event.videos,
3555
+ warnings: event.warnings,
3556
+ providerMetadata: event.providerMetadata
3557
+ },
3558
+ responseHeaders: Object.fromEntries([...response.headers])
3559
+ };
3560
+ },
3408
3561
  failedResponseHandler: createJsonErrorResponseHandler({
3409
3562
  errorSchema: z.any(),
3410
3563
  errorToMessage: (data) => data
@@ -3476,11 +3629,21 @@ var gatewayVideoWarningSchema = z.discriminatedUnion("type", [
3476
3629
  message: z.string()
3477
3630
  })
3478
3631
  ]);
3479
- var gatewayVideoResponseSchema = z.object({
3480
- videos: z.array(gatewayVideoDataSchema),
3481
- warnings: z.array(gatewayVideoWarningSchema).optional(),
3482
- providerMetadata: z.record(z.string(), providerMetadataEntrySchema2).optional()
3483
- });
3632
+ var gatewayVideoEventSchema = z.discriminatedUnion("type", [
3633
+ z.object({
3634
+ type: z.literal("result"),
3635
+ videos: z.array(gatewayVideoDataSchema),
3636
+ warnings: z.array(gatewayVideoWarningSchema).optional(),
3637
+ providerMetadata: z.record(z.string(), providerMetadataEntrySchema2).optional()
3638
+ }),
3639
+ z.object({
3640
+ type: z.literal("error"),
3641
+ message: z.string(),
3642
+ errorType: z.string(),
3643
+ statusCode: z.number(),
3644
+ param: z.unknown().nullable()
3645
+ })
3646
+ ]);
3484
3647
  var parallelSearchInputSchema = lazySchema(
3485
3648
  () => zodSchema(
3486
3649
  z$1.object({
@@ -3657,7 +3820,7 @@ async function getVercelRequestId() {
3657
3820
  var _a93;
3658
3821
  return (_a93 = (0, import_oidc.getContext)().headers) == null ? void 0 : _a93["x-vercel-id"];
3659
3822
  }
3660
- var VERSION2 = "3.0.52";
3823
+ var VERSION2 = "3.0.66";
3661
3824
  var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";
3662
3825
  function createGatewayProvider(options = {}) {
3663
3826
  var _a93, _b92;
@@ -3700,13 +3863,18 @@ function createGatewayProvider(options = {}) {
3700
3863
  settingValue: void 0,
3701
3864
  environmentVariableName: "VERCEL_REGION"
3702
3865
  });
3866
+ const projectId = loadOptionalSetting({
3867
+ settingValue: void 0,
3868
+ environmentVariableName: "VERCEL_PROJECT_ID"
3869
+ });
3703
3870
  return async () => {
3704
3871
  const requestId = await getVercelRequestId();
3705
3872
  return {
3706
3873
  ...deploymentId && { "ai-o11y-deployment-id": deploymentId },
3707
3874
  ...environment && { "ai-o11y-environment": environment },
3708
3875
  ...region && { "ai-o11y-region": region },
3709
- ...requestId && { "ai-o11y-request-id": requestId }
3876
+ ...requestId && { "ai-o11y-request-id": requestId },
3877
+ ...projectId && { "ai-o11y-project-id": projectId }
3710
3878
  };
3711
3879
  };
3712
3880
  };
@@ -4785,6 +4953,19 @@ var RetryError = class extends AISDKError {
4785
4953
  }
4786
4954
  };
4787
4955
  _a19 = symbol19;
4956
+ function asArray(value) {
4957
+ return value === void 0 ? [] : Array.isArray(value) ? value : [value];
4958
+ }
4959
+ async function notify(options) {
4960
+ for (const callback of asArray(options.callbacks)) {
4961
+ if (callback == null)
4962
+ continue;
4963
+ try {
4964
+ await callback(options.event);
4965
+ } catch (_ignored) {
4966
+ }
4967
+ }
4968
+ }
4788
4969
  function formatWarning({
4789
4970
  warning,
4790
4971
  provider,
@@ -5115,7 +5296,7 @@ function detectMediaType({
5115
5296
  }
5116
5297
  return void 0;
5117
5298
  }
5118
- var VERSION3 = "6.0.94";
5299
+ var VERSION3 = "6.0.116";
5119
5300
  var download = async ({
5120
5301
  url,
5121
5302
  maxBytes,
@@ -5123,6 +5304,7 @@ var download = async ({
5123
5304
  }) => {
5124
5305
  var _a21;
5125
5306
  const urlText = url.toString();
5307
+ validateDownloadUrl(urlText);
5126
5308
  try {
5127
5309
  const response = await fetch(urlText, {
5128
5310
  headers: withUserAgentSuffix(
@@ -5223,9 +5405,6 @@ function convertDataContentToBase64String(content) {
5223
5405
  }
5224
5406
  return convertUint8ArrayToBase64(content);
5225
5407
  }
5226
- function asArray(value) {
5227
- return value === void 0 ? [] : Array.isArray(value) ? value : [value];
5228
- }
5229
5408
  async function convertToLanguageModelPrompt({
5230
5409
  prompt,
5231
5410
  supportedUrls,
@@ -6231,6 +6410,44 @@ function stringifyForTelemetry(prompt) {
6231
6410
  }))
6232
6411
  );
6233
6412
  }
6413
+ function getGlobalTelemetryIntegrations() {
6414
+ var _a21;
6415
+ return (_a21 = globalThis.AI_SDK_TELEMETRY_INTEGRATIONS) != null ? _a21 : [];
6416
+ }
6417
+ function getGlobalTelemetryIntegration() {
6418
+ const globalIntegrations = getGlobalTelemetryIntegrations();
6419
+ return (integrations) => {
6420
+ const localIntegrations = asArray(integrations);
6421
+ const allIntegrations = [...globalIntegrations, ...localIntegrations];
6422
+ function createTelemetryComposite(getListenerFromIntegration) {
6423
+ const listeners = allIntegrations.map(getListenerFromIntegration).filter(Boolean);
6424
+ return async (event) => {
6425
+ for (const listener of listeners) {
6426
+ try {
6427
+ await listener(event);
6428
+ } catch (_ignored) {
6429
+ }
6430
+ }
6431
+ };
6432
+ }
6433
+ return {
6434
+ onStart: createTelemetryComposite((integration) => integration.onStart),
6435
+ onStepStart: createTelemetryComposite(
6436
+ (integration) => integration.onStepStart
6437
+ ),
6438
+ onToolCallStart: createTelemetryComposite(
6439
+ (integration) => integration.onToolCallStart
6440
+ ),
6441
+ onToolCallFinish: createTelemetryComposite(
6442
+ (integration) => integration.onToolCallFinish
6443
+ ),
6444
+ onStepFinish: createTelemetryComposite(
6445
+ (integration) => integration.onStepFinish
6446
+ ),
6447
+ onFinish: createTelemetryComposite((integration) => integration.onFinish)
6448
+ };
6449
+ };
6450
+ }
6234
6451
  function asLanguageModelUsage(usage) {
6235
6452
  return {
6236
6453
  inputTokens: usage.inputTokens.total,
@@ -6563,6 +6780,16 @@ async function executeToolCall({
6563
6780
  if ((tool2 == null ? void 0 : tool2.execute) == null) {
6564
6781
  return void 0;
6565
6782
  }
6783
+ const baseCallbackEvent = {
6784
+ stepNumber,
6785
+ model,
6786
+ toolCall,
6787
+ messages,
6788
+ abortSignal,
6789
+ functionId: telemetry == null ? void 0 : telemetry.functionId,
6790
+ metadata: telemetry == null ? void 0 : telemetry.metadata,
6791
+ experimental_context
6792
+ };
6566
6793
  return recordSpan({
6567
6794
  name: "ai.toolCall",
6568
6795
  attributes: selectTelemetryAttributes({
@@ -6582,19 +6809,7 @@ async function executeToolCall({
6582
6809
  tracer,
6583
6810
  fn: async (span) => {
6584
6811
  let output;
6585
- try {
6586
- await (onToolCallStart == null ? void 0 : onToolCallStart({
6587
- stepNumber,
6588
- model,
6589
- toolCall,
6590
- messages,
6591
- abortSignal,
6592
- functionId: telemetry == null ? void 0 : telemetry.functionId,
6593
- metadata: telemetry == null ? void 0 : telemetry.metadata,
6594
- experimental_context
6595
- }));
6596
- } catch (_ignored) {
6597
- }
6812
+ await notify({ event: baseCallbackEvent, callbacks: onToolCallStart });
6598
6813
  const startTime = now();
6599
6814
  try {
6600
6815
  const stream = executeTool({
@@ -6621,22 +6836,15 @@ async function executeToolCall({
6621
6836
  }
6622
6837
  } catch (error) {
6623
6838
  const durationMs2 = now() - startTime;
6624
- try {
6625
- await (onToolCallFinish == null ? void 0 : onToolCallFinish({
6626
- stepNumber,
6627
- model,
6628
- toolCall,
6629
- messages,
6630
- abortSignal,
6839
+ await notify({
6840
+ event: {
6841
+ ...baseCallbackEvent,
6631
6842
  success: false,
6632
6843
  error,
6633
- durationMs: durationMs2,
6634
- functionId: telemetry == null ? void 0 : telemetry.functionId,
6635
- metadata: telemetry == null ? void 0 : telemetry.metadata,
6636
- experimental_context
6637
- }));
6638
- } catch (_ignored) {
6639
- }
6844
+ durationMs: durationMs2
6845
+ },
6846
+ callbacks: onToolCallFinish
6847
+ });
6640
6848
  recordErrorOnSpan(span, error);
6641
6849
  return {
6642
6850
  type: "tool-error",
@@ -6649,22 +6857,15 @@ async function executeToolCall({
6649
6857
  };
6650
6858
  }
6651
6859
  const durationMs = now() - startTime;
6652
- try {
6653
- await (onToolCallFinish == null ? void 0 : onToolCallFinish({
6654
- stepNumber,
6655
- model,
6656
- toolCall,
6657
- messages,
6658
- abortSignal,
6860
+ await notify({
6861
+ event: {
6862
+ ...baseCallbackEvent,
6659
6863
  success: true,
6660
6864
  output,
6661
- durationMs,
6662
- functionId: telemetry == null ? void 0 : telemetry.functionId,
6663
- metadata: telemetry == null ? void 0 : telemetry.metadata,
6664
- experimental_context
6665
- }));
6666
- } catch (_ignored) {
6667
- }
6865
+ durationMs
6866
+ },
6867
+ callbacks: onToolCallFinish
6868
+ });
6668
6869
  try {
6669
6870
  span.setAttributes(
6670
6871
  await selectTelemetryAttributes({
@@ -7797,6 +7998,7 @@ async function generateText({
7797
7998
  ...settings
7798
7999
  }) {
7799
8000
  const model = resolveLanguageModel(modelArg);
8001
+ const createGlobalTelemetry = getGlobalTelemetryIntegration();
7800
8002
  const stopConditions = asArray(stopWhen);
7801
8003
  const totalTimeoutMs = getTotalTimeoutMs(timeout);
7802
8004
  const stepTimeoutMs = getStepTimeoutMs(timeout);
@@ -7821,14 +8023,16 @@ async function generateText({
7821
8023
  headers: headersWithUserAgent,
7822
8024
  settings: { ...callSettings, maxRetries }
7823
8025
  });
8026
+ const modelInfo = { provider: model.provider, modelId: model.modelId };
7824
8027
  const initialPrompt = await standardizePrompt({
7825
8028
  system,
7826
8029
  prompt,
7827
8030
  messages
7828
8031
  });
7829
- try {
7830
- await (onStart == null ? void 0 : onStart({
7831
- model: { provider: model.provider, modelId: model.modelId },
8032
+ const globalTelemetry = createGlobalTelemetry(telemetry == null ? void 0 : telemetry.integrations);
8033
+ await notify({
8034
+ event: {
8035
+ model: modelInfo,
7832
8036
  system,
7833
8037
  prompt,
7834
8038
  messages,
@@ -7854,9 +8058,12 @@ async function generateText({
7854
8058
  functionId: telemetry == null ? void 0 : telemetry.functionId,
7855
8059
  metadata: telemetry == null ? void 0 : telemetry.metadata,
7856
8060
  experimental_context
7857
- }));
7858
- } catch (_ignored) {
7859
- }
8061
+ },
8062
+ callbacks: [
8063
+ onStart,
8064
+ globalTelemetry.onStart
8065
+ ]
8066
+ });
7860
8067
  const tracer = getTracer(telemetry);
7861
8068
  try {
7862
8069
  return await recordSpan({
@@ -7899,9 +8106,15 @@ async function generateText({
7899
8106
  abortSignal: mergedAbortSignal,
7900
8107
  experimental_context,
7901
8108
  stepNumber: 0,
7902
- model: { provider: model.provider, modelId: model.modelId },
7903
- onToolCallStart,
7904
- onToolCallFinish
8109
+ model: modelInfo,
8110
+ onToolCallStart: [
8111
+ onToolCallStart,
8112
+ globalTelemetry.onToolCallStart
8113
+ ],
8114
+ onToolCallFinish: [
8115
+ onToolCallFinish,
8116
+ globalTelemetry.onToolCallFinish
8117
+ ]
7905
8118
  });
7906
8119
  const toolContent = [];
7907
8120
  for (const output2 of toolOutputs) {
@@ -7910,7 +8123,7 @@ async function generateText({
7910
8123
  input: output2.input,
7911
8124
  tool: tools == null ? void 0 : tools[output2.toolName],
7912
8125
  output: output2.type === "tool-result" ? output2.output : output2.error,
7913
- errorMode: output2.type === "tool-error" ? "json" : "none"
8126
+ errorMode: output2.type === "tool-error" ? "text" : "none"
7914
8127
  });
7915
8128
  toolContent.push({
7916
8129
  type: "tool-result",
@@ -7981,6 +8194,10 @@ async function generateText({
7981
8194
  const stepModel = resolveLanguageModel(
7982
8195
  (_a21 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a21 : model
7983
8196
  );
8197
+ const stepModelInfo = {
8198
+ provider: stepModel.provider,
8199
+ modelId: stepModel.modelId
8200
+ };
7984
8201
  const promptMessages = await convertToLanguageModelPrompt({
7985
8202
  prompt: {
7986
8203
  system: (_b92 = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b92 : initialPrompt.system,
@@ -8002,13 +8219,10 @@ async function generateText({
8002
8219
  providerOptions,
8003
8220
  prepareStepResult == null ? void 0 : prepareStepResult.providerOptions
8004
8221
  );
8005
- try {
8006
- await (onStepStart == null ? void 0 : onStepStart({
8222
+ await notify({
8223
+ event: {
8007
8224
  stepNumber: steps.length,
8008
- model: {
8009
- provider: stepModel.provider,
8010
- modelId: stepModel.modelId
8011
- },
8225
+ model: stepModelInfo,
8012
8226
  system: stepSystem,
8013
8227
  messages: stepMessages,
8014
8228
  tools,
@@ -8025,9 +8239,12 @@ async function generateText({
8025
8239
  functionId: telemetry == null ? void 0 : telemetry.functionId,
8026
8240
  metadata: telemetry == null ? void 0 : telemetry.metadata,
8027
8241
  experimental_context
8028
- }));
8029
- } catch (_ignored) {
8030
- }
8242
+ },
8243
+ callbacks: [
8244
+ onStepStart,
8245
+ globalTelemetry.onStepStart
8246
+ ]
8247
+ });
8031
8248
  currentModelResponse = await retry(
8032
8249
  () => {
8033
8250
  var _a2222;
@@ -8203,12 +8420,15 @@ async function generateText({
8203
8420
  abortSignal: mergedAbortSignal,
8204
8421
  experimental_context,
8205
8422
  stepNumber: steps.length,
8206
- model: {
8207
- provider: stepModel.provider,
8208
- modelId: stepModel.modelId
8209
- },
8210
- onToolCallStart,
8211
- onToolCallFinish
8423
+ model: stepModelInfo,
8424
+ onToolCallStart: [
8425
+ onToolCallStart,
8426
+ globalTelemetry.onToolCallStart
8427
+ ],
8428
+ onToolCallFinish: [
8429
+ onToolCallFinish,
8430
+ globalTelemetry.onToolCallFinish
8431
+ ]
8212
8432
  })
8213
8433
  );
8214
8434
  }
@@ -8256,10 +8476,7 @@ async function generateText({
8256
8476
  const stepNumber = steps.length;
8257
8477
  const currentStepResult = new DefaultStepResult({
8258
8478
  stepNumber,
8259
- model: {
8260
- provider: stepModel.provider,
8261
- modelId: stepModel.modelId
8262
- },
8479
+ model: stepModelInfo,
8263
8480
  functionId: telemetry == null ? void 0 : telemetry.functionId,
8264
8481
  metadata: telemetry == null ? void 0 : telemetry.metadata,
8265
8482
  experimental_context,
@@ -8274,11 +8491,14 @@ async function generateText({
8274
8491
  });
8275
8492
  logWarnings({
8276
8493
  warnings: (_m = currentModelResponse.warnings) != null ? _m : [],
8277
- provider: stepModel.provider,
8278
- model: stepModel.modelId
8494
+ provider: stepModelInfo.provider,
8495
+ model: stepModelInfo.modelId
8279
8496
  });
8280
8497
  steps.push(currentStepResult);
8281
- await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));
8498
+ await notify({
8499
+ event: currentStepResult,
8500
+ callbacks: [onStepFinish, globalTelemetry.onStepFinish]
8501
+ });
8282
8502
  } finally {
8283
8503
  if (stepTimeoutId != null) {
8284
8504
  clearTimeout(stepTimeoutId);
@@ -8330,34 +8550,40 @@ async function generateText({
8330
8550
  cachedInputTokens: void 0
8331
8551
  }
8332
8552
  );
8333
- await (onFinish == null ? void 0 : onFinish({
8334
- stepNumber: lastStep.stepNumber,
8335
- model: lastStep.model,
8336
- functionId: lastStep.functionId,
8337
- metadata: lastStep.metadata,
8338
- experimental_context: lastStep.experimental_context,
8339
- finishReason: lastStep.finishReason,
8340
- rawFinishReason: lastStep.rawFinishReason,
8341
- usage: lastStep.usage,
8342
- content: lastStep.content,
8343
- text: lastStep.text,
8344
- reasoningText: lastStep.reasoningText,
8345
- reasoning: lastStep.reasoning,
8346
- files: lastStep.files,
8347
- sources: lastStep.sources,
8348
- toolCalls: lastStep.toolCalls,
8349
- staticToolCalls: lastStep.staticToolCalls,
8350
- dynamicToolCalls: lastStep.dynamicToolCalls,
8351
- toolResults: lastStep.toolResults,
8352
- staticToolResults: lastStep.staticToolResults,
8353
- dynamicToolResults: lastStep.dynamicToolResults,
8354
- request: lastStep.request,
8355
- response: lastStep.response,
8356
- warnings: lastStep.warnings,
8357
- providerMetadata: lastStep.providerMetadata,
8358
- steps,
8359
- totalUsage
8360
- }));
8553
+ await notify({
8554
+ event: {
8555
+ stepNumber: lastStep.stepNumber,
8556
+ model: lastStep.model,
8557
+ functionId: lastStep.functionId,
8558
+ metadata: lastStep.metadata,
8559
+ experimental_context: lastStep.experimental_context,
8560
+ finishReason: lastStep.finishReason,
8561
+ rawFinishReason: lastStep.rawFinishReason,
8562
+ usage: lastStep.usage,
8563
+ content: lastStep.content,
8564
+ text: lastStep.text,
8565
+ reasoningText: lastStep.reasoningText,
8566
+ reasoning: lastStep.reasoning,
8567
+ files: lastStep.files,
8568
+ sources: lastStep.sources,
8569
+ toolCalls: lastStep.toolCalls,
8570
+ staticToolCalls: lastStep.staticToolCalls,
8571
+ dynamicToolCalls: lastStep.dynamicToolCalls,
8572
+ toolResults: lastStep.toolResults,
8573
+ staticToolResults: lastStep.staticToolResults,
8574
+ dynamicToolResults: lastStep.dynamicToolResults,
8575
+ request: lastStep.request,
8576
+ response: lastStep.response,
8577
+ warnings: lastStep.warnings,
8578
+ providerMetadata: lastStep.providerMetadata,
8579
+ steps,
8580
+ totalUsage
8581
+ },
8582
+ callbacks: [
8583
+ onFinish,
8584
+ globalTelemetry.onFinish
8585
+ ]
8586
+ });
8361
8587
  let resolvedOutput;
8362
8588
  if (lastStep.finishReason === "stop") {
8363
8589
  const outputSpecification = output != null ? output : text();
@@ -8975,7 +9201,8 @@ function processUIMessageStream({
8975
9201
  state.message.parts.push({
8976
9202
  type: "file",
8977
9203
  mediaType: chunk.mediaType,
8978
- url: chunk.url
9204
+ url: chunk.url,
9205
+ ...chunk.providerMetadata != null ? { providerMetadata: chunk.providerMetadata } : {}
8979
9206
  });
8980
9207
  write();
8981
9208
  break;
@@ -9100,7 +9327,9 @@ function processUIMessageStream({
9100
9327
  break;
9101
9328
  }
9102
9329
  case "tool-input-error": {
9103
- if (chunk.dynamic) {
9330
+ const existingPart = state.message.parts.filter(isToolUIPart).find((p) => p.toolCallId === chunk.toolCallId);
9331
+ const isDynamic = existingPart != null ? existingPart.type === "dynamic-tool" : !!chunk.dynamic;
9332
+ if (isDynamic) {
9104
9333
  updateDynamicToolPart({
9105
9334
  toolCallId: chunk.toolCallId,
9106
9335
  toolName: chunk.toolName,
@@ -9578,7 +9807,11 @@ function runToolsTransformation({
9578
9807
  abortSignal,
9579
9808
  repairToolCall,
9580
9809
  experimental_context,
9581
- generateId: generateId2
9810
+ generateId: generateId2,
9811
+ stepNumber,
9812
+ model,
9813
+ onToolCallStart,
9814
+ onToolCallFinish
9582
9815
  }) {
9583
9816
  let toolResultsStreamController = null;
9584
9817
  const toolResultsStream = new ReadableStream({
@@ -9626,7 +9859,8 @@ function runToolsTransformation({
9626
9859
  file: new DefaultGeneratedFileWithType({
9627
9860
  data: chunk.data,
9628
9861
  mediaType: chunk.mediaType
9629
- })
9862
+ }),
9863
+ ...chunk.providerMetadata != null ? { providerMetadata: chunk.providerMetadata } : {}
9630
9864
  });
9631
9865
  break;
9632
9866
  }
@@ -9720,6 +9954,10 @@ function runToolsTransformation({
9720
9954
  messages,
9721
9955
  abortSignal,
9722
9956
  experimental_context,
9957
+ stepNumber,
9958
+ model,
9959
+ onToolCallStart,
9960
+ onToolCallFinish,
9723
9961
  onPreliminaryToolResult: (result) => {
9724
9962
  toolResultsStreamController.enqueue(result);
9725
9963
  }
@@ -9836,6 +10074,10 @@ function streamText({
9836
10074
  onFinish,
9837
10075
  onAbort,
9838
10076
  onStepFinish,
10077
+ experimental_onStart: onStart,
10078
+ experimental_onStepStart: onStepStart,
10079
+ experimental_onToolCallStart: onToolCallStart,
10080
+ experimental_onToolCallFinish: onToolCallFinish,
9839
10081
  experimental_context,
9840
10082
  experimental_include: include,
9841
10083
  _internal: { now: now2 = now, generateId: generateId2 = originalGenerateId2 } = {},
@@ -9875,11 +10117,18 @@ function streamText({
9875
10117
  providerOptions,
9876
10118
  prepareStep,
9877
10119
  includeRawChunks,
10120
+ timeout,
10121
+ stopWhen,
10122
+ originalAbortSignal: abortSignal,
9878
10123
  onChunk,
9879
10124
  onError,
9880
10125
  onFinish,
9881
10126
  onAbort,
9882
10127
  onStepFinish,
10128
+ onStart,
10129
+ onStepStart,
10130
+ onToolCallStart,
10131
+ onToolCallFinish,
9883
10132
  now: now2,
9884
10133
  generateId: generateId2,
9885
10134
  experimental_context,
@@ -9976,11 +10225,18 @@ var DefaultStreamTextResult = class {
9976
10225
  includeRawChunks,
9977
10226
  now: now2,
9978
10227
  generateId: generateId2,
10228
+ timeout,
10229
+ stopWhen,
10230
+ originalAbortSignal,
9979
10231
  onChunk,
9980
10232
  onError,
9981
10233
  onFinish,
9982
10234
  onAbort,
9983
10235
  onStepFinish,
10236
+ onStart,
10237
+ onStepStart,
10238
+ onToolCallStart,
10239
+ onToolCallFinish,
9984
10240
  experimental_context,
9985
10241
  download: download2,
9986
10242
  include
@@ -9992,6 +10248,8 @@ var DefaultStreamTextResult = class {
9992
10248
  this.outputSpecification = output;
9993
10249
  this.includeRawChunks = includeRawChunks;
9994
10250
  this.tools = tools;
10251
+ const createGlobalTelemetry = getGlobalTelemetryIntegration();
10252
+ const globalTelemetry = createGlobalTelemetry(telemetry == null ? void 0 : telemetry.integrations);
9995
10253
  let stepFinish;
9996
10254
  let recordedContent = [];
9997
10255
  const recordedResponseMessages = [];
@@ -10093,7 +10351,11 @@ var DefaultStreamTextResult = class {
10093
10351
  delete activeReasoningContent[part.id];
10094
10352
  }
10095
10353
  if (part.type === "file") {
10096
- recordedContent.push({ type: "file", file: part.file });
10354
+ recordedContent.push({
10355
+ type: "file",
10356
+ file: part.file,
10357
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
10358
+ });
10097
10359
  }
10098
10360
  if (part.type === "source") {
10099
10361
  recordedContent.push(part);
@@ -10124,12 +10386,8 @@ var DefaultStreamTextResult = class {
10124
10386
  });
10125
10387
  const currentStepResult = new DefaultStepResult({
10126
10388
  stepNumber: recordedSteps.length,
10127
- model: {
10128
- provider: model.provider,
10129
- modelId: model.modelId
10130
- },
10131
- functionId: telemetry == null ? void 0 : telemetry.functionId,
10132
- metadata: telemetry == null ? void 0 : telemetry.metadata,
10389
+ model: modelInfo,
10390
+ ...callbackTelemetryProps,
10133
10391
  experimental_context,
10134
10392
  content: recordedContent,
10135
10393
  finishReason: part.finishReason,
@@ -10143,11 +10401,14 @@ var DefaultStreamTextResult = class {
10143
10401
  },
10144
10402
  providerMetadata: part.providerMetadata
10145
10403
  });
10146
- await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));
10404
+ await notify({
10405
+ event: currentStepResult,
10406
+ callbacks: [onStepFinish, globalTelemetry.onStepFinish]
10407
+ });
10147
10408
  logWarnings({
10148
10409
  warnings: recordedWarnings,
10149
- provider: model.provider,
10150
- model: model.modelId
10410
+ provider: modelInfo.provider,
10411
+ model: modelInfo.modelId
10151
10412
  });
10152
10413
  recordedSteps.push(currentStepResult);
10153
10414
  recordedResponseMessages.push(...stepMessages);
@@ -10178,34 +10439,40 @@ var DefaultStreamTextResult = class {
10178
10439
  self._totalUsage.resolve(totalUsage);
10179
10440
  self._steps.resolve(recordedSteps);
10180
10441
  const finalStep = recordedSteps[recordedSteps.length - 1];
10181
- await (onFinish == null ? void 0 : onFinish({
10182
- stepNumber: finalStep.stepNumber,
10183
- model: finalStep.model,
10184
- functionId: finalStep.functionId,
10185
- metadata: finalStep.metadata,
10186
- experimental_context: finalStep.experimental_context,
10187
- finishReason: finalStep.finishReason,
10188
- rawFinishReason: finalStep.rawFinishReason,
10189
- totalUsage,
10190
- usage: finalStep.usage,
10191
- content: finalStep.content,
10192
- text: finalStep.text,
10193
- reasoningText: finalStep.reasoningText,
10194
- reasoning: finalStep.reasoning,
10195
- files: finalStep.files,
10196
- sources: finalStep.sources,
10197
- toolCalls: finalStep.toolCalls,
10198
- staticToolCalls: finalStep.staticToolCalls,
10199
- dynamicToolCalls: finalStep.dynamicToolCalls,
10200
- toolResults: finalStep.toolResults,
10201
- staticToolResults: finalStep.staticToolResults,
10202
- dynamicToolResults: finalStep.dynamicToolResults,
10203
- request: finalStep.request,
10204
- response: finalStep.response,
10205
- warnings: finalStep.warnings,
10206
- providerMetadata: finalStep.providerMetadata,
10207
- steps: recordedSteps
10208
- }));
10442
+ await notify({
10443
+ event: {
10444
+ stepNumber: finalStep.stepNumber,
10445
+ model: finalStep.model,
10446
+ functionId: finalStep.functionId,
10447
+ metadata: finalStep.metadata,
10448
+ experimental_context: finalStep.experimental_context,
10449
+ finishReason: finalStep.finishReason,
10450
+ rawFinishReason: finalStep.rawFinishReason,
10451
+ totalUsage,
10452
+ usage: finalStep.usage,
10453
+ content: finalStep.content,
10454
+ text: finalStep.text,
10455
+ reasoningText: finalStep.reasoningText,
10456
+ reasoning: finalStep.reasoning,
10457
+ files: finalStep.files,
10458
+ sources: finalStep.sources,
10459
+ toolCalls: finalStep.toolCalls,
10460
+ staticToolCalls: finalStep.staticToolCalls,
10461
+ dynamicToolCalls: finalStep.dynamicToolCalls,
10462
+ toolResults: finalStep.toolResults,
10463
+ staticToolResults: finalStep.staticToolResults,
10464
+ dynamicToolResults: finalStep.dynamicToolResults,
10465
+ request: finalStep.request,
10466
+ response: finalStep.response,
10467
+ warnings: finalStep.warnings,
10468
+ providerMetadata: finalStep.providerMetadata,
10469
+ steps: recordedSteps
10470
+ },
10471
+ callbacks: [
10472
+ onFinish,
10473
+ globalTelemetry.onFinish
10474
+ ]
10475
+ });
10209
10476
  rootSpan.setAttributes(
10210
10477
  await selectTelemetryAttributes({
10211
10478
  telemetry,
@@ -10306,6 +10573,11 @@ var DefaultStreamTextResult = class {
10306
10573
  settings: { ...callSettings, maxRetries }
10307
10574
  });
10308
10575
  const self = this;
10576
+ const modelInfo = { provider: model.provider, modelId: model.modelId };
10577
+ const callbackTelemetryProps = {
10578
+ functionId: telemetry == null ? void 0 : telemetry.functionId,
10579
+ metadata: telemetry == null ? void 0 : telemetry.metadata
10580
+ };
10309
10581
  recordSpan({
10310
10582
  name: "ai.streamText",
10311
10583
  attributes: selectTelemetryAttributes({
@@ -10328,6 +10600,39 @@ var DefaultStreamTextResult = class {
10328
10600
  prompt,
10329
10601
  messages
10330
10602
  });
10603
+ await notify({
10604
+ event: {
10605
+ model: modelInfo,
10606
+ system,
10607
+ prompt,
10608
+ messages,
10609
+ tools,
10610
+ toolChoice,
10611
+ activeTools,
10612
+ maxOutputTokens: callSettings.maxOutputTokens,
10613
+ temperature: callSettings.temperature,
10614
+ topP: callSettings.topP,
10615
+ topK: callSettings.topK,
10616
+ presencePenalty: callSettings.presencePenalty,
10617
+ frequencyPenalty: callSettings.frequencyPenalty,
10618
+ stopSequences: callSettings.stopSequences,
10619
+ seed: callSettings.seed,
10620
+ maxRetries,
10621
+ timeout,
10622
+ headers,
10623
+ providerOptions,
10624
+ stopWhen,
10625
+ output,
10626
+ abortSignal: originalAbortSignal,
10627
+ include,
10628
+ ...callbackTelemetryProps,
10629
+ experimental_context
10630
+ },
10631
+ callbacks: [
10632
+ onStart,
10633
+ globalTelemetry.onStart
10634
+ ]
10635
+ });
10331
10636
  const initialMessages = initialPrompt.messages;
10332
10637
  const initialResponseMessages = [];
10333
10638
  const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
@@ -10374,6 +10679,16 @@ var DefaultStreamTextResult = class {
10374
10679
  messages: initialMessages,
10375
10680
  abortSignal,
10376
10681
  experimental_context,
10682
+ stepNumber: recordedSteps.length,
10683
+ model: modelInfo,
10684
+ onToolCallStart: [
10685
+ onToolCallStart,
10686
+ globalTelemetry.onToolCallStart
10687
+ ],
10688
+ onToolCallFinish: [
10689
+ onToolCallFinish,
10690
+ globalTelemetry.onToolCallFinish
10691
+ ],
10377
10692
  onPreliminaryToolResult: (result2) => {
10378
10693
  toolExecutionStepStreamController == null ? void 0 : toolExecutionStepStreamController.enqueue(result2);
10379
10694
  }
@@ -10410,7 +10725,7 @@ var DefaultStreamTextResult = class {
10410
10725
  input: output2.input,
10411
10726
  tool: tools == null ? void 0 : tools[output2.toolName],
10412
10727
  output: output2.type === "tool-result" ? output2.output : output2.error,
10413
- errorMode: output2.type === "tool-error" ? "json" : "none"
10728
+ errorMode: output2.type === "tool-error" ? "text" : "none"
10414
10729
  })
10415
10730
  });
10416
10731
  }
@@ -10440,7 +10755,7 @@ var DefaultStreamTextResult = class {
10440
10755
  responseMessages,
10441
10756
  usage
10442
10757
  }) {
10443
- var _a21, _b92, _c, _d, _e, _f, _g;
10758
+ var _a21, _b92, _c, _d, _e, _f, _g, _h, _i;
10444
10759
  const includeRawChunks2 = self.includeRawChunks;
10445
10760
  const stepTimeoutId = stepTimeoutMs != null ? setTimeout(() => stepAbortController.abort(), stepTimeoutMs) : void 0;
10446
10761
  let chunkTimeoutId = void 0;
@@ -10479,6 +10794,10 @@ var DefaultStreamTextResult = class {
10479
10794
  const stepModel = resolveLanguageModel(
10480
10795
  (_a21 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a21 : model
10481
10796
  );
10797
+ const stepModelInfo = {
10798
+ provider: stepModel.provider,
10799
+ modelId: stepModel.modelId
10800
+ };
10482
10801
  const promptMessages = await convertToLanguageModelPrompt({
10483
10802
  prompt: {
10484
10803
  system: (_b92 = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b92 : initialPrompt.system,
@@ -10487,16 +10806,44 @@ var DefaultStreamTextResult = class {
10487
10806
  supportedUrls: await stepModel.supportedUrls,
10488
10807
  download: download2
10489
10808
  });
10809
+ const stepActiveTools = (_d = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _d : activeTools;
10490
10810
  const { toolChoice: stepToolChoice, tools: stepTools } = await prepareToolsAndToolChoice({
10491
10811
  tools,
10492
- toolChoice: (_d = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _d : toolChoice,
10493
- activeTools: (_e = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _e : activeTools
10812
+ toolChoice: (_e = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _e : toolChoice,
10813
+ activeTools: stepActiveTools
10494
10814
  });
10495
10815
  experimental_context = (_f = prepareStepResult == null ? void 0 : prepareStepResult.experimental_context) != null ? _f : experimental_context;
10816
+ const stepMessages = (_g = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _g : stepInputMessages;
10817
+ const stepSystem = (_h = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _h : initialPrompt.system;
10496
10818
  const stepProviderOptions = mergeObjects(
10497
10819
  providerOptions,
10498
10820
  prepareStepResult == null ? void 0 : prepareStepResult.providerOptions
10499
10821
  );
10822
+ await notify({
10823
+ event: {
10824
+ stepNumber: recordedSteps.length,
10825
+ model: stepModelInfo,
10826
+ system: stepSystem,
10827
+ messages: stepMessages,
10828
+ tools,
10829
+ toolChoice: stepToolChoice,
10830
+ activeTools: stepActiveTools,
10831
+ steps: [...recordedSteps],
10832
+ providerOptions: stepProviderOptions,
10833
+ timeout,
10834
+ headers,
10835
+ stopWhen,
10836
+ output,
10837
+ abortSignal: originalAbortSignal,
10838
+ include,
10839
+ ...callbackTelemetryProps,
10840
+ experimental_context
10841
+ },
10842
+ callbacks: [
10843
+ onStepStart,
10844
+ globalTelemetry.onStepStart
10845
+ ]
10846
+ });
10500
10847
  const {
10501
10848
  result: { stream: stream2, response, request },
10502
10849
  doStreamSpan,
@@ -10568,9 +10915,19 @@ var DefaultStreamTextResult = class {
10568
10915
  repairToolCall,
10569
10916
  abortSignal,
10570
10917
  experimental_context,
10571
- generateId: generateId2
10918
+ generateId: generateId2,
10919
+ stepNumber: recordedSteps.length,
10920
+ model: stepModelInfo,
10921
+ onToolCallStart: [
10922
+ onToolCallStart,
10923
+ globalTelemetry.onToolCallStart
10924
+ ],
10925
+ onToolCallFinish: [
10926
+ onToolCallFinish,
10927
+ globalTelemetry.onToolCallFinish
10928
+ ]
10572
10929
  });
10573
- const stepRequest = ((_g = include == null ? void 0 : include.requestBody) != null ? _g : true) ? request != null ? request : {} : { ...request, body: void 0 };
10930
+ const stepRequest = ((_i = include == null ? void 0 : include.requestBody) != null ? _i : true) ? request != null ? request : {} : { ...request, body: void 0 };
10574
10931
  const stepToolCalls = [];
10575
10932
  const stepToolOutputs = [];
10576
10933
  let warnings;
@@ -10583,7 +10940,7 @@ var DefaultStreamTextResult = class {
10583
10940
  let stepResponse = {
10584
10941
  id: generateId2(),
10585
10942
  timestamp: /* @__PURE__ */ new Date(),
10586
- modelId: model.modelId
10943
+ modelId: modelInfo.modelId
10587
10944
  };
10588
10945
  let activeText = "";
10589
10946
  self.addStream(
@@ -11150,7 +11507,8 @@ var DefaultStreamTextResult = class {
11150
11507
  controller.enqueue({
11151
11508
  type: "file",
11152
11509
  mediaType: part.file.mediaType,
11153
- url: `data:${part.file.mediaType};base64,${part.file.base64}`
11510
+ url: `data:${part.file.mediaType};base64,${part.file.base64}`,
11511
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
11154
11512
  });
11155
11513
  break;
11156
11514
  }
@@ -11420,9 +11778,17 @@ var ToolLoopAgent = class {
11420
11778
  }
11421
11779
  async prepareCall(options) {
11422
11780
  var _a21, _b92, _c, _d;
11423
- const { onStepFinish: _settingsOnStepFinish, ...settingsWithoutCallback } = this.settings;
11781
+ const {
11782
+ experimental_onStart: _settingsOnStart,
11783
+ experimental_onStepStart: _settingsOnStepStart,
11784
+ experimental_onToolCallStart: _settingsOnToolCallStart,
11785
+ experimental_onToolCallFinish: _settingsOnToolCallFinish,
11786
+ onStepFinish: _settingsOnStepFinish,
11787
+ onFinish: _settingsOnFinish,
11788
+ ...settingsWithoutCallbacks
11789
+ } = this.settings;
11424
11790
  const baseCallArgs = {
11425
- ...settingsWithoutCallback,
11791
+ ...settingsWithoutCallbacks,
11426
11792
  stopWhen: (_a21 = this.settings.stopWhen) != null ? _a21 : stepCountIs(20),
11427
11793
  ...options
11428
11794
  };
@@ -11437,15 +11803,14 @@ var ToolLoopAgent = class {
11437
11803
  ...{ system: instructions, messages, prompt }
11438
11804
  };
11439
11805
  }
11440
- mergeOnStepFinishCallbacks(methodCallback) {
11441
- const constructorCallback = this.settings.onStepFinish;
11442
- if (methodCallback && constructorCallback) {
11443
- return async (stepResult) => {
11444
- await constructorCallback(stepResult);
11445
- await methodCallback(stepResult);
11806
+ mergeCallbacks(settingsCallback, methodCallback) {
11807
+ if (methodCallback && settingsCallback) {
11808
+ return async (event) => {
11809
+ await settingsCallback(event);
11810
+ await methodCallback(event);
11446
11811
  };
11447
11812
  }
11448
- return methodCallback != null ? methodCallback : constructorCallback;
11813
+ return methodCallback != null ? methodCallback : settingsCallback;
11449
11814
  }
11450
11815
  /**
11451
11816
  * Generates an output from the agent (non-streaming).
@@ -11453,14 +11818,39 @@ var ToolLoopAgent = class {
11453
11818
  async generate({
11454
11819
  abortSignal,
11455
11820
  timeout,
11821
+ experimental_onStart,
11822
+ experimental_onStepStart,
11823
+ experimental_onToolCallStart,
11824
+ experimental_onToolCallFinish,
11456
11825
  onStepFinish,
11826
+ onFinish,
11457
11827
  ...options
11458
11828
  }) {
11459
11829
  return generateText({
11460
11830
  ...await this.prepareCall(options),
11461
11831
  abortSignal,
11462
11832
  timeout,
11463
- onStepFinish: this.mergeOnStepFinishCallbacks(onStepFinish)
11833
+ experimental_onStart: this.mergeCallbacks(
11834
+ this.settings.experimental_onStart,
11835
+ experimental_onStart
11836
+ ),
11837
+ experimental_onStepStart: this.mergeCallbacks(
11838
+ this.settings.experimental_onStepStart,
11839
+ experimental_onStepStart
11840
+ ),
11841
+ experimental_onToolCallStart: this.mergeCallbacks(
11842
+ this.settings.experimental_onToolCallStart,
11843
+ experimental_onToolCallStart
11844
+ ),
11845
+ experimental_onToolCallFinish: this.mergeCallbacks(
11846
+ this.settings.experimental_onToolCallFinish,
11847
+ experimental_onToolCallFinish
11848
+ ),
11849
+ onStepFinish: this.mergeCallbacks(
11850
+ this.settings.onStepFinish,
11851
+ onStepFinish
11852
+ ),
11853
+ onFinish: this.mergeCallbacks(this.settings.onFinish, onFinish)
11464
11854
  });
11465
11855
  }
11466
11856
  /**
@@ -11470,7 +11860,12 @@ var ToolLoopAgent = class {
11470
11860
  abortSignal,
11471
11861
  timeout,
11472
11862
  experimental_transform,
11863
+ experimental_onStart,
11864
+ experimental_onStepStart,
11865
+ experimental_onToolCallStart,
11866
+ experimental_onToolCallFinish,
11473
11867
  onStepFinish,
11868
+ onFinish,
11474
11869
  ...options
11475
11870
  }) {
11476
11871
  return streamText({
@@ -11478,7 +11873,27 @@ var ToolLoopAgent = class {
11478
11873
  abortSignal,
11479
11874
  timeout,
11480
11875
  experimental_transform,
11481
- onStepFinish: this.mergeOnStepFinishCallbacks(onStepFinish)
11876
+ experimental_onStart: this.mergeCallbacks(
11877
+ this.settings.experimental_onStart,
11878
+ experimental_onStart
11879
+ ),
11880
+ experimental_onStepStart: this.mergeCallbacks(
11881
+ this.settings.experimental_onStepStart,
11882
+ experimental_onStepStart
11883
+ ),
11884
+ experimental_onToolCallStart: this.mergeCallbacks(
11885
+ this.settings.experimental_onToolCallStart,
11886
+ experimental_onToolCallStart
11887
+ ),
11888
+ experimental_onToolCallFinish: this.mergeCallbacks(
11889
+ this.settings.experimental_onToolCallFinish,
11890
+ experimental_onToolCallFinish
11891
+ ),
11892
+ onStepFinish: this.mergeCallbacks(
11893
+ this.settings.onStepFinish,
11894
+ onStepFinish
11895
+ ),
11896
+ onFinish: this.mergeCallbacks(this.settings.onFinish, onFinish)
11482
11897
  });
11483
11898
  }
11484
11899
  };
@@ -11606,5 +12021,5 @@ createIdGenerator({ prefix: "aiobj", size: 24 });
11606
12021
  createIdGenerator({ prefix: "aiobj", size: 24 });
11607
12022
 
11608
12023
  export { ToolLoopAgent, createGatewayProvider, embed };
11609
- //# sourceMappingURL=chunk-IOY7Y5GV.js.map
11610
- //# sourceMappingURL=chunk-IOY7Y5GV.js.map
12024
+ //# sourceMappingURL=chunk-3VVNJPTO.js.map
12025
+ //# sourceMappingURL=chunk-3VVNJPTO.js.map