@depup/ai-sdk__openai 3.0.52-depup.0 → 4.0.17-depup.0
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.
- package/CHANGELOG.md +946 -30
- package/README.md +2 -2
- package/changes.json +1 -1
- package/dist/index.d.ts +490 -85
- package/dist/index.js +4147 -1879
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +581 -71
- package/dist/internal/index.js +3490 -1886
- package/dist/internal/index.js.map +1 -1
- package/docs/03-openai.mdx +528 -165
- package/package.json +16 -16
- package/src/chat/convert-openai-chat-usage.ts +7 -4
- package/src/chat/convert-to-openai-chat-messages.ts +212 -77
- package/src/chat/map-openai-finish-reason.ts +2 -2
- package/src/chat/openai-chat-api.ts +8 -2
- package/src/chat/{openai-chat-options.ts → openai-chat-language-model-options.ts} +27 -3
- package/src/chat/openai-chat-language-model.ts +106 -171
- package/src/chat/openai-chat-prepare-tools.ts +7 -7
- package/src/chat/openai-chat-prompt.ts +8 -4
- package/src/completion/convert-openai-completion-usage.ts +2 -2
- package/src/completion/convert-to-openai-completion-prompt.ts +2 -3
- package/src/completion/map-openai-finish-reason.ts +2 -2
- package/src/completion/openai-completion-api.ts +5 -2
- package/src/completion/{openai-completion-options.ts → openai-completion-language-model-options.ts} +5 -1
- package/src/completion/openai-completion-language-model.ts +73 -37
- package/src/embedding/{openai-embedding-options.ts → openai-embedding-model-options.ts} +5 -1
- package/src/embedding/openai-embedding-model.ts +26 -9
- package/src/files/openai-files-api.ts +17 -0
- package/src/files/openai-files-options.ts +22 -0
- package/src/files/openai-files.ts +100 -0
- package/src/image/openai-image-model-options.ts +123 -0
- package/src/image/openai-image-model.ts +71 -92
- package/src/index.ts +19 -6
- package/src/internal/index.ts +7 -6
- package/src/openai-config.ts +11 -7
- package/src/openai-language-model-capabilities.ts +4 -2
- package/src/openai-provider.ts +116 -34
- package/src/openai-stream-error.ts +181 -0
- package/src/openai-tools.ts +11 -1
- package/src/realtime/index.ts +2 -0
- package/src/realtime/openai-realtime-event-mapper.ts +436 -0
- package/src/realtime/openai-realtime-model-options.ts +3 -0
- package/src/realtime/openai-realtime-model.ts +111 -0
- package/src/responses/convert-openai-responses-usage.ts +10 -4
- package/src/responses/convert-to-openai-responses-input.ts +468 -107
- package/src/responses/map-openai-responses-finish-reason.ts +2 -2
- package/src/responses/openai-responses-api.ts +276 -54
- package/src/responses/{openai-responses-options.ts → openai-responses-language-model-options.ts} +89 -9
- package/src/responses/openai-responses-language-model.ts +469 -107
- package/src/responses/openai-responses-prepare-tools.ts +120 -26
- package/src/responses/openai-responses-provider-metadata.ts +13 -2
- package/src/skills/openai-skills-api.ts +31 -0
- package/src/skills/openai-skills.ts +83 -0
- package/src/speech/{openai-speech-options.ts → openai-speech-model-options.ts} +5 -1
- package/src/speech/openai-speech-model.ts +29 -13
- package/src/tool/apply-patch.ts +33 -32
- package/src/tool/code-interpreter.ts +40 -41
- package/src/tool/computer.ts +147 -0
- package/src/tool/custom.ts +2 -8
- package/src/tool/file-search.ts +3 -3
- package/src/tool/image-generation.ts +2 -2
- package/src/tool/local-shell.ts +2 -2
- package/src/tool/mcp.ts +3 -3
- package/src/tool/shell.ts +9 -4
- package/src/tool/tool-search.ts +4 -4
- package/src/tool/web-search-preview.ts +2 -2
- package/src/tool/web-search.ts +10 -2
- package/src/transcription/{openai-transcription-options.ts → openai-transcription-model-options.ts} +25 -1
- package/src/transcription/openai-transcription-model.ts +385 -20
- package/dist/index.d.mts +0 -1193
- package/dist/index.mjs +0 -6846
- package/dist/index.mjs.map +0 -1
- package/dist/internal/index.d.mts +0 -1187
- package/dist/internal/index.mjs +0 -6648
- package/dist/internal/index.mjs.map +0 -1
- package/src/image/openai-image-options.ts +0 -31
package/CHANGELOG.md
CHANGED
|
@@ -1,78 +1,996 @@
|
|
|
1
1
|
# @ai-sdk/openai
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## 4.0.17
|
|
4
4
|
|
|
5
5
|
### Patch Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- Updated dependencies [02ffdcb]
|
|
8
|
+
- Updated dependencies [76cb673]
|
|
9
|
+
- @ai-sdk/provider-utils@5.0.12
|
|
8
10
|
|
|
9
|
-
##
|
|
11
|
+
## 4.0.16
|
|
10
12
|
|
|
11
13
|
### Patch Changes
|
|
12
14
|
|
|
13
|
-
-
|
|
14
|
-
- @ai-sdk/provider-utils@4.0.23
|
|
15
|
+
- 75f86f4: fix(provider/openai, provider/open-responses): throw a descriptive error when the Responses API returns a 200 with no `output`
|
|
15
16
|
|
|
16
|
-
|
|
17
|
+
A successful (200) Responses body missing the `output` array previously threw an opaque `output is not iterable` TypeError from `doGenerate`. Both providers now surface a clear `APICallError` ("Responses API returned no output …"), including the incomplete-details reason (and status, for open-responses) when present. When the body includes a `response.error`, its message is surfaced first so upstream error details aren't masked by the generic fallback. This makes malformed/incomplete upstream responses actionable instead of a cryptic crash.
|
|
18
|
+
|
|
19
|
+
- Updated dependencies [cd06458]
|
|
20
|
+
- @ai-sdk/provider-utils@5.0.11
|
|
21
|
+
|
|
22
|
+
## 4.0.15
|
|
23
|
+
|
|
24
|
+
### Patch Changes
|
|
25
|
+
|
|
26
|
+
- 0063c2d: Add the client-executed OpenAI Responses API computer tool with batched actions and screenshot outputs.
|
|
27
|
+
|
|
28
|
+
## 4.0.14
|
|
29
|
+
|
|
30
|
+
### Patch Changes
|
|
31
|
+
|
|
32
|
+
- Updated dependencies [31c7be8]
|
|
33
|
+
- @ai-sdk/provider-utils@5.0.10
|
|
34
|
+
|
|
35
|
+
## 4.0.13
|
|
36
|
+
|
|
37
|
+
### Patch Changes
|
|
38
|
+
|
|
39
|
+
- 7805e4a: Fix realtime transcription auth header handling: per-call `authorization` headers now override configuration headers regardless of header-key casing (last case-variant wins), and the `Bearer` scheme is matched case-insensitively.
|
|
40
|
+
- cd12954: Reject empty OpenAI, Anthropic, and Replicate base URLs with a helpful AI SDK
|
|
41
|
+
invalid argument error.
|
|
42
|
+
- Updated dependencies [4be62c1]
|
|
43
|
+
- Updated dependencies [7805e4a]
|
|
44
|
+
- Updated dependencies [cd12954]
|
|
45
|
+
- @ai-sdk/provider-utils@5.0.9
|
|
46
|
+
|
|
47
|
+
## 4.0.12
|
|
48
|
+
|
|
49
|
+
### Patch Changes
|
|
50
|
+
|
|
51
|
+
- e193290: Add `connectToWebSocket` to `@ai-sdk/provider-utils`: a shared WebSocket connect layer (constructor resolution, header hygiene, abort wiring, message decoding) analogous to `postToApi` for HTTP. The openai and xai streaming transcription models now use it instead of hand-rolled connects. For openai and xai this also means WebSocket constructor failures now surface as stream errors instead of throwing synchronously from `doStream`, an already-aborted signal no longer constructs a socket, and the caller's audio stream is cancelled on pre-open failures. Messages are processed in order with close handling deferred behind pending frames, audio send loops apply backpressure via the socket's bufferedAmount, and failed sends cancel the caller's audio stream.
|
|
52
|
+
- e193290: Fix streaming transcription over header-capable WebSocket implementations: the realtime WebSocket handshake sent the api key in both the `openai-insecure-api-key` subprotocol and the `Authorization` header, which OpenAI rejects ("You must only send one of protocol api key and Authorization header"). The Authorization header is now stripped when the subprotocol carries the key.
|
|
53
|
+
- e193290: Strip undefined header values before the streaming transcription WebSocket constructor (header-capable implementations like `ws` throw on undefined values).
|
|
54
|
+
- Updated dependencies [e193290]
|
|
55
|
+
- @ai-sdk/provider-utils@5.0.8
|
|
56
|
+
|
|
57
|
+
## 4.0.11
|
|
58
|
+
|
|
59
|
+
### Patch Changes
|
|
60
|
+
|
|
61
|
+
- b2b1bb9: feat(provider/openai): add GPT-5.6 reasoning and prompt cache controls
|
|
62
|
+
|
|
63
|
+
## 4.0.10
|
|
64
|
+
|
|
65
|
+
### Patch Changes
|
|
66
|
+
|
|
67
|
+
- fdb6d5d: feat(provider/openai,provider/gateway): add gpt-5.6 model ids
|
|
68
|
+
- Updated dependencies [0f93c57]
|
|
69
|
+
- @ai-sdk/provider@4.0.3
|
|
70
|
+
- @ai-sdk/provider-utils@5.0.7
|
|
71
|
+
|
|
72
|
+
## 4.0.9
|
|
73
|
+
|
|
74
|
+
### Patch Changes
|
|
75
|
+
|
|
76
|
+
- ac306ed: Fix `StreamingToolCallTracker` finalizing streaming tool calls on parsable partial JSON. Tool calls now only finalize during stream flush, restoring the behavior of #13137: a parsable argument buffer can still be the prefix of a longer argument string, so finalizing early could act on truncated tool inputs.
|
|
77
|
+
- Updated dependencies [ac306ed]
|
|
78
|
+
- @ai-sdk/provider-utils@5.0.6
|
|
79
|
+
|
|
80
|
+
## 4.0.8
|
|
81
|
+
|
|
82
|
+
### Patch Changes
|
|
83
|
+
|
|
84
|
+
- b51ed36: Send inline image file parts in OpenAI chat requests as data URLs instead of bare base64 strings.
|
|
85
|
+
|
|
86
|
+
## 4.0.7
|
|
17
87
|
|
|
18
88
|
### Patch Changes
|
|
19
89
|
|
|
20
|
-
-
|
|
21
|
-
|
|
90
|
+
- 5c5c0f5: Add experimental streaming transcription support for transcription models, including OpenAI `gpt-realtime-whisper` and xAI WebSocket STT.
|
|
91
|
+
- Updated dependencies [5c5c0f5]
|
|
92
|
+
- @ai-sdk/provider@4.0.2
|
|
93
|
+
- @ai-sdk/provider-utils@5.0.5
|
|
22
94
|
|
|
23
|
-
##
|
|
95
|
+
## 4.0.6
|
|
24
96
|
|
|
25
97
|
### Patch Changes
|
|
26
98
|
|
|
27
|
-
-
|
|
99
|
+
- Updated dependencies [c6f5e62]
|
|
100
|
+
- @ai-sdk/provider-utils@5.0.4
|
|
28
101
|
|
|
29
|
-
##
|
|
102
|
+
## 4.0.5
|
|
30
103
|
|
|
31
104
|
### Patch Changes
|
|
32
105
|
|
|
33
|
-
-
|
|
34
|
-
-
|
|
106
|
+
- Updated dependencies [8c616f0]
|
|
107
|
+
- @ai-sdk/provider-utils@5.0.3
|
|
108
|
+
|
|
109
|
+
## 4.0.4
|
|
110
|
+
|
|
111
|
+
### Patch Changes
|
|
112
|
+
|
|
113
|
+
- Updated dependencies [0274f34]
|
|
114
|
+
- @ai-sdk/provider@4.0.1
|
|
115
|
+
- @ai-sdk/provider-utils@5.0.2
|
|
116
|
+
|
|
117
|
+
## 4.0.3
|
|
118
|
+
|
|
119
|
+
### Patch Changes
|
|
120
|
+
|
|
121
|
+
- 1ead90c: Return a helpful error when the Responses stream parser receives Chat Completions chunks.
|
|
122
|
+
|
|
123
|
+
## 4.0.2
|
|
124
|
+
|
|
125
|
+
### Patch Changes
|
|
126
|
+
|
|
127
|
+
- Updated dependencies [6a436e3]
|
|
128
|
+
- @ai-sdk/provider-utils@5.0.1
|
|
129
|
+
|
|
130
|
+
## 4.0.1
|
|
131
|
+
|
|
132
|
+
### Patch Changes
|
|
133
|
+
|
|
134
|
+
- 9507724: feat(openai): add support for web_search_call.results include option
|
|
135
|
+
|
|
136
|
+
## 4.0.0
|
|
137
|
+
|
|
138
|
+
### Major Changes
|
|
139
|
+
|
|
140
|
+
- 34bd95d: feat(ai): add support for uploading provider skills using the provider references abstraction
|
|
141
|
+
- ef992f8: Remove CommonJS exports from all packages. All packages are now ESM-only (`"type": "module"`). Consumers using `require()` must switch to ESM `import` syntax.
|
|
142
|
+
- c29a26f: feat(provider): add support for provider references and uploading files as supported per provider
|
|
143
|
+
- 3887c70: feat(provider): add new top-level reasoning parameter to spec and support it in `generateText` and `streamText`
|
|
144
|
+
- 61753c3: ### `@ai-sdk/openai`: remove redundant `name` argument from `openai.tools.customTool()`
|
|
145
|
+
|
|
146
|
+
`openai.tools.customTool()` no longer accepts a `name` field. the tool name is now derived from the sdk tool key (the object key in the `tools` object).
|
|
147
|
+
|
|
148
|
+
migration: remove the `name` property from `customTool()` calls. the object key is now used as the tool name sent to the openai api.
|
|
149
|
+
|
|
150
|
+
before:
|
|
151
|
+
|
|
152
|
+
```ts
|
|
153
|
+
tools: {
|
|
154
|
+
write_sql: openai.tools.customTool({
|
|
155
|
+
name: 'write_sql',
|
|
156
|
+
description: '...',
|
|
157
|
+
}),
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
after:
|
|
162
|
+
|
|
163
|
+
```ts
|
|
164
|
+
tools: {
|
|
165
|
+
write_sql: openai.tools.customTool({
|
|
166
|
+
description: '...',
|
|
167
|
+
}),
|
|
168
|
+
}
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### `@ai-sdk/provider-utils`: `createToolNameMapping()` no longer accepts the `resolveProviderToolName` parameter
|
|
172
|
+
|
|
173
|
+
before: tool name can be set dynamically
|
|
174
|
+
|
|
175
|
+
```ts
|
|
176
|
+
const toolNameMapping = createToolNameMapping({
|
|
177
|
+
tools,
|
|
178
|
+
providerToolNames: {
|
|
179
|
+
"openai.code_interpreter": "code_interpreter",
|
|
180
|
+
"openai.file_search": "file_search",
|
|
181
|
+
"openai.image_generation": "image_generation",
|
|
182
|
+
"openai.local_shell": "local_shell",
|
|
183
|
+
"openai.shell": "shell",
|
|
184
|
+
"openai.web_search": "web_search",
|
|
185
|
+
"openai.web_search_preview": "web_search_preview",
|
|
186
|
+
"openai.mcp": "mcp",
|
|
187
|
+
"openai.apply_patch": "apply_patch",
|
|
188
|
+
},
|
|
189
|
+
resolveProviderToolName: (tool) =>
|
|
190
|
+
tool.id === "openai.custom"
|
|
191
|
+
? (tool.args as { name?: string }).name
|
|
192
|
+
: undefined,
|
|
193
|
+
});
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
after: tool name is static based on `tools` keys
|
|
197
|
+
|
|
198
|
+
```
|
|
199
|
+
const toolNameMapping = createToolNameMapping({
|
|
200
|
+
tools,
|
|
201
|
+
providerToolNames: {
|
|
202
|
+
'openai.code_interpreter': 'code_interpreter',
|
|
203
|
+
'openai.file_search': 'file_search',
|
|
204
|
+
'openai.image_generation': 'image_generation',
|
|
205
|
+
'openai.local_shell': 'local_shell',
|
|
206
|
+
'openai.shell': 'shell',
|
|
207
|
+
'openai.web_search': 'web_search',
|
|
208
|
+
'openai.web_search_preview': 'web_search_preview',
|
|
209
|
+
'openai.mcp': 'mcp',
|
|
210
|
+
'openai.apply_patch': 'apply_patch',
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
- 8359612: Start v7 pre-release
|
|
216
|
+
- 04e9009: chore: make provider implementations code patterns more consistent, including renaming certain exported symbols
|
|
217
|
+
|
|
218
|
+
For all externally exported symbols that were renamed, the old names continue to work via deprecated aliases.
|
|
219
|
+
|
|
220
|
+
### Patch Changes
|
|
221
|
+
|
|
222
|
+
- 29e6ac6: feat: add allowedTools provider option for OpenAI Responses
|
|
223
|
+
- 38fc777: Add AI Gateway hint to provider READMEs
|
|
224
|
+
- a71d345: fix(provider/openai): drop reasoning parts without encrypted content when store: false
|
|
225
|
+
- 7afaece: feat(provider/openai): add GPT-5.4 model support
|
|
226
|
+
- 365da1a: Add `gpt-5.4-mini`, `gpt-5.4-mini-2026-03-17`, `gpt-5.4-nano`, and `gpt-5.4-nano-2026-03-17` models.
|
|
227
|
+
- 1772a63: Default OpenAI Responses reasoning summaries to detailed when reasoning effort is enabled.
|
|
228
|
+
- 83f9d04: feat(openai): upgrade v3 specs to v4
|
|
229
|
+
- 45b3d76: fix(security): prevent streaming tool calls from finalizing on parsable partial JSON
|
|
230
|
+
|
|
231
|
+
Streaming tool call arguments were finalized using `isParsableJson()` as a heuristic for completion. If partial accumulated JSON happened to be valid JSON before all chunks arrived, the tool call would be executed with incomplete arguments. Tool call finalization now only occurs in `flush()` after the stream is fully consumed.
|
|
232
|
+
|
|
233
|
+
- bf837fe: feat(provider/gateway): add speech and transcription model support
|
|
234
|
+
- d6c79e3: feat(openai): add GPT-5.5 chat model IDs
|
|
235
|
+
- e776fc7: feat(provider/azure):web search tool in the Azure OpenAI Responses API.
|
|
236
|
+
- 817a1a6: fix(openai): support file-url parts in tool output content
|
|
237
|
+
- 1f509d4: fix(ai): force template check on 'kind' param
|
|
238
|
+
- 0c4ac8a: fix(openai): default undefined tool-call input to empty object before serializing tool arguments
|
|
239
|
+
- 9f0e36c: trigger release for all packages after provenance setup
|
|
240
|
+
- 58a2ad7: fix: more precise default message for tool execution denial
|
|
241
|
+
- 6a5800e: feat(openai): add namespaces for tool definitions
|
|
242
|
+
- ae7f932: fix(openai): throw retryable errors for OpenAI stream failures before output starts
|
|
243
|
+
- 2c4767d: feat(openai): add orchestration token usage details to Responses API usage
|
|
244
|
+
- bada0f3: feat(openai): preserve `namespace` on function_call output items
|
|
245
|
+
- cd3de8b: feat(openai): forward `web_search_call.action.queries` from Responses API
|
|
246
|
+
- 94eba1b: fix(openai): round-trip `namespace` on function_call input items
|
|
247
|
+
|
|
248
|
+
When `tool_search` dispatches a deferred tool, the resulting `function_call` carries a `namespace` field identifying which deferred-tool group the model picked. `#14789` preserved this on the read side (`providerMetadata.openai.namespace`), but the write side still serialized `function_call` input items without `namespace`. Multi-step / multi-turn conversations then failed with `Missing namespace for function_call '<name>'. ... Round-trip the model's function_call item with its namespace field included.`
|
|
249
|
+
|
|
250
|
+
`convert-to-openai-responses-input.ts` now reads `namespace` from `providerOptions.openai.namespace` (or `providerMetadata.openai.namespace`) on `tool-call` parts and includes it on the serialized `function_call` item, mirroring how `itemId` is round-tripped.
|
|
251
|
+
|
|
252
|
+
- 7bbc194: feat(provider/openai): forward imageDetail providerOptions on tool-result image content
|
|
253
|
+
- 156cdf0: feat(openai): add new tool search tool
|
|
254
|
+
- f7295cb: revert incorrect fix https://github.com/vercel/ai/pull/13172
|
|
255
|
+
- 9ea40e0: chore(provider/openai): add type for image model options for type-safe processing
|
|
256
|
+
- 7fc6bd6: Raise minimum supported Node.js version to 22. Supported versions: 22, 24, and 26.
|
|
257
|
+
- f807e45: Extract shared `StreamingToolCallTracker` class into `@ai-sdk/provider-utils` to deduplicate streaming tool call handling across OpenAI-compatible providers. Also adds missing `generateId()` fallback for `toolCallId` in Alibaba's `doGenerate` path and ensures all providers finalize unfinished tool calls during stream flush.
|
|
258
|
+
- d9a1e9a: feat(openai): add server side compaction for openai
|
|
259
|
+
- 0c4c275: trigger initial canary release
|
|
260
|
+
- ac18f89: feat(provider/openai): add `gpt-5.3-chat-latest`
|
|
261
|
+
- 6fd51c0: fix(provider): preserve error type prefix in getErrorMessage
|
|
262
|
+
- cd9c311: fix(openai, openai-compatible): only send null content for assistant messages with tool calls
|
|
263
|
+
- e6376c2: fix(openai): preserve raw finish reason for failed responses stream events
|
|
35
264
|
|
|
36
265
|
Handle `response.failed` chunks in Responses API streaming so `finishReason.raw` is preserved from `incomplete_details.reason` (e.g. `max_output_tokens`), and map failed-without-reason cases to unified `error` instead of `other`.
|
|
37
266
|
|
|
38
|
-
|
|
267
|
+
- ce769dd: feat(provider): add experimental Realtime API support for voice conversations
|
|
268
|
+
|
|
269
|
+
Adds first-class support for realtime (speech-to-speech) APIs:
|
|
270
|
+
|
|
271
|
+
- `Experimental_RealtimeModelV4` spec in `@ai-sdk/provider` with normalized event types and factory
|
|
272
|
+
- OpenAI, Google, and xAI realtime provider implementations
|
|
273
|
+
- `openai.experimental_realtime()` / `google.experimental_realtime()` / `xai.experimental_realtime()` work in both server and browser
|
|
274
|
+
- `.getToken()` static method on each provider for server-side ephemeral token creation
|
|
275
|
+
- `experimental_getRealtimeToolDefinitions` helper for provider session tool definitions
|
|
276
|
+
- `experimental_useRealtime` hook in `@ai-sdk/react` returning `UIMessage[]` (aligned with `useChat`), with `onToolCall` and `addToolOutput` for client-driven tool execution
|
|
277
|
+
- `inputAudioTranscription` session config for showing transcribed user audio messages when supported by the provider
|
|
278
|
+
|
|
279
|
+
- e311194: feat(ai): allow passing provider instance to `uploadFile` and `uploadSkill` as shorthand
|
|
280
|
+
- 9bd6512: feat(provider): change file part data property to be tagged with a type and remove the image part type
|
|
281
|
+
- 258c093: chore: ensure consistent import handling and avoid import duplicates or cycles
|
|
282
|
+
- 685cec7: feat(openai): add opt-in pass-through for unsupported file media types
|
|
283
|
+
- 61bcdb5: fix(provider/openai): send client-executed tool calls as full function_call items in the Responses API so they pair with their function_call_output by call_id
|
|
284
|
+
- 5463d0d: feat(provider): align tool result output content file part types with top-level message file part types
|
|
285
|
+
- b8396f0: trigger initial beta release
|
|
286
|
+
- bfb756d: patch - send content: null instead of empty string for tool-only assistant messages
|
|
287
|
+
- 90e2d8a: chore: fix unused vars not being flagged by our lint tooling
|
|
288
|
+
- 17b5597: fix(openai): skip passing reasoning items when using previous response id
|
|
289
|
+
- b3976a2: Add workflow serialization support to all provider models.
|
|
290
|
+
|
|
291
|
+
**`@ai-sdk/provider-utils`:** New `serializeModel()` helper that extracts only serializable properties from a model instance, filtering out functions and objects containing functions. Third-party provider authors can use this to add workflow support to their own models.
|
|
292
|
+
|
|
293
|
+
**All providers:** `headers` is now optional in provider config types. This is non-breaking — existing code that passes `headers` continues to work. Custom provider implementations that construct model configs manually can now omit `headers`, which is useful when models are deserialized from a workflow step boundary where auth is provided separately.
|
|
294
|
+
|
|
295
|
+
All provider model classes now include `WORKFLOW_SERIALIZE` and `WORKFLOW_DESERIALIZE` static methods, enabling them to cross workflow step boundaries without serialization errors.
|
|
296
|
+
|
|
297
|
+
- ff5eba1: feat: roll `image-*` tool output types into their equivalent `file-*` types
|
|
298
|
+
- f9acbc0: feat(provider/openai): add gpt-image-2 model support
|
|
299
|
+
|
|
300
|
+
## 4.0.0-beta.77
|
|
301
|
+
|
|
302
|
+
### Patch Changes
|
|
303
|
+
|
|
304
|
+
- Updated dependencies [0416e3e]
|
|
305
|
+
- @ai-sdk/provider@4.0.0-beta.20
|
|
306
|
+
- @ai-sdk/provider-utils@5.0.0-beta.50
|
|
307
|
+
|
|
308
|
+
## 4.0.0-beta.76
|
|
309
|
+
|
|
310
|
+
### Patch Changes
|
|
311
|
+
|
|
312
|
+
- 2c4767d: feat(openai): add orchestration token usage details to Responses API usage
|
|
313
|
+
|
|
314
|
+
## 4.0.0-beta.75
|
|
315
|
+
|
|
316
|
+
### Patch Changes
|
|
317
|
+
|
|
318
|
+
- 1772a63: Default OpenAI Responses reasoning summaries to detailed when reasoning effort is enabled.
|
|
319
|
+
|
|
320
|
+
## 4.0.0-beta.74
|
|
321
|
+
|
|
322
|
+
### Patch Changes
|
|
323
|
+
|
|
324
|
+
- b8396f0: trigger initial beta release
|
|
325
|
+
- Updated dependencies [b8396f0]
|
|
326
|
+
- @ai-sdk/provider-utils@5.0.0-beta.49
|
|
327
|
+
- @ai-sdk/provider@4.0.0-beta.19
|
|
328
|
+
|
|
329
|
+
## 4.0.0-canary.73
|
|
330
|
+
|
|
331
|
+
### Patch Changes
|
|
332
|
+
|
|
333
|
+
- Updated dependencies [aeda373]
|
|
334
|
+
- Updated dependencies [375fdd7]
|
|
335
|
+
- Updated dependencies [b4507d5]
|
|
336
|
+
- @ai-sdk/provider-utils@5.0.0-canary.48
|
|
337
|
+
|
|
338
|
+
## 4.0.0-canary.72
|
|
39
339
|
|
|
40
340
|
### Patch Changes
|
|
41
341
|
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
- @ai-sdk/provider-utils@4.0.21
|
|
342
|
+
- Updated dependencies [bae5e2b]
|
|
343
|
+
- @ai-sdk/provider-utils@5.0.0-canary.47
|
|
45
344
|
|
|
46
|
-
##
|
|
345
|
+
## 4.0.0-canary.71
|
|
47
346
|
|
|
48
347
|
### Patch Changes
|
|
49
348
|
|
|
50
|
-
-
|
|
349
|
+
- ae7f932: fix(openai): throw retryable errors for OpenAI stream failures before output starts
|
|
51
350
|
|
|
52
|
-
##
|
|
351
|
+
## 4.0.0-canary.70
|
|
53
352
|
|
|
54
353
|
### Patch Changes
|
|
55
354
|
|
|
56
|
-
-
|
|
355
|
+
- 6a5800e: feat(openai): add namespaces for tool definitions
|
|
57
356
|
|
|
58
|
-
##
|
|
357
|
+
## 4.0.0-canary.69
|
|
59
358
|
|
|
60
359
|
### Patch Changes
|
|
61
360
|
|
|
62
|
-
-
|
|
361
|
+
- ce769dd: feat(provider): add experimental Realtime API support for voice conversations
|
|
63
362
|
|
|
64
|
-
|
|
363
|
+
Adds first-class support for realtime (speech-to-speech) APIs:
|
|
364
|
+
|
|
365
|
+
- `Experimental_RealtimeModelV4` spec in `@ai-sdk/provider` with normalized event types and factory
|
|
366
|
+
- OpenAI, Google, and xAI realtime provider implementations
|
|
367
|
+
- `openai.experimental_realtime()` / `google.experimental_realtime()` / `xai.experimental_realtime()` work in both server and browser
|
|
368
|
+
- `.getToken()` static method on each provider for server-side ephemeral token creation
|
|
369
|
+
- `experimental_getRealtimeToolDefinitions` helper for provider session tool definitions
|
|
370
|
+
- `experimental_useRealtime` hook in `@ai-sdk/react` returning `UIMessage[]` (aligned with `useChat`), with `onToolCall` and `addToolOutput` for client-driven tool execution
|
|
371
|
+
- `inputAudioTranscription` session config for showing transcribed user audio messages when supported by the provider
|
|
372
|
+
|
|
373
|
+
- Updated dependencies [ce769dd]
|
|
374
|
+
- @ai-sdk/provider@4.0.0-canary.18
|
|
375
|
+
- @ai-sdk/provider-utils@5.0.0-canary.46
|
|
376
|
+
|
|
377
|
+
## 4.0.0-canary.68
|
|
378
|
+
|
|
379
|
+
### Patch Changes
|
|
380
|
+
|
|
381
|
+
- 94eba1b: fix(openai): round-trip `namespace` on function_call input items
|
|
382
|
+
|
|
383
|
+
When `tool_search` dispatches a deferred tool, the resulting `function_call` carries a `namespace` field identifying which deferred-tool group the model picked. `#14789` preserved this on the read side (`providerMetadata.openai.namespace`), but the write side still serialized `function_call` input items without `namespace`. Multi-step / multi-turn conversations then failed with `Missing namespace for function_call '<name>'. ... Round-trip the model's function_call item with its namespace field included.`
|
|
384
|
+
|
|
385
|
+
`convert-to-openai-responses-input.ts` now reads `namespace` from `providerOptions.openai.namespace` (or `providerMetadata.openai.namespace`) on `tool-call` parts and includes it on the serialized `function_call` item, mirroring how `itemId` is round-tripped.
|
|
386
|
+
|
|
387
|
+
## 4.0.0-canary.67
|
|
388
|
+
|
|
389
|
+
### Patch Changes
|
|
390
|
+
|
|
391
|
+
- 61bcdb5: fix(provider/openai): send client-executed tool calls as full function_call items in the Responses API so they pair with their function_call_output by call_id
|
|
392
|
+
- Updated dependencies [ee798eb]
|
|
393
|
+
- Updated dependencies [daf6637]
|
|
394
|
+
- @ai-sdk/provider-utils@5.0.0-canary.45
|
|
395
|
+
|
|
396
|
+
## 4.0.0-canary.66
|
|
397
|
+
|
|
398
|
+
### Patch Changes
|
|
399
|
+
|
|
400
|
+
- e776fc7: feat(provider/azure):web search tool in the Azure OpenAI Responses API.
|
|
401
|
+
|
|
402
|
+
## 4.0.0-canary.65
|
|
403
|
+
|
|
404
|
+
### Patch Changes
|
|
405
|
+
|
|
406
|
+
- cd3de8b: feat(openai): forward `web_search_call.action.queries` from Responses API
|
|
407
|
+
|
|
408
|
+
## 4.0.0-canary.64
|
|
409
|
+
|
|
410
|
+
### Patch Changes
|
|
411
|
+
|
|
412
|
+
- Updated dependencies [6c93e36]
|
|
413
|
+
- Updated dependencies [f617ac2]
|
|
414
|
+
- @ai-sdk/provider-utils@5.0.0-canary.44
|
|
415
|
+
|
|
416
|
+
## 4.0.0-canary.63
|
|
417
|
+
|
|
418
|
+
### Patch Changes
|
|
419
|
+
|
|
420
|
+
- 17b5597: fix(openai): skip passing reasoning items when using previous response id
|
|
421
|
+
|
|
422
|
+
## 4.0.0-canary.62
|
|
423
|
+
|
|
424
|
+
### Patch Changes
|
|
425
|
+
|
|
426
|
+
- bf837fe: feat(provider/gateway): add speech and transcription model support
|
|
427
|
+
|
|
428
|
+
## 4.0.0-canary.61
|
|
429
|
+
|
|
430
|
+
### Patch Changes
|
|
431
|
+
|
|
432
|
+
- 7fc6bd6: Raise minimum supported Node.js version to 22. Supported versions: 22, 24, and 26.
|
|
433
|
+
- Updated dependencies [7fc6bd6]
|
|
434
|
+
- @ai-sdk/provider-utils@5.0.0-canary.43
|
|
435
|
+
- @ai-sdk/provider@4.0.0-canary.17
|
|
436
|
+
|
|
437
|
+
## 4.0.0-canary.60
|
|
438
|
+
|
|
439
|
+
### Patch Changes
|
|
440
|
+
|
|
441
|
+
- Updated dependencies [a6617c5]
|
|
442
|
+
- @ai-sdk/provider-utils@5.0.0-canary.42
|
|
443
|
+
|
|
444
|
+
## 4.0.0-canary.59
|
|
65
445
|
|
|
66
446
|
### Patch Changes
|
|
67
447
|
|
|
68
|
-
-
|
|
69
|
-
- @ai-sdk/provider-utils@4.0.20
|
|
448
|
+
- 685cec7: feat(openai): add opt-in pass-through for unsupported file media types
|
|
70
449
|
|
|
71
|
-
##
|
|
450
|
+
## 4.0.0-canary.58
|
|
72
451
|
|
|
73
452
|
### Patch Changes
|
|
74
453
|
|
|
75
|
-
-
|
|
454
|
+
- Updated dependencies [28dfa06]
|
|
455
|
+
- Updated dependencies [e93fa91]
|
|
456
|
+
- @ai-sdk/provider-utils@5.0.0-canary.41
|
|
457
|
+
|
|
458
|
+
## 4.0.0-canary.57
|
|
459
|
+
|
|
460
|
+
### Patch Changes
|
|
461
|
+
|
|
462
|
+
- Updated dependencies [a7de9c9]
|
|
463
|
+
- @ai-sdk/provider-utils@5.0.0-canary.40
|
|
464
|
+
|
|
465
|
+
## 4.0.0-canary.56
|
|
466
|
+
|
|
467
|
+
### Patch Changes
|
|
468
|
+
|
|
469
|
+
- Updated dependencies [105f95b]
|
|
470
|
+
- @ai-sdk/provider-utils@5.0.0-canary.39
|
|
471
|
+
|
|
472
|
+
## 4.0.0-canary.55
|
|
473
|
+
|
|
474
|
+
### Patch Changes
|
|
475
|
+
|
|
476
|
+
- Updated dependencies [ca446f8]
|
|
477
|
+
- @ai-sdk/provider-utils@5.0.0-canary.38
|
|
478
|
+
|
|
479
|
+
## 4.0.0-canary.54
|
|
480
|
+
|
|
481
|
+
### Patch Changes
|
|
482
|
+
|
|
483
|
+
- Updated dependencies [d848405]
|
|
484
|
+
- @ai-sdk/provider-utils@5.0.0-canary.37
|
|
485
|
+
|
|
486
|
+
## 4.0.0-canary.53
|
|
487
|
+
|
|
488
|
+
### Patch Changes
|
|
489
|
+
|
|
490
|
+
- Updated dependencies [ca39020]
|
|
491
|
+
- @ai-sdk/provider-utils@5.0.0-canary.36
|
|
492
|
+
|
|
493
|
+
## 4.0.0-canary.52
|
|
494
|
+
|
|
495
|
+
### Patch Changes
|
|
496
|
+
|
|
497
|
+
- Updated dependencies [f634bac]
|
|
498
|
+
- @ai-sdk/provider-utils@5.0.0-canary.35
|
|
499
|
+
|
|
500
|
+
## 4.0.0-canary.51
|
|
501
|
+
|
|
502
|
+
### Patch Changes
|
|
503
|
+
|
|
504
|
+
- Updated dependencies [69254e0]
|
|
505
|
+
- Updated dependencies [3015fc3]
|
|
506
|
+
- @ai-sdk/provider-utils@5.0.0-canary.34
|
|
507
|
+
|
|
508
|
+
## 4.0.0-canary.50
|
|
509
|
+
|
|
510
|
+
### Patch Changes
|
|
511
|
+
|
|
512
|
+
- 29e6ac6: feat: add allowedTools provider option for OpenAI Responses
|
|
513
|
+
|
|
514
|
+
## 4.0.0-canary.49
|
|
515
|
+
|
|
516
|
+
### Patch Changes
|
|
517
|
+
|
|
518
|
+
- 7bbc194: feat(provider/openai): forward imageDetail providerOptions on tool-result image content
|
|
519
|
+
- Updated dependencies [2427d88]
|
|
520
|
+
- @ai-sdk/provider-utils@5.0.0-canary.33
|
|
521
|
+
|
|
522
|
+
## 4.0.0-canary.48
|
|
523
|
+
|
|
524
|
+
### Patch Changes
|
|
525
|
+
|
|
526
|
+
- d6c79e3: feat(openai): add GPT-5.5 chat model IDs
|
|
527
|
+
|
|
528
|
+
## 4.0.0-canary.47
|
|
529
|
+
|
|
530
|
+
### Patch Changes
|
|
531
|
+
|
|
532
|
+
- 5463d0d: feat(provider): align tool result output content file part types with top-level message file part types
|
|
533
|
+
- Updated dependencies [5463d0d]
|
|
534
|
+
- @ai-sdk/provider-utils@5.0.0-canary.32
|
|
535
|
+
- @ai-sdk/provider@4.0.0-canary.16
|
|
536
|
+
|
|
537
|
+
## 4.0.0-canary.46
|
|
538
|
+
|
|
539
|
+
### Patch Changes
|
|
540
|
+
|
|
541
|
+
- cd9c311: fix(openai, openai-compatible): only send null content for assistant messages with tool calls
|
|
542
|
+
|
|
543
|
+
## 4.0.0-canary.45
|
|
544
|
+
|
|
545
|
+
### Patch Changes
|
|
546
|
+
|
|
547
|
+
- 0c4c275: trigger initial canary release
|
|
548
|
+
- Updated dependencies [0c4c275]
|
|
549
|
+
- @ai-sdk/provider-utils@5.0.0-canary.31
|
|
550
|
+
- @ai-sdk/provider@4.0.0-canary.15
|
|
551
|
+
|
|
552
|
+
## 4.0.0-beta.44
|
|
553
|
+
|
|
554
|
+
### Patch Changes
|
|
555
|
+
|
|
556
|
+
- bada0f3: feat(openai): preserve `namespace` on function_call output items
|
|
557
|
+
|
|
558
|
+
## 4.0.0-beta.43
|
|
559
|
+
|
|
560
|
+
### Patch Changes
|
|
561
|
+
|
|
562
|
+
- 9ea40e0: chore(provider/openai): add type for image model options for type-safe processing
|
|
563
|
+
|
|
564
|
+
## 4.0.0-beta.42
|
|
565
|
+
|
|
566
|
+
### Major Changes
|
|
567
|
+
|
|
568
|
+
- 04e9009: chore: make provider implementations code patterns more consistent, including renaming certain exported symbols
|
|
569
|
+
|
|
570
|
+
For all externally exported symbols that were renamed, the old names continue to work via deprecated aliases.
|
|
571
|
+
|
|
572
|
+
### Patch Changes
|
|
573
|
+
|
|
574
|
+
- Updated dependencies [08d2129]
|
|
575
|
+
- @ai-sdk/provider-utils@5.0.0-beta.30
|
|
576
|
+
|
|
577
|
+
## 4.0.0-beta.41
|
|
578
|
+
|
|
579
|
+
### Patch Changes
|
|
580
|
+
|
|
581
|
+
- 9bd6512: feat(provider): change file part data property to be tagged with a type and remove the image part type
|
|
582
|
+
- 258c093: chore: ensure consistent import handling and avoid import duplicates or cycles
|
|
583
|
+
- Updated dependencies [9bd6512]
|
|
584
|
+
- Updated dependencies [258c093]
|
|
585
|
+
- Updated dependencies [b6783da]
|
|
586
|
+
- @ai-sdk/provider-utils@5.0.0-beta.29
|
|
587
|
+
- @ai-sdk/provider@4.0.0-beta.14
|
|
588
|
+
|
|
589
|
+
## 4.0.0-beta.40
|
|
590
|
+
|
|
591
|
+
### Patch Changes
|
|
592
|
+
|
|
593
|
+
- 9f0e36c: trigger release for all packages after provenance setup
|
|
594
|
+
- Updated dependencies [9f0e36c]
|
|
595
|
+
- @ai-sdk/provider@4.0.0-beta.13
|
|
596
|
+
- @ai-sdk/provider-utils@5.0.0-beta.28
|
|
597
|
+
|
|
598
|
+
## 4.0.0-beta.39
|
|
599
|
+
|
|
600
|
+
### Patch Changes
|
|
601
|
+
|
|
602
|
+
- 58a2ad7: fix: more precise default message for tool execution denial
|
|
603
|
+
- f9acbc0: feat(provider/openai): add gpt-image-2 model support
|
|
604
|
+
- Updated dependencies [785fe16]
|
|
605
|
+
- Updated dependencies [67df0a0]
|
|
606
|
+
- Updated dependencies [befb78c]
|
|
607
|
+
- Updated dependencies [0458559]
|
|
608
|
+
- Updated dependencies [5852c0a]
|
|
609
|
+
- Updated dependencies [fc92055]
|
|
610
|
+
- @ai-sdk/provider-utils@5.0.0-beta.27
|
|
611
|
+
|
|
612
|
+
## 4.0.0-beta.38
|
|
613
|
+
|
|
614
|
+
### Patch Changes
|
|
615
|
+
|
|
616
|
+
- bfb756d: patch - send content: null instead of empty string for tool-only assistant messages
|
|
617
|
+
- Updated dependencies [2e98477]
|
|
618
|
+
- @ai-sdk/provider-utils@5.0.0-beta.26
|
|
619
|
+
|
|
620
|
+
## 4.0.0-beta.37
|
|
621
|
+
|
|
622
|
+
### Patch Changes
|
|
623
|
+
|
|
624
|
+
- Updated dependencies [eea8d98]
|
|
625
|
+
- @ai-sdk/provider-utils@5.0.0-beta.25
|
|
626
|
+
|
|
627
|
+
## 4.0.0-beta.36
|
|
628
|
+
|
|
629
|
+
### Patch Changes
|
|
630
|
+
|
|
631
|
+
- f807e45: Extract shared `StreamingToolCallTracker` class into `@ai-sdk/provider-utils` to deduplicate streaming tool call handling across OpenAI-compatible providers. Also adds missing `generateId()` fallback for `toolCallId` in Alibaba's `doGenerate` path and ensures all providers finalize unfinished tool calls during stream flush.
|
|
632
|
+
- Updated dependencies [f807e45]
|
|
633
|
+
- @ai-sdk/provider-utils@5.0.0-beta.24
|
|
634
|
+
|
|
635
|
+
## 4.0.0-beta.35
|
|
636
|
+
|
|
637
|
+
### Patch Changes
|
|
638
|
+
|
|
639
|
+
- Updated dependencies [350ea38]
|
|
640
|
+
- @ai-sdk/provider-utils@5.0.0-beta.23
|
|
641
|
+
|
|
642
|
+
## 4.0.0-beta.34
|
|
643
|
+
|
|
644
|
+
### Patch Changes
|
|
645
|
+
|
|
646
|
+
- Updated dependencies [083947b]
|
|
647
|
+
- @ai-sdk/provider-utils@5.0.0-beta.22
|
|
648
|
+
|
|
649
|
+
## 4.0.0-beta.33
|
|
650
|
+
|
|
651
|
+
### Patch Changes
|
|
652
|
+
|
|
653
|
+
- Updated dependencies [add1126]
|
|
654
|
+
- @ai-sdk/provider-utils@5.0.0-beta.21
|
|
655
|
+
|
|
656
|
+
## 4.0.0-beta.32
|
|
657
|
+
|
|
658
|
+
### Patch Changes
|
|
659
|
+
|
|
660
|
+
- 0c4ac8a: fix(openai): default undefined tool-call input to empty object before serializing tool arguments
|
|
661
|
+
|
|
662
|
+
## 4.0.0-beta.31
|
|
663
|
+
|
|
664
|
+
### Patch Changes
|
|
665
|
+
|
|
666
|
+
- b3976a2: Add workflow serialization support to all provider models.
|
|
667
|
+
|
|
668
|
+
**`@ai-sdk/provider-utils`:** New `serializeModel()` helper that extracts only serializable properties from a model instance, filtering out functions and objects containing functions. Third-party provider authors can use this to add workflow support to their own models.
|
|
669
|
+
|
|
670
|
+
**All providers:** `headers` is now optional in provider config types. This is non-breaking — existing code that passes `headers` continues to work. Custom provider implementations that construct model configs manually can now omit `headers`, which is useful when models are deserialized from a workflow step boundary where auth is provided separately.
|
|
671
|
+
|
|
672
|
+
All provider model classes now include `WORKFLOW_SERIALIZE` and `WORKFLOW_DESERIALIZE` static methods, enabling them to cross workflow step boundaries without serialization errors.
|
|
673
|
+
|
|
674
|
+
- ff5eba1: feat: roll `image-*` tool output types into their equivalent `file-*` types
|
|
675
|
+
- Updated dependencies [b3976a2]
|
|
676
|
+
- Updated dependencies [ff5eba1]
|
|
677
|
+
- @ai-sdk/provider-utils@5.0.0-beta.20
|
|
678
|
+
- @ai-sdk/provider@4.0.0-beta.12
|
|
679
|
+
|
|
680
|
+
## 4.0.0-beta.30
|
|
681
|
+
|
|
682
|
+
### Major Changes
|
|
683
|
+
|
|
684
|
+
- ef992f8: Remove CommonJS exports from all packages. All packages are now ESM-only (`"type": "module"`). Consumers using `require()` must switch to ESM `import` syntax.
|
|
685
|
+
|
|
686
|
+
### Patch Changes
|
|
687
|
+
|
|
688
|
+
- Updated dependencies [ef992f8]
|
|
689
|
+
- @ai-sdk/provider@4.0.0-beta.11
|
|
690
|
+
- @ai-sdk/provider-utils@5.0.0-beta.19
|
|
691
|
+
|
|
692
|
+
## 4.0.0-beta.29
|
|
693
|
+
|
|
694
|
+
### Patch Changes
|
|
695
|
+
|
|
696
|
+
- 90e2d8a: chore: fix unused vars not being flagged by our lint tooling
|
|
697
|
+
- Updated dependencies [90e2d8a]
|
|
698
|
+
- @ai-sdk/provider-utils@5.0.0-beta.18
|
|
699
|
+
|
|
700
|
+
## 4.0.0-beta.28
|
|
701
|
+
|
|
702
|
+
### Patch Changes
|
|
703
|
+
|
|
704
|
+
- Updated dependencies [3ae1786]
|
|
705
|
+
- @ai-sdk/provider-utils@5.0.0-beta.17
|
|
706
|
+
|
|
707
|
+
## 4.0.0-beta.27
|
|
708
|
+
|
|
709
|
+
### Patch Changes
|
|
710
|
+
|
|
711
|
+
- Updated dependencies [176466a]
|
|
712
|
+
- @ai-sdk/provider@4.0.0-beta.10
|
|
713
|
+
- @ai-sdk/provider-utils@5.0.0-beta.16
|
|
714
|
+
|
|
715
|
+
## 4.0.0-beta.26
|
|
716
|
+
|
|
717
|
+
### Patch Changes
|
|
718
|
+
|
|
719
|
+
- e311194: feat(ai): allow passing provider instance to `uploadFile` and `uploadSkill` as shorthand
|
|
720
|
+
- Updated dependencies [e311194]
|
|
721
|
+
- @ai-sdk/provider@4.0.0-beta.9
|
|
722
|
+
- @ai-sdk/provider-utils@5.0.0-beta.15
|
|
723
|
+
|
|
724
|
+
## 4.0.0-beta.25
|
|
725
|
+
|
|
726
|
+
### Patch Changes
|
|
727
|
+
|
|
728
|
+
- 34bd95d: feat(ai): add support for uploading provider skills using the provider references abstraction
|
|
729
|
+
- Updated dependencies [34bd95d]
|
|
730
|
+
- Updated dependencies [008271d]
|
|
731
|
+
- @ai-sdk/provider@4.0.0-beta.8
|
|
732
|
+
- @ai-sdk/provider-utils@5.0.0-beta.14
|
|
733
|
+
|
|
734
|
+
## 4.0.0-beta.24
|
|
735
|
+
|
|
736
|
+
### Patch Changes
|
|
737
|
+
|
|
738
|
+
- Updated dependencies [b0c2869]
|
|
739
|
+
- Updated dependencies [7e26e81]
|
|
740
|
+
- @ai-sdk/provider-utils@5.0.0-beta.13
|
|
741
|
+
|
|
742
|
+
## 4.0.0-beta.23
|
|
743
|
+
|
|
744
|
+
### Patch Changes
|
|
745
|
+
|
|
746
|
+
- Updated dependencies [46d1149]
|
|
747
|
+
- @ai-sdk/provider-utils@5.0.0-beta.12
|
|
748
|
+
|
|
749
|
+
## 4.0.0-beta.22
|
|
750
|
+
|
|
751
|
+
### Patch Changes
|
|
752
|
+
|
|
753
|
+
- 6fd51c0: fix(provider): preserve error type prefix in getErrorMessage
|
|
754
|
+
- Updated dependencies [6fd51c0]
|
|
755
|
+
- @ai-sdk/provider-utils@5.0.0-beta.11
|
|
756
|
+
- @ai-sdk/provider@4.0.0-beta.7
|
|
757
|
+
|
|
758
|
+
## 4.0.0-beta.21
|
|
759
|
+
|
|
760
|
+
### Patch Changes
|
|
761
|
+
|
|
762
|
+
- c29a26f: feat(provider): add support for provider references and uploading files as supported per provider
|
|
763
|
+
- Updated dependencies [c29a26f]
|
|
764
|
+
- @ai-sdk/provider-utils@5.0.0-beta.10
|
|
765
|
+
- @ai-sdk/provider@4.0.0-beta.6
|
|
766
|
+
|
|
767
|
+
## 4.0.0-beta.20
|
|
768
|
+
|
|
769
|
+
### Patch Changes
|
|
770
|
+
|
|
771
|
+
- 38fc777: Add AI Gateway hint to provider READMEs
|
|
772
|
+
|
|
773
|
+
## 4.0.0-beta.19
|
|
774
|
+
|
|
775
|
+
### Patch Changes
|
|
776
|
+
|
|
777
|
+
- Updated dependencies [2e17091]
|
|
778
|
+
- @ai-sdk/provider-utils@5.0.0-beta.9
|
|
779
|
+
|
|
780
|
+
## 4.0.0-beta.18
|
|
781
|
+
|
|
782
|
+
### Patch Changes
|
|
783
|
+
|
|
784
|
+
- Updated dependencies [986c6fd]
|
|
785
|
+
- Updated dependencies [493295c]
|
|
786
|
+
- @ai-sdk/provider-utils@5.0.0-beta.8
|
|
787
|
+
|
|
788
|
+
## 4.0.0-beta.17
|
|
789
|
+
|
|
790
|
+
### Patch Changes
|
|
791
|
+
|
|
792
|
+
- 817a1a6: fix(openai): support file-url parts in tool output content
|
|
793
|
+
|
|
794
|
+
## 4.0.0-beta.16
|
|
795
|
+
|
|
796
|
+
### Patch Changes
|
|
797
|
+
|
|
798
|
+
- 1f509d4: fix(ai): force template check on 'kind' param
|
|
799
|
+
- Updated dependencies [1f509d4]
|
|
800
|
+
- @ai-sdk/provider-utils@5.0.0-beta.7
|
|
801
|
+
- @ai-sdk/provider@4.0.0-beta.5
|
|
802
|
+
|
|
803
|
+
## 4.0.0-beta.15
|
|
804
|
+
|
|
805
|
+
### Patch Changes
|
|
806
|
+
|
|
807
|
+
- 365da1a: Add `gpt-5.4-mini`, `gpt-5.4-mini-2026-03-17`, `gpt-5.4-nano`, and `gpt-5.4-nano-2026-03-17` models.
|
|
808
|
+
|
|
809
|
+
## 4.0.0-beta.14
|
|
810
|
+
|
|
811
|
+
### Patch Changes
|
|
812
|
+
|
|
813
|
+
- e6376c2: fix(openai): preserve raw finish reason for failed responses stream events
|
|
814
|
+
|
|
815
|
+
Handle `response.failed` chunks in Responses API streaming so `finishReason.raw` is preserved from `incomplete_details.reason` (e.g. `max_output_tokens`), and map failed-without-reason cases to unified `error` instead of `other`.
|
|
816
|
+
|
|
817
|
+
## 4.0.0-beta.13
|
|
818
|
+
|
|
819
|
+
### Patch Changes
|
|
820
|
+
|
|
821
|
+
- 3887c70: feat(provider): add new top-level reasoning parameter to spec and support it in `generateText` and `streamText`
|
|
822
|
+
- Updated dependencies [3887c70]
|
|
823
|
+
- @ai-sdk/provider-utils@5.0.0-beta.6
|
|
824
|
+
- @ai-sdk/provider@4.0.0-beta.4
|
|
825
|
+
|
|
826
|
+
## 4.0.0-beta.12
|
|
827
|
+
|
|
828
|
+
### Patch Changes
|
|
829
|
+
|
|
830
|
+
- d9a1e9a: feat(openai): add server side compaction for openai
|
|
831
|
+
|
|
832
|
+
## 4.0.0-beta.11
|
|
833
|
+
|
|
834
|
+
### Patch Changes
|
|
835
|
+
|
|
836
|
+
- Updated dependencies [776b617]
|
|
837
|
+
- @ai-sdk/provider-utils@5.0.0-beta.5
|
|
838
|
+
- @ai-sdk/provider@4.0.0-beta.3
|
|
839
|
+
|
|
840
|
+
## 4.0.0-beta.10
|
|
841
|
+
|
|
842
|
+
### Major Changes
|
|
843
|
+
|
|
844
|
+
- 61753c3: ### `@ai-sdk/openai`: remove redundant `name` argument from `openai.tools.customTool()`
|
|
845
|
+
|
|
846
|
+
`openai.tools.customTool()` no longer accepts a `name` field. the tool name is now derived from the sdk tool key (the object key in the `tools` object).
|
|
847
|
+
|
|
848
|
+
migration: remove the `name` property from `customTool()` calls. the object key is now used as the tool name sent to the openai api.
|
|
849
|
+
|
|
850
|
+
before:
|
|
851
|
+
|
|
852
|
+
```ts
|
|
853
|
+
tools: {
|
|
854
|
+
write_sql: openai.tools.customTool({
|
|
855
|
+
name: 'write_sql',
|
|
856
|
+
description: '...',
|
|
857
|
+
}),
|
|
858
|
+
}
|
|
859
|
+
```
|
|
860
|
+
|
|
861
|
+
after:
|
|
862
|
+
|
|
863
|
+
```ts
|
|
864
|
+
tools: {
|
|
865
|
+
write_sql: openai.tools.customTool({
|
|
866
|
+
description: '...',
|
|
867
|
+
}),
|
|
868
|
+
}
|
|
869
|
+
```
|
|
870
|
+
|
|
871
|
+
### `@ai-sdk/provider-utils`: `createToolNameMapping()` no longer accepts the `resolveProviderToolName` parameter
|
|
872
|
+
|
|
873
|
+
before: tool name can be set dynamically
|
|
874
|
+
|
|
875
|
+
```ts
|
|
876
|
+
const toolNameMapping = createToolNameMapping({
|
|
877
|
+
tools,
|
|
878
|
+
providerToolNames: {
|
|
879
|
+
"openai.code_interpreter": "code_interpreter",
|
|
880
|
+
"openai.file_search": "file_search",
|
|
881
|
+
"openai.image_generation": "image_generation",
|
|
882
|
+
"openai.local_shell": "local_shell",
|
|
883
|
+
"openai.shell": "shell",
|
|
884
|
+
"openai.web_search": "web_search",
|
|
885
|
+
"openai.web_search_preview": "web_search_preview",
|
|
886
|
+
"openai.mcp": "mcp",
|
|
887
|
+
"openai.apply_patch": "apply_patch",
|
|
888
|
+
},
|
|
889
|
+
resolveProviderToolName: (tool) =>
|
|
890
|
+
tool.id === "openai.custom"
|
|
891
|
+
? (tool.args as { name?: string }).name
|
|
892
|
+
: undefined,
|
|
893
|
+
});
|
|
894
|
+
```
|
|
895
|
+
|
|
896
|
+
after: tool name is static based on `tools` keys
|
|
897
|
+
|
|
898
|
+
```
|
|
899
|
+
const toolNameMapping = createToolNameMapping({
|
|
900
|
+
tools,
|
|
901
|
+
providerToolNames: {
|
|
902
|
+
'openai.code_interpreter': 'code_interpreter',
|
|
903
|
+
'openai.file_search': 'file_search',
|
|
904
|
+
'openai.image_generation': 'image_generation',
|
|
905
|
+
'openai.local_shell': 'local_shell',
|
|
906
|
+
'openai.shell': 'shell',
|
|
907
|
+
'openai.web_search': 'web_search',
|
|
908
|
+
'openai.web_search_preview': 'web_search_preview',
|
|
909
|
+
'openai.mcp': 'mcp',
|
|
910
|
+
'openai.apply_patch': 'apply_patch',
|
|
911
|
+
}
|
|
912
|
+
});
|
|
913
|
+
```
|
|
914
|
+
|
|
915
|
+
### Patch Changes
|
|
916
|
+
|
|
917
|
+
- Updated dependencies [61753c3]
|
|
918
|
+
- @ai-sdk/provider-utils@5.0.0-beta.4
|
|
919
|
+
|
|
920
|
+
## 4.0.0-beta.9
|
|
921
|
+
|
|
922
|
+
### Patch Changes
|
|
923
|
+
|
|
924
|
+
- 156cdf0: feat(openai): add new tool search tool
|
|
925
|
+
|
|
926
|
+
## 4.0.0-beta.8
|
|
927
|
+
|
|
928
|
+
### Patch Changes
|
|
929
|
+
|
|
930
|
+
- Updated dependencies [f7d4f01]
|
|
931
|
+
- @ai-sdk/provider-utils@5.0.0-beta.3
|
|
932
|
+
- @ai-sdk/provider@4.0.0-beta.2
|
|
933
|
+
|
|
934
|
+
## 4.0.0-beta.7
|
|
935
|
+
|
|
936
|
+
### Patch Changes
|
|
937
|
+
|
|
938
|
+
- Updated dependencies [5c2a5a2]
|
|
939
|
+
- @ai-sdk/provider@4.0.0-beta.1
|
|
940
|
+
- @ai-sdk/provider-utils@5.0.0-beta.2
|
|
941
|
+
|
|
942
|
+
## 4.0.0-beta.6
|
|
943
|
+
|
|
944
|
+
### Patch Changes
|
|
945
|
+
|
|
946
|
+
- 83f9d04: feat(openai): upgrade v3 specs to v4
|
|
947
|
+
|
|
948
|
+
## 4.0.0-beta.5
|
|
949
|
+
|
|
950
|
+
### Patch Changes
|
|
951
|
+
|
|
952
|
+
- ac18f89: feat(provider/openai): add `gpt-5.3-chat-latest`
|
|
953
|
+
|
|
954
|
+
## 4.0.0-beta.4
|
|
955
|
+
|
|
956
|
+
### Patch Changes
|
|
957
|
+
|
|
958
|
+
- a71d345: fix(provider/openai): drop reasoning parts without encrypted content when store: false
|
|
959
|
+
|
|
960
|
+
## 4.0.0-beta.3
|
|
961
|
+
|
|
962
|
+
### Patch Changes
|
|
963
|
+
|
|
964
|
+
- 45b3d76: fix(security): prevent streaming tool calls from finalizing on parsable partial JSON
|
|
965
|
+
|
|
966
|
+
Streaming tool call arguments were finalized using `isParsableJson()` as a heuristic for completion. If partial accumulated JSON happened to be valid JSON before all chunks arrived, the tool call would be executed with incomplete arguments. Tool call finalization now only occurs in `flush()` after the stream is fully consumed.
|
|
967
|
+
|
|
968
|
+
- f7295cb: revert incorrect fix https://github.com/vercel/ai/pull/13172
|
|
969
|
+
|
|
970
|
+
## 4.0.0-beta.2
|
|
971
|
+
|
|
972
|
+
### Patch Changes
|
|
973
|
+
|
|
974
|
+
- Updated dependencies [531251e]
|
|
975
|
+
- @ai-sdk/provider-utils@5.0.0-beta.1
|
|
976
|
+
|
|
977
|
+
## 4.0.0-beta.1
|
|
978
|
+
|
|
979
|
+
### Patch Changes
|
|
980
|
+
|
|
981
|
+
- 7afaece: feat(provider/openai): add GPT-5.4 model support
|
|
982
|
+
|
|
983
|
+
## 4.0.0-beta.0
|
|
984
|
+
|
|
985
|
+
### Major Changes
|
|
986
|
+
|
|
987
|
+
- 8359612: Start v7 pre-release
|
|
988
|
+
|
|
989
|
+
### Patch Changes
|
|
990
|
+
|
|
991
|
+
- Updated dependencies [8359612]
|
|
992
|
+
- @ai-sdk/provider@4.0.0-beta.0
|
|
993
|
+
- @ai-sdk/provider-utils@5.0.0-beta.0
|
|
76
994
|
|
|
77
995
|
## 3.0.41
|
|
78
996
|
|
|
@@ -243,7 +1161,6 @@
|
|
|
243
1161
|
### Patch Changes
|
|
244
1162
|
|
|
245
1163
|
- 04c89b1: Provide Responses API providerMetadata types at the message / reasoning level.
|
|
246
|
-
|
|
247
1164
|
- Export the following types for use in client code:
|
|
248
1165
|
- `OpenaiResponsesProviderMetadata`
|
|
249
1166
|
- `OpenaiResponsesReasoningProviderMetadata`
|
|
@@ -324,7 +1241,6 @@
|
|
|
324
1241
|
### Patch Changes
|
|
325
1242
|
|
|
326
1243
|
- 330bd92: Fix Responses `code_interpreter` annotations and add typed providerMetadata
|
|
327
|
-
|
|
328
1244
|
- Align Responses API `code_interpreter` annotation types with the official spec.
|
|
329
1245
|
- Add tests to ensure the overlapping parts of the Zod schemas used by `doGenerate` and `doStream` stay in sync.
|
|
330
1246
|
- Export the following types for use in client code:
|