fix(runner): traverse ACPX error causes safely
This commit is contained in:
parent
4ac656e8d4
commit
b4e83ab3cc
|
|
@ -144,6 +144,10 @@ describe("ACPX sidecar input sequencing", () => {
|
|||
],
|
||||
"runtime initialization cleanup failed",
|
||||
);
|
||||
const codedWrapper = Object.assign(new Error("opaque wrapper"), {
|
||||
code: "ERR_UNCLASSIFIED_WRAPPER",
|
||||
cause: missingModule,
|
||||
});
|
||||
|
||||
expect(acpxSidecarErrorCode(missingModule)).toBe(
|
||||
"AGENT_STARTUP_FAILED.MODULE_NOT_FOUND",
|
||||
|
|
@ -158,6 +162,9 @@ describe("ACPX sidecar input sequencing", () => {
|
|||
expect(acpxSidecarErrorCode(genericStartup)).toBe(
|
||||
"AGENT_STARTUP_FAILED.MODULE_NOT_FOUND",
|
||||
);
|
||||
expect(acpxSidecarErrorCode(codedWrapper)).toBe(
|
||||
"AGENT_STARTUP_FAILED.MODULE_NOT_FOUND",
|
||||
);
|
||||
expect(acpxSidecarErrorCode(nestedHandshake)).toBe(
|
||||
"ACPX_SESSION_HANDSHAKE_TIMEOUT",
|
||||
);
|
||||
|
|
|
|||
|
|
@ -75,6 +75,7 @@ function directAcpxSidecarErrorCode(error: Error): string | null {
|
|||
? "ACPX_SESSION_HANDSHAKE_TIMEOUT"
|
||||
: null;
|
||||
}
|
||||
if (!STABLE_ACPX_SIDECAR_CODES.has(code)) return null;
|
||||
if (code !== "AGENT_STARTUP_FAILED") return code;
|
||||
|
||||
const stderr =
|
||||
|
|
@ -119,3 +120,38 @@ const GENERIC_ACPX_OUTPUT_CODES = new Set([
|
|||
"RUNTIME",
|
||||
"USAGE",
|
||||
]);
|
||||
|
||||
const STABLE_ACPX_SIDECAR_CODES = new Set([
|
||||
"ACP_MODEL_UNSUPPORTED",
|
||||
"ACP_SESSION_INIT_FAILED",
|
||||
"AGENT_DISCONNECTED",
|
||||
"AGENT_STARTUP_FAILED",
|
||||
"AGENT_STARTUP_FAILED.EXIT_NONZERO",
|
||||
"AGENT_STARTUP_FAILED.FILE_NOT_FOUND",
|
||||
"AGENT_STARTUP_FAILED.INVALID_ARGUMENT",
|
||||
"AGENT_STARTUP_FAILED.MODULE_NOT_FOUND",
|
||||
"AGENT_STARTUP_FAILED.NO_STDERR",
|
||||
"AGENT_STARTUP_FAILED.OTHER",
|
||||
"AGENT_STARTUP_FAILED.PERMISSION_DENIED",
|
||||
"AGENT_STARTUP_FAILED.SIGNAL",
|
||||
"AGENT_STARTUP_FAILED.SYNTAX_ERROR",
|
||||
"AGENT_STARTUP_FAILED.UNVERIFIED_MODULE",
|
||||
"AUTH_REQUIRED",
|
||||
"CLAUDE_ACP_SESSION_CREATE_TIMEOUT",
|
||||
"SESSION_CONFIG_OPTION_REPLAY_FAILED",
|
||||
"SESSION_MODEL_REPLAY_FAILED",
|
||||
"SESSION_MODE_REPLAY_FAILED",
|
||||
"SESSION_RESUME_REQUIRED",
|
||||
"ACPX_EFFECTIVE_MODEL_MISMATCH",
|
||||
"ACPX_MODEL_SELECTION_UNAVAILABLE",
|
||||
"ACPX_MODEL_STATUS_UNAVAILABLE",
|
||||
"ACPX_PERSISTED_SESSION_IDENTITY_MISMATCH",
|
||||
"ACPX_PERSISTED_SESSION_MISSING",
|
||||
"ACPX_RUNTIME_ADMISSION_VERIFICATION_TIMEOUT",
|
||||
"ACPX_SESSION_ENSURE_FAILED",
|
||||
"ACPX_SESSION_ENSURE_NON_ERROR",
|
||||
"ACPX_SESSION_ENSURE_TYPE_ERROR",
|
||||
"ACPX_SESSION_HANDSHAKE_TIMEOUT",
|
||||
"ACPX_SIDECAR_STATUS_READ_TIMEOUT",
|
||||
...GENERIC_ACPX_OUTPUT_CODES,
|
||||
]);
|
||||
|
|
|
|||
Loading…
Reference in New Issue