@machina.ai/cell-cli 1.22.5-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.test.js.map +1 -1
- package/dist/src/commands/extensions/enable.test.js.map +1 -1
- 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/uninstall.test.js.map +1 -1
- package/dist/src/commands/extensions/utils.d.ts +2 -1
- package/dist/src/commands/extensions/utils.js +5 -1
- package/dist/src/commands/extensions/utils.js.map +1 -1
- 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 -2
- package/dist/src/commands/extensions.js.map +1 -1
- package/dist/src/commands/hooks/migrate.js +1 -1
- package/dist/src/commands/hooks/migrate.js.map +1 -1
- package/dist/src/commands/hooks/migrate.test.js +1 -1
- package/dist/src/commands/hooks/migrate.test.js.map +1 -1
- package/dist/src/commands/mcp/add.test.js +1 -1
- 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/{extensions/settings.d.ts → skills.d.ts} +2 -2
- 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 +91 -31
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +224 -13
- 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 +6 -1
- package/dist/src/config/extension-manager.js +157 -34
- package/dist/src/config/extension-manager.js.map +1 -1
- package/dist/src/config/extension.test.js +98 -16
- 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 +30 -7
- package/dist/src/config/extensions/consent.js.map +1 -1
- package/dist/src/config/extensions/consent.test.js +97 -3
- package/dist/src/config/extensions/consent.test.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.d.ts +5 -3
- package/dist/src/config/extensions/extensionSettings.js +32 -12
- package/dist/src/config/extensions/extensionSettings.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.test.js +8 -8
- 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.js +1 -1
- package/dist/src/config/extensions/github.js.map +1 -1
- package/dist/src/config/extensions/github.test.js +2 -2
- package/dist/src/config/extensions/github.test.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.js +1 -1
- package/dist/src/config/settings-validation.js.map +1 -1
- package/dist/src/config/settings-validation.test.js +49 -1
- package/dist/src/config/settings-validation.test.js.map +1 -1
- package/dist/src/config/settings.d.ts +9 -7
- package/dist/src/config/settings.js +127 -250
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settings.test.js +245 -594
- package/dist/src/config/settings.test.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +284 -33
- package/dist/src/config/settingsSchema.js +328 -31
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +17 -9
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/config/settings_repro.test.js +1 -1
- package/dist/src/config/settings_repro.test.js.map +1 -1
- 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 +117 -85
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +72 -95
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/gemini_cleanup.test.js +6 -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 +54 -1
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.test.js +94 -11
- package/dist/src/nonInteractiveCli.test.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.d.ts +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +65 -9
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.test.js +67 -13
- package/dist/src/services/BuiltinCommandLoader.test.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/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 +4 -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 +158 -77
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +230 -41
- 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/AuthDialog.d.ts +4 -1
- package/dist/src/ui/auth/AuthDialog.js +8 -2
- package/dist/src/ui/auth/AuthDialog.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.test.js +17 -0
- 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/commands/aboutCommand.js +1 -1
- package/dist/src/ui/commands/aboutCommand.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.test.js +4 -4
- 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 +36 -4
- package/dist/src/ui/commands/bugCommand.js.map +1 -1
- package/dist/src/ui/commands/bugCommand.test.js +83 -2
- 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 +50 -50
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.test.js +84 -58
- package/dist/src/ui/commands/chatCommand.test.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.js +12 -8
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.test.js +4 -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 +47 -11
- package/dist/src/ui/commands/directoryCommand.test.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.js +193 -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.js +155 -20
- package/dist/src/ui/commands/hooksCommand.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.test.js +196 -17
- package/dist/src/ui/commands/hooksCommand.test.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js +7 -7
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.test.js +14 -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/restoreCommand.js +1 -1
- package/dist/src/ui/commands/restoreCommand.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 +4 -4
- package/dist/src/ui/commands/statsCommand.js.map +1 -1
- package/dist/src/ui/commands/statsCommand.test.js +4 -4
- package/dist/src/ui/commands/statsCommand.test.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 +15 -2
- package/dist/src/ui/commands/types.js +1 -0
- package/dist/src/ui/commands/types.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/DialogManager.js +2 -2
- 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 +3 -2
- package/dist/src/ui/components/EditorSettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.js +20 -15
- 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 +4 -4
- package/dist/src/ui/components/Footer.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 +3 -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 +2 -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 +54 -24
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +172 -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 +7 -3
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.test.js +16 -2
- 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 +53 -2
- 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 +2 -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 +3 -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/ProQuotaDialog.d.ts +1 -3
- package/dist/src/ui/components/ProQuotaDialog.js +3 -21
- package/dist/src/ui/components/ProQuotaDialog.js.map +1 -1
- package/dist/src/ui/components/ProQuotaDialog.test.js +25 -10
- package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +36 -16
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +20 -3
- package/dist/src/ui/components/SettingsDialog.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/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/ToolConfirmationMessage.js +1 -5
- package/dist/src/ui/components/messages/ToolConfirmationMessage.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/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/text-buffer.d.ts +40 -4
- package/dist/src/ui/components/shared/text-buffer.js +234 -64
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.test.js +147 -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 +2 -0
- package/dist/src/ui/components/views/HooksList.js +12 -7
- package/dist/src/ui/components/views/HooksList.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.js +7 -2
- package/dist/src/ui/components/views/McpStatus.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.test.js +10 -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 -4
- 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 +130 -9
- package/dist/src/ui/contexts/KeypressContext.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.js +17 -3
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +9 -3
- 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/slashCommandProcessor.js +18 -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 +31 -0
- package/dist/src/ui/hooks/useAtCompletion.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/useCommandCompletion.d.ts +1 -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 +5 -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 +84 -16
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +290 -10
- package/dist/src/ui/hooks/useGeminiStream.test.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/useIncludeDirsTrust.js +4 -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 +14 -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/usePromptCompletion.js +0 -2
- package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.js +11 -9
- package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js +22 -16
- 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/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/useShellHistory.js +3 -3
- package/dist/src/ui/hooks/useShellHistory.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +26 -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/ui/hooks/useToolScheduler.test.js +73 -50
- 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/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 +23 -4
- package/dist/src/ui/types.js +4 -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 +2 -2
- package/dist/src/ui/utils/clipboardUtils.js +50 -4
- package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.test.js +12 -12
- 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.js +13 -10
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +39 -2
- package/dist/src/ui/utils/commandUtils.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 +46 -36
- 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 +11 -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 +5 -0
- package/dist/src/utils/cleanup.js +17 -0
- 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/errors.js +9 -10
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/errors.test.js +95 -37
- package/dist/src/utils/errors.test.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.test.js +2 -2
- 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/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 +20 -0
- package/dist/src/utils/sessionUtils.js +32 -4
- 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 +9 -9
- package/dist/src/utils/sessions.js.map +1 -1
- package/dist/src/utils/sessions.test.js +38 -41
- 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 -3
- package/dist/src/zed-integration/fileSystemService.js +5 -7
- package/dist/src/zed-integration/fileSystemService.js.map +1 -1
- package/dist/src/zed-integration/fileSystemService.test.js +11 -13
- 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 +42 -21
- 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/commands/extensions/settings.js +0 -111
- package/dist/src/commands/extensions/settings.js.map +0 -1
- 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/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 -214
- 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 -165
- 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 → 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 { IdeClient, ideContextStore, getErrorMessage, getAllGeminiMdFilenames, AuthType, clearCachedCredentialFile, recordExitFail, ShellExecutionService, saveApiKey, debugLogger, coreEvents, CoreEvent, refreshServerHierarchicalMemory, writeToStdout, disableMouseEvents, enterAlternateScreen, enableMouseEvents, disableLineWrapping, shouldEnterAlternateScreen, startupProfiler, SessionStartSource, SessionEndReason,
|
|
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,12 +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 { enableBracketedPaste } from './utils/bracketedPaste.js';
|
|
75
73
|
import { useBanner } from './hooks/useBanner.js';
|
|
76
|
-
|
|
77
|
-
|
|
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';
|
|
78
78
|
function isToolExecuting(pendingHistoryItems) {
|
|
79
79
|
return pendingHistoryItems.some((item) => {
|
|
80
80
|
if (item && item.type === 'tool_group') {
|
|
@@ -116,6 +116,8 @@ export const AppContainer = (props) => {
|
|
|
116
116
|
const [shellModeActive, setShellModeActive] = useState(false);
|
|
117
117
|
const [modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError] = useState(false);
|
|
118
118
|
const [historyRemountKey, setHistoryRemountKey] = useState(0);
|
|
119
|
+
const [settingsNonce, setSettingsNonce] = useState(0);
|
|
120
|
+
const activeHooks = useHookDisplayState();
|
|
119
121
|
const [updateInfo, setUpdateInfo] = useState(null);
|
|
120
122
|
const [isTrustedFolder, setIsTrustedFolder] = useState(isWorkspaceTrusted(settings.merged).isTrusted);
|
|
121
123
|
const [queueErrorMessage, setQueueErrorMessage] = useState(null);
|
|
@@ -144,9 +146,7 @@ export const AppContainer = (props) => {
|
|
|
144
146
|
setPermissionsDialogProps(null);
|
|
145
147
|
}, []);
|
|
146
148
|
const toggleDebugProfiler = useCallback(() => setShowDebugProfiler((prev) => !prev), []);
|
|
147
|
-
|
|
148
|
-
const getEffectiveModel = useCallback(() => config.getModel(), [config]);
|
|
149
|
-
const [currentModel, setCurrentModel] = useState(getEffectiveModel());
|
|
149
|
+
const [currentModel, setCurrentModel] = useState(config.getModel());
|
|
150
150
|
const [userTier, setUserTier] = useState(undefined);
|
|
151
151
|
const [isConfigInitialized, setConfigInitialized] = useState(false);
|
|
152
152
|
const logger = useLogger(config.storage);
|
|
@@ -165,7 +165,6 @@ export const AppContainer = (props) => {
|
|
|
165
165
|
const mainControlsRef = useRef(null);
|
|
166
166
|
// For performance profiling only
|
|
167
167
|
const rootUiRef = useRef(null);
|
|
168
|
-
const originalTitleRef = useRef(computeWindowTitle(basename(config.getTargetDir())));
|
|
169
168
|
const lastTitleRef = useRef(null);
|
|
170
169
|
const staticExtraHeight = 3;
|
|
171
170
|
useEffect(() => {
|
|
@@ -176,15 +175,27 @@ export const AppContainer = (props) => {
|
|
|
176
175
|
await config.initialize();
|
|
177
176
|
setConfigInitialized(true);
|
|
178
177
|
startupProfiler.flush(config);
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
const
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
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
|
+
}
|
|
188
199
|
}
|
|
189
200
|
// Fire-and-forget: generate summary for previous session in background
|
|
190
201
|
generateSummary(config).catch((e) => {
|
|
@@ -197,12 +208,14 @@ export const AppContainer = (props) => {
|
|
|
197
208
|
const ideClient = await IdeClient.getInstance();
|
|
198
209
|
await ideClient.disconnect();
|
|
199
210
|
// Fire SessionEnd hook on cleanup (only if hooks are enabled)
|
|
200
|
-
|
|
201
|
-
const hookMessageBus = config.getMessageBus();
|
|
202
|
-
if (hooksEnabled && hookMessageBus) {
|
|
203
|
-
await fireSessionEndHook(hookMessageBus, SessionEndReason.Exit);
|
|
204
|
-
}
|
|
211
|
+
await config?.getHookSystem()?.fireSessionEndEvent(SessionEndReason.Exit);
|
|
205
212
|
});
|
|
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
|
|
206
219
|
}, [config, resumedSessionData]);
|
|
207
220
|
useEffect(() => setUpdateHandler(historyManager.addItem, setUpdateInfo), [historyManager.addItem]);
|
|
208
221
|
// Subscribe to fallback mode and model changes from core
|
|
@@ -214,7 +227,16 @@ export const AppContainer = (props) => {
|
|
|
214
227
|
return () => {
|
|
215
228
|
coreEvents.off(CoreEvent.ModelChanged, handleModelChanged);
|
|
216
229
|
};
|
|
217
|
-
}, [
|
|
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
|
+
}, []);
|
|
218
240
|
const { consoleMessages, clearConsoleMessages: clearConsoleMessagesState } = useConsoleMessages();
|
|
219
241
|
const mainAreaWidth = calculateMainAreaWidth(terminalWidth, settings);
|
|
220
242
|
// Derive widths for InputPrompt using shared helper
|
|
@@ -231,6 +253,7 @@ export const AppContainer = (props) => {
|
|
|
231
253
|
return false;
|
|
232
254
|
}
|
|
233
255
|
}, []);
|
|
256
|
+
const getPreferredEditor = useCallback(() => settings.merged.general?.preferredEditor, [settings.merged.general?.preferredEditor]);
|
|
234
257
|
const buffer = useTextBuffer({
|
|
235
258
|
initialText: '',
|
|
236
259
|
viewport: { height: 10, width: inputWidth },
|
|
@@ -238,6 +261,7 @@ export const AppContainer = (props) => {
|
|
|
238
261
|
setRawMode,
|
|
239
262
|
isValidPath,
|
|
240
263
|
shellModeActive,
|
|
264
|
+
getPreferredEditor,
|
|
241
265
|
});
|
|
242
266
|
// Initialize input history from logger (past sessions)
|
|
243
267
|
useEffect(() => {
|
|
@@ -259,8 +283,7 @@ export const AppContainer = (props) => {
|
|
|
259
283
|
disableLineWrapping();
|
|
260
284
|
app.rerender();
|
|
261
285
|
}
|
|
262
|
-
|
|
263
|
-
enableSupportedProtocol();
|
|
286
|
+
terminalCapabilityManager.enableSupportedModes();
|
|
264
287
|
refreshStatic();
|
|
265
288
|
}, [refreshStatic, isAlternateBuffer, app, config]);
|
|
266
289
|
useEffect(() => {
|
|
@@ -280,6 +303,13 @@ export const AppContainer = (props) => {
|
|
|
280
303
|
}, [bannerVisible, bannerText, settings, config, refreshStatic]);
|
|
281
304
|
const { isThemeDialogOpen, openThemeDialog, closeThemeDialog, handleThemeSelect, handleThemeHighlight, } = useThemeCommand(settings, setThemeError, historyManager.addItem, initializationResult.themeError);
|
|
282
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]);
|
|
283
313
|
const { proQuotaRequest, handleProQuotaChoice } = useQuotaAndFallback({
|
|
284
314
|
config,
|
|
285
315
|
historyManager,
|
|
@@ -308,6 +338,12 @@ export const AppContainer = (props) => {
|
|
|
308
338
|
// Create handleAuthSelect wrapper for backward compatibility
|
|
309
339
|
const handleAuthSelect = useCallback(async (authType, scope) => {
|
|
310
340
|
if (authType) {
|
|
341
|
+
if (authType === AuthType.LOGIN_WITH_GOOGLE) {
|
|
342
|
+
setAuthContext({ requiresRestart: true });
|
|
343
|
+
}
|
|
344
|
+
else {
|
|
345
|
+
setAuthContext({});
|
|
346
|
+
}
|
|
311
347
|
await clearCachedCredentialFile();
|
|
312
348
|
settings.setValue(scope, 'security.auth.selectedType', authType);
|
|
313
349
|
try {
|
|
@@ -332,7 +368,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
332
368
|
}
|
|
333
369
|
}
|
|
334
370
|
setAuthState(AuthState.Authenticated);
|
|
335
|
-
}, [settings, config, setAuthState, onAuthError, setAuthInfo]);
|
|
371
|
+
}, [settings, config, setAuthState, onAuthError, setAuthContext, setAuthInfo]);
|
|
336
372
|
const handleApiKeySubmit = useCallback(async (apiKey) => {
|
|
337
373
|
try {
|
|
338
374
|
onAuthError(null);
|
|
@@ -409,7 +445,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
409
445
|
.sendStatistics(sessionStats)
|
|
410
446
|
.catch((err) => {
|
|
411
447
|
// Don't block exit if this fails, just log it.
|
|
412
|
-
|
|
448
|
+
debugLogger.error('Failed to send session stats:', err);
|
|
413
449
|
});
|
|
414
450
|
const feedbackPromise = sessionStats.metrics.tools.totalCalls === 0
|
|
415
451
|
? Promise.resolve(null)
|
|
@@ -423,7 +459,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
423
459
|
}
|
|
424
460
|
catch (err) {
|
|
425
461
|
// Don't block exit if this fails, just log it.
|
|
426
|
-
|
|
462
|
+
debugLogger.error('Failed to send feedback:', err);
|
|
427
463
|
}
|
|
428
464
|
}
|
|
429
465
|
await runExitCleanup();
|
|
@@ -481,7 +517,6 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
481
517
|
}
|
|
482
518
|
}, [config, historyManager]);
|
|
483
519
|
const cancelHandlerRef = useRef(() => { });
|
|
484
|
-
const getPreferredEditor = useCallback(() => settings.merged.general?.preferredEditor, [settings.merged.general?.preferredEditor]);
|
|
485
520
|
const onCancelSubmit = useCallback((shouldRestorePrompt) => {
|
|
486
521
|
if (shouldRestorePrompt) {
|
|
487
522
|
setPendingRestorePrompt(true);
|
|
@@ -503,12 +538,21 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
503
538
|
}
|
|
504
539
|
}
|
|
505
540
|
}, [pendingRestorePrompt, inputHistory, historyManager.history]);
|
|
506
|
-
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);
|
|
507
550
|
// Auto-accept indicator
|
|
508
551
|
const showAutoAcceptIndicator = useAutoAcceptIndicator({
|
|
509
552
|
config,
|
|
510
553
|
addItem: historyManager.addItem,
|
|
511
554
|
onApprovalModeChange: handleApprovalModeChange,
|
|
555
|
+
isActive: !embeddedShellFocused,
|
|
512
556
|
});
|
|
513
557
|
const { messageQueue, addMessage, clearQueue, getQueuedMessagesText, popAllMessages, } = useMessageQueue({
|
|
514
558
|
isConfigInitialized,
|
|
@@ -549,16 +593,8 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
549
593
|
const handleClearScreen = useCallback(() => {
|
|
550
594
|
historyManager.clearItems();
|
|
551
595
|
clearConsoleMessagesState();
|
|
552
|
-
if (!isAlternateBuffer) {
|
|
553
|
-
console.clear();
|
|
554
|
-
}
|
|
555
596
|
refreshStatic();
|
|
556
|
-
}, [
|
|
557
|
-
historyManager,
|
|
558
|
-
clearConsoleMessagesState,
|
|
559
|
-
refreshStatic,
|
|
560
|
-
isAlternateBuffer,
|
|
561
|
-
]);
|
|
597
|
+
}, [historyManager, clearConsoleMessagesState, refreshStatic]);
|
|
562
598
|
const { handleInput: vimHandleInput } = useVim(buffer, handleFinalSubmit);
|
|
563
599
|
/**
|
|
564
600
|
* Determines if the input prompt should be active and accept user input.
|
|
@@ -591,9 +627,9 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
591
627
|
terminalHeight: Math.max(Math.floor(availableTerminalHeight - SHELL_HEIGHT_PADDING), 1),
|
|
592
628
|
pager: settings.merged.tools?.shell?.pager,
|
|
593
629
|
showColor: settings.merged.tools?.shell?.showColor,
|
|
630
|
+
sanitizationConfig: config.sanitizationConfig,
|
|
594
631
|
});
|
|
595
632
|
const isFocused = useFocus();
|
|
596
|
-
useBracketedPaste();
|
|
597
633
|
// Context file names computation
|
|
598
634
|
const contextFileNames = useMemo(() => {
|
|
599
635
|
const fromSettings = settings.merged.context?.fileName;
|
|
@@ -677,17 +713,18 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
677
713
|
const { needsRestart: ideNeedsRestart, restartReason: ideTrustRestartReason, } = useIdeTrustListener();
|
|
678
714
|
const isInitialMount = useRef(true);
|
|
679
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
|
+
}, []);
|
|
680
727
|
useEffect(() => {
|
|
681
|
-
let timeoutId;
|
|
682
|
-
const handleWarning = (message) => {
|
|
683
|
-
setWarningMessage(message);
|
|
684
|
-
if (timeoutId) {
|
|
685
|
-
clearTimeout(timeoutId);
|
|
686
|
-
}
|
|
687
|
-
timeoutId = setTimeout(() => {
|
|
688
|
-
setWarningMessage(null);
|
|
689
|
-
}, WARNING_PROMPT_DURATION_MS);
|
|
690
|
-
};
|
|
691
728
|
const handleSelectionWarning = () => {
|
|
692
729
|
handleWarning('Press Ctrl-S to enter selection mode to copy text.');
|
|
693
730
|
};
|
|
@@ -699,11 +736,14 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
699
736
|
return () => {
|
|
700
737
|
appEvents.off(AppEvent.SelectionWarning, handleSelectionWarning);
|
|
701
738
|
appEvents.off(AppEvent.PasteTimeout, handlePasteTimeout);
|
|
702
|
-
if (
|
|
703
|
-
clearTimeout(
|
|
739
|
+
if (warningTimeoutRef.current) {
|
|
740
|
+
clearTimeout(warningTimeoutRef.current);
|
|
741
|
+
}
|
|
742
|
+
if (tabFocusTimeoutRef.current) {
|
|
743
|
+
clearTimeout(tabFocusTimeoutRef.current);
|
|
704
744
|
}
|
|
705
745
|
};
|
|
706
|
-
}, []);
|
|
746
|
+
}, [handleWarning]);
|
|
707
747
|
useEffect(() => {
|
|
708
748
|
let timeoutId;
|
|
709
749
|
const handleWarning = (message) => {
|
|
@@ -825,7 +865,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
825
865
|
}
|
|
826
866
|
setIdePromptAnswered(true);
|
|
827
867
|
}, [handleSlashCommand, settings]);
|
|
828
|
-
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);
|
|
829
869
|
const handleGlobalKeypress = useCallback((key) => {
|
|
830
870
|
if (copyModeEnabled) {
|
|
831
871
|
setCopyModeEnabled(false);
|
|
@@ -875,7 +915,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
875
915
|
return newValue;
|
|
876
916
|
});
|
|
877
917
|
}
|
|
878
|
-
else if (keyMatchers[Command.
|
|
918
|
+
else if (keyMatchers[Command.SHOW_IDE_CONTEXT_DETAIL](key) &&
|
|
879
919
|
config.getIdeMode() &&
|
|
880
920
|
ideContextState) {
|
|
881
921
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
@@ -885,10 +925,34 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
885
925
|
!enteringConstrainHeightMode) {
|
|
886
926
|
setConstrainHeight(false);
|
|
887
927
|
}
|
|
888
|
-
else if (keyMatchers[Command.
|
|
889
|
-
|
|
890
|
-
|
|
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;
|
|
891
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;
|
|
954
|
+
}
|
|
955
|
+
handleWarning('Press Shift+Tab to focus out.');
|
|
892
956
|
}
|
|
893
957
|
}, [
|
|
894
958
|
constrainHeight,
|
|
@@ -908,37 +972,40 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
908
972
|
setCopyModeEnabled,
|
|
909
973
|
copyModeEnabled,
|
|
910
974
|
isAlternateBuffer,
|
|
975
|
+
handleWarning,
|
|
911
976
|
]);
|
|
912
977
|
useKeypress(handleGlobalKeypress, { isActive: true });
|
|
913
978
|
// Update terminal title with Cell CLI status and thoughts
|
|
914
979
|
useEffect(() => {
|
|
915
|
-
// Respect
|
|
916
|
-
if (
|
|
917
|
-
settings.merged.ui?.hideWindowTitle)
|
|
980
|
+
// Respect hideWindowTitle settings
|
|
981
|
+
if (settings.merged.ui?.hideWindowTitle)
|
|
918
982
|
return;
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
}
|
|
929
|
-
// Pad the title to a fixed width to prevent taskbar icon resizing.
|
|
930
|
-
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
|
+
});
|
|
931
993
|
// Only update the title if it's different from the last value we set
|
|
932
994
|
if (lastTitleRef.current !== paddedTitle) {
|
|
933
995
|
lastTitleRef.current = paddedTitle;
|
|
934
|
-
stdout.write(`\x1b]
|
|
996
|
+
stdout.write(`\x1b]0;${paddedTitle}\x07`);
|
|
935
997
|
}
|
|
936
998
|
// Note: We don't need to reset the window title on exit because Cell CLI is already doing that elsewhere
|
|
937
999
|
}, [
|
|
938
1000
|
streamingState,
|
|
939
1001
|
thought,
|
|
1002
|
+
shellConfirmationRequest,
|
|
1003
|
+
confirmationRequest,
|
|
1004
|
+
showShellActionRequired,
|
|
940
1005
|
settings.merged.ui?.showStatusInTitle,
|
|
1006
|
+
settings.merged.ui?.dynamicWindowTitle,
|
|
941
1007
|
settings.merged.ui?.hideWindowTitle,
|
|
1008
|
+
config,
|
|
942
1009
|
stdout,
|
|
943
1010
|
]);
|
|
944
1011
|
useEffect(() => {
|
|
@@ -1102,6 +1169,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1102
1169
|
elapsedTime,
|
|
1103
1170
|
currentLoadingPhrase,
|
|
1104
1171
|
historyRemountKey,
|
|
1172
|
+
activeHooks,
|
|
1105
1173
|
messageQueue,
|
|
1106
1174
|
queueErrorMessage,
|
|
1107
1175
|
showAutoAcceptIndicator,
|
|
@@ -1137,6 +1205,8 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1137
1205
|
warningMessage,
|
|
1138
1206
|
bannerData,
|
|
1139
1207
|
bannerVisible,
|
|
1208
|
+
terminalBackgroundColor: config.getTerminalBackground(),
|
|
1209
|
+
settingsNonce,
|
|
1140
1210
|
}), [
|
|
1141
1211
|
isThemeDialogOpen,
|
|
1142
1212
|
themeError,
|
|
@@ -1190,6 +1260,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1190
1260
|
elapsedTime,
|
|
1191
1261
|
currentLoadingPhrase,
|
|
1192
1262
|
historyRemountKey,
|
|
1263
|
+
activeHooks,
|
|
1193
1264
|
messageQueue,
|
|
1194
1265
|
queueErrorMessage,
|
|
1195
1266
|
showAutoAcceptIndicator,
|
|
@@ -1229,6 +1300,8 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1229
1300
|
warningMessage,
|
|
1230
1301
|
bannerData,
|
|
1231
1302
|
bannerVisible,
|
|
1303
|
+
config,
|
|
1304
|
+
settingsNonce,
|
|
1232
1305
|
]);
|
|
1233
1306
|
const exitPrivacyNotice = useCallback(() => setShowPrivacyNotice(false), [setShowPrivacyNotice]);
|
|
1234
1307
|
const uiActions = useMemo(() => ({
|
|
@@ -1265,6 +1338,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1265
1338
|
handleApiKeyCancel,
|
|
1266
1339
|
setBannerVisible,
|
|
1267
1340
|
setEmbeddedShellFocused,
|
|
1341
|
+
setAuthContext,
|
|
1268
1342
|
}), [
|
|
1269
1343
|
handleThemeSelect,
|
|
1270
1344
|
closeThemeDialog,
|
|
@@ -1299,7 +1373,14 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1299
1373
|
handleApiKeyCancel,
|
|
1300
1374
|
setBannerVisible,
|
|
1301
1375
|
setEmbeddedShellFocused,
|
|
1376
|
+
setAuthContext,
|
|
1302
1377
|
]);
|
|
1378
|
+
if (authState === AuthState.AwaitingGoogleLoginRestart) {
|
|
1379
|
+
return (_jsx(LoginWithGoogleRestartDialog, { onDismiss: () => {
|
|
1380
|
+
setAuthContext({});
|
|
1381
|
+
setAuthState(AuthState.Updating);
|
|
1382
|
+
} }));
|
|
1383
|
+
}
|
|
1303
1384
|
return (_jsx(UIStateContext.Provider, { value: uiState, children: _jsx(UIActionsContext.Provider, { value: uiActions, children: _jsx(ConfigContext.Provider, { value: config, children: _jsx(AppContext.Provider, { value: {
|
|
1304
1385
|
version: props.version,
|
|
1305
1386
|
startupWarnings: props.startupWarnings || [],
|