Feature: Provider Registry Coverage Boost As a developer I want to cover remaining untested paths in the ProviderRegistry So that edge cases in provider selection and creation are verified @unit @providers @registry Scenario: Settings default provider is valid but not configured falls through to fallback Given a registry where settings default_provider is "openai" but only anthropic key is set And CLEVERAGENTS_DEFAULT_PROVIDER env var is cleared When I request the default provider type from the boost registry Then the boost result should be ProviderType ANTHROPIC # Covers lines 335-338: settings_default valid ProviderType but not_configured @unit @providers @registry Scenario: Azure deployment resolves from settings when model_id is None Given a registry with azure API key and deployment setting "my-azure-deploy" And the Azure LangChain client is stubbed for boost When I call _create_provider_llm for AZURE with model_id None via boost Then the stubbed Azure client deployment_name should be "my-azure-deploy" # Covers line 502: self._settings.azure_openai_deployment branch @unit @providers @registry Scenario: Azure deployment falls back to gpt-4o when settings deployment is also empty Given a registry with azure API key and no deployment setting And the Azure LangChain client is stubbed for boost When I call _create_provider_llm for AZURE with model_id None via boost Then the stubbed Azure client deployment_name should be "gpt-4o" # Covers line 503: final "gpt-4o" fallback @unit @providers @registry Scenario: Google create_ai_provider uses DEFAULT_MODELS when model_id is empty string Given a registry with google API key configured for boost When I create an AI provider for google with empty string model_id via boost Then the boost AI provider model_id should be "gemini-2.0-flash" # Covers line 620: DEFAULT_MODELS.get fallback in Google branch @unit @providers @registry Scenario: OpenRouter create_ai_provider raises error when API key is missing Given a registry with no API keys for boost When I try to create an AI provider for openrouter via boost Then a boost ValueError should be raised And the boost error message should contain "openrouter" And the boost error message should contain "not configured" # Covers lines 632-637: OpenRouter not-configured error path @unit @providers @registry Scenario: OpenRouter create_ai_provider uses DEFAULT_MODELS when model_id is empty string Given a registry with openrouter API key configured for boost When I create an AI provider for openrouter with empty string model_id via boost Then the boost AI provider model_id should be "anthropic/claude-sonnet-4-20250514" # Covers lines 643-644: DEFAULT_MODELS.get fallback in OpenRouter branch