import { useCallback } from 'react'; import { useQuery, useQueryClient } from '@tanstack/react-query'; import { useClient } from 'hooks/useClient'; type AIHarnesses = { claudeCode: boolean; opencode: boolean; piMono: boolean; }; type ServerSettings = { onboardingComplete?: boolean; accountMode?: 'organization' | 'single'; aiHarnesses?: AIHarnesses; plugins?: Record; }; const SETTINGS_KEY = ['SERVER_SETTINGS']; export const useServerSettings = () => { const client = useClient(); const queryClient = useQueryClient(); const { data: settings, isLoading } = useQuery({ queryKey: SETTINGS_KEY, queryFn: () => client.get('/server-settings/settings'), }); const onboardingComplete = settings?.onboardingComplete ?? true; const accountMode = settings?.accountMode; const aiHarnesses = settings?.aiHarnesses; const plugins = settings?.plugins; const saveSettings = useCallback( async (update: Partial) => { const result = await client.put('/server-settings', update); queryClient.setQueryData(SETTINGS_KEY, result); }, [client, queryClient], ); return { onboardingComplete, accountMode, aiHarnesses, plugins, isLoading, saveSettings }; };