1ddb03b76f
Add agent/rate_limiter.py — a thread-safe per-model rate limit handler with a stepped cooldown ladder: 1st hit: 30s cooldown 2nd hit: 60s cooldown 3rd+ hits: 5min cooldown Resets after 10min of no hits Wired into run_agent.py's API error handling. When a 429 is caught and no fallback provider is available, the rate limiter kicks in with escalating backoff instead of immediately failing. 23 new tests.