summaryrefslogtreecommitdiff
path: root/packages/cli/src/ui/App.tsx
diff options
context:
space:
mode:
authorDaniel Lee <[email protected]>2025-07-11 16:52:56 -0700
committerGitHub <[email protected]>2025-07-11 23:52:56 +0000
commit5b6608ad844f89954b9107ad81b3791fae02607a (patch)
treebb37c297784bcfbdc1ecaeb3845716f1cd1db960 /packages/cli/src/ui/App.tsx
parent5b5f496436a060124e57009d1f7f37bd4d27f0f3 (diff)
feat(cli): add support for --prompt-interactive/-i flag (#1743)
Diffstat (limited to 'packages/cli/src/ui/App.tsx')
-rw-r--r--packages/cli/src/ui/App.tsx29
1 files changed, 29 insertions, 0 deletions
diff --git a/packages/cli/src/ui/App.tsx b/packages/cli/src/ui/App.tsx
index f2324b28..98f7689c 100644
--- a/packages/cli/src/ui/App.tsx
+++ b/packages/cli/src/ui/App.tsx
@@ -148,6 +148,7 @@ const App = ({ config, settings, startupWarnings = [], version }: AppProps) => {
const openPrivacyNotice = useCallback(() => {
setShowPrivacyNotice(true);
}, []);
+ const initialPromptSubmitted = useRef(false);
const errorCount = useMemo(
() => consoleMessages.filter((msg) => msg.type === 'error').length,
@@ -637,6 +638,34 @@ const App = ({ config, settings, startupWarnings = [], version }: AppProps) => {
return getAllGeminiMdFilenames();
}, [settings.merged.contextFileName]);
+ const initialPrompt = useMemo(() => config.getQuestion(), [config]);
+ const geminiClient = config.getGeminiClient();
+
+ useEffect(() => {
+ if (
+ initialPrompt &&
+ !initialPromptSubmitted.current &&
+ !isAuthenticating &&
+ !isAuthDialogOpen &&
+ !isThemeDialogOpen &&
+ !isEditorDialogOpen &&
+ !showPrivacyNotice &&
+ geminiClient?.isInitialized?.()
+ ) {
+ submitQuery(initialPrompt);
+ initialPromptSubmitted.current = true;
+ }
+ }, [
+ initialPrompt,
+ submitQuery,
+ isAuthenticating,
+ isAuthDialogOpen,
+ isThemeDialogOpen,
+ isEditorDialogOpen,
+ showPrivacyNotice,
+ geminiClient,
+ ]);
+
if (quittingMessages) {
return (
<Box flexDirection="column" marginBottom={1}>