From 7da8c19fd021b6670c1772183afbec9adb032f55 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Wed, 26 Aug 2026 02:26:57 -0700 Subject: [PATCH] refactor(agents): reuse thinking block predicate (#130001) Co-authored-by: Amp --- config/assertion-safety-baseline.txt | 2 +- .../run/attempt-tool-call-replay-sanitization.ts | 13 +++---------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/config/assertion-safety-baseline.txt b/config/assertion-safety-baseline.txt index 6d616e68058d..53d86fd1b997 100644 --- a/config/assertion-safety-baseline.txt +++ b/config/assertion-safety-baseline.txt @@ -1839,7 +1839,7 @@ src/agents/embedded-agent-runner/run/attempt-stop-reason-recovery.ts 3 src/agents/embedded-agent-runner/run/attempt-stream-prepare.ts 3 src/agents/embedded-agent-runner/run/attempt-stream.ts 9 src/agents/embedded-agent-runner/run/attempt-subscription-cleanup.ts 2 -src/agents/embedded-agent-runner/run/attempt-tool-call-replay-sanitization.ts 18 +src/agents/embedded-agent-runner/run/attempt-tool-call-replay-sanitization.ts 17 src/agents/embedded-agent-runner/run/attempt-tool-call-stream-normalization.ts 7 src/agents/embedded-agent-runner/run/attempt-tool-call-text-promotion.ts 3 src/agents/embedded-agent-runner/run/attempt-tool-prepare.ts 3 diff --git a/src/agents/embedded-agent-runner/run/attempt-tool-call-replay-sanitization.ts b/src/agents/embedded-agent-runner/run/attempt-tool-call-replay-sanitization.ts index 7794c2aede27..f3f8def21174 100644 --- a/src/agents/embedded-agent-runner/run/attempt-tool-call-replay-sanitization.ts +++ b/src/agents/embedded-agent-runner/run/attempt-tool-call-replay-sanitization.ts @@ -13,6 +13,7 @@ import { sanitizeToolUseResultPairing, sanitizeToolUseResultPairingForModel, } from "../../session-transcript-repair.js"; +import { isThinkingLikeBlock } from "../../thinking-block.js"; import { extractToolCallsFromAssistant, extractToolResultIds, @@ -47,14 +48,6 @@ type AnthropicToolResultContentBlock = { tool_call_id?: unknown; }; -function isThinkingLikeReplayBlock(block: unknown): boolean { - if (!block || typeof block !== "object") { - return false; - } - const type = (block as { type?: unknown }).type; - return type === "thinking" || type === "redacted_thinking"; -} - function isReplaySafeThinkingTurn(content: unknown[], allowedToolNames?: Set): boolean { const seenToolCallIds = new Set(); for (const block of content) { @@ -164,7 +157,7 @@ function sanitizeReplayToolCallInputs( } if ( allowProviderOwnedThinkingReplay && - message.content.some((block) => isThinkingLikeReplayBlock(block)) && + message.content.some((block) => isThinkingLikeBlock(block)) && message.content.some((block) => isReplayToolCallBlock(block)) ) { const replaySafeToolCalls = extractToolCallsFromAssistant(message); @@ -274,7 +267,7 @@ function isSignedThinkingReplayAssistantSpan(message: AgentMessage | undefined): return false; } return ( - content.some((block) => isThinkingLikeReplayBlock(block)) && + content.some((block) => isThinkingLikeBlock(block)) && content.some((block) => isReplayToolCallBlock(block)) ); }