@ai-sdk/workflow 2.0.59 → 2.0.60

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,11 @@
1
1
  # @ai-sdk/workflow
2
2
 
3
+ ## 2.0.60
4
+
5
+ ### Patch Changes
6
+
7
+ - d9e04cb: fix(workflow): reuse persisted tool denial results during approval resumption
8
+
3
9
  ## 2.0.59
4
10
 
5
11
  ### Patch Changes
package/dist/index.js CHANGED
@@ -1659,7 +1659,8 @@ var WorkflowAgent = class {
1659
1659
  toolName: collected.toolCall.toolName,
1660
1660
  input: collected.toolCall.input,
1661
1661
  reason: collected.approvalResponse.reason,
1662
- providerExecuted: collected.toolCall.providerExecuted === true
1662
+ providerExecuted: collected.toolCall.providerExecuted === true,
1663
+ existingToolResult: collected.existingToolResult
1663
1664
  }));
1664
1665
  const providerExecutedApprovalIds = new Set([...collectedApprovals.approvedToolApprovals, ...collectedApprovals.deniedToolApprovals].filter((collected) => collected.toolCall.providerExecuted === true).map((collected) => collected.approvalResponse.approvalId));
1665
1666
  if (approvedToolApprovals.length > 0 || deniedToolApprovals.length > 0) {
@@ -1744,7 +1745,7 @@ var WorkflowAgent = class {
1744
1745
  }
1745
1746
  }
1746
1747
  for (const denial of deniedToolApprovals) {
1747
- if (denial.providerExecuted) continue;
1748
+ if (denial.providerExecuted || denial.existingToolResult !== void 0) continue;
1748
1749
  toolResultContent.push({
1749
1750
  type: "tool-result",
1750
1751
  toolCallId: denial.toolCallId,
@@ -1785,10 +1786,8 @@ var WorkflowAgent = class {
1785
1786
  content: toolResultContent
1786
1787
  });
1787
1788
  prompt.messages = cleanedMessages;
1788
- if (options.writable && toolResultContent.length > 0) {
1789
- const deniedResults = toolResultContent.filter((r) => r.output.type === "execution-denied").map((r) => ({ toolCallId: r.toolCallId }));
1790
- await writeApprovalToolResults(options.writable, approvedRawResults, deniedResults);
1791
- }
1789
+ const deniedResults = deniedToolApprovals.filter((denial) => !denial.providerExecuted).map((denial) => ({ toolCallId: denial.toolCallId }));
1790
+ if (options.writable && (toolResultContent.length > 0 || deniedResults.length > 0)) await writeApprovalToolResults(options.writable, approvedRawResults, deniedResults);
1792
1791
  }
1793
1792
  const modelPrompt = await convertToLanguageModelPrompt({
1794
1793
  prompt,