import aiohttp from ...config.logfire_config import get_logger from ..models import ModelSpec logger = get_logger(__name__) async def discover_google_models(api_key: str, session: aiohttp.ClientSession) -> list[ModelSpec]: """1:1 Physical Parity Implementation from ProviderDiscoveryService.""" models = [] try: model_specs = [ ModelSpec( "gemini-1.5-pro", "google", 2097152, True, True, False, None, 1.25, 5.00, "Advanced reasoning and multimodal capabilities", ), ModelSpec( "gemini-1.5-flash", "google", 1048576, True, True, False, None, 0.075, 0.30, "Fast and versatile performance", ), ModelSpec( "gemini-3.1-pro", "google", 2097152, True, True, False, None, 1.25, 5.00, "Latest advanced reasoning model", ), ModelSpec( "gemini-3.1-flash", "google", 1048576, True, True, False, None, 0.10, 0.40, "Latest high-performance flash model", ), ModelSpec( "gemini-3.1-flash-lite", "google", 1048576, True, True, False, None, 0.05, 0.20, "Ultra-fast lite model" ), ModelSpec( "gemini-2.0-flash-lite-preview-02-05", "google", 1048576, True, True, False, None, 0.05, 0.20, "Next-gen ultra-fast preview model", ), ModelSpec( "gemini-1.0-pro", "google", 30720, True, False, False, None, 0.50, 1.50, "Efficient model for text tasks", ), ModelSpec( "text-embedding-004", "google", 2048, False, False, True, 768, 0.00, 0, "Google's latest embedding model", ), ] base_url = "https://generativelanguage.googleapis.com/v1beta/models" headers = {"x-goog-api-key": api_key} async with session.get(base_url, headers=headers) as response: if response.status == 200: models = model_specs logger.info(f"Discovered {len(models)} Google models") else: logger.warning(f"Google API returned status {response.status}") except Exception as e: logger.error(f"Error discovering Google models: {e}") return models