@google/gemini-cli-core 0.5.0-nightly.20250909.2b05cf3b → 0.5.0-preview-2
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-core-0.5.0-preview.1.tgz +0 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/src/config/config.d.ts +9 -0
- package/dist/src/config/config.js +26 -1
- package/dist/src/config/config.js.map +1 -1
- package/dist/src/config/config.test.js +46 -0
- package/dist/src/config/config.test.js.map +1 -1
- package/dist/src/core/baseLlmClient.d.ts +45 -0
- package/dist/src/core/baseLlmClient.js +88 -0
- package/dist/src/core/baseLlmClient.js.map +1 -0
- package/dist/src/core/baseLlmClient.test.d.ts +6 -0
- package/dist/src/core/baseLlmClient.test.js +190 -0
- package/dist/src/core/baseLlmClient.test.js.map +1 -0
- package/dist/src/core/coreToolScheduler.js +5 -2
- package/dist/src/core/coreToolScheduler.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/generated/git-commit.js.map +1 -1
- package/dist/src/ide/constants.d.ts +2 -0
- package/dist/src/ide/constants.js +2 -0
- package/dist/src/ide/constants.js.map +1 -1
- package/dist/src/ide/ide-client.d.ts +1 -1
- package/dist/src/ide/ide-client.js +61 -2
- package/dist/src/ide/ide-client.js.map +1 -1
- package/dist/src/ide/ide-client.test.js +166 -1
- package/dist/src/ide/ide-client.test.js.map +1 -1
- package/dist/src/ide/ideContext.d.ts +1 -264
- package/dist/src/ide/ideContext.js +42 -31
- package/dist/src/ide/ideContext.js.map +1 -1
- package/dist/src/ide/ideContext.test.js +154 -24
- package/dist/src/ide/ideContext.test.js.map +1 -1
- package/dist/src/ide/types.d.ts +345 -0
- package/dist/src/ide/types.js +65 -0
- package/dist/src/ide/types.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +4 -2
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +23 -0
- package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +11 -0
- package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
- package/dist/src/telemetry/high-water-mark-tracker.d.ts +43 -0
- package/dist/src/telemetry/high-water-mark-tracker.js +88 -0
- package/dist/src/telemetry/high-water-mark-tracker.js.map +1 -0
- package/dist/src/telemetry/high-water-mark-tracker.test.d.ts +6 -0
- package/dist/src/telemetry/high-water-mark-tracker.test.js +152 -0
- package/dist/src/telemetry/high-water-mark-tracker.test.js.map +1 -0
- package/dist/src/telemetry/index.d.ts +2 -0
- package/dist/src/telemetry/index.js +2 -0
- package/dist/src/telemetry/index.js.map +1 -1
- package/dist/src/telemetry/rate-limiter.d.ts +48 -0
- package/dist/src/telemetry/rate-limiter.js +100 -0
- package/dist/src/telemetry/rate-limiter.js.map +1 -0
- package/dist/src/telemetry/rate-limiter.test.d.ts +6 -0
- package/dist/src/telemetry/rate-limiter.test.js +207 -0
- package/dist/src/telemetry/rate-limiter.test.js.map +1 -0
- package/dist/src/telemetry/types.d.ts +10 -1
- package/dist/src/telemetry/types.js +16 -0
- package/dist/src/telemetry/types.js.map +1 -1
- package/dist/src/tools/smart-edit.js +1 -1
- package/dist/src/tools/smart-edit.js.map +1 -1
- package/dist/src/tools/smart-edit.test.js +5 -0
- package/dist/src/tools/smart-edit.test.js.map +1 -1
- package/dist/src/utils/gitIgnoreParser.d.ts +1 -0
- package/dist/src/utils/gitIgnoreParser.js +33 -24
- package/dist/src/utils/gitIgnoreParser.js.map +1 -1
- package/dist/src/utils/llm-edit-fixer.d.ts +4 -3
- package/dist/src/utils/llm-edit-fixer.js +19 -10
- package/dist/src/utils/llm-edit-fixer.js.map +1 -1
- package/dist/src/utils/llm-edit-fixer.test.d.ts +6 -0
- package/dist/src/utils/llm-edit-fixer.test.js +105 -0
- package/dist/src/utils/llm-edit-fixer.test.js.map +1 -0
- package/dist/src/utils/promptIdContext.d.ts +7 -0
- package/dist/src/utils/promptIdContext.js +8 -0
- package/dist/src/utils/promptIdContext.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/dist/google-gemini-cli-core-0.3.4.tgz +0 -0
|
@@ -18,7 +18,9 @@ vi.mock('node:fs', async (importOriginal) => {
|
|
|
18
18
|
return {
|
|
19
19
|
...actual,
|
|
20
20
|
promises: {
|
|
21
|
+
...actual.promises,
|
|
21
22
|
readFile: vi.fn(),
|
|
23
|
+
readdir: vi.fn(),
|
|
22
24
|
},
|
|
23
25
|
realpathSync: (p) => p,
|
|
24
26
|
existsSync: () => false,
|
|
@@ -79,9 +81,10 @@ describe('IdeClient', () => {
|
|
|
79
81
|
it('should connect using HTTP when port is provided in config file', async () => {
|
|
80
82
|
const config = { port: '8080' };
|
|
81
83
|
vi.mocked(fs.promises.readFile).mockResolvedValue(JSON.stringify(config));
|
|
84
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([]);
|
|
82
85
|
const ideClient = await IdeClient.getInstance();
|
|
83
86
|
await ideClient.connect();
|
|
84
|
-
expect(fs.promises.readFile).toHaveBeenCalledWith(path.join('/tmp', 'gemini-ide-server-12345.json'), 'utf8');
|
|
87
|
+
expect(fs.promises.readFile).toHaveBeenCalledWith(path.join('/tmp/', 'gemini-ide-server-12345.json'), 'utf8');
|
|
85
88
|
expect(StreamableHTTPClientTransport).toHaveBeenCalledWith(new URL('http://localhost:8080/mcp'), expect.any(Object));
|
|
86
89
|
expect(mockClient.connect).toHaveBeenCalledWith(mockHttpTransport);
|
|
87
90
|
expect(ideClient.getConnectionStatus().status).toBe(IDEConnectionStatus.Connected);
|
|
@@ -89,6 +92,7 @@ describe('IdeClient', () => {
|
|
|
89
92
|
it('should connect using stdio when stdio config is provided in file', async () => {
|
|
90
93
|
const config = { stdio: { command: 'test-cmd', args: ['--foo'] } };
|
|
91
94
|
vi.mocked(fs.promises.readFile).mockResolvedValue(JSON.stringify(config));
|
|
95
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([]);
|
|
92
96
|
const ideClient = await IdeClient.getInstance();
|
|
93
97
|
await ideClient.connect();
|
|
94
98
|
expect(StdioClientTransport).toHaveBeenCalledWith({
|
|
@@ -104,6 +108,7 @@ describe('IdeClient', () => {
|
|
|
104
108
|
stdio: { command: 'test-cmd', args: ['--foo'] },
|
|
105
109
|
};
|
|
106
110
|
vi.mocked(fs.promises.readFile).mockResolvedValue(JSON.stringify(config));
|
|
111
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([]);
|
|
107
112
|
const ideClient = await IdeClient.getInstance();
|
|
108
113
|
await ideClient.connect();
|
|
109
114
|
expect(StreamableHTTPClientTransport).toHaveBeenCalled();
|
|
@@ -112,6 +117,7 @@ describe('IdeClient', () => {
|
|
|
112
117
|
});
|
|
113
118
|
it('should connect using HTTP when port is provided in environment variables', async () => {
|
|
114
119
|
vi.mocked(fs.promises.readFile).mockRejectedValue(new Error('File not found'));
|
|
120
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([]);
|
|
115
121
|
process.env['GEMINI_CLI_IDE_SERVER_PORT'] = '9090';
|
|
116
122
|
const ideClient = await IdeClient.getInstance();
|
|
117
123
|
await ideClient.connect();
|
|
@@ -121,6 +127,7 @@ describe('IdeClient', () => {
|
|
|
121
127
|
});
|
|
122
128
|
it('should connect using stdio when stdio config is in environment variables', async () => {
|
|
123
129
|
vi.mocked(fs.promises.readFile).mockRejectedValue(new Error('File not found'));
|
|
130
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([]);
|
|
124
131
|
process.env['GEMINI_CLI_IDE_SERVER_STDIO_COMMAND'] = 'env-cmd';
|
|
125
132
|
process.env['GEMINI_CLI_IDE_SERVER_STDIO_ARGS'] = '["--bar"]';
|
|
126
133
|
const ideClient = await IdeClient.getInstance();
|
|
@@ -135,6 +142,7 @@ describe('IdeClient', () => {
|
|
|
135
142
|
it('should prioritize file config over environment variables', async () => {
|
|
136
143
|
const config = { port: '8080' };
|
|
137
144
|
vi.mocked(fs.promises.readFile).mockResolvedValue(JSON.stringify(config));
|
|
145
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([]);
|
|
138
146
|
process.env['GEMINI_CLI_IDE_SERVER_PORT'] = '9090';
|
|
139
147
|
const ideClient = await IdeClient.getInstance();
|
|
140
148
|
await ideClient.connect();
|
|
@@ -143,6 +151,7 @@ describe('IdeClient', () => {
|
|
|
143
151
|
});
|
|
144
152
|
it('should be disconnected if no config is found', async () => {
|
|
145
153
|
vi.mocked(fs.promises.readFile).mockRejectedValue(new Error('File not found'));
|
|
154
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([]);
|
|
146
155
|
const ideClient = await IdeClient.getInstance();
|
|
147
156
|
await ideClient.connect();
|
|
148
157
|
expect(StreamableHTTPClientTransport).not.toHaveBeenCalled();
|
|
@@ -151,5 +160,161 @@ describe('IdeClient', () => {
|
|
|
151
160
|
expect(ideClient.getConnectionStatus().details).toContain('Failed to connect');
|
|
152
161
|
});
|
|
153
162
|
});
|
|
163
|
+
describe('getConnectionConfigFromFile', () => {
|
|
164
|
+
it('should return config from the specific pid file if it exists', async () => {
|
|
165
|
+
const config = { port: '1234', workspacePath: '/test/workspace' };
|
|
166
|
+
vi.mocked(fs.promises.readFile).mockResolvedValue(JSON.stringify(config));
|
|
167
|
+
const ideClient = await IdeClient.getInstance();
|
|
168
|
+
// In tests, the private method can be accessed like this.
|
|
169
|
+
const result = await ideClient.getConnectionConfigFromFile();
|
|
170
|
+
expect(result).toEqual(config);
|
|
171
|
+
expect(fs.promises.readFile).toHaveBeenCalledWith(path.join('/tmp', 'gemini-ide-server-12345.json'), 'utf8');
|
|
172
|
+
});
|
|
173
|
+
it('should return undefined if no config files are found', async () => {
|
|
174
|
+
vi.mocked(fs.promises.readFile).mockRejectedValue(new Error('not found'));
|
|
175
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([]);
|
|
176
|
+
const ideClient = await IdeClient.getInstance();
|
|
177
|
+
const result = await ideClient.getConnectionConfigFromFile();
|
|
178
|
+
expect(result).toBeUndefined();
|
|
179
|
+
});
|
|
180
|
+
it('should find and parse a single config file with the new naming scheme', async () => {
|
|
181
|
+
const config = { port: '5678', workspacePath: '/test/workspace' };
|
|
182
|
+
vi.mocked(fs.promises.readFile).mockRejectedValueOnce(new Error('not found')); // For old path
|
|
183
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue(['gemini-ide-server-12345-123.json']);
|
|
184
|
+
vi.mocked(fs.promises.readFile).mockResolvedValue(JSON.stringify(config));
|
|
185
|
+
vi.spyOn(IdeClient, 'validateWorkspacePath').mockReturnValue({
|
|
186
|
+
isValid: true,
|
|
187
|
+
});
|
|
188
|
+
const ideClient = await IdeClient.getInstance();
|
|
189
|
+
const result = await ideClient.getConnectionConfigFromFile();
|
|
190
|
+
expect(result).toEqual(config);
|
|
191
|
+
expect(fs.promises.readFile).toHaveBeenCalledWith(path.join('/tmp/gemini/ide', 'gemini-ide-server-12345-123.json'), 'utf8');
|
|
192
|
+
});
|
|
193
|
+
it('should filter out configs with invalid workspace paths', async () => {
|
|
194
|
+
const validConfig = {
|
|
195
|
+
port: '5678',
|
|
196
|
+
workspacePath: '/test/workspace',
|
|
197
|
+
};
|
|
198
|
+
const invalidConfig = {
|
|
199
|
+
port: '1111',
|
|
200
|
+
workspacePath: '/invalid/workspace',
|
|
201
|
+
};
|
|
202
|
+
vi.mocked(fs.promises.readFile).mockRejectedValueOnce(new Error('not found'));
|
|
203
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([
|
|
204
|
+
'gemini-ide-server-12345-111.json',
|
|
205
|
+
'gemini-ide-server-12345-222.json',
|
|
206
|
+
]);
|
|
207
|
+
vi.mocked(fs.promises.readFile)
|
|
208
|
+
.mockResolvedValueOnce(JSON.stringify(invalidConfig))
|
|
209
|
+
.mockResolvedValueOnce(JSON.stringify(validConfig));
|
|
210
|
+
const validateSpy = vi
|
|
211
|
+
.spyOn(IdeClient, 'validateWorkspacePath')
|
|
212
|
+
.mockReturnValueOnce({ isValid: false })
|
|
213
|
+
.mockReturnValueOnce({ isValid: true });
|
|
214
|
+
const ideClient = await IdeClient.getInstance();
|
|
215
|
+
const result = await ideClient.getConnectionConfigFromFile();
|
|
216
|
+
expect(result).toEqual(validConfig);
|
|
217
|
+
expect(validateSpy).toHaveBeenCalledWith('/invalid/workspace', 'VS Code', '/test/workspace/sub-dir');
|
|
218
|
+
expect(validateSpy).toHaveBeenCalledWith('/test/workspace', 'VS Code', '/test/workspace/sub-dir');
|
|
219
|
+
});
|
|
220
|
+
it('should return the first valid config when multiple workspaces are valid', async () => {
|
|
221
|
+
const config1 = { port: '1111', workspacePath: '/test/workspace' };
|
|
222
|
+
const config2 = { port: '2222', workspacePath: '/test/workspace2' };
|
|
223
|
+
vi.mocked(fs.promises.readFile).mockRejectedValueOnce(new Error('not found'));
|
|
224
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([
|
|
225
|
+
'gemini-ide-server-12345-111.json',
|
|
226
|
+
'gemini-ide-server-12345-222.json',
|
|
227
|
+
]);
|
|
228
|
+
vi.mocked(fs.promises.readFile)
|
|
229
|
+
.mockResolvedValueOnce(JSON.stringify(config1))
|
|
230
|
+
.mockResolvedValueOnce(JSON.stringify(config2));
|
|
231
|
+
vi.spyOn(IdeClient, 'validateWorkspacePath').mockReturnValue({
|
|
232
|
+
isValid: true,
|
|
233
|
+
});
|
|
234
|
+
const ideClient = await IdeClient.getInstance();
|
|
235
|
+
const result = await ideClient.getConnectionConfigFromFile();
|
|
236
|
+
expect(result).toEqual(config1);
|
|
237
|
+
});
|
|
238
|
+
it('should prioritize the config matching the port from the environment variable', async () => {
|
|
239
|
+
process.env['GEMINI_CLI_IDE_SERVER_PORT'] = '2222';
|
|
240
|
+
const config1 = { port: '1111', workspacePath: '/test/workspace' };
|
|
241
|
+
const config2 = { port: '2222', workspacePath: '/test/workspace2' };
|
|
242
|
+
vi.mocked(fs.promises.readFile).mockRejectedValueOnce(new Error('not found'));
|
|
243
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([
|
|
244
|
+
'gemini-ide-server-12345-111.json',
|
|
245
|
+
'gemini-ide-server-12345-222.json',
|
|
246
|
+
]);
|
|
247
|
+
vi.mocked(fs.promises.readFile)
|
|
248
|
+
.mockResolvedValueOnce(JSON.stringify(config1))
|
|
249
|
+
.mockResolvedValueOnce(JSON.stringify(config2));
|
|
250
|
+
vi.spyOn(IdeClient, 'validateWorkspacePath').mockReturnValue({
|
|
251
|
+
isValid: true,
|
|
252
|
+
});
|
|
253
|
+
const ideClient = await IdeClient.getInstance();
|
|
254
|
+
const result = await ideClient.getConnectionConfigFromFile();
|
|
255
|
+
expect(result).toEqual(config2);
|
|
256
|
+
});
|
|
257
|
+
it('should handle invalid JSON in one of the config files', async () => {
|
|
258
|
+
const validConfig = { port: '2222', workspacePath: '/test/workspace' };
|
|
259
|
+
vi.mocked(fs.promises.readFile).mockRejectedValueOnce(new Error('not found'));
|
|
260
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([
|
|
261
|
+
'gemini-ide-server-12345-111.json',
|
|
262
|
+
'gemini-ide-server-12345-222.json',
|
|
263
|
+
]);
|
|
264
|
+
vi.mocked(fs.promises.readFile)
|
|
265
|
+
.mockResolvedValueOnce('invalid json')
|
|
266
|
+
.mockResolvedValueOnce(JSON.stringify(validConfig));
|
|
267
|
+
vi.spyOn(IdeClient, 'validateWorkspacePath').mockReturnValue({
|
|
268
|
+
isValid: true,
|
|
269
|
+
});
|
|
270
|
+
const ideClient = await IdeClient.getInstance();
|
|
271
|
+
const result = await ideClient.getConnectionConfigFromFile();
|
|
272
|
+
expect(result).toEqual(validConfig);
|
|
273
|
+
});
|
|
274
|
+
it('should return undefined if readdir throws an error', async () => {
|
|
275
|
+
vi.mocked(fs.promises.readFile).mockRejectedValueOnce(new Error('not found'));
|
|
276
|
+
vi.mocked(fs.promises.readdir).mockRejectedValue(new Error('readdir failed'));
|
|
277
|
+
const ideClient = await IdeClient.getInstance();
|
|
278
|
+
const result = await ideClient.getConnectionConfigFromFile();
|
|
279
|
+
expect(result).toBeUndefined();
|
|
280
|
+
});
|
|
281
|
+
it('should ignore files with invalid names', async () => {
|
|
282
|
+
const validConfig = { port: '3333', workspacePath: '/test/workspace' };
|
|
283
|
+
vi.mocked(fs.promises.readFile).mockRejectedValueOnce(new Error('not found'));
|
|
284
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([
|
|
285
|
+
'gemini-ide-server-12345-111.json', // valid
|
|
286
|
+
'not-a-config-file.txt', // invalid
|
|
287
|
+
'gemini-ide-server-asdf.json', // invalid
|
|
288
|
+
]);
|
|
289
|
+
vi.mocked(fs.promises.readFile).mockResolvedValueOnce(JSON.stringify(validConfig));
|
|
290
|
+
vi.spyOn(IdeClient, 'validateWorkspacePath').mockReturnValue({
|
|
291
|
+
isValid: true,
|
|
292
|
+
});
|
|
293
|
+
const ideClient = await IdeClient.getInstance();
|
|
294
|
+
const result = await ideClient.getConnectionConfigFromFile();
|
|
295
|
+
expect(result).toEqual(validConfig);
|
|
296
|
+
expect(fs.promises.readFile).toHaveBeenCalledWith(path.join('/tmp/gemini/ide', 'gemini-ide-server-12345-111.json'), 'utf8');
|
|
297
|
+
expect(fs.promises.readFile).not.toHaveBeenCalledWith(path.join('/tmp/gemini/ide', 'not-a-config-file.txt'), 'utf8');
|
|
298
|
+
});
|
|
299
|
+
it('should match env port string to a number port in the config', async () => {
|
|
300
|
+
process.env['GEMINI_CLI_IDE_SERVER_PORT'] = '3333';
|
|
301
|
+
const config1 = { port: 1111, workspacePath: '/test/workspace' };
|
|
302
|
+
const config2 = { port: 3333, workspacePath: '/test/workspace2' };
|
|
303
|
+
vi.mocked(fs.promises.readFile).mockRejectedValueOnce(new Error('not found'));
|
|
304
|
+
vi.mocked(fs.promises.readdir).mockResolvedValue([
|
|
305
|
+
'gemini-ide-server-12345-111.json',
|
|
306
|
+
'gemini-ide-server-12345-222.json',
|
|
307
|
+
]);
|
|
308
|
+
vi.mocked(fs.promises.readFile)
|
|
309
|
+
.mockResolvedValueOnce(JSON.stringify(config1))
|
|
310
|
+
.mockResolvedValueOnce(JSON.stringify(config2));
|
|
311
|
+
vi.spyOn(IdeClient, 'validateWorkspacePath').mockReturnValue({
|
|
312
|
+
isValid: true,
|
|
313
|
+
});
|
|
314
|
+
const ideClient = await IdeClient.getInstance();
|
|
315
|
+
const result = await ideClient.getConnectionConfigFromFile();
|
|
316
|
+
expect(result).toEqual(config2);
|
|
317
|
+
});
|
|
318
|
+
});
|
|
154
319
|
});
|
|
155
320
|
//# sourceMappingURL=ide-client.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ide-client.test.js","sourceRoot":"","sources":["../../../src/ide/ide-client.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ide-client.test.js","sourceRoot":"","sources":["../../../src/ide/ide-client.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,270 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { z } from 'zod';
|
|
7
|
-
|
|
8
|
-
* Zod schema for validating a file context from the IDE.
|
|
9
|
-
*/
|
|
10
|
-
export declare const FileSchema: z.ZodObject<{
|
|
11
|
-
path: z.ZodString;
|
|
12
|
-
timestamp: z.ZodNumber;
|
|
13
|
-
isActive: z.ZodOptional<z.ZodBoolean>;
|
|
14
|
-
selectedText: z.ZodOptional<z.ZodString>;
|
|
15
|
-
cursor: z.ZodOptional<z.ZodObject<{
|
|
16
|
-
line: z.ZodNumber;
|
|
17
|
-
character: z.ZodNumber;
|
|
18
|
-
}, "strip", z.ZodTypeAny, {
|
|
19
|
-
line: number;
|
|
20
|
-
character: number;
|
|
21
|
-
}, {
|
|
22
|
-
line: number;
|
|
23
|
-
character: number;
|
|
24
|
-
}>>;
|
|
25
|
-
}, "strip", z.ZodTypeAny, {
|
|
26
|
-
path: string;
|
|
27
|
-
timestamp: number;
|
|
28
|
-
cursor?: {
|
|
29
|
-
line: number;
|
|
30
|
-
character: number;
|
|
31
|
-
} | undefined;
|
|
32
|
-
isActive?: boolean | undefined;
|
|
33
|
-
selectedText?: string | undefined;
|
|
34
|
-
}, {
|
|
35
|
-
path: string;
|
|
36
|
-
timestamp: number;
|
|
37
|
-
cursor?: {
|
|
38
|
-
line: number;
|
|
39
|
-
character: number;
|
|
40
|
-
} | undefined;
|
|
41
|
-
isActive?: boolean | undefined;
|
|
42
|
-
selectedText?: string | undefined;
|
|
43
|
-
}>;
|
|
44
|
-
export type File = z.infer<typeof FileSchema>;
|
|
45
|
-
export declare const IdeContextSchema: z.ZodObject<{
|
|
46
|
-
workspaceState: z.ZodOptional<z.ZodObject<{
|
|
47
|
-
openFiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
48
|
-
path: z.ZodString;
|
|
49
|
-
timestamp: z.ZodNumber;
|
|
50
|
-
isActive: z.ZodOptional<z.ZodBoolean>;
|
|
51
|
-
selectedText: z.ZodOptional<z.ZodString>;
|
|
52
|
-
cursor: z.ZodOptional<z.ZodObject<{
|
|
53
|
-
line: z.ZodNumber;
|
|
54
|
-
character: z.ZodNumber;
|
|
55
|
-
}, "strip", z.ZodTypeAny, {
|
|
56
|
-
line: number;
|
|
57
|
-
character: number;
|
|
58
|
-
}, {
|
|
59
|
-
line: number;
|
|
60
|
-
character: number;
|
|
61
|
-
}>>;
|
|
62
|
-
}, "strip", z.ZodTypeAny, {
|
|
63
|
-
path: string;
|
|
64
|
-
timestamp: number;
|
|
65
|
-
cursor?: {
|
|
66
|
-
line: number;
|
|
67
|
-
character: number;
|
|
68
|
-
} | undefined;
|
|
69
|
-
isActive?: boolean | undefined;
|
|
70
|
-
selectedText?: string | undefined;
|
|
71
|
-
}, {
|
|
72
|
-
path: string;
|
|
73
|
-
timestamp: number;
|
|
74
|
-
cursor?: {
|
|
75
|
-
line: number;
|
|
76
|
-
character: number;
|
|
77
|
-
} | undefined;
|
|
78
|
-
isActive?: boolean | undefined;
|
|
79
|
-
selectedText?: string | undefined;
|
|
80
|
-
}>, "many">>;
|
|
81
|
-
isTrusted: z.ZodOptional<z.ZodBoolean>;
|
|
82
|
-
}, "strip", z.ZodTypeAny, {
|
|
83
|
-
openFiles?: {
|
|
84
|
-
path: string;
|
|
85
|
-
timestamp: number;
|
|
86
|
-
cursor?: {
|
|
87
|
-
line: number;
|
|
88
|
-
character: number;
|
|
89
|
-
} | undefined;
|
|
90
|
-
isActive?: boolean | undefined;
|
|
91
|
-
selectedText?: string | undefined;
|
|
92
|
-
}[] | undefined;
|
|
93
|
-
isTrusted?: boolean | undefined;
|
|
94
|
-
}, {
|
|
95
|
-
openFiles?: {
|
|
96
|
-
path: string;
|
|
97
|
-
timestamp: number;
|
|
98
|
-
cursor?: {
|
|
99
|
-
line: number;
|
|
100
|
-
character: number;
|
|
101
|
-
} | undefined;
|
|
102
|
-
isActive?: boolean | undefined;
|
|
103
|
-
selectedText?: string | undefined;
|
|
104
|
-
}[] | undefined;
|
|
105
|
-
isTrusted?: boolean | undefined;
|
|
106
|
-
}>>;
|
|
107
|
-
}, "strip", z.ZodTypeAny, {
|
|
108
|
-
workspaceState?: {
|
|
109
|
-
openFiles?: {
|
|
110
|
-
path: string;
|
|
111
|
-
timestamp: number;
|
|
112
|
-
cursor?: {
|
|
113
|
-
line: number;
|
|
114
|
-
character: number;
|
|
115
|
-
} | undefined;
|
|
116
|
-
isActive?: boolean | undefined;
|
|
117
|
-
selectedText?: string | undefined;
|
|
118
|
-
}[] | undefined;
|
|
119
|
-
isTrusted?: boolean | undefined;
|
|
120
|
-
} | undefined;
|
|
121
|
-
}, {
|
|
122
|
-
workspaceState?: {
|
|
123
|
-
openFiles?: {
|
|
124
|
-
path: string;
|
|
125
|
-
timestamp: number;
|
|
126
|
-
cursor?: {
|
|
127
|
-
line: number;
|
|
128
|
-
character: number;
|
|
129
|
-
} | undefined;
|
|
130
|
-
isActive?: boolean | undefined;
|
|
131
|
-
selectedText?: string | undefined;
|
|
132
|
-
}[] | undefined;
|
|
133
|
-
isTrusted?: boolean | undefined;
|
|
134
|
-
} | undefined;
|
|
135
|
-
}>;
|
|
136
|
-
export type IdeContext = z.infer<typeof IdeContextSchema>;
|
|
137
|
-
/**
|
|
138
|
-
* Zod schema for validating the 'ide/contextUpdate' notification from the IDE.
|
|
139
|
-
*/
|
|
140
|
-
export declare const IdeContextNotificationSchema: z.ZodObject<{
|
|
141
|
-
jsonrpc: z.ZodLiteral<"2.0">;
|
|
142
|
-
method: z.ZodLiteral<"ide/contextUpdate">;
|
|
143
|
-
params: z.ZodObject<{
|
|
144
|
-
workspaceState: z.ZodOptional<z.ZodObject<{
|
|
145
|
-
openFiles: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
146
|
-
path: z.ZodString;
|
|
147
|
-
timestamp: z.ZodNumber;
|
|
148
|
-
isActive: z.ZodOptional<z.ZodBoolean>;
|
|
149
|
-
selectedText: z.ZodOptional<z.ZodString>;
|
|
150
|
-
cursor: z.ZodOptional<z.ZodObject<{
|
|
151
|
-
line: z.ZodNumber;
|
|
152
|
-
character: z.ZodNumber;
|
|
153
|
-
}, "strip", z.ZodTypeAny, {
|
|
154
|
-
line: number;
|
|
155
|
-
character: number;
|
|
156
|
-
}, {
|
|
157
|
-
line: number;
|
|
158
|
-
character: number;
|
|
159
|
-
}>>;
|
|
160
|
-
}, "strip", z.ZodTypeAny, {
|
|
161
|
-
path: string;
|
|
162
|
-
timestamp: number;
|
|
163
|
-
cursor?: {
|
|
164
|
-
line: number;
|
|
165
|
-
character: number;
|
|
166
|
-
} | undefined;
|
|
167
|
-
isActive?: boolean | undefined;
|
|
168
|
-
selectedText?: string | undefined;
|
|
169
|
-
}, {
|
|
170
|
-
path: string;
|
|
171
|
-
timestamp: number;
|
|
172
|
-
cursor?: {
|
|
173
|
-
line: number;
|
|
174
|
-
character: number;
|
|
175
|
-
} | undefined;
|
|
176
|
-
isActive?: boolean | undefined;
|
|
177
|
-
selectedText?: string | undefined;
|
|
178
|
-
}>, "many">>;
|
|
179
|
-
isTrusted: z.ZodOptional<z.ZodBoolean>;
|
|
180
|
-
}, "strip", z.ZodTypeAny, {
|
|
181
|
-
openFiles?: {
|
|
182
|
-
path: string;
|
|
183
|
-
timestamp: number;
|
|
184
|
-
cursor?: {
|
|
185
|
-
line: number;
|
|
186
|
-
character: number;
|
|
187
|
-
} | undefined;
|
|
188
|
-
isActive?: boolean | undefined;
|
|
189
|
-
selectedText?: string | undefined;
|
|
190
|
-
}[] | undefined;
|
|
191
|
-
isTrusted?: boolean | undefined;
|
|
192
|
-
}, {
|
|
193
|
-
openFiles?: {
|
|
194
|
-
path: string;
|
|
195
|
-
timestamp: number;
|
|
196
|
-
cursor?: {
|
|
197
|
-
line: number;
|
|
198
|
-
character: number;
|
|
199
|
-
} | undefined;
|
|
200
|
-
isActive?: boolean | undefined;
|
|
201
|
-
selectedText?: string | undefined;
|
|
202
|
-
}[] | undefined;
|
|
203
|
-
isTrusted?: boolean | undefined;
|
|
204
|
-
}>>;
|
|
205
|
-
}, "strip", z.ZodTypeAny, {
|
|
206
|
-
workspaceState?: {
|
|
207
|
-
openFiles?: {
|
|
208
|
-
path: string;
|
|
209
|
-
timestamp: number;
|
|
210
|
-
cursor?: {
|
|
211
|
-
line: number;
|
|
212
|
-
character: number;
|
|
213
|
-
} | undefined;
|
|
214
|
-
isActive?: boolean | undefined;
|
|
215
|
-
selectedText?: string | undefined;
|
|
216
|
-
}[] | undefined;
|
|
217
|
-
isTrusted?: boolean | undefined;
|
|
218
|
-
} | undefined;
|
|
219
|
-
}, {
|
|
220
|
-
workspaceState?: {
|
|
221
|
-
openFiles?: {
|
|
222
|
-
path: string;
|
|
223
|
-
timestamp: number;
|
|
224
|
-
cursor?: {
|
|
225
|
-
line: number;
|
|
226
|
-
character: number;
|
|
227
|
-
} | undefined;
|
|
228
|
-
isActive?: boolean | undefined;
|
|
229
|
-
selectedText?: string | undefined;
|
|
230
|
-
}[] | undefined;
|
|
231
|
-
isTrusted?: boolean | undefined;
|
|
232
|
-
} | undefined;
|
|
233
|
-
}>;
|
|
234
|
-
}, "strip", z.ZodTypeAny, {
|
|
235
|
-
params: {
|
|
236
|
-
workspaceState?: {
|
|
237
|
-
openFiles?: {
|
|
238
|
-
path: string;
|
|
239
|
-
timestamp: number;
|
|
240
|
-
cursor?: {
|
|
241
|
-
line: number;
|
|
242
|
-
character: number;
|
|
243
|
-
} | undefined;
|
|
244
|
-
isActive?: boolean | undefined;
|
|
245
|
-
selectedText?: string | undefined;
|
|
246
|
-
}[] | undefined;
|
|
247
|
-
isTrusted?: boolean | undefined;
|
|
248
|
-
} | undefined;
|
|
249
|
-
};
|
|
250
|
-
jsonrpc: "2.0";
|
|
251
|
-
method: "ide/contextUpdate";
|
|
252
|
-
}, {
|
|
253
|
-
params: {
|
|
254
|
-
workspaceState?: {
|
|
255
|
-
openFiles?: {
|
|
256
|
-
path: string;
|
|
257
|
-
timestamp: number;
|
|
258
|
-
cursor?: {
|
|
259
|
-
line: number;
|
|
260
|
-
character: number;
|
|
261
|
-
} | undefined;
|
|
262
|
-
isActive?: boolean | undefined;
|
|
263
|
-
selectedText?: string | undefined;
|
|
264
|
-
}[] | undefined;
|
|
265
|
-
isTrusted?: boolean | undefined;
|
|
266
|
-
} | undefined;
|
|
267
|
-
};
|
|
268
|
-
jsonrpc: "2.0";
|
|
269
|
-
method: "ide/contextUpdate";
|
|
270
|
-
}>;
|
|
7
|
+
import type { IdeContext } from './types.js';
|
|
271
8
|
export declare const IdeDiffAcceptedNotificationSchema: z.ZodObject<{
|
|
272
9
|
jsonrpc: z.ZodLiteral<"2.0">;
|
|
273
10
|
method: z.ZodLiteral<"ide/diffAccepted">;
|
|
@@ -4,37 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { z } from 'zod';
|
|
7
|
-
|
|
8
|
-
* Zod schema for validating a file context from the IDE.
|
|
9
|
-
*/
|
|
10
|
-
export const FileSchema = z.object({
|
|
11
|
-
path: z.string(),
|
|
12
|
-
timestamp: z.number(),
|
|
13
|
-
isActive: z.boolean().optional(),
|
|
14
|
-
selectedText: z.string().optional(),
|
|
15
|
-
cursor: z
|
|
16
|
-
.object({
|
|
17
|
-
line: z.number(),
|
|
18
|
-
character: z.number(),
|
|
19
|
-
})
|
|
20
|
-
.optional(),
|
|
21
|
-
});
|
|
22
|
-
export const IdeContextSchema = z.object({
|
|
23
|
-
workspaceState: z
|
|
24
|
-
.object({
|
|
25
|
-
openFiles: z.array(FileSchema).optional(),
|
|
26
|
-
isTrusted: z.boolean().optional(),
|
|
27
|
-
})
|
|
28
|
-
.optional(),
|
|
29
|
-
});
|
|
30
|
-
/**
|
|
31
|
-
* Zod schema for validating the 'ide/contextUpdate' notification from the IDE.
|
|
32
|
-
*/
|
|
33
|
-
export const IdeContextNotificationSchema = z.object({
|
|
34
|
-
jsonrpc: z.literal('2.0'),
|
|
35
|
-
method: z.literal('ide/contextUpdate'),
|
|
36
|
-
params: IdeContextSchema,
|
|
37
|
-
});
|
|
7
|
+
import { IDE_MAX_OPEN_FILES, IDE_MAX_SELECTED_TEXT_LENGTH, } from './constants.js';
|
|
38
8
|
export const IdeDiffAcceptedNotificationSchema = z.object({
|
|
39
9
|
jsonrpc: z.literal('2.0'),
|
|
40
10
|
method: z.literal('ide/diffAccepted'),
|
|
@@ -102,6 +72,47 @@ export function createIdeContextStore() {
|
|
|
102
72
|
* @param newIdeContext The new IDE context from the IDE.
|
|
103
73
|
*/
|
|
104
74
|
function setIdeContext(newIdeContext) {
|
|
75
|
+
const { workspaceState } = newIdeContext;
|
|
76
|
+
if (!workspaceState) {
|
|
77
|
+
ideContextState = newIdeContext;
|
|
78
|
+
notifySubscribers();
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const { openFiles } = workspaceState;
|
|
82
|
+
if (openFiles && openFiles.length > 0) {
|
|
83
|
+
// Sort by timestamp descending (newest first)
|
|
84
|
+
openFiles.sort((a, b) => b.timestamp - a.timestamp);
|
|
85
|
+
// The most recent file is now at index 0.
|
|
86
|
+
const mostRecentFile = openFiles[0];
|
|
87
|
+
// If the most recent file is not active, then no file is active.
|
|
88
|
+
if (!mostRecentFile.isActive) {
|
|
89
|
+
openFiles.forEach((file) => {
|
|
90
|
+
file.isActive = false;
|
|
91
|
+
file.cursor = undefined;
|
|
92
|
+
file.selectedText = undefined;
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
// The most recent file is active. Ensure it's the only one.
|
|
97
|
+
openFiles.forEach((file, index) => {
|
|
98
|
+
if (index !== 0) {
|
|
99
|
+
file.isActive = false;
|
|
100
|
+
file.cursor = undefined;
|
|
101
|
+
file.selectedText = undefined;
|
|
102
|
+
}
|
|
103
|
+
});
|
|
104
|
+
// Truncate selected text in the active file
|
|
105
|
+
if (mostRecentFile.selectedText &&
|
|
106
|
+
mostRecentFile.selectedText.length > IDE_MAX_SELECTED_TEXT_LENGTH) {
|
|
107
|
+
mostRecentFile.selectedText =
|
|
108
|
+
mostRecentFile.selectedText.substring(0, IDE_MAX_SELECTED_TEXT_LENGTH) + '... [TRUNCATED]';
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
// Truncate files list
|
|
112
|
+
if (openFiles.length > IDE_MAX_OPEN_FILES) {
|
|
113
|
+
workspaceState.openFiles = openFiles.slice(0, IDE_MAX_OPEN_FILES);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
105
116
|
ideContextState = newIdeContext;
|
|
106
117
|
notifySubscribers();
|
|
107
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ideContext.js","sourceRoot":"","sources":["../../../src/ide/ideContext.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"ideContext.js","sourceRoot":"","sources":["../../../src/ide/ideContext.ts"],"names":[],"mappings":"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"}
|