from __future__ import annotations from claridoc.models import ProviderSpec, ValidationError from claridoc.providers.antigravity import AntigravityProvider from claridoc.providers.base import Provider from claridoc.providers.claude import ClaudeProvider from claridoc.providers.codex import CodexProvider from claridoc.providers.mock import MockProvider def create_provider(spec: ProviderSpec) -> Provider: name = spec.provider.casefold().strip() if name == "mock": return MockProvider(spec) if name == "codex": return CodexProvider(spec) if name == "claude": return ClaudeProvider(spec) if name == "antigravity": return AntigravityProvider(spec) raise ValidationError(f"unsupported provider: {spec.provider}; expected mock, codex, claude, or antigravity")