ai 7.0.57 → 7.0.59
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 +31 -0
- package/dist/index.d.ts +9 -8
- package/dist/index.js +563 -534
- package/dist/index.js.map +1 -1
- package/dist/internal/index.js +183 -152
- package/dist/internal/index.js.map +1 -1
- package/docs/03-ai-sdk-core/38-video-generation.mdx +16 -0
- package/docs/03-ai-sdk-harnesses/03-tools.mdx +3 -1
- package/docs/03-ai-sdk-harnesses/05-harness-adapters.mdx +2 -0
- package/docs/06-advanced/02-stopping-streams.mdx +22 -1
- package/docs/06-advanced/04-caching.mdx +1 -3
- package/docs/06-advanced/06-rate-limiting.mdx +5 -6
- package/docs/06-advanced/10-vercel-deployment-guide.mdx +41 -0
- package/docs/07-reference/01-ai-sdk-core/13-generate-video.mdx +1 -1
- package/package.json +4 -4
- package/src/agent/tool-loop-agent.ts +2 -2
- package/src/generate-video/generate-video.ts +4 -3
- package/src/prompt/content-part.ts +18 -17
- package/src/prompt/message.ts +10 -12
- package/src/prompt/standardize-prompt.ts +1 -1
- package/src/types/json-value.ts +2 -2
- package/src/types/provider-metadata.ts +2 -2
- package/src/ui/validate-ui-messages.ts +2 -2
- package/src/ui-message-stream/ui-message-chunks.ts +2 -2
- package/src/util/zod.ts +43 -0
package/dist/index.js
CHANGED
|
@@ -1143,7 +1143,7 @@ import {
|
|
|
1143
1143
|
} from "@ai-sdk/provider-utils";
|
|
1144
1144
|
|
|
1145
1145
|
// src/version.ts
|
|
1146
|
-
var VERSION = true ? "7.0.
|
|
1146
|
+
var VERSION = true ? "7.0.59" : "0.0.0-test";
|
|
1147
1147
|
|
|
1148
1148
|
// src/util/download/download.ts
|
|
1149
1149
|
var download = async ({
|
|
@@ -2101,8 +2101,8 @@ import {
|
|
|
2101
2101
|
} from "@ai-sdk/provider-utils";
|
|
2102
2102
|
|
|
2103
2103
|
// src/util/is-non-empty-object.ts
|
|
2104
|
-
function isNonEmptyObject(
|
|
2105
|
-
return
|
|
2104
|
+
function isNonEmptyObject(object3) {
|
|
2105
|
+
return object3 != null && Object.keys(object3).length > 0;
|
|
2106
2106
|
}
|
|
2107
2107
|
|
|
2108
2108
|
// src/prompt/prepare-tools.ts
|
|
@@ -2227,16 +2227,48 @@ import {
|
|
|
2227
2227
|
asArray as asArray2,
|
|
2228
2228
|
safeValidateTypes
|
|
2229
2229
|
} from "@ai-sdk/provider-utils";
|
|
2230
|
-
import { z as z5 } from "zod/v4";
|
|
2231
2230
|
|
|
2232
|
-
// src/
|
|
2233
|
-
import {
|
|
2234
|
-
|
|
2235
|
-
|
|
2236
|
-
|
|
2231
|
+
// src/util/zod.ts
|
|
2232
|
+
import {
|
|
2233
|
+
array,
|
|
2234
|
+
boolean,
|
|
2235
|
+
custom,
|
|
2236
|
+
discriminatedUnion,
|
|
2237
|
+
enum as enumType,
|
|
2238
|
+
instanceof as instanceOf,
|
|
2239
|
+
lazy,
|
|
2240
|
+
literal,
|
|
2241
|
+
looseObject,
|
|
2242
|
+
never,
|
|
2243
|
+
null as nullType,
|
|
2244
|
+
number,
|
|
2245
|
+
object,
|
|
2246
|
+
record,
|
|
2247
|
+
string,
|
|
2248
|
+
union,
|
|
2249
|
+
unknown
|
|
2250
|
+
} from "zod/v4";
|
|
2251
|
+
var z = {
|
|
2252
|
+
array,
|
|
2253
|
+
boolean,
|
|
2254
|
+
custom,
|
|
2255
|
+
discriminatedUnion,
|
|
2256
|
+
enum: enumType,
|
|
2257
|
+
instanceof: instanceOf,
|
|
2258
|
+
lazy,
|
|
2259
|
+
literal,
|
|
2260
|
+
looseObject,
|
|
2261
|
+
never,
|
|
2262
|
+
null: nullType,
|
|
2263
|
+
number,
|
|
2264
|
+
object,
|
|
2265
|
+
record,
|
|
2266
|
+
string,
|
|
2267
|
+
union,
|
|
2268
|
+
unknown
|
|
2269
|
+
};
|
|
2237
2270
|
|
|
2238
2271
|
// src/types/json-value.ts
|
|
2239
|
-
import { z } from "zod/v4";
|
|
2240
2272
|
var jsonValueSchema = z.lazy(
|
|
2241
2273
|
() => z.union([
|
|
2242
2274
|
z.null(),
|
|
@@ -2249,189 +2281,188 @@ var jsonValueSchema = z.lazy(
|
|
|
2249
2281
|
);
|
|
2250
2282
|
|
|
2251
2283
|
// src/types/provider-metadata.ts
|
|
2252
|
-
var providerMetadataSchema =
|
|
2253
|
-
|
|
2254
|
-
|
|
2284
|
+
var providerMetadataSchema = z.record(
|
|
2285
|
+
z.string(),
|
|
2286
|
+
z.record(z.string(), jsonValueSchema.optional())
|
|
2255
2287
|
);
|
|
2256
2288
|
|
|
2257
2289
|
// src/prompt/content-part.ts
|
|
2258
2290
|
import {
|
|
2259
2291
|
isBuffer as isBuffer2
|
|
2260
2292
|
} from "@ai-sdk/provider-utils";
|
|
2261
|
-
|
|
2262
|
-
|
|
2263
|
-
|
|
2264
|
-
|
|
2265
|
-
|
|
2266
|
-
z3.custom(isBuffer2, { message: "Must be a Buffer" })
|
|
2293
|
+
var fileInlineDataSchema = z.union([
|
|
2294
|
+
z.string(),
|
|
2295
|
+
z.instanceof(Uint8Array),
|
|
2296
|
+
z.instanceof(ArrayBuffer),
|
|
2297
|
+
z.custom(isBuffer2, { message: "Must be a Buffer" })
|
|
2267
2298
|
]);
|
|
2268
|
-
var providerReferenceSchema =
|
|
2269
|
-
var textPartSchema =
|
|
2270
|
-
type:
|
|
2271
|
-
text:
|
|
2299
|
+
var providerReferenceSchema = z.record(z.string(), z.string());
|
|
2300
|
+
var textPartSchema = z.object({
|
|
2301
|
+
type: z.literal("text"),
|
|
2302
|
+
text: z.string(),
|
|
2272
2303
|
providerOptions: providerMetadataSchema.optional()
|
|
2273
2304
|
});
|
|
2274
|
-
var imagePartSchema =
|
|
2275
|
-
type:
|
|
2276
|
-
image:
|
|
2305
|
+
var imagePartSchema = z.object({
|
|
2306
|
+
type: z.literal("image"),
|
|
2307
|
+
image: z.union([
|
|
2277
2308
|
fileInlineDataSchema,
|
|
2278
|
-
|
|
2309
|
+
z.instanceof(URL),
|
|
2279
2310
|
providerReferenceSchema
|
|
2280
2311
|
]),
|
|
2281
|
-
mediaType:
|
|
2312
|
+
mediaType: z.string().optional(),
|
|
2282
2313
|
providerOptions: providerMetadataSchema.optional()
|
|
2283
2314
|
});
|
|
2284
|
-
var taggedFileDataSchema =
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
type:
|
|
2315
|
+
var taggedFileDataSchema = z.discriminatedUnion("type", [
|
|
2316
|
+
z.object({ type: z.literal("data"), data: fileInlineDataSchema }),
|
|
2317
|
+
z.object({ type: z.literal("url"), url: z.instanceof(URL) }),
|
|
2318
|
+
z.object({
|
|
2319
|
+
type: z.literal("reference"),
|
|
2289
2320
|
reference: providerReferenceSchema
|
|
2290
2321
|
}),
|
|
2291
|
-
|
|
2322
|
+
z.object({ type: z.literal("text"), text: z.string() })
|
|
2292
2323
|
]);
|
|
2293
|
-
var taggedReasoningFileDataSchema =
|
|
2294
|
-
|
|
2295
|
-
|
|
2324
|
+
var taggedReasoningFileDataSchema = z.discriminatedUnion("type", [
|
|
2325
|
+
z.object({ type: z.literal("data"), data: fileInlineDataSchema }),
|
|
2326
|
+
z.object({ type: z.literal("url"), url: z.instanceof(URL) })
|
|
2296
2327
|
]);
|
|
2297
|
-
var filePartSchema =
|
|
2298
|
-
type:
|
|
2299
|
-
data:
|
|
2328
|
+
var filePartSchema = z.object({
|
|
2329
|
+
type: z.literal("file"),
|
|
2330
|
+
data: z.union([
|
|
2300
2331
|
taggedFileDataSchema,
|
|
2301
2332
|
fileInlineDataSchema,
|
|
2302
|
-
|
|
2333
|
+
z.instanceof(URL),
|
|
2303
2334
|
providerReferenceSchema
|
|
2304
2335
|
]),
|
|
2305
|
-
filename:
|
|
2306
|
-
mediaType:
|
|
2336
|
+
filename: z.string().optional(),
|
|
2337
|
+
mediaType: z.string(),
|
|
2307
2338
|
providerOptions: providerMetadataSchema.optional()
|
|
2308
2339
|
});
|
|
2309
|
-
var reasoningPartSchema =
|
|
2310
|
-
type:
|
|
2311
|
-
text:
|
|
2340
|
+
var reasoningPartSchema = z.object({
|
|
2341
|
+
type: z.literal("reasoning"),
|
|
2342
|
+
text: z.string(),
|
|
2312
2343
|
providerOptions: providerMetadataSchema.optional()
|
|
2313
2344
|
});
|
|
2314
|
-
var customPartSchema =
|
|
2315
|
-
type:
|
|
2316
|
-
kind:
|
|
2345
|
+
var customPartSchema = z.object({
|
|
2346
|
+
type: z.literal("custom"),
|
|
2347
|
+
kind: z.string().transform((value) => value),
|
|
2317
2348
|
providerOptions: providerMetadataSchema.optional()
|
|
2318
2349
|
});
|
|
2319
|
-
var reasoningFilePartSchema =
|
|
2320
|
-
type:
|
|
2321
|
-
data:
|
|
2350
|
+
var reasoningFilePartSchema = z.object({
|
|
2351
|
+
type: z.literal("reasoning-file"),
|
|
2352
|
+
data: z.union([
|
|
2322
2353
|
taggedReasoningFileDataSchema,
|
|
2323
2354
|
fileInlineDataSchema,
|
|
2324
|
-
|
|
2355
|
+
z.instanceof(URL)
|
|
2325
2356
|
]),
|
|
2326
|
-
mediaType:
|
|
2357
|
+
mediaType: z.string(),
|
|
2327
2358
|
providerOptions: providerMetadataSchema.optional()
|
|
2328
2359
|
});
|
|
2329
|
-
var toolCallPartSchema =
|
|
2330
|
-
type:
|
|
2331
|
-
toolCallId:
|
|
2332
|
-
toolName:
|
|
2333
|
-
input:
|
|
2360
|
+
var toolCallPartSchema = z.object({
|
|
2361
|
+
type: z.literal("tool-call"),
|
|
2362
|
+
toolCallId: z.string(),
|
|
2363
|
+
toolName: z.string(),
|
|
2364
|
+
input: z.unknown(),
|
|
2334
2365
|
providerOptions: providerMetadataSchema.optional(),
|
|
2335
|
-
providerExecuted:
|
|
2366
|
+
providerExecuted: z.boolean().optional()
|
|
2336
2367
|
});
|
|
2337
|
-
var outputSchema =
|
|
2368
|
+
var outputSchema = z.discriminatedUnion(
|
|
2338
2369
|
"type",
|
|
2339
2370
|
[
|
|
2340
|
-
|
|
2341
|
-
type:
|
|
2342
|
-
value:
|
|
2371
|
+
z.object({
|
|
2372
|
+
type: z.literal("text"),
|
|
2373
|
+
value: z.string(),
|
|
2343
2374
|
providerOptions: providerMetadataSchema.optional()
|
|
2344
2375
|
}),
|
|
2345
|
-
|
|
2346
|
-
type:
|
|
2376
|
+
z.object({
|
|
2377
|
+
type: z.literal("json"),
|
|
2347
2378
|
value: jsonValueSchema,
|
|
2348
2379
|
providerOptions: providerMetadataSchema.optional()
|
|
2349
2380
|
}),
|
|
2350
|
-
|
|
2351
|
-
type:
|
|
2352
|
-
reason:
|
|
2381
|
+
z.object({
|
|
2382
|
+
type: z.literal("execution-denied"),
|
|
2383
|
+
reason: z.string().optional(),
|
|
2353
2384
|
providerOptions: providerMetadataSchema.optional()
|
|
2354
2385
|
}),
|
|
2355
|
-
|
|
2356
|
-
type:
|
|
2357
|
-
value:
|
|
2386
|
+
z.object({
|
|
2387
|
+
type: z.literal("error-text"),
|
|
2388
|
+
value: z.string(),
|
|
2358
2389
|
providerOptions: providerMetadataSchema.optional()
|
|
2359
2390
|
}),
|
|
2360
|
-
|
|
2361
|
-
type:
|
|
2391
|
+
z.object({
|
|
2392
|
+
type: z.literal("error-json"),
|
|
2362
2393
|
value: jsonValueSchema,
|
|
2363
2394
|
providerOptions: providerMetadataSchema.optional()
|
|
2364
2395
|
}),
|
|
2365
|
-
|
|
2366
|
-
type:
|
|
2367
|
-
value:
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
type:
|
|
2371
|
-
text:
|
|
2396
|
+
z.object({
|
|
2397
|
+
type: z.literal("content"),
|
|
2398
|
+
value: z.array(
|
|
2399
|
+
z.union([
|
|
2400
|
+
z.object({
|
|
2401
|
+
type: z.literal("text"),
|
|
2402
|
+
text: z.string(),
|
|
2372
2403
|
providerOptions: providerMetadataSchema.optional()
|
|
2373
2404
|
}),
|
|
2374
|
-
|
|
2375
|
-
type:
|
|
2405
|
+
z.object({
|
|
2406
|
+
type: z.literal("file"),
|
|
2376
2407
|
data: taggedFileDataSchema,
|
|
2377
|
-
mediaType:
|
|
2378
|
-
filename:
|
|
2408
|
+
mediaType: z.string(),
|
|
2409
|
+
filename: z.string().optional(),
|
|
2379
2410
|
providerOptions: providerMetadataSchema.optional()
|
|
2380
2411
|
}),
|
|
2381
|
-
|
|
2412
|
+
z.object({
|
|
2382
2413
|
// Deprecated.
|
|
2383
|
-
type:
|
|
2384
|
-
data:
|
|
2385
|
-
mediaType:
|
|
2386
|
-
filename:
|
|
2414
|
+
type: z.literal("file-data"),
|
|
2415
|
+
data: z.string(),
|
|
2416
|
+
mediaType: z.string(),
|
|
2417
|
+
filename: z.string().optional(),
|
|
2387
2418
|
providerOptions: providerMetadataSchema.optional()
|
|
2388
2419
|
}),
|
|
2389
|
-
|
|
2420
|
+
z.object({
|
|
2390
2421
|
// Deprecated.
|
|
2391
|
-
type:
|
|
2392
|
-
url:
|
|
2393
|
-
mediaType:
|
|
2422
|
+
type: z.literal("file-url"),
|
|
2423
|
+
url: z.string(),
|
|
2424
|
+
mediaType: z.string().optional(),
|
|
2394
2425
|
providerOptions: providerMetadataSchema.optional()
|
|
2395
2426
|
}),
|
|
2396
|
-
|
|
2427
|
+
z.object({
|
|
2397
2428
|
// Deprecated.
|
|
2398
|
-
type:
|
|
2399
|
-
fileId:
|
|
2429
|
+
type: z.literal("file-id"),
|
|
2430
|
+
fileId: z.union([z.string(), z.record(z.string(), z.string())]),
|
|
2400
2431
|
providerOptions: providerMetadataSchema.optional()
|
|
2401
2432
|
}),
|
|
2402
|
-
|
|
2433
|
+
z.object({
|
|
2403
2434
|
// Deprecated.
|
|
2404
|
-
type:
|
|
2405
|
-
providerReference:
|
|
2435
|
+
type: z.literal("file-reference"),
|
|
2436
|
+
providerReference: z.record(z.string(), z.string()),
|
|
2406
2437
|
providerOptions: providerMetadataSchema.optional()
|
|
2407
2438
|
}),
|
|
2408
|
-
|
|
2439
|
+
z.object({
|
|
2409
2440
|
// Deprecated.
|
|
2410
|
-
type:
|
|
2411
|
-
data:
|
|
2412
|
-
mediaType:
|
|
2441
|
+
type: z.literal("image-data"),
|
|
2442
|
+
data: z.string(),
|
|
2443
|
+
mediaType: z.string(),
|
|
2413
2444
|
providerOptions: providerMetadataSchema.optional()
|
|
2414
2445
|
}),
|
|
2415
|
-
|
|
2446
|
+
z.object({
|
|
2416
2447
|
// Deprecated.
|
|
2417
|
-
type:
|
|
2418
|
-
url:
|
|
2448
|
+
type: z.literal("image-url"),
|
|
2449
|
+
url: z.string(),
|
|
2419
2450
|
providerOptions: providerMetadataSchema.optional()
|
|
2420
2451
|
}),
|
|
2421
|
-
|
|
2452
|
+
z.object({
|
|
2422
2453
|
// Deprecated.
|
|
2423
|
-
type:
|
|
2424
|
-
fileId:
|
|
2454
|
+
type: z.literal("image-file-id"),
|
|
2455
|
+
fileId: z.union([z.string(), z.record(z.string(), z.string())]),
|
|
2425
2456
|
providerOptions: providerMetadataSchema.optional()
|
|
2426
2457
|
}),
|
|
2427
|
-
|
|
2458
|
+
z.object({
|
|
2428
2459
|
// Deprecated.
|
|
2429
|
-
type:
|
|
2430
|
-
providerReference:
|
|
2460
|
+
type: z.literal("image-file-reference"),
|
|
2461
|
+
providerReference: z.record(z.string(), z.string()),
|
|
2431
2462
|
providerOptions: providerMetadataSchema.optional()
|
|
2432
2463
|
}),
|
|
2433
|
-
|
|
2434
|
-
type:
|
|
2464
|
+
z.object({
|
|
2465
|
+
type: z.literal("custom"),
|
|
2435
2466
|
providerOptions: providerMetadataSchema.optional()
|
|
2436
2467
|
})
|
|
2437
2468
|
])
|
|
@@ -2439,47 +2470,47 @@ var outputSchema = z3.discriminatedUnion(
|
|
|
2439
2470
|
})
|
|
2440
2471
|
]
|
|
2441
2472
|
);
|
|
2442
|
-
var toolResultPartSchema =
|
|
2443
|
-
type:
|
|
2444
|
-
toolCallId:
|
|
2445
|
-
toolName:
|
|
2473
|
+
var toolResultPartSchema = z.object({
|
|
2474
|
+
type: z.literal("tool-result"),
|
|
2475
|
+
toolCallId: z.string(),
|
|
2476
|
+
toolName: z.string(),
|
|
2446
2477
|
output: outputSchema,
|
|
2447
2478
|
providerOptions: providerMetadataSchema.optional()
|
|
2448
2479
|
});
|
|
2449
|
-
var toolApprovalRequestSchema =
|
|
2450
|
-
type: z3.literal("tool-approval-request"),
|
|
2451
|
-
approvalId: z3.string(),
|
|
2452
|
-
toolCallId: z3.string()
|
|
2453
|
-
});
|
|
2454
|
-
var toolApprovalResponseSchema = z3.object({
|
|
2455
|
-
type: z3.literal("tool-approval-response"),
|
|
2456
|
-
approvalId: z3.string(),
|
|
2457
|
-
approved: z3.boolean(),
|
|
2458
|
-
reason: z3.string().optional()
|
|
2459
|
-
});
|
|
2460
|
-
|
|
2461
|
-
// src/prompt/message.ts
|
|
2462
|
-
var systemModelMessageSchema = z4.object(
|
|
2480
|
+
var toolApprovalRequestSchema = z.object(
|
|
2463
2481
|
{
|
|
2464
|
-
|
|
2465
|
-
|
|
2466
|
-
|
|
2482
|
+
type: z.literal("tool-approval-request"),
|
|
2483
|
+
approvalId: z.string(),
|
|
2484
|
+
toolCallId: z.string()
|
|
2467
2485
|
}
|
|
2468
2486
|
);
|
|
2469
|
-
var
|
|
2470
|
-
|
|
2471
|
-
|
|
2472
|
-
|
|
2473
|
-
|
|
2487
|
+
var toolApprovalResponseSchema = z.object({
|
|
2488
|
+
type: z.literal("tool-approval-response"),
|
|
2489
|
+
approvalId: z.string(),
|
|
2490
|
+
approved: z.boolean(),
|
|
2491
|
+
reason: z.string().optional()
|
|
2492
|
+
});
|
|
2493
|
+
|
|
2494
|
+
// src/prompt/message.ts
|
|
2495
|
+
var systemModelMessageSchema = z.object({
|
|
2496
|
+
role: z.literal("system"),
|
|
2497
|
+
content: z.string(),
|
|
2498
|
+
providerOptions: providerMetadataSchema.optional()
|
|
2499
|
+
});
|
|
2500
|
+
var userModelMessageSchema = z.object({
|
|
2501
|
+
role: z.literal("user"),
|
|
2502
|
+
content: z.union([
|
|
2503
|
+
z.string(),
|
|
2504
|
+
z.array(z.union([textPartSchema, imagePartSchema, filePartSchema]))
|
|
2474
2505
|
]),
|
|
2475
2506
|
providerOptions: providerMetadataSchema.optional()
|
|
2476
2507
|
});
|
|
2477
|
-
var assistantModelMessageSchema =
|
|
2478
|
-
role:
|
|
2479
|
-
content:
|
|
2480
|
-
|
|
2481
|
-
|
|
2482
|
-
|
|
2508
|
+
var assistantModelMessageSchema = z.object({
|
|
2509
|
+
role: z.literal("assistant"),
|
|
2510
|
+
content: z.union([
|
|
2511
|
+
z.string(),
|
|
2512
|
+
z.array(
|
|
2513
|
+
z.union([
|
|
2483
2514
|
textPartSchema,
|
|
2484
2515
|
customPartSchema,
|
|
2485
2516
|
filePartSchema,
|
|
@@ -2493,12 +2524,12 @@ var assistantModelMessageSchema = z4.object({
|
|
|
2493
2524
|
]),
|
|
2494
2525
|
providerOptions: providerMetadataSchema.optional()
|
|
2495
2526
|
});
|
|
2496
|
-
var toolModelMessageSchema =
|
|
2497
|
-
role:
|
|
2498
|
-
content:
|
|
2527
|
+
var toolModelMessageSchema = z.object({
|
|
2528
|
+
role: z.literal("tool"),
|
|
2529
|
+
content: z.array(z.union([toolResultPartSchema, toolApprovalResponseSchema])),
|
|
2499
2530
|
providerOptions: providerMetadataSchema.optional()
|
|
2500
2531
|
});
|
|
2501
|
-
var modelMessageSchema =
|
|
2532
|
+
var modelMessageSchema = z.union([
|
|
2502
2533
|
systemModelMessageSchema,
|
|
2503
2534
|
userModelMessageSchema,
|
|
2504
2535
|
assistantModelMessageSchema,
|
|
@@ -2555,7 +2586,7 @@ async function standardizePrompt({
|
|
|
2555
2586
|
}
|
|
2556
2587
|
const validationResult = await safeValidateTypes({
|
|
2557
2588
|
value: messages,
|
|
2558
|
-
schema:
|
|
2589
|
+
schema: z.array(modelMessageSchema)
|
|
2559
2590
|
});
|
|
2560
2591
|
if (!validationResult.success) {
|
|
2561
2592
|
throw new InvalidPromptError2({
|
|
@@ -3111,10 +3142,10 @@ var DefaultGeneratedFileWithType = class extends DefaultGeneratedFile {
|
|
|
3111
3142
|
// src/generate-text/output.ts
|
|
3112
3143
|
var output_exports = {};
|
|
3113
3144
|
__export(output_exports, {
|
|
3114
|
-
array: () =>
|
|
3145
|
+
array: () => array2,
|
|
3115
3146
|
choice: () => choice,
|
|
3116
3147
|
json: () => json,
|
|
3117
|
-
object: () =>
|
|
3148
|
+
object: () => object2,
|
|
3118
3149
|
text: () => text
|
|
3119
3150
|
});
|
|
3120
3151
|
import {
|
|
@@ -3497,7 +3528,7 @@ var text = () => ({
|
|
|
3497
3528
|
return void 0;
|
|
3498
3529
|
}
|
|
3499
3530
|
});
|
|
3500
|
-
var
|
|
3531
|
+
var object2 = ({
|
|
3501
3532
|
schema: inputSchema,
|
|
3502
3533
|
name: name23,
|
|
3503
3534
|
description
|
|
@@ -3560,7 +3591,7 @@ var object = ({
|
|
|
3560
3591
|
}
|
|
3561
3592
|
};
|
|
3562
3593
|
};
|
|
3563
|
-
var
|
|
3594
|
+
var array2 = ({
|
|
3564
3595
|
element: inputElementSchema,
|
|
3565
3596
|
name: name23,
|
|
3566
3597
|
description
|
|
@@ -6506,182 +6537,181 @@ function getResponseUIMessageId({
|
|
|
6506
6537
|
import { validateTypes as validateTypes2 } from "@ai-sdk/provider-utils";
|
|
6507
6538
|
|
|
6508
6539
|
// src/ui-message-stream/ui-message-chunks.ts
|
|
6509
|
-
import { z as z6 } from "zod/v4";
|
|
6510
6540
|
import { lazySchema, zodSchema } from "@ai-sdk/provider-utils";
|
|
6511
|
-
var toolMetadataSchema =
|
|
6512
|
-
|
|
6541
|
+
var toolMetadataSchema = z.record(
|
|
6542
|
+
z.string(),
|
|
6513
6543
|
jsonValueSchema.optional()
|
|
6514
6544
|
);
|
|
6515
6545
|
var uiMessageChunkSchema = lazySchema(
|
|
6516
6546
|
() => zodSchema(
|
|
6517
|
-
|
|
6518
|
-
|
|
6519
|
-
type:
|
|
6520
|
-
id:
|
|
6547
|
+
z.union([
|
|
6548
|
+
z.looseObject({
|
|
6549
|
+
type: z.literal("text-start"),
|
|
6550
|
+
id: z.string(),
|
|
6521
6551
|
providerMetadata: providerMetadataSchema.optional()
|
|
6522
6552
|
}),
|
|
6523
|
-
|
|
6524
|
-
type:
|
|
6525
|
-
id:
|
|
6526
|
-
delta:
|
|
6553
|
+
z.looseObject({
|
|
6554
|
+
type: z.literal("text-delta"),
|
|
6555
|
+
id: z.string(),
|
|
6556
|
+
delta: z.string(),
|
|
6527
6557
|
providerMetadata: providerMetadataSchema.optional()
|
|
6528
6558
|
}),
|
|
6529
|
-
|
|
6530
|
-
type:
|
|
6531
|
-
id:
|
|
6559
|
+
z.looseObject({
|
|
6560
|
+
type: z.literal("text-end"),
|
|
6561
|
+
id: z.string(),
|
|
6532
6562
|
providerMetadata: providerMetadataSchema.optional()
|
|
6533
6563
|
}),
|
|
6534
|
-
|
|
6535
|
-
type:
|
|
6536
|
-
errorText:
|
|
6564
|
+
z.looseObject({
|
|
6565
|
+
type: z.literal("error"),
|
|
6566
|
+
errorText: z.string()
|
|
6537
6567
|
}),
|
|
6538
|
-
|
|
6539
|
-
type:
|
|
6540
|
-
toolCallId:
|
|
6541
|
-
toolName:
|
|
6542
|
-
providerExecuted:
|
|
6568
|
+
z.looseObject({
|
|
6569
|
+
type: z.literal("tool-input-start"),
|
|
6570
|
+
toolCallId: z.string(),
|
|
6571
|
+
toolName: z.string(),
|
|
6572
|
+
providerExecuted: z.boolean().optional(),
|
|
6543
6573
|
providerMetadata: providerMetadataSchema.optional(),
|
|
6544
6574
|
toolMetadata: toolMetadataSchema.optional(),
|
|
6545
|
-
dynamic:
|
|
6546
|
-
title:
|
|
6575
|
+
dynamic: z.boolean().optional(),
|
|
6576
|
+
title: z.string().optional()
|
|
6547
6577
|
}),
|
|
6548
|
-
|
|
6549
|
-
type:
|
|
6550
|
-
toolCallId:
|
|
6551
|
-
inputTextDelta:
|
|
6578
|
+
z.looseObject({
|
|
6579
|
+
type: z.literal("tool-input-delta"),
|
|
6580
|
+
toolCallId: z.string(),
|
|
6581
|
+
inputTextDelta: z.string()
|
|
6552
6582
|
}),
|
|
6553
|
-
|
|
6554
|
-
type:
|
|
6555
|
-
toolCallId:
|
|
6556
|
-
toolName:
|
|
6557
|
-
input:
|
|
6558
|
-
providerExecuted:
|
|
6583
|
+
z.looseObject({
|
|
6584
|
+
type: z.literal("tool-input-available"),
|
|
6585
|
+
toolCallId: z.string(),
|
|
6586
|
+
toolName: z.string(),
|
|
6587
|
+
input: z.unknown(),
|
|
6588
|
+
providerExecuted: z.boolean().optional(),
|
|
6559
6589
|
providerMetadata: providerMetadataSchema.optional(),
|
|
6560
6590
|
toolMetadata: toolMetadataSchema.optional(),
|
|
6561
|
-
dynamic:
|
|
6562
|
-
title:
|
|
6591
|
+
dynamic: z.boolean().optional(),
|
|
6592
|
+
title: z.string().optional()
|
|
6563
6593
|
}),
|
|
6564
|
-
|
|
6565
|
-
type:
|
|
6566
|
-
toolCallId:
|
|
6567
|
-
toolName:
|
|
6568
|
-
input:
|
|
6569
|
-
providerExecuted:
|
|
6594
|
+
z.looseObject({
|
|
6595
|
+
type: z.literal("tool-input-error"),
|
|
6596
|
+
toolCallId: z.string(),
|
|
6597
|
+
toolName: z.string(),
|
|
6598
|
+
input: z.unknown(),
|
|
6599
|
+
providerExecuted: z.boolean().optional(),
|
|
6570
6600
|
providerMetadata: providerMetadataSchema.optional(),
|
|
6571
6601
|
toolMetadata: toolMetadataSchema.optional(),
|
|
6572
|
-
dynamic:
|
|
6573
|
-
errorText:
|
|
6574
|
-
title:
|
|
6602
|
+
dynamic: z.boolean().optional(),
|
|
6603
|
+
errorText: z.string(),
|
|
6604
|
+
title: z.string().optional()
|
|
6575
6605
|
}),
|
|
6576
|
-
|
|
6577
|
-
type:
|
|
6578
|
-
approvalId:
|
|
6579
|
-
toolCallId:
|
|
6580
|
-
isAutomatic:
|
|
6581
|
-
signature:
|
|
6606
|
+
z.looseObject({
|
|
6607
|
+
type: z.literal("tool-approval-request"),
|
|
6608
|
+
approvalId: z.string(),
|
|
6609
|
+
toolCallId: z.string(),
|
|
6610
|
+
isAutomatic: z.boolean().optional(),
|
|
6611
|
+
signature: z.string().optional()
|
|
6582
6612
|
}),
|
|
6583
|
-
|
|
6584
|
-
type:
|
|
6585
|
-
approvalId:
|
|
6586
|
-
approved:
|
|
6587
|
-
reason:
|
|
6588
|
-
providerExecuted:
|
|
6613
|
+
z.looseObject({
|
|
6614
|
+
type: z.literal("tool-approval-response"),
|
|
6615
|
+
approvalId: z.string(),
|
|
6616
|
+
approved: z.boolean(),
|
|
6617
|
+
reason: z.string().optional(),
|
|
6618
|
+
providerExecuted: z.boolean().optional(),
|
|
6589
6619
|
providerMetadata: providerMetadataSchema.optional()
|
|
6590
6620
|
}),
|
|
6591
|
-
|
|
6592
|
-
type:
|
|
6593
|
-
toolCallId:
|
|
6594
|
-
output:
|
|
6595
|
-
providerExecuted:
|
|
6621
|
+
z.looseObject({
|
|
6622
|
+
type: z.literal("tool-output-available"),
|
|
6623
|
+
toolCallId: z.string(),
|
|
6624
|
+
output: z.unknown(),
|
|
6625
|
+
providerExecuted: z.boolean().optional(),
|
|
6596
6626
|
providerMetadata: providerMetadataSchema.optional(),
|
|
6597
6627
|
toolMetadata: toolMetadataSchema.optional(),
|
|
6598
|
-
dynamic:
|
|
6599
|
-
preliminary:
|
|
6628
|
+
dynamic: z.boolean().optional(),
|
|
6629
|
+
preliminary: z.boolean().optional()
|
|
6600
6630
|
}),
|
|
6601
|
-
|
|
6602
|
-
type:
|
|
6603
|
-
toolCallId:
|
|
6604
|
-
errorText:
|
|
6605
|
-
providerExecuted:
|
|
6631
|
+
z.looseObject({
|
|
6632
|
+
type: z.literal("tool-output-error"),
|
|
6633
|
+
toolCallId: z.string(),
|
|
6634
|
+
errorText: z.string(),
|
|
6635
|
+
providerExecuted: z.boolean().optional(),
|
|
6606
6636
|
providerMetadata: providerMetadataSchema.optional(),
|
|
6607
6637
|
toolMetadata: toolMetadataSchema.optional(),
|
|
6608
|
-
dynamic:
|
|
6638
|
+
dynamic: z.boolean().optional()
|
|
6609
6639
|
}),
|
|
6610
|
-
|
|
6611
|
-
type:
|
|
6612
|
-
toolCallId:
|
|
6640
|
+
z.looseObject({
|
|
6641
|
+
type: z.literal("tool-output-denied"),
|
|
6642
|
+
toolCallId: z.string()
|
|
6613
6643
|
}),
|
|
6614
|
-
|
|
6615
|
-
type:
|
|
6616
|
-
id:
|
|
6644
|
+
z.looseObject({
|
|
6645
|
+
type: z.literal("reasoning-start"),
|
|
6646
|
+
id: z.string(),
|
|
6617
6647
|
providerMetadata: providerMetadataSchema.optional()
|
|
6618
6648
|
}),
|
|
6619
|
-
|
|
6620
|
-
type:
|
|
6621
|
-
id:
|
|
6622
|
-
delta:
|
|
6649
|
+
z.looseObject({
|
|
6650
|
+
type: z.literal("reasoning-delta"),
|
|
6651
|
+
id: z.string(),
|
|
6652
|
+
delta: z.string(),
|
|
6623
6653
|
providerMetadata: providerMetadataSchema.optional()
|
|
6624
6654
|
}),
|
|
6625
|
-
|
|
6626
|
-
type:
|
|
6627
|
-
id:
|
|
6655
|
+
z.looseObject({
|
|
6656
|
+
type: z.literal("reasoning-end"),
|
|
6657
|
+
id: z.string(),
|
|
6628
6658
|
providerMetadata: providerMetadataSchema.optional()
|
|
6629
6659
|
}),
|
|
6630
|
-
|
|
6631
|
-
type:
|
|
6632
|
-
kind:
|
|
6660
|
+
z.looseObject({
|
|
6661
|
+
type: z.literal("custom"),
|
|
6662
|
+
kind: z.string().transform((value) => value),
|
|
6633
6663
|
providerMetadata: providerMetadataSchema.optional()
|
|
6634
6664
|
}),
|
|
6635
|
-
|
|
6636
|
-
type:
|
|
6637
|
-
sourceId:
|
|
6638
|
-
url:
|
|
6639
|
-
title:
|
|
6665
|
+
z.looseObject({
|
|
6666
|
+
type: z.literal("source-url"),
|
|
6667
|
+
sourceId: z.string(),
|
|
6668
|
+
url: z.string(),
|
|
6669
|
+
title: z.string().optional(),
|
|
6640
6670
|
providerMetadata: providerMetadataSchema.optional()
|
|
6641
6671
|
}),
|
|
6642
|
-
|
|
6643
|
-
type:
|
|
6644
|
-
sourceId:
|
|
6645
|
-
mediaType:
|
|
6646
|
-
title:
|
|
6647
|
-
filename:
|
|
6672
|
+
z.looseObject({
|
|
6673
|
+
type: z.literal("source-document"),
|
|
6674
|
+
sourceId: z.string(),
|
|
6675
|
+
mediaType: z.string(),
|
|
6676
|
+
title: z.string(),
|
|
6677
|
+
filename: z.string().optional(),
|
|
6648
6678
|
providerMetadata: providerMetadataSchema.optional()
|
|
6649
6679
|
}),
|
|
6650
|
-
|
|
6651
|
-
type:
|
|
6652
|
-
url:
|
|
6653
|
-
mediaType:
|
|
6680
|
+
z.looseObject({
|
|
6681
|
+
type: z.literal("file"),
|
|
6682
|
+
url: z.string(),
|
|
6683
|
+
mediaType: z.string(),
|
|
6654
6684
|
providerMetadata: providerMetadataSchema.optional()
|
|
6655
6685
|
}),
|
|
6656
|
-
|
|
6657
|
-
type:
|
|
6658
|
-
url:
|
|
6659
|
-
mediaType:
|
|
6686
|
+
z.looseObject({
|
|
6687
|
+
type: z.literal("reasoning-file"),
|
|
6688
|
+
url: z.string(),
|
|
6689
|
+
mediaType: z.string(),
|
|
6660
6690
|
providerMetadata: providerMetadataSchema.optional()
|
|
6661
6691
|
}),
|
|
6662
|
-
|
|
6663
|
-
type:
|
|
6692
|
+
z.looseObject({
|
|
6693
|
+
type: z.custom(
|
|
6664
6694
|
(value) => typeof value === "string" && value.startsWith("data-"),
|
|
6665
6695
|
{ message: 'Type must start with "data-"' }
|
|
6666
6696
|
),
|
|
6667
|
-
id:
|
|
6668
|
-
data:
|
|
6669
|
-
transient:
|
|
6697
|
+
id: z.string().optional(),
|
|
6698
|
+
data: z.unknown(),
|
|
6699
|
+
transient: z.boolean().optional()
|
|
6670
6700
|
}),
|
|
6671
|
-
|
|
6672
|
-
type:
|
|
6701
|
+
z.looseObject({
|
|
6702
|
+
type: z.literal("start-step")
|
|
6673
6703
|
}),
|
|
6674
|
-
|
|
6675
|
-
type:
|
|
6704
|
+
z.looseObject({
|
|
6705
|
+
type: z.literal("finish-step")
|
|
6676
6706
|
}),
|
|
6677
|
-
|
|
6678
|
-
type:
|
|
6679
|
-
messageId:
|
|
6680
|
-
messageMetadata:
|
|
6707
|
+
z.looseObject({
|
|
6708
|
+
type: z.literal("start"),
|
|
6709
|
+
messageId: z.string().optional(),
|
|
6710
|
+
messageMetadata: z.unknown().optional()
|
|
6681
6711
|
}),
|
|
6682
|
-
|
|
6683
|
-
type:
|
|
6684
|
-
finishReason:
|
|
6712
|
+
z.looseObject({
|
|
6713
|
+
type: z.literal("finish"),
|
|
6714
|
+
finishReason: z.enum([
|
|
6685
6715
|
"stop",
|
|
6686
6716
|
"length",
|
|
6687
6717
|
"content-filter",
|
|
@@ -6689,15 +6719,15 @@ var uiMessageChunkSchema = lazySchema(
|
|
|
6689
6719
|
"error",
|
|
6690
6720
|
"other"
|
|
6691
6721
|
]).optional(),
|
|
6692
|
-
messageMetadata:
|
|
6722
|
+
messageMetadata: z.unknown().optional()
|
|
6693
6723
|
}),
|
|
6694
|
-
|
|
6695
|
-
type:
|
|
6696
|
-
reason:
|
|
6724
|
+
z.looseObject({
|
|
6725
|
+
type: z.literal("abort"),
|
|
6726
|
+
reason: z.string().optional()
|
|
6697
6727
|
}),
|
|
6698
|
-
|
|
6699
|
-
type:
|
|
6700
|
-
messageMetadata:
|
|
6728
|
+
z.looseObject({
|
|
6729
|
+
type: z.literal("message-metadata"),
|
|
6730
|
+
messageMetadata: z.unknown()
|
|
6701
6731
|
})
|
|
6702
6732
|
])
|
|
6703
6733
|
)
|
|
@@ -10488,7 +10518,7 @@ var ToolLoopAgent = class {
|
|
|
10488
10518
|
});
|
|
10489
10519
|
const callbackArgs = {
|
|
10490
10520
|
abortSignal,
|
|
10491
|
-
timeout,
|
|
10521
|
+
timeout: timeout != null ? timeout : preparedCall.timeout,
|
|
10492
10522
|
experimental_sandbox: sandbox,
|
|
10493
10523
|
onStart: mergeCallbacks(
|
|
10494
10524
|
(_a23 = this.settings.onStart) != null ? _a23 : this.settings.experimental_onStart,
|
|
@@ -10546,7 +10576,7 @@ var ToolLoopAgent = class {
|
|
|
10546
10576
|
});
|
|
10547
10577
|
const callbackArgs = {
|
|
10548
10578
|
abortSignal,
|
|
10549
|
-
timeout,
|
|
10579
|
+
timeout: timeout != null ? timeout : preparedCall.timeout,
|
|
10550
10580
|
experimental_sandbox: sandbox,
|
|
10551
10581
|
experimental_transform,
|
|
10552
10582
|
onStart: mergeCallbacks(
|
|
@@ -10998,316 +11028,315 @@ import {
|
|
|
10998
11028
|
validateTypes as validateTypes4,
|
|
10999
11029
|
zodSchema as zodSchema2
|
|
11000
11030
|
} from "@ai-sdk/provider-utils";
|
|
11001
|
-
|
|
11002
|
-
|
|
11003
|
-
z7.string(),
|
|
11031
|
+
var toolMetadataSchema2 = z.record(
|
|
11032
|
+
z.string(),
|
|
11004
11033
|
jsonValueSchema.optional()
|
|
11005
11034
|
);
|
|
11006
|
-
var providerReferenceSchema2 =
|
|
11035
|
+
var providerReferenceSchema2 = z.record(z.string(), z.string());
|
|
11007
11036
|
var uiMessagesSchema = lazySchema2(
|
|
11008
11037
|
() => zodSchema2(
|
|
11009
|
-
|
|
11010
|
-
|
|
11011
|
-
id:
|
|
11012
|
-
role:
|
|
11013
|
-
metadata:
|
|
11014
|
-
parts:
|
|
11015
|
-
|
|
11016
|
-
|
|
11017
|
-
type:
|
|
11018
|
-
text:
|
|
11019
|
-
state:
|
|
11038
|
+
z.array(
|
|
11039
|
+
z.object({
|
|
11040
|
+
id: z.string(),
|
|
11041
|
+
role: z.enum(["system", "user", "assistant"]),
|
|
11042
|
+
metadata: z.unknown().optional(),
|
|
11043
|
+
parts: z.array(
|
|
11044
|
+
z.union([
|
|
11045
|
+
z.object({
|
|
11046
|
+
type: z.literal("text"),
|
|
11047
|
+
text: z.string(),
|
|
11048
|
+
state: z.enum(["streaming", "done"]).optional(),
|
|
11020
11049
|
providerMetadata: providerMetadataSchema.optional()
|
|
11021
11050
|
}),
|
|
11022
|
-
|
|
11023
|
-
type:
|
|
11024
|
-
text:
|
|
11025
|
-
state:
|
|
11051
|
+
z.object({
|
|
11052
|
+
type: z.literal("reasoning"),
|
|
11053
|
+
text: z.string(),
|
|
11054
|
+
state: z.enum(["streaming", "done"]).optional(),
|
|
11026
11055
|
providerMetadata: providerMetadataSchema.optional()
|
|
11027
11056
|
}),
|
|
11028
|
-
|
|
11029
|
-
type:
|
|
11030
|
-
kind:
|
|
11057
|
+
z.object({
|
|
11058
|
+
type: z.literal("custom"),
|
|
11059
|
+
kind: z.string(),
|
|
11031
11060
|
providerMetadata: providerMetadataSchema.optional()
|
|
11032
11061
|
}),
|
|
11033
|
-
|
|
11034
|
-
type:
|
|
11035
|
-
sourceId:
|
|
11036
|
-
url:
|
|
11037
|
-
title:
|
|
11062
|
+
z.object({
|
|
11063
|
+
type: z.literal("source-url"),
|
|
11064
|
+
sourceId: z.string(),
|
|
11065
|
+
url: z.string(),
|
|
11066
|
+
title: z.string().optional(),
|
|
11038
11067
|
providerMetadata: providerMetadataSchema.optional()
|
|
11039
11068
|
}),
|
|
11040
|
-
|
|
11041
|
-
type:
|
|
11042
|
-
sourceId:
|
|
11043
|
-
mediaType:
|
|
11044
|
-
title:
|
|
11045
|
-
filename:
|
|
11069
|
+
z.object({
|
|
11070
|
+
type: z.literal("source-document"),
|
|
11071
|
+
sourceId: z.string(),
|
|
11072
|
+
mediaType: z.string(),
|
|
11073
|
+
title: z.string(),
|
|
11074
|
+
filename: z.string().optional(),
|
|
11046
11075
|
providerMetadata: providerMetadataSchema.optional()
|
|
11047
11076
|
}),
|
|
11048
|
-
|
|
11049
|
-
type:
|
|
11050
|
-
mediaType:
|
|
11051
|
-
filename:
|
|
11052
|
-
url:
|
|
11077
|
+
z.object({
|
|
11078
|
+
type: z.literal("file"),
|
|
11079
|
+
mediaType: z.string(),
|
|
11080
|
+
filename: z.string().optional(),
|
|
11081
|
+
url: z.string(),
|
|
11053
11082
|
providerReference: providerReferenceSchema2.optional(),
|
|
11054
11083
|
providerMetadata: providerMetadataSchema.optional()
|
|
11055
11084
|
}),
|
|
11056
|
-
|
|
11057
|
-
type:
|
|
11058
|
-
mediaType:
|
|
11059
|
-
url:
|
|
11085
|
+
z.object({
|
|
11086
|
+
type: z.literal("reasoning-file"),
|
|
11087
|
+
mediaType: z.string(),
|
|
11088
|
+
url: z.string(),
|
|
11060
11089
|
providerMetadata: providerMetadataSchema.optional()
|
|
11061
11090
|
}),
|
|
11062
|
-
|
|
11063
|
-
type:
|
|
11091
|
+
z.object({
|
|
11092
|
+
type: z.literal("step-start")
|
|
11064
11093
|
}),
|
|
11065
|
-
|
|
11066
|
-
type:
|
|
11067
|
-
id:
|
|
11068
|
-
data:
|
|
11094
|
+
z.object({
|
|
11095
|
+
type: z.string().startsWith("data-"),
|
|
11096
|
+
id: z.string().optional(),
|
|
11097
|
+
data: z.unknown()
|
|
11069
11098
|
}),
|
|
11070
|
-
|
|
11071
|
-
type:
|
|
11072
|
-
toolName:
|
|
11073
|
-
toolCallId:
|
|
11099
|
+
z.object({
|
|
11100
|
+
type: z.literal("dynamic-tool"),
|
|
11101
|
+
toolName: z.string(),
|
|
11102
|
+
toolCallId: z.string(),
|
|
11074
11103
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11075
|
-
state:
|
|
11076
|
-
input:
|
|
11077
|
-
providerExecuted:
|
|
11104
|
+
state: z.literal("input-streaming"),
|
|
11105
|
+
input: z.unknown().optional(),
|
|
11106
|
+
providerExecuted: z.boolean().optional(),
|
|
11078
11107
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11079
|
-
output:
|
|
11080
|
-
errorText:
|
|
11081
|
-
approval:
|
|
11108
|
+
output: z.never().optional(),
|
|
11109
|
+
errorText: z.never().optional(),
|
|
11110
|
+
approval: z.never().optional()
|
|
11082
11111
|
}),
|
|
11083
|
-
|
|
11084
|
-
type:
|
|
11085
|
-
toolName:
|
|
11086
|
-
toolCallId:
|
|
11112
|
+
z.object({
|
|
11113
|
+
type: z.literal("dynamic-tool"),
|
|
11114
|
+
toolName: z.string(),
|
|
11115
|
+
toolCallId: z.string(),
|
|
11087
11116
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11088
|
-
state:
|
|
11089
|
-
input:
|
|
11090
|
-
providerExecuted:
|
|
11091
|
-
output:
|
|
11092
|
-
errorText:
|
|
11117
|
+
state: z.literal("input-available"),
|
|
11118
|
+
input: z.unknown(),
|
|
11119
|
+
providerExecuted: z.boolean().optional(),
|
|
11120
|
+
output: z.never().optional(),
|
|
11121
|
+
errorText: z.never().optional(),
|
|
11093
11122
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11094
|
-
approval:
|
|
11123
|
+
approval: z.never().optional()
|
|
11095
11124
|
}),
|
|
11096
|
-
|
|
11097
|
-
type:
|
|
11098
|
-
toolName:
|
|
11099
|
-
toolCallId:
|
|
11125
|
+
z.object({
|
|
11126
|
+
type: z.literal("dynamic-tool"),
|
|
11127
|
+
toolName: z.string(),
|
|
11128
|
+
toolCallId: z.string(),
|
|
11100
11129
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11101
|
-
state:
|
|
11102
|
-
input:
|
|
11103
|
-
providerExecuted:
|
|
11104
|
-
output:
|
|
11105
|
-
errorText:
|
|
11130
|
+
state: z.literal("approval-requested"),
|
|
11131
|
+
input: z.unknown(),
|
|
11132
|
+
providerExecuted: z.boolean().optional(),
|
|
11133
|
+
output: z.never().optional(),
|
|
11134
|
+
errorText: z.never().optional(),
|
|
11106
11135
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11107
|
-
approval:
|
|
11108
|
-
id:
|
|
11109
|
-
approved:
|
|
11110
|
-
reason:
|
|
11111
|
-
isAutomatic:
|
|
11112
|
-
signature:
|
|
11136
|
+
approval: z.object({
|
|
11137
|
+
id: z.string(),
|
|
11138
|
+
approved: z.never().optional(),
|
|
11139
|
+
reason: z.never().optional(),
|
|
11140
|
+
isAutomatic: z.boolean().optional(),
|
|
11141
|
+
signature: z.string().optional()
|
|
11113
11142
|
})
|
|
11114
11143
|
}),
|
|
11115
|
-
|
|
11116
|
-
type:
|
|
11117
|
-
toolName:
|
|
11118
|
-
toolCallId:
|
|
11144
|
+
z.object({
|
|
11145
|
+
type: z.literal("dynamic-tool"),
|
|
11146
|
+
toolName: z.string(),
|
|
11147
|
+
toolCallId: z.string(),
|
|
11119
11148
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11120
|
-
state:
|
|
11121
|
-
input:
|
|
11122
|
-
providerExecuted:
|
|
11123
|
-
output:
|
|
11124
|
-
errorText:
|
|
11149
|
+
state: z.literal("approval-responded"),
|
|
11150
|
+
input: z.unknown(),
|
|
11151
|
+
providerExecuted: z.boolean().optional(),
|
|
11152
|
+
output: z.never().optional(),
|
|
11153
|
+
errorText: z.never().optional(),
|
|
11125
11154
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11126
|
-
approval:
|
|
11127
|
-
id:
|
|
11128
|
-
approved:
|
|
11129
|
-
reason:
|
|
11130
|
-
isAutomatic:
|
|
11131
|
-
signature:
|
|
11155
|
+
approval: z.object({
|
|
11156
|
+
id: z.string(),
|
|
11157
|
+
approved: z.boolean(),
|
|
11158
|
+
reason: z.string().optional(),
|
|
11159
|
+
isAutomatic: z.boolean().optional(),
|
|
11160
|
+
signature: z.string().optional()
|
|
11132
11161
|
})
|
|
11133
11162
|
}),
|
|
11134
|
-
|
|
11135
|
-
type:
|
|
11136
|
-
toolName:
|
|
11137
|
-
toolCallId:
|
|
11163
|
+
z.object({
|
|
11164
|
+
type: z.literal("dynamic-tool"),
|
|
11165
|
+
toolName: z.string(),
|
|
11166
|
+
toolCallId: z.string(),
|
|
11138
11167
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11139
|
-
state:
|
|
11140
|
-
input:
|
|
11141
|
-
providerExecuted:
|
|
11142
|
-
output:
|
|
11143
|
-
errorText:
|
|
11168
|
+
state: z.literal("output-available"),
|
|
11169
|
+
input: z.unknown(),
|
|
11170
|
+
providerExecuted: z.boolean().optional(),
|
|
11171
|
+
output: z.unknown(),
|
|
11172
|
+
errorText: z.never().optional(),
|
|
11144
11173
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11145
11174
|
resultProviderMetadata: providerMetadataSchema.optional(),
|
|
11146
|
-
preliminary:
|
|
11147
|
-
approval:
|
|
11148
|
-
id:
|
|
11149
|
-
approved:
|
|
11150
|
-
reason:
|
|
11151
|
-
isAutomatic:
|
|
11152
|
-
signature:
|
|
11175
|
+
preliminary: z.boolean().optional(),
|
|
11176
|
+
approval: z.object({
|
|
11177
|
+
id: z.string(),
|
|
11178
|
+
approved: z.literal(true),
|
|
11179
|
+
reason: z.string().optional(),
|
|
11180
|
+
isAutomatic: z.boolean().optional(),
|
|
11181
|
+
signature: z.string().optional()
|
|
11153
11182
|
}).optional()
|
|
11154
11183
|
}),
|
|
11155
|
-
|
|
11156
|
-
type:
|
|
11157
|
-
toolName:
|
|
11158
|
-
toolCallId:
|
|
11184
|
+
z.object({
|
|
11185
|
+
type: z.literal("dynamic-tool"),
|
|
11186
|
+
toolName: z.string(),
|
|
11187
|
+
toolCallId: z.string(),
|
|
11159
11188
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11160
|
-
state:
|
|
11161
|
-
input:
|
|
11162
|
-
rawInput:
|
|
11163
|
-
providerExecuted:
|
|
11164
|
-
output:
|
|
11165
|
-
errorText:
|
|
11189
|
+
state: z.literal("output-error"),
|
|
11190
|
+
input: z.unknown().optional(),
|
|
11191
|
+
rawInput: z.unknown().optional(),
|
|
11192
|
+
providerExecuted: z.boolean().optional(),
|
|
11193
|
+
output: z.never().optional(),
|
|
11194
|
+
errorText: z.string(),
|
|
11166
11195
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11167
11196
|
resultProviderMetadata: providerMetadataSchema.optional(),
|
|
11168
|
-
approval:
|
|
11169
|
-
id:
|
|
11170
|
-
approved:
|
|
11171
|
-
reason:
|
|
11172
|
-
isAutomatic:
|
|
11173
|
-
signature:
|
|
11197
|
+
approval: z.object({
|
|
11198
|
+
id: z.string(),
|
|
11199
|
+
approved: z.literal(true),
|
|
11200
|
+
reason: z.string().optional(),
|
|
11201
|
+
isAutomatic: z.boolean().optional(),
|
|
11202
|
+
signature: z.string().optional()
|
|
11174
11203
|
}).optional()
|
|
11175
11204
|
}),
|
|
11176
|
-
|
|
11177
|
-
type:
|
|
11178
|
-
toolName:
|
|
11179
|
-
toolCallId:
|
|
11205
|
+
z.object({
|
|
11206
|
+
type: z.literal("dynamic-tool"),
|
|
11207
|
+
toolName: z.string(),
|
|
11208
|
+
toolCallId: z.string(),
|
|
11180
11209
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11181
|
-
state:
|
|
11182
|
-
input:
|
|
11183
|
-
providerExecuted:
|
|
11184
|
-
output:
|
|
11185
|
-
errorText:
|
|
11210
|
+
state: z.literal("output-denied"),
|
|
11211
|
+
input: z.unknown(),
|
|
11212
|
+
providerExecuted: z.boolean().optional(),
|
|
11213
|
+
output: z.never().optional(),
|
|
11214
|
+
errorText: z.never().optional(),
|
|
11186
11215
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11187
|
-
approval:
|
|
11188
|
-
id:
|
|
11189
|
-
approved:
|
|
11190
|
-
reason:
|
|
11191
|
-
isAutomatic:
|
|
11192
|
-
signature:
|
|
11216
|
+
approval: z.object({
|
|
11217
|
+
id: z.string(),
|
|
11218
|
+
approved: z.literal(false),
|
|
11219
|
+
reason: z.string().optional(),
|
|
11220
|
+
isAutomatic: z.boolean().optional(),
|
|
11221
|
+
signature: z.string().optional()
|
|
11193
11222
|
})
|
|
11194
11223
|
}),
|
|
11195
|
-
|
|
11196
|
-
type:
|
|
11197
|
-
toolCallId:
|
|
11224
|
+
z.object({
|
|
11225
|
+
type: z.string().startsWith("tool-"),
|
|
11226
|
+
toolCallId: z.string(),
|
|
11198
11227
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11199
|
-
state:
|
|
11200
|
-
providerExecuted:
|
|
11228
|
+
state: z.literal("input-streaming"),
|
|
11229
|
+
providerExecuted: z.boolean().optional(),
|
|
11201
11230
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11202
|
-
input:
|
|
11203
|
-
output:
|
|
11204
|
-
errorText:
|
|
11205
|
-
approval:
|
|
11231
|
+
input: z.unknown().optional(),
|
|
11232
|
+
output: z.never().optional(),
|
|
11233
|
+
errorText: z.never().optional(),
|
|
11234
|
+
approval: z.never().optional()
|
|
11206
11235
|
}),
|
|
11207
|
-
|
|
11208
|
-
type:
|
|
11209
|
-
toolCallId:
|
|
11236
|
+
z.object({
|
|
11237
|
+
type: z.string().startsWith("tool-"),
|
|
11238
|
+
toolCallId: z.string(),
|
|
11210
11239
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11211
|
-
state:
|
|
11212
|
-
providerExecuted:
|
|
11213
|
-
input:
|
|
11214
|
-
output:
|
|
11215
|
-
errorText:
|
|
11240
|
+
state: z.literal("input-available"),
|
|
11241
|
+
providerExecuted: z.boolean().optional(),
|
|
11242
|
+
input: z.unknown(),
|
|
11243
|
+
output: z.never().optional(),
|
|
11244
|
+
errorText: z.never().optional(),
|
|
11216
11245
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11217
|
-
approval:
|
|
11246
|
+
approval: z.never().optional()
|
|
11218
11247
|
}),
|
|
11219
|
-
|
|
11220
|
-
type:
|
|
11221
|
-
toolCallId:
|
|
11248
|
+
z.object({
|
|
11249
|
+
type: z.string().startsWith("tool-"),
|
|
11250
|
+
toolCallId: z.string(),
|
|
11222
11251
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11223
|
-
state:
|
|
11224
|
-
input:
|
|
11225
|
-
providerExecuted:
|
|
11226
|
-
output:
|
|
11227
|
-
errorText:
|
|
11252
|
+
state: z.literal("approval-requested"),
|
|
11253
|
+
input: z.unknown(),
|
|
11254
|
+
providerExecuted: z.boolean().optional(),
|
|
11255
|
+
output: z.never().optional(),
|
|
11256
|
+
errorText: z.never().optional(),
|
|
11228
11257
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11229
|
-
approval:
|
|
11230
|
-
id:
|
|
11231
|
-
approved:
|
|
11232
|
-
reason:
|
|
11233
|
-
isAutomatic:
|
|
11234
|
-
signature:
|
|
11258
|
+
approval: z.object({
|
|
11259
|
+
id: z.string(),
|
|
11260
|
+
approved: z.never().optional(),
|
|
11261
|
+
reason: z.never().optional(),
|
|
11262
|
+
isAutomatic: z.boolean().optional(),
|
|
11263
|
+
signature: z.string().optional()
|
|
11235
11264
|
})
|
|
11236
11265
|
}),
|
|
11237
|
-
|
|
11238
|
-
type:
|
|
11239
|
-
toolCallId:
|
|
11266
|
+
z.object({
|
|
11267
|
+
type: z.string().startsWith("tool-"),
|
|
11268
|
+
toolCallId: z.string(),
|
|
11240
11269
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11241
|
-
state:
|
|
11242
|
-
input:
|
|
11243
|
-
providerExecuted:
|
|
11244
|
-
output:
|
|
11245
|
-
errorText:
|
|
11270
|
+
state: z.literal("approval-responded"),
|
|
11271
|
+
input: z.unknown(),
|
|
11272
|
+
providerExecuted: z.boolean().optional(),
|
|
11273
|
+
output: z.never().optional(),
|
|
11274
|
+
errorText: z.never().optional(),
|
|
11246
11275
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11247
|
-
approval:
|
|
11248
|
-
id:
|
|
11249
|
-
approved:
|
|
11250
|
-
reason:
|
|
11251
|
-
isAutomatic:
|
|
11252
|
-
signature:
|
|
11276
|
+
approval: z.object({
|
|
11277
|
+
id: z.string(),
|
|
11278
|
+
approved: z.boolean(),
|
|
11279
|
+
reason: z.string().optional(),
|
|
11280
|
+
isAutomatic: z.boolean().optional(),
|
|
11281
|
+
signature: z.string().optional()
|
|
11253
11282
|
})
|
|
11254
11283
|
}),
|
|
11255
|
-
|
|
11256
|
-
type:
|
|
11257
|
-
toolCallId:
|
|
11284
|
+
z.object({
|
|
11285
|
+
type: z.string().startsWith("tool-"),
|
|
11286
|
+
toolCallId: z.string(),
|
|
11258
11287
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11259
|
-
state:
|
|
11260
|
-
providerExecuted:
|
|
11261
|
-
input:
|
|
11262
|
-
output:
|
|
11263
|
-
errorText:
|
|
11288
|
+
state: z.literal("output-available"),
|
|
11289
|
+
providerExecuted: z.boolean().optional(),
|
|
11290
|
+
input: z.unknown(),
|
|
11291
|
+
output: z.unknown(),
|
|
11292
|
+
errorText: z.never().optional(),
|
|
11264
11293
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11265
11294
|
resultProviderMetadata: providerMetadataSchema.optional(),
|
|
11266
|
-
preliminary:
|
|
11267
|
-
approval:
|
|
11268
|
-
id:
|
|
11269
|
-
approved:
|
|
11270
|
-
reason:
|
|
11271
|
-
isAutomatic:
|
|
11272
|
-
signature:
|
|
11295
|
+
preliminary: z.boolean().optional(),
|
|
11296
|
+
approval: z.object({
|
|
11297
|
+
id: z.string(),
|
|
11298
|
+
approved: z.literal(true),
|
|
11299
|
+
reason: z.string().optional(),
|
|
11300
|
+
isAutomatic: z.boolean().optional(),
|
|
11301
|
+
signature: z.string().optional()
|
|
11273
11302
|
}).optional()
|
|
11274
11303
|
}),
|
|
11275
|
-
|
|
11276
|
-
type:
|
|
11277
|
-
toolCallId:
|
|
11304
|
+
z.object({
|
|
11305
|
+
type: z.string().startsWith("tool-"),
|
|
11306
|
+
toolCallId: z.string(),
|
|
11278
11307
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11279
|
-
state:
|
|
11280
|
-
providerExecuted:
|
|
11281
|
-
input:
|
|
11282
|
-
rawInput:
|
|
11283
|
-
output:
|
|
11284
|
-
errorText:
|
|
11308
|
+
state: z.literal("output-error"),
|
|
11309
|
+
providerExecuted: z.boolean().optional(),
|
|
11310
|
+
input: z.unknown().optional(),
|
|
11311
|
+
rawInput: z.unknown().optional(),
|
|
11312
|
+
output: z.never().optional(),
|
|
11313
|
+
errorText: z.string(),
|
|
11285
11314
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11286
11315
|
resultProviderMetadata: providerMetadataSchema.optional(),
|
|
11287
|
-
approval:
|
|
11288
|
-
id:
|
|
11289
|
-
approved:
|
|
11290
|
-
reason:
|
|
11291
|
-
isAutomatic:
|
|
11292
|
-
signature:
|
|
11316
|
+
approval: z.object({
|
|
11317
|
+
id: z.string(),
|
|
11318
|
+
approved: z.literal(true),
|
|
11319
|
+
reason: z.string().optional(),
|
|
11320
|
+
isAutomatic: z.boolean().optional(),
|
|
11321
|
+
signature: z.string().optional()
|
|
11293
11322
|
}).optional()
|
|
11294
11323
|
}),
|
|
11295
|
-
|
|
11296
|
-
type:
|
|
11297
|
-
toolCallId:
|
|
11324
|
+
z.object({
|
|
11325
|
+
type: z.string().startsWith("tool-"),
|
|
11326
|
+
toolCallId: z.string(),
|
|
11298
11327
|
toolMetadata: toolMetadataSchema2.optional(),
|
|
11299
|
-
state:
|
|
11300
|
-
providerExecuted:
|
|
11301
|
-
input:
|
|
11302
|
-
output:
|
|
11303
|
-
errorText:
|
|
11328
|
+
state: z.literal("output-denied"),
|
|
11329
|
+
providerExecuted: z.boolean().optional(),
|
|
11330
|
+
input: z.unknown(),
|
|
11331
|
+
output: z.never().optional(),
|
|
11332
|
+
errorText: z.never().optional(),
|
|
11304
11333
|
callProviderMetadata: providerMetadataSchema.optional(),
|
|
11305
|
-
approval:
|
|
11306
|
-
id:
|
|
11307
|
-
approved:
|
|
11308
|
-
reason:
|
|
11309
|
-
isAutomatic:
|
|
11310
|
-
signature:
|
|
11334
|
+
approval: z.object({
|
|
11335
|
+
id: z.string(),
|
|
11336
|
+
approved: z.literal(false),
|
|
11337
|
+
reason: z.string().optional(),
|
|
11338
|
+
isAutomatic: z.boolean().optional(),
|
|
11339
|
+
signature: z.string().optional()
|
|
11311
11340
|
})
|
|
11312
11341
|
})
|
|
11313
11342
|
])
|
|
@@ -11948,13 +11977,13 @@ import {
|
|
|
11948
11977
|
} from "@ai-sdk/provider-utils";
|
|
11949
11978
|
|
|
11950
11979
|
// src/util/split-array.ts
|
|
11951
|
-
function splitArray(
|
|
11980
|
+
function splitArray(array3, chunkSize) {
|
|
11952
11981
|
if (chunkSize <= 0) {
|
|
11953
11982
|
throw new Error("chunkSize must be greater than 0");
|
|
11954
11983
|
}
|
|
11955
11984
|
const result = [];
|
|
11956
|
-
for (let i = 0; i <
|
|
11957
|
-
result.push(
|
|
11985
|
+
for (let i = 0; i < array3.length; i += chunkSize) {
|
|
11986
|
+
result.push(array3.slice(i, i + chunkSize));
|
|
11958
11987
|
}
|
|
11959
11988
|
return result;
|
|
11960
11989
|
}
|
|
@@ -12619,9 +12648,9 @@ var arrayOutputStrategy = (schema) => {
|
|
|
12619
12648
|
transform(chunk, controller) {
|
|
12620
12649
|
switch (chunk.type) {
|
|
12621
12650
|
case "object": {
|
|
12622
|
-
const
|
|
12623
|
-
for (; publishedElements <
|
|
12624
|
-
controller.enqueue(
|
|
12651
|
+
const array3 = chunk.object;
|
|
12652
|
+
for (; publishedElements < array3.length; publishedElements++) {
|
|
12653
|
+
controller.enqueue(array3[publishedElements]);
|
|
12625
12654
|
}
|
|
12626
12655
|
break;
|
|
12627
12656
|
}
|
|
@@ -13095,7 +13124,7 @@ async function generateObject(options) {
|
|
|
13095
13124
|
event: stepFinishEvent,
|
|
13096
13125
|
callbacks: [resolvedOnStepEnd, telemetryDispatcher.onObjectStepEnd]
|
|
13097
13126
|
});
|
|
13098
|
-
const
|
|
13127
|
+
const object3 = await parseAndValidateObjectResultWithRepair(
|
|
13099
13128
|
text2,
|
|
13100
13129
|
outputStrategy,
|
|
13101
13130
|
repairText,
|
|
@@ -13108,7 +13137,7 @@ async function generateObject(options) {
|
|
|
13108
13137
|
await notify({
|
|
13109
13138
|
event: {
|
|
13110
13139
|
callId,
|
|
13111
|
-
object:
|
|
13140
|
+
object: object3,
|
|
13112
13141
|
error: void 0,
|
|
13113
13142
|
reasoning,
|
|
13114
13143
|
finishReason,
|
|
@@ -13121,7 +13150,7 @@ async function generateObject(options) {
|
|
|
13121
13150
|
callbacks: [onFinish, telemetryDispatcher.onEnd]
|
|
13122
13151
|
});
|
|
13123
13152
|
return new DefaultGenerateObjectResult({
|
|
13124
|
-
object:
|
|
13153
|
+
object: object3,
|
|
13125
13154
|
reasoning,
|
|
13126
13155
|
finishReason,
|
|
13127
13156
|
usage,
|
|
@@ -13527,7 +13556,7 @@ var DefaultStreamObjectResult = class {
|
|
|
13527
13556
|
let usage = createNullLanguageModelUsage();
|
|
13528
13557
|
let finishReason;
|
|
13529
13558
|
let providerMetadata;
|
|
13530
|
-
let
|
|
13559
|
+
let object3;
|
|
13531
13560
|
let error;
|
|
13532
13561
|
let msToFirstChunk = void 0;
|
|
13533
13562
|
let accumulatedText = "";
|
|
@@ -13621,7 +13650,7 @@ var DefaultStreamObjectResult = class {
|
|
|
13621
13650
|
});
|
|
13622
13651
|
self._finishReason.resolve(finishReason != null ? finishReason : "other");
|
|
13623
13652
|
try {
|
|
13624
|
-
|
|
13653
|
+
object3 = await parseAndValidateObjectResultWithRepair(
|
|
13625
13654
|
accumulatedText,
|
|
13626
13655
|
outputStrategy,
|
|
13627
13656
|
repairText,
|
|
@@ -13631,7 +13660,7 @@ var DefaultStreamObjectResult = class {
|
|
|
13631
13660
|
finishReason
|
|
13632
13661
|
}
|
|
13633
13662
|
);
|
|
13634
|
-
self._object.resolve(
|
|
13663
|
+
self._object.resolve(object3);
|
|
13635
13664
|
} catch (e) {
|
|
13636
13665
|
error = e;
|
|
13637
13666
|
self._object.reject(e);
|
|
@@ -13678,7 +13707,7 @@ var DefaultStreamObjectResult = class {
|
|
|
13678
13707
|
await notify({
|
|
13679
13708
|
event: {
|
|
13680
13709
|
callId,
|
|
13681
|
-
object:
|
|
13710
|
+
object: object3,
|
|
13682
13711
|
error,
|
|
13683
13712
|
reasoning: void 0,
|
|
13684
13713
|
finishReason: finishReason != null ? finishReason : "other",
|