ai 7.0.0-beta.7 → 7.0.0-beta.71

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 (176) hide show
  1. package/CHANGELOG.md +507 -24
  2. package/README.md +6 -16
  3. package/dist/index.d.mts +1670 -705
  4. package/dist/index.d.ts +1670 -705
  5. package/dist/index.js +3086 -2969
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +2983 -2871
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/internal/index.d.mts +90 -103
  10. package/dist/internal/index.d.ts +90 -103
  11. package/dist/internal/index.js +156 -62
  12. package/dist/internal/index.js.map +1 -1
  13. package/dist/internal/index.mjs +155 -61
  14. package/dist/internal/index.mjs.map +1 -1
  15. package/docs/02-foundations/02-providers-and-models.mdx +6 -2
  16. package/docs/02-foundations/04-tools.mdx +2 -2
  17. package/docs/02-foundations/06-provider-options.mdx +10 -2
  18. package/docs/02-getting-started/02-nextjs-app-router.mdx +7 -7
  19. package/docs/02-getting-started/03-nextjs-pages-router.mdx +6 -6
  20. package/docs/02-getting-started/04-svelte.mdx +7 -7
  21. package/docs/02-getting-started/05-nuxt.mdx +6 -6
  22. package/docs/02-getting-started/06-nodejs.mdx +6 -6
  23. package/docs/02-getting-started/07-expo.mdx +6 -6
  24. package/docs/02-getting-started/08-tanstack-start.mdx +7 -7
  25. package/docs/02-getting-started/09-coding-agents.mdx +2 -2
  26. package/docs/03-agents/01-overview.mdx +1 -3
  27. package/docs/03-agents/02-building-agents.mdx +7 -8
  28. package/docs/03-agents/04-loop-control.mdx +38 -5
  29. package/docs/03-agents/05-configuring-call-options.mdx +3 -3
  30. package/docs/03-agents/06-memory.mdx +1 -2
  31. package/docs/03-ai-sdk-core/05-generating-text.mdx +1 -1
  32. package/docs/03-ai-sdk-core/10-generating-structured-data.mdx +2 -2
  33. package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +89 -19
  34. package/docs/03-ai-sdk-core/16-mcp-tools.mdx +6 -0
  35. package/docs/03-ai-sdk-core/25-settings.mdx +51 -1
  36. package/docs/03-ai-sdk-core/26-reasoning.mdx +190 -0
  37. package/docs/03-ai-sdk-core/30-embeddings.mdx +25 -34
  38. package/docs/03-ai-sdk-core/35-image-generation.mdx +19 -20
  39. package/docs/03-ai-sdk-core/38-video-generation.mdx +25 -25
  40. package/docs/03-ai-sdk-core/39-file-uploads.mdx +145 -0
  41. package/docs/03-ai-sdk-core/40-middleware.mdx +13 -13
  42. package/docs/03-ai-sdk-core/41-skill-uploads.mdx +184 -0
  43. package/docs/03-ai-sdk-core/55-testing.mdx +10 -10
  44. package/docs/03-ai-sdk-core/60-telemetry.mdx +211 -30
  45. package/docs/03-ai-sdk-core/65-event-listeners.mdx +419 -31
  46. package/docs/03-ai-sdk-core/index.mdx +11 -0
  47. package/docs/04-ai-sdk-ui/02-chatbot.mdx +7 -0
  48. package/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +0 -1
  49. package/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +2 -2
  50. package/docs/04-ai-sdk-ui/04-generative-user-interfaces.mdx +4 -4
  51. package/docs/04-ai-sdk-ui/50-stream-protocol.mdx +26 -0
  52. package/docs/06-advanced/04-caching.mdx +10 -10
  53. package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +111 -34
  54. package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +133 -29
  55. package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +139 -3
  56. package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +143 -3
  57. package/docs/07-reference/01-ai-sdk-core/06-rerank.mdx +18 -3
  58. package/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +3 -2
  59. package/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +1 -1
  60. package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +1 -1
  61. package/docs/07-reference/01-ai-sdk-core/13-generate-video.mdx +3 -2
  62. package/docs/07-reference/01-ai-sdk-core/14-upload-file.mdx +93 -0
  63. package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +16 -16
  64. package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +22 -16
  65. package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +10 -11
  66. package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +7 -0
  67. package/docs/07-reference/01-ai-sdk-core/29-filter-active-tools.mdx +71 -0
  68. package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +62 -5
  69. package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +18 -0
  70. package/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +4 -4
  71. package/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +4 -4
  72. package/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +9 -9
  73. package/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +1 -1
  74. package/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +1 -1
  75. package/docs/07-reference/01-ai-sdk-core/{70-step-count-is.mdx → 70-is-step-count.mdx} +10 -10
  76. package/docs/07-reference/01-ai-sdk-core/71-has-tool-call.mdx +3 -3
  77. package/docs/07-reference/01-ai-sdk-core/72-loop-finished.mdx +83 -0
  78. package/docs/07-reference/01-ai-sdk-core/index.mdx +23 -0
  79. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-provider-reference-error.mdx +27 -0
  80. package/docs/07-reference/05-ai-sdk-errors/index.mdx +1 -0
  81. package/docs/08-migration-guides/23-migration-guide-7-0.mdx +272 -0
  82. package/docs/08-migration-guides/24-migration-guide-6-0.mdx +4 -4
  83. package/docs/08-migration-guides/26-migration-guide-5-0.mdx +6 -6
  84. package/docs/09-troubleshooting/14-tool-calling-with-structured-outputs.mdx +1 -1
  85. package/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +1 -1
  86. package/package.json +15 -13
  87. package/src/agent/agent.ts +12 -8
  88. package/src/agent/create-agent-ui-stream-response.ts +6 -4
  89. package/src/agent/create-agent-ui-stream.ts +5 -3
  90. package/src/agent/pipe-agent-ui-stream-to-response.ts +5 -3
  91. package/src/agent/tool-loop-agent-settings.ts +49 -26
  92. package/src/agent/tool-loop-agent.ts +42 -17
  93. package/src/embed/embed-events.ts +181 -0
  94. package/src/embed/embed-many.ts +277 -235
  95. package/src/embed/embed.ts +141 -92
  96. package/src/embed/index.ts +1 -0
  97. package/src/error/index.ts +1 -0
  98. package/src/error/invalid-stream-part-error.ts +3 -3
  99. package/src/generate-object/generate-object.ts +218 -224
  100. package/src/generate-object/index.ts +6 -0
  101. package/src/generate-object/stream-object.ts +349 -368
  102. package/src/generate-object/structured-output-events.ts +258 -0
  103. package/src/generate-text/collect-tool-approvals.ts +1 -1
  104. package/src/generate-text/content-part.ts +9 -3
  105. package/src/generate-text/{callback-events.ts → core-events.ts} +126 -51
  106. package/src/generate-text/create-execute-tools-transformation.ts +148 -0
  107. package/src/generate-text/execute-tool-call.ts +101 -104
  108. package/src/generate-text/filter-active-tool.ts +41 -0
  109. package/src/generate-text/generate-text-result.ts +6 -4
  110. package/src/generate-text/generate-text.ts +640 -771
  111. package/src/generate-text/generation-context.ts +15 -0
  112. package/src/generate-text/index.ts +32 -14
  113. package/src/generate-text/invoke-tool-callbacks-from-stream.ts +85 -0
  114. package/src/generate-text/is-approval-needed.ts +9 -6
  115. package/src/generate-text/parse-tool-call.ts +1 -1
  116. package/src/generate-text/prepare-step.ts +17 -10
  117. package/src/generate-text/reasoning-output.ts +79 -0
  118. package/src/generate-text/reasoning.ts +5 -3
  119. package/src/generate-text/smooth-stream.ts +1 -1
  120. package/src/generate-text/step-result.ts +68 -43
  121. package/src/generate-text/stop-condition.ts +19 -8
  122. package/src/generate-text/stream-model-call.ts +460 -0
  123. package/src/generate-text/stream-text-result.ts +172 -97
  124. package/src/generate-text/stream-text.ts +824 -941
  125. package/src/generate-text/to-response-messages.ts +16 -1
  126. package/src/generate-text/tool-approval-request-output.ts +1 -1
  127. package/src/generate-text/tool-call-repair-function.ts +1 -1
  128. package/src/generate-text/tool-call.ts +15 -3
  129. package/src/generate-text/tool-error.ts +1 -1
  130. package/src/generate-text/tool-output-denied.ts +1 -1
  131. package/src/generate-text/tool-output.ts +1 -1
  132. package/src/generate-text/tool-result.ts +1 -1
  133. package/src/index.ts +2 -1
  134. package/src/logger/log-warnings.ts +4 -0
  135. package/src/prompt/call-settings.ts +36 -13
  136. package/src/prompt/content-part.ts +43 -7
  137. package/src/prompt/convert-to-language-model-prompt.ts +124 -37
  138. package/src/prompt/index.ts +1 -0
  139. package/src/prompt/message.ts +4 -0
  140. package/src/prompt/prepare-call-settings.ts +2 -0
  141. package/src/prompt/prepare-tool-choice.ts +15 -0
  142. package/src/prompt/{prepare-tools-and-tool-choice.ts → prepare-tools.ts} +8 -36
  143. package/src/registry/provider-registry.ts +1 -2
  144. package/src/rerank/index.ts +6 -0
  145. package/src/rerank/rerank-events.ts +189 -0
  146. package/src/rerank/rerank.ts +206 -97
  147. package/src/telemetry/get-global-telemetry-integration.ts +56 -19
  148. package/src/telemetry/telemetry-integration.ts +149 -4
  149. package/src/telemetry/telemetry-settings.ts +2 -7
  150. package/src/types/index.ts +1 -0
  151. package/src/types/provider-reference.ts +3 -0
  152. package/src/ui/convert-to-model-messages.ts +27 -3
  153. package/src/ui/direct-chat-transport.ts +18 -10
  154. package/src/ui/http-chat-transport.ts +8 -19
  155. package/src/ui/index.ts +5 -1
  156. package/src/ui/process-ui-message-stream.ts +15 -2
  157. package/src/ui/ui-messages.ts +70 -5
  158. package/src/ui/validate-ui-messages.ts +11 -0
  159. package/src/ui-message-stream/ui-message-chunks.ts +22 -0
  160. package/src/upload-file/index.ts +2 -0
  161. package/src/upload-file/upload-file-result.ts +11 -0
  162. package/src/upload-file/upload-file.ts +151 -0
  163. package/src/upload-skill/index.ts +2 -0
  164. package/src/upload-skill/upload-skill-result.ts +11 -0
  165. package/src/upload-skill/upload-skill.ts +23 -0
  166. package/src/util/detect-media-type.ts +15 -6
  167. package/src/generate-text/run-tools-transformation.ts +0 -448
  168. package/src/generate-text/tool-set.ts +0 -14
  169. package/src/telemetry/assemble-operation-name.ts +0 -21
  170. package/src/telemetry/get-base-telemetry-attributes.ts +0 -53
  171. package/src/telemetry/get-tracer.ts +0 -20
  172. package/src/telemetry/noop-tracer.ts +0 -69
  173. package/src/telemetry/record-span.ts +0 -75
  174. package/src/telemetry/select-telemetry-attributes.ts +0 -78
  175. package/src/telemetry/stringify-for-telemetry.ts +0 -33
  176. package/src/test/mock-tracer.ts +0 -156
package/CHANGELOG.md CHANGED
@@ -1,5 +1,488 @@
1
1
  # ai
2
2
 
3
+ ## 7.0.0-beta.71
4
+
5
+ ### Patch Changes
6
+
7
+ - e68be55: fix(ai): skip stringifying text when streaming partial text
8
+ - Updated dependencies [939171f]
9
+ - @ai-sdk/gateway@4.0.0-beta.40
10
+
11
+ ## 7.0.0-beta.70
12
+
13
+ ### Patch Changes
14
+
15
+ - Updated dependencies [0694029]
16
+ - @ai-sdk/gateway@4.0.0-beta.39
17
+
18
+ ## 7.0.0-beta.69
19
+
20
+ ### Major Changes
21
+
22
+ - 72223e7: chore(ai): remove deprecated isToolOrDynamicToolUIPart function
23
+
24
+ ### Patch Changes
25
+
26
+ - 34bd95d: feat(ai): add support for uploading provider skills using the provider references abstraction
27
+ - 008271d: feat(openai-compatible): emit warning when using kebab-case instead of camelCase
28
+ - Updated dependencies [34bd95d]
29
+ - Updated dependencies [008271d]
30
+ - @ai-sdk/provider@4.0.0-beta.8
31
+ - @ai-sdk/gateway@4.0.0-beta.38
32
+ - @ai-sdk/provider-utils@5.0.0-beta.14
33
+
34
+ ## 7.0.0-beta.68
35
+
36
+ ### Major Changes
37
+
38
+ - 7e26e81: chore: rename experimental_context to context
39
+
40
+ ### Patch Changes
41
+
42
+ - b0c2869: chore(ai): remove deprecated `media` type part from `ToolResultOutput`
43
+ - Updated dependencies [b0c2869]
44
+ - Updated dependencies [7e26e81]
45
+ - @ai-sdk/provider-utils@5.0.0-beta.13
46
+ - @ai-sdk/gateway@4.0.0-beta.37
47
+
48
+ ## 7.0.0-beta.67
49
+
50
+ ### Patch Changes
51
+
52
+ - d1a8bed: fix(ui): export `isDynamicToolUIPart` from `ai` package
53
+
54
+ ## 7.0.0-beta.66
55
+
56
+ ### Patch Changes
57
+
58
+ - Updated dependencies [fb0c233]
59
+ - Updated dependencies [d1f0d2b]
60
+ - @ai-sdk/gateway@4.0.0-beta.36
61
+
62
+ ## 7.0.0-beta.65
63
+
64
+ ### Patch Changes
65
+
66
+ - Updated dependencies [46d1149]
67
+ - @ai-sdk/provider-utils@5.0.0-beta.12
68
+ - @ai-sdk/gateway@4.0.0-beta.35
69
+
70
+ ## 7.0.0-beta.64
71
+
72
+ ### Patch Changes
73
+
74
+ - Updated dependencies [71b0e7d]
75
+ - @ai-sdk/gateway@4.0.0-beta.34
76
+
77
+ ## 7.0.0-beta.63
78
+
79
+ ### Patch Changes
80
+
81
+ - 6fd51c0: fix(provider): preserve error type prefix in getErrorMessage
82
+ - Updated dependencies [6fd51c0]
83
+ - @ai-sdk/provider-utils@5.0.0-beta.11
84
+ - @ai-sdk/provider@4.0.0-beta.7
85
+ - @ai-sdk/gateway@4.0.0-beta.33
86
+
87
+ ## 7.0.0-beta.62
88
+
89
+ ### Patch Changes
90
+
91
+ - Updated dependencies [11746ca]
92
+ - @ai-sdk/gateway@4.0.0-beta.32
93
+
94
+ ## 7.0.0-beta.61
95
+
96
+ ### Patch Changes
97
+
98
+ - c29a26f: feat(provider): add support for provider references and uploading files as supported per provider
99
+ - Updated dependencies [c29a26f]
100
+ - @ai-sdk/provider-utils@5.0.0-beta.10
101
+ - @ai-sdk/provider@4.0.0-beta.6
102
+ - @ai-sdk/gateway@4.0.0-beta.31
103
+
104
+ ## 7.0.0-beta.60
105
+
106
+ ### Patch Changes
107
+
108
+ - 38fc777: Add AI Gateway hint to provider READMEs
109
+
110
+ ## 7.0.0-beta.59
111
+
112
+ ### Patch Changes
113
+
114
+ - Updated dependencies [4552cbf]
115
+ - @ai-sdk/gateway@4.0.0-beta.30
116
+
117
+ ## 7.0.0-beta.58
118
+
119
+ ### Patch Changes
120
+
121
+ - 2e17091: fix(types): move shared tool set utility types into provider-utils
122
+
123
+ 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.
124
+
125
+ - Updated dependencies [2e17091]
126
+ - @ai-sdk/provider-utils@5.0.0-beta.9
127
+ - @ai-sdk/gateway@4.0.0-beta.29
128
+
129
+ ## 7.0.0-beta.57
130
+
131
+ ### Major Changes
132
+
133
+ - 986c6fd: feat(ai): change type of experimental_context from unknown to generic
134
+ - 493295c: Remove the deprecated `ToolCallOptions` export.
135
+
136
+ Use `ToolExecutionOptions` instead.
137
+
138
+ ### Patch Changes
139
+
140
+ - Updated dependencies [986c6fd]
141
+ - Updated dependencies [493295c]
142
+ - @ai-sdk/provider-utils@5.0.0-beta.8
143
+ - @ai-sdk/gateway@4.0.0-beta.28
144
+
145
+ ## 7.0.0-beta.56
146
+
147
+ ### Patch Changes
148
+
149
+ - Updated dependencies [70a9aae]
150
+ - @ai-sdk/gateway@4.0.0-beta.27
151
+
152
+ ## 7.0.0-beta.55
153
+
154
+ ### Major Changes
155
+
156
+ - b3c9f6a: feat(ai): create new opentelemetry package (@ai-sdk/otel)
157
+
158
+ ## 7.0.0-beta.54
159
+
160
+ ### Patch Changes
161
+
162
+ - 5d0f18e: feat(ai): move opentelemetry to new package
163
+
164
+ ## 7.0.0-beta.53
165
+
166
+ ### Patch Changes
167
+
168
+ - 9b47dea: fix(ai): remove otel Tracer api from telemetry settings
169
+
170
+ ## 7.0.0-beta.52
171
+
172
+ ### Patch Changes
173
+
174
+ - b56301c: feat(ai): decouple otel from generate/streamObject
175
+
176
+ ## 7.0.0-beta.51
177
+
178
+ ### Patch Changes
179
+
180
+ - 6abd098: split `prepareToolsAndToolChoice()` into `prepareTools()` and `prepareToolChoice()`
181
+
182
+ ## 7.0.0-beta.50
183
+
184
+ ### Patch Changes
185
+
186
+ - 3debdb7: feat(ai): rename `stepCountIs` to `isStepCount`
187
+
188
+ ## 7.0.0-beta.49
189
+
190
+ ### Patch Changes
191
+
192
+ - Updated dependencies [294cbe7]
193
+ - @ai-sdk/gateway@4.0.0-beta.26
194
+
195
+ ## 7.0.0-beta.48
196
+
197
+ ### Patch Changes
198
+
199
+ - 5c4d910: feat(ai): add new `isLoopFinished` stop condition helper for unlimited steps
200
+
201
+ ## 7.0.0-beta.47
202
+
203
+ ### Patch Changes
204
+
205
+ - bc67b4f: feat(ai): add experimental callbacks for structured outputs
206
+
207
+ ## 7.0.0-beta.46
208
+
209
+ ### Patch Changes
210
+
211
+ - 31ee822: refactoring(ai): extract filterActiveTools and expose it as experimental_filterActiveTools
212
+
213
+ ## 7.0.0-beta.45
214
+
215
+ ### Patch Changes
216
+
217
+ - Updated dependencies [435895b]
218
+ - @ai-sdk/gateway@4.0.0-beta.25
219
+
220
+ ## 7.0.0-beta.44
221
+
222
+ ### Patch Changes
223
+
224
+ - Updated dependencies [d30466c]
225
+ - @ai-sdk/gateway@4.0.0-beta.24
226
+
227
+ ## 7.0.0-beta.43
228
+
229
+ ### Patch Changes
230
+
231
+ - Updated dependencies [4ec78cd]
232
+ - @ai-sdk/gateway@4.0.0-beta.23
233
+
234
+ ## 7.0.0-beta.42
235
+
236
+ ### Patch Changes
237
+
238
+ - a3fd75b: feat(ai): expose Experimental_ModelCallStreamPart type
239
+
240
+ ## 7.0.0-beta.41
241
+
242
+ ### Patch Changes
243
+
244
+ - Updated dependencies [7ceff62]
245
+ - @ai-sdk/gateway@4.0.0-beta.22
246
+
247
+ ## 7.0.0-beta.40
248
+
249
+ ### Patch Changes
250
+
251
+ - 989d3d2: fix(ai): include generated files in OTEL response attributes
252
+
253
+ ## 7.0.0-beta.39
254
+
255
+ ### Patch Changes
256
+
257
+ - f4cfccd: feat(ai): decouple otel from rerank function
258
+
259
+ ## 7.0.0-beta.38
260
+
261
+ ### Patch Changes
262
+
263
+ - 1f509d4: fix(ai): force template check on 'kind' param
264
+ - Updated dependencies [1f509d4]
265
+ - @ai-sdk/provider-utils@5.0.0-beta.7
266
+ - @ai-sdk/provider@4.0.0-beta.5
267
+ - @ai-sdk/gateway@4.0.0-beta.21
268
+
269
+ ## 7.0.0-beta.37
270
+
271
+ ### Patch Changes
272
+
273
+ - Updated dependencies [4f91b5d]
274
+ - @ai-sdk/gateway@4.0.0-beta.20
275
+
276
+ ## 7.0.0-beta.36
277
+
278
+ ### Patch Changes
279
+
280
+ - 118b953: feat(ai): decouple otel from embed functions
281
+
282
+ ## 7.0.0-beta.35
283
+
284
+ ### Patch Changes
285
+
286
+ - 99bf941: feat(ai): extract streamModelCall function for streaming text generation
287
+
288
+ ## 7.0.0-beta.34
289
+
290
+ ### Patch Changes
291
+
292
+ - Updated dependencies [72889f8]
293
+ - @ai-sdk/gateway@4.0.0-beta.19
294
+
295
+ ## 7.0.0-beta.33
296
+
297
+ ### Patch Changes
298
+
299
+ - caf1b6f: feat(ai): introduce experimental callbacks for rerank function
300
+
301
+ ## 7.0.0-beta.32
302
+
303
+ ### Major Changes
304
+
305
+ - 4b46062: refactoring(ai): extract tool callback invocation into separate function and forward chunks before callback invocation
306
+
307
+ ### Patch Changes
308
+
309
+ - Updated dependencies [165b97a]
310
+ - @ai-sdk/gateway@4.0.0-beta.18
311
+
312
+ ## 7.0.0-beta.31
313
+
314
+ ### Patch Changes
315
+
316
+ - e79e644: chore(ai/core): remove `timeout` from `CallSettings` as it was effectively unused there
317
+
318
+ ## 7.0.0-beta.30
319
+
320
+ ### Patch Changes
321
+
322
+ - f5a6f89: README updates
323
+
324
+ ## 7.0.0-beta.29
325
+
326
+ ### Patch Changes
327
+
328
+ - 877bf12: fix(ai): flatten model attributes for telemetry
329
+
330
+ ## 7.0.0-beta.28
331
+
332
+ ### Major Changes
333
+
334
+ - b9cf502: refactoring(ai): delay tool execution in stream text until model call is finished
335
+
336
+ ## 7.0.0-beta.27
337
+
338
+ ### Patch Changes
339
+
340
+ - 3887c70: feat(provider): add new top-level reasoning parameter to spec and support it in `generateText` and `streamText`
341
+ - Updated dependencies [3887c70]
342
+ - @ai-sdk/provider-utils@5.0.0-beta.6
343
+ - @ai-sdk/provider@4.0.0-beta.4
344
+ - @ai-sdk/gateway@4.0.0-beta.17
345
+
346
+ ## 7.0.0-beta.26
347
+
348
+ ### Patch Changes
349
+
350
+ - f0b0b20: feat(ai): add per-tool timeout overrides via toolTimeouts
351
+
352
+ ## 7.0.0-beta.25
353
+
354
+ ### Patch Changes
355
+
356
+ - ff9ce30: feat(ai): introduce experimental callbacks for embed function
357
+
358
+ ## 7.0.0-beta.24
359
+
360
+ ### Major Changes
361
+
362
+ - 776b617: feat(provider): adding new 'custom' content type
363
+
364
+ ### Patch Changes
365
+
366
+ - Updated dependencies [776b617]
367
+ - @ai-sdk/provider-utils@5.0.0-beta.5
368
+ - @ai-sdk/provider@4.0.0-beta.3
369
+ - @ai-sdk/gateway@4.0.0-beta.16
370
+
371
+ ## 7.0.0-beta.23
372
+
373
+ ### Patch Changes
374
+
375
+ - 80d4dde: fix(ai): include tool input on tool result for provider executed dynamic tools
376
+ - Updated dependencies [61753c3]
377
+ - @ai-sdk/provider-utils@5.0.0-beta.4
378
+ - @ai-sdk/gateway@4.0.0-beta.15
379
+
380
+ ## 7.0.0-beta.22
381
+
382
+ ### Patch Changes
383
+
384
+ - Updated dependencies [ead9144]
385
+ - @ai-sdk/gateway@4.0.0-beta.14
386
+
387
+ ## 7.0.0-beta.21
388
+
389
+ ### Patch Changes
390
+
391
+ - 34fd051: feat(ai): add toolMs to timeout configuration
392
+
393
+ ## 7.0.0-beta.20
394
+
395
+ ### Patch Changes
396
+
397
+ - Updated dependencies [2095655]
398
+ - @ai-sdk/gateway@4.0.0-beta.13
399
+
400
+ ## 7.0.0-beta.19
401
+
402
+ ### Patch Changes
403
+
404
+ - Updated dependencies [f7d4f01]
405
+ - @ai-sdk/provider-utils@5.0.0-beta.3
406
+ - @ai-sdk/provider@4.0.0-beta.2
407
+ - @ai-sdk/gateway@4.0.0-beta.12
408
+
409
+ ## 7.0.0-beta.18
410
+
411
+ ### Patch Changes
412
+
413
+ - Updated dependencies [5c2a5a2]
414
+ - @ai-sdk/provider@4.0.0-beta.1
415
+ - @ai-sdk/gateway@4.0.0-beta.11
416
+ - @ai-sdk/provider-utils@5.0.0-beta.2
417
+
418
+ ## 7.0.0-beta.17
419
+
420
+ ### Patch Changes
421
+
422
+ - Updated dependencies [4d6ab9a]
423
+ - @ai-sdk/gateway@4.0.0-beta.10
424
+
425
+ ## 7.0.0-beta.16
426
+
427
+ ### Major Changes
428
+
429
+ - 5b8c58f: feat(ai): decouple otel from core functions
430
+
431
+ ## 7.0.0-beta.15
432
+
433
+ ### Patch Changes
434
+
435
+ - Updated dependencies [980f777]
436
+ - Updated dependencies [7185ba2]
437
+ - @ai-sdk/gateway@4.0.0-beta.9
438
+
439
+ ## 7.0.0-beta.14
440
+
441
+ ### Patch Changes
442
+
443
+ - Updated dependencies [4adc485]
444
+ - @ai-sdk/gateway@4.0.0-beta.8
445
+
446
+ ## 7.0.0-beta.13
447
+
448
+ ### Patch Changes
449
+
450
+ - c26ca8d: Remove custom User-Agent header from HttpChatTransport to fix CORS preflight failures in Safari and Firefox
451
+
452
+ ## 7.0.0-beta.12
453
+
454
+ ### Patch Changes
455
+
456
+ - Updated dependencies [e046ea3]
457
+ - @ai-sdk/gateway@4.0.0-beta.7
458
+
459
+ ## 7.0.0-beta.11
460
+
461
+ ### Patch Changes
462
+
463
+ - Updated dependencies [82288b0]
464
+ - @ai-sdk/gateway@4.0.0-beta.6
465
+
466
+ ## 7.0.0-beta.10
467
+
468
+ ### Patch Changes
469
+
470
+ - Updated dependencies [aa5a583]
471
+ - @ai-sdk/gateway@4.0.0-beta.5
472
+
473
+ ## 7.0.0-beta.9
474
+
475
+ ### Patch Changes
476
+
477
+ - 1fe058b: fix(anthropic): preserve the error code returned by model
478
+
479
+ ## 7.0.0-beta.8
480
+
481
+ ### Patch Changes
482
+
483
+ - Updated dependencies [f32d84a]
484
+ - @ai-sdk/gateway@4.0.0-beta.4
485
+
3
486
  ## 7.0.0-beta.7
4
487
 
5
488
  ### Patch Changes
@@ -919,13 +1402,13 @@
919
1402
  Before
920
1403
 
921
1404
  ```ts
922
- model.textEmbeddingModel('my-model-id');
1405
+ model.textEmbeddingModel("my-model-id");
923
1406
  ```
924
1407
 
925
1408
  After
926
1409
 
927
1410
  ```ts
928
- model.embeddingModel('my-model-id');
1411
+ model.embeddingModel("my-model-id");
929
1412
  ```
930
1413
 
931
1414
  - b67d224: Fixes an issue where `providerMetadata` and `providerExecuted` were lost when tool input validation failed
@@ -948,15 +1431,15 @@
948
1431
  This change replaces
949
1432
 
950
1433
  ```ts
951
- import { experimental_createMCPClient } from 'ai';
952
- import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
1434
+ import { experimental_createMCPClient } from "ai";
1435
+ import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
953
1436
  ```
954
1437
 
955
1438
  with
956
1439
 
957
1440
  ```ts
958
- import { experimental_createMCPClient } from '@ai-sdk/mcp';
959
- import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
1441
+ import { experimental_createMCPClient } from "@ai-sdk/mcp";
1442
+ import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
960
1443
  ```
961
1444
 
962
1445
  - 90e5bdd: chore(ai): restructure agent files
@@ -1043,7 +1526,7 @@
1043
1526
  - 81d4308: feat: provider-executed dynamic tools
1044
1527
  - e0d1ea9: fix(ai): align logic of text-end with reasoning-end
1045
1528
  - 2406576: chore(agent): rename messages property on agent ui stream functions to uiMessages
1046
- - b1aeea7: feat(ai): set default stopWhen on Agent to stepCountIs(20)
1529
+ - b1aeea7: feat(ai): set default stopWhen on Agent to isStepCount(20)
1047
1530
  - dce4e7b: chore(agent): rename system to instructions
1048
1531
  - 4ece5f9: feat(agent): add experimental_download to ToolLoopAgent
1049
1532
  - a417a34: feat(agent): introduce version property
@@ -1476,13 +1959,13 @@
1476
1959
  Before
1477
1960
 
1478
1961
  ```ts
1479
- model.textEmbeddingModel('my-model-id');
1962
+ model.textEmbeddingModel("my-model-id");
1480
1963
  ```
1481
1964
 
1482
1965
  After
1483
1966
 
1484
1967
  ```ts
1485
- model.embeddingModel('my-model-id');
1968
+ model.embeddingModel("my-model-id");
1486
1969
  ```
1487
1970
 
1488
1971
  - Updated dependencies [8d9e8ad]
@@ -1829,15 +2312,15 @@
1829
2312
  This change replaces
1830
2313
 
1831
2314
  ```ts
1832
- import { experimental_createMCPClient } from 'ai';
1833
- import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
2315
+ import { experimental_createMCPClient } from "ai";
2316
+ import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
1834
2317
  ```
1835
2318
 
1836
2319
  with
1837
2320
 
1838
2321
  ```ts
1839
- import { experimental_createMCPClient } from '@ai-sdk/mcp';
1840
- import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
2322
+ import { experimental_createMCPClient } from "@ai-sdk/mcp";
2323
+ import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
1841
2324
  ```
1842
2325
 
1843
2326
  ## 6.0.0-beta.71
@@ -2219,7 +2702,7 @@
2219
2702
 
2220
2703
  - aa0515c: feat(ai): move Agent to stable
2221
2704
  - e7d9b00: feat(agent): add optional name property to agent
2222
- - b1aeea7: feat(ai): set default stopWhen on Agent to stepCountIs(20)
2705
+ - b1aeea7: feat(ai): set default stopWhen on Agent to isStepCount(20)
2223
2706
 
2224
2707
  ## 5.1.0-beta.18
2225
2708
 
@@ -2756,7 +3239,7 @@
2756
3239
 
2757
3240
  ```js
2758
3241
  await generateImage({
2759
- model: luma.image('photon-flash-1', {
3242
+ model: luma.image("photon-flash-1", {
2760
3243
  maxImagesPerCall: 5,
2761
3244
  pollIntervalMillis: 500,
2762
3245
  }),
@@ -2769,7 +3252,7 @@
2769
3252
 
2770
3253
  ```js
2771
3254
  await generateImage({
2772
- model: luma.image('photon-flash-1'),
3255
+ model: luma.image("photon-flash-1"),
2773
3256
  prompt,
2774
3257
  n: 10,
2775
3258
  maxImagesPerCall: 5,
@@ -2789,7 +3272,7 @@
2789
3272
  - c7710a9: chore (ai): rename DataStreamToSSETransformStream to JsonToSseTransformStream
2790
3273
  - bfbfc4c: feat (ai): streamText/generateText: totalUsage contains usage for all steps. usage is for a single step.
2791
3274
  - 9ae327d: chore (ui): replace chat store concept with chat instances
2792
- - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to stepCountIs.
3275
+ - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to isStepCount.
2793
3276
  - 247ee0c: chore (ai): remove steps from tool invocation ui parts
2794
3277
  - 109c0ac: chore (ai): rename id to chatId (in post request, resume request, and useChat)
2795
3278
  - 954aa73: feat (ui): extended regenerate support
@@ -2969,10 +3452,10 @@
2969
3452
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
2970
3453
 
2971
3454
  ```js
2972
- const prompt = 'Santa Claus driving a Cadillac';
3455
+ const prompt = "Santa Claus driving a Cadillac";
2973
3456
 
2974
3457
  const { providerMetadata } = await experimental_generateImage({
2975
- model: openai.image('dall-e-3'),
3458
+ model: openai.image("dall-e-3"),
2976
3459
  prompt,
2977
3460
  });
2978
3461
 
@@ -3532,7 +4015,7 @@
3532
4015
  ### Major Changes
3533
4016
 
3534
4017
  - 72d7d72: chore (ai): stable activeTools
3535
- - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to stepCountIs.
4018
+ - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to isStepCount.
3536
4019
 
3537
4020
  ### Patch Changes
3538
4021
 
@@ -3635,7 +4118,7 @@
3635
4118
 
3636
4119
  ```js
3637
4120
  await generateImage({
3638
- model: luma.image('photon-flash-1', {
4121
+ model: luma.image("photon-flash-1", {
3639
4122
  maxImagesPerCall: 5,
3640
4123
  pollIntervalMillis: 500,
3641
4124
  }),
@@ -3648,7 +4131,7 @@
3648
4131
 
3649
4132
  ```js
3650
4133
  await generateImage({
3651
- model: luma.image('photon-flash-1'),
4134
+ model: luma.image("photon-flash-1"),
3652
4135
  prompt,
3653
4136
  n: 10,
3654
4137
  maxImagesPerCall: 5,
@@ -3746,10 +4229,10 @@
3746
4229
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
3747
4230
 
3748
4231
  ```js
3749
- const prompt = 'Santa Claus driving a Cadillac';
4232
+ const prompt = "Santa Claus driving a Cadillac";
3750
4233
 
3751
4234
  const { providerMetadata } = await experimental_generateImage({
3752
- model: openai.image('dall-e-3'),
4235
+ model: openai.image("dall-e-3"),
3753
4236
  prompt,
3754
4237
  });
3755
4238
 
package/README.md CHANGED
@@ -30,7 +30,7 @@ By default, the AI SDK uses the [Vercel AI Gateway](https://vercel.com/docs/ai-g
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,