feat(orchestrator): add comprehensive provider and timeout validation
Add three layers of configuration validation to LLMRunner:
1. Provider × base_url matrix validation
- Validates all 6 providers (anthropic, openai, google, xai, ollama, openrouter)
- Uses precompiled regex patterns for efficiency
- Detects mismatches before expensive graph initialization
2. Timeout configuration validation
- Warns when analyst/research timeouts may be insufficient
- Provides recommendations based on analyst count (1-4)
- Non-blocking warnings logged at init time
3. Enhanced error classification
- Distinguishes provider_mismatch from provider_auth_failed
- Uses heuristic detection for auth failures
- Simplified nested ternary expressions for readability
Improvements:
- Validation runs before cache check (prevents stale cache on config errors)
- EAFP pattern for cache reading (more robust than TOCTOU)
- Precompiled regex patterns (avoid recompilation overhead)
- All 21 unit tests passing
Documentation:
- docs/architecture/orchestrator-validation.md - complete validation guide
- orchestrator/examples/validation_examples.py - runnable examples
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>