@@ -3775,7 +3775,14 @@ def create_arg_parser():
37753775
37763776 parser .add_argument ("--init" , action = "store_true" , help = "Create a default llms.json" )
37773777 parser .add_argument ("--update-providers" , action = "store_true" , help = "Update local models.dev providers.json" )
3778- parser .add_argument ("--reset-config" , action = "store_true" , help = "Reset ~/.llms/llms.json to default" )
3778+ parser .add_argument (
3779+ "--reset" ,
3780+ nargs = "?" ,
3781+ const = "ls" ,
3782+ default = None ,
3783+ help = "Reset configuration (config|providers|all)" ,
3784+ metavar = "TYPE" ,
3785+ )
37793786
37803787 parser .add_argument ("--logprefix" , default = "" , help = "Prefix used in log messages" , metavar = "PREFIX" )
37813788 parser .add_argument ("--verbose" , action = "store_true" , help = "Verbose output" )
@@ -3883,6 +3890,37 @@ def cli_exec(cli_args, extra_args):
38833890 print (f"Updated { home_providers_path } " )
38843891 return ExitCode .SUCCESS
38853892
3893+ if cli_args .reset :
3894+ if cli_args .reset not in ["config" , "providers" , "all" ]:
3895+ print ("Available resets:" )
3896+ print (" config - Reset ~/.llms/llms.json to default" )
3897+ print (" providers - Reset ~/.llms/providers.json and ~/.llms/providers-extra.json to default" )
3898+ print (" all - Reset all configuration" )
3899+ return ExitCode .SUCCESS if cli_args .reset == "ls" else ExitCode .FAILED
3900+
3901+ if cli_args .reset == "config" or cli_args .reset == "all" :
3902+ asyncio .run (save_default_config (home_config_path ))
3903+ print (f"Reset config at { home_config_path } " )
3904+
3905+ if cli_args .reset == "providers" or cli_args .reset == "all" :
3906+ if os .path .exists (home_providers_path ):
3907+ os .unlink (home_providers_path )
3908+ asyncio .run (save_text_url (github_url ("providers.json" ), home_providers_path ))
3909+ print (f"Reset providers at { home_providers_path } " )
3910+
3911+ if os .path .exists (home_providers_extra_path ):
3912+ os .unlink (home_providers_extra_path )
3913+ asyncio .run (save_text_url (github_url ("providers-extra.json" ), home_providers_extra_path ))
3914+ print (f"Reset extra providers at { home_providers_extra_path } " )
3915+
3916+ try :
3917+ asyncio .run (update_providers (home_providers_path ))
3918+ print (f"Updated { home_providers_path } " )
3919+ except Exception as e :
3920+ _err ("Failed to update providers" , e )
3921+
3922+ return ExitCode .SUCCESS
3923+
38863924 # if home_providers_path is older than 1 day, update providers list
38873925 if (
38883926 os .path .exists (home_providers_path )
0 commit comments