Circuit Breaker (Partial)

Opens after failure threshold; half-open allows limited trial calls before fully closing. Current scope likely coarse (provider/model level).

// let cb = CircuitBreaker::new().failures(5).window(Duration::from_secs(30)).cooldown(Duration::from_secs(10));
// let client = AiClientBuilder::new(Provider::OpenAI).circuit_breaker(cb).build()?;

Planned: error weighting and finer granularity per endpoint.

Build: 3de64ed · 2025-09-09T12:50:59.623Z · v0.21