@google/gemini-cli 0.32.0-preview.0 → 0.33.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 +11 -9
- package/dist/package.json +3 -3
- package/dist/src/config/config.js +6 -1
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +70 -1
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extension-manager.js +1 -0
- package/dist/src/config/extension-manager.js.map +1 -1
- package/dist/src/config/extension.d.ts +9 -0
- package/dist/src/config/extension.js.map +1 -1
- package/dist/src/config/sandboxConfig.js +3 -1
- package/dist/src/config/sandboxConfig.js.map +1 -1
- package/dist/src/config/settings.d.ts +0 -2
- package/dist/src/config/settings.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +9 -13
- package/dist/src/config/settingsSchema.js +5 -13
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/gemini.js +1 -1
- package/dist/src/gemini.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/test-utils/render.js +5 -1
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/ui/AppContainer.js +1 -18
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.js +3 -1
- package/dist/src/ui/commands/extensionsCommand.js.map +1 -1
- package/dist/src/ui/commands/extensionsCommand.test.js +45 -0
- package/dist/src/ui/commands/extensionsCommand.test.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.js +12 -8
- package/dist/src/ui/commands/hooksCommand.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.test.js +15 -23
- package/dist/src/ui/commands/hooksCommand.test.js.map +1 -1
- package/dist/src/ui/commands/planCommand.js +33 -3
- package/dist/src/ui/commands/planCommand.js.map +1 -1
- package/dist/src/ui/commands/planCommand.test.js +29 -1
- package/dist/src/ui/commands/planCommand.test.js.map +1 -1
- package/dist/src/ui/components/AgentConfigDialog.js +17 -33
- package/dist/src/ui/components/AgentConfigDialog.js.map +1 -1
- package/dist/src/ui/components/AppHeader.d.ts +1 -1
- package/dist/src/ui/components/AppHeader.js +15 -8
- package/dist/src/ui/components/AppHeader.js.map +1 -1
- package/dist/src/ui/components/AppHeader.test.js +7 -0
- package/dist/src/ui/components/AppHeader.test.js.map +1 -1
- package/dist/src/ui/components/ContextUsageDisplay.d.ts +1 -1
- package/dist/src/ui/components/ContextUsageDisplay.js +15 -3
- package/dist/src/ui/components/ContextUsageDisplay.js.map +1 -1
- package/dist/src/ui/components/ContextUsageDisplay.test.js +25 -19
- package/dist/src/ui/components/ContextUsageDisplay.test.js.map +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.js +1 -6
- package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.test.js +2 -2
- package/dist/src/ui/components/DetailedMessagesDisplay.test.js.map +1 -1
- package/dist/src/ui/components/DialogManager.js +3 -19
- package/dist/src/ui/components/DialogManager.js.map +1 -1
- package/dist/src/ui/components/ExitPlanModeDialog.js +2 -1
- package/dist/src/ui/components/ExitPlanModeDialog.js.map +1 -1
- package/dist/src/ui/components/ExitPlanModeDialog.test.js +2 -13
- package/dist/src/ui/components/ExitPlanModeDialog.test.js.map +1 -1
- package/dist/src/ui/components/Footer.js +3 -1
- package/dist/src/ui/components/Footer.js.map +1 -1
- package/dist/src/ui/components/Footer.test.js +41 -6
- package/dist/src/ui/components/Footer.test.js.map +1 -1
- package/dist/src/ui/components/HistoryItemDisplay.js +2 -3
- package/dist/src/ui/components/HistoryItemDisplay.js.map +1 -1
- package/dist/src/ui/components/HooksDialog.d.ts +36 -0
- package/dist/src/ui/components/HooksDialog.js +81 -0
- package/dist/src/ui/components/HooksDialog.js.map +1 -0
- package/dist/src/ui/components/HooksDialog.test.js +187 -0
- package/dist/src/ui/components/HooksDialog.test.js.map +1 -0
- package/dist/src/ui/components/MainContent.js +2 -1
- package/dist/src/ui/components/MainContent.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.d.ts +1 -5
- package/dist/src/ui/components/SettingsDialog.js +90 -254
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +127 -105
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/StatusDisplay.test.js +5 -4
- package/dist/src/ui/components/StatusDisplay.test.js.map +1 -1
- package/dist/src/ui/components/Tips.d.ts +1 -1
- package/dist/src/ui/components/Tips.js +1 -1
- package/dist/src/ui/components/Tips.js.map +1 -1
- package/dist/src/ui/components/Tips.test.d.ts +1 -1
- package/dist/src/ui/components/Tips.test.js +6 -7
- package/dist/src/ui/components/Tips.test.js.map +1 -1
- package/dist/src/ui/components/UserIdentity.d.ts +1 -1
- package/dist/src/ui/components/UserIdentity.js +10 -12
- package/dist/src/ui/components/UserIdentity.js.map +1 -1
- package/dist/src/ui/components/UserIdentity.test.js +23 -10
- package/dist/src/ui/components/UserIdentity.test.js.map +1 -1
- package/dist/src/ui/components/messages/InfoMessage.d.ts +1 -0
- package/dist/src/ui/components/messages/InfoMessage.js +2 -2
- package/dist/src/ui/components/messages/InfoMessage.js.map +1 -1
- package/dist/src/ui/components/messages/SubagentProgressDisplay.d.ts +11 -0
- package/dist/src/ui/components/messages/SubagentProgressDisplay.js +73 -0
- package/dist/src/ui/components/messages/SubagentProgressDisplay.js.map +1 -0
- package/dist/src/ui/components/messages/SubagentProgressDisplay.test.d.ts +6 -0
- package/dist/src/ui/components/messages/SubagentProgressDisplay.test.js +158 -0
- package/dist/src/ui/components/messages/SubagentProgressDisplay.test.js.map +1 -0
- package/dist/src/ui/components/messages/ToolGroupMessage.js +1 -0
- package/dist/src/ui/components/messages/ToolGroupMessage.js.map +1 -1
- package/dist/src/ui/components/messages/ToolResultDisplay.js +5 -0
- package/dist/src/ui/components/messages/ToolResultDisplay.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSettingsDialog.d.ts +5 -2
- package/dist/src/ui/components/shared/BaseSettingsDialog.js +3 -2
- package/dist/src/ui/components/shared/BaseSettingsDialog.js.map +1 -1
- package/dist/src/ui/components/shared/BaseSettingsDialog.test.js +24 -0
- package/dist/src/ui/components/shared/BaseSettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/views/ExtensionRegistryView.d.ts +1 -2
- 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 +4 -0
- package/dist/src/ui/constants.js +4 -0
- package/dist/src/ui/constants.js.map +1 -1
- package/dist/src/ui/contexts/SettingsContext.js +2 -1
- package/dist/src/ui/contexts/SettingsContext.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +0 -2
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/contexts/VimModeContext.d.ts +1 -3
- package/dist/src/ui/contexts/VimModeContext.js +7 -16
- package/dist/src/ui/contexts/VimModeContext.js.map +1 -1
- package/dist/src/ui/hooks/toolMapping.js +1 -0
- package/dist/src/ui/hooks/toolMapping.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +16 -13
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.test.js +31 -2
- package/dist/src/ui/hooks/useGeminiStream.test.js.map +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.d.ts +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.js +1 -1
- package/dist/src/ui/hooks/useLoadingIndicator.js.map +1 -1
- package/dist/src/ui/hooks/useTerminalTheme.js +6 -3
- package/dist/src/ui/hooks/useTerminalTheme.js.map +1 -1
- package/dist/src/ui/hooks/useTerminalTheme.test.js +19 -0
- package/dist/src/ui/hooks/useTerminalTheme.test.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.js +26 -12
- package/dist/src/ui/hooks/useToolScheduler.js.map +1 -1
- package/dist/src/ui/hooks/useToolScheduler.test.js +101 -8
- package/dist/src/ui/hooks/useToolScheduler.test.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.d.ts +26 -4
- package/dist/src/ui/themes/theme-manager.js +40 -7
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.test.js +2 -1
- package/dist/src/ui/themes/theme-manager.test.js.map +1 -1
- package/dist/src/ui/types.d.ts +3 -17
- package/dist/src/ui/types.js +0 -1
- package/dist/src/ui/types.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.d.ts +6 -2
- package/dist/src/ui/utils/commandUtils.js +12 -5
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +21 -7
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/utils/agentSettings.d.ts +3 -11
- package/dist/src/utils/agentSettings.js +23 -81
- package/dist/src/utils/agentSettings.js.map +1 -1
- package/dist/src/{ui/components/SessionRetentionWarningDialog.test.d.ts → utils/agentSettings.test.d.ts} +0 -2
- package/dist/src/utils/agentSettings.test.js +111 -0
- package/dist/src/utils/agentSettings.test.js.map +1 -0
- package/dist/src/utils/dialogScopeUtils.d.ts +6 -2
- package/dist/src/utils/dialogScopeUtils.js +3 -3
- package/dist/src/utils/dialogScopeUtils.js.map +1 -1
- package/dist/src/utils/dialogScopeUtils.test.js +5 -5
- package/dist/src/utils/dialogScopeUtils.test.js.map +1 -1
- package/dist/src/utils/featureToggleUtils.d.ts +55 -0
- package/dist/src/utils/featureToggleUtils.js +95 -0
- package/dist/src/utils/featureToggleUtils.js.map +1 -0
- package/dist/src/utils/featureToggleUtils.test.d.ts +6 -0
- package/dist/src/utils/featureToggleUtils.test.js +126 -0
- package/dist/src/utils/featureToggleUtils.test.js.map +1 -0
- package/dist/src/utils/handleAutoUpdate.d.ts +7 -0
- package/dist/src/utils/handleAutoUpdate.js +41 -0
- package/dist/src/utils/handleAutoUpdate.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.test.js +52 -1
- package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
- package/dist/src/utils/processUtils.js +2 -0
- package/dist/src/utils/processUtils.js.map +1 -1
- package/dist/src/utils/processUtils.test.js +7 -1
- package/dist/src/utils/processUtils.test.js.map +1 -1
- package/dist/src/utils/sessionCleanup.js +8 -0
- package/dist/src/utils/sessionCleanup.js.map +1 -1
- package/dist/src/utils/sessionCleanup.test.js +19 -0
- package/dist/src/utils/sessionCleanup.test.js.map +1 -1
- package/dist/src/utils/settingsUtils.d.ts +18 -91
- package/dist/src/utils/settingsUtils.js +127 -207
- package/dist/src/utils/settingsUtils.js.map +1 -1
- package/dist/src/utils/settingsUtils.test.js +78 -264
- package/dist/src/utils/settingsUtils.test.js.map +1 -1
- package/dist/src/utils/skillSettings.d.ts +4 -14
- package/dist/src/utils/skillSettings.js +32 -81
- package/dist/src/utils/skillSettings.js.map +1 -1
- package/dist/src/utils/skillSettings.test.d.ts +6 -0
- package/dist/src/utils/skillSettings.test.js +142 -0
- package/dist/src/utils/skillSettings.test.js.map +1 -0
- package/dist/src/zed-integration/acpResume.test.js +8 -0
- package/dist/src/zed-integration/acpResume.test.js.map +1 -1
- package/dist/src/zed-integration/commandHandler.d.ts +26 -0
- package/dist/src/zed-integration/commandHandler.js +102 -0
- package/dist/src/zed-integration/commandHandler.js.map +1 -0
- package/dist/src/zed-integration/commandHandler.test.d.ts +6 -0
- package/dist/src/zed-integration/commandHandler.test.js +25 -0
- package/dist/src/zed-integration/commandHandler.test.js.map +1 -0
- package/dist/src/zed-integration/commands/commandRegistry.d.ts +12 -0
- package/dist/src/zed-integration/commands/commandRegistry.js +26 -0
- package/dist/src/zed-integration/commands/commandRegistry.js.map +1 -0
- package/dist/src/zed-integration/commands/extensions.d.ts +57 -0
- package/dist/src/zed-integration/commands/extensions.js +320 -0
- package/dist/src/zed-integration/commands/extensions.js.map +1 -0
- package/dist/src/zed-integration/commands/init.d.ts +12 -0
- package/dist/src/zed-integration/commands/init.js +47 -0
- package/dist/src/zed-integration/commands/init.js.map +1 -0
- package/dist/src/zed-integration/commands/memory.d.ts +34 -0
- package/dist/src/zed-integration/commands/memory.js +83 -0
- package/dist/src/zed-integration/commands/memory.js.map +1 -0
- package/dist/src/zed-integration/commands/restore.d.ts +18 -0
- package/dist/src/zed-integration/commands/restore.js +140 -0
- package/dist/src/zed-integration/commands/restore.js.map +1 -0
- package/dist/src/zed-integration/commands/types.d.ts +31 -0
- package/dist/src/zed-integration/commands/types.js +7 -0
- package/dist/src/zed-integration/commands/types.js.map +1 -0
- package/dist/src/zed-integration/zedIntegration.d.ts +9 -2
- package/dist/src/zed-integration/zedIntegration.js +170 -8
- package/dist/src/zed-integration/zedIntegration.js.map +1 -1
- package/dist/src/zed-integration/zedIntegration.test.js +329 -2
- package/dist/src/zed-integration/zedIntegration.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/dist/src/ui/components/SessionRetentionWarningDialog.d.ts +0 -12
- package/dist/src/ui/components/SessionRetentionWarningDialog.js +0 -27
- package/dist/src/ui/components/SessionRetentionWarningDialog.js.map +0 -1
- package/dist/src/ui/components/SessionRetentionWarningDialog.test.js +0 -72
- package/dist/src/ui/components/SessionRetentionWarningDialog.test.js.map +0 -1
- package/dist/src/ui/components/views/HooksList.d.ts +0 -24
- package/dist/src/ui/components/views/HooksList.js +0 -28
- package/dist/src/ui/components/views/HooksList.js.map +0 -1
- package/dist/src/ui/hooks/useSessionRetentionCheck.d.ts +0 -12
- package/dist/src/ui/hooks/useSessionRetentionCheck.js +0 -57
- package/dist/src/ui/hooks/useSessionRetentionCheck.js.map +0 -1
- package/dist/src/ui/hooks/useSessionRetentionCheck.test.js +0 -169
- package/dist/src/ui/hooks/useSessionRetentionCheck.test.js.map +0 -1
- /package/dist/src/ui/{hooks/useSessionRetentionCheck.test.d.ts → components/HooksDialog.test.d.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@google/gemini-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.33.0-preview.0",
|
|
4
4
|
"description": "Gemini CLI",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
"dist"
|
|
27
27
|
],
|
|
28
28
|
"config": {
|
|
29
|
-
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.
|
|
29
|
+
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.33.0-preview.0"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@agentclientprotocol/sdk": "^0.12.0",
|
|
33
|
-
"@google/gemini-cli-core": "0.
|
|
33
|
+
"@google/gemini-cli-core": "0.33.0-preview.0",
|
|
34
34
|
"@google/genai": "1.41.0",
|
|
35
35
|
"@iarna/toml": "^2.2.5",
|
|
36
36
|
"@modelcontextprotocol/sdk": "^1.23.0",
|
|
@@ -38,7 +38,7 @@
|
|
|
38
38
|
"ansi-regex": "^6.2.2",
|
|
39
39
|
"chalk": "^4.1.2",
|
|
40
40
|
"cli-spinners": "^2.9.2",
|
|
41
|
-
"clipboardy": "
|
|
41
|
+
"clipboardy": "~5.2.0",
|
|
42
42
|
"color-convert": "^2.0.1",
|
|
43
43
|
"command-exists": "^1.2.9",
|
|
44
44
|
"comment-json": "^4.2.5",
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2026 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
interface SessionRetentionWarningDialogProps {
|
|
7
|
-
onKeep120Days: () => void;
|
|
8
|
-
onKeep30Days: () => void;
|
|
9
|
-
sessionsToDeleteCount: number;
|
|
10
|
-
}
|
|
11
|
-
export declare const SessionRetentionWarningDialog: ({ onKeep120Days, onKeep30Days, sessionsToDeleteCount, }: SessionRetentionWarningDialogProps) => import("react/jsx-runtime").JSX.Element;
|
|
12
|
-
export {};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
/**
|
|
3
|
-
* @license
|
|
4
|
-
* Copyright 2026 Google LLC
|
|
5
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
6
|
-
*/
|
|
7
|
-
import { Box, Text } from 'ink';
|
|
8
|
-
import { theme } from '../semantic-colors.js';
|
|
9
|
-
import { RadioButtonSelect, } from './shared/RadioButtonSelect.js';
|
|
10
|
-
export const SessionRetentionWarningDialog = ({ onKeep120Days, onKeep30Days, sessionsToDeleteCount, }) => {
|
|
11
|
-
const options = [
|
|
12
|
-
{
|
|
13
|
-
label: 'Keep for 30 days (Recommended)',
|
|
14
|
-
value: onKeep30Days,
|
|
15
|
-
key: '30days',
|
|
16
|
-
sublabel: `${sessionsToDeleteCount} session${sessionsToDeleteCount === 1 ? '' : 's'} will be deleted`,
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
label: 'Keep for 120 days',
|
|
20
|
-
value: onKeep120Days,
|
|
21
|
-
key: '120days',
|
|
22
|
-
sublabel: 'No sessions will be deleted at this time',
|
|
23
|
-
},
|
|
24
|
-
];
|
|
25
|
-
return (_jsxs(Box, { borderStyle: "round", borderColor: theme.border.default, flexDirection: "column", width: "100%", padding: 1, children: [_jsx(Box, { marginBottom: 1, justifyContent: "center", width: "100%", children: _jsx(Text, { bold: true, children: "Keep chat history" }) }), _jsx(Box, { flexDirection: "column", gap: 1, marginBottom: 1, children: _jsx(Text, { children: "To keep your workspace clean, we are introducing a limit on how long chat sessions are stored. Please choose a retention period for your existing chats:" }) }), _jsx(Box, { marginTop: 1, children: _jsx(RadioButtonSelect, { items: options, onSelect: (action) => action(), initialIndex: 1 }) }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { color: theme.text.secondary, children: ["Set a custom limit ", _jsx(Text, { color: theme.text.primary, children: "/settings" }), ' ', "and change \"Keep chat history\"."] }) })] }));
|
|
26
|
-
};
|
|
27
|
-
//# sourceMappingURL=SessionRetentionWarningDialog.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SessionRetentionWarningDialog.js","sourceRoot":"","sources":["../../../../src/ui/components/SessionRetentionWarningDialog.tsx"],"names":[],"mappings":";AAAA;;;;GAIG;AAEH,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EACL,iBAAiB,GAElB,MAAM,+BAA+B,CAAC;AAQvC,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAC5C,aAAa,EACb,YAAY,EACZ,qBAAqB,GACc,EAAE,EAAE;IACvC,MAAM,OAAO,GAAuC;QAClD;YACE,KAAK,EAAE,gCAAgC;YACvC,KAAK,EAAE,YAAY;YACnB,GAAG,EAAE,QAAQ;YACb,QAAQ,EAAE,GAAG,qBAAqB,WAChC,qBAAqB,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GACrC,kBAAkB;SACnB;QACD;YACE,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,aAAa;YACpB,GAAG,EAAE,SAAS;YACd,QAAQ,EAAE,0CAA0C;SACrD;KACF,CAAC;IAEF,OAAO,CACL,MAAC,GAAG,IACF,WAAW,EAAC,OAAO,EACnB,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,EACjC,aAAa,EAAC,QAAQ,EACtB,KAAK,EAAC,MAAM,EACZ,OAAO,EAAE,CAAC,aAEV,KAAC,GAAG,IAAC,YAAY,EAAE,CAAC,EAAE,cAAc,EAAC,QAAQ,EAAC,KAAK,EAAC,MAAM,YACxD,KAAC,IAAI,IAAC,IAAI,wCAAyB,GAC/B,EAEN,KAAC,GAAG,IAAC,aAAa,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,YACjD,KAAC,IAAI,2KAIE,GACH,EAEN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,KAAC,iBAAiB,IAChB,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAAE,EAC9B,YAAY,EAAE,CAAC,GACf,GACE,EAEN,KAAC,GAAG,IAAC,SAAS,EAAE,CAAC,YACf,MAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,oCACZ,KAAC,IAAI,IAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,0BAAkB,EAAC,GAAG,yCAEnE,GACH,IACF,CACP,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,72 +0,0 @@
|
|
|
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
|
-
* @license
|
|
8
|
-
*/
|
|
9
|
-
import { describe, it, expect, vi, afterEach } from 'vitest';
|
|
10
|
-
import { renderWithProviders } from '../../test-utils/render.js';
|
|
11
|
-
import { SessionRetentionWarningDialog } from './SessionRetentionWarningDialog.js';
|
|
12
|
-
import { waitFor } from '../../test-utils/async.js';
|
|
13
|
-
import { act } from 'react';
|
|
14
|
-
// Helper to write to stdin
|
|
15
|
-
const writeKey = (stdin, key) => {
|
|
16
|
-
act(() => {
|
|
17
|
-
stdin.write(key);
|
|
18
|
-
});
|
|
19
|
-
};
|
|
20
|
-
describe('SessionRetentionWarningDialog', () => {
|
|
21
|
-
afterEach(() => {
|
|
22
|
-
vi.restoreAllMocks();
|
|
23
|
-
});
|
|
24
|
-
it('renders correctly with warning message and session count', async () => {
|
|
25
|
-
const { lastFrame, waitUntilReady } = renderWithProviders(_jsx(SessionRetentionWarningDialog, { onKeep120Days: vi.fn(), onKeep30Days: vi.fn(), sessionsToDeleteCount: 42 }));
|
|
26
|
-
await waitUntilReady();
|
|
27
|
-
expect(lastFrame()).toContain('Keep chat history');
|
|
28
|
-
expect(lastFrame()).toContain('introducing a limit on how long chat sessions are stored');
|
|
29
|
-
expect(lastFrame()).toContain('Keep for 30 days (Recommended)');
|
|
30
|
-
expect(lastFrame()).toContain('42 sessions will be deleted');
|
|
31
|
-
expect(lastFrame()).toContain('Keep for 120 days');
|
|
32
|
-
expect(lastFrame()).toContain('No sessions will be deleted at this time');
|
|
33
|
-
});
|
|
34
|
-
it('handles pluralization correctly for 1 session', async () => {
|
|
35
|
-
const { lastFrame, waitUntilReady } = renderWithProviders(_jsx(SessionRetentionWarningDialog, { onKeep120Days: vi.fn(), onKeep30Days: vi.fn(), sessionsToDeleteCount: 1 }));
|
|
36
|
-
await waitUntilReady();
|
|
37
|
-
expect(lastFrame()).toContain('1 session will be deleted');
|
|
38
|
-
});
|
|
39
|
-
it('defaults to "Keep for 120 days" when there are sessions to delete', async () => {
|
|
40
|
-
const onKeep120Days = vi.fn();
|
|
41
|
-
const onKeep30Days = vi.fn();
|
|
42
|
-
const { stdin, waitUntilReady } = renderWithProviders(_jsx(SessionRetentionWarningDialog, { onKeep120Days: onKeep120Days, onKeep30Days: onKeep30Days, sessionsToDeleteCount: 10 }));
|
|
43
|
-
await waitUntilReady();
|
|
44
|
-
// Initial selection should be "Keep for 120 days" (index 1) because count > 0
|
|
45
|
-
// Pressing Enter immediately should select it.
|
|
46
|
-
writeKey(stdin, '\r');
|
|
47
|
-
await waitFor(() => {
|
|
48
|
-
expect(onKeep120Days).toHaveBeenCalled();
|
|
49
|
-
expect(onKeep30Days).not.toHaveBeenCalled();
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
it('calls onKeep30Days when "Keep for 30 days" is explicitly selected (from 120 days default)', async () => {
|
|
53
|
-
const onKeep120Days = vi.fn();
|
|
54
|
-
const onKeep30Days = vi.fn();
|
|
55
|
-
const { stdin, waitUntilReady } = renderWithProviders(_jsx(SessionRetentionWarningDialog, { onKeep120Days: onKeep120Days, onKeep30Days: onKeep30Days, sessionsToDeleteCount: 10 }));
|
|
56
|
-
await waitUntilReady();
|
|
57
|
-
// Default is index 1 (120 days). Move UP to index 0 (30 days).
|
|
58
|
-
writeKey(stdin, '\x1b[A'); // Up arrow
|
|
59
|
-
writeKey(stdin, '\r');
|
|
60
|
-
await waitFor(() => {
|
|
61
|
-
expect(onKeep30Days).toHaveBeenCalled();
|
|
62
|
-
expect(onKeep120Days).not.toHaveBeenCalled();
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
it('should match snapshot', async () => {
|
|
66
|
-
const { lastFrame, waitUntilReady } = renderWithProviders(_jsx(SessionRetentionWarningDialog, { onKeep120Days: vi.fn(), onKeep30Days: vi.fn(), sessionsToDeleteCount: 123 }));
|
|
67
|
-
await waitUntilReady();
|
|
68
|
-
// Initial render
|
|
69
|
-
expect(lastFrame()).toMatchSnapshot();
|
|
70
|
-
});
|
|
71
|
-
});
|
|
72
|
-
//# sourceMappingURL=SessionRetentionWarningDialog.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SessionRetentionWarningDialog.test.js","sourceRoot":"","sources":["../../../../src/ui/components/SessionRetentionWarningDialog.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2025 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import type React from 'react';
|
|
7
|
-
interface HooksListProps {
|
|
8
|
-
hooks: ReadonlyArray<{
|
|
9
|
-
config: {
|
|
10
|
-
command?: string;
|
|
11
|
-
type: string;
|
|
12
|
-
name?: string;
|
|
13
|
-
description?: string;
|
|
14
|
-
timeout?: number;
|
|
15
|
-
};
|
|
16
|
-
source: string;
|
|
17
|
-
eventName: string;
|
|
18
|
-
matcher?: string;
|
|
19
|
-
sequential?: boolean;
|
|
20
|
-
enabled: boolean;
|
|
21
|
-
}>;
|
|
22
|
-
}
|
|
23
|
-
export declare const HooksList: React.FC<HooksListProps>;
|
|
24
|
-
export {};
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { Box, Text } from 'ink';
|
|
3
|
-
import { theme } from '../../semantic-colors.js';
|
|
4
|
-
export const HooksList = ({ hooks }) => {
|
|
5
|
-
if (hooks.length === 0) {
|
|
6
|
-
return (_jsx(Box, { flexDirection: "column", marginBottom: 1, children: _jsx(Text, { children: "No hooks configured." }) }));
|
|
7
|
-
}
|
|
8
|
-
// Group hooks by event name for better organization
|
|
9
|
-
const hooksByEvent = hooks.reduce((acc, hook) => {
|
|
10
|
-
if (!acc[hook.eventName]) {
|
|
11
|
-
acc[hook.eventName] = [];
|
|
12
|
-
}
|
|
13
|
-
acc[hook.eventName].push(hook);
|
|
14
|
-
return acc;
|
|
15
|
-
}, {});
|
|
16
|
-
return (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Box, { flexDirection: "column", children: [_jsx(Text, { color: theme.status.warning, bold: true, underline: true, children: "\u26A0\uFE0F Security Warning:" }), _jsx(Text, { color: theme.status.warning, children: "Hooks can execute arbitrary commands on your system. Only use hooks from sources you trust. Review hook scripts carefully." })] }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { children: ["Learn more:", ' ', _jsx(Text, { color: theme.text.link, children: "https://geminicli.com/docs/hooks" })] }) }), _jsx(Box, { marginTop: 1, children: _jsx(Text, { bold: true, children: "Configured Hooks:" }) }), _jsx(Box, { flexDirection: "column", paddingLeft: 2, marginTop: 1, children: Object.entries(hooksByEvent).map(([eventName, eventHooks]) => (_jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [_jsxs(Text, { color: theme.text.accent, bold: true, children: [eventName, ":"] }), _jsx(Box, { flexDirection: "column", paddingLeft: 2, children: eventHooks.map((hook, index) => {
|
|
17
|
-
const hookName = hook.config.name || hook.config.command || 'unknown';
|
|
18
|
-
const statusColor = hook.enabled
|
|
19
|
-
? theme.status.success
|
|
20
|
-
: theme.text.secondary;
|
|
21
|
-
const statusText = hook.enabled ? 'enabled' : 'disabled';
|
|
22
|
-
return (_jsxs(Box, { flexDirection: "column", children: [_jsx(Box, { children: _jsxs(Text, { children: [_jsx(Text, { color: theme.text.accent, children: hookName }), _jsx(Text, { color: statusColor, children: ` [${statusText}]` })] }) }), _jsxs(Box, { paddingLeft: 2, flexDirection: "column", children: [hook.config.description && (_jsx(Text, { italic: true, children: hook.config.description })), _jsxs(Text, { dimColor: true, children: ["Source: ", hook.source, hook.config.name &&
|
|
23
|
-
hook.config.command &&
|
|
24
|
-
` | Command: ${hook.config.command}`, hook.matcher && ` | Matcher: ${hook.matcher}`, hook.sequential && ` | Sequential`, hook.config.timeout &&
|
|
25
|
-
` | Timeout: ${hook.config.timeout}s`] })] })] }, `${eventName}-${index}`));
|
|
26
|
-
}) })] }, eventName))) }), _jsx(Box, { marginTop: 1, children: _jsxs(Text, { dimColor: true, children: ["Tip: Use ", _jsxs(Text, { bold: true, children: ["/hooks enable ", '<hook-name>'] }), " or", ' ', _jsxs(Text, { bold: true, children: ["/hooks disable ", '<hook-name>'] }), " to toggle individual hooks. Use ", _jsx(Text, { bold: true, children: "/hooks enable-all" }), " or", ' ', _jsx(Text, { bold: true, children: "/hooks disable-all" }), " to toggle all hooks at once."] }) })] }));
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=HooksList.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HooksList.js","sourceRoot":"","sources":["../../../../../src/ui/components/views/HooksList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2026 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { type Config } from '@google/gemini-cli-core';
|
|
7
|
-
import { type Settings } from '../../config/settings.js';
|
|
8
|
-
export declare function useSessionRetentionCheck(config: Config, settings: Settings, onAutoEnable?: () => void): {
|
|
9
|
-
shouldShowWarning: boolean;
|
|
10
|
-
checkComplete: boolean;
|
|
11
|
-
sessionsToDeleteCount: number;
|
|
12
|
-
};
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2026 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { useState, useEffect } from 'react';
|
|
7
|
-
import {} from '@google/gemini-cli-core';
|
|
8
|
-
import {} from '../../config/settings.js';
|
|
9
|
-
import { getAllSessionFiles } from '../../utils/sessionUtils.js';
|
|
10
|
-
import { identifySessionsToDelete } from '../../utils/sessionCleanup.js';
|
|
11
|
-
import path from 'node:path';
|
|
12
|
-
export function useSessionRetentionCheck(config, settings, onAutoEnable) {
|
|
13
|
-
const [shouldShowWarning, setShouldShowWarning] = useState(false);
|
|
14
|
-
const [sessionsToDeleteCount, setSessionsToDeleteCount] = useState(0);
|
|
15
|
-
const [checkComplete, setCheckComplete] = useState(false);
|
|
16
|
-
useEffect(() => {
|
|
17
|
-
// If warning already acknowledged or retention already enabled, skip check
|
|
18
|
-
if (settings.general?.sessionRetention?.warningAcknowledged ||
|
|
19
|
-
(settings.general?.sessionRetention?.enabled &&
|
|
20
|
-
settings.general?.sessionRetention?.maxAge !== undefined)) {
|
|
21
|
-
setShouldShowWarning(false);
|
|
22
|
-
setCheckComplete(true);
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
const checkSessions = async () => {
|
|
26
|
-
try {
|
|
27
|
-
const chatsDir = path.join(config.storage.getProjectTempDir(), 'chats');
|
|
28
|
-
const allFiles = await getAllSessionFiles(chatsDir, config.getSessionId());
|
|
29
|
-
// Calculate how many sessions would be deleted if we applied a 30-day retention
|
|
30
|
-
const sessionsToDelete = await identifySessionsToDelete(allFiles, {
|
|
31
|
-
enabled: true,
|
|
32
|
-
maxAge: '30d',
|
|
33
|
-
});
|
|
34
|
-
if (sessionsToDelete.length > 0) {
|
|
35
|
-
setSessionsToDeleteCount(sessionsToDelete.length);
|
|
36
|
-
setShouldShowWarning(true);
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
setShouldShowWarning(false);
|
|
40
|
-
// If no sessions to delete, safe to auto-enable retention
|
|
41
|
-
onAutoEnable?.();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
catch {
|
|
45
|
-
// If we can't check sessions, default to not showing the warning to be safe
|
|
46
|
-
setShouldShowWarning(false);
|
|
47
|
-
}
|
|
48
|
-
finally {
|
|
49
|
-
setCheckComplete(true);
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
53
|
-
checkSessions();
|
|
54
|
-
}, [config, settings.general?.sessionRetention, onAutoEnable]);
|
|
55
|
-
return { shouldShowWarning, checkComplete, sessionsToDeleteCount };
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=useSessionRetentionCheck.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionRetentionCheck.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useSessionRetentionCheck.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAe,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAiB,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,UAAU,wBAAwB,CACtC,MAAc,EACd,QAAkB,EAClB,YAAyB;IAEzB,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE1D,SAAS,CAAC,GAAG,EAAE;QACb,2EAA2E;QAC3E,IACE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,mBAAmB;YACvD,CAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,OAAO;gBAC1C,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,MAAM,KAAK,SAAS,CAAC,EAC3D,CAAC;YACD,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC5B,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,OAAO;QACT,CAAC;QAED,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;YAC/B,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,OAAO,CAAC,CAAC;gBACxE,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CACvC,QAAQ,EACR,MAAM,CAAC,YAAY,EAAE,CACtB,CAAC;gBAEF,gFAAgF;gBAChF,MAAM,gBAAgB,GAAG,MAAM,wBAAwB,CAAC,QAAQ,EAAE;oBAChE,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;gBAEH,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAChC,wBAAwB,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC;oBAClD,oBAAoB,CAAC,IAAI,CAAC,CAAC;gBAC7B,CAAC;qBAAM,CAAC;oBACN,oBAAoB,CAAC,KAAK,CAAC,CAAC;oBAC5B,0DAA0D;oBAC1D,YAAY,EAAE,EAAE,CAAC;gBACnB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,4EAA4E;gBAC5E,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;oBAAS,CAAC;gBACT,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC,CAAC;QAEF,mEAAmE;QACnE,aAAa,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,EAAE,gBAAgB,EAAE,YAAY,CAAC,CAAC,CAAC;IAE/D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,qBAAqB,EAAE,CAAC;AACrE,CAAC"}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2026 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
7
|
-
import { renderHook } from '../../test-utils/render.js';
|
|
8
|
-
import { useSessionRetentionCheck } from './useSessionRetentionCheck.js';
|
|
9
|
-
import {} from '@google/gemini-cli-core';
|
|
10
|
-
import { waitFor } from '../../test-utils/async.js';
|
|
11
|
-
// Mock utils
|
|
12
|
-
const mockGetAllSessionFiles = vi.fn();
|
|
13
|
-
const mockIdentifySessionsToDelete = vi.fn();
|
|
14
|
-
vi.mock('../../utils/sessionUtils.js', () => ({
|
|
15
|
-
getAllSessionFiles: () => mockGetAllSessionFiles(),
|
|
16
|
-
}));
|
|
17
|
-
vi.mock('../../utils/sessionCleanup.js', () => ({
|
|
18
|
-
identifySessionsToDelete: () => mockIdentifySessionsToDelete(),
|
|
19
|
-
DEFAULT_MIN_RETENTION: '30d',
|
|
20
|
-
}));
|
|
21
|
-
describe('useSessionRetentionCheck', () => {
|
|
22
|
-
const mockConfig = {
|
|
23
|
-
storage: {
|
|
24
|
-
getProjectTempDir: () => '/mock/project/temp/dir',
|
|
25
|
-
},
|
|
26
|
-
getSessionId: () => 'mock-session-id',
|
|
27
|
-
};
|
|
28
|
-
beforeEach(() => {
|
|
29
|
-
vi.resetAllMocks();
|
|
30
|
-
});
|
|
31
|
-
afterEach(() => {
|
|
32
|
-
vi.restoreAllMocks();
|
|
33
|
-
});
|
|
34
|
-
it('should show warning if enabled is true but maxAge is undefined', async () => {
|
|
35
|
-
const settings = {
|
|
36
|
-
general: {
|
|
37
|
-
sessionRetention: {
|
|
38
|
-
enabled: true,
|
|
39
|
-
maxAge: undefined,
|
|
40
|
-
warningAcknowledged: false,
|
|
41
|
-
},
|
|
42
|
-
},
|
|
43
|
-
};
|
|
44
|
-
mockGetAllSessionFiles.mockResolvedValue(['session1.json']);
|
|
45
|
-
mockIdentifySessionsToDelete.mockResolvedValue(['session1.json']);
|
|
46
|
-
const { result } = renderHook(() => useSessionRetentionCheck(mockConfig, settings));
|
|
47
|
-
await waitFor(() => {
|
|
48
|
-
expect(result.current.checkComplete).toBe(true);
|
|
49
|
-
expect(result.current.shouldShowWarning).toBe(true);
|
|
50
|
-
expect(mockGetAllSessionFiles).toHaveBeenCalled();
|
|
51
|
-
expect(mockIdentifySessionsToDelete).toHaveBeenCalled();
|
|
52
|
-
});
|
|
53
|
-
});
|
|
54
|
-
it('should not show warning if warningAcknowledged is true', async () => {
|
|
55
|
-
const settings = {
|
|
56
|
-
general: {
|
|
57
|
-
sessionRetention: {
|
|
58
|
-
warningAcknowledged: true,
|
|
59
|
-
},
|
|
60
|
-
},
|
|
61
|
-
};
|
|
62
|
-
const { result } = renderHook(() => useSessionRetentionCheck(mockConfig, settings));
|
|
63
|
-
await waitFor(() => {
|
|
64
|
-
expect(result.current.checkComplete).toBe(true);
|
|
65
|
-
expect(result.current.shouldShowWarning).toBe(false);
|
|
66
|
-
expect(mockGetAllSessionFiles).not.toHaveBeenCalled();
|
|
67
|
-
expect(mockIdentifySessionsToDelete).not.toHaveBeenCalled();
|
|
68
|
-
});
|
|
69
|
-
});
|
|
70
|
-
it('should not show warning if retention is already enabled', async () => {
|
|
71
|
-
const settings = {
|
|
72
|
-
general: {
|
|
73
|
-
sessionRetention: {
|
|
74
|
-
enabled: true,
|
|
75
|
-
maxAge: '30d', // Explicitly enabled with non-default
|
|
76
|
-
},
|
|
77
|
-
},
|
|
78
|
-
};
|
|
79
|
-
const { result } = renderHook(() => useSessionRetentionCheck(mockConfig, settings));
|
|
80
|
-
await waitFor(() => {
|
|
81
|
-
expect(result.current.checkComplete).toBe(true);
|
|
82
|
-
expect(result.current.shouldShowWarning).toBe(false);
|
|
83
|
-
expect(mockGetAllSessionFiles).not.toHaveBeenCalled();
|
|
84
|
-
expect(mockIdentifySessionsToDelete).not.toHaveBeenCalled();
|
|
85
|
-
});
|
|
86
|
-
});
|
|
87
|
-
it('should show warning if sessions to delete exist', async () => {
|
|
88
|
-
const settings = {
|
|
89
|
-
general: {
|
|
90
|
-
sessionRetention: {
|
|
91
|
-
enabled: false,
|
|
92
|
-
warningAcknowledged: false,
|
|
93
|
-
},
|
|
94
|
-
},
|
|
95
|
-
};
|
|
96
|
-
mockGetAllSessionFiles.mockResolvedValue([
|
|
97
|
-
'session1.json',
|
|
98
|
-
'session2.json',
|
|
99
|
-
]);
|
|
100
|
-
mockIdentifySessionsToDelete.mockResolvedValue(['session1.json']); // 1 session to delete
|
|
101
|
-
const { result } = renderHook(() => useSessionRetentionCheck(mockConfig, settings));
|
|
102
|
-
await waitFor(() => {
|
|
103
|
-
expect(result.current.checkComplete).toBe(true);
|
|
104
|
-
expect(result.current.shouldShowWarning).toBe(true);
|
|
105
|
-
expect(result.current.sessionsToDeleteCount).toBe(1);
|
|
106
|
-
expect(mockGetAllSessionFiles).toHaveBeenCalled();
|
|
107
|
-
expect(mockIdentifySessionsToDelete).toHaveBeenCalled();
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
it('should call onAutoEnable if no sessions to delete and currently disabled', async () => {
|
|
111
|
-
const settings = {
|
|
112
|
-
general: {
|
|
113
|
-
sessionRetention: {
|
|
114
|
-
enabled: false,
|
|
115
|
-
warningAcknowledged: false,
|
|
116
|
-
},
|
|
117
|
-
},
|
|
118
|
-
};
|
|
119
|
-
mockGetAllSessionFiles.mockResolvedValue(['session1.json']);
|
|
120
|
-
mockIdentifySessionsToDelete.mockResolvedValue([]); // 0 sessions to delete
|
|
121
|
-
const onAutoEnable = vi.fn();
|
|
122
|
-
const { result } = renderHook(() => useSessionRetentionCheck(mockConfig, settings, onAutoEnable));
|
|
123
|
-
await waitFor(() => {
|
|
124
|
-
expect(result.current.checkComplete).toBe(true);
|
|
125
|
-
expect(result.current.shouldShowWarning).toBe(false);
|
|
126
|
-
expect(onAutoEnable).toHaveBeenCalled();
|
|
127
|
-
});
|
|
128
|
-
});
|
|
129
|
-
it('should not show warning if no sessions to delete', async () => {
|
|
130
|
-
const settings = {
|
|
131
|
-
general: {
|
|
132
|
-
sessionRetention: {
|
|
133
|
-
enabled: false,
|
|
134
|
-
warningAcknowledged: false,
|
|
135
|
-
},
|
|
136
|
-
},
|
|
137
|
-
};
|
|
138
|
-
mockGetAllSessionFiles.mockResolvedValue([
|
|
139
|
-
'session1.json',
|
|
140
|
-
'session2.json',
|
|
141
|
-
]);
|
|
142
|
-
mockIdentifySessionsToDelete.mockResolvedValue([]); // 0 sessions to delete
|
|
143
|
-
const { result } = renderHook(() => useSessionRetentionCheck(mockConfig, settings));
|
|
144
|
-
await waitFor(() => {
|
|
145
|
-
expect(result.current.checkComplete).toBe(true);
|
|
146
|
-
expect(result.current.shouldShowWarning).toBe(false);
|
|
147
|
-
expect(result.current.sessionsToDeleteCount).toBe(0);
|
|
148
|
-
expect(mockGetAllSessionFiles).toHaveBeenCalled();
|
|
149
|
-
expect(mockIdentifySessionsToDelete).toHaveBeenCalled();
|
|
150
|
-
});
|
|
151
|
-
});
|
|
152
|
-
it('should handle errors gracefully (assume no warning)', async () => {
|
|
153
|
-
const settings = {
|
|
154
|
-
general: {
|
|
155
|
-
sessionRetention: {
|
|
156
|
-
enabled: false,
|
|
157
|
-
warningAcknowledged: false,
|
|
158
|
-
},
|
|
159
|
-
},
|
|
160
|
-
};
|
|
161
|
-
mockGetAllSessionFiles.mockRejectedValue(new Error('FS Error'));
|
|
162
|
-
const { result } = renderHook(() => useSessionRetentionCheck(mockConfig, settings));
|
|
163
|
-
await waitFor(() => {
|
|
164
|
-
expect(result.current.checkComplete).toBe(true);
|
|
165
|
-
expect(result.current.shouldShowWarning).toBe(false);
|
|
166
|
-
});
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
//# sourceMappingURL=useSessionRetentionCheck.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useSessionRetentionCheck.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/useSessionRetentionCheck.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,+BAA+B,CAAC;AACzE,OAAO,EAAe,MAAM,yBAAyB,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AAEpD,aAAa;AACb,MAAM,sBAAsB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AACvC,MAAM,4BAA4B,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAE7C,EAAE,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC5C,kBAAkB,EAAE,GAAG,EAAE,CAAC,sBAAsB,EAAE;CACnD,CAAC,CAAC,CAAC;AAEJ,EAAE,CAAC,IAAI,CAAC,+BAA+B,EAAE,GAAG,EAAE,CAAC,CAAC;IAC9C,wBAAwB,EAAE,GAAG,EAAE,CAAC,4BAA4B,EAAE;IAC9D,qBAAqB,EAAE,KAAK;CAC7B,CAAC,CAAC,CAAC;AAEJ,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,MAAM,UAAU,GAAG;QACjB,OAAO,EAAE;YACP,iBAAiB,EAAE,GAAG,EAAE,CAAC,wBAAwB;SAClD;QACD,YAAY,EAAE,GAAG,EAAE,CAAC,iBAAiB;KACjB,CAAC;IAEvB,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,eAAe,EAAE,CAAC;IACvB,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,KAAK,IAAI,EAAE;QAC9E,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE;gBACP,gBAAgB,EAAE;oBAChB,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,SAAS;oBACjB,mBAAmB,EAAE,KAAK;iBAC3B;aACF;SACqB,CAAC;QAEzB,sBAAsB,CAAC,iBAAiB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5D,4BAA4B,CAAC,iBAAiB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QAElE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAC/C,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,sBAAsB,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAClD,MAAM,CAAC,4BAA4B,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,KAAK,IAAI,EAAE;QACtE,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE;gBACP,gBAAgB,EAAE;oBAChB,mBAAmB,EAAE,IAAI;iBAC1B;aACF;SACqB,CAAC;QAEzB,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAC/C,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACtD,MAAM,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE;gBACP,gBAAgB,EAAE;oBAChB,OAAO,EAAE,IAAI;oBACb,MAAM,EAAE,KAAK,EAAE,sCAAsC;iBACtD;aACF;SACqB,CAAC;QAEzB,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAC/C,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,CAAC,sBAAsB,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACtD,MAAM,CAAC,4BAA4B,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QAC9D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE;gBACP,gBAAgB,EAAE;oBAChB,OAAO,EAAE,KAAK;oBACd,mBAAmB,EAAE,KAAK;iBAC3B;aACF;SACqB,CAAC;QAEzB,sBAAsB,CAAC,iBAAiB,CAAC;YACvC,eAAe;YACf,eAAe;SAChB,CAAC,CAAC;QACH,4BAA4B,CAAC,iBAAiB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,sBAAsB;QAEzF,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAC/C,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,sBAAsB,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAClD,MAAM,CAAC,4BAA4B,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACxF,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE;gBACP,gBAAgB,EAAE;oBAChB,OAAO,EAAE,KAAK;oBACd,mBAAmB,EAAE,KAAK;iBAC3B;aACF;SACqB,CAAC;QAEzB,sBAAsB,CAAC,iBAAiB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC;QAC5D,4BAA4B,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;QAE3E,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QAE7B,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,EAAE,YAAY,CAAC,CAC7D,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE;gBACP,gBAAgB,EAAE;oBAChB,OAAO,EAAE,KAAK;oBACd,mBAAmB,EAAE,KAAK;iBAC3B;aACF;SACqB,CAAC;QAEzB,sBAAsB,CAAC,iBAAiB,CAAC;YACvC,eAAe;YACf,eAAe;SAChB,CAAC,CAAC;QACH,4BAA4B,CAAC,iBAAiB,CAAC,EAAE,CAAC,CAAC,CAAC,uBAAuB;QAE3E,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAC/C,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACrD,MAAM,CAAC,sBAAsB,CAAC,CAAC,gBAAgB,EAAE,CAAC;YAClD,MAAM,CAAC,4BAA4B,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAC1D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qDAAqD,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,QAAQ,GAAG;YACf,OAAO,EAAE;gBACP,gBAAgB,EAAE;oBAChB,OAAO,EAAE,KAAK;oBACd,mBAAmB,EAAE,KAAK;iBAC3B;aACF;SACqB,CAAC;QAEzB,sBAAsB,CAAC,iBAAiB,CAAC,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;QAEhE,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,EAAE,CACjC,wBAAwB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAC/C,CAAC;QAEF,MAAM,OAAO,CAAC,GAAG,EAAE;YACjB,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
/package/dist/src/ui/{hooks/useSessionRetentionCheck.test.d.ts → components/HooksDialog.test.d.ts}
RENAMED
|
File without changes
|