fix: 收敛 commandExecution toolcall 摘要 (#70)

Co-authored-by: Codex <codex@pikas.tech>
This commit is contained in:
Lyon
2026-06-02 10:28:35 +08:00
committed by GitHub
parent 5efa0cfa31
commit ebc5bdb8b1
4 changed files with 67 additions and 6 deletions
+18
View File
@@ -78,6 +78,10 @@ function normalizeTextPayload(payload: JsonRecord): JsonRecord {
function normalizeToolCallPayload(payload: JsonRecord): JsonRecord {
const redacted = redactJson(payload);
if (isCommandExecutionToolCall(redacted)) {
const summary = boundedTextSummary(commandExecutionToolCallText(redacted));
return { ...redacted, summary, outputBytes: summary.outputBytes, outputTruncated: summary.outputTruncated };
}
const json = JSON.stringify(redacted);
const summary = boundedTextSummary(json);
if (summary.outputTruncated !== true) return { ...redacted, summary, outputBytes: summary.outputBytes, outputTruncated: false };
@@ -89,3 +93,17 @@ function normalizeToolCallPayload(payload: JsonRecord): JsonRecord {
outputTruncated: true,
};
}
function isCommandExecutionToolCall(payload: JsonRecord): boolean {
return payload.toolName === "commandExecution" || payload.type === "commandExecution";
}
function commandExecutionToolCallText(payload: JsonRecord): string {
const method = typeof payload.method === "string" ? payload.method.replace(/^item\//, "") : "tool";
const status = typeof payload.status === "string" ? payload.status : method;
const command = typeof payload.command === "string" ? payload.command : "commandExecution";
const exitCode = typeof payload.exitCode === "number" ? ` exit=${payload.exitCode}` : "";
const durationMs = typeof payload.durationMs === "number" ? ` durationMs=${payload.durationMs}` : "";
const outputSummary = typeof payload.outputSummary === "string" && payload.outputSummary.trim().length > 0 ? ` output=${payload.outputSummary}` : "";
return `commandExecution ${status}: ${command}${exitCode}${durationMs}${outputSummary}`;
}