refactor(agents): share toolResult details stripping

This commit is contained in:
Peter Steinberger
2026-02-15 06:21:13 +00:00
parent 55b7100ab9
commit a4bf619522
3 changed files with 21 additions and 39 deletions

View File

@@ -18,6 +18,7 @@ import {
import { cleanToolSchemaForGemini } from "../pi-tools.schema.js";
import {
sanitizeToolCallInputs,
stripToolResultDetails,
sanitizeToolUseResultPairing,
} from "../session-transcript-repair.js";
import { resolveTranscriptPolicy } from "../transcript-policy.js";
@@ -406,25 +407,6 @@ export function applyGoogleTurnOrderingFix(params: {
return { messages: sanitized, didPrepend };
}
function stripToolResultDetails(messages: AgentMessage[]): AgentMessage[] {
let touched = false;
const out: AgentMessage[] = [];
for (const msg of messages) {
if (!msg || typeof msg !== "object" || (msg as { role?: unknown }).role !== "toolResult") {
out.push(msg);
continue;
}
if (!("details" in msg)) {
out.push(msg);
continue;
}
const { details: _details, ...rest } = msg as unknown as Record<string, unknown>;
touched = true;
out.push(rest as unknown as AgentMessage);
}
return touched ? out : messages;
}
export async function sanitizeSessionHistory(params: {
messages: AgentMessage[];
modelApi?: string | null;