ai 7.0.77 → 7.0.78
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 +8 -0
- package/dist/index.js +61 -10
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +3 -0
- package/dist/internal/index.js +15 -6
- package/dist/internal/index.js.map +1 -1
- package/docs/02-foundations/02-providers-and-models.mdx +0 -1
- package/package.json +2 -2
- package/src/generate-text/generate-text.ts +21 -1
- package/src/generate-text/stream-text.ts +38 -1
- package/src/generate-text/validate-tool-approvals.ts +19 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# ai
|
|
2
2
|
|
|
3
|
+
## 7.0.78
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 96970bb: Continue approved `generateText`, `streamText`, and `WorkflowAgent` turns with a model-visible tool error when revalidated tool input is invalid.
|
|
8
|
+
- Updated dependencies [e12e068]
|
|
9
|
+
- @ai-sdk/gateway@4.0.63
|
|
10
|
+
|
|
3
11
|
## 7.0.77
|
|
4
12
|
|
|
5
13
|
### Patch Changes
|
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.78" : "0.0.0-test";
|
|
1147
1147
|
|
|
1148
1148
|
// src/util/download/download.ts
|
|
1149
1149
|
var download = async ({
|
|
@@ -5163,6 +5163,7 @@ async function validateApprovedToolApprovals({
|
|
|
5163
5163
|
var _a23;
|
|
5164
5164
|
const approved = [];
|
|
5165
5165
|
const denied = [];
|
|
5166
|
+
const invalid = [];
|
|
5166
5167
|
for (const approval of approvedToolApprovals) {
|
|
5167
5168
|
const { toolCall, approvalRequest } = approval;
|
|
5168
5169
|
const tool2 = getOwn(tools, toolCall.toolName);
|
|
@@ -5196,11 +5197,15 @@ async function validateApprovedToolApprovals({
|
|
|
5196
5197
|
schema: asSchema4(tool2.inputSchema)
|
|
5197
5198
|
});
|
|
5198
5199
|
if (!validation.success) {
|
|
5199
|
-
|
|
5200
|
-
|
|
5201
|
-
|
|
5202
|
-
|
|
5200
|
+
invalid.push({
|
|
5201
|
+
...approval,
|
|
5202
|
+
error: new InvalidToolInputError({
|
|
5203
|
+
toolName: toolCall.toolName,
|
|
5204
|
+
toolInput: JSON.stringify(toolCall.input),
|
|
5205
|
+
cause: validation.error
|
|
5206
|
+
})
|
|
5203
5207
|
});
|
|
5208
|
+
continue;
|
|
5204
5209
|
}
|
|
5205
5210
|
}
|
|
5206
5211
|
const approvalStatus = await resolveToolApproval({
|
|
@@ -5224,7 +5229,11 @@ async function validateApprovedToolApprovals({
|
|
|
5224
5229
|
approved.push(approval);
|
|
5225
5230
|
}
|
|
5226
5231
|
}
|
|
5227
|
-
return {
|
|
5232
|
+
return {
|
|
5233
|
+
approvedToolApprovals: approved,
|
|
5234
|
+
deniedToolApprovals: denied,
|
|
5235
|
+
invalidToolApprovals: invalid
|
|
5236
|
+
};
|
|
5228
5237
|
}
|
|
5229
5238
|
|
|
5230
5239
|
// src/generate-text/generate-text.ts
|
|
@@ -5407,7 +5416,8 @@ async function generateText({
|
|
|
5407
5416
|
} = collectToolApprovals({ messages: initialMessages });
|
|
5408
5417
|
const {
|
|
5409
5418
|
approvedToolApprovals: localApprovedToolApprovals,
|
|
5410
|
-
deniedToolApprovals: revalidationDeniedToolApprovals
|
|
5419
|
+
deniedToolApprovals: revalidationDeniedToolApprovals,
|
|
5420
|
+
invalidToolApprovals
|
|
5411
5421
|
} = await validateApprovedToolApprovals({
|
|
5412
5422
|
approvedToolApprovals: approvedToolApprovals.filter(
|
|
5413
5423
|
(toolApproval2) => !toolApproval2.toolCall.providerExecuted
|
|
@@ -5426,7 +5436,7 @@ async function generateText({
|
|
|
5426
5436
|
const deniedToolApprovalsWithoutResults = deniedToolApprovals.filter(
|
|
5427
5437
|
(toolApproval2) => toolApproval2.existingToolResult == null
|
|
5428
5438
|
);
|
|
5429
|
-
if (deniedToolApprovalsWithoutResults.length > 0 || localApprovedToolApprovals.length > 0) {
|
|
5439
|
+
if (deniedToolApprovalsWithoutResults.length > 0 || localApprovedToolApprovals.length > 0 || invalidToolApprovals.length > 0) {
|
|
5430
5440
|
const toolResults2 = await executeTools({
|
|
5431
5441
|
toolCalls: localApprovedToolApprovals.map(
|
|
5432
5442
|
(toolApproval2) => toolApproval2.toolCall
|
|
@@ -5472,6 +5482,20 @@ async function generateText({
|
|
|
5472
5482
|
output: modelOutput
|
|
5473
5483
|
});
|
|
5474
5484
|
}
|
|
5485
|
+
for (const toolApproval2 of invalidToolApprovals) {
|
|
5486
|
+
toolContent.push({
|
|
5487
|
+
type: "tool-result",
|
|
5488
|
+
toolCallId: toolApproval2.toolCall.toolCallId,
|
|
5489
|
+
toolName: toolApproval2.toolCall.toolName,
|
|
5490
|
+
output: await createToolModelOutput({
|
|
5491
|
+
toolCallId: toolApproval2.toolCall.toolCallId,
|
|
5492
|
+
input: toolApproval2.toolCall.input,
|
|
5493
|
+
tool: getOwn(tools, toolApproval2.toolCall.toolName),
|
|
5494
|
+
output: toolApproval2.error,
|
|
5495
|
+
errorMode: "text"
|
|
5496
|
+
})
|
|
5497
|
+
});
|
|
5498
|
+
}
|
|
5475
5499
|
for (const toolApproval2 of deniedToolApprovalsWithoutResults) {
|
|
5476
5500
|
toolContent.push({
|
|
5477
5501
|
type: "tool-result",
|
|
@@ -9533,7 +9557,8 @@ var DefaultStreamTextResult = class {
|
|
|
9533
9557
|
if (deniedToolApprovals.length > 0 || approvedToolApprovals.length > 0) {
|
|
9534
9558
|
const {
|
|
9535
9559
|
approvedToolApprovals: localApprovedToolApprovals,
|
|
9536
|
-
deniedToolApprovals: revalidationDeniedToolApprovals
|
|
9560
|
+
deniedToolApprovals: revalidationDeniedToolApprovals,
|
|
9561
|
+
invalidToolApprovals
|
|
9537
9562
|
} = await validateApprovedToolApprovals({
|
|
9538
9563
|
approvedToolApprovals: approvedToolApprovals.filter(
|
|
9539
9564
|
(toolApproval2) => !toolApproval2.toolCall.providerExecuted
|
|
@@ -9575,6 +9600,18 @@ var DefaultStreamTextResult = class {
|
|
|
9575
9600
|
toolName: toolApproval2.toolCall.toolName
|
|
9576
9601
|
});
|
|
9577
9602
|
}
|
|
9603
|
+
for (const toolApproval2 of invalidToolApprovals) {
|
|
9604
|
+
toolExecutionStepStreamController == null ? void 0 : toolExecutionStepStreamController.enqueue({
|
|
9605
|
+
type: "tool-error",
|
|
9606
|
+
toolCallId: toolApproval2.toolCall.toolCallId,
|
|
9607
|
+
toolName: toolApproval2.toolCall.toolName,
|
|
9608
|
+
input: toolApproval2.toolCall.input,
|
|
9609
|
+
error: getErrorMessage6(toolApproval2.error),
|
|
9610
|
+
title: toolApproval2.toolCall.title,
|
|
9611
|
+
...toolApproval2.toolCall.dynamic === true ? { dynamic: true } : {},
|
|
9612
|
+
...toolApproval2.toolCall.toolMetadata != null ? { toolMetadata: toolApproval2.toolCall.toolMetadata } : {}
|
|
9613
|
+
});
|
|
9614
|
+
}
|
|
9578
9615
|
const toolOutputs = [];
|
|
9579
9616
|
await Promise.all(
|
|
9580
9617
|
localApprovedToolApprovals.map(async (toolApproval2) => {
|
|
@@ -9607,7 +9644,7 @@ var DefaultStreamTextResult = class {
|
|
|
9607
9644
|
}
|
|
9608
9645
|
})
|
|
9609
9646
|
);
|
|
9610
|
-
if (toolOutputs.length > 0 || localDeniedToolApprovalsWithoutResults.length > 0) {
|
|
9647
|
+
if (toolOutputs.length > 0 || localDeniedToolApprovalsWithoutResults.length > 0 || invalidToolApprovals.length > 0) {
|
|
9611
9648
|
const localToolContent = [];
|
|
9612
9649
|
for (const output2 of toolOutputs) {
|
|
9613
9650
|
localToolContent.push({
|
|
@@ -9623,6 +9660,20 @@ var DefaultStreamTextResult = class {
|
|
|
9623
9660
|
})
|
|
9624
9661
|
});
|
|
9625
9662
|
}
|
|
9663
|
+
for (const toolApproval2 of invalidToolApprovals) {
|
|
9664
|
+
localToolContent.push({
|
|
9665
|
+
type: "tool-result",
|
|
9666
|
+
toolCallId: toolApproval2.toolCall.toolCallId,
|
|
9667
|
+
toolName: toolApproval2.toolCall.toolName,
|
|
9668
|
+
output: await createToolModelOutput({
|
|
9669
|
+
toolCallId: toolApproval2.toolCall.toolCallId,
|
|
9670
|
+
input: toolApproval2.toolCall.input,
|
|
9671
|
+
tool: getOwn(tools, toolApproval2.toolCall.toolName),
|
|
9672
|
+
output: toolApproval2.error,
|
|
9673
|
+
errorMode: "text"
|
|
9674
|
+
})
|
|
9675
|
+
});
|
|
9676
|
+
}
|
|
9626
9677
|
for (const toolApproval2 of localDeniedToolApprovalsWithoutResults) {
|
|
9627
9678
|
localToolContent.push({
|
|
9628
9679
|
type: "tool-result",
|