Merge pull request #1858 from pikasTech/fix/explicit-agentrun-terminal-1856-20260621
fix: 要求显式 AgentRun terminal 事件
This commit is contained in:
@@ -715,8 +715,8 @@ async function writeWorkbenchProjectionStateForAgentRun(runtimeStore, params = {
|
||||
|
||||
function agentRunCommandResultSyncRequired(mapped = {}, eventsResponse = null) {
|
||||
const agentRun = mapped?.agentRun && typeof mapped.agentRun === "object" ? mapped.agentRun : {};
|
||||
if (isAgentRunTerminalStatus(mapped?.status)) return true;
|
||||
if (isAgentRunTerminalStatus(agentRun.terminalStatus ?? agentRun.commandState ?? agentRun.status)) return true;
|
||||
if (agentRunTerminalResultRefreshSatisfied(mapped, mapped?.traceId)) return true;
|
||||
if (isAgentRunTerminalStatus(agentRun.terminalStatus ?? agentRun.commandState)) return true;
|
||||
return Boolean(agentRunTerminalStatusFromEvents(eventsResponse?.events));
|
||||
}
|
||||
|
||||
@@ -755,8 +755,8 @@ function agentRunTerminalStatusFromEvents(events = []) {
|
||||
event?.type === "terminal_status" ? payload.terminalStatus : null,
|
||||
payload.phase === "command-terminal" ? payload.terminalStatus : null,
|
||||
payload.phase === "turn:completed" || payload.phase === "turn/steer:completed" ? "completed" : null,
|
||||
payload.terminalStatus,
|
||||
payload.status
|
||||
event?.terminal === true || event?.final === true || event?.replyAuthority === true ? payload.terminalStatus ?? payload.status ?? event?.status ?? "completed" : null,
|
||||
payload.terminal === true ? payload.terminalStatus ?? payload.status ?? "completed" : null
|
||||
];
|
||||
for (const value of candidates) {
|
||||
const status = normalizeAgentRunStatus(value);
|
||||
|
||||
@@ -1680,7 +1680,7 @@ function codeAgentPayloadWithObservedTerminalStatus(payload, runnerTrace) {
|
||||
function codeAgentObservedTerminalStatus(result, runnerTrace) {
|
||||
const agentRun = result?.agentRun && typeof result.agentRun === "object" ? result.agentRun : {};
|
||||
if (codeAgentPayloadHasSealedFinalResponse(result)) return "completed";
|
||||
for (const value of [result?.status, agentRun.status, agentRun.runStatus, agentRun.commandState, agentRun.terminalStatus]) {
|
||||
for (const value of [agentRun.terminalStatus, agentRun.commandState]) {
|
||||
const terminalStatus = normalizeCodeAgentTerminalStatus(value);
|
||||
if (terminalStatus) return terminalStatus;
|
||||
}
|
||||
@@ -1691,7 +1691,13 @@ function codeAgentObservedTerminalStatus(result, runnerTrace) {
|
||||
const payload = event?.payload && typeof event.payload === "object" ? event.payload : {};
|
||||
const eventCommandId = textValue(event?.commandId ?? payload.commandId);
|
||||
if (commandId && eventCommandId && eventCommandId !== commandId) continue;
|
||||
for (const value of [event?.status, payload.status, payload.terminalStatus, payload.phase === "command-terminal" ? payload.terminalStatus : null, event?.terminal === true ? "completed" : null]) {
|
||||
for (const value of [
|
||||
event?.type === "terminal_status" ? payload.terminalStatus : null,
|
||||
payload.phase === "command-terminal" ? payload.terminalStatus : null,
|
||||
payload.phase === "turn:completed" || payload.phase === "turn/steer:completed" ? "completed" : null,
|
||||
event?.terminal === true || event?.final === true || event?.replyAuthority === true ? payload.terminalStatus ?? payload.status ?? event.status ?? "completed" : null,
|
||||
payload.terminal === true ? payload.terminalStatus ?? payload.status ?? "completed" : null
|
||||
]) {
|
||||
const terminalStatus = normalizeCodeAgentTerminalStatus(value);
|
||||
if (terminalStatus) return terminalStatus;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user