落实 Code Agent session 生命周期状态
This commit is contained in:
@@ -276,6 +276,8 @@ export function summarizeCodeAgentPayload(payload, { httpStatus = null, traceId
|
||||
skills: null,
|
||||
runnerTrace: null,
|
||||
sessionMode: null,
|
||||
sessionLifecycleStatus: null,
|
||||
sessionSummary: null,
|
||||
sessionReuse: null,
|
||||
session: null,
|
||||
implementationType: null,
|
||||
@@ -325,6 +327,8 @@ export function summarizeCodeAgentPayload(payload, { httpStatus = null, traceId
|
||||
skills: summarizeSkills(payload.skills),
|
||||
runnerTrace: summarizeRunnerTrace(payload.runnerTrace),
|
||||
sessionMode: stringOrNull(payload.sessionMode),
|
||||
sessionLifecycleStatus: stringOrNull(payload.sessionLifecycleStatus ?? payload.sessionSummary?.status ?? payload.session?.lifecycleStatus),
|
||||
sessionSummary: summarizeSessionLifecycle(payload.sessionSummary ?? payload.sessionLifecycle),
|
||||
sessionReuse: summarizeSessionReuse(payload.sessionReuse),
|
||||
session: summarizeSession(payload.session),
|
||||
implementationType: stringOrNull(payload.implementationType),
|
||||
@@ -354,6 +358,8 @@ export function summarizeCodeAgentPayload(payload, { httpStatus = null, traceId
|
||||
skills: summarizeSkills(payload.skills),
|
||||
runnerTrace: summarizeRunnerTrace(payload.runnerTrace),
|
||||
sessionMode: stringOrNull(payload.sessionMode),
|
||||
sessionLifecycleStatus: stringOrNull(payload.sessionLifecycleStatus ?? payload.sessionSummary?.status ?? payload.session?.lifecycleStatus),
|
||||
sessionSummary: summarizeSessionLifecycle(payload.sessionSummary ?? payload.sessionLifecycle),
|
||||
sessionReuse: summarizeSessionReuse(payload.sessionReuse),
|
||||
session: summarizeSession(payload.session),
|
||||
implementationType: stringOrNull(payload.implementationType),
|
||||
@@ -474,7 +480,7 @@ export function classifyCodeAgentRuntimeBlock(payload, { httpStatus = null } = {
|
||||
};
|
||||
}
|
||||
|
||||
if (["session_expired", "session_reuse_conflict", "session_failed", "session_interrupted"].includes(errorCode)) {
|
||||
if (["session_expired", "session_reuse_conflict", "session_failed", "session_interrupted", "session_canceled", "session_timeout", "session_error"].includes(errorCode)) {
|
||||
return {
|
||||
blocked: true,
|
||||
status: "blocked",
|
||||
@@ -749,6 +755,8 @@ function summarizeRunnerTrace(value) {
|
||||
blocker: summarizeBlocker(value.blocker),
|
||||
sandbox: stringOrNull(value.sandbox),
|
||||
sessionMode: stringOrNull(value.sessionMode),
|
||||
sessionStatus: stringOrNull(value.sessionStatus),
|
||||
sessionLifecycleStatus: stringOrNull(value.sessionLifecycleStatus),
|
||||
implementationType: stringOrNull(value.implementationType),
|
||||
sessionReused: value.sessionReused === true,
|
||||
turn: typeof value.turn === "number" ? value.turn : null,
|
||||
@@ -792,6 +800,7 @@ function summarizeSession(value) {
|
||||
sessionId: stringOrNull(value.sessionId),
|
||||
conversationId: stringOrNull(value.conversationId),
|
||||
status: stringOrNull(value.status),
|
||||
lifecycleStatus: stringOrNull(value.lifecycleStatus ?? value.lifecycle?.status),
|
||||
workspace: stringOrNull(value.workspace),
|
||||
sandbox: stringOrNull(value.sandbox),
|
||||
runnerKind: stringOrNull(value.runnerKind),
|
||||
@@ -815,6 +824,7 @@ function summarizeConversationFacts(value) {
|
||||
conversationId: stringOrNull(value.conversationId),
|
||||
sessionId: stringOrNull(value.sessionId),
|
||||
sessionStatus: stringOrNull(value.sessionStatus),
|
||||
sessionLifecycleStatus: stringOrNull(value.sessionLifecycleStatus),
|
||||
sessionMode: stringOrNull(value.sessionMode),
|
||||
capabilityLevel: stringOrNull(value.capabilityLevel),
|
||||
runnerKind: stringOrNull(value.runnerKind),
|
||||
@@ -842,6 +852,26 @@ function summarizeConversationFacts(value) {
|
||||
};
|
||||
}
|
||||
|
||||
function summarizeSessionLifecycle(value) {
|
||||
if (!value || typeof value !== "object") return null;
|
||||
return {
|
||||
status: stringOrNull(value.status),
|
||||
rawStatus: stringOrNull(value.rawStatus),
|
||||
label: stringOrNull(value.label),
|
||||
action: stringOrNull(value.action),
|
||||
reusable: value.reusable === true,
|
||||
reused: typeof value.reused === "boolean" ? value.reused : null,
|
||||
newSession: value.newSession === true,
|
||||
busy: value.busy === true,
|
||||
requiresNewSession: value.requiresNewSession === true,
|
||||
degraded: value.degraded === true,
|
||||
fallback: value.fallback === true,
|
||||
unsupported: value.unsupported === true,
|
||||
reasonCode: stringOrNull(value.reasonCode),
|
||||
userMessage: stringOrNull(value.userMessage)
|
||||
};
|
||||
}
|
||||
|
||||
function summarizeCodexStdioFeasibility(value) {
|
||||
if (!value || typeof value !== "object") return null;
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user