@machina.ai/cell-cli 1.20.2-rc1 → 1.25.0-rc3
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/dist/package.json +5 -4
- package/dist/src/commands/extensions/configure.d.ts +13 -0
- package/dist/src/commands/extensions/configure.js +131 -0
- package/dist/src/commands/extensions/configure.js.map +1 -0
- package/dist/src/commands/extensions/configure.test.d.ts +1 -0
- package/dist/src/commands/extensions/configure.test.js +197 -0
- package/dist/src/commands/extensions/configure.test.js.map +1 -0
- package/dist/src/commands/extensions/disable.js.map +1 -1
- package/dist/src/commands/extensions/disable.test.js.map +1 -1
- package/dist/src/commands/extensions/enable.js.map +1 -1
- package/dist/src/commands/extensions/enable.test.js.map +1 -1
- package/dist/src/commands/extensions/examples/mcp-server/example.test.js +1 -1
- package/dist/src/commands/extensions/examples/mcp-server/example.test.js.map +1 -1
- package/dist/src/commands/extensions/examples/mcp-server/example.test.ts +4 -12
- package/dist/src/commands/extensions/install.js +7 -31
- package/dist/src/commands/extensions/install.js.map +1 -1
- package/dist/src/commands/extensions/install.test.js +21 -3
- package/dist/src/commands/extensions/install.test.js.map +1 -1
- package/dist/src/commands/extensions/link.test.js.map +1 -1
- package/dist/src/commands/extensions/list.test.js +0 -1
- package/dist/src/commands/extensions/list.test.js.map +1 -1
- package/dist/src/commands/extensions/uninstall.js.map +1 -1
- package/dist/src/commands/extensions/uninstall.test.js.map +1 -1
- package/dist/src/commands/extensions/update.test.js.map +1 -1
- package/dist/src/commands/extensions/utils.d.ts +14 -0
- package/dist/src/commands/extensions/utils.js +33 -0
- package/dist/src/commands/extensions/utils.js.map +1 -0
- package/dist/src/commands/extensions/validate.js +1 -1
- package/dist/src/commands/extensions/validate.js.map +1 -1
- package/dist/src/commands/extensions/validate.test.js +1 -1
- package/dist/src/commands/extensions/validate.test.js.map +1 -1
- package/dist/src/commands/extensions.js +2 -0
- package/dist/src/commands/extensions.js.map +1 -1
- package/dist/src/commands/hooks/migrate.d.ts +11 -0
- package/dist/src/commands/hooks/migrate.js +206 -0
- package/dist/src/commands/hooks/migrate.js.map +1 -0
- package/dist/src/commands/hooks/migrate.test.js +389 -0
- package/dist/src/commands/hooks/migrate.test.js.map +1 -0
- package/dist/src/commands/hooks.d.ts +7 -0
- package/dist/src/commands/hooks.js +22 -0
- package/dist/src/commands/hooks.js.map +1 -0
- package/dist/src/commands/mcp/add.js +4 -2
- package/dist/src/commands/mcp/add.js.map +1 -1
- package/dist/src/commands/mcp/add.test.js +24 -2
- package/dist/src/commands/mcp/add.test.js.map +1 -1
- package/dist/src/commands/mcp/list.js +7 -1
- package/dist/src/commands/mcp/list.js.map +1 -1
- package/dist/src/commands/skills/disable.d.ts +14 -0
- package/dist/src/commands/skills/disable.js +45 -0
- package/dist/src/commands/skills/disable.js.map +1 -0
- package/dist/src/commands/skills/disable.test.d.ts +6 -0
- package/dist/src/commands/skills/disable.test.js +80 -0
- package/dist/src/commands/skills/disable.test.js.map +1 -0
- package/dist/src/commands/skills/enable.d.ts +12 -0
- package/dist/src/commands/skills/enable.js +35 -0
- package/dist/src/commands/skills/enable.js.map +1 -0
- package/dist/src/commands/skills/enable.test.d.ts +6 -0
- package/dist/src/commands/skills/enable.test.js +107 -0
- package/dist/src/commands/skills/enable.test.js.map +1 -0
- package/dist/src/commands/skills/install.d.ts +14 -0
- package/dist/src/commands/skills/install.js +61 -0
- package/dist/src/commands/skills/install.js.map +1 -0
- package/dist/src/commands/skills/install.test.d.ts +6 -0
- package/dist/src/commands/skills/install.test.js +57 -0
- package/dist/src/commands/skills/install.test.js.map +1 -0
- package/dist/src/commands/skills/list.d.ts +10 -0
- package/dist/src/commands/skills/list.js +60 -0
- package/dist/src/commands/skills/list.js.map +1 -0
- package/dist/src/commands/skills/list.test.d.ts +6 -0
- package/dist/src/commands/skills/list.test.js +136 -0
- package/dist/src/commands/skills/list.test.js.map +1 -0
- package/dist/src/commands/skills/uninstall.d.ts +13 -0
- package/dist/src/commands/skills/uninstall.js +56 -0
- package/dist/src/commands/skills/uninstall.js.map +1 -0
- package/dist/src/commands/skills/uninstall.test.d.ts +6 -0
- package/dist/src/commands/skills/uninstall.test.js +61 -0
- package/dist/src/commands/skills/uninstall.test.js.map +1 -0
- package/dist/src/commands/skills.d.ts +7 -0
- package/dist/src/commands/skills.js +30 -0
- package/dist/src/commands/skills.js.map +1 -0
- package/dist/src/commands/skills.test.d.ts +6 -0
- package/dist/src/commands/skills.test.js +49 -0
- package/dist/src/commands/skills.test.js.map +1 -0
- package/dist/src/config/config.d.ts +10 -3
- package/dist/src/config/config.js +101 -34
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +225 -16
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extension-manager-agents.test.d.ts +6 -0
- package/dist/src/config/extension-manager-agents.test.js +115 -0
- package/dist/src/config/extension-manager-agents.test.js.map +1 -0
- package/dist/src/config/extension-manager-scope.test.js +164 -0
- package/dist/src/config/extension-manager-scope.test.js.map +1 -0
- package/dist/src/config/extension-manager-skills.test.js +150 -0
- package/dist/src/config/extension-manager-skills.test.js.map +1 -0
- package/dist/src/config/extension-manager.d.ts +7 -1
- package/dist/src/config/extension-manager.js +202 -37
- package/dist/src/config/extension-manager.js.map +1 -1
- package/dist/src/config/extension.test.js +178 -13
- package/dist/src/config/extension.test.js.map +1 -1
- package/dist/src/config/extensions/consent.d.ts +5 -3
- package/dist/src/config/extensions/consent.js +33 -7
- package/dist/src/config/extensions/consent.js.map +1 -1
- package/dist/src/config/extensions/consent.test.js +114 -10
- package/dist/src/config/extensions/consent.test.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.d.ts +9 -1
- package/dist/src/config/extensions/extensionSettings.js +107 -17
- package/dist/src/config/extensions/extensionSettings.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.test.js +189 -54
- package/dist/src/config/extensions/extensionSettings.test.js.map +1 -1
- package/dist/src/config/extensions/extensionUpdates.test.js +231 -0
- package/dist/src/config/extensions/extensionUpdates.test.js.map +1 -0
- package/dist/src/config/extensions/github.d.ts +4 -1
- package/dist/src/config/extensions/github.js +33 -7
- package/dist/src/config/extensions/github.js.map +1 -1
- package/dist/src/config/extensions/github.test.js +190 -2
- package/dist/src/config/extensions/github.test.js.map +1 -1
- package/dist/src/config/extensions/github_fetch.js.map +1 -1
- package/dist/src/config/extensions/storage.js +2 -2
- package/dist/src/config/extensions/storage.js.map +1 -1
- package/dist/src/config/extensions/update.js +1 -1
- package/dist/src/config/extensions/update.js.map +1 -1
- package/dist/src/config/extensions/update.test.js +8 -8
- package/dist/src/config/extensions/update.test.js.map +1 -1
- package/dist/src/config/keyBindings.d.ts +14 -2
- package/dist/src/config/keyBindings.js +89 -11
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/policy-engine.integration.test.js +13 -1
- package/dist/src/config/policy-engine.integration.test.js.map +1 -1
- package/dist/src/config/settings-validation.d.ts +23 -0
- package/dist/src/config/settings-validation.js +249 -0
- package/dist/src/config/settings-validation.js.map +1 -0
- package/dist/src/config/settings-validation.test.d.ts +6 -0
- package/dist/src/config/settings-validation.test.js +370 -0
- package/dist/src/config/settings-validation.test.js.map +1 -0
- package/dist/src/config/settings.d.ts +9 -7
- package/dist/src/config/settings.js +138 -233
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settings.test.js +245 -571
- package/dist/src/config/settings.test.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +459 -35
- package/dist/src/config/settingsSchema.js +541 -32
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +22 -4
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/config/settings_repro.test.d.ts +6 -0
- package/dist/src/config/settings_repro.test.js +162 -0
- package/dist/src/config/settings_repro.test.js.map +1 -0
- package/dist/src/config/settings_validation_warning.test.d.ts +6 -0
- package/dist/src/config/settings_validation_warning.test.js +123 -0
- package/dist/src/config/settings_validation_warning.test.js.map +1 -0
- package/dist/src/config/trustedFolders.d.ts +1 -0
- package/dist/src/config/trustedFolders.js +18 -4
- package/dist/src/config/trustedFolders.js.map +1 -1
- package/dist/src/config/trustedFolders.test.js +45 -0
- package/dist/src/config/trustedFolders.test.js.map +1 -1
- package/dist/src/gemini.js +135 -69
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +85 -99
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/gemini_cleanup.test.js +7 -0
- package/dist/src/gemini_cleanup.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +3 -3
- package/dist/src/generated/git-commit.js +3 -3
- package/dist/src/nonInteractiveCli.js +59 -9
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.test.js +114 -21
- package/dist/src/nonInteractiveCli.test.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.d.ts +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +66 -8
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.test.js +70 -12
- package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
- package/dist/src/services/FeedbackService.js.map +1 -1
- package/dist/src/services/FileCommandLoader.js +6 -6
- package/dist/src/services/FileCommandLoader.js.map +1 -1
- package/dist/src/services/FileCommandLoader.test.js.map +1 -1
- package/dist/src/services/McpPromptLoader.js +1 -0
- package/dist/src/services/McpPromptLoader.js.map +1 -1
- package/dist/src/services/McpPromptLoader.test.js +40 -0
- package/dist/src/services/McpPromptLoader.test.js.map +1 -1
- package/dist/src/services/prompt-processors/shellProcessor.js +13 -11
- package/dist/src/services/prompt-processors/shellProcessor.js.map +1 -1
- package/dist/src/services/prompt-processors/shellProcessor.test.js +93 -61
- package/dist/src/services/prompt-processors/shellProcessor.test.js.map +1 -1
- package/dist/src/test-utils/render.js +5 -2
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/ui/App.test.js +2 -2
- package/dist/src/ui/App.test.js.map +1 -1
- package/dist/src/ui/AppContainer.js +200 -94
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +405 -69
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/IdeIntegrationNudge.test.js +18 -7
- package/dist/src/ui/IdeIntegrationNudge.test.js.map +1 -1
- package/dist/src/ui/auth/ApiAuthDialog.js +36 -3
- package/dist/src/ui/auth/ApiAuthDialog.js.map +1 -1
- package/dist/src/ui/auth/ApiAuthDialog.test.js +26 -2
- package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.d.ts +4 -1
- package/dist/src/ui/auth/AuthDialog.js +11 -4
- package/dist/src/ui/auth/AuthDialog.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.test.js +19 -2
- package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
- package/dist/src/ui/auth/AuthInProgress.test.js +16 -6
- package/dist/src/ui/auth/AuthInProgress.test.js.map +1 -1
- package/dist/src/ui/auth/LoginWithGoogleRestartDialog.d.ts +10 -0
- package/dist/src/ui/auth/LoginWithGoogleRestartDialog.js +27 -0
- package/dist/src/ui/auth/LoginWithGoogleRestartDialog.js.map +1 -0
- package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.d.ts +6 -0
- package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js +68 -0
- package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js.map +1 -0
- package/dist/src/ui/auth/useAuth.js +9 -4
- package/dist/src/ui/auth/useAuth.js.map +1 -1
- package/dist/src/ui/auth/useAuth.test.js +2 -2
- package/dist/src/ui/auth/useAuth.test.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +3 -4
- package/dist/src/ui/commands/aboutCommand.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.test.js +7 -10
- package/dist/src/ui/commands/aboutCommand.test.js.map +1 -1
- package/dist/src/ui/commands/agentsCommand.d.ts +7 -0
- package/dist/src/ui/commands/agentsCommand.js +79 -0
- package/dist/src/ui/commands/agentsCommand.js.map +1 -0
- package/dist/src/ui/commands/agentsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/agentsCommand.test.js +91 -0
- package/dist/src/ui/commands/agentsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/authCommand.js +30 -3
- package/dist/src/ui/commands/authCommand.js.map +1 -1
- package/dist/src/ui/commands/authCommand.test.js +72 -4
- package/dist/src/ui/commands/authCommand.test.js.map +1 -1
- package/dist/src/ui/commands/bugCommand.js +37 -6
- package/dist/src/ui/commands/bugCommand.js.map +1 -1
- package/dist/src/ui/commands/bugCommand.test.js +86 -5
- package/dist/src/ui/commands/bugCommand.test.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.d.ts +1 -2
- package/dist/src/ui/commands/chatCommand.js +52 -52
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.test.js +95 -69
- package/dist/src/ui/commands/chatCommand.test.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.js +22 -1
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.test.js +6 -0
- package/dist/src/ui/commands/clearCommand.test.js.map +1 -1
- package/dist/src/ui/commands/copyCommand.js +1 -1
- package/dist/src/ui/commands/copyCommand.js.map +1 -1
- package/dist/src/ui/commands/directoryCommand.js +27 -10
- package/dist/src/ui/commands/directoryCommand.js.map +1 -1
- package/dist/src/ui/commands/directoryCommand.test.js +49 -11
- package/dist/src/ui/commands/directoryCommand.test.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.js +194 -24
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.test.js +217 -27
- package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
- package/dist/src/ui/commands/helpCommand.js +1 -1
- package/dist/src/ui/commands/helpCommand.js.map +1 -1
- package/dist/src/ui/commands/helpCommand.test.js +1 -1
- package/dist/src/ui/commands/helpCommand.test.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.d.ts +7 -0
- package/dist/src/ui/commands/hooksCommand.js +342 -0
- package/dist/src/ui/commands/hooksCommand.js.map +1 -0
- package/dist/src/ui/commands/hooksCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/hooksCommand.test.js +575 -0
- package/dist/src/ui/commands/hooksCommand.test.js.map +1 -0
- package/dist/src/ui/commands/ideCommand.test.js.map +1 -1
- package/dist/src/ui/commands/initCommand.js +10 -50
- package/dist/src/ui/commands/initCommand.js.map +1 -1
- package/dist/src/ui/commands/initCommand.test.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +34 -16
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.test.js +43 -6
- package/dist/src/ui/commands/mcpCommand.test.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.js +19 -33
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.test.js +112 -16
- package/dist/src/ui/commands/memoryCommand.test.js.map +1 -1
- package/dist/src/ui/commands/modelCommand.js +10 -5
- package/dist/src/ui/commands/modelCommand.js.map +1 -1
- package/dist/src/ui/commands/modelCommand.test.js +12 -1
- package/dist/src/ui/commands/modelCommand.test.js.map +1 -1
- package/dist/src/ui/commands/restoreCommand.d.ts +1 -1
- package/dist/src/ui/commands/restoreCommand.js +38 -33
- package/dist/src/ui/commands/restoreCommand.js.map +1 -1
- package/dist/src/ui/commands/restoreCommand.test.js +6 -6
- package/dist/src/ui/commands/restoreCommand.test.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
- package/dist/src/ui/commands/skillsCommand.d.ts +7 -0
- package/dist/src/ui/commands/skillsCommand.js +235 -0
- package/dist/src/ui/commands/skillsCommand.js.map +1 -0
- package/dist/src/ui/commands/skillsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/skillsCommand.test.js +405 -0
- package/dist/src/ui/commands/skillsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/statsCommand.js +6 -10
- package/dist/src/ui/commands/statsCommand.js.map +1 -1
- package/dist/src/ui/commands/statsCommand.test.js +20 -3
- package/dist/src/ui/commands/statsCommand.test.js.map +1 -1
- package/dist/src/ui/commands/terminalSetupCommand.js +1 -0
- package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -1
- package/dist/src/ui/commands/toolsCommand.js +2 -2
- package/dist/src/ui/commands/toolsCommand.js.map +1 -1
- package/dist/src/ui/commands/toolsCommand.test.js +2 -2
- package/dist/src/ui/commands/toolsCommand.test.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +16 -38
- package/dist/src/ui/commands/types.js +1 -0
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/components/AnsiOutput.js +1 -1
- package/dist/src/ui/components/AnsiOutput.js.map +1 -1
- package/dist/src/ui/components/AppHeader.test.js +8 -0
- package/dist/src/ui/components/AppHeader.test.js.map +1 -1
- package/dist/src/ui/components/AsciiArt.d.ts +6 -6
- package/dist/src/ui/components/AsciiArt.js +6 -6
- package/dist/src/ui/components/Composer.js +7 -7
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +23 -4
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.d.ts +1 -0
- package/dist/src/ui/components/ContextSummaryDisplay.js +12 -5
- package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.test.js +56 -25
- package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.js +3 -3
- package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.test.js +2 -12
- package/dist/src/ui/components/DetailedMessagesDisplay.test.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +3 -3
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.js +2 -1
- package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.test.js +10 -2
- package/dist/src/ui/components/EditorSettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.js +20 -14
- package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js +12 -2
- package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.js +6 -6
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/GeminiRespondingSpinner.test.js +3 -0
- package/dist/src/ui/components/GeminiRespondingSpinner.test.js.map +1 -1
- package/dist/src/ui/components/Header.js +3 -1
- package/dist/src/ui/components/Header.js.map +1 -1
- package/dist/src/ui/components/Header.test.js +3 -1
- package/dist/src/ui/components/Header.test.js.map +1 -1
- package/dist/src/ui/components/Help.js +1 -1
- package/dist/src/ui/components/Help.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js +4 -1
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.test.js +21 -0
- package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
- package/dist/src/ui/components/HookStatusDisplay.d.ts +12 -0
- package/dist/src/ui/components/HookStatusDisplay.js +20 -0
- package/dist/src/ui/components/HookStatusDisplay.js.map +1 -0
- package/dist/src/ui/components/HookStatusDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/HookStatusDisplay.test.js +51 -0
- package/dist/src/ui/components/HookStatusDisplay.test.js.map +1 -0
- package/dist/src/ui/components/IdeTrustChangeDialog.js +3 -1
- package/dist/src/ui/components/IdeTrustChangeDialog.js.map +1 -1
- package/dist/src/ui/components/IdeTrustChangeDialog.test.js +4 -3
- package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +77 -26
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +307 -7
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/LogoutConfirmationDialog.d.ts +15 -0
- package/dist/src/ui/components/LogoutConfirmationDialog.js +37 -0
- package/dist/src/ui/components/LogoutConfirmationDialog.js.map +1 -0
- package/dist/src/ui/components/LogoutConfirmationDialog.test.d.ts +6 -0
- package/dist/src/ui/components/LogoutConfirmationDialog.test.js +59 -0
- package/dist/src/ui/components/LogoutConfirmationDialog.test.js.map +1 -0
- package/dist/src/ui/components/MainContent.js +12 -10
- package/dist/src/ui/components/MainContent.js.map +1 -1
- package/dist/src/ui/components/MainContent.test.js +19 -9
- package/dist/src/ui/components/MainContent.test.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.js +122 -41
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.test.js +171 -148
- package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.js +68 -14
- package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.js +62 -4
- package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/MultiFolderTrustDialog.d.ts +2 -2
- package/dist/src/ui/components/MultiFolderTrustDialog.js +3 -2
- package/dist/src/ui/components/MultiFolderTrustDialog.js.map +1 -1
- package/dist/src/ui/components/MultiFolderTrustDialog.test.js +9 -9
- package/dist/src/ui/components/MultiFolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Notifications.js +5 -4
- package/dist/src/ui/components/Notifications.js.map +1 -1
- package/dist/src/ui/components/Notifications.test.js +1 -0
- package/dist/src/ui/components/Notifications.test.js.map +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.js +1 -0
- package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -1
- package/dist/src/ui/components/ProQuotaDialog.d.ts +1 -3
- package/dist/src/ui/components/ProQuotaDialog.js +16 -32
- package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
- package/dist/src/ui/components/ProQuotaDialog.test.js +43 -29
- package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
- package/dist/src/ui/components/QuittingDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SessionBrowser.js +2 -0
- package/dist/src/ui/components/SessionBrowser.js.map +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.test.js +1 -0
- package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +166 -77
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +118 -13
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js +4 -4
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.test.js +4 -4
- package/dist/src/ui/components/ShellConfirmationDialog.test.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.d.ts +1 -1
- package/dist/src/ui/components/StatsDisplay.js +66 -21
- package/dist/src/ui/components/StatsDisplay.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.test.js +44 -7
- package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/StatusDisplay.d.ts +11 -0
- package/dist/src/ui/components/StatusDisplay.js +40 -0
- package/dist/src/ui/components/StatusDisplay.js.map +1 -0
- package/dist/src/ui/components/StatusDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/StatusDisplay.test.js +144 -0
- package/dist/src/ui/components/StatusDisplay.test.js.map +1 -0
- package/dist/src/ui/components/StickyHeader.d.ts +2 -0
- package/dist/src/ui/components/StickyHeader.js +1 -1
- package/dist/src/ui/components/StickyHeader.js.map +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.js +7 -2
- package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
- package/dist/src/ui/components/Table.d.ts +21 -0
- package/dist/src/ui/components/Table.js +7 -0
- package/dist/src/ui/components/Table.js.map +1 -0
- package/dist/src/ui/components/Table.test.d.ts +6 -0
- package/dist/src/ui/components/Table.test.js +53 -0
- package/dist/src/ui/components/Table.test.js.map +1 -0
- package/dist/src/ui/components/ThemeDialog.js +63 -17
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.test.js +66 -1
- package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.js.map +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.js +5 -13
- package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.test.js +26 -17
- package/dist/src/ui/components/messages/DiffRenderer.test.js.map +1 -1
- package/dist/src/ui/components/messages/ShellToolMessage.js +8 -5
- package/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -1
- package/dist/src/ui/components/messages/Todo.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +55 -24
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +40 -4
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js +45 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.js +6 -2
- package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.test.js +1 -0
- package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolResultDisplay.js +22 -16
- package/dist/src/ui/components/messages/ToolResultDisplay.js.map +1 -1
- package/dist/src/ui/components/messages/ToolResultDisplay.test.js +36 -18
- package/dist/src/ui/components/messages/ToolResultDisplay.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.d.ts +6 -0
- package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.js +134 -0
- package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.js.map +1 -0
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.d.ts +1 -1
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js +1 -1
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.js.map +1 -1
- package/dist/src/ui/components/shared/MaxSizedBox.d.ts +2 -38
- package/dist/src/ui/components/shared/MaxSizedBox.js +34 -418
- package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
- package/dist/src/ui/components/shared/MaxSizedBox.test.js +48 -133
- package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +1 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +4 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.js +11 -10
- package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
- package/dist/src/ui/components/shared/VirtualizedList.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.d.ts +40 -4
- package/dist/src/ui/components/shared/text-buffer.js +279 -102
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.test.js +247 -1
- package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
- package/dist/src/ui/components/shared/vim-buffer-actions.test.js +3 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.test.js.map +1 -1
- package/dist/src/ui/components/views/AgentsStatus.d.ts +13 -0
- package/dist/src/ui/components/views/AgentsStatus.js +23 -0
- package/dist/src/ui/components/views/AgentsStatus.js.map +1 -0
- package/dist/src/ui/components/views/ExtensionsList.js +3 -2
- package/dist/src/ui/components/views/ExtensionsList.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionsList.test.js +37 -0
- package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
- package/dist/src/ui/components/views/HooksList.d.ts +24 -0
- package/dist/src/ui/components/views/HooksList.js +28 -0
- package/dist/src/ui/components/views/HooksList.js.map +1 -0
- package/dist/src/ui/components/views/McpStatus.d.ts +2 -1
- package/dist/src/ui/components/views/McpStatus.js +18 -3
- package/dist/src/ui/components/views/McpStatus.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.test.js +23 -0
- package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
- package/dist/src/ui/components/views/SkillsList.d.ts +13 -0
- package/dist/src/ui/components/views/SkillsList.js +17 -0
- package/dist/src/ui/components/views/SkillsList.js.map +1 -0
- package/dist/src/ui/components/views/SkillsList.test.d.ts +6 -0
- package/dist/src/ui/components/views/SkillsList.test.js +97 -0
- package/dist/src/ui/components/views/SkillsList.test.js.map +1 -0
- package/dist/src/ui/constants/tips.js +1 -5
- package/dist/src/ui/constants/tips.js.map +1 -1
- package/dist/src/ui/constants.d.ts +4 -3
- package/dist/src/ui/constants.js +5 -6
- package/dist/src/ui/constants.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.d.ts +1 -0
- package/dist/src/ui/contexts/KeypressContext.js +84 -6
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +136 -9
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/SessionContext.d.ts +1 -0
- package/dist/src/ui/contexts/SessionContext.js +2 -1
- package/dist/src/ui/contexts/SessionContext.js.map +1 -1
- package/dist/src/ui/contexts/SessionContext.test.js +3 -0
- package/dist/src/ui/contexts/SessionContext.test.js.map +1 -1
- package/dist/src/ui/contexts/UIActionsContext.d.ts +3 -0
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +5 -1
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/contexts/VimModeContext.js +1 -1
- package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.d.ts +7 -6
- package/dist/src/ui/hooks/atCommandProcessor.js +156 -29
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +133 -35
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor_agents.test.d.ts +6 -0
- package/dist/src/ui/hooks/atCommandProcessor_agents.test.js +183 -0
- package/dist/src/ui/hooks/atCommandProcessor_agents.test.js.map +1 -0
- package/dist/src/ui/hooks/shellCommandProcessor.js +2 -0
- package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +21 -7
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +2 -3
- package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.js +83 -2
- package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.test.js +21 -0
- package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion_agents.test.d.ts +6 -0
- package/dist/src/ui/hooks/useAtCompletion_agents.test.js +85 -0
- package/dist/src/ui/hooks/useAtCompletion_agents.test.js.map +1 -0
- package/dist/src/ui/hooks/useAutoAcceptIndicator.d.ts +2 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.js +5 -4
- package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +1 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.d.ts +3 -0
- package/dist/src/ui/hooks/useCommandCompletion.js +13 -8
- package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.test.js +88 -2
- package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.js +7 -7
- package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.test.js +20 -4
- package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.js +14 -19
- package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.test.js +31 -23
- package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.d.ts +2 -1
- package/dist/src/ui/hooks/useGeminiStream.js +102 -71
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +294 -10
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.js +3 -0
- package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
- package/dist/src/ui/hooks/useHistoryManager.d.ts +1 -1
- package/dist/src/ui/hooks/useHistoryManager.js +1 -1
- package/dist/src/ui/hooks/useHistoryManager.js.map +1 -1
- package/dist/src/ui/hooks/useHistoryManager.test.js +16 -0
- package/dist/src/ui/hooks/useHistoryManager.test.js.map +1 -1
- package/dist/src/ui/hooks/useHookDisplayState.d.ts +7 -0
- package/dist/src/ui/hooks/useHookDisplayState.js +83 -0
- package/dist/src/ui/hooks/useHookDisplayState.js.map +1 -0
- package/dist/src/ui/hooks/useHookDisplayState.test.d.ts +6 -0
- package/dist/src/ui/hooks/useHookDisplayState.test.js +180 -0
- package/dist/src/ui/hooks/useHookDisplayState.test.js.map +1 -0
- package/dist/src/ui/hooks/useIdeTrustListener.js +2 -0
- package/dist/src/ui/hooks/useIdeTrustListener.js.map +1 -1
- package/dist/src/ui/hooks/useIncludeDirsTrust.js +6 -4
- package/dist/src/ui/hooks/useIncludeDirsTrust.js.map +1 -1
- package/dist/src/ui/hooks/useIncludeDirsTrust.test.js +2 -2
- package/dist/src/ui/hooks/useIncludeDirsTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/useKittyKeyboardProtocol.js +2 -2
- package/dist/src/ui/hooks/useKittyKeyboardProtocol.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.d.ts +2 -1
- package/dist/src/ui/hooks/useLoadingIndicator.js +7 -3
- package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.test.js +15 -4
- package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +10 -3
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.d.ts +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.js +2 -2
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/usePrivacySettings.js +5 -16
- package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -1
- package/dist/src/ui/hooks/usePrivacySettings.test.js +3 -9
- package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
- package/dist/src/ui/hooks/usePromptCompletion.js +1 -2
- package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.js +19 -18
- package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js +29 -23
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.d.ts +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useRewind.d.ts +14 -0
- package/dist/src/ui/hooks/useRewind.js +31 -0
- package/dist/src/ui/hooks/useRewind.js.map +1 -0
- package/dist/src/ui/hooks/useRewind.test.d.ts +6 -0
- package/dist/src/ui/hooks/useRewind.test.js +100 -0
- package/dist/src/ui/hooks/useRewind.test.js.map +1 -0
- package/dist/src/ui/hooks/useSelectionList.js +2 -1
- package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.test.js +2 -0
- package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
- package/dist/src/ui/hooks/useSessionBrowser.js +3 -3
- package/dist/src/ui/hooks/useSessionBrowser.js.map +1 -1
- package/dist/src/ui/hooks/useSessionBrowser.test.js +4 -10
- package/dist/src/ui/hooks/useSessionBrowser.test.js.map +1 -1
- package/dist/src/ui/hooks/useSessionResume.js +1 -0
- package/dist/src/ui/hooks/useSessionResume.js.map +1 -1
- package/dist/src/ui/hooks/useShellHistory.js +5 -3
- package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.d.ts +2 -0
- package/dist/src/ui/hooks/useSlashCompletion.js +29 -11
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.js +115 -5
- package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
- package/dist/src/{utils/version.d.ts → ui/hooks/useSnowfall.d.ts} +1 -1
- package/dist/src/ui/hooks/useSnowfall.js +126 -0
- package/dist/src/ui/hooks/useSnowfall.js.map +1 -0
- package/dist/src/ui/hooks/useSnowfall.test.d.ts +6 -0
- package/dist/src/ui/hooks/useSnowfall.test.js +88 -0
- package/dist/src/ui/hooks/useSnowfall.test.js.map +1 -0
- package/dist/src/ui/hooks/useToolScheduler.test.js +86 -53
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/hooks/vim.test.js +7 -0
- package/dist/src/ui/hooks/vim.test.js.map +1 -1
- package/dist/src/ui/keyMatchers.test.js +79 -53
- package/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/privacy/CloudFreePrivacyNotice.js +1 -0
- package/dist/src/ui/privacy/CloudFreePrivacyNotice.js.map +1 -1
- package/dist/src/ui/themes/ansi-light.js +1 -1
- package/dist/src/ui/themes/ansi-light.js.map +1 -1
- package/dist/src/ui/themes/ansi.js +1 -1
- package/dist/src/ui/themes/ansi.js.map +1 -1
- package/dist/src/ui/themes/color-utils.d.ts +1 -0
- package/dist/src/ui/themes/color-utils.js +13 -0
- package/dist/src/ui/themes/color-utils.js.map +1 -1
- package/dist/src/ui/themes/color-utils.test.js +20 -1
- package/dist/src/ui/themes/color-utils.test.js.map +1 -1
- package/dist/src/ui/themes/shades-of-purple.js +1 -1
- package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.d.ts +5 -0
- package/dist/src/ui/themes/theme-manager.js +9 -3
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.test.js +7 -0
- package/dist/src/ui/themes/theme-manager.test.js.map +1 -1
- package/dist/src/ui/themes/theme.d.ts +12 -0
- package/dist/src/ui/themes/theme.js +34 -4
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/themes/theme.test.js +23 -0
- package/dist/src/ui/themes/theme.test.js.map +1 -1
- package/dist/src/ui/types.d.ts +48 -5
- package/dist/src/ui/types.js +5 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.js +2 -2
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.test.js +1 -1
- package/dist/src/ui/utils/CodeColorizer.test.js.map +1 -1
- package/dist/src/ui/utils/ConsolePatcher.js +1 -0
- package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
- package/dist/src/ui/utils/InlineMarkdownRenderer.js +2 -1
- package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.test.js +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.d.ts +27 -2
- package/dist/src/ui/utils/clipboardUtils.js +148 -16
- package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.test.js +135 -13
- package/dist/src/ui/utils/clipboardUtils.test.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.windows.test.d.ts +6 -0
- package/dist/src/ui/utils/clipboardUtils.windows.test.js +52 -0
- package/dist/src/ui/utils/clipboardUtils.windows.test.js.map +1 -0
- package/dist/src/ui/utils/commandUtils.d.ts +1 -1
- package/dist/src/ui/utils/commandUtils.js +111 -1
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +200 -6
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/ui/utils/computeStats.js +2 -0
- package/dist/src/ui/utils/computeStats.js.map +1 -1
- package/dist/src/ui/utils/computeStats.test.js +9 -0
- package/dist/src/ui/utils/computeStats.test.js.map +1 -1
- package/dist/src/ui/utils/directoryUtils.d.ts +8 -0
- package/dist/src/ui/utils/directoryUtils.js +95 -3
- package/dist/src/ui/utils/directoryUtils.js.map +1 -1
- package/dist/src/ui/utils/directoryUtils.test.js +193 -3
- package/dist/src/ui/utils/directoryUtils.test.js.map +1 -1
- package/dist/src/ui/utils/highlight.d.ts +3 -2
- package/dist/src/ui/utils/highlight.js +51 -37
- package/dist/src/ui/utils/highlight.js.map +1 -1
- package/dist/src/ui/utils/highlight.test.js +75 -0
- package/dist/src/ui/utils/highlight.test.js.map +1 -1
- package/dist/src/ui/utils/historyExportUtils.d.ts +21 -0
- package/dist/src/ui/utils/historyExportUtils.js +59 -0
- package/dist/src/ui/utils/historyExportUtils.js.map +1 -0
- package/dist/src/ui/utils/rewindFileOps.d.ts +47 -0
- package/dist/src/ui/utils/rewindFileOps.js +190 -0
- package/dist/src/ui/utils/rewindFileOps.js.map +1 -0
- package/dist/src/ui/utils/rewindFileOps.test.d.ts +6 -0
- package/dist/src/ui/utils/rewindFileOps.test.js +375 -0
- package/dist/src/ui/utils/rewindFileOps.test.js.map +1 -0
- package/dist/src/ui/utils/terminalCapabilityManager.d.ts +41 -0
- package/dist/src/ui/utils/terminalCapabilityManager.js +209 -0
- package/dist/src/ui/utils/terminalCapabilityManager.js.map +1 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.d.ts +6 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.js +221 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +1 -0
- package/dist/src/ui/utils/terminalSetup.d.ts +1 -1
- package/dist/src/ui/utils/terminalSetup.js +21 -6
- package/dist/src/ui/utils/terminalSetup.js.map +1 -1
- package/dist/src/ui/utils/terminalSetup.test.js +16 -2
- package/dist/src/ui/utils/terminalSetup.test.js.map +1 -1
- package/dist/src/ui/utils/textUtils.js +9 -1
- package/dist/src/ui/utils/textUtils.js.map +1 -1
- package/dist/src/ui/utils/textUtils.test.js +12 -1
- package/dist/src/ui/utils/textUtils.test.js.map +1 -1
- package/dist/src/ui/utils/ui-sizing.js +1 -1
- package/dist/src/ui/utils/ui-sizing.js.map +1 -1
- package/dist/src/ui/utils/ui-sizing.test.js +2 -2
- package/dist/src/ui/utils/ui-sizing.test.js.map +1 -1
- package/dist/src/utils/activityLogger.d.ts +47 -0
- package/dist/src/utils/activityLogger.js +297 -0
- package/dist/src/utils/activityLogger.js.map +1 -0
- package/dist/src/utils/cleanup.d.ts +11 -0
- package/dist/src/utils/cleanup.js +36 -1
- package/dist/src/utils/cleanup.js.map +1 -1
- package/dist/src/utils/cleanup.test.js +21 -31
- package/dist/src/utils/cleanup.test.js.map +1 -1
- package/dist/src/utils/deepMerge.js +7 -2
- package/dist/src/utils/deepMerge.js.map +1 -1
- package/dist/src/utils/deepMerge.test.js +58 -0
- package/dist/src/utils/deepMerge.test.js.map +1 -1
- package/dist/src/utils/envVarResolver.js.map +1 -1
- package/dist/src/utils/envVarResolver.test.js.map +1 -1
- package/dist/src/utils/errors.js +13 -14
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/errors.test.js +115 -39
- package/dist/src/utils/errors.test.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.d.ts +1 -1
- package/dist/src/utils/handleAutoUpdate.js +7 -10
- package/dist/src/utils/handleAutoUpdate.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.test.js +12 -10
- package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
- package/dist/src/utils/installationInfo.js +1 -1
- package/dist/src/utils/installationInfo.js.map +1 -1
- package/dist/src/utils/installationInfo.test.js +1 -1
- package/dist/src/utils/installationInfo.test.js.map +1 -1
- package/dist/src/utils/processUtils.d.ts +1 -1
- package/dist/src/utils/processUtils.js +1 -1
- package/dist/src/utils/processUtils.js.map +1 -1
- package/dist/src/utils/readStdin.js +7 -0
- package/dist/src/utils/readStdin.js.map +1 -1
- package/dist/src/utils/readStdin.test.js +4 -0
- package/dist/src/utils/readStdin.test.js.map +1 -1
- package/dist/src/utils/readStdin_safety.test.d.ts +6 -0
- package/dist/src/utils/readStdin_safety.test.js +68 -0
- package/dist/src/utils/readStdin_safety.test.js.map +1 -0
- package/dist/src/utils/relaunch.js +3 -1
- package/dist/src/utils/relaunch.js.map +1 -1
- package/dist/src/utils/relaunch.test.js +13 -7
- package/dist/src/utils/relaunch.test.js.map +1 -1
- package/dist/src/utils/resolvePath.js +3 -3
- package/dist/src/utils/resolvePath.js.map +1 -1
- package/dist/src/utils/resolvePath.test.js +3 -0
- package/dist/src/utils/resolvePath.test.js.map +1 -1
- package/dist/src/utils/sandbox.js +27 -17
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/utils/sandbox.test.js +17 -5
- package/dist/src/utils/sandbox.test.js.map +1 -1
- package/dist/src/utils/sandboxUtils.js +3 -2
- package/dist/src/utils/sandboxUtils.js.map +1 -1
- package/dist/src/utils/sandboxUtils.test.js +3 -0
- package/dist/src/utils/sandboxUtils.test.js.map +1 -1
- package/dist/src/utils/sessionCleanup.integration.test.js +2 -2
- package/dist/src/utils/sessionCleanup.integration.test.js.map +1 -1
- package/dist/src/utils/sessionCleanup.js +16 -4
- package/dist/src/utils/sessionCleanup.js.map +1 -1
- package/dist/src/utils/sessionCleanup.test.js +18 -68
- package/dist/src/utils/sessionCleanup.test.js.map +1 -1
- package/dist/src/utils/sessionUtils.d.ts +22 -0
- package/dist/src/utils/sessionUtils.js +37 -5
- package/dist/src/utils/sessionUtils.js.map +1 -1
- package/dist/src/utils/sessionUtils.test.js +3 -3
- package/dist/src/utils/sessionUtils.test.js.map +1 -1
- package/dist/src/utils/sessions.js +14 -12
- package/dist/src/utils/sessions.js.map +1 -1
- package/dist/src/utils/sessions.test.js +62 -39
- package/dist/src/utils/sessions.test.js.map +1 -1
- package/dist/src/utils/settingsUtils.js +0 -5
- package/dist/src/utils/settingsUtils.js.map +1 -1
- package/dist/src/utils/skillSettings.d.ts +33 -0
- package/dist/src/utils/skillSettings.js +101 -0
- package/dist/src/utils/skillSettings.js.map +1 -0
- package/dist/src/utils/skillUtils.d.ts +29 -0
- package/dist/src/utils/skillUtils.js +144 -0
- package/dist/src/utils/skillUtils.js.map +1 -0
- package/dist/src/utils/skillUtils.test.d.ts +6 -0
- package/dist/src/utils/skillUtils.test.js +57 -0
- package/dist/src/utils/skillUtils.test.js.map +1 -0
- package/dist/src/utils/terminalTheme.d.ts +15 -0
- package/dist/src/utils/terminalTheme.js +50 -0
- package/dist/src/utils/terminalTheme.js.map +1 -0
- package/dist/src/utils/userStartupWarnings.d.ts +2 -1
- package/dist/src/utils/userStartupWarnings.js +17 -7
- package/dist/src/utils/userStartupWarnings.js.map +1 -1
- package/dist/src/utils/userStartupWarnings.test.js +37 -6
- package/dist/src/utils/userStartupWarnings.test.js.map +1 -1
- package/dist/src/utils/windowTitle.d.ts +13 -4
- package/dist/src/utils/windowTitle.js +65 -7
- package/dist/src/utils/windowTitle.js.map +1 -1
- package/dist/src/utils/windowTitle.test.js +183 -40
- package/dist/src/utils/windowTitle.test.js.map +1 -1
- package/dist/src/validateNonInterActiveAuth.d.ts +1 -1
- package/dist/src/validateNonInterActiveAuth.js +1 -2
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/src/zed-integration/fileSystemService.d.ts +3 -4
- package/dist/src/zed-integration/fileSystemService.js +5 -10
- package/dist/src/zed-integration/fileSystemService.js.map +1 -1
- package/dist/src/zed-integration/fileSystemService.test.js +11 -21
- package/dist/src/zed-integration/fileSystemService.test.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.d.ts +5 -5
- package/dist/src/zed-integration/zedIntegration.js +54 -24
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.test.js +29 -18
- package/dist/src/zed-integration/zedIntegration.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -4
- package/dist/src/ui/hooks/useBracketedPaste.d.ts +0 -12
- package/dist/src/ui/hooks/useBracketedPaste.js +0 -31
- package/dist/src/ui/hooks/useBracketedPaste.js.map +0 -1
- package/dist/src/ui/utils/bracketedPaste.d.ts +0 -7
- package/dist/src/ui/utils/bracketedPaste.js +0 -15
- package/dist/src/ui/utils/bracketedPaste.js.map +0 -1
- package/dist/src/ui/utils/kittyProtocolDetector.d.ts +0 -17
- package/dist/src/ui/utils/kittyProtocolDetector.js +0 -111
- package/dist/src/ui/utils/kittyProtocolDetector.js.map +0 -1
- package/dist/src/ui/utils/kittyProtocolDetector.test.js +0 -113
- package/dist/src/ui/utils/kittyProtocolDetector.test.js.map +0 -1
- package/dist/src/utils/version.js +0 -15
- package/dist/src/utils/version.js.map +0 -1
- package/dist/src/utils/version.test.js +0 -39
- package/dist/src/utils/version.test.js.map +0 -1
- package/dist/src/zed-integration/acp.d.ts +0 -41
- package/dist/src/zed-integration/acp.js +0 -72
- package/dist/src/zed-integration/acp.js.map +0 -1
- package/dist/src/zed-integration/acp.test.js +0 -222
- package/dist/src/zed-integration/acp.test.js.map +0 -1
- package/dist/src/zed-integration/connection.d.ts +0 -28
- package/dist/src/zed-integration/connection.js +0 -163
- package/dist/src/zed-integration/connection.js.map +0 -1
- package/dist/src/zed-integration/connection.test.js +0 -175
- package/dist/src/zed-integration/connection.test.js.map +0 -1
- package/dist/src/zed-integration/schema.d.ts +0 -11792
- package/dist/src/zed-integration/schema.js +0 -311
- package/dist/src/zed-integration/schema.js.map +0 -1
- /package/dist/src/{ui/utils/kittyProtocolDetector.test.d.ts → commands/hooks/migrate.test.d.ts} +0 -0
- /package/dist/src/{utils/version.test.d.ts → config/extension-manager-scope.test.d.ts} +0 -0
- /package/dist/src/{zed-integration/acp.test.d.ts → config/extension-manager-skills.test.d.ts} +0 -0
- /package/dist/src/{zed-integration/connection.test.d.ts → config/extensions/extensionUpdates.test.d.ts} +0 -0
|
@@ -13,7 +13,7 @@ import { UIActionsContext, } from './contexts/UIActionsContext.js';
|
|
|
13
13
|
import { ConfigContext } from './contexts/ConfigContext.js';
|
|
14
14
|
import { ToolCallStatus, AuthState, } from './types.js';
|
|
15
15
|
import { MessageType, StreamingState } from './types.js';
|
|
16
|
-
import {
|
|
16
|
+
import { IdeClient, ideContextStore, getErrorMessage, getAllGeminiMdFilenames, AuthType, clearCachedCredentialFile, recordExitFail, ShellExecutionService, saveApiKey, debugLogger, coreEvents, CoreEvent, refreshServerHierarchicalMemory, writeToStdout, disableMouseEvents, enterAlternateScreen, enableMouseEvents, disableLineWrapping, shouldEnterAlternateScreen, startupProfiler, SessionStartSource, SessionEndReason, generateSummary, } from '@google/gemini-cli-core';
|
|
17
17
|
import { validateAuthMethod } from '../config/auth.js';
|
|
18
18
|
import process from 'node:process';
|
|
19
19
|
import { useHistory } from './hooks/useHistoryManager.js';
|
|
@@ -34,7 +34,7 @@ import { calculateMainAreaWidth } from './utils/ui-sizing.js';
|
|
|
34
34
|
import ansiEscapes from 'ansi-escapes';
|
|
35
35
|
import * as fs from 'node:fs';
|
|
36
36
|
import { basename } from 'node:path';
|
|
37
|
-
import {
|
|
37
|
+
import { computeTerminalTitle } from '../utils/windowTitle.js';
|
|
38
38
|
import { useTextBuffer } from './components/shared/text-buffer.js';
|
|
39
39
|
import { useLogger } from './hooks/useLogger.js';
|
|
40
40
|
import { useGeminiStream } from './hooks/useGeminiStream.js';
|
|
@@ -42,7 +42,6 @@ import { useVim } from './hooks/vim.js';
|
|
|
42
42
|
import { SettingScope } from '../config/settings.js';
|
|
43
43
|
import {} from '../core/initializer.js';
|
|
44
44
|
import { useFocus } from './hooks/useFocus.js';
|
|
45
|
-
import { useBracketedPaste } from './hooks/useBracketedPaste.js';
|
|
46
45
|
import { useKeypress } from './hooks/useKeypress.js';
|
|
47
46
|
import { keyMatchers, Command } from './keyMatchers.js';
|
|
48
47
|
import { useLoadingIndicator } from './hooks/useLoadingIndicator.js';
|
|
@@ -69,11 +68,13 @@ import { useIncludeDirsTrust } from './hooks/useIncludeDirsTrust.js';
|
|
|
69
68
|
import { isWorkspaceTrusted } from '../config/trustedFolders.js';
|
|
70
69
|
import { useAlternateBuffer } from './hooks/useAlternateBuffer.js';
|
|
71
70
|
import { useSettings } from './contexts/SettingsContext.js';
|
|
72
|
-
import {
|
|
71
|
+
import { terminalCapabilityManager } from './utils/terminalCapabilityManager.js';
|
|
73
72
|
import { useInputHistoryStore } from './hooks/useInputHistoryStore.js';
|
|
74
|
-
import {
|
|
75
|
-
|
|
76
|
-
|
|
73
|
+
import { useBanner } from './hooks/useBanner.js';
|
|
74
|
+
import { useHookDisplayState } from './hooks/useHookDisplayState.js';
|
|
75
|
+
import { WARNING_PROMPT_DURATION_MS, QUEUE_ERROR_DISPLAY_DURATION_MS, SHELL_ACTION_REQUIRED_TITLE_DELAY_MS, } from './constants.js';
|
|
76
|
+
import { LoginWithGoogleRestartDialog } from './auth/LoginWithGoogleRestartDialog.js';
|
|
77
|
+
import { useInactivityTimer } from './hooks/useInactivityTimer.js';
|
|
77
78
|
function isToolExecuting(pendingHistoryItems) {
|
|
78
79
|
return pendingHistoryItems.some((item) => {
|
|
79
80
|
if (item && item.type === 'tool_group') {
|
|
@@ -115,12 +116,19 @@ export const AppContainer = (props) => {
|
|
|
115
116
|
const [shellModeActive, setShellModeActive] = useState(false);
|
|
116
117
|
const [modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError] = useState(false);
|
|
117
118
|
const [historyRemountKey, setHistoryRemountKey] = useState(0);
|
|
119
|
+
const [settingsNonce, setSettingsNonce] = useState(0);
|
|
120
|
+
const activeHooks = useHookDisplayState();
|
|
118
121
|
const [updateInfo, setUpdateInfo] = useState(null);
|
|
119
122
|
const [isTrustedFolder, setIsTrustedFolder] = useState(isWorkspaceTrusted(settings.merged).isTrusted);
|
|
120
123
|
const [queueErrorMessage, setQueueErrorMessage] = useState(null);
|
|
121
124
|
const [defaultBannerText, setDefaultBannerText] = useState('');
|
|
122
125
|
const [warningBannerText, setWarningBannerText] = useState('');
|
|
123
126
|
const [bannerVisible, setBannerVisible] = useState(true);
|
|
127
|
+
const bannerData = useMemo(() => ({
|
|
128
|
+
defaultText: defaultBannerText,
|
|
129
|
+
warningText: warningBannerText,
|
|
130
|
+
}), [defaultBannerText, warningBannerText]);
|
|
131
|
+
const { bannerText } = useBanner(bannerData, config);
|
|
124
132
|
const extensionManager = config.getExtensionLoader();
|
|
125
133
|
// We are in the interactive CLI, update how we request consent and settings.
|
|
126
134
|
extensionManager.setRequestConsent((description) => requestConsentInteractive(description, addConfirmUpdateExtensionRequest));
|
|
@@ -138,22 +146,7 @@ export const AppContainer = (props) => {
|
|
|
138
146
|
setPermissionsDialogProps(null);
|
|
139
147
|
}, []);
|
|
140
148
|
const toggleDebugProfiler = useCallback(() => setShowDebugProfiler((prev) => !prev), []);
|
|
141
|
-
|
|
142
|
-
const getEffectiveModel = useCallback(() => {
|
|
143
|
-
if (config.isInFallbackMode()) {
|
|
144
|
-
return DEFAULT_GEMINI_FLASH_MODEL;
|
|
145
|
-
}
|
|
146
|
-
const model = config.getModel();
|
|
147
|
-
const previewFeatures = config.getPreviewFeatures();
|
|
148
|
-
// If preview features are enabled and the model is the default model,
|
|
149
|
-
// we upgrade to the preview model for display purposes to match the
|
|
150
|
-
// routing logic in ModelRouterService.
|
|
151
|
-
if (model === DEFAULT_GEMINI_MODEL && previewFeatures) {
|
|
152
|
-
return PREVIEW_GEMINI_MODEL;
|
|
153
|
-
}
|
|
154
|
-
return resolveModel(model, previewFeatures);
|
|
155
|
-
}, [config]);
|
|
156
|
-
const [currentModel, setCurrentModel] = useState(getEffectiveModel());
|
|
149
|
+
const [currentModel, setCurrentModel] = useState(config.getModel());
|
|
157
150
|
const [userTier, setUserTier] = useState(undefined);
|
|
158
151
|
const [isConfigInitialized, setConfigInitialized] = useState(false);
|
|
159
152
|
const logger = useLogger(config.storage);
|
|
@@ -172,41 +165,78 @@ export const AppContainer = (props) => {
|
|
|
172
165
|
const mainControlsRef = useRef(null);
|
|
173
166
|
// For performance profiling only
|
|
174
167
|
const rootUiRef = useRef(null);
|
|
175
|
-
const originalTitleRef = useRef(computeWindowTitle(basename(config.getTargetDir())));
|
|
176
168
|
const lastTitleRef = useRef(null);
|
|
177
169
|
const staticExtraHeight = 3;
|
|
178
170
|
useEffect(() => {
|
|
171
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
179
172
|
(async () => {
|
|
180
173
|
// Note: the program will not work if this fails so let errors be
|
|
181
174
|
// handled by the global catch.
|
|
182
175
|
await config.initialize();
|
|
183
176
|
setConfigInitialized(true);
|
|
184
177
|
startupProfiler.flush(config);
|
|
178
|
+
const sessionStartSource = resumedSessionData
|
|
179
|
+
? SessionStartSource.Resume
|
|
180
|
+
: SessionStartSource.Startup;
|
|
181
|
+
const result = await config
|
|
182
|
+
.getHookSystem()
|
|
183
|
+
?.fireSessionStartEvent(sessionStartSource);
|
|
184
|
+
if (result?.finalOutput) {
|
|
185
|
+
if (result.finalOutput?.systemMessage) {
|
|
186
|
+
historyManager.addItem({
|
|
187
|
+
type: MessageType.INFO,
|
|
188
|
+
text: result.finalOutput.systemMessage,
|
|
189
|
+
}, Date.now());
|
|
190
|
+
}
|
|
191
|
+
const additionalContext = result.finalOutput.getAdditionalContext();
|
|
192
|
+
const geminiClient = config.getGeminiClient();
|
|
193
|
+
if (additionalContext && geminiClient) {
|
|
194
|
+
await geminiClient.addHistory({
|
|
195
|
+
role: 'user',
|
|
196
|
+
parts: [{ text: additionalContext }],
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
// Fire-and-forget: generate summary for previous session in background
|
|
201
|
+
generateSummary(config).catch((e) => {
|
|
202
|
+
debugLogger.warn('Background summary generation failed:', e);
|
|
203
|
+
});
|
|
185
204
|
})();
|
|
186
205
|
registerCleanup(async () => {
|
|
187
206
|
// Turn off mouse scroll.
|
|
188
207
|
disableMouseEvents();
|
|
189
208
|
const ideClient = await IdeClient.getInstance();
|
|
190
209
|
await ideClient.disconnect();
|
|
210
|
+
// Fire SessionEnd hook on cleanup (only if hooks are enabled)
|
|
211
|
+
await config?.getHookSystem()?.fireSessionEndEvent(SessionEndReason.Exit);
|
|
191
212
|
});
|
|
192
|
-
|
|
213
|
+
// Disable the dependencies check here. historyManager gets flagged
|
|
214
|
+
// but we don't want to react to changes to it because each new history
|
|
215
|
+
// item, including the ones from the start session hook will cause a
|
|
216
|
+
// re-render and an error when we try to reload config.
|
|
217
|
+
//
|
|
218
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
219
|
+
}, [config, resumedSessionData]);
|
|
193
220
|
useEffect(() => setUpdateHandler(historyManager.addItem, setUpdateInfo), [historyManager.addItem]);
|
|
194
221
|
// Subscribe to fallback mode and model changes from core
|
|
195
222
|
useEffect(() => {
|
|
196
|
-
const
|
|
197
|
-
|
|
198
|
-
setCurrentModel(effectiveModel);
|
|
199
|
-
};
|
|
200
|
-
const handleModelChanged = (payload) => {
|
|
201
|
-
setCurrentModel(payload.model);
|
|
223
|
+
const handleModelChanged = () => {
|
|
224
|
+
setCurrentModel(config.getModel());
|
|
202
225
|
};
|
|
203
|
-
coreEvents.on(CoreEvent.FallbackModeChanged, handleFallbackModeChanged);
|
|
204
226
|
coreEvents.on(CoreEvent.ModelChanged, handleModelChanged);
|
|
205
227
|
return () => {
|
|
206
|
-
coreEvents.off(CoreEvent.FallbackModeChanged, handleFallbackModeChanged);
|
|
207
228
|
coreEvents.off(CoreEvent.ModelChanged, handleModelChanged);
|
|
208
229
|
};
|
|
209
|
-
}, [
|
|
230
|
+
}, [config]);
|
|
231
|
+
useEffect(() => {
|
|
232
|
+
const handleSettingsChanged = () => {
|
|
233
|
+
setSettingsNonce((prev) => prev + 1);
|
|
234
|
+
};
|
|
235
|
+
coreEvents.on(CoreEvent.SettingsChanged, handleSettingsChanged);
|
|
236
|
+
return () => {
|
|
237
|
+
coreEvents.off(CoreEvent.SettingsChanged, handleSettingsChanged);
|
|
238
|
+
};
|
|
239
|
+
}, []);
|
|
210
240
|
const { consoleMessages, clearConsoleMessages: clearConsoleMessagesState } = useConsoleMessages();
|
|
211
241
|
const mainAreaWidth = calculateMainAreaWidth(terminalWidth, settings);
|
|
212
242
|
// Derive widths for InputPrompt using shared helper
|
|
@@ -223,6 +253,7 @@ export const AppContainer = (props) => {
|
|
|
223
253
|
return false;
|
|
224
254
|
}
|
|
225
255
|
}, []);
|
|
256
|
+
const getPreferredEditor = useCallback(() => settings.merged.general?.preferredEditor, [settings.merged.general?.preferredEditor]);
|
|
226
257
|
const buffer = useTextBuffer({
|
|
227
258
|
initialText: '',
|
|
228
259
|
viewport: { height: 10, width: inputWidth },
|
|
@@ -230,9 +261,11 @@ export const AppContainer = (props) => {
|
|
|
230
261
|
setRawMode,
|
|
231
262
|
isValidPath,
|
|
232
263
|
shellModeActive,
|
|
264
|
+
getPreferredEditor,
|
|
233
265
|
});
|
|
234
266
|
// Initialize input history from logger (past sessions)
|
|
235
267
|
useEffect(() => {
|
|
268
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
236
269
|
initializeFromLogger(logger);
|
|
237
270
|
}, [logger, initializeFromLogger]);
|
|
238
271
|
const refreshStatic = useCallback(() => {
|
|
@@ -250,8 +283,7 @@ export const AppContainer = (props) => {
|
|
|
250
283
|
disableLineWrapping();
|
|
251
284
|
app.rerender();
|
|
252
285
|
}
|
|
253
|
-
|
|
254
|
-
enableSupportedProtocol();
|
|
286
|
+
terminalCapabilityManager.enableSupportedModes();
|
|
255
287
|
refreshStatic();
|
|
256
288
|
}, [refreshStatic, isAlternateBuffer, app, config]);
|
|
257
289
|
useEffect(() => {
|
|
@@ -260,8 +292,24 @@ export const AppContainer = (props) => {
|
|
|
260
292
|
coreEvents.off(CoreEvent.ExternalEditorClosed, handleEditorClose);
|
|
261
293
|
};
|
|
262
294
|
}, [handleEditorClose]);
|
|
295
|
+
useEffect(() => {
|
|
296
|
+
if (!(settings.merged.ui?.hideBanner || config.getScreenReader()) &&
|
|
297
|
+
bannerVisible &&
|
|
298
|
+
bannerText) {
|
|
299
|
+
// The header should show a banner but the Header is rendered in static
|
|
300
|
+
// so we must trigger a static refresh for it to be visible.
|
|
301
|
+
refreshStatic();
|
|
302
|
+
}
|
|
303
|
+
}, [bannerVisible, bannerText, settings, config, refreshStatic]);
|
|
263
304
|
const { isThemeDialogOpen, openThemeDialog, closeThemeDialog, handleThemeSelect, handleThemeHighlight, } = useThemeCommand(settings, setThemeError, historyManager.addItem, initializationResult.themeError);
|
|
264
305
|
const { authState, setAuthState, authError, authInfo, setAuthInfo, onAuthError, apiKeyDefaultValue, reloadApiKey, } = useAuthCommand(settings, config);
|
|
306
|
+
const [authContext, setAuthContext] = useState({});
|
|
307
|
+
useEffect(() => {
|
|
308
|
+
if (authState === AuthState.Authenticated && authContext.requiresRestart) {
|
|
309
|
+
setAuthState(AuthState.AwaitingGoogleLoginRestart);
|
|
310
|
+
setAuthContext({});
|
|
311
|
+
}
|
|
312
|
+
}, [authState, authContext, setAuthState]);
|
|
265
313
|
const { proQuotaRequest, handleProQuotaChoice } = useQuotaAndFallback({
|
|
266
314
|
config,
|
|
267
315
|
historyManager,
|
|
@@ -290,6 +338,12 @@ export const AppContainer = (props) => {
|
|
|
290
338
|
// Create handleAuthSelect wrapper for backward compatibility
|
|
291
339
|
const handleAuthSelect = useCallback(async (authType, scope) => {
|
|
292
340
|
if (authType) {
|
|
341
|
+
if (authType === AuthType.LOGIN_WITH_GOOGLE) {
|
|
342
|
+
setAuthContext({ requiresRestart: true });
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
setAuthContext({});
|
|
346
|
+
}
|
|
293
347
|
await clearCachedCredentialFile();
|
|
294
348
|
settings.setValue(scope, 'security.auth.selectedType', authType);
|
|
295
349
|
try {
|
|
@@ -314,7 +368,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
314
368
|
}
|
|
315
369
|
}
|
|
316
370
|
setAuthState(AuthState.Authenticated);
|
|
317
|
-
}, [settings, config, setAuthState, onAuthError, setAuthInfo]);
|
|
371
|
+
}, [settings, config, setAuthState, onAuthError, setAuthContext, setAuthInfo]);
|
|
318
372
|
const handleApiKeySubmit = useCallback(async (apiKey) => {
|
|
319
373
|
try {
|
|
320
374
|
onAuthError(null);
|
|
@@ -352,6 +406,12 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
352
406
|
}
|
|
353
407
|
else if (settings.merged.security?.auth?.selectedType &&
|
|
354
408
|
!settings.merged.security?.auth?.useExternal) {
|
|
409
|
+
// We skip validation for Gemini API key here because it might be stored
|
|
410
|
+
// in the keychain, which we can't check synchronously.
|
|
411
|
+
// The useAuth hook handles validation for this case.
|
|
412
|
+
if (settings.merged.security.auth.selectedType === AuthType.USE_GEMINI) {
|
|
413
|
+
return;
|
|
414
|
+
}
|
|
355
415
|
const error = validateAuthMethod(settings.merged.security.auth.selectedType);
|
|
356
416
|
if (error) {
|
|
357
417
|
onAuthError(error);
|
|
@@ -385,21 +445,21 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
385
445
|
.sendStatistics(sessionStats)
|
|
386
446
|
.catch((err) => {
|
|
387
447
|
// Don't block exit if this fails, just log it.
|
|
388
|
-
|
|
448
|
+
debugLogger.error('Failed to send session stats:', err);
|
|
389
449
|
});
|
|
390
450
|
const feedbackPromise = sessionStats.metrics.tools.totalCalls === 0
|
|
391
451
|
? Promise.resolve(null)
|
|
392
452
|
: new Promise((resolve) => {
|
|
393
453
|
feedbackPromiseResolveRef.current = resolve;
|
|
394
454
|
});
|
|
395
|
-
Promise.all([statsPromise, feedbackPromise]).then(async ([, feedback]) => {
|
|
455
|
+
void Promise.all([statsPromise, feedbackPromise]).then(async ([, feedback]) => {
|
|
396
456
|
if (feedback) {
|
|
397
457
|
try {
|
|
398
458
|
await feedbackService.sendFeedback(feedback, sessionStats.sessionId);
|
|
399
459
|
}
|
|
400
460
|
catch (err) {
|
|
401
461
|
// Don't block exit if this fails, just log it.
|
|
402
|
-
|
|
462
|
+
debugLogger.error('Failed to send feedback:', err);
|
|
403
463
|
}
|
|
404
464
|
}
|
|
405
465
|
await runExitCleanup();
|
|
@@ -457,7 +517,6 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
457
517
|
}
|
|
458
518
|
}, [config, historyManager]);
|
|
459
519
|
const cancelHandlerRef = useRef(() => { });
|
|
460
|
-
const getPreferredEditor = useCallback(() => settings.merged.general?.preferredEditor, [settings.merged.general?.preferredEditor]);
|
|
461
520
|
const onCancelSubmit = useCallback((shouldRestorePrompt) => {
|
|
462
521
|
if (shouldRestorePrompt) {
|
|
463
522
|
setPendingRestorePrompt(true);
|
|
@@ -479,12 +538,21 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
479
538
|
}
|
|
480
539
|
}
|
|
481
540
|
}, [pendingRestorePrompt, inputHistory, historyManager.history]);
|
|
482
|
-
const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, cancelOngoingRequest, handleApprovalModeChange, activePtyId, loopDetectionConfirmationRequest, lastOutputTime, } = useGeminiStream(config.getGeminiClient(), historyManager.history, historyManager.addItem, config, settings, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh, modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError, onCancelSubmit, setEmbeddedShellFocused, terminalWidth, terminalHeight, embeddedShellFocused);
|
|
541
|
+
const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, cancelOngoingRequest, handleApprovalModeChange, activePtyId, loopDetectionConfirmationRequest, lastOutputTime, retryStatus, } = useGeminiStream(config.getGeminiClient(), historyManager.history, historyManager.addItem, config, settings, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh, modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError, onCancelSubmit, setEmbeddedShellFocused, terminalWidth, terminalHeight, embeddedShellFocused);
|
|
542
|
+
const lastOutputTimeRef = useRef(0);
|
|
543
|
+
useEffect(() => {
|
|
544
|
+
lastOutputTimeRef.current = lastOutputTime;
|
|
545
|
+
}, [lastOutputTime]);
|
|
546
|
+
const isShellAwaitingFocus = !!activePtyId &&
|
|
547
|
+
!embeddedShellFocused &&
|
|
548
|
+
config.isInteractiveShellEnabled();
|
|
549
|
+
const showShellActionRequired = useInactivityTimer(isShellAwaitingFocus, lastOutputTime, SHELL_ACTION_REQUIRED_TITLE_DELAY_MS);
|
|
483
550
|
// Auto-accept indicator
|
|
484
551
|
const showAutoAcceptIndicator = useAutoAcceptIndicator({
|
|
485
552
|
config,
|
|
486
553
|
addItem: historyManager.addItem,
|
|
487
554
|
onApprovalModeChange: handleApprovalModeChange,
|
|
555
|
+
isActive: !embeddedShellFocused,
|
|
488
556
|
});
|
|
489
557
|
const { messageQueue, addMessage, clearQueue, getQueuedMessagesText, popAllMessages, } = useMessageQueue({
|
|
490
558
|
isConfigInitialized,
|
|
@@ -525,16 +593,8 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
525
593
|
const handleClearScreen = useCallback(() => {
|
|
526
594
|
historyManager.clearItems();
|
|
527
595
|
clearConsoleMessagesState();
|
|
528
|
-
if (!isAlternateBuffer) {
|
|
529
|
-
console.clear();
|
|
530
|
-
}
|
|
531
596
|
refreshStatic();
|
|
532
|
-
}, [
|
|
533
|
-
historyManager,
|
|
534
|
-
clearConsoleMessagesState,
|
|
535
|
-
refreshStatic,
|
|
536
|
-
isAlternateBuffer,
|
|
537
|
-
]);
|
|
597
|
+
}, [historyManager, clearConsoleMessagesState, refreshStatic]);
|
|
538
598
|
const { handleInput: vimHandleInput } = useVim(buffer, handleFinalSubmit);
|
|
539
599
|
/**
|
|
540
600
|
* Determines if the input prompt should be active and accept user input.
|
|
@@ -567,9 +627,9 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
567
627
|
terminalHeight: Math.max(Math.floor(availableTerminalHeight - SHELL_HEIGHT_PADDING), 1),
|
|
568
628
|
pager: settings.merged.tools?.shell?.pager,
|
|
569
629
|
showColor: settings.merged.tools?.shell?.showColor,
|
|
630
|
+
sanitizationConfig: config.sanitizationConfig,
|
|
570
631
|
});
|
|
571
632
|
const isFocused = useFocus();
|
|
572
|
-
useBracketedPaste();
|
|
573
633
|
// Context file names computation
|
|
574
634
|
const contextFileNames = useMemo(() => {
|
|
575
635
|
const fromSettings = settings.merged.context?.fileName;
|
|
@@ -630,6 +690,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
630
690
|
const currentIde = ideClient.getCurrentIde();
|
|
631
691
|
setCurrentIDE(currentIde || null);
|
|
632
692
|
};
|
|
693
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
633
694
|
getIde();
|
|
634
695
|
}, []);
|
|
635
696
|
const shouldShowIdePrompt = Boolean(currentIDE &&
|
|
@@ -652,17 +713,18 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
652
713
|
const { needsRestart: ideNeedsRestart, restartReason: ideTrustRestartReason, } = useIdeTrustListener();
|
|
653
714
|
const isInitialMount = useRef(true);
|
|
654
715
|
useIncludeDirsTrust(config, isTrustedFolder, historyManager, setCustomDialog);
|
|
716
|
+
const warningTimeoutRef = useRef(null);
|
|
717
|
+
const tabFocusTimeoutRef = useRef(null);
|
|
718
|
+
const handleWarning = useCallback((message) => {
|
|
719
|
+
setWarningMessage(message);
|
|
720
|
+
if (warningTimeoutRef.current) {
|
|
721
|
+
clearTimeout(warningTimeoutRef.current);
|
|
722
|
+
}
|
|
723
|
+
warningTimeoutRef.current = setTimeout(() => {
|
|
724
|
+
setWarningMessage(null);
|
|
725
|
+
}, WARNING_PROMPT_DURATION_MS);
|
|
726
|
+
}, []);
|
|
655
727
|
useEffect(() => {
|
|
656
|
-
let timeoutId;
|
|
657
|
-
const handleWarning = (message) => {
|
|
658
|
-
setWarningMessage(message);
|
|
659
|
-
if (timeoutId) {
|
|
660
|
-
clearTimeout(timeoutId);
|
|
661
|
-
}
|
|
662
|
-
timeoutId = setTimeout(() => {
|
|
663
|
-
setWarningMessage(null);
|
|
664
|
-
}, WARNING_PROMPT_DURATION_MS);
|
|
665
|
-
};
|
|
666
728
|
const handleSelectionWarning = () => {
|
|
667
729
|
handleWarning('Press Ctrl-S to enter selection mode to copy text.');
|
|
668
730
|
};
|
|
@@ -674,11 +736,14 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
674
736
|
return () => {
|
|
675
737
|
appEvents.off(AppEvent.SelectionWarning, handleSelectionWarning);
|
|
676
738
|
appEvents.off(AppEvent.PasteTimeout, handlePasteTimeout);
|
|
677
|
-
if (
|
|
678
|
-
clearTimeout(
|
|
739
|
+
if (warningTimeoutRef.current) {
|
|
740
|
+
clearTimeout(warningTimeoutRef.current);
|
|
741
|
+
}
|
|
742
|
+
if (tabFocusTimeoutRef.current) {
|
|
743
|
+
clearTimeout(tabFocusTimeoutRef.current);
|
|
679
744
|
}
|
|
680
745
|
};
|
|
681
|
-
}, []);
|
|
746
|
+
}, [handleWarning]);
|
|
682
747
|
useEffect(() => {
|
|
683
748
|
let timeoutId;
|
|
684
749
|
const handleWarning = (message) => {
|
|
@@ -757,6 +822,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
757
822
|
recordExitFail(config);
|
|
758
823
|
}
|
|
759
824
|
if (ctrlCPressCount > 1) {
|
|
825
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
760
826
|
handleSlashCommand('/quit', undefined, undefined, false);
|
|
761
827
|
}
|
|
762
828
|
else {
|
|
@@ -775,6 +841,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
775
841
|
recordExitFail(config);
|
|
776
842
|
}
|
|
777
843
|
if (ctrlDPressCount > 1) {
|
|
844
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
778
845
|
handleSlashCommand('/quit', undefined, undefined, false);
|
|
779
846
|
}
|
|
780
847
|
else {
|
|
@@ -789,6 +856,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
789
856
|
}, []);
|
|
790
857
|
const handleIdePromptComplete = useCallback((result) => {
|
|
791
858
|
if (result.userSelection === 'yes') {
|
|
859
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
792
860
|
handleSlashCommand('/ide install');
|
|
793
861
|
settings.setValue(SettingScope.User, 'hasSeenIdeIntegrationNudge', true);
|
|
794
862
|
}
|
|
@@ -797,7 +865,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
797
865
|
}
|
|
798
866
|
setIdePromptAnswered(true);
|
|
799
867
|
}, [handleSlashCommand, settings]);
|
|
800
|
-
const { elapsedTime, currentLoadingPhrase } = useLoadingIndicator(streamingState, settings.merged.ui?.customWittyPhrases, !!activePtyId && !embeddedShellFocused, lastOutputTime);
|
|
868
|
+
const { elapsedTime, currentLoadingPhrase } = useLoadingIndicator(streamingState, settings.merged.ui?.customWittyPhrases, !!activePtyId && !embeddedShellFocused, lastOutputTime, retryStatus);
|
|
801
869
|
const handleGlobalKeypress = useCallback((key) => {
|
|
802
870
|
if (copyModeEnabled) {
|
|
803
871
|
setCopyModeEnabled(false);
|
|
@@ -847,19 +915,44 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
847
915
|
return newValue;
|
|
848
916
|
});
|
|
849
917
|
}
|
|
850
|
-
else if (keyMatchers[Command.
|
|
918
|
+
else if (keyMatchers[Command.SHOW_IDE_CONTEXT_DETAIL](key) &&
|
|
851
919
|
config.getIdeMode() &&
|
|
852
920
|
ideContextState) {
|
|
921
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
853
922
|
handleSlashCommand('/ide status');
|
|
854
923
|
}
|
|
855
924
|
else if (keyMatchers[Command.SHOW_MORE_LINES](key) &&
|
|
856
925
|
!enteringConstrainHeightMode) {
|
|
857
926
|
setConstrainHeight(false);
|
|
858
927
|
}
|
|
859
|
-
else if (keyMatchers[Command.
|
|
860
|
-
|
|
861
|
-
|
|
928
|
+
else if (keyMatchers[Command.UNFOCUS_SHELL_INPUT](key) &&
|
|
929
|
+
activePtyId &&
|
|
930
|
+
embeddedShellFocused) {
|
|
931
|
+
if (key.name === 'tab' && key.shift) {
|
|
932
|
+
// Always change focus
|
|
933
|
+
setEmbeddedShellFocused(false);
|
|
934
|
+
return;
|
|
935
|
+
}
|
|
936
|
+
const now = Date.now();
|
|
937
|
+
// If the shell hasn't produced output in the last 100ms, it's considered idle.
|
|
938
|
+
const isIdle = now - lastOutputTimeRef.current >= 100;
|
|
939
|
+
if (isIdle) {
|
|
940
|
+
if (tabFocusTimeoutRef.current) {
|
|
941
|
+
clearTimeout(tabFocusTimeoutRef.current);
|
|
942
|
+
}
|
|
943
|
+
tabFocusTimeoutRef.current = setTimeout(() => {
|
|
944
|
+
tabFocusTimeoutRef.current = null;
|
|
945
|
+
// If the shell produced output since the tab press, we assume it handled the tab
|
|
946
|
+
// (e.g. autocomplete) so we should not toggle focus.
|
|
947
|
+
if (lastOutputTimeRef.current > now) {
|
|
948
|
+
handleWarning('Press Shift+Tab to focus out.');
|
|
949
|
+
return;
|
|
950
|
+
}
|
|
951
|
+
setEmbeddedShellFocused(false);
|
|
952
|
+
}, 100);
|
|
953
|
+
return;
|
|
862
954
|
}
|
|
955
|
+
handleWarning('Press Shift+Tab to focus out.');
|
|
863
956
|
}
|
|
864
957
|
}, [
|
|
865
958
|
constrainHeight,
|
|
@@ -879,37 +972,40 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
879
972
|
setCopyModeEnabled,
|
|
880
973
|
copyModeEnabled,
|
|
881
974
|
isAlternateBuffer,
|
|
975
|
+
handleWarning,
|
|
882
976
|
]);
|
|
883
977
|
useKeypress(handleGlobalKeypress, { isActive: true });
|
|
884
978
|
// Update terminal title with Cell CLI status and thoughts
|
|
885
979
|
useEffect(() => {
|
|
886
|
-
// Respect
|
|
887
|
-
if (
|
|
888
|
-
settings.merged.ui?.hideWindowTitle)
|
|
980
|
+
// Respect hideWindowTitle settings
|
|
981
|
+
if (settings.merged.ui?.hideWindowTitle)
|
|
889
982
|
return;
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
}
|
|
900
|
-
// Pad the title to a fixed width to prevent taskbar icon resizing.
|
|
901
|
-
const paddedTitle = title.padEnd(80, ' ');
|
|
983
|
+
const paddedTitle = computeTerminalTitle({
|
|
984
|
+
streamingState,
|
|
985
|
+
thoughtSubject: thought?.subject,
|
|
986
|
+
isConfirming: !!shellConfirmationRequest ||
|
|
987
|
+
!!confirmationRequest ||
|
|
988
|
+
showShellActionRequired,
|
|
989
|
+
folderName: basename(config.getTargetDir()),
|
|
990
|
+
showThoughts: !!settings.merged.ui?.showStatusInTitle,
|
|
991
|
+
useDynamicTitle: settings.merged.ui?.dynamicWindowTitle ?? true,
|
|
992
|
+
});
|
|
902
993
|
// Only update the title if it's different from the last value we set
|
|
903
994
|
if (lastTitleRef.current !== paddedTitle) {
|
|
904
995
|
lastTitleRef.current = paddedTitle;
|
|
905
|
-
stdout.write(`\x1b]
|
|
996
|
+
stdout.write(`\x1b]0;${paddedTitle}\x07`);
|
|
906
997
|
}
|
|
907
998
|
// Note: We don't need to reset the window title on exit because Cell CLI is already doing that elsewhere
|
|
908
999
|
}, [
|
|
909
1000
|
streamingState,
|
|
910
1001
|
thought,
|
|
1002
|
+
shellConfirmationRequest,
|
|
1003
|
+
confirmationRequest,
|
|
1004
|
+
showShellActionRequired,
|
|
911
1005
|
settings.merged.ui?.showStatusInTitle,
|
|
1006
|
+
settings.merged.ui?.dynamicWindowTitle,
|
|
912
1007
|
settings.merged.ui?.hideWindowTitle,
|
|
1008
|
+
config,
|
|
913
1009
|
stdout,
|
|
914
1010
|
]);
|
|
915
1011
|
useEffect(() => {
|
|
@@ -998,14 +1094,14 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
998
1094
|
setDefaultBannerText(defaultBanner);
|
|
999
1095
|
setWarningBannerText(warningBanner);
|
|
1000
1096
|
setBannerVisible(true);
|
|
1001
|
-
refreshStatic();
|
|
1002
1097
|
const authType = config.getContentGeneratorConfig()?.authType;
|
|
1003
1098
|
if (authType === AuthType.USE_GEMINI ||
|
|
1004
1099
|
authType === AuthType.USE_VERTEX_AI) {
|
|
1005
|
-
setDefaultBannerText('Gemini 3
|
|
1100
|
+
setDefaultBannerText('Gemini 3 Flash and Pro are now available. \nEnable "Preview features" in /settings. \nLearn more at https://goo.gle/enable-preview-features');
|
|
1006
1101
|
}
|
|
1007
1102
|
}
|
|
1008
1103
|
};
|
|
1104
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
1009
1105
|
fetchBannerTexts();
|
|
1010
1106
|
return () => {
|
|
1011
1107
|
isMounted = false;
|
|
@@ -1073,6 +1169,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1073
1169
|
elapsedTime,
|
|
1074
1170
|
currentLoadingPhrase,
|
|
1075
1171
|
historyRemountKey,
|
|
1172
|
+
activeHooks,
|
|
1076
1173
|
messageQueue,
|
|
1077
1174
|
queueErrorMessage,
|
|
1078
1175
|
showAutoAcceptIndicator,
|
|
@@ -1106,11 +1203,10 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1106
1203
|
customDialog,
|
|
1107
1204
|
copyModeEnabled,
|
|
1108
1205
|
warningMessage,
|
|
1109
|
-
bannerData
|
|
1110
|
-
defaultText: defaultBannerText,
|
|
1111
|
-
warningText: warningBannerText,
|
|
1112
|
-
},
|
|
1206
|
+
bannerData,
|
|
1113
1207
|
bannerVisible,
|
|
1208
|
+
terminalBackgroundColor: config.getTerminalBackground(),
|
|
1209
|
+
settingsNonce,
|
|
1114
1210
|
}), [
|
|
1115
1211
|
isThemeDialogOpen,
|
|
1116
1212
|
themeError,
|
|
@@ -1164,6 +1260,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1164
1260
|
elapsedTime,
|
|
1165
1261
|
currentLoadingPhrase,
|
|
1166
1262
|
historyRemountKey,
|
|
1263
|
+
activeHooks,
|
|
1167
1264
|
messageQueue,
|
|
1168
1265
|
queueErrorMessage,
|
|
1169
1266
|
showAutoAcceptIndicator,
|
|
@@ -1201,9 +1298,10 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1201
1298
|
authState,
|
|
1202
1299
|
copyModeEnabled,
|
|
1203
1300
|
warningMessage,
|
|
1204
|
-
|
|
1205
|
-
warningBannerText,
|
|
1301
|
+
bannerData,
|
|
1206
1302
|
bannerVisible,
|
|
1303
|
+
config,
|
|
1304
|
+
settingsNonce,
|
|
1207
1305
|
]);
|
|
1208
1306
|
const exitPrivacyNotice = useCallback(() => setShowPrivacyNotice(false), [setShowPrivacyNotice]);
|
|
1209
1307
|
const uiActions = useMemo(() => ({
|
|
@@ -1240,6 +1338,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1240
1338
|
handleApiKeyCancel,
|
|
1241
1339
|
setBannerVisible,
|
|
1242
1340
|
setEmbeddedShellFocused,
|
|
1341
|
+
setAuthContext,
|
|
1243
1342
|
}), [
|
|
1244
1343
|
handleThemeSelect,
|
|
1245
1344
|
closeThemeDialog,
|
|
@@ -1274,7 +1373,14 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1274
1373
|
handleApiKeyCancel,
|
|
1275
1374
|
setBannerVisible,
|
|
1276
1375
|
setEmbeddedShellFocused,
|
|
1376
|
+
setAuthContext,
|
|
1277
1377
|
]);
|
|
1378
|
+
if (authState === AuthState.AwaitingGoogleLoginRestart) {
|
|
1379
|
+
return (_jsx(LoginWithGoogleRestartDialog, { onDismiss: () => {
|
|
1380
|
+
setAuthContext({});
|
|
1381
|
+
setAuthState(AuthState.Updating);
|
|
1382
|
+
} }));
|
|
1383
|
+
}
|
|
1278
1384
|
return (_jsx(UIStateContext.Provider, { value: uiState, children: _jsx(UIActionsContext.Provider, { value: uiActions, children: _jsx(ConfigContext.Provider, { value: config, children: _jsx(AppContext.Provider, { value: {
|
|
1279
1385
|
version: props.version,
|
|
1280
1386
|
startupWarnings: props.startupWarnings || [],
|