/** * Runtime Fallback Hook - Constants * * Default values and configuration constants for the runtime fallback feature. */ import type { RuntimeFallbackConfig } from "../../config" /** * Default configuration values for runtime fallback */ export const DEFAULT_CONFIG: Required = { enabled: true, retry_on_errors: [400, 429, 503, 529], max_fallback_attempts: 3, cooldown_seconds: 60, timeout_seconds: 30, notify_on_fallback: true, } /** * Error patterns that indicate rate limiting or temporary failures * These are checked in addition to HTTP status codes */ export const RETRYABLE_ERROR_PATTERNS = [ /rate.?limit/i, /too.?many.?requests/i, /quota.?exceeded/i, /usage\s+limit\s+has\s+been\s+reached/i, /service.?unavailable/i, /overloaded/i, /temporarily.?unavailable/i, /try.?again/i, /credit.*balance.*too.*low/i, /insufficient.?(?:credits?|funds?|balance)/i, /(?:^|\s)429(?:\s|$)/, /(?:^|\s)503(?:\s|$)/, /(?:^|\s)529(?:\s|$)/, ] /** * Hook name for identification and logging */ export const HOOK_NAME = "runtime-fallback"