ai 7.0.0-beta.3 → 7.0.0-beta.30

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 (97) hide show
  1. package/CHANGELOG.md +213 -20
  2. package/README.md +6 -16
  3. package/dist/index.d.mts +1053 -765
  4. package/dist/index.d.ts +1053 -765
  5. package/dist/index.js +2456 -1980
  6. package/dist/index.js.map +1 -1
  7. package/dist/index.mjs +2320 -1838
  8. package/dist/index.mjs.map +1 -1
  9. package/dist/internal/index.d.mts +17 -7
  10. package/dist/internal/index.d.ts +17 -7
  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-ai-sdk-core/16-mcp-tools.mdx +6 -0
  18. package/docs/03-ai-sdk-core/25-settings.mdx +18 -0
  19. package/docs/03-ai-sdk-core/26-reasoning.mdx +190 -0
  20. package/docs/03-ai-sdk-core/30-embeddings.mdx +17 -16
  21. package/docs/03-ai-sdk-core/35-image-generation.mdx +1 -2
  22. package/docs/03-ai-sdk-core/40-middleware.mdx +13 -13
  23. package/docs/03-ai-sdk-core/55-testing.mdx +10 -10
  24. package/docs/03-ai-sdk-core/65-event-listeners.mdx +216 -13
  25. package/docs/03-ai-sdk-core/index.mdx +6 -0
  26. package/docs/04-ai-sdk-ui/02-chatbot.mdx +7 -0
  27. package/docs/04-ai-sdk-ui/50-stream-protocol.mdx +26 -0
  28. package/docs/06-advanced/04-caching.mdx +10 -10
  29. package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +80 -10
  30. package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +104 -8
  31. package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +135 -0
  32. package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +139 -0
  33. package/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +1 -1
  34. package/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +1 -1
  35. package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +1 -1
  36. package/docs/07-reference/01-ai-sdk-core/13-generate-video.mdx +1 -1
  37. package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +1 -1
  38. package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +1 -1
  39. package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +7 -0
  40. package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +23 -3
  41. package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +18 -0
  42. package/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +4 -4
  43. package/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +4 -4
  44. package/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +9 -9
  45. package/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +1 -1
  46. package/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +1 -1
  47. package/docs/08-migration-guides/23-migration-guide-7-0.mdx +95 -0
  48. package/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +1 -1
  49. package/package.json +14 -11
  50. package/src/agent/agent.ts +1 -1
  51. package/src/agent/create-agent-ui-stream-response.ts +1 -1
  52. package/src/agent/create-agent-ui-stream.ts +1 -1
  53. package/src/agent/pipe-agent-ui-stream-to-response.ts +1 -1
  54. package/src/agent/tool-loop-agent-settings.ts +2 -2
  55. package/src/agent/tool-loop-agent.ts +1 -2
  56. package/src/embed/embed-events.ts +109 -0
  57. package/src/embed/embed-many.ts +99 -1
  58. package/src/embed/embed.ts +78 -1
  59. package/src/embed/index.ts +1 -0
  60. package/src/error/invalid-stream-part-error.ts +3 -3
  61. package/src/generate-object/generate-object.ts +3 -6
  62. package/src/generate-object/stream-object.ts +9 -10
  63. package/src/generate-text/content-part.ts +8 -2
  64. package/src/generate-text/{callback-events.ts → core-events.ts} +82 -24
  65. package/src/generate-text/create-execute-tools-transformation.ts +168 -0
  66. package/src/generate-text/create-stream-text-part-transform.ts +229 -0
  67. package/src/generate-text/execute-tool-call.ts +89 -96
  68. package/src/generate-text/generate-text-result.ts +2 -2
  69. package/src/generate-text/generate-text.ts +574 -698
  70. package/src/generate-text/index.ts +2 -2
  71. package/src/generate-text/reasoning-output.ts +79 -0
  72. package/src/generate-text/reasoning.ts +5 -3
  73. package/src/generate-text/step-result.ts +33 -13
  74. package/src/generate-text/stream-text-result.ts +168 -95
  75. package/src/generate-text/stream-text.ts +741 -855
  76. package/src/generate-text/to-response-messages.ts +15 -0
  77. package/src/prompt/call-settings.ts +36 -7
  78. package/src/prompt/content-part.ts +21 -0
  79. package/src/prompt/convert-to-language-model-prompt.ts +22 -0
  80. package/src/prompt/message.ts +4 -0
  81. package/src/prompt/prepare-call-settings.ts +4 -2
  82. package/src/registry/provider-registry.ts +1 -2
  83. package/src/telemetry/get-base-telemetry-attributes.ts +4 -2
  84. package/src/telemetry/get-global-telemetry-integration.ts +44 -19
  85. package/src/telemetry/open-telemetry-integration.ts +537 -0
  86. package/src/telemetry/telemetry-integration-registry.ts +5 -0
  87. package/src/telemetry/telemetry-integration.ts +77 -1
  88. package/src/telemetry/telemetry-settings.ts +4 -2
  89. package/src/ui/convert-to-model-messages.ts +29 -2
  90. package/src/ui/direct-chat-transport.ts +1 -2
  91. package/src/ui/http-chat-transport.ts +8 -19
  92. package/src/ui/index.ts +4 -0
  93. package/src/ui/process-ui-message-stream.ts +73 -8
  94. package/src/ui/ui-messages.ts +66 -0
  95. package/src/ui/validate-ui-messages.ts +15 -0
  96. package/src/ui-message-stream/ui-message-chunks.ts +26 -0
  97. package/src/generate-text/run-tools-transformation.ts +0 -442
package/CHANGELOG.md CHANGED
@@ -1,5 +1,198 @@
1
1
  # ai
2
2
 
3
+ ## 7.0.0-beta.30
4
+
5
+ ### Patch Changes
6
+
7
+ - f5a6f89: README updates
8
+
9
+ ## 7.0.0-beta.29
10
+
11
+ ### Patch Changes
12
+
13
+ - 877bf12: fix(ai): flatten model attributes for telemetry
14
+
15
+ ## 7.0.0-beta.28
16
+
17
+ ### Major Changes
18
+
19
+ - b9cf502: refactoring(ai): delay tool execution in stream text until model call is finished
20
+
21
+ ## 7.0.0-beta.27
22
+
23
+ ### Patch Changes
24
+
25
+ - 3887c70: feat(provider): add new top-level reasoning parameter to spec and support it in `generateText` and `streamText`
26
+ - Updated dependencies [3887c70]
27
+ - @ai-sdk/provider-utils@5.0.0-beta.6
28
+ - @ai-sdk/provider@4.0.0-beta.4
29
+ - @ai-sdk/gateway@4.0.0-beta.17
30
+
31
+ ## 7.0.0-beta.26
32
+
33
+ ### Patch Changes
34
+
35
+ - f0b0b20: feat(ai): add per-tool timeout overrides via toolTimeouts
36
+
37
+ ## 7.0.0-beta.25
38
+
39
+ ### Patch Changes
40
+
41
+ - ff9ce30: feat(ai): introduce experimental callbacks for embed function
42
+
43
+ ## 7.0.0-beta.24
44
+
45
+ ### Major Changes
46
+
47
+ - 776b617: feat(provider): adding new 'custom' content type
48
+
49
+ ### Patch Changes
50
+
51
+ - Updated dependencies [776b617]
52
+ - @ai-sdk/provider-utils@5.0.0-beta.5
53
+ - @ai-sdk/provider@4.0.0-beta.3
54
+ - @ai-sdk/gateway@4.0.0-beta.16
55
+
56
+ ## 7.0.0-beta.23
57
+
58
+ ### Patch Changes
59
+
60
+ - 80d4dde: fix(ai): include tool input on tool result for provider executed dynamic tools
61
+ - Updated dependencies [61753c3]
62
+ - @ai-sdk/provider-utils@5.0.0-beta.4
63
+ - @ai-sdk/gateway@4.0.0-beta.15
64
+
65
+ ## 7.0.0-beta.22
66
+
67
+ ### Patch Changes
68
+
69
+ - Updated dependencies [ead9144]
70
+ - @ai-sdk/gateway@4.0.0-beta.14
71
+
72
+ ## 7.0.0-beta.21
73
+
74
+ ### Patch Changes
75
+
76
+ - 34fd051: feat(ai): add toolMs to timeout configuration
77
+
78
+ ## 7.0.0-beta.20
79
+
80
+ ### Patch Changes
81
+
82
+ - Updated dependencies [2095655]
83
+ - @ai-sdk/gateway@4.0.0-beta.13
84
+
85
+ ## 7.0.0-beta.19
86
+
87
+ ### Patch Changes
88
+
89
+ - Updated dependencies [f7d4f01]
90
+ - @ai-sdk/provider-utils@5.0.0-beta.3
91
+ - @ai-sdk/provider@4.0.0-beta.2
92
+ - @ai-sdk/gateway@4.0.0-beta.12
93
+
94
+ ## 7.0.0-beta.18
95
+
96
+ ### Patch Changes
97
+
98
+ - Updated dependencies [5c2a5a2]
99
+ - @ai-sdk/provider@4.0.0-beta.1
100
+ - @ai-sdk/gateway@4.0.0-beta.11
101
+ - @ai-sdk/provider-utils@5.0.0-beta.2
102
+
103
+ ## 7.0.0-beta.17
104
+
105
+ ### Patch Changes
106
+
107
+ - Updated dependencies [4d6ab9a]
108
+ - @ai-sdk/gateway@4.0.0-beta.10
109
+
110
+ ## 7.0.0-beta.16
111
+
112
+ ### Major Changes
113
+
114
+ - 5b8c58f: feat(ai): decouple otel from core functions
115
+
116
+ ## 7.0.0-beta.15
117
+
118
+ ### Patch Changes
119
+
120
+ - Updated dependencies [980f777]
121
+ - Updated dependencies [7185ba2]
122
+ - @ai-sdk/gateway@4.0.0-beta.9
123
+
124
+ ## 7.0.0-beta.14
125
+
126
+ ### Patch Changes
127
+
128
+ - Updated dependencies [4adc485]
129
+ - @ai-sdk/gateway@4.0.0-beta.8
130
+
131
+ ## 7.0.0-beta.13
132
+
133
+ ### Patch Changes
134
+
135
+ - c26ca8d: Remove custom User-Agent header from HttpChatTransport to fix CORS preflight failures in Safari and Firefox
136
+
137
+ ## 7.0.0-beta.12
138
+
139
+ ### Patch Changes
140
+
141
+ - Updated dependencies [e046ea3]
142
+ - @ai-sdk/gateway@4.0.0-beta.7
143
+
144
+ ## 7.0.0-beta.11
145
+
146
+ ### Patch Changes
147
+
148
+ - Updated dependencies [82288b0]
149
+ - @ai-sdk/gateway@4.0.0-beta.6
150
+
151
+ ## 7.0.0-beta.10
152
+
153
+ ### Patch Changes
154
+
155
+ - Updated dependencies [aa5a583]
156
+ - @ai-sdk/gateway@4.0.0-beta.5
157
+
158
+ ## 7.0.0-beta.9
159
+
160
+ ### Patch Changes
161
+
162
+ - 1fe058b: fix(anthropic): preserve the error code returned by model
163
+
164
+ ## 7.0.0-beta.8
165
+
166
+ ### Patch Changes
167
+
168
+ - Updated dependencies [f32d84a]
169
+ - @ai-sdk/gateway@4.0.0-beta.4
170
+
171
+ ## 7.0.0-beta.7
172
+
173
+ ### Patch Changes
174
+
175
+ - 210ed3d: feat(ai): pass result provider metadata across the stream
176
+
177
+ ## 7.0.0-beta.6
178
+
179
+ ### Patch Changes
180
+
181
+ - Updated dependencies [c949e25]
182
+ - @ai-sdk/gateway@4.0.0-beta.3
183
+
184
+ ## 7.0.0-beta.5
185
+
186
+ ### Patch Changes
187
+
188
+ - ebd4da2: feat(ai): add missing usage attributes
189
+
190
+ ## 7.0.0-beta.4
191
+
192
+ ### Patch Changes
193
+
194
+ - 5ceed7d: fix(ai): doStream should reflect transformed values
195
+
3
196
  ## 7.0.0-beta.3
4
197
 
5
198
  ### Patch Changes
@@ -894,13 +1087,13 @@
894
1087
  Before
895
1088
 
896
1089
  ```ts
897
- model.textEmbeddingModel('my-model-id');
1090
+ model.textEmbeddingModel("my-model-id");
898
1091
  ```
899
1092
 
900
1093
  After
901
1094
 
902
1095
  ```ts
903
- model.embeddingModel('my-model-id');
1096
+ model.embeddingModel("my-model-id");
904
1097
  ```
905
1098
 
906
1099
  - b67d224: Fixes an issue where `providerMetadata` and `providerExecuted` were lost when tool input validation failed
@@ -923,15 +1116,15 @@
923
1116
  This change replaces
924
1117
 
925
1118
  ```ts
926
- import { experimental_createMCPClient } from 'ai';
927
- import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
1119
+ import { experimental_createMCPClient } from "ai";
1120
+ import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
928
1121
  ```
929
1122
 
930
1123
  with
931
1124
 
932
1125
  ```ts
933
- import { experimental_createMCPClient } from '@ai-sdk/mcp';
934
- import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
1126
+ import { experimental_createMCPClient } from "@ai-sdk/mcp";
1127
+ import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
935
1128
  ```
936
1129
 
937
1130
  - 90e5bdd: chore(ai): restructure agent files
@@ -1451,13 +1644,13 @@
1451
1644
  Before
1452
1645
 
1453
1646
  ```ts
1454
- model.textEmbeddingModel('my-model-id');
1647
+ model.textEmbeddingModel("my-model-id");
1455
1648
  ```
1456
1649
 
1457
1650
  After
1458
1651
 
1459
1652
  ```ts
1460
- model.embeddingModel('my-model-id');
1653
+ model.embeddingModel("my-model-id");
1461
1654
  ```
1462
1655
 
1463
1656
  - Updated dependencies [8d9e8ad]
@@ -1804,15 +1997,15 @@
1804
1997
  This change replaces
1805
1998
 
1806
1999
  ```ts
1807
- import { experimental_createMCPClient } from 'ai';
1808
- import { Experimental_StdioMCPTransport } from 'ai/mcp-stdio';
2000
+ import { experimental_createMCPClient } from "ai";
2001
+ import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
1809
2002
  ```
1810
2003
 
1811
2004
  with
1812
2005
 
1813
2006
  ```ts
1814
- import { experimental_createMCPClient } from '@ai-sdk/mcp';
1815
- import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
2007
+ import { experimental_createMCPClient } from "@ai-sdk/mcp";
2008
+ import { Experimental_StdioMCPTransport } from "@ai-sdk/mcp/mcp-stdio";
1816
2009
  ```
1817
2010
 
1818
2011
  ## 6.0.0-beta.71
@@ -2731,7 +2924,7 @@
2731
2924
 
2732
2925
  ```js
2733
2926
  await generateImage({
2734
- model: luma.image('photon-flash-1', {
2927
+ model: luma.image("photon-flash-1", {
2735
2928
  maxImagesPerCall: 5,
2736
2929
  pollIntervalMillis: 500,
2737
2930
  }),
@@ -2744,7 +2937,7 @@
2744
2937
 
2745
2938
  ```js
2746
2939
  await generateImage({
2747
- model: luma.image('photon-flash-1'),
2940
+ model: luma.image("photon-flash-1"),
2748
2941
  prompt,
2749
2942
  n: 10,
2750
2943
  maxImagesPerCall: 5,
@@ -2944,10 +3137,10 @@
2944
3137
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
2945
3138
 
2946
3139
  ```js
2947
- const prompt = 'Santa Claus driving a Cadillac';
3140
+ const prompt = "Santa Claus driving a Cadillac";
2948
3141
 
2949
3142
  const { providerMetadata } = await experimental_generateImage({
2950
- model: openai.image('dall-e-3'),
3143
+ model: openai.image("dall-e-3"),
2951
3144
  prompt,
2952
3145
  });
2953
3146
 
@@ -3610,7 +3803,7 @@
3610
3803
 
3611
3804
  ```js
3612
3805
  await generateImage({
3613
- model: luma.image('photon-flash-1', {
3806
+ model: luma.image("photon-flash-1", {
3614
3807
  maxImagesPerCall: 5,
3615
3808
  pollIntervalMillis: 500,
3616
3809
  }),
@@ -3623,7 +3816,7 @@
3623
3816
 
3624
3817
  ```js
3625
3818
  await generateImage({
3626
- model: luma.image('photon-flash-1'),
3819
+ model: luma.image("photon-flash-1"),
3627
3820
  prompt,
3628
3821
  n: 10,
3629
3822
  maxImagesPerCall: 5,
@@ -3721,10 +3914,10 @@
3721
3914
  The `experimental_generateImage` method from the `ai` package now returnes revised prompts for OpenAI's image models.
3722
3915
 
3723
3916
  ```js
3724
- const prompt = 'Santa Claus driving a Cadillac';
3917
+ const prompt = "Santa Claus driving a Cadillac";
3725
3918
 
3726
3919
  const { providerMetadata } = await experimental_generateImage({
3727
- model: openai.image('dall-e-3'),
3920
+ model: openai.image("dall-e-3"),
3728
3921
  prompt,
3729
3922
  });
3730
3923
 
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,