92faa65b54
findAnthropicAuth() only checked OAuth credentials in agent.db, missing api_key type credentials entirely. Users authenticated via stored API key (not env var, not OAuth) got null from isAvailable(), causing the provider chain to skip Anthropic. Added tier 4 (api_key in agent.db) between OAuth check and env var fallback. Refactored store lifecycle so tiers 3-4 share one instance. Also fixed ExaProvider.isAvailable() which unconditionally returned true, ignoring exa.enabled/exa.enableSearch settings and never checking for credentials. It now respects both settings and requires an actual API key.