






















@@ -44,7 +44,10 @@ import type { ApplyPatchSummary } from "./apply-patch.js";
4444import type { ExecToolDetails } from "./bash-tools.exec-types.js";
4545import { sanitizeForConsole } from "./console-sanitize.js";
4646import { normalizeTextForComparison } from "./embedded-agent-helpers.js";
47-import { isDeliveredMessageToolOnlySourceReplyResult } from "./embedded-agent-message-tool-source-reply.js";
47+import {
48+isDeliveredMessageToolOnlySourceReplyResult,
49+isDeliveredMessagingToolResult,
50+} from "./embedded-agent-message-tool-source-reply.js";
4851import {
4952isMessagingTool,
5053isMessagingToolSendAction,
@@ -1203,6 +1206,15 @@ export async function handleToolExecutionEnd(
12031206const isMessagingSend = isMessagingInvocation && isMessagingToolSendAction(toolName, startArgs);
12041207const hasMessagingTargetEvidence =
12051208isMessagingInvocation && isMessagingToolTargetEvidenceAction(toolName, startArgs);
1209+const didDeliverMessagingResult =
1210+isMessagingInvocation &&
1211+isDeliveredMessagingToolResult({
1212+ toolName,
1213+args: startArgs,
1214+ result,
1215+hookResult: toolSendReceiptResult,
1216+isError: isToolError,
1217+});
12061218const messageText = isMessagingSend ? readMessagingText(startArgs) : undefined;
12071219const argumentMediaUrls = isMessagingSend ? collectMessagingMediaUrlsFromRecord(startArgs) : [];
12081220const messageTarget = hasMessagingTargetEvidence
@@ -1218,19 +1230,19 @@ export async function handleToolExecutionEnd(
12181230})
12191231 : undefined;
12201232const committedMediaUrls =
1221-!isToolError && isMessagingSend
1233+didDeliverMessagingResult && isMessagingSend
12221234 ? [...argumentMediaUrls, ...collectMessagingMediaUrlsFromToolResult(result)]
12231235 : [];
12241236ctx.state.pendingMessagingTexts.delete(toolCallId);
12251237ctx.state.pendingMessagingTargets.delete(toolCallId);
12261238ctx.state.pendingMessagingMediaUrls.delete(toolCallId);
1227-if (!isToolError && messageText) {
1239+if (didDeliverMessagingResult && messageText) {
12281240ctx.state.messagingToolSentTexts.push(messageText);
12291241ctx.state.messagingToolSentTextsNormalized.push(normalizeTextForComparison(messageText));
12301242ctx.log.debug(`Committed messaging text: tool=${toolName} len=${messageText.length}`);
12311243ctx.trimMessagingToolSent();
12321244}
1233-if (!isToolError && messageTarget) {
1245+if (didDeliverMessagingResult && messageTarget) {
12341246const extractionResult = applyToolSendReceiptForExtraction(result, toolSendReceiptResult);
12351247const confirmedTarget = extractMessagingToolSendResult(messageTarget, extractionResult);
12361248ctx.state.messagingToolSentTargets.push({
@@ -1240,7 +1252,7 @@ export async function handleToolExecutionEnd(
12401252});
12411253ctx.trimMessagingToolSent();
12421254}
1243-if (!isToolError && isMessagingSend) {
1255+if (didDeliverMessagingResult && isMessagingSend) {
12441256if (committedMediaUrls.length > 0) {
12451257ctx.state.messagingToolSentMediaUrls.push(...committedMediaUrls);
12461258ctx.trimMessagingToolSent();
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。