from __future__ import annotations from typing import Optional from agentui.providers.adapters.base import ProviderAdapter, default_base_url_for as _default_base_url_for from agentui.providers.adapters.openai import OpenAIAdapter try: from agentui.providers.adapters.gemini import GeminiAdapter, GeminiImageAdapter except Exception: GeminiAdapter = None # type: ignore GeminiImageAdapter = None # type: ignore try: from agentui.providers.adapters.claude import ClaudeAdapter except Exception: ClaudeAdapter = None # type: ignore def get_adapter(provider: str) -> Optional[ProviderAdapter]: p = (provider or "").strip().lower() if p == "openai": return OpenAIAdapter() if p == "gemini" and GeminiAdapter: return GeminiAdapter() # type: ignore[operator] if p == "gemini_image" and GeminiImageAdapter: return GeminiImageAdapter() # type: ignore[operator] if p == "claude" and ClaudeAdapter: return ClaudeAdapter() # type: ignore[operator] return None def default_base_url_for(vendor: str) -> Optional[str]: return _default_base_url_for(vendor)