From d6344fef759fb40a45f7b9a1d78d1abcea946de9 Mon Sep 17 00:00:00 2001 From: Zhengshou Lai Date: Thu, 16 Jul 2026 21:16:27 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E7=B4=AF=E7=A7=AF=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- myagents/commands/provider.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/myagents/commands/provider.py b/myagents/commands/provider.py index 14e0f34..25b8bc0 100644 --- a/myagents/commands/provider.py +++ b/myagents/commands/provider.py @@ -101,7 +101,6 @@ def _do_switch( @click.group("provider", invoke_without_command=True) -@click.argument("provider_id", required=False) @click.option("--key", help="API key (scripting only; appears in shell history)") @click.option("--model", help="Override the default model") @click.option("--base-url", help="Override the provider base URL") @@ -109,7 +108,6 @@ def _do_switch( @click.pass_context def provider_cmd( ctx: click.Context, - provider_id: str | None, key: str | None, model: str | None, base_url: str | None, @@ -125,10 +123,20 @@ def provider_cmd( if ctx.invoked_subcommand is not None: return + # Use ctx.args (positional args left after option parsing) to avoid + # Click's argument consuming subcommand names like "list"/"current". + provider_id: str | None = ctx.args[0] if ctx.args else None + if not provider_id: provider_list_table() return + # Reject stray positional args — only one provider_id is meaningful. + if len(ctx.args) > 1: + raise click.ClickException( + f"Unexpected extra argument(s): {' '.join(ctx.args[1:])}" + ) + try: provider = get_provider(provider_id) except KeyError: