@machina.ai/cell-cli 1.10.0-rc1 → 1.13.0-rc1
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.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/package.json +14 -12
- package/dist/src/commands/extensions/disable.d.ts +1 -1
- package/dist/src/commands/extensions/disable.js +19 -8
- package/dist/src/commands/extensions/disable.js.map +1 -1
- package/dist/src/commands/extensions/enable.d.ts +1 -1
- package/dist/src/commands/extensions/enable.js +19 -9
- package/dist/src/commands/extensions/enable.js.map +1 -1
- package/dist/src/commands/extensions/examples/mcp-server/example.js +46 -0
- package/dist/src/commands/extensions/examples/mcp-server/example.js.map +1 -0
- package/dist/src/commands/extensions/install.d.ts +1 -0
- package/dist/src/commands/extensions/install.js +29 -4
- package/dist/src/commands/extensions/install.js.map +1 -1
- package/dist/src/commands/extensions/install.test.js +39 -19
- package/dist/src/commands/extensions/install.test.js.map +1 -1
- package/dist/src/commands/extensions/link.js +16 -4
- package/dist/src/commands/extensions/link.js.map +1 -1
- package/dist/src/commands/extensions/list.js +17 -6
- package/dist/src/commands/extensions/list.js.map +1 -1
- package/dist/src/commands/extensions/new.js +14 -20
- package/dist/src/commands/extensions/new.js.map +1 -1
- package/dist/src/commands/extensions/uninstall.js +16 -4
- package/dist/src/commands/extensions/uninstall.js.map +1 -1
- package/dist/src/commands/extensions/update.js +28 -23
- package/dist/src/commands/extensions/update.js.map +1 -1
- package/dist/src/commands/extensions/validate.d.ts +12 -0
- package/dist/src/commands/extensions/validate.js +83 -0
- package/dist/src/commands/extensions/validate.js.map +1 -0
- package/dist/src/commands/extensions/validate.test.d.ts +6 -0
- package/dist/src/commands/extensions/validate.test.js +93 -0
- package/dist/src/commands/extensions/validate.test.js.map +1 -0
- package/dist/src/commands/extensions.js +3 -0
- package/dist/src/commands/extensions.js.map +1 -1
- package/dist/src/commands/mcp/add.js +7 -4
- package/dist/src/commands/mcp/add.js.map +1 -1
- package/dist/src/commands/mcp/add.test.d.ts +6 -0
- package/dist/src/commands/mcp/add.test.js +247 -0
- package/dist/src/commands/mcp/add.test.js.map +1 -0
- package/dist/src/commands/mcp/list.js +18 -9
- package/dist/src/commands/mcp/list.js.map +1 -1
- package/dist/src/commands/mcp/list.test.d.ts +6 -0
- package/dist/src/commands/mcp/list.test.js +128 -0
- package/dist/src/commands/mcp/list.test.js.map +1 -0
- package/dist/src/commands/mcp/remove.js +3 -2
- package/dist/src/commands/mcp/remove.js.map +1 -1
- package/dist/src/commands/mcp/remove.test.d.ts +6 -0
- package/dist/src/commands/mcp/remove.test.js +175 -0
- package/dist/src/commands/mcp/remove.test.js.map +1 -0
- package/dist/src/commands/mcp.test.d.ts +6 -0
- package/dist/src/commands/mcp.test.js +62 -0
- package/dist/src/commands/mcp.test.js.map +1 -0
- package/dist/src/config/auth.js +0 -3
- package/dist/src/config/auth.js.map +1 -1
- package/dist/src/config/config.d.ts +6 -15
- package/dist/src/config/config.integration.test.d.ts +6 -0
- package/dist/src/config/config.integration.test.js +321 -0
- package/dist/src/config/config.integration.test.js.map +1 -0
- package/dist/src/config/config.js +85 -164
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.d.ts +6 -0
- package/dist/src/config/config.test.js +1972 -0
- package/dist/src/config/config.test.js.map +1 -0
- package/dist/src/config/extension-manager.d.ts +63 -0
- package/dist/src/config/extension-manager.js +450 -0
- package/dist/src/config/extension-manager.js.map +1 -0
- package/dist/src/config/extension.d.ts +4 -61
- package/dist/src/config/extension.js +1 -538
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/extension.test.d.ts +6 -0
- package/dist/src/config/extension.test.js +1412 -0
- package/dist/src/config/extension.test.js.map +1 -0
- package/dist/src/config/extensions/consent.d.ts +38 -0
- package/dist/src/config/extensions/consent.js +123 -0
- package/dist/src/config/extensions/consent.js.map +1 -0
- package/dist/src/config/extensions/extensionEnablement.d.ts +2 -2
- package/dist/src/config/extensions/extensionEnablement.js +7 -5
- package/dist/src/config/extensions/extensionEnablement.js.map +1 -1
- package/dist/src/config/extensions/extensionEnablement.test.js +31 -28
- package/dist/src/config/extensions/extensionEnablement.test.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.d.ts +15 -0
- package/dist/src/config/extensions/extensionSettings.js +113 -0
- package/dist/src/config/extensions/extensionSettings.js.map +1 -0
- package/dist/src/config/extensions/extensionSettings.test.d.ts +6 -0
- package/dist/src/config/extensions/extensionSettings.test.js +254 -0
- package/dist/src/config/extensions/extensionSettings.test.js.map +1 -0
- package/dist/src/config/extensions/github.d.ts +18 -9
- package/dist/src/config/extensions/github.js +108 -36
- package/dist/src/config/extensions/github.js.map +1 -1
- package/dist/src/config/extensions/github.test.js +158 -164
- package/dist/src/config/extensions/github.test.js.map +1 -1
- package/dist/src/config/extensions/github_fetch.d.ts +1 -1
- package/dist/src/config/extensions/github_fetch.js +13 -1
- package/dist/src/config/extensions/github_fetch.js.map +1 -1
- package/dist/src/config/extensions/github_fetch.test.d.ts +6 -0
- package/dist/src/config/extensions/github_fetch.test.js +169 -0
- package/dist/src/config/extensions/github_fetch.test.js.map +1 -0
- package/dist/src/config/extensions/storage.d.ts +14 -0
- package/dist/src/config/extensions/storage.js +32 -0
- package/dist/src/config/extensions/storage.js.map +1 -0
- package/dist/src/config/extensions/update.d.ts +5 -4
- package/dist/src/config/extensions/update.js +41 -37
- package/dist/src/config/extensions/update.js.map +1 -1
- package/dist/src/config/extensions/update.test.js +72 -74
- package/dist/src/config/extensions/update.test.js.map +1 -1
- package/dist/src/config/extensions/variableSchema.d.ts +0 -4
- package/dist/src/config/extensions/variableSchema.js.map +1 -1
- package/dist/src/config/extensions/variables.d.ts +4 -0
- package/dist/src/config/extensions/variables.js +6 -0
- package/dist/src/config/extensions/variables.js.map +1 -1
- package/dist/src/config/keyBindings.d.ts +5 -1
- package/dist/src/config/keyBindings.js +34 -10
- package/dist/src/config/keyBindings.js.map +1 -1
- package/dist/src/config/keyBindings.test.js +17 -0
- package/dist/src/config/keyBindings.test.js.map +1 -1
- package/dist/src/config/policies/read-only.toml +56 -0
- package/dist/src/config/policies/write.toml +63 -0
- package/dist/src/config/policies/yolo.toml +31 -0
- package/dist/src/config/policy-engine.integration.test.js +41 -38
- package/dist/src/config/policy-engine.integration.test.js.map +1 -1
- package/dist/src/config/policy.d.ts +4 -3
- package/dist/src/config/policy.js +13 -142
- package/dist/src/config/policy.js.map +1 -1
- package/dist/src/config/sandboxConfig.d.ts +1 -2
- package/dist/src/config/sandboxConfig.js +7 -6
- package/dist/src/config/sandboxConfig.js.map +1 -1
- package/dist/src/config/settings.d.ts +2 -1
- package/dist/src/config/settings.js +59 -15
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settings.test.d.ts +6 -0
- package/dist/src/config/settings.test.js +2000 -0
- package/dist/src/config/settings.test.js.map +1 -0
- package/dist/src/config/settingsSchema.d.ts +170 -28
- package/dist/src/config/settingsSchema.js +418 -27
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +42 -1
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/config/trustedFolders.d.ts +1 -1
- package/dist/src/config/trustedFolders.js +4 -2
- package/dist/src/config/trustedFolders.js.map +1 -1
- package/dist/src/core/initializer.js +2 -1
- package/dist/src/core/initializer.js.map +1 -1
- package/dist/src/gemini.d.ts +1 -1
- package/dist/src/gemini.js +63 -27
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +123 -34
- package/dist/src/gemini.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/nonInteractiveCli.d.ts +9 -1
- package/dist/src/nonInteractiveCli.js +205 -10
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.test.d.ts +6 -0
- package/dist/src/nonInteractiveCli.test.js +984 -0
- package/dist/src/nonInteractiveCli.test.js.map +1 -0
- package/dist/src/nonInteractiveCliCommands.js +2 -2
- package/dist/src/nonInteractiveCliCommands.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.js +4 -0
- package/dist/src/services/BuiltinCommandLoader.js.map +1 -1
- package/dist/src/services/BuiltinCommandLoader.test.js +22 -0
- package/dist/src/services/BuiltinCommandLoader.test.js.map +1 -1
- package/dist/src/services/CommandService.js +2 -1
- package/dist/src/services/CommandService.js.map +1 -1
- package/dist/src/services/FeedbackService.js +2 -2
- package/dist/src/services/FeedbackService.js.map +1 -1
- package/dist/src/services/FileCommandLoader.test.d.ts +6 -0
- package/dist/src/services/FileCommandLoader.test.js +971 -0
- package/dist/src/services/FileCommandLoader.test.js.map +1 -0
- package/dist/src/services/McpPromptLoader.js +2 -2
- package/dist/src/services/McpPromptLoader.js.map +1 -1
- package/dist/src/services/McpPromptLoader.test.js +4 -2
- package/dist/src/services/McpPromptLoader.test.js.map +1 -1
- package/dist/src/services/prompt-processors/argumentProcessor.test.d.ts +6 -0
- package/dist/src/services/prompt-processors/argumentProcessor.test.js +40 -0
- package/dist/src/services/prompt-processors/argumentProcessor.test.js.map +1 -0
- package/dist/src/services/prompt-processors/atFileProcessor.js +3 -2
- package/dist/src/services/prompt-processors/atFileProcessor.js.map +1 -1
- package/dist/src/services/prompt-processors/shellProcessor.test.d.ts +6 -0
- package/dist/src/services/prompt-processors/shellProcessor.test.js +482 -0
- package/dist/src/services/prompt-processors/shellProcessor.test.js.map +1 -0
- package/dist/src/test-utils/async.d.ts +9 -0
- package/dist/src/test-utils/async.js +29 -0
- package/dist/src/test-utils/async.js.map +1 -0
- package/dist/src/test-utils/createExtension.d.ts +3 -1
- package/dist/src/test-utils/createExtension.js +3 -3
- package/dist/src/test-utils/createExtension.js.map +1 -1
- package/dist/src/test-utils/render.d.ts +17 -2
- package/dist/src/test-utils/render.js +69 -4
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/test-utils/render.test.d.ts +6 -0
- package/dist/src/test-utils/render.test.js +79 -0
- package/dist/src/test-utils/render.test.js.map +1 -0
- package/dist/src/ui/App.test.d.ts +6 -0
- package/dist/src/ui/App.test.js +110 -0
- package/dist/src/ui/App.test.js.map +1 -0
- package/dist/src/ui/AppContainer.js +223 -92
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/AppContainer.test.js +531 -147
- package/dist/src/ui/AppContainer.test.js.map +1 -1
- package/dist/src/ui/IdeIntegrationNudge.js +1 -1
- package/dist/src/ui/IdeIntegrationNudge.js.map +1 -1
- package/dist/src/ui/auth/ApiAuthDialog.d.ts +14 -0
- package/dist/src/ui/auth/ApiAuthDialog.js +26 -0
- package/dist/src/ui/auth/ApiAuthDialog.js.map +1 -0
- package/dist/src/ui/auth/ApiAuthDialog.test.d.ts +6 -0
- package/dist/src/ui/auth/ApiAuthDialog.test.js +91 -0
- package/dist/src/ui/auth/ApiAuthDialog.test.js.map +1 -0
- package/dist/src/ui/auth/AuthDialog.d.ts +1 -1
- package/dist/src/ui/auth/AuthDialog.js +9 -3
- package/dist/src/ui/auth/AuthDialog.js.map +1 -1
- package/dist/src/ui/auth/useAuth.d.ts +3 -1
- package/dist/src/ui/auth/useAuth.js +35 -4
- package/dist/src/ui/auth/useAuth.js.map +1 -1
- package/dist/src/ui/colors.js +3 -0
- package/dist/src/ui/colors.js.map +1 -1
- package/dist/src/ui/commands/aboutCommand.js +1 -1
- package/dist/src/ui/commands/aboutCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/aboutCommand.test.js +130 -0
- package/dist/src/ui/commands/aboutCommand.test.js.map +1 -0
- package/dist/src/ui/commands/authCommand.js +1 -1
- package/dist/src/ui/commands/authCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/authCommand.test.js +30 -0
- package/dist/src/ui/commands/authCommand.test.js.map +1 -0
- package/dist/src/ui/commands/bugCommand.js +1 -1
- package/dist/src/ui/commands/bugCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/bugCommand.test.js +105 -0
- package/dist/src/ui/commands/bugCommand.test.js.map +1 -0
- package/dist/src/ui/commands/chatCommand.js +1 -1
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/chatCommand.test.js +555 -0
- package/dist/src/ui/commands/chatCommand.test.js.map +1 -0
- package/dist/src/ui/commands/clearCommand.js +1 -1
- package/dist/src/ui/commands/clearCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/clearCommand.test.js +76 -0
- package/dist/src/ui/commands/clearCommand.test.js.map +1 -0
- package/dist/src/ui/commands/compressCommand.js +1 -1
- package/dist/src/ui/commands/compressCommand.js.map +1 -1
- package/dist/src/ui/commands/compressCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/compressCommand.test.js +98 -0
- package/dist/src/ui/commands/compressCommand.test.js.map +1 -0
- 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.d.ts +6 -0
- package/dist/src/ui/commands/copyCommand.test.js +242 -0
- package/dist/src/ui/commands/copyCommand.test.js.map +1 -0
- package/dist/src/ui/commands/corgiCommand.js +1 -1
- package/dist/src/ui/commands/corgiCommand.js.map +1 -1
- package/dist/src/ui/commands/corgiCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/corgiCommand.test.js +28 -0
- package/dist/src/ui/commands/corgiCommand.test.js.map +1 -0
- package/dist/src/ui/commands/directoryCommand.js +1 -1
- package/dist/src/ui/commands/directoryCommand.js.map +1 -1
- package/dist/src/ui/commands/directoryCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/directoryCommand.test.js +144 -0
- package/dist/src/ui/commands/directoryCommand.test.js.map +1 -0
- package/dist/src/ui/commands/docsCommand.js +1 -1
- package/dist/src/ui/commands/docsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/docsCommand.test.js +72 -0
- package/dist/src/ui/commands/docsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/editorCommand.js +1 -1
- package/dist/src/ui/commands/editorCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/editorCommand.test.js +27 -0
- package/dist/src/ui/commands/editorCommand.test.js.map +1 -0
- package/dist/src/ui/commands/extensionsCommand.js +64 -11
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/extensionsCommand.test.js +315 -0
- package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/helpCommand.js +1 -1
- package/dist/src/ui/commands/helpCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/helpCommand.test.js +42 -0
- package/dist/src/ui/commands/helpCommand.test.js.map +1 -0
- package/dist/src/ui/commands/ideCommand.js +6 -6
- package/dist/src/ui/commands/ideCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/ideCommand.test.js +205 -0
- package/dist/src/ui/commands/ideCommand.test.js.map +1 -0
- package/dist/src/ui/commands/initCommand.js +1 -1
- package/dist/src/ui/commands/initCommand.js.map +1 -1
- package/dist/src/ui/commands/initCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/initCommand.test.js +80 -0
- package/dist/src/ui/commands/initCommand.test.js.map +1 -0
- package/dist/src/ui/commands/mcpCommand.js +110 -100
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/mcpCommand.test.js +152 -0
- package/dist/src/ui/commands/mcpCommand.test.js.map +1 -0
- package/dist/src/ui/commands/memoryCommand.js +6 -6
- package/dist/src/ui/commands/memoryCommand.js.map +1 -1
- package/dist/src/ui/commands/memoryCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/memoryCommand.test.js +268 -0
- package/dist/src/ui/commands/memoryCommand.test.js.map +1 -0
- package/dist/src/ui/commands/policiesCommand.d.ts +7 -0
- package/dist/src/ui/commands/policiesCommand.js +59 -0
- package/dist/src/ui/commands/policiesCommand.js.map +1 -0
- package/dist/src/ui/commands/policiesCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/policiesCommand.test.js +83 -0
- package/dist/src/ui/commands/policiesCommand.test.js.map +1 -0
- package/dist/src/ui/commands/privacyCommand.js +1 -1
- package/dist/src/ui/commands/privacyCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/privacyCommand.test.js +32 -0
- package/dist/src/ui/commands/privacyCommand.test.js.map +1 -0
- package/dist/src/ui/commands/quitCommand.js +1 -1
- package/dist/src/ui/commands/quitCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/quitCommand.test.js +50 -0
- package/dist/src/ui/commands/quitCommand.test.js.map +1 -0
- package/dist/src/ui/commands/restoreCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/restoreCommand.test.js +190 -0
- package/dist/src/ui/commands/restoreCommand.test.js.map +1 -0
- package/dist/src/ui/commands/settingsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/settingsCommand.test.js +30 -0
- package/dist/src/ui/commands/settingsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/setupGithubCommand.js +4 -3
- package/dist/src/ui/commands/setupGithubCommand.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.test.js +1 -2
- package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
- package/dist/src/ui/commands/statsCommand.js +3 -3
- package/dist/src/ui/commands/statsCommand.js.map +1 -1
- package/dist/src/ui/commands/statsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/statsCommand.test.js +53 -0
- package/dist/src/ui/commands/statsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/terminalSetupCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/terminalSetupCommand.test.js +66 -0
- package/dist/src/ui/commands/terminalSetupCommand.test.js.map +1 -0
- package/dist/src/ui/commands/themeCommand.js +1 -1
- package/dist/src/ui/commands/themeCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/themeCommand.test.js +32 -0
- package/dist/src/ui/commands/themeCommand.test.js.map +1 -0
- package/dist/src/ui/commands/toolsCommand.js +1 -1
- package/dist/src/ui/commands/toolsCommand.test.d.ts +6 -0
- package/dist/src/ui/commands/toolsCommand.test.js +100 -0
- package/dist/src/ui/commands/toolsCommand.test.js.map +1 -0
- package/dist/src/ui/commands/types.d.ts +1 -0
- package/dist/src/ui/commands/vimCommand.js +1 -1
- package/dist/src/ui/components/AnsiOutput.test.js +1 -1
- package/dist/src/ui/components/AnsiOutput.test.js.map +1 -1
- package/dist/src/ui/components/AsciiArt.d.ts +3 -3
- package/dist/src/ui/components/AsciiArt.js +3 -3
- package/dist/src/ui/components/Composer.js +6 -4
- package/dist/src/ui/components/Composer.js.map +1 -1
- package/dist/src/ui/components/Composer.test.js +21 -3
- package/dist/src/ui/components/Composer.test.js.map +1 -1
- package/dist/src/ui/components/ConfigInitDisplay.js +4 -6
- package/dist/src/ui/components/ConfigInitDisplay.js.map +1 -1
- package/dist/src/ui/components/ConsentPrompt.test.js +18 -8
- package/dist/src/ui/components/ConsentPrompt.test.js.map +1 -1
- package/dist/src/ui/components/ConsoleSummaryDisplay.js +1 -1
- package/dist/src/ui/components/ConsoleSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.d.ts +0 -1
- package/dist/src/ui/components/ContextSummaryDisplay.js +2 -12
- package/dist/src/ui/components/ContextSummaryDisplay.js.map +1 -1
- package/dist/src/ui/components/ContextSummaryDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/ContextSummaryDisplay.test.js +71 -0
- package/dist/src/ui/components/ContextSummaryDisplay.test.js.map +1 -0
- package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +5 -5
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.js +1 -1
- package/dist/src/ui/components/EditorSettingsDialog.js.map +1 -1
- package/dist/src/ui/components/FolderTrustDialog.test.js +8 -3
- package/dist/src/ui/components/FolderTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.js +4 -3
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/Footer.test.d.ts +6 -0
- package/dist/src/ui/components/Footer.test.js +314 -0
- package/dist/src/ui/components/Footer.test.js.map +1 -0
- package/dist/src/ui/components/Header.test.js +13 -5
- package/dist/src/ui/components/Header.test.js.map +1 -1
- package/dist/src/ui/components/Help.test.js +5 -4
- package/dist/src/ui/components/Help.test.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.d.ts +4 -0
- package/dist/src/ui/components/InputPrompt.js +80 -12
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.d.ts +6 -0
- package/dist/src/ui/components/InputPrompt.test.js +1786 -0
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -0
- package/dist/src/ui/components/LoadingIndicator.js +2 -2
- package/dist/src/ui/components/LoadingIndicator.js.map +1 -1
- package/dist/src/ui/components/LoadingIndicator.test.js +28 -15
- package/dist/src/ui/components/LoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.js +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.js.map +1 -1
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js +2 -2
- package/dist/src/ui/components/LoopDetectionConfirmation.test.js.map +1 -1
- package/dist/src/ui/components/MainContent.js +15 -4
- package/dist/src/ui/components/MainContent.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.js +1 -1
- package/dist/src/ui/components/ModelDialog.js.map +1 -1
- package/dist/src/ui/components/ModelDialog.test.js +23 -13
- package/dist/src/ui/components/ModelDialog.test.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/ModelStatsDisplay.test.js +285 -0
- package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -0
- package/dist/src/ui/components/Notifications.js +38 -5
- package/dist/src/ui/components/Notifications.js.map +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.js +22 -18
- package/dist/src/ui/components/PermissionsModifyTrustDialog.js.map +1 -1
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js +12 -4
- package/dist/src/ui/components/PermissionsModifyTrustDialog.test.js.map +1 -1
- package/dist/src/ui/components/PrepareLabel.test.js +14 -8
- package/dist/src/ui/components/PrepareLabel.test.js.map +1 -1
- package/dist/src/ui/components/ProQuotaDialog.test.js +14 -6
- package/dist/src/ui/components/ProQuotaDialog.test.js.map +1 -1
- package/dist/src/ui/components/QueuedMessageDisplay.js +3 -3
- package/dist/src/ui/components/QueuedMessageDisplay.js.map +1 -1
- package/dist/src/ui/components/QueuedMessageDisplay.test.js +15 -6
- package/dist/src/ui/components/QueuedMessageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/RawMarkdownIndicator.d.ts +7 -0
- package/dist/src/ui/components/RawMarkdownIndicator.js +8 -0
- package/dist/src/ui/components/RawMarkdownIndicator.js.map +1 -0
- package/dist/src/ui/components/SessionSummaryDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/SessionSummaryDisplay.test.js +74 -0
- package/dist/src/ui/components/SessionSummaryDisplay.test.js.map +1 -0
- package/dist/src/ui/components/SettingsDialog.js +43 -35
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +554 -545
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.js.map +1 -1
- package/dist/src/ui/components/ShellConfirmationDialog.test.js +2 -2
- package/dist/src/ui/components/ShellConfirmationDialog.test.js.map +1 -1
- package/dist/src/ui/components/StatsDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/StatsDisplay.test.js +351 -0
- package/dist/src/ui/components/StatsDisplay.test.js.map +1 -0
- package/dist/src/ui/components/SuggestionsDisplay.js +1 -1
- package/dist/src/ui/components/SuggestionsDisplay.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.d.ts +4 -2
- package/dist/src/ui/components/ThemeDialog.js +3 -3
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.test.js +14 -1
- package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
- package/dist/src/ui/components/ToolStatsDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/ToolStatsDisplay.test.js +227 -0
- package/dist/src/ui/components/ToolStatsDisplay.test.js.map +1 -0
- package/dist/src/ui/components/messages/CompressionMessage.test.js +25 -17
- package/dist/src/ui/components/messages/CompressionMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.test.js +1 -1
- package/dist/src/ui/components/messages/DiffRenderer.test.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiMessage.js +3 -1
- package/dist/src/ui/components/messages/GeminiMessage.js.map +1 -1
- package/dist/src/ui/components/messages/GeminiMessage.test.d.ts +6 -0
- package/dist/src/ui/components/messages/GeminiMessage.test.js +35 -0
- package/dist/src/ui/components/messages/GeminiMessage.test.js.map +1 -0
- package/dist/src/ui/components/messages/GeminiMessageContent.js +3 -1
- package/dist/src/ui/components/messages/GeminiMessageContent.js.map +1 -1
- package/dist/src/ui/components/messages/InfoMessage.js +1 -1
- package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
- package/dist/src/ui/components/messages/Todo.d.ts +7 -0
- package/dist/src/ui/components/messages/Todo.js +91 -0
- package/dist/src/ui/components/messages/Todo.js.map +1 -0
- package/dist/src/ui/components/messages/Todo.test.d.ts +6 -0
- package/dist/src/ui/components/messages/Todo.test.js +114 -0
- package/dist/src/ui/components/messages/Todo.test.js.map +1 -0
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js +1 -1
- package/dist/src/ui/components/messages/ToolConfirmationMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js +29 -15
- package/dist/src/ui/components/messages/ToolGroupMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.js +8 -3
- package/dist/src/ui/components/messages/ToolMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessage.test.js +2 -2
- package/dist/src/ui/components/messages/ToolMessage.test.js.map +1 -1
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.d.ts +6 -0
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js +30 -0
- package/dist/src/ui/components/messages/ToolMessageRawMarkdown.test.js.map +1 -0
- package/dist/src/ui/components/messages/UserShellMessage.js +1 -1
- package/dist/src/ui/components/messages/UserShellMessage.js.map +1 -1
- package/dist/src/ui/components/messages/WarningMessage.js +2 -2
- package/dist/src/ui/components/messages/WarningMessage.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSelectionList.test.js +34 -25
- package/dist/src/ui/components/shared/BaseSelectionList.test.js.map +1 -1
- package/dist/src/ui/components/shared/MaxSizedBox.test.js +43 -22
- package/dist/src/ui/components/shared/MaxSizedBox.test.js.map +1 -1
- package/dist/src/ui/components/shared/TextInput.d.ts +15 -0
- package/dist/src/ui/components/shared/TextInput.js +38 -0
- package/dist/src/ui/components/shared/TextInput.js.map +1 -0
- package/dist/src/ui/components/shared/TextInput.test.d.ts +6 -0
- package/dist/src/ui/components/shared/TextInput.test.js +242 -0
- package/dist/src/ui/components/shared/TextInput.test.js.map +1 -0
- package/dist/src/ui/components/shared/text-buffer.d.ts +9 -2
- package/dist/src/ui/components/shared/text-buffer.js +52 -14
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.test.d.ts +6 -0
- package/dist/src/ui/components/shared/text-buffer.test.js +1761 -0
- package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.test.d.ts +6 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.test.js +951 -0
- package/dist/src/ui/components/shared/vim-buffer-actions.test.js.map +1 -0
- package/dist/src/ui/components/views/ChatList.test.js +7 -4
- package/dist/src/ui/components/views/ChatList.test.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionsList.d.ts +7 -1
- package/dist/src/ui/components/views/ExtensionsList.js +12 -15
- package/dist/src/ui/components/views/ExtensionsList.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionsList.test.js +43 -29
- package/dist/src/ui/components/views/ExtensionsList.test.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.d.ts +0 -1
- package/dist/src/ui/components/views/McpStatus.js +4 -4
- package/dist/src/ui/components/views/McpStatus.js.map +1 -1
- package/dist/src/ui/components/views/McpStatus.test.js +23 -17
- package/dist/src/ui/components/views/McpStatus.test.js.map +1 -1
- package/dist/src/ui/components/views/ToolsList.test.js +4 -4
- package/dist/src/ui/components/views/ToolsList.test.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.d.ts +4 -2
- package/dist/src/ui/contexts/KeypressContext.js +635 -439
- package/dist/src/ui/contexts/KeypressContext.js.map +1 -1
- package/dist/src/ui/contexts/KeypressContext.test.js +634 -515
- package/dist/src/ui/contexts/KeypressContext.test.js.map +1 -1
- package/dist/src/ui/contexts/MouseContext.d.ts +21 -0
- package/dist/src/ui/contexts/MouseContext.js +89 -0
- package/dist/src/ui/contexts/MouseContext.js.map +1 -0
- package/dist/src/ui/contexts/MouseContext.test.d.ts +6 -0
- package/dist/src/ui/contexts/MouseContext.test.js +164 -0
- package/dist/src/ui/contexts/MouseContext.test.js.map +1 -0
- package/dist/src/ui/contexts/SessionContext.test.d.ts +6 -0
- package/dist/src/ui/contexts/SessionContext.test.js +195 -0
- package/dist/src/ui/contexts/SessionContext.test.js.map +1 -0
- package/dist/src/ui/contexts/UIActionsContext.d.ts +7 -4
- package/dist/src/ui/contexts/UIStateContext.d.ts +5 -3
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.js +33 -11
- package/dist/src/ui/hooks/atCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/atCommandProcessor.test.js +163 -64
- package/dist/src/ui/hooks/atCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.js +0 -1
- package/dist/src/ui/hooks/shellCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/shellCommandProcessor.test.js +64 -35
- package/dist/src/ui/hooks/shellCommandProcessor.test.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.js +2 -0
- package/dist/src/ui/hooks/slashCommandProcessor.js.map +1 -1
- package/dist/src/ui/hooks/slashCommandProcessor.test.d.ts +6 -0
- package/dist/src/ui/hooks/slashCommandProcessor.test.js +807 -0
- package/dist/src/ui/hooks/slashCommandProcessor.test.js.map +1 -0
- package/dist/src/ui/hooks/useAtCompletion.js +2 -2
- package/dist/src/ui/hooks/useAtCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useAtCompletion.test.d.ts +6 -0
- package/dist/src/ui/hooks/useAtCompletion.test.js +396 -0
- package/dist/src/ui/hooks/useAtCompletion.test.js.map +1 -0
- package/dist/src/ui/hooks/useAutoAcceptIndicator.js +10 -0
- package/dist/src/ui/hooks/useAutoAcceptIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js +32 -2
- package/dist/src/ui/hooks/useAutoAcceptIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.d.ts +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.js +5 -3
- package/dist/src/ui/hooks/useCommandCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useCommandCompletion.test.d.ts +6 -0
- package/dist/src/ui/hooks/useCommandCompletion.test.js +377 -0
- package/dist/src/ui/hooks/useCommandCompletion.test.js.map +1 -0
- package/dist/src/ui/hooks/useConsoleMessages.test.d.ts +6 -0
- package/dist/src/ui/hooks/useConsoleMessages.test.js +127 -0
- package/dist/src/ui/hooks/useConsoleMessages.test.js.map +1 -0
- package/dist/src/ui/hooks/useEditorSettings.test.js +40 -34
- package/dist/src/ui/hooks/useEditorSettings.test.js.map +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.d.ts +14 -4
- package/dist/src/ui/hooks/useExtensionUpdates.js +18 -11
- package/dist/src/ui/hooks/useExtensionUpdates.js.map +1 -1
- package/dist/src/ui/hooks/useExtensionUpdates.test.js +52 -35
- package/dist/src/ui/hooks/useExtensionUpdates.test.js.map +1 -1
- package/dist/src/ui/hooks/useFlickerDetector.test.js +9 -5
- package/dist/src/ui/hooks/useFlickerDetector.test.js.map +1 -1
- package/dist/src/ui/hooks/useFocus.test.d.ts +6 -0
- package/dist/src/ui/hooks/useFocus.test.js +131 -0
- package/dist/src/ui/hooks/useFocus.test.js.map +1 -0
- package/dist/src/ui/hooks/useFolderTrust.test.d.ts +6 -0
- package/dist/src/ui/hooks/useFolderTrust.test.js +188 -0
- package/dist/src/ui/hooks/useFolderTrust.test.js.map +1 -0
- package/dist/src/ui/hooks/useGeminiStream.js +119 -74
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.d.ts +6 -0
- package/dist/src/ui/hooks/useGeminiStream.test.js +1820 -0
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -0
- package/dist/src/ui/hooks/useGitBranchName.js +4 -0
- package/dist/src/ui/hooks/useGitBranchName.js.map +1 -1
- package/dist/src/ui/hooks/useGitBranchName.test.js +46 -34
- package/dist/src/ui/hooks/useGitBranchName.test.js.map +1 -1
- package/dist/src/ui/hooks/useHistoryManager.test.js +2 -1
- package/dist/src/ui/hooks/useHistoryManager.test.js.map +1 -1
- package/dist/src/ui/hooks/useIdeTrustListener.test.js +40 -9
- package/dist/src/ui/hooks/useIdeTrustListener.test.js.map +1 -1
- package/dist/src/ui/hooks/useInputHistory.test.js +2 -1
- package/dist/src/ui/hooks/useInputHistory.test.js.map +1 -1
- package/dist/src/ui/hooks/useInputHistoryStore.js +2 -1
- package/dist/src/ui/hooks/useInputHistoryStore.js.map +1 -1
- package/dist/src/ui/hooks/useInputHistoryStore.test.js +2 -1
- package/dist/src/ui/hooks/useInputHistoryStore.test.js.map +1 -1
- package/dist/src/ui/hooks/useKeypress.test.d.ts +6 -0
- package/dist/src/ui/hooks/useKeypress.test.js +223 -0
- package/dist/src/ui/hooks/useKeypress.test.js.map +1 -0
- package/dist/src/ui/hooks/useLoadingIndicator.test.js +29 -6
- package/dist/src/ui/hooks/useLoadingIndicator.test.js.map +1 -1
- package/dist/src/ui/hooks/useMemoryMonitor.test.js +10 -5
- package/dist/src/ui/hooks/useMemoryMonitor.test.js.map +1 -1
- package/dist/src/ui/hooks/useMessageQueue.d.ts +1 -0
- package/dist/src/ui/hooks/useMessageQueue.js +14 -0
- package/dist/src/ui/hooks/useMessageQueue.js.map +1 -1
- package/dist/src/ui/hooks/useMessageQueue.test.js +173 -35
- package/dist/src/ui/hooks/useMessageQueue.test.js.map +1 -1
- package/dist/src/ui/hooks/useModelCommand.test.js +21 -11
- package/dist/src/ui/hooks/useModelCommand.test.js.map +1 -1
- package/dist/src/ui/hooks/useMouse.d.ts +17 -0
- package/dist/src/ui/hooks/useMouse.js +27 -0
- package/dist/src/ui/hooks/useMouse.js.map +1 -0
- package/dist/src/ui/hooks/useMouse.test.d.ts +6 -0
- package/dist/src/ui/hooks/useMouse.test.js +57 -0
- package/dist/src/ui/hooks/useMouse.test.js.map +1 -0
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js +2 -2
- package/dist/src/ui/hooks/usePermissionsModifyTrust.test.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.d.ts +1 -0
- package/dist/src/ui/hooks/usePhraseCycler.js +156 -5
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.test.d.ts +6 -0
- package/dist/src/ui/hooks/usePhraseCycler.test.js +158 -0
- package/dist/src/ui/hooks/usePhraseCycler.test.js.map +1 -0
- package/dist/src/ui/hooks/usePrivacySettings.test.js +26 -6
- package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
- package/dist/src/ui/hooks/usePromptCompletion.js +2 -2
- package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.js +13 -14
- package/dist/src/ui/hooks/useQuotaAndFallback.js.map +1 -1
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js +55 -48
- package/dist/src/ui/hooks/useQuotaAndFallback.test.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.d.ts +8 -1
- package/dist/src/ui/hooks/useReactToolScheduler.js +61 -36
- package/dist/src/ui/hooks/useReactToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useReactToolScheduler.test.d.ts +6 -0
- package/dist/src/ui/hooks/useReactToolScheduler.test.js +65 -0
- package/dist/src/ui/hooks/useReactToolScheduler.test.js.map +1 -0
- package/dist/src/ui/hooks/useReverseSearchCompletion.test.js +2 -2
- package/dist/src/ui/hooks/useReverseSearchCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.js +5 -4
- package/dist/src/ui/hooks/useSelectionList.js.map +1 -1
- package/dist/src/ui/hooks/useSelectionList.test.js +272 -183
- package/dist/src/ui/hooks/useSelectionList.test.js.map +1 -1
- package/dist/src/ui/hooks/useShellHistory.test.js +52 -20
- package/dist/src/ui/hooks/useShellHistory.test.js.map +1 -1
- package/dist/src/ui/hooks/useShowMemoryCommand.d.ts +1 -1
- package/dist/src/ui/hooks/useShowMemoryCommand.js +4 -3
- package/dist/src/ui/hooks/useShowMemoryCommand.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +20 -8
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.js +275 -137
- package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
- package/dist/src/ui/hooks/useThemeCommand.d.ts +2 -1
- package/dist/src/ui/hooks/useThemeCommand.js +6 -0
- package/dist/src/ui/hooks/useThemeCommand.js.map +1 -1
- package/dist/src/ui/hooks/useTimer.test.js +43 -14
- package/dist/src/ui/hooks/useTimer.test.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +229 -242
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/hooks/vim.js +2 -1
- package/dist/src/ui/hooks/vim.js.map +1 -1
- package/dist/src/ui/hooks/vim.test.d.ts +6 -0
- package/dist/src/ui/hooks/vim.test.js +1269 -0
- package/dist/src/ui/hooks/vim.test.js.map +1 -0
- package/dist/src/ui/keyMatchers.test.js +39 -6
- package/dist/src/ui/keyMatchers.test.js.map +1 -1
- package/dist/src/ui/state/extensions.d.ts +1 -0
- package/dist/src/ui/state/extensions.js +1 -0
- package/dist/src/ui/state/extensions.js.map +1 -1
- package/dist/src/ui/themes/ansi-light.js +1 -0
- package/dist/src/ui/themes/ansi-light.js.map +1 -1
- package/dist/src/ui/themes/ansi.js +1 -0
- package/dist/src/ui/themes/ansi.js.map +1 -1
- package/dist/src/ui/themes/atom-one-dark.js +2 -0
- package/dist/src/ui/themes/atom-one-dark.js.map +1 -1
- package/dist/src/ui/themes/ayu-light.js +2 -0
- package/dist/src/ui/themes/ayu-light.js.map +1 -1
- package/dist/src/ui/themes/ayu.js +2 -0
- package/dist/src/ui/themes/ayu.js.map +1 -1
- package/dist/src/ui/themes/color-utils.d.ts +1 -0
- package/dist/src/ui/themes/color-utils.js +8 -1
- package/dist/src/ui/themes/color-utils.js.map +1 -1
- package/dist/src/ui/themes/color-utils.test.js +13 -1
- package/dist/src/ui/themes/color-utils.test.js.map +1 -1
- package/dist/src/ui/themes/dracula.js +2 -0
- package/dist/src/ui/themes/dracula.js.map +1 -1
- package/dist/src/ui/themes/github-dark.js +2 -0
- package/dist/src/ui/themes/github-dark.js.map +1 -1
- package/dist/src/ui/themes/github-light.js +2 -0
- package/dist/src/ui/themes/github-light.js.map +1 -1
- package/dist/src/ui/themes/googlecode.js +2 -0
- package/dist/src/ui/themes/googlecode.js.map +1 -1
- package/dist/src/ui/themes/no-color.js +3 -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 -0
- package/dist/src/ui/themes/semantic-tokens.js.map +1 -1
- package/dist/src/ui/themes/shades-of-purple.js +2 -0
- package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.js +8 -7
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/themes/theme.d.ts +3 -0
- package/dist/src/ui/themes/theme.js +14 -3
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/themes/theme.test.d.ts +6 -0
- package/dist/src/ui/themes/theme.test.js +151 -0
- package/dist/src/ui/themes/theme.test.js.map +1 -0
- package/dist/src/ui/themes/xcode.js +2 -0
- package/dist/src/ui/themes/xcode.js.map +1 -1
- package/dist/src/ui/types.d.ts +3 -2
- package/dist/src/ui/types.js +2 -0
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/CodeColorizer.d.ts +1 -1
- package/dist/src/ui/utils/CodeColorizer.js +6 -3
- package/dist/src/ui/utils/CodeColorizer.js.map +1 -1
- package/dist/src/ui/utils/InlineMarkdownRenderer.d.ts +1 -0
- package/dist/src/ui/utils/InlineMarkdownRenderer.js +11 -10
- package/dist/src/ui/utils/InlineMarkdownRenderer.js.map +1 -1
- package/dist/src/ui/utils/MarkdownDisplay.d.ts +1 -0
- package/dist/src/ui/utils/MarkdownDisplay.js +19 -10
- package/dist/src/ui/utils/MarkdownDisplay.js.map +1 -1
- package/dist/src/ui/utils/clipboardUtils.js +2 -2
- package/dist/src/ui/utils/clipboardUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.js +20 -3
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +61 -6
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/ui/utils/computeStats.js +5 -2
- package/dist/src/ui/utils/computeStats.js.map +1 -1
- package/dist/src/ui/utils/computeStats.test.d.ts +6 -0
- package/dist/src/ui/utils/computeStats.test.js +262 -0
- package/dist/src/ui/utils/computeStats.test.js.map +1 -0
- package/dist/src/ui/utils/input.d.ts +17 -0
- package/dist/src/ui/utils/input.js +51 -0
- package/dist/src/ui/utils/input.js.map +1 -0
- package/dist/src/ui/utils/input.test.d.ts +6 -0
- package/dist/src/ui/utils/input.test.js +44 -0
- package/dist/src/ui/utils/input.test.js.map +1 -0
- package/dist/src/ui/utils/kittyProtocolDetector.js +13 -4
- package/dist/src/ui/utils/kittyProtocolDetector.js.map +1 -1
- package/dist/src/ui/utils/mouse.d.ts +31 -0
- package/dist/src/ui/utils/mouse.js +164 -0
- package/dist/src/ui/utils/mouse.js.map +1 -0
- package/dist/src/ui/utils/mouse.test.d.ts +6 -0
- package/dist/src/ui/utils/mouse.test.js +131 -0
- package/dist/src/ui/utils/mouse.test.js.map +1 -0
- package/dist/src/ui/utils/terminalSetup.js +3 -2
- package/dist/src/ui/utils/terminalSetup.js.map +1 -1
- package/dist/src/ui/utils/textOutput.d.ts +25 -0
- package/dist/src/ui/utils/textOutput.js +49 -0
- package/dist/src/ui/utils/textOutput.js.map +1 -0
- package/dist/src/ui/utils/textOutput.test.d.ts +6 -0
- package/dist/src/ui/utils/textOutput.test.js +79 -0
- package/dist/src/ui/utils/textOutput.test.js.map +1 -0
- package/dist/src/ui/utils/updateCheck.d.ts +9 -2
- package/dist/src/ui/utils/updateCheck.js +38 -30
- package/dist/src/ui/utils/updateCheck.js.map +1 -1
- package/dist/src/ui/utils/updateCheck.test.js +48 -59
- package/dist/src/ui/utils/updateCheck.test.js.map +1 -1
- package/dist/src/utils/cleanup.test.d.ts +6 -0
- package/dist/src/utils/cleanup.test.js +49 -0
- package/dist/src/utils/cleanup.test.js.map +1 -0
- package/dist/src/utils/commentJson.js +2 -2
- package/dist/src/utils/commentJson.js.map +1 -1
- package/dist/src/utils/commentJson.test.js +7 -6
- package/dist/src/utils/commentJson.test.js.map +1 -1
- package/dist/src/utils/envVarResolver.d.ts +2 -2
- package/dist/src/utils/envVarResolver.js +10 -7
- package/dist/src/utils/envVarResolver.js.map +1 -1
- package/dist/src/utils/errors.d.ts +1 -0
- package/dist/src/utils/errors.js +66 -5
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/events.d.ts +11 -2
- package/dist/src/utils/events.js +1 -0
- package/dist/src/utils/events.js.map +1 -1
- package/dist/src/utils/gitUtils.js +3 -2
- package/dist/src/utils/gitUtils.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.js +9 -3
- package/dist/src/utils/handleAutoUpdate.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.test.d.ts +6 -0
- package/dist/src/utils/handleAutoUpdate.test.js +225 -0
- package/dist/src/utils/handleAutoUpdate.test.js.map +1 -0
- package/dist/src/utils/installationInfo.js +2 -2
- package/dist/src/utils/installationInfo.js.map +1 -1
- package/dist/src/utils/installationInfo.test.js +8 -4
- package/dist/src/utils/installationInfo.test.js.map +1 -1
- package/dist/src/utils/readStdin.js +2 -1
- package/dist/src/utils/readStdin.js.map +1 -1
- package/dist/src/utils/sandbox-macos-permissive-open.sb +2 -0
- package/dist/src/utils/sandbox.js +28 -30
- package/dist/src/utils/sandbox.js.map +1 -1
- package/dist/src/utils/sessionCleanup.js +4 -4
- package/dist/src/utils/sessionCleanup.js.map +1 -1
- package/dist/src/utils/startupWarnings.test.d.ts +6 -0
- package/dist/src/utils/startupWarnings.test.js +61 -0
- package/dist/src/utils/startupWarnings.test.js.map +1 -0
- package/dist/src/utils/version.js +6 -2
- package/dist/src/utils/version.js.map +1 -1
- package/dist/src/validateNonInterActiveAuth.js +2 -2
- package/dist/src/validateNonInterActiveAuth.js.map +1 -1
- package/dist/src/zed-integration/acp.js +2 -1
- package/dist/src/zed-integration/acp.js.map +1 -1
- package/dist/src/zed-integration/schema.d.ts +4 -4
- package/dist/src/zed-integration/zedIntegration.d.ts +2 -2
- package/dist/src/zed-integration/zedIntegration.js +16 -25
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +17 -17
- package/dist/src/config/policy.test.js +0 -336
- package/dist/src/config/policy.test.js.map +0 -1
- package/dist/src/ui/components/WorkspaceMigrationDialog.d.ts +0 -11
- package/dist/src/ui/components/WorkspaceMigrationDialog.js +0 -44
- package/dist/src/ui/components/WorkspaceMigrationDialog.js.map +0 -1
- package/dist/src/ui/hooks/useWorkspaceMigration.d.ts +0 -13
- package/dist/src/ui/hooks/useWorkspaceMigration.js +0 -59
- package/dist/src/ui/hooks/useWorkspaceMigration.js.map +0 -1
- package/dist/src/utils/package.d.ts +0 -12
- package/dist/src/utils/package.js +0 -24
- package/dist/src/utils/package.js.map +0 -1
- /package/dist/src/{config/policy.test.d.ts → commands/extensions/examples/mcp-server/example.d.ts} +0 -0
|
@@ -136,6 +136,146 @@ export const WITTY_LOADING_PHRASES = [
|
|
|
136
136
|
'New line? That’s Ctrl+J.',
|
|
137
137
|
'Releasing the HypnoDrones...',
|
|
138
138
|
];
|
|
139
|
+
export const INFORMATIVE_TIPS = [
|
|
140
|
+
//Settings tips start here
|
|
141
|
+
'Set your preferred editor for opening files (/settings)...',
|
|
142
|
+
'Toggle Vim mode for a modal editing experience (/settings)...',
|
|
143
|
+
'Disable automatic updates if you prefer manual control (/settings)...',
|
|
144
|
+
'Turn off nagging update notifications (settings.json)...',
|
|
145
|
+
'Enable checkpointing to recover your session after a crash (settings.json)...',
|
|
146
|
+
'Change CLI output format to JSON for scripting (/settings)...',
|
|
147
|
+
'Personalize your CLI with a new color theme (/settings)...',
|
|
148
|
+
'Create and use your own custom themes (settings.json)...',
|
|
149
|
+
'Hide window title for a more minimal UI (/settings)...',
|
|
150
|
+
"Don't like these tips? You can hide them (/settings)...",
|
|
151
|
+
'Hide the startup banner for a cleaner launch (/settings)...',
|
|
152
|
+
'Reclaim vertical space by hiding the footer (/settings)...',
|
|
153
|
+
'Show memory usage for performance monitoring (/settings)...',
|
|
154
|
+
'Show citations to see where the model gets information (/settings)...',
|
|
155
|
+
'Disable loading phrases for a quieter experience (/settings)...',
|
|
156
|
+
'Add custom witty phrases to the loading screen (settings.json)...',
|
|
157
|
+
'Choose a specific Gemini model for conversations (/settings)...',
|
|
158
|
+
'Limit the number of turns in your session history (/settings)...',
|
|
159
|
+
'Automatically summarize large tool outputs to save tokens (settings.json)...',
|
|
160
|
+
'Control when chat history gets compressed based on token usage (settings.json)...',
|
|
161
|
+
'Define custom context file names, like CONTEXT.md (settings.json)...',
|
|
162
|
+
'Set max directories to scan for context files (/settings)...',
|
|
163
|
+
'Expand your workspace with additional directories (/directory)...',
|
|
164
|
+
'Control how /memory refresh loads context files (/settings)...',
|
|
165
|
+
'Toggle respect for .gitignore files in context (/settings)...',
|
|
166
|
+
'Toggle respect for .geminiignore files in context (/settings)...',
|
|
167
|
+
'Enable recursive file search for @-file completions (/settings)...',
|
|
168
|
+
'Run tools in a secure sandbox environment (settings.json)...',
|
|
169
|
+
'Use an interactive terminal for shell commands (/settings)...',
|
|
170
|
+
'Restrict available built-in tools (settings.json)...',
|
|
171
|
+
'Exclude specific tools from being used (settings.json)...',
|
|
172
|
+
'Bypass confirmation for trusted tools (settings.json)...',
|
|
173
|
+
'Use a custom command for tool discovery (settings.json)...',
|
|
174
|
+
'Define a custom command for calling discovered tools (settings.json)...',
|
|
175
|
+
'Define and manage connections to MCP servers (settings.json)...',
|
|
176
|
+
'Enable folder trust to enhance security (/settings)...',
|
|
177
|
+
'Change your authentication method (/settings)...',
|
|
178
|
+
'Enforce auth type for enterprise use (settings.json)...',
|
|
179
|
+
'Let Node.js auto-configure memory (settings.json)...',
|
|
180
|
+
'Customize the DNS resolution order (settings.json)...',
|
|
181
|
+
'Exclude env vars from the context (settings.json)...',
|
|
182
|
+
'Configure a custom command for filing bug reports (settings.json)...',
|
|
183
|
+
'Enable or disable telemetry collection (/settings)...',
|
|
184
|
+
'Send telemetry data to a local file or GCP (settings.json)...',
|
|
185
|
+
'Configure the OTLP endpoint for telemetry (settings.json)...',
|
|
186
|
+
'Choose whether to log prompt content (settings.json)...',
|
|
187
|
+
'Enable AI-powered prompt completion while typing (/settings)...',
|
|
188
|
+
'Enable debug logging of keystrokes to the console (/settings)...',
|
|
189
|
+
'Enable automatic session cleanup of old conversations (/settings)...',
|
|
190
|
+
'Show Gemini CLI status in the terminal window title (/settings)...',
|
|
191
|
+
'Use the entire width of the terminal for output (/settings)...',
|
|
192
|
+
'Enable screen reader mode for better accessibility (/settings)...',
|
|
193
|
+
'Skip the next speaker check for faster responses (/settings)...',
|
|
194
|
+
'Use ripgrep for faster file content search (/settings)...',
|
|
195
|
+
'Enable truncation of large tool outputs to save tokens (/settings)...',
|
|
196
|
+
'Set the character threshold for truncating tool outputs (/settings)...',
|
|
197
|
+
'Set the number of lines to keep when truncating outputs (/settings)...',
|
|
198
|
+
'Enable policy-based tool confirmation via message bus (/settings)...',
|
|
199
|
+
'Enable smart-edit tool for more precise editing (/settings)...',
|
|
200
|
+
'Enable write_todos_list tool to generate task lists (/settings)...',
|
|
201
|
+
'Enable model routing based on complexity (/settings)...',
|
|
202
|
+
'Enable experimental subagents for task delegation (/settings)...',
|
|
203
|
+
//Settings tips end here
|
|
204
|
+
// Keyboard shortcut tips start here
|
|
205
|
+
'Close dialogs and suggestions with Esc...',
|
|
206
|
+
'Cancel a request with Ctrl+C, or press twice to exit...',
|
|
207
|
+
'Exit the app with Ctrl+D on an empty line...',
|
|
208
|
+
'Clear your screen at any time with Ctrl+L...',
|
|
209
|
+
'Toggle the debug console display with F12...',
|
|
210
|
+
'See full, untruncated responses with Ctrl+S...',
|
|
211
|
+
'Toggle auto-approval (YOLO mode) for all tools with Ctrl+Y...',
|
|
212
|
+
'Toggle shell mode by typing ! in an empty prompt...',
|
|
213
|
+
'Insert a newline with a backslash (\\) followed by Enter...',
|
|
214
|
+
'Navigate your prompt history with the Up and Down arrows...',
|
|
215
|
+
'You can also use Ctrl+P (up) and Ctrl+N (down) for history...',
|
|
216
|
+
'Submit your prompt to Gemini with Enter...',
|
|
217
|
+
'Accept an autocomplete suggestion with Tab or Enter...',
|
|
218
|
+
'Move to the start of the line with Ctrl+A or Home...',
|
|
219
|
+
'Move to the end of the line with Ctrl+E or End...',
|
|
220
|
+
'Move one character left or right with Ctrl+B/F or the arrow keys...',
|
|
221
|
+
'Move one word left or right with Ctrl+Left/Right Arrow...',
|
|
222
|
+
'Delete the character to the left with Ctrl+H or Backspace...',
|
|
223
|
+
'Delete the character to the right with Ctrl+D or Delete...',
|
|
224
|
+
'Delete the word to the left of the cursor with Ctrl+W...',
|
|
225
|
+
'Delete the word to the right of the cursor with Ctrl+Delete...',
|
|
226
|
+
'Delete from the cursor to the start of the line with Ctrl+U...',
|
|
227
|
+
'Delete from the cursor to the end of the line with Ctrl+K...',
|
|
228
|
+
'Clear the entire input prompt with a double-press of Esc...',
|
|
229
|
+
'Paste from your clipboard with Ctrl+V...',
|
|
230
|
+
'Open the current prompt in an external editor with Ctrl+X...',
|
|
231
|
+
'In menus, move up/down with k/j or the arrow keys...',
|
|
232
|
+
'In menus, select an item by typing its number...',
|
|
233
|
+
"If you're using an IDE, see the context with Ctrl+G...",
|
|
234
|
+
// Keyboard shortcut tips end here
|
|
235
|
+
// Command tips start here
|
|
236
|
+
'Show version info with /about...',
|
|
237
|
+
'Change your authentication method with /auth...',
|
|
238
|
+
'File a bug report directly with /bug...',
|
|
239
|
+
'List your saved chat checkpoints with /chat list...',
|
|
240
|
+
'Save your current conversation with /chat save <tag>...',
|
|
241
|
+
'Resume a saved conversation with /chat resume <tag>...',
|
|
242
|
+
'Delete a conversation checkpoint with /chat delete <tag>...',
|
|
243
|
+
'Share your conversation to a file with /chat share <file>...',
|
|
244
|
+
'Clear the screen and history with /clear...',
|
|
245
|
+
'Save tokens by summarizing the context with /compress...',
|
|
246
|
+
'Copy the last response to your clipboard with /copy...',
|
|
247
|
+
'Open the full documentation in your browser with /docs...',
|
|
248
|
+
'Add directories to your workspace with /directory add <path>...',
|
|
249
|
+
'Show all directories in your workspace with /directory show...',
|
|
250
|
+
'Set your preferred external editor with /editor...',
|
|
251
|
+
'List all active extensions with /extensions list...',
|
|
252
|
+
'Update all or specific extensions with /extensions update...',
|
|
253
|
+
'Get help on commands with /help...',
|
|
254
|
+
'Manage IDE integration with /ide...',
|
|
255
|
+
'Create a project-specific GEMINI.md file with /init...',
|
|
256
|
+
'List configured MCP servers and tools with /mcp list...',
|
|
257
|
+
'Authenticate with an OAuth-enabled MCP server with /mcp auth...',
|
|
258
|
+
'Restart MCP servers with /mcp refresh...',
|
|
259
|
+
'See the current instructional context with /memory show...',
|
|
260
|
+
'Add content to the instructional memory with /memory add...',
|
|
261
|
+
'Reload instructional context from GEMINI.md files with /memory refresh...',
|
|
262
|
+
'List the paths of the GEMINI.md files in use with /memory list...',
|
|
263
|
+
'Display the privacy notice with /privacy...',
|
|
264
|
+
'Exit the CLI with /quit or /exit...',
|
|
265
|
+
'Check model-specific usage stats with /stats model...',
|
|
266
|
+
'Check tool-specific usage stats with /stats tools...',
|
|
267
|
+
"Change the CLI's color theme with /theme...",
|
|
268
|
+
'List all available tools with /tools...',
|
|
269
|
+
'View and edit settings with the /settings editor...',
|
|
270
|
+
'Toggle Vim keybindings on and off with /vim...',
|
|
271
|
+
'Set up GitHub Actions with /setup-github...',
|
|
272
|
+
'Configure terminal keybindings for multiline input with /terminal-setup...',
|
|
273
|
+
'Find relevant documentation with /find-docs...',
|
|
274
|
+
'Review a pull request with /oncall:pr-review...',
|
|
275
|
+
'Go back to main and clean up the branch with /github:cleanup-back-to-main...',
|
|
276
|
+
'Execute any shell command with !<command>...',
|
|
277
|
+
// Command tips end here
|
|
278
|
+
];
|
|
139
279
|
export const PHRASE_CHANGE_INTERVAL_MS = 15000;
|
|
140
280
|
/**
|
|
141
281
|
* Custom hook to manage cycling through loading phrases.
|
|
@@ -161,13 +301,24 @@ export const usePhraseCycler = (isActive, isWaiting, customPhrases) => {
|
|
|
161
301
|
if (phraseIntervalRef.current) {
|
|
162
302
|
clearInterval(phraseIntervalRef.current);
|
|
163
303
|
}
|
|
304
|
+
const setRandomPhrase = () => {
|
|
305
|
+
if (customPhrases && customPhrases.length > 0) {
|
|
306
|
+
const randomIndex = Math.floor(Math.random() * customPhrases.length);
|
|
307
|
+
setCurrentLoadingPhrase(customPhrases[randomIndex]);
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
// Roughly 1 in 6 chance to show a tip.
|
|
311
|
+
const showTip = Math.random() < 1 / 6;
|
|
312
|
+
const phraseList = showTip ? INFORMATIVE_TIPS : WITTY_LOADING_PHRASES;
|
|
313
|
+
const randomIndex = Math.floor(Math.random() * phraseList.length);
|
|
314
|
+
setCurrentLoadingPhrase(phraseList[randomIndex]);
|
|
315
|
+
}
|
|
316
|
+
};
|
|
164
317
|
// Select an initial random phrase
|
|
165
|
-
|
|
166
|
-
setCurrentLoadingPhrase(loadingPhrases[initialRandomIndex]);
|
|
318
|
+
setRandomPhrase();
|
|
167
319
|
phraseIntervalRef.current = setInterval(() => {
|
|
168
320
|
// Select a new random phrase
|
|
169
|
-
|
|
170
|
-
setCurrentLoadingPhrase(loadingPhrases[randomIndex]);
|
|
321
|
+
setRandomPhrase();
|
|
171
322
|
}, PHRASE_CHANGE_INTERVAL_MS);
|
|
172
323
|
}
|
|
173
324
|
else {
|
|
@@ -185,7 +336,7 @@ export const usePhraseCycler = (isActive, isWaiting, customPhrases) => {
|
|
|
185
336
|
phraseIntervalRef.current = null;
|
|
186
337
|
}
|
|
187
338
|
};
|
|
188
|
-
}, [isActive, isWaiting, loadingPhrases]);
|
|
339
|
+
}, [isActive, isWaiting, customPhrases, loadingPhrases]);
|
|
189
340
|
return currentLoadingPhrase;
|
|
190
341
|
};
|
|
191
342
|
//# sourceMappingURL=usePhraseCycler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePhraseCycler.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePhraseCycler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEpD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,mBAAmB;IACnB,0BAA0B;IAC1B,gCAAgC;IAChC,8BAA8B;IAC9B,mCAAmC;IACnC,yBAAyB;IACzB,+BAA+B;IAC/B,iCAAiC;IACjC,4BAA4B;IAC5B,6BAA6B;IAC7B,uCAAuC;IACvC,wBAAwB;IACxB,uBAAuB;IACvB,kCAAkC;IAClC,+CAA+C;IAC/C,iCAAiC;IACjC,yBAAyB;IACzB,2BAA2B;IAC3B,yBAAyB;IACzB,oBAAoB;IACpB,kCAAkC;IAClC,+BAA+B;IAC/B,sCAAsC;IACtC,4BAA4B;IAC5B,kCAAkC;IAClC,gDAAgD;IAChD,4BAA4B;IAC5B,qDAAqD;IACrD,oDAAoD;IACpD,+BAA+B;IAC/B,8CAA8C;IAC9C,gCAAgC;IAChC,0CAA0C;IAC1C,wCAAwC;IACxC,6BAA6B;IAC7B,gCAAgC;IAChC,oCAAoC;IACpC,0BAA0B;IAC1B,sCAAsC;IACtC,qCAAqC;IACrC,4BAA4B;IAC5B,mCAAmC;IACnC,qCAAqC;IACrC,yBAAyB;IACzB,4CAA4C;IAC5C,kBAAkB;IAClB,gCAAgC;IAChC,mCAAmC;IACnC,4CAA4C;IAC5C,sCAAsC;IACtC,2CAA2C;IAC3C,6CAA6C;IAC7C,2CAA2C;IAC3C,yCAAyC;IACzC,6CAA6C;IAC7C,uBAAuB;IACvB,uCAAuC;IACvC,gBAAgB;IAChB,+BAA+B;IAC/B,sCAAsC;IACtC,6BAA6B;IAC7B,8BAA8B;IAC9B,4BAA4B;IAC5B,qDAAqD;IACrD,mDAAmD;IACnD,gDAAgD;IAChD,8CAA8C;IAC9C,6BAA6B;IAC7B,yBAAyB;IACzB,yBAAyB;IACzB,0CAA0C;IAC1C,2CAA2C;IAC3C,6BAA6B;IAC7B,iDAAiD;IACjD,oCAAoC;IACpC,oBAAoB;IACpB,wBAAwB;IACxB,sDAAsD;IACtD,sBAAsB;IACtB,4BAA4B;IAC5B,gDAAgD;IAChD,iDAAiD;IACjD,uCAAuC;IACvC,oBAAoB;IACpB,uCAAuC;IACvC,6CAA6C;IAC7C,yBAAyB;IACzB,gDAAgD;IAChD,8DAA8D;IAC9D,4DAA4D;IAC5D,qEAAqE;IACrE,yEAAyE;IACzE,kEAAkE;IAClE,oCAAoC;IACpC,8CAA8C;IAC9C,oDAAoD;IACpD,+CAA+C;IAC/C,uBAAuB;IACvB,kCAAkC;IAClC,mDAAmD;IACnD,SAAS;IACT,iCAAiC;IACjC,iCAAiC;IACjC,sCAAsC;IACtC,kCAAkC;IAClC,wCAAwC;IACxC,sBAAsB;IACtB,yFAAyF;IACzF,+BAA+B;IAC/B,iDAAiD;IACjD,6DAA6D;IAC7D,gCAAgC;IAChC,mCAAmC;IACnC,uDAAuD;IACvD,yBAAyB;IACzB,8CAA8C;IAC9C,uDAAuD;IACvD,4CAA4C;IAC5C,2CAA2C;IAC3C,oDAAoD;IACpD,gDAAgD;IAChD,kCAAkC;IAClC,0CAA0C;IAC1C,gEAAgE;IAChE,0CAA0C;IAC1C,2DAA2D;IAC3D,2EAA2E;IAC3E,mCAAmC;IACnC,0BAA0B;IAC1B,8BAA8B;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,KAAK,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,QAAiB,EACjB,SAAkB,EAClB,aAAwB,EACxB,EAAE;IACF,MAAM,cAAc,GAClB,aAAa,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC;QACvC,CAAC,CAAC,aAAa;QACf,CAAC,CAAC,qBAAqB,CAAC;IAE5B,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,QAAQ,CAC9D,cAAc,CAAC,CAAC,CAAC,CAClB,CAAC;IACF,MAAM,iBAAiB,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAE9D,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,EAAE,CAAC;YACd,uBAAuB,CAAC,kCAAkC,CAAC,CAAC;YAC5D,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC9B,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;gBACzC,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;YACnC,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,IAAI,iBAAiB,CAAC,OAAO,EAAE,CAAC;gBAC9B,aAAa,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;YAC3C,CAAC;
|
|
1
|
+
{"version":3,"file":"usePhraseCycler.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePhraseCycler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright 2025 Google LLC
|
|
5
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
6
|
+
*/
|
|
7
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
8
|
+
import { act } from 'react';
|
|
9
|
+
import { render } from '../../test-utils/render.js';
|
|
10
|
+
import { Text } from 'ink';
|
|
11
|
+
import { usePhraseCycler, WITTY_LOADING_PHRASES, PHRASE_CHANGE_INTERVAL_MS, } from './usePhraseCycler.js';
|
|
12
|
+
// Test component to consume the hook
|
|
13
|
+
const TestComponent = ({ isActive, isWaiting, customPhrases, }) => {
|
|
14
|
+
const phrase = usePhraseCycler(isActive, isWaiting, customPhrases);
|
|
15
|
+
return _jsx(Text, { children: phrase });
|
|
16
|
+
};
|
|
17
|
+
describe('usePhraseCycler', () => {
|
|
18
|
+
beforeEach(() => {
|
|
19
|
+
vi.useFakeTimers();
|
|
20
|
+
});
|
|
21
|
+
afterEach(() => {
|
|
22
|
+
vi.restoreAllMocks();
|
|
23
|
+
});
|
|
24
|
+
it('should initialize with a witty phrase when not active and not waiting', () => {
|
|
25
|
+
vi.spyOn(Math, 'random').mockImplementation(() => 0.5); // Always witty
|
|
26
|
+
const { lastFrame } = render(_jsx(TestComponent, { isActive: false, isWaiting: false }));
|
|
27
|
+
expect(WITTY_LOADING_PHRASES).toContain(lastFrame());
|
|
28
|
+
});
|
|
29
|
+
it('should show "Waiting for user confirmation..." when isWaiting is true', async () => {
|
|
30
|
+
const { lastFrame, rerender } = render(_jsx(TestComponent, { isActive: true, isWaiting: false }));
|
|
31
|
+
rerender(_jsx(TestComponent, { isActive: true, isWaiting: true }));
|
|
32
|
+
await act(async () => {
|
|
33
|
+
await vi.advanceTimersByTimeAsync(0);
|
|
34
|
+
});
|
|
35
|
+
expect(lastFrame()).toBe('Waiting for user confirmation...');
|
|
36
|
+
});
|
|
37
|
+
it('should not cycle phrases if isActive is false and not waiting', async () => {
|
|
38
|
+
const { lastFrame } = render(_jsx(TestComponent, { isActive: false, isWaiting: false }));
|
|
39
|
+
const initialPhrase = lastFrame();
|
|
40
|
+
await act(async () => {
|
|
41
|
+
await vi.advanceTimersByTimeAsync(PHRASE_CHANGE_INTERVAL_MS * 2);
|
|
42
|
+
});
|
|
43
|
+
expect(lastFrame()).toBe(initialPhrase);
|
|
44
|
+
});
|
|
45
|
+
it('should cycle through witty phrases when isActive is true and not waiting', async () => {
|
|
46
|
+
vi.spyOn(Math, 'random').mockImplementation(() => 0.5); // Always witty
|
|
47
|
+
const { lastFrame } = render(_jsx(TestComponent, { isActive: true, isWaiting: false }));
|
|
48
|
+
// Initial phrase should be one of the witty phrases
|
|
49
|
+
await act(async () => {
|
|
50
|
+
await vi.advanceTimersByTimeAsync(0);
|
|
51
|
+
});
|
|
52
|
+
expect(WITTY_LOADING_PHRASES).toContain(lastFrame());
|
|
53
|
+
await act(async () => {
|
|
54
|
+
await vi.advanceTimersByTimeAsync(PHRASE_CHANGE_INTERVAL_MS + 100);
|
|
55
|
+
});
|
|
56
|
+
expect(WITTY_LOADING_PHRASES).toContain(lastFrame());
|
|
57
|
+
await act(async () => {
|
|
58
|
+
await vi.advanceTimersByTimeAsync(PHRASE_CHANGE_INTERVAL_MS);
|
|
59
|
+
});
|
|
60
|
+
expect(WITTY_LOADING_PHRASES).toContain(lastFrame());
|
|
61
|
+
});
|
|
62
|
+
it('should reset to a phrase when isActive becomes true after being false', async () => {
|
|
63
|
+
const customPhrases = ['Phrase A', 'Phrase B'];
|
|
64
|
+
let callCount = 0;
|
|
65
|
+
vi.spyOn(Math, 'random').mockImplementation(() => {
|
|
66
|
+
// For custom phrases, only 1 Math.random call is made per update.
|
|
67
|
+
// 0 -> index 0 ('Phrase A')
|
|
68
|
+
// 0.99 -> index 1 ('Phrase B')
|
|
69
|
+
const val = callCount % 2 === 0 ? 0 : 0.99;
|
|
70
|
+
callCount++;
|
|
71
|
+
return val;
|
|
72
|
+
});
|
|
73
|
+
const { lastFrame, rerender } = render(_jsx(TestComponent, { isActive: false, isWaiting: false, customPhrases: customPhrases }));
|
|
74
|
+
// Activate -> callCount 0 -> returns 0 -> 'Phrase A'
|
|
75
|
+
rerender(_jsx(TestComponent, { isActive: true, isWaiting: false, customPhrases: customPhrases }));
|
|
76
|
+
await act(async () => {
|
|
77
|
+
await vi.advanceTimersByTimeAsync(0);
|
|
78
|
+
});
|
|
79
|
+
expect(lastFrame()).toBe('Phrase A');
|
|
80
|
+
// Interval -> callCount 1 -> returns 0.99 -> 'Phrase B'
|
|
81
|
+
await act(async () => {
|
|
82
|
+
await vi.advanceTimersByTimeAsync(PHRASE_CHANGE_INTERVAL_MS);
|
|
83
|
+
});
|
|
84
|
+
expect(lastFrame()).toBe('Phrase B');
|
|
85
|
+
// Deactivate -> resets to customPhrases[0] -> 'Phrase A'
|
|
86
|
+
rerender(_jsx(TestComponent, { isActive: false, isWaiting: false, customPhrases: customPhrases }));
|
|
87
|
+
await act(async () => {
|
|
88
|
+
await vi.advanceTimersByTimeAsync(0);
|
|
89
|
+
});
|
|
90
|
+
expect(lastFrame()).toBe('Phrase A');
|
|
91
|
+
// Activate again -> callCount 2 -> returns 0 -> 'Phrase A'
|
|
92
|
+
rerender(_jsx(TestComponent, { isActive: true, isWaiting: false, customPhrases: customPhrases }));
|
|
93
|
+
await act(async () => {
|
|
94
|
+
await vi.advanceTimersByTimeAsync(0);
|
|
95
|
+
});
|
|
96
|
+
expect(lastFrame()).toBe('Phrase A');
|
|
97
|
+
});
|
|
98
|
+
it('should clear phrase interval on unmount when active', () => {
|
|
99
|
+
const { unmount } = render(_jsx(TestComponent, { isActive: true, isWaiting: false }));
|
|
100
|
+
const clearIntervalSpy = vi.spyOn(global, 'clearInterval');
|
|
101
|
+
unmount();
|
|
102
|
+
expect(clearIntervalSpy).toHaveBeenCalledOnce();
|
|
103
|
+
});
|
|
104
|
+
it('should use custom phrases when provided', async () => {
|
|
105
|
+
const customPhrases = ['Custom Phrase 1', 'Custom Phrase 2'];
|
|
106
|
+
const randomMock = vi.spyOn(Math, 'random');
|
|
107
|
+
randomMock.mockReturnValue(0);
|
|
108
|
+
const { lastFrame, rerender } = render(_jsx(TestComponent, { isActive: true, isWaiting: false, customPhrases: customPhrases }));
|
|
109
|
+
expect(lastFrame()).toBe('Custom Phrase 1');
|
|
110
|
+
randomMock.mockReturnValue(0.99);
|
|
111
|
+
await act(async () => {
|
|
112
|
+
await vi.advanceTimersByTimeAsync(PHRASE_CHANGE_INTERVAL_MS + 100);
|
|
113
|
+
});
|
|
114
|
+
expect(lastFrame()).toBe('Custom Phrase 2');
|
|
115
|
+
// Test fallback to default phrases.
|
|
116
|
+
randomMock.mockRestore();
|
|
117
|
+
vi.spyOn(Math, 'random').mockReturnValue(0.5); // Always witty
|
|
118
|
+
rerender(_jsx(TestComponent, { isActive: true, isWaiting: false, customPhrases: [] }));
|
|
119
|
+
await act(async () => {
|
|
120
|
+
await vi.advanceTimersByTimeAsync(0);
|
|
121
|
+
});
|
|
122
|
+
expect(WITTY_LOADING_PHRASES).toContain(lastFrame());
|
|
123
|
+
});
|
|
124
|
+
it('should fall back to witty phrases if custom phrases are an empty array', async () => {
|
|
125
|
+
vi.spyOn(Math, 'random').mockImplementation(() => 0.5); // Always witty
|
|
126
|
+
const { lastFrame } = render(_jsx(TestComponent, { isActive: true, isWaiting: false, customPhrases: [] }));
|
|
127
|
+
await act(async () => {
|
|
128
|
+
await vi.advanceTimersByTimeAsync(0);
|
|
129
|
+
});
|
|
130
|
+
expect(WITTY_LOADING_PHRASES).toContain(lastFrame());
|
|
131
|
+
});
|
|
132
|
+
it('should reset to a witty phrase when transitioning from waiting to active', async () => {
|
|
133
|
+
vi.spyOn(Math, 'random').mockImplementation(() => 0.5); // Always witty
|
|
134
|
+
const { lastFrame, rerender } = render(_jsx(TestComponent, { isActive: true, isWaiting: false }));
|
|
135
|
+
await act(async () => {
|
|
136
|
+
await vi.advanceTimersByTimeAsync(0);
|
|
137
|
+
});
|
|
138
|
+
expect(WITTY_LOADING_PHRASES).toContain(lastFrame());
|
|
139
|
+
// Cycle to a different phrase (potentially)
|
|
140
|
+
await act(async () => {
|
|
141
|
+
await vi.advanceTimersByTimeAsync(PHRASE_CHANGE_INTERVAL_MS);
|
|
142
|
+
});
|
|
143
|
+
expect(WITTY_LOADING_PHRASES).toContain(lastFrame());
|
|
144
|
+
// Go to waiting state
|
|
145
|
+
rerender(_jsx(TestComponent, { isActive: false, isWaiting: true }));
|
|
146
|
+
await act(async () => {
|
|
147
|
+
await vi.advanceTimersByTimeAsync(0);
|
|
148
|
+
});
|
|
149
|
+
expect(lastFrame()).toBe('Waiting for user confirmation...');
|
|
150
|
+
// Go back to active cycling - should pick a random witty phrase
|
|
151
|
+
rerender(_jsx(TestComponent, { isActive: true, isWaiting: false }));
|
|
152
|
+
await act(async () => {
|
|
153
|
+
await vi.advanceTimersByTimeAsync(0);
|
|
154
|
+
});
|
|
155
|
+
expect(WITTY_LOADING_PHRASES).toContain(lastFrame());
|
|
156
|
+
});
|
|
157
|
+
});
|
|
158
|
+
//# sourceMappingURL=usePhraseCycler.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePhraseCycler.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePhraseCycler.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,15 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
2
|
/**
|
|
2
3
|
* @license
|
|
3
4
|
* Copyright 2025 Google LLC
|
|
4
5
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
6
|
*/
|
|
6
7
|
import { describe, it, expect, beforeEach, vi } from 'vitest';
|
|
7
|
-
import {
|
|
8
|
+
import { act } from 'react';
|
|
9
|
+
import { render } from '../../test-utils/render.js';
|
|
8
10
|
import { UserTierId, getCodeAssistServer } from '@google/gemini-cli-core';
|
|
9
11
|
import { usePrivacySettings } from './usePrivacySettings.js';
|
|
12
|
+
import { waitFor } from '../../test-utils/async.js';
|
|
10
13
|
// Mock the dependencies
|
|
11
14
|
vi.mock('@google/gemini-cli-core', async (importOriginal) => {
|
|
12
15
|
const actual = await importOriginal();
|
|
@@ -20,9 +23,24 @@ describe('usePrivacySettings', () => {
|
|
|
20
23
|
beforeEach(() => {
|
|
21
24
|
vi.clearAllMocks();
|
|
22
25
|
});
|
|
26
|
+
const renderPrivacySettingsHook = () => {
|
|
27
|
+
let hookResult;
|
|
28
|
+
function TestComponent() {
|
|
29
|
+
hookResult = usePrivacySettings(mockConfig);
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
render(_jsx(TestComponent, {}));
|
|
33
|
+
return {
|
|
34
|
+
result: {
|
|
35
|
+
get current() {
|
|
36
|
+
return hookResult;
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
};
|
|
23
41
|
it('should throw error when content generator is not a CodeAssistServer', async () => {
|
|
24
42
|
vi.mocked(getCodeAssistServer).mockReturnValue(undefined);
|
|
25
|
-
const { result } =
|
|
43
|
+
const { result } = renderPrivacySettingsHook();
|
|
26
44
|
await waitFor(() => {
|
|
27
45
|
expect(result.current.privacyState.isLoading).toBe(false);
|
|
28
46
|
});
|
|
@@ -36,7 +54,7 @@ describe('usePrivacySettings', () => {
|
|
|
36
54
|
currentTier: { id: UserTierId.STANDARD },
|
|
37
55
|
}),
|
|
38
56
|
});
|
|
39
|
-
const { result } =
|
|
57
|
+
const { result } = renderPrivacySettingsHook();
|
|
40
58
|
await waitFor(() => {
|
|
41
59
|
expect(result.current.privacyState.isLoading).toBe(false);
|
|
42
60
|
});
|
|
@@ -50,7 +68,7 @@ describe('usePrivacySettings', () => {
|
|
|
50
68
|
currentTier: { id: UserTierId.FREE },
|
|
51
69
|
}),
|
|
52
70
|
});
|
|
53
|
-
const { result } =
|
|
71
|
+
const { result } = renderPrivacySettingsHook();
|
|
54
72
|
await waitFor(() => {
|
|
55
73
|
expect(result.current.privacyState.isLoading).toBe(false);
|
|
56
74
|
});
|
|
@@ -70,13 +88,15 @@ describe('usePrivacySettings', () => {
|
|
|
70
88
|
}),
|
|
71
89
|
};
|
|
72
90
|
vi.mocked(getCodeAssistServer).mockReturnValue(mockCodeAssistServer);
|
|
73
|
-
const { result } =
|
|
91
|
+
const { result } = renderPrivacySettingsHook();
|
|
74
92
|
// Wait for initial load
|
|
75
93
|
await waitFor(() => {
|
|
76
94
|
expect(result.current.privacyState.isLoading).toBe(false);
|
|
77
95
|
});
|
|
78
96
|
// Update the setting
|
|
79
|
-
await
|
|
97
|
+
await act(async () => {
|
|
98
|
+
await result.current.updateDataCollectionOptIn(false);
|
|
99
|
+
});
|
|
80
100
|
// Wait for update to complete
|
|
81
101
|
await waitFor(() => {
|
|
82
102
|
expect(result.current.privacyState.dataCollectionOptIn).toBe(false);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePrivacySettings.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePrivacySettings.test.
|
|
1
|
+
{"version":3,"file":"usePrivacySettings.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePrivacySettings.test.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAMpD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD,wBAAwB;AACxB,EAAE,CAAC,IAAI,CAAC,yBAAyB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IAC1D,MAAM,MAAM,GACV,MAAM,cAAc,EAA4C,CAAC;IACnE,OAAO;QACL,GAAG,MAAM;QACT,mBAAmB,EAAE,EAAE,CAAC,EAAE,EAAE;KAC7B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;IAClC,MAAM,UAAU,GAAG,EAAuB,CAAC;IAE3C,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,MAAM,yBAAyB,GAAG,GAAG,EAAE;QACrC,IAAI,UAAiD,CAAC;QACtD,SAAS,aAAa;YACpB,UAAU,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,CAAC,KAAC,aAAa,KAAG,CAAC,CAAC;QAC1B,OAAO;YACL,MAAM,EAAE;gBACN,IAAI,OAAO;oBACT,OAAO,UAAU,CAAC;gBACpB,CAAC;aACF;SACF,CAAC;IACJ,CAAC,CAAC;IAEF,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAE1D,MAAM,EAAE,MAAM,EAAE,GAAG,yBAAyB,EAAE,CAAC;QAE/C,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACzE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;QACvD,0BAA0B;QAC1B,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,eAAe,CAAC;YAC7C,SAAS,EAAE,iBAAiB;YAC5B,cAAc,EAAE,GAAG,EAAE,CACnB,CAAC;gBACC,WAAW,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,QAAQ,EAAE;aACzC,CAAsC;SACX,CAAC,CAAC;QAElC,MAAM,EAAE,MAAM,EAAE,GAAG,yBAAyB,EAAE,CAAC;QAE/C,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,aAAa,EAAE,CAAC;QAC1D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC3D,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,aAAa,EAAE,CAAC;IAC1E,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACzE,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,eAAe,CAAC;YAC7C,cAAc,EAAE,GAAG,EAAE,CACnB,CAAC;gBACC,WAAW,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE;aACrC,CAAsC;SACX,CAAC,CAAC;QAElC,MAAM,EAAE,MAAM,EAAE,GAAG,yBAAyB,EAAE,CAAC;QAE/C,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,IAAI,CAC5C,2CAA2C,CAC5C,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,KAAK,IAAI,EAAE;QAC5D,MAAM,oBAAoB,GAAG;YAC3B,SAAS,EAAE,iBAAiB;YAC5B,8BAA8B,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACxD,2BAA2B,EAAE,IAAI;aAClC,CAAC;YACF,8BAA8B,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;gBACxD,2BAA2B,EAAE,KAAK;aACnC,CAAC;YACF,cAAc,EAAE,GAAG,EAAE,CACnB,CAAC;gBACC,WAAW,EAAE,EAAE,EAAE,EAAE,UAAU,CAAC,IAAI,EAAE;aACrC,CAAsC;SACX,CAAC;QACjC,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,eAAe,CAAC,oBAAoB,CAAC,CAAC;QAErE,MAAM,EAAE,MAAM,EAAE,GAAG,yBAAyB,EAAE,CAAC;QAE/C,wBAAwB;QACxB,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;QAEH,qBAAqB;QACrB,MAAM,GAAG,CAAC,KAAK,IAAI,EAAE;YACnB,MAAM,MAAM,CAAC,OAAO,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,8BAA8B;QAC9B,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtE,CAAC,CAAC,CAAC;QAEH,MAAM,CACJ,oBAAoB,CAAC,8BAA8B,CACpD,CAAC,oBAAoB,CAAC;YACrB,uBAAuB,EAAE,iBAAiB;YAC1C,2BAA2B,EAAE,KAAK;SACnC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { useState, useCallback, useRef, useEffect, useMemo } from 'react';
|
|
7
|
-
import { DEFAULT_GEMINI_FLASH_LITE_MODEL, getResponseText, } from '@google/gemini-cli-core';
|
|
7
|
+
import { debugLogger, DEFAULT_GEMINI_FLASH_LITE_MODEL, getResponseText, } from '@google/gemini-cli-core';
|
|
8
8
|
import { isSlashCommand } from '../utils/commandUtils.js';
|
|
9
9
|
export const PROMPT_COMPLETION_MIN_LENGTH = 5;
|
|
10
10
|
export const PROMPT_COMPLETION_DEBOUNCE_MS = 250;
|
|
@@ -93,7 +93,7 @@ export function usePromptCompletion({ buffer, config, enabled, }) {
|
|
|
93
93
|
catch (error) {
|
|
94
94
|
if (!(signal.aborted ||
|
|
95
95
|
(error instanceof Error && error.name === 'AbortError'))) {
|
|
96
|
-
|
|
96
|
+
debugLogger.warn(`[WARN] prompt completion failed: : (${error instanceof Error ? error.message : String(error)})`);
|
|
97
97
|
// Clear the last requested text to allow retry only on real errors
|
|
98
98
|
lastRequestedTextRef.current = '';
|
|
99
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePromptCompletion.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePromptCompletion.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"usePromptCompletion.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePromptCompletion.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2025 Google LLC
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import { AuthType,
|
|
6
|
+
import { AuthType, TerminalQuotaError, UserTierId, RetryableQuotaError, } from '@google/gemini-cli-core';
|
|
7
7
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
8
8
|
import {} from './useHistoryManager.js';
|
|
9
9
|
import { AuthState, MessageType } from '../types.js';
|
|
@@ -26,7 +26,7 @@ export function useQuotaAndFallback({ config, historyManager, userTier, setAuthS
|
|
|
26
26
|
// Use actual user tier if available; otherwise, default to FREE tier behavior (safe default)
|
|
27
27
|
const isPaidTier = userTier === UserTierId.LEGACY || userTier === UserTierId.STANDARD;
|
|
28
28
|
let message;
|
|
29
|
-
if (error
|
|
29
|
+
if (error instanceof TerminalQuotaError) {
|
|
30
30
|
// Pro Quota specific messages (Interactive)
|
|
31
31
|
if (isPaidTier) {
|
|
32
32
|
message = `⚡ You have reached your daily ${failedModel} quota limit.
|
|
@@ -41,32 +41,31 @@ export function useQuotaAndFallback({ config, historyManager, userTier, setAuthS
|
|
|
41
41
|
⚡ You can switch authentication methods by typing /auth`;
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
else if (error
|
|
45
|
-
//
|
|
46
|
-
const actionMessage = `⚡
|
|
44
|
+
else if (error instanceof RetryableQuotaError) {
|
|
45
|
+
// Short term quota retries exhausted (Automatic fallback)
|
|
46
|
+
const actionMessage = `⚡ Your requests are being throttled right now due to server being at capacity for ${failedModel}.\n⚡ Automatically switching from ${failedModel} to ${fallbackModel} for the remainder of this session.`;
|
|
47
47
|
if (isPaidTier) {
|
|
48
48
|
message = `${actionMessage}
|
|
49
|
-
⚡ To continue accessing the ${failedModel} model
|
|
49
|
+
⚡ To continue accessing the ${failedModel} model, retry your request after some time or consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
|
|
50
50
|
}
|
|
51
51
|
else {
|
|
52
52
|
message = `${actionMessage}
|
|
53
|
-
⚡
|
|
54
|
-
⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
|
|
53
|
+
⚡ Retry your requests after some time. Otherwise consider upgrading to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist
|
|
55
54
|
⚡ You can switch authentication methods by typing /auth`;
|
|
56
55
|
}
|
|
57
56
|
}
|
|
58
57
|
else {
|
|
59
|
-
//
|
|
58
|
+
// Other errors (Automatic fallback)
|
|
60
59
|
const actionMessage = `⚡ Automatically switching from ${failedModel} to ${fallbackModel} for faster responses for the remainder of this session.`;
|
|
61
60
|
if (isPaidTier) {
|
|
62
61
|
message = `${actionMessage}
|
|
63
|
-
⚡
|
|
64
|
-
⚡ To continue accessing the ${failedModel} model
|
|
62
|
+
⚡ Your requests are being throttled temporarily due to server being at capacity for ${failedModel} or there is a service outage.
|
|
63
|
+
⚡ To continue accessing the ${failedModel} model, you can retry your request after some time or consider using /auth to switch to using a paid API key from AI Studio at https://aistudio.google.com/apikey`;
|
|
65
64
|
}
|
|
66
65
|
else {
|
|
67
66
|
message = `${actionMessage}
|
|
68
|
-
⚡
|
|
69
|
-
⚡ To
|
|
67
|
+
⚡ Your requests are being throttled temporarily due to server being at capacity for ${failedModel} or there is a service outage.
|
|
68
|
+
⚡ To avoid being throttled, you can retry your request after some time or upgrade to a Gemini Code Assist Standard or Enterprise plan with higher limits at https://goo.gle/set-up-gemini-code-assist
|
|
70
69
|
⚡ Or you can utilize a Gemini API Key. See: https://goo.gle/gemini-cli-docs-auth#gemini-api-key
|
|
71
70
|
⚡ You can switch authentication methods by typing /auth`;
|
|
72
71
|
}
|
|
@@ -79,7 +78,7 @@ export function useQuotaAndFallback({ config, historyManager, userTier, setAuthS
|
|
|
79
78
|
setModelSwitchedFromQuotaError(true);
|
|
80
79
|
config.setQuotaErrorOccurred(true);
|
|
81
80
|
// Interactive Fallback for Pro quota
|
|
82
|
-
if (error
|
|
81
|
+
if (error instanceof TerminalQuotaError) {
|
|
83
82
|
if (isDialogPending.current) {
|
|
84
83
|
return 'stop'; // A dialog is already active, so just stop this request.
|
|
85
84
|
}
|