ai 7.0.0-beta.18 → 7.0.0-beta.181

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 +1470 -25
  2. package/README.md +9 -19
  3. package/dist/index.d.ts +4834 -2670
  4. package/dist/index.js +9394 -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 +387 -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,1451 @@
1
1
  # ai
2
2
 
3
+ ## 7.0.0-beta.181
4
+
5
+ ### Patch Changes
6
+
7
+ - 6a2caf9: Serialize `undefined` tool output to `null` in UI message chunks
8
+
9
+ ## 7.0.0-beta.180
10
+
11
+ ### Patch Changes
12
+
13
+ - 81a284b: fix(ai): handle partial unicode escapes in fixJson
14
+
15
+ ## 7.0.0-beta.179
16
+
17
+ ### Patch Changes
18
+
19
+ - Updated dependencies [987d9e4]
20
+ - @ai-sdk/gateway@4.0.0-beta.110
21
+
22
+ ## 7.0.0-beta.178
23
+
24
+ ### Patch Changes
25
+
26
+ - b097c52: feat(ai): use tracing channels to track parent-child context
27
+ - Updated dependencies [15eb253]
28
+ - @ai-sdk/gateway@4.0.0-beta.109
29
+
30
+ ## 7.0.0-beta.177
31
+
32
+ ### Patch Changes
33
+
34
+ - b8396f0: trigger initial beta release
35
+ - Updated dependencies [b8396f0]
36
+ - @ai-sdk/gateway@4.0.0-beta.108
37
+ - @ai-sdk/provider-utils@5.0.0-beta.49
38
+ - @ai-sdk/provider@4.0.0-beta.19
39
+
40
+ ## 7.0.0-canary.176
41
+
42
+ ### Patch Changes
43
+
44
+ - Updated dependencies [d5b8263]
45
+ - @ai-sdk/gateway@4.0.0-canary.107
46
+
47
+ ## 7.0.0-canary.175
48
+
49
+ ### Patch Changes
50
+
51
+ - 6ec57f5: feat(ai): make the experimental lifecycle callbacks stable
52
+
53
+ ## 7.0.0-canary.174
54
+
55
+ ### Patch Changes
56
+
57
+ - Updated dependencies [ca2cf45]
58
+ - @ai-sdk/gateway@4.0.0-canary.106
59
+
60
+ ## 7.0.0-canary.173
61
+
62
+ ### Patch Changes
63
+
64
+ - Updated dependencies [efec111]
65
+ - @ai-sdk/gateway@4.0.0-canary.105
66
+
67
+ ## 7.0.0-canary.172
68
+
69
+ ### Patch Changes
70
+
71
+ - 25a64f8: Remove deprecated experimental generateImage exports.
72
+ - 375fdd7: fix: harden download URL SSRF guard against hostname and redirect bypasses
73
+
74
+ `validateDownloadUrl` and the file download helpers (`downloadBlob`, `download`) could be bypassed in several ways when handling untrusted URLs:
75
+
76
+ - A fully-qualified hostname with a trailing dot (e.g. `localhost.`, `myhost.local.`) skipped the localhost/`.local` blocklist.
77
+ - 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.
78
+ - 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.
79
+ - 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`).
80
+
81
+ 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.
82
+
83
+ - f18b08f: fix: redact server error details from UI message streams by default
84
+
85
+ `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.
86
+
87
+ 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.
88
+
89
+ - b4507d5: fix(provider-utils): cancel response body on download rejection to prevent socket leak
90
+
91
+ 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.
92
+
93
+ - Updated dependencies [8c17bf8]
94
+ - Updated dependencies [aeda373]
95
+ - Updated dependencies [558777f]
96
+ - Updated dependencies [375fdd7]
97
+ - Updated dependencies [b4507d5]
98
+ - @ai-sdk/gateway@4.0.0-canary.104
99
+ - @ai-sdk/provider-utils@5.0.0-canary.48
100
+
101
+ ## 7.0.0-canary.171
102
+
103
+ ### Patch Changes
104
+
105
+ - 89ad56f: Promote `generateSpeech` and `SpeechResult` to stable exports.
106
+ - f9a496f: Promote `transcribe` and `TranscriptionResult` to stable exports, with deprecated experimental aliases for backwards compatibility.
107
+ - 3295831: Harden stream text processing and middleware against prototype pollution from stream part IDs.
108
+
109
+ ## 7.0.0-canary.170
110
+
111
+ ### Patch Changes
112
+
113
+ - bae5e2b: fix(security): re-validate tool approvals from client message history before execution
114
+
115
+ 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.
116
+
117
+ 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.
118
+
119
+ - 69d7128: fix(workflow): reuse the core tool-approval validation in WorkflowAgent
120
+
121
+ `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`.
122
+
123
+ - Updated dependencies [bae5e2b]
124
+ - @ai-sdk/provider-utils@5.0.0-canary.47
125
+ - @ai-sdk/gateway@4.0.0-canary.103
126
+
127
+ ## 7.0.0-canary.169
128
+
129
+ ### Patch Changes
130
+
131
+ - a5018ab: fix(ai): return schema-transformed elements in array output mode
132
+
133
+ 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.
134
+
135
+ - 21d3d60: feat(harness): implement harness specification
136
+ - 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.
137
+ - 7fd3360: Harden UI message stream processing against prototype pollution from chunk IDs.
138
+
139
+ ## 7.0.0-canary.168
140
+
141
+ ### Patch Changes
142
+
143
+ - 1e4b350: Honor `tool.toModelOutput` in `WorkflowAgent`.
144
+
145
+ `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`.
146
+
147
+ Internally exports the shared tool-result model-output helpers from `ai/internal`, and uses the shared `getErrorMessage` behavior for workflow tool error results.
148
+
149
+ - Updated dependencies [a3bb04a]
150
+ - @ai-sdk/gateway@4.0.0-canary.102
151
+
152
+ ## 7.0.0-canary.167
153
+
154
+ ### Patch Changes
155
+
156
+ - 4757690: feat(ai): rename onObjectStepFinish to onObjectStepEnd
157
+ - eeefc3f: fix(ai): enforce `timeout.stepMs` for the whole step in `streamText`
158
+
159
+ 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.
160
+
161
+ - b79b6a8: fix(ai): add approval guard for denied tool outputs
162
+ - Updated dependencies [6b4d325]
163
+ - @ai-sdk/gateway@4.0.0-canary.101
164
+
165
+ ## 7.0.0-canary.166
166
+
167
+ ### Patch Changes
168
+
169
+ - 19736ee: feat(ai): rename onStepFinish to onStepEnd
170
+ - d66ae02: Return validated elements from generateText array output
171
+ - e4182bd: chore: rm export of OutputInterface
172
+ - Updated dependencies [24bb123]
173
+ - Updated dependencies [c44fcc8]
174
+ - Updated dependencies [97e480a]
175
+ - @ai-sdk/gateway@4.0.0-canary.100
176
+
177
+ ## 7.0.0-canary.165
178
+
179
+ ### Patch Changes
180
+
181
+ - ce769dd: feat(provider): add experimental Realtime API support for voice conversations
182
+
183
+ Adds first-class support for realtime (speech-to-speech) APIs:
184
+
185
+ - `Experimental_RealtimeModelV4` spec in `@ai-sdk/provider` with normalized event types and factory
186
+ - OpenAI, Google, and xAI realtime provider implementations
187
+ - `openai.experimental_realtime()` / `google.experimental_realtime()` / `xai.experimental_realtime()` work in both server and browser
188
+ - `.getToken()` static method on each provider for server-side ephemeral token creation
189
+ - `experimental_getRealtimeToolDefinitions` helper for provider session tool definitions
190
+ - `experimental_useRealtime` hook in `@ai-sdk/react` returning `UIMessage[]` (aligned with `useChat`), with `onToolCall` and `addToolOutput` for client-driven tool execution
191
+ - `inputAudioTranscription` session config for showing transcribed user audio messages when supported by the provider
192
+
193
+ - Updated dependencies [ce769dd]
194
+ - @ai-sdk/provider@4.0.0-canary.18
195
+ - @ai-sdk/gateway@4.0.0-canary.99
196
+ - @ai-sdk/provider-utils@5.0.0-canary.46
197
+
198
+ ## 7.0.0-canary.164
199
+
200
+ ### Patch Changes
201
+
202
+ - Updated dependencies [9876183]
203
+ - @ai-sdk/gateway@4.0.0-canary.98
204
+
205
+ ## 7.0.0-canary.163
206
+
207
+ ### Patch Changes
208
+
209
+ - ee798eb: chore(provider-utils): rename `Experimental_Sandbox` to `Experimental_SandboxSession`
210
+ - c907622: Add a `toolOrder` option to control the order in which tools are sent to provider APIs.
211
+ - Updated dependencies [ee798eb]
212
+ - Updated dependencies [daf6637]
213
+ - @ai-sdk/provider-utils@5.0.0-canary.45
214
+ - @ai-sdk/gateway@4.0.0-canary.97
215
+
216
+ ## 7.0.0-canary.162
217
+
218
+ ### Patch Changes
219
+
220
+ - Updated dependencies [83877a1]
221
+ - @ai-sdk/gateway@4.0.0-canary.96
222
+
223
+ ## 7.0.0-canary.161
224
+
225
+ ### Patch Changes
226
+
227
+ - Updated dependencies [a3261db]
228
+ - @ai-sdk/gateway@4.0.0-canary.95
229
+
230
+ ## 7.0.0-canary.160
231
+
232
+ ### Patch Changes
233
+
234
+ - Updated dependencies [712873e]
235
+ - @ai-sdk/gateway@4.0.0-canary.94
236
+
237
+ ## 7.0.0-canary.159
238
+
239
+ ### Patch Changes
240
+
241
+ - b5092f5: fix(ai): do not re-validate tool input for output-error parts in validateUIMessages
242
+
243
+ ## 7.0.0-canary.158
244
+
245
+ ### Patch Changes
246
+
247
+ - bcce2dd: feat(stream-text): expose standalone stream transformation helpers and deprecate the equivalent `streamText` result methods.
248
+
249
+ 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`.
250
+
251
+ `result.toUIMessageStreamResponse(options)` and `result.pipeUIMessageStreamToResponse(response, options)` can migrate by passing `toUIMessageStream({ stream: result.stream, ...options })` to `createUIMessageStreamResponse` or `pipeUIMessageStreamToResponse`.
252
+
253
+ 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 })`.
254
+
255
+ `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.
256
+
257
+ ## 7.0.0-canary.157
258
+
259
+ ### Patch Changes
260
+
261
+ - Updated dependencies [e02f041]
262
+ - @ai-sdk/gateway@4.0.0-canary.93
263
+
264
+ ## 7.0.0-canary.156
265
+
266
+ ### Patch Changes
267
+
268
+ - 023550e: Deprecate `streamText` result `fullStream` in favor of `stream`.
269
+ - e92fc45: feat(ai): introduce onAbort hook to close telemetry spans
270
+
271
+ ## 7.0.0-canary.155
272
+
273
+ ### Patch Changes
274
+
275
+ - e67d80e: fix: rename onFinish to onEnd
276
+ - 6cca112: feat: add timeBetweenOutputTokensMs stats
277
+ - 82fc0ab: fix(ai): pass all stream text parts to `onChunk`
278
+ - 76fd58c: fix: consider file outputs and tool calls for time to first output
279
+
280
+ ## 7.0.0-canary.154
281
+
282
+ ### Patch Changes
283
+
284
+ - 594029e: feat(ai): wrap the model call in telemetry context
285
+
286
+ ## 7.0.0-canary.153
287
+
288
+ ### Patch Changes
289
+
290
+ - 6c93e36: feat(provider-utils): add `spawnCommand` method to `Experimental_Sandbox` to allow for detached command execution
291
+ - Updated dependencies [6c93e36]
292
+ - Updated dependencies [f617ac2]
293
+ - @ai-sdk/provider-utils@5.0.0-canary.44
294
+ - @ai-sdk/gateway@4.0.0-canary.92
295
+
296
+ ## 7.0.0-canary.152
297
+
298
+ ### Patch Changes
299
+
300
+ - Updated dependencies [d4d4a5e]
301
+ - @ai-sdk/gateway@4.0.0-canary.91
302
+
303
+ ## 7.0.0-canary.151
304
+
305
+ ### Patch Changes
306
+
307
+ - Updated dependencies [8b811d8]
308
+ - @ai-sdk/gateway@4.0.0-canary.90
309
+
310
+ ## 7.0.0-canary.150
311
+
312
+ ### Patch Changes
313
+
314
+ - Updated dependencies [bba5250]
315
+ - Updated dependencies [94c6edc]
316
+ - @ai-sdk/gateway@4.0.0-canary.89
317
+
318
+ ## 7.0.0-canary.149
319
+
320
+ ### Patch Changes
321
+
322
+ - e3d9c0e: Add `allowSystemInMessages` option to `ToolLoopAgent`.
323
+
324
+ 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.
325
+
326
+ ```ts
327
+ const agent = new ToolLoopAgent({
328
+ model,
329
+ allowSystemInMessages: true,
330
+ });
331
+
332
+ await agent.generate({
333
+ messages: [
334
+ { role: "system", content: "Server context" },
335
+ { role: "user", content: "Hello" },
336
+ ],
337
+ });
338
+ ```
339
+
340
+ The option can also be returned from `prepareCall` for dynamic per-call configuration.
341
+
342
+ ## 7.0.0-canary.148
343
+
344
+ ### Patch Changes
345
+
346
+ - 2852a84: fix(ai): make input optional on input-streaming UIMessagePart variants
347
+
348
+ ## 7.0.0-canary.147
349
+
350
+ ### Patch Changes
351
+
352
+ - Updated dependencies [accaca0]
353
+ - @ai-sdk/gateway@4.0.0-canary.88
354
+
355
+ ## 7.0.0-canary.146
356
+
357
+ ### Patch Changes
358
+
359
+ - Updated dependencies [bf837fe]
360
+ - @ai-sdk/gateway@4.0.0-canary.87
361
+
362
+ ## 7.0.0-canary.145
363
+
364
+ ### Patch Changes
365
+
366
+ - Updated dependencies [546cefe]
367
+ - @ai-sdk/gateway@4.0.0-canary.86
368
+
369
+ ## 7.0.0-canary.144
370
+
371
+ ### Patch Changes
372
+
373
+ - 7fc6bd6: Raise minimum supported Node.js version to 22. Supported versions: 22, 24, and 26.
374
+ - Updated dependencies [7fc6bd6]
375
+ - @ai-sdk/gateway@4.0.0-canary.85
376
+ - @ai-sdk/provider-utils@5.0.0-canary.43
377
+ - @ai-sdk/provider@4.0.0-canary.17
378
+
379
+ ## 7.0.0-canary.143
380
+
381
+ ### Patch Changes
382
+
383
+ - a6617c5: feat(provider-utils): add `readFile` and `writeFile` plus convenience wrappers to `Experimental_Sandbox` abstraction
384
+ - Updated dependencies [a6617c5]
385
+ - Updated dependencies [032c4a5]
386
+ - @ai-sdk/provider-utils@5.0.0-canary.42
387
+ - @ai-sdk/gateway@4.0.0-canary.84
388
+
389
+ ## 7.0.0-canary.142
390
+
391
+ ### Patch Changes
392
+
393
+ - 62d6481: Post-publish release notifications now link to each package’s GitHub release and npm page.
394
+
395
+ ## 7.0.0-canary.141
396
+
397
+ ### Patch Changes
398
+
399
+ - e3a0419: fix(ai): default missing embedding warnings to an empty array
400
+
401
+ ## 7.0.0-canary.140
402
+
403
+ ### Patch Changes
404
+
405
+ - Updated dependencies [1d6fb7f]
406
+ - @ai-sdk/gateway@4.0.0-canary.83
407
+
408
+ ## 7.0.0-canary.139
409
+
410
+ ### Patch Changes
411
+
412
+ - 334ae5d: Update step performance metrics with explicit effective, input, output, and total token throughput fields.
413
+ - 28dfa06: fix: support tools with optional context
414
+ - e93fa91: rename Sandbox.executeCommand to Sandbox.runCommand
415
+ - Updated dependencies [28dfa06]
416
+ - Updated dependencies [e93fa91]
417
+ - @ai-sdk/provider-utils@5.0.0-canary.41
418
+ - @ai-sdk/gateway@4.0.0-canary.82
419
+
420
+ ## 7.0.0-canary.138
421
+
422
+ ### Patch Changes
423
+
424
+ - Updated dependencies [67c4011]
425
+ - @ai-sdk/gateway@4.0.0-canary.81
426
+
427
+ ## 7.0.0-canary.137
428
+
429
+ ### Patch Changes
430
+
431
+ - 98627e5: feat(ai): remove onChunk event from telemetry
432
+ - 476e1ca: feat(ai): remove telemetry dependency on onChunk callback
433
+
434
+ ## 7.0.0-canary.136
435
+
436
+ ### Patch Changes
437
+
438
+ - a7de9c9: fix: make sandbox experimental
439
+ - Updated dependencies [a7de9c9]
440
+ - @ai-sdk/provider-utils@5.0.0-canary.40
441
+ - @ai-sdk/gateway@4.0.0-canary.80
442
+
443
+ ## 7.0.0-canary.135
444
+
445
+ ### Patch Changes
446
+
447
+ - Updated dependencies [105f95b]
448
+ - @ai-sdk/provider-utils@5.0.0-canary.39
449
+ - @ai-sdk/gateway@4.0.0-canary.79
450
+
451
+ ## 7.0.0-canary.134
452
+
453
+ ### Patch Changes
454
+
455
+ - ed74dae: fix(ui): make `input` optional on `output-error` tool and dynamic-tool UI message parts
456
+
457
+ `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`.
458
+
459
+ - f4cc8eb: feat: add performance statistics
460
+ - e80ada0: fix(ai): download tool-result file URLs
461
+ - 1dca341: fix: rename telemetry onFinish to onEnd
462
+ - 2605e5f: fix test mocks to return the first array-backed result on the first call
463
+
464
+ ## 7.0.0-canary.133
465
+
466
+ ### Patch Changes
467
+
468
+ - 38ca8dc: fix(gateway): enable retry support for gateway errors
469
+ - 6d76710: fix URL of hero animation in README
470
+ - Updated dependencies [38ca8dc]
471
+ - Updated dependencies [8b7af75]
472
+ - @ai-sdk/gateway@4.0.0-canary.78
473
+
474
+ ## 7.0.0-canary.132
475
+
476
+ ### Patch Changes
477
+
478
+ - eaf849f: Rename rerank telemetry finish callback to `onRerankEnd`.
479
+ - 8565dcb: fix: rename onEmbedFinish to onEmbedEnd
480
+
481
+ ## 7.0.0-canary.131
482
+
483
+ ### Patch Changes
484
+
485
+ - b67525f: feat: instructions as prepareStep input
486
+ - ca446f8: feat: flexible tool descriptions
487
+ - bcacd48: fix(ai): accumulative properties on StreamTextResult, GenerateTextResult
488
+ - Updated dependencies [ca446f8]
489
+ - @ai-sdk/provider-utils@5.0.0-canary.38
490
+ - @ai-sdk/gateway@4.0.0-canary.77
491
+
492
+ ## 7.0.0-canary.130
493
+
494
+ ### Patch Changes
495
+
496
+ - Updated dependencies [5f380c0]
497
+ - @ai-sdk/gateway@4.0.0-canary.76
498
+
499
+ ## 7.0.0-canary.129
500
+
501
+ ### Patch Changes
502
+
503
+ - d1b3786: fix(ai): deprecate properties on result that have moved to finalStep
504
+
505
+ ## 7.0.0-canary.128
506
+
507
+ ### Patch Changes
508
+
509
+ - Updated dependencies [d848405]
510
+ - @ai-sdk/provider-utils@5.0.0-canary.37
511
+ - @ai-sdk/gateway@4.0.0-canary.75
512
+
513
+ ## 7.0.0-canary.127
514
+
515
+ ### Patch Changes
516
+
517
+ - e95e38d: fix: Make `generateText` and `streamText` result `usage` report total usage across all steps and deprecate `totalUsage`.
518
+ - 016e877: feat(ai): add `instructions` as the primary prompt option and deprecate `system`
519
+ - ca99fea: feat: expose `finalStep` on text generation results
520
+ - d775a57: feat: introduce Instructions type
521
+ - 538c12b: feat: use instructions on ToolCallRepairFunction, parseToolCall, and events
522
+ - Updated dependencies [ca39020]
523
+ - @ai-sdk/provider-utils@5.0.0-canary.36
524
+ - @ai-sdk/gateway@4.0.0-canary.74
525
+
526
+ ## 7.0.0-canary.126
527
+
528
+ ### Patch Changes
529
+
530
+ - Updated dependencies [f634bac]
531
+ - @ai-sdk/provider-utils@5.0.0-canary.35
532
+ - @ai-sdk/gateway@4.0.0-canary.73
533
+
534
+ ## 7.0.0-canary.125
535
+
536
+ ### Major Changes
537
+
538
+ - 31f69de: fix(ai): carry prepareStep message overrides forward across steps
539
+ - 7c71ac6: fix(ai): limit response messages in StepResult to messages created in that step
540
+
541
+ ### Patch Changes
542
+
543
+ - fd4f578: fix(ai): exclude request and response bodies from text generation results by default to reduce memory usage.
544
+ - c0c8ca2: fix(ai): remove deprecated LanguageModelUsage properties
545
+ - 5faf71c: feat: introduce responseMessages on GenerateTextResult and StreamTextResult
546
+ - 69254e0: feat(ai): add toolMetadata for tool specific metdata
547
+ - 3015fc3: feat: sandbox shell execution abstraction
548
+ - eee1166: feat(ai): expose initial and response messages in prepareStep
549
+ - 7dbf992: feat(ai): allow prepareStep to override sandbox per step
550
+ - Updated dependencies [69254e0]
551
+ - Updated dependencies [3015fc3]
552
+ - @ai-sdk/provider-utils@5.0.0-canary.34
553
+ - @ai-sdk/gateway@4.0.0-canary.72
554
+
555
+ ## 7.0.0-canary.124
556
+
557
+ ### Patch Changes
558
+
559
+ - 69aeb0e: feat: add deprecated tool call lifecycle callback aliases for AI SDK 6 compatibility.
560
+ - 48e92f3: feat: make include stable
561
+
562
+ ## 7.0.0-canary.123
563
+
564
+ ### Patch Changes
565
+
566
+ - 7392266: feat: move includeRawChunks to include.rawChunks
567
+ - 4bb4dbc: feat: introduce include.requestMessage option for step request message storage opt-in
568
+
569
+ ## 7.0.0-canary.122
570
+
571
+ ### Patch Changes
572
+
573
+ - 79b2468: feat: add request.messages to StepResult
574
+ - c22750c: fix(ai): move onToolExecutionStart and onToolExecutionEnd to stable
575
+
576
+ ## 7.0.0-canary.121
577
+
578
+ ### Patch Changes
579
+
580
+ - 2427d88: feat(ai): change Tool.sensitiveContext to telemetry.includeToolsContext and make it opt-in
581
+ - 5588abd: feat(ai): add experimental_refineToolInput option to ToolLoopAgent, generateText, streamText
582
+ - 6dd6b83: feat(ai): change sensitiveRuntimeContext to telemetry.includeRuntimeContext and make it opt-in
583
+ - Updated dependencies [2427d88]
584
+ - @ai-sdk/provider-utils@5.0.0-canary.33
585
+ - @ai-sdk/gateway@4.0.0-canary.71
586
+
587
+ ## 7.0.0-canary.120
588
+
589
+ ### Major Changes
590
+
591
+ - 5463d0d: feat(provider): align tool result output content file part types with top-level message file part types
592
+
593
+ ### Patch Changes
594
+
595
+ - Updated dependencies [5463d0d]
596
+ - @ai-sdk/provider-utils@5.0.0-canary.32
597
+ - @ai-sdk/provider@4.0.0-canary.16
598
+ - @ai-sdk/gateway@4.0.0-canary.70
599
+
600
+ ## 7.0.0-canary.119
601
+
602
+ ### Patch Changes
603
+
604
+ - Updated dependencies [8e53eb7]
605
+ - @ai-sdk/gateway@4.0.0-canary.69
606
+
607
+ ## 7.0.0-canary.118
608
+
609
+ ### Patch Changes
610
+
611
+ - 47e65d6: fix(ai): tag step/chunk timeout aborts with `TimeoutError` reason
612
+
613
+ 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'`.
614
+
615
+ ## 7.0.0-canary.117
616
+
617
+ ### Patch Changes
618
+
619
+ - 0c4c275: trigger initial canary release
620
+ - Updated dependencies [0c4c275]
621
+ - @ai-sdk/provider-utils@5.0.0-canary.31
622
+ - @ai-sdk/provider@4.0.0-canary.15
623
+ - @ai-sdk/gateway@4.0.0-canary.68
624
+
625
+ ## 7.0.0-beta.116
626
+
627
+ ### Patch Changes
628
+
629
+ - Updated dependencies [e7e8f42]
630
+ - @ai-sdk/gateway@4.0.0-beta.67
631
+
632
+ ## 7.0.0-beta.115
633
+
634
+ ### Patch Changes
635
+
636
+ - 08d2129: feat(mcp): propagate the server name through dynamic tool parts
637
+ - 202f107: feat(ai): create a diagnostics channel to push event data
638
+ - Updated dependencies [08d2129]
639
+ - Updated dependencies [04e9009]
640
+ - Updated dependencies [be09425]
641
+ - @ai-sdk/provider-utils@5.0.0-beta.30
642
+ - @ai-sdk/gateway@4.0.0-beta.66
643
+
644
+ ## 7.0.0-beta.114
645
+
646
+ ### Major Changes
647
+
648
+ - 1f7db50: fix(ai): remove experimental_customProvider
649
+ - 9bd6512: feat(provider): change file part data property to be tagged with a type and remove the image part type
650
+
651
+ ### Patch Changes
652
+
653
+ - 43a6750: fix(ai): preserve `allowSystemInMessages` across `streamText` retries
654
+ - 81caa5d: fix(ai): remove ExtractLiteralUnion export
655
+ - 258c093: chore: ensure consistent import handling and avoid import duplicates or cycles
656
+ - 6147cdf: fix(ai): fix auto-complete on provider registry and custom provider
657
+ - Updated dependencies [9bd6512]
658
+ - Updated dependencies [258c093]
659
+ - Updated dependencies [b6783da]
660
+ - @ai-sdk/provider-utils@5.0.0-beta.29
661
+ - @ai-sdk/provider@4.0.0-beta.14
662
+ - @ai-sdk/gateway@4.0.0-beta.65
663
+
664
+ ## 7.0.0-beta.113
665
+
666
+ ### Patch Changes
667
+
668
+ - 9f0e36c: trigger release for all packages after provenance setup
669
+ - Updated dependencies [9f0e36c]
670
+ - @ai-sdk/gateway@4.0.0-beta.64
671
+ - @ai-sdk/provider@4.0.0-beta.13
672
+ - @ai-sdk/provider-utils@5.0.0-beta.28
673
+
674
+ ## 7.0.0-beta.112
675
+
676
+ ### Major Changes
677
+
678
+ - cf93359: feat(ai): remove/refactor event data sent via callbacks
679
+ - 116c89f: feat(ai): remove telemetry data from the user-facing event data
680
+ - 4e095b0: fix(ai): reject system messages in messages or prompt by default (opt-in)
681
+
682
+ ### Patch Changes
683
+
684
+ - 5f3749c: refactoring: rename toolNeedsApproval to toolApproval
685
+ - 0a51f7d: fix(ai): enforce `callOptionsSchema` at runtime in `ToolLoopAgent`
686
+
687
+ `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.
688
+
689
+ `ToolLoopAgent.prepareCall` now validates caller-supplied `options` against `callOptionsSchema` (when set) via `safeValidateTypes`, throwing `InvalidArgumentError` on failure before forwarding to `prepareCall` / `generateText` / `streamText`.
690
+
691
+ - 71d3022: fix(ai): unify generate text event callbacks
692
+ - 67df0a0: feat: add sensitiveContext property to Tool
693
+ - 4181cfe: fix(ai): harden `getMediaTypeFromUrl` against prototype-property collisions
694
+
695
+ `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.
696
+
697
+ Switch to `Object.hasOwn(...)` so attacker-controlled extensions like `.constructor` cannot resolve to inherited `Object.prototype` keys.
698
+
699
+ - 51ce232: feat(ai): add sensitiveRuntimeContext option
700
+ - befb78c: refactoring: remove real-time delays in unit tests
701
+ - 29d8cf4: feat(ai): rename the core-event types
702
+ - 58a2ad7: fix: more precise default message for tool execution denial
703
+ - 37d69b2: feat(ai): access runtime context in tool approval functions
704
+ - 1043274: feat(ai): add a ModelCall start/end event
705
+ - 7f59f04: feat(ai): add approval reason to automatic tool approvals
706
+ - 7677c1e: feat(ai): allow tool approval functions to return undefined
707
+ - f58f9bc: fix(ai): remove stopWhen from onStart event
708
+ - e1bfb9c: feat(ai): remove unnecessary data from events
709
+ - e87d71b: feat(ai): support automatic tool approval in ui messages
710
+ - 9d486aa: feat(ai): generic tool approval function
711
+ - 9b0bc8a: fix(mcp): prevent prototype pollution by using secureJsonParse
712
+ - fc92055: feat(ai): automatic tool approval
713
+ - Updated dependencies [785fe16]
714
+ - Updated dependencies [67df0a0]
715
+ - Updated dependencies [befb78c]
716
+ - Updated dependencies [0458559]
717
+ - Updated dependencies [5852c0a]
718
+ - Updated dependencies [baa5f20]
719
+ - Updated dependencies [fc92055]
720
+ - Updated dependencies [f9acbc0]
721
+ - @ai-sdk/provider-utils@5.0.0-beta.27
722
+ - @ai-sdk/gateway@4.0.0-beta.63
723
+
724
+ ## 7.0.0-beta.111
725
+
726
+ ### Major Changes
727
+
728
+ - 1949571: feat(ai): make experimental_telemetry stable
729
+ - 6542d93: feat(ai): change naming nomenclature for `*TelemetryIntegration` to `*Telemetry`
730
+
731
+ ### Patch Changes
732
+
733
+ - f319fde: feat(ai): validate tool context against contextSchema at runtime
734
+
735
+ 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`.
736
+
737
+ - 511902c: skip validation for tool parts in terminal states when tool schema is no longer registered
738
+ - 2e98477: fix: retain stack traces on async errors
739
+ - 876fd3e: fix(ai): limit tool execution time duration to actual tool execution
740
+ - f32c750: refactoring(ai): simplify mergeAbortSignals
741
+ - Updated dependencies [2e98477]
742
+ - @ai-sdk/provider-utils@5.0.0-beta.26
743
+ - @ai-sdk/gateway@4.0.0-beta.62
744
+
745
+ ## 7.0.0-beta.110
746
+
747
+ ### Patch Changes
748
+
749
+ - 72cb801: feat(ai): concurrent event notification
750
+
751
+ ## 7.0.0-beta.109
752
+
753
+ ### Patch Changes
754
+
755
+ - ec98264: feat(ai): allow multiple integrations to be registered at once
756
+ - eea8d98: refactoring: rename tool execution events
757
+ - 75ef93e: remove the deprecated `experimental_output` alias and document the `output` migration for AI SDK 7
758
+ - Updated dependencies [eea8d98]
759
+ - @ai-sdk/provider-utils@5.0.0-beta.25
760
+ - @ai-sdk/gateway@4.0.0-beta.61
761
+
762
+ ## 7.0.0-beta.108
763
+
764
+ ### Patch Changes
765
+
766
+ - Updated dependencies [f807e45]
767
+ - @ai-sdk/provider-utils@5.0.0-beta.24
768
+ - @ai-sdk/gateway@4.0.0-beta.60
769
+
770
+ ## 7.0.0-beta.107
771
+
772
+ ### Patch Changes
773
+
774
+ - 350ea38: refactoring: introduce Arrayable type
775
+ - Updated dependencies [350ea38]
776
+ - @ai-sdk/provider-utils@5.0.0-beta.23
777
+ - @ai-sdk/gateway@4.0.0-beta.59
778
+
779
+ ## 7.0.0-beta.106
780
+
781
+ ### Patch Changes
782
+
783
+ - Updated dependencies [03dc15c]
784
+ - @ai-sdk/gateway@4.0.0-beta.58
785
+
786
+ ## 7.0.0-beta.105
787
+
788
+ ### Patch Changes
789
+
790
+ - 33d099c: fix(ai): omit reasoning-start/end when sendReasoning is false
791
+
792
+ ## 7.0.0-beta.104
793
+
794
+ ### Patch Changes
795
+
796
+ - 2a74d43: Remove the deprecated `experimental_prepareStep` option from `generateText`.
797
+
798
+ Use `prepareStep` instead.
799
+
800
+ ## 7.0.0-beta.103
801
+
802
+ ### Patch Changes
803
+
804
+ - 382d53b: refactoring: rename context to runtimeContext
805
+ - 7bf7d7f: feat(ai): enable:true for telemetry by default
806
+ - c3d4019: chore(ai): rename 'TelemetrySettings' to 'TelemetryOptions'
807
+ - 083947b: feat(ai): separate toolsContext from context
808
+ - Updated dependencies [083947b]
809
+ - @ai-sdk/provider-utils@5.0.0-beta.22
810
+ - @ai-sdk/gateway@4.0.0-beta.57
811
+
812
+ ## 7.0.0-beta.102
813
+
814
+ ### Patch Changes
815
+
816
+ - Updated dependencies [0d8f107]
817
+ - @ai-sdk/gateway@4.0.0-beta.56
818
+
819
+ ## 7.0.0-beta.101
820
+
821
+ ### Patch Changes
822
+
823
+ - 4873966: chore(ai): allow general usage of `logWarnings` and emit them via Node API when available
824
+
825
+ ## 7.0.0-beta.100
826
+
827
+ ### Patch Changes
828
+
829
+ - add1126: refactoring: executeTool uses tool as parameter
830
+ - Updated dependencies [add1126]
831
+ - @ai-sdk/provider-utils@5.0.0-beta.21
832
+ - @ai-sdk/gateway@4.0.0-beta.55
833
+
834
+ ## 7.0.0-beta.99
835
+
836
+ ### Patch Changes
837
+
838
+ - 2a9c144: feat(ai): add toolNeedsApproval option
839
+
840
+ ## 7.0.0-beta.98
841
+
842
+ ### Patch Changes
843
+
844
+ - Updated dependencies [5df9b6f]
845
+ - @ai-sdk/gateway@4.0.0-beta.54
846
+
847
+ ## 7.0.0-beta.97
848
+
849
+ ### Patch Changes
850
+
851
+ - 208d045: fix(ai): skip global telemetry registration when local integration defined
852
+
853
+ ## 7.0.0-beta.96
854
+
855
+ ### Patch Changes
856
+
857
+ - Updated dependencies [0457e45]
858
+ - @ai-sdk/gateway@4.0.0-beta.53
859
+
860
+ ## 7.0.0-beta.95
861
+
862
+ ### Patch Changes
863
+
864
+ - c4f4b5f: refactoring(ai): remove deprecated experimental_activeTools option
865
+
866
+ ## 7.0.0-beta.94
867
+
868
+ ### Patch Changes
869
+
870
+ - 1582efa: chore(ai): remove the metadata field from the telemetry settings
871
+
872
+ ## 7.0.0-beta.93
873
+
874
+ ### Patch Changes
875
+
876
+ - bc47739: chore(ai): cleanup telemetry event data
877
+
878
+ ## 7.0.0-beta.92
879
+
880
+ ### Patch Changes
881
+
882
+ - Updated dependencies [ba2e254]
883
+ - @ai-sdk/gateway@4.0.0-beta.52
884
+
885
+ ## 7.0.0-beta.91
886
+
887
+ ### Patch Changes
888
+
889
+ - Updated dependencies [cdcdec2]
890
+ - @ai-sdk/gateway@4.0.0-beta.51
891
+
892
+ ## 7.0.0-beta.90
893
+
894
+ ### Patch Changes
895
+
896
+ - 1db29c8: feat(ai): break `CallSettings` apart into `LanguageModelCallOptions` and `RequestOptions`
897
+
898
+ ## 7.0.0-beta.89
899
+
900
+ ### Patch Changes
901
+
902
+ - ff5eba1: feat: roll `image-*` tool output types into their equivalent `file-*` types
903
+ - Updated dependencies [b3976a2]
904
+ - Updated dependencies [ff5eba1]
905
+ - @ai-sdk/provider-utils@5.0.0-beta.20
906
+ - @ai-sdk/gateway@4.0.0-beta.50
907
+ - @ai-sdk/provider@4.0.0-beta.12
908
+
909
+ ## 7.0.0-beta.88
910
+
911
+ ### Major Changes
912
+
913
+ - ef992f8: Remove CommonJS exports from all packages. All packages are now ESM-only (`"type": "module"`). Consumers using `require()` must switch to ESM `import` syntax.
914
+
915
+ ### Patch Changes
916
+
917
+ - Updated dependencies [ef992f8]
918
+ - @ai-sdk/gateway@4.0.0-beta.49
919
+ - @ai-sdk/provider@4.0.0-beta.11
920
+ - @ai-sdk/provider-utils@5.0.0-beta.19
921
+
922
+ ## 7.0.0-beta.87
923
+
924
+ ### Patch Changes
925
+
926
+ - Updated dependencies [bdbd322]
927
+ - Updated dependencies [8f53ccf]
928
+ - @ai-sdk/gateway@4.0.0-beta.48
929
+
930
+ ## 7.0.0-beta.86
931
+
932
+ ### Patch Changes
933
+
934
+ - 5a6f514: feat(ai): support several tools in hasToolCall stop condition
935
+
936
+ ## 7.0.0-beta.85
937
+
938
+ ### Major Changes
939
+
940
+ - 57bf606: chore(ai): simplify unified telemetry creation
941
+
942
+ ## 7.0.0-beta.84
943
+
944
+ ### Patch Changes
945
+
946
+ - 90e2d8a: chore: fix unused vars not being flagged by our lint tooling
947
+ - Updated dependencies [90e2d8a]
948
+ - @ai-sdk/provider-utils@5.0.0-beta.18
949
+ - @ai-sdk/gateway@4.0.0-beta.47
950
+
951
+ ## 7.0.0-beta.83
952
+
953
+ ### Patch Changes
954
+
955
+ - Updated dependencies [6b0a40d]
956
+ - @ai-sdk/gateway@4.0.0-beta.46
957
+
958
+ ## 7.0.0-beta.82
959
+
960
+ ### Patch Changes
961
+
962
+ - e27ed76: feat(devtools): add new devtools integration for telemetry
963
+
964
+ ## 7.0.0-beta.81
965
+
966
+ ### Patch Changes
967
+
968
+ - 2fe1099: feat(ai): emit streaming chunks throught the onChunk callback
969
+ - f04adcb: feat(ai): refresh `customProvider` and `createProviderRegistry` to support file and skill upload abstractions
970
+
971
+ ## 7.0.0-beta.80
972
+
973
+ ### Patch Changes
974
+
975
+ - 3ae1786: fix: better context type inference
976
+ - Updated dependencies [3ae1786]
977
+ - @ai-sdk/provider-utils@5.0.0-beta.17
978
+ - @ai-sdk/gateway@4.0.0-beta.45
979
+
980
+ ## 7.0.0-beta.79
981
+
982
+ ### Patch Changes
983
+
984
+ - 6866afe: fix(ai): fix `lastAssistantMessageIsCompleteWithApprovalResponses` to no longer ignore `providerExecuted` tool approvals
985
+
986
+ ## 7.0.0-beta.78
987
+
988
+ ### Patch Changes
989
+
990
+ - f372547: fix(ai): fix `providerExecuted` tool approvals being passed to language model twice
991
+ - Updated dependencies [7943a4b]
992
+ - @ai-sdk/gateway@4.0.0-beta.44
993
+
994
+ ## 7.0.0-beta.77
995
+
996
+ ### Patch Changes
997
+
998
+ - 2add429: fix(ai): skip passing invalid JSON inputs to response messages
999
+
1000
+ ## 7.0.0-beta.76
1001
+
1002
+ ### Major Changes
1003
+
1004
+ - fcc6869: refactor(ai/core): rename `ModelCallStreamPart` to `LanguageModelStreamPart` and align stream model call naming (`streamLanguageModelCall`, `experimental_streamLanguageModelCall`).
1005
+
1006
+ This updates experimental low-level stream primitives to use "language model call" terminology consistently.
1007
+
1008
+ ## 7.0.0-beta.75
1009
+
1010
+ ### Patch Changes
1011
+
1012
+ - 176466a: chore(provider): align V4 model return types to have their own definitions across all model interfaces
1013
+ - Updated dependencies [176466a]
1014
+ - @ai-sdk/provider@4.0.0-beta.10
1015
+ - @ai-sdk/gateway@4.0.0-beta.43
1016
+ - @ai-sdk/provider-utils@5.0.0-beta.16
1017
+
1018
+ ## 7.0.0-beta.74
1019
+
1020
+ ### Patch Changes
1021
+
1022
+ - e311194: feat(ai): allow passing provider instance to `uploadFile` and `uploadSkill` as shorthand
1023
+ - Updated dependencies [e311194]
1024
+ - @ai-sdk/provider@4.0.0-beta.9
1025
+ - @ai-sdk/gateway@4.0.0-beta.42
1026
+ - @ai-sdk/provider-utils@5.0.0-beta.15
1027
+
1028
+ ## 7.0.0-beta.73
1029
+
1030
+ ### Patch Changes
1031
+
1032
+ - Updated dependencies [1464561]
1033
+ - @ai-sdk/gateway@4.0.0-beta.41
1034
+
1035
+ ## 7.0.0-beta.72
1036
+
1037
+ ### Patch Changes
1038
+
1039
+ - 664a0eb: feat (ai/core): support plain string model IDs in `rerank()` function
1040
+
1041
+ 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.
1042
+
1043
+ ## 7.0.0-beta.71
1044
+
1045
+ ### Patch Changes
1046
+
1047
+ - e68be55: fix(ai): skip stringifying text when streaming partial text
1048
+ - Updated dependencies [939171f]
1049
+ - @ai-sdk/gateway@4.0.0-beta.40
1050
+
1051
+ ## 7.0.0-beta.70
1052
+
1053
+ ### Patch Changes
1054
+
1055
+ - Updated dependencies [0694029]
1056
+ - @ai-sdk/gateway@4.0.0-beta.39
1057
+
1058
+ ## 7.0.0-beta.69
1059
+
1060
+ ### Major Changes
1061
+
1062
+ - 72223e7: chore(ai): remove deprecated isToolOrDynamicToolUIPart function
1063
+
1064
+ ### Patch Changes
1065
+
1066
+ - 34bd95d: feat(ai): add support for uploading provider skills using the provider references abstraction
1067
+ - 008271d: feat(openai-compatible): emit warning when using kebab-case instead of camelCase
1068
+ - Updated dependencies [34bd95d]
1069
+ - Updated dependencies [008271d]
1070
+ - @ai-sdk/provider@4.0.0-beta.8
1071
+ - @ai-sdk/gateway@4.0.0-beta.38
1072
+ - @ai-sdk/provider-utils@5.0.0-beta.14
1073
+
1074
+ ## 7.0.0-beta.68
1075
+
1076
+ ### Major Changes
1077
+
1078
+ - 7e26e81: chore: rename experimental_context to context
1079
+
1080
+ ### Patch Changes
1081
+
1082
+ - b0c2869: chore(ai): remove deprecated `media` type part from `ToolResultOutput`
1083
+ - Updated dependencies [b0c2869]
1084
+ - Updated dependencies [7e26e81]
1085
+ - @ai-sdk/provider-utils@5.0.0-beta.13
1086
+ - @ai-sdk/gateway@4.0.0-beta.37
1087
+
1088
+ ## 7.0.0-beta.67
1089
+
1090
+ ### Patch Changes
1091
+
1092
+ - d1a8bed: fix(ui): export `isDynamicToolUIPart` from `ai` package
1093
+
1094
+ ## 7.0.0-beta.66
1095
+
1096
+ ### Patch Changes
1097
+
1098
+ - Updated dependencies [fb0c233]
1099
+ - Updated dependencies [d1f0d2b]
1100
+ - @ai-sdk/gateway@4.0.0-beta.36
1101
+
1102
+ ## 7.0.0-beta.65
1103
+
1104
+ ### Patch Changes
1105
+
1106
+ - Updated dependencies [46d1149]
1107
+ - @ai-sdk/provider-utils@5.0.0-beta.12
1108
+ - @ai-sdk/gateway@4.0.0-beta.35
1109
+
1110
+ ## 7.0.0-beta.64
1111
+
1112
+ ### Patch Changes
1113
+
1114
+ - Updated dependencies [71b0e7d]
1115
+ - @ai-sdk/gateway@4.0.0-beta.34
1116
+
1117
+ ## 7.0.0-beta.63
1118
+
1119
+ ### Patch Changes
1120
+
1121
+ - 6fd51c0: fix(provider): preserve error type prefix in getErrorMessage
1122
+ - Updated dependencies [6fd51c0]
1123
+ - @ai-sdk/provider-utils@5.0.0-beta.11
1124
+ - @ai-sdk/provider@4.0.0-beta.7
1125
+ - @ai-sdk/gateway@4.0.0-beta.33
1126
+
1127
+ ## 7.0.0-beta.62
1128
+
1129
+ ### Patch Changes
1130
+
1131
+ - Updated dependencies [11746ca]
1132
+ - @ai-sdk/gateway@4.0.0-beta.32
1133
+
1134
+ ## 7.0.0-beta.61
1135
+
1136
+ ### Patch Changes
1137
+
1138
+ - c29a26f: feat(provider): add support for provider references and uploading files as supported per provider
1139
+ - Updated dependencies [c29a26f]
1140
+ - @ai-sdk/provider-utils@5.0.0-beta.10
1141
+ - @ai-sdk/provider@4.0.0-beta.6
1142
+ - @ai-sdk/gateway@4.0.0-beta.31
1143
+
1144
+ ## 7.0.0-beta.60
1145
+
1146
+ ### Patch Changes
1147
+
1148
+ - 38fc777: Add AI Gateway hint to provider READMEs
1149
+
1150
+ ## 7.0.0-beta.59
1151
+
1152
+ ### Patch Changes
1153
+
1154
+ - Updated dependencies [4552cbf]
1155
+ - @ai-sdk/gateway@4.0.0-beta.30
1156
+
1157
+ ## 7.0.0-beta.58
1158
+
1159
+ ### Patch Changes
1160
+
1161
+ - 2e17091: fix(types): move shared tool set utility types into provider-utils
1162
+
1163
+ 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.
1164
+
1165
+ - Updated dependencies [2e17091]
1166
+ - @ai-sdk/provider-utils@5.0.0-beta.9
1167
+ - @ai-sdk/gateway@4.0.0-beta.29
1168
+
1169
+ ## 7.0.0-beta.57
1170
+
1171
+ ### Major Changes
1172
+
1173
+ - 986c6fd: feat(ai): change type of experimental_context from unknown to generic
1174
+ - 493295c: Remove the deprecated `ToolCallOptions` export.
1175
+
1176
+ Use `ToolExecutionOptions` instead.
1177
+
1178
+ ### Patch Changes
1179
+
1180
+ - Updated dependencies [986c6fd]
1181
+ - Updated dependencies [493295c]
1182
+ - @ai-sdk/provider-utils@5.0.0-beta.8
1183
+ - @ai-sdk/gateway@4.0.0-beta.28
1184
+
1185
+ ## 7.0.0-beta.56
1186
+
1187
+ ### Patch Changes
1188
+
1189
+ - Updated dependencies [70a9aae]
1190
+ - @ai-sdk/gateway@4.0.0-beta.27
1191
+
1192
+ ## 7.0.0-beta.55
1193
+
1194
+ ### Major Changes
1195
+
1196
+ - b3c9f6a: feat(ai): create new opentelemetry package (@ai-sdk/otel)
1197
+
1198
+ ## 7.0.0-beta.54
1199
+
1200
+ ### Patch Changes
1201
+
1202
+ - 5d0f18e: feat(ai): move opentelemetry to new package
1203
+
1204
+ ## 7.0.0-beta.53
1205
+
1206
+ ### Patch Changes
1207
+
1208
+ - 9b47dea: fix(ai): remove otel Tracer api from telemetry settings
1209
+
1210
+ ## 7.0.0-beta.52
1211
+
1212
+ ### Patch Changes
1213
+
1214
+ - b56301c: feat(ai): decouple otel from generate/streamObject
1215
+
1216
+ ## 7.0.0-beta.51
1217
+
1218
+ ### Patch Changes
1219
+
1220
+ - 6abd098: split `prepareToolsAndToolChoice()` into `prepareTools()` and `prepareToolChoice()`
1221
+
1222
+ ## 7.0.0-beta.50
1223
+
1224
+ ### Patch Changes
1225
+
1226
+ - 3debdb7: feat(ai): rename `stepCountIs` to `isStepCount`
1227
+
1228
+ ## 7.0.0-beta.49
1229
+
1230
+ ### Patch Changes
1231
+
1232
+ - Updated dependencies [294cbe7]
1233
+ - @ai-sdk/gateway@4.0.0-beta.26
1234
+
1235
+ ## 7.0.0-beta.48
1236
+
1237
+ ### Patch Changes
1238
+
1239
+ - 5c4d910: feat(ai): add new `isLoopFinished` stop condition helper for unlimited steps
1240
+
1241
+ ## 7.0.0-beta.47
1242
+
1243
+ ### Patch Changes
1244
+
1245
+ - bc67b4f: feat(ai): add experimental callbacks for structured outputs
1246
+
1247
+ ## 7.0.0-beta.46
1248
+
1249
+ ### Patch Changes
1250
+
1251
+ - 31ee822: refactoring(ai): extract filterActiveTools and expose it as experimental_filterActiveTools
1252
+
1253
+ ## 7.0.0-beta.45
1254
+
1255
+ ### Patch Changes
1256
+
1257
+ - Updated dependencies [435895b]
1258
+ - @ai-sdk/gateway@4.0.0-beta.25
1259
+
1260
+ ## 7.0.0-beta.44
1261
+
1262
+ ### Patch Changes
1263
+
1264
+ - Updated dependencies [d30466c]
1265
+ - @ai-sdk/gateway@4.0.0-beta.24
1266
+
1267
+ ## 7.0.0-beta.43
1268
+
1269
+ ### Patch Changes
1270
+
1271
+ - Updated dependencies [4ec78cd]
1272
+ - @ai-sdk/gateway@4.0.0-beta.23
1273
+
1274
+ ## 7.0.0-beta.42
1275
+
1276
+ ### Patch Changes
1277
+
1278
+ - a3fd75b: feat(ai): expose Experimental_ModelCallStreamPart type
1279
+
1280
+ ## 7.0.0-beta.41
1281
+
1282
+ ### Patch Changes
1283
+
1284
+ - Updated dependencies [7ceff62]
1285
+ - @ai-sdk/gateway@4.0.0-beta.22
1286
+
1287
+ ## 7.0.0-beta.40
1288
+
1289
+ ### Patch Changes
1290
+
1291
+ - 989d3d2: fix(ai): include generated files in OTEL response attributes
1292
+
1293
+ ## 7.0.0-beta.39
1294
+
1295
+ ### Patch Changes
1296
+
1297
+ - f4cfccd: feat(ai): decouple otel from rerank function
1298
+
1299
+ ## 7.0.0-beta.38
1300
+
1301
+ ### Patch Changes
1302
+
1303
+ - 1f509d4: fix(ai): force template check on 'kind' param
1304
+ - Updated dependencies [1f509d4]
1305
+ - @ai-sdk/provider-utils@5.0.0-beta.7
1306
+ - @ai-sdk/provider@4.0.0-beta.5
1307
+ - @ai-sdk/gateway@4.0.0-beta.21
1308
+
1309
+ ## 7.0.0-beta.37
1310
+
1311
+ ### Patch Changes
1312
+
1313
+ - Updated dependencies [4f91b5d]
1314
+ - @ai-sdk/gateway@4.0.0-beta.20
1315
+
1316
+ ## 7.0.0-beta.36
1317
+
1318
+ ### Patch Changes
1319
+
1320
+ - 118b953: feat(ai): decouple otel from embed functions
1321
+
1322
+ ## 7.0.0-beta.35
1323
+
1324
+ ### Patch Changes
1325
+
1326
+ - 99bf941: feat(ai): extract streamModelCall function for streaming text generation
1327
+
1328
+ ## 7.0.0-beta.34
1329
+
1330
+ ### Patch Changes
1331
+
1332
+ - Updated dependencies [72889f8]
1333
+ - @ai-sdk/gateway@4.0.0-beta.19
1334
+
1335
+ ## 7.0.0-beta.33
1336
+
1337
+ ### Patch Changes
1338
+
1339
+ - caf1b6f: feat(ai): introduce experimental callbacks for rerank function
1340
+
1341
+ ## 7.0.0-beta.32
1342
+
1343
+ ### Major Changes
1344
+
1345
+ - 4b46062: refactoring(ai): extract tool callback invocation into separate function and forward chunks before callback invocation
1346
+
1347
+ ### Patch Changes
1348
+
1349
+ - Updated dependencies [165b97a]
1350
+ - @ai-sdk/gateway@4.0.0-beta.18
1351
+
1352
+ ## 7.0.0-beta.31
1353
+
1354
+ ### Patch Changes
1355
+
1356
+ - e79e644: chore(ai/core): remove `timeout` from `CallSettings` as it was effectively unused there
1357
+
1358
+ ## 7.0.0-beta.30
1359
+
1360
+ ### Patch Changes
1361
+
1362
+ - f5a6f89: README updates
1363
+
1364
+ ## 7.0.0-beta.29
1365
+
1366
+ ### Patch Changes
1367
+
1368
+ - 877bf12: fix(ai): flatten model attributes for telemetry
1369
+
1370
+ ## 7.0.0-beta.28
1371
+
1372
+ ### Major Changes
1373
+
1374
+ - b9cf502: refactoring(ai): delay tool execution in stream text until model call is finished
1375
+
1376
+ ## 7.0.0-beta.27
1377
+
1378
+ ### Patch Changes
1379
+
1380
+ - 3887c70: feat(provider): add new top-level reasoning parameter to spec and support it in `generateText` and `streamText`
1381
+ - Updated dependencies [3887c70]
1382
+ - @ai-sdk/provider-utils@5.0.0-beta.6
1383
+ - @ai-sdk/provider@4.0.0-beta.4
1384
+ - @ai-sdk/gateway@4.0.0-beta.17
1385
+
1386
+ ## 7.0.0-beta.26
1387
+
1388
+ ### Patch Changes
1389
+
1390
+ - f0b0b20: feat(ai): add per-tool timeout overrides via toolTimeouts
1391
+
1392
+ ## 7.0.0-beta.25
1393
+
1394
+ ### Patch Changes
1395
+
1396
+ - ff9ce30: feat(ai): introduce experimental callbacks for embed function
1397
+
1398
+ ## 7.0.0-beta.24
1399
+
1400
+ ### Major Changes
1401
+
1402
+ - 776b617: feat(provider): adding new 'custom' content type
1403
+
1404
+ ### Patch Changes
1405
+
1406
+ - Updated dependencies [776b617]
1407
+ - @ai-sdk/provider-utils@5.0.0-beta.5
1408
+ - @ai-sdk/provider@4.0.0-beta.3
1409
+ - @ai-sdk/gateway@4.0.0-beta.16
1410
+
1411
+ ## 7.0.0-beta.23
1412
+
1413
+ ### Patch Changes
1414
+
1415
+ - 80d4dde: fix(ai): include tool input on tool result for provider executed dynamic tools
1416
+ - Updated dependencies [61753c3]
1417
+ - @ai-sdk/provider-utils@5.0.0-beta.4
1418
+ - @ai-sdk/gateway@4.0.0-beta.15
1419
+
1420
+ ## 7.0.0-beta.22
1421
+
1422
+ ### Patch Changes
1423
+
1424
+ - Updated dependencies [ead9144]
1425
+ - @ai-sdk/gateway@4.0.0-beta.14
1426
+
1427
+ ## 7.0.0-beta.21
1428
+
1429
+ ### Patch Changes
1430
+
1431
+ - 34fd051: feat(ai): add toolMs to timeout configuration
1432
+
1433
+ ## 7.0.0-beta.20
1434
+
1435
+ ### Patch Changes
1436
+
1437
+ - Updated dependencies [2095655]
1438
+ - @ai-sdk/gateway@4.0.0-beta.13
1439
+
1440
+ ## 7.0.0-beta.19
1441
+
1442
+ ### Patch Changes
1443
+
1444
+ - Updated dependencies [f7d4f01]
1445
+ - @ai-sdk/provider-utils@5.0.0-beta.3
1446
+ - @ai-sdk/provider@4.0.0-beta.2
1447
+ - @ai-sdk/gateway@4.0.0-beta.12
1448
+
3
1449
  ## 7.0.0-beta.18
4
1450
 
5
1451
  ### Patch Changes
@@ -662,7 +2108,6 @@
662
2108
  ### Patch Changes
663
2109
 
664
2110
  - 2dc9bfa: fix(ai): handle provider-executed tools and tool-approval-response in validation
665
-
666
2111
  - Skip validation for tool calls with `providerExecuted: true` (deferred results)
667
2112
  - Map approvalId to toolCallId for proper tool-approval-response handling
668
2113
  - Filter out empty tool messages after content filtering
@@ -996,13 +2441,13 @@
996
2441
  Before
997
2442
 
998
2443
  ```ts
999
- model.textEmbeddingModel('my-model-id');
2444
+ model.textEmbeddingModel("my-model-id");
1000
2445
  ```
1001
2446
 
1002
2447
  After
1003
2448
 
1004
2449
  ```ts
1005
- model.embeddingModel('my-model-id');
2450
+ model.embeddingModel("my-model-id");
1006
2451
  ```
1007
2452
 
1008
2453
  - b67d224: Fixes an issue where `providerMetadata` and `providerExecuted` were lost when tool input validation failed
@@ -1025,15 +2470,15 @@
1025
2470
  This change replaces
1026
2471
 
1027
2472
  ```ts
1028
- import { experimental_createMCPClient } from 'ai';
1029
- import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
2473
+ import { experimental_createMCPClient } from "ai";
2474
+ import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
1030
2475
  ```
1031
2476
 
1032
2477
  with
1033
2478
 
1034
2479
  ```ts
1035
- import { experimental_createMCPClient } from '@ai-sdk/mcp';
1036
- import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
2480
+ import { experimental_createMCPClient } from "@ai-sdk/mcp";
2481
+ import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
1037
2482
  ```
1038
2483
 
1039
2484
  - 90e5bdd: chore(ai): restructure agent files
@@ -1120,7 +2565,7 @@
1120
2565
  - 81d4308: feat: provider-executed dynamic tools
1121
2566
  - e0d1ea9: fix(ai): align logic of text-end with reasoning-end
1122
2567
  - 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)
2568
+ - b1aeea7: feat(ai): set default stopWhen on Agent to isStepCount(20)
1124
2569
  - dce4e7b: chore(agent): rename system to instructions
1125
2570
  - 4ece5f9: feat(agent): add experimental_download to ToolLoopAgent
1126
2571
  - a417a34: feat(agent): introduce version property
@@ -1553,13 +2998,13 @@
1553
2998
  Before
1554
2999
 
1555
3000
  ```ts
1556
- model.textEmbeddingModel('my-model-id');
3001
+ model.textEmbeddingModel("my-model-id");
1557
3002
  ```
1558
3003
 
1559
3004
  After
1560
3005
 
1561
3006
  ```ts
1562
- model.embeddingModel('my-model-id');
3007
+ model.embeddingModel("my-model-id");
1563
3008
  ```
1564
3009
 
1565
3010
  - Updated dependencies [8d9e8ad]
@@ -1906,15 +3351,15 @@
1906
3351
  This change replaces
1907
3352
 
1908
3353
  ```ts
1909
- import { experimental_createMCPClient } from 'ai';
1910
- import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
3354
+ import { experimental_createMCPClient } from "ai";
3355
+ import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
1911
3356
  ```
1912
3357
 
1913
3358
  with
1914
3359
 
1915
3360
  ```ts
1916
- import { experimental_createMCPClient } from '@ai-sdk/mcp';
1917
- import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
3361
+ import { experimental_createMCPClient } from "@ai-sdk/mcp";
3362
+ import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
1918
3363
  ```
1919
3364
 
1920
3365
  ## 6.0.0-beta.71
@@ -2296,7 +3741,7 @@
2296
3741
 
2297
3742
  - aa0515c: feat(ai): move Agent to stable
2298
3743
  - e7d9b00: feat(agent): add optional name property to agent
2299
- - b1aeea7: feat(ai): set default stopWhen on Agent to stepCountIs(20)
3744
+ - b1aeea7: feat(ai): set default stopWhen on Agent to isStepCount(20)
2300
3745
 
2301
3746
  ## 5.1.0-beta.18
2302
3747
 
@@ -2833,7 +4278,7 @@
2833
4278
 
2834
4279
  ```js
2835
4280
  await generateImage({
2836
- model: luma.image('photon-flash-1', {
4281
+ model: luma.image("photon-flash-1", {
2837
4282
  maxImagesPerCall: 5,
2838
4283
  pollIntervalMillis: 500,
2839
4284
  }),
@@ -2846,7 +4291,7 @@
2846
4291
 
2847
4292
  ```js
2848
4293
  await generateImage({
2849
- model: luma.image('photon-flash-1'),
4294
+ model: luma.image("photon-flash-1"),
2850
4295
  prompt,
2851
4296
  n: 10,
2852
4297
  maxImagesPerCall: 5,
@@ -2866,7 +4311,7 @@
2866
4311
  - c7710a9: chore (ai): rename DataStreamToSSETransformStream to JsonToSseTransformStream
2867
4312
  - bfbfc4c: feat (ai): streamText/generateText: totalUsage contains usage for all steps. usage is for a single step.
2868
4313
  - 9ae327d: chore (ui): replace chat store concept with chat instances
2869
- - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to stepCountIs.
4314
+ - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to isStepCount.
2870
4315
  - 247ee0c: chore (ai): remove steps from tool invocation ui parts
2871
4316
  - 109c0ac: chore (ai): rename id to chatId (in post request, resume request, and useChat)
2872
4317
  - 954aa73: feat (ui): extended regenerate support
@@ -3046,10 +4491,10 @@
3046
4491
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
3047
4492
 
3048
4493
  ```js
3049
- const prompt = 'Santa Claus driving a Cadillac';
4494
+ const prompt = "Santa Claus driving a Cadillac";
3050
4495
 
3051
4496
  const { providerMetadata } = await experimental_generateImage({
3052
- model: openai.image('dall-e-3'),
4497
+ model: openai.image("dall-e-3"),
3053
4498
  prompt,
3054
4499
  });
3055
4500
 
@@ -3609,7 +5054,7 @@
3609
5054
  ### Major Changes
3610
5055
 
3611
5056
  - 72d7d72: chore (ai): stable activeTools
3612
- - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to stepCountIs.
5057
+ - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to isStepCount.
3613
5058
 
3614
5059
  ### Patch Changes
3615
5060
 
@@ -3712,7 +5157,7 @@
3712
5157
 
3713
5158
  ```js
3714
5159
  await generateImage({
3715
- model: luma.image('photon-flash-1', {
5160
+ model: luma.image("photon-flash-1", {
3716
5161
  maxImagesPerCall: 5,
3717
5162
  pollIntervalMillis: 500,
3718
5163
  }),
@@ -3725,7 +5170,7 @@
3725
5170
 
3726
5171
  ```js
3727
5172
  await generateImage({
3728
- model: luma.image('photon-flash-1'),
5173
+ model: luma.image("photon-flash-1"),
3729
5174
  prompt,
3730
5175
  n: 10,
3731
5176
  maxImagesPerCall: 5,
@@ -3823,10 +5268,10 @@
3823
5268
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
3824
5269
 
3825
5270
  ```js
3826
- const prompt = 'Santa Claus driving a Cadillac';
5271
+ const prompt = "Santa Claus driving a Cadillac";
3827
5272
 
3828
5273
  const { providerMetadata } = await experimental_generateImage({
3829
- model: openai.image('dall-e-3'),
5274
+ model: openai.image("dall-e-3"),
3830
5275
  prompt,
3831
5276
  });
3832
5277