Click 8.4.2 的 resolve_command 不兼容 invoke_without_command + 非子命令 位置参数。自定义 _ProviderGroup.invoke() 在首参数非子命令时路由到 group callback,并添加 _reparse_options 处理 allow_interspersed_args=False 时选项在 provider_id 后不被解析的问题。 修复 ctx.args = ctx._protected_args 后 clear() 导致引用共享清空的 bug。 测试:更新 test_switch.py 匹配新的 switch version/agent 子命令结构。