@google/gemini-cli 0.21.0-nightly.20251204.3da4fd5f7 → 0.21.0-nightly.20251206.3cf44acc0
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.20251204.3da4fd5f7.tgz +0 -0
- package/dist/package.json +2 -2
- package/dist/src/commands/extensions/settings.d.ts +7 -0
- package/dist/src/commands/extensions/settings.js +96 -0
- package/dist/src/commands/extensions/settings.js.map +1 -0
- package/dist/src/commands/extensions/utils.d.ts +13 -0
- package/dist/src/commands/extensions/utils.js +29 -0
- package/dist/src/commands/extensions/utils.js.map +1 -0
- package/dist/src/commands/extensions.js +2 -0
- package/dist/src/commands/extensions.js.map +1 -1
- package/dist/src/commands/mcp/add.js +1 -1
- package/dist/src/commands/mcp/add.js.map +1 -1
- package/dist/src/commands/mcp/add.test.js +20 -0
- package/dist/src/commands/mcp/add.test.js.map +1 -1
- package/dist/src/config/config.test.js +0 -32
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.d.ts +1 -0
- package/dist/src/config/extensions/extensionSettings.js +46 -5
- package/dist/src/config/extensions/extensionSettings.js.map +1 -1
- package/dist/src/config/extensions/extensionSettings.test.js +84 -1
- package/dist/src/config/extensions/extensionSettings.test.js.map +1 -1
- package/dist/src/config/extensions/github.d.ts +4 -1
- package/dist/src/config/extensions/github.js +23 -4
- package/dist/src/config/extensions/github.js.map +1 -1
- package/dist/src/config/extensions/github.test.js +175 -0
- package/dist/src/config/extensions/github.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.js +1 -1
- package/dist/src/nonInteractiveCli.js.map +1 -1
- package/dist/src/nonInteractiveCli.test.js +17 -3
- package/dist/src/nonInteractiveCli.test.js.map +1 -1
- package/dist/src/services/McpPromptLoader.js +1 -0
- package/dist/src/services/McpPromptLoader.js.map +1 -1
- package/dist/src/services/McpPromptLoader.test.js +40 -0
- package/dist/src/services/McpPromptLoader.test.js.map +1 -1
- package/dist/src/ui/AppContainer.js +2 -1
- package/dist/src/ui/AppContainer.js.map +1 -1
- package/dist/src/ui/commands/chatCommand.js +1 -1
- package/dist/src/ui/commands/chatCommand.js.map +1 -1
- package/dist/src/ui/commands/hooksCommand.js.map +1 -1
- package/dist/src/ui/commands/initCommand.test.js.map +1 -1
- package/dist/src/ui/commands/mcpCommand.js.map +1 -1
- package/dist/src/ui/commands/restoreCommand.d.ts +1 -1
- package/dist/src/ui/commands/restoreCommand.js +51 -20
- package/dist/src/ui/commands/restoreCommand.js.map +1 -1
- package/dist/src/ui/commands/restoreCommand.test.js +6 -6
- package/dist/src/ui/commands/restoreCommand.test.js.map +1 -1
- package/dist/src/ui/commands/setupGithubCommand.test.js.map +1 -1
- package/dist/src/ui/commands/terminalSetupCommand.js +1 -0
- package/dist/src/ui/commands/terminalSetupCommand.js.map +1 -1
- package/dist/src/ui/commands/types.d.ts +2 -37
- package/dist/src/ui/commands/types.js.map +1 -1
- package/dist/src/ui/components/AnsiOutput.js +1 -1
- package/dist/src/ui/components/AnsiOutput.js.map +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.js +3 -3
- package/dist/src/ui/components/DetailedMessagesDisplay.js.map +1 -1
- package/dist/src/ui/components/DetailedMessagesDisplay.test.js +2 -12
- package/dist/src/ui/components/DetailedMessagesDisplay.test.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.js +25 -35
- package/dist/src/ui/components/SettingsDialog.js.map +1 -1
- package/dist/src/ui/components/SettingsDialog.test.js +21 -82
- package/dist/src/ui/components/SettingsDialog.test.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.js +41 -36
- package/dist/src/ui/components/shared/text-buffer.js.map +1 -1
- package/dist/src/ui/components/shared/text-buffer.test.js +75 -0
- package/dist/src/ui/components/shared/text-buffer.test.js.map +1 -1
- package/dist/src/ui/hooks/useGeminiStream.js +3 -2
- package/dist/src/ui/hooks/useGeminiStream.js.map +1 -1
- package/dist/src/ui/hooks/usePrivacySettings.js +4 -16
- package/dist/src/ui/hooks/usePrivacySettings.js.map +1 -1
- package/dist/src/ui/hooks/usePrivacySettings.test.js +3 -9
- package/dist/src/ui/hooks/usePrivacySettings.test.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.js +108 -1
- package/dist/src/ui/utils/commandUtils.js.map +1 -1
- package/dist/src/ui/utils/commandUtils.test.js +163 -6
- package/dist/src/ui/utils/commandUtils.test.js.map +1 -1
- package/dist/src/utils/errors.js +4 -4
- package/dist/src/utils/errors.js.map +1 -1
- package/dist/src/utils/errors.test.js +11 -1
- package/dist/src/utils/errors.test.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.d.ts +1 -1
- package/dist/src/utils/handleAutoUpdate.js +7 -5
- package/dist/src/utils/handleAutoUpdate.js.map +1 -1
- package/dist/src/utils/handleAutoUpdate.test.js +4 -5
- package/dist/src/utils/handleAutoUpdate.test.js.map +1 -1
- package/dist/src/utils/installationInfo.js +1 -1
- package/dist/src/utils/installationInfo.js.map +1 -1
- package/dist/src/utils/installationInfo.test.js +1 -1
- package/dist/src/utils/installationInfo.test.js.map +1 -1
- package/dist/src/utils/sessionUtils.d.ts +2 -0
- package/dist/src/utils/sessionUtils.js +5 -1
- package/dist/src/utils/sessionUtils.js.map +1 -1
- package/dist/src/utils/sessions.js +3 -3
- package/dist/src/utils/sessions.js.map +1 -1
- package/dist/src/utils/sessions.test.js +25 -0
- package/dist/src/utils/sessions.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/google-gemini-cli-0.21.0-nightly.20251202.2d935b379.tgz +0 -0
|
@@ -50,9 +50,7 @@ describe('usePrivacySettings', () => {
|
|
|
50
50
|
// Mock paid tier response
|
|
51
51
|
vi.mocked(getCodeAssistServer).mockReturnValue({
|
|
52
52
|
projectId: 'test-project-id',
|
|
53
|
-
|
|
54
|
-
currentTier: { id: UserTierId.STANDARD },
|
|
55
|
-
}),
|
|
53
|
+
userTier: UserTierId.STANDARD,
|
|
56
54
|
});
|
|
57
55
|
const { result } = renderPrivacySettingsHook();
|
|
58
56
|
await waitFor(() => {
|
|
@@ -64,9 +62,7 @@ describe('usePrivacySettings', () => {
|
|
|
64
62
|
});
|
|
65
63
|
it('should throw error when CodeAssistServer has no projectId', async () => {
|
|
66
64
|
vi.mocked(getCodeAssistServer).mockReturnValue({
|
|
67
|
-
|
|
68
|
-
currentTier: { id: UserTierId.FREE },
|
|
69
|
-
}),
|
|
65
|
+
userTier: UserTierId.FREE,
|
|
70
66
|
});
|
|
71
67
|
const { result } = renderPrivacySettingsHook();
|
|
72
68
|
await waitFor(() => {
|
|
@@ -83,9 +79,7 @@ describe('usePrivacySettings', () => {
|
|
|
83
79
|
setCodeAssistGlobalUserSetting: vi.fn().mockResolvedValue({
|
|
84
80
|
freeTierDataCollectionOptin: false,
|
|
85
81
|
}),
|
|
86
|
-
|
|
87
|
-
currentTier: { id: UserTierId.FREE },
|
|
88
|
-
}),
|
|
82
|
+
userTier: UserTierId.FREE,
|
|
89
83
|
};
|
|
90
84
|
vi.mocked(getCodeAssistServer).mockReturnValue(mockCodeAssistServer);
|
|
91
85
|
const { result } = renderPrivacySettingsHook();
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"usePrivacySettings.test.js","sourceRoot":"","sources":["../../../../src/ui/hooks/usePrivacySettings.test.tsx"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { debugLogger } from '@google/gemini-cli-core';
|
|
7
7
|
import clipboardy from 'clipboardy';
|
|
8
|
+
import fs from 'node:fs';
|
|
8
9
|
/**
|
|
9
10
|
* Checks if a query string potentially represents an '@' command.
|
|
10
11
|
* It triggers if the query starts with '@' or contains '@' preceded by whitespace
|
|
@@ -37,8 +38,114 @@ export const isSlashCommand = (query) => {
|
|
|
37
38
|
}
|
|
38
39
|
return true;
|
|
39
40
|
};
|
|
40
|
-
|
|
41
|
+
const ESC = '\u001B';
|
|
42
|
+
const BEL = '\u0007';
|
|
43
|
+
const ST = '\u001B\\';
|
|
44
|
+
const MAX_OSC52_SEQUENCE_BYTES = 100_000;
|
|
45
|
+
const OSC52_HEADER = `${ESC}]52;c;`;
|
|
46
|
+
const OSC52_FOOTER = BEL;
|
|
47
|
+
const MAX_OSC52_BODY_B64_BYTES = MAX_OSC52_SEQUENCE_BYTES -
|
|
48
|
+
Buffer.byteLength(OSC52_HEADER) -
|
|
49
|
+
Buffer.byteLength(OSC52_FOOTER);
|
|
50
|
+
const MAX_OSC52_DATA_BYTES = Math.floor(MAX_OSC52_BODY_B64_BYTES / 4) * 3;
|
|
51
|
+
// Conservative chunk size for GNU screen DCS passthrough.
|
|
52
|
+
const SCREEN_DCS_CHUNK_SIZE = 240;
|
|
53
|
+
const pickTty = () => {
|
|
54
|
+
// Prefer the controlling TTY to avoid interleaving escape sequences with piped stdout.
|
|
55
|
+
try {
|
|
56
|
+
const devTty = fs.createWriteStream('/dev/tty');
|
|
57
|
+
return { stream: devTty, closeAfter: true };
|
|
58
|
+
}
|
|
59
|
+
catch {
|
|
60
|
+
// fall through
|
|
61
|
+
}
|
|
62
|
+
if (process.stderr?.isTTY)
|
|
63
|
+
return { stream: process.stderr, closeAfter: false };
|
|
64
|
+
if (process.stdout?.isTTY)
|
|
65
|
+
return { stream: process.stdout, closeAfter: false };
|
|
66
|
+
return null;
|
|
67
|
+
};
|
|
68
|
+
const inTmux = () => Boolean(process.env['TMUX'] || (process.env['TERM'] ?? '').startsWith('tmux'));
|
|
69
|
+
const inScreen = () => Boolean(process.env['STY'] || (process.env['TERM'] ?? '').startsWith('screen'));
|
|
70
|
+
const isSSH = () => Boolean(process.env['SSH_TTY'] ||
|
|
71
|
+
process.env['SSH_CONNECTION'] ||
|
|
72
|
+
process.env['SSH_CLIENT']);
|
|
73
|
+
const isWSL = () => Boolean(process.env['WSL_DISTRO_NAME'] ||
|
|
74
|
+
process.env['WSLENV'] ||
|
|
75
|
+
process.env['WSL_INTEROP']);
|
|
76
|
+
const isDumbTerm = () => (process.env['TERM'] ?? '') === 'dumb';
|
|
77
|
+
const shouldUseOsc52 = (tty) => Boolean(tty) &&
|
|
78
|
+
!isDumbTerm() &&
|
|
79
|
+
(isSSH() || inTmux() || inScreen() || isWSL());
|
|
80
|
+
const safeUtf8Truncate = (buf, maxBytes) => {
|
|
81
|
+
if (buf.length <= maxBytes)
|
|
82
|
+
return buf;
|
|
83
|
+
let end = maxBytes;
|
|
84
|
+
// Back up to the start of a UTF-8 code point if we cut through a continuation byte (10xxxxxx).
|
|
85
|
+
while (end > 0 && (buf[end - 1] & 0b1100_0000) === 0b1000_0000)
|
|
86
|
+
end--;
|
|
87
|
+
return buf.subarray(0, end);
|
|
88
|
+
};
|
|
89
|
+
const buildOsc52 = (text) => {
|
|
90
|
+
const raw = Buffer.from(text, 'utf8');
|
|
91
|
+
const safe = safeUtf8Truncate(raw, MAX_OSC52_DATA_BYTES);
|
|
92
|
+
const b64 = safe.toString('base64');
|
|
93
|
+
return `${OSC52_HEADER}${b64}${OSC52_FOOTER}`;
|
|
94
|
+
};
|
|
95
|
+
const wrapForTmux = (seq) => {
|
|
96
|
+
// Double ESC bytes in payload without a control-character regex.
|
|
97
|
+
const doubledEsc = seq.split(ESC).join(ESC + ESC);
|
|
98
|
+
return `${ESC}Ptmux;${doubledEsc}${ST}`;
|
|
99
|
+
};
|
|
100
|
+
const wrapForScreen = (seq) => {
|
|
101
|
+
let out = '';
|
|
102
|
+
for (let i = 0; i < seq.length; i += SCREEN_DCS_CHUNK_SIZE) {
|
|
103
|
+
out += `${ESC}P${seq.slice(i, i + SCREEN_DCS_CHUNK_SIZE)}${ST}`;
|
|
104
|
+
}
|
|
105
|
+
return out;
|
|
106
|
+
};
|
|
107
|
+
const writeAll = (stream, data) => new Promise((resolve, reject) => {
|
|
108
|
+
const onError = (err) => {
|
|
109
|
+
cleanup();
|
|
110
|
+
reject(err);
|
|
111
|
+
};
|
|
112
|
+
const onDrain = () => {
|
|
113
|
+
cleanup();
|
|
114
|
+
resolve();
|
|
115
|
+
};
|
|
116
|
+
const cleanup = () => {
|
|
117
|
+
stream.off('error', onError);
|
|
118
|
+
stream.off('drain', onDrain);
|
|
119
|
+
// Writable.write() handlers may not emit 'drain' if the first write succeeded.
|
|
120
|
+
};
|
|
121
|
+
stream.once('error', onError);
|
|
122
|
+
if (stream.write(data)) {
|
|
123
|
+
cleanup();
|
|
124
|
+
resolve();
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
stream.once('drain', onDrain);
|
|
128
|
+
}
|
|
129
|
+
});
|
|
130
|
+
// Copies a string snippet to the clipboard with robust OSC-52 support.
|
|
41
131
|
export const copyToClipboard = async (text) => {
|
|
132
|
+
if (!text)
|
|
133
|
+
return;
|
|
134
|
+
const tty = pickTty();
|
|
135
|
+
if (shouldUseOsc52(tty)) {
|
|
136
|
+
const osc = buildOsc52(text);
|
|
137
|
+
const payload = inTmux()
|
|
138
|
+
? wrapForTmux(osc)
|
|
139
|
+
: inScreen()
|
|
140
|
+
? wrapForScreen(osc)
|
|
141
|
+
: osc;
|
|
142
|
+
await writeAll(tty.stream, payload);
|
|
143
|
+
if (tty.closeAfter) {
|
|
144
|
+
tty.stream.end();
|
|
145
|
+
}
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
// Local / non-TTY fallback
|
|
42
149
|
await clipboardy.write(text);
|
|
43
150
|
};
|
|
44
151
|
export const getUrlOpenCommand = () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandUtils.js","sourceRoot":"","sources":["../../../../src/ui/utils/commandUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,UAAU,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"commandUtils.js","sourceRoot":"","sources":["../../../../src/ui/utils/commandUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,10 @@ import { vi, describe, it, expect, beforeEach } from 'vitest';
|
|
|
7
7
|
import { EventEmitter } from 'node:events';
|
|
8
8
|
import clipboardy from 'clipboardy';
|
|
9
9
|
import { isAtCommand, isSlashCommand, copyToClipboard, getUrlOpenCommand, } from './commandUtils.js';
|
|
10
|
+
// Constants used by OSC-52 tests
|
|
11
|
+
const ESC = '\u001B';
|
|
12
|
+
const BEL = '\u0007';
|
|
13
|
+
const ST = '\u001B\\';
|
|
10
14
|
// Mock clipboardy
|
|
11
15
|
vi.mock('clipboardy', () => ({
|
|
12
16
|
default: {
|
|
@@ -15,6 +19,13 @@ vi.mock('clipboardy', () => ({
|
|
|
15
19
|
}));
|
|
16
20
|
// Mock child_process
|
|
17
21
|
vi.mock('child_process');
|
|
22
|
+
// fs (for /dev/tty)
|
|
23
|
+
const mockFs = vi.hoisted(() => ({
|
|
24
|
+
createWriteStream: vi.fn(),
|
|
25
|
+
}));
|
|
26
|
+
vi.mock('node:fs', () => ({
|
|
27
|
+
default: mockFs,
|
|
28
|
+
}));
|
|
18
29
|
// Mock process.platform for platform-specific tests
|
|
19
30
|
const mockProcess = vi.hoisted(() => ({
|
|
20
31
|
platform: 'darwin',
|
|
@@ -25,6 +36,30 @@ vi.stubGlobal('process', Object.create(process, {
|
|
|
25
36
|
configurable: true, // Allows the property to be changed later if needed
|
|
26
37
|
},
|
|
27
38
|
}));
|
|
39
|
+
const makeWritable = (opts) => {
|
|
40
|
+
const { isTTY = false, writeReturn = true } = opts ?? {};
|
|
41
|
+
const stream = Object.assign(new EventEmitter(), {
|
|
42
|
+
write: vi.fn().mockReturnValue(writeReturn),
|
|
43
|
+
end: vi.fn(),
|
|
44
|
+
destroy: vi.fn(),
|
|
45
|
+
isTTY,
|
|
46
|
+
once: EventEmitter.prototype.once,
|
|
47
|
+
on: EventEmitter.prototype.on,
|
|
48
|
+
off: EventEmitter.prototype.off,
|
|
49
|
+
});
|
|
50
|
+
return stream;
|
|
51
|
+
};
|
|
52
|
+
const resetEnv = () => {
|
|
53
|
+
delete process.env['TMUX'];
|
|
54
|
+
delete process.env['STY'];
|
|
55
|
+
delete process.env['SSH_TTY'];
|
|
56
|
+
delete process.env['SSH_CONNECTION'];
|
|
57
|
+
delete process.env['SSH_CLIENT'];
|
|
58
|
+
delete process.env['WSL_DISTRO_NAME'];
|
|
59
|
+
delete process.env['WSLENV'];
|
|
60
|
+
delete process.env['WSL_INTEROP'];
|
|
61
|
+
delete process.env['TERM'];
|
|
62
|
+
};
|
|
28
63
|
describe('commandUtils', () => {
|
|
29
64
|
let mockSpawn;
|
|
30
65
|
let mockChild;
|
|
@@ -51,6 +86,20 @@ describe('commandUtils', () => {
|
|
|
51
86
|
mockSpawn.mockReturnValue(mockChild);
|
|
52
87
|
// Setup clipboardy mock
|
|
53
88
|
mockClipboardyWrite = clipboardy.write;
|
|
89
|
+
// default: no /dev/tty available
|
|
90
|
+
mockFs.createWriteStream.mockImplementation(() => {
|
|
91
|
+
throw new Error('ENOENT');
|
|
92
|
+
});
|
|
93
|
+
// default: stdio are not TTY for tests unless explicitly set
|
|
94
|
+
Object.defineProperty(process, 'stderr', {
|
|
95
|
+
value: makeWritable({ isTTY: false }),
|
|
96
|
+
configurable: true,
|
|
97
|
+
});
|
|
98
|
+
Object.defineProperty(process, 'stdout', {
|
|
99
|
+
value: makeWritable({ isTTY: false }),
|
|
100
|
+
configurable: true,
|
|
101
|
+
});
|
|
102
|
+
resetEnv();
|
|
54
103
|
});
|
|
55
104
|
describe('isAtCommand', () => {
|
|
56
105
|
it('should return true when query starts with @', () => {
|
|
@@ -101,17 +150,125 @@ describe('commandUtils', () => {
|
|
|
101
150
|
});
|
|
102
151
|
});
|
|
103
152
|
describe('copyToClipboard', () => {
|
|
104
|
-
it('
|
|
153
|
+
it('uses clipboardy when not in SSH/tmux/screen/WSL (even if TTYs exist)', async () => {
|
|
105
154
|
const testText = 'Hello, world!';
|
|
106
155
|
mockClipboardyWrite.mockResolvedValue(undefined);
|
|
156
|
+
// even if stderr/stdout are TTY, without the env signals we fallback
|
|
157
|
+
Object.defineProperty(process, 'stderr', {
|
|
158
|
+
value: makeWritable({ isTTY: true }),
|
|
159
|
+
configurable: true,
|
|
160
|
+
});
|
|
161
|
+
Object.defineProperty(process, 'stdout', {
|
|
162
|
+
value: makeWritable({ isTTY: true }),
|
|
163
|
+
configurable: true,
|
|
164
|
+
});
|
|
107
165
|
await copyToClipboard(testText);
|
|
108
166
|
expect(mockClipboardyWrite).toHaveBeenCalledWith(testText);
|
|
109
167
|
});
|
|
110
|
-
it('
|
|
111
|
-
const testText = '
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
168
|
+
it('writes OSC-52 to /dev/tty when in SSH', async () => {
|
|
169
|
+
const testText = 'abc';
|
|
170
|
+
const tty = makeWritable({ isTTY: true });
|
|
171
|
+
mockFs.createWriteStream.mockReturnValue(tty);
|
|
172
|
+
process.env['SSH_CONNECTION'] = '1';
|
|
173
|
+
await copyToClipboard(testText);
|
|
174
|
+
const b64 = Buffer.from(testText, 'utf8').toString('base64');
|
|
175
|
+
const expected = `${ESC}]52;c;${b64}${BEL}`;
|
|
176
|
+
expect(tty.write).toHaveBeenCalledTimes(1);
|
|
177
|
+
expect(tty.write.mock.calls[0][0]).toBe(expected);
|
|
178
|
+
expect(tty.end).toHaveBeenCalledTimes(1); // /dev/tty closed after write
|
|
179
|
+
expect(mockClipboardyWrite).not.toHaveBeenCalled();
|
|
180
|
+
});
|
|
181
|
+
it('wraps OSC-52 for tmux', async () => {
|
|
182
|
+
const testText = 'tmux-copy';
|
|
183
|
+
const tty = makeWritable({ isTTY: true });
|
|
184
|
+
mockFs.createWriteStream.mockReturnValue(tty);
|
|
185
|
+
process.env['TMUX'] = '1';
|
|
186
|
+
await copyToClipboard(testText);
|
|
187
|
+
const written = tty.write.mock.calls[0][0];
|
|
188
|
+
// Starts with tmux DCS wrapper and ends with ST
|
|
189
|
+
expect(written.startsWith(`${ESC}Ptmux;`)).toBe(true);
|
|
190
|
+
expect(written.endsWith(ST)).toBe(true);
|
|
191
|
+
// ESC bytes in payload are doubled
|
|
192
|
+
expect(written).toContain(`${ESC}${ESC}]52;c;`);
|
|
193
|
+
expect(mockClipboardyWrite).not.toHaveBeenCalled();
|
|
194
|
+
});
|
|
195
|
+
it('wraps OSC-52 for GNU screen with chunked DCS', async () => {
|
|
196
|
+
// ensure payload > chunk size (240) so there are multiple chunks
|
|
197
|
+
const testText = 'x'.repeat(1200);
|
|
198
|
+
const tty = makeWritable({ isTTY: true });
|
|
199
|
+
mockFs.createWriteStream.mockReturnValue(tty);
|
|
200
|
+
process.env['STY'] = 'screen-session';
|
|
201
|
+
await copyToClipboard(testText);
|
|
202
|
+
const written = tty.write.mock.calls[0][0];
|
|
203
|
+
const chunkStarts = (written.match(new RegExp(`${ESC}P`, 'g')) || [])
|
|
204
|
+
.length;
|
|
205
|
+
const chunkEnds = written.split(ST).length - 1;
|
|
206
|
+
expect(chunkStarts).toBeGreaterThan(1);
|
|
207
|
+
expect(chunkStarts).toBe(chunkEnds);
|
|
208
|
+
expect(written).toContain(']52;c;'); // contains base OSC-52 marker
|
|
209
|
+
expect(mockClipboardyWrite).not.toHaveBeenCalled();
|
|
210
|
+
});
|
|
211
|
+
it('falls back to stderr when /dev/tty unavailable and stderr is a TTY', async () => {
|
|
212
|
+
const testText = 'stderr-tty';
|
|
213
|
+
const stderrStream = makeWritable({ isTTY: true });
|
|
214
|
+
Object.defineProperty(process, 'stderr', {
|
|
215
|
+
value: stderrStream,
|
|
216
|
+
configurable: true,
|
|
217
|
+
});
|
|
218
|
+
process.env['SSH_TTY'] = '/dev/pts/1';
|
|
219
|
+
await copyToClipboard(testText);
|
|
220
|
+
const b64 = Buffer.from(testText, 'utf8').toString('base64');
|
|
221
|
+
const expected = `${ESC}]52;c;${b64}${BEL}`;
|
|
222
|
+
expect(stderrStream.write).toHaveBeenCalledWith(expected);
|
|
223
|
+
expect(mockClipboardyWrite).not.toHaveBeenCalled();
|
|
224
|
+
});
|
|
225
|
+
it('falls back to clipboardy when no TTY is available', async () => {
|
|
226
|
+
const testText = 'no-tty';
|
|
227
|
+
mockClipboardyWrite.mockResolvedValue(undefined);
|
|
228
|
+
// /dev/tty throws; stderr/stdout are non-TTY by default
|
|
229
|
+
process.env['SSH_CLIENT'] = 'client';
|
|
230
|
+
await copyToClipboard(testText);
|
|
231
|
+
expect(mockClipboardyWrite).toHaveBeenCalledWith(testText);
|
|
232
|
+
});
|
|
233
|
+
it('resolves on drain when backpressure occurs', async () => {
|
|
234
|
+
const tty = makeWritable({ isTTY: true, writeReturn: false });
|
|
235
|
+
mockFs.createWriteStream.mockReturnValue(tty);
|
|
236
|
+
process.env['SSH_CONNECTION'] = '1';
|
|
237
|
+
const p = copyToClipboard('drain-test');
|
|
238
|
+
setTimeout(() => {
|
|
239
|
+
tty.emit('drain');
|
|
240
|
+
}, 0);
|
|
241
|
+
await expect(p).resolves.toBeUndefined();
|
|
242
|
+
});
|
|
243
|
+
it('propagates errors from OSC-52 write path', async () => {
|
|
244
|
+
const tty = makeWritable({ isTTY: true, writeReturn: false });
|
|
245
|
+
mockFs.createWriteStream.mockReturnValue(tty);
|
|
246
|
+
process.env['SSH_CONNECTION'] = '1';
|
|
247
|
+
const p = copyToClipboard('err-test');
|
|
248
|
+
setTimeout(() => {
|
|
249
|
+
tty.emit('error', new Error('tty error'));
|
|
250
|
+
}, 0);
|
|
251
|
+
await expect(p).rejects.toThrow('tty error');
|
|
252
|
+
expect(mockClipboardyWrite).not.toHaveBeenCalled();
|
|
253
|
+
});
|
|
254
|
+
it('does nothing for empty string', async () => {
|
|
255
|
+
await copyToClipboard('');
|
|
256
|
+
expect(mockClipboardyWrite).not.toHaveBeenCalled();
|
|
257
|
+
// ensure no accidental writes to stdio either
|
|
258
|
+
const stderrStream = process.stderr;
|
|
259
|
+
const stdoutStream = process.stdout;
|
|
260
|
+
expect(stderrStream.write).not.toHaveBeenCalled();
|
|
261
|
+
expect(stdoutStream.write).not.toHaveBeenCalled();
|
|
262
|
+
});
|
|
263
|
+
it('uses clipboardy when not in eligible env even if /dev/tty exists', async () => {
|
|
264
|
+
const tty = makeWritable({ isTTY: true });
|
|
265
|
+
mockFs.createWriteStream.mockReturnValue(tty);
|
|
266
|
+
const text = 'local-terminal';
|
|
267
|
+
mockClipboardyWrite.mockResolvedValue(undefined);
|
|
268
|
+
await copyToClipboard(text);
|
|
269
|
+
expect(mockClipboardyWrite).toHaveBeenCalledWith(text);
|
|
270
|
+
expect(tty.write).not.toHaveBeenCalled();
|
|
271
|
+
expect(tty.end).not.toHaveBeenCalled();
|
|
115
272
|
});
|
|
116
273
|
});
|
|
117
274
|
describe('getUrlOpenCommand', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"commandUtils.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/commandUtils.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"commandUtils.test.js","sourceRoot":"","sources":["../../../../src/ui/utils/commandUtils.test.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils/errors.js
CHANGED
|
@@ -62,7 +62,7 @@ export function handleError(error, config, customErrorCode) {
|
|
|
62
62
|
else if (config.getOutputFormat() === OutputFormat.JSON) {
|
|
63
63
|
const formatter = new JsonFormatter();
|
|
64
64
|
const errorCode = customErrorCode ?? extractErrorCode(error);
|
|
65
|
-
const formattedError = formatter.formatError(error instanceof Error ? error : new Error(getErrorMessage(error)), errorCode);
|
|
65
|
+
const formattedError = formatter.formatError(error instanceof Error ? error : new Error(getErrorMessage(error)), errorCode, config.getSessionId());
|
|
66
66
|
console.error(formattedError);
|
|
67
67
|
runSyncCleanup();
|
|
68
68
|
process.exit(getNumericExitCode(errorCode));
|
|
@@ -103,7 +103,7 @@ export function handleToolError(toolName, toolError, config, errorType, resultDi
|
|
|
103
103
|
}
|
|
104
104
|
else if (config.getOutputFormat() === OutputFormat.JSON) {
|
|
105
105
|
const formatter = new JsonFormatter();
|
|
106
|
-
const formattedError = formatter.formatError(toolExecutionError, errorType ?? toolExecutionError.exitCode);
|
|
106
|
+
const formattedError = formatter.formatError(toolExecutionError, errorType ?? toolExecutionError.exitCode, config.getSessionId());
|
|
107
107
|
console.error(formattedError);
|
|
108
108
|
}
|
|
109
109
|
else {
|
|
@@ -138,7 +138,7 @@ export function handleCancellationError(config) {
|
|
|
138
138
|
}
|
|
139
139
|
else if (config.getOutputFormat() === OutputFormat.JSON) {
|
|
140
140
|
const formatter = new JsonFormatter();
|
|
141
|
-
const formattedError = formatter.formatError(cancellationError, cancellationError.exitCode);
|
|
141
|
+
const formattedError = formatter.formatError(cancellationError, cancellationError.exitCode, config.getSessionId());
|
|
142
142
|
console.error(formattedError);
|
|
143
143
|
runSyncCleanup();
|
|
144
144
|
process.exit(cancellationError.exitCode);
|
|
@@ -172,7 +172,7 @@ export function handleMaxTurnsExceededError(config) {
|
|
|
172
172
|
}
|
|
173
173
|
else if (config.getOutputFormat() === OutputFormat.JSON) {
|
|
174
174
|
const formatter = new JsonFormatter();
|
|
175
|
-
const formattedError = formatter.formatError(maxTurnsError, maxTurnsError.exitCode);
|
|
175
|
+
const formattedError = formatter.formatError(maxTurnsError, maxTurnsError.exitCode, config.getSessionId());
|
|
176
176
|
console.error(formattedError);
|
|
177
177
|
runSyncCleanup();
|
|
178
178
|
process.exit(maxTurnsError.exitCode);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EACL,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;QAC3B,OAAO,KAAK,CAAC,OAAO,CAAC;IACvB,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAQD;;GAEG;AACH,SAAS,gBAAgB,CAAC,KAAc;IACtC,MAAM,aAAa,GAAG,KAAsB,CAAC;IAE7C,qEAAqE;IACrE,IAAI,OAAO,aAAa,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC/C,OAAO,aAAa,CAAC,QAAQ,CAAC;IAChC,CAAC;IACD,IAAI,aAAa,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,aAAa,CAAC,IAAI,CAAC;IAC5B,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,OAAO,aAAa,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,OAAO,CAAC,CAAC,CAAC,oBAAoB;AAChC,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CAAC,SAA0B;IACpD,OAAO,OAAO,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,KAAc,EACd,MAAc,EACd,eAAiC;IAEjC,MAAM,YAAY,GAAG,sBAAsB,CACzC,KAAK,EACL,MAAM,CAAC,yBAAyB,EAAE,EAAE,QAAQ,CAC7C,CAAC;IAEF,IAAI,MAAM,CAAC,eAAe,EAAE,KAAK,YAAY,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,eAAe,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAClD,MAAM,SAAS,GAAG,eAAe,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAC7D,MAAM,OAAO,GAAG,kBAAkB,CAAC,UAAU,EAAE,CAAC;QAEhD,eAAe,CAAC,SAAS,CAAC;YACxB,IAAI,EAAE,mBAAmB,CAAC,MAAM;YAChC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,MAAM,EAAE,OAAO;YACf,KAAK,EAAE;gBACL,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO;gBAC/D,OAAO,EAAE,YAAY;aACtB;YACD,KAAK,EAAE,eAAe,CAAC,oBAAoB,CAAC,OAAO,EAAE,CAAC,CAAC;SACxD,CAAC,CAAC;QAEH,cAAc,EAAE,CAAC;QACjB,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC;IAC9C,CAAC;SAAM,IAAI,MAAM,CAAC,eAAe,EAAE,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,aAAa,EAAE,CAAC;QACtC,MAAM,SAAS,GAAG,eAAe,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;QAE7D,MAAM,cAAc,GAAG,SAAS,CAAC,WAAW,CAC1C,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAClE,SAAS,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/utils/errors.ts"],"names":[],"mappings":"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"}
|
|
@@ -18,7 +18,8 @@ vi.mock('@google/gemini-cli-core', async (importOriginal) => {
|
|
|
18
18
|
return `API Error: ${String(error)}`;
|
|
19
19
|
}),
|
|
20
20
|
JsonFormatter: vi.fn().mockImplementation(() => ({
|
|
21
|
-
formatError: vi.fn((error, code) => JSON.stringify({
|
|
21
|
+
formatError: vi.fn((error, code, sessionId) => JSON.stringify({
|
|
22
|
+
...(sessionId && { session_id: sessionId }),
|
|
22
23
|
error: {
|
|
23
24
|
type: error.constructor.name,
|
|
24
25
|
message: error.message,
|
|
@@ -58,6 +59,7 @@ describe('errors', () => {
|
|
|
58
59
|
let mockConfig;
|
|
59
60
|
let processExitSpy;
|
|
60
61
|
let consoleErrorSpy;
|
|
62
|
+
const TEST_SESSION_ID = 'test-session-123';
|
|
61
63
|
beforeEach(() => {
|
|
62
64
|
// Reset mocks
|
|
63
65
|
vi.clearAllMocks();
|
|
@@ -71,6 +73,7 @@ describe('errors', () => {
|
|
|
71
73
|
mockConfig = {
|
|
72
74
|
getOutputFormat: vi.fn().mockReturnValue(OutputFormat.TEXT),
|
|
73
75
|
getContentGeneratorConfig: vi.fn().mockReturnValue({ authType: 'test' }),
|
|
76
|
+
getSessionId: vi.fn().mockReturnValue(TEST_SESSION_ID),
|
|
74
77
|
};
|
|
75
78
|
});
|
|
76
79
|
afterEach(() => {
|
|
@@ -123,6 +126,7 @@ describe('errors', () => {
|
|
|
123
126
|
handleError(testError, mockConfig);
|
|
124
127
|
}).toThrow('process.exit called with code: 1');
|
|
125
128
|
expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
|
|
129
|
+
session_id: TEST_SESSION_ID,
|
|
126
130
|
error: {
|
|
127
131
|
type: 'Error',
|
|
128
132
|
message: 'Test error',
|
|
@@ -136,6 +140,7 @@ describe('errors', () => {
|
|
|
136
140
|
handleError(testError, mockConfig, 42);
|
|
137
141
|
}).toThrow('process.exit called with code: 42');
|
|
138
142
|
expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
|
|
143
|
+
session_id: TEST_SESSION_ID,
|
|
139
144
|
error: {
|
|
140
145
|
type: 'Error',
|
|
141
146
|
message: 'Test error',
|
|
@@ -149,6 +154,7 @@ describe('errors', () => {
|
|
|
149
154
|
handleError(fatalError, mockConfig);
|
|
150
155
|
}).toThrow('process.exit called with code: 42');
|
|
151
156
|
expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
|
|
157
|
+
session_id: TEST_SESSION_ID,
|
|
152
158
|
error: {
|
|
153
159
|
type: 'FatalInputError',
|
|
154
160
|
message: 'Fatal error',
|
|
@@ -170,6 +176,7 @@ describe('errors', () => {
|
|
|
170
176
|
handleError(errorWithStatus, mockConfig);
|
|
171
177
|
}).toThrow('process.exit called with code: 1'); // string codes become 1
|
|
172
178
|
expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
|
|
179
|
+
session_id: TEST_SESSION_ID,
|
|
173
180
|
error: {
|
|
174
181
|
type: 'Error',
|
|
175
182
|
message: 'Error with status',
|
|
@@ -250,6 +257,7 @@ describe('errors', () => {
|
|
|
250
257
|
handleToolError(toolName, toolError, mockConfig, 'no_space_left');
|
|
251
258
|
}).toThrow('process.exit called with code: 54');
|
|
252
259
|
expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
|
|
260
|
+
session_id: TEST_SESSION_ID,
|
|
253
261
|
error: {
|
|
254
262
|
type: 'FatalToolExecutionError',
|
|
255
263
|
message: 'Error executing tool test-tool: Tool failed',
|
|
@@ -296,6 +304,7 @@ describe('errors', () => {
|
|
|
296
304
|
handleCancellationError(mockConfig);
|
|
297
305
|
}).toThrow('process.exit called with code: 130');
|
|
298
306
|
expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
|
|
307
|
+
session_id: TEST_SESSION_ID,
|
|
299
308
|
error: {
|
|
300
309
|
type: 'FatalCancellationError',
|
|
301
310
|
message: 'Operation cancelled.',
|
|
@@ -336,6 +345,7 @@ describe('errors', () => {
|
|
|
336
345
|
handleMaxTurnsExceededError(mockConfig);
|
|
337
346
|
}).toThrow('process.exit called with code: 53');
|
|
338
347
|
expect(consoleErrorSpy).toHaveBeenCalledWith(JSON.stringify({
|
|
348
|
+
session_id: TEST_SESSION_ID,
|
|
339
349
|
error: {
|
|
340
350
|
type: 'FatalTurnLimitedError',
|
|
341
351
|
message: 'Reached max session turns for this session. Increase the number of turns by specifying maxSessionTurns in settings.json.',
|