ai 7.0.0-beta.8 → 7.0.0-beta.81

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 (187) hide show
  1. package/CHANGELOG.md +579 -24
  2. package/README.md +6 -16
  3. package/dist/index.d.mts +1546 -589
  4. package/dist/index.d.ts +1546 -589
  5. package/dist/index.js +3195 -3016
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +3095 -2921
  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 +7 -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 +155 -0
  41. package/docs/03-ai-sdk-core/40-middleware.mdx +13 -13
  42. package/docs/03-ai-sdk-core/41-skill-uploads.mdx +194 -0
  43. package/docs/03-ai-sdk-core/45-provider-management.mdx +108 -0
  44. package/docs/03-ai-sdk-core/55-testing.mdx +10 -10
  45. package/docs/03-ai-sdk-core/60-telemetry.mdx +211 -30
  46. package/docs/03-ai-sdk-core/65-devtools.mdx +11 -0
  47. package/docs/03-ai-sdk-core/65-event-listeners.mdx +419 -31
  48. package/docs/03-ai-sdk-core/index.mdx +11 -0
  49. package/docs/04-ai-sdk-ui/02-chatbot.mdx +7 -0
  50. package/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +0 -1
  51. package/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +2 -2
  52. package/docs/04-ai-sdk-ui/04-generative-user-interfaces.mdx +4 -4
  53. package/docs/04-ai-sdk-ui/50-stream-protocol.mdx +26 -0
  54. package/docs/06-advanced/04-caching.mdx +10 -10
  55. package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +111 -34
  56. package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +133 -29
  57. package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +139 -3
  58. package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +143 -3
  59. package/docs/07-reference/01-ai-sdk-core/06-rerank.mdx +18 -3
  60. package/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +3 -2
  61. package/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +1 -1
  62. package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +1 -1
  63. package/docs/07-reference/01-ai-sdk-core/13-generate-video.mdx +3 -2
  64. package/docs/07-reference/01-ai-sdk-core/14-upload-file.mdx +93 -0
  65. package/docs/07-reference/01-ai-sdk-core/14-upload-skill.mdx +110 -0
  66. package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +16 -16
  67. package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +22 -16
  68. package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +10 -11
  69. package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +7 -0
  70. package/docs/07-reference/01-ai-sdk-core/29-filter-active-tools.mdx +71 -0
  71. package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +62 -5
  72. package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +18 -0
  73. package/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +4 -4
  74. package/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +4 -4
  75. package/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +9 -9
  76. package/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +1 -1
  77. package/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +1 -1
  78. package/docs/07-reference/01-ai-sdk-core/{70-step-count-is.mdx → 70-is-step-count.mdx} +10 -10
  79. package/docs/07-reference/01-ai-sdk-core/71-has-tool-call.mdx +3 -3
  80. package/docs/07-reference/01-ai-sdk-core/72-loop-finished.mdx +83 -0
  81. package/docs/07-reference/01-ai-sdk-core/index.mdx +33 -0
  82. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-provider-reference-error.mdx +27 -0
  83. package/docs/07-reference/05-ai-sdk-errors/index.mdx +1 -0
  84. package/docs/08-migration-guides/23-migration-guide-7-0.mdx +272 -0
  85. package/docs/08-migration-guides/24-migration-guide-6-0.mdx +4 -4
  86. package/docs/08-migration-guides/26-migration-guide-5-0.mdx +6 -6
  87. package/docs/09-troubleshooting/14-tool-calling-with-structured-outputs.mdx +1 -1
  88. package/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +1 -1
  89. package/package.json +15 -13
  90. package/src/agent/agent.ts +20 -13
  91. package/src/agent/create-agent-ui-stream-response.ts +4 -3
  92. package/src/agent/create-agent-ui-stream.ts +4 -3
  93. package/src/agent/pipe-agent-ui-stream-to-response.ts +4 -3
  94. package/src/agent/tool-loop-agent-settings.ts +211 -180
  95. package/src/agent/tool-loop-agent.ts +86 -60
  96. package/src/embed/embed-events.ts +181 -0
  97. package/src/embed/embed-many.ts +277 -235
  98. package/src/embed/embed.ts +141 -92
  99. package/src/embed/index.ts +1 -0
  100. package/src/error/index.ts +1 -0
  101. package/src/error/invalid-stream-part-error.ts +3 -3
  102. package/src/generate-object/generate-object.ts +218 -224
  103. package/src/generate-object/index.ts +6 -0
  104. package/src/generate-object/stream-object.ts +349 -368
  105. package/src/generate-object/structured-output-events.ts +258 -0
  106. package/src/generate-text/collect-tool-approvals.ts +1 -1
  107. package/src/generate-text/content-part.ts +9 -3
  108. package/src/generate-text/context-parameter.ts +44 -0
  109. package/src/generate-text/{callback-events.ts → core-events.ts} +114 -51
  110. package/src/generate-text/create-execute-tools-transformation.ts +156 -0
  111. package/src/generate-text/execute-tool-call.ts +104 -104
  112. package/src/generate-text/filter-active-tool.ts +41 -0
  113. package/src/generate-text/generate-text-result.ts +5 -4
  114. package/src/generate-text/generate-text.ts +631 -787
  115. package/src/generate-text/index.ts +31 -14
  116. package/src/generate-text/invoke-tool-callbacks-from-stream.ts +88 -0
  117. package/src/generate-text/is-approval-needed.ts +13 -6
  118. package/src/generate-text/parse-tool-call.ts +1 -1
  119. package/src/generate-text/prepare-step.ts +20 -10
  120. package/src/generate-text/reasoning-output.ts +79 -0
  121. package/src/generate-text/reasoning.ts +5 -3
  122. package/src/generate-text/smooth-stream.ts +1 -1
  123. package/src/generate-text/step-result.ts +74 -43
  124. package/src/generate-text/stop-condition.ts +18 -8
  125. package/src/generate-text/stream-language-model-call.ts +461 -0
  126. package/src/generate-text/stream-text-result.ts +171 -97
  127. package/src/generate-text/stream-text.ts +828 -961
  128. package/src/generate-text/to-response-messages.ts +18 -2
  129. package/src/generate-text/tool-approval-request-output.ts +1 -1
  130. package/src/generate-text/tool-call-repair-function.ts +1 -1
  131. package/src/generate-text/tool-call.ts +15 -3
  132. package/src/generate-text/tool-error.ts +1 -1
  133. package/src/generate-text/tool-output-denied.ts +1 -1
  134. package/src/generate-text/tool-output.ts +1 -1
  135. package/src/generate-text/tool-result.ts +1 -1
  136. package/src/index.ts +2 -1
  137. package/src/logger/log-warnings.ts +4 -0
  138. package/src/middleware/wrap-embedding-model.ts +2 -1
  139. package/src/middleware/wrap-image-model.ts +2 -1
  140. package/src/model/resolve-model.ts +33 -0
  141. package/src/prompt/call-settings.ts +36 -13
  142. package/src/prompt/content-part.ts +43 -7
  143. package/src/prompt/convert-to-language-model-prompt.ts +124 -37
  144. package/src/prompt/index.ts +1 -0
  145. package/src/prompt/message.ts +4 -0
  146. package/src/prompt/prepare-call-settings.ts +2 -0
  147. package/src/prompt/prepare-tool-choice.ts +15 -0
  148. package/src/prompt/{prepare-tools-and-tool-choice.ts → prepare-tools.ts} +8 -36
  149. package/src/registry/custom-provider.ts +17 -5
  150. package/src/registry/no-such-provider-error.ts +2 -1
  151. package/src/registry/provider-registry.ts +78 -4
  152. package/src/rerank/index.ts +6 -0
  153. package/src/rerank/rerank-events.ts +189 -0
  154. package/src/rerank/rerank.ts +209 -98
  155. package/src/telemetry/get-global-telemetry-integration.ts +62 -29
  156. package/src/telemetry/telemetry-integration.ts +150 -9
  157. package/src/telemetry/telemetry-settings.ts +2 -7
  158. package/src/types/index.ts +1 -0
  159. package/src/types/provider-reference.ts +3 -0
  160. package/src/types/reranking-model.ts +1 -1
  161. package/src/ui/convert-to-model-messages.ts +27 -3
  162. package/src/ui/direct-chat-transport.ts +17 -8
  163. package/src/ui/http-chat-transport.ts +8 -19
  164. package/src/ui/index.ts +5 -1
  165. package/src/ui/last-assistant-message-is-complete-with-approval-responses.ts +1 -2
  166. package/src/ui/process-ui-message-stream.ts +15 -2
  167. package/src/ui/ui-messages.ts +70 -5
  168. package/src/ui/validate-ui-messages.ts +11 -0
  169. package/src/ui-message-stream/ui-message-chunks.ts +22 -0
  170. package/src/upload-file/index.ts +2 -0
  171. package/src/upload-file/upload-file-result.ts +11 -0
  172. package/src/upload-file/upload-file.ts +163 -0
  173. package/src/upload-skill/index.ts +2 -0
  174. package/src/upload-skill/upload-skill-result.ts +11 -0
  175. package/src/upload-skill/upload-skill.ts +34 -0
  176. package/src/util/detect-media-type.ts +15 -6
  177. package/src/util/merge-listeners.ts +22 -0
  178. package/src/generate-text/run-tools-transformation.ts +0 -448
  179. package/src/generate-text/tool-set.ts +0 -14
  180. package/src/telemetry/assemble-operation-name.ts +0 -21
  181. package/src/telemetry/get-base-telemetry-attributes.ts +0 -53
  182. package/src/telemetry/get-tracer.ts +0 -20
  183. package/src/telemetry/noop-tracer.ts +0 -69
  184. package/src/telemetry/record-span.ts +0 -75
  185. package/src/telemetry/select-telemetry-attributes.ts +0 -78
  186. package/src/telemetry/stringify-for-telemetry.ts +0 -33
  187. package/src/test/mock-tracer.ts +0 -156
package/CHANGELOG.md CHANGED
@@ -1,5 +1,560 @@
1
1
  # ai
2
2
 
3
+ ## 7.0.0-beta.81
4
+
5
+ ### Patch Changes
6
+
7
+ - 2fe1099: feat(ai): emit streaming chunks throught the onChunk callback
8
+ - f04adcb: feat(ai): refresh `customProvider` and `createProviderRegistry` to support file and skill upload abstractions
9
+
10
+ ## 7.0.0-beta.80
11
+
12
+ ### Patch Changes
13
+
14
+ - 3ae1786: fix: better context type inference
15
+ - Updated dependencies [3ae1786]
16
+ - @ai-sdk/provider-utils@5.0.0-beta.17
17
+ - @ai-sdk/gateway@4.0.0-beta.45
18
+
19
+ ## 7.0.0-beta.79
20
+
21
+ ### Patch Changes
22
+
23
+ - 6866afe: fix(ai): fix `lastAssistantMessageIsCompleteWithApprovalResponses` to no longer ignore `providerExecuted` tool approvals
24
+
25
+ ## 7.0.0-beta.78
26
+
27
+ ### Patch Changes
28
+
29
+ - f372547: fix(ai): fix `providerExecuted` tool approvals being passed to language model twice
30
+ - Updated dependencies [7943a4b]
31
+ - @ai-sdk/gateway@4.0.0-beta.44
32
+
33
+ ## 7.0.0-beta.77
34
+
35
+ ### Patch Changes
36
+
37
+ - 2add429: fix(ai): skip passing invalid JSON inputs to response messages
38
+
39
+ ## 7.0.0-beta.76
40
+
41
+ ### Major Changes
42
+
43
+ - fcc6869: refactor(ai/core): rename `ModelCallStreamPart` to `LanguageModelStreamPart` and align stream model call naming (`streamLanguageModelCall`, `experimental_streamLanguageModelCall`).
44
+
45
+ This updates experimental low-level stream primitives to use "language model call" terminology consistently.
46
+
47
+ ## 7.0.0-beta.75
48
+
49
+ ### Patch Changes
50
+
51
+ - 176466a: chore(provider): align V4 model return types to have their own definitions across all model interfaces
52
+ - Updated dependencies [176466a]
53
+ - @ai-sdk/provider@4.0.0-beta.10
54
+ - @ai-sdk/gateway@4.0.0-beta.43
55
+ - @ai-sdk/provider-utils@5.0.0-beta.16
56
+
57
+ ## 7.0.0-beta.74
58
+
59
+ ### Patch Changes
60
+
61
+ - e311194: feat(ai): allow passing provider instance to `uploadFile` and `uploadSkill` as shorthand
62
+ - Updated dependencies [e311194]
63
+ - @ai-sdk/provider@4.0.0-beta.9
64
+ - @ai-sdk/gateway@4.0.0-beta.42
65
+ - @ai-sdk/provider-utils@5.0.0-beta.15
66
+
67
+ ## 7.0.0-beta.73
68
+
69
+ ### Patch Changes
70
+
71
+ - Updated dependencies [1464561]
72
+ - @ai-sdk/gateway@4.0.0-beta.41
73
+
74
+ ## 7.0.0-beta.72
75
+
76
+ ### Patch Changes
77
+
78
+ - 664a0eb: feat (ai/core): support plain string model IDs in `rerank()` function
79
+
80
+ 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.
81
+
82
+ ## 7.0.0-beta.71
83
+
84
+ ### Patch Changes
85
+
86
+ - e68be55: fix(ai): skip stringifying text when streaming partial text
87
+ - Updated dependencies [939171f]
88
+ - @ai-sdk/gateway@4.0.0-beta.40
89
+
90
+ ## 7.0.0-beta.70
91
+
92
+ ### Patch Changes
93
+
94
+ - Updated dependencies [0694029]
95
+ - @ai-sdk/gateway@4.0.0-beta.39
96
+
97
+ ## 7.0.0-beta.69
98
+
99
+ ### Major Changes
100
+
101
+ - 72223e7: chore(ai): remove deprecated isToolOrDynamicToolUIPart function
102
+
103
+ ### Patch Changes
104
+
105
+ - 34bd95d: feat(ai): add support for uploading provider skills using the provider references abstraction
106
+ - 008271d: feat(openai-compatible): emit warning when using kebab-case instead of camelCase
107
+ - Updated dependencies [34bd95d]
108
+ - Updated dependencies [008271d]
109
+ - @ai-sdk/provider@4.0.0-beta.8
110
+ - @ai-sdk/gateway@4.0.0-beta.38
111
+ - @ai-sdk/provider-utils@5.0.0-beta.14
112
+
113
+ ## 7.0.0-beta.68
114
+
115
+ ### Major Changes
116
+
117
+ - 7e26e81: chore: rename experimental_context to context
118
+
119
+ ### Patch Changes
120
+
121
+ - b0c2869: chore(ai): remove deprecated `media` type part from `ToolResultOutput`
122
+ - Updated dependencies [b0c2869]
123
+ - Updated dependencies [7e26e81]
124
+ - @ai-sdk/provider-utils@5.0.0-beta.13
125
+ - @ai-sdk/gateway@4.0.0-beta.37
126
+
127
+ ## 7.0.0-beta.67
128
+
129
+ ### Patch Changes
130
+
131
+ - d1a8bed: fix(ui): export `isDynamicToolUIPart` from `ai` package
132
+
133
+ ## 7.0.0-beta.66
134
+
135
+ ### Patch Changes
136
+
137
+ - Updated dependencies [fb0c233]
138
+ - Updated dependencies [d1f0d2b]
139
+ - @ai-sdk/gateway@4.0.0-beta.36
140
+
141
+ ## 7.0.0-beta.65
142
+
143
+ ### Patch Changes
144
+
145
+ - Updated dependencies [46d1149]
146
+ - @ai-sdk/provider-utils@5.0.0-beta.12
147
+ - @ai-sdk/gateway@4.0.0-beta.35
148
+
149
+ ## 7.0.0-beta.64
150
+
151
+ ### Patch Changes
152
+
153
+ - Updated dependencies [71b0e7d]
154
+ - @ai-sdk/gateway@4.0.0-beta.34
155
+
156
+ ## 7.0.0-beta.63
157
+
158
+ ### Patch Changes
159
+
160
+ - 6fd51c0: fix(provider): preserve error type prefix in getErrorMessage
161
+ - Updated dependencies [6fd51c0]
162
+ - @ai-sdk/provider-utils@5.0.0-beta.11
163
+ - @ai-sdk/provider@4.0.0-beta.7
164
+ - @ai-sdk/gateway@4.0.0-beta.33
165
+
166
+ ## 7.0.0-beta.62
167
+
168
+ ### Patch Changes
169
+
170
+ - Updated dependencies [11746ca]
171
+ - @ai-sdk/gateway@4.0.0-beta.32
172
+
173
+ ## 7.0.0-beta.61
174
+
175
+ ### Patch Changes
176
+
177
+ - c29a26f: feat(provider): add support for provider references and uploading files as supported per provider
178
+ - Updated dependencies [c29a26f]
179
+ - @ai-sdk/provider-utils@5.0.0-beta.10
180
+ - @ai-sdk/provider@4.0.0-beta.6
181
+ - @ai-sdk/gateway@4.0.0-beta.31
182
+
183
+ ## 7.0.0-beta.60
184
+
185
+ ### Patch Changes
186
+
187
+ - 38fc777: Add AI Gateway hint to provider READMEs
188
+
189
+ ## 7.0.0-beta.59
190
+
191
+ ### Patch Changes
192
+
193
+ - Updated dependencies [4552cbf]
194
+ - @ai-sdk/gateway@4.0.0-beta.30
195
+
196
+ ## 7.0.0-beta.58
197
+
198
+ ### Patch Changes
199
+
200
+ - 2e17091: fix(types): move shared tool set utility types into provider-utils
201
+
202
+ 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.
203
+
204
+ - Updated dependencies [2e17091]
205
+ - @ai-sdk/provider-utils@5.0.0-beta.9
206
+ - @ai-sdk/gateway@4.0.0-beta.29
207
+
208
+ ## 7.0.0-beta.57
209
+
210
+ ### Major Changes
211
+
212
+ - 986c6fd: feat(ai): change type of experimental_context from unknown to generic
213
+ - 493295c: Remove the deprecated `ToolCallOptions` export.
214
+
215
+ Use `ToolExecutionOptions` instead.
216
+
217
+ ### Patch Changes
218
+
219
+ - Updated dependencies [986c6fd]
220
+ - Updated dependencies [493295c]
221
+ - @ai-sdk/provider-utils@5.0.0-beta.8
222
+ - @ai-sdk/gateway@4.0.0-beta.28
223
+
224
+ ## 7.0.0-beta.56
225
+
226
+ ### Patch Changes
227
+
228
+ - Updated dependencies [70a9aae]
229
+ - @ai-sdk/gateway@4.0.0-beta.27
230
+
231
+ ## 7.0.0-beta.55
232
+
233
+ ### Major Changes
234
+
235
+ - b3c9f6a: feat(ai): create new opentelemetry package (@ai-sdk/otel)
236
+
237
+ ## 7.0.0-beta.54
238
+
239
+ ### Patch Changes
240
+
241
+ - 5d0f18e: feat(ai): move opentelemetry to new package
242
+
243
+ ## 7.0.0-beta.53
244
+
245
+ ### Patch Changes
246
+
247
+ - 9b47dea: fix(ai): remove otel Tracer api from telemetry settings
248
+
249
+ ## 7.0.0-beta.52
250
+
251
+ ### Patch Changes
252
+
253
+ - b56301c: feat(ai): decouple otel from generate/streamObject
254
+
255
+ ## 7.0.0-beta.51
256
+
257
+ ### Patch Changes
258
+
259
+ - 6abd098: split `prepareToolsAndToolChoice()` into `prepareTools()` and `prepareToolChoice()`
260
+
261
+ ## 7.0.0-beta.50
262
+
263
+ ### Patch Changes
264
+
265
+ - 3debdb7: feat(ai): rename `stepCountIs` to `isStepCount`
266
+
267
+ ## 7.0.0-beta.49
268
+
269
+ ### Patch Changes
270
+
271
+ - Updated dependencies [294cbe7]
272
+ - @ai-sdk/gateway@4.0.0-beta.26
273
+
274
+ ## 7.0.0-beta.48
275
+
276
+ ### Patch Changes
277
+
278
+ - 5c4d910: feat(ai): add new `isLoopFinished` stop condition helper for unlimited steps
279
+
280
+ ## 7.0.0-beta.47
281
+
282
+ ### Patch Changes
283
+
284
+ - bc67b4f: feat(ai): add experimental callbacks for structured outputs
285
+
286
+ ## 7.0.0-beta.46
287
+
288
+ ### Patch Changes
289
+
290
+ - 31ee822: refactoring(ai): extract filterActiveTools and expose it as experimental_filterActiveTools
291
+
292
+ ## 7.0.0-beta.45
293
+
294
+ ### Patch Changes
295
+
296
+ - Updated dependencies [435895b]
297
+ - @ai-sdk/gateway@4.0.0-beta.25
298
+
299
+ ## 7.0.0-beta.44
300
+
301
+ ### Patch Changes
302
+
303
+ - Updated dependencies [d30466c]
304
+ - @ai-sdk/gateway@4.0.0-beta.24
305
+
306
+ ## 7.0.0-beta.43
307
+
308
+ ### Patch Changes
309
+
310
+ - Updated dependencies [4ec78cd]
311
+ - @ai-sdk/gateway@4.0.0-beta.23
312
+
313
+ ## 7.0.0-beta.42
314
+
315
+ ### Patch Changes
316
+
317
+ - a3fd75b: feat(ai): expose Experimental_ModelCallStreamPart type
318
+
319
+ ## 7.0.0-beta.41
320
+
321
+ ### Patch Changes
322
+
323
+ - Updated dependencies [7ceff62]
324
+ - @ai-sdk/gateway@4.0.0-beta.22
325
+
326
+ ## 7.0.0-beta.40
327
+
328
+ ### Patch Changes
329
+
330
+ - 989d3d2: fix(ai): include generated files in OTEL response attributes
331
+
332
+ ## 7.0.0-beta.39
333
+
334
+ ### Patch Changes
335
+
336
+ - f4cfccd: feat(ai): decouple otel from rerank function
337
+
338
+ ## 7.0.0-beta.38
339
+
340
+ ### Patch Changes
341
+
342
+ - 1f509d4: fix(ai): force template check on 'kind' param
343
+ - Updated dependencies [1f509d4]
344
+ - @ai-sdk/provider-utils@5.0.0-beta.7
345
+ - @ai-sdk/provider@4.0.0-beta.5
346
+ - @ai-sdk/gateway@4.0.0-beta.21
347
+
348
+ ## 7.0.0-beta.37
349
+
350
+ ### Patch Changes
351
+
352
+ - Updated dependencies [4f91b5d]
353
+ - @ai-sdk/gateway@4.0.0-beta.20
354
+
355
+ ## 7.0.0-beta.36
356
+
357
+ ### Patch Changes
358
+
359
+ - 118b953: feat(ai): decouple otel from embed functions
360
+
361
+ ## 7.0.0-beta.35
362
+
363
+ ### Patch Changes
364
+
365
+ - 99bf941: feat(ai): extract streamModelCall function for streaming text generation
366
+
367
+ ## 7.0.0-beta.34
368
+
369
+ ### Patch Changes
370
+
371
+ - Updated dependencies [72889f8]
372
+ - @ai-sdk/gateway@4.0.0-beta.19
373
+
374
+ ## 7.0.0-beta.33
375
+
376
+ ### Patch Changes
377
+
378
+ - caf1b6f: feat(ai): introduce experimental callbacks for rerank function
379
+
380
+ ## 7.0.0-beta.32
381
+
382
+ ### Major Changes
383
+
384
+ - 4b46062: refactoring(ai): extract tool callback invocation into separate function and forward chunks before callback invocation
385
+
386
+ ### Patch Changes
387
+
388
+ - Updated dependencies [165b97a]
389
+ - @ai-sdk/gateway@4.0.0-beta.18
390
+
391
+ ## 7.0.0-beta.31
392
+
393
+ ### Patch Changes
394
+
395
+ - e79e644: chore(ai/core): remove `timeout` from `CallSettings` as it was effectively unused there
396
+
397
+ ## 7.0.0-beta.30
398
+
399
+ ### Patch Changes
400
+
401
+ - f5a6f89: README updates
402
+
403
+ ## 7.0.0-beta.29
404
+
405
+ ### Patch Changes
406
+
407
+ - 877bf12: fix(ai): flatten model attributes for telemetry
408
+
409
+ ## 7.0.0-beta.28
410
+
411
+ ### Major Changes
412
+
413
+ - b9cf502: refactoring(ai): delay tool execution in stream text until model call is finished
414
+
415
+ ## 7.0.0-beta.27
416
+
417
+ ### Patch Changes
418
+
419
+ - 3887c70: feat(provider): add new top-level reasoning parameter to spec and support it in `generateText` and `streamText`
420
+ - Updated dependencies [3887c70]
421
+ - @ai-sdk/provider-utils@5.0.0-beta.6
422
+ - @ai-sdk/provider@4.0.0-beta.4
423
+ - @ai-sdk/gateway@4.0.0-beta.17
424
+
425
+ ## 7.0.0-beta.26
426
+
427
+ ### Patch Changes
428
+
429
+ - f0b0b20: feat(ai): add per-tool timeout overrides via toolTimeouts
430
+
431
+ ## 7.0.0-beta.25
432
+
433
+ ### Patch Changes
434
+
435
+ - ff9ce30: feat(ai): introduce experimental callbacks for embed function
436
+
437
+ ## 7.0.0-beta.24
438
+
439
+ ### Major Changes
440
+
441
+ - 776b617: feat(provider): adding new 'custom' content type
442
+
443
+ ### Patch Changes
444
+
445
+ - Updated dependencies [776b617]
446
+ - @ai-sdk/provider-utils@5.0.0-beta.5
447
+ - @ai-sdk/provider@4.0.0-beta.3
448
+ - @ai-sdk/gateway@4.0.0-beta.16
449
+
450
+ ## 7.0.0-beta.23
451
+
452
+ ### Patch Changes
453
+
454
+ - 80d4dde: fix(ai): include tool input on tool result for provider executed dynamic tools
455
+ - Updated dependencies [61753c3]
456
+ - @ai-sdk/provider-utils@5.0.0-beta.4
457
+ - @ai-sdk/gateway@4.0.0-beta.15
458
+
459
+ ## 7.0.0-beta.22
460
+
461
+ ### Patch Changes
462
+
463
+ - Updated dependencies [ead9144]
464
+ - @ai-sdk/gateway@4.0.0-beta.14
465
+
466
+ ## 7.0.0-beta.21
467
+
468
+ ### Patch Changes
469
+
470
+ - 34fd051: feat(ai): add toolMs to timeout configuration
471
+
472
+ ## 7.0.0-beta.20
473
+
474
+ ### Patch Changes
475
+
476
+ - Updated dependencies [2095655]
477
+ - @ai-sdk/gateway@4.0.0-beta.13
478
+
479
+ ## 7.0.0-beta.19
480
+
481
+ ### Patch Changes
482
+
483
+ - Updated dependencies [f7d4f01]
484
+ - @ai-sdk/provider-utils@5.0.0-beta.3
485
+ - @ai-sdk/provider@4.0.0-beta.2
486
+ - @ai-sdk/gateway@4.0.0-beta.12
487
+
488
+ ## 7.0.0-beta.18
489
+
490
+ ### Patch Changes
491
+
492
+ - Updated dependencies [5c2a5a2]
493
+ - @ai-sdk/provider@4.0.0-beta.1
494
+ - @ai-sdk/gateway@4.0.0-beta.11
495
+ - @ai-sdk/provider-utils@5.0.0-beta.2
496
+
497
+ ## 7.0.0-beta.17
498
+
499
+ ### Patch Changes
500
+
501
+ - Updated dependencies [4d6ab9a]
502
+ - @ai-sdk/gateway@4.0.0-beta.10
503
+
504
+ ## 7.0.0-beta.16
505
+
506
+ ### Major Changes
507
+
508
+ - 5b8c58f: feat(ai): decouple otel from core functions
509
+
510
+ ## 7.0.0-beta.15
511
+
512
+ ### Patch Changes
513
+
514
+ - Updated dependencies [980f777]
515
+ - Updated dependencies [7185ba2]
516
+ - @ai-sdk/gateway@4.0.0-beta.9
517
+
518
+ ## 7.0.0-beta.14
519
+
520
+ ### Patch Changes
521
+
522
+ - Updated dependencies [4adc485]
523
+ - @ai-sdk/gateway@4.0.0-beta.8
524
+
525
+ ## 7.0.0-beta.13
526
+
527
+ ### Patch Changes
528
+
529
+ - c26ca8d: Remove custom User-Agent header from HttpChatTransport to fix CORS preflight failures in Safari and Firefox
530
+
531
+ ## 7.0.0-beta.12
532
+
533
+ ### Patch Changes
534
+
535
+ - Updated dependencies [e046ea3]
536
+ - @ai-sdk/gateway@4.0.0-beta.7
537
+
538
+ ## 7.0.0-beta.11
539
+
540
+ ### Patch Changes
541
+
542
+ - Updated dependencies [82288b0]
543
+ - @ai-sdk/gateway@4.0.0-beta.6
544
+
545
+ ## 7.0.0-beta.10
546
+
547
+ ### Patch Changes
548
+
549
+ - Updated dependencies [aa5a583]
550
+ - @ai-sdk/gateway@4.0.0-beta.5
551
+
552
+ ## 7.0.0-beta.9
553
+
554
+ ### Patch Changes
555
+
556
+ - 1fe058b: fix(anthropic): preserve the error code returned by model
557
+
3
558
  ## 7.0.0-beta.8
4
559
 
5
560
  ### Patch Changes
@@ -926,13 +1481,13 @@
926
1481
  Before
927
1482
 
928
1483
  ```ts
929
- model.textEmbeddingModel('my-model-id');
1484
+ model.textEmbeddingModel("my-model-id");
930
1485
  ```
931
1486
 
932
1487
  After
933
1488
 
934
1489
  ```ts
935
- model.embeddingModel('my-model-id');
1490
+ model.embeddingModel("my-model-id");
936
1491
  ```
937
1492
 
938
1493
  - b67d224: Fixes an issue where `providerMetadata` and `providerExecuted` were lost when tool input validation failed
@@ -955,15 +1510,15 @@
955
1510
  This change replaces
956
1511
 
957
1512
  ```ts
958
- import { experimental_createMCPClient } from 'ai';
959
- import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
1513
+ import { experimental_createMCPClient } from "ai";
1514
+ import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
960
1515
  ```
961
1516
 
962
1517
  with
963
1518
 
964
1519
  ```ts
965
- import { experimental_createMCPClient } from '@ai-sdk/mcp';
966
- import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
1520
+ import { experimental_createMCPClient } from "@ai-sdk/mcp";
1521
+ import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
967
1522
  ```
968
1523
 
969
1524
  - 90e5bdd: chore(ai): restructure agent files
@@ -1050,7 +1605,7 @@
1050
1605
  - 81d4308: feat: provider-executed dynamic tools
1051
1606
  - e0d1ea9: fix(ai): align logic of text-end with reasoning-end
1052
1607
  - 2406576: chore(agent): rename messages property on agent ui stream functions to uiMessages
1053
- - b1aeea7: feat(ai): set default stopWhen on Agent to stepCountIs(20)
1608
+ - b1aeea7: feat(ai): set default stopWhen on Agent to isStepCount(20)
1054
1609
  - dce4e7b: chore(agent): rename system to instructions
1055
1610
  - 4ece5f9: feat(agent): add experimental_download to ToolLoopAgent
1056
1611
  - a417a34: feat(agent): introduce version property
@@ -1483,13 +2038,13 @@
1483
2038
  Before
1484
2039
 
1485
2040
  ```ts
1486
- model.textEmbeddingModel('my-model-id');
2041
+ model.textEmbeddingModel("my-model-id");
1487
2042
  ```
1488
2043
 
1489
2044
  After
1490
2045
 
1491
2046
  ```ts
1492
- model.embeddingModel('my-model-id');
2047
+ model.embeddingModel("my-model-id");
1493
2048
  ```
1494
2049
 
1495
2050
  - Updated dependencies [8d9e8ad]
@@ -1836,15 +2391,15 @@
1836
2391
  This change replaces
1837
2392
 
1838
2393
  ```ts
1839
- import { experimental_createMCPClient } from 'ai';
1840
- import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
2394
+ import { experimental_createMCPClient } from "ai";
2395
+ import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
1841
2396
  ```
1842
2397
 
1843
2398
  with
1844
2399
 
1845
2400
  ```ts
1846
- import { experimental_createMCPClient } from '@ai-sdk/mcp';
1847
- import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
2401
+ import { experimental_createMCPClient } from "@ai-sdk/mcp";
2402
+ import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
1848
2403
  ```
1849
2404
 
1850
2405
  ## 6.0.0-beta.71
@@ -2226,7 +2781,7 @@
2226
2781
 
2227
2782
  - aa0515c: feat(ai): move Agent to stable
2228
2783
  - e7d9b00: feat(agent): add optional name property to agent
2229
- - b1aeea7: feat(ai): set default stopWhen on Agent to stepCountIs(20)
2784
+ - b1aeea7: feat(ai): set default stopWhen on Agent to isStepCount(20)
2230
2785
 
2231
2786
  ## 5.1.0-beta.18
2232
2787
 
@@ -2763,7 +3318,7 @@
2763
3318
 
2764
3319
  ```js
2765
3320
  await generateImage({
2766
- model: luma.image('photon-flash-1', {
3321
+ model: luma.image("photon-flash-1", {
2767
3322
  maxImagesPerCall: 5,
2768
3323
  pollIntervalMillis: 500,
2769
3324
  }),
@@ -2776,7 +3331,7 @@
2776
3331
 
2777
3332
  ```js
2778
3333
  await generateImage({
2779
- model: luma.image('photon-flash-1'),
3334
+ model: luma.image("photon-flash-1"),
2780
3335
  prompt,
2781
3336
  n: 10,
2782
3337
  maxImagesPerCall: 5,
@@ -2796,7 +3351,7 @@
2796
3351
  - c7710a9: chore (ai): rename DataStreamToSSETransformStream to JsonToSseTransformStream
2797
3352
  - bfbfc4c: feat (ai): streamText/generateText: totalUsage contains usage for all steps. usage is for a single step.
2798
3353
  - 9ae327d: chore (ui): replace chat store concept with chat instances
2799
- - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to stepCountIs.
3354
+ - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to isStepCount.
2800
3355
  - 247ee0c: chore (ai): remove steps from tool invocation ui parts
2801
3356
  - 109c0ac: chore (ai): rename id to chatId (in post request, resume request, and useChat)
2802
3357
  - 954aa73: feat (ui): extended regenerate support
@@ -2976,10 +3531,10 @@
2976
3531
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
2977
3532
 
2978
3533
  ```js
2979
- const prompt = 'Santa Claus driving a Cadillac';
3534
+ const prompt = "Santa Claus driving a Cadillac";
2980
3535
 
2981
3536
  const { providerMetadata } = await experimental_generateImage({
2982
- model: openai.image('dall-e-3'),
3537
+ model: openai.image("dall-e-3"),
2983
3538
  prompt,
2984
3539
  });
2985
3540
 
@@ -3539,7 +4094,7 @@
3539
4094
  ### Major Changes
3540
4095
 
3541
4096
  - 72d7d72: chore (ai): stable activeTools
3542
- - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to stepCountIs.
4097
+ - 9315076: chore (ai): rename continueUntil to stopWhen. Rename maxSteps stop condition to isStepCount.
3543
4098
 
3544
4099
  ### Patch Changes
3545
4100
 
@@ -3642,7 +4197,7 @@
3642
4197
 
3643
4198
  ```js
3644
4199
  await generateImage({
3645
- model: luma.image('photon-flash-1', {
4200
+ model: luma.image("photon-flash-1", {
3646
4201
  maxImagesPerCall: 5,
3647
4202
  pollIntervalMillis: 500,
3648
4203
  }),
@@ -3655,7 +4210,7 @@
3655
4210
 
3656
4211
  ```js
3657
4212
  await generateImage({
3658
- model: luma.image('photon-flash-1'),
4213
+ model: luma.image("photon-flash-1"),
3659
4214
  prompt,
3660
4215
  n: 10,
3661
4216
  maxImagesPerCall: 5,
@@ -3753,10 +4308,10 @@
3753
4308
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
3754
4309
 
3755
4310
  ```js
3756
- const prompt = 'Santa Claus driving a Cadillac';
4311
+ const prompt = "Santa Claus driving a Cadillac";
3757
4312
 
3758
4313
  const { providerMetadata } = await experimental_generateImage({
3759
- model: openai.image('dall-e-3'),
4314
+ model: openai.image("dall-e-3"),
3760
4315
  prompt,
3761
4316
  });
3762
4317