| |
| |
| |
| |
| |
|
|
| import { useQuery } from '@tanstack/react-query'; |
| import { getElectronAPI } from '@/lib/electron'; |
| import { queryKeys } from '@/lib/query-keys'; |
| import { STALE_TIMES } from '@/lib/query-client'; |
|
|
| |
| |
| |
| |
| |
| export function useClaudeCliStatus() { |
| return useQuery({ |
| queryKey: queryKeys.cli.claude(), |
| queryFn: async () => { |
| const api = getElectronAPI(); |
| if (!api.setup) { |
| throw new Error('Setup API not available'); |
| } |
| const result = await api.setup.getClaudeStatus(); |
| if (!result.success) { |
| throw new Error(result.error || 'Failed to fetch Claude status'); |
| } |
| return result; |
| }, |
| staleTime: STALE_TIMES.CLI_STATUS, |
| }); |
| } |
|
|
| |
| |
| |
| |
| |
| export function useGitHubCliStatus() { |
| return useQuery({ |
| queryKey: queryKeys.cli.github(), |
| queryFn: async () => { |
| const api = getElectronAPI(); |
| if (!api.setup?.getGhStatus) { |
| throw new Error('GitHub CLI status API not available'); |
| } |
| const result = await api.setup.getGhStatus(); |
| if (!result.success) { |
| throw new Error(result.error || 'Failed to fetch GitHub CLI status'); |
| } |
| return result; |
| }, |
| staleTime: STALE_TIMES.CLI_STATUS, |
| }); |
| } |
|
|
| |
| |
| |
| |
| |
| export function useApiKeysStatus() { |
| return useQuery({ |
| queryKey: queryKeys.cli.apiKeys(), |
| queryFn: async () => { |
| const api = getElectronAPI(); |
| if (!api.setup) { |
| throw new Error('Setup API not available'); |
| } |
| const result = await api.setup.getApiKeys(); |
| if (!result.success) { |
| throw new Error('Failed to fetch API keys'); |
| } |
| return result; |
| }, |
| staleTime: STALE_TIMES.CLI_STATUS, |
| }); |
| } |
|
|
| |
| |
| |
| |
| |
| export function usePlatformInfo() { |
| return useQuery({ |
| queryKey: queryKeys.cli.platform(), |
| queryFn: async () => { |
| const api = getElectronAPI(); |
| if (!api.setup) { |
| throw new Error('Setup API not available'); |
| } |
| const result = await api.setup.getPlatform(); |
| if (!result.success) { |
| throw new Error('Failed to fetch platform info'); |
| } |
| return result; |
| }, |
| staleTime: Infinity, |
| }); |
| } |
|
|
| |
| |
| |
| |
| |
| export function useCursorCliStatus() { |
| return useQuery({ |
| queryKey: queryKeys.cli.cursor(), |
| queryFn: async () => { |
| const api = getElectronAPI(); |
| if (!api.setup?.getCursorStatus) { |
| throw new Error('Cursor CLI status API not available'); |
| } |
| const result = await api.setup.getCursorStatus(); |
| if (!result.success) { |
| throw new Error(result.error || 'Failed to fetch Cursor CLI status'); |
| } |
| return result; |
| }, |
| staleTime: STALE_TIMES.CLI_STATUS, |
| }); |
| } |
|
|
| |
| |
| |
| |
| |
| export function useCopilotCliStatus() { |
| return useQuery({ |
| queryKey: queryKeys.cli.copilot(), |
| queryFn: async () => { |
| const api = getElectronAPI(); |
| if (!api.setup?.getCopilotStatus) { |
| throw new Error('Copilot CLI status API not available'); |
| } |
| const result = await api.setup.getCopilotStatus(); |
| if (!result.success) { |
| throw new Error(result.error || 'Failed to fetch Copilot CLI status'); |
| } |
| return result; |
| }, |
| staleTime: STALE_TIMES.CLI_STATUS, |
| }); |
| } |
|
|
| |
| |
| |
| |
| |
| export function useGeminiCliStatus() { |
| return useQuery({ |
| queryKey: queryKeys.cli.gemini(), |
| queryFn: async () => { |
| const api = getElectronAPI(); |
| if (!api.setup?.getGeminiStatus) { |
| throw new Error('Gemini CLI status API not available'); |
| } |
| const result = await api.setup.getGeminiStatus(); |
| if (!result.success) { |
| throw new Error(result.error || 'Failed to fetch Gemini CLI status'); |
| } |
| return result; |
| }, |
| staleTime: STALE_TIMES.CLI_STATUS, |
| }); |
| } |
|
|
| |
| |
| |
| |
| |
| export function useOpencodeCliStatus() { |
| return useQuery({ |
| queryKey: queryKeys.cli.opencode(), |
| queryFn: async () => { |
| const api = getElectronAPI(); |
| if (!api.setup?.getOpencodeStatus) { |
| throw new Error('OpenCode CLI status API not available'); |
| } |
| const result = await api.setup.getOpencodeStatus(); |
| if (!result.success) { |
| throw new Error(result.error || 'Failed to fetch OpenCode CLI status'); |
| } |
| return result; |
| }, |
| staleTime: STALE_TIMES.CLI_STATUS, |
| }); |
| } |
|
|