diff options
Diffstat (limited to 'packages/cli/src')
| -rw-r--r-- | packages/cli/src/core/gemini-client.ts | 2 | ||||
| -rw-r--r-- | packages/cli/src/ui/App.tsx | 41 |
2 files changed, 42 insertions, 1 deletions
diff --git a/packages/cli/src/core/gemini-client.ts b/packages/cli/src/core/gemini-client.ts index 0b79a2ad..6ce89816 100644 --- a/packages/cli/src/core/gemini-client.ts +++ b/packages/cli/src/core/gemini-client.ts @@ -9,7 +9,7 @@ import { Content, } from '@google/genai'; import { getApiKey } from '../config/env.js'; -import { getModel } from '../config/globalConfig.js'; +import { getModel } from '../config/globalConfig.js'; import { CoreSystemPrompt } from './prompts.js'; import { type ToolCallEvent, diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx index 1bc0f6c6..cc440392 100644 --- a/packages/cli/src/ui/App.tsx +++ b/packages/cli/src/ui/App.tsx @@ -1,5 +1,8 @@ import React, { useState, useEffect } from 'react'; import { Box, Text } from 'ink'; +import fs from 'fs'; +import path from 'path'; +import os from 'os'; import type { HistoryItem } from './types.js'; import { useGeminiStream } from './hooks/useGeminiStream.js'; import { useLoadingIndicator } from './hooks/useLoadingIndicator.js'; @@ -12,6 +15,8 @@ import Footer from './components/Footer.js'; import { StreamingState } from '../core/gemini-stream.js'; import { PartListUnion } from '@google/genai'; +const warningsFilePath = path.join(os.tmpdir(), 'gemini-code-cli-warnings.txt'); + interface AppProps { directory: string; } @@ -19,11 +24,31 @@ interface AppProps { const App = ({ directory }: AppProps) => { const [query, setQuery] = useState(''); const [history, setHistory] = useState<HistoryItem[]>([]); + const [startupWarnings, setStartupWarnings] = useState<string[]>([]); const { streamingState, submitQuery, initError } = useGeminiStream(setHistory); const { elapsedTime, currentLoadingPhrase } = useLoadingIndicator(streamingState); + useEffect(() => { + try { + if (fs.existsSync(warningsFilePath)) { + console.log('[App] Found warnings file:', warningsFilePath); + const warningsContent = fs.readFileSync(warningsFilePath, 'utf-8'); + setStartupWarnings(warningsContent.split('\n').filter(line => line.trim() !== '')); + try { + fs.unlinkSync(warningsFilePath); + } catch (unlinkErr: any) { + console.warn(`[App] Warning: Could not delete warnings file: ${unlinkErr.message}`); + } + } else { + console.log('[App] No warnings file found.'); + } + } catch (err: any) { + console.error(`[App] Error checking/reading warnings file: ${err.message}`); + } + }, []); + const handleInputSubmit = (value: PartListUnion) => { submitQuery(value) .then(() => { @@ -63,6 +88,22 @@ const App = ({ directory }: AppProps) => { <Box flexDirection="column" padding={1} marginBottom={1} width="100%"> <Header cwd={directory} /> + {startupWarnings.length > 0 && ( + <Box + borderStyle="round" + borderColor="yellow" + paddingX={1} + marginY={1} + flexDirection="column" + > + {startupWarnings.map((warning, index) => ( + <Text key={index} color="yellow"> + {warning} + </Text> + ))} + </Box> + )} + <Tips /> {initError && |
