@machina.ai/cell-cli 1.36.0-rc1 → 1.38.1-rc2
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/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/package.json +4 -4
- package/dist/src/acp/acpClient.js +297 -32
- package/dist/src/acp/acpClient.js.map +1 -1
- package/dist/src/acp/acpClient.test.js +419 -19
- package/dist/src/acp/acpClient.test.js.map +1 -1
- package/dist/src/acp/acpResume.test.js +8 -0
- package/dist/src/acp/acpResume.test.js.map +1 -1
- package/dist/src/acp/commandHandler.js +4 -0
- package/dist/src/acp/commandHandler.js.map +1 -1
- package/dist/src/acp/commandHandler.test.js +4 -0
- package/dist/src/acp/commandHandler.test.js.map +1 -1
- package/dist/src/acp/commands/about.d.ts +11 -0
- package/dist/src/acp/commands/about.js +53 -0
- package/dist/src/acp/commands/about.js.map +1 -0
- package/dist/src/acp/commands/extensions.js +1 -1
- package/dist/src/acp/commands/extensions.js.map +1 -1
- package/dist/src/acp/commands/help.d.ts +14 -0
- package/dist/src/acp/commands/help.js +35 -0
- package/dist/src/acp/commands/help.js.map +1 -0
- package/dist/src/acp/commands/help.test.d.ts +6 -0
- package/dist/src/acp/commands/help.test.js +40 -0
- package/dist/src/acp/commands/help.test.js.map +1 -0
- package/dist/src/acp/commands/restore.js +2 -2
- package/dist/src/acp/commands/restore.js.map +1 -1
- package/dist/src/commands/extensions/new.js +1 -1
- package/dist/src/commands/extensions/new.js.map +1 -1
- package/dist/src/commands/mcp/list.js +2 -2
- package/dist/src/commands/mcp/list.js.map +1 -1
- package/dist/src/commands/mcp.test.js +1 -1
- package/dist/src/commands/mcp.test.js.map +1 -1
- package/dist/src/commands/skills/list.js +5 -8
- package/dist/src/commands/skills/list.js.map +1 -1
- package/dist/src/commands/skills/list.test.js +17 -13
- package/dist/src/commands/skills/list.test.js.map +1 -1
- package/dist/src/config/config.js +22 -9
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +121 -36
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extension-manager-permissions.test.js +1 -1
- package/dist/src/config/extension-manager-permissions.test.js.map +1 -1
- package/dist/src/config/extension-manager-themes.spec.js +1 -0
- package/dist/src/config/extension-manager-themes.spec.js.map +1 -1
- package/dist/src/config/extension-manager.test.js +1 -1
- package/dist/src/config/extension-manager.test.js.map +1 -1
- package/dist/src/config/extension.js +1 -1
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/extensions/github.js +1 -1
- package/dist/src/config/extensions/github.js.map +1 -1
- package/dist/src/config/footerItems.d.ts +4 -0
- package/dist/src/config/footerItems.js +12 -2
- package/dist/src/config/footerItems.js.map +1 -1
- package/dist/src/config/footerItems.test.js +129 -72
- package/dist/src/config/footerItems.test.js.map +1 -1
- package/dist/src/config/policy-engine.integration.test.js +1 -3
- package/dist/src/config/policy-engine.integration.test.js.map +1 -1
- package/dist/src/config/policy.d.ts +1 -1
- package/dist/src/config/policy.js +2 -2
- package/dist/src/config/policy.js.map +1 -1
- package/dist/src/config/settings.js +19 -3
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +272 -53
- package/dist/src/config/settingsSchema.js +262 -48
- 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/workspace-policy-cli.test.js +7 -7
- package/dist/src/config/workspace-policy-cli.test.js.map +1 -1
- package/dist/src/gemini.js +24 -7
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +74 -4
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/gemini_cleanup.test.js +69 -4
- package/dist/src/gemini_cleanup.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/integration-tests/modelSteering.test.js +1 -1
- package/dist/src/integration-tests/modelSteering.test.js.map +1 -1
- package/dist/src/interactiveCli.js +4 -2
- package/dist/src/interactiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.d.ts +1 -1
- package/dist/src/nonInteractiveCli.js +11 -2
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.test.js +4 -2
- package/dist/src/nonInteractiveCli.test.js.map +1 -1
- package/dist/src/nonInteractiveCliAgentSession.d.ts +16 -0
- package/dist/src/nonInteractiveCliAgentSession.js +484 -0
- package/dist/src/nonInteractiveCliAgentSession.js.map +1 -0
- package/dist/src/nonInteractiveCliAgentSession.test.js +1837 -0
- package/dist/src/nonInteractiveCliAgentSession.test.js.map +1 -0
- package/dist/src/services/BuiltinCommandLoader.js +4 -2
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/test-utils/mockCommandContext.js +1 -0
- package/dist/src/test-utils/mockCommandContext.js.map +1 -1
- package/dist/src/test-utils/mockConfig.js +16 -0
- package/dist/src/test-utils/mockConfig.js.map +1 -1
- package/dist/src/test-utils/mockSpinner.d.ts +6 -0
- package/dist/src/test-utils/mockSpinner.js +21 -0
- package/dist/src/test-utils/mockSpinner.js.map +1 -0
- package/dist/src/test-utils/render.d.ts +8 -1
- package/dist/src/test-utils/render.js +37 -11
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/ui/App.test.js +1 -1
- package/dist/src/ui/App.test.js.map +1 -1
- package/dist/src/ui/AppContainer.js +225 -99
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +50 -38
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.js +15 -5
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.js +3 -1
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/directoryCommand.js +1 -1
- package/dist/src/ui/commands/directoryCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.js +22 -11
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
- package/dist/src/ui/commands/marketplaceCommand.d.ts +7 -0
- package/dist/src/ui/commands/marketplaceCommand.js +135 -0
- package/dist/src/ui/commands/marketplaceCommand.js.map +1 -0
- package/dist/src/ui/commands/mcpCommand.js +26 -7
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.test.js +26 -0
- package/dist/src/ui/commands/mcpCommand.test.js.map +1 -1
- package/dist/src/ui/commands/planCommand.js +9 -0
- package/dist/src/ui/commands/planCommand.js.map +1 -1
- package/dist/src/ui/commands/planCommand.test.js +29 -0
- package/dist/src/ui/commands/planCommand.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/rewindCommand.js +3 -1
- package/dist/src/ui/commands/rewindCommand.js.map +1 -1
- package/dist/src/ui/commands/rewindCommand.test.js +1 -1
- package/dist/src/ui/commands/rewindCommand.test.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.js +5 -5
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
- package/dist/src/ui/commands/skillsCommand.js +11 -1
- package/dist/src/ui/commands/skillsCommand.js.map +1 -1
- package/dist/src/ui/commands/skillsCommand.test.js +1 -0
- package/dist/src/ui/commands/skillsCommand.test.js.map +1 -1
- package/dist/src/ui/commands/{shellsCommand.d.ts → tasksCommand.d.ts} +1 -1
- package/dist/src/ui/commands/{shellsCommand.js → tasksCommand.js} +6 -6
- package/dist/src/ui/commands/tasksCommand.js.map +1 -0
- package/dist/src/ui/commands/tasksCommand.test.js +30 -0
- package/dist/src/ui/commands/tasksCommand.test.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +9 -1
- package/dist/src/ui/components/AnsiOutput.js +7 -5
- package/dist/src/ui/components/AnsiOutput.js.map +1 -1
- package/dist/src/ui/components/AnsiOutput.test.js +13 -0
- package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
- package/dist/src/ui/components/AppHeader.js +11 -11
- package/dist/src/ui/components/AppHeader.js.map +1 -1
- package/dist/src/ui/components/AppHeader.test.js +6 -2
- 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/AskUserDialog.js +13 -13
- package/dist/src/ui/components/AskUserDialog.js.map +1 -1
- package/dist/src/ui/components/AskUserDialog.test.js +31 -0
- package/dist/src/ui/components/AskUserDialog.test.js.map +1 -1
- package/dist/src/ui/components/BackgroundTaskDisplay.d.ts +16 -0
- package/dist/src/ui/components/{BackgroundShellDisplay.js → BackgroundTaskDisplay.js} +12 -12
- package/dist/src/ui/components/BackgroundTaskDisplay.js.map +1 -0
- package/dist/src/ui/components/{BackgroundShellDisplay.test.js → BackgroundTaskDisplay.test.js} +26 -26
- package/dist/src/ui/components/BackgroundTaskDisplay.test.js.map +1 -0
- package/dist/src/ui/components/Composer.js +20 -208
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +22 -17
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.js +3 -1
- package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/CopyModeWarning.js +3 -6
- package/dist/src/ui/components/CopyModeWarning.js.map +1 -1
- package/dist/src/ui/components/CopyModeWarning.test.js +7 -8
- package/dist/src/ui/components/CopyModeWarning.test.js.map +1 -1
- package/dist/src/ui/components/ExitPlanModeDialog.js +9 -0
- package/dist/src/ui/components/ExitPlanModeDialog.js.map +1 -1
- package/dist/src/ui/components/ExitPlanModeDialog.test.js +15 -3
- package/dist/src/ui/components/ExitPlanModeDialog.test.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js +7 -8
- package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.js +36 -9
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/Footer.test.js +85 -6
- package/dist/src/ui/components/Footer.test.js.map +1 -1
- package/dist/src/ui/components/FooterConfigDialog.js +1 -0
- package/dist/src/ui/components/FooterConfigDialog.js.map +1 -1
- package/dist/src/ui/components/FooterConfigDialog.test.js +1 -1
- package/dist/src/ui/components/Help.test.js +1 -1
- package/dist/src/ui/components/Help.test.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.d.ts +2 -0
- package/dist/src/ui/components/HistoryItemDisplay.js +14 -12
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.d.ts +10 -5
- package/dist/src/ui/components/InputPrompt.js +195 -90
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.d.ts +12 -1
- package/dist/src/ui/components/InputPrompt.test.js +370 -160
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.js +1 -2
- package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.test.js +7 -0
- package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/components/MainContent.d.ts +1 -1
- package/dist/src/ui/components/MainContent.js +105 -34
- package/dist/src/ui/components/MainContent.js.map +1 -1
- package/dist/src/ui/components/MainContent.test.js +12 -9
- package/dist/src/ui/components/MainContent.test.js.map +1 -1
- package/dist/src/ui/components/MemoryUsageDisplay.d.ts +1 -0
- package/dist/src/ui/components/MemoryUsageDisplay.js +5 -2
- package/dist/src/ui/components/MemoryUsageDisplay.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.js +50 -72
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.test.js +1 -0
- package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
- package/dist/src/ui/components/ModelQuotaDisplay.d.ts +18 -0
- package/dist/src/ui/components/ModelQuotaDisplay.js +104 -0
- package/dist/src/ui/components/ModelQuotaDisplay.js.map +1 -0
- package/dist/src/ui/components/ModelQuotaDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/ModelQuotaDisplay.test.js +62 -0
- package/dist/src/ui/components/ModelQuotaDisplay.test.js.map +1 -0
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/ProgressBar.d.ts +13 -0
- package/dist/src/ui/components/ProgressBar.js +17 -0
- package/dist/src/ui/components/ProgressBar.js.map +1 -0
- package/dist/src/ui/components/ProgressBar.test.d.ts +6 -0
- package/dist/src/ui/components/ProgressBar.test.js +28 -0
- package/dist/src/ui/components/ProgressBar.test.js.map +1 -0
- package/dist/src/ui/components/StatsDisplay.d.ts +2 -2
- package/dist/src/ui/components/StatsDisplay.js +47 -128
- package/dist/src/ui/components/StatsDisplay.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.test.js +65 -136
- package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/StatusDisplay.js +1 -1
- package/dist/src/ui/components/StatusDisplay.js.map +1 -1
- package/dist/src/ui/components/StatusDisplay.test.js +3 -3
- package/dist/src/ui/components/StatusDisplay.test.js.map +1 -1
- package/dist/src/ui/components/StatusRow.d.ts +32 -0
- package/dist/src/ui/components/StatusRow.js +180 -0
- package/dist/src/ui/components/StatusRow.js.map +1 -0
- package/dist/src/ui/components/StatusRow.test.d.ts +6 -0
- package/dist/src/ui/components/StatusRow.test.js +99 -0
- package/dist/src/ui/components/StatusRow.test.js.map +1 -0
- package/dist/src/ui/components/ToastDisplay.d.ts +2 -1
- package/dist/src/ui/components/ToastDisplay.js +7 -5
- package/dist/src/ui/components/ToastDisplay.js.map +1 -1
- package/dist/src/ui/components/ToastDisplay.test.js +34 -20
- package/dist/src/ui/components/ToastDisplay.test.js.map +1 -1
- package/dist/src/ui/components/ToolConfirmationQueue.js +24 -9
- package/dist/src/ui/components/ToolConfirmationQueue.js.map +1 -1
- package/dist/src/ui/components/ToolConfirmationQueue.test.js +4 -6
- package/dist/src/ui/components/ToolConfirmationQueue.test.js.map +1 -1
- package/dist/src/ui/components/UserIdentity.js +8 -5
- package/dist/src/ui/components/UserIdentity.js.map +1 -1
- package/dist/src/ui/components/messages/DenseToolMessage.d.ts +13 -0
- package/dist/src/ui/components/messages/DenseToolMessage.js +270 -0
- package/dist/src/ui/components/messages/DenseToolMessage.js.map +1 -0
- package/dist/src/ui/components/messages/DenseToolMessage.test.d.ts +6 -0
- package/dist/src/ui/components/messages/DenseToolMessage.test.js +383 -0
- package/dist/src/ui/components/messages/DenseToolMessage.test.js.map +1 -0
- package/dist/src/ui/components/messages/DiffRenderer.d.ts +18 -0
- package/dist/src/ui/components/messages/DiffRenderer.js +54 -34
- package/dist/src/ui/components/messages/DiffRenderer.js.map +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.test.js +12 -6
- package/dist/src/ui/components/messages/DiffRenderer.test.js.map +1 -1
- package/dist/src/ui/components/messages/InfoMessage.d.ts +1 -0
- package/dist/src/ui/components/messages/InfoMessage.js +2 -2
- package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
- package/dist/src/ui/components/messages/RedirectionConfirmation.test.js +1 -1
- package/dist/src/ui/components/messages/RedirectionConfirmation.test.js.map +1 -1
- package/dist/src/ui/components/messages/ShellToolMessage.test.js +44 -33
- package/dist/src/ui/components/messages/ShellToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/SubagentGroupDisplay.js +3 -2
- package/dist/src/ui/components/messages/SubagentGroupDisplay.js.map +1 -1
- package/dist/src/ui/components/messages/SubagentGroupDisplay.test.js +1 -1
- package/dist/src/ui/components/messages/SubagentGroupDisplay.test.js.map +1 -1
- package/dist/src/ui/components/messages/SubagentHistoryMessage.d.ts +13 -0
- package/dist/src/ui/components/messages/SubagentHistoryMessage.js +4 -0
- package/dist/src/ui/components/messages/SubagentHistoryMessage.js.map +1 -0
- package/dist/src/ui/components/messages/SubagentHistoryMessage.test.d.ts +6 -0
- package/dist/src/ui/components/messages/SubagentHistoryMessage.test.js +68 -0
- package/dist/src/ui/components/messages/SubagentHistoryMessage.test.js.map +1 -0
- package/dist/src/ui/components/messages/SubagentProgressDisplay.d.ts +2 -1
- package/dist/src/ui/components/messages/SubagentProgressDisplay.js +2 -2
- package/dist/src/ui/components/messages/SubagentProgressDisplay.js.map +1 -1
- package/dist/src/ui/components/messages/SubagentProgressDisplay.test.js +0 -4
- package/dist/src/ui/components/messages/SubagentProgressDisplay.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.d.ts +1 -0
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +108 -70
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +40 -25
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.compact.test.d.ts +6 -0
- package/dist/src/ui/components/messages/ToolGroupMessage.compact.test.js +147 -0
- package/dist/src/ui/components/messages/ToolGroupMessage.compact.test.js.map +1 -0
- package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +3 -0
- package/dist/src/ui/components/messages/ToolGroupMessage.js +219 -52
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js +55 -3
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.test.js +8 -7
- package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolOverflowConsistencyChecks.test.js +1 -1
- package/dist/src/ui/components/messages/ToolOverflowConsistencyChecks.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolResultDisplay.js +57 -15
- package/dist/src/ui/components/messages/ToolResultDisplay.js.map +1 -1
- package/dist/src/ui/components/messages/ToolResultDisplay.test.js +66 -3
- package/dist/src/ui/components/messages/ToolResultDisplay.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolResultDisplayOverflow.test.js +5 -4
- package/dist/src/ui/components/messages/ToolResultDisplayOverflow.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.js +3 -3
- package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.js.map +1 -1
- package/dist/src/ui/components/messages/TopicMessage.d.ts +15 -0
- package/dist/src/ui/components/messages/TopicMessage.js +56 -0
- package/dist/src/ui/components/messages/TopicMessage.js.map +1 -0
- package/dist/src/ui/components/messages/TopicMessage.test.d.ts +6 -0
- package/dist/src/ui/components/messages/TopicMessage.test.js +77 -0
- package/dist/src/ui/components/messages/TopicMessage.test.js.map +1 -0
- package/dist/src/ui/components/shared/MaxSizedBox.d.ts +1 -0
- package/dist/src/ui/components/shared/MaxSizedBox.js +10 -7
- package/dist/src/ui/components/shared/MaxSizedBox.js.map +1 -1
- package/dist/src/ui/components/shared/Scrollable.d.ts +3 -0
- package/dist/src/ui/components/shared/Scrollable.js +6 -2
- package/dist/src/ui/components/shared/Scrollable.js.map +1 -1
- package/dist/src/ui/components/shared/ScrollableList.d.ts +9 -12
- package/dist/src/ui/components/shared/ScrollableList.js +2 -2
- package/dist/src/ui/components/shared/ScrollableList.js.map +1 -1
- package/dist/src/ui/components/shared/VirtualizedList.d.ts +13 -1
- package/dist/src/ui/components/shared/VirtualizedList.js +148 -37
- package/dist/src/ui/components/shared/VirtualizedList.js.map +1 -1
- package/dist/src/ui/components/shared/VirtualizedList.test.js +1 -10
- package/dist/src/ui/components/shared/VirtualizedList.test.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.d.ts +1 -0
- package/dist/src/ui/components/shared/text-buffer.js +19 -21
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionDetails.d.ts +4 -1
- package/dist/src/ui/components/views/ExtensionDetails.js +14 -4
- package/dist/src/ui/components/views/ExtensionDetails.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionDetails.test.js +25 -1
- package/dist/src/ui/components/views/ExtensionDetails.test.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionRegistryView.js +19 -5
- package/dist/src/ui/components/views/ExtensionRegistryView.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionRegistryView.test.js +38 -0
- package/dist/src/ui/components/views/ExtensionRegistryView.test.js.map +1 -1
- package/dist/src/ui/components/views/SkillsList.js +2 -1
- package/dist/src/ui/components/views/SkillsList.js.map +1 -1
- package/dist/src/ui/components/views/SkillsList.test.js +3 -1
- package/dist/src/ui/components/views/SkillsList.test.js.map +1 -1
- package/dist/src/ui/constants/tips.js +2 -2
- package/dist/src/ui/constants/tips.js.map +1 -1
- package/dist/src/ui/constants.d.ts +6 -0
- package/dist/src/ui/constants.js +15 -0
- package/dist/src/ui/constants.js.map +1 -1
- package/dist/src/ui/contexts/InputContext.d.ts +17 -0
- package/dist/src/ui/contexts/InputContext.js +15 -0
- package/dist/src/ui/contexts/InputContext.js.map +1 -0
- package/dist/src/ui/contexts/KeypressContext.js +1 -1
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +25 -1
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/ScrollProvider.js +25 -3
- package/dist/src/ui/contexts/ScrollProvider.js.map +1 -1
- package/dist/src/ui/contexts/ScrollProvider.test.js +100 -0
- package/dist/src/ui/contexts/ScrollProvider.test.js.map +1 -1
- package/dist/src/ui/contexts/SessionContext.d.ts +2 -2
- package/dist/src/ui/contexts/SessionContext.js.map +1 -1
- package/dist/src/ui/contexts/ToolActionsContext.d.ts +6 -0
- package/dist/src/ui/contexts/ToolActionsContext.js +19 -11
- package/dist/src/ui/contexts/ToolActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/ToolActionsContext.test.js +90 -7
- package/dist/src/ui/contexts/ToolActionsContext.test.js.map +1 -1
- package/dist/src/ui/contexts/UIActionsContext.d.ts +4 -3
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +10 -16
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +2 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor_agents.test.js +2 -1
- package/dist/src/ui/hooks/atCommandProcessor_agents.test.js.map +1 -1
- package/dist/src/ui/hooks/shellReducer.d.ts +12 -10
- package/dist/src/ui/hooks/shellReducer.js +67 -37
- package/dist/src/ui/hooks/shellReducer.js.map +1 -1
- package/dist/src/ui/hooks/shellReducer.test.js +207 -36
- package/dist/src/ui/hooks/shellReducer.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.d.ts +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +1 -1
- package/dist/src/ui/hooks/toolMapping.js +7 -0
- package/dist/src/ui/hooks/toolMapping.js.map +1 -1
- package/dist/src/ui/hooks/useAlternateBuffer.js +6 -1
- package/dist/src/ui/hooks/useAlternateBuffer.js.map +1 -1
- package/dist/src/ui/hooks/useAlternateBuffer.test.js +5 -0
- package/dist/src/ui/hooks/useAlternateBuffer.test.js.map +1 -1
- package/dist/src/ui/hooks/useAnimatedScrollbar.js +2 -2
- package/dist/src/ui/hooks/useAnimatedScrollbar.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.js +1 -1
- package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useBackgroundTaskManager.d.ts +22 -0
- package/dist/src/ui/hooks/useBackgroundTaskManager.js +58 -0
- package/dist/src/ui/hooks/useBackgroundTaskManager.js.map +1 -0
- package/dist/src/ui/hooks/{useBackgroundShellManager.test.js → useBackgroundTaskManager.test.js} +50 -50
- package/dist/src/ui/hooks/useBackgroundTaskManager.test.js.map +1 -0
- package/dist/src/ui/hooks/useBanner.d.ts +1 -0
- package/dist/src/ui/hooks/useBanner.js +16 -9
- package/dist/src/ui/hooks/useBanner.js.map +1 -1
- package/dist/src/ui/hooks/useBanner.test.js +7 -4
- package/dist/src/ui/hooks/useBanner.test.js.map +1 -1
- package/dist/src/ui/hooks/useBatchedScroll.js +2 -2
- package/dist/src/ui/hooks/useBatchedScroll.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.d.ts +2 -1
- package/dist/src/ui/hooks/useCommandCompletion.js +13 -3
- package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.test.d.ts +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.test.js +82 -6
- package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useComposerStatus.d.ts +21 -0
- package/dist/src/ui/hooks/useComposerStatus.js +78 -0
- package/dist/src/ui/hooks/useComposerStatus.js.map +1 -0
- package/dist/src/ui/hooks/useConsoleMessages.test.js +2 -2
- package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -1
- package/dist/src/ui/hooks/useExecutionLifecycle.d.ts +28 -0
- package/dist/src/ui/hooks/{shellCommandProcessor.js → useExecutionLifecycle.js} +140 -58
- package/dist/src/ui/hooks/useExecutionLifecycle.js.map +1 -0
- package/dist/src/ui/hooks/useExecutionLifecycle.test.d.ts +6 -0
- package/dist/src/ui/hooks/{shellCommandProcessor.test.js → useExecutionLifecycle.test.js} +123 -81
- package/dist/src/ui/hooks/useExecutionLifecycle.test.js.map +1 -0
- package/dist/src/ui/hooks/useFolderTrust.js +1 -1
- package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.test.js +1 -1
- package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.d.ts +6 -6
- package/dist/src/ui/hooks/useGeminiStream.js +140 -38
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +176 -22
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.js +2 -2
- package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.js +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.test.js +10 -0
- package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/usePermissionsModifyTrust.js +2 -2
- package/dist/src/ui/hooks/usePermissionsModifyTrust.js.map +1 -1
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +1 -1
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.js +4 -2
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/useSessionBrowser.d.ts +1 -1
- package/dist/src/ui/hooks/useSessionBrowser.js +2 -2
- package/dist/src/ui/hooks/useSessionBrowser.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.d.ts +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +37 -63
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.d.ts +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.js +57 -47
- package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.d.ts +2 -1
- package/dist/src/ui/hooks/useToolScheduler.js +55 -1
- package/dist/src/ui/hooks/useToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +107 -9
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/key/keyBindings.d.ts +9 -1
- package/dist/src/ui/key/keyBindings.js +40 -3
- package/dist/src/ui/key/keyBindings.js.map +1 -1
- package/dist/src/ui/key/keyMatchers.test.js +12 -2
- package/dist/src/ui/key/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/layouts/DefaultAppLayout.js +8 -6
- package/dist/src/ui/layouts/DefaultAppLayout.js.map +1 -1
- package/dist/src/ui/layouts/DefaultAppLayout.test.js +27 -22
- package/dist/src/ui/layouts/DefaultAppLayout.test.js.map +1 -1
- package/dist/src/ui/noninteractive/nonInteractiveUi.js +1 -1
- package/dist/src/ui/themes/builtin/dark/tokyonight-dark.d.ts +7 -0
- package/dist/src/ui/themes/builtin/dark/tokyonight-dark.js +147 -0
- package/dist/src/ui/themes/builtin/dark/tokyonight-dark.js.map +1 -0
- package/dist/src/ui/themes/theme-manager.js +2 -0
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/themes/theme.js +1 -1
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/types.d.ts +10 -2
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.d.ts +1 -0
- package/dist/src/ui/utils/CodeColorizer.js +17 -18
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/ConsolePatcher.d.ts +1 -0
- package/dist/src/ui/utils/ConsolePatcher.js +12 -5
- package/dist/src/ui/utils/ConsolePatcher.js.map +1 -1
- package/dist/src/ui/utils/ConsolePatcher.test.d.ts +6 -0
- package/dist/src/ui/utils/ConsolePatcher.test.js +199 -0
- package/dist/src/ui/utils/ConsolePatcher.test.js.map +1 -0
- package/dist/src/ui/utils/TableRenderer.js +3 -3
- package/dist/src/ui/utils/TableRenderer.js.map +1 -1
- package/dist/src/ui/utils/borderStyles.d.ts +2 -2
- package/dist/src/ui/utils/borderStyles.js +2 -2
- package/dist/src/ui/utils/borderStyles.js.map +1 -1
- package/dist/src/ui/utils/directoryUtils.js +1 -1
- package/dist/src/ui/utils/directoryUtils.js.map +1 -1
- package/dist/src/ui/utils/fileUtils.d.ts +10 -0
- package/dist/src/ui/utils/fileUtils.js +17 -0
- package/dist/src/ui/utils/fileUtils.js.map +1 -0
- package/dist/src/ui/utils/terminalCapabilityManager.d.ts +1 -0
- package/dist/src/ui/utils/terminalCapabilityManager.js +8 -0
- package/dist/src/ui/utils/terminalCapabilityManager.js.map +1 -1
- package/dist/src/ui/utils/terminalCapabilityManager.test.js +38 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +1 -1
- package/dist/src/ui/utils/toolLayoutUtils.d.ts +1 -1
- package/dist/src/ui/utils/toolLayoutUtils.js +1 -1
- package/dist/src/ui/utils/ui-sizing.test.js +1 -0
- package/dist/src/ui/utils/ui-sizing.test.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.d.ts +1 -0
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/utils/activityLogger.js +16 -0
- package/dist/src/utils/activityLogger.js.map +1 -1
- package/dist/src/utils/cleanup.js +12 -5
- package/dist/src/utils/cleanup.js.map +1 -1
- package/dist/src/utils/commands.js +15 -0
- package/dist/src/utils/commands.js.map +1 -1
- package/dist/src/utils/commands.test.js +79 -0
- package/dist/src/utils/commands.test.js.map +1 -1
- package/dist/src/utils/envVarResolver.d.ts +5 -2
- package/dist/src/utils/envVarResolver.js +15 -6
- package/dist/src/utils/envVarResolver.js.map +1 -1
- package/dist/src/utils/envVarResolver.test.js +41 -24
- package/dist/src/utils/envVarResolver.test.js.map +1 -1
- package/dist/src/utils/errors.js +4 -4
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/events.d.ts +3 -1
- package/dist/src/utils/events.js +1 -0
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/gitUtils.js +4 -4
- package/dist/src/utils/gitUtils.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.js +10 -3
- package/dist/src/utils/handleAutoUpdate.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.test.js +8 -2
- 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/jsonoutput.js +1 -1
- package/dist/src/utils/jsonoutput.js.map +1 -1
- package/dist/src/utils/sandboxUtils.js +1 -1
- package/dist/src/utils/sandboxUtils.js.map +1 -1
- package/dist/src/utils/sessionCleanup.js +7 -30
- package/dist/src/utils/sessionCleanup.js.map +1 -1
- package/dist/src/utils/sessionCleanup.test.js +3 -0
- package/dist/src/utils/sessionCleanup.test.js.map +1 -1
- package/dist/src/utils/sessionUtils.js +1 -0
- package/dist/src/utils/sessionUtils.js.map +1 -1
- package/dist/src/utils/sessionUtils.test.js +179 -3
- package/dist/src/utils/sessionUtils.test.js.map +1 -1
- package/dist/src/utils/sessions.js +1 -1
- package/dist/src/utils/sessions.js.map +1 -1
- package/dist/src/utils/skillUtils.js +3 -1
- package/dist/src/utils/skillUtils.js.map +1 -1
- package/dist/src/utils/skillUtils.test.js +4 -6
- package/dist/src/utils/skillUtils.test.js.map +1 -1
- package/dist/src/utils/terminalNotifications.js +2 -4
- package/dist/src/utils/terminalNotifications.js.map +1 -1
- package/dist/src/utils/terminalNotifications.test.js +5 -3
- package/dist/src/utils/terminalNotifications.test.js.map +1 -1
- package/dist/src/utils/userStartupWarnings.js +2 -2
- package/dist/src/utils/userStartupWarnings.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/dist/src/ui/commands/shellsCommand.js.map +0 -1
- package/dist/src/ui/commands/shellsCommand.test.js +0 -29
- package/dist/src/ui/commands/shellsCommand.test.js.map +0 -1
- package/dist/src/ui/components/BackgroundShellDisplay.d.ts +0 -16
- package/dist/src/ui/components/BackgroundShellDisplay.js.map +0 -1
- package/dist/src/ui/components/BackgroundShellDisplay.test.js.map +0 -1
- package/dist/src/ui/hooks/shellCommandProcessor.d.ts +0 -28
- package/dist/src/ui/hooks/shellCommandProcessor.js.map +0 -1
- package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +0 -1
- package/dist/src/ui/hooks/useBackgroundShellManager.d.ts +0 -22
- package/dist/src/ui/hooks/useBackgroundShellManager.js +0 -58
- package/dist/src/ui/hooks/useBackgroundShellManager.js.map +0 -1
- package/dist/src/ui/hooks/useBackgroundShellManager.test.js.map +0 -1
- /package/dist/src/{ui/commands/shellsCommand.test.d.ts → nonInteractiveCliAgentSession.test.d.ts} +0 -0
- /package/dist/src/ui/{components/BackgroundShellDisplay.test.d.ts → commands/tasksCommand.test.d.ts} +0 -0
- /package/dist/src/ui/{hooks/shellCommandProcessor.test.d.ts → components/BackgroundTaskDisplay.test.d.ts} +0 -0
- /package/dist/src/ui/hooks/{useBackgroundShellManager.test.d.ts → useBackgroundTaskManager.test.d.ts} +0 -0
|
@@ -4,18 +4,19 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
4
4
|
* Copyright 2026 Google LLC
|
|
5
5
|
* SPDX-License-Identifier: Apache-2.0
|
|
6
6
|
*/
|
|
7
|
-
import { useMemo, useState, useCallback, useEffect, useRef } from 'react';
|
|
8
|
-
import { ResizeObserver, useApp, useStdout, useStdin, } from 'ink';
|
|
7
|
+
import { useMemo, useState, useCallback, useEffect, useRef, useLayoutEffect, useContext, } from 'react';
|
|
8
|
+
import { ResizeObserver, useApp, useStdout, useStdin, AppContext as InkAppContext, } from 'ink';
|
|
9
9
|
import { App } from './App.js';
|
|
10
10
|
import { AppContext } from './contexts/AppContext.js';
|
|
11
11
|
import { UIStateContext } from './contexts/UIStateContext.js';
|
|
12
12
|
import { UIActionsContext, } from './contexts/UIActionsContext.js';
|
|
13
13
|
import { ConfigContext } from './contexts/ConfigContext.js';
|
|
14
|
-
import { AuthState, } from './types.js';
|
|
14
|
+
import { AuthState, MessageType, StreamingState, } from './types.js';
|
|
15
15
|
import { checkPermissions } from './hooks/atCommandProcessor.js';
|
|
16
|
-
import { MessageType, StreamingState } from './types.js';
|
|
17
16
|
import { ToolActionsProvider } from './contexts/ToolActionsContext.js';
|
|
18
|
-
import {
|
|
17
|
+
import { MouseProvider } from './contexts/MouseContext.js';
|
|
18
|
+
import { ScrollProvider } from './contexts/ScrollProvider.js';
|
|
19
|
+
import { IdeClient, ideContextStore, getErrorMessage, getAllGeminiMdFilenames, AuthType, clearCachedCredentialFile, recordExitFail, ShellExecutionService, saveApiKey, debugLogger, coreEvents, CoreEvent, refreshServerHierarchicalMemory, flattenMemory, writeToStdout, disableMouseEvents, enterAlternateScreen, enableMouseEvents, disableLineWrapping, shouldEnterAlternateScreen, startupProfiler, SessionStartSource, SessionEndReason, generateSummary, ChangeAuthRequestedError, ProjectIdRequiredError, buildUserSteeringHintPrompt, logBillingEvent, ApiKeyUpdatedEvent, startMemoryService, } from '@google/gemini-cli-core';
|
|
19
20
|
import { validateAuthMethod } from '../config/auth.js';
|
|
20
21
|
import process from 'node:process';
|
|
21
22
|
import { useHistory } from './hooks/useHistoryManager.js';
|
|
@@ -39,7 +40,7 @@ import { computeTerminalTitle } from '../utils/windowTitle.js';
|
|
|
39
40
|
import { useTextBuffer } from './components/shared/text-buffer.js';
|
|
40
41
|
import { useLogger } from './hooks/useLogger.js';
|
|
41
42
|
import { useGeminiStream } from './hooks/useGeminiStream.js';
|
|
42
|
-
import {} from './hooks/
|
|
43
|
+
import {} from './hooks/useExecutionLifecycle.js';
|
|
43
44
|
import { useVim } from './hooks/vim.js';
|
|
44
45
|
import { SettingScope } from '../config/settings.js';
|
|
45
46
|
import {} from '../core/initializer.js';
|
|
@@ -77,7 +78,7 @@ import { useInputHistoryStore } from './hooks/useInputHistoryStore.js';
|
|
|
77
78
|
import { useBanner } from './hooks/useBanner.js';
|
|
78
79
|
import { useTerminalSetupPrompt } from './utils/terminalSetup.js';
|
|
79
80
|
import { useHookDisplayState } from './hooks/useHookDisplayState.js';
|
|
80
|
-
import {
|
|
81
|
+
import { useBackgroundTaskManager } from './hooks/useBackgroundTaskManager.js';
|
|
81
82
|
import { WARNING_PROMPT_DURATION_MS, QUEUE_ERROR_DISPLAY_DURATION_MS, EXPAND_HINT_DURATION_MS, } from './constants.js';
|
|
82
83
|
import { LoginWithGoogleRestartDialog } from './auth/LoginWithGoogleRestartDialog.js';
|
|
83
84
|
import { NewAgentsChoice } from './components/NewAgentsNotification.js';
|
|
@@ -89,10 +90,11 @@ import { useIsHelpDismissKey } from './utils/shortcutsHelp.js';
|
|
|
89
90
|
import { useSuspend } from './hooks/useSuspend.js';
|
|
90
91
|
import { useRunEventNotifications } from './hooks/useRunEventNotifications.js';
|
|
91
92
|
import { isNotificationsEnabled } from '../utils/terminalNotifications.js';
|
|
92
|
-
import { isToolExecuting, isToolAwaitingConfirmation, getAllToolCalls, } from './utils/historyUtils.js';
|
|
93
|
+
import { getLastTurnToolCallIds, isToolExecuting, isToolAwaitingConfirmation, getAllToolCalls, } from './utils/historyUtils.js';
|
|
93
94
|
import { useRepeatedKeyPress } from './hooks/useRepeatedKeyPress.js';
|
|
94
95
|
import { useVisibilityToggle, APPROVAL_MODE_REVEAL_DURATION_MS, } from './hooks/useVisibilityToggle.js';
|
|
95
96
|
import { useKeyMatchers } from './hooks/useKeyMatchers.js';
|
|
97
|
+
import { InputContext } from './contexts/InputContext.js';
|
|
96
98
|
/**
|
|
97
99
|
* The fraction of the terminal width to allocate to the shell.
|
|
98
100
|
* This provides horizontal padding.
|
|
@@ -110,11 +112,25 @@ export const AppContainer = (props) => {
|
|
|
110
112
|
const settings = useSettings();
|
|
111
113
|
const { reset } = useOverflowActions();
|
|
112
114
|
const notificationsEnabled = isNotificationsEnabled(settings);
|
|
115
|
+
const { setOptions, dumpCurrentFrame, startRecording, stopRecording } = useContext(InkAppContext);
|
|
116
|
+
const recordingFilenameRef = useRef(null);
|
|
113
117
|
const historyManager = useHistory({
|
|
114
118
|
chatRecordingService: config.getGeminiClient()?.getChatRecordingService(),
|
|
115
119
|
});
|
|
116
120
|
useMemoryMonitor(historyManager);
|
|
117
121
|
const isAlternateBuffer = config.getUseAlternateBuffer();
|
|
122
|
+
const [mouseMode, setMouseMode] = useState(() => config.getUseAlternateBuffer());
|
|
123
|
+
useEffect(() => {
|
|
124
|
+
setOptions({
|
|
125
|
+
stickyHeadersInBackbuffer: mouseMode,
|
|
126
|
+
});
|
|
127
|
+
if (mouseMode) {
|
|
128
|
+
enableMouseEvents();
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
disableMouseEvents();
|
|
132
|
+
}
|
|
133
|
+
}, [mouseMode, setOptions]);
|
|
118
134
|
const [corgiMode, setCorgiMode] = useState(false);
|
|
119
135
|
const [forceRerenderKey, setForceRerenderKey] = useState(0);
|
|
120
136
|
const [debugMessage, setDebugMessage] = useState('');
|
|
@@ -128,10 +144,37 @@ export const AppContainer = (props) => {
|
|
|
128
144
|
const [customDialog, setCustomDialog] = useState(null);
|
|
129
145
|
const [copyModeEnabled, setCopyModeEnabled] = useState(false);
|
|
130
146
|
const [pendingRestorePrompt, setPendingRestorePrompt] = useState(false);
|
|
131
|
-
const
|
|
132
|
-
const
|
|
133
|
-
const
|
|
147
|
+
const toggleBackgroundTasksRef = useRef(() => { });
|
|
148
|
+
const isBackgroundTaskVisibleRef = useRef(false);
|
|
149
|
+
const backgroundTasksRef = useRef(new Map());
|
|
134
150
|
const [adminSettingsChanged, setAdminSettingsChanged] = useState(false);
|
|
151
|
+
const [expandedTools, setExpandedTools] = useState(new Set());
|
|
152
|
+
const toggleExpansion = useCallback((callId) => {
|
|
153
|
+
setExpandedTools((prev) => {
|
|
154
|
+
const next = new Set(prev);
|
|
155
|
+
if (next.has(callId)) {
|
|
156
|
+
next.delete(callId);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
next.add(callId);
|
|
160
|
+
}
|
|
161
|
+
return next;
|
|
162
|
+
});
|
|
163
|
+
}, []);
|
|
164
|
+
const toggleAllExpansion = useCallback((callIds) => {
|
|
165
|
+
setExpandedTools((prev) => {
|
|
166
|
+
const next = new Set(prev);
|
|
167
|
+
const anyCollapsed = callIds.some((id) => !next.has(id));
|
|
168
|
+
if (anyCollapsed) {
|
|
169
|
+
callIds.forEach((id) => next.add(id));
|
|
170
|
+
}
|
|
171
|
+
else {
|
|
172
|
+
callIds.forEach((id) => next.delete(id));
|
|
173
|
+
}
|
|
174
|
+
return next;
|
|
175
|
+
});
|
|
176
|
+
}, []);
|
|
177
|
+
const isExpanded = useCallback((callId) => expandedTools.has(callId), [expandedTools]);
|
|
135
178
|
const [shellModeActive, setShellModeActive] = useState(false);
|
|
136
179
|
const [modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError] = useState(false);
|
|
137
180
|
const [historyRemountKey, setHistoryRemountKey] = useState(0);
|
|
@@ -246,6 +289,12 @@ export const AppContainer = (props) => {
|
|
|
246
289
|
}
|
|
247
290
|
setConfigInitialized(true);
|
|
248
291
|
startupProfiler.flush(config);
|
|
292
|
+
// Fire-and-forget memory service (skill extraction from past sessions)
|
|
293
|
+
if (config.isMemoryManagerEnabled()) {
|
|
294
|
+
startMemoryService(config).catch((e) => {
|
|
295
|
+
debugLogger.error('Failed to start memory service:', e);
|
|
296
|
+
});
|
|
297
|
+
}
|
|
249
298
|
const sessionStartSource = resumedSessionData
|
|
250
299
|
? SessionStartSource.Resume
|
|
251
300
|
: SessionStartSource.Startup;
|
|
@@ -279,7 +328,7 @@ export const AppContainer = (props) => {
|
|
|
279
328
|
// Turn off mouse scroll.
|
|
280
329
|
disableMouseEvents();
|
|
281
330
|
// Kill all background shells
|
|
282
|
-
await Promise.all(Array.from(
|
|
331
|
+
await Promise.all(Array.from(backgroundTasksRef.current.keys()).map((pid) => ShellExecutionService.kill(pid)));
|
|
283
332
|
const ideClient = await IdeClient.getInstance();
|
|
284
333
|
await ideClient.disconnect();
|
|
285
334
|
// Fire SessionEnd hook on cleanup (only if hooks are enabled)
|
|
@@ -369,11 +418,11 @@ export const AppContainer = (props) => {
|
|
|
369
418
|
addItem: historyManager.addItem,
|
|
370
419
|
});
|
|
371
420
|
const refreshStatic = useCallback(() => {
|
|
372
|
-
if (!isAlternateBuffer) {
|
|
421
|
+
if (!isAlternateBuffer && !config.getUseTerminalBuffer()) {
|
|
373
422
|
stdout.write(ansiEscapes.clearTerminal);
|
|
423
|
+
setHistoryRemountKey((prev) => prev + 1);
|
|
374
424
|
}
|
|
375
|
-
|
|
376
|
-
}, [setHistoryRemountKey, isAlternateBuffer, stdout]);
|
|
425
|
+
}, [setHistoryRemountKey, isAlternateBuffer, stdout, config]);
|
|
377
426
|
const shouldUseAlternateScreen = shouldEnterAlternateScreen(isAlternateBuffer, config.getScreenReader());
|
|
378
427
|
const handleEditorClose = useCallback(() => {
|
|
379
428
|
if (shouldUseAlternateScreen) {
|
|
@@ -449,7 +498,7 @@ export const AppContainer = (props) => {
|
|
|
449
498
|
const { isSessionBrowserOpen, openSessionBrowser, closeSessionBrowser, handleResumeSession, handleDeleteSession: handleDeleteSessionSync, } = useSessionBrowser(config, loadHistoryForResume);
|
|
450
499
|
// Wrap handleDeleteSession to return a Promise for UIActions interface
|
|
451
500
|
const handleDeleteSession = useCallback(async (session) => {
|
|
452
|
-
handleDeleteSessionSync(session);
|
|
501
|
+
await handleDeleteSessionSync(session);
|
|
453
502
|
}, [handleDeleteSessionSync]);
|
|
454
503
|
// Create handleAuthSelect wrapper for backward compatibility
|
|
455
504
|
const handleAuthSelect = useCallback(async (authType, scope) => {
|
|
@@ -553,7 +602,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
553
602
|
]);
|
|
554
603
|
const { isModelDialogOpen, openModelDialog, closeModelDialog } = useModelCommand();
|
|
555
604
|
const { toggleVimEnabled } = useVimMode();
|
|
556
|
-
const
|
|
605
|
+
const setIsBackgroundTaskListOpenRef = useRef(() => { });
|
|
557
606
|
const [shortcutsHelpVisible, setShortcutsHelpVisible] = useState(false);
|
|
558
607
|
const { cleanUiDetailsVisible, setCleanUiDetailsVisible, toggleCleanUiDetailsVisible, revealCleanUiDetailsTemporarily, } = useVisibilityToggle();
|
|
559
608
|
const slashCommandActions = useMemo(() => ({
|
|
@@ -600,15 +649,15 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
600
649
|
toggleDebugProfiler,
|
|
601
650
|
dispatchExtensionStateUpdate,
|
|
602
651
|
addConfirmUpdateExtensionRequest,
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
if (!
|
|
652
|
+
toggleBackgroundTasks: () => {
|
|
653
|
+
toggleBackgroundTasksRef.current();
|
|
654
|
+
if (!isBackgroundTaskVisibleRef.current) {
|
|
606
655
|
setEmbeddedShellFocused(true);
|
|
607
|
-
if (
|
|
608
|
-
|
|
656
|
+
if (backgroundTasksRef.current.size > 1) {
|
|
657
|
+
setIsBackgroundTaskListOpenRef.current(true);
|
|
609
658
|
}
|
|
610
659
|
else {
|
|
611
|
-
|
|
660
|
+
setIsBackgroundTaskListOpenRef.current(false);
|
|
612
661
|
}
|
|
613
662
|
}
|
|
614
663
|
},
|
|
@@ -662,7 +711,8 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
662
711
|
let flattenedMemory;
|
|
663
712
|
let fileCount;
|
|
664
713
|
if (config.isJitContextEnabled()) {
|
|
665
|
-
await config.
|
|
714
|
+
await config.getMemoryContextManager()?.refresh();
|
|
715
|
+
config.updateSystemInstructionIfInitialized();
|
|
666
716
|
flattenedMemory = flattenMemory(config.getUserMemory());
|
|
667
717
|
fileCount = config.getGeminiMdFileCount();
|
|
668
718
|
}
|
|
@@ -725,7 +775,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
725
775
|
}, []);
|
|
726
776
|
useEffect(() => {
|
|
727
777
|
const hintListener = (text, source) => {
|
|
728
|
-
if (source !== 'user_steering') {
|
|
778
|
+
if (source !== 'user_steering' && source !== 'background_completion') {
|
|
729
779
|
return;
|
|
730
780
|
}
|
|
731
781
|
pendingHintsRef.current.push(text);
|
|
@@ -736,22 +786,21 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
736
786
|
config.injectionService.offInjection(hintListener);
|
|
737
787
|
};
|
|
738
788
|
}, [config]);
|
|
739
|
-
const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, cancelOngoingRequest, pendingToolCalls, handleApprovalModeChange, activePtyId, loopDetectionConfirmationRequest, lastOutputTime,
|
|
789
|
+
const { streamingState, submitQuery, initError, pendingHistoryItems: pendingGeminiHistoryItems, thought, cancelOngoingRequest, pendingToolCalls, handleApprovalModeChange, activePtyId, loopDetectionConfirmationRequest, lastOutputTime, backgroundTaskCount, isBackgroundTaskVisible, toggleBackgroundTasks, backgroundCurrentExecution, backgroundTasks, dismissBackgroundTask, retryStatus, } = useGeminiStream(config.getGeminiClient(), historyManager.history, historyManager.addItem, config, settings, setDebugMessage, handleSlashCommand, shellModeActive, getPreferredEditor, onAuthError, performMemoryRefresh, modelSwitchedFromQuotaError, setModelSwitchedFromQuotaError, onCancelSubmit, setEmbeddedShellFocused, terminalWidth, terminalHeight, embeddedShellFocused, consumePendingHints);
|
|
740
790
|
const pendingHistoryItems = useMemo(() => [...pendingSlashCommandHistoryItems, ...pendingGeminiHistoryItems], [pendingSlashCommandHistoryItems, pendingGeminiHistoryItems]);
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
isBackgroundShellVisible,
|
|
791
|
+
toggleBackgroundTasksRef.current = toggleBackgroundTasks;
|
|
792
|
+
isBackgroundTaskVisibleRef.current = isBackgroundTaskVisible;
|
|
793
|
+
backgroundTasksRef.current = backgroundTasks;
|
|
794
|
+
const { activeBackgroundTaskPid, setIsBackgroundTaskListOpen, isBackgroundTaskListOpen, setActiveBackgroundTaskPid, backgroundTaskHeight, } = useBackgroundTaskManager({
|
|
795
|
+
backgroundTasks,
|
|
796
|
+
backgroundTaskCount,
|
|
797
|
+
isBackgroundTaskVisible,
|
|
749
798
|
activePtyId,
|
|
750
799
|
embeddedShellFocused,
|
|
751
800
|
setEmbeddedShellFocused,
|
|
752
801
|
terminalHeight,
|
|
753
802
|
});
|
|
754
|
-
|
|
803
|
+
setIsBackgroundTaskListOpenRef.current = setIsBackgroundTaskListOpen;
|
|
755
804
|
const lastOutputTimeRef = useRef(0);
|
|
756
805
|
useEffect(() => {
|
|
757
806
|
lastOutputTimeRef.current = lastOutputTime;
|
|
@@ -935,7 +984,19 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
935
984
|
streamingState === StreamingState.WaitingForConfirmation) &&
|
|
936
985
|
!proQuotaRequest;
|
|
937
986
|
const observerRef = useRef(null);
|
|
987
|
+
useEffect(() => () => {
|
|
988
|
+
observerRef.current?.disconnect();
|
|
989
|
+
}, []);
|
|
938
990
|
const [controlsHeight, setControlsHeight] = useState(0);
|
|
991
|
+
const [lastNonCopyControlsHeight, setLastNonCopyControlsHeight] = useState(0);
|
|
992
|
+
useLayoutEffect(() => {
|
|
993
|
+
if (!copyModeEnabled && controlsHeight > 0) {
|
|
994
|
+
setLastNonCopyControlsHeight(controlsHeight);
|
|
995
|
+
}
|
|
996
|
+
}, [copyModeEnabled, controlsHeight]);
|
|
997
|
+
const stableControlsHeight = copyModeEnabled && lastNonCopyControlsHeight > 0
|
|
998
|
+
? lastNonCopyControlsHeight
|
|
999
|
+
: controlsHeight;
|
|
939
1000
|
const mainControlsRef = useCallback((node) => {
|
|
940
1001
|
if (observerRef.current) {
|
|
941
1002
|
observerRef.current.disconnect();
|
|
@@ -953,8 +1014,8 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
953
1014
|
observerRef.current = observer;
|
|
954
1015
|
}
|
|
955
1016
|
}, []);
|
|
956
|
-
// Compute available terminal height based on controls measurement
|
|
957
|
-
const availableTerminalHeight = Math.max(0, terminalHeight -
|
|
1017
|
+
// Compute available terminal height based on stable controls measurement
|
|
1018
|
+
const availableTerminalHeight = Math.max(0, terminalHeight - stableControlsHeight - backgroundTaskHeight - 1);
|
|
958
1019
|
config.setShellExecutionConfig({
|
|
959
1020
|
terminalWidth: Math.floor(terminalWidth * SHELL_WIDTH_FRACTION),
|
|
960
1021
|
terminalHeight: Math.max(Math.floor(availableTerminalHeight - SHELL_HEIGHT_PADDING), 1),
|
|
@@ -1142,6 +1203,13 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1142
1203
|
if (shortcutsHelpVisible && isHelpDismissKey(key)) {
|
|
1143
1204
|
setShortcutsHelpVisible(false);
|
|
1144
1205
|
}
|
|
1206
|
+
if (keyMatchers[Command.TOGGLE_MOUSE_MODE](key)) {
|
|
1207
|
+
setMouseMode((prev) => !prev);
|
|
1208
|
+
if (mouseMode && !isAlternateBuffer) {
|
|
1209
|
+
appEvents.emit(AppEvent.ScrollToBottom);
|
|
1210
|
+
}
|
|
1211
|
+
return true;
|
|
1212
|
+
}
|
|
1145
1213
|
if (isAlternateBuffer && keyMatchers[Command.TOGGLE_COPY_MODE](key)) {
|
|
1146
1214
|
setCopyModeEnabled(true);
|
|
1147
1215
|
disableMouseEvents();
|
|
@@ -1166,6 +1234,33 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1166
1234
|
else if (keyMatchers[Command.SUSPEND_APP](key)) {
|
|
1167
1235
|
handleSuspend();
|
|
1168
1236
|
}
|
|
1237
|
+
else if (keyMatchers[Command.DUMP_FRAME](key)) {
|
|
1238
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
1239
|
+
const filename = `snapshot-${timestamp}.json`;
|
|
1240
|
+
if (dumpCurrentFrame) {
|
|
1241
|
+
dumpCurrentFrame(filename);
|
|
1242
|
+
debugLogger.log(`Dumped frame to: ${filename}`);
|
|
1243
|
+
}
|
|
1244
|
+
return true;
|
|
1245
|
+
}
|
|
1246
|
+
else if (keyMatchers[Command.START_RECORDING](key)) {
|
|
1247
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
1248
|
+
const filename = `recording-${timestamp}.json`;
|
|
1249
|
+
if (startRecording) {
|
|
1250
|
+
startRecording(filename);
|
|
1251
|
+
recordingFilenameRef.current = filename;
|
|
1252
|
+
debugLogger.log(`Started recording to: ${filename}`);
|
|
1253
|
+
}
|
|
1254
|
+
return true;
|
|
1255
|
+
}
|
|
1256
|
+
else if (keyMatchers[Command.STOP_RECORDING](key)) {
|
|
1257
|
+
if (stopRecording) {
|
|
1258
|
+
stopRecording();
|
|
1259
|
+
debugLogger.log(`Stopped recording, saved to: ${recordingFilenameRef.current ?? 'unknown'}`);
|
|
1260
|
+
recordingFilenameRef.current = null;
|
|
1261
|
+
}
|
|
1262
|
+
return true;
|
|
1263
|
+
}
|
|
1169
1264
|
else if (keyMatchers[Command.TOGGLE_COPY_MODE](key) &&
|
|
1170
1265
|
!isAlternateBuffer) {
|
|
1171
1266
|
showTransientMessage({
|
|
@@ -1174,13 +1269,19 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1174
1269
|
});
|
|
1175
1270
|
return true;
|
|
1176
1271
|
}
|
|
1272
|
+
const toggleLastTurnTools = () => {
|
|
1273
|
+
triggerExpandHint(true);
|
|
1274
|
+
const targetToolCallIds = getLastTurnToolCallIds(historyManager.history, pendingHistoryItems);
|
|
1275
|
+
if (targetToolCallIds.length > 0) {
|
|
1276
|
+
toggleAllExpansion(targetToolCallIds);
|
|
1277
|
+
}
|
|
1278
|
+
};
|
|
1177
1279
|
let enteringConstrainHeightMode = false;
|
|
1178
1280
|
if (!constrainHeight) {
|
|
1179
1281
|
enteringConstrainHeightMode = true;
|
|
1180
1282
|
setConstrainHeight(true);
|
|
1181
1283
|
if (keyMatchers[Command.SHOW_MORE_LINES](key)) {
|
|
1182
|
-
|
|
1183
|
-
triggerExpandHint(true);
|
|
1284
|
+
toggleLastTurnTools();
|
|
1184
1285
|
}
|
|
1185
1286
|
if (!isAlternateBuffer) {
|
|
1186
1287
|
refreshStatic();
|
|
@@ -1221,16 +1322,13 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1221
1322
|
else if (keyMatchers[Command.SHOW_MORE_LINES](key) &&
|
|
1222
1323
|
!enteringConstrainHeightMode) {
|
|
1223
1324
|
setConstrainHeight(false);
|
|
1224
|
-
|
|
1225
|
-
|
|
1226
|
-
if (!isAlternateBuffer) {
|
|
1227
|
-
refreshStatic();
|
|
1228
|
-
}
|
|
1325
|
+
toggleLastTurnTools();
|
|
1326
|
+
refreshStatic();
|
|
1229
1327
|
return true;
|
|
1230
1328
|
}
|
|
1231
1329
|
else if ((keyMatchers[Command.FOCUS_SHELL_INPUT](key) ||
|
|
1232
1330
|
keyMatchers[Command.UNFOCUS_BACKGROUND_SHELL_LIST](key)) &&
|
|
1233
|
-
(activePtyId || (
|
|
1331
|
+
(activePtyId || (isBackgroundTaskVisible && backgroundTasks.size > 0))) {
|
|
1234
1332
|
if (embeddedShellFocused) {
|
|
1235
1333
|
const capturedTime = lastOutputTimeRef.current;
|
|
1236
1334
|
if (tabFocusTimeoutRef.current)
|
|
@@ -1249,13 +1347,13 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1249
1347
|
return false;
|
|
1250
1348
|
}
|
|
1251
1349
|
const isIdle = Date.now() - lastOutputTimeRef.current >= 100;
|
|
1252
|
-
if (isIdle && !activePtyId && !
|
|
1350
|
+
if (isIdle && !activePtyId && !isBackgroundTaskVisible) {
|
|
1253
1351
|
if (tabFocusTimeoutRef.current)
|
|
1254
1352
|
clearTimeout(tabFocusTimeoutRef.current);
|
|
1255
|
-
|
|
1353
|
+
toggleBackgroundTasks();
|
|
1256
1354
|
setEmbeddedShellFocused(true);
|
|
1257
|
-
if (
|
|
1258
|
-
|
|
1355
|
+
if (backgroundTasks.size > 1)
|
|
1356
|
+
setIsBackgroundTaskListOpen(true);
|
|
1259
1357
|
return true;
|
|
1260
1358
|
}
|
|
1261
1359
|
setEmbeddedShellFocused(true);
|
|
@@ -1271,16 +1369,16 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1271
1369
|
}
|
|
1272
1370
|
else if (keyMatchers[Command.TOGGLE_BACKGROUND_SHELL](key)) {
|
|
1273
1371
|
if (activePtyId) {
|
|
1274
|
-
|
|
1372
|
+
backgroundCurrentExecution();
|
|
1275
1373
|
// After backgrounding, we explicitly do NOT show or focus the background UI.
|
|
1276
1374
|
}
|
|
1277
1375
|
else {
|
|
1278
|
-
|
|
1376
|
+
toggleBackgroundTasks();
|
|
1279
1377
|
// Toggle focus based on intent: if we were hiding, unfocus; if showing, focus.
|
|
1280
|
-
if (!
|
|
1378
|
+
if (!isBackgroundTaskVisible && backgroundTasks.size > 0) {
|
|
1281
1379
|
setEmbeddedShellFocused(true);
|
|
1282
|
-
if (
|
|
1283
|
-
|
|
1380
|
+
if (backgroundTasks.size > 1) {
|
|
1381
|
+
setIsBackgroundTaskListOpen(true);
|
|
1284
1382
|
}
|
|
1285
1383
|
}
|
|
1286
1384
|
else {
|
|
@@ -1290,11 +1388,11 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1290
1388
|
return true;
|
|
1291
1389
|
}
|
|
1292
1390
|
else if (keyMatchers[Command.TOGGLE_BACKGROUND_SHELL_LIST](key)) {
|
|
1293
|
-
if (
|
|
1391
|
+
if (backgroundTasks.size > 0 && isBackgroundTaskVisible) {
|
|
1294
1392
|
if (!embeddedShellFocused) {
|
|
1295
1393
|
setEmbeddedShellFocused(true);
|
|
1296
1394
|
}
|
|
1297
|
-
|
|
1395
|
+
setIsBackgroundTaskListOpen(true);
|
|
1298
1396
|
}
|
|
1299
1397
|
return true;
|
|
1300
1398
|
}
|
|
@@ -1318,11 +1416,11 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1318
1416
|
tabFocusTimeoutRef,
|
|
1319
1417
|
isAlternateBuffer,
|
|
1320
1418
|
shortcutsHelpVisible,
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1419
|
+
backgroundCurrentExecution,
|
|
1420
|
+
toggleBackgroundTasks,
|
|
1421
|
+
backgroundTasks,
|
|
1422
|
+
isBackgroundTaskVisible,
|
|
1423
|
+
setIsBackgroundTaskListOpen,
|
|
1326
1424
|
lastOutputTimeRef,
|
|
1327
1425
|
showTransientMessage,
|
|
1328
1426
|
settings.merged.general.devtools,
|
|
@@ -1330,6 +1428,13 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1330
1428
|
triggerExpandHint,
|
|
1331
1429
|
keyMatchers,
|
|
1332
1430
|
isHelpDismissKey,
|
|
1431
|
+
historyManager.history,
|
|
1432
|
+
pendingHistoryItems,
|
|
1433
|
+
toggleAllExpansion,
|
|
1434
|
+
dumpCurrentFrame,
|
|
1435
|
+
startRecording,
|
|
1436
|
+
stopRecording,
|
|
1437
|
+
mouseMode,
|
|
1333
1438
|
]);
|
|
1334
1439
|
useKeypress(handleGlobalKeypress, { isActive: true, priority: true });
|
|
1335
1440
|
useKeypress((key) => {
|
|
@@ -1342,7 +1447,9 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1342
1447
|
return false;
|
|
1343
1448
|
}
|
|
1344
1449
|
setCopyModeEnabled(false);
|
|
1345
|
-
|
|
1450
|
+
if (mouseMode) {
|
|
1451
|
+
enableMouseEvents();
|
|
1452
|
+
}
|
|
1346
1453
|
return true;
|
|
1347
1454
|
}, {
|
|
1348
1455
|
isActive: copyModeEnabled,
|
|
@@ -1406,12 +1513,21 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1406
1513
|
debugLogger.warn(`[Feedback Details for "${payload.message}"]`, payload.error);
|
|
1407
1514
|
}
|
|
1408
1515
|
};
|
|
1516
|
+
const handleHookSystemMessage = (payload) => {
|
|
1517
|
+
historyManager.addItem({
|
|
1518
|
+
type: MessageType.INFO,
|
|
1519
|
+
text: payload.message,
|
|
1520
|
+
source: payload.hookName,
|
|
1521
|
+
}, Date.now());
|
|
1522
|
+
};
|
|
1409
1523
|
coreEvents.on(CoreEvent.UserFeedback, handleUserFeedback);
|
|
1524
|
+
coreEvents.on(CoreEvent.HookSystemMessage, handleHookSystemMessage);
|
|
1410
1525
|
// Flush any messages that happened during startup before this component
|
|
1411
1526
|
// mounted.
|
|
1412
1527
|
coreEvents.drainBacklogs();
|
|
1413
1528
|
return () => {
|
|
1414
1529
|
coreEvents.off(CoreEvent.UserFeedback, handleUserFeedback);
|
|
1530
|
+
coreEvents.off(CoreEvent.HookSystemMessage, handleHookSystemMessage);
|
|
1415
1531
|
};
|
|
1416
1532
|
}, [historyManager]);
|
|
1417
1533
|
const nightly = props.version.includes('nightly');
|
|
@@ -1443,6 +1559,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1443
1559
|
isSessionBrowserOpen ||
|
|
1444
1560
|
authState === AuthState.AwaitingApiKeyInput ||
|
|
1445
1561
|
!!newAgents;
|
|
1562
|
+
const hasPendingToolConfirmation = useMemo(() => isToolAwaitingConfirmation(pendingHistoryItems), [pendingHistoryItems]);
|
|
1446
1563
|
const hasConfirmUpdateExtensionRequests = confirmUpdateExtensionRequests.length > 0;
|
|
1447
1564
|
const hasLoopDetectionConfirmationRequest = !!loopDetectionConfirmationRequest;
|
|
1448
1565
|
const hasPendingActionRequired = hasPendingToolConfirmation ||
|
|
@@ -1458,7 +1575,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1458
1575
|
const loadingPhrases = settings.merged.ui.loadingPhrases;
|
|
1459
1576
|
const showStatusTips = loadingPhrases === 'tips' || loadingPhrases === 'all';
|
|
1460
1577
|
const showStatusWit = loadingPhrases === 'witty' || loadingPhrases === 'all';
|
|
1461
|
-
const showLoadingIndicator = (!embeddedShellFocused ||
|
|
1578
|
+
const showLoadingIndicator = (!embeddedShellFocused || isBackgroundTaskVisible) &&
|
|
1462
1579
|
streamingState === StreamingState.Responding &&
|
|
1463
1580
|
!hasPendingActionRequired;
|
|
1464
1581
|
let estimatedStatusLength = 0;
|
|
@@ -1577,6 +1694,23 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1577
1694
|
isMounted = false;
|
|
1578
1695
|
};
|
|
1579
1696
|
}, [config, refreshStatic]);
|
|
1697
|
+
const inputState = useMemo(() => ({
|
|
1698
|
+
buffer,
|
|
1699
|
+
userMessages: inputHistory,
|
|
1700
|
+
shellModeActive,
|
|
1701
|
+
showEscapePrompt,
|
|
1702
|
+
copyModeEnabled,
|
|
1703
|
+
inputWidth,
|
|
1704
|
+
suggestionsWidth,
|
|
1705
|
+
}), [
|
|
1706
|
+
buffer,
|
|
1707
|
+
inputHistory,
|
|
1708
|
+
shellModeActive,
|
|
1709
|
+
showEscapePrompt,
|
|
1710
|
+
copyModeEnabled,
|
|
1711
|
+
inputWidth,
|
|
1712
|
+
suggestionsWidth,
|
|
1713
|
+
]);
|
|
1580
1714
|
const uiState = useMemo(() => ({
|
|
1581
1715
|
history: historyManager.history,
|
|
1582
1716
|
historyManager,
|
|
@@ -1593,6 +1727,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1593
1727
|
editorError,
|
|
1594
1728
|
isEditorDialogOpen,
|
|
1595
1729
|
showPrivacyNotice,
|
|
1730
|
+
mouseMode,
|
|
1596
1731
|
corgiMode,
|
|
1597
1732
|
debugMessage,
|
|
1598
1733
|
awaitingFeedback,
|
|
@@ -1623,11 +1758,6 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1623
1758
|
initError,
|
|
1624
1759
|
pendingGeminiHistoryItems,
|
|
1625
1760
|
thought,
|
|
1626
|
-
shellModeActive,
|
|
1627
|
-
userMessages: inputHistory,
|
|
1628
|
-
buffer,
|
|
1629
|
-
inputWidth,
|
|
1630
|
-
suggestionsWidth,
|
|
1631
1761
|
isInputActive,
|
|
1632
1762
|
isResuming,
|
|
1633
1763
|
shouldShowIdePrompt,
|
|
@@ -1643,7 +1773,6 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1643
1773
|
renderMarkdown,
|
|
1644
1774
|
ctrlCPressedOnce: ctrlCPressCount >= 1,
|
|
1645
1775
|
ctrlDPressedOnce: ctrlDPressCount >= 1,
|
|
1646
|
-
showEscapePrompt,
|
|
1647
1776
|
shortcutsHelpVisible,
|
|
1648
1777
|
cleanUiDetailsVisible,
|
|
1649
1778
|
isFocused,
|
|
@@ -1670,6 +1799,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1670
1799
|
contextFileNames,
|
|
1671
1800
|
errorCount,
|
|
1672
1801
|
availableTerminalHeight,
|
|
1802
|
+
stableControlsHeight,
|
|
1673
1803
|
mainAreaWidth,
|
|
1674
1804
|
staticAreaMaxItemHeight,
|
|
1675
1805
|
staticExtraHeight,
|
|
@@ -1689,21 +1819,20 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1689
1819
|
isRestarting,
|
|
1690
1820
|
extensionsUpdateState,
|
|
1691
1821
|
activePtyId,
|
|
1692
|
-
|
|
1693
|
-
|
|
1822
|
+
backgroundTaskCount,
|
|
1823
|
+
isBackgroundTaskVisible,
|
|
1694
1824
|
embeddedShellFocused,
|
|
1695
1825
|
showDebugProfiler,
|
|
1696
1826
|
customDialog,
|
|
1697
|
-
copyModeEnabled,
|
|
1698
1827
|
transientMessage,
|
|
1699
1828
|
bannerData,
|
|
1700
1829
|
bannerVisible,
|
|
1701
1830
|
terminalBackgroundColor: config.getTerminalBackground(),
|
|
1702
1831
|
settingsNonce,
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1832
|
+
backgroundTasks,
|
|
1833
|
+
activeBackgroundTaskPid,
|
|
1834
|
+
backgroundTaskHeight,
|
|
1835
|
+
isBackgroundTaskListOpen,
|
|
1707
1836
|
adminSettingsChanged,
|
|
1708
1837
|
newAgents,
|
|
1709
1838
|
showIsExpandableHint,
|
|
@@ -1721,6 +1850,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1721
1850
|
editorError,
|
|
1722
1851
|
isEditorDialogOpen,
|
|
1723
1852
|
showPrivacyNotice,
|
|
1853
|
+
mouseMode,
|
|
1724
1854
|
corgiMode,
|
|
1725
1855
|
debugMessage,
|
|
1726
1856
|
quittingMessages,
|
|
@@ -1746,11 +1876,6 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1746
1876
|
initError,
|
|
1747
1877
|
pendingGeminiHistoryItems,
|
|
1748
1878
|
thought,
|
|
1749
|
-
shellModeActive,
|
|
1750
|
-
inputHistory,
|
|
1751
|
-
buffer,
|
|
1752
|
-
inputWidth,
|
|
1753
|
-
suggestionsWidth,
|
|
1754
1879
|
isInputActive,
|
|
1755
1880
|
isResuming,
|
|
1756
1881
|
shouldShowIdePrompt,
|
|
@@ -1766,7 +1891,6 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1766
1891
|
renderMarkdown,
|
|
1767
1892
|
ctrlCPressCount,
|
|
1768
1893
|
ctrlDPressCount,
|
|
1769
|
-
showEscapePrompt,
|
|
1770
1894
|
shortcutsHelpVisible,
|
|
1771
1895
|
cleanUiDetailsVisible,
|
|
1772
1896
|
isFocused,
|
|
@@ -1789,6 +1913,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1789
1913
|
contextFileNames,
|
|
1790
1914
|
errorCount,
|
|
1791
1915
|
availableTerminalHeight,
|
|
1916
|
+
stableControlsHeight,
|
|
1792
1917
|
mainAreaWidth,
|
|
1793
1918
|
staticAreaMaxItemHeight,
|
|
1794
1919
|
staticExtraHeight,
|
|
@@ -1809,8 +1934,8 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1809
1934
|
currentModel,
|
|
1810
1935
|
extensionsUpdateState,
|
|
1811
1936
|
activePtyId,
|
|
1812
|
-
|
|
1813
|
-
|
|
1937
|
+
backgroundTaskCount,
|
|
1938
|
+
isBackgroundTaskVisible,
|
|
1814
1939
|
historyManager,
|
|
1815
1940
|
embeddedShellFocused,
|
|
1816
1941
|
awaitingFeedback,
|
|
@@ -1818,16 +1943,15 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1818
1943
|
customDialog,
|
|
1819
1944
|
apiKeyDefaultValue,
|
|
1820
1945
|
authState,
|
|
1821
|
-
copyModeEnabled,
|
|
1822
1946
|
transientMessage,
|
|
1823
1947
|
bannerData,
|
|
1824
1948
|
bannerVisible,
|
|
1825
1949
|
config,
|
|
1826
1950
|
settingsNonce,
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1951
|
+
backgroundTaskHeight,
|
|
1952
|
+
isBackgroundTaskListOpen,
|
|
1953
|
+
activeBackgroundTaskPid,
|
|
1954
|
+
backgroundTasks,
|
|
1831
1955
|
adminSettingsChanged,
|
|
1832
1956
|
newAgents,
|
|
1833
1957
|
showIsExpandableHint,
|
|
@@ -1869,6 +1993,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1869
1993
|
handleResumeSession,
|
|
1870
1994
|
handleDeleteSession,
|
|
1871
1995
|
setQueueErrorMessage,
|
|
1996
|
+
addMessage,
|
|
1872
1997
|
popAllMessages,
|
|
1873
1998
|
handleApiKeySubmit,
|
|
1874
1999
|
handleApiKeyCancel,
|
|
@@ -1879,9 +2004,9 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1879
2004
|
revealCleanUiDetailsTemporarily,
|
|
1880
2005
|
handleWarning,
|
|
1881
2006
|
setEmbeddedShellFocused,
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
2007
|
+
dismissBackgroundTask,
|
|
2008
|
+
setActiveBackgroundTaskPid,
|
|
2009
|
+
setIsBackgroundTaskListOpen,
|
|
1885
2010
|
setAuthContext,
|
|
1886
2011
|
onHintInput: () => { },
|
|
1887
2012
|
onHintBackspace: () => { },
|
|
@@ -1955,6 +2080,7 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1955
2080
|
handleResumeSession,
|
|
1956
2081
|
handleDeleteSession,
|
|
1957
2082
|
setQueueErrorMessage,
|
|
2083
|
+
addMessage,
|
|
1958
2084
|
popAllMessages,
|
|
1959
2085
|
handleApiKeySubmit,
|
|
1960
2086
|
handleApiKeyCancel,
|
|
@@ -1965,9 +2091,9 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1965
2091
|
revealCleanUiDetailsTemporarily,
|
|
1966
2092
|
handleWarning,
|
|
1967
2093
|
setEmbeddedShellFocused,
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
2094
|
+
dismissBackgroundTask,
|
|
2095
|
+
setActiveBackgroundTaskPid,
|
|
2096
|
+
setIsBackgroundTaskListOpen,
|
|
1971
2097
|
setAuthContext,
|
|
1972
2098
|
setAccountSuspensionInfo,
|
|
1973
2099
|
newAgents,
|
|
@@ -1981,9 +2107,9 @@ Logging in with Google... Restarting Cell CLI to continue.
|
|
|
1981
2107
|
setAuthState(AuthState.Updating);
|
|
1982
2108
|
}, config: config }));
|
|
1983
2109
|
}
|
|
1984
|
-
return (_jsx(UIStateContext.Provider, { value: uiState, children: _jsx(UIActionsContext.Provider, { value: uiActions, children: _jsx(ConfigContext.Provider, { value: config, children: _jsx(AppContext.Provider, { value: {
|
|
1985
|
-
|
|
1986
|
-
|
|
1987
|
-
|
|
2110
|
+
return (_jsx(UIStateContext.Provider, { value: uiState, children: _jsx(InputContext.Provider, { value: inputState, children: _jsx(UIActionsContext.Provider, { value: uiActions, children: _jsx(ConfigContext.Provider, { value: config, children: _jsx(AppContext.Provider, { value: {
|
|
2111
|
+
version: props.version,
|
|
2112
|
+
startupWarnings: props.startupWarnings || [],
|
|
2113
|
+
}, children: _jsx(ToolActionsProvider, { config: config, toolCalls: allToolCalls, isExpanded: isExpanded, toggleExpansion: toggleExpansion, toggleAllExpansion: toggleAllExpansion, children: _jsx(ShellFocusContext.Provider, { value: isFocused, children: _jsx(MouseProvider, { mouseEventsEnabled: mouseMode, children: _jsx(ScrollProvider, { children: _jsx(App, {}, `app-${forceRerenderKey}`) }) }) }) }) }) }) }) }) }));
|
|
1988
2114
|
};
|
|
1989
2115
|
//# sourceMappingURL=AppContainer.js.map
|