ai 7.0.0-beta.17 → 7.0.0-beta.178

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 (465) hide show
  1. package/CHANGELOG.md +1460 -25
  2. package/README.md +9 -19
  3. package/dist/index.d.ts +4834 -2670
  4. package/dist/index.js +9374 -6407
  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 +510 -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 +1768 -0
  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 +30 -28
  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/is-node-runtime.ts +3 -0
  425. package/src/util/merge-abort-signals.ts +17 -35
  426. package/src/util/merge-callbacks.ts +22 -0
  427. package/src/util/merge-objects.ts +5 -0
  428. package/src/util/notify.ts +11 -14
  429. package/src/util/parse-partial-json.ts +1 -1
  430. package/src/util/prepare-retries.ts +1 -2
  431. package/src/util/retry-with-exponential-backoff.ts +10 -5
  432. package/src/util/serial-job-executor.ts +1 -1
  433. package/src/util/set-abort-timeout.ts +37 -0
  434. package/src/util/write-to-server-response.ts +1 -1
  435. package/dist/index.d.mts +0 -6577
  436. package/dist/index.mjs +0 -13829
  437. package/dist/index.mjs.map +0 -1
  438. package/dist/internal/index.d.mts +0 -314
  439. package/dist/internal/index.mjs +0 -1303
  440. package/dist/internal/index.mjs.map +0 -1
  441. package/dist/test/index.d.mts +0 -265
  442. package/dist/test/index.mjs +0 -472
  443. package/dist/test/index.mjs.map +0 -1
  444. package/docs/03-ai-sdk-core/65-event-listeners.mdx +0 -915
  445. package/src/generate-text/callback-events.ts +0 -388
  446. package/src/generate-text/is-approval-needed.ts +0 -29
  447. package/src/generate-text/run-tools-transformation.ts +0 -451
  448. package/src/generate-text/tool-set.ts +0 -14
  449. package/src/prompt/call-settings.ts +0 -148
  450. package/src/prompt/prepare-tools-and-tool-choice.ts +0 -86
  451. package/src/telemetry/assemble-operation-name.ts +0 -21
  452. package/src/telemetry/get-base-telemetry-attributes.ts +0 -55
  453. package/src/telemetry/get-global-telemetry-integration.ts +0 -110
  454. package/src/telemetry/get-tracer.ts +0 -20
  455. package/src/telemetry/noop-tracer.ts +0 -69
  456. package/src/telemetry/open-telemetry-integration.ts +0 -530
  457. package/src/telemetry/record-span.ts +0 -75
  458. package/src/telemetry/select-telemetry-attributes.ts +0 -78
  459. package/src/telemetry/stringify-for-telemetry.ts +0 -33
  460. package/src/telemetry/telemetry-integration-registry.ts +0 -22
  461. package/src/telemetry/telemetry-integration.ts +0 -100
  462. package/src/telemetry/telemetry-settings.ts +0 -55
  463. package/src/test/mock-tracer.ts +0 -156
  464. package/src/util/as-array.ts +0 -3
  465. package/src/util/detect-media-type.ts +0 -226
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- ![hero illustration](./assets/hero.gif)
1
+ ![hero illustration](https://github.com/vercel/ai/blob/HEAD/assets/hero.gif)
2
2
 
3
3
  # AI SDK
4
4
 
@@ -8,7 +8,7 @@ To learn more about how to use the AI SDK, check out our [API Reference](https:/
8
8
 
9
9
  ## Installation
10
10
 
11
- You will need Node.js 18+ and npm (or another package manager) installed on your local development machine.
11
+ You will need Node.js 22+ and npm (or another package manager) installed on your local development machine.
12
12
 
13
13
  ```shell
14
14
  npm install ai
@@ -24,13 +24,13 @@ npx skills add vercel/ai
24
24
 
25
25
  ## Unified Provider Architecture
26
26
 
27
- The AI SDK provides a [unified API](https://ai-sdk.dev/docs/foundations/providers-and-models) to interact with model providers like [OpenAI](https://ai-sdk.dev/providers/ai-sdk-providers/openai), [Anthropic](https://ai-sdk.dev/providers/ai-sdk-providers/anthropic), [Google](https://ai-sdk.dev/providers/ai-sdk-providers/google-generative-ai), and [more](https://ai-sdk.dev/providers/ai-sdk-providers).
27
+ The AI SDK provides a [unified API](https://ai-sdk.dev/docs/foundations/providers-and-models) to interact with model providers like [OpenAI](https://ai-sdk.dev/providers/ai-sdk-providers/openai), [Anthropic](https://ai-sdk.dev/providers/ai-sdk-providers/anthropic), [Google](https://ai-sdk.dev/providers/ai-sdk-providers/google), and [more](https://ai-sdk.dev/providers/ai-sdk-providers).
28
28
 
29
29
  By default, the AI SDK uses the [Vercel AI Gateway](https://vercel.com/docs/ai-gateway) to give you access to all major providers out of the box. Just pass a model string for any supported model:
30
30
 
31
31
  ```ts
32
32
  const result = await generateText({
33
- model: 'anthropic/claude-opus-4.5', // or 'openai/gpt-5.4', 'google/gemini-3-flash', etc.
33
+ model: 'anthropic/claude-opus-4.6', // or 'openai/gpt-5.4', 'google/gemini-3-flash', etc.
34
34
  prompt: 'Hello!',
35
35
  });
36
36
  ```
@@ -45,7 +45,7 @@ npm install @ai-sdk/openai @ai-sdk/anthropic @ai-sdk/google
45
45
  import { anthropic } from '@ai-sdk/anthropic';
46
46
 
47
47
  const result = await generateText({
48
- model: anthropic('claude-opus-4-5-20250414'), // or openai('gpt-5.4'), google('gemini-3-flash'), etc.
48
+ model: anthropic('claude-opus-4-6'), // or openai('gpt-5.4'), google('gemini-3-flash'), etc.
49
49
  prompt: 'Hello!',
50
50
  });
51
51
  ```
@@ -58,17 +58,7 @@ const result = await generateText({
58
58
  import { generateText } from 'ai';
59
59
 
60
60
  const { text } = await generateText({
61
- model: 'openai/gpt-5', // use Vercel AI Gateway
62
- prompt: 'What is an agent?',
63
- });
64
- ```
65
-
66
- ```ts
67
- import { generateText } from 'ai';
68
- import { openai } from '@ai-sdk/openai';
69
-
70
- const { text } = await generateText({
71
- model: openai('gpt-5'), // use OpenAI Responses API
61
+ model: 'openai/gpt-5.4', // use Vercel AI Gateway
72
62
  prompt: 'What is an agent?',
73
63
  });
74
64
  ```
@@ -80,7 +70,7 @@ import { generateText, Output } from 'ai';
80
70
  import { z } from 'zod';
81
71
 
82
72
  const { output } = await generateText({
83
- model: 'openai/gpt-5',
73
+ model: 'openai/gpt-5.4',
84
74
  output: Output.object({
85
75
  schema: z.object({
86
76
  recipe: z.object({
@@ -102,7 +92,7 @@ const { output } = await generateText({
102
92
  import { ToolLoopAgent } from 'ai';
103
93
 
104
94
  const sandboxAgent = new ToolLoopAgent({
105
- model: 'openai/gpt-5',
95
+ model: 'openai/gpt-5.4',
106
96
  system: 'You are an agent with access to a shell environment.',
107
97
  tools: {
108
98
  shell: openai.tools.localShell({
@@ -134,7 +124,7 @@ import { openai } from '@ai-sdk/openai';
134
124
  import { ToolLoopAgent, InferAgentUIMessage } from 'ai';
135
125
 
136
126
  export const imageGenerationAgent = new ToolLoopAgent({
137
- model: openai('gpt-5'),
127
+ model: 'openai/gpt-5.4',
138
128
  tools: {
139
129
  generateImage: openai.tools.imageGeneration({
140
130
  partialImages: 3,