import { Button } from '@/components/ui/button'; import { SkeletonPulse } from '@/components/ui/skeleton'; import { Spinner } from '@/components/ui/spinner'; import { CheckCircle2, AlertCircle, RefreshCw } from 'lucide-react'; import { cn } from '@/lib/utils'; import type { CliStatus } from '../shared/types'; import { CopilotIcon } from '@/components/ui/provider-icon'; import type { CopilotAuthStatus } from '@automaker/types'; // Re-export for backwards compatibility export type { CopilotAuthStatus }; function getAuthMethodLabel(method: CopilotAuthStatus['method']): string { switch (method) { case 'oauth': return 'GitHub OAuth'; case 'cli': return 'Copilot CLI'; default: return method || 'Unknown'; } } interface CopilotCliStatusProps { status: CliStatus | null; authStatus?: CopilotAuthStatus | null; isChecking: boolean; onRefresh: () => void; } export function CopilotCliStatusSkeleton() { return (
GitHub Copilot CLI provides access to GPT and Claude models via your Copilot subscription.
Copilot CLI Installed
Method: {status.method}
)} {status.version && (Version: {status.version}
)} {status.path && (Path: {status.path}
)}Authenticated
Method:{' '} {getAuthMethodLabel(authStatus.method)}
)} {authStatus.login && (User: {authStatus.login}
)}Authentication Required
{authStatus?.error && ({authStatus.error}
)}
Run gh auth login{' '}
in your terminal to authenticate with GitHub.
{status.recommendation}
)}Copilot CLI Not Detected
{status.recommendation || 'Install GitHub Copilot CLI to use models via your Copilot subscription.'}
Installation Commands:
npm
{status.installCommands.npm}