@google/gemini-cli 0.30.0-preview.5 → 0.31.0-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +15 -2
- package/dist/index.js.map +1 -1
- package/dist/package.json +7 -6
- package/dist/src/commands/extensions/install.js +72 -4
- package/dist/src/commands/extensions/install.js.map +1 -1
- package/dist/src/commands/extensions/install.test.js +153 -20
- package/dist/src/commands/extensions/install.test.js.map +1 -1
- package/dist/src/commands/extensions/utils.js +1 -0
- package/dist/src/commands/extensions/utils.js.map +1 -1
- package/dist/src/config/config.js +17 -5
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +79 -4
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extension-manager-hydration.test.js +2 -2
- package/dist/src/config/extension-manager-hydration.test.js.map +1 -1
- package/dist/src/config/extension-manager.js +10 -6
- package/dist/src/config/extension-manager.js.map +1 -1
- package/dist/src/config/extension.test.js +20 -20
- package/dist/src/config/extension.test.js.map +1 -1
- package/dist/src/config/extensionRegistryClient.js +3 -2
- package/dist/src/config/extensionRegistryClient.js.map +1 -1
- package/dist/src/config/extensionRegistryClient.test.js +52 -0
- package/dist/src/config/extensionRegistryClient.test.js.map +1 -1
- package/dist/src/config/extensions/consent.d.ts +10 -0
- package/dist/src/config/extensions/consent.js +10 -3
- package/dist/src/config/extensions/consent.js.map +1 -1
- package/dist/src/config/extensions/consent.test.js +1 -1
- package/dist/src/config/extensions/consent.test.js.map +1 -1
- package/dist/src/config/extensions/extensionEnablement.js +1 -0
- package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.js +20 -3
- package/dist/src/config/extensions/extensionSettings.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.test.js +16 -0
- package/dist/src/config/extensions/extensionSettings.test.js.map +1 -1
- package/dist/src/config/extensions/github.test.js +1 -1
- package/dist/src/config/extensions/github.test.js.map +1 -1
- package/dist/src/config/extensions/variables.js +3 -1
- package/dist/src/config/extensions/variables.js.map +1 -1
- package/dist/src/config/keyBindings.js +6 -2
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/policy-engine.integration.test.js +51 -13
- package/dist/src/config/policy-engine.integration.test.js.map +1 -1
- package/dist/src/config/policy.d.ts +15 -3
- package/dist/src/config/policy.js +49 -4
- package/dist/src/config/policy.js.map +1 -1
- package/dist/src/config/policy.test.d.ts +6 -0
- package/dist/src/config/policy.test.js +152 -0
- package/dist/src/config/policy.test.js.map +1 -0
- package/dist/src/config/settings-validation.js +1 -1
- package/dist/src/config/settings-validation.js.map +1 -1
- package/dist/src/config/settings-validation.test.js +2 -3
- package/dist/src/config/settings-validation.test.js.map +1 -1
- package/dist/src/config/settings.d.ts +2 -0
- package/dist/src/config/settings.js +18 -20
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settings.test.js +118 -18
- package/dist/src/config/settings.test.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +171 -9
- package/dist/src/config/settingsSchema.js +159 -9
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +26 -0
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/config/settings_repro.test.js +0 -1
- package/dist/src/config/settings_repro.test.js.map +1 -1
- package/dist/src/config/trustedFolders.test.js +3 -1
- package/dist/src/config/trustedFolders.test.js.map +1 -1
- package/dist/src/config/workspace-policy-cli.test.d.ts +6 -0
- package/dist/src/config/workspace-policy-cli.test.js +180 -0
- package/dist/src/config/workspace-policy-cli.test.js.map +1 -0
- package/dist/src/gemini.d.ts +2 -2
- package/dist/src/gemini.js +15 -5
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +18 -2
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/gemini_cleanup.test.js +27 -24
- package/dist/src/gemini_cleanup.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/integration-tests/modelSteering.test.d.ts +6 -0
- package/dist/src/integration-tests/modelSteering.test.js +65 -0
- package/dist/src/integration-tests/modelSteering.test.js.map +1 -0
- package/dist/src/nonInteractiveCli.js +2 -3
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/test-utils/AppRig.d.ts +1 -1
- package/dist/src/test-utils/AppRig.js +16 -7
- package/dist/src/test-utils/AppRig.js.map +1 -1
- package/dist/src/test-utils/AppRig.test.js +37 -2
- package/dist/src/test-utils/AppRig.test.js.map +1 -1
- package/dist/src/test-utils/async.d.ts +1 -1
- package/dist/src/test-utils/async.js +1 -1
- package/dist/src/test-utils/async.js.map +1 -1
- package/dist/src/test-utils/customMatchers.js +1 -1
- package/dist/src/test-utils/customMatchers.js.map +1 -1
- package/dist/src/test-utils/mockCommandContext.js +8 -2
- package/dist/src/test-utils/mockCommandContext.js.map +1 -1
- package/dist/src/test-utils/mockConfig.js +2 -1
- package/dist/src/test-utils/mockConfig.js.map +1 -1
- package/dist/src/test-utils/render.d.ts +81 -5
- package/dist/src/test-utils/render.js +299 -29
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/test-utils/render.test.js +49 -23
- package/dist/src/test-utils/render.test.js.map +1 -1
- package/dist/src/test-utils/settings.js +4 -2
- package/dist/src/test-utils/settings.js.map +1 -1
- package/dist/src/ui/App.test.js +56 -24
- package/dist/src/ui/App.test.js.map +1 -1
- package/dist/src/ui/AppContainer.d.ts +2 -2
- package/dist/src/ui/AppContainer.js +231 -11
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +561 -7
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/IdeIntegrationNudge.test.js +29 -33
- package/dist/src/ui/IdeIntegrationNudge.test.js.map +1 -1
- package/dist/src/ui/auth/ApiAuthDialog.test.js +19 -9
- package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.js +1 -1
- package/dist/src/ui/auth/AuthDialog.js.map +1 -1
- package/dist/src/ui/auth/AuthDialog.test.js +61 -27
- package/dist/src/ui/auth/AuthDialog.test.js.map +1 -1
- package/dist/src/ui/auth/AuthInProgress.test.js +35 -14
- package/dist/src/ui/auth/AuthInProgress.test.js.map +1 -1
- package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js +11 -5
- package/dist/src/ui/auth/LoginWithGoogleRestartDialog.test.js.map +1 -1
- package/dist/src/ui/colors.js +6 -0
- package/dist/src/ui/colors.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.js +2 -0
- package/dist/src/ui/commands/clearCommand.js.map +1 -1
- package/dist/src/ui/commands/clearCommand.test.js +7 -1
- package/dist/src/ui/commands/clearCommand.test.js.map +1 -1
- package/dist/src/ui/commands/copyCommand.js +2 -1
- package/dist/src/ui/commands/copyCommand.js.map +1 -1
- package/dist/src/ui/commands/copyCommand.test.js +6 -4
- package/dist/src/ui/commands/copyCommand.test.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.js +18 -0
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.test.js +4 -4
- package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
- package/dist/src/ui/commands/planCommand.js +1 -1
- package/dist/src/ui/commands/planCommand.js.map +1 -1
- package/dist/src/ui/commands/planCommand.test.js +1 -1
- package/dist/src/ui/commands/planCommand.test.js.map +1 -1
- package/dist/src/ui/commands/policiesCommand.js +5 -0
- package/dist/src/ui/commands/policiesCommand.js.map +1 -1
- package/dist/src/ui/commands/policiesCommand.test.js +38 -1
- package/dist/src/ui/commands/policiesCommand.test.js.map +1 -1
- package/dist/src/ui/commands/rewindCommand.js +3 -2
- package/dist/src/ui/commands/rewindCommand.js.map +1 -1
- package/dist/src/ui/components/AboutBox.test.js +16 -8
- package/dist/src/ui/components/AboutBox.test.js.map +1 -1
- package/dist/src/ui/components/AdminSettingsChangedDialog.test.js +7 -4
- package/dist/src/ui/components/AdminSettingsChangedDialog.test.js.map +1 -1
- package/dist/src/ui/components/AgentConfigDialog.test.js +41 -19
- package/dist/src/ui/components/AgentConfigDialog.test.js.map +1 -1
- package/dist/src/ui/components/AlternateBufferQuittingDisplay.js +1 -1
- package/dist/src/ui/components/AlternateBufferQuittingDisplay.js.map +1 -1
- package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js +24 -12
- package/dist/src/ui/components/AlternateBufferQuittingDisplay.test.js.map +1 -1
- package/dist/src/ui/components/AnsiOutput.test.js +35 -19
- package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
- package/dist/src/ui/components/AppHeader.test.js +27 -17
- package/dist/src/ui/components/AppHeader.test.js.map +1 -1
- package/dist/src/ui/components/ApprovalModeIndicator.test.js +18 -12
- package/dist/src/ui/components/ApprovalModeIndicator.test.js.map +1 -1
- package/dist/src/ui/components/AskUserDialog.test.js +147 -85
- package/dist/src/ui/components/AskUserDialog.test.js.map +1 -1
- package/dist/src/ui/components/BackgroundShellDisplay.test.js +50 -48
- package/dist/src/ui/components/BackgroundShellDisplay.test.js.map +1 -1
- package/dist/src/ui/components/Banner.test.js +8 -4
- package/dist/src/ui/components/Banner.test.js.map +1 -1
- package/dist/src/ui/components/Checklist.test.js +17 -12
- package/dist/src/ui/components/Checklist.test.js.map +1 -1
- package/dist/src/ui/components/ChecklistItem.test.js +9 -6
- package/dist/src/ui/components/ChecklistItem.test.js.map +1 -1
- package/dist/src/ui/components/CliSpinner.test.js +8 -5
- package/dist/src/ui/components/CliSpinner.test.js.map +1 -1
- package/dist/src/ui/components/Composer.js +5 -5
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +104 -100
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ConfigInitDisplay.test.js +3 -2
- package/dist/src/ui/components/ConfigInitDisplay.test.js.map +1 -1
- package/dist/src/ui/components/ConsentPrompt.test.js +15 -8
- package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -1
- package/dist/src/ui/components/ConsoleSummaryDisplay.test.js +9 -5
- package/dist/src/ui/components/ConsoleSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.test.js +16 -14
- package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/ContextUsageDisplay.test.js +12 -6
- package/dist/src/ui/components/ContextUsageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/CopyModeWarning.test.js +9 -5
- package/dist/src/ui/components/CopyModeWarning.test.js.map +1 -1
- package/dist/src/ui/components/DebugProfiler.test.js +17 -14
- package/dist/src/ui/components/DebugProfiler.test.js.map +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.test.js +13 -7
- package/dist/src/ui/components/DetailedMessagesDisplay.test.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +5 -1
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/DialogManager.test.js +9 -5
- package/dist/src/ui/components/DialogManager.test.js.map +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.test.js +16 -8
- package/dist/src/ui/components/EditorSettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/ExitPlanModeDialog.js +2 -2
- package/dist/src/ui/components/ExitPlanModeDialog.js.map +1 -1
- package/dist/src/ui/components/ExitPlanModeDialog.test.js +2 -2
- package/dist/src/ui/components/ExitPlanModeDialog.test.js.map +1 -1
- package/dist/src/ui/components/ExitWarning.test.js +18 -10
- package/dist/src/ui/components/ExitWarning.test.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.d.ts +2 -0
- package/dist/src/ui/components/FolderTrustDialog.js +49 -3
- package/dist/src/ui/components/FolderTrustDialog.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js +249 -18
- package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.test.js +101 -50
- package/dist/src/ui/components/Footer.test.js.map +1 -1
- package/dist/src/ui/components/GeminiRespondingSpinner.test.js +23 -13
- package/dist/src/ui/components/GeminiRespondingSpinner.test.js.map +1 -1
- package/dist/src/ui/components/GradientRegression.test.js +20 -10
- package/dist/src/ui/components/GradientRegression.test.js.map +1 -1
- package/dist/src/ui/components/Header.test.js +2 -0
- package/dist/src/ui/components/Header.test.js.map +1 -1
- package/dist/src/ui/components/Help.test.js +9 -6
- package/dist/src/ui/components/Help.test.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.d.ts +1 -2
- package/dist/src/ui/components/HistoryItemDisplay.js +4 -3
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.test.js +80 -35
- package/dist/src/ui/components/HistoryItemDisplay.test.js.map +1 -1
- package/dist/src/ui/components/HookStatusDisplay.test.js +13 -9
- package/dist/src/ui/components/HookStatusDisplay.test.js.map +1 -1
- package/dist/src/ui/components/IdeTrustChangeDialog.test.js +36 -16
- package/dist/src/ui/components/IdeTrustChangeDialog.test.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +10 -12
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +127 -13
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.test.js +97 -47
- package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/components/LogoutConfirmationDialog.test.js +25 -9
- package/dist/src/ui/components/LogoutConfirmationDialog.test.js.map +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js +9 -5
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -1
- package/dist/src/ui/components/MainContent.js +35 -14
- package/dist/src/ui/components/MainContent.js.map +1 -1
- package/dist/src/ui/components/MainContent.test.js +224 -10
- package/dist/src/ui/components/MainContent.test.js.map +1 -1
- package/dist/src/ui/components/MemoryUsageDisplay.test.js +8 -3
- package/dist/src/ui/components/MemoryUsageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.js +6 -6
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.test.js +142 -16
- package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.js +38 -24
- package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/MultiFolderTrustDialog.test.js +32 -9
- package/dist/src/ui/components/MultiFolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/NewAgentsNotification.test.js +6 -4
- package/dist/src/ui/components/NewAgentsNotification.test.js.map +1 -1
- package/dist/src/ui/components/Notifications.js +50 -4
- package/dist/src/ui/components/Notifications.js.map +1 -1
- package/dist/src/ui/components/Notifications.test.js +162 -30
- package/dist/src/ui/components/Notifications.test.js.map +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +36 -10
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/PolicyUpdateDialog.d.ts +18 -0
- package/dist/src/ui/components/PolicyUpdateDialog.js +59 -0
- package/dist/src/ui/components/PolicyUpdateDialog.js.map +1 -0
- package/dist/src/ui/components/PolicyUpdateDialog.test.d.ts +6 -0
- package/dist/src/ui/components/PolicyUpdateDialog.test.js +93 -0
- package/dist/src/ui/components/PolicyUpdateDialog.test.js.map +1 -0
- package/dist/src/ui/components/QueuedMessageDisplay.test.js +16 -11
- package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/QuittingDisplay.test.js +9 -5
- package/dist/src/ui/components/QuittingDisplay.test.js.map +1 -1
- package/dist/src/ui/components/QuotaDisplay.test.js +40 -22
- package/dist/src/ui/components/QuotaDisplay.test.js.map +1 -1
- package/dist/src/ui/components/RawMarkdownIndicator.test.js +8 -4
- package/dist/src/ui/components/RawMarkdownIndicator.test.js.map +1 -1
- package/dist/src/ui/components/RewindConfirmation.test.js +15 -7
- package/dist/src/ui/components/RewindConfirmation.test.js.map +1 -1
- package/dist/src/ui/components/RewindViewer.js +9 -7
- package/dist/src/ui/components/RewindViewer.js.map +1 -1
- package/dist/src/ui/components/RewindViewer.test.js +54 -17
- package/dist/src/ui/components/RewindViewer.test.js.map +1 -1
- package/dist/src/ui/components/SessionBrowser.test.js +24 -11
- package/dist/src/ui/components/SessionBrowser.test.js.map +1 -1
- package/dist/src/ui/components/SessionRetentionWarningDialog.test.js +12 -7
- package/dist/src/ui/components/SessionRetentionWarningDialog.test.js.map +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.js +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/SessionSummaryDisplay.test.js +7 -4
- package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +76 -7
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +252 -109
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/ShellInputPrompt.test.js +120 -67
- package/dist/src/ui/components/ShellInputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/ShellModeIndicator.test.js +4 -2
- package/dist/src/ui/components/ShellModeIndicator.test.js.map +1 -1
- package/dist/src/ui/components/ShortcutsHelp.js +1 -1
- package/dist/src/ui/components/ShortcutsHelp.js.map +1 -1
- package/dist/src/ui/components/ShortcutsHelp.test.js +6 -3
- package/dist/src/ui/components/ShortcutsHelp.test.js.map +1 -1
- package/dist/src/ui/components/ShowMoreLines.d.ts +2 -1
- package/dist/src/ui/components/ShowMoreLines.js +10 -5
- package/dist/src/ui/components/ShowMoreLines.js.map +1 -1
- package/dist/src/ui/components/ShowMoreLines.test.js +47 -7
- package/dist/src/ui/components/ShowMoreLines.test.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.d.ts +1 -0
- package/dist/src/ui/components/StatsDisplay.js +9 -3
- package/dist/src/ui/components/StatsDisplay.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.test.js +51 -34
- package/dist/src/ui/components/StatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/StatusDisplay.test.js +30 -17
- package/dist/src/ui/components/StatusDisplay.test.js.map +1 -1
- package/dist/src/ui/components/StickyHeader.test.js +4 -2
- package/dist/src/ui/components/StickyHeader.test.js.map +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.test.js +19 -13
- package/dist/src/ui/components/SuggestionsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/Table.test.js +9 -6
- package/dist/src/ui/components/Table.test.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.test.js +42 -19
- package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
- package/dist/src/ui/components/ThemedGradient.test.js +4 -2
- package/dist/src/ui/components/ThemedGradient.test.js.map +1 -1
- package/dist/src/ui/components/Tips.test.js +4 -2
- package/dist/src/ui/components/Tips.test.js.map +1 -1
- package/dist/src/ui/components/ToastDisplay.js +6 -1
- package/dist/src/ui/components/ToastDisplay.js.map +1 -1
- package/dist/src/ui/components/ToastDisplay.test.js +48 -17
- package/dist/src/ui/components/ToastDisplay.test.js.map +1 -1
- package/dist/src/ui/components/ToolConfirmationQueue.js +11 -8
- package/dist/src/ui/components/ToolConfirmationQueue.js.map +1 -1
- package/dist/src/ui/components/ToolConfirmationQueue.test.js +75 -17
- package/dist/src/ui/components/ToolConfirmationQueue.test.js.map +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.test.js +19 -12
- package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/UpdateNotification.test.js +4 -2
- package/dist/src/ui/components/UpdateNotification.test.js.map +1 -1
- package/dist/src/ui/components/UserIdentity.test.js +16 -11
- package/dist/src/ui/components/UserIdentity.test.js.map +1 -1
- package/dist/src/ui/components/ValidationDialog.test.js +33 -16
- package/dist/src/ui/components/ValidationDialog.test.js.map +1 -1
- package/dist/src/ui/components/messages/CompressionMessage.test.js +99 -101
- package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ErrorMessage.test.js +8 -4
- package/dist/src/ui/components/messages/ErrorMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiMessage.js +5 -1
- package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiMessage.test.js +12 -6
- package/dist/src/ui/components/messages/GeminiMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/HintMessage.d.ts +11 -0
- package/dist/src/ui/components/messages/HintMessage.js +14 -0
- package/dist/src/ui/components/messages/HintMessage.js.map +1 -0
- package/dist/src/ui/components/messages/InfoMessage.d.ts +1 -0
- package/dist/src/ui/components/messages/InfoMessage.js +2 -2
- package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
- package/dist/src/ui/components/messages/InfoMessage.test.js +12 -6
- package/dist/src/ui/components/messages/InfoMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/RedirectionConfirmation.test.js +4 -2
- package/dist/src/ui/components/messages/RedirectionConfirmation.test.js.map +1 -1
- package/dist/src/ui/components/messages/ShellToolMessage.d.ts +1 -2
- package/dist/src/ui/components/messages/ShellToolMessage.js +15 -29
- package/dist/src/ui/components/messages/ShellToolMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ShellToolMessage.test.js +91 -22
- package/dist/src/ui/components/messages/ShellToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ThinkingMessage.test.js +25 -13
- package/dist/src/ui/components/messages/ThinkingMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/Todo.test.js +34 -19
- package/dist/src/ui/components/messages/Todo.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +128 -13
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js +175 -20
- package/dist/src/ui/components/messages/ToolConfirmationMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.d.ts +3 -4
- package/dist/src/ui/components/messages/ToolGroupMessage.js +91 -35
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js +286 -63
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.js +4 -4
- package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.test.js +118 -39
- package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessageFocusHint.test.js +15 -6
- package/dist/src/ui/components/messages/ToolMessageFocusHint.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js +4 -2
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolOverflowConsistencyChecks.test.d.ts +6 -0
- package/dist/src/ui/components/messages/ToolOverflowConsistencyChecks.test.js +79 -0
- package/dist/src/ui/components/messages/ToolOverflowConsistencyChecks.test.js.map +1 -0
- package/dist/src/ui/components/messages/ToolResultDisplay.js +25 -14
- package/dist/src/ui/components/messages/ToolResultDisplay.js.map +1 -1
- package/dist/src/ui/components/messages/ToolResultDisplay.test.js +81 -31
- package/dist/src/ui/components/messages/ToolResultDisplay.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolResultDisplayOverflow.test.js +5 -5
- package/dist/src/ui/components/messages/ToolResultDisplayOverflow.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolShared.d.ts +8 -0
- package/dist/src/ui/components/messages/ToolShared.js +27 -9
- package/dist/src/ui/components/messages/ToolShared.js.map +1 -1
- package/dist/src/ui/components/messages/ToolShared.test.d.ts +6 -0
- package/dist/src/ui/components/messages/ToolShared.test.js +52 -0
- package/dist/src/ui/components/messages/ToolShared.test.js.map +1 -0
- package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.js +11 -4
- package/dist/src/ui/components/messages/ToolStickyHeaderRegression.test.js.map +1 -1
- package/dist/src/ui/components/messages/UserMessage.js +1 -2
- package/dist/src/ui/components/messages/UserMessage.js.map +1 -1
- package/dist/src/ui/components/messages/UserMessage.test.js +16 -8
- package/dist/src/ui/components/messages/UserMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/UserShellMessage.js +1 -2
- package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -1
- package/dist/src/ui/components/messages/WarningMessage.test.js +8 -4
- package/dist/src/ui/components/messages/WarningMessage.test.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js +118 -106
- package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSettingsDialog.js +22 -24
- package/dist/src/ui/components/shared/BaseSettingsDialog.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSettingsDialog.test.js +139 -40
- package/dist/src/ui/components/shared/BaseSettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js +10 -6
- package/dist/src/ui/components/shared/DescriptiveRadioButtonSelect.test.js.map +1 -1
- package/dist/src/ui/components/shared/EnumSelector.test.js +42 -20
- package/dist/src/ui/components/shared/EnumSelector.test.js.map +1 -1
- package/dist/src/ui/components/shared/ExpandableText.test.js +21 -14
- package/dist/src/ui/components/shared/ExpandableText.test.js.map +1 -1
- package/dist/src/ui/components/shared/HalfLinePaddedBox.test.js +8 -4
- package/dist/src/ui/components/shared/HalfLinePaddedBox.test.js.map +1 -1
- package/dist/src/ui/components/shared/MaxSizedBox.test.js +41 -30
- package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +1 -1
- package/dist/src/ui/components/shared/Scrollable.js +2 -3
- package/dist/src/ui/components/shared/Scrollable.js.map +1 -1
- package/dist/src/ui/components/shared/Scrollable.test.js +33 -17
- package/dist/src/ui/components/shared/Scrollable.test.js.map +1 -1
- package/dist/src/ui/components/shared/ScrollableList.js +1 -1
- package/dist/src/ui/components/shared/ScrollableList.js.map +1 -1
- package/dist/src/ui/components/shared/ScrollableList.test.js +36 -6
- package/dist/src/ui/components/shared/ScrollableList.test.js.map +1 -1
- package/dist/src/ui/components/shared/SearchableList.d.ts +46 -14
- package/dist/src/ui/components/shared/SearchableList.js +69 -57
- package/dist/src/ui/components/shared/SearchableList.js.map +1 -1
- package/dist/src/ui/components/shared/SearchableList.test.js +67 -14
- package/dist/src/ui/components/shared/SearchableList.test.js.map +1 -1
- package/dist/src/ui/components/shared/SectionHeader.d.ts +1 -0
- package/dist/src/ui/components/shared/SectionHeader.js +1 -1
- package/dist/src/ui/components/shared/SectionHeader.js.map +1 -1
- package/dist/src/ui/components/shared/SectionHeader.test.js +9 -2
- package/dist/src/ui/components/shared/SectionHeader.test.js.map +1 -1
- package/dist/src/ui/components/shared/TabHeader.js +1 -1
- package/dist/src/ui/components/shared/TabHeader.js.map +1 -1
- package/dist/src/ui/components/shared/TabHeader.test.js +65 -25
- package/dist/src/ui/components/shared/TabHeader.test.js.map +1 -1
- package/dist/src/ui/components/shared/TextInput.test.js +111 -65
- package/dist/src/ui/components/shared/TextInput.test.js.map +1 -1
- package/dist/src/ui/components/shared/VirtualizedList.test.js +27 -35
- package/dist/src/ui/components/shared/VirtualizedList.test.js.map +1 -1
- package/dist/src/ui/components/triage/TriageDuplicates.js +1 -0
- package/dist/src/ui/components/triage/TriageDuplicates.js.map +1 -1
- package/dist/src/ui/components/triage/TriageIssues.js +1 -0
- package/dist/src/ui/components/triage/TriageIssues.js.map +1 -1
- package/dist/src/ui/components/views/ChatList.test.js +9 -6
- package/dist/src/ui/components/views/ChatList.test.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionRegistryView.d.ts +15 -0
- package/dist/src/ui/components/views/ExtensionRegistryView.js +60 -0
- package/dist/src/ui/components/views/ExtensionRegistryView.js.map +1 -0
- package/dist/src/ui/components/views/ExtensionRegistryView.test.d.ts +6 -0
- package/dist/src/ui/components/views/ExtensionRegistryView.test.js +168 -0
- package/dist/src/ui/components/views/ExtensionRegistryView.test.js.map +1 -0
- package/dist/src/ui/components/views/ExtensionsList.test.js +21 -19
- package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.test.js +38 -25
- package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
- package/dist/src/ui/components/views/SkillsList.test.js +18 -12
- package/dist/src/ui/components/views/SkillsList.test.js.map +1 -1
- package/dist/src/ui/components/views/ToolsList.test.js +9 -6
- package/dist/src/ui/components/views/ToolsList.test.js.map +1 -1
- package/dist/src/ui/constants/tips.js +1 -1
- package/dist/src/ui/constants/tips.js.map +1 -1
- package/dist/src/ui/constants.d.ts +2 -1
- package/dist/src/ui/constants.js +2 -1
- package/dist/src/ui/constants.js.map +1 -1
- package/dist/src/ui/contexts/AppContext.d.ts +2 -1
- package/dist/src/ui/contexts/AppContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.js +37 -8
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +68 -0
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/OverflowContext.d.ts +3 -3
- package/dist/src/ui/contexts/OverflowContext.js +5 -1
- package/dist/src/ui/contexts/OverflowContext.js.map +1 -1
- package/dist/src/ui/contexts/TerminalContext.test.js +26 -15
- package/dist/src/ui/contexts/TerminalContext.test.js.map +1 -1
- package/dist/src/ui/contexts/UIActionsContext.d.ts +6 -1
- package/dist/src/ui/contexts/UIActionsContext.js +1 -1
- package/dist/src/ui/contexts/UIActionsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +7 -1
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +6 -2
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +23 -11
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +30 -14
- package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/toolMapping.d.ts +2 -0
- package/dist/src/ui/hooks/toolMapping.js +13 -1
- package/dist/src/ui/hooks/toolMapping.js.map +1 -1
- package/dist/src/ui/hooks/toolMapping.test.js +42 -0
- package/dist/src/ui/hooks/toolMapping.test.js.map +1 -1
- package/dist/src/ui/hooks/useAnimatedScrollbar.js +13 -3
- package/dist/src/ui/hooks/useAnimatedScrollbar.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.js +74 -22
- package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.test.js +88 -0
- package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.js +2 -3
- package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.test.js +0 -4
- package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useConfirmingTool.d.ts +2 -6
- package/dist/src/ui/hooks/useConfirmingTool.js +2 -23
- package/dist/src/ui/hooks/useConfirmingTool.js.map +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.js +18 -6
- package/dist/src/ui/hooks/useConsoleMessages.js.map +1 -1
- package/dist/src/ui/hooks/useConsoleMessages.test.js +4 -4
- package/dist/src/ui/hooks/useExtensionRegistry.d.ts +13 -0
- package/dist/src/ui/hooks/useExtensionRegistry.js +70 -0
- package/dist/src/ui/hooks/useExtensionRegistry.js.map +1 -0
- package/dist/src/ui/hooks/useFocus.d.ts +4 -1
- package/dist/src/ui/hooks/useFocus.js +7 -1
- package/dist/src/ui/hooks/useFocus.js.map +1 -1
- package/dist/src/ui/hooks/useFocus.test.js +20 -11
- package/dist/src/ui/hooks/useFocus.test.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.d.ts +2 -0
- package/dist/src/ui/hooks/useFolderTrust.js +15 -3
- package/dist/src/ui/hooks/useFolderTrust.js.map +1 -1
- package/dist/src/ui/hooks/useFolderTrust.test.js +3 -0
- package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.d.ts +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +86 -20
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +150 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.d.ts +3 -1
- package/dist/src/ui/hooks/useLoadingIndicator.js +2 -2
- package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.test.js +9 -4
- package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useMouseClick.test.js +15 -7
- package/dist/src/ui/hooks/useMouseClick.test.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.d.ts +4 -2
- package/dist/src/ui/hooks/usePhraseCycler.js +38 -26
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.test.js +123 -73
- package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -1
- package/dist/src/ui/hooks/usePromptCompletion.d.ts +1 -2
- package/dist/src/ui/hooks/usePromptCompletion.js +2 -2
- package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useRegistrySearch.d.ts +19 -0
- package/dist/src/ui/hooks/useRegistrySearch.js +35 -0
- package/dist/src/ui/hooks/useRegistrySearch.js.map +1 -0
- package/dist/src/ui/hooks/useRunEventNotifications.d.ts +22 -0
- package/dist/src/ui/hooks/useRunEventNotifications.js +93 -0
- package/dist/src/ui/hooks/useRunEventNotifications.js.map +1 -0
- package/dist/src/ui/hooks/useSearchBuffer.d.ts +11 -0
- package/dist/src/ui/hooks/useSearchBuffer.js +24 -0
- package/dist/src/ui/hooks/useSearchBuffer.js.map +1 -0
- package/dist/src/ui/hooks/useSelectionList.test.js +111 -45
- package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
- package/dist/src/ui/hooks/useSessionBrowser.js +3 -2
- package/dist/src/ui/hooks/useSessionBrowser.js.map +1 -1
- package/dist/src/ui/hooks/useSessionBrowser.test.js +15 -12
- package/dist/src/ui/hooks/useSessionBrowser.test.js.map +1 -1
- package/dist/src/ui/hooks/useSessionResume.js +2 -2
- package/dist/src/ui/hooks/useSessionResume.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +1 -0
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useStateAndRef.js +1 -0
- package/dist/src/ui/hooks/useStateAndRef.js.map +1 -1
- package/dist/src/ui/hooks/useTerminalTheme.test.js +29 -18
- package/dist/src/ui/hooks/useTerminalTheme.test.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.js +19 -2
- package/dist/src/ui/hooks/useToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +44 -0
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/keyMatchers.test.js +1 -0
- package/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/layouts/DefaultAppLayout.test.js +12 -6
- package/dist/src/ui/layouts/DefaultAppLayout.test.js.map +1 -1
- package/dist/src/ui/privacy/CloudFreePrivacyNotice.test.js +24 -8
- package/dist/src/ui/privacy/CloudFreePrivacyNotice.test.js.map +1 -1
- package/dist/src/ui/privacy/CloudPaidPrivacyNotice.test.js +16 -5
- package/dist/src/ui/privacy/CloudPaidPrivacyNotice.test.js.map +1 -1
- package/dist/src/ui/privacy/GeminiPrivacyNotice.test.js +16 -5
- package/dist/src/ui/privacy/GeminiPrivacyNotice.test.js.map +1 -1
- package/dist/src/ui/privacy/PrivacyNotice.test.js +4 -2
- package/dist/src/ui/privacy/PrivacyNotice.test.js.map +1 -1
- package/dist/src/ui/themes/no-color.js +4 -0
- package/dist/src/ui/themes/no-color.js.map +1 -1
- package/dist/src/ui/themes/semantic-tokens.d.ts +2 -0
- package/dist/src/ui/themes/semantic-tokens.js +6 -2
- package/dist/src/ui/themes/semantic-tokens.js.map +1 -1
- package/dist/src/ui/themes/solarized-dark.js +2 -0
- package/dist/src/ui/themes/solarized-dark.js.map +1 -1
- package/dist/src/ui/themes/solarized-light.js +2 -0
- package/dist/src/ui/themes/solarized-light.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.js +9 -4
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/themes/theme.d.ts +2 -0
- package/dist/src/ui/themes/theme.js +20 -7
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/themes/theme.test.js +7 -7
- package/dist/src/ui/themes/theme.test.js.map +1 -1
- package/dist/src/ui/types.d.ts +14 -2
- package/dist/src/ui/types.js +1 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.js +3 -5
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.test.js +4 -2
- package/dist/src/ui/utils/CodeColorizer.test.js.map +1 -1
- package/dist/src/ui/utils/InlineMarkdownRenderer.js +3 -1
- package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.js +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.test.js +65 -33
- package/dist/src/ui/utils/MarkdownDisplay.test.js.map +1 -1
- package/dist/src/ui/utils/TableRenderer.js +7 -3
- package/dist/src/ui/utils/TableRenderer.js.map +1 -1
- package/dist/src/ui/utils/TableRenderer.test.js +43 -22
- package/dist/src/ui/utils/TableRenderer.test.js.map +1 -1
- package/dist/src/ui/utils/borderStyles.d.ts +18 -0
- package/dist/src/ui/utils/borderStyles.js +78 -0
- package/dist/src/ui/utils/borderStyles.js.map +1 -0
- package/dist/src/ui/utils/commandUtils.d.ts +2 -1
- package/dist/src/ui/utils/commandUtils.js +8 -3
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +18 -0
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/ui/utils/confirmingTool.d.ts +15 -0
- package/dist/src/ui/utils/confirmingTool.js +27 -0
- package/dist/src/ui/utils/confirmingTool.js.map +1 -0
- package/dist/src/ui/utils/pendingAttentionNotification.d.ts +12 -0
- package/dist/src/ui/utils/pendingAttentionNotification.js +101 -0
- package/dist/src/ui/utils/pendingAttentionNotification.js.map +1 -0
- package/dist/src/ui/utils/pendingAttentionNotification.test.d.ts +6 -0
- package/dist/src/ui/utils/pendingAttentionNotification.test.js +79 -0
- package/dist/src/ui/utils/pendingAttentionNotification.test.js.map +1 -0
- package/dist/src/ui/utils/terminalCapabilityManager.d.ts +2 -0
- package/dist/src/ui/utils/terminalCapabilityManager.js +18 -0
- package/dist/src/ui/utils/terminalCapabilityManager.js.map +1 -1
- package/dist/src/ui/utils/terminalCapabilityManager.test.js +68 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +1 -1
- package/dist/src/ui/utils/terminalSetup.d.ts +24 -0
- package/dist/src/ui/utils/terminalSetup.js +130 -34
- package/dist/src/ui/utils/terminalSetup.js.map +1 -1
- package/dist/src/ui/utils/terminalSetup.test.js +35 -1
- package/dist/src/ui/utils/terminalSetup.test.js.map +1 -1
- package/dist/src/ui/utils/textUtils.d.ts +4 -0
- package/dist/src/ui/utils/textUtils.js +10 -1
- package/dist/src/ui/utils/textUtils.js.map +1 -1
- package/dist/src/ui/utils/textUtils.test.js +25 -2
- package/dist/src/ui/utils/textUtils.test.js.map +1 -1
- package/dist/src/ui/utils/toolLayoutUtils.d.ts +44 -0
- package/dist/src/ui/utils/toolLayoutUtils.js +73 -0
- package/dist/src/ui/utils/toolLayoutUtils.js.map +1 -0
- package/dist/src/ui/utils/urlSecurityUtils.d.ts +32 -0
- package/dist/src/ui/utils/urlSecurityUtils.js +71 -0
- package/dist/src/ui/utils/urlSecurityUtils.js.map +1 -0
- package/dist/src/ui/utils/urlSecurityUtils.test.d.ts +6 -0
- package/dist/src/ui/utils/urlSecurityUtils.test.js +49 -0
- package/dist/src/ui/utils/urlSecurityUtils.test.js.map +1 -0
- package/dist/src/utils/activityLogger.js +95 -24
- package/dist/src/utils/activityLogger.js.map +1 -1
- package/dist/src/utils/devtoolsService.js +1 -2
- package/dist/src/utils/devtoolsService.js.map +1 -1
- package/dist/src/utils/devtoolsService.test.js +1 -1
- package/dist/src/utils/devtoolsService.test.js.map +1 -1
- package/dist/src/utils/envVarResolver.js +4 -1
- package/dist/src/utils/envVarResolver.js.map +1 -1
- package/dist/src/utils/gitUtils.js +2 -0
- package/dist/src/utils/gitUtils.js.map +1 -1
- package/dist/src/utils/jsonoutput.js +2 -0
- package/dist/src/utils/jsonoutput.js.map +1 -1
- package/dist/src/utils/persistentState.d.ts +2 -0
- package/dist/src/utils/persistentState.js +1 -0
- package/dist/src/utils/persistentState.js.map +1 -1
- package/dist/src/utils/readStdin.js +1 -0
- package/dist/src/utils/readStdin.js.map +1 -1
- package/dist/src/utils/sessionUtils.d.ts +1 -6
- package/dist/src/utils/sessionUtils.js +8 -101
- package/dist/src/utils/sessionUtils.js.map +1 -1
- package/dist/src/utils/sessionUtils.test.js +47 -0
- package/dist/src/utils/sessionUtils.test.js.map +1 -1
- package/dist/src/utils/settingsUtils.js +2 -0
- package/dist/src/utils/settingsUtils.js.map +1 -1
- package/dist/src/utils/skillUtils.test.js +7 -5
- package/dist/src/utils/skillUtils.test.js.map +1 -1
- package/dist/src/utils/terminalNotifications.d.ts +25 -0
- package/dist/src/utils/terminalNotifications.js +77 -0
- package/dist/src/utils/terminalNotifications.js.map +1 -0
- package/dist/src/utils/terminalNotifications.test.d.ts +6 -0
- package/dist/src/utils/terminalNotifications.test.js +123 -0
- package/dist/src/utils/terminalNotifications.test.js.map +1 -0
- package/dist/src/utils/userStartupWarnings.d.ts +4 -1
- package/dist/src/utils/userStartupWarnings.js +22 -4
- package/dist/src/utils/userStartupWarnings.js.map +1 -1
- package/dist/src/utils/userStartupWarnings.test.js +53 -11
- package/dist/src/utils/userStartupWarnings.test.js.map +1 -1
- package/dist/src/zed-integration/acpErrors.js +2 -0
- package/dist/src/zed-integration/acpErrors.js.map +1 -1
- package/dist/src/zed-integration/acpResume.test.js +53 -3
- package/dist/src/zed-integration/acpResume.test.js.map +1 -1
- package/dist/src/zed-integration/fileSystemService.js +2 -0
- package/dist/src/zed-integration/fileSystemService.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.d.ts +2 -0
- package/dist/src/zed-integration/zedIntegration.js +77 -6
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.test.js +176 -2
- package/dist/src/zed-integration/zedIntegration.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -7
- package/dist/google-gemini-cli-0.30.0-preview.4.tgz +0 -0
- package/dist/src/ui/hooks/useFuzzyList.d.ts +0 -25
- package/dist/src/ui/hooks/useFuzzyList.js +0 -100
- package/dist/src/ui/hooks/useFuzzyList.js.map +0 -1
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2026 Google LLC
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, expect } from 'vitest';
|
|
8
|
+
import { ToolGroupMessage } from './ToolGroupMessage.js';
|
|
9
|
+
import { renderWithProviders } from '../../../test-utils/render.js';
|
|
10
|
+
import { StreamingState } from '../../types.js';
|
|
11
|
+
import { OverflowProvider } from '../../contexts/OverflowContext.js';
|
|
12
|
+
import { waitFor } from '../../../test-utils/async.js';
|
|
13
|
+
import { CoreToolCallStatus } from '@google/gemini-cli-core';
|
|
14
|
+
describe('ToolOverflowConsistencyChecks: ToolGroupMessage and ToolResultDisplay synchronization', () => {
|
|
15
|
+
it('should ensure explicit hasOverflow calculation is consistent with ToolResultDisplay truncation in Alternate Buffer (ASB) mode', async () => {
|
|
16
|
+
/**
|
|
17
|
+
* Logic:
|
|
18
|
+
* 1. availableTerminalHeight(13) - staticHeight(3) = 10 lines per tool.
|
|
19
|
+
* 2. ASB mode reserves 1 + 6 = 7 lines.
|
|
20
|
+
* 3. Line budget = 10 - 7 = 3 lines.
|
|
21
|
+
* 4. 5 lines of output > 3 lines budget => hasOverflow should be TRUE.
|
|
22
|
+
*/
|
|
23
|
+
const lines = Array.from({ length: 5 }, (_, i) => `line ${i + 1}`);
|
|
24
|
+
const resultDisplay = lines.join('\n');
|
|
25
|
+
const toolCalls = [
|
|
26
|
+
{
|
|
27
|
+
callId: 'call-1',
|
|
28
|
+
name: 'test-tool',
|
|
29
|
+
description: 'a test tool',
|
|
30
|
+
status: CoreToolCallStatus.Success,
|
|
31
|
+
resultDisplay,
|
|
32
|
+
confirmationDetails: undefined,
|
|
33
|
+
},
|
|
34
|
+
];
|
|
35
|
+
const { lastFrame } = renderWithProviders(_jsx(OverflowProvider, { children: _jsx(ToolGroupMessage, { item: { id: 1, type: 'tool_group', tools: toolCalls }, toolCalls: toolCalls, availableTerminalHeight: 13, terminalWidth: 80, isExpandable: true }) }), {
|
|
36
|
+
uiState: {
|
|
37
|
+
streamingState: StreamingState.Idle,
|
|
38
|
+
constrainHeight: true,
|
|
39
|
+
},
|
|
40
|
+
useAlternateBuffer: true,
|
|
41
|
+
});
|
|
42
|
+
// In ASB mode, the hint should appear because hasOverflow is now correctly calculated.
|
|
43
|
+
await waitFor(() => expect(lastFrame()?.toLowerCase()).toContain('press ctrl+o to show more lines'));
|
|
44
|
+
});
|
|
45
|
+
it('should ensure explicit hasOverflow calculation is consistent with ToolResultDisplay truncation in Standard mode', async () => {
|
|
46
|
+
/**
|
|
47
|
+
* Logic:
|
|
48
|
+
* 1. availableTerminalHeight(13) - staticHeight(3) = 10 lines per tool.
|
|
49
|
+
* 2. Standard mode reserves 1 + 2 = 3 lines.
|
|
50
|
+
* 3. Line budget = 10 - 3 = 7 lines.
|
|
51
|
+
* 4. 9 lines of output > 7 lines budget => hasOverflow should be TRUE.
|
|
52
|
+
*/
|
|
53
|
+
const lines = Array.from({ length: 9 }, (_, i) => `line ${i + 1}`);
|
|
54
|
+
const resultDisplay = lines.join('\n');
|
|
55
|
+
const toolCalls = [
|
|
56
|
+
{
|
|
57
|
+
callId: 'call-1',
|
|
58
|
+
name: 'test-tool',
|
|
59
|
+
description: 'a test tool',
|
|
60
|
+
status: CoreToolCallStatus.Success,
|
|
61
|
+
resultDisplay,
|
|
62
|
+
confirmationDetails: undefined,
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
const { lastFrame } = renderWithProviders(_jsx(OverflowProvider, { children: _jsx(ToolGroupMessage, { item: { id: 1, type: 'tool_group', tools: toolCalls }, toolCalls: toolCalls, availableTerminalHeight: 13, terminalWidth: 80, isExpandable: true }) }), {
|
|
66
|
+
uiState: {
|
|
67
|
+
streamingState: StreamingState.Idle,
|
|
68
|
+
constrainHeight: true,
|
|
69
|
+
},
|
|
70
|
+
useAlternateBuffer: false,
|
|
71
|
+
});
|
|
72
|
+
// Verify truncation is occurring (standard mode uses MaxSizedBox)
|
|
73
|
+
await waitFor(() => expect(lastFrame()).toContain('hidden ...'));
|
|
74
|
+
// In Standard mode, ToolGroupMessage calculates hasOverflow correctly now.
|
|
75
|
+
// While Standard mode doesn't render the inline hint (ShowMoreLines returns null),
|
|
76
|
+
// the logic inside ToolGroupMessage is now synchronized.
|
|
77
|
+
});
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=ToolOverflowConsistencyChecks.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolOverflowConsistencyChecks.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/messages/ToolOverflowConsistencyChecks.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -18,26 +18,24 @@ import { Scrollable } from '../shared/Scrollable.js';
|
|
|
18
18
|
import { ScrollableList } from '../shared/ScrollableList.js';
|
|
19
19
|
import { SCROLL_TO_ITEM_END } from '../shared/VirtualizedList.js';
|
|
20
20
|
import { ACTIVE_SHELL_MAX_LINES } from '../../constants.js';
|
|
21
|
-
|
|
22
|
-
const RESERVED_LINE_COUNT = 6; // for tool name, status, padding, and 'ShowMoreLines' hint
|
|
23
|
-
const MIN_LINES_SHOWN = 2; // show at least this many lines
|
|
21
|
+
import { calculateToolContentMaxLines } from '../../utils/toolLayoutUtils.js';
|
|
24
22
|
// Large threshold to ensure we don't cause performance issues for very large
|
|
25
23
|
// outputs that will get truncated further MaxSizedBox anyway.
|
|
26
24
|
const MAXIMUM_RESULT_DISPLAY_CHARACTERS = 20000;
|
|
27
25
|
export const ToolResultDisplay = ({ resultDisplay, availableTerminalHeight, terminalWidth, renderOutputAsMarkdown = true, maxLines, hasFocus = false, }) => {
|
|
28
26
|
const { renderMarkdown } = useUIState();
|
|
29
27
|
const isAlternateBuffer = useAlternateBuffer();
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
}
|
|
28
|
+
const availableHeight = calculateToolContentMaxLines({
|
|
29
|
+
availableTerminalHeight,
|
|
30
|
+
isAlternateBuffer,
|
|
31
|
+
maxLinesLimit: maxLines,
|
|
32
|
+
});
|
|
36
33
|
const combinedPaddingAndBorderWidth = 4;
|
|
37
34
|
const childWidth = terminalWidth - combinedPaddingAndBorderWidth;
|
|
38
35
|
const keyExtractor = React.useCallback((_, index) => index.toString(), []);
|
|
39
36
|
const renderVirtualizedAnsiLine = React.useCallback(({ item }) => (_jsx(Box, { height: 1, overflow: "hidden", children: _jsx(AnsiLineText, { line: item }) })), []);
|
|
40
|
-
const truncatedResultDisplay = React.useMemo(() => {
|
|
37
|
+
const { truncatedResultDisplay, hiddenLinesCount } = React.useMemo(() => {
|
|
38
|
+
let hiddenLines = 0;
|
|
41
39
|
// Only truncate string output if not in alternate buffer mode to ensure
|
|
42
40
|
// we can scroll through the full output.
|
|
43
41
|
if (typeof resultDisplay === 'string' && !isAlternateBuffer) {
|
|
@@ -50,14 +48,27 @@ export const ToolResultDisplay = ({ resultDisplay, availableTerminalHeight, term
|
|
|
50
48
|
const contentText = hasTrailingNewline ? text.slice(0, -1) : text;
|
|
51
49
|
const lines = contentText.split('\n');
|
|
52
50
|
if (lines.length > maxLines) {
|
|
51
|
+
// We will have a label from MaxSizedBox. Reserve space for it.
|
|
52
|
+
const targetLines = Math.max(1, maxLines - 1);
|
|
53
|
+
hiddenLines = lines.length - targetLines;
|
|
53
54
|
text =
|
|
54
|
-
lines.slice(-
|
|
55
|
+
lines.slice(-targetLines).join('\n') +
|
|
55
56
|
(hasTrailingNewline ? '\n' : '');
|
|
56
57
|
}
|
|
57
58
|
}
|
|
58
|
-
return text;
|
|
59
|
+
return { truncatedResultDisplay: text, hiddenLinesCount: hiddenLines };
|
|
60
|
+
}
|
|
61
|
+
if (Array.isArray(resultDisplay) && !isAlternateBuffer && maxLines) {
|
|
62
|
+
if (resultDisplay.length > maxLines) {
|
|
63
|
+
// We will have a label from MaxSizedBox. Reserve space for it.
|
|
64
|
+
const targetLines = Math.max(1, maxLines - 1);
|
|
65
|
+
return {
|
|
66
|
+
truncatedResultDisplay: resultDisplay.slice(-targetLines),
|
|
67
|
+
hiddenLinesCount: resultDisplay.length - targetLines,
|
|
68
|
+
};
|
|
69
|
+
}
|
|
59
70
|
}
|
|
60
|
-
return resultDisplay;
|
|
71
|
+
return { truncatedResultDisplay: resultDisplay, hiddenLinesCount: 0 };
|
|
61
72
|
}, [resultDisplay, isAlternateBuffer, maxLines]);
|
|
62
73
|
if (!truncatedResultDisplay)
|
|
63
74
|
return null;
|
|
@@ -121,6 +132,6 @@ export const ToolResultDisplay = ({ resultDisplay, availableTerminalHeight, term
|
|
|
121
132
|
if (isAlternateBuffer) {
|
|
122
133
|
return (_jsx(Scrollable, { width: childWidth, maxHeight: maxLines ?? availableHeight, hasFocus: hasFocus, scrollToBottom: true, children: content }));
|
|
123
134
|
}
|
|
124
|
-
return (_jsx(Box, { width: childWidth, flexDirection: "column", children: _jsx(MaxSizedBox, { maxHeight: availableHeight, maxWidth: childWidth, children: content }) }));
|
|
135
|
+
return (_jsx(Box, { width: childWidth, flexDirection: "column", children: _jsx(MaxSizedBox, { maxHeight: availableHeight, maxWidth: childWidth, additionalHiddenLinesCount: hiddenLinesCount, children: content }) }));
|
|
125
136
|
};
|
|
126
137
|
//# sourceMappingURL=ToolResultDisplay.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolResultDisplay.js","sourceRoot":"","sources":["../../../../../src/ui/components/messages/ToolResultDisplay.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEjD,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"ToolResultDisplay.js","sourceRoot":"","sources":["../../../../../src/ui/components/messages/ToolResultDisplay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -27,9 +27,7 @@ describe('ToolResultDisplay', () => {
|
|
|
27
27
|
mockUseUIState.mockReturnValue({ renderMarkdown: true });
|
|
28
28
|
mockUseAlternateBuffer.mockReturnValue(false);
|
|
29
29
|
});
|
|
30
|
-
|
|
31
|
-
const render = (ui) => renderWithProviders(ui);
|
|
32
|
-
it('uses ScrollableList for ANSI output in alternate buffer mode', () => {
|
|
30
|
+
it('uses ScrollableList for ANSI output in alternate buffer mode', async () => {
|
|
33
31
|
mockUseAlternateBuffer.mockReturnValue(true);
|
|
34
32
|
const content = 'ansi content';
|
|
35
33
|
const ansiResult = [
|
|
@@ -46,48 +44,62 @@ describe('ToolResultDisplay', () => {
|
|
|
46
44
|
},
|
|
47
45
|
],
|
|
48
46
|
];
|
|
49
|
-
const { lastFrame } =
|
|
47
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: ansiResult, terminalWidth: 80, maxLines: 10 }));
|
|
48
|
+
await waitUntilReady();
|
|
50
49
|
const output = lastFrame();
|
|
51
50
|
expect(output).toContain(content);
|
|
51
|
+
unmount();
|
|
52
52
|
});
|
|
53
|
-
it('uses Scrollable for non-ANSI output in alternate buffer mode', () => {
|
|
53
|
+
it('uses Scrollable for non-ANSI output in alternate buffer mode', async () => {
|
|
54
54
|
mockUseAlternateBuffer.mockReturnValue(true);
|
|
55
|
-
const { lastFrame } =
|
|
55
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: "**Markdown content**", terminalWidth: 80, maxLines: 10 }));
|
|
56
|
+
await waitUntilReady();
|
|
56
57
|
const output = lastFrame();
|
|
57
58
|
// With real components, we check for the content itself
|
|
58
59
|
expect(output).toContain('Markdown content');
|
|
60
|
+
unmount();
|
|
59
61
|
});
|
|
60
|
-
it('passes hasFocus prop to scrollable components', () => {
|
|
62
|
+
it('passes hasFocus prop to scrollable components', async () => {
|
|
61
63
|
mockUseAlternateBuffer.mockReturnValue(true);
|
|
62
|
-
const { lastFrame } =
|
|
64
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: "Some result", terminalWidth: 80, hasFocus: true }));
|
|
65
|
+
await waitUntilReady();
|
|
63
66
|
expect(lastFrame()).toContain('Some result');
|
|
67
|
+
unmount();
|
|
64
68
|
});
|
|
65
|
-
it('renders string result as markdown by default', () => {
|
|
66
|
-
const { lastFrame } =
|
|
69
|
+
it('renders string result as markdown by default', async () => {
|
|
70
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: "**Some result**", terminalWidth: 80 }));
|
|
71
|
+
await waitUntilReady();
|
|
67
72
|
const output = lastFrame();
|
|
68
73
|
expect(output).toMatchSnapshot();
|
|
74
|
+
unmount();
|
|
69
75
|
});
|
|
70
|
-
it('renders string result as plain text when renderOutputAsMarkdown is false', () => {
|
|
71
|
-
const { lastFrame } =
|
|
76
|
+
it('renders string result as plain text when renderOutputAsMarkdown is false', async () => {
|
|
77
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: "**Some result**", terminalWidth: 80, availableTerminalHeight: 20, renderOutputAsMarkdown: false }));
|
|
78
|
+
await waitUntilReady();
|
|
72
79
|
const output = lastFrame();
|
|
73
80
|
expect(output).toMatchSnapshot();
|
|
81
|
+
unmount();
|
|
74
82
|
});
|
|
75
|
-
it('truncates very long string results', { timeout: 20000 }, () => {
|
|
83
|
+
it('truncates very long string results', { timeout: 20000 }, async () => {
|
|
76
84
|
const longString = 'a'.repeat(1000005);
|
|
77
|
-
const { lastFrame } =
|
|
85
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: longString, terminalWidth: 80, availableTerminalHeight: 20 }));
|
|
86
|
+
await waitUntilReady();
|
|
78
87
|
const output = lastFrame();
|
|
79
88
|
expect(output).toMatchSnapshot();
|
|
89
|
+
unmount();
|
|
80
90
|
});
|
|
81
|
-
it('renders file diff result', () => {
|
|
91
|
+
it('renders file diff result', async () => {
|
|
82
92
|
const diffResult = {
|
|
83
93
|
fileDiff: 'diff content',
|
|
84
94
|
fileName: 'test.ts',
|
|
85
95
|
};
|
|
86
|
-
const { lastFrame } =
|
|
96
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: diffResult, terminalWidth: 80, availableTerminalHeight: 20 }));
|
|
97
|
+
await waitUntilReady();
|
|
87
98
|
const output = lastFrame();
|
|
88
99
|
expect(output).toMatchSnapshot();
|
|
100
|
+
unmount();
|
|
89
101
|
});
|
|
90
|
-
it('renders ANSI output result', () => {
|
|
102
|
+
it('renders ANSI output result', async () => {
|
|
91
103
|
const ansiResult = [
|
|
92
104
|
[
|
|
93
105
|
{
|
|
@@ -102,32 +114,40 @@ describe('ToolResultDisplay', () => {
|
|
|
102
114
|
},
|
|
103
115
|
],
|
|
104
116
|
];
|
|
105
|
-
const { lastFrame } =
|
|
117
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: ansiResult, terminalWidth: 80, availableTerminalHeight: 20 }));
|
|
118
|
+
await waitUntilReady();
|
|
106
119
|
const output = lastFrame();
|
|
107
120
|
expect(output).toMatchSnapshot();
|
|
121
|
+
unmount();
|
|
108
122
|
});
|
|
109
|
-
it('renders nothing for todos result', () => {
|
|
123
|
+
it('renders nothing for todos result', async () => {
|
|
110
124
|
const todoResult = {
|
|
111
125
|
todos: [],
|
|
112
126
|
};
|
|
113
|
-
const { lastFrame } =
|
|
114
|
-
|
|
127
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: todoResult, terminalWidth: 80, availableTerminalHeight: 20 }));
|
|
128
|
+
await waitUntilReady();
|
|
129
|
+
const output = lastFrame({ allowEmpty: true });
|
|
115
130
|
expect(output).toMatchSnapshot();
|
|
131
|
+
unmount();
|
|
116
132
|
});
|
|
117
|
-
it('does not fall back to plain text if availableHeight is set and not in alternate buffer', () => {
|
|
133
|
+
it('does not fall back to plain text if availableHeight is set and not in alternate buffer', async () => {
|
|
118
134
|
mockUseAlternateBuffer.mockReturnValue(false);
|
|
119
135
|
// availableHeight calculation: 20 - 1 - 5 = 14 > 3
|
|
120
|
-
const { lastFrame } =
|
|
136
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: "**Some result**", terminalWidth: 80, availableTerminalHeight: 20, renderOutputAsMarkdown: true }));
|
|
137
|
+
await waitUntilReady();
|
|
121
138
|
const output = lastFrame();
|
|
122
139
|
expect(output).toMatchSnapshot();
|
|
140
|
+
unmount();
|
|
123
141
|
});
|
|
124
|
-
it('keeps markdown if in alternate buffer even with availableHeight', () => {
|
|
142
|
+
it('keeps markdown if in alternate buffer even with availableHeight', async () => {
|
|
125
143
|
mockUseAlternateBuffer.mockReturnValue(true);
|
|
126
|
-
const { lastFrame } =
|
|
144
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: "**Some result**", terminalWidth: 80, availableTerminalHeight: 20, renderOutputAsMarkdown: true }));
|
|
145
|
+
await waitUntilReady();
|
|
127
146
|
const output = lastFrame();
|
|
128
147
|
expect(output).toMatchSnapshot();
|
|
148
|
+
unmount();
|
|
129
149
|
});
|
|
130
|
-
it('truncates ANSI output when maxLines is provided', () => {
|
|
150
|
+
it('truncates ANSI output when maxLines is provided', async () => {
|
|
131
151
|
const ansiResult = [
|
|
132
152
|
[
|
|
133
153
|
{
|
|
@@ -165,14 +185,42 @@ describe('ToolResultDisplay', () => {
|
|
|
165
185
|
inverse: false,
|
|
166
186
|
},
|
|
167
187
|
],
|
|
188
|
+
[
|
|
189
|
+
{
|
|
190
|
+
text: 'Line 4',
|
|
191
|
+
fg: '',
|
|
192
|
+
bg: '',
|
|
193
|
+
bold: false,
|
|
194
|
+
italic: false,
|
|
195
|
+
underline: false,
|
|
196
|
+
dim: false,
|
|
197
|
+
inverse: false,
|
|
198
|
+
},
|
|
199
|
+
],
|
|
200
|
+
[
|
|
201
|
+
{
|
|
202
|
+
text: 'Line 5',
|
|
203
|
+
fg: '',
|
|
204
|
+
bg: '',
|
|
205
|
+
bold: false,
|
|
206
|
+
italic: false,
|
|
207
|
+
underline: false,
|
|
208
|
+
dim: false,
|
|
209
|
+
inverse: false,
|
|
210
|
+
},
|
|
211
|
+
],
|
|
168
212
|
];
|
|
169
|
-
const { lastFrame } =
|
|
213
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: ansiResult, terminalWidth: 80, availableTerminalHeight: 20, maxLines: 3 }));
|
|
214
|
+
await waitUntilReady();
|
|
170
215
|
const output = lastFrame();
|
|
171
216
|
expect(output).not.toContain('Line 1');
|
|
172
|
-
expect(output).toContain('Line 2');
|
|
173
|
-
expect(output).toContain('Line 3');
|
|
217
|
+
expect(output).not.toContain('Line 2');
|
|
218
|
+
expect(output).not.toContain('Line 3');
|
|
219
|
+
expect(output).toContain('Line 4');
|
|
220
|
+
expect(output).toContain('Line 5');
|
|
221
|
+
unmount();
|
|
174
222
|
});
|
|
175
|
-
it('truncates ANSI output when maxLines is provided, even if availableTerminalHeight is undefined', () => {
|
|
223
|
+
it('truncates ANSI output when maxLines is provided, even if availableTerminalHeight is undefined', async () => {
|
|
176
224
|
const ansiResult = Array.from({ length: 50 }, (_, i) => [
|
|
177
225
|
{
|
|
178
226
|
text: `Line ${i + 1}`,
|
|
@@ -185,11 +233,13 @@ describe('ToolResultDisplay', () => {
|
|
|
185
233
|
inverse: false,
|
|
186
234
|
},
|
|
187
235
|
]);
|
|
188
|
-
const { lastFrame } =
|
|
236
|
+
const { lastFrame, waitUntilReady, unmount } = renderWithProviders(_jsx(ToolResultDisplay, { resultDisplay: ansiResult, terminalWidth: 80, maxLines: 25, availableTerminalHeight: undefined }));
|
|
237
|
+
await waitUntilReady();
|
|
189
238
|
const output = lastFrame();
|
|
190
239
|
// It SHOULD truncate to 25 lines because maxLines is provided
|
|
191
240
|
expect(output).not.toContain('Line 1');
|
|
192
241
|
expect(output).toContain('Line 50');
|
|
242
|
+
unmount();
|
|
193
243
|
});
|
|
194
244
|
});
|
|
195
245
|
//# sourceMappingURL=ToolResultDisplay.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolResultDisplay.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/messages/ToolResultDisplay.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAG9D,gCAAgC;AAChC,MAAM,cAAc,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAC/B,EAAE,CAAC,IAAI,CAAC,kCAAkC,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACnE,MAAM,MAAM,GACV,MAAM,cAAc,EAAqD,CAAC;IAC5E,OAAO;QACL,GAAG,MAAM;QACT,UAAU,EAAE,GAAG,EAAE,CAAC,cAAc,EAAE;KACnC,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,0BAA0B;AAC1B,MAAM,sBAAsB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACvC,EAAE,CAAC,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE,CAAC,CAAC;IAClD,kBAAkB,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE;CACnD,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IACjC,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,cAAc,CAAC,eAAe,CAAC,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,sBAAsB,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,
|
|
1
|
+
{"version":3,"file":"ToolResultDisplay.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/messages/ToolResultDisplay.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -29,23 +29,23 @@ describe('ToolResultDisplay Overflow', () => {
|
|
|
29
29
|
confirmationDetails: undefined,
|
|
30
30
|
},
|
|
31
31
|
];
|
|
32
|
-
const { lastFrame } = renderWithProviders(_jsx(OverflowProvider, { children: _jsx(ToolGroupMessage, {
|
|
32
|
+
const { lastFrame } = renderWithProviders(_jsx(OverflowProvider, { children: _jsx(ToolGroupMessage, { item: { id: 1, type: 'tool_group', tools: toolCalls }, toolCalls: toolCalls, availableTerminalHeight: 15, terminalWidth: 80, isExpandable: true }) }), {
|
|
33
33
|
uiState: {
|
|
34
34
|
streamingState: StreamingState.Idle,
|
|
35
35
|
constrainHeight: true,
|
|
36
36
|
},
|
|
37
|
-
useAlternateBuffer:
|
|
37
|
+
useAlternateBuffer: true,
|
|
38
38
|
});
|
|
39
39
|
// ResizeObserver might take a tick
|
|
40
|
-
await waitFor(() => expect(lastFrame()).toContain('
|
|
40
|
+
await waitFor(() => expect(lastFrame()?.toLowerCase()).toContain('press ctrl+o to show more lines'));
|
|
41
41
|
const frame = lastFrame();
|
|
42
42
|
expect(frame).toBeDefined();
|
|
43
43
|
if (frame) {
|
|
44
|
-
expect(frame).toContain('
|
|
44
|
+
expect(frame.toLowerCase()).toContain('press ctrl+o to show more lines');
|
|
45
45
|
// Ensure it's AFTER the bottom border
|
|
46
46
|
const linesOfOutput = frame.split('\n');
|
|
47
47
|
const bottomBorderIndex = linesOfOutput.findLastIndex((l) => l.includes('╰─'));
|
|
48
|
-
const hintIndex = linesOfOutput.findIndex((l) => l.includes('
|
|
48
|
+
const hintIndex = linesOfOutput.findIndex((l) => l.toLowerCase().includes('press ctrl+o to show more lines'));
|
|
49
49
|
expect(hintIndex).toBeGreaterThan(bottomBorderIndex);
|
|
50
50
|
expect(frame).toMatchSnapshot();
|
|
51
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolResultDisplayOverflow.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/messages/ToolResultDisplayOverflow.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAkC,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,6CAA6C;QAC7C,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,SAAS,GAAgC;YAC7C;gBACE,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,aAAa;gBAC1B,MAAM,EAAE,kBAAkB,CAAC,OAAO;gBAClC,aAAa;gBACb,mBAAmB,EAAE,SAAS;aAC/B;SACF,CAAC;QAEF,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,CACvC,KAAC,gBAAgB,cACf,KAAC,gBAAgB,IACf,
|
|
1
|
+
{"version":3,"file":"ToolResultDisplayOverflow.test.js","sourceRoot":"","sources":["../../../../../src/ui/components/messages/ToolResultDisplayOverflow.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAkC,MAAM,gBAAgB,CAAC;AAChF,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE;IAC1C,EAAE,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC7F,6CAA6C;QAC7C,MAAM,KAAK,GAAG,EAAE,CAAC;QACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEvC,MAAM,SAAS,GAAgC;YAC7C;gBACE,MAAM,EAAE,QAAQ;gBAChB,IAAI,EAAE,WAAW;gBACjB,WAAW,EAAE,aAAa;gBAC1B,MAAM,EAAE,kBAAkB,CAAC,OAAO;gBAClC,aAAa;gBACb,mBAAmB,EAAE,SAAS;aAC/B;SACF,CAAC;QAEF,MAAM,EAAE,SAAS,EAAE,GAAG,mBAAmB,CACvC,KAAC,gBAAgB,cACf,KAAC,gBAAgB,IACf,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,EACrD,SAAS,EAAE,SAAS,EACpB,uBAAuB,EAAE,EAAE,EAC3B,aAAa,EAAE,EAAE,EACjB,YAAY,EAAE,IAAI,GAClB,GACe,EACnB;YACE,OAAO,EAAE;gBACP,cAAc,EAAE,cAAc,CAAC,IAAI;gBACnC,eAAe,EAAE,IAAI;aACtB;YACD,kBAAkB,EAAE,IAAI;SACzB,CACF,CAAC;QAEF,mCAAmC;QACnC,MAAM,OAAO,CAAC,GAAG,EAAE,CACjB,MAAM,CAAC,SAAS,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,SAAS,CAC1C,iCAAiC,CAClC,CACF,CAAC;QAEF,MAAM,KAAK,GAAG,SAAS,EAAE,CAAC;QAC1B,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;QAC5B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,SAAS,CAAC,iCAAiC,CAAC,CAAC;YACzE,sCAAsC;YACtC,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,iBAAiB,GAAG,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,CAC1D,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CACjB,CAAC;YACF,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAC9C,CAAC,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,iCAAiC,CAAC,CAC5D,CAAC;YACF,MAAM,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,iBAAiB,CAAC,CAAC;YACrD,MAAM,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -42,7 +42,15 @@ type ToolInfoProps = {
|
|
|
42
42
|
description: string;
|
|
43
43
|
status: CoreToolCallStatus;
|
|
44
44
|
emphasis: TextEmphasis;
|
|
45
|
+
originalRequestName?: string;
|
|
45
46
|
};
|
|
46
47
|
export declare const ToolInfo: React.FC<ToolInfoProps>;
|
|
48
|
+
export interface McpProgressIndicatorProps {
|
|
49
|
+
progress: number;
|
|
50
|
+
total?: number;
|
|
51
|
+
message?: string;
|
|
52
|
+
barWidth: number;
|
|
53
|
+
}
|
|
54
|
+
export declare const McpProgressIndicator: React.FC<McpProgressIndicatorProps>;
|
|
47
55
|
export declare const TrailingIndicator: React.FC;
|
|
48
56
|
export {};
|
|
@@ -44,14 +44,16 @@ export function isThisShellFocused(name, status, ptyId, activeShellPtyId, embedd
|
|
|
44
44
|
* Hook to manage focus hint state.
|
|
45
45
|
*/
|
|
46
46
|
export function useFocusHint(isThisShellFocusable, isThisShellFocused, resultDisplay) {
|
|
47
|
-
const [lastUpdateTime, setLastUpdateTime] = useState(null);
|
|
48
47
|
const [userHasFocused, setUserHasFocused] = useState(false);
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
// Derive a stable reset key for the inactivity timer. For strings and arrays
|
|
49
|
+
// (shell output), we use the length to capture updates without referential
|
|
50
|
+
// identity issues or expensive deep comparisons.
|
|
51
|
+
const resetKey = typeof resultDisplay === 'string'
|
|
52
|
+
? resultDisplay.length
|
|
53
|
+
: Array.isArray(resultDisplay)
|
|
54
|
+
? resultDisplay.length
|
|
55
|
+
: !!resultDisplay;
|
|
56
|
+
const showFocusHint = useInactivityTimer(isThisShellFocusable, resetKey, SHELL_FOCUS_HINT_DELAY_MS);
|
|
55
57
|
useEffect(() => {
|
|
56
58
|
if (isThisShellFocused) {
|
|
57
59
|
setUserHasFocused(true);
|
|
@@ -77,7 +79,7 @@ export const ToolStatusIndicator = ({ status: coreStatus, name, }) => {
|
|
|
77
79
|
const statusColor = isShell ? theme.ui.symbol : theme.status.warning;
|
|
78
80
|
return (_jsxs(Box, { minWidth: STATUS_INDICATOR_WIDTH, children: [status === ToolCallStatus.Pending && (_jsx(Text, { color: theme.status.success, children: TOOL_STATUS.PENDING })), status === ToolCallStatus.Executing && (_jsx(GeminiRespondingSpinner, { spinnerType: "toggle", nonRespondingDisplay: TOOL_STATUS.EXECUTING })), status === ToolCallStatus.Success && (_jsx(Text, { color: theme.status.success, "aria-label": 'Success:', children: TOOL_STATUS.SUCCESS })), status === ToolCallStatus.Confirming && (_jsx(Text, { color: statusColor, "aria-label": 'Confirming:', children: TOOL_STATUS.CONFIRMING })), status === ToolCallStatus.Canceled && (_jsx(Text, { color: statusColor, "aria-label": 'Canceled:', bold: true, children: TOOL_STATUS.CANCELED })), status === ToolCallStatus.Error && (_jsx(Text, { color: theme.status.error, "aria-label": 'Error:', bold: true, children: TOOL_STATUS.ERROR }))] }));
|
|
79
81
|
};
|
|
80
|
-
export const ToolInfo = ({ name, description, status: coreStatus, emphasis, }) => {
|
|
82
|
+
export const ToolInfo = ({ name, description, status: coreStatus, emphasis, originalRequestName, }) => {
|
|
81
83
|
const status = mapCoreStatusToDisplayStatus(coreStatus);
|
|
82
84
|
const nameColor = React.useMemo(() => {
|
|
83
85
|
switch (emphasis) {
|
|
@@ -95,7 +97,23 @@ export const ToolInfo = ({ name, description, status: coreStatus, emphasis, }) =
|
|
|
95
97
|
}, [emphasis]);
|
|
96
98
|
// Hide description for completed Ask User tools (the result display speaks for itself)
|
|
97
99
|
const isCompletedAskUser = isCompletedAskUserTool(name, status);
|
|
98
|
-
return (_jsx(Box, { overflow: "hidden", height: 1, flexGrow: 1, flexShrink: 1, children: _jsxs(Text, { strikethrough: status === ToolCallStatus.Canceled, wrap: "truncate", children: [_jsx(Text, { color: nameColor, bold: true, children: name }), !isCompletedAskUser && (_jsxs(_Fragment, { children: [' ', _jsx(Text, { color: theme.text.secondary, children: description })] }))] }) }));
|
|
100
|
+
return (_jsx(Box, { overflow: "hidden", height: 1, flexGrow: 1, flexShrink: 1, children: _jsxs(Text, { strikethrough: status === ToolCallStatus.Canceled, wrap: "truncate", children: [_jsx(Text, { color: nameColor, bold: true, children: name }), originalRequestName && originalRequestName !== name && (_jsxs(Text, { color: theme.text.secondary, italic: true, children: [' ', "(redirection from ", originalRequestName, ")"] })), !isCompletedAskUser && (_jsxs(_Fragment, { children: [' ', _jsx(Text, { color: theme.text.secondary, children: description })] }))] }) }));
|
|
101
|
+
};
|
|
102
|
+
export const McpProgressIndicator = ({ progress, total, message, barWidth, }) => {
|
|
103
|
+
const percentage = total && total > 0
|
|
104
|
+
? Math.min(100, Math.round((progress / total) * 100))
|
|
105
|
+
: null;
|
|
106
|
+
let rawFilled;
|
|
107
|
+
if (total && total > 0) {
|
|
108
|
+
rawFilled = Math.round((progress / total) * barWidth);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
rawFilled = Math.floor(progress) % (barWidth + 1);
|
|
112
|
+
}
|
|
113
|
+
const filled = Math.max(0, Math.min(Number.isFinite(rawFilled) ? rawFilled : 0, barWidth));
|
|
114
|
+
const empty = Math.max(0, barWidth - filled);
|
|
115
|
+
const progressBar = '\u2588'.repeat(filled) + '\u2591'.repeat(empty);
|
|
116
|
+
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: _jsxs(Text, { color: theme.text.accent, children: [progressBar, " ", percentage !== null ? `${percentage}%` : `${progress}`] }) }), message && (_jsx(Text, { color: theme.text.secondary, wrap: "truncate", children: message }))] }));
|
|
99
117
|
};
|
|
100
118
|
export const TrailingIndicator = () => (_jsxs(Text, { color: theme.text.primary, wrap: "truncate", children: [' ', "\u2190"] }));
|
|
101
119
|
//# sourceMappingURL=ToolShared.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToolShared.js","sourceRoot":"","sources":["../../../../../src/ui/components/messages/ToolShared.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAEL,eAAe,EACf,sBAAsB,EAEtB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,CACL,IAAI,KAAK,kBAAkB;QAC3B,IAAI,KAAK,UAAU;QACnB,IAAI,KAAK,eAAe,CACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,MAA0B,EAC1B,MAAe;IAEf,OAAO,CAAC,CAAC,CACP,WAAW,CAAC,IAAI,CAAC;QACjB,MAAM,KAAK,kBAAkB,CAAC,SAAS;QACvC,MAAM,EAAE,yBAAyB,EAAE,CACpC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,MAA0B,EAC1B,KAAc,EACd,gBAAgC,EAChC,oBAA8B;IAE9B,OAAO,CAAC,CAAC,CACP,WAAW,CAAC,IAAI,CAAC;QACjB,MAAM,KAAK,kBAAkB,CAAC,SAAS;QACvC,KAAK,KAAK,gBAAgB;QAC1B,oBAAoB,CACrB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,oBAA6B,EAC7B,kBAA2B,EAC3B,aAA4C;IAE5C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,
|
|
1
|
+
{"version":3,"file":"ToolShared.js","sourceRoot":"","sources":["../../../../../src/ui/components/messages/ToolShared.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,cAAc,EAAE,4BAA4B,EAAE,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EACL,kBAAkB,EAClB,UAAU,EACV,WAAW,EACX,yBAAyB,GAC1B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AACjD,OAAO,EAEL,eAAe,EACf,sBAAsB,EAEtB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,gCAAgC,CAAC;AAEzD,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,OAAO,CACL,IAAI,KAAK,kBAAkB;QAC3B,IAAI,KAAK,UAAU;QACnB,IAAI,KAAK,eAAe,CACzB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAClC,IAAY,EACZ,MAA0B,EAC1B,MAAe;IAEf,OAAO,CAAC,CAAC,CACP,WAAW,CAAC,IAAI,CAAC;QACjB,MAAM,KAAK,kBAAkB,CAAC,SAAS;QACvC,MAAM,EAAE,yBAAyB,EAAE,CACpC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAAY,EACZ,MAA0B,EAC1B,KAAc,EACd,gBAAgC,EAChC,oBAA8B;IAE9B,OAAO,CAAC,CAAC,CACP,WAAW,CAAC,IAAI,CAAC;QACjB,MAAM,KAAK,kBAAkB,CAAC,SAAS;QACvC,KAAK,KAAK,gBAAgB;QAC1B,oBAAoB,CACrB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,oBAA6B,EAC7B,kBAA2B,EAC3B,aAA4C;IAE5C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,6EAA6E;IAC7E,2EAA2E;IAC3E,iDAAiD;IACjD,MAAM,QAAQ,GACZ,OAAO,aAAa,KAAK,QAAQ;QAC/B,CAAC,CAAC,aAAa,CAAC,MAAM;QACtB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;YAC5B,CAAC,CAAC,aAAa,CAAC,MAAM;YACtB,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;IAExB,MAAM,aAAa,GAAG,kBAAkB,CACtC,oBAAoB,EACpB,QAAQ,EACR,yBAAyB,CAC1B,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,kBAAkB,EAAE,CAAC;YACvB,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC,EAAE,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzB,MAAM,mBAAmB,GACvB,oBAAoB,IAAI,CAAC,aAAa,IAAI,cAAc,CAAC,CAAC;IAE5D,OAAO,EAAE,mBAAmB,EAAE,CAAC;AACjC,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAGjB,CAAC,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,EAAE,EAAE;IACnD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL,KAAC,GAAG,IAAC,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,YAC/B,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,YAC3B,kBAAkB;gBACjB,CAAC,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,mBAAmB,CAAC,cAAc;gBAC9D,CAAC,CAAC,IAAI,aAAa,CAAC,OAAO,CAAC,iBAAiB,CAAC,YAAY,GACvD,GACH,CACP,CAAC;AACJ,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,mBAAmB,GAAuC,CAAC,EACtE,MAAM,EAAE,UAAU,EAClB,IAAI,GACL,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;IAErE,OAAO,CACL,MAAC,GAAG,IAAC,QAAQ,EAAE,sBAAsB,aAClC,MAAM,KAAK,cAAc,CAAC,OAAO,IAAI,CACpC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,YAAG,WAAW,CAAC,OAAO,GAAQ,CAChE,EACA,MAAM,KAAK,cAAc,CAAC,SAAS,IAAI,CACtC,KAAC,uBAAuB,IACtB,WAAW,EAAC,QAAQ,EACpB,oBAAoB,EAAE,WAAW,CAAC,SAAS,GAC3C,CACH,EACA,MAAM,KAAK,cAAc,CAAC,OAAO,IAAI,CACpC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,gBAAc,UAAU,YACtD,WAAW,CAAC,OAAO,GACf,CACR,EACA,MAAM,KAAK,cAAc,CAAC,UAAU,IAAI,CACvC,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,gBAAc,aAAa,YAChD,WAAW,CAAC,UAAU,GAClB,CACR,EACA,MAAM,KAAK,cAAc,CAAC,QAAQ,IAAI,CACrC,KAAC,IAAI,IAAC,KAAK,EAAE,WAAW,gBAAc,WAAW,EAAE,IAAI,kBACpD,WAAW,CAAC,QAAQ,GAChB,CACR,EACA,MAAM,KAAK,cAAc,CAAC,KAAK,IAAI,CAClC,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,gBAAc,QAAQ,EAAE,IAAI,kBACxD,WAAW,CAAC,KAAK,GACb,CACR,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAUF,MAAM,CAAC,MAAM,QAAQ,GAA4B,CAAC,EAChD,IAAI,EACJ,WAAW,EACX,MAAM,EAAE,UAAU,EAClB,QAAQ,EACR,mBAAmB,GACpB,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,4BAA4B,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAS,GAAG,EAAE;QAC3C,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,MAAM;gBACT,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5B,KAAK,QAAQ;gBACX,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC;YAC5B,KAAK,KAAK;gBACR,OAAO,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC;YAC9B,OAAO,CAAC,CAAC,CAAC;gBACR,MAAM,eAAe,GAAU,QAAQ,CAAC;gBACxC,OAAO,eAAe,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEf,uFAAuF;IACvF,MAAM,kBAAkB,GAAG,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAEhE,OAAO,CACL,KAAC,GAAG,IAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAE,CAAC,YAC1D,MAAC,IAAI,IAAC,aAAa,EAAE,MAAM,KAAK,cAAc,CAAC,QAAQ,EAAE,IAAI,EAAC,UAAU,aACtE,KAAC,IAAI,IAAC,KAAK,EAAE,SAAS,EAAE,IAAI,kBACzB,IAAI,GACA,EACN,mBAAmB,IAAI,mBAAmB,KAAK,IAAI,IAAI,CACtD,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,mBACtC,GAAG,wBACe,mBAAmB,SACjC,CACR,EACA,CAAC,kBAAkB,IAAI,CACtB,8BACG,GAAG,EACJ,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,YAAG,WAAW,GAAQ,IACtD,CACJ,IACI,GACH,CACP,CAAC;AACJ,CAAC,CAAC;AASF,MAAM,CAAC,MAAM,oBAAoB,GAAwC,CAAC,EACxE,QAAQ,EACR,KAAK,EACL,OAAO,EACP,QAAQ,GACT,EAAE,EAAE;IACH,MAAM,UAAU,GACd,KAAK,IAAI,KAAK,GAAG,CAAC;QAChB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC;QACrD,CAAC,CAAC,IAAI,CAAC;IAEX,IAAI,SAAiB,CAAC;IACtB,IAAI,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACvB,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,GAAG,KAAK,CAAC,GAAG,QAAQ,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;IACpD,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CACrB,CAAC,EACD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,CAAC,CAC/D,CAAC;IACF,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAErE,OAAO,CACL,MAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,aACzB,KAAC,GAAG,cACF,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,aAC3B,WAAW,OAAG,UAAU,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,IAChE,GACH,EACL,OAAO,IAAI,CACV,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAC,UAAU,YAC/C,OAAO,GACH,CACR,IACG,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAa,GAAG,EAAE,CAAC,CAC/C,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,EAAC,UAAU,aAC7C,GAAG,cAEC,CACR,CAAC"}
|