From a66ad2e2af3d4ffd0a7ab125215e7ed3c3325452 Mon Sep 17 00:00:00 2001 From: Juliette Love Date: Sun, 20 Apr 2025 20:20:40 +0100 Subject: [PATCH] Simple debug mode for CLI side (#66) * Adds debug mode config flag. * Wire through debug lines * Add debug mode logging example * Run format * Run format again --- packages/cli/src/config/config.ts | 8 ++++++++ packages/cli/src/ui/App.tsx | 13 +++++++------ packages/cli/src/ui/components/Footer.tsx | 11 ++++++++++- packages/cli/src/ui/hooks/useGeminiStream.ts | 7 ++++++- packages/server/src/config/config.ts | 16 ++++++++++++++-- 5 files changed, 45 insertions(+), 10 deletions(-) diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index 48cc96a0..6d8c10f6 100644 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -20,6 +20,7 @@ const DEFAULT_GEMINI_MODEL = 'gemini-2.5-flash-preview-04-17'; interface CliArgs { target_dir: string | undefined; model: string | undefined; + debug_mode: boolean | undefined; } function parseArguments(): CliArgs { @@ -36,6 +37,12 @@ function parseArguments(): CliArgs { description: `The Gemini model to use. Defaults to ${DEFAULT_GEMINI_MODEL}.`, default: DEFAULT_GEMINI_MODEL, }) + .option('debug_mode', { + alias: 'z', + type: 'boolean', + description: 'Whether to run in debug mode. Defaults to false.', + default: false, + }) .help() .alias('h', 'help') .strict().argv; @@ -64,6 +71,7 @@ export function loadCliConfig(): Config { process.env.GEMINI_API_KEY, argv.model || DEFAULT_GEMINI_MODEL, argv.target_dir || process.cwd(), + argv.debug_mode || false, ); } diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx index 14b76c8f..cfbc024e 100644 --- a/packages/cli/src/ui/App.tsx +++ b/packages/cli/src/ui/App.tsx @@ -31,11 +31,8 @@ interface AppProps { export const App = ({ config }: AppProps) => { const [history, setHistory] = useState([]); const [startupWarnings, setStartupWarnings] = useState([]); - const { streamingState, submitQuery, initError } = useGeminiStream( - setHistory, - config.getApiKey(), - config.getModel(), - ); + const { streamingState, submitQuery, initError, debugMessage } = + useGeminiStream(setHistory, config.getApiKey(), config.getModel()); const { elapsedTime, currentLoadingPhrase } = useLoadingIndicator(streamingState); @@ -147,7 +144,11 @@ export const App = ({ config }: AppProps) => { )} -