ai 7.0.91 → 7.0.93
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 +27 -0
- package/dist/index.d.ts +178 -159
- package/dist/index.js +143 -25
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +1 -1
- package/dist/internal/index.js +2 -2
- package/dist/internal/index.js.map +1 -1
- package/docs/02-foundations/02-providers-and-models.mdx +1 -0
- package/docs/03-agents/04-loop-control.mdx +5 -3
- package/docs/03-agents/07-workflow-agent.mdx +27 -6
- package/docs/03-ai-sdk-core/10-generating-structured-data.mdx +15 -3
- package/docs/03-ai-sdk-core/16-mcp-tools.mdx +64 -1
- package/docs/03-ai-sdk-core/35-image-generation.mdx +7 -0
- package/docs/03-ai-sdk-core/36-transcription.mdx +36 -35
- package/docs/03-ai-sdk-harnesses/02-harness-agent.mdx +36 -0
- package/docs/04-ai-sdk-ui/20-streaming-data.mdx +11 -6
- package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +14 -0
- package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +30 -3
- package/docs/07-reference/01-ai-sdk-core/28-output.mdx +27 -1
- package/docs/07-reference/01-ai-sdk-core/80-smooth-stream.mdx +1 -1
- package/docs/07-reference/02-ai-sdk-ui/01-use-chat.mdx +1 -1
- package/docs/07-reference/02-ai-sdk-ui/40-create-ui-message-stream.mdx +4 -0
- package/docs/07-reference/02-ai-sdk-ui/41-create-ui-message-stream-response.mdx +6 -1
- package/docs/07-reference/04-ai-sdk-workflow/01-workflow-agent.mdx +42 -28
- package/docs/07-reference/05-ai-sdk-errors/ai-no-image-generated-error.mdx +7 -0
- package/package.json +6 -6
- package/src/agent/tool-loop-agent-settings.ts +15 -0
- package/src/embed/embed-many.ts +27 -2
- package/src/error/no-image-generated-error.ts +9 -0
- package/src/generate-image/generate-image.ts +1 -1
- package/src/generate-text/generate-text-events.ts +1 -1
- package/src/generate-text/output.ts +111 -1
- package/src/generate-text/smooth-stream.ts +19 -4
- package/src/generate-text/stream-text.ts +2 -6
- package/src/ui/call-completion-api.ts +1 -1
- package/src/ui/chat.ts +1 -1
- package/src/ui/convert-to-model-messages.ts +8 -2
- package/src/ui/http-chat-transport.ts +2 -2
- package/src/ui/validate-ui-messages.ts +14 -0
- package/src/util/async-iterable-stream.ts +1 -1
- package/src/util/data-url.ts +1 -1
- package/src/util/merge-abort-signals.ts +1 -1
|
@@ -201,7 +201,7 @@ export abstract class HttpChatTransport<
|
|
|
201
201
|
|
|
202
202
|
if (!response.ok) {
|
|
203
203
|
throw new Error(
|
|
204
|
-
(await response.text())
|
|
204
|
+
(await response.text()) || 'Failed to fetch the chat response.',
|
|
205
205
|
);
|
|
206
206
|
}
|
|
207
207
|
|
|
@@ -257,7 +257,7 @@ export abstract class HttpChatTransport<
|
|
|
257
257
|
|
|
258
258
|
if (!response.ok) {
|
|
259
259
|
throw new Error(
|
|
260
|
-
(await response.text())
|
|
260
|
+
(await response.text()) || 'Failed to fetch the chat response.',
|
|
261
261
|
);
|
|
262
262
|
}
|
|
263
263
|
|
|
@@ -117,6 +117,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
117
117
|
type: z.literal('dynamic-tool'),
|
|
118
118
|
toolName: z.string(),
|
|
119
119
|
toolCallId: z.string(),
|
|
120
|
+
title: z.string().optional(),
|
|
120
121
|
toolMetadata: toolMetadataSchema.optional(),
|
|
121
122
|
state: z.literal('input-streaming'),
|
|
122
123
|
input: z.unknown().optional(),
|
|
@@ -130,6 +131,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
130
131
|
type: z.literal('dynamic-tool'),
|
|
131
132
|
toolName: z.string(),
|
|
132
133
|
toolCallId: z.string(),
|
|
134
|
+
title: z.string().optional(),
|
|
133
135
|
toolMetadata: toolMetadataSchema.optional(),
|
|
134
136
|
state: z.literal('input-available'),
|
|
135
137
|
input: z.unknown(),
|
|
@@ -143,6 +145,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
143
145
|
type: z.literal('dynamic-tool'),
|
|
144
146
|
toolName: z.string(),
|
|
145
147
|
toolCallId: z.string(),
|
|
148
|
+
title: z.string().optional(),
|
|
146
149
|
toolMetadata: toolMetadataSchema.optional(),
|
|
147
150
|
state: z.literal('approval-requested'),
|
|
148
151
|
input: z.unknown(),
|
|
@@ -164,6 +167,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
164
167
|
type: z.literal('dynamic-tool'),
|
|
165
168
|
toolName: z.string(),
|
|
166
169
|
toolCallId: z.string(),
|
|
170
|
+
title: z.string().optional(),
|
|
167
171
|
toolMetadata: toolMetadataSchema.optional(),
|
|
168
172
|
state: z.literal('approval-responded'),
|
|
169
173
|
input: z.unknown(),
|
|
@@ -185,6 +189,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
185
189
|
type: z.literal('dynamic-tool'),
|
|
186
190
|
toolName: z.string(),
|
|
187
191
|
toolCallId: z.string(),
|
|
192
|
+
title: z.string().optional(),
|
|
188
193
|
toolMetadata: toolMetadataSchema.optional(),
|
|
189
194
|
state: z.literal('output-available'),
|
|
190
195
|
input: z.unknown(),
|
|
@@ -210,6 +215,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
210
215
|
type: z.literal('dynamic-tool'),
|
|
211
216
|
toolName: z.string(),
|
|
212
217
|
toolCallId: z.string(),
|
|
218
|
+
title: z.string().optional(),
|
|
213
219
|
toolMetadata: toolMetadataSchema.optional(),
|
|
214
220
|
state: z.literal('output-error'),
|
|
215
221
|
input: z.unknown().optional(),
|
|
@@ -235,6 +241,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
235
241
|
type: z.literal('dynamic-tool'),
|
|
236
242
|
toolName: z.string(),
|
|
237
243
|
toolCallId: z.string(),
|
|
244
|
+
title: z.string().optional(),
|
|
238
245
|
toolMetadata: toolMetadataSchema.optional(),
|
|
239
246
|
state: z.literal('output-denied'),
|
|
240
247
|
input: z.unknown(),
|
|
@@ -255,6 +262,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
255
262
|
z.object({
|
|
256
263
|
type: z.string().startsWith('tool-'),
|
|
257
264
|
toolCallId: z.string(),
|
|
265
|
+
title: z.string().optional(),
|
|
258
266
|
toolMetadata: toolMetadataSchema.optional(),
|
|
259
267
|
state: z.literal('input-streaming'),
|
|
260
268
|
providerExecuted: z.boolean().optional(),
|
|
@@ -267,6 +275,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
267
275
|
z.object({
|
|
268
276
|
type: z.string().startsWith('tool-'),
|
|
269
277
|
toolCallId: z.string(),
|
|
278
|
+
title: z.string().optional(),
|
|
270
279
|
toolMetadata: toolMetadataSchema.optional(),
|
|
271
280
|
state: z.literal('input-available'),
|
|
272
281
|
providerExecuted: z.boolean().optional(),
|
|
@@ -279,6 +288,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
279
288
|
z.object({
|
|
280
289
|
type: z.string().startsWith('tool-'),
|
|
281
290
|
toolCallId: z.string(),
|
|
291
|
+
title: z.string().optional(),
|
|
282
292
|
toolMetadata: toolMetadataSchema.optional(),
|
|
283
293
|
state: z.literal('approval-requested'),
|
|
284
294
|
input: z.unknown(),
|
|
@@ -299,6 +309,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
299
309
|
z.object({
|
|
300
310
|
type: z.string().startsWith('tool-'),
|
|
301
311
|
toolCallId: z.string(),
|
|
312
|
+
title: z.string().optional(),
|
|
302
313
|
toolMetadata: toolMetadataSchema.optional(),
|
|
303
314
|
state: z.literal('approval-responded'),
|
|
304
315
|
input: z.unknown(),
|
|
@@ -319,6 +330,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
319
330
|
z.object({
|
|
320
331
|
type: z.string().startsWith('tool-'),
|
|
321
332
|
toolCallId: z.string(),
|
|
333
|
+
title: z.string().optional(),
|
|
322
334
|
toolMetadata: toolMetadataSchema.optional(),
|
|
323
335
|
state: z.literal('output-available'),
|
|
324
336
|
providerExecuted: z.boolean().optional(),
|
|
@@ -343,6 +355,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
343
355
|
z.object({
|
|
344
356
|
type: z.string().startsWith('tool-'),
|
|
345
357
|
toolCallId: z.string(),
|
|
358
|
+
title: z.string().optional(),
|
|
346
359
|
toolMetadata: toolMetadataSchema.optional(),
|
|
347
360
|
state: z.literal('output-error'),
|
|
348
361
|
providerExecuted: z.boolean().optional(),
|
|
@@ -367,6 +380,7 @@ const uiMessagesSchema = lazySchema(() =>
|
|
|
367
380
|
z.object({
|
|
368
381
|
type: z.string().startsWith('tool-'),
|
|
369
382
|
toolCallId: z.string(),
|
|
383
|
+
title: z.string().optional(),
|
|
370
384
|
toolMetadata: toolMetadataSchema.optional(),
|
|
371
385
|
state: z.literal('output-denied'),
|
|
372
386
|
providerExecuted: z.boolean().optional(),
|
|
@@ -43,7 +43,7 @@ export function asAsyncIterableStream<T>(
|
|
|
43
43
|
* Implements the async iterator protocol for the stream.
|
|
44
44
|
* Ensures proper cleanup (cancelling and releasing the reader) on completion, early exit, or error.
|
|
45
45
|
*/
|
|
46
|
-
(stream as
|
|
46
|
+
(stream as unknown as AsyncIterable<T>)[Symbol.asyncIterator] = function (
|
|
47
47
|
this: ReadableStream<T>,
|
|
48
48
|
): AsyncIterator<T> {
|
|
49
49
|
const reader = this.getReader();
|
package/src/util/data-url.ts
CHANGED
|
@@ -14,7 +14,7 @@ export function mergeAbortSignals(
|
|
|
14
14
|
...signals: (AbortSignal | null | undefined | number)[]
|
|
15
15
|
): AbortSignal | undefined {
|
|
16
16
|
const validSignals = filterNullable(...signals).map(signal =>
|
|
17
|
-
signal
|
|
17
|
+
typeof signal === 'number' ? AbortSignal.timeout(signal) : signal,
|
|
18
18
|
);
|
|
19
19
|
|
|
20
20
|
return validSignals.length === 0
|