ai 6.0.229 → 6.0.231

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/dist/index.mjs CHANGED
@@ -1171,7 +1171,7 @@ import {
1171
1171
  } from "@ai-sdk/provider-utils";
1172
1172
 
1173
1173
  // src/version.ts
1174
- var VERSION = true ? "6.0.229" : "0.0.0-test";
1174
+ var VERSION = true ? "6.0.231" : "0.0.0-test";
1175
1175
 
1176
1176
  // src/util/download/download.ts
1177
1177
  var download = async ({
@@ -3013,6 +3013,21 @@ function extractTextContent(content) {
3013
3013
  return parts.map((content2) => content2.text).join("");
3014
3014
  }
3015
3015
 
3016
+ // src/generate-text/filter-active-tools.ts
3017
+ function filterActiveTools({
3018
+ tools,
3019
+ activeTools
3020
+ }) {
3021
+ if (tools == null || activeTools == null) {
3022
+ return tools;
3023
+ }
3024
+ return Object.fromEntries(
3025
+ Object.entries(tools).filter(
3026
+ ([name22]) => activeTools.includes(name22)
3027
+ )
3028
+ );
3029
+ }
3030
+
3016
3031
  // src/generate-text/generated-file.ts
3017
3032
  import {
3018
3033
  convertBase64ToUint8Array as convertBase64ToUint8Array3,
@@ -4569,6 +4584,9 @@ async function generateText({
4569
4584
  const steps = [];
4570
4585
  const pendingDeferredToolCalls = /* @__PURE__ */ new Map();
4571
4586
  do {
4587
+ if (steps.length > 0) {
4588
+ mergedAbortSignal == null ? void 0 : mergedAbortSignal.throwIfAborted();
4589
+ }
4572
4590
  const stepTimeoutId = setAbortTimeout({
4573
4591
  abortController: stepAbortController,
4574
4592
  label: "Step",
@@ -4600,6 +4618,10 @@ async function generateText({
4600
4618
  });
4601
4619
  experimental_context = (_d = prepareStepResult == null ? void 0 : prepareStepResult.experimental_context) != null ? _d : experimental_context;
4602
4620
  const stepActiveTools = (_e = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _e : activeTools;
4621
+ const stepToolSet = filterActiveTools({
4622
+ tools,
4623
+ activeTools: stepActiveTools
4624
+ });
4603
4625
  const { toolChoice: stepToolChoice, tools: stepTools } = await prepareToolsAndToolChoice({
4604
4626
  tools,
4605
4627
  toolChoice: (_f = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _f : toolChoice,
@@ -4752,7 +4774,7 @@ async function generateText({
4752
4774
  ).map(
4753
4775
  (toolCall) => parseToolCall({
4754
4776
  toolCall,
4755
- tools,
4777
+ tools: stepToolSet,
4756
4778
  repairToolCall,
4757
4779
  system,
4758
4780
  messages: stepInputMessages
@@ -4764,11 +4786,19 @@ async function generateText({
4764
4786
  if (toolCall.invalid) {
4765
4787
  continue;
4766
4788
  }
4767
- const tool2 = tools == null ? void 0 : tools[toolCall.toolName];
4789
+ const tool2 = stepToolSet == null ? void 0 : stepToolSet[toolCall.toolName];
4768
4790
  if (tool2 == null) {
4769
4791
  continue;
4770
4792
  }
4771
- if ((tool2 == null ? void 0 : tool2.onInputAvailable) != null) {
4793
+ if (tool2.onInputStart != null) {
4794
+ await tool2.onInputStart({
4795
+ toolCallId: toolCall.toolCallId,
4796
+ messages: stepInputMessages,
4797
+ abortSignal: mergedAbortSignal,
4798
+ experimental_context
4799
+ });
4800
+ }
4801
+ if (tool2.onInputAvailable != null) {
4772
4802
  await tool2.onInputAvailable({
4773
4803
  input: toolCall.input,
4774
4804
  toolCallId: toolCall.toolCallId,
@@ -4816,13 +4846,13 @@ async function generateText({
4816
4846
  clientToolCalls = stepToolCalls.filter(
4817
4847
  (toolCall) => !toolCall.providerExecuted
4818
4848
  );
4819
- if (tools != null) {
4849
+ if (stepToolSet != null) {
4820
4850
  clientToolOutputs.push(
4821
4851
  ...await executeTools({
4822
4852
  toolCalls: clientToolCalls.filter(
4823
4853
  (toolCall) => !toolCall.invalid && toolApprovalRequests[toolCall.toolCallId] == null
4824
4854
  ),
4825
- tools,
4855
+ tools: stepToolSet,
4826
4856
  tracer,
4827
4857
  telemetry,
4828
4858
  messages: stepInputMessages,
@@ -4844,7 +4874,7 @@ async function generateText({
4844
4874
  for (const toolCall of stepToolCalls) {
4845
4875
  if (!toolCall.providerExecuted)
4846
4876
  continue;
4847
- const tool2 = tools == null ? void 0 : tools[toolCall.toolName];
4877
+ const tool2 = stepToolSet == null ? void 0 : stepToolSet[toolCall.toolName];
4848
4878
  if ((tool2 == null ? void 0 : tool2.type) === "provider" && tool2.supportsDeferredResults) {
4849
4879
  const hasResultInResponse = currentModelResponse.content.some(
4850
4880
  (part) => part.type === "tool-result" && part.toolCallId === toolCall.toolCallId
@@ -4866,12 +4896,12 @@ async function generateText({
4866
4896
  toolCalls: stepToolCalls,
4867
4897
  toolOutputs: clientToolOutputs,
4868
4898
  toolApprovalRequests: Object.values(toolApprovalRequests),
4869
- tools
4899
+ tools: stepToolSet
4870
4900
  });
4871
4901
  responseMessages.push(
4872
4902
  ...await toResponseMessages({
4873
4903
  content: stepContent,
4874
- tools
4904
+ tools: stepToolSet
4875
4905
  })
4876
4906
  );
4877
4907
  const stepRequest = ((_i = include == null ? void 0 : include.requestBody) != null ? _i : true) ? (_j = currentModelResponse.request) != null ? _j : {} : { ...currentModelResponse.request, body: void 0 };
@@ -5436,27 +5466,27 @@ var toolMetadataSchema = z7.record(
5436
5466
  var uiMessageChunkSchema = lazySchema(
5437
5467
  () => zodSchema(
5438
5468
  z7.union([
5439
- z7.strictObject({
5469
+ z7.looseObject({
5440
5470
  type: z7.literal("text-start"),
5441
5471
  id: z7.string(),
5442
5472
  providerMetadata: providerMetadataSchema.optional()
5443
5473
  }),
5444
- z7.strictObject({
5474
+ z7.looseObject({
5445
5475
  type: z7.literal("text-delta"),
5446
5476
  id: z7.string(),
5447
5477
  delta: z7.string(),
5448
5478
  providerMetadata: providerMetadataSchema.optional()
5449
5479
  }),
5450
- z7.strictObject({
5480
+ z7.looseObject({
5451
5481
  type: z7.literal("text-end"),
5452
5482
  id: z7.string(),
5453
5483
  providerMetadata: providerMetadataSchema.optional()
5454
5484
  }),
5455
- z7.strictObject({
5485
+ z7.looseObject({
5456
5486
  type: z7.literal("error"),
5457
5487
  errorText: z7.string()
5458
5488
  }),
5459
- z7.strictObject({
5489
+ z7.looseObject({
5460
5490
  type: z7.literal("tool-input-start"),
5461
5491
  toolCallId: z7.string(),
5462
5492
  toolName: z7.string(),
@@ -5466,12 +5496,12 @@ var uiMessageChunkSchema = lazySchema(
5466
5496
  dynamic: z7.boolean().optional(),
5467
5497
  title: z7.string().optional()
5468
5498
  }),
5469
- z7.strictObject({
5499
+ z7.looseObject({
5470
5500
  type: z7.literal("tool-input-delta"),
5471
5501
  toolCallId: z7.string(),
5472
5502
  inputTextDelta: z7.string()
5473
5503
  }),
5474
- z7.strictObject({
5504
+ z7.looseObject({
5475
5505
  type: z7.literal("tool-input-available"),
5476
5506
  toolCallId: z7.string(),
5477
5507
  toolName: z7.string(),
@@ -5482,7 +5512,7 @@ var uiMessageChunkSchema = lazySchema(
5482
5512
  dynamic: z7.boolean().optional(),
5483
5513
  title: z7.string().optional()
5484
5514
  }),
5485
- z7.strictObject({
5515
+ z7.looseObject({
5486
5516
  type: z7.literal("tool-input-error"),
5487
5517
  toolCallId: z7.string(),
5488
5518
  toolName: z7.string(),
@@ -5494,13 +5524,13 @@ var uiMessageChunkSchema = lazySchema(
5494
5524
  errorText: z7.string(),
5495
5525
  title: z7.string().optional()
5496
5526
  }),
5497
- z7.strictObject({
5527
+ z7.looseObject({
5498
5528
  type: z7.literal("tool-approval-request"),
5499
5529
  approvalId: z7.string(),
5500
5530
  toolCallId: z7.string(),
5501
5531
  signature: z7.string().optional()
5502
5532
  }),
5503
- z7.strictObject({
5533
+ z7.looseObject({
5504
5534
  type: z7.literal("tool-output-available"),
5505
5535
  toolCallId: z7.string(),
5506
5536
  output: z7.unknown(),
@@ -5510,7 +5540,7 @@ var uiMessageChunkSchema = lazySchema(
5510
5540
  dynamic: z7.boolean().optional(),
5511
5541
  preliminary: z7.boolean().optional()
5512
5542
  }),
5513
- z7.strictObject({
5543
+ z7.looseObject({
5514
5544
  type: z7.literal("tool-output-error"),
5515
5545
  toolCallId: z7.string(),
5516
5546
  errorText: z7.string(),
@@ -5519,34 +5549,34 @@ var uiMessageChunkSchema = lazySchema(
5519
5549
  toolMetadata: toolMetadataSchema.optional(),
5520
5550
  dynamic: z7.boolean().optional()
5521
5551
  }),
5522
- z7.strictObject({
5552
+ z7.looseObject({
5523
5553
  type: z7.literal("tool-output-denied"),
5524
5554
  toolCallId: z7.string()
5525
5555
  }),
5526
- z7.strictObject({
5556
+ z7.looseObject({
5527
5557
  type: z7.literal("reasoning-start"),
5528
5558
  id: z7.string(),
5529
5559
  providerMetadata: providerMetadataSchema.optional()
5530
5560
  }),
5531
- z7.strictObject({
5561
+ z7.looseObject({
5532
5562
  type: z7.literal("reasoning-delta"),
5533
5563
  id: z7.string(),
5534
5564
  delta: z7.string(),
5535
5565
  providerMetadata: providerMetadataSchema.optional()
5536
5566
  }),
5537
- z7.strictObject({
5567
+ z7.looseObject({
5538
5568
  type: z7.literal("reasoning-end"),
5539
5569
  id: z7.string(),
5540
5570
  providerMetadata: providerMetadataSchema.optional()
5541
5571
  }),
5542
- z7.strictObject({
5572
+ z7.looseObject({
5543
5573
  type: z7.literal("source-url"),
5544
5574
  sourceId: z7.string(),
5545
5575
  url: z7.string(),
5546
5576
  title: z7.string().optional(),
5547
5577
  providerMetadata: providerMetadataSchema.optional()
5548
5578
  }),
5549
- z7.strictObject({
5579
+ z7.looseObject({
5550
5580
  type: z7.literal("source-document"),
5551
5581
  sourceId: z7.string(),
5552
5582
  mediaType: z7.string(),
@@ -5554,13 +5584,13 @@ var uiMessageChunkSchema = lazySchema(
5554
5584
  filename: z7.string().optional(),
5555
5585
  providerMetadata: providerMetadataSchema.optional()
5556
5586
  }),
5557
- z7.strictObject({
5587
+ z7.looseObject({
5558
5588
  type: z7.literal("file"),
5559
5589
  url: z7.string(),
5560
5590
  mediaType: z7.string(),
5561
5591
  providerMetadata: providerMetadataSchema.optional()
5562
5592
  }),
5563
- z7.strictObject({
5593
+ z7.looseObject({
5564
5594
  type: z7.custom(
5565
5595
  (value) => typeof value === "string" && value.startsWith("data-"),
5566
5596
  { message: 'Type must start with "data-"' }
@@ -5569,18 +5599,18 @@ var uiMessageChunkSchema = lazySchema(
5569
5599
  data: z7.unknown(),
5570
5600
  transient: z7.boolean().optional()
5571
5601
  }),
5572
- z7.strictObject({
5602
+ z7.looseObject({
5573
5603
  type: z7.literal("start-step")
5574
5604
  }),
5575
- z7.strictObject({
5605
+ z7.looseObject({
5576
5606
  type: z7.literal("finish-step")
5577
5607
  }),
5578
- z7.strictObject({
5608
+ z7.looseObject({
5579
5609
  type: z7.literal("start"),
5580
5610
  messageId: z7.string().optional(),
5581
5611
  messageMetadata: z7.unknown().optional()
5582
5612
  }),
5583
- z7.strictObject({
5613
+ z7.looseObject({
5584
5614
  type: z7.literal("finish"),
5585
5615
  finishReason: z7.enum([
5586
5616
  "stop",
@@ -5592,11 +5622,11 @@ var uiMessageChunkSchema = lazySchema(
5592
5622
  ]).optional(),
5593
5623
  messageMetadata: z7.unknown().optional()
5594
5624
  }),
5595
- z7.strictObject({
5625
+ z7.looseObject({
5596
5626
  type: z7.literal("abort"),
5597
5627
  reason: z7.string().optional()
5598
5628
  }),
5599
- z7.strictObject({
5629
+ z7.looseObject({
5600
5630
  type: z7.literal("message-metadata"),
5601
5631
  messageMetadata: z7.unknown()
5602
5632
  })
@@ -7052,6 +7082,7 @@ var DefaultStreamTextResult = class {
7052
7082
  let recordedWarnings = [];
7053
7083
  const recordedSteps = [];
7054
7084
  let recordedNoOutputError;
7085
+ let currentStepToolSet = tools;
7055
7086
  const pendingDeferredToolCalls = /* @__PURE__ */ new Map();
7056
7087
  let rootSpan;
7057
7088
  let activeTextContent = createIdMap();
@@ -7179,7 +7210,7 @@ var DefaultStreamTextResult = class {
7179
7210
  if (part.type === "finish-step") {
7180
7211
  const stepMessages = await toResponseMessages({
7181
7212
  content: recordedContent,
7182
- tools
7213
+ tools: currentStepToolSet
7183
7214
  });
7184
7215
  const currentStepResult = new DefaultStepResult({
7185
7216
  stepNumber: recordedSteps.length,
@@ -7610,6 +7641,11 @@ var DefaultStreamTextResult = class {
7610
7641
  download: download2
7611
7642
  });
7612
7643
  const stepActiveTools = (_d = prepareStepResult == null ? void 0 : prepareStepResult.activeTools) != null ? _d : activeTools;
7644
+ const stepToolSet = filterActiveTools({
7645
+ tools,
7646
+ activeTools: stepActiveTools
7647
+ });
7648
+ currentStepToolSet = stepToolSet;
7613
7649
  const { toolChoice: stepToolChoice, tools: stepTools } = await prepareToolsAndToolChoice({
7614
7650
  tools,
7615
7651
  toolChoice: (_e = prepareStepResult == null ? void 0 : prepareStepResult.toolChoice) != null ? _e : toolChoice,
@@ -7709,7 +7745,7 @@ var DefaultStreamTextResult = class {
7709
7745
  })
7710
7746
  );
7711
7747
  const streamWithToolResults = runToolsTransformation({
7712
- tools,
7748
+ tools: stepToolSet,
7713
7749
  generatorStream: stream2,
7714
7750
  tracer,
7715
7751
  telemetry,
@@ -7860,7 +7896,7 @@ var DefaultStreamTextResult = class {
7860
7896
  }
7861
7897
  case "tool-input-start": {
7862
7898
  activeToolCallToolNames[chunk.id] = chunk.toolName;
7863
- const tool2 = tools == null ? void 0 : tools[chunk.toolName];
7899
+ const tool2 = stepToolSet == null ? void 0 : stepToolSet[chunk.toolName];
7864
7900
  if ((tool2 == null ? void 0 : tool2.onInputStart) != null) {
7865
7901
  await tool2.onInputStart({
7866
7902
  toolCallId: chunk.id,
@@ -7883,7 +7919,7 @@ var DefaultStreamTextResult = class {
7883
7919
  }
7884
7920
  case "tool-input-delta": {
7885
7921
  const toolName = activeToolCallToolNames[chunk.id];
7886
- const tool2 = tools == null ? void 0 : tools[toolName];
7922
+ const tool2 = stepToolSet == null ? void 0 : stepToolSet[toolName];
7887
7923
  if ((tool2 == null ? void 0 : tool2.onInputDelta) != null) {
7888
7924
  await tool2.onInputDelta({
7889
7925
  inputTextDelta: chunk.delta,
@@ -8015,7 +8051,7 @@ var DefaultStreamTextResult = class {
8015
8051
  for (const toolCall of stepToolCalls) {
8016
8052
  if (toolCall.providerExecuted !== true)
8017
8053
  continue;
8018
- const tool2 = tools == null ? void 0 : tools[toolCall.toolName];
8054
+ const tool2 = stepToolSet == null ? void 0 : stepToolSet[toolCall.toolName];
8019
8055
  if ((tool2 == null ? void 0 : tool2.type) === "provider" && tool2.supportsDeferredResults) {
8020
8056
  const hasResultInStep = stepToolOutputs.some(
8021
8057
  (output2) => (output2.type === "tool-result" || output2.type === "tool-error") && output2.toolCallId === toolCall.toolCallId
@@ -8050,7 +8086,7 @@ var DefaultStreamTextResult = class {
8050
8086
  // use transformed content to create the messages for the next step:
8051
8087
  recordedSteps[recordedSteps.length - 1].content
8052
8088
  ),
8053
- tools
8089
+ tools: stepToolSet
8054
8090
  })
8055
8091
  );
8056
8092
  try {