diff --git a/src/sse/handlers/chat.ts b/src/sse/handlers/chat.ts index 5ba707fd37..73dfbeb74a 100644 --- a/src/sse/handlers/chat.ts +++ b/src/sse/handlers/chat.ts @@ -75,6 +75,7 @@ import { import { isAntigravityMissingProjectError, shouldTripProviderBreakerForResult, + PROVIDER_BREAKER_FAILURE_STATUSES, } from "./chatPredicates"; import { connectionHasExtraKeys } from "@omniroute/open-sse/services/apiKeyRotator.ts"; import { diff --git a/src/sse/handlers/chatPredicates.ts b/src/sse/handlers/chatPredicates.ts index a45dbc4d5a..fd14015c8d 100644 --- a/src/sse/handlers/chatPredicates.ts +++ b/src/sse/handlers/chatPredicates.ts @@ -1,7 +1,7 @@ import { isLocalStreamLifecycleError } from "../../shared/utils/circuitBreaker"; import { isRequestScopedUpstreamFailure } from "./comboFailureLogging"; -const PROVIDER_BREAKER_FAILURE_STATUSES = new Set([408, 500, 502, 503, 504]); +export const PROVIDER_BREAKER_FAILURE_STATUSES = new Set([408, 500, 502, 503, 504]); // #7907/#7908: single-model breaker trip bypasses the `isFailure` option (only applies // inside `breaker.execute()`), so it needs its own `isLocalStreamLifecycleError` guard —