@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
@@ -559,6 +559,100 @@ async function readResponseWithSizeLimit({
559
559
  }
560
560
  return result;
561
561
  }
562
+ function validateDownloadUrl(url) {
563
+ let parsed;
564
+ try {
565
+ parsed = new URL(url);
566
+ } catch (e) {
567
+ throw new DownloadError({
568
+ url,
569
+ message: `Invalid URL: ${url}`
570
+ });
571
+ }
572
+ if (parsed.protocol !== "http:" && parsed.protocol !== "https:") {
573
+ throw new DownloadError({
574
+ url,
575
+ message: `URL scheme must be http or https, got ${parsed.protocol}`
576
+ });
577
+ }
578
+ const hostname = parsed.hostname;
579
+ if (!hostname) {
580
+ throw new DownloadError({
581
+ url,
582
+ message: `URL must have a hostname`
583
+ });
584
+ }
585
+ if (hostname === "localhost" || hostname.endsWith(".local") || hostname.endsWith(".localhost")) {
586
+ throw new DownloadError({
587
+ url,
588
+ message: `URL with hostname ${hostname} is not allowed`
589
+ });
590
+ }
591
+ if (hostname.startsWith("[") && hostname.endsWith("]")) {
592
+ const ipv6 = hostname.slice(1, -1);
593
+ if (isPrivateIPv6(ipv6)) {
594
+ throw new DownloadError({
595
+ url,
596
+ message: `URL with IPv6 address ${hostname} is not allowed`
597
+ });
598
+ }
599
+ return;
600
+ }
601
+ if (isIPv4(hostname)) {
602
+ if (isPrivateIPv4(hostname)) {
603
+ throw new DownloadError({
604
+ url,
605
+ message: `URL with IP address ${hostname} is not allowed`
606
+ });
607
+ }
608
+ return;
609
+ }
610
+ }
611
+ function isIPv4(hostname) {
612
+ const parts = hostname.split(".");
613
+ if (parts.length !== 4) return false;
614
+ return parts.every((part) => {
615
+ const num = Number(part);
616
+ return Number.isInteger(num) && num >= 0 && num <= 255 && String(num) === part;
617
+ });
618
+ }
619
+ function isPrivateIPv4(ip) {
620
+ const parts = ip.split(".").map(Number);
621
+ const [a, b] = parts;
622
+ if (a === 0) return true;
623
+ if (a === 10) return true;
624
+ if (a === 127) return true;
625
+ if (a === 169 && b === 254) return true;
626
+ if (a === 172 && b >= 16 && b <= 31) return true;
627
+ if (a === 192 && b === 168) return true;
628
+ return false;
629
+ }
630
+ function isPrivateIPv6(ip) {
631
+ const normalized = ip.toLowerCase();
632
+ if (normalized === "::1") return true;
633
+ if (normalized === "::") return true;
634
+ if (normalized.startsWith("::ffff:")) {
635
+ const mappedPart = normalized.slice(7);
636
+ if (isIPv4(mappedPart)) {
637
+ return isPrivateIPv4(mappedPart);
638
+ }
639
+ const hexParts = mappedPart.split(":");
640
+ if (hexParts.length === 2) {
641
+ const high = parseInt(hexParts[0], 16);
642
+ const low = parseInt(hexParts[1], 16);
643
+ if (!isNaN(high) && !isNaN(low)) {
644
+ const a = high >> 8 & 255;
645
+ const b = high & 255;
646
+ const c = low >> 8 & 255;
647
+ const d = low & 255;
648
+ return isPrivateIPv4(`${a}.${b}.${c}.${d}`);
649
+ }
650
+ }
651
+ }
652
+ if (normalized.startsWith("fc") || normalized.startsWith("fd")) return true;
653
+ if (normalized.startsWith("fe80")) return true;
654
+ return false;
655
+ }
562
656
  var createIdGenerator = ({
563
657
  prefix,
564
658
  size = 16,
@@ -699,7 +793,7 @@ function withUserAgentSuffix(headers, ...userAgentSuffixParts) {
699
793
  );
700
794
  return Object.fromEntries(normalizedHeaders.entries());
701
795
  }
702
- var VERSION = "4.0.15";
796
+ var VERSION = "4.0.19";
703
797
  var getOriginalFetch = () => globalThis.fetch;
704
798
  var getFromApi = async ({
705
799
  url,
@@ -796,8 +890,8 @@ function loadOptionalSetting({
796
890
  }
797
891
  return settingValue;
798
892
  }
799
- var suspectProtoRx = /"__proto__"\s*:/;
800
- var suspectConstructorRx = /"constructor"\s*:/;
893
+ var suspectProtoRx = /"(?:_|\\u005[Ff])(?:_|\\u005[Ff])(?:p|\\u0070)(?:r|\\u0072)(?:o|\\u006[Ff])(?:t|\\u0074)(?:o|\\u006[Ff])(?:_|\\u005[Ff])(?:_|\\u005[Ff])"\s*:/;
894
+ 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*:/;
801
895
  function _parse(text2) {
802
896
  const obj = JSON.parse(text2);
803
897
  if (obj === null || typeof obj !== "object") {
@@ -817,7 +911,7 @@ function filter(obj) {
817
911
  if (Object.prototype.hasOwnProperty.call(node, "__proto__")) {
818
912
  throw new SyntaxError("Object contains forbidden prototype property");
819
913
  }
820
- if (Object.prototype.hasOwnProperty.call(node, "constructor") && Object.prototype.hasOwnProperty.call(node.constructor, "prototype")) {
914
+ if (Object.prototype.hasOwnProperty.call(node, "constructor") && node.constructor !== null && typeof node.constructor === "object" && Object.prototype.hasOwnProperty.call(node.constructor, "prototype")) {
821
915
  throw new SyntaxError("Object contains forbidden prototype property");
822
916
  }
823
917
  for (const key in node) {
@@ -3401,16 +3495,14 @@ var GatewayVideoModel = class {
3401
3495
  var _a93;
3402
3496
  const resolvedHeaders = await resolve(this.config.headers());
3403
3497
  try {
3404
- const {
3405
- responseHeaders,
3406
- value: responseBody
3407
- } = await postJsonToApi({
3498
+ const { responseHeaders, value: responseBody } = await postJsonToApi({
3408
3499
  url: this.getUrl(),
3409
3500
  headers: combineHeaders(
3410
3501
  resolvedHeaders,
3411
3502
  headers != null ? headers : {},
3412
3503
  this.getModelConfigHeaders(),
3413
- await resolve(this.config.o11yHeaders)
3504
+ await resolve(this.config.o11yHeaders),
3505
+ { accept: "text/event-stream" }
3414
3506
  ),
3415
3507
  body: {
3416
3508
  prompt,
@@ -3423,9 +3515,70 @@ var GatewayVideoModel = class {
3423
3515
  ...providerOptions && { providerOptions },
3424
3516
  ...image && { image: maybeEncodeVideoFile(image) }
3425
3517
  },
3426
- successfulResponseHandler: createJsonResponseHandler(
3427
- gatewayVideoResponseSchema
3428
- ),
3518
+ successfulResponseHandler: async ({
3519
+ response,
3520
+ url,
3521
+ requestBodyValues
3522
+ }) => {
3523
+ if (response.body == null) {
3524
+ throw new APICallError({
3525
+ message: "SSE response body is empty",
3526
+ url,
3527
+ requestBodyValues,
3528
+ statusCode: response.status
3529
+ });
3530
+ }
3531
+ const eventStream = parseJsonEventStream({
3532
+ stream: response.body,
3533
+ schema: gatewayVideoEventSchema
3534
+ });
3535
+ const reader = eventStream.getReader();
3536
+ const { done, value: parseResult } = await reader.read();
3537
+ reader.releaseLock();
3538
+ if (done || !parseResult) {
3539
+ throw new APICallError({
3540
+ message: "SSE stream ended without a data event",
3541
+ url,
3542
+ requestBodyValues,
3543
+ statusCode: response.status
3544
+ });
3545
+ }
3546
+ if (!parseResult.success) {
3547
+ throw new APICallError({
3548
+ message: "Failed to parse video SSE event",
3549
+ cause: parseResult.error,
3550
+ url,
3551
+ requestBodyValues,
3552
+ statusCode: response.status
3553
+ });
3554
+ }
3555
+ const event = parseResult.value;
3556
+ if (event.type === "error") {
3557
+ throw new APICallError({
3558
+ message: event.message,
3559
+ statusCode: event.statusCode,
3560
+ url,
3561
+ requestBodyValues,
3562
+ responseHeaders: Object.fromEntries([...response.headers]),
3563
+ responseBody: JSON.stringify(event),
3564
+ data: {
3565
+ error: {
3566
+ message: event.message,
3567
+ type: event.errorType,
3568
+ param: event.param
3569
+ }
3570
+ }
3571
+ });
3572
+ }
3573
+ return {
3574
+ value: {
3575
+ videos: event.videos,
3576
+ warnings: event.warnings,
3577
+ providerMetadata: event.providerMetadata
3578
+ },
3579
+ responseHeaders: Object.fromEntries([...response.headers])
3580
+ };
3581
+ },
3429
3582
  failedResponseHandler: createJsonErrorResponseHandler({
3430
3583
  errorSchema: z4.z.any(),
3431
3584
  errorToMessage: (data) => data
@@ -3497,11 +3650,21 @@ var gatewayVideoWarningSchema = z4.z.discriminatedUnion("type", [
3497
3650
  message: z4.z.string()
3498
3651
  })
3499
3652
  ]);
3500
- var gatewayVideoResponseSchema = z4.z.object({
3501
- videos: z4.z.array(gatewayVideoDataSchema),
3502
- warnings: z4.z.array(gatewayVideoWarningSchema).optional(),
3503
- providerMetadata: z4.z.record(z4.z.string(), providerMetadataEntrySchema2).optional()
3504
- });
3653
+ var gatewayVideoEventSchema = z4.z.discriminatedUnion("type", [
3654
+ z4.z.object({
3655
+ type: z4.z.literal("result"),
3656
+ videos: z4.z.array(gatewayVideoDataSchema),
3657
+ warnings: z4.z.array(gatewayVideoWarningSchema).optional(),
3658
+ providerMetadata: z4.z.record(z4.z.string(), providerMetadataEntrySchema2).optional()
3659
+ }),
3660
+ z4.z.object({
3661
+ type: z4.z.literal("error"),
3662
+ message: z4.z.string(),
3663
+ errorType: z4.z.string(),
3664
+ statusCode: z4.z.number(),
3665
+ param: z4.z.unknown().nullable()
3666
+ })
3667
+ ]);
3505
3668
  var parallelSearchInputSchema = lazySchema(
3506
3669
  () => zodSchema(
3507
3670
  zod.z.object({
@@ -3678,7 +3841,7 @@ async function getVercelRequestId() {
3678
3841
  var _a93;
3679
3842
  return (_a93 = (0, import_oidc.getContext)().headers) == null ? void 0 : _a93["x-vercel-id"];
3680
3843
  }
3681
- var VERSION2 = "3.0.52";
3844
+ var VERSION2 = "3.0.66";
3682
3845
  var AI_GATEWAY_PROTOCOL_VERSION = "0.0.1";
3683
3846
  function createGatewayProvider(options = {}) {
3684
3847
  var _a93, _b92;
@@ -3721,13 +3884,18 @@ function createGatewayProvider(options = {}) {
3721
3884
  settingValue: void 0,
3722
3885
  environmentVariableName: "VERCEL_REGION"
3723
3886
  });
3887
+ const projectId = loadOptionalSetting({
3888
+ settingValue: void 0,
3889
+ environmentVariableName: "VERCEL_PROJECT_ID"
3890
+ });
3724
3891
  return async () => {
3725
3892
  const requestId = await getVercelRequestId();
3726
3893
  return {
3727
3894
  ...deploymentId && { "ai-o11y-deployment-id": deploymentId },
3728
3895
  ...environment && { "ai-o11y-environment": environment },
3729
3896
  ...region && { "ai-o11y-region": region },
3730
- ...requestId && { "ai-o11y-request-id": requestId }
3897
+ ...requestId && { "ai-o11y-request-id": requestId },
3898
+ ...projectId && { "ai-o11y-project-id": projectId }
3731
3899
  };
3732
3900
  };
3733
3901
  };
@@ -4806,6 +4974,19 @@ var RetryError = class extends AISDKError {
4806
4974
  }
4807
4975
  };
4808
4976
  _a19 = symbol19;
4977
+ function asArray(value) {
4978
+ return value === void 0 ? [] : Array.isArray(value) ? value : [value];
4979
+ }
4980
+ async function notify(options) {
4981
+ for (const callback of asArray(options.callbacks)) {
4982
+ if (callback == null)
4983
+ continue;
4984
+ try {
4985
+ await callback(options.event);
4986
+ } catch (_ignored) {
4987
+ }
4988
+ }
4989
+ }
4809
4990
  function formatWarning({
4810
4991
  warning,
4811
4992
  provider,
@@ -5136,7 +5317,7 @@ function detectMediaType({
5136
5317
  }
5137
5318
  return void 0;
5138
5319
  }
5139
- var VERSION3 = "6.0.94";
5320
+ var VERSION3 = "6.0.116";
5140
5321
  var download = async ({
5141
5322
  url,
5142
5323
  maxBytes,
@@ -5144,6 +5325,7 @@ var download = async ({
5144
5325
  }) => {
5145
5326
  var _a21;
5146
5327
  const urlText = url.toString();
5328
+ validateDownloadUrl(urlText);
5147
5329
  try {
5148
5330
  const response = await fetch(urlText, {
5149
5331
  headers: withUserAgentSuffix(
@@ -5244,9 +5426,6 @@ function convertDataContentToBase64String(content) {
5244
5426
  }
5245
5427
  return convertUint8ArrayToBase64(content);
5246
5428
  }
5247
- function asArray(value) {
5248
- return value === void 0 ? [] : Array.isArray(value) ? value : [value];
5249
- }
5250
5429
  async function convertToLanguageModelPrompt({
5251
5430
  prompt,
5252
5431
  supportedUrls,
@@ -6252,6 +6431,44 @@ function stringifyForTelemetry(prompt) {
6252
6431
  }))
6253
6432
  );
6254
6433
  }
6434
+ function getGlobalTelemetryIntegrations() {
6435
+ var _a21;
6436
+ return (_a21 = globalThis.AI_SDK_TELEMETRY_INTEGRATIONS) != null ? _a21 : [];
6437
+ }
6438
+ function getGlobalTelemetryIntegration() {
6439
+ const globalIntegrations = getGlobalTelemetryIntegrations();
6440
+ return (integrations) => {
6441
+ const localIntegrations = asArray(integrations);
6442
+ const allIntegrations = [...globalIntegrations, ...localIntegrations];
6443
+ function createTelemetryComposite(getListenerFromIntegration) {
6444
+ const listeners = allIntegrations.map(getListenerFromIntegration).filter(Boolean);
6445
+ return async (event) => {
6446
+ for (const listener of listeners) {
6447
+ try {
6448
+ await listener(event);
6449
+ } catch (_ignored) {
6450
+ }
6451
+ }
6452
+ };
6453
+ }
6454
+ return {
6455
+ onStart: createTelemetryComposite((integration) => integration.onStart),
6456
+ onStepStart: createTelemetryComposite(
6457
+ (integration) => integration.onStepStart
6458
+ ),
6459
+ onToolCallStart: createTelemetryComposite(
6460
+ (integration) => integration.onToolCallStart
6461
+ ),
6462
+ onToolCallFinish: createTelemetryComposite(
6463
+ (integration) => integration.onToolCallFinish
6464
+ ),
6465
+ onStepFinish: createTelemetryComposite(
6466
+ (integration) => integration.onStepFinish
6467
+ ),
6468
+ onFinish: createTelemetryComposite((integration) => integration.onFinish)
6469
+ };
6470
+ };
6471
+ }
6255
6472
  function asLanguageModelUsage(usage) {
6256
6473
  return {
6257
6474
  inputTokens: usage.inputTokens.total,
@@ -6584,6 +6801,16 @@ async function executeToolCall({
6584
6801
  if ((tool2 == null ? void 0 : tool2.execute) == null) {
6585
6802
  return void 0;
6586
6803
  }
6804
+ const baseCallbackEvent = {
6805
+ stepNumber,
6806
+ model,
6807
+ toolCall,
6808
+ messages,
6809
+ abortSignal,
6810
+ functionId: telemetry == null ? void 0 : telemetry.functionId,
6811
+ metadata: telemetry == null ? void 0 : telemetry.metadata,
6812
+ experimental_context
6813
+ };
6587
6814
  return recordSpan({
6588
6815
  name: "ai.toolCall",
6589
6816
  attributes: selectTelemetryAttributes({
@@ -6603,19 +6830,7 @@ async function executeToolCall({
6603
6830
  tracer,
6604
6831
  fn: async (span) => {
6605
6832
  let output;
6606
- try {
6607
- await (onToolCallStart == null ? void 0 : onToolCallStart({
6608
- stepNumber,
6609
- model,
6610
- toolCall,
6611
- messages,
6612
- abortSignal,
6613
- functionId: telemetry == null ? void 0 : telemetry.functionId,
6614
- metadata: telemetry == null ? void 0 : telemetry.metadata,
6615
- experimental_context
6616
- }));
6617
- } catch (_ignored) {
6618
- }
6833
+ await notify({ event: baseCallbackEvent, callbacks: onToolCallStart });
6619
6834
  const startTime = now();
6620
6835
  try {
6621
6836
  const stream = executeTool({
@@ -6642,22 +6857,15 @@ async function executeToolCall({
6642
6857
  }
6643
6858
  } catch (error) {
6644
6859
  const durationMs2 = now() - startTime;
6645
- try {
6646
- await (onToolCallFinish == null ? void 0 : onToolCallFinish({
6647
- stepNumber,
6648
- model,
6649
- toolCall,
6650
- messages,
6651
- abortSignal,
6860
+ await notify({
6861
+ event: {
6862
+ ...baseCallbackEvent,
6652
6863
  success: false,
6653
6864
  error,
6654
- durationMs: durationMs2,
6655
- functionId: telemetry == null ? void 0 : telemetry.functionId,
6656
- metadata: telemetry == null ? void 0 : telemetry.metadata,
6657
- experimental_context
6658
- }));
6659
- } catch (_ignored) {
6660
- }
6865
+ durationMs: durationMs2
6866
+ },
6867
+ callbacks: onToolCallFinish
6868
+ });
6661
6869
  recordErrorOnSpan(span, error);
6662
6870
  return {
6663
6871
  type: "tool-error",
@@ -6670,22 +6878,15 @@ async function executeToolCall({
6670
6878
  };
6671
6879
  }
6672
6880
  const durationMs = now() - startTime;
6673
- try {
6674
- await (onToolCallFinish == null ? void 0 : onToolCallFinish({
6675
- stepNumber,
6676
- model,
6677
- toolCall,
6678
- messages,
6679
- abortSignal,
6881
+ await notify({
6882
+ event: {
6883
+ ...baseCallbackEvent,
6680
6884
  success: true,
6681
6885
  output,
6682
- durationMs,
6683
- functionId: telemetry == null ? void 0 : telemetry.functionId,
6684
- metadata: telemetry == null ? void 0 : telemetry.metadata,
6685
- experimental_context
6686
- }));
6687
- } catch (_ignored) {
6688
- }
6886
+ durationMs
6887
+ },
6888
+ callbacks: onToolCallFinish
6889
+ });
6689
6890
  try {
6690
6891
  span.setAttributes(
6691
6892
  await selectTelemetryAttributes({
@@ -7818,6 +8019,7 @@ async function generateText({
7818
8019
  ...settings
7819
8020
  }) {
7820
8021
  const model = resolveLanguageModel(modelArg);
8022
+ const createGlobalTelemetry = getGlobalTelemetryIntegration();
7821
8023
  const stopConditions = asArray(stopWhen);
7822
8024
  const totalTimeoutMs = getTotalTimeoutMs(timeout);
7823
8025
  const stepTimeoutMs = getStepTimeoutMs(timeout);
@@ -7842,14 +8044,16 @@ async function generateText({
7842
8044
  headers: headersWithUserAgent,
7843
8045
  settings: { ...callSettings, maxRetries }
7844
8046
  });
8047
+ const modelInfo = { provider: model.provider, modelId: model.modelId };
7845
8048
  const initialPrompt = await standardizePrompt({
7846
8049
  system,
7847
8050
  prompt,
7848
8051
  messages
7849
8052
  });
7850
- try {
7851
- await (onStart == null ? void 0 : onStart({
7852
- model: { provider: model.provider, modelId: model.modelId },
8053
+ const globalTelemetry = createGlobalTelemetry(telemetry == null ? void 0 : telemetry.integrations);
8054
+ await notify({
8055
+ event: {
8056
+ model: modelInfo,
7853
8057
  system,
7854
8058
  prompt,
7855
8059
  messages,
@@ -7875,9 +8079,12 @@ async function generateText({
7875
8079
  functionId: telemetry == null ? void 0 : telemetry.functionId,
7876
8080
  metadata: telemetry == null ? void 0 : telemetry.metadata,
7877
8081
  experimental_context
7878
- }));
7879
- } catch (_ignored) {
7880
- }
8082
+ },
8083
+ callbacks: [
8084
+ onStart,
8085
+ globalTelemetry.onStart
8086
+ ]
8087
+ });
7881
8088
  const tracer = getTracer(telemetry);
7882
8089
  try {
7883
8090
  return await recordSpan({
@@ -7920,9 +8127,15 @@ async function generateText({
7920
8127
  abortSignal: mergedAbortSignal,
7921
8128
  experimental_context,
7922
8129
  stepNumber: 0,
7923
- model: { provider: model.provider, modelId: model.modelId },
7924
- onToolCallStart,
7925
- onToolCallFinish
8130
+ model: modelInfo,
8131
+ onToolCallStart: [
8132
+ onToolCallStart,
8133
+ globalTelemetry.onToolCallStart
8134
+ ],
8135
+ onToolCallFinish: [
8136
+ onToolCallFinish,
8137
+ globalTelemetry.onToolCallFinish
8138
+ ]
7926
8139
  });
7927
8140
  const toolContent = [];
7928
8141
  for (const output2 of toolOutputs) {
@@ -7931,7 +8144,7 @@ async function generateText({
7931
8144
  input: output2.input,
7932
8145
  tool: tools == null ? void 0 : tools[output2.toolName],
7933
8146
  output: output2.type === "tool-result" ? output2.output : output2.error,
7934
- errorMode: output2.type === "tool-error" ? "json" : "none"
8147
+ errorMode: output2.type === "tool-error" ? "text" : "none"
7935
8148
  });
7936
8149
  toolContent.push({
7937
8150
  type: "tool-result",
@@ -8002,6 +8215,10 @@ async function generateText({
8002
8215
  const stepModel = resolveLanguageModel(
8003
8216
  (_a21 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a21 : model
8004
8217
  );
8218
+ const stepModelInfo = {
8219
+ provider: stepModel.provider,
8220
+ modelId: stepModel.modelId
8221
+ };
8005
8222
  const promptMessages = await convertToLanguageModelPrompt({
8006
8223
  prompt: {
8007
8224
  system: (_b92 = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b92 : initialPrompt.system,
@@ -8023,13 +8240,10 @@ async function generateText({
8023
8240
  providerOptions,
8024
8241
  prepareStepResult == null ? void 0 : prepareStepResult.providerOptions
8025
8242
  );
8026
- try {
8027
- await (onStepStart == null ? void 0 : onStepStart({
8243
+ await notify({
8244
+ event: {
8028
8245
  stepNumber: steps.length,
8029
- model: {
8030
- provider: stepModel.provider,
8031
- modelId: stepModel.modelId
8032
- },
8246
+ model: stepModelInfo,
8033
8247
  system: stepSystem,
8034
8248
  messages: stepMessages,
8035
8249
  tools,
@@ -8046,9 +8260,12 @@ async function generateText({
8046
8260
  functionId: telemetry == null ? void 0 : telemetry.functionId,
8047
8261
  metadata: telemetry == null ? void 0 : telemetry.metadata,
8048
8262
  experimental_context
8049
- }));
8050
- } catch (_ignored) {
8051
- }
8263
+ },
8264
+ callbacks: [
8265
+ onStepStart,
8266
+ globalTelemetry.onStepStart
8267
+ ]
8268
+ });
8052
8269
  currentModelResponse = await retry(
8053
8270
  () => {
8054
8271
  var _a2222;
@@ -8224,12 +8441,15 @@ async function generateText({
8224
8441
  abortSignal: mergedAbortSignal,
8225
8442
  experimental_context,
8226
8443
  stepNumber: steps.length,
8227
- model: {
8228
- provider: stepModel.provider,
8229
- modelId: stepModel.modelId
8230
- },
8231
- onToolCallStart,
8232
- onToolCallFinish
8444
+ model: stepModelInfo,
8445
+ onToolCallStart: [
8446
+ onToolCallStart,
8447
+ globalTelemetry.onToolCallStart
8448
+ ],
8449
+ onToolCallFinish: [
8450
+ onToolCallFinish,
8451
+ globalTelemetry.onToolCallFinish
8452
+ ]
8233
8453
  })
8234
8454
  );
8235
8455
  }
@@ -8277,10 +8497,7 @@ async function generateText({
8277
8497
  const stepNumber = steps.length;
8278
8498
  const currentStepResult = new DefaultStepResult({
8279
8499
  stepNumber,
8280
- model: {
8281
- provider: stepModel.provider,
8282
- modelId: stepModel.modelId
8283
- },
8500
+ model: stepModelInfo,
8284
8501
  functionId: telemetry == null ? void 0 : telemetry.functionId,
8285
8502
  metadata: telemetry == null ? void 0 : telemetry.metadata,
8286
8503
  experimental_context,
@@ -8295,11 +8512,14 @@ async function generateText({
8295
8512
  });
8296
8513
  logWarnings({
8297
8514
  warnings: (_m = currentModelResponse.warnings) != null ? _m : [],
8298
- provider: stepModel.provider,
8299
- model: stepModel.modelId
8515
+ provider: stepModelInfo.provider,
8516
+ model: stepModelInfo.modelId
8300
8517
  });
8301
8518
  steps.push(currentStepResult);
8302
- await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));
8519
+ await notify({
8520
+ event: currentStepResult,
8521
+ callbacks: [onStepFinish, globalTelemetry.onStepFinish]
8522
+ });
8303
8523
  } finally {
8304
8524
  if (stepTimeoutId != null) {
8305
8525
  clearTimeout(stepTimeoutId);
@@ -8351,34 +8571,40 @@ async function generateText({
8351
8571
  cachedInputTokens: void 0
8352
8572
  }
8353
8573
  );
8354
- await (onFinish == null ? void 0 : onFinish({
8355
- stepNumber: lastStep.stepNumber,
8356
- model: lastStep.model,
8357
- functionId: lastStep.functionId,
8358
- metadata: lastStep.metadata,
8359
- experimental_context: lastStep.experimental_context,
8360
- finishReason: lastStep.finishReason,
8361
- rawFinishReason: lastStep.rawFinishReason,
8362
- usage: lastStep.usage,
8363
- content: lastStep.content,
8364
- text: lastStep.text,
8365
- reasoningText: lastStep.reasoningText,
8366
- reasoning: lastStep.reasoning,
8367
- files: lastStep.files,
8368
- sources: lastStep.sources,
8369
- toolCalls: lastStep.toolCalls,
8370
- staticToolCalls: lastStep.staticToolCalls,
8371
- dynamicToolCalls: lastStep.dynamicToolCalls,
8372
- toolResults: lastStep.toolResults,
8373
- staticToolResults: lastStep.staticToolResults,
8374
- dynamicToolResults: lastStep.dynamicToolResults,
8375
- request: lastStep.request,
8376
- response: lastStep.response,
8377
- warnings: lastStep.warnings,
8378
- providerMetadata: lastStep.providerMetadata,
8379
- steps,
8380
- totalUsage
8381
- }));
8574
+ await notify({
8575
+ event: {
8576
+ stepNumber: lastStep.stepNumber,
8577
+ model: lastStep.model,
8578
+ functionId: lastStep.functionId,
8579
+ metadata: lastStep.metadata,
8580
+ experimental_context: lastStep.experimental_context,
8581
+ finishReason: lastStep.finishReason,
8582
+ rawFinishReason: lastStep.rawFinishReason,
8583
+ usage: lastStep.usage,
8584
+ content: lastStep.content,
8585
+ text: lastStep.text,
8586
+ reasoningText: lastStep.reasoningText,
8587
+ reasoning: lastStep.reasoning,
8588
+ files: lastStep.files,
8589
+ sources: lastStep.sources,
8590
+ toolCalls: lastStep.toolCalls,
8591
+ staticToolCalls: lastStep.staticToolCalls,
8592
+ dynamicToolCalls: lastStep.dynamicToolCalls,
8593
+ toolResults: lastStep.toolResults,
8594
+ staticToolResults: lastStep.staticToolResults,
8595
+ dynamicToolResults: lastStep.dynamicToolResults,
8596
+ request: lastStep.request,
8597
+ response: lastStep.response,
8598
+ warnings: lastStep.warnings,
8599
+ providerMetadata: lastStep.providerMetadata,
8600
+ steps,
8601
+ totalUsage
8602
+ },
8603
+ callbacks: [
8604
+ onFinish,
8605
+ globalTelemetry.onFinish
8606
+ ]
8607
+ });
8382
8608
  let resolvedOutput;
8383
8609
  if (lastStep.finishReason === "stop") {
8384
8610
  const outputSpecification = output != null ? output : text();
@@ -8996,7 +9222,8 @@ function processUIMessageStream({
8996
9222
  state.message.parts.push({
8997
9223
  type: "file",
8998
9224
  mediaType: chunk.mediaType,
8999
- url: chunk.url
9225
+ url: chunk.url,
9226
+ ...chunk.providerMetadata != null ? { providerMetadata: chunk.providerMetadata } : {}
9000
9227
  });
9001
9228
  write();
9002
9229
  break;
@@ -9121,7 +9348,9 @@ function processUIMessageStream({
9121
9348
  break;
9122
9349
  }
9123
9350
  case "tool-input-error": {
9124
- if (chunk.dynamic) {
9351
+ const existingPart = state.message.parts.filter(isToolUIPart).find((p) => p.toolCallId === chunk.toolCallId);
9352
+ const isDynamic = existingPart != null ? existingPart.type === "dynamic-tool" : !!chunk.dynamic;
9353
+ if (isDynamic) {
9125
9354
  updateDynamicToolPart({
9126
9355
  toolCallId: chunk.toolCallId,
9127
9356
  toolName: chunk.toolName,
@@ -9599,7 +9828,11 @@ function runToolsTransformation({
9599
9828
  abortSignal,
9600
9829
  repairToolCall,
9601
9830
  experimental_context,
9602
- generateId: generateId2
9831
+ generateId: generateId2,
9832
+ stepNumber,
9833
+ model,
9834
+ onToolCallStart,
9835
+ onToolCallFinish
9603
9836
  }) {
9604
9837
  let toolResultsStreamController = null;
9605
9838
  const toolResultsStream = new ReadableStream({
@@ -9647,7 +9880,8 @@ function runToolsTransformation({
9647
9880
  file: new DefaultGeneratedFileWithType({
9648
9881
  data: chunk.data,
9649
9882
  mediaType: chunk.mediaType
9650
- })
9883
+ }),
9884
+ ...chunk.providerMetadata != null ? { providerMetadata: chunk.providerMetadata } : {}
9651
9885
  });
9652
9886
  break;
9653
9887
  }
@@ -9741,6 +9975,10 @@ function runToolsTransformation({
9741
9975
  messages,
9742
9976
  abortSignal,
9743
9977
  experimental_context,
9978
+ stepNumber,
9979
+ model,
9980
+ onToolCallStart,
9981
+ onToolCallFinish,
9744
9982
  onPreliminaryToolResult: (result) => {
9745
9983
  toolResultsStreamController.enqueue(result);
9746
9984
  }
@@ -9857,6 +10095,10 @@ function streamText({
9857
10095
  onFinish,
9858
10096
  onAbort,
9859
10097
  onStepFinish,
10098
+ experimental_onStart: onStart,
10099
+ experimental_onStepStart: onStepStart,
10100
+ experimental_onToolCallStart: onToolCallStart,
10101
+ experimental_onToolCallFinish: onToolCallFinish,
9860
10102
  experimental_context,
9861
10103
  experimental_include: include,
9862
10104
  _internal: { now: now2 = now, generateId: generateId2 = originalGenerateId2 } = {},
@@ -9896,11 +10138,18 @@ function streamText({
9896
10138
  providerOptions,
9897
10139
  prepareStep,
9898
10140
  includeRawChunks,
10141
+ timeout,
10142
+ stopWhen,
10143
+ originalAbortSignal: abortSignal,
9899
10144
  onChunk,
9900
10145
  onError,
9901
10146
  onFinish,
9902
10147
  onAbort,
9903
10148
  onStepFinish,
10149
+ onStart,
10150
+ onStepStart,
10151
+ onToolCallStart,
10152
+ onToolCallFinish,
9904
10153
  now: now2,
9905
10154
  generateId: generateId2,
9906
10155
  experimental_context,
@@ -9997,11 +10246,18 @@ var DefaultStreamTextResult = class {
9997
10246
  includeRawChunks,
9998
10247
  now: now2,
9999
10248
  generateId: generateId2,
10249
+ timeout,
10250
+ stopWhen,
10251
+ originalAbortSignal,
10000
10252
  onChunk,
10001
10253
  onError,
10002
10254
  onFinish,
10003
10255
  onAbort,
10004
10256
  onStepFinish,
10257
+ onStart,
10258
+ onStepStart,
10259
+ onToolCallStart,
10260
+ onToolCallFinish,
10005
10261
  experimental_context,
10006
10262
  download: download2,
10007
10263
  include
@@ -10013,6 +10269,8 @@ var DefaultStreamTextResult = class {
10013
10269
  this.outputSpecification = output;
10014
10270
  this.includeRawChunks = includeRawChunks;
10015
10271
  this.tools = tools;
10272
+ const createGlobalTelemetry = getGlobalTelemetryIntegration();
10273
+ const globalTelemetry = createGlobalTelemetry(telemetry == null ? void 0 : telemetry.integrations);
10016
10274
  let stepFinish;
10017
10275
  let recordedContent = [];
10018
10276
  const recordedResponseMessages = [];
@@ -10114,7 +10372,11 @@ var DefaultStreamTextResult = class {
10114
10372
  delete activeReasoningContent[part.id];
10115
10373
  }
10116
10374
  if (part.type === "file") {
10117
- recordedContent.push({ type: "file", file: part.file });
10375
+ recordedContent.push({
10376
+ type: "file",
10377
+ file: part.file,
10378
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
10379
+ });
10118
10380
  }
10119
10381
  if (part.type === "source") {
10120
10382
  recordedContent.push(part);
@@ -10145,12 +10407,8 @@ var DefaultStreamTextResult = class {
10145
10407
  });
10146
10408
  const currentStepResult = new DefaultStepResult({
10147
10409
  stepNumber: recordedSteps.length,
10148
- model: {
10149
- provider: model.provider,
10150
- modelId: model.modelId
10151
- },
10152
- functionId: telemetry == null ? void 0 : telemetry.functionId,
10153
- metadata: telemetry == null ? void 0 : telemetry.metadata,
10410
+ model: modelInfo,
10411
+ ...callbackTelemetryProps,
10154
10412
  experimental_context,
10155
10413
  content: recordedContent,
10156
10414
  finishReason: part.finishReason,
@@ -10164,11 +10422,14 @@ var DefaultStreamTextResult = class {
10164
10422
  },
10165
10423
  providerMetadata: part.providerMetadata
10166
10424
  });
10167
- await (onStepFinish == null ? void 0 : onStepFinish(currentStepResult));
10425
+ await notify({
10426
+ event: currentStepResult,
10427
+ callbacks: [onStepFinish, globalTelemetry.onStepFinish]
10428
+ });
10168
10429
  logWarnings({
10169
10430
  warnings: recordedWarnings,
10170
- provider: model.provider,
10171
- model: model.modelId
10431
+ provider: modelInfo.provider,
10432
+ model: modelInfo.modelId
10172
10433
  });
10173
10434
  recordedSteps.push(currentStepResult);
10174
10435
  recordedResponseMessages.push(...stepMessages);
@@ -10199,34 +10460,40 @@ var DefaultStreamTextResult = class {
10199
10460
  self._totalUsage.resolve(totalUsage);
10200
10461
  self._steps.resolve(recordedSteps);
10201
10462
  const finalStep = recordedSteps[recordedSteps.length - 1];
10202
- await (onFinish == null ? void 0 : onFinish({
10203
- stepNumber: finalStep.stepNumber,
10204
- model: finalStep.model,
10205
- functionId: finalStep.functionId,
10206
- metadata: finalStep.metadata,
10207
- experimental_context: finalStep.experimental_context,
10208
- finishReason: finalStep.finishReason,
10209
- rawFinishReason: finalStep.rawFinishReason,
10210
- totalUsage,
10211
- usage: finalStep.usage,
10212
- content: finalStep.content,
10213
- text: finalStep.text,
10214
- reasoningText: finalStep.reasoningText,
10215
- reasoning: finalStep.reasoning,
10216
- files: finalStep.files,
10217
- sources: finalStep.sources,
10218
- toolCalls: finalStep.toolCalls,
10219
- staticToolCalls: finalStep.staticToolCalls,
10220
- dynamicToolCalls: finalStep.dynamicToolCalls,
10221
- toolResults: finalStep.toolResults,
10222
- staticToolResults: finalStep.staticToolResults,
10223
- dynamicToolResults: finalStep.dynamicToolResults,
10224
- request: finalStep.request,
10225
- response: finalStep.response,
10226
- warnings: finalStep.warnings,
10227
- providerMetadata: finalStep.providerMetadata,
10228
- steps: recordedSteps
10229
- }));
10463
+ await notify({
10464
+ event: {
10465
+ stepNumber: finalStep.stepNumber,
10466
+ model: finalStep.model,
10467
+ functionId: finalStep.functionId,
10468
+ metadata: finalStep.metadata,
10469
+ experimental_context: finalStep.experimental_context,
10470
+ finishReason: finalStep.finishReason,
10471
+ rawFinishReason: finalStep.rawFinishReason,
10472
+ totalUsage,
10473
+ usage: finalStep.usage,
10474
+ content: finalStep.content,
10475
+ text: finalStep.text,
10476
+ reasoningText: finalStep.reasoningText,
10477
+ reasoning: finalStep.reasoning,
10478
+ files: finalStep.files,
10479
+ sources: finalStep.sources,
10480
+ toolCalls: finalStep.toolCalls,
10481
+ staticToolCalls: finalStep.staticToolCalls,
10482
+ dynamicToolCalls: finalStep.dynamicToolCalls,
10483
+ toolResults: finalStep.toolResults,
10484
+ staticToolResults: finalStep.staticToolResults,
10485
+ dynamicToolResults: finalStep.dynamicToolResults,
10486
+ request: finalStep.request,
10487
+ response: finalStep.response,
10488
+ warnings: finalStep.warnings,
10489
+ providerMetadata: finalStep.providerMetadata,
10490
+ steps: recordedSteps
10491
+ },
10492
+ callbacks: [
10493
+ onFinish,
10494
+ globalTelemetry.onFinish
10495
+ ]
10496
+ });
10230
10497
  rootSpan.setAttributes(
10231
10498
  await selectTelemetryAttributes({
10232
10499
  telemetry,
@@ -10327,6 +10594,11 @@ var DefaultStreamTextResult = class {
10327
10594
  settings: { ...callSettings, maxRetries }
10328
10595
  });
10329
10596
  const self = this;
10597
+ const modelInfo = { provider: model.provider, modelId: model.modelId };
10598
+ const callbackTelemetryProps = {
10599
+ functionId: telemetry == null ? void 0 : telemetry.functionId,
10600
+ metadata: telemetry == null ? void 0 : telemetry.metadata
10601
+ };
10330
10602
  recordSpan({
10331
10603
  name: "ai.streamText",
10332
10604
  attributes: selectTelemetryAttributes({
@@ -10349,6 +10621,39 @@ var DefaultStreamTextResult = class {
10349
10621
  prompt,
10350
10622
  messages
10351
10623
  });
10624
+ await notify({
10625
+ event: {
10626
+ model: modelInfo,
10627
+ system,
10628
+ prompt,
10629
+ messages,
10630
+ tools,
10631
+ toolChoice,
10632
+ activeTools,
10633
+ maxOutputTokens: callSettings.maxOutputTokens,
10634
+ temperature: callSettings.temperature,
10635
+ topP: callSettings.topP,
10636
+ topK: callSettings.topK,
10637
+ presencePenalty: callSettings.presencePenalty,
10638
+ frequencyPenalty: callSettings.frequencyPenalty,
10639
+ stopSequences: callSettings.stopSequences,
10640
+ seed: callSettings.seed,
10641
+ maxRetries,
10642
+ timeout,
10643
+ headers,
10644
+ providerOptions,
10645
+ stopWhen,
10646
+ output,
10647
+ abortSignal: originalAbortSignal,
10648
+ include,
10649
+ ...callbackTelemetryProps,
10650
+ experimental_context
10651
+ },
10652
+ callbacks: [
10653
+ onStart,
10654
+ globalTelemetry.onStart
10655
+ ]
10656
+ });
10352
10657
  const initialMessages = initialPrompt.messages;
10353
10658
  const initialResponseMessages = [];
10354
10659
  const { approvedToolApprovals, deniedToolApprovals } = collectToolApprovals({ messages: initialMessages });
@@ -10395,6 +10700,16 @@ var DefaultStreamTextResult = class {
10395
10700
  messages: initialMessages,
10396
10701
  abortSignal,
10397
10702
  experimental_context,
10703
+ stepNumber: recordedSteps.length,
10704
+ model: modelInfo,
10705
+ onToolCallStart: [
10706
+ onToolCallStart,
10707
+ globalTelemetry.onToolCallStart
10708
+ ],
10709
+ onToolCallFinish: [
10710
+ onToolCallFinish,
10711
+ globalTelemetry.onToolCallFinish
10712
+ ],
10398
10713
  onPreliminaryToolResult: (result2) => {
10399
10714
  toolExecutionStepStreamController == null ? void 0 : toolExecutionStepStreamController.enqueue(result2);
10400
10715
  }
@@ -10431,7 +10746,7 @@ var DefaultStreamTextResult = class {
10431
10746
  input: output2.input,
10432
10747
  tool: tools == null ? void 0 : tools[output2.toolName],
10433
10748
  output: output2.type === "tool-result" ? output2.output : output2.error,
10434
- errorMode: output2.type === "tool-error" ? "json" : "none"
10749
+ errorMode: output2.type === "tool-error" ? "text" : "none"
10435
10750
  })
10436
10751
  });
10437
10752
  }
@@ -10461,7 +10776,7 @@ var DefaultStreamTextResult = class {
10461
10776
  responseMessages,
10462
10777
  usage
10463
10778
  }) {
10464
- var _a21, _b92, _c, _d, _e, _f, _g;
10779
+ var _a21, _b92, _c, _d, _e, _f, _g, _h, _i;
10465
10780
  const includeRawChunks2 = self.includeRawChunks;
10466
10781
  const stepTimeoutId = stepTimeoutMs != null ? setTimeout(() => stepAbortController.abort(), stepTimeoutMs) : void 0;
10467
10782
  let chunkTimeoutId = void 0;
@@ -10500,6 +10815,10 @@ var DefaultStreamTextResult = class {
10500
10815
  const stepModel = resolveLanguageModel(
10501
10816
  (_a21 = prepareStepResult == null ? void 0 : prepareStepResult.model) != null ? _a21 : model
10502
10817
  );
10818
+ const stepModelInfo = {
10819
+ provider: stepModel.provider,
10820
+ modelId: stepModel.modelId
10821
+ };
10503
10822
  const promptMessages = await convertToLanguageModelPrompt({
10504
10823
  prompt: {
10505
10824
  system: (_b92 = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _b92 : initialPrompt.system,
@@ -10508,16 +10827,44 @@ var DefaultStreamTextResult = class {
10508
10827
  supportedUrls: await stepModel.supportedUrls,
10509
10828
  download: download2
10510
10829
  });
10830
+ const stepActiveTools = (_d = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _d : activeTools;
10511
10831
  const { toolChoice: stepToolChoice, tools: stepTools } = await prepareToolsAndToolChoice({
10512
10832
  tools,
10513
- toolChoice: (_d = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _d : toolChoice,
10514
- activeTools: (_e = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _e : activeTools
10833
+ toolChoice: (_e = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _e : toolChoice,
10834
+ activeTools: stepActiveTools
10515
10835
  });
10516
10836
  experimental_context = (_f = prepareStepResult == null ? void 0 : prepareStepResult.experimental_context) != null ? _f : experimental_context;
10837
+ const stepMessages = (_g = prepareStepResult == null ? void 0 : prepareStepResult.messages) != null ? _g : stepInputMessages;
10838
+ const stepSystem = (_h = prepareStepResult == null ? void 0 : prepareStepResult.system) != null ? _h : initialPrompt.system;
10517
10839
  const stepProviderOptions = mergeObjects(
10518
10840
  providerOptions,
10519
10841
  prepareStepResult == null ? void 0 : prepareStepResult.providerOptions
10520
10842
  );
10843
+ await notify({
10844
+ event: {
10845
+ stepNumber: recordedSteps.length,
10846
+ model: stepModelInfo,
10847
+ system: stepSystem,
10848
+ messages: stepMessages,
10849
+ tools,
10850
+ toolChoice: stepToolChoice,
10851
+ activeTools: stepActiveTools,
10852
+ steps: [...recordedSteps],
10853
+ providerOptions: stepProviderOptions,
10854
+ timeout,
10855
+ headers,
10856
+ stopWhen,
10857
+ output,
10858
+ abortSignal: originalAbortSignal,
10859
+ include,
10860
+ ...callbackTelemetryProps,
10861
+ experimental_context
10862
+ },
10863
+ callbacks: [
10864
+ onStepStart,
10865
+ globalTelemetry.onStepStart
10866
+ ]
10867
+ });
10521
10868
  const {
10522
10869
  result: { stream: stream2, response, request },
10523
10870
  doStreamSpan,
@@ -10589,9 +10936,19 @@ var DefaultStreamTextResult = class {
10589
10936
  repairToolCall,
10590
10937
  abortSignal,
10591
10938
  experimental_context,
10592
- generateId: generateId2
10939
+ generateId: generateId2,
10940
+ stepNumber: recordedSteps.length,
10941
+ model: stepModelInfo,
10942
+ onToolCallStart: [
10943
+ onToolCallStart,
10944
+ globalTelemetry.onToolCallStart
10945
+ ],
10946
+ onToolCallFinish: [
10947
+ onToolCallFinish,
10948
+ globalTelemetry.onToolCallFinish
10949
+ ]
10593
10950
  });
10594
- const stepRequest = ((_g = include == null ? void 0 : include.requestBody) != null ? _g : true) ? request != null ? request : {} : { ...request, body: void 0 };
10951
+ const stepRequest = ((_i = include == null ? void 0 : include.requestBody) != null ? _i : true) ? request != null ? request : {} : { ...request, body: void 0 };
10595
10952
  const stepToolCalls = [];
10596
10953
  const stepToolOutputs = [];
10597
10954
  let warnings;
@@ -10604,7 +10961,7 @@ var DefaultStreamTextResult = class {
10604
10961
  let stepResponse = {
10605
10962
  id: generateId2(),
10606
10963
  timestamp: /* @__PURE__ */ new Date(),
10607
- modelId: model.modelId
10964
+ modelId: modelInfo.modelId
10608
10965
  };
10609
10966
  let activeText = "";
10610
10967
  self.addStream(
@@ -11171,7 +11528,8 @@ var DefaultStreamTextResult = class {
11171
11528
  controller.enqueue({
11172
11529
  type: "file",
11173
11530
  mediaType: part.file.mediaType,
11174
- url: `data:${part.file.mediaType};base64,${part.file.base64}`
11531
+ url: `data:${part.file.mediaType};base64,${part.file.base64}`,
11532
+ ...part.providerMetadata != null ? { providerMetadata: part.providerMetadata } : {}
11175
11533
  });
11176
11534
  break;
11177
11535
  }
@@ -11441,9 +11799,17 @@ var ToolLoopAgent = class {
11441
11799
  }
11442
11800
  async prepareCall(options) {
11443
11801
  var _a21, _b92, _c, _d;
11444
- const { onStepFinish: _settingsOnStepFinish, ...settingsWithoutCallback } = this.settings;
11802
+ const {
11803
+ experimental_onStart: _settingsOnStart,
11804
+ experimental_onStepStart: _settingsOnStepStart,
11805
+ experimental_onToolCallStart: _settingsOnToolCallStart,
11806
+ experimental_onToolCallFinish: _settingsOnToolCallFinish,
11807
+ onStepFinish: _settingsOnStepFinish,
11808
+ onFinish: _settingsOnFinish,
11809
+ ...settingsWithoutCallbacks
11810
+ } = this.settings;
11445
11811
  const baseCallArgs = {
11446
- ...settingsWithoutCallback,
11812
+ ...settingsWithoutCallbacks,
11447
11813
  stopWhen: (_a21 = this.settings.stopWhen) != null ? _a21 : stepCountIs(20),
11448
11814
  ...options
11449
11815
  };
@@ -11458,15 +11824,14 @@ var ToolLoopAgent = class {
11458
11824
  ...{ system: instructions, messages, prompt }
11459
11825
  };
11460
11826
  }
11461
- mergeOnStepFinishCallbacks(methodCallback) {
11462
- const constructorCallback = this.settings.onStepFinish;
11463
- if (methodCallback && constructorCallback) {
11464
- return async (stepResult) => {
11465
- await constructorCallback(stepResult);
11466
- await methodCallback(stepResult);
11827
+ mergeCallbacks(settingsCallback, methodCallback) {
11828
+ if (methodCallback && settingsCallback) {
11829
+ return async (event) => {
11830
+ await settingsCallback(event);
11831
+ await methodCallback(event);
11467
11832
  };
11468
11833
  }
11469
- return methodCallback != null ? methodCallback : constructorCallback;
11834
+ return methodCallback != null ? methodCallback : settingsCallback;
11470
11835
  }
11471
11836
  /**
11472
11837
  * Generates an output from the agent (non-streaming).
@@ -11474,14 +11839,39 @@ var ToolLoopAgent = class {
11474
11839
  async generate({
11475
11840
  abortSignal,
11476
11841
  timeout,
11842
+ experimental_onStart,
11843
+ experimental_onStepStart,
11844
+ experimental_onToolCallStart,
11845
+ experimental_onToolCallFinish,
11477
11846
  onStepFinish,
11847
+ onFinish,
11478
11848
  ...options
11479
11849
  }) {
11480
11850
  return generateText({
11481
11851
  ...await this.prepareCall(options),
11482
11852
  abortSignal,
11483
11853
  timeout,
11484
- onStepFinish: this.mergeOnStepFinishCallbacks(onStepFinish)
11854
+ experimental_onStart: this.mergeCallbacks(
11855
+ this.settings.experimental_onStart,
11856
+ experimental_onStart
11857
+ ),
11858
+ experimental_onStepStart: this.mergeCallbacks(
11859
+ this.settings.experimental_onStepStart,
11860
+ experimental_onStepStart
11861
+ ),
11862
+ experimental_onToolCallStart: this.mergeCallbacks(
11863
+ this.settings.experimental_onToolCallStart,
11864
+ experimental_onToolCallStart
11865
+ ),
11866
+ experimental_onToolCallFinish: this.mergeCallbacks(
11867
+ this.settings.experimental_onToolCallFinish,
11868
+ experimental_onToolCallFinish
11869
+ ),
11870
+ onStepFinish: this.mergeCallbacks(
11871
+ this.settings.onStepFinish,
11872
+ onStepFinish
11873
+ ),
11874
+ onFinish: this.mergeCallbacks(this.settings.onFinish, onFinish)
11485
11875
  });
11486
11876
  }
11487
11877
  /**
@@ -11491,7 +11881,12 @@ var ToolLoopAgent = class {
11491
11881
  abortSignal,
11492
11882
  timeout,
11493
11883
  experimental_transform,
11884
+ experimental_onStart,
11885
+ experimental_onStepStart,
11886
+ experimental_onToolCallStart,
11887
+ experimental_onToolCallFinish,
11494
11888
  onStepFinish,
11889
+ onFinish,
11495
11890
  ...options
11496
11891
  }) {
11497
11892
  return streamText({
@@ -11499,7 +11894,27 @@ var ToolLoopAgent = class {
11499
11894
  abortSignal,
11500
11895
  timeout,
11501
11896
  experimental_transform,
11502
- onStepFinish: this.mergeOnStepFinishCallbacks(onStepFinish)
11897
+ experimental_onStart: this.mergeCallbacks(
11898
+ this.settings.experimental_onStart,
11899
+ experimental_onStart
11900
+ ),
11901
+ experimental_onStepStart: this.mergeCallbacks(
11902
+ this.settings.experimental_onStepStart,
11903
+ experimental_onStepStart
11904
+ ),
11905
+ experimental_onToolCallStart: this.mergeCallbacks(
11906
+ this.settings.experimental_onToolCallStart,
11907
+ experimental_onToolCallStart
11908
+ ),
11909
+ experimental_onToolCallFinish: this.mergeCallbacks(
11910
+ this.settings.experimental_onToolCallFinish,
11911
+ experimental_onToolCallFinish
11912
+ ),
11913
+ onStepFinish: this.mergeCallbacks(
11914
+ this.settings.onStepFinish,
11915
+ onStepFinish
11916
+ ),
11917
+ onFinish: this.mergeCallbacks(this.settings.onFinish, onFinish)
11503
11918
  });
11504
11919
  }
11505
11920
  };
@@ -11629,5 +12044,5 @@ createIdGenerator({ prefix: "aiobj", size: 24 });
11629
12044
  exports.ToolLoopAgent = ToolLoopAgent;
11630
12045
  exports.createGatewayProvider = createGatewayProvider;
11631
12046
  exports.embed = embed;
11632
- //# sourceMappingURL=chunk-H5S4PS44.cjs.map
11633
- //# sourceMappingURL=chunk-H5S4PS44.cjs.map
12047
+ //# sourceMappingURL=chunk-76Q75VI4.cjs.map
12048
+ //# sourceMappingURL=chunk-76Q75VI4.cjs.map