ai 7.0.0-beta.18 → 7.0.0-beta.180

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 (466) hide show
  1. package/CHANGELOG.md +1464 -25
  2. package/README.md +9 -19
  3. package/dist/index.d.ts +4834 -2670
  4. package/dist/index.js +9392 -6406
  5. package/dist/index.js.map +1 -1
  6. package/dist/internal/index.d.ts +2589 -199
  7. package/dist/internal/index.js +2781 -532
  8. package/dist/internal/index.js.map +1 -1
  9. package/dist/test/index.d.ts +18 -18
  10. package/dist/test/index.js +60 -97
  11. package/dist/test/index.js.map +1 -1
  12. package/docs/00-introduction/index.mdx +8 -1
  13. package/docs/02-foundations/02-providers-and-models.mdx +10 -1
  14. package/docs/02-foundations/03-prompts.mdx +36 -27
  15. package/docs/02-foundations/04-tools.mdx +75 -13
  16. package/docs/02-foundations/06-provider-options.mdx +19 -6
  17. package/docs/02-getting-started/01-navigating-the-library.mdx +1 -0
  18. package/docs/02-getting-started/02-nextjs-app-router.mdx +45 -21
  19. package/docs/02-getting-started/03-nextjs-pages-router.mdx +42 -18
  20. package/docs/02-getting-started/04-svelte.mdx +32 -17
  21. package/docs/02-getting-started/05-nuxt.mdx +43 -28
  22. package/docs/02-getting-started/06-nodejs.mdx +10 -11
  23. package/docs/02-getting-started/07-expo.mdx +42 -24
  24. package/docs/02-getting-started/08-tanstack-start.mdx +42 -18
  25. package/docs/02-getting-started/09-coding-agents.mdx +11 -14
  26. package/docs/03-agents/01-overview.mdx +48 -3
  27. package/docs/03-agents/02-building-agents.mdx +163 -33
  28. package/docs/03-agents/03-workflows.mdx +10 -10
  29. package/docs/03-agents/04-loop-control.mdx +98 -17
  30. package/docs/03-agents/05-configuring-call-options.mdx +3 -3
  31. package/docs/03-agents/06-memory.mdx +50 -2
  32. package/docs/03-agents/06-policy-tool-approvals.mdx +412 -0
  33. package/docs/03-agents/06-subagents.mdx +6 -4
  34. package/docs/03-agents/06-tool-approvals.mdx +326 -0
  35. package/docs/03-agents/07-workflow-agent.mdx +670 -0
  36. package/docs/03-agents/08-terminal-ui.mdx +137 -0
  37. package/docs/03-agents/index.mdx +28 -2
  38. package/docs/03-ai-sdk-core/05-generating-text.mdx +197 -100
  39. package/docs/03-ai-sdk-core/10-generating-structured-data.mdx +2 -2
  40. package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +474 -100
  41. package/docs/03-ai-sdk-core/16-mcp-tools.mdx +44 -2
  42. package/docs/03-ai-sdk-core/17-mcp-apps.mdx +273 -0
  43. package/docs/03-ai-sdk-core/17-runtime-and-tool-context.mdx +228 -0
  44. package/docs/03-ai-sdk-core/20-prompt-engineering.mdx +17 -2
  45. package/docs/03-ai-sdk-core/25-settings.mdx +61 -2
  46. package/docs/03-ai-sdk-core/26-reasoning.mdx +190 -0
  47. package/docs/03-ai-sdk-core/30-embeddings.mdx +28 -35
  48. package/docs/03-ai-sdk-core/35-image-generation.mdx +28 -25
  49. package/docs/03-ai-sdk-core/36-realtime.mdx +218 -0
  50. package/docs/03-ai-sdk-core/36-transcription.mdx +38 -39
  51. package/docs/03-ai-sdk-core/37-speech.mdx +29 -26
  52. package/docs/03-ai-sdk-core/38-video-generation.mdx +39 -39
  53. package/docs/03-ai-sdk-core/39-file-uploads.mdx +155 -0
  54. package/docs/03-ai-sdk-core/40-middleware.mdx +13 -13
  55. package/docs/03-ai-sdk-core/41-skill-uploads.mdx +197 -0
  56. package/docs/03-ai-sdk-core/45-provider-management.mdx +121 -0
  57. package/docs/03-ai-sdk-core/50-error-handling.mdx +7 -7
  58. package/docs/03-ai-sdk-core/55-testing.mdx +10 -10
  59. package/docs/03-ai-sdk-core/60-telemetry.mdx +528 -94
  60. package/docs/03-ai-sdk-core/65-devtools.mdx +40 -17
  61. package/docs/03-ai-sdk-core/65-lifecycle-callbacks.mdx +1136 -0
  62. package/docs/03-ai-sdk-core/index.mdx +28 -0
  63. package/docs/03-ai-sdk-harnesses/01-overview.mdx +114 -0
  64. package/docs/03-ai-sdk-harnesses/02-harness-agent.mdx +262 -0
  65. package/docs/03-ai-sdk-harnesses/03-tools.mdx +184 -0
  66. package/docs/03-ai-sdk-harnesses/04-skills.mdx +65 -0
  67. package/docs/03-ai-sdk-harnesses/05-harness-adapters.mdx +35 -0
  68. package/docs/03-ai-sdk-harnesses/06-ui.mdx +232 -0
  69. package/docs/03-ai-sdk-harnesses/07-terminal-ui.mdx +109 -0
  70. package/docs/03-ai-sdk-harnesses/index.mdx +55 -0
  71. package/docs/04-ai-sdk-ui/01-overview.mdx +8 -8
  72. package/docs/04-ai-sdk-ui/02-chatbot.mdx +106 -52
  73. package/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +105 -45
  74. package/docs/04-ai-sdk-ui/03-chatbot-resume-streams.mdx +155 -12
  75. package/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +103 -16
  76. package/docs/04-ai-sdk-ui/04-generative-user-interfaces.mdx +27 -9
  77. package/docs/04-ai-sdk-ui/05-completion.mdx +8 -2
  78. package/docs/04-ai-sdk-ui/08-object-generation.mdx +8 -4
  79. package/docs/04-ai-sdk-ui/20-streaming-data.mdx +17 -13
  80. package/docs/04-ai-sdk-ui/21-transport.mdx +38 -0
  81. package/docs/04-ai-sdk-ui/24-reading-ui-message-streams.mdx +6 -6
  82. package/docs/04-ai-sdk-ui/25-message-metadata.mdx +30 -22
  83. package/docs/04-ai-sdk-ui/50-stream-protocol.mdx +92 -7
  84. package/docs/04-ai-sdk-ui/index.mdx +6 -0
  85. package/docs/05-ai-sdk-rsc/04-multistep-interfaces.mdx +1 -1
  86. package/docs/05-ai-sdk-rsc/10-migrating-to-ui.mdx +39 -19
  87. package/docs/06-advanced/02-stopping-streams.mdx +22 -15
  88. package/docs/06-advanced/04-caching.mdx +20 -12
  89. package/docs/06-advanced/06-rate-limiting.mdx +8 -2
  90. package/docs/06-advanced/07-rendering-ui-with-language-models.mdx +3 -3
  91. package/docs/06-advanced/08-model-as-router.mdx +1 -1
  92. package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +728 -268
  93. package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +781 -259
  94. package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +119 -12
  95. package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +123 -12
  96. package/docs/07-reference/01-ai-sdk-core/06-rerank.mdx +22 -14
  97. package/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +3 -2
  98. package/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +3 -8
  99. package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +7 -12
  100. package/docs/07-reference/01-ai-sdk-core/13-generate-video.mdx +3 -2
  101. package/docs/07-reference/01-ai-sdk-core/14-upload-file.mdx +92 -0
  102. package/docs/07-reference/01-ai-sdk-core/14-upload-skill.mdx +114 -0
  103. package/docs/07-reference/01-ai-sdk-core/15-agent.mdx +36 -14
  104. package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +323 -203
  105. package/docs/07-reference/01-ai-sdk-core/17-create-agent-ui-stream.mdx +20 -3
  106. package/docs/07-reference/01-ai-sdk-core/18-create-agent-ui-stream-response.mdx +20 -3
  107. package/docs/07-reference/01-ai-sdk-core/18-pipe-agent-ui-stream-to-response.mdx +20 -3
  108. package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +65 -26
  109. package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +21 -15
  110. package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +122 -3
  111. package/docs/07-reference/01-ai-sdk-core/23-get-realtime-tool-definitions.mdx +117 -0
  112. package/docs/07-reference/01-ai-sdk-core/24-mcp-apps.mdx +183 -0
  113. package/docs/07-reference/01-ai-sdk-core/29-filter-active-tools.mdx +83 -0
  114. package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +98 -12
  115. package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +18 -0
  116. package/docs/07-reference/01-ai-sdk-core/34-sandbox.mdx +137 -0
  117. package/docs/07-reference/01-ai-sdk-core/40-provider-registry.mdx +102 -0
  118. package/docs/07-reference/01-ai-sdk-core/42-custom-provider.mdx +56 -10
  119. package/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +4 -4
  120. package/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +4 -4
  121. package/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +9 -9
  122. package/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +1 -1
  123. package/docs/07-reference/01-ai-sdk-core/67-simulate-streaming-middleware.mdx +1 -1
  124. package/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +1 -1
  125. package/docs/07-reference/01-ai-sdk-core/69-add-tool-input-examples-middleware.mdx +0 -1
  126. package/docs/07-reference/01-ai-sdk-core/{70-step-count-is.mdx → 70-is-step-count.mdx} +14 -14
  127. package/docs/07-reference/01-ai-sdk-core/71-has-tool-call.mdx +27 -9
  128. package/docs/07-reference/01-ai-sdk-core/72-loop-finished.mdx +83 -0
  129. package/docs/07-reference/01-ai-sdk-core/index.mdx +52 -2
  130. package/docs/07-reference/02-ai-sdk-ui/01-use-chat.mdx +1 -1
  131. package/docs/07-reference/02-ai-sdk-ui/02-use-completion.mdx +1 -1
  132. package/docs/07-reference/02-ai-sdk-ui/05-use-realtime.mdx +243 -0
  133. package/docs/07-reference/02-ai-sdk-ui/31-convert-to-model-messages.mdx +30 -5
  134. package/docs/07-reference/02-ai-sdk-ui/32-prune-messages.mdx +9 -2
  135. package/docs/07-reference/02-ai-sdk-ui/40-create-ui-message-stream.mdx +1 -1
  136. package/docs/07-reference/02-ai-sdk-ui/41-create-ui-message-stream-response.mdx +2 -1
  137. package/docs/07-reference/02-ai-sdk-ui/48-mcp-app-renderer.mdx +301 -0
  138. package/docs/07-reference/02-ai-sdk-ui/index.mdx +17 -7
  139. package/docs/07-reference/03-ai-sdk-rsc/01-stream-ui.mdx +10 -3
  140. package/docs/07-reference/04-ai-sdk-workflow/01-workflow-agent.mdx +926 -0
  141. package/docs/07-reference/04-ai-sdk-workflow/02-workflow-chat-transport.mdx +347 -0
  142. package/docs/07-reference/04-ai-sdk-workflow/index.mdx +26 -0
  143. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-approval-signature-error.mdx +31 -0
  144. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-provider-reference-error.mdx +27 -0
  145. package/docs/07-reference/05-ai-sdk-errors/index.mdx +1 -0
  146. package/docs/07-reference/06-ai-sdk-tui/01-run-agent-tui.mdx +175 -0
  147. package/docs/07-reference/06-ai-sdk-tui/index.mdx +21 -0
  148. package/docs/07-reference/index.mdx +10 -0
  149. package/docs/08-migration-guides/23-migration-guide-7-0.mdx +1819 -21
  150. package/docs/08-migration-guides/24-migration-guide-6-0.mdx +4 -4
  151. package/docs/08-migration-guides/26-migration-guide-5-0.mdx +11 -8
  152. package/docs/09-troubleshooting/04-strange-stream-output.mdx +3 -1
  153. package/docs/09-troubleshooting/06-streaming-not-working-when-deployed.mdx +2 -1
  154. package/docs/09-troubleshooting/06-streaming-not-working-when-proxied.mdx +2 -1
  155. package/docs/09-troubleshooting/10-use-chat-tools-no-response.mdx +10 -3
  156. package/docs/09-troubleshooting/12-use-chat-an-error-occurred.mdx +7 -4
  157. package/docs/09-troubleshooting/13-repeated-assistant-messages.mdx +14 -9
  158. package/docs/09-troubleshooting/14-stream-abort-handling.mdx +36 -26
  159. package/docs/09-troubleshooting/14-tool-calling-with-structured-outputs.mdx +1 -1
  160. package/docs/09-troubleshooting/15-abort-breaks-resumable-streams.mdx +28 -14
  161. package/docs/09-troubleshooting/17-use-chat-stale-body-data.mdx +3 -1
  162. package/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +1 -1
  163. package/docs/09-troubleshooting/70-high-memory-usage-with-images.mdx +13 -10
  164. package/package.json +31 -29
  165. package/src/agent/agent.ts +78 -32
  166. package/src/agent/create-agent-ui-stream-response.ts +28 -15
  167. package/src/agent/create-agent-ui-stream.ts +67 -33
  168. package/src/agent/index.ts +0 -6
  169. package/src/agent/infer-agent-tools.ts +1 -1
  170. package/src/agent/infer-agent-ui-message.ts +2 -2
  171. package/src/agent/pipe-agent-ui-stream-to-response.ts +29 -16
  172. package/src/agent/tool-loop-agent-settings.ts +339 -213
  173. package/src/agent/tool-loop-agent.ts +189 -89
  174. package/src/embed/embed-events.ts +132 -0
  175. package/src/embed/embed-many-result.ts +3 -4
  176. package/src/embed/embed-many.ts +285 -242
  177. package/src/embed/embed-result.ts +3 -4
  178. package/src/embed/embed.ts +179 -102
  179. package/src/embed/index.ts +1 -0
  180. package/src/error/index.ts +2 -0
  181. package/src/error/invalid-stream-part-error.ts +3 -3
  182. package/src/error/invalid-tool-approval-signature-error.ts +35 -0
  183. package/src/error/no-image-generated-error.ts +1 -1
  184. package/src/error/no-object-generated-error.ts +7 -5
  185. package/src/error/no-speech-generated-error.ts +1 -1
  186. package/src/error/no-transcript-generated-error.ts +1 -1
  187. package/src/error/no-video-generated-error.ts +1 -1
  188. package/src/error/tool-call-repair-error.ts +2 -2
  189. package/src/error/verify-no-object-generated-error.ts +2 -4
  190. package/src/generate-image/generate-image-result.ts +5 -5
  191. package/src/generate-image/generate-image.ts +30 -32
  192. package/src/generate-image/index.ts +0 -16
  193. package/src/generate-object/generate-object-result.ts +4 -9
  194. package/src/generate-object/generate-object.ts +273 -249
  195. package/src/generate-object/index.ts +6 -0
  196. package/src/generate-object/inject-json-instruction.ts +1 -1
  197. package/src/generate-object/output-strategy.ts +15 -13
  198. package/src/generate-object/parse-and-validate-object-result.ts +3 -3
  199. package/src/generate-object/repair-text.ts +1 -1
  200. package/src/generate-object/stream-object-result.ts +7 -7
  201. package/src/generate-object/stream-object.ts +420 -402
  202. package/src/generate-object/structured-output-events.ts +208 -0
  203. package/src/generate-object/validate-object-generation-input.ts +1 -1
  204. package/src/generate-speech/generate-speech-result.ts +4 -4
  205. package/src/generate-speech/generate-speech.ts +12 -13
  206. package/src/generate-speech/generated-audio-file.ts +1 -2
  207. package/src/generate-speech/index.ts +19 -2
  208. package/src/generate-text/active-tools.ts +12 -0
  209. package/src/generate-text/calculate-tokens-per-second.ts +17 -0
  210. package/src/generate-text/collect-tool-approvals.ts +4 -4
  211. package/src/generate-text/content-part.ts +19 -11
  212. package/src/generate-text/execute-tool-call.ts +174 -124
  213. package/src/generate-text/execute-tools-from-stream.ts +245 -0
  214. package/src/generate-text/extract-reasoning-content.ts +1 -1
  215. package/src/generate-text/extract-text-content.ts +4 -1
  216. package/src/generate-text/filter-active-tools.ts +38 -0
  217. package/src/generate-text/generate-text-events.ts +429 -0
  218. package/src/generate-text/generate-text-result.ts +62 -53
  219. package/src/generate-text/generate-text.ts +1267 -848
  220. package/src/generate-text/index.ts +67 -27
  221. package/src/generate-text/invoke-tool-callbacks-from-stream.ts +83 -0
  222. package/src/generate-text/language-model-events.ts +128 -0
  223. package/src/generate-text/output-utils.ts +1 -1
  224. package/src/generate-text/output.ts +14 -11
  225. package/src/generate-text/parse-tool-call.ts +50 -13
  226. package/src/generate-text/prepare-step.ts +97 -21
  227. package/src/generate-text/prune-messages.ts +1 -1
  228. package/src/generate-text/reasoning-output.ts +97 -1
  229. package/src/generate-text/reasoning.ts +5 -3
  230. package/src/generate-text/resolve-tool-approval.ts +134 -0
  231. package/src/generate-text/response-message.ts +1 -1
  232. package/src/generate-text/restricted-telemetry-dispatcher.ts +297 -0
  233. package/src/generate-text/smooth-stream.ts +6 -5
  234. package/src/generate-text/step-result.ts +198 -80
  235. package/src/generate-text/stop-condition.ts +59 -11
  236. package/src/generate-text/stream-language-model-call.ts +842 -0
  237. package/src/generate-text/stream-text-result.ts +276 -146
  238. package/src/generate-text/stream-text.ts +1136 -1098
  239. package/src/generate-text/sum-token-counts.ts +12 -0
  240. package/src/generate-text/to-response-messages.ts +55 -6
  241. package/src/generate-text/tool-approval-configuration.ts +128 -0
  242. package/src/generate-text/tool-approval-request-output.ts +14 -2
  243. package/src/generate-text/tool-approval-response-output.ts +35 -0
  244. package/src/generate-text/tool-approval-signature.ts +125 -0
  245. package/src/generate-text/tool-call-repair-function.ts +12 -7
  246. package/src/generate-text/tool-call.ts +18 -5
  247. package/src/generate-text/tool-error.ts +6 -4
  248. package/src/generate-text/tool-execution-events.ts +169 -0
  249. package/src/generate-text/tool-input-refinement.ts +18 -0
  250. package/src/generate-text/tool-order.ts +12 -0
  251. package/src/generate-text/tool-output-denied.ts +2 -2
  252. package/src/generate-text/tool-output.ts +3 -3
  253. package/src/generate-text/tool-result.ts +10 -4
  254. package/src/generate-text/tools-context-parameter.ts +22 -0
  255. package/src/generate-text/validate-tool-approvals.ts +118 -0
  256. package/src/generate-text/validate-tool-context.ts +33 -0
  257. package/src/generate-video/generate-video-result.ts +4 -4
  258. package/src/generate-video/generate-video.ts +23 -26
  259. package/src/global.ts +5 -5
  260. package/src/index.ts +11 -6
  261. package/src/logger/log-warnings.ts +34 -20
  262. package/src/middleware/add-tool-input-examples-middleware.ts +2 -2
  263. package/src/middleware/default-embedding-settings-middleware.ts +2 -2
  264. package/src/middleware/default-settings-middleware.ts +2 -2
  265. package/src/middleware/extract-json-middleware.ts +3 -2
  266. package/src/middleware/extract-reasoning-middleware.ts +3 -2
  267. package/src/middleware/simulate-streaming-middleware.ts +1 -1
  268. package/src/middleware/wrap-embedding-model.ts +8 -7
  269. package/src/middleware/wrap-image-model.ts +8 -7
  270. package/src/middleware/wrap-language-model.ts +16 -11
  271. package/src/middleware/wrap-provider.ts +2 -2
  272. package/src/model/as-embedding-model-v3.ts +1 -1
  273. package/src/model/as-embedding-model-v4.ts +1 -1
  274. package/src/model/as-image-model-v3.ts +1 -1
  275. package/src/model/as-image-model-v4.ts +5 -1
  276. package/src/model/as-language-model-v3.ts +1 -1
  277. package/src/model/as-language-model-v4.ts +1 -1
  278. package/src/model/as-provider-v3.ts +1 -1
  279. package/src/model/as-provider-v4.ts +1 -1
  280. package/src/model/as-reranking-model-v4.ts +1 -1
  281. package/src/model/as-speech-model-v3.ts +1 -1
  282. package/src/model/as-speech-model-v4.ts +5 -1
  283. package/src/model/as-transcription-model-v3.ts +4 -1
  284. package/src/model/as-transcription-model-v4.ts +1 -1
  285. package/src/model/as-video-model-v4.ts +1 -1
  286. package/src/model/resolve-model.ts +95 -83
  287. package/src/prompt/clone-model-message.ts +41 -0
  288. package/src/prompt/content-part.ts +96 -14
  289. package/src/prompt/convert-to-language-model-prompt.ts +457 -143
  290. package/src/prompt/create-tool-model-output.ts +2 -2
  291. package/src/prompt/data-content.ts +1 -78
  292. package/src/prompt/file-part-data.ts +125 -0
  293. package/src/prompt/index.ts +17 -2
  294. package/src/prompt/language-model-call-options.ts +78 -0
  295. package/src/prompt/message-conversion-error.ts +1 -1
  296. package/src/prompt/message.ts +5 -1
  297. package/src/prompt/{prepare-call-settings.ts → prepare-language-model-call-options.ts} +6 -7
  298. package/src/prompt/prepare-tool-choice.ts +15 -0
  299. package/src/prompt/prepare-tools.ts +127 -0
  300. package/src/prompt/prompt.ts +29 -4
  301. package/src/prompt/request-options.ts +109 -0
  302. package/src/prompt/split-data-url.ts +1 -1
  303. package/src/prompt/standardize-prompt.ts +46 -35
  304. package/src/realtime/audio-utils.ts +82 -0
  305. package/src/realtime/browser-realtime-audio.ts +168 -0
  306. package/src/realtime/browser-realtime-transport.ts +134 -0
  307. package/src/realtime/get-realtime-tool-definitions.ts +66 -0
  308. package/src/realtime/index.ts +23 -0
  309. package/src/realtime/realtime-event-reducer.ts +523 -0
  310. package/src/realtime/realtime-session.ts +382 -0
  311. package/src/realtime/realtime-types.ts +13 -0
  312. package/src/registry/custom-provider.ts +129 -82
  313. package/src/registry/index.ts +1 -1
  314. package/src/registry/no-such-provider-error.ts +2 -1
  315. package/src/registry/provider-registry.ts +124 -46
  316. package/src/rerank/index.ts +6 -0
  317. package/src/rerank/rerank-events.ts +140 -0
  318. package/src/rerank/rerank-result.ts +1 -1
  319. package/src/rerank/rerank.ts +236 -109
  320. package/src/telemetry/create-telemetry-dispatcher.ts +209 -0
  321. package/src/telemetry/index.ts +8 -4
  322. package/src/telemetry/telemetry-options.ts +76 -0
  323. package/src/telemetry/telemetry-registry.ts +15 -0
  324. package/src/telemetry/telemetry.ts +273 -0
  325. package/src/telemetry/tracing-channel-publisher.ts +220 -0
  326. package/src/telemetry/tracing-channel.ts +15 -0
  327. package/src/test/mock-embedding-model-v2.ts +1 -1
  328. package/src/test/mock-embedding-model-v3.ts +2 -2
  329. package/src/test/mock-embedding-model-v4.ts +2 -2
  330. package/src/test/mock-image-model-v2.ts +1 -1
  331. package/src/test/mock-image-model-v3.ts +1 -1
  332. package/src/test/mock-image-model-v4.ts +1 -1
  333. package/src/test/mock-language-model-v2.ts +6 -6
  334. package/src/test/mock-language-model-v3.ts +6 -6
  335. package/src/test/mock-language-model-v4.ts +6 -6
  336. package/src/test/mock-provider-v2.ts +6 -7
  337. package/src/test/mock-provider-v3.ts +7 -8
  338. package/src/test/mock-provider-v4.ts +7 -8
  339. package/src/test/mock-reranking-model-v3.ts +1 -1
  340. package/src/test/mock-reranking-model-v4.ts +1 -1
  341. package/src/test/mock-sandbox.ts +32 -0
  342. package/src/test/mock-server-response.ts +1 -1
  343. package/src/test/mock-speech-model-v2.ts +1 -1
  344. package/src/test/mock-speech-model-v3.ts +1 -1
  345. package/src/test/mock-speech-model-v4.ts +1 -1
  346. package/src/test/mock-transcription-model-v2.ts +1 -1
  347. package/src/test/mock-transcription-model-v3.ts +1 -1
  348. package/src/test/mock-transcription-model-v4.ts +1 -1
  349. package/src/test/mock-video-model-v3.ts +1 -1
  350. package/src/test/mock-video-model-v4.ts +1 -1
  351. package/src/text-stream/create-text-stream-response.ts +4 -4
  352. package/src/text-stream/index.ts +1 -0
  353. package/src/text-stream/pipe-text-stream-to-response.ts +5 -5
  354. package/src/text-stream/to-text-stream.ts +21 -0
  355. package/src/transcribe/index.ts +19 -2
  356. package/src/transcribe/transcribe-result.ts +3 -3
  357. package/src/transcribe/transcribe.ts +12 -12
  358. package/src/types/embedding-model-middleware.ts +1 -1
  359. package/src/types/embedding-model.ts +1 -1
  360. package/src/types/image-model-middleware.ts +1 -1
  361. package/src/types/image-model.ts +1 -1
  362. package/src/types/index.ts +1 -0
  363. package/src/types/json-value.ts +1 -1
  364. package/src/types/language-model-middleware.ts +1 -1
  365. package/src/types/language-model-request-metadata.ts +11 -1
  366. package/src/types/language-model-response-metadata.ts +21 -4
  367. package/src/types/language-model.ts +2 -2
  368. package/src/types/provider-metadata.ts +1 -1
  369. package/src/types/provider-reference.ts +3 -0
  370. package/src/types/provider.ts +4 -4
  371. package/src/types/realtime-model.ts +26 -0
  372. package/src/types/reranking-model.ts +2 -2
  373. package/src/types/speech-model.ts +5 -1
  374. package/src/types/transcription-model.ts +1 -1
  375. package/src/types/usage.ts +1 -21
  376. package/src/types/video-model.ts +1 -1
  377. package/src/types/warning.ts +1 -1
  378. package/src/ui/call-completion-api.ts +2 -2
  379. package/src/ui/chat-transport.ts +3 -3
  380. package/src/ui/chat.ts +10 -11
  381. package/src/ui/convert-file-list-to-file-ui-parts.ts +1 -1
  382. package/src/ui/convert-to-model-messages.ts +79 -21
  383. package/src/ui/default-chat-transport.ts +4 -4
  384. package/src/ui/direct-chat-transport.ts +40 -15
  385. package/src/ui/http-chat-transport.ts +8 -8
  386. package/src/ui/index.ts +5 -1
  387. package/src/ui/last-assistant-message-is-complete-with-approval-responses.ts +1 -3
  388. package/src/ui/last-assistant-message-is-complete-with-tool-calls.ts +0 -1
  389. package/src/ui/process-ui-message-stream.ts +120 -29
  390. package/src/ui/text-stream-chat-transport.ts +3 -3
  391. package/src/ui/transform-text-to-ui-message-stream.ts +1 -1
  392. package/src/ui/ui-messages.ts +108 -13
  393. package/src/ui/use-completion.ts +1 -1
  394. package/src/ui/validate-ui-messages.ts +74 -10
  395. package/src/ui-message-stream/create-ui-message-stream-response.ts +2 -2
  396. package/src/ui-message-stream/create-ui-message-stream.ts +23 -14
  397. package/src/ui-message-stream/get-response-ui-message-id.ts +2 -2
  398. package/src/ui-message-stream/handle-ui-message-stream-finish.ts +21 -10
  399. package/src/ui-message-stream/index.ts +6 -0
  400. package/src/ui-message-stream/pipe-ui-message-stream-to-response.ts +3 -3
  401. package/src/ui-message-stream/read-ui-message-stream.ts +4 -4
  402. package/src/ui-message-stream/to-ui-message-chunk.ts +385 -0
  403. package/src/ui-message-stream/to-ui-message-stream.ts +90 -0
  404. package/src/ui-message-stream/ui-message-chunks.ts +63 -4
  405. package/src/ui-message-stream/ui-message-stream-on-finish-callback.ts +2 -2
  406. package/src/ui-message-stream/ui-message-stream-on-step-end-callback.ts +25 -0
  407. package/src/ui-message-stream/ui-message-stream-on-step-finish-callback.ts +5 -19
  408. package/src/ui-message-stream/ui-message-stream-writer.ts +3 -3
  409. package/src/upload-file/index.ts +2 -0
  410. package/src/upload-file/upload-file-result.ts +11 -0
  411. package/src/upload-file/upload-file.ts +141 -0
  412. package/src/upload-skill/index.ts +2 -0
  413. package/src/upload-skill/upload-skill-result.ts +11 -0
  414. package/src/upload-skill/upload-skill.ts +53 -0
  415. package/src/util/callback.ts +4 -0
  416. package/src/util/create-id-map.ts +11 -0
  417. package/src/util/create-resolvable-promise.ts +1 -1
  418. package/src/util/create-stitchable-stream.ts +1 -1
  419. package/src/util/data-url.ts +1 -1
  420. package/src/util/deep-partial.ts +1 -1
  421. package/src/util/download/download-function.ts +1 -1
  422. package/src/util/download/download.ts +15 -16
  423. package/src/util/extract-literal-union.ts +18 -0
  424. package/src/util/fix-json.ts +30 -1
  425. package/src/util/is-node-runtime.ts +3 -0
  426. package/src/util/merge-abort-signals.ts +17 -35
  427. package/src/util/merge-callbacks.ts +22 -0
  428. package/src/util/merge-objects.ts +5 -0
  429. package/src/util/notify.ts +11 -14
  430. package/src/util/parse-partial-json.ts +1 -1
  431. package/src/util/prepare-retries.ts +1 -2
  432. package/src/util/retry-with-exponential-backoff.ts +10 -5
  433. package/src/util/serial-job-executor.ts +1 -1
  434. package/src/util/set-abort-timeout.ts +37 -0
  435. package/src/util/write-to-server-response.ts +1 -1
  436. package/dist/index.d.mts +0 -6577
  437. package/dist/index.mjs +0 -13829
  438. package/dist/index.mjs.map +0 -1
  439. package/dist/internal/index.d.mts +0 -314
  440. package/dist/internal/index.mjs +0 -1303
  441. package/dist/internal/index.mjs.map +0 -1
  442. package/dist/test/index.d.mts +0 -265
  443. package/dist/test/index.mjs +0 -472
  444. package/dist/test/index.mjs.map +0 -1
  445. package/docs/03-ai-sdk-core/65-event-listeners.mdx +0 -915
  446. package/src/generate-text/callback-events.ts +0 -388
  447. package/src/generate-text/is-approval-needed.ts +0 -29
  448. package/src/generate-text/run-tools-transformation.ts +0 -451
  449. package/src/generate-text/tool-set.ts +0 -14
  450. package/src/prompt/call-settings.ts +0 -148
  451. package/src/prompt/prepare-tools-and-tool-choice.ts +0 -86
  452. package/src/telemetry/assemble-operation-name.ts +0 -21
  453. package/src/telemetry/get-base-telemetry-attributes.ts +0 -55
  454. package/src/telemetry/get-global-telemetry-integration.ts +0 -110
  455. package/src/telemetry/get-tracer.ts +0 -20
  456. package/src/telemetry/noop-tracer.ts +0 -69
  457. package/src/telemetry/open-telemetry-integration.ts +0 -530
  458. package/src/telemetry/record-span.ts +0 -75
  459. package/src/telemetry/select-telemetry-attributes.ts +0 -78
  460. package/src/telemetry/stringify-for-telemetry.ts +0 -33
  461. package/src/telemetry/telemetry-integration-registry.ts +0 -22
  462. package/src/telemetry/telemetry-integration.ts +0 -100
  463. package/src/telemetry/telemetry-settings.ts +0 -55
  464. package/src/test/mock-tracer.ts +0 -156
  465. package/src/util/as-array.ts +0 -3
  466. package/src/util/detect-media-type.ts +0 -226
package/CHANGELOG.md CHANGED
@@ -1,5 +1,1445 @@
1
1
  # ai
2
2
 
3
+ ## 7.0.0-beta.180
4
+
5
+ ### Patch Changes
6
+
7
+ - 81a284b: fix(ai): handle partial unicode escapes in fixJson
8
+
9
+ ## 7.0.0-beta.179
10
+
11
+ ### Patch Changes
12
+
13
+ - Updated dependencies [987d9e4]
14
+ - @ai-sdk/gateway@4.0.0-beta.110
15
+
16
+ ## 7.0.0-beta.178
17
+
18
+ ### Patch Changes
19
+
20
+ - b097c52: feat(ai): use tracing channels to track parent-child context
21
+ - Updated dependencies [15eb253]
22
+ - @ai-sdk/gateway@4.0.0-beta.109
23
+
24
+ ## 7.0.0-beta.177
25
+
26
+ ### Patch Changes
27
+
28
+ - b8396f0: trigger initial beta release
29
+ - Updated dependencies [b8396f0]
30
+ - @ai-sdk/gateway@4.0.0-beta.108
31
+ - @ai-sdk/provider-utils@5.0.0-beta.49
32
+ - @ai-sdk/provider@4.0.0-beta.19
33
+
34
+ ## 7.0.0-canary.176
35
+
36
+ ### Patch Changes
37
+
38
+ - Updated dependencies [d5b8263]
39
+ - @ai-sdk/gateway@4.0.0-canary.107
40
+
41
+ ## 7.0.0-canary.175
42
+
43
+ ### Patch Changes
44
+
45
+ - 6ec57f5: feat(ai): make the experimental lifecycle callbacks stable
46
+
47
+ ## 7.0.0-canary.174
48
+
49
+ ### Patch Changes
50
+
51
+ - Updated dependencies [ca2cf45]
52
+ - @ai-sdk/gateway@4.0.0-canary.106
53
+
54
+ ## 7.0.0-canary.173
55
+
56
+ ### Patch Changes
57
+
58
+ - Updated dependencies [efec111]
59
+ - @ai-sdk/gateway@4.0.0-canary.105
60
+
61
+ ## 7.0.0-canary.172
62
+
63
+ ### Patch Changes
64
+
65
+ - 25a64f8: Remove deprecated experimental generateImage exports.
66
+ - 375fdd7: fix: harden download URL SSRF guard against hostname and redirect bypasses
67
+
68
+ `validateDownloadUrl` and the file download helpers (`downloadBlob`, `download`) could be bypassed in several ways when handling untrusted URLs:
69
+
70
+ - A fully-qualified hostname with a trailing dot (e.g. `localhost.`, `myhost.local.`) skipped the localhost/`.local` blocklist.
71
+ - IPv6 addresses that embed an IPv4 address in their last 32 bits — IPv4-compatible (`::127.0.0.1`), IPv4-translated (`::ffff:0:127.0.0.1`), and NAT64 (`64:ff9b::127.0.0.1`, including the `64:ff9b:1::/48` local-use prefix) — were not decoded and checked against the private IPv4 ranges.
72
+ - Redirects were validated only _after_ `fetch` had already followed them, so the request to a redirect target (e.g. an internal/metadata address) had already been issued before the check ran.
73
+ - Several reserved/internal address ranges were not blocked: CGNAT (`100.64.0.0/10`, used by some cloud providers for internal traffic), benchmarking (`198.18.0.0/15`), IETF protocol assignments (`192.0.0.0/24`), the reserved `240.0.0.0/4` block (including the `255.255.255.255` broadcast address), and IPv6 site-local (`fec0::/10`) and multicast (`ff00::/8`).
74
+
75
+ The validator now strips trailing dots before the hostname checks and fully expands IPv6 addresses to detect embedded private IPv4 targets. The download helpers now follow redirects manually (`redirect: 'manual'`), re-validating each hop before requesting it, so an unsafe redirect target is never fetched. When a redirect cannot be inspected because the runtime returns an opaque response, the helpers fail closed (reject the redirect) on the server; only in a real browser — where SSRF is not reachable (fetch is constrained by CORS and cannot reach a server's internal network or cloud-metadata endpoints) — is the redirect followed natively so legitimate redirected downloads keep working.
76
+
77
+ - f18b08f: fix: redact server error details from UI message streams by default
78
+
79
+ `toUIMessageStream`, `createUIMessageStream`, and `toUIMessageChunk` defaulted their `onError` callback to `getErrorMessage`, which serializes the raw error (`error.toString()` / `JSON.stringify(error)`) into the client-facing `{ type: 'error', errorText }` chunk — and also into `tool-output-error` parts. The documented default was `() => 'An error occurred.'`, so applications relying on the documented behavior were unknowingly streaming server exception details (internal hostnames, paths, provider request data, validation inputs) to end users.
80
+
81
+ The default `onError` now returns the documented generic `'An error occurred.'`. Raw error details are only emitted when the developer explicitly supplies an `onError` handler. This also redacts `tool-output-error` and invalid-tool-input error text by default; pass an `onError` to surface richer messages.
82
+
83
+ - b4507d5: fix(provider-utils): cancel response body on download rejection to prevent socket leak
84
+
85
+ When a download was rejected early — because the `Content-Length` header exceeded the size limit, the response status was not ok, or a redirect resolved to a blocked URL — the fetch response body was left unconsumed and uncancelled. With WHATWG Fetch/undici this leaves the underlying TCP socket open instead of returning it to the connection pool, allowing an attacker-controlled origin to exhaust file descriptors and cause a denial of service. The body is now cancelled on all early-rejection paths in `readResponseWithSizeLimit`, `download`, and `downloadBlob`, and `fetchWithValidatedRedirects` cancels each redirect hop's body before following or rejecting the next hop.
86
+
87
+ - Updated dependencies [8c17bf8]
88
+ - Updated dependencies [aeda373]
89
+ - Updated dependencies [558777f]
90
+ - Updated dependencies [375fdd7]
91
+ - Updated dependencies [b4507d5]
92
+ - @ai-sdk/gateway@4.0.0-canary.104
93
+ - @ai-sdk/provider-utils@5.0.0-canary.48
94
+
95
+ ## 7.0.0-canary.171
96
+
97
+ ### Patch Changes
98
+
99
+ - 89ad56f: Promote `generateSpeech` and `SpeechResult` to stable exports.
100
+ - f9a496f: Promote `transcribe` and `TranscriptionResult` to stable exports, with deprecated experimental aliases for backwards compatibility.
101
+ - 3295831: Harden stream text processing and middleware against prototype pollution from stream part IDs.
102
+
103
+ ## 7.0.0-canary.170
104
+
105
+ ### Patch Changes
106
+
107
+ - bae5e2b: fix(security): re-validate tool approvals from client message history before execution
108
+
109
+ The approval-replay path in `generateText`/`streamText` (and `WorkflowAgent.stream`) reconstructed approved tool calls from the client-supplied messages array and executed them without re-validating input against the tool's schema or re-applying the approval policy. A client could forge an assistant message with a pre-approved tool-call part and have the server execute a tool with attacker-chosen arguments.
110
+
111
+ The replay path now validates HMAC signature (when `experimental_toolApprovalSecret` is configured), re-validates tool-call input against the tool's input schema, and re-resolves the approval policy before execution.
112
+
113
+ - 69d7128: fix(workflow): reuse the core tool-approval validation in WorkflowAgent
114
+
115
+ `WorkflowAgent.stream` previously reconstructed approved tool calls with a copy of the core collection logic and validated them inline. Because the logic was duplicated, it could drift from the hardened `generateText`/`streamText` implementation. WorkflowAgent now collects approvals via the shared `collectToolApprovals` and re-validates each one through the shared `validateApprovedToolApprovals` (input-schema re-validation, HMAC signature verification when configured, and approval-policy re-resolution) in addition to its existing `needsApproval` guard, so a client-forged approval cannot execute a tool with unvalidated input. The duplicated collector was removed; `collectToolApprovals` and `validateApprovedToolApprovals` are now exported from `ai/internal`.
116
+
117
+ - Updated dependencies [bae5e2b]
118
+ - @ai-sdk/provider-utils@5.0.0-canary.47
119
+ - @ai-sdk/gateway@4.0.0-canary.103
120
+
121
+ ## 7.0.0-canary.169
122
+
123
+ ### Patch Changes
124
+
125
+ - a5018ab: fix(ai): return schema-transformed elements in array output mode
126
+
127
+ Previously final array output validation checked each element against the schema but returned the raw model output. Array output now returns the validated values so Zod transforms, coercions, defaults, and pipes are applied consistently with object output.
128
+
129
+ - 21d3d60: feat(harness): implement harness specification
130
+ - 426dbbb: fix(ai): reject `streamText` result promises with `NoOutputGeneratedError` when the model stream ends without producing any output. Previously such streams resolved with an empty step. Incomplete streams with partial output still resolve with the partial result.
131
+ - 7fd3360: Harden UI message stream processing against prototype pollution from chunk IDs.
132
+
133
+ ## 7.0.0-canary.168
134
+
135
+ ### Patch Changes
136
+
137
+ - 1e4b350: Honor `tool.toModelOutput` in `WorkflowAgent`.
138
+
139
+ `WorkflowAgent` now routes successful local, provider-executed, and approved tool results through each tool's optional `toModelOutput` hook, matching `generateText`, `streamText`, and `ToolLoopAgent`. Previously the hook was ignored and results were always serialized as `text` or `json`.
140
+
141
+ Internally exports the shared tool-result model-output helpers from `ai/internal`, and uses the shared `getErrorMessage` behavior for workflow tool error results.
142
+
143
+ - Updated dependencies [a3bb04a]
144
+ - @ai-sdk/gateway@4.0.0-canary.102
145
+
146
+ ## 7.0.0-canary.167
147
+
148
+ ### Patch Changes
149
+
150
+ - 4757690: feat(ai): rename onObjectStepFinish to onObjectStepEnd
151
+ - eeefc3f: fix(ai): enforce `timeout.stepMs` for the whole step in `streamText`
152
+
153
+ Previously `streamText`'s step timer was cleared synchronously right after the step's stream was registered, before the stream produced anything, so `stepMs` never aborted a step that stalled before emitting content. The step timer now survives until the step's stream finishes or aborts, matching `generateText`. `chunkMs`/`totalMs` and normal step-finish cleanup are unchanged.
154
+
155
+ - b79b6a8: fix(ai): add approval guard for denied tool outputs
156
+ - Updated dependencies [6b4d325]
157
+ - @ai-sdk/gateway@4.0.0-canary.101
158
+
159
+ ## 7.0.0-canary.166
160
+
161
+ ### Patch Changes
162
+
163
+ - 19736ee: feat(ai): rename onStepFinish to onStepEnd
164
+ - d66ae02: Return validated elements from generateText array output
165
+ - e4182bd: chore: rm export of OutputInterface
166
+ - Updated dependencies [24bb123]
167
+ - Updated dependencies [c44fcc8]
168
+ - Updated dependencies [97e480a]
169
+ - @ai-sdk/gateway@4.0.0-canary.100
170
+
171
+ ## 7.0.0-canary.165
172
+
173
+ ### Patch Changes
174
+
175
+ - ce769dd: feat(provider): add experimental Realtime API support for voice conversations
176
+
177
+ Adds first-class support for realtime (speech-to-speech) APIs:
178
+
179
+ - `Experimental_RealtimeModelV4` spec in `@ai-sdk/provider` with normalized event types and factory
180
+ - OpenAI, Google, and xAI realtime provider implementations
181
+ - `openai.experimental_realtime()` / `google.experimental_realtime()` / `xai.experimental_realtime()` work in both server and browser
182
+ - `.getToken()` static method on each provider for server-side ephemeral token creation
183
+ - `experimental_getRealtimeToolDefinitions` helper for provider session tool definitions
184
+ - `experimental_useRealtime` hook in `@ai-sdk/react` returning `UIMessage[]` (aligned with `useChat`), with `onToolCall` and `addToolOutput` for client-driven tool execution
185
+ - `inputAudioTranscription` session config for showing transcribed user audio messages when supported by the provider
186
+
187
+ - Updated dependencies [ce769dd]
188
+ - @ai-sdk/provider@4.0.0-canary.18
189
+ - @ai-sdk/gateway@4.0.0-canary.99
190
+ - @ai-sdk/provider-utils@5.0.0-canary.46
191
+
192
+ ## 7.0.0-canary.164
193
+
194
+ ### Patch Changes
195
+
196
+ - Updated dependencies [9876183]
197
+ - @ai-sdk/gateway@4.0.0-canary.98
198
+
199
+ ## 7.0.0-canary.163
200
+
201
+ ### Patch Changes
202
+
203
+ - ee798eb: chore(provider-utils): rename `Experimental_Sandbox` to `Experimental_SandboxSession`
204
+ - c907622: Add a `toolOrder` option to control the order in which tools are sent to provider APIs.
205
+ - Updated dependencies [ee798eb]
206
+ - Updated dependencies [daf6637]
207
+ - @ai-sdk/provider-utils@5.0.0-canary.45
208
+ - @ai-sdk/gateway@4.0.0-canary.97
209
+
210
+ ## 7.0.0-canary.162
211
+
212
+ ### Patch Changes
213
+
214
+ - Updated dependencies [83877a1]
215
+ - @ai-sdk/gateway@4.0.0-canary.96
216
+
217
+ ## 7.0.0-canary.161
218
+
219
+ ### Patch Changes
220
+
221
+ - Updated dependencies [a3261db]
222
+ - @ai-sdk/gateway@4.0.0-canary.95
223
+
224
+ ## 7.0.0-canary.160
225
+
226
+ ### Patch Changes
227
+
228
+ - Updated dependencies [712873e]
229
+ - @ai-sdk/gateway@4.0.0-canary.94
230
+
231
+ ## 7.0.0-canary.159
232
+
233
+ ### Patch Changes
234
+
235
+ - b5092f5: fix(ai): do not re-validate tool input for output-error parts in validateUIMessages
236
+
237
+ ## 7.0.0-canary.158
238
+
239
+ ### Patch Changes
240
+
241
+ - bcce2dd: feat(stream-text): expose standalone stream transformation helpers and deprecate the equivalent `streamText` result methods.
242
+
243
+ The new `toUIMessageChunk` and `toUIMessageStream` helpers let you convert a `streamText` `stream` (or any compatible `ReadableStream<TextStreamPart<TOOLS>>`) into UI message chunks without going through the result object — useful for custom transports, tests, and other producers of `TextStreamPart`.
244
+
245
+ `result.toUIMessageStreamResponse(options)` and `result.pipeUIMessageStreamToResponse(response, options)` can migrate by passing `toUIMessageStream({ stream: result.stream, ...options })` to `createUIMessageStreamResponse` or `pipeUIMessageStreamToResponse`.
246
+
247
+ The new `toTextStream` helper extracts text deltas from a `streamText` `stream`, so `result.toTextStreamResponse(options)` and `result.pipeTextStreamToResponse(response, options)` can migrate to `createTextStreamResponse({ stream: toTextStream({ stream: result.stream }), ...options })` and `pipeTextStreamToResponse({ response, stream: toTextStream({ stream: result.stream }), ...options })`.
248
+
249
+ `result.toUIMessageStream`, `result.toUIMessageStreamResponse`, `result.pipeUIMessageStreamToResponse`, `result.toTextStreamResponse`, and `result.pipeTextStreamToResponse` are now `@deprecated`. They still work in v7 and will be removed in the next major release. Migration snippets are in the v6 → v7 migration guide.
250
+
251
+ ## 7.0.0-canary.157
252
+
253
+ ### Patch Changes
254
+
255
+ - Updated dependencies [e02f041]
256
+ - @ai-sdk/gateway@4.0.0-canary.93
257
+
258
+ ## 7.0.0-canary.156
259
+
260
+ ### Patch Changes
261
+
262
+ - 023550e: Deprecate `streamText` result `fullStream` in favor of `stream`.
263
+ - e92fc45: feat(ai): introduce onAbort hook to close telemetry spans
264
+
265
+ ## 7.0.0-canary.155
266
+
267
+ ### Patch Changes
268
+
269
+ - e67d80e: fix: rename onFinish to onEnd
270
+ - 6cca112: feat: add timeBetweenOutputTokensMs stats
271
+ - 82fc0ab: fix(ai): pass all stream text parts to `onChunk`
272
+ - 76fd58c: fix: consider file outputs and tool calls for time to first output
273
+
274
+ ## 7.0.0-canary.154
275
+
276
+ ### Patch Changes
277
+
278
+ - 594029e: feat(ai): wrap the model call in telemetry context
279
+
280
+ ## 7.0.0-canary.153
281
+
282
+ ### Patch Changes
283
+
284
+ - 6c93e36: feat(provider-utils): add `spawnCommand` method to `Experimental_Sandbox` to allow for detached command execution
285
+ - Updated dependencies [6c93e36]
286
+ - Updated dependencies [f617ac2]
287
+ - @ai-sdk/provider-utils@5.0.0-canary.44
288
+ - @ai-sdk/gateway@4.0.0-canary.92
289
+
290
+ ## 7.0.0-canary.152
291
+
292
+ ### Patch Changes
293
+
294
+ - Updated dependencies [d4d4a5e]
295
+ - @ai-sdk/gateway@4.0.0-canary.91
296
+
297
+ ## 7.0.0-canary.151
298
+
299
+ ### Patch Changes
300
+
301
+ - Updated dependencies [8b811d8]
302
+ - @ai-sdk/gateway@4.0.0-canary.90
303
+
304
+ ## 7.0.0-canary.150
305
+
306
+ ### Patch Changes
307
+
308
+ - Updated dependencies [bba5250]
309
+ - Updated dependencies [94c6edc]
310
+ - @ai-sdk/gateway@4.0.0-canary.89
311
+
312
+ ## 7.0.0-canary.149
313
+
314
+ ### Patch Changes
315
+
316
+ - e3d9c0e: Add `allowSystemInMessages` option to `ToolLoopAgent`.
317
+
318
+ This exposes the same option that exists on `streamText` and `generateText`, whether `role: "system"` messages are allowed in the `prompt` or `messages` fields. When unset, system messages are rejected because they can create a prompt injection attack risk. Ideally, use the `instructions` option instead. Set to `true` to allow system messages, or `false` to explicitly reject them.
319
+
320
+ ```ts
321
+ const agent = new ToolLoopAgent({
322
+ model,
323
+ allowSystemInMessages: true,
324
+ });
325
+
326
+ await agent.generate({
327
+ messages: [
328
+ { role: "system", content: "Server context" },
329
+ { role: "user", content: "Hello" },
330
+ ],
331
+ });
332
+ ```
333
+
334
+ The option can also be returned from `prepareCall` for dynamic per-call configuration.
335
+
336
+ ## 7.0.0-canary.148
337
+
338
+ ### Patch Changes
339
+
340
+ - 2852a84: fix(ai): make input optional on input-streaming UIMessagePart variants
341
+
342
+ ## 7.0.0-canary.147
343
+
344
+ ### Patch Changes
345
+
346
+ - Updated dependencies [accaca0]
347
+ - @ai-sdk/gateway@4.0.0-canary.88
348
+
349
+ ## 7.0.0-canary.146
350
+
351
+ ### Patch Changes
352
+
353
+ - Updated dependencies [bf837fe]
354
+ - @ai-sdk/gateway@4.0.0-canary.87
355
+
356
+ ## 7.0.0-canary.145
357
+
358
+ ### Patch Changes
359
+
360
+ - Updated dependencies [546cefe]
361
+ - @ai-sdk/gateway@4.0.0-canary.86
362
+
363
+ ## 7.0.0-canary.144
364
+
365
+ ### Patch Changes
366
+
367
+ - 7fc6bd6: Raise minimum supported Node.js version to 22. Supported versions: 22, 24, and 26.
368
+ - Updated dependencies [7fc6bd6]
369
+ - @ai-sdk/gateway@4.0.0-canary.85
370
+ - @ai-sdk/provider-utils@5.0.0-canary.43
371
+ - @ai-sdk/provider@4.0.0-canary.17
372
+
373
+ ## 7.0.0-canary.143
374
+
375
+ ### Patch Changes
376
+
377
+ - a6617c5: feat(provider-utils): add `readFile` and `writeFile` plus convenience wrappers to `Experimental_Sandbox` abstraction
378
+ - Updated dependencies [a6617c5]
379
+ - Updated dependencies [032c4a5]
380
+ - @ai-sdk/provider-utils@5.0.0-canary.42
381
+ - @ai-sdk/gateway@4.0.0-canary.84
382
+
383
+ ## 7.0.0-canary.142
384
+
385
+ ### Patch Changes
386
+
387
+ - 62d6481: Post-publish release notifications now link to each package’s GitHub release and npm page.
388
+
389
+ ## 7.0.0-canary.141
390
+
391
+ ### Patch Changes
392
+
393
+ - e3a0419: fix(ai): default missing embedding warnings to an empty array
394
+
395
+ ## 7.0.0-canary.140
396
+
397
+ ### Patch Changes
398
+
399
+ - Updated dependencies [1d6fb7f]
400
+ - @ai-sdk/gateway@4.0.0-canary.83
401
+
402
+ ## 7.0.0-canary.139
403
+
404
+ ### Patch Changes
405
+
406
+ - 334ae5d: Update step performance metrics with explicit effective, input, output, and total token throughput fields.
407
+ - 28dfa06: fix: support tools with optional context
408
+ - e93fa91: rename Sandbox.executeCommand to Sandbox.runCommand
409
+ - Updated dependencies [28dfa06]
410
+ - Updated dependencies [e93fa91]
411
+ - @ai-sdk/provider-utils@5.0.0-canary.41
412
+ - @ai-sdk/gateway@4.0.0-canary.82
413
+
414
+ ## 7.0.0-canary.138
415
+
416
+ ### Patch Changes
417
+
418
+ - Updated dependencies [67c4011]
419
+ - @ai-sdk/gateway@4.0.0-canary.81
420
+
421
+ ## 7.0.0-canary.137
422
+
423
+ ### Patch Changes
424
+
425
+ - 98627e5: feat(ai): remove onChunk event from telemetry
426
+ - 476e1ca: feat(ai): remove telemetry dependency on onChunk callback
427
+
428
+ ## 7.0.0-canary.136
429
+
430
+ ### Patch Changes
431
+
432
+ - a7de9c9: fix: make sandbox experimental
433
+ - Updated dependencies [a7de9c9]
434
+ - @ai-sdk/provider-utils@5.0.0-canary.40
435
+ - @ai-sdk/gateway@4.0.0-canary.80
436
+
437
+ ## 7.0.0-canary.135
438
+
439
+ ### Patch Changes
440
+
441
+ - Updated dependencies [105f95b]
442
+ - @ai-sdk/provider-utils@5.0.0-canary.39
443
+ - @ai-sdk/gateway@4.0.0-canary.79
444
+
445
+ ## 7.0.0-canary.134
446
+
447
+ ### Patch Changes
448
+
449
+ - ed74dae: fix(ui): make `input` optional on `output-error` tool and dynamic-tool UI message parts
450
+
451
+ `validateUIMessages` rejected persisted assistant messages whose `output-error` tool parts had no `input` key. This happened for any errored tool call where the SDK set `input: undefined` (e.g. `NoSuchToolError` / `InvalidToolInputError`): JSON serialization stripped the `undefined` value, and Zod 4.4+ treats a missing `z.unknown()` key as a validation failure (previously it was implicitly optional). The schema now matches the runtime shape produced by `process-ui-message-stream`, so reloading a thread that contains an errored tool call no longer throws `AI_TypeValidationError`.
452
+
453
+ - f4cc8eb: feat: add performance statistics
454
+ - e80ada0: fix(ai): download tool-result file URLs
455
+ - 1dca341: fix: rename telemetry onFinish to onEnd
456
+ - 2605e5f: fix test mocks to return the first array-backed result on the first call
457
+
458
+ ## 7.0.0-canary.133
459
+
460
+ ### Patch Changes
461
+
462
+ - 38ca8dc: fix(gateway): enable retry support for gateway errors
463
+ - 6d76710: fix URL of hero animation in README
464
+ - Updated dependencies [38ca8dc]
465
+ - Updated dependencies [8b7af75]
466
+ - @ai-sdk/gateway@4.0.0-canary.78
467
+
468
+ ## 7.0.0-canary.132
469
+
470
+ ### Patch Changes
471
+
472
+ - eaf849f: Rename rerank telemetry finish callback to `onRerankEnd`.
473
+ - 8565dcb: fix: rename onEmbedFinish to onEmbedEnd
474
+
475
+ ## 7.0.0-canary.131
476
+
477
+ ### Patch Changes
478
+
479
+ - b67525f: feat: instructions as prepareStep input
480
+ - ca446f8: feat: flexible tool descriptions
481
+ - bcacd48: fix(ai): accumulative properties on StreamTextResult, GenerateTextResult
482
+ - Updated dependencies [ca446f8]
483
+ - @ai-sdk/provider-utils@5.0.0-canary.38
484
+ - @ai-sdk/gateway@4.0.0-canary.77
485
+
486
+ ## 7.0.0-canary.130
487
+
488
+ ### Patch Changes
489
+
490
+ - Updated dependencies [5f380c0]
491
+ - @ai-sdk/gateway@4.0.0-canary.76
492
+
493
+ ## 7.0.0-canary.129
494
+
495
+ ### Patch Changes
496
+
497
+ - d1b3786: fix(ai): deprecate properties on result that have moved to finalStep
498
+
499
+ ## 7.0.0-canary.128
500
+
501
+ ### Patch Changes
502
+
503
+ - Updated dependencies [d848405]
504
+ - @ai-sdk/provider-utils@5.0.0-canary.37
505
+ - @ai-sdk/gateway@4.0.0-canary.75
506
+
507
+ ## 7.0.0-canary.127
508
+
509
+ ### Patch Changes
510
+
511
+ - e95e38d: fix: Make `generateText` and `streamText` result `usage` report total usage across all steps and deprecate `totalUsage`.
512
+ - 016e877: feat(ai): add `instructions` as the primary prompt option and deprecate `system`
513
+ - ca99fea: feat: expose `finalStep` on text generation results
514
+ - d775a57: feat: introduce Instructions type
515
+ - 538c12b: feat: use instructions on ToolCallRepairFunction, parseToolCall, and events
516
+ - Updated dependencies [ca39020]
517
+ - @ai-sdk/provider-utils@5.0.0-canary.36
518
+ - @ai-sdk/gateway@4.0.0-canary.74
519
+
520
+ ## 7.0.0-canary.126
521
+
522
+ ### Patch Changes
523
+
524
+ - Updated dependencies [f634bac]
525
+ - @ai-sdk/provider-utils@5.0.0-canary.35
526
+ - @ai-sdk/gateway@4.0.0-canary.73
527
+
528
+ ## 7.0.0-canary.125
529
+
530
+ ### Major Changes
531
+
532
+ - 31f69de: fix(ai): carry prepareStep message overrides forward across steps
533
+ - 7c71ac6: fix(ai): limit response messages in StepResult to messages created in that step
534
+
535
+ ### Patch Changes
536
+
537
+ - fd4f578: fix(ai): exclude request and response bodies from text generation results by default to reduce memory usage.
538
+ - c0c8ca2: fix(ai): remove deprecated LanguageModelUsage properties
539
+ - 5faf71c: feat: introduce responseMessages on GenerateTextResult and StreamTextResult
540
+ - 69254e0: feat(ai): add toolMetadata for tool specific metdata
541
+ - 3015fc3: feat: sandbox shell execution abstraction
542
+ - eee1166: feat(ai): expose initial and response messages in prepareStep
543
+ - 7dbf992: feat(ai): allow prepareStep to override sandbox per step
544
+ - Updated dependencies [69254e0]
545
+ - Updated dependencies [3015fc3]
546
+ - @ai-sdk/provider-utils@5.0.0-canary.34
547
+ - @ai-sdk/gateway@4.0.0-canary.72
548
+
549
+ ## 7.0.0-canary.124
550
+
551
+ ### Patch Changes
552
+
553
+ - 69aeb0e: feat: add deprecated tool call lifecycle callback aliases for AI SDK 6 compatibility.
554
+ - 48e92f3: feat: make include stable
555
+
556
+ ## 7.0.0-canary.123
557
+
558
+ ### Patch Changes
559
+
560
+ - 7392266: feat: move includeRawChunks to include.rawChunks
561
+ - 4bb4dbc: feat: introduce include.requestMessage option for step request message storage opt-in
562
+
563
+ ## 7.0.0-canary.122
564
+
565
+ ### Patch Changes
566
+
567
+ - 79b2468: feat: add request.messages to StepResult
568
+ - c22750c: fix(ai): move onToolExecutionStart and onToolExecutionEnd to stable
569
+
570
+ ## 7.0.0-canary.121
571
+
572
+ ### Patch Changes
573
+
574
+ - 2427d88: feat(ai): change Tool.sensitiveContext to telemetry.includeToolsContext and make it opt-in
575
+ - 5588abd: feat(ai): add experimental_refineToolInput option to ToolLoopAgent, generateText, streamText
576
+ - 6dd6b83: feat(ai): change sensitiveRuntimeContext to telemetry.includeRuntimeContext and make it opt-in
577
+ - Updated dependencies [2427d88]
578
+ - @ai-sdk/provider-utils@5.0.0-canary.33
579
+ - @ai-sdk/gateway@4.0.0-canary.71
580
+
581
+ ## 7.0.0-canary.120
582
+
583
+ ### Major Changes
584
+
585
+ - 5463d0d: feat(provider): align tool result output content file part types with top-level message file part types
586
+
587
+ ### Patch Changes
588
+
589
+ - Updated dependencies [5463d0d]
590
+ - @ai-sdk/provider-utils@5.0.0-canary.32
591
+ - @ai-sdk/provider@4.0.0-canary.16
592
+ - @ai-sdk/gateway@4.0.0-canary.70
593
+
594
+ ## 7.0.0-canary.119
595
+
596
+ ### Patch Changes
597
+
598
+ - Updated dependencies [8e53eb7]
599
+ - @ai-sdk/gateway@4.0.0-canary.69
600
+
601
+ ## 7.0.0-canary.118
602
+
603
+ ### Patch Changes
604
+
605
+ - 47e65d6: fix(ai): tag step/chunk timeout aborts with `TimeoutError` reason
606
+
607
+ When `timeout: { stepMs }` or `timeout: { chunkMs }` fires, the abort reason is now a `TimeoutError` `DOMException`, matching what `AbortSignal.timeout()` produces natively. Consumers can distinguish a framework timeout from a user-initiated cancel via `signal.reason.name === 'TimeoutError'`.
608
+
609
+ ## 7.0.0-canary.117
610
+
611
+ ### Patch Changes
612
+
613
+ - 0c4c275: trigger initial canary release
614
+ - Updated dependencies [0c4c275]
615
+ - @ai-sdk/provider-utils@5.0.0-canary.31
616
+ - @ai-sdk/provider@4.0.0-canary.15
617
+ - @ai-sdk/gateway@4.0.0-canary.68
618
+
619
+ ## 7.0.0-beta.116
620
+
621
+ ### Patch Changes
622
+
623
+ - Updated dependencies [e7e8f42]
624
+ - @ai-sdk/gateway@4.0.0-beta.67
625
+
626
+ ## 7.0.0-beta.115
627
+
628
+ ### Patch Changes
629
+
630
+ - 08d2129: feat(mcp): propagate the server name through dynamic tool parts
631
+ - 202f107: feat(ai): create a diagnostics channel to push event data
632
+ - Updated dependencies [08d2129]
633
+ - Updated dependencies [04e9009]
634
+ - Updated dependencies [be09425]
635
+ - @ai-sdk/provider-utils@5.0.0-beta.30
636
+ - @ai-sdk/gateway@4.0.0-beta.66
637
+
638
+ ## 7.0.0-beta.114
639
+
640
+ ### Major Changes
641
+
642
+ - 1f7db50: fix(ai): remove experimental_customProvider
643
+ - 9bd6512: feat(provider): change file part data property to be tagged with a type and remove the image part type
644
+
645
+ ### Patch Changes
646
+
647
+ - 43a6750: fix(ai): preserve `allowSystemInMessages` across `streamText` retries
648
+ - 81caa5d: fix(ai): remove ExtractLiteralUnion export
649
+ - 258c093: chore: ensure consistent import handling and avoid import duplicates or cycles
650
+ - 6147cdf: fix(ai): fix auto-complete on provider registry and custom provider
651
+ - Updated dependencies [9bd6512]
652
+ - Updated dependencies [258c093]
653
+ - Updated dependencies [b6783da]
654
+ - @ai-sdk/provider-utils@5.0.0-beta.29
655
+ - @ai-sdk/provider@4.0.0-beta.14
656
+ - @ai-sdk/gateway@4.0.0-beta.65
657
+
658
+ ## 7.0.0-beta.113
659
+
660
+ ### Patch Changes
661
+
662
+ - 9f0e36c: trigger release for all packages after provenance setup
663
+ - Updated dependencies [9f0e36c]
664
+ - @ai-sdk/gateway@4.0.0-beta.64
665
+ - @ai-sdk/provider@4.0.0-beta.13
666
+ - @ai-sdk/provider-utils@5.0.0-beta.28
667
+
668
+ ## 7.0.0-beta.112
669
+
670
+ ### Major Changes
671
+
672
+ - cf93359: feat(ai): remove/refactor event data sent via callbacks
673
+ - 116c89f: feat(ai): remove telemetry data from the user-facing event data
674
+ - 4e095b0: fix(ai): reject system messages in messages or prompt by default (opt-in)
675
+
676
+ ### Patch Changes
677
+
678
+ - 5f3749c: refactoring: rename toolNeedsApproval to toolApproval
679
+ - 0a51f7d: fix(ai): enforce `callOptionsSchema` at runtime in `ToolLoopAgent`
680
+
681
+ `ToolLoopAgentSettings.callOptionsSchema` was declared and documented as a runtime schema for `options`, but `tool-loop-agent.ts` never invoked it. Any invariant a developer encoded in the schema was silently bypassed at runtime, and unchecked `options` flowed straight into `prepareCall` and any `instructions` template that interpolated them.
682
+
683
+ `ToolLoopAgent.prepareCall` now validates caller-supplied `options` against `callOptionsSchema` (when set) via `safeValidateTypes`, throwing `InvalidArgumentError` on failure before forwarding to `prepareCall` / `generateText` / `streamText`.
684
+
685
+ - 71d3022: fix(ai): unify generate text event callbacks
686
+ - 67df0a0: feat: add sensitiveContext property to Tool
687
+ - 4181cfe: fix(ai): harden `getMediaTypeFromUrl` against prototype-property collisions
688
+
689
+ `getMediaTypeFromUrl` (used to infer media types for `file-url` / `image-url` parts) used `ext in URL_EXTENSION_TO_MEDIA_TYPE` against a plain object literal. A URL ending in `.constructor` therefore resolved through the prototype chain and returned the `Object` constructor function, violating the helper's `: string` return type and forwarding a non-string value to provider adapters.
690
+
691
+ Switch to `Object.hasOwn(...)` so attacker-controlled extensions like `.constructor` cannot resolve to inherited `Object.prototype` keys.
692
+
693
+ - 51ce232: feat(ai): add sensitiveRuntimeContext option
694
+ - befb78c: refactoring: remove real-time delays in unit tests
695
+ - 29d8cf4: feat(ai): rename the core-event types
696
+ - 58a2ad7: fix: more precise default message for tool execution denial
697
+ - 37d69b2: feat(ai): access runtime context in tool approval functions
698
+ - 1043274: feat(ai): add a ModelCall start/end event
699
+ - 7f59f04: feat(ai): add approval reason to automatic tool approvals
700
+ - 7677c1e: feat(ai): allow tool approval functions to return undefined
701
+ - f58f9bc: fix(ai): remove stopWhen from onStart event
702
+ - e1bfb9c: feat(ai): remove unnecessary data from events
703
+ - e87d71b: feat(ai): support automatic tool approval in ui messages
704
+ - 9d486aa: feat(ai): generic tool approval function
705
+ - 9b0bc8a: fix(mcp): prevent prototype pollution by using secureJsonParse
706
+ - fc92055: feat(ai): automatic tool approval
707
+ - Updated dependencies [785fe16]
708
+ - Updated dependencies [67df0a0]
709
+ - Updated dependencies [befb78c]
710
+ - Updated dependencies [0458559]
711
+ - Updated dependencies [5852c0a]
712
+ - Updated dependencies [baa5f20]
713
+ - Updated dependencies [fc92055]
714
+ - Updated dependencies [f9acbc0]
715
+ - @ai-sdk/provider-utils@5.0.0-beta.27
716
+ - @ai-sdk/gateway@4.0.0-beta.63
717
+
718
+ ## 7.0.0-beta.111
719
+
720
+ ### Major Changes
721
+
722
+ - 1949571: feat(ai): make experimental_telemetry stable
723
+ - 6542d93: feat(ai): change naming nomenclature for `*TelemetryIntegration` to `*Telemetry`
724
+
725
+ ### Patch Changes
726
+
727
+ - f319fde: feat(ai): validate tool context against contextSchema at runtime
728
+
729
+ Tool execution and approval callbacks now validate each tool's `toolsContext` entry against its `contextSchema`. Invalid tool context now throws `TypeValidationError` with tool-context validation metadata in `error.context`.
730
+
731
+ - 511902c: skip validation for tool parts in terminal states when tool schema is no longer registered
732
+ - 2e98477: fix: retain stack traces on async errors
733
+ - 876fd3e: fix(ai): limit tool execution time duration to actual tool execution
734
+ - f32c750: refactoring(ai): simplify mergeAbortSignals
735
+ - Updated dependencies [2e98477]
736
+ - @ai-sdk/provider-utils@5.0.0-beta.26
737
+ - @ai-sdk/gateway@4.0.0-beta.62
738
+
739
+ ## 7.0.0-beta.110
740
+
741
+ ### Patch Changes
742
+
743
+ - 72cb801: feat(ai): concurrent event notification
744
+
745
+ ## 7.0.0-beta.109
746
+
747
+ ### Patch Changes
748
+
749
+ - ec98264: feat(ai): allow multiple integrations to be registered at once
750
+ - eea8d98: refactoring: rename tool execution events
751
+ - 75ef93e: remove the deprecated `experimental_output` alias and document the `output` migration for AI SDK 7
752
+ - Updated dependencies [eea8d98]
753
+ - @ai-sdk/provider-utils@5.0.0-beta.25
754
+ - @ai-sdk/gateway@4.0.0-beta.61
755
+
756
+ ## 7.0.0-beta.108
757
+
758
+ ### Patch Changes
759
+
760
+ - Updated dependencies [f807e45]
761
+ - @ai-sdk/provider-utils@5.0.0-beta.24
762
+ - @ai-sdk/gateway@4.0.0-beta.60
763
+
764
+ ## 7.0.0-beta.107
765
+
766
+ ### Patch Changes
767
+
768
+ - 350ea38: refactoring: introduce Arrayable type
769
+ - Updated dependencies [350ea38]
770
+ - @ai-sdk/provider-utils@5.0.0-beta.23
771
+ - @ai-sdk/gateway@4.0.0-beta.59
772
+
773
+ ## 7.0.0-beta.106
774
+
775
+ ### Patch Changes
776
+
777
+ - Updated dependencies [03dc15c]
778
+ - @ai-sdk/gateway@4.0.0-beta.58
779
+
780
+ ## 7.0.0-beta.105
781
+
782
+ ### Patch Changes
783
+
784
+ - 33d099c: fix(ai): omit reasoning-start/end when sendReasoning is false
785
+
786
+ ## 7.0.0-beta.104
787
+
788
+ ### Patch Changes
789
+
790
+ - 2a74d43: Remove the deprecated `experimental_prepareStep` option from `generateText`.
791
+
792
+ Use `prepareStep` instead.
793
+
794
+ ## 7.0.0-beta.103
795
+
796
+ ### Patch Changes
797
+
798
+ - 382d53b: refactoring: rename context to runtimeContext
799
+ - 7bf7d7f: feat(ai): enable:true for telemetry by default
800
+ - c3d4019: chore(ai): rename 'TelemetrySettings' to 'TelemetryOptions'
801
+ - 083947b: feat(ai): separate toolsContext from context
802
+ - Updated dependencies [083947b]
803
+ - @ai-sdk/provider-utils@5.0.0-beta.22
804
+ - @ai-sdk/gateway@4.0.0-beta.57
805
+
806
+ ## 7.0.0-beta.102
807
+
808
+ ### Patch Changes
809
+
810
+ - Updated dependencies [0d8f107]
811
+ - @ai-sdk/gateway@4.0.0-beta.56
812
+
813
+ ## 7.0.0-beta.101
814
+
815
+ ### Patch Changes
816
+
817
+ - 4873966: chore(ai): allow general usage of `logWarnings` and emit them via Node API when available
818
+
819
+ ## 7.0.0-beta.100
820
+
821
+ ### Patch Changes
822
+
823
+ - add1126: refactoring: executeTool uses tool as parameter
824
+ - Updated dependencies [add1126]
825
+ - @ai-sdk/provider-utils@5.0.0-beta.21
826
+ - @ai-sdk/gateway@4.0.0-beta.55
827
+
828
+ ## 7.0.0-beta.99
829
+
830
+ ### Patch Changes
831
+
832
+ - 2a9c144: feat(ai): add toolNeedsApproval option
833
+
834
+ ## 7.0.0-beta.98
835
+
836
+ ### Patch Changes
837
+
838
+ - Updated dependencies [5df9b6f]
839
+ - @ai-sdk/gateway@4.0.0-beta.54
840
+
841
+ ## 7.0.0-beta.97
842
+
843
+ ### Patch Changes
844
+
845
+ - 208d045: fix(ai): skip global telemetry registration when local integration defined
846
+
847
+ ## 7.0.0-beta.96
848
+
849
+ ### Patch Changes
850
+
851
+ - Updated dependencies [0457e45]
852
+ - @ai-sdk/gateway@4.0.0-beta.53
853
+
854
+ ## 7.0.0-beta.95
855
+
856
+ ### Patch Changes
857
+
858
+ - c4f4b5f: refactoring(ai): remove deprecated experimental_activeTools option
859
+
860
+ ## 7.0.0-beta.94
861
+
862
+ ### Patch Changes
863
+
864
+ - 1582efa: chore(ai): remove the metadata field from the telemetry settings
865
+
866
+ ## 7.0.0-beta.93
867
+
868
+ ### Patch Changes
869
+
870
+ - bc47739: chore(ai): cleanup telemetry event data
871
+
872
+ ## 7.0.0-beta.92
873
+
874
+ ### Patch Changes
875
+
876
+ - Updated dependencies [ba2e254]
877
+ - @ai-sdk/gateway@4.0.0-beta.52
878
+
879
+ ## 7.0.0-beta.91
880
+
881
+ ### Patch Changes
882
+
883
+ - Updated dependencies [cdcdec2]
884
+ - @ai-sdk/gateway@4.0.0-beta.51
885
+
886
+ ## 7.0.0-beta.90
887
+
888
+ ### Patch Changes
889
+
890
+ - 1db29c8: feat(ai): break `CallSettings` apart into `LanguageModelCallOptions` and `RequestOptions`
891
+
892
+ ## 7.0.0-beta.89
893
+
894
+ ### Patch Changes
895
+
896
+ - ff5eba1: feat: roll `image-*` tool output types into their equivalent `file-*` types
897
+ - Updated dependencies [b3976a2]
898
+ - Updated dependencies [ff5eba1]
899
+ - @ai-sdk/provider-utils@5.0.0-beta.20
900
+ - @ai-sdk/gateway@4.0.0-beta.50
901
+ - @ai-sdk/provider@4.0.0-beta.12
902
+
903
+ ## 7.0.0-beta.88
904
+
905
+ ### Major Changes
906
+
907
+ - ef992f8: Remove CommonJS exports from all packages. All packages are now ESM-only (`"type": "module"`). Consumers using `require()` must switch to ESM `import` syntax.
908
+
909
+ ### Patch Changes
910
+
911
+ - Updated dependencies [ef992f8]
912
+ - @ai-sdk/gateway@4.0.0-beta.49
913
+ - @ai-sdk/provider@4.0.0-beta.11
914
+ - @ai-sdk/provider-utils@5.0.0-beta.19
915
+
916
+ ## 7.0.0-beta.87
917
+
918
+ ### Patch Changes
919
+
920
+ - Updated dependencies [bdbd322]
921
+ - Updated dependencies [8f53ccf]
922
+ - @ai-sdk/gateway@4.0.0-beta.48
923
+
924
+ ## 7.0.0-beta.86
925
+
926
+ ### Patch Changes
927
+
928
+ - 5a6f514: feat(ai): support several tools in hasToolCall stop condition
929
+
930
+ ## 7.0.0-beta.85
931
+
932
+ ### Major Changes
933
+
934
+ - 57bf606: chore(ai): simplify unified telemetry creation
935
+
936
+ ## 7.0.0-beta.84
937
+
938
+ ### Patch Changes
939
+
940
+ - 90e2d8a: chore: fix unused vars not being flagged by our lint tooling
941
+ - Updated dependencies [90e2d8a]
942
+ - @ai-sdk/provider-utils@5.0.0-beta.18
943
+ - @ai-sdk/gateway@4.0.0-beta.47
944
+
945
+ ## 7.0.0-beta.83
946
+
947
+ ### Patch Changes
948
+
949
+ - Updated dependencies [6b0a40d]
950
+ - @ai-sdk/gateway@4.0.0-beta.46
951
+
952
+ ## 7.0.0-beta.82
953
+
954
+ ### Patch Changes
955
+
956
+ - e27ed76: feat(devtools): add new devtools integration for telemetry
957
+
958
+ ## 7.0.0-beta.81
959
+
960
+ ### Patch Changes
961
+
962
+ - 2fe1099: feat(ai): emit streaming chunks throught the onChunk callback
963
+ - f04adcb: feat(ai): refresh `customProvider` and `createProviderRegistry` to support file and skill upload abstractions
964
+
965
+ ## 7.0.0-beta.80
966
+
967
+ ### Patch Changes
968
+
969
+ - 3ae1786: fix: better context type inference
970
+ - Updated dependencies [3ae1786]
971
+ - @ai-sdk/provider-utils@5.0.0-beta.17
972
+ - @ai-sdk/gateway@4.0.0-beta.45
973
+
974
+ ## 7.0.0-beta.79
975
+
976
+ ### Patch Changes
977
+
978
+ - 6866afe: fix(ai): fix `lastAssistantMessageIsCompleteWithApprovalResponses` to no longer ignore `providerExecuted` tool approvals
979
+
980
+ ## 7.0.0-beta.78
981
+
982
+ ### Patch Changes
983
+
984
+ - f372547: fix(ai): fix `providerExecuted` tool approvals being passed to language model twice
985
+ - Updated dependencies [7943a4b]
986
+ - @ai-sdk/gateway@4.0.0-beta.44
987
+
988
+ ## 7.0.0-beta.77
989
+
990
+ ### Patch Changes
991
+
992
+ - 2add429: fix(ai): skip passing invalid JSON inputs to response messages
993
+
994
+ ## 7.0.0-beta.76
995
+
996
+ ### Major Changes
997
+
998
+ - fcc6869: refactor(ai/core): rename `ModelCallStreamPart` to `LanguageModelStreamPart` and align stream model call naming (`streamLanguageModelCall`, `experimental_streamLanguageModelCall`).
999
+
1000
+ This updates experimental low-level stream primitives to use "language model call" terminology consistently.
1001
+
1002
+ ## 7.0.0-beta.75
1003
+
1004
+ ### Patch Changes
1005
+
1006
+ - 176466a: chore(provider): align V4 model return types to have their own definitions across all model interfaces
1007
+ - Updated dependencies [176466a]
1008
+ - @ai-sdk/provider@4.0.0-beta.10
1009
+ - @ai-sdk/gateway@4.0.0-beta.43
1010
+ - @ai-sdk/provider-utils@5.0.0-beta.16
1011
+
1012
+ ## 7.0.0-beta.74
1013
+
1014
+ ### Patch Changes
1015
+
1016
+ - e311194: feat(ai): allow passing provider instance to `uploadFile` and `uploadSkill` as shorthand
1017
+ - Updated dependencies [e311194]
1018
+ - @ai-sdk/provider@4.0.0-beta.9
1019
+ - @ai-sdk/gateway@4.0.0-beta.42
1020
+ - @ai-sdk/provider-utils@5.0.0-beta.15
1021
+
1022
+ ## 7.0.0-beta.73
1023
+
1024
+ ### Patch Changes
1025
+
1026
+ - Updated dependencies [1464561]
1027
+ - @ai-sdk/gateway@4.0.0-beta.41
1028
+
1029
+ ## 7.0.0-beta.72
1030
+
1031
+ ### Patch Changes
1032
+
1033
+ - 664a0eb: feat (ai/core): support plain string model IDs in `rerank()` function
1034
+
1035
+ The `rerank()` function now accepts plain model strings (e.g., `'cohere/rerank-v3.5'`) in addition to `RerankingModel` objects, matching the behavior of `generateText`, `embed`, and other core functions.
1036
+
1037
+ ## 7.0.0-beta.71
1038
+
1039
+ ### Patch Changes
1040
+
1041
+ - e68be55: fix(ai): skip stringifying text when streaming partial text
1042
+ - Updated dependencies [939171f]
1043
+ - @ai-sdk/gateway@4.0.0-beta.40
1044
+
1045
+ ## 7.0.0-beta.70
1046
+
1047
+ ### Patch Changes
1048
+
1049
+ - Updated dependencies [0694029]
1050
+ - @ai-sdk/gateway@4.0.0-beta.39
1051
+
1052
+ ## 7.0.0-beta.69
1053
+
1054
+ ### Major Changes
1055
+
1056
+ - 72223e7: chore(ai): remove deprecated isToolOrDynamicToolUIPart function
1057
+
1058
+ ### Patch Changes
1059
+
1060
+ - 34bd95d: feat(ai): add support for uploading provider skills using the provider references abstraction
1061
+ - 008271d: feat(openai-compatible): emit warning when using kebab-case instead of camelCase
1062
+ - Updated dependencies [34bd95d]
1063
+ - Updated dependencies [008271d]
1064
+ - @ai-sdk/provider@4.0.0-beta.8
1065
+ - @ai-sdk/gateway@4.0.0-beta.38
1066
+ - @ai-sdk/provider-utils@5.0.0-beta.14
1067
+
1068
+ ## 7.0.0-beta.68
1069
+
1070
+ ### Major Changes
1071
+
1072
+ - 7e26e81: chore: rename experimental_context to context
1073
+
1074
+ ### Patch Changes
1075
+
1076
+ - b0c2869: chore(ai): remove deprecated `media` type part from `ToolResultOutput`
1077
+ - Updated dependencies [b0c2869]
1078
+ - Updated dependencies [7e26e81]
1079
+ - @ai-sdk/provider-utils@5.0.0-beta.13
1080
+ - @ai-sdk/gateway@4.0.0-beta.37
1081
+
1082
+ ## 7.0.0-beta.67
1083
+
1084
+ ### Patch Changes
1085
+
1086
+ - d1a8bed: fix(ui): export `isDynamicToolUIPart` from `ai` package
1087
+
1088
+ ## 7.0.0-beta.66
1089
+
1090
+ ### Patch Changes
1091
+
1092
+ - Updated dependencies [fb0c233]
1093
+ - Updated dependencies [d1f0d2b]
1094
+ - @ai-sdk/gateway@4.0.0-beta.36
1095
+
1096
+ ## 7.0.0-beta.65
1097
+
1098
+ ### Patch Changes
1099
+
1100
+ - Updated dependencies [46d1149]
1101
+ - @ai-sdk/provider-utils@5.0.0-beta.12
1102
+ - @ai-sdk/gateway@4.0.0-beta.35
1103
+
1104
+ ## 7.0.0-beta.64
1105
+
1106
+ ### Patch Changes
1107
+
1108
+ - Updated dependencies [71b0e7d]
1109
+ - @ai-sdk/gateway@4.0.0-beta.34
1110
+
1111
+ ## 7.0.0-beta.63
1112
+
1113
+ ### Patch Changes
1114
+
1115
+ - 6fd51c0: fix(provider): preserve error type prefix in getErrorMessage
1116
+ - Updated dependencies [6fd51c0]
1117
+ - @ai-sdk/provider-utils@5.0.0-beta.11
1118
+ - @ai-sdk/provider@4.0.0-beta.7
1119
+ - @ai-sdk/gateway@4.0.0-beta.33
1120
+
1121
+ ## 7.0.0-beta.62
1122
+
1123
+ ### Patch Changes
1124
+
1125
+ - Updated dependencies [11746ca]
1126
+ - @ai-sdk/gateway@4.0.0-beta.32
1127
+
1128
+ ## 7.0.0-beta.61
1129
+
1130
+ ### Patch Changes
1131
+
1132
+ - c29a26f: feat(provider): add support for provider references and uploading files as supported per provider
1133
+ - Updated dependencies [c29a26f]
1134
+ - @ai-sdk/provider-utils@5.0.0-beta.10
1135
+ - @ai-sdk/provider@4.0.0-beta.6
1136
+ - @ai-sdk/gateway@4.0.0-beta.31
1137
+
1138
+ ## 7.0.0-beta.60
1139
+
1140
+ ### Patch Changes
1141
+
1142
+ - 38fc777: Add AI Gateway hint to provider READMEs
1143
+
1144
+ ## 7.0.0-beta.59
1145
+
1146
+ ### Patch Changes
1147
+
1148
+ - Updated dependencies [4552cbf]
1149
+ - @ai-sdk/gateway@4.0.0-beta.30
1150
+
1151
+ ## 7.0.0-beta.58
1152
+
1153
+ ### Patch Changes
1154
+
1155
+ - 2e17091: fix(types): move shared tool set utility types into provider-utils
1156
+
1157
+ Moved `ToolSet`, `InferToolSetContext`, and `UnionToIntersection` into `@ai-sdk/provider-utils` and updated `ai` internals to import them directly from there. This keeps the shared tool typing utilities colocated with the core tool type definitions.
1158
+
1159
+ - Updated dependencies [2e17091]
1160
+ - @ai-sdk/provider-utils@5.0.0-beta.9
1161
+ - @ai-sdk/gateway@4.0.0-beta.29
1162
+
1163
+ ## 7.0.0-beta.57
1164
+
1165
+ ### Major Changes
1166
+
1167
+ - 986c6fd: feat(ai): change type of experimental_context from unknown to generic
1168
+ - 493295c: Remove the deprecated `ToolCallOptions` export.
1169
+
1170
+ Use `ToolExecutionOptions` instead.
1171
+
1172
+ ### Patch Changes
1173
+
1174
+ - Updated dependencies [986c6fd]
1175
+ - Updated dependencies [493295c]
1176
+ - @ai-sdk/provider-utils@5.0.0-beta.8
1177
+ - @ai-sdk/gateway@4.0.0-beta.28
1178
+
1179
+ ## 7.0.0-beta.56
1180
+
1181
+ ### Patch Changes
1182
+
1183
+ - Updated dependencies [70a9aae]
1184
+ - @ai-sdk/gateway@4.0.0-beta.27
1185
+
1186
+ ## 7.0.0-beta.55
1187
+
1188
+ ### Major Changes
1189
+
1190
+ - b3c9f6a: feat(ai): create new opentelemetry package (@ai-sdk/otel)
1191
+
1192
+ ## 7.0.0-beta.54
1193
+
1194
+ ### Patch Changes
1195
+
1196
+ - 5d0f18e: feat(ai): move opentelemetry to new package
1197
+
1198
+ ## 7.0.0-beta.53
1199
+
1200
+ ### Patch Changes
1201
+
1202
+ - 9b47dea: fix(ai): remove otel Tracer api from telemetry settings
1203
+
1204
+ ## 7.0.0-beta.52
1205
+
1206
+ ### Patch Changes
1207
+
1208
+ - b56301c: feat(ai): decouple otel from generate/streamObject
1209
+
1210
+ ## 7.0.0-beta.51
1211
+
1212
+ ### Patch Changes
1213
+
1214
+ - 6abd098: split `prepareToolsAndToolChoice()` into `prepareTools()` and `prepareToolChoice()`
1215
+
1216
+ ## 7.0.0-beta.50
1217
+
1218
+ ### Patch Changes
1219
+
1220
+ - 3debdb7: feat(ai): rename `stepCountIs` to `isStepCount`
1221
+
1222
+ ## 7.0.0-beta.49
1223
+
1224
+ ### Patch Changes
1225
+
1226
+ - Updated dependencies [294cbe7]
1227
+ - @ai-sdk/gateway@4.0.0-beta.26
1228
+
1229
+ ## 7.0.0-beta.48
1230
+
1231
+ ### Patch Changes
1232
+
1233
+ - 5c4d910: feat(ai): add new `isLoopFinished` stop condition helper for unlimited steps
1234
+
1235
+ ## 7.0.0-beta.47
1236
+
1237
+ ### Patch Changes
1238
+
1239
+ - bc67b4f: feat(ai): add experimental callbacks for structured outputs
1240
+
1241
+ ## 7.0.0-beta.46
1242
+
1243
+ ### Patch Changes
1244
+
1245
+ - 31ee822: refactoring(ai): extract filterActiveTools and expose it as experimental_filterActiveTools
1246
+
1247
+ ## 7.0.0-beta.45
1248
+
1249
+ ### Patch Changes
1250
+
1251
+ - Updated dependencies [435895b]
1252
+ - @ai-sdk/gateway@4.0.0-beta.25
1253
+
1254
+ ## 7.0.0-beta.44
1255
+
1256
+ ### Patch Changes
1257
+
1258
+ - Updated dependencies [d30466c]
1259
+ - @ai-sdk/gateway@4.0.0-beta.24
1260
+
1261
+ ## 7.0.0-beta.43
1262
+
1263
+ ### Patch Changes
1264
+
1265
+ - Updated dependencies [4ec78cd]
1266
+ - @ai-sdk/gateway@4.0.0-beta.23
1267
+
1268
+ ## 7.0.0-beta.42
1269
+
1270
+ ### Patch Changes
1271
+
1272
+ - a3fd75b: feat(ai): expose Experimental_ModelCallStreamPart type
1273
+
1274
+ ## 7.0.0-beta.41
1275
+
1276
+ ### Patch Changes
1277
+
1278
+ - Updated dependencies [7ceff62]
1279
+ - @ai-sdk/gateway@4.0.0-beta.22
1280
+
1281
+ ## 7.0.0-beta.40
1282
+
1283
+ ### Patch Changes
1284
+
1285
+ - 989d3d2: fix(ai): include generated files in OTEL response attributes
1286
+
1287
+ ## 7.0.0-beta.39
1288
+
1289
+ ### Patch Changes
1290
+
1291
+ - f4cfccd: feat(ai): decouple otel from rerank function
1292
+
1293
+ ## 7.0.0-beta.38
1294
+
1295
+ ### Patch Changes
1296
+
1297
+ - 1f509d4: fix(ai): force template check on 'kind' param
1298
+ - Updated dependencies [1f509d4]
1299
+ - @ai-sdk/provider-utils@5.0.0-beta.7
1300
+ - @ai-sdk/provider@4.0.0-beta.5
1301
+ - @ai-sdk/gateway@4.0.0-beta.21
1302
+
1303
+ ## 7.0.0-beta.37
1304
+
1305
+ ### Patch Changes
1306
+
1307
+ - Updated dependencies [4f91b5d]
1308
+ - @ai-sdk/gateway@4.0.0-beta.20
1309
+
1310
+ ## 7.0.0-beta.36
1311
+
1312
+ ### Patch Changes
1313
+
1314
+ - 118b953: feat(ai): decouple otel from embed functions
1315
+
1316
+ ## 7.0.0-beta.35
1317
+
1318
+ ### Patch Changes
1319
+
1320
+ - 99bf941: feat(ai): extract streamModelCall function for streaming text generation
1321
+
1322
+ ## 7.0.0-beta.34
1323
+
1324
+ ### Patch Changes
1325
+
1326
+ - Updated dependencies [72889f8]
1327
+ - @ai-sdk/gateway@4.0.0-beta.19
1328
+
1329
+ ## 7.0.0-beta.33
1330
+
1331
+ ### Patch Changes
1332
+
1333
+ - caf1b6f: feat(ai): introduce experimental callbacks for rerank function
1334
+
1335
+ ## 7.0.0-beta.32
1336
+
1337
+ ### Major Changes
1338
+
1339
+ - 4b46062: refactoring(ai): extract tool callback invocation into separate function and forward chunks before callback invocation
1340
+
1341
+ ### Patch Changes
1342
+
1343
+ - Updated dependencies [165b97a]
1344
+ - @ai-sdk/gateway@4.0.0-beta.18
1345
+
1346
+ ## 7.0.0-beta.31
1347
+
1348
+ ### Patch Changes
1349
+
1350
+ - e79e644: chore(ai/core): remove `timeout` from `CallSettings` as it was effectively unused there
1351
+
1352
+ ## 7.0.0-beta.30
1353
+
1354
+ ### Patch Changes
1355
+
1356
+ - f5a6f89: README updates
1357
+
1358
+ ## 7.0.0-beta.29
1359
+
1360
+ ### Patch Changes
1361
+
1362
+ - 877bf12: fix(ai): flatten model attributes for telemetry
1363
+
1364
+ ## 7.0.0-beta.28
1365
+
1366
+ ### Major Changes
1367
+
1368
+ - b9cf502: refactoring(ai): delay tool execution in stream text until model call is finished
1369
+
1370
+ ## 7.0.0-beta.27
1371
+
1372
+ ### Patch Changes
1373
+
1374
+ - 3887c70: feat(provider): add new top-level reasoning parameter to spec and support it in `generateText` and `streamText`
1375
+ - Updated dependencies [3887c70]
1376
+ - @ai-sdk/provider-utils@5.0.0-beta.6
1377
+ - @ai-sdk/provider@4.0.0-beta.4
1378
+ - @ai-sdk/gateway@4.0.0-beta.17
1379
+
1380
+ ## 7.0.0-beta.26
1381
+
1382
+ ### Patch Changes
1383
+
1384
+ - f0b0b20: feat(ai): add per-tool timeout overrides via toolTimeouts
1385
+
1386
+ ## 7.0.0-beta.25
1387
+
1388
+ ### Patch Changes
1389
+
1390
+ - ff9ce30: feat(ai): introduce experimental callbacks for embed function
1391
+
1392
+ ## 7.0.0-beta.24
1393
+
1394
+ ### Major Changes
1395
+
1396
+ - 776b617: feat(provider): adding new 'custom' content type
1397
+
1398
+ ### Patch Changes
1399
+
1400
+ - Updated dependencies [776b617]
1401
+ - @ai-sdk/provider-utils@5.0.0-beta.5
1402
+ - @ai-sdk/provider@4.0.0-beta.3
1403
+ - @ai-sdk/gateway@4.0.0-beta.16
1404
+
1405
+ ## 7.0.0-beta.23
1406
+
1407
+ ### Patch Changes
1408
+
1409
+ - 80d4dde: fix(ai): include tool input on tool result for provider executed dynamic tools
1410
+ - Updated dependencies [61753c3]
1411
+ - @ai-sdk/provider-utils@5.0.0-beta.4
1412
+ - @ai-sdk/gateway@4.0.0-beta.15
1413
+
1414
+ ## 7.0.0-beta.22
1415
+
1416
+ ### Patch Changes
1417
+
1418
+ - Updated dependencies [ead9144]
1419
+ - @ai-sdk/gateway@4.0.0-beta.14
1420
+
1421
+ ## 7.0.0-beta.21
1422
+
1423
+ ### Patch Changes
1424
+
1425
+ - 34fd051: feat(ai): add toolMs to timeout configuration
1426
+
1427
+ ## 7.0.0-beta.20
1428
+
1429
+ ### Patch Changes
1430
+
1431
+ - Updated dependencies [2095655]
1432
+ - @ai-sdk/gateway@4.0.0-beta.13
1433
+
1434
+ ## 7.0.0-beta.19
1435
+
1436
+ ### Patch Changes
1437
+
1438
+ - Updated dependencies [f7d4f01]
1439
+ - @ai-sdk/provider-utils@5.0.0-beta.3
1440
+ - @ai-sdk/provider@4.0.0-beta.2
1441
+ - @ai-sdk/gateway@4.0.0-beta.12
1442
+
3
1443
  ## 7.0.0-beta.18
4
1444
 
5
1445
  ### Patch Changes
@@ -662,7 +2102,6 @@
662
2102
  ### Patch Changes
663
2103
 
664
2104
  - 2dc9bfa: fix(ai): handle provider-executed tools and tool-approval-response in validation
665
-
666
2105
  - Skip validation for tool calls with `providerExecuted: true` (deferred results)
667
2106
  - Map approvalId to toolCallId for proper tool-approval-response handling
668
2107
  - Filter out empty tool messages after content filtering
@@ -996,13 +2435,13 @@
996
2435
  Before
997
2436
 
998
2437
  ```ts
999
- model.textEmbeddingModel('my-model-id');
2438
+ model.textEmbeddingModel("my-model-id");
1000
2439
  ```
1001
2440
 
1002
2441
  After
1003
2442
 
1004
2443
  ```ts
1005
- model.embeddingModel('my-model-id');
2444
+ model.embeddingModel("my-model-id");
1006
2445
  ```
1007
2446
 
1008
2447
  - b67d224: Fixes an issue where `providerMetadata` and `providerExecuted` were lost when tool input validation failed
@@ -1025,15 +2464,15 @@
1025
2464
  This change replaces
1026
2465
 
1027
2466
  ```ts
1028
- import { experimental_createMCPClient } from 'ai';
1029
- import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
2467
+ import { experimental_createMCPClient } from "ai";
2468
+ import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
1030
2469
  ```
1031
2470
 
1032
2471
  with
1033
2472
 
1034
2473
  ```ts
1035
- import { experimental_createMCPClient } from '@ai-sdk/mcp';
1036
- import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
2474
+ import { experimental_createMCPClient } from "@ai-sdk/mcp";
2475
+ import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
1037
2476
  ```
1038
2477
 
1039
2478
  - 90e5bdd: chore(ai): restructure agent files
@@ -1120,7 +2559,7 @@
1120
2559
  - 81d4308: feat: provider-executed dynamic tools
1121
2560
  - e0d1ea9: fix(ai): align logic of text-end with reasoning-end
1122
2561
  - 2406576: chore(agent): rename messages property on agent ui stream functions to uiMessages
1123
- - b1aeea7: feat(ai): set default stopWhen on Agent to stepCountIs(20)
2562
+ - b1aeea7: feat(ai): set default stopWhen on Agent to isStepCount(20)
1124
2563
  - dce4e7b: chore(agent): rename system to instructions
1125
2564
  - 4ece5f9: feat(agent): add experimental_download to ToolLoopAgent
1126
2565
  - a417a34: feat(agent): introduce version property
@@ -1553,13 +2992,13 @@
1553
2992
  Before
1554
2993
 
1555
2994
  ```ts
1556
- model.textEmbeddingModel('my-model-id');
2995
+ model.textEmbeddingModel("my-model-id");
1557
2996
  ```
1558
2997
 
1559
2998
  After
1560
2999
 
1561
3000
  ```ts
1562
- model.embeddingModel('my-model-id');
3001
+ model.embeddingModel("my-model-id");
1563
3002
  ```
1564
3003
 
1565
3004
  - Updated dependencies [8d9e8ad]
@@ -1906,15 +3345,15 @@
1906
3345
  This change replaces
1907
3346
 
1908
3347
  ```ts
1909
- import { experimental_createMCPClient } from 'ai';
1910
- import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
3348
+ import { experimental_createMCPClient } from "ai";
3349
+ import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
1911
3350
  ```
1912
3351
 
1913
3352
  with
1914
3353
 
1915
3354
  ```ts
1916
- import { experimental_createMCPClient } from '@ai-sdk/mcp';
1917
- import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
3355
+ import { experimental_createMCPClient } from "@ai-sdk/mcp";
3356
+ import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
1918
3357
  ```
1919
3358
 
1920
3359
  ## 6.0.0-beta.71
@@ -2296,7 +3735,7 @@
2296
3735
 
2297
3736
  - aa0515c: feat(ai): move Agent to stable
2298
3737
  - e7d9b00: feat(agent): add optional name property to agent
2299
- - b1aeea7: feat(ai): set default stopWhen on Agent to stepCountIs(20)
3738
+ - b1aeea7: feat(ai): set default stopWhen on Agent to isStepCount(20)
2300
3739
 
2301
3740
  ## 5.1.0-beta.18
2302
3741
 
@@ -2833,7 +4272,7 @@
2833
4272
 
2834
4273
  ```js
2835
4274
  await generateImage({
2836
- model: luma.image('photon-flash-1', {
4275
+ model: luma.image("photon-flash-1", {
2837
4276
  maxImagesPerCall: 5,
2838
4277
  pollIntervalMillis: 500,
2839
4278
  }),
@@ -2846,7 +4285,7 @@
2846
4285
 
2847
4286
  ```js
2848
4287
  await generateImage({
2849
- model: luma.image('photon-flash-1'),
4288
+ model: luma.image("photon-flash-1"),
2850
4289
  prompt,
2851
4290
  n: 10,
2852
4291
  maxImagesPerCall: 5,
@@ -2866,7 +4305,7 @@
2866
4305
  - c7710a9: chore (ai): rename DataStreamToSSETransformStream to JsonToSseTransformStream
2867
4306
  - bfbfc4c: feat (ai): streamText/generateText: totalUsage contains usage for all steps. usage is for a single step.
2868
4307
  - 9ae327d: chore (ui): replace chat store concept with chat instances
2869
- - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to stepCountIs.
4308
+ - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to isStepCount.
2870
4309
  - 247ee0c: chore (ai): remove steps from tool invocation ui parts
2871
4310
  - 109c0ac: chore (ai): rename id to chatId (in post request, resume request, and useChat)
2872
4311
  - 954aa73: feat (ui): extended regenerate support
@@ -3046,10 +4485,10 @@
3046
4485
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
3047
4486
 
3048
4487
  ```js
3049
- const prompt = 'Santa Claus driving a Cadillac';
4488
+ const prompt = "Santa Claus driving a Cadillac";
3050
4489
 
3051
4490
  const { providerMetadata } = await experimental_generateImage({
3052
- model: openai.image('dall-e-3'),
4491
+ model: openai.image("dall-e-3"),
3053
4492
  prompt,
3054
4493
  });
3055
4494
 
@@ -3609,7 +5048,7 @@
3609
5048
  ### Major Changes
3610
5049
 
3611
5050
  - 72d7d72: chore (ai): stable activeTools
3612
- - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to stepCountIs.
5051
+ - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to isStepCount.
3613
5052
 
3614
5053
  ### Patch Changes
3615
5054
 
@@ -3712,7 +5151,7 @@
3712
5151
 
3713
5152
  ```js
3714
5153
  await generateImage({
3715
- model: luma.image('photon-flash-1', {
5154
+ model: luma.image("photon-flash-1", {
3716
5155
  maxImagesPerCall: 5,
3717
5156
  pollIntervalMillis: 500,
3718
5157
  }),
@@ -3725,7 +5164,7 @@
3725
5164
 
3726
5165
  ```js
3727
5166
  await generateImage({
3728
- model: luma.image('photon-flash-1'),
5167
+ model: luma.image("photon-flash-1"),
3729
5168
  prompt,
3730
5169
  n: 10,
3731
5170
  maxImagesPerCall: 5,
@@ -3823,10 +5262,10 @@
3823
5262
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
3824
5263
 
3825
5264
  ```js
3826
- const prompt = 'Santa Claus driving a Cadillac';
5265
+ const prompt = "Santa Claus driving a Cadillac";
3827
5266
 
3828
5267
  const { providerMetadata } = await experimental_generateImage({
3829
- model: openai.image('dall-e-3'),
5268
+ model: openai.image("dall-e-3"),
3830
5269
  prompt,
3831
5270
  });
3832
5271