openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
23 lines (22 loc) • 1.4 kB
JavaScript
import { i as collectNestedErrorCandidates } from "./error-coercion-W9BtigRm.mjs";
import { n as formatErrorMessageWithCode } from "./errors-BvOkmQM5.mjs";
import { c as createAgentDatabaseAdmissionErrorShape, t as AgentDatabaseAdmissionError } from "./agent-database-admission-CRwW7FsI.mjs";
import { t as IncognitoSessionEndedError } from "./incognito-session-error-BUzgcwoZ.mjs";
import { t as ErrorCodes } from "./gateway-error-details-gTekQWj2.mjs";
import { d as errorShape } from "./error-codes-D0WRV4Bq.mjs";
import { n as copyErrorDiagnostic } from "./error-diagnostics-CKviXqd-.mjs";
//#region src/gateway/error-shape.ts
/** Preserve typed refusals while allowing each surface's existing error message. */
function errorShapeFromError(code, error, opts) {
const { message, ...metadata } = opts ?? {};
const ended = collectNestedErrorCandidates(error).find((candidate) => candidate instanceof IncognitoSessionEndedError);
const shape = error instanceof AgentDatabaseAdmissionError ? createAgentDatabaseAdmissionErrorShape(error.refusal) : ended instanceof IncognitoSessionEndedError ? errorShape(ErrorCodes.UNAVAILABLE, ended.message, {
...metadata,
retryable: false,
details: { code: ended.code }
}) : errorShape(code, message ?? formatErrorMessageWithCode(error), metadata);
copyErrorDiagnostic(error, shape);
return shape;
}
//#endregion
export { errorShapeFromError as t };