ai 6.0.264 → 6.0.266
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.js +86 -21
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +86 -21
- package/dist/index.mjs.map +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.mjs +1 -1
- package/docs/02-foundations/02-providers-and-models.mdx +2 -2
- package/package.json +3 -3
- package/src/generate-text/generate-text.ts +21 -1
- package/src/generate-text/stream-text.ts +69 -13
- package/src/generate-text/validate-tool-approvals.ts +24 -8
- package/src/util/create-stitchable-stream.ts +9 -2
package/dist/index.mjs
CHANGED
|
@@ -1193,7 +1193,7 @@ import {
|
|
|
1193
1193
|
} from "@ai-sdk/provider-utils";
|
|
1194
1194
|
|
|
1195
1195
|
// src/version.ts
|
|
1196
|
-
var VERSION = true ? "6.0.
|
|
1196
|
+
var VERSION = true ? "6.0.266" : "0.0.0-test";
|
|
1197
1197
|
|
|
1198
1198
|
// src/util/download/download.ts
|
|
1199
1199
|
var download = async ({
|
|
@@ -3231,6 +3231,7 @@ async function validateApprovedToolApprovals({
|
|
|
3231
3231
|
var _a22;
|
|
3232
3232
|
const approved = [];
|
|
3233
3233
|
const denied = [];
|
|
3234
|
+
const invalid = [];
|
|
3234
3235
|
for (const approval of approvedToolApprovals) {
|
|
3235
3236
|
const { toolCall, approvalRequest } = approval;
|
|
3236
3237
|
const tool2 = tools == null ? void 0 : tools[toolCall.toolName];
|
|
@@ -3264,11 +3265,15 @@ async function validateApprovedToolApprovals({
|
|
|
3264
3265
|
schema: asSchema2(tool2.inputSchema)
|
|
3265
3266
|
});
|
|
3266
3267
|
if (!validation.success) {
|
|
3267
|
-
|
|
3268
|
-
|
|
3269
|
-
|
|
3270
|
-
|
|
3268
|
+
invalid.push({
|
|
3269
|
+
...approval,
|
|
3270
|
+
error: new InvalidToolInputError({
|
|
3271
|
+
toolName: toolCall.toolName,
|
|
3272
|
+
toolInput: JSON.stringify(toolCall.input),
|
|
3273
|
+
cause: validation.error
|
|
3274
|
+
})
|
|
3271
3275
|
});
|
|
3276
|
+
continue;
|
|
3272
3277
|
}
|
|
3273
3278
|
}
|
|
3274
3279
|
const approvalNeeded = tool2 != null && await isApprovalNeeded({
|
|
@@ -3290,7 +3295,11 @@ async function validateApprovedToolApprovals({
|
|
|
3290
3295
|
});
|
|
3291
3296
|
}
|
|
3292
3297
|
}
|
|
3293
|
-
return {
|
|
3298
|
+
return {
|
|
3299
|
+
approvedToolApprovals: approved,
|
|
3300
|
+
deniedToolApprovals: denied,
|
|
3301
|
+
invalidToolApprovals: invalid
|
|
3302
|
+
};
|
|
3294
3303
|
}
|
|
3295
3304
|
|
|
3296
3305
|
// src/generate-text/output.ts
|
|
@@ -4557,7 +4566,8 @@ async function generateText({
|
|
|
4557
4566
|
} = collectToolApprovals({ messages: initialMessages });
|
|
4558
4567
|
const {
|
|
4559
4568
|
approvedToolApprovals: localApprovedToolApprovals,
|
|
4560
|
-
deniedToolApprovals: revalidationDeniedToolApprovals
|
|
4569
|
+
deniedToolApprovals: revalidationDeniedToolApprovals,
|
|
4570
|
+
invalidToolApprovals
|
|
4561
4571
|
} = await validateApprovedToolApprovals({
|
|
4562
4572
|
approvedToolApprovals: approvedToolApprovals.filter(
|
|
4563
4573
|
(toolApproval) => !toolApproval.toolCall.providerExecuted
|
|
@@ -4571,7 +4581,7 @@ async function generateText({
|
|
|
4571
4581
|
...collectedDeniedToolApprovals,
|
|
4572
4582
|
...revalidationDeniedToolApprovals
|
|
4573
4583
|
];
|
|
4574
|
-
if (deniedToolApprovals.length > 0 || localApprovedToolApprovals.length > 0) {
|
|
4584
|
+
if (deniedToolApprovals.length > 0 || localApprovedToolApprovals.length > 0 || invalidToolApprovals.length > 0) {
|
|
4575
4585
|
const toolOutputs = await executeTools({
|
|
4576
4586
|
toolCalls: localApprovedToolApprovals.map(
|
|
4577
4587
|
(toolApproval) => toolApproval.toolCall
|
|
@@ -4609,6 +4619,20 @@ async function generateText({
|
|
|
4609
4619
|
output: modelOutput
|
|
4610
4620
|
});
|
|
4611
4621
|
}
|
|
4622
|
+
for (const toolApproval of invalidToolApprovals) {
|
|
4623
|
+
toolContent.push({
|
|
4624
|
+
type: "tool-result",
|
|
4625
|
+
toolCallId: toolApproval.toolCall.toolCallId,
|
|
4626
|
+
toolName: toolApproval.toolCall.toolName,
|
|
4627
|
+
output: await createToolModelOutput({
|
|
4628
|
+
toolCallId: toolApproval.toolCall.toolCallId,
|
|
4629
|
+
input: toolApproval.toolCall.input,
|
|
4630
|
+
tool: tools == null ? void 0 : tools[toolApproval.toolCall.toolName],
|
|
4631
|
+
output: toolApproval.error,
|
|
4632
|
+
errorMode: "text"
|
|
4633
|
+
})
|
|
4634
|
+
});
|
|
4635
|
+
}
|
|
4612
4636
|
for (const toolApproval of deniedToolApprovals) {
|
|
4613
4637
|
toolContent.push({
|
|
4614
4638
|
type: "tool-result",
|
|
@@ -6579,7 +6603,10 @@ function createStitchableStream() {
|
|
|
6579
6603
|
const terminate = () => {
|
|
6580
6604
|
isClosed = true;
|
|
6581
6605
|
waitForNewStream.resolve();
|
|
6582
|
-
innerStreams.forEach(({ reader }) =>
|
|
6606
|
+
innerStreams.forEach(({ reader, onCancel }) => {
|
|
6607
|
+
onCancel == null ? void 0 : onCancel();
|
|
6608
|
+
reader.cancel();
|
|
6609
|
+
});
|
|
6583
6610
|
innerStreams = [];
|
|
6584
6611
|
controller == null ? void 0 : controller.close();
|
|
6585
6612
|
};
|
|
@@ -6620,7 +6647,8 @@ function createStitchableStream() {
|
|
|
6620
6647
|
},
|
|
6621
6648
|
pull: processPull,
|
|
6622
6649
|
async cancel() {
|
|
6623
|
-
for (const { reader } of innerStreams) {
|
|
6650
|
+
for (const { reader, onCancel } of innerStreams) {
|
|
6651
|
+
onCancel == null ? void 0 : onCancel();
|
|
6624
6652
|
await reader.cancel();
|
|
6625
6653
|
}
|
|
6626
6654
|
innerStreams = [];
|
|
@@ -7625,7 +7653,8 @@ var DefaultStreamTextResult = class {
|
|
|
7625
7653
|
if (deniedToolApprovals.length > 0 || approvedToolApprovals.length > 0) {
|
|
7626
7654
|
const {
|
|
7627
7655
|
approvedToolApprovals: localApprovedToolApprovals,
|
|
7628
|
-
deniedToolApprovals: revalidationDeniedToolApprovals
|
|
7656
|
+
deniedToolApprovals: revalidationDeniedToolApprovals,
|
|
7657
|
+
invalidToolApprovals
|
|
7629
7658
|
} = await validateApprovedToolApprovals({
|
|
7630
7659
|
approvedToolApprovals: approvedToolApprovals.filter(
|
|
7631
7660
|
(toolApproval) => !toolApproval.toolCall.providerExecuted
|
|
@@ -7662,6 +7691,18 @@ var DefaultStreamTextResult = class {
|
|
|
7662
7691
|
toolName: toolApproval.toolCall.toolName
|
|
7663
7692
|
});
|
|
7664
7693
|
}
|
|
7694
|
+
for (const toolApproval of invalidToolApprovals) {
|
|
7695
|
+
toolExecutionStepStreamController == null ? void 0 : toolExecutionStepStreamController.enqueue({
|
|
7696
|
+
type: "tool-error",
|
|
7697
|
+
toolCallId: toolApproval.toolCall.toolCallId,
|
|
7698
|
+
toolName: toolApproval.toolCall.toolName,
|
|
7699
|
+
input: toolApproval.toolCall.input,
|
|
7700
|
+
error: getErrorMessage6(toolApproval.error),
|
|
7701
|
+
title: toolApproval.toolCall.title,
|
|
7702
|
+
...toolApproval.toolCall.dynamic === true ? { dynamic: true } : {},
|
|
7703
|
+
...toolApproval.toolCall.toolMetadata != null ? { toolMetadata: toolApproval.toolCall.toolMetadata } : {}
|
|
7704
|
+
});
|
|
7705
|
+
}
|
|
7665
7706
|
const toolOutputs = [];
|
|
7666
7707
|
await Promise.all(
|
|
7667
7708
|
localApprovedToolApprovals.map(async (toolApproval) => {
|
|
@@ -7693,7 +7734,7 @@ var DefaultStreamTextResult = class {
|
|
|
7693
7734
|
}
|
|
7694
7735
|
})
|
|
7695
7736
|
);
|
|
7696
|
-
if (toolOutputs.length > 0 || localDeniedToolApprovals.length > 0) {
|
|
7737
|
+
if (toolOutputs.length > 0 || localDeniedToolApprovals.length > 0 || invalidToolApprovals.length > 0) {
|
|
7697
7738
|
const localToolContent = [];
|
|
7698
7739
|
for (const output2 of toolOutputs) {
|
|
7699
7740
|
localToolContent.push({
|
|
@@ -7709,6 +7750,20 @@ var DefaultStreamTextResult = class {
|
|
|
7709
7750
|
})
|
|
7710
7751
|
});
|
|
7711
7752
|
}
|
|
7753
|
+
for (const toolApproval of invalidToolApprovals) {
|
|
7754
|
+
localToolContent.push({
|
|
7755
|
+
type: "tool-result",
|
|
7756
|
+
toolCallId: toolApproval.toolCall.toolCallId,
|
|
7757
|
+
toolName: toolApproval.toolCall.toolName,
|
|
7758
|
+
output: await createToolModelOutput({
|
|
7759
|
+
toolCallId: toolApproval.toolCall.toolCallId,
|
|
7760
|
+
input: toolApproval.toolCall.input,
|
|
7761
|
+
tool: tools == null ? void 0 : tools[toolApproval.toolCall.toolName],
|
|
7762
|
+
output: toolApproval.error,
|
|
7763
|
+
errorMode: "text"
|
|
7764
|
+
})
|
|
7765
|
+
});
|
|
7766
|
+
}
|
|
7712
7767
|
for (const toolApproval of localDeniedToolApprovals) {
|
|
7713
7768
|
localToolContent.push({
|
|
7714
7769
|
type: "tool-result",
|
|
@@ -7764,8 +7819,17 @@ var DefaultStreamTextResult = class {
|
|
|
7764
7819
|
clearTimeout(stepTimeoutId);
|
|
7765
7820
|
}
|
|
7766
7821
|
}
|
|
7767
|
-
|
|
7768
|
-
|
|
7822
|
+
function clearStepTimeouts() {
|
|
7823
|
+
clearStepTimeout();
|
|
7824
|
+
clearChunkTimeout();
|
|
7825
|
+
}
|
|
7826
|
+
function cleanupStepTimeouts() {
|
|
7827
|
+
abortSignal == null ? void 0 : abortSignal.removeEventListener("abort", cleanupStepTimeouts);
|
|
7828
|
+
clearStepTimeouts();
|
|
7829
|
+
}
|
|
7830
|
+
abortSignal == null ? void 0 : abortSignal.addEventListener("abort", cleanupStepTimeouts, {
|
|
7831
|
+
once: true
|
|
7832
|
+
});
|
|
7769
7833
|
try {
|
|
7770
7834
|
stepFinish = new DelayedPromise();
|
|
7771
7835
|
const stepInputMessages = [...initialMessages, ...responseMessages];
|
|
@@ -8142,8 +8206,7 @@ var DefaultStreamTextResult = class {
|
|
|
8142
8206
|
})
|
|
8143
8207
|
});
|
|
8144
8208
|
doStreamSpan.end();
|
|
8145
|
-
|
|
8146
|
-
clearChunkTimeout();
|
|
8209
|
+
cleanupStepTimeouts();
|
|
8147
8210
|
self.closeStream();
|
|
8148
8211
|
return;
|
|
8149
8212
|
}
|
|
@@ -8247,8 +8310,7 @@ var DefaultStreamTextResult = class {
|
|
|
8247
8310
|
pendingDeferredToolCalls.delete(output2.toolCallId);
|
|
8248
8311
|
}
|
|
8249
8312
|
}
|
|
8250
|
-
|
|
8251
|
-
clearChunkTimeout();
|
|
8313
|
+
cleanupStepTimeouts();
|
|
8252
8314
|
if (
|
|
8253
8315
|
// Continue if:
|
|
8254
8316
|
// 1. There are client tool calls that have all been executed, OR
|
|
@@ -8292,11 +8354,14 @@ var DefaultStreamTextResult = class {
|
|
|
8292
8354
|
}
|
|
8293
8355
|
}
|
|
8294
8356
|
})
|
|
8295
|
-
)
|
|
8357
|
+
),
|
|
8358
|
+
{
|
|
8359
|
+
onError: cleanupStepTimeouts,
|
|
8360
|
+
onCancel: cleanupStepTimeouts
|
|
8361
|
+
}
|
|
8296
8362
|
);
|
|
8297
8363
|
} catch (error) {
|
|
8298
|
-
|
|
8299
|
-
clearChunkTimeout();
|
|
8364
|
+
cleanupStepTimeouts();
|
|
8300
8365
|
throw error;
|
|
8301
8366
|
}
|
|
8302
8367
|
}
|