























@@ -202,6 +202,10 @@ function isCronMessagePresentationWarning(text: string | undefined): boolean {
202202);
203203}
204204205+function isCronToolWarning(text: string | undefined): boolean {
206+return normalizeOptionalString(text)?.startsWith("⚠️ 🛠️ ") === true;
207+}
208+205209function isNonTerminalToolErrorWarning(payload: object | undefined): boolean {
206210return Boolean(payload && getReplyPayloadMetadata(payload)?.nonTerminalToolErrorWarning);
207211}
@@ -236,6 +240,7 @@ export function resolveCronPayloadOutcome(params: {
236240.toReversed()
237241.find((payload) => payload?.isError === true && Boolean(payload?.text?.trim()))
238242?.text?.trim();
243+const errorPayloads = params.payloads.filter((payload) => payload?.isError === true);
239244const normalizedFinalAssistantVisibleText = normalizeOptionalString(
240245params.finalAssistantVisibleText,
241246);
@@ -264,14 +269,23 @@ export function resolveCronPayloadOutcome(params: {
264269lastErrorPayloadIndex >= 0 &&
265270isCronMessagePresentationWarning(lastErrorPayloadText) &&
266271(normalizedFinalAssistantVisibleText !== undefined || hasSuccessfulPayloadBeforeLastError);
272+const hasStructuredDeliveryPayloads = selectedDeliveryPayloads.some((payload) =>
273+payloadHasStructuredDeliveryContent(payload),
274+);
275+const hasRecoveredToolWarning =
276+!params.runLevelError &&
277+params.failureSignal?.fatalForCron !== true &&
278+params.preferFinalAssistantVisibleText === true &&
279+normalizedFinalAssistantVisibleText !== undefined &&
280+!hasStructuredDeliveryPayloads &&
281+errorPayloads.length > 0 &&
282+errorPayloads.every((payload) => isCronToolWarning(payload?.text));
267283const hasFatalStructuredErrorPayload =
268284hasErrorPayload &&
269285!hasSuccessfulPayloadAfterLastError &&
270286!hasPendingPresentationWarning &&
271-!hasNonTerminalToolErrorWarning;
272-const hasStructuredDeliveryPayloads = selectedDeliveryPayloads.some((payload) =>
273-payloadHasStructuredDeliveryContent(payload),
274-);
287+!hasNonTerminalToolErrorWarning &&
288+!hasRecoveredToolWarning;
275289// Keep structured/media announce payloads intact. Only collapse purely textual
276290// cron announce output to the final assistant-visible answer.
277291const shouldUseFinalAssistantVisibleText =
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。