def get_model_registry_entry(llm_model: str):
    """Get model registry entry or return None if not found."""
    if llm_model in MODEL_REGISTRY:
        return MODEL_REGISTRY[llm_model]
    
    # Handle dynamic OpenRouter models
    if llm_model.startswith("openrouter/"):
        # Extract the model name after openrouter/
        model_name = llm_model.split("openrouter/", 1)[1]
        return {
            "provider": "openrouter",
            "model_name": model_name,  # Use the full model name as provided
            "capabilities": [],
            "pricing": {"input": 0.0, "output": 0.0},
            "required_environment_variables": ["OPENROUTER_API_KEY"]
        }
    
    # Try case-insensitive match as fallback
    llm_model_lower = llm_model.lower()
    for model_id, details in MODEL_REGISTRY.items():
        if model_id.lower() == llm_model_lower:
            return details
    
    print(f"Warning: Model '{llm_model}' not found in registry")
    return None
Get model registry entry or return None if not found.
src/upsonic/model_registry.py