diff --git a/amplifier_app_cli/commands/run.py b/amplifier_app_cli/commands/run.py index c0069392..9661cfd8 100644 --- a/amplifier_app_cli/commands/run.py +++ b/amplifier_app_cli/commands/run.py @@ -213,17 +213,28 @@ def run( ) providers_list = config_data.get("providers", []) - # Find the target provider + # Find the target provider by name first, then by module target_idx = None for i, entry in enumerate(providers_list): - if isinstance(entry, dict) and entry.get("module") == provider_module: + if isinstance(entry, dict) and entry.get("name") == provider: target_idx = i + provider_module = entry.get("module", provider_module) break + if target_idx is None: + for i, entry in enumerate(providers_list): + if isinstance(entry, dict) and entry.get("module") == provider_module: + target_idx = i + break if target_idx is None: + def _provider_label(p: dict) -> str: + name = p.get("name") + module = p.get("module", "?").replace("provider-", "") + return f"{name} ({module})" if name else module + console.print( f"[red]Error:[/red] Provider '{provider}' not configured\n" - f"Available providers: {', '.join(p.get('module', '?').replace('provider-', '') for p in providers_list if isinstance(p, dict))}\n" + f"Available providers: {', '.join(_provider_label(p) for p in providers_list if isinstance(p, dict))}\n" f"Run 'amplifier provider use --help' for configuration options" ) sys.exit(1) diff --git a/amplifier_app_cli/effective_config.py b/amplifier_app_cli/effective_config.py index b9737978..8d1a3c22 100644 --- a/amplifier_app_cli/effective_config.py +++ b/amplifier_app_cli/effective_config.py @@ -62,8 +62,12 @@ def get_effective_config_summary( provider_config = selected_provider.get("config", {}) model = provider_config.get("default_model", "default") - # Try to get friendly provider name - provider_name = _get_provider_display_name(provider_module) + # Use explicit 'name' from settings if set, otherwise derive from module ID + instance_name = selected_provider.get("name") + if instance_name: + provider_name = instance_name.replace("-", " ").title() + else: + provider_name = _get_provider_display_name(provider_module) else: provider_module = "none" provider_name = "None" diff --git a/amplifier_app_cli/session_spawner.py b/amplifier_app_cli/session_spawner.py index 3625e1ef..06f48fc8 100644 --- a/amplifier_app_cli/session_spawner.py +++ b/amplifier_app_cli/session_spawner.py @@ -157,11 +157,15 @@ def _apply_provider_override( target_idx = None for i, p in enumerate(providers): module_id = p.get("module", "") - # Match: "anthropic", "provider-anthropic", or full module ID - if provider_id and provider_id in ( - module_id, - module_id.replace("provider-", ""), - f"provider-{provider_id}", + entry_name = p.get("name", "") + # Match: config name, module shorthand, full module ID + if provider_id and ( + provider_id == entry_name + or provider_id in ( + module_id, + module_id.replace("provider-", ""), + f"provider-{provider_id}", + ) ): target_idx = i break @@ -178,10 +182,15 @@ def _apply_provider_override( target_idx = i if target_idx is None: + available = [] + for p in providers: + name = p.get("name") + mod = p.get("module", "?").replace("provider-", "") + available.append(name if name and name != mod else mod) logger.warning( "Provider '%s' not found in config. Available: %s", provider_id, - ", ".join(p.get("module", "?") for p in providers), + ", ".join(available), ) return config