import { Label } from "@/components/ui/label";
import {
CheckCircle2,
AlertCircle,
Info,
Terminal,
Atom,
Sparkles,
} from "lucide-react";
import type { ClaudeAuthStatus, CodexAuthStatus } from "@/store/setup-store";
interface AuthenticationStatusDisplayProps {
claudeAuthStatus: ClaudeAuthStatus | null;
codexAuthStatus: CodexAuthStatus | null;
apiKeyStatus: {
hasAnthropicKey: boolean;
hasOpenAIKey: boolean;
hasGoogleKey: boolean;
} | null;
apiKeys: {
anthropic: string;
google: string;
openai: string;
};
}
export function AuthenticationStatusDisplay({
claudeAuthStatus,
codexAuthStatus,
apiKeyStatus,
apiKeys,
}: AuthenticationStatusDisplayProps) {
return (
{/* Claude Authentication Status */}
Claude (Anthropic)
{claudeAuthStatus?.authenticated ? (
<>
Authenticated
{claudeAuthStatus.method === "oauth_token_env"
? "Using CLAUDE_CODE_OAUTH_TOKEN"
: claudeAuthStatus.method === "oauth_token"
? "Using stored OAuth token (subscription)"
: claudeAuthStatus.method === "api_key_env"
? "Using ANTHROPIC_API_KEY"
: claudeAuthStatus.method === "api_key"
? "Using stored API key"
: claudeAuthStatus.method === "credentials_file"
? "Using credentials file"
: claudeAuthStatus.method === "cli_authenticated"
? "Using Claude CLI authentication"
: `Using ${claudeAuthStatus.method || "detected"} authentication`}
>
) : apiKeyStatus?.hasAnthropicKey ? (
Using environment variable (ANTHROPIC_API_KEY)
) : apiKeys.anthropic ? (
Using manual API key from settings
) : (
)}
{/* Codex/OpenAI Authentication Status */}
{codexAuthStatus?.authenticated ? (
<>
Authenticated
{codexAuthStatus.method === "subscription"
? "Using Codex subscription (Plus/Team)"
: codexAuthStatus.method === "cli_verified" ||
codexAuthStatus.method === "cli_tokens"
? "Using CLI login (OpenAI account)"
: codexAuthStatus.method === "api_key"
? "Using stored API key"
: codexAuthStatus.method === "env"
? "Using OPENAI_API_KEY"
: `Using ${codexAuthStatus.method || "unknown"} authentication`}
>
) : apiKeyStatus?.hasOpenAIKey ? (
Using environment variable (OPENAI_API_KEY)
) : apiKeys.openai ? (
Using manual API key from settings
) : (
)}
{/* Google/Gemini Authentication Status */}
Gemini (Google)
{apiKeyStatus?.hasGoogleKey ? (
<>
Authenticated
Using GOOGLE_API_KEY
>
) : apiKeys.google ? (
<>
Authenticated
Using stored API key
>
) : (
)}
);
}