UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

34 lines (33 loc) 1.55 kB
import { t as FAILOVER_REASONS$1 } from "./failover-reasons-Mjd0tFtT.js"; import { a as resolveLoadedProviderPluginsForHooks, o as resolveLoadedProviderRuntimePlugin } from "./provider-hook-runtime-DgKv_Z8O.js"; //#region src/agents/failover/signal.ts /** Persisted and wire-visible failover reason codes. Spellings are frozen. */ const FAILOVER_REASONS = FAILOVER_REASONS$1; //#endregion //#region src/plugins/provider-failover.ts function isFailoverReason(value) { return typeof value === "string" && FAILOVER_REASONS.some((reason) => reason === value); } function classifyProviderFailoverSignalWithPlugin(params) { const plugins = resolveProviderPluginsForScopedHook(params); for (const plugin of plugins) { if (plugin.matchesContextOverflowError?.(params.context)) return "context_overflow"; const reason = plugin.classifyFailoverReason?.(params.context); if (reason) return isFailoverReason(reason) ? reason : void 0; } } function resolveProviderPluginsForScopedHook(params) { if (!params.provider) return resolveLoadedProviderPluginsForHooks(params) ?? []; const plugin = resolveLoadedProviderRuntimePlugin({ ...params, provider: params.provider }); if (plugin) return [plugin]; if (hasStructuredFailoverDescriptor(params.context)) return []; return resolveLoadedProviderPluginsForHooks(params) ?? []; } function hasStructuredFailoverDescriptor(context) { return context.status !== void 0 || context.code !== void 0 || context.errorType !== void 0; } //#endregion export { classifyProviderFailoverSignalWithPlugin as t };