fix: 增强终态失败分类可见性

This commit is contained in:
AgentRun Codex
2026-06-11 02:50:42 +08:00
parent 6843e7517b
commit ae8c89e099
4 changed files with 288 additions and 15 deletions
+18
View File
@@ -144,12 +144,14 @@ async function queueTaskSupervisor(store: AgentRunStore, task: JsonRecord): Prom
const liveness = asJsonRecord(result.liveness);
const lastActivity = asJsonRecord(liveness?.lastActivity ?? liveness?.lastCommandActivity);
const timeoutBudget = asJsonRecord(liveness?.timeoutBudget);
const terminalClassification = asJsonRecord(result.terminalClassification ?? liveness?.terminalClassification);
return {
runId: stringJsonValue(result.runId),
commandId: stringJsonValue(result.commandId),
status: stringJsonValue(result.status),
terminalStatus: stringJsonValue(result.terminalStatus),
failureKind: stringJsonValue(result.failureKind),
terminalClassification: terminalClassification ? compactTerminalClassification(terminalClassification) : null,
phase: stringJsonValue(liveness?.phase),
active: liveness?.active === true,
lastSeq: numberJsonValue(liveness?.lastSeq ?? result.lastSeq),
@@ -190,6 +192,22 @@ function compactTimeoutBudget(budget: JsonRecord): JsonRecord {
};
}
function compactTerminalClassification(record: JsonRecord): JsonRecord {
return {
category: stringJsonValue(record.category),
confidence: stringJsonValue(record.confidence),
providerEvidence: stringJsonValue(record.providerEvidence),
providerInterruption: stringJsonValue(record.providerInterruption),
providerInterruptionKnown: record.providerInterruptionKnown === true,
providerInterruptionReason: boundedJsonString(record.providerInterruptionReason, 240),
hardTimeout: record.hardTimeout === true,
transportDisconnectObserved: record.transportDisconnectObserved === true,
transportDisconnectSeq: numberJsonValue(record.transportDisconnectSeq),
reason: boundedJsonString(record.reason, 240),
valuesPrinted: false,
};
}
function compactRecoveryActions(value: JsonValue | undefined): JsonValue[] {
if (!Array.isArray(value)) return [];
return value.slice(0, 5).map((item) => {