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/CHANGELOG.md +20 -0
- package/dist/index.d.mts +1 -131
- package/dist/index.d.ts +1 -131
- package/dist/index.js +76 -40
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +76 -40
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.mjs +1 -1
- package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +1 -1
- package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +1 -1
- package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +1 -1
- package/package.json +3 -3
- package/src/generate-text/filter-active-tools.ts +19 -0
- package/src/generate-text/generate-text.ts +26 -8
- package/src/generate-text/stream-text.ts +13 -6
- package/src/ui-message-stream/ui-message-chunks.ts +26 -26
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.
|
|
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 =
|
|
4789
|
+
const tool2 = stepToolSet == null ? void 0 : stepToolSet[toolCall.toolName];
|
|
4768
4790
|
if (tool2 == null) {
|
|
4769
4791
|
continue;
|
|
4770
4792
|
}
|
|
4771
|
-
if (
|
|
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 (
|
|
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 =
|
|
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.
|
|
5469
|
+
z7.looseObject({
|
|
5440
5470
|
type: z7.literal("text-start"),
|
|
5441
5471
|
id: z7.string(),
|
|
5442
5472
|
providerMetadata: providerMetadataSchema.optional()
|
|
5443
5473
|
}),
|
|
5444
|
-
z7.
|
|
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.
|
|
5480
|
+
z7.looseObject({
|
|
5451
5481
|
type: z7.literal("text-end"),
|
|
5452
5482
|
id: z7.string(),
|
|
5453
5483
|
providerMetadata: providerMetadataSchema.optional()
|
|
5454
5484
|
}),
|
|
5455
|
-
z7.
|
|
5485
|
+
z7.looseObject({
|
|
5456
5486
|
type: z7.literal("error"),
|
|
5457
5487
|
errorText: z7.string()
|
|
5458
5488
|
}),
|
|
5459
|
-
z7.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
5552
|
+
z7.looseObject({
|
|
5523
5553
|
type: z7.literal("tool-output-denied"),
|
|
5524
5554
|
toolCallId: z7.string()
|
|
5525
5555
|
}),
|
|
5526
|
-
z7.
|
|
5556
|
+
z7.looseObject({
|
|
5527
5557
|
type: z7.literal("reasoning-start"),
|
|
5528
5558
|
id: z7.string(),
|
|
5529
5559
|
providerMetadata: providerMetadataSchema.optional()
|
|
5530
5560
|
}),
|
|
5531
|
-
z7.
|
|
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.
|
|
5567
|
+
z7.looseObject({
|
|
5538
5568
|
type: z7.literal("reasoning-end"),
|
|
5539
5569
|
id: z7.string(),
|
|
5540
5570
|
providerMetadata: providerMetadataSchema.optional()
|
|
5541
5571
|
}),
|
|
5542
|
-
z7.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
5602
|
+
z7.looseObject({
|
|
5573
5603
|
type: z7.literal("start-step")
|
|
5574
5604
|
}),
|
|
5575
|
-
z7.
|
|
5605
|
+
z7.looseObject({
|
|
5576
5606
|
type: z7.literal("finish-step")
|
|
5577
5607
|
}),
|
|
5578
|
-
z7.
|
|
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.
|
|
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.
|
|
5625
|
+
z7.looseObject({
|
|
5596
5626
|
type: z7.literal("abort"),
|
|
5597
5627
|
reason: z7.string().optional()
|
|
5598
5628
|
}),
|
|
5599
|
-
z7.
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 {
|