openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
33 lines (32 loc) • 1.17 kB
JavaScript
import "./retry-after-BIGpiFES.js";
import "./retry-DIUON3ys.js";
import "./retryable-network-errors-D2gJmBqw.js";
import "./retry-policy-DL52fgP1.js";
//#region src/plugin-sdk/retry-runtime.ts
/** Transient failures that prove the request did not reach the remote server. */
const PRE_CONNECT_NETWORK_ERROR_CODES = /* @__PURE__ */ new Set([
"EAI_AGAIN",
"ECONNREFUSED",
"ENETUNREACH",
"ENOTFOUND",
"UND_ERR_CONNECT_TIMEOUT"
]);
/** Network failures that are transient for idempotent or deduplicated requests. */
const TRANSIENT_NETWORK_ERROR_CODES = /* @__PURE__ */ new Set([
...PRE_CONNECT_NETWORK_ERROR_CODES,
"ECONNRESET",
"EPIPE",
"ETIMEDOUT",
"UND_ERR_BODY_TIMEOUT",
"UND_ERR_HEADERS_TIMEOUT",
"UND_ERR_SOCKET"
]);
/** Classifies a normalized transport code without imposing a plugin-specific error shape. */
function classifyTransientNetworkErrorCode(code) {
const normalized = code?.trim().toUpperCase();
if (!normalized) return;
if (PRE_CONNECT_NETWORK_ERROR_CODES.has(normalized)) return "pre-connect";
return TRANSIENT_NETWORK_ERROR_CODES.has(normalized) ? "ambiguous" : void 0;
}
//#endregion
export { classifyTransientNetworkErrorCode as t };