(ctx context.Context, userInput string)
| 22 | ) |
| 23 | |
| 24 | func (ch *CommandHandler) handleAuthCommand(ctx context.Context, userInput string) { |
| 25 | args := strings.Fields(userInput) |
| 26 | if len(args) < 2 { |
| 27 | fmt.Println(i18n.T("auth.usage")) |
| 28 | return |
| 29 | } |
| 30 | sub := strings.ToLower(args[1]) |
| 31 | switch sub { |
| 32 | case "status": |
| 33 | fmt.Println(auth.FormatAuthStatus(ch.cli.logger)) |
| 34 | case "login": |
| 35 | if len(args) < 3 { |
| 36 | fmt.Println(i18n.T("auth.login.usage")) |
| 37 | return |
| 38 | } |
| 39 | prov := strings.ToLower(args[2]) |
| 40 | switch prov { |
| 41 | case "anthropic", "claude", "claudeai": |
| 42 | id, err := auth.LoginAnthropicOAuth(ctx, ch.cli.logger) |
| 43 | if err != nil { |
| 44 | fmt.Println(i18n.T("auth.login.failed", err)) |
| 45 | return |
| 46 | } |
| 47 | fmt.Println(i18n.T("auth.login.success", "Anthropic", id)) |
| 48 | ch.cli.manager.RefreshProviders() |
| 49 | ch.autoSwitchProvider(ctx, "CLAUDEAI", |
| 50 | utils.GetEnvOrDefault("ANTHROPIC_MODEL", config.DefaultClaudeAIModel)) |
| 51 | return |
| 52 | case "openai-codex", "codex": |
| 53 | id, err := auth.LoginOpenAICodexOAuth(ctx, ch.cli.logger) |
| 54 | if err != nil { |
| 55 | fmt.Println(i18n.T("auth.login.failed", err)) |
| 56 | return |
| 57 | } |
| 58 | fmt.Println(i18n.T("auth.login.success", "OpenAI Codex", id)) |
| 59 | ch.cli.manager.RefreshProviders() |
| 60 | ch.autoSwitchProvider(ctx, "OPENAI", |
| 61 | utils.GetEnvOrDefault("OPENAI_MODEL", config.DefaultOpenAIModel)) |
| 62 | return |
| 63 | case "github-copilot", "copilot", "gh-copilot": |
| 64 | id, err := auth.LoginGitHubCopilotOAuth(ctx, ch.cli.logger) |
| 65 | if err != nil { |
| 66 | fmt.Println(i18n.T("auth.login.failed", err)) |
| 67 | return |
| 68 | } |
| 69 | fmt.Println(i18n.T("auth.login.success", "GitHub Copilot", id)) |
| 70 | ch.cli.manager.RefreshProviders() |
| 71 | ch.autoSwitchProvider(ctx, "COPILOT", |
| 72 | utils.GetEnvOrDefault("COPILOT_MODEL", config.DefaultCopilotModel)) |
| 73 | return |
| 74 | case "github-models", "gh-models": |
| 75 | id, err := auth.LoginGitHubModelsPAT(ctx, ch.cli.logger) |
| 76 | if err != nil { |
| 77 | fmt.Println(i18n.T("auth.login.failed", err)) |
| 78 | return |
| 79 | } |
| 80 | fmt.Println(i18n.T("auth.login.success", "GitHub Models", id)) |
| 81 | ch.cli.manager.RefreshProviders() |
no test coverage detected