22 lines
816 B
Python
22 lines
816 B
Python
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")
|