@google/gemini-cli 0.30.1 → 0.31.0-preview.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/google-gemini-cli-0.31.0-preview.0.tgz +0 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +15 -2
- package/dist/index.js.map +1 -1
- package/dist/package.json +7 -6
- package/dist/src/commands/extensions/install.js +72 -4
- package/dist/src/commands/extensions/install.js.map +1 -1
- package/dist/src/commands/extensions/install.test.js +153 -20
- package/dist/src/commands/extensions/install.test.js.map +1 -1
- package/dist/src/commands/extensions/utils.js +1 -0
- package/dist/src/commands/extensions/utils.js.map +1 -1
- package/dist/src/config/config.js +17 -5
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +79 -4
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extension-manager-hydration.test.js +2 -2
- package/dist/src/config/extension-manager-hydration.test.js.map +1 -1
- package/dist/src/config/extension-manager.js +10 -6
- package/dist/src/config/extension-manager.js.map +1 -1
- package/dist/src/config/extension.test.js +20 -20
- package/dist/src/config/extension.test.js.map +1 -1
- package/dist/src/config/extensionRegistryClient.js +3 -2
- package/dist/src/config/extensionRegistryClient.js.map +1 -1
- package/dist/src/config/extensionRegistryClient.test.js +52 -0
- package/dist/src/config/extensionRegistryClient.test.js.map +1 -1
- package/dist/src/config/extensions/consent.d.ts +10 -0
- package/dist/src/config/extensions/consent.js +10 -3
- package/dist/src/config/extensions/consent.js.map +1 -1
- package/dist/src/config/extensions/consent.test.js +1 -1
- package/dist/src/config/extensions/consent.test.js.map +1 -1
- package/dist/src/config/extensions/extensionEnablement.js +1 -0
- package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.js +20 -3
- package/dist/src/config/extensions/extensionSettings.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.test.js +16 -0
- package/dist/src/config/extensions/extensionSettings.test.js.map +1 -1
- package/dist/src/config/extensions/github.test.js +1 -1
- package/dist/src/config/extensions/github.test.js.map +1 -1
- package/dist/src/config/extensions/variables.js +3 -1
- package/dist/src/config/extensions/variables.js.map +1 -1
- package/dist/src/config/keyBindings.js +6 -2
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/policy-engine.integration.test.js +51 -13
- package/dist/src/config/policy-engine.integration.test.js.map +1 -1
- package/dist/src/config/policy.d.ts +15 -3
- package/dist/src/config/policy.js +49 -4
- package/dist/src/config/policy.js.map +1 -1
- package/dist/src/config/policy.test.d.ts +6 -0
- package/dist/src/config/policy.test.js +152 -0
- package/dist/src/config/policy.test.js.map +1 -0
- package/dist/src/config/settings-validation.js +1 -1
- package/dist/src/config/settings-validation.js.map +1 -1
- package/dist/src/config/settings-validation.test.js +2 -3
- package/dist/src/config/settings-validation.test.js.map +1 -1
- package/dist/src/config/settings.d.ts +2 -0
- package/dist/src/config/settings.js +18 -20
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settings.test.js +118 -18
- package/dist/src/config/settings.test.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +171 -9
- package/dist/src/config/settingsSchema.js +159 -9
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +26 -0
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/config/settings_repro.test.js +0 -1
- package/dist/src/config/settings_repro.test.js.map +1 -1
- package/dist/src/config/trustedFolders.test.js +3 -1
- package/dist/src/config/trustedFolders.test.js.map +1 -1
- package/dist/src/config/workspace-policy-cli.test.d.ts +6 -0
- package/dist/src/config/workspace-policy-cli.test.js +180 -0
- package/dist/src/config/workspace-policy-cli.test.js.map +1 -0
- package/dist/src/gemini.d.ts +2 -2
- package/dist/src/gemini.js +15 -5
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +18 -2
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/gemini_cleanup.test.js +27 -24
- package/dist/src/gemini_cleanup.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/generated/git-commit.js.map +1 -1
- package/dist/src/integration-tests/modelSteering.test.d.ts +6 -0
- package/dist/src/integration-tests/modelSteering.test.js +65 -0
- package/dist/src/integration-tests/modelSteering.test.js.map +1 -0
- package/dist/src/nonInteractiveCli.js +2 -3
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/test-utils/AppRig.d.ts +1 -1
- package/dist/src/test-utils/AppRig.js +16 -7
- package/dist/src/test-utils/AppRig.js.map +1 -1
- package/dist/src/test-utils/AppRig.test.js +37 -2
- package/dist/src/test-utils/AppRig.test.js.map +1 -1
- package/dist/src/test-utils/async.d.ts +1 -1
- package/dist/src/test-utils/async.js +1 -1
- package/dist/src/test-utils/async.js.map +1 -1
- package/dist/src/test-utils/customMatchers.js +1 -1
- package/dist/src/test-utils/customMatchers.js.map +1 -1
- package/dist/src/test-utils/mockCommandContext.js +8 -2
- package/dist/src/test-utils/mockCommandContext.js.map +1 -1
- package/dist/src/test-utils/mockConfig.js +2 -1
- package/dist/src/test-utils/mockConfig.js.map +1 -1
- package/dist/src/test-utils/render.d.ts +81 -5
- package/dist/src/test-utils/render.js +299 -29
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/test-utils/render.test.js +49 -23
- package/dist/src/test-utils/render.test.js.map +1 -1
- package/dist/src/test-utils/settings.js +4 -2
- package/dist/src/test-utils/settings.js.map +1 -1
- package/dist/src/ui/App.test.js +56 -24
- package/dist/src/ui/App.test.js.map +1 -1
- package/dist/src/ui/AppContainer.d.ts +2 -2
- package/dist/src/ui/AppContainer.js +231 -11
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +561 -7
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/IdeIntegrationNudge.test.js +29 -33
- package/dist/src/ui/IdeIntegrationNudge.test.js.map +1 -1
- package/dist/src/ui/auth/ApiAuthDialog.test.js +19 -9
- package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.js +1 -1
- package/dist/src/ui/auth/AuthDialog.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.test.js +61 -27
- package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
- package/dist/src/ui/auth/AuthInProgress.test.js +35 -14
- package/dist/src/ui/auth/AuthInProgress.test.js.map +1 -1
- package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js +11 -5
- package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js.map +1 -1
- package/dist/src/ui/colors.js +6 -0
- package/dist/src/ui/colors.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.js +2 -0
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.test.js +7 -1
- package/dist/src/ui/commands/clearCommand.test.js.map +1 -1
- package/dist/src/ui/commands/copyCommand.js +2 -1
- package/dist/src/ui/commands/copyCommand.js.map +1 -1
- package/dist/src/ui/commands/copyCommand.test.js +6 -4
- package/dist/src/ui/commands/copyCommand.test.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.js +18 -0
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.test.js +4 -4
- package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
- package/dist/src/ui/commands/planCommand.js +1 -1
- package/dist/src/ui/commands/planCommand.js.map +1 -1
- package/dist/src/ui/commands/planCommand.test.js +1 -1
- package/dist/src/ui/commands/planCommand.test.js.map +1 -1
- package/dist/src/ui/commands/policiesCommand.js +5 -0
- package/dist/src/ui/commands/policiesCommand.js.map +1 -1
- package/dist/src/ui/commands/policiesCommand.test.js +38 -1
- package/dist/src/ui/commands/policiesCommand.test.js.map +1 -1
- package/dist/src/ui/commands/rewindCommand.js +3 -2
- package/dist/src/ui/commands/rewindCommand.js.map +1 -1
- package/dist/src/ui/components/AboutBox.test.js +16 -8
- package/dist/src/ui/components/AboutBox.test.js.map +1 -1
- package/dist/src/ui/components/AdminSettingsChangedDialog.test.js +7 -4
- package/dist/src/ui/components/AdminSettingsChangedDialog.test.js.map +1 -1
- package/dist/src/ui/components/AgentConfigDialog.test.js +41 -19
- package/dist/src/ui/components/AgentConfigDialog.test.js.map +1 -1
- package/dist/src/ui/components/AlternateBufferQuittingDisplay.js +1 -1
- package/dist/src/ui/components/AlternateBufferQuittingDisplay.js.map +1 -1
- package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js +24 -12
- package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js.map +1 -1
- package/dist/src/ui/components/AnsiOutput.test.js +35 -19
- package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
- package/dist/src/ui/components/AppHeader.test.js +27 -17
- package/dist/src/ui/components/AppHeader.test.js.map +1 -1
- package/dist/src/ui/components/ApprovalModeIndicator.test.js +18 -12
- package/dist/src/ui/components/ApprovalModeIndicator.test.js.map +1 -1
- package/dist/src/ui/components/AskUserDialog.test.js +147 -85
- package/dist/src/ui/components/AskUserDialog.test.js.map +1 -1
- package/dist/src/ui/components/BackgroundShellDisplay.test.js +50 -48
- package/dist/src/ui/components/BackgroundShellDisplay.test.js.map +1 -1
- package/dist/src/ui/components/Banner.test.js +8 -4
- package/dist/src/ui/components/Banner.test.js.map +1 -1
- package/dist/src/ui/components/Checklist.test.js +17 -12
- package/dist/src/ui/components/Checklist.test.js.map +1 -1
- package/dist/src/ui/components/ChecklistItem.test.js +9 -6
- package/dist/src/ui/components/ChecklistItem.test.js.map +1 -1
- package/dist/src/ui/components/CliSpinner.test.js +8 -5
- package/dist/src/ui/components/CliSpinner.test.js.map +1 -1
- package/dist/src/ui/components/Composer.js +5 -5
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +104 -100
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ConfigInitDisplay.test.js +3 -2
- package/dist/src/ui/components/ConfigInitDisplay.test.js.map +1 -1
- package/dist/src/ui/components/ConsentPrompt.test.js +15 -8
- package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -1
- package/dist/src/ui/components/ConsoleSummaryDisplay.test.js +9 -5
- package/dist/src/ui/components/ConsoleSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.test.js +16 -14
- package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/ContextUsageDisplay.test.js +12 -6
- package/dist/src/ui/components/ContextUsageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/CopyModeWarning.test.js +9 -5
- package/dist/src/ui/components/CopyModeWarning.test.js.map +1 -1
- package/dist/src/ui/components/DebugProfiler.test.js +17 -14
- package/dist/src/ui/components/DebugProfiler.test.js.map +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.test.js +13 -7
- package/dist/src/ui/components/DetailedMessagesDisplay.test.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +5 -1
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/DialogManager.test.js +9 -5
- package/dist/src/ui/components/DialogManager.test.js.map +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.test.js +16 -8
- package/dist/src/ui/components/EditorSettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/ExitPlanModeDialog.js +2 -2
- package/dist/src/ui/components/ExitPlanModeDialog.js.map +1 -1
- package/dist/src/ui/components/ExitPlanModeDialog.test.js +2 -2
- package/dist/src/ui/components/ExitPlanModeDialog.test.js.map +1 -1
- package/dist/src/ui/components/ExitWarning.test.js +18 -10
- package/dist/src/ui/components/ExitWarning.test.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.d.ts +2 -0
- package/dist/src/ui/components/FolderTrustDialog.js +49 -3
- package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js +249 -18
- package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.test.js +101 -50
- package/dist/src/ui/components/Footer.test.js.map +1 -1
- package/dist/src/ui/components/GeminiRespondingSpinner.test.js +23 -13
- package/dist/src/ui/components/GeminiRespondingSpinner.test.js.map +1 -1
- package/dist/src/ui/components/GradientRegression.test.js +20 -10
- package/dist/src/ui/components/GradientRegression.test.js.map +1 -1
- package/dist/src/ui/components/Header.test.js +2 -0
- package/dist/src/ui/components/Header.test.js.map +1 -1
- package/dist/src/ui/components/Help.test.js +9 -6
- package/dist/src/ui/components/Help.test.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.d.ts +1 -2
- package/dist/src/ui/components/HistoryItemDisplay.js +4 -3
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.test.js +80 -35
- package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
- package/dist/src/ui/components/HookStatusDisplay.test.js +13 -9
- package/dist/src/ui/components/HookStatusDisplay.test.js.map +1 -1
- package/dist/src/ui/components/IdeTrustChangeDialog.test.js +36 -16
- package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +10 -12
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +127 -13
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.test.js +97 -47
- package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/components/LogoutConfirmationDialog.test.js +25 -9
- package/dist/src/ui/components/LogoutConfirmationDialog.test.js.map +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js +9 -5
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -1
- package/dist/src/ui/components/MainContent.js +35 -14
- package/dist/src/ui/components/MainContent.js.map +1 -1
- package/dist/src/ui/components/MainContent.test.js +224 -10
- package/dist/src/ui/components/MainContent.test.js.map +1 -1
- package/dist/src/ui/components/MemoryUsageDisplay.test.js +8 -3
- package/dist/src/ui/components/MemoryUsageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.js +6 -6
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.test.js +142 -16
- package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.js +38 -24
- package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/MultiFolderTrustDialog.test.js +32 -9
- package/dist/src/ui/components/MultiFolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/NewAgentsNotification.test.js +6 -4
- package/dist/src/ui/components/NewAgentsNotification.test.js.map +1 -1
- package/dist/src/ui/components/Notifications.js +50 -4
- package/dist/src/ui/components/Notifications.js.map +1 -1
- package/dist/src/ui/components/Notifications.test.js +162 -30
- package/dist/src/ui/components/Notifications.test.js.map +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +36 -10
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/PolicyUpdateDialog.d.ts +18 -0
- package/dist/src/ui/components/PolicyUpdateDialog.js +59 -0
- package/dist/src/ui/components/PolicyUpdateDialog.js.map +1 -0
- package/dist/src/ui/components/PolicyUpdateDialog.test.d.ts +6 -0
- package/dist/src/ui/components/PolicyUpdateDialog.test.js +93 -0
- package/dist/src/ui/components/PolicyUpdateDialog.test.js.map +1 -0
- package/dist/src/ui/components/QueuedMessageDisplay.test.js +16 -11
- package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/QuittingDisplay.test.js +9 -5
- package/dist/src/ui/components/QuittingDisplay.test.js.map +1 -1
- package/dist/src/ui/components/QuotaDisplay.test.js +40 -22
- package/dist/src/ui/components/QuotaDisplay.test.js.map +1 -1
- package/dist/src/ui/components/RawMarkdownIndicator.test.js +8 -4
- package/dist/src/ui/components/RawMarkdownIndicator.test.js.map +1 -1
- package/dist/src/ui/components/RewindConfirmation.test.js +15 -7
- package/dist/src/ui/components/RewindConfirmation.test.js.map +1 -1
- package/dist/src/ui/components/RewindViewer.js +9 -7
- package/dist/src/ui/components/RewindViewer.js.map +1 -1
- package/dist/src/ui/components/RewindViewer.test.js +54 -17
- package/dist/src/ui/components/RewindViewer.test.js.map +1 -1
- package/dist/src/ui/components/SessionBrowser.test.js +24 -11
- package/dist/src/ui/components/SessionBrowser.test.js.map +1 -1
- package/dist/src/ui/components/SessionRetentionWarningDialog.test.js +12 -7
- package/dist/src/ui/components/SessionRetentionWarningDialog.test.js.map +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.js +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.test.js +7 -4
- package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +76 -7
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +252 -109
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/ShellInputPrompt.test.js +120 -67
- package/dist/src/ui/components/ShellInputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/ShellModeIndicator.test.js +4 -2
- package/dist/src/ui/components/ShellModeIndicator.test.js.map +1 -1
- package/dist/src/ui/components/ShortcutsHelp.js +1 -1
- package/dist/src/ui/components/ShortcutsHelp.js.map +1 -1
- package/dist/src/ui/components/ShortcutsHelp.test.js +6 -3
- package/dist/src/ui/components/ShortcutsHelp.test.js.map +1 -1
- package/dist/src/ui/components/ShowMoreLines.d.ts +2 -1
- package/dist/src/ui/components/ShowMoreLines.js +10 -5
- package/dist/src/ui/components/ShowMoreLines.js.map +1 -1
- package/dist/src/ui/components/ShowMoreLines.test.js +47 -7
- package/dist/src/ui/components/ShowMoreLines.test.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.d.ts +1 -0
- package/dist/src/ui/components/StatsDisplay.js +9 -3
- package/dist/src/ui/components/StatsDisplay.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.test.js +51 -34
- package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/StatusDisplay.test.js +30 -17
- package/dist/src/ui/components/StatusDisplay.test.js.map +1 -1
- package/dist/src/ui/components/StickyHeader.test.js +4 -2
- package/dist/src/ui/components/StickyHeader.test.js.map +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.test.js +19 -13
- package/dist/src/ui/components/SuggestionsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/Table.test.js +9 -6
- package/dist/src/ui/components/Table.test.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.test.js +42 -19
- package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
- package/dist/src/ui/components/ThemedGradient.test.js +4 -2
- package/dist/src/ui/components/ThemedGradient.test.js.map +1 -1
- package/dist/src/ui/components/Tips.test.js +4 -2
- package/dist/src/ui/components/Tips.test.js.map +1 -1
- package/dist/src/ui/components/ToastDisplay.js +6 -1
- package/dist/src/ui/components/ToastDisplay.js.map +1 -1
- package/dist/src/ui/components/ToastDisplay.test.js +48 -17
- package/dist/src/ui/components/ToastDisplay.test.js.map +1 -1
- package/dist/src/ui/components/ToolConfirmationQueue.js +11 -8
- package/dist/src/ui/components/ToolConfirmationQueue.js.map +1 -1
- package/dist/src/ui/components/ToolConfirmationQueue.test.js +75 -17
- package/dist/src/ui/components/ToolConfirmationQueue.test.js.map +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.test.js +19 -12
- package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/UpdateNotification.test.js +4 -2
- package/dist/src/ui/components/UpdateNotification.test.js.map +1 -1
- package/dist/src/ui/components/UserIdentity.test.js +16 -11
- package/dist/src/ui/components/UserIdentity.test.js.map +1 -1
- package/dist/src/ui/components/ValidationDialog.test.js +33 -16
- package/dist/src/ui/components/ValidationDialog.test.js.map +1 -1
- package/dist/src/ui/components/messages/CompressionMessage.test.js +99 -101
- package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ErrorMessage.test.js +8 -4
- package/dist/src/ui/components/messages/ErrorMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiMessage.js +5 -1
- package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiMessage.test.js +12 -6
- package/dist/src/ui/components/messages/GeminiMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/HintMessage.d.ts +11 -0
- package/dist/src/ui/components/messages/HintMessage.js +14 -0
- package/dist/src/ui/components/messages/HintMessage.js.map +1 -0
- package/dist/src/ui/components/messages/InfoMessage.d.ts +1 -0
- package/dist/src/ui/components/messages/InfoMessage.js +2 -2
- package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
- package/dist/src/ui/components/messages/InfoMessage.test.js +12 -6
- package/dist/src/ui/components/messages/InfoMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/RedirectionConfirmation.test.js +4 -2
- package/dist/src/ui/components/messages/RedirectionConfirmation.test.js.map +1 -1
- package/dist/src/ui/components/messages/ShellToolMessage.d.ts +1 -2
- package/dist/src/ui/components/messages/ShellToolMessage.js +15 -29
- package/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ShellToolMessage.test.js +91 -22
- package/dist/src/ui/components/messages/ShellToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ThinkingMessage.test.js +25 -13
- package/dist/src/ui/components/messages/ThinkingMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/Todo.test.js +34 -19
- package/dist/src/ui/components/messages/Todo.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +128 -13
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +175 -20
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +3 -4
- package/dist/src/ui/components/messages/ToolGroupMessage.js +91 -35
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js +286 -63
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.js +4 -4
- package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.test.js +118 -39
- package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessageFocusHint.test.js +15 -6
- package/dist/src/ui/components/messages/ToolMessageFocusHint.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js +4 -2
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolOverflowConsistencyChecks.test.d.ts +6 -0
- package/dist/src/ui/components/messages/ToolOverflowConsistencyChecks.test.js +79 -0
- package/dist/src/ui/components/messages/ToolOverflowConsistencyChecks.test.js.map +1 -0
- package/dist/src/ui/components/messages/ToolResultDisplay.js +25 -14
- package/dist/src/ui/components/messages/ToolResultDisplay.js.map +1 -1
- package/dist/src/ui/components/messages/ToolResultDisplay.test.js +81 -31
- package/dist/src/ui/components/messages/ToolResultDisplay.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolResultDisplayOverflow.test.js +5 -5
- package/dist/src/ui/components/messages/ToolResultDisplayOverflow.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolShared.d.ts +8 -0
- package/dist/src/ui/components/messages/ToolShared.js +27 -9
- package/dist/src/ui/components/messages/ToolShared.js.map +1 -1
- package/dist/src/ui/components/messages/ToolShared.test.d.ts +6 -0
- package/dist/src/ui/components/messages/ToolShared.test.js +52 -0
- package/dist/src/ui/components/messages/ToolShared.test.js.map +1 -0
- package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.js +11 -4
- package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.js.map +1 -1
- package/dist/src/ui/components/messages/UserMessage.js +1 -2
- package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
- package/dist/src/ui/components/messages/UserMessage.test.js +16 -8
- package/dist/src/ui/components/messages/UserMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/UserShellMessage.js +1 -2
- package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -1
- package/dist/src/ui/components/messages/WarningMessage.test.js +8 -4
- package/dist/src/ui/components/messages/WarningMessage.test.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js +118 -106
- package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSettingsDialog.js +22 -24
- package/dist/src/ui/components/shared/BaseSettingsDialog.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSettingsDialog.test.js +139 -40
- package/dist/src/ui/components/shared/BaseSettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +10 -6
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +1 -1
- package/dist/src/ui/components/shared/EnumSelector.test.js +42 -20
- package/dist/src/ui/components/shared/EnumSelector.test.js.map +1 -1
- package/dist/src/ui/components/shared/ExpandableText.test.js +21 -14
- package/dist/src/ui/components/shared/ExpandableText.test.js.map +1 -1
- package/dist/src/ui/components/shared/HalfLinePaddedBox.test.js +8 -4
- package/dist/src/ui/components/shared/HalfLinePaddedBox.test.js.map +1 -1
- package/dist/src/ui/components/shared/MaxSizedBox.test.js +41 -30
- package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +1 -1
- package/dist/src/ui/components/shared/Scrollable.js +2 -3
- package/dist/src/ui/components/shared/Scrollable.js.map +1 -1
- package/dist/src/ui/components/shared/Scrollable.test.js +33 -17
- package/dist/src/ui/components/shared/Scrollable.test.js.map +1 -1
- package/dist/src/ui/components/shared/ScrollableList.js +1 -1
- package/dist/src/ui/components/shared/ScrollableList.js.map +1 -1
- package/dist/src/ui/components/shared/ScrollableList.test.js +36 -6
- package/dist/src/ui/components/shared/ScrollableList.test.js.map +1 -1
- package/dist/src/ui/components/shared/SearchableList.d.ts +46 -14
- package/dist/src/ui/components/shared/SearchableList.js +69 -57
- package/dist/src/ui/components/shared/SearchableList.js.map +1 -1
- package/dist/src/ui/components/shared/SearchableList.test.js +67 -14
- package/dist/src/ui/components/shared/SearchableList.test.js.map +1 -1
- package/dist/src/ui/components/shared/SectionHeader.d.ts +1 -0
- package/dist/src/ui/components/shared/SectionHeader.js +1 -1
- package/dist/src/ui/components/shared/SectionHeader.js.map +1 -1
- package/dist/src/ui/components/shared/SectionHeader.test.js +9 -2
- package/dist/src/ui/components/shared/SectionHeader.test.js.map +1 -1
- package/dist/src/ui/components/shared/TabHeader.js +1 -1
- package/dist/src/ui/components/shared/TabHeader.js.map +1 -1
- package/dist/src/ui/components/shared/TabHeader.test.js +65 -25
- package/dist/src/ui/components/shared/TabHeader.test.js.map +1 -1
- package/dist/src/ui/components/shared/TextInput.test.js +111 -65
- package/dist/src/ui/components/shared/TextInput.test.js.map +1 -1
- package/dist/src/ui/components/shared/VirtualizedList.test.js +27 -35
- package/dist/src/ui/components/shared/VirtualizedList.test.js.map +1 -1
- package/dist/src/ui/components/triage/TriageDuplicates.js +1 -0
- package/dist/src/ui/components/triage/TriageDuplicates.js.map +1 -1
- package/dist/src/ui/components/triage/TriageIssues.js +1 -0
- package/dist/src/ui/components/triage/TriageIssues.js.map +1 -1
- package/dist/src/ui/components/views/ChatList.test.js +9 -6
- package/dist/src/ui/components/views/ChatList.test.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionRegistryView.d.ts +15 -0
- package/dist/src/ui/components/views/ExtensionRegistryView.js +60 -0
- package/dist/src/ui/components/views/ExtensionRegistryView.js.map +1 -0
- package/dist/src/ui/components/views/ExtensionRegistryView.test.d.ts +6 -0
- package/dist/src/ui/components/views/ExtensionRegistryView.test.js +168 -0
- package/dist/src/ui/components/views/ExtensionRegistryView.test.js.map +1 -0
- package/dist/src/ui/components/views/ExtensionsList.test.js +21 -19
- package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.test.js +38 -25
- package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
- package/dist/src/ui/components/views/SkillsList.test.js +18 -12
- package/dist/src/ui/components/views/SkillsList.test.js.map +1 -1
- package/dist/src/ui/components/views/ToolsList.test.js +9 -6
- package/dist/src/ui/components/views/ToolsList.test.js.map +1 -1
- package/dist/src/ui/constants/tips.js +1 -1
- package/dist/src/ui/constants/tips.js.map +1 -1
- package/dist/src/ui/constants.d.ts +2 -1
- package/dist/src/ui/constants.js +2 -1
- package/dist/src/ui/constants.js.map +1 -1
- package/dist/src/ui/contexts/AppContext.d.ts +2 -1
- package/dist/src/ui/contexts/AppContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.js +37 -8
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +68 -0
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/OverflowContext.d.ts +3 -3
- package/dist/src/ui/contexts/OverflowContext.js +5 -1
- package/dist/src/ui/contexts/OverflowContext.js.map +1 -1
- package/dist/src/ui/contexts/TerminalContext.test.js +26 -15
- package/dist/src/ui/contexts/TerminalContext.test.js.map +1 -1
- package/dist/src/ui/contexts/UIActionsContext.d.ts +6 -1
- package/dist/src/ui/contexts/UIActionsContext.js +1 -1
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +7 -1
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +6 -2
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +23 -11
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +30 -14
- package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/toolMapping.d.ts +2 -0
- package/dist/src/ui/hooks/toolMapping.js +13 -1
- package/dist/src/ui/hooks/toolMapping.js.map +1 -1
- package/dist/src/ui/hooks/toolMapping.test.js +42 -0
- package/dist/src/ui/hooks/toolMapping.test.js.map +1 -1
- package/dist/src/ui/hooks/useAnimatedScrollbar.js +13 -3
- package/dist/src/ui/hooks/useAnimatedScrollbar.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.js +74 -22
- package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.test.js +88 -0
- package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.js +2 -3
- package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.test.js +0 -4
- package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useConfirmingTool.d.ts +2 -6
- package/dist/src/ui/hooks/useConfirmingTool.js +2 -23
- package/dist/src/ui/hooks/useConfirmingTool.js.map +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.js +18 -6
- package/dist/src/ui/hooks/useConsoleMessages.js.map +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.test.js +4 -4
- package/dist/src/ui/hooks/useExtensionRegistry.d.ts +13 -0
- package/dist/src/ui/hooks/useExtensionRegistry.js +70 -0
- package/dist/src/ui/hooks/useExtensionRegistry.js.map +1 -0
- package/dist/src/ui/hooks/useFocus.d.ts +4 -1
- package/dist/src/ui/hooks/useFocus.js +7 -1
- package/dist/src/ui/hooks/useFocus.js.map +1 -1
- package/dist/src/ui/hooks/useFocus.test.js +20 -11
- package/dist/src/ui/hooks/useFocus.test.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.d.ts +2 -0
- package/dist/src/ui/hooks/useFolderTrust.js +15 -3
- package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.test.js +3 -0
- package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.d.ts +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +86 -20
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +150 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.d.ts +3 -1
- package/dist/src/ui/hooks/useLoadingIndicator.js +2 -2
- package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.test.js +9 -4
- package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useMouseClick.test.js +15 -7
- package/dist/src/ui/hooks/useMouseClick.test.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.d.ts +4 -2
- package/dist/src/ui/hooks/usePhraseCycler.js +38 -26
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.test.js +123 -73
- package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
- package/dist/src/ui/hooks/usePromptCompletion.d.ts +1 -2
- package/dist/src/ui/hooks/usePromptCompletion.js +2 -2
- package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useRegistrySearch.d.ts +19 -0
- package/dist/src/ui/hooks/useRegistrySearch.js +35 -0
- package/dist/src/ui/hooks/useRegistrySearch.js.map +1 -0
- package/dist/src/ui/hooks/useRunEventNotifications.d.ts +22 -0
- package/dist/src/ui/hooks/useRunEventNotifications.js +93 -0
- package/dist/src/ui/hooks/useRunEventNotifications.js.map +1 -0
- package/dist/src/ui/hooks/useSearchBuffer.d.ts +11 -0
- package/dist/src/ui/hooks/useSearchBuffer.js +24 -0
- package/dist/src/ui/hooks/useSearchBuffer.js.map +1 -0
- package/dist/src/ui/hooks/useSelectionList.test.js +111 -45
- package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
- package/dist/src/ui/hooks/useSessionBrowser.js +3 -2
- package/dist/src/ui/hooks/useSessionBrowser.js.map +1 -1
- package/dist/src/ui/hooks/useSessionBrowser.test.js +15 -12
- package/dist/src/ui/hooks/useSessionBrowser.test.js.map +1 -1
- package/dist/src/ui/hooks/useSessionResume.js +2 -2
- package/dist/src/ui/hooks/useSessionResume.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +1 -0
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useStateAndRef.js +1 -0
- package/dist/src/ui/hooks/useStateAndRef.js.map +1 -1
- package/dist/src/ui/hooks/useTerminalTheme.test.js +29 -18
- package/dist/src/ui/hooks/useTerminalTheme.test.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.js +19 -2
- package/dist/src/ui/hooks/useToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +44 -0
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/keyMatchers.test.js +1 -0
- package/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/layouts/DefaultAppLayout.test.js +12 -6
- package/dist/src/ui/layouts/DefaultAppLayout.test.js.map +1 -1
- package/dist/src/ui/privacy/CloudFreePrivacyNotice.test.js +24 -8
- package/dist/src/ui/privacy/CloudFreePrivacyNotice.test.js.map +1 -1
- package/dist/src/ui/privacy/CloudPaidPrivacyNotice.test.js +16 -5
- package/dist/src/ui/privacy/CloudPaidPrivacyNotice.test.js.map +1 -1
- package/dist/src/ui/privacy/GeminiPrivacyNotice.test.js +16 -5
- package/dist/src/ui/privacy/GeminiPrivacyNotice.test.js.map +1 -1
- package/dist/src/ui/privacy/PrivacyNotice.test.js +4 -2
- package/dist/src/ui/privacy/PrivacyNotice.test.js.map +1 -1
- package/dist/src/ui/themes/no-color.js +4 -0
- package/dist/src/ui/themes/no-color.js.map +1 -1
- package/dist/src/ui/themes/semantic-tokens.d.ts +2 -0
- package/dist/src/ui/themes/semantic-tokens.js +6 -2
- package/dist/src/ui/themes/semantic-tokens.js.map +1 -1
- package/dist/src/ui/themes/solarized-dark.js +2 -0
- package/dist/src/ui/themes/solarized-dark.js.map +1 -1
- package/dist/src/ui/themes/solarized-light.js +2 -0
- package/dist/src/ui/themes/solarized-light.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.js +9 -4
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/themes/theme.d.ts +2 -0
- package/dist/src/ui/themes/theme.js +20 -7
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/themes/theme.test.js +7 -7
- package/dist/src/ui/themes/theme.test.js.map +1 -1
- package/dist/src/ui/types.d.ts +14 -2
- package/dist/src/ui/types.js +1 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.js +3 -5
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.test.js +4 -2
- package/dist/src/ui/utils/CodeColorizer.test.js.map +1 -1
- package/dist/src/ui/utils/InlineMarkdownRenderer.js +3 -1
- package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.js +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.test.js +65 -33
- package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
- package/dist/src/ui/utils/TableRenderer.js +7 -3
- package/dist/src/ui/utils/TableRenderer.js.map +1 -1
- package/dist/src/ui/utils/TableRenderer.test.js +43 -22
- package/dist/src/ui/utils/TableRenderer.test.js.map +1 -1
- package/dist/src/ui/utils/borderStyles.d.ts +18 -0
- package/dist/src/ui/utils/borderStyles.js +78 -0
- package/dist/src/ui/utils/borderStyles.js.map +1 -0
- package/dist/src/ui/utils/commandUtils.d.ts +2 -1
- package/dist/src/ui/utils/commandUtils.js +8 -3
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +18 -0
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/ui/utils/confirmingTool.d.ts +15 -0
- package/dist/src/ui/utils/confirmingTool.js +27 -0
- package/dist/src/ui/utils/confirmingTool.js.map +1 -0
- package/dist/src/ui/utils/pendingAttentionNotification.d.ts +12 -0
- package/dist/src/ui/utils/pendingAttentionNotification.js +101 -0
- package/dist/src/ui/utils/pendingAttentionNotification.js.map +1 -0
- package/dist/src/ui/utils/pendingAttentionNotification.test.d.ts +6 -0
- package/dist/src/ui/utils/pendingAttentionNotification.test.js +79 -0
- package/dist/src/ui/utils/pendingAttentionNotification.test.js.map +1 -0
- package/dist/src/ui/utils/terminalCapabilityManager.d.ts +2 -0
- package/dist/src/ui/utils/terminalCapabilityManager.js +18 -0
- package/dist/src/ui/utils/terminalCapabilityManager.js.map +1 -1
- package/dist/src/ui/utils/terminalCapabilityManager.test.js +68 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +1 -1
- package/dist/src/ui/utils/terminalSetup.d.ts +24 -0
- package/dist/src/ui/utils/terminalSetup.js +130 -34
- package/dist/src/ui/utils/terminalSetup.js.map +1 -1
- package/dist/src/ui/utils/terminalSetup.test.js +35 -1
- package/dist/src/ui/utils/terminalSetup.test.js.map +1 -1
- package/dist/src/ui/utils/textUtils.d.ts +4 -0
- package/dist/src/ui/utils/textUtils.js +10 -1
- package/dist/src/ui/utils/textUtils.js.map +1 -1
- package/dist/src/ui/utils/textUtils.test.js +25 -2
- package/dist/src/ui/utils/textUtils.test.js.map +1 -1
- package/dist/src/ui/utils/toolLayoutUtils.d.ts +44 -0
- package/dist/src/ui/utils/toolLayoutUtils.js +73 -0
- package/dist/src/ui/utils/toolLayoutUtils.js.map +1 -0
- package/dist/src/ui/utils/urlSecurityUtils.d.ts +32 -0
- package/dist/src/ui/utils/urlSecurityUtils.js +71 -0
- package/dist/src/ui/utils/urlSecurityUtils.js.map +1 -0
- package/dist/src/ui/utils/urlSecurityUtils.test.d.ts +6 -0
- package/dist/src/ui/utils/urlSecurityUtils.test.js +49 -0
- package/dist/src/ui/utils/urlSecurityUtils.test.js.map +1 -0
- package/dist/src/utils/activityLogger.js +95 -24
- package/dist/src/utils/activityLogger.js.map +1 -1
- package/dist/src/utils/devtoolsService.js +1 -2
- package/dist/src/utils/devtoolsService.js.map +1 -1
- package/dist/src/utils/devtoolsService.test.js +1 -1
- package/dist/src/utils/devtoolsService.test.js.map +1 -1
- package/dist/src/utils/envVarResolver.js +4 -1
- package/dist/src/utils/envVarResolver.js.map +1 -1
- package/dist/src/utils/gitUtils.js +2 -0
- package/dist/src/utils/gitUtils.js.map +1 -1
- package/dist/src/utils/jsonoutput.js +2 -0
- package/dist/src/utils/jsonoutput.js.map +1 -1
- package/dist/src/utils/persistentState.d.ts +2 -0
- package/dist/src/utils/persistentState.js +1 -0
- package/dist/src/utils/persistentState.js.map +1 -1
- package/dist/src/utils/readStdin.js +1 -0
- package/dist/src/utils/readStdin.js.map +1 -1
- package/dist/src/utils/sessionUtils.d.ts +1 -6
- package/dist/src/utils/sessionUtils.js +8 -101
- package/dist/src/utils/sessionUtils.js.map +1 -1
- package/dist/src/utils/sessionUtils.test.js +47 -0
- package/dist/src/utils/sessionUtils.test.js.map +1 -1
- package/dist/src/utils/settingsUtils.js +2 -0
- package/dist/src/utils/settingsUtils.js.map +1 -1
- package/dist/src/utils/skillUtils.test.js +7 -5
- package/dist/src/utils/skillUtils.test.js.map +1 -1
- package/dist/src/utils/terminalNotifications.d.ts +25 -0
- package/dist/src/utils/terminalNotifications.js +77 -0
- package/dist/src/utils/terminalNotifications.js.map +1 -0
- package/dist/src/utils/terminalNotifications.test.d.ts +6 -0
- package/dist/src/utils/terminalNotifications.test.js +123 -0
- package/dist/src/utils/terminalNotifications.test.js.map +1 -0
- package/dist/src/utils/userStartupWarnings.d.ts +4 -1
- package/dist/src/utils/userStartupWarnings.js +22 -4
- package/dist/src/utils/userStartupWarnings.js.map +1 -1
- package/dist/src/utils/userStartupWarnings.test.js +53 -11
- package/dist/src/utils/userStartupWarnings.test.js.map +1 -1
- package/dist/src/zed-integration/acpErrors.js +2 -0
- package/dist/src/zed-integration/acpErrors.js.map +1 -1
- package/dist/src/zed-integration/acpResume.test.js +53 -3
- package/dist/src/zed-integration/acpResume.test.js.map +1 -1
- package/dist/src/zed-integration/fileSystemService.js +2 -0
- package/dist/src/zed-integration/fileSystemService.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.d.ts +2 -0
- package/dist/src/zed-integration/zedIntegration.js +77 -6
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.test.js +176 -2
- package/dist/src/zed-integration/zedIntegration.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -7
- package/dist/google-gemini-cli-0.30.0.tgz +0 -0
- package/dist/src/ui/hooks/useFuzzyList.d.ts +0 -25
- package/dist/src/ui/hooks/useFuzzyList.js +0 -100
- package/dist/src/ui/hooks/useFuzzyList.js.map +0 -1
|
@@ -15,7 +15,7 @@ import { AuthState, } from './types.js';
|
|
|
15
15
|
import { checkPermissions } from './hooks/atCommandProcessor.js';
|
|
16
16
|
import { MessageType, StreamingState } from './types.js';
|
|
17
17
|
import { ToolActionsProvider } from './contexts/ToolActionsContext.js';
|
|
18
|
-
import { IdeClient, ideContextStore, getErrorMessage, getAllGeminiMdFilenames, AuthType, clearCachedCredentialFile, recordExitFail, ShellExecutionService, saveApiKey, debugLogger, coreEvents, CoreEvent, refreshServerHierarchicalMemory, flattenMemory, writeToStdout, disableMouseEvents, enterAlternateScreen, enableMouseEvents, disableLineWrapping, shouldEnterAlternateScreen, startupProfiler, SessionStartSource, SessionEndReason, generateSummary, ChangeAuthRequestedError, CoreToolCallStatus, } from '@google/gemini-cli-core';
|
|
18
|
+
import { IdeClient, ideContextStore, getErrorMessage, getAllGeminiMdFilenames, AuthType, clearCachedCredentialFile, recordExitFail, ShellExecutionService, saveApiKey, debugLogger, coreEvents, CoreEvent, refreshServerHierarchicalMemory, flattenMemory, writeToStdout, disableMouseEvents, enterAlternateScreen, enableMouseEvents, disableLineWrapping, shouldEnterAlternateScreen, startupProfiler, SessionStartSource, SessionEndReason, generateSummary, ChangeAuthRequestedError, CoreToolCallStatus, generateSteeringAckMessage, buildUserSteeringHintPrompt, } from '@google/gemini-cli-core';
|
|
19
19
|
import { validateAuthMethod } from '../config/auth.js';
|
|
20
20
|
import process from 'node:process';
|
|
21
21
|
import { useHistory } from './hooks/useHistoryManager.js';
|
|
@@ -28,6 +28,7 @@ import { useSettingsCommand } from './hooks/useSettingsCommand.js';
|
|
|
28
28
|
import { useModelCommand } from './hooks/useModelCommand.js';
|
|
29
29
|
import { useSlashCommandProcessor } from './hooks/slashCommandProcessor.js';
|
|
30
30
|
import { useVimMode } from './contexts/VimModeContext.js';
|
|
31
|
+
import { useOverflowActions, useOverflowState, } from './contexts/OverflowContext.js';
|
|
31
32
|
import { useConsoleMessages } from './hooks/useConsoleMessages.js';
|
|
32
33
|
import { useTerminalSize } from './hooks/useTerminalSize.js';
|
|
33
34
|
import { calculatePromptWidths } from './components/InputPrompt.js';
|
|
@@ -75,9 +76,10 @@ import { useSettings } from './contexts/SettingsContext.js';
|
|
|
75
76
|
import { terminalCapabilityManager } from './utils/terminalCapabilityManager.js';
|
|
76
77
|
import { useInputHistoryStore } from './hooks/useInputHistoryStore.js';
|
|
77
78
|
import { useBanner } from './hooks/useBanner.js';
|
|
79
|
+
import { useTerminalSetupPrompt } from './utils/terminalSetup.js';
|
|
78
80
|
import { useHookDisplayState } from './hooks/useHookDisplayState.js';
|
|
79
81
|
import { useBackgroundShellManager } from './hooks/useBackgroundShellManager.js';
|
|
80
|
-
import { WARNING_PROMPT_DURATION_MS, QUEUE_ERROR_DISPLAY_DURATION_MS, } from './constants.js';
|
|
82
|
+
import { WARNING_PROMPT_DURATION_MS, QUEUE_ERROR_DISPLAY_DURATION_MS, EXPAND_HINT_DURATION_MS, } from './constants.js';
|
|
81
83
|
import { LoginWithGoogleRestartDialog } from './auth/LoginWithGoogleRestartDialog.js';
|
|
82
84
|
import { NewAgentsChoice } from './components/NewAgentsNotification.js';
|
|
83
85
|
import { isSlashCommand } from './utils/commandUtils.js';
|
|
@@ -85,6 +87,8 @@ import { useTerminalTheme } from './hooks/useTerminalTheme.js';
|
|
|
85
87
|
import { useTimedMessage } from './hooks/useTimedMessage.js';
|
|
86
88
|
import { shouldDismissShortcutsHelpOnHotkey } from './utils/shortcutsHelp.js';
|
|
87
89
|
import { useSuspend } from './hooks/useSuspend.js';
|
|
90
|
+
import { useRunEventNotifications } from './hooks/useRunEventNotifications.js';
|
|
91
|
+
import { isNotificationsEnabled } from '../utils/terminalNotifications.js';
|
|
88
92
|
function isToolExecuting(pendingHistoryItems) {
|
|
89
93
|
return pendingHistoryItems.some((item) => {
|
|
90
94
|
if (item && item.type === 'tool_group') {
|
|
@@ -113,6 +117,8 @@ const SHELL_HEIGHT_PADDING = 10;
|
|
|
113
117
|
export const AppContainer = (props) => {
|
|
114
118
|
const { config, initializationResult, resumedSessionData } = props;
|
|
115
119
|
const settings = useSettings();
|
|
120
|
+
const { reset } = useOverflowActions();
|
|
121
|
+
const notificationsEnabled = isNotificationsEnabled(settings);
|
|
116
122
|
const historyManager = useHistory({
|
|
117
123
|
chatRecordingService: config.getGeminiClient()?.getChatRecordingService(),
|
|
118
124
|
});
|
|
@@ -143,6 +149,48 @@ export const AppContainer = (props) => {
|
|
|
143
149
|
const [isTrustedFolder, setIsTrustedFolder] = useState(() => isWorkspaceTrusted(settings.merged).isTrusted);
|
|
144
150
|
const [queueErrorMessage, setQueueErrorMessage] = useState(null);
|
|
145
151
|
const [newAgents, setNewAgents] = useState(null);
|
|
152
|
+
const [constrainHeight, setConstrainHeight] = useState(true);
|
|
153
|
+
const [showIsExpandableHint, setShowIsExpandableHint] = useState(false);
|
|
154
|
+
const expandHintTimerRef = useRef(null);
|
|
155
|
+
const overflowState = useOverflowState();
|
|
156
|
+
const overflowingIdsSize = overflowState?.overflowingIds.size ?? 0;
|
|
157
|
+
const hasOverflowState = overflowingIdsSize > 0 || !constrainHeight;
|
|
158
|
+
/**
|
|
159
|
+
* Manages the visibility and x-second timer for the expansion hint.
|
|
160
|
+
*
|
|
161
|
+
* This effect triggers the timer countdown whenever an overflow is detected
|
|
162
|
+
* or the user manually toggles the expansion state with Ctrl+O. We use a stable
|
|
163
|
+
* boolean dependency (hasOverflowState) to ensure the timer only resets on
|
|
164
|
+
* genuine state transitions, preventing it from infinitely resetting during
|
|
165
|
+
* active text streaming.
|
|
166
|
+
*/
|
|
167
|
+
useEffect(() => {
|
|
168
|
+
if (isAlternateBuffer) {
|
|
169
|
+
setShowIsExpandableHint(false);
|
|
170
|
+
if (expandHintTimerRef.current) {
|
|
171
|
+
clearTimeout(expandHintTimerRef.current);
|
|
172
|
+
}
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
if (hasOverflowState) {
|
|
176
|
+
setShowIsExpandableHint(true);
|
|
177
|
+
if (expandHintTimerRef.current) {
|
|
178
|
+
clearTimeout(expandHintTimerRef.current);
|
|
179
|
+
}
|
|
180
|
+
expandHintTimerRef.current = setTimeout(() => {
|
|
181
|
+
setShowIsExpandableHint(false);
|
|
182
|
+
}, EXPAND_HINT_DURATION_MS);
|
|
183
|
+
}
|
|
184
|
+
}, [hasOverflowState, isAlternateBuffer, constrainHeight]);
|
|
185
|
+
/**
|
|
186
|
+
* Safe cleanup to ensure the expansion hint timer is cancelled when the
|
|
187
|
+
* component unmounts, preventing memory leaks.
|
|
188
|
+
*/
|
|
189
|
+
useEffect(() => () => {
|
|
190
|
+
if (expandHintTimerRef.current) {
|
|
191
|
+
clearTimeout(expandHintTimerRef.current);
|
|
192
|
+
}
|
|
193
|
+
}, []);
|
|
146
194
|
const [defaultBannerText, setDefaultBannerText] = useState('');
|
|
147
195
|
const [warningBannerText, setWarningBannerText] = useState('');
|
|
148
196
|
const [bannerVisible, setBannerVisible] = useState(true);
|
|
@@ -343,6 +391,11 @@ export const AppContainer = (props) => {
|
|
|
343
391
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
344
392
|
initializeFromLogger(logger);
|
|
345
393
|
}, [logger, initializeFromLogger]);
|
|
394
|
+
// One-time prompt to suggest running /terminal-setup when it would help.
|
|
395
|
+
useTerminalSetupPrompt({
|
|
396
|
+
addConfirmUpdateExtensionRequest,
|
|
397
|
+
addItem: historyManager.addItem,
|
|
398
|
+
});
|
|
346
399
|
const refreshStatic = useCallback(() => {
|
|
347
400
|
if (!isAlternateBuffer) {
|
|
348
401
|
stdout.write(ansiEscapes.clearTerminal);
|
|
@@ -636,7 +689,28 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
636
689
|
}
|
|
637
690
|
}
|
|
638
691
|
}, [pendingRestorePrompt, inputHistory, historyManager.history]);
|
|
639
|
-
const
|
|
692
|
+
const pendingHintsRef = useRef([]);
|
|
693
|
+
const [pendingHintCount, setPendingHintCount] = useState(0);
|
|
694
|
+
const consumePendingHints = useCallback(() => {
|
|
695
|
+
if (pendingHintsRef.current.length === 0) {
|
|
696
|
+
return null;
|
|
697
|
+
}
|
|
698
|
+
const hint = pendingHintsRef.current.join('\n');
|
|
699
|
+
pendingHintsRef.current = [];
|
|
700
|
+
setPendingHintCount(0);
|
|
701
|
+
return hint;
|
|
702
|
+
}, []);
|
|
703
|
+
useEffect(() => {
|
|
704
|
+
const hintListener = (hint) => {
|
|
705
|
+
pendingHintsRef.current.push(hint);
|
|
706
|
+
setPendingHintCount((prev) => prev + 1);
|
|
707
|
+
};
|
|
708
|
+
config.userHintService.onUserHint(hintListener);
|
|
709
|
+
return () => {
|
|
710
|
+
config.userHintService.offUserHint(hintListener);
|
|
711
|
+
};
|
|
712
|
+
}, [config]);
|
|
713
|
+
const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, cancelOngoingRequest, pendingToolCalls, handleApprovalModeChange, activePtyId, loopDetectionConfirmationRequest, lastOutputTime, backgroundShellCount, isBackgroundShellVisible, toggleBackgroundShell, backgroundCurrentShell, backgroundShells, dismissBackgroundShell, retryStatus, } = useGeminiStream(config.getGeminiClient(), historyManager.history, historyManager.addItem, config, settings, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh, modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError, onCancelSubmit, setEmbeddedShellFocused, terminalWidth, terminalHeight, embeddedShellFocused, consumePendingHints);
|
|
640
714
|
toggleBackgroundShellRef.current = toggleBackgroundShell;
|
|
641
715
|
isBackgroundShellVisibleRef.current = isBackgroundShellVisible;
|
|
642
716
|
backgroundShellsRef.current = backgroundShells;
|
|
@@ -711,9 +785,43 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
711
785
|
pendingSlashCommandHistoryItems,
|
|
712
786
|
pendingGeminiHistoryItems,
|
|
713
787
|
]);
|
|
788
|
+
const handleHintSubmit = useCallback((hint) => {
|
|
789
|
+
const trimmed = hint.trim();
|
|
790
|
+
if (!trimmed) {
|
|
791
|
+
return;
|
|
792
|
+
}
|
|
793
|
+
config.userHintService.addUserHint(trimmed);
|
|
794
|
+
// Render hints with a distinct style.
|
|
795
|
+
historyManager.addItem({
|
|
796
|
+
type: 'hint',
|
|
797
|
+
text: trimmed,
|
|
798
|
+
});
|
|
799
|
+
}, [config, historyManager]);
|
|
714
800
|
const handleFinalSubmit = useCallback(async (submittedValue) => {
|
|
801
|
+
reset();
|
|
802
|
+
// Explicitly hide the expansion hint and clear its x-second timer when a new turn begins.
|
|
803
|
+
setShowIsExpandableHint(false);
|
|
804
|
+
if (expandHintTimerRef.current) {
|
|
805
|
+
clearTimeout(expandHintTimerRef.current);
|
|
806
|
+
}
|
|
807
|
+
if (!constrainHeight) {
|
|
808
|
+
setConstrainHeight(true);
|
|
809
|
+
if (!isAlternateBuffer) {
|
|
810
|
+
refreshStatic();
|
|
811
|
+
}
|
|
812
|
+
}
|
|
715
813
|
const isSlash = isSlashCommand(submittedValue.trim());
|
|
716
814
|
const isIdle = streamingState === StreamingState.Idle;
|
|
815
|
+
const isAgentRunning = streamingState === StreamingState.Responding ||
|
|
816
|
+
isToolExecuting([
|
|
817
|
+
...pendingSlashCommandHistoryItems,
|
|
818
|
+
...pendingGeminiHistoryItems,
|
|
819
|
+
]);
|
|
820
|
+
if (config.isModelSteeringEnabled() && isAgentRunning && !isSlash) {
|
|
821
|
+
handleHintSubmit(submittedValue);
|
|
822
|
+
addInput(submittedValue);
|
|
823
|
+
return;
|
|
824
|
+
}
|
|
717
825
|
if (isSlash || (isIdle && isMcpReady)) {
|
|
718
826
|
if (!isSlash) {
|
|
719
827
|
const permissions = await checkPermissions(submittedValue, config);
|
|
@@ -749,13 +857,33 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
749
857
|
isMcpReady,
|
|
750
858
|
streamingState,
|
|
751
859
|
messageQueue.length,
|
|
860
|
+
pendingSlashCommandHistoryItems,
|
|
861
|
+
pendingGeminiHistoryItems,
|
|
752
862
|
config,
|
|
863
|
+
constrainHeight,
|
|
864
|
+
setConstrainHeight,
|
|
865
|
+
isAlternateBuffer,
|
|
866
|
+
refreshStatic,
|
|
867
|
+
reset,
|
|
868
|
+
handleHintSubmit,
|
|
753
869
|
]);
|
|
754
870
|
const handleClearScreen = useCallback(() => {
|
|
871
|
+
reset();
|
|
872
|
+
// Explicitly hide the expansion hint and clear its x-second timer when clearing the screen.
|
|
873
|
+
setShowIsExpandableHint(false);
|
|
874
|
+
if (expandHintTimerRef.current) {
|
|
875
|
+
clearTimeout(expandHintTimerRef.current);
|
|
876
|
+
}
|
|
755
877
|
historyManager.clearItems();
|
|
756
878
|
clearConsoleMessagesState();
|
|
757
879
|
refreshStatic();
|
|
758
|
-
}, [
|
|
880
|
+
}, [
|
|
881
|
+
historyManager,
|
|
882
|
+
clearConsoleMessagesState,
|
|
883
|
+
refreshStatic,
|
|
884
|
+
reset,
|
|
885
|
+
setShowIsExpandableHint,
|
|
886
|
+
]);
|
|
759
887
|
const { handleInput: vimHandleInput } = useVim(buffer, handleFinalSubmit);
|
|
760
888
|
/**
|
|
761
889
|
* Determines if the input prompt should be active and accept user input.
|
|
@@ -796,7 +924,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
796
924
|
showColor: settings.merged.tools.shell.showColor,
|
|
797
925
|
sanitizationConfig: config.sanitizationConfig,
|
|
798
926
|
});
|
|
799
|
-
const isFocused = useFocus();
|
|
927
|
+
const { isFocused, hasReceivedFocusEvent } = useFocus();
|
|
800
928
|
// Context file names computation
|
|
801
929
|
const contextFileNames = useMemo(() => {
|
|
802
930
|
const fromSettings = settings.merged.context.fileName;
|
|
@@ -883,12 +1011,13 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
883
1011
|
windowMs: WARNING_PROMPT_DURATION_MS,
|
|
884
1012
|
onRepeat: handleExitRepeat,
|
|
885
1013
|
});
|
|
886
|
-
const [constrainHeight, setConstrainHeight] = useState(true);
|
|
887
1014
|
const [ideContextState, setIdeContextState] = useState();
|
|
888
1015
|
const [showEscapePrompt, setShowEscapePrompt] = useState(false);
|
|
889
1016
|
const [showIdeRestartPrompt, setShowIdeRestartPrompt] = useState(false);
|
|
890
1017
|
const [transientMessage, showTransientMessage] = useTimedMessage(WARNING_PROMPT_DURATION_MS);
|
|
891
|
-
const { isFolderTrustDialogOpen, handleFolderTrustSelect, isRestarting } = useFolderTrust(settings, setIsTrustedFolder, historyManager.addItem);
|
|
1018
|
+
const { isFolderTrustDialogOpen, discoveryResults: folderDiscoveryResults, handleFolderTrustSelect, isRestarting, } = useFolderTrust(settings, setIsTrustedFolder, historyManager.addItem);
|
|
1019
|
+
const policyUpdateConfirmationRequest = config.getPolicyUpdateConfirmationRequest();
|
|
1020
|
+
const [isPolicyUpdateDialogOpen, setIsPolicyUpdateDialogOpen] = useState(!!policyUpdateConfirmationRequest);
|
|
892
1021
|
const { needsRestart: ideNeedsRestart, restartReason: ideTrustRestartReason, } = useIdeTrustListener();
|
|
893
1022
|
const isInitialMount = useRef(true);
|
|
894
1023
|
useIncludeDirsTrust(config, isTrustedFolder, historyManager, setCustomDialog);
|
|
@@ -1005,6 +1134,8 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1005
1134
|
streamingState,
|
|
1006
1135
|
shouldShowFocusHint,
|
|
1007
1136
|
retryStatus,
|
|
1137
|
+
loadingPhrasesMode: settings.merged.ui.loadingPhrases,
|
|
1138
|
+
customWittyPhrases: settings.merged.ui.customWittyPhrases,
|
|
1008
1139
|
});
|
|
1009
1140
|
const handleGlobalKeypress = useCallback((key) => {
|
|
1010
1141
|
// Debug log keystrokes if enabled
|
|
@@ -1045,6 +1176,19 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1045
1176
|
if (!constrainHeight) {
|
|
1046
1177
|
enteringConstrainHeightMode = true;
|
|
1047
1178
|
setConstrainHeight(true);
|
|
1179
|
+
if (keyMatchers[Command.SHOW_MORE_LINES](key)) {
|
|
1180
|
+
// If the user manually collapses the view, show the hint and reset the x-second timer.
|
|
1181
|
+
setShowIsExpandableHint(true);
|
|
1182
|
+
if (expandHintTimerRef.current) {
|
|
1183
|
+
clearTimeout(expandHintTimerRef.current);
|
|
1184
|
+
}
|
|
1185
|
+
expandHintTimerRef.current = setTimeout(() => {
|
|
1186
|
+
setShowIsExpandableHint(false);
|
|
1187
|
+
}, EXPAND_HINT_DURATION_MS);
|
|
1188
|
+
}
|
|
1189
|
+
if (!isAlternateBuffer) {
|
|
1190
|
+
refreshStatic();
|
|
1191
|
+
}
|
|
1048
1192
|
}
|
|
1049
1193
|
if (keyMatchers[Command.SHOW_ERROR_DETAILS](key)) {
|
|
1050
1194
|
if (settings.merged.general.devtools) {
|
|
@@ -1081,6 +1225,17 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1081
1225
|
else if (keyMatchers[Command.SHOW_MORE_LINES](key) &&
|
|
1082
1226
|
!enteringConstrainHeightMode) {
|
|
1083
1227
|
setConstrainHeight(false);
|
|
1228
|
+
// If the user manually expands the view, show the hint and reset the x-second timer.
|
|
1229
|
+
setShowIsExpandableHint(true);
|
|
1230
|
+
if (expandHintTimerRef.current) {
|
|
1231
|
+
clearTimeout(expandHintTimerRef.current);
|
|
1232
|
+
}
|
|
1233
|
+
expandHintTimerRef.current = setTimeout(() => {
|
|
1234
|
+
setShowIsExpandableHint(false);
|
|
1235
|
+
}, EXPAND_HINT_DURATION_MS);
|
|
1236
|
+
if (!isAlternateBuffer) {
|
|
1237
|
+
refreshStatic();
|
|
1238
|
+
}
|
|
1084
1239
|
return true;
|
|
1085
1240
|
}
|
|
1086
1241
|
else if ((keyMatchers[Command.FOCUS_SHELL_INPUT](key) ||
|
|
@@ -1272,6 +1427,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1272
1427
|
const dialogsVisible = (shouldShowRetentionWarning && retentionCheckComplete) ||
|
|
1273
1428
|
shouldShowIdePrompt ||
|
|
1274
1429
|
isFolderTrustDialogOpen ||
|
|
1430
|
+
isPolicyUpdateDialogOpen ||
|
|
1275
1431
|
adminSettingsChanged ||
|
|
1276
1432
|
!!commandConfirmationRequest ||
|
|
1277
1433
|
!!authConsentRequest ||
|
|
@@ -1296,11 +1452,13 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1296
1452
|
!!newAgents;
|
|
1297
1453
|
const pendingHistoryItems = useMemo(() => [...pendingSlashCommandHistoryItems, ...pendingGeminiHistoryItems], [pendingSlashCommandHistoryItems, pendingGeminiHistoryItems]);
|
|
1298
1454
|
const hasPendingToolConfirmation = useMemo(() => isToolAwaitingConfirmation(pendingHistoryItems), [pendingHistoryItems]);
|
|
1455
|
+
const hasConfirmUpdateExtensionRequests = confirmUpdateExtensionRequests.length > 0;
|
|
1456
|
+
const hasLoopDetectionConfirmationRequest = !!loopDetectionConfirmationRequest;
|
|
1299
1457
|
const hasPendingActionRequired = hasPendingToolConfirmation ||
|
|
1300
1458
|
!!commandConfirmationRequest ||
|
|
1301
1459
|
!!authConsentRequest ||
|
|
1302
|
-
|
|
1303
|
-
|
|
1460
|
+
hasConfirmUpdateExtensionRequests ||
|
|
1461
|
+
hasLoopDetectionConfirmationRequest ||
|
|
1304
1462
|
!!proQuotaRequest ||
|
|
1305
1463
|
!!validationRequest ||
|
|
1306
1464
|
!!customDialog;
|
|
@@ -1314,6 +1472,19 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1314
1472
|
isActive: !embeddedShellFocused,
|
|
1315
1473
|
allowPlanMode,
|
|
1316
1474
|
});
|
|
1475
|
+
useRunEventNotifications({
|
|
1476
|
+
notificationsEnabled,
|
|
1477
|
+
isFocused,
|
|
1478
|
+
hasReceivedFocusEvent,
|
|
1479
|
+
streamingState,
|
|
1480
|
+
hasPendingActionRequired,
|
|
1481
|
+
pendingHistoryItems,
|
|
1482
|
+
commandConfirmationRequest,
|
|
1483
|
+
authConsentRequest,
|
|
1484
|
+
permissionConfirmationRequest,
|
|
1485
|
+
hasConfirmUpdateExtensionRequests,
|
|
1486
|
+
hasLoopDetectionConfirmationRequest,
|
|
1487
|
+
});
|
|
1317
1488
|
const isPassiveShortcutsHelpState = isInputActive &&
|
|
1318
1489
|
streamingState === StreamingState.Idle &&
|
|
1319
1490
|
!hasPendingActionRequired;
|
|
@@ -1326,6 +1497,36 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1326
1497
|
isPassiveShortcutsHelpState,
|
|
1327
1498
|
setShortcutsHelpVisible,
|
|
1328
1499
|
]);
|
|
1500
|
+
useEffect(() => {
|
|
1501
|
+
if (!isConfigInitialized ||
|
|
1502
|
+
!config.isModelSteeringEnabled() ||
|
|
1503
|
+
streamingState !== StreamingState.Idle ||
|
|
1504
|
+
!isMcpReady ||
|
|
1505
|
+
isToolAwaitingConfirmation(pendingHistoryItems)) {
|
|
1506
|
+
return;
|
|
1507
|
+
}
|
|
1508
|
+
const pendingHint = consumePendingHints();
|
|
1509
|
+
if (!pendingHint) {
|
|
1510
|
+
return;
|
|
1511
|
+
}
|
|
1512
|
+
void generateSteeringAckMessage(config.getBaseLlmClient(), pendingHint).then((ackText) => {
|
|
1513
|
+
historyManager.addItem({
|
|
1514
|
+
type: 'info',
|
|
1515
|
+
text: ackText,
|
|
1516
|
+
});
|
|
1517
|
+
});
|
|
1518
|
+
void submitQuery([{ text: buildUserSteeringHintPrompt(pendingHint) }]);
|
|
1519
|
+
}, [
|
|
1520
|
+
config,
|
|
1521
|
+
historyManager,
|
|
1522
|
+
isConfigInitialized,
|
|
1523
|
+
isMcpReady,
|
|
1524
|
+
streamingState,
|
|
1525
|
+
submitQuery,
|
|
1526
|
+
consumePendingHints,
|
|
1527
|
+
pendingHistoryItems,
|
|
1528
|
+
pendingHintCount,
|
|
1529
|
+
]);
|
|
1329
1530
|
const allToolCalls = useMemo(() => pendingHistoryItems
|
|
1330
1531
|
.filter((item) => item.type === 'tool_group')
|
|
1331
1532
|
.flatMap((item) => item.tools), [pendingHistoryItems]);
|
|
@@ -1343,8 +1544,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1343
1544
|
let isMounted = true;
|
|
1344
1545
|
const fetchBannerTexts = async () => {
|
|
1345
1546
|
const [defaultBanner, warningBanner] = await Promise.all([
|
|
1346
|
-
|
|
1347
|
-
'',
|
|
1547
|
+
config.getBannerTextNoCapacityIssues(),
|
|
1348
1548
|
config.getBannerTextCapacityIssues(),
|
|
1349
1549
|
]);
|
|
1350
1550
|
if (isMounted) {
|
|
@@ -1409,6 +1609,9 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1409
1609
|
isResuming,
|
|
1410
1610
|
shouldShowIdePrompt,
|
|
1411
1611
|
isFolderTrustDialogOpen: isFolderTrustDialogOpen ?? false,
|
|
1612
|
+
folderDiscoveryResults,
|
|
1613
|
+
isPolicyUpdateDialogOpen,
|
|
1614
|
+
policyUpdateConfirmationRequest,
|
|
1412
1615
|
isTrustedFolder,
|
|
1413
1616
|
constrainHeight,
|
|
1414
1617
|
showErrorDetails,
|
|
@@ -1476,6 +1679,13 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1476
1679
|
isBackgroundShellListOpen,
|
|
1477
1680
|
adminSettingsChanged,
|
|
1478
1681
|
newAgents,
|
|
1682
|
+
showIsExpandableHint,
|
|
1683
|
+
hintMode: config.isModelSteeringEnabled() &&
|
|
1684
|
+
isToolExecuting([
|
|
1685
|
+
...pendingSlashCommandHistoryItems,
|
|
1686
|
+
...pendingGeminiHistoryItems,
|
|
1687
|
+
]),
|
|
1688
|
+
hintBuffer: '',
|
|
1479
1689
|
}), [
|
|
1480
1690
|
isThemeDialogOpen,
|
|
1481
1691
|
shouldShowRetentionWarning,
|
|
@@ -1523,6 +1733,9 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1523
1733
|
isResuming,
|
|
1524
1734
|
shouldShowIdePrompt,
|
|
1525
1735
|
isFolderTrustDialogOpen,
|
|
1736
|
+
folderDiscoveryResults,
|
|
1737
|
+
isPolicyUpdateDialogOpen,
|
|
1738
|
+
policyUpdateConfirmationRequest,
|
|
1526
1739
|
isTrustedFolder,
|
|
1527
1740
|
constrainHeight,
|
|
1528
1741
|
showErrorDetails,
|
|
@@ -1591,6 +1804,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1591
1804
|
backgroundShells,
|
|
1592
1805
|
adminSettingsChanged,
|
|
1593
1806
|
newAgents,
|
|
1807
|
+
showIsExpandableHint,
|
|
1594
1808
|
]);
|
|
1595
1809
|
const exitPrivacyNotice = useCallback(() => setShowPrivacyNotice(false), [setShowPrivacyNotice]);
|
|
1596
1810
|
const uiActions = useMemo(() => ({
|
|
@@ -1613,6 +1827,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1613
1827
|
vimHandleInput,
|
|
1614
1828
|
handleIdePromptComplete,
|
|
1615
1829
|
handleFolderTrustSelect,
|
|
1830
|
+
setIsPolicyUpdateDialogOpen,
|
|
1616
1831
|
setConstrainHeight,
|
|
1617
1832
|
onEscapePromptChange: handleEscapePromptChange,
|
|
1618
1833
|
refreshStatic,
|
|
@@ -1639,6 +1854,10 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1639
1854
|
setActiveBackgroundShellPid,
|
|
1640
1855
|
setIsBackgroundShellListOpen,
|
|
1641
1856
|
setAuthContext,
|
|
1857
|
+
onHintInput: () => { },
|
|
1858
|
+
onHintBackspace: () => { },
|
|
1859
|
+
onHintClear: () => { },
|
|
1860
|
+
onHintSubmit: () => { },
|
|
1642
1861
|
handleRestart: async () => {
|
|
1643
1862
|
if (process.send) {
|
|
1644
1863
|
const remoteSettings = config.getRemoteAdminSettings();
|
|
@@ -1688,6 +1907,7 @@ Logging in with Google... Restarting Gemini CLI to continue.
|
|
|
1688
1907
|
vimHandleInput,
|
|
1689
1908
|
handleIdePromptComplete,
|
|
1690
1909
|
handleFolderTrustSelect,
|
|
1910
|
+
setIsPolicyUpdateDialogOpen,
|
|
1691
1911
|
setConstrainHeight,
|
|
1692
1912
|
handleEscapePromptChange,
|
|
1693
1913
|
refreshStatic,
|