ai 7.0.0-beta.3 → 7.0.0-beta.32

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 (101) hide show
  1. package/CHANGELOG.md +230 -20
  2. package/README.md +6 -16
  3. package/dist/index.d.mts +1075 -773
  4. package/dist/index.d.ts +1075 -773
  5. package/dist/index.js +2498 -1993
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +2347 -1836
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/internal/index.d.mts +12 -23
  10. package/dist/internal/index.d.ts +12 -23
  11. package/dist/internal/index.js +36 -3
  12. package/dist/internal/index.js.map +1 -1
  13. package/dist/internal/index.mjs +36 -3
  14. package/dist/internal/index.mjs.map +1 -1
  15. package/docs/02-foundations/02-providers-and-models.mdx +4 -2
  16. package/docs/02-foundations/06-provider-options.mdx +8 -0
  17. package/docs/03-agents/05-configuring-call-options.mdx +1 -1
  18. package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +6 -2
  19. package/docs/03-ai-sdk-core/16-mcp-tools.mdx +6 -0
  20. package/docs/03-ai-sdk-core/25-settings.mdx +18 -0
  21. package/docs/03-ai-sdk-core/26-reasoning.mdx +190 -0
  22. package/docs/03-ai-sdk-core/30-embeddings.mdx +25 -34
  23. package/docs/03-ai-sdk-core/35-image-generation.mdx +1 -2
  24. package/docs/03-ai-sdk-core/40-middleware.mdx +13 -13
  25. package/docs/03-ai-sdk-core/55-testing.mdx +10 -10
  26. package/docs/03-ai-sdk-core/65-event-listeners.mdx +216 -13
  27. package/docs/03-ai-sdk-core/index.mdx +6 -0
  28. package/docs/04-ai-sdk-ui/02-chatbot.mdx +7 -0
  29. package/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +0 -1
  30. package/docs/04-ai-sdk-ui/50-stream-protocol.mdx +26 -0
  31. package/docs/06-advanced/04-caching.mdx +10 -10
  32. package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +80 -10
  33. package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +104 -8
  34. package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +135 -0
  35. package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +139 -0
  36. package/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +1 -1
  37. package/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +1 -1
  38. package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +1 -1
  39. package/docs/07-reference/01-ai-sdk-core/13-generate-video.mdx +1 -1
  40. package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +1 -1
  41. package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +1 -1
  42. package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +7 -0
  43. package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +23 -3
  44. package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +18 -0
  45. package/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +4 -4
  46. package/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +4 -4
  47. package/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +9 -9
  48. package/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +1 -1
  49. package/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +1 -1
  50. package/docs/08-migration-guides/23-migration-guide-7-0.mdx +95 -0
  51. package/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +1 -1
  52. package/package.json +14 -11
  53. package/src/agent/agent.ts +1 -1
  54. package/src/agent/create-agent-ui-stream-response.ts +1 -1
  55. package/src/agent/create-agent-ui-stream.ts +1 -1
  56. package/src/agent/pipe-agent-ui-stream-to-response.ts +1 -1
  57. package/src/agent/tool-loop-agent-settings.ts +10 -2
  58. package/src/agent/tool-loop-agent.ts +1 -2
  59. package/src/embed/embed-events.ts +109 -0
  60. package/src/embed/embed-many.ts +99 -1
  61. package/src/embed/embed.ts +78 -1
  62. package/src/embed/index.ts +1 -0
  63. package/src/error/invalid-stream-part-error.ts +3 -3
  64. package/src/generate-object/generate-object.ts +2 -5
  65. package/src/generate-object/stream-object.ts +7 -8
  66. package/src/generate-text/content-part.ts +8 -2
  67. package/src/generate-text/{callback-events.ts → core-events.ts} +82 -24
  68. package/src/generate-text/create-execute-tools-transformation.ts +158 -0
  69. package/src/generate-text/create-stream-text-part-transform.ts +240 -0
  70. package/src/generate-text/execute-tool-call.ts +89 -96
  71. package/src/generate-text/generate-text-result.ts +2 -2
  72. package/src/generate-text/generate-text.ts +581 -697
  73. package/src/generate-text/index.ts +2 -2
  74. package/src/generate-text/invoke-tool-callbacks-from-stream.ts +81 -0
  75. package/src/generate-text/reasoning-output.ts +79 -0
  76. package/src/generate-text/reasoning.ts +5 -3
  77. package/src/generate-text/step-result.ts +33 -13
  78. package/src/generate-text/stream-text-result.ts +168 -95
  79. package/src/generate-text/stream-text.ts +706 -843
  80. package/src/generate-text/to-response-messages.ts +15 -0
  81. package/src/prompt/call-settings.ts +34 -13
  82. package/src/prompt/content-part.ts +21 -0
  83. package/src/prompt/convert-to-language-model-prompt.ts +22 -0
  84. package/src/prompt/message.ts +4 -0
  85. package/src/prompt/prepare-call-settings.ts +2 -0
  86. package/src/registry/provider-registry.ts +1 -2
  87. package/src/telemetry/get-base-telemetry-attributes.ts +5 -13
  88. package/src/telemetry/get-global-telemetry-integration.ts +44 -19
  89. package/src/telemetry/open-telemetry-integration.ts +537 -0
  90. package/src/telemetry/telemetry-integration-registry.ts +5 -0
  91. package/src/telemetry/telemetry-integration.ts +77 -1
  92. package/src/telemetry/telemetry-settings.ts +4 -2
  93. package/src/ui/convert-to-model-messages.ts +29 -2
  94. package/src/ui/direct-chat-transport.ts +1 -2
  95. package/src/ui/http-chat-transport.ts +8 -19
  96. package/src/ui/index.ts +4 -0
  97. package/src/ui/process-ui-message-stream.ts +73 -8
  98. package/src/ui/ui-messages.ts +66 -0
  99. package/src/ui/validate-ui-messages.ts +15 -0
  100. package/src/ui-message-stream/ui-message-chunks.ts +26 -0
  101. package/src/generate-text/run-tools-transformation.ts +0 -442
package/CHANGELOG.md CHANGED
@@ -1,5 +1,215 @@
1
1
  # ai
2
2
 
3
+ ## 7.0.0-beta.32
4
+
5
+ ### Major Changes
6
+
7
+ - 4b46062: refactoring(ai): extract tool callback invocation into separate function and forward chunks before callback invocation
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [165b97a]
12
+ - @ai-sdk/gateway@4.0.0-beta.18
13
+
14
+ ## 7.0.0-beta.31
15
+
16
+ ### Patch Changes
17
+
18
+ - e79e644: chore(ai/core): remove `timeout` from `CallSettings` as it was effectively unused there
19
+
20
+ ## 7.0.0-beta.30
21
+
22
+ ### Patch Changes
23
+
24
+ - f5a6f89: README updates
25
+
26
+ ## 7.0.0-beta.29
27
+
28
+ ### Patch Changes
29
+
30
+ - 877bf12: fix(ai): flatten model attributes for telemetry
31
+
32
+ ## 7.0.0-beta.28
33
+
34
+ ### Major Changes
35
+
36
+ - b9cf502: refactoring(ai): delay tool execution in stream text until model call is finished
37
+
38
+ ## 7.0.0-beta.27
39
+
40
+ ### Patch Changes
41
+
42
+ - 3887c70: feat(provider): add new top-level reasoning parameter to spec and support it in `generateText` and `streamText`
43
+ - Updated dependencies [3887c70]
44
+ - @ai-sdk/provider-utils@5.0.0-beta.6
45
+ - @ai-sdk/provider@4.0.0-beta.4
46
+ - @ai-sdk/gateway@4.0.0-beta.17
47
+
48
+ ## 7.0.0-beta.26
49
+
50
+ ### Patch Changes
51
+
52
+ - f0b0b20: feat(ai): add per-tool timeout overrides via toolTimeouts
53
+
54
+ ## 7.0.0-beta.25
55
+
56
+ ### Patch Changes
57
+
58
+ - ff9ce30: feat(ai): introduce experimental callbacks for embed function
59
+
60
+ ## 7.0.0-beta.24
61
+
62
+ ### Major Changes
63
+
64
+ - 776b617: feat(provider): adding new 'custom' content type
65
+
66
+ ### Patch Changes
67
+
68
+ - Updated dependencies [776b617]
69
+ - @ai-sdk/provider-utils@5.0.0-beta.5
70
+ - @ai-sdk/provider@4.0.0-beta.3
71
+ - @ai-sdk/gateway@4.0.0-beta.16
72
+
73
+ ## 7.0.0-beta.23
74
+
75
+ ### Patch Changes
76
+
77
+ - 80d4dde: fix(ai): include tool input on tool result for provider executed dynamic tools
78
+ - Updated dependencies [61753c3]
79
+ - @ai-sdk/provider-utils@5.0.0-beta.4
80
+ - @ai-sdk/gateway@4.0.0-beta.15
81
+
82
+ ## 7.0.0-beta.22
83
+
84
+ ### Patch Changes
85
+
86
+ - Updated dependencies [ead9144]
87
+ - @ai-sdk/gateway@4.0.0-beta.14
88
+
89
+ ## 7.0.0-beta.21
90
+
91
+ ### Patch Changes
92
+
93
+ - 34fd051: feat(ai): add toolMs to timeout configuration
94
+
95
+ ## 7.0.0-beta.20
96
+
97
+ ### Patch Changes
98
+
99
+ - Updated dependencies [2095655]
100
+ - @ai-sdk/gateway@4.0.0-beta.13
101
+
102
+ ## 7.0.0-beta.19
103
+
104
+ ### Patch Changes
105
+
106
+ - Updated dependencies [f7d4f01]
107
+ - @ai-sdk/provider-utils@5.0.0-beta.3
108
+ - @ai-sdk/provider@4.0.0-beta.2
109
+ - @ai-sdk/gateway@4.0.0-beta.12
110
+
111
+ ## 7.0.0-beta.18
112
+
113
+ ### Patch Changes
114
+
115
+ - Updated dependencies [5c2a5a2]
116
+ - @ai-sdk/provider@4.0.0-beta.1
117
+ - @ai-sdk/gateway@4.0.0-beta.11
118
+ - @ai-sdk/provider-utils@5.0.0-beta.2
119
+
120
+ ## 7.0.0-beta.17
121
+
122
+ ### Patch Changes
123
+
124
+ - Updated dependencies [4d6ab9a]
125
+ - @ai-sdk/gateway@4.0.0-beta.10
126
+
127
+ ## 7.0.0-beta.16
128
+
129
+ ### Major Changes
130
+
131
+ - 5b8c58f: feat(ai): decouple otel from core functions
132
+
133
+ ## 7.0.0-beta.15
134
+
135
+ ### Patch Changes
136
+
137
+ - Updated dependencies [980f777]
138
+ - Updated dependencies [7185ba2]
139
+ - @ai-sdk/gateway@4.0.0-beta.9
140
+
141
+ ## 7.0.0-beta.14
142
+
143
+ ### Patch Changes
144
+
145
+ - Updated dependencies [4adc485]
146
+ - @ai-sdk/gateway@4.0.0-beta.8
147
+
148
+ ## 7.0.0-beta.13
149
+
150
+ ### Patch Changes
151
+
152
+ - c26ca8d: Remove custom User-Agent header from HttpChatTransport to fix CORS preflight failures in Safari and Firefox
153
+
154
+ ## 7.0.0-beta.12
155
+
156
+ ### Patch Changes
157
+
158
+ - Updated dependencies [e046ea3]
159
+ - @ai-sdk/gateway@4.0.0-beta.7
160
+
161
+ ## 7.0.0-beta.11
162
+
163
+ ### Patch Changes
164
+
165
+ - Updated dependencies [82288b0]
166
+ - @ai-sdk/gateway@4.0.0-beta.6
167
+
168
+ ## 7.0.0-beta.10
169
+
170
+ ### Patch Changes
171
+
172
+ - Updated dependencies [aa5a583]
173
+ - @ai-sdk/gateway@4.0.0-beta.5
174
+
175
+ ## 7.0.0-beta.9
176
+
177
+ ### Patch Changes
178
+
179
+ - 1fe058b: fix(anthropic): preserve the error code returned by model
180
+
181
+ ## 7.0.0-beta.8
182
+
183
+ ### Patch Changes
184
+
185
+ - Updated dependencies [f32d84a]
186
+ - @ai-sdk/gateway@4.0.0-beta.4
187
+
188
+ ## 7.0.0-beta.7
189
+
190
+ ### Patch Changes
191
+
192
+ - 210ed3d: feat(ai): pass result provider metadata across the stream
193
+
194
+ ## 7.0.0-beta.6
195
+
196
+ ### Patch Changes
197
+
198
+ - Updated dependencies [c949e25]
199
+ - @ai-sdk/gateway@4.0.0-beta.3
200
+
201
+ ## 7.0.0-beta.5
202
+
203
+ ### Patch Changes
204
+
205
+ - ebd4da2: feat(ai): add missing usage attributes
206
+
207
+ ## 7.0.0-beta.4
208
+
209
+ ### Patch Changes
210
+
211
+ - 5ceed7d: fix(ai): doStream should reflect transformed values
212
+
3
213
  ## 7.0.0-beta.3
4
214
 
5
215
  ### Patch Changes
@@ -894,13 +1104,13 @@
894
1104
  Before
895
1105
 
896
1106
  ```ts
897
- model.textEmbeddingModel('my-model-id');
1107
+ model.textEmbeddingModel("my-model-id");
898
1108
  ```
899
1109
 
900
1110
  After
901
1111
 
902
1112
  ```ts
903
- model.embeddingModel('my-model-id');
1113
+ model.embeddingModel("my-model-id");
904
1114
  ```
905
1115
 
906
1116
  - b67d224: Fixes an issue where `providerMetadata` and `providerExecuted` were lost when tool input validation failed
@@ -923,15 +1133,15 @@
923
1133
  This change replaces
924
1134
 
925
1135
  ```ts
926
- import { experimental_createMCPClient } from 'ai';
927
- import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
1136
+ import { experimental_createMCPClient } from "ai";
1137
+ import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
928
1138
  ```
929
1139
 
930
1140
  with
931
1141
 
932
1142
  ```ts
933
- import { experimental_createMCPClient } from '@ai-sdk/mcp';
934
- import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
1143
+ import { experimental_createMCPClient } from "@ai-sdk/mcp";
1144
+ import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
935
1145
  ```
936
1146
 
937
1147
  - 90e5bdd: chore(ai): restructure agent files
@@ -1451,13 +1661,13 @@
1451
1661
  Before
1452
1662
 
1453
1663
  ```ts
1454
- model.textEmbeddingModel('my-model-id');
1664
+ model.textEmbeddingModel("my-model-id");
1455
1665
  ```
1456
1666
 
1457
1667
  After
1458
1668
 
1459
1669
  ```ts
1460
- model.embeddingModel('my-model-id');
1670
+ model.embeddingModel("my-model-id");
1461
1671
  ```
1462
1672
 
1463
1673
  - Updated dependencies [8d9e8ad]
@@ -1804,15 +2014,15 @@
1804
2014
  This change replaces
1805
2015
 
1806
2016
  ```ts
1807
- import { experimental_createMCPClient } from 'ai';
1808
- import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
2017
+ import { experimental_createMCPClient } from "ai";
2018
+ import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
1809
2019
  ```
1810
2020
 
1811
2021
  with
1812
2022
 
1813
2023
  ```ts
1814
- import { experimental_createMCPClient } from '@ai-sdk/mcp';
1815
- import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
2024
+ import { experimental_createMCPClient } from "@ai-sdk/mcp";
2025
+ import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
1816
2026
  ```
1817
2027
 
1818
2028
  ## 6.0.0-beta.71
@@ -2731,7 +2941,7 @@
2731
2941
 
2732
2942
  ```js
2733
2943
  await generateImage({
2734
- model: luma.image('photon-flash-1', {
2944
+ model: luma.image("photon-flash-1", {
2735
2945
  maxImagesPerCall: 5,
2736
2946
  pollIntervalMillis: 500,
2737
2947
  }),
@@ -2744,7 +2954,7 @@
2744
2954
 
2745
2955
  ```js
2746
2956
  await generateImage({
2747
- model: luma.image('photon-flash-1'),
2957
+ model: luma.image("photon-flash-1"),
2748
2958
  prompt,
2749
2959
  n: 10,
2750
2960
  maxImagesPerCall: 5,
@@ -2944,10 +3154,10 @@
2944
3154
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
2945
3155
 
2946
3156
  ```js
2947
- const prompt = 'Santa Claus driving a Cadillac';
3157
+ const prompt = "Santa Claus driving a Cadillac";
2948
3158
 
2949
3159
  const { providerMetadata } = await experimental_generateImage({
2950
- model: openai.image('dall-e-3'),
3160
+ model: openai.image("dall-e-3"),
2951
3161
  prompt,
2952
3162
  });
2953
3163
 
@@ -3610,7 +3820,7 @@
3610
3820
 
3611
3821
  ```js
3612
3822
  await generateImage({
3613
- model: luma.image('photon-flash-1', {
3823
+ model: luma.image("photon-flash-1", {
3614
3824
  maxImagesPerCall: 5,
3615
3825
  pollIntervalMillis: 500,
3616
3826
  }),
@@ -3623,7 +3833,7 @@
3623
3833
 
3624
3834
  ```js
3625
3835
  await generateImage({
3626
- model: luma.image('photon-flash-1'),
3836
+ model: luma.image("photon-flash-1"),
3627
3837
  prompt,
3628
3838
  n: 10,
3629
3839
  maxImagesPerCall: 5,
@@ -3721,10 +3931,10 @@
3721
3931
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
3722
3932
 
3723
3933
  ```js
3724
- const prompt = 'Santa Claus driving a Cadillac';
3934
+ const prompt = "Santa Claus driving a Cadillac";
3725
3935
 
3726
3936
  const { providerMetadata } = await experimental_generateImage({
3727
- model: openai.image('dall-e-3'),
3937
+ model: openai.image("dall-e-3"),
3728
3938
  prompt,
3729
3939
  });
3730
3940
 
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,