from __future__ import annotations from src.config import ModelConfig, settings from src.exceptions import ValidationException def resolve_credentials(config: ModelConfig) -> dict[str, str | None]: """Resolve credentials for the effective model transport.""" default_api_key = default_transport_api_key(config.transport) return { "api_key": config.api_key or default_api_key, "api_base": config.base_url, } def default_transport_api_key(transport: str) -> str | None: """Fall back to the global LLM API key for the matching transport.""" if transport == "anthropic": return settings.LLM.ANTHROPIC_API_KEY if transport == "openai": return settings.LLM.OPENAI_API_KEY if transport == "gemini": return settings.LLM.GEMINI_API_KEY raise ValidationException(f"Unknown transport: {transport}")