""" Cursor Rules Generator - LLM Adapter Factory This module implements the factory for creating LLM adapters. """ from typing import Dict, Any from .adapter import LLMAdapter from .gemini_adapter import GeminiAdapter from .openai_adapter import OpenAIAdapter from .openrouter_adapter import OpenRouterAdapter class LLMAdapterFactory: """Factory for creating LLM adapters.""" @staticmethod def create_adapter(provider_name: str) -> LLMAdapter: """Create an adapter for the specified provider. Args: provider_name: The name of the LLM provider Returns: LLMAdapter: An adapter instance for the specified provider Raises: ValueError: If the provider is not supported """ provider_name = provider_name.lower() if provider_name == "gemini": return GeminiAdapter() elif provider_name == "openai": return OpenAIAdapter() elif provider_name == "openrouter": return OpenRouterAdapter() else: raise ValueError(f"Unsupported provider: {provider_name}") @staticmethod def get_supported_providers() -> Dict[str, str]: """Get a dictionary of supported providers. Returns: Dict[str, str]: A dictionary mapping provider IDs to display names """ return { "gemini": "Google Gemini", "openai": "OpenAI", "openrouter": "OpenRouter" }