diff --git a/app/src/components/views/settings-view.tsx b/app/src/components/views/settings-view.tsx index 5ee96fe0..61b7c7db 100644 --- a/app/src/components/views/settings-view.tsx +++ b/app/src/components/views/settings-view.tsx @@ -30,10 +30,8 @@ import { import { KeyboardMap, ShortcutReferencePanel } from "@/components/ui/keyboard-map"; // Import extracted sections import { ApiKeysSection } from "./settings-view/api-keys/api-keys-section"; -import { - ClaudeCliStatus, - CodexCliStatus, -} from "./settings-view/cli-status-section"; +import { ClaudeCliStatus } from "./settings-view/cli-status/claude-cli-status"; +import { CodexCliStatus } from "./settings-view/cli-status/codex-cli-status"; import { AppearanceSection } from "./settings-view/appearance/appearance-section"; import { KanbanDisplaySection } from "./settings-view/kanban-display-section"; import { KeyboardShortcutsSection } from "./settings-view/keyboard-shortcuts-section"; diff --git a/app/src/components/views/settings-view/cli-status/claude-cli-status.tsx b/app/src/components/views/settings-view/cli-status/claude-cli-status.tsx new file mode 100644 index 00000000..b5c4afe6 --- /dev/null +++ b/app/src/components/views/settings-view/cli-status/claude-cli-status.tsx @@ -0,0 +1,148 @@ +import { Button } from "@/components/ui/button"; +import { + Terminal, + CheckCircle2, + AlertCircle, + RefreshCw, +} from "lucide-react"; +import type { CliStatus } from "../types"; + +interface CliStatusProps { + status: CliStatus | null; + isChecking: boolean; + onRefresh: () => void; +} + +export function ClaudeCliStatus({ + status, + isChecking, + onRefresh, +}: CliStatusProps) { + if (!status) return null; + + return ( +
+
+
+
+ +

+ Claude Code CLI +

+
+ +
+

+ Claude Code CLI provides better performance for long-running tasks, + especially with ultrathink. +

+
+
+ {status.success && status.status === "installed" ? ( +
+
+ +
+

+ Claude Code CLI Installed +

+
+ {status.method && ( +

+ Method: {status.method} +

+ )} + {status.version && ( +

+ Version:{" "} + {status.version} +

+ )} + {status.path && ( +

+ Path:{" "} + + {status.path} + +

+ )} +
+
+
+ {status.recommendation && ( +

+ {status.recommendation} +

+ )} +
+ ) : ( +
+
+ +
+

+ Claude Code CLI Not Detected +

+

+ {status.recommendation || + "Consider installing Claude Code CLI for optimal performance with ultrathink."} +

+
+
+ {status.installCommands && ( +
+

+ Installation Commands: +

+
+ {status.installCommands.npm && ( +
+

npm:

+ + {status.installCommands.npm} + +
+ )} + {status.installCommands.macos && ( +
+

+ macOS/Linux: +

+ + {status.installCommands.macos} + +
+ )} + {status.installCommands.windows && ( +
+

+ Windows (PowerShell): +

+ + {status.installCommands.windows} + +
+ )} +
+
+ )} +
+ )} +
+
+ ); +} diff --git a/app/src/components/views/settings-view/cli-status/codex-cli-status.tsx b/app/src/components/views/settings-view/cli-status/codex-cli-status.tsx new file mode 100644 index 00000000..6dc41d72 --- /dev/null +++ b/app/src/components/views/settings-view/cli-status/codex-cli-status.tsx @@ -0,0 +1,169 @@ +import { Button } from "@/components/ui/button"; +import { + Terminal, + CheckCircle2, + AlertCircle, + RefreshCw, +} from "lucide-react"; +import type { CliStatus } from "../types"; + +interface CliStatusProps { + status: CliStatus | null; + isChecking: boolean; + onRefresh: () => void; +} + +export function CodexCliStatus({ + status, + isChecking, + onRefresh, +}: CliStatusProps) { + if (!status) return null; + + return ( +
+
+
+
+ +

+ OpenAI Codex CLI +

+
+ +
+

+ Codex CLI enables GPT-5.1 Codex models for autonomous coding tasks. +

+
+
+ {status.success && status.status === "installed" ? ( +
+
+ +
+

+ Codex CLI Installed +

+
+ {status.method && ( +

+ Method: {status.method} +

+ )} + {status.version && ( +

+ Version:{" "} + {status.version} +

+ )} + {status.path && ( +

+ Path:{" "} + + {status.path} + +

+ )} +
+
+
+ {status.recommendation && ( +

+ {status.recommendation} +

+ )} +
+ ) : status.status === "api_key_only" ? ( +
+
+ +
+

+ API Key Detected - CLI Not Installed +

+

+ {status.recommendation || + "OPENAI_API_KEY found but Codex CLI not installed. Install the CLI for full agentic capabilities."} +

+
+
+ {status.installCommands && ( +
+

+ Installation Commands: +

+
+ {status.installCommands.npm && ( +
+

npm:

+ + {status.installCommands.npm} + +
+ )} +
+
+ )} +
+ ) : ( +
+
+ +
+

+ Codex CLI Not Detected +

+

+ {status.recommendation || + "Install OpenAI Codex CLI to use GPT-5.1 Codex models for autonomous coding."} +

+
+
+ {status.installCommands && ( +
+

+ Installation Commands: +

+
+ {status.installCommands.npm && ( +
+

npm:

+ + {status.installCommands.npm} + +
+ )} + {status.installCommands.macos && ( +
+

+ macOS (Homebrew): +

+ + {status.installCommands.macos} + +
+ )} +
+
+ )} +
+ )} +
+
+ ); +}