@google/gemini-cli 0.21.0-nightly.20251218.739c02bd6 → 0.21.0-nightly.20251219.70696e364
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/google-gemini-cli-0.21.0-nightly.20251218.739c02bd6.tgz +0 -0
- package/dist/package.json +2 -2
- package/dist/src/config/extension-manager.d.ts +0 -1
- package/dist/src/config/extension-manager.js +1 -1
- package/dist/src/config/extension-manager.js.map +1 -1
- package/dist/src/config/settingsSchema.d.ts +1 -6
- package/dist/src/config/settingsSchema.js +9 -1
- package/dist/src/config/settingsSchema.js.map +1 -1
- package/dist/src/config/settingsSchema.test.js +12 -1
- package/dist/src/config/settingsSchema.test.js.map +1 -1
- package/dist/src/gemini.js +2 -13
- package/dist/src/gemini.js.map +1 -1
- package/dist/src/gemini.test.js +20 -8
- package/dist/src/gemini.test.js.map +1 -1
- package/dist/src/gemini_cleanup.test.js +1 -0
- package/dist/src/gemini_cleanup.test.js.map +1 -1
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/test-utils/render.js +1 -0
- package/dist/src/test-utils/render.js.map +1 -1
- package/dist/src/ui/AppContainer.js +4 -2
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/commands/bugCommand.js +9 -0
- package/dist/src/ui/commands/bugCommand.js.map +1 -1
- package/dist/src/ui/commands/bugCommand.test.js +13 -0
- package/dist/src/ui/commands/bugCommand.test.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.js +1 -1
- package/dist/src/ui/commands/hooksCommand.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.test.js +8 -0
- package/dist/src/ui/commands/hooksCommand.test.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.js +4 -1
- package/dist/src/ui/components/InputPrompt.js.map +1 -1
- package/dist/src/ui/components/InputPrompt.test.js +49 -0
- package/dist/src/ui/components/InputPrompt.test.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.js +68 -14
- package/dist/src/ui/components/ModelStatsDisplay.js.map +1 -1
- package/dist/src/ui/components/ModelStatsDisplay.test.js +53 -2
- package/dist/src/ui/components/ModelStatsDisplay.test.js.map +1 -1
- package/dist/src/ui/components/Table.d.ts +21 -0
- package/dist/src/ui/components/Table.js +7 -0
- package/dist/src/ui/components/Table.js.map +1 -0
- package/dist/src/ui/components/Table.test.js +53 -0
- package/dist/src/ui/components/Table.test.js.map +1 -0
- package/dist/src/ui/components/ThemeDialog.js +63 -17
- package/dist/src/ui/components/ThemeDialog.js.map +1 -1
- package/dist/src/ui/components/ThemeDialog.test.js +65 -0
- package/dist/src/ui/components/ThemeDialog.test.js.map +1 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.d.ts +4 -1
- package/dist/src/ui/components/shared/RadioButtonSelect.js +11 -10
- package/dist/src/ui/components/shared/RadioButtonSelect.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.js +0 -2
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/views/HooksList.d.ts +2 -0
- package/dist/src/ui/components/views/HooksList.js +5 -3
- package/dist/src/ui/components/views/HooksList.js.map +1 -1
- package/dist/src/ui/constants.d.ts +0 -3
- package/dist/src/ui/constants.js +0 -6
- package/dist/src/ui/constants.js.map +1 -1
- package/dist/src/ui/contexts/UIStateContext.d.ts +2 -0
- package/dist/src/ui/contexts/UIStateContext.js.map +1 -1
- package/dist/src/ui/hooks/useKittyKeyboardProtocol.js +2 -2
- package/dist/src/ui/hooks/useKittyKeyboardProtocol.js.map +1 -1
- package/dist/src/ui/hooks/usePromptCompletion.js +0 -2
- package/dist/src/ui/hooks/usePromptCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.js +24 -7
- package/dist/src/ui/hooks/useSlashCompletion.js.map +1 -1
- package/dist/src/ui/hooks/useSlashCompletion.test.js +80 -4
- package/dist/src/ui/hooks/useSlashCompletion.test.js.map +1 -1
- package/dist/src/ui/themes/color-utils.d.ts +1 -0
- package/dist/src/ui/themes/color-utils.js +13 -0
- package/dist/src/ui/themes/color-utils.js.map +1 -1
- package/dist/src/ui/themes/color-utils.test.js +20 -1
- package/dist/src/ui/themes/color-utils.test.js.map +1 -1
- package/dist/src/ui/themes/shades-of-purple.js +1 -1
- package/dist/src/ui/themes/shades-of-purple.js.map +1 -1
- package/dist/src/ui/themes/theme-manager.d.ts +5 -0
- package/dist/src/ui/themes/theme-manager.js +7 -0
- package/dist/src/ui/themes/theme-manager.js.map +1 -1
- package/dist/src/ui/themes/theme.d.ts +12 -0
- package/dist/src/ui/themes/theme.js +31 -1
- package/dist/src/ui/themes/theme.js.map +1 -1
- package/dist/src/ui/themes/theme.test.js +23 -0
- package/dist/src/ui/themes/theme.test.js.map +1 -1
- package/dist/src/ui/utils/terminalCapabilityManager.d.ts +38 -0
- package/dist/src/ui/utils/terminalCapabilityManager.js +190 -0
- package/dist/src/ui/utils/terminalCapabilityManager.js.map +1 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.d.ts +6 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.js +136 -0
- package/dist/src/ui/utils/terminalCapabilityManager.test.js.map +1 -0
- package/dist/src/ui/utils/terminalSetup.js +2 -2
- package/dist/src/ui/utils/terminalSetup.js.map +1 -1
- package/dist/src/ui/utils/terminalSetup.test.js +4 -2
- package/dist/src/ui/utils/terminalSetup.test.js.map +1 -1
- package/dist/src/utils/terminalTheme.d.ts +15 -0
- package/dist/src/utils/terminalTheme.js +50 -0
- package/dist/src/utils/terminalTheme.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/google-gemini-cli-0.21.0-nightly.20251216.bb0c0d8ee.tgz +0 -0
- package/dist/src/ui/utils/kittyProtocolDetector.d.ts +0 -17
- package/dist/src/ui/utils/kittyProtocolDetector.js +0 -111
- package/dist/src/ui/utils/kittyProtocolDetector.js.map +0 -1
- package/dist/src/ui/utils/kittyProtocolDetector.test.js +0 -113
- package/dist/src/ui/utils/kittyProtocolDetector.test.js.map +0 -1
- /package/dist/src/ui/{utils/kittyProtocolDetector.test.d.ts → components/Table.test.d.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@google/gemini-cli",
|
|
3
|
-
"version": "0.21.0-nightly.
|
|
3
|
+
"version": "0.21.0-nightly.20251219.70696e364",
|
|
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.21.0-nightly.
|
|
29
|
+
"sandboxImageUri": "us-docker.pkg.dev/gemini-code-dev/gemini-cli/sandbox:0.21.0-nightly.20251219.70696e364"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
32
|
"@agentclientprotocol/sdk": "^0.11.0",
|
|
33
|
-
"@google/gemini-cli-core": "0.21.0-nightly.
|
|
33
|
+
"@google/gemini-cli-core": "0.21.0-nightly.20251219.70696e364",
|
|
34
34
|
"@google/genai": "1.30.0",
|
|
35
35
|
"@iarna/toml": "^2.2.5",
|
|
36
36
|
"@modelcontextprotocol/sdk": "^1.23.0",
|
|
Binary file
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2025 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Detects Kitty keyboard protocol support.
|
|
8
|
-
* Definitive document about this protocol lives at https://sw.kovidgoyal.net/kitty/keyboard-protocol/
|
|
9
|
-
* This function should be called once at app startup.
|
|
10
|
-
*/
|
|
11
|
-
export declare function detectAndEnableKittyProtocol(): Promise<void>;
|
|
12
|
-
export declare function isKittyProtocolEnabled(): boolean;
|
|
13
|
-
/**
|
|
14
|
-
* This is exported so we can reenable this after exiting an editor which might
|
|
15
|
-
* change the mode.
|
|
16
|
-
*/
|
|
17
|
-
export declare function enableSupportedProtocol(): void;
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2025 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import * as fs from 'node:fs';
|
|
7
|
-
let detectionComplete = false;
|
|
8
|
-
let kittySupported = false;
|
|
9
|
-
let kittyEnabled = false;
|
|
10
|
-
/**
|
|
11
|
-
* Detects Kitty keyboard protocol support.
|
|
12
|
-
* Definitive document about this protocol lives at https://sw.kovidgoyal.net/kitty/keyboard-protocol/
|
|
13
|
-
* This function should be called once at app startup.
|
|
14
|
-
*/
|
|
15
|
-
export async function detectAndEnableKittyProtocol() {
|
|
16
|
-
if (detectionComplete) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
return new Promise((resolve) => {
|
|
20
|
-
if (!process.stdin.isTTY || !process.stdout.isTTY) {
|
|
21
|
-
detectionComplete = true;
|
|
22
|
-
resolve();
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
const originalRawMode = process.stdin.isRaw;
|
|
26
|
-
if (!originalRawMode) {
|
|
27
|
-
process.stdin.setRawMode(true);
|
|
28
|
-
}
|
|
29
|
-
let responseBuffer = '';
|
|
30
|
-
let progressiveEnhancementReceived = false;
|
|
31
|
-
let timeoutId;
|
|
32
|
-
const finish = () => {
|
|
33
|
-
if (timeoutId !== undefined) {
|
|
34
|
-
clearTimeout(timeoutId);
|
|
35
|
-
timeoutId = undefined;
|
|
36
|
-
}
|
|
37
|
-
process.stdin.removeListener('data', handleData);
|
|
38
|
-
if (!originalRawMode) {
|
|
39
|
-
process.stdin.setRawMode(false);
|
|
40
|
-
}
|
|
41
|
-
if (kittySupported) {
|
|
42
|
-
enableSupportedProtocol();
|
|
43
|
-
process.on('exit', disableAllProtocols);
|
|
44
|
-
process.on('SIGTERM', disableAllProtocols);
|
|
45
|
-
}
|
|
46
|
-
detectionComplete = true;
|
|
47
|
-
resolve();
|
|
48
|
-
};
|
|
49
|
-
const handleData = (data) => {
|
|
50
|
-
if (timeoutId === undefined) {
|
|
51
|
-
// Race condition. We have already timed out.
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
responseBuffer += data.toString();
|
|
55
|
-
// Check for progressive enhancement response (CSI ? <flags> u)
|
|
56
|
-
if (responseBuffer.includes('\x1b[?') && responseBuffer.includes('u')) {
|
|
57
|
-
progressiveEnhancementReceived = true;
|
|
58
|
-
// Give more time to get the full set of kitty responses if we have an
|
|
59
|
-
// indication the terminal probably supports kitty and we just need to
|
|
60
|
-
// wait a bit longer for a response.
|
|
61
|
-
clearTimeout(timeoutId);
|
|
62
|
-
timeoutId = setTimeout(finish, 1000);
|
|
63
|
-
}
|
|
64
|
-
// Check for device attributes response (CSI ? <attrs> c)
|
|
65
|
-
if (responseBuffer.includes('\x1b[?') && responseBuffer.includes('c')) {
|
|
66
|
-
if (progressiveEnhancementReceived) {
|
|
67
|
-
kittySupported = true;
|
|
68
|
-
}
|
|
69
|
-
finish();
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
process.stdin.on('data', handleData);
|
|
73
|
-
// Query progressive enhancement and device attributes
|
|
74
|
-
fs.writeSync(process.stdout.fd, '\x1b[?u\x1b[c');
|
|
75
|
-
// Timeout after 200ms
|
|
76
|
-
// When a iterm2 terminal does not have focus this can take over 90s on a
|
|
77
|
-
// fast macbook so we need a somewhat longer threshold than would be ideal.
|
|
78
|
-
timeoutId = setTimeout(finish, 200);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
import { enableKittyKeyboardProtocol, disableKittyKeyboardProtocol, } from '@google/gemini-cli-core';
|
|
82
|
-
export function isKittyProtocolEnabled() {
|
|
83
|
-
return kittyEnabled;
|
|
84
|
-
}
|
|
85
|
-
function disableAllProtocols() {
|
|
86
|
-
try {
|
|
87
|
-
if (kittyEnabled) {
|
|
88
|
-
disableKittyKeyboardProtocol();
|
|
89
|
-
kittyEnabled = false;
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
catch {
|
|
93
|
-
// Ignore
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* This is exported so we can reenable this after exiting an editor which might
|
|
98
|
-
* change the mode.
|
|
99
|
-
*/
|
|
100
|
-
export function enableSupportedProtocol() {
|
|
101
|
-
try {
|
|
102
|
-
if (kittySupported) {
|
|
103
|
-
enableKittyKeyboardProtocol();
|
|
104
|
-
kittyEnabled = true;
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
catch {
|
|
108
|
-
// Ignore
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
//# sourceMappingURL=kittyProtocolDetector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kittyProtocolDetector.js","sourceRoot":"","sources":["../../../../src/ui/utils/kittyProtocolDetector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,113 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2025 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
7
|
-
// Mock dependencies
|
|
8
|
-
const mocks = vi.hoisted(() => ({
|
|
9
|
-
writeSync: vi.fn(),
|
|
10
|
-
enableKittyKeyboardProtocol: vi.fn(),
|
|
11
|
-
disableKittyKeyboardProtocol: vi.fn(),
|
|
12
|
-
}));
|
|
13
|
-
vi.mock('node:fs', () => ({
|
|
14
|
-
writeSync: mocks.writeSync,
|
|
15
|
-
}));
|
|
16
|
-
vi.mock('@google/gemini-cli-core', () => ({
|
|
17
|
-
enableKittyKeyboardProtocol: mocks.enableKittyKeyboardProtocol,
|
|
18
|
-
disableKittyKeyboardProtocol: mocks.disableKittyKeyboardProtocol,
|
|
19
|
-
}));
|
|
20
|
-
describe('kittyProtocolDetector', () => {
|
|
21
|
-
let originalStdin;
|
|
22
|
-
let originalStdout;
|
|
23
|
-
let stdinListeners = {};
|
|
24
|
-
// Module functions
|
|
25
|
-
let detectAndEnableKittyProtocol;
|
|
26
|
-
let isKittyProtocolEnabled;
|
|
27
|
-
let enableSupportedProtocol;
|
|
28
|
-
beforeEach(async () => {
|
|
29
|
-
vi.resetModules();
|
|
30
|
-
vi.resetAllMocks();
|
|
31
|
-
vi.useFakeTimers();
|
|
32
|
-
const mod = await import('./kittyProtocolDetector.js');
|
|
33
|
-
detectAndEnableKittyProtocol = mod.detectAndEnableKittyProtocol;
|
|
34
|
-
isKittyProtocolEnabled = mod.isKittyProtocolEnabled;
|
|
35
|
-
enableSupportedProtocol = mod.enableSupportedProtocol;
|
|
36
|
-
// Mock process.stdin and stdout
|
|
37
|
-
originalStdin = process.stdin;
|
|
38
|
-
originalStdout = process.stdout;
|
|
39
|
-
stdinListeners = {};
|
|
40
|
-
Object.defineProperty(process, 'stdin', {
|
|
41
|
-
value: {
|
|
42
|
-
isTTY: true,
|
|
43
|
-
isRaw: false,
|
|
44
|
-
setRawMode: vi.fn(),
|
|
45
|
-
on: vi.fn((event, handler) => {
|
|
46
|
-
stdinListeners[event] = handler;
|
|
47
|
-
}),
|
|
48
|
-
removeListener: vi.fn(),
|
|
49
|
-
},
|
|
50
|
-
configurable: true,
|
|
51
|
-
});
|
|
52
|
-
Object.defineProperty(process, 'stdout', {
|
|
53
|
-
value: {
|
|
54
|
-
isTTY: true,
|
|
55
|
-
fd: 1,
|
|
56
|
-
},
|
|
57
|
-
configurable: true,
|
|
58
|
-
});
|
|
59
|
-
});
|
|
60
|
-
afterEach(() => {
|
|
61
|
-
Object.defineProperty(process, 'stdin', { value: originalStdin });
|
|
62
|
-
Object.defineProperty(process, 'stdout', { value: originalStdout });
|
|
63
|
-
vi.useRealTimers();
|
|
64
|
-
});
|
|
65
|
-
it('should resolve immediately if not TTY', async () => {
|
|
66
|
-
Object.defineProperty(process.stdin, 'isTTY', { value: false });
|
|
67
|
-
await detectAndEnableKittyProtocol();
|
|
68
|
-
expect(mocks.writeSync).not.toHaveBeenCalled();
|
|
69
|
-
});
|
|
70
|
-
it('should enable protocol if response indicates support', async () => {
|
|
71
|
-
const promise = detectAndEnableKittyProtocol();
|
|
72
|
-
// Simulate response
|
|
73
|
-
expect(stdinListeners['data']).toBeDefined();
|
|
74
|
-
// Send progressive enhancement response
|
|
75
|
-
stdinListeners['data'](Buffer.from('\x1b[?u'));
|
|
76
|
-
// Send device attributes response
|
|
77
|
-
stdinListeners['data'](Buffer.from('\x1b[?c'));
|
|
78
|
-
await promise;
|
|
79
|
-
expect(mocks.enableKittyKeyboardProtocol).toHaveBeenCalled();
|
|
80
|
-
expect(isKittyProtocolEnabled()).toBe(true);
|
|
81
|
-
});
|
|
82
|
-
it('should not enable protocol if timeout occurs', async () => {
|
|
83
|
-
const promise = detectAndEnableKittyProtocol();
|
|
84
|
-
// Fast forward time past timeout
|
|
85
|
-
vi.advanceTimersByTime(300);
|
|
86
|
-
await promise;
|
|
87
|
-
expect(mocks.enableKittyKeyboardProtocol).not.toHaveBeenCalled();
|
|
88
|
-
});
|
|
89
|
-
it('should wait longer if progressive enhancement received but not attributes', async () => {
|
|
90
|
-
const promise = detectAndEnableKittyProtocol();
|
|
91
|
-
// Send progressive enhancement response
|
|
92
|
-
stdinListeners['data'](Buffer.from('\x1b[?u'));
|
|
93
|
-
// Should not resolve yet
|
|
94
|
-
vi.advanceTimersByTime(300); // Original timeout passed
|
|
95
|
-
// Send device attributes response late
|
|
96
|
-
stdinListeners['data'](Buffer.from('\x1b[?c'));
|
|
97
|
-
await promise;
|
|
98
|
-
expect(mocks.enableKittyKeyboardProtocol).toHaveBeenCalled();
|
|
99
|
-
});
|
|
100
|
-
it('should handle re-enabling protocol', async () => {
|
|
101
|
-
// First, simulate successful detection to set kittySupported = true
|
|
102
|
-
const promise = detectAndEnableKittyProtocol();
|
|
103
|
-
stdinListeners['data'](Buffer.from('\x1b[?u'));
|
|
104
|
-
stdinListeners['data'](Buffer.from('\x1b[?c'));
|
|
105
|
-
await promise;
|
|
106
|
-
// Reset mocks to clear previous calls
|
|
107
|
-
mocks.enableKittyKeyboardProtocol.mockClear();
|
|
108
|
-
// Now test re-enabling
|
|
109
|
-
enableSupportedProtocol();
|
|
110
|
-
expect(mocks.enableKittyKeyboardProtocol).toHaveBeenCalled();
|
|
111
|
-
});
|
|
112
|
-
});
|
|
113
|
-
//# sourceMappingURL=kittyProtocolDetector.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"kittyProtocolDetector.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/kittyProtocolDetector.test.ts"],"names":[],"mappings":"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"}
|
|
File without changes
|