ai 7.0.31 → 7.0.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # ai
2
2
 
3
+ ## 7.0.32
4
+
5
+ ### Patch Changes
6
+
7
+ - 6cd7c74: fix: correct the `onToolCall` callback result documentation
8
+ - e35bcae: Allow UI message chunks to include fields added by newer server versions.
9
+ - a4eb3f3: Propagate abort reasons when generation is cancelled during tool execution.
10
+ - Updated dependencies [cefa3b1]
11
+ - Updated dependencies [8fbb89c]
12
+ - @ai-sdk/gateway@4.0.24
13
+
3
14
  ## 7.0.31
4
15
 
5
16
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- import * as _ai_sdk_provider from '@ai-sdk/provider';
2
1
  import { EmbeddingModelV4, EmbeddingModelV3, EmbeddingModelV2, EmbeddingModelV4Embedding, EmbeddingModelV4Middleware, ImageModelV4, ImageModelV3, ImageModelV2, ImageModelV4ProviderMetadata, ImageModelV2ProviderMetadata, ImageModelV4Middleware, JSONValue as JSONValue$1, LanguageModelV4, LanguageModelV3, LanguageModelV2, SharedV4Warning, LanguageModelV4Source, LanguageModelV4Middleware, RerankingModelV4, RerankingModelV3, SharedV4ProviderMetadata, SharedV4ProviderReference, SpeechModelV4, SpeechModelV3, SpeechModelV2, TranscriptionModelV4, TranscriptionModelV3, TranscriptionModelV2, JSONObject, ImageModelV4Usage, LanguageModelV4CallOptions, LanguageModelV4Prompt, AISDKError, LanguageModelV4ToolCall, JSONSchema7, ProviderV4, ProviderV3, ProviderV2, SharedV4Headers, JSONParseError, TypeValidationError, Experimental_VideoModelV4, Experimental_VideoModelV3, Experimental_VideoModelV4FrameType, EmbeddingModelV4CallOptions, Experimental_RealtimeFactoryV4, Experimental_RealtimeFactoryV4GetTokenOptions, Experimental_RealtimeFactoryV4GetTokenResult, Experimental_RealtimeModelV4, Experimental_RealtimeModelV4ClientEvent, Experimental_RealtimeModelV4ServerEvent, Experimental_RealtimeModelV4SessionConfig, Experimental_RealtimeModelV4ToolDefinition, FilesV4, SkillsV4, NoSuchModelError, FilesV4UploadFileCallOptions, SkillsV4UploadSkillResult, SkillsV4UploadSkillCallOptions, SkillsV4File } from '@ai-sdk/provider';
3
2
  export { AISDKError, APICallError, EmptyResponseBodyError, InvalidPromptError, InvalidResponseDataError, JSONParseError, JSONSchema7, LoadAPIKeyError, LoadSettingError, NoContentGeneratedError, NoSuchModelError, NoSuchProviderReferenceError, TooManyEmbeddingValuesForCallError, TypeValidationError, UnsupportedFunctionalityError } from '@ai-sdk/provider';
4
3
  import { GatewayModelId } from '@ai-sdk/gateway';
@@ -2243,153 +2242,7 @@ type InferUIMessageToolCall<UI_MESSAGE extends UIMessage> = ValueOf<{
2243
2242
  dynamic: true;
2244
2243
  });
2245
2244
 
2246
- declare const uiMessageChunkSchema: _ai_sdk_provider_utils.LazySchema<{
2247
- type: "text-start";
2248
- id: string;
2249
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2250
- } | {
2251
- type: "text-delta";
2252
- id: string;
2253
- delta: string;
2254
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2255
- } | {
2256
- type: "text-end";
2257
- id: string;
2258
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2259
- } | {
2260
- type: "error";
2261
- errorText: string;
2262
- } | {
2263
- type: "tool-input-start";
2264
- toolCallId: string;
2265
- toolName: string;
2266
- providerExecuted?: boolean | undefined;
2267
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2268
- toolMetadata?: JSONObject | undefined;
2269
- dynamic?: boolean | undefined;
2270
- title?: string | undefined;
2271
- } | {
2272
- type: "tool-input-delta";
2273
- toolCallId: string;
2274
- inputTextDelta: string;
2275
- } | {
2276
- type: "tool-input-available";
2277
- toolCallId: string;
2278
- toolName: string;
2279
- input: unknown;
2280
- providerExecuted?: boolean | undefined;
2281
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2282
- toolMetadata?: JSONObject | undefined;
2283
- dynamic?: boolean | undefined;
2284
- title?: string | undefined;
2285
- } | {
2286
- type: "tool-input-error";
2287
- toolCallId: string;
2288
- toolName: string;
2289
- input: unknown;
2290
- errorText: string;
2291
- providerExecuted?: boolean | undefined;
2292
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2293
- toolMetadata?: JSONObject | undefined;
2294
- dynamic?: boolean | undefined;
2295
- title?: string | undefined;
2296
- } | {
2297
- type: "tool-approval-request";
2298
- approvalId: string;
2299
- toolCallId: string;
2300
- isAutomatic?: boolean | undefined;
2301
- signature?: string | undefined;
2302
- } | {
2303
- type: "tool-approval-response";
2304
- approvalId: string;
2305
- approved: boolean;
2306
- reason?: string | undefined;
2307
- providerExecuted?: boolean | undefined;
2308
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2309
- } | {
2310
- type: "tool-output-available";
2311
- toolCallId: string;
2312
- output: unknown;
2313
- providerExecuted?: boolean | undefined;
2314
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2315
- toolMetadata?: JSONObject | undefined;
2316
- dynamic?: boolean | undefined;
2317
- preliminary?: boolean | undefined;
2318
- } | {
2319
- type: "tool-output-error";
2320
- toolCallId: string;
2321
- errorText: string;
2322
- providerExecuted?: boolean | undefined;
2323
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2324
- toolMetadata?: JSONObject | undefined;
2325
- dynamic?: boolean | undefined;
2326
- } | {
2327
- type: "tool-output-denied";
2328
- toolCallId: string;
2329
- } | {
2330
- type: "reasoning-start";
2331
- id: string;
2332
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2333
- } | {
2334
- type: "reasoning-delta";
2335
- id: string;
2336
- delta: string;
2337
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2338
- } | {
2339
- type: "reasoning-end";
2340
- id: string;
2341
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2342
- } | {
2343
- type: "custom";
2344
- kind: `${string}.${string}`;
2345
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2346
- } | {
2347
- type: "source-url";
2348
- sourceId: string;
2349
- url: string;
2350
- title?: string | undefined;
2351
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2352
- } | {
2353
- type: "source-document";
2354
- sourceId: string;
2355
- mediaType: string;
2356
- title: string;
2357
- filename?: string | undefined;
2358
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2359
- } | {
2360
- type: "file";
2361
- url: string;
2362
- mediaType: string;
2363
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2364
- } | {
2365
- type: "reasoning-file";
2366
- url: string;
2367
- mediaType: string;
2368
- providerMetadata?: _ai_sdk_provider.SharedV4ProviderMetadata | undefined;
2369
- } | {
2370
- type: `data-${string}`;
2371
- data: unknown;
2372
- id?: string | undefined;
2373
- transient?: boolean | undefined;
2374
- } | {
2375
- type: "start-step";
2376
- } | {
2377
- type: "finish-step";
2378
- } | {
2379
- type: "start";
2380
- messageId?: string | undefined;
2381
- messageMetadata?: unknown;
2382
- } | {
2383
- type: "finish";
2384
- finishReason?: "length" | "error" | "stop" | "content-filter" | "tool-calls" | "other" | undefined;
2385
- messageMetadata?: unknown;
2386
- } | {
2387
- type: "abort";
2388
- reason?: string | undefined;
2389
- } | {
2390
- type: "message-metadata";
2391
- messageMetadata: unknown;
2392
- }>;
2245
+ declare const uiMessageChunkSchema: _ai_sdk_provider_utils.LazySchema<UIMessageChunk<unknown, UIDataTypes>>;
2393
2246
  type DataUIMessageChunk<DATA_TYPES extends UIDataTypes> = ValueOf<{
2394
2247
  [NAME in keyof DATA_TYPES & string]: {
2395
2248
  type: `data-${NAME}`;
@@ -5552,8 +5405,8 @@ interface ChatInit<UI_MESSAGE extends UIMessage> {
5552
5405
  * Optional callback function that is invoked when a tool call is received.
5553
5406
  * Intended for automatic client-side tool execution.
5554
5407
  *
5555
- * You can optionally return a result for the tool call,
5556
- * either synchronously or asynchronously.
5408
+ * To add the tool output, call `addToolOutput` without awaiting it inside
5409
+ * this callback. The callback's return value is not used.
5557
5410
  */
5558
5411
  onToolCall?: ChatOnToolCallCallback<UI_MESSAGE>;
5559
5412
  /**
package/dist/index.js CHANGED
@@ -1089,7 +1089,7 @@ import {
1089
1089
  } from "@ai-sdk/provider-utils";
1090
1090
 
1091
1091
  // src/version.ts
1092
- var VERSION = true ? "7.0.31" : "0.0.0-test";
1092
+ var VERSION = true ? "7.0.32" : "0.0.0-test";
1093
1093
 
1094
1094
  // src/util/download/download.ts
1095
1095
  var download = async ({
@@ -5223,6 +5223,9 @@ async function generateText({
5223
5223
  ];
5224
5224
  const pendingDeferredToolCalls = /* @__PURE__ */ new Map();
5225
5225
  do {
5226
+ if (steps.length > 0) {
5227
+ mergedAbortSignal == null ? void 0 : mergedAbortSignal.throwIfAborted();
5228
+ }
5226
5229
  const stepTimeoutId = setAbortTimeout({
5227
5230
  abortController: stepAbortController,
5228
5231
  label: "Step",
@@ -6254,27 +6257,27 @@ var toolMetadataSchema = z6.record(
6254
6257
  var uiMessageChunkSchema = lazySchema(
6255
6258
  () => zodSchema(
6256
6259
  z6.union([
6257
- z6.strictObject({
6260
+ z6.looseObject({
6258
6261
  type: z6.literal("text-start"),
6259
6262
  id: z6.string(),
6260
6263
  providerMetadata: providerMetadataSchema.optional()
6261
6264
  }),
6262
- z6.strictObject({
6265
+ z6.looseObject({
6263
6266
  type: z6.literal("text-delta"),
6264
6267
  id: z6.string(),
6265
6268
  delta: z6.string(),
6266
6269
  providerMetadata: providerMetadataSchema.optional()
6267
6270
  }),
6268
- z6.strictObject({
6271
+ z6.looseObject({
6269
6272
  type: z6.literal("text-end"),
6270
6273
  id: z6.string(),
6271
6274
  providerMetadata: providerMetadataSchema.optional()
6272
6275
  }),
6273
- z6.strictObject({
6276
+ z6.looseObject({
6274
6277
  type: z6.literal("error"),
6275
6278
  errorText: z6.string()
6276
6279
  }),
6277
- z6.strictObject({
6280
+ z6.looseObject({
6278
6281
  type: z6.literal("tool-input-start"),
6279
6282
  toolCallId: z6.string(),
6280
6283
  toolName: z6.string(),
@@ -6284,12 +6287,12 @@ var uiMessageChunkSchema = lazySchema(
6284
6287
  dynamic: z6.boolean().optional(),
6285
6288
  title: z6.string().optional()
6286
6289
  }),
6287
- z6.strictObject({
6290
+ z6.looseObject({
6288
6291
  type: z6.literal("tool-input-delta"),
6289
6292
  toolCallId: z6.string(),
6290
6293
  inputTextDelta: z6.string()
6291
6294
  }),
6292
- z6.strictObject({
6295
+ z6.looseObject({
6293
6296
  type: z6.literal("tool-input-available"),
6294
6297
  toolCallId: z6.string(),
6295
6298
  toolName: z6.string(),
@@ -6300,7 +6303,7 @@ var uiMessageChunkSchema = lazySchema(
6300
6303
  dynamic: z6.boolean().optional(),
6301
6304
  title: z6.string().optional()
6302
6305
  }),
6303
- z6.strictObject({
6306
+ z6.looseObject({
6304
6307
  type: z6.literal("tool-input-error"),
6305
6308
  toolCallId: z6.string(),
6306
6309
  toolName: z6.string(),
@@ -6312,14 +6315,14 @@ var uiMessageChunkSchema = lazySchema(
6312
6315
  errorText: z6.string(),
6313
6316
  title: z6.string().optional()
6314
6317
  }),
6315
- z6.strictObject({
6318
+ z6.looseObject({
6316
6319
  type: z6.literal("tool-approval-request"),
6317
6320
  approvalId: z6.string(),
6318
6321
  toolCallId: z6.string(),
6319
6322
  isAutomatic: z6.boolean().optional(),
6320
6323
  signature: z6.string().optional()
6321
6324
  }),
6322
- z6.strictObject({
6325
+ z6.looseObject({
6323
6326
  type: z6.literal("tool-approval-response"),
6324
6327
  approvalId: z6.string(),
6325
6328
  approved: z6.boolean(),
@@ -6327,7 +6330,7 @@ var uiMessageChunkSchema = lazySchema(
6327
6330
  providerExecuted: z6.boolean().optional(),
6328
6331
  providerMetadata: providerMetadataSchema.optional()
6329
6332
  }),
6330
- z6.strictObject({
6333
+ z6.looseObject({
6331
6334
  type: z6.literal("tool-output-available"),
6332
6335
  toolCallId: z6.string(),
6333
6336
  output: z6.unknown(),
@@ -6337,7 +6340,7 @@ var uiMessageChunkSchema = lazySchema(
6337
6340
  dynamic: z6.boolean().optional(),
6338
6341
  preliminary: z6.boolean().optional()
6339
6342
  }),
6340
- z6.strictObject({
6343
+ z6.looseObject({
6341
6344
  type: z6.literal("tool-output-error"),
6342
6345
  toolCallId: z6.string(),
6343
6346
  errorText: z6.string(),
@@ -6346,39 +6349,39 @@ var uiMessageChunkSchema = lazySchema(
6346
6349
  toolMetadata: toolMetadataSchema.optional(),
6347
6350
  dynamic: z6.boolean().optional()
6348
6351
  }),
6349
- z6.strictObject({
6352
+ z6.looseObject({
6350
6353
  type: z6.literal("tool-output-denied"),
6351
6354
  toolCallId: z6.string()
6352
6355
  }),
6353
- z6.strictObject({
6356
+ z6.looseObject({
6354
6357
  type: z6.literal("reasoning-start"),
6355
6358
  id: z6.string(),
6356
6359
  providerMetadata: providerMetadataSchema.optional()
6357
6360
  }),
6358
- z6.strictObject({
6361
+ z6.looseObject({
6359
6362
  type: z6.literal("reasoning-delta"),
6360
6363
  id: z6.string(),
6361
6364
  delta: z6.string(),
6362
6365
  providerMetadata: providerMetadataSchema.optional()
6363
6366
  }),
6364
- z6.strictObject({
6367
+ z6.looseObject({
6365
6368
  type: z6.literal("reasoning-end"),
6366
6369
  id: z6.string(),
6367
6370
  providerMetadata: providerMetadataSchema.optional()
6368
6371
  }),
6369
- z6.strictObject({
6372
+ z6.looseObject({
6370
6373
  type: z6.literal("custom"),
6371
6374
  kind: z6.string().transform((value) => value),
6372
6375
  providerMetadata: providerMetadataSchema.optional()
6373
6376
  }),
6374
- z6.strictObject({
6377
+ z6.looseObject({
6375
6378
  type: z6.literal("source-url"),
6376
6379
  sourceId: z6.string(),
6377
6380
  url: z6.string(),
6378
6381
  title: z6.string().optional(),
6379
6382
  providerMetadata: providerMetadataSchema.optional()
6380
6383
  }),
6381
- z6.strictObject({
6384
+ z6.looseObject({
6382
6385
  type: z6.literal("source-document"),
6383
6386
  sourceId: z6.string(),
6384
6387
  mediaType: z6.string(),
@@ -6386,19 +6389,19 @@ var uiMessageChunkSchema = lazySchema(
6386
6389
  filename: z6.string().optional(),
6387
6390
  providerMetadata: providerMetadataSchema.optional()
6388
6391
  }),
6389
- z6.strictObject({
6392
+ z6.looseObject({
6390
6393
  type: z6.literal("file"),
6391
6394
  url: z6.string(),
6392
6395
  mediaType: z6.string(),
6393
6396
  providerMetadata: providerMetadataSchema.optional()
6394
6397
  }),
6395
- z6.strictObject({
6398
+ z6.looseObject({
6396
6399
  type: z6.literal("reasoning-file"),
6397
6400
  url: z6.string(),
6398
6401
  mediaType: z6.string(),
6399
6402
  providerMetadata: providerMetadataSchema.optional()
6400
6403
  }),
6401
- z6.strictObject({
6404
+ z6.looseObject({
6402
6405
  type: z6.custom(
6403
6406
  (value) => typeof value === "string" && value.startsWith("data-"),
6404
6407
  { message: 'Type must start with "data-"' }
@@ -6407,18 +6410,18 @@ var uiMessageChunkSchema = lazySchema(
6407
6410
  data: z6.unknown(),
6408
6411
  transient: z6.boolean().optional()
6409
6412
  }),
6410
- z6.strictObject({
6413
+ z6.looseObject({
6411
6414
  type: z6.literal("start-step")
6412
6415
  }),
6413
- z6.strictObject({
6416
+ z6.looseObject({
6414
6417
  type: z6.literal("finish-step")
6415
6418
  }),
6416
- z6.strictObject({
6419
+ z6.looseObject({
6417
6420
  type: z6.literal("start"),
6418
6421
  messageId: z6.string().optional(),
6419
6422
  messageMetadata: z6.unknown().optional()
6420
6423
  }),
6421
- z6.strictObject({
6424
+ z6.looseObject({
6422
6425
  type: z6.literal("finish"),
6423
6426
  finishReason: z6.enum([
6424
6427
  "stop",
@@ -6430,11 +6433,11 @@ var uiMessageChunkSchema = lazySchema(
6430
6433
  ]).optional(),
6431
6434
  messageMetadata: z6.unknown().optional()
6432
6435
  }),
6433
- z6.strictObject({
6436
+ z6.looseObject({
6434
6437
  type: z6.literal("abort"),
6435
6438
  reason: z6.string().optional()
6436
6439
  }),
6437
- z6.strictObject({
6440
+ z6.looseObject({
6438
6441
  type: z6.literal("message-metadata"),
6439
6442
  messageMetadata: z6.unknown()
6440
6443
  })