@google/gemini-cli-core 0.5.0-nightly.20250908.4693137b → 0.5.0-preview

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.
Files changed (133) hide show
  1. package/dist/index.d.ts +3 -2
  2. package/dist/index.js +3 -2
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/config/config.d.ts +12 -3
  5. package/dist/src/config/config.js +46 -7
  6. package/dist/src/config/config.js.map +1 -1
  7. package/dist/src/config/config.test.js +118 -1
  8. package/dist/src/config/config.test.js.map +1 -1
  9. package/dist/src/config/storage.d.ts +1 -0
  10. package/dist/src/config/storage.js +4 -0
  11. package/dist/src/config/storage.js.map +1 -1
  12. package/dist/src/config/storage.test.js +4 -0
  13. package/dist/src/config/storage.test.js.map +1 -1
  14. package/dist/src/core/baseLlmClient.d.ts +45 -0
  15. package/dist/src/core/baseLlmClient.js +88 -0
  16. package/dist/src/core/baseLlmClient.js.map +1 -0
  17. package/dist/src/core/baseLlmClient.test.js +190 -0
  18. package/dist/src/core/baseLlmClient.test.js.map +1 -0
  19. package/dist/src/core/client.d.ts +0 -5
  20. package/dist/src/core/client.js +41 -58
  21. package/dist/src/core/client.js.map +1 -1
  22. package/dist/src/core/client.test.js +32 -39
  23. package/dist/src/core/client.test.js.map +1 -1
  24. package/dist/src/core/coreToolScheduler.js +5 -2
  25. package/dist/src/core/coreToolScheduler.js.map +1 -1
  26. package/dist/src/core/geminiChat.d.ts +0 -5
  27. package/dist/src/core/geminiChat.js +23 -41
  28. package/dist/src/core/geminiChat.js.map +1 -1
  29. package/dist/src/core/geminiChat.test.js +129 -5
  30. package/dist/src/core/geminiChat.test.js.map +1 -1
  31. package/dist/src/fallback/handler.d.ts +7 -0
  32. package/dist/src/fallback/handler.js +51 -0
  33. package/dist/src/fallback/handler.js.map +1 -0
  34. package/dist/src/fallback/handler.test.d.ts +6 -0
  35. package/dist/src/fallback/handler.test.js +130 -0
  36. package/dist/src/fallback/handler.test.js.map +1 -0
  37. package/dist/src/fallback/types.d.ts +14 -0
  38. package/dist/src/fallback/types.js +7 -0
  39. package/dist/src/fallback/types.js.map +1 -0
  40. package/dist/src/generated/git-commit.d.ts +2 -2
  41. package/dist/src/generated/git-commit.js +2 -2
  42. package/dist/src/generated/git-commit.js.map +1 -1
  43. package/dist/src/ide/constants.d.ts +2 -0
  44. package/dist/src/ide/constants.js +2 -0
  45. package/dist/src/ide/constants.js.map +1 -1
  46. package/dist/src/ide/ide-client.d.ts +1 -1
  47. package/dist/src/ide/ide-client.js +61 -2
  48. package/dist/src/ide/ide-client.js.map +1 -1
  49. package/dist/src/ide/ide-client.test.js +147 -1
  50. package/dist/src/ide/ide-client.test.js.map +1 -1
  51. package/dist/src/ide/ideContext.d.ts +1 -264
  52. package/dist/src/ide/ideContext.js +42 -31
  53. package/dist/src/ide/ideContext.js.map +1 -1
  54. package/dist/src/ide/ideContext.test.js +154 -24
  55. package/dist/src/ide/ideContext.test.js.map +1 -1
  56. package/dist/src/ide/process-utils.js +8 -1
  57. package/dist/src/ide/process-utils.js.map +1 -1
  58. package/dist/src/ide/types.d.ts +345 -0
  59. package/dist/src/ide/types.js +65 -0
  60. package/dist/src/ide/types.js.map +1 -0
  61. package/dist/src/index.d.ts +3 -0
  62. package/dist/src/index.js +3 -0
  63. package/dist/src/index.js.map +1 -1
  64. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +6 -2
  65. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +30 -0
  66. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  67. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js +15 -0
  68. package/dist/src/telemetry/clearcut-logger/clearcut-logger.test.js.map +1 -1
  69. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +5 -1
  70. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +11 -0
  71. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  72. package/dist/src/telemetry/constants.d.ts +1 -0
  73. package/dist/src/telemetry/constants.js +1 -0
  74. package/dist/src/telemetry/constants.js.map +1 -1
  75. package/dist/src/telemetry/high-water-mark-tracker.d.ts +43 -0
  76. package/dist/src/telemetry/high-water-mark-tracker.js +88 -0
  77. package/dist/src/telemetry/high-water-mark-tracker.js.map +1 -0
  78. package/dist/src/telemetry/high-water-mark-tracker.test.d.ts +6 -0
  79. package/dist/src/telemetry/high-water-mark-tracker.test.js +152 -0
  80. package/dist/src/telemetry/high-water-mark-tracker.test.js.map +1 -0
  81. package/dist/src/telemetry/index.d.ts +2 -0
  82. package/dist/src/telemetry/index.js +2 -0
  83. package/dist/src/telemetry/index.js.map +1 -1
  84. package/dist/src/telemetry/loggers.d.ts +2 -1
  85. package/dist/src/telemetry/loggers.js +18 -1
  86. package/dist/src/telemetry/loggers.js.map +1 -1
  87. package/dist/src/telemetry/loggers.test.js +38 -3
  88. package/dist/src/telemetry/loggers.test.js.map +1 -1
  89. package/dist/src/telemetry/rate-limiter.d.ts +48 -0
  90. package/dist/src/telemetry/rate-limiter.js +100 -0
  91. package/dist/src/telemetry/rate-limiter.js.map +1 -0
  92. package/dist/src/telemetry/rate-limiter.test.d.ts +6 -0
  93. package/dist/src/telemetry/rate-limiter.test.js +207 -0
  94. package/dist/src/telemetry/rate-limiter.test.js.map +1 -0
  95. package/dist/src/telemetry/types.d.ts +16 -1
  96. package/dist/src/telemetry/types.js +26 -0
  97. package/dist/src/telemetry/types.js.map +1 -1
  98. package/dist/src/tools/mcp-client-manager.js +5 -21
  99. package/dist/src/tools/mcp-client-manager.js.map +1 -1
  100. package/dist/src/tools/ripGrep.d.ts +4 -0
  101. package/dist/src/tools/ripGrep.js +17 -2
  102. package/dist/src/tools/ripGrep.js.map +1 -1
  103. package/dist/src/tools/ripGrep.test.js +57 -5
  104. package/dist/src/tools/ripGrep.test.js.map +1 -1
  105. package/dist/src/tools/smart-edit.js +1 -1
  106. package/dist/src/tools/smart-edit.js.map +1 -1
  107. package/dist/src/tools/smart-edit.test.js +5 -0
  108. package/dist/src/tools/smart-edit.test.js.map +1 -1
  109. package/dist/src/utils/fileUtils.d.ts +1 -0
  110. package/dist/src/utils/fileUtils.js +10 -0
  111. package/dist/src/utils/fileUtils.js.map +1 -1
  112. package/dist/src/utils/fileUtils.test.js +17 -1
  113. package/dist/src/utils/fileUtils.test.js.map +1 -1
  114. package/dist/src/utils/flashFallback.test.d.ts +6 -0
  115. package/dist/src/utils/{flashFallback.integration.test.js → flashFallback.test.js} +31 -27
  116. package/dist/src/utils/flashFallback.test.js.map +1 -0
  117. package/dist/src/utils/gitIgnoreParser.d.ts +1 -0
  118. package/dist/src/utils/gitIgnoreParser.js +33 -24
  119. package/dist/src/utils/gitIgnoreParser.js.map +1 -1
  120. package/dist/src/utils/llm-edit-fixer.d.ts +4 -3
  121. package/dist/src/utils/llm-edit-fixer.js +19 -10
  122. package/dist/src/utils/llm-edit-fixer.js.map +1 -1
  123. package/dist/src/utils/llm-edit-fixer.test.d.ts +6 -0
  124. package/dist/src/utils/llm-edit-fixer.test.js +105 -0
  125. package/dist/src/utils/llm-edit-fixer.test.js.map +1 -0
  126. package/dist/src/utils/promptIdContext.d.ts +7 -0
  127. package/dist/src/utils/promptIdContext.js +8 -0
  128. package/dist/src/utils/promptIdContext.js.map +1 -0
  129. package/dist/tsconfig.tsbuildinfo +1 -1
  130. package/package.json +2 -2
  131. package/dist/google-gemini-cli-core-0.3.4.tgz +0 -0
  132. package/dist/src/utils/flashFallback.integration.test.js.map +0 -1
  133. /package/dist/src/{utils/flashFallback.integration.test.d.ts → core/baseLlmClient.test.d.ts} +0 -0
@@ -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":"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"}
1
+ {"version":3,"file":"ideContext.js","sourceRoot":"","sources":["../../../src/ide/ideContext.ts"],"names":[],"mappings":"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"}
@@ -3,17 +3,22 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { describe, it, expect, beforeEach, vi } from 'vitest';
7
- import { createIdeContextStore, FileSchema, IdeContextSchema, } from './ideContext.js';
6
+ import { IDE_MAX_OPEN_FILES, IDE_MAX_SELECTED_TEXT_LENGTH, } from './constants.js';
7
+ import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
8
+ import { createIdeContextStore } from './ideContext.js';
9
+ import { FileSchema, IdeContextSchema, } from './types.js';
8
10
  describe('ideContext', () => {
9
11
  describe('createIdeContextStore', () => {
10
- let ideContext;
12
+ let ideContextStore;
11
13
  beforeEach(() => {
12
14
  // Create a fresh, isolated instance for each test
13
- ideContext = createIdeContextStore();
15
+ ideContextStore = createIdeContextStore();
16
+ });
17
+ afterEach(() => {
18
+ vi.restoreAllMocks();
14
19
  });
15
20
  it('should return undefined initially for ide context', () => {
16
- expect(ideContext.getIdeContext()).toBeUndefined();
21
+ expect(ideContextStore.getIdeContext()).toBeUndefined();
17
22
  });
18
23
  it('should set and retrieve the ide context', () => {
19
24
  const testFile = {
@@ -28,8 +33,8 @@ describe('ideContext', () => {
28
33
  ],
29
34
  },
30
35
  };
31
- ideContext.setIdeContext(testFile);
32
- const activeFile = ideContext.getIdeContext();
36
+ ideContextStore.setIdeContext(testFile);
37
+ const activeFile = ideContextStore.getIdeContext();
33
38
  expect(activeFile).toEqual(testFile);
34
39
  });
35
40
  it('should update the ide context when called multiple times', () => {
@@ -45,7 +50,7 @@ describe('ideContext', () => {
45
50
  ],
46
51
  },
47
52
  };
48
- ideContext.setIdeContext(firstFile);
53
+ ideContextStore.setIdeContext(firstFile);
49
54
  const secondFile = {
50
55
  workspaceState: {
51
56
  openFiles: [
@@ -58,8 +63,8 @@ describe('ideContext', () => {
58
63
  ],
59
64
  },
60
65
  };
61
- ideContext.setIdeContext(secondFile);
62
- const activeFile = ideContext.getIdeContext();
66
+ ideContextStore.setIdeContext(secondFile);
67
+ const activeFile = ideContextStore.getIdeContext();
63
68
  expect(activeFile).toEqual(secondFile);
64
69
  });
65
70
  it('should handle empty string for file path', () => {
@@ -75,14 +80,14 @@ describe('ideContext', () => {
75
80
  ],
76
81
  },
77
82
  };
78
- ideContext.setIdeContext(testFile);
79
- expect(ideContext.getIdeContext()).toEqual(testFile);
83
+ ideContextStore.setIdeContext(testFile);
84
+ expect(ideContextStore.getIdeContext()).toEqual(testFile);
80
85
  });
81
86
  it('should notify subscribers when ide context changes', () => {
82
87
  const subscriber1 = vi.fn();
83
88
  const subscriber2 = vi.fn();
84
- ideContext.subscribeToIdeContext(subscriber1);
85
- ideContext.subscribeToIdeContext(subscriber2);
89
+ ideContextStore.subscribeToIdeContext(subscriber1);
90
+ ideContextStore.subscribeToIdeContext(subscriber2);
86
91
  const testFile = {
87
92
  workspaceState: {
88
93
  openFiles: [
@@ -95,7 +100,7 @@ describe('ideContext', () => {
95
100
  ],
96
101
  },
97
102
  };
98
- ideContext.setIdeContext(testFile);
103
+ ideContextStore.setIdeContext(testFile);
99
104
  expect(subscriber1).toHaveBeenCalledTimes(1);
100
105
  expect(subscriber1).toHaveBeenCalledWith(testFile);
101
106
  expect(subscriber2).toHaveBeenCalledTimes(1);
@@ -113,7 +118,7 @@ describe('ideContext', () => {
113
118
  ],
114
119
  },
115
120
  };
116
- ideContext.setIdeContext(newFile);
121
+ ideContextStore.setIdeContext(newFile);
117
122
  expect(subscriber1).toHaveBeenCalledTimes(2);
118
123
  expect(subscriber1).toHaveBeenCalledWith(newFile);
119
124
  expect(subscriber2).toHaveBeenCalledTimes(2);
@@ -122,9 +127,9 @@ describe('ideContext', () => {
122
127
  it('should stop notifying a subscriber after unsubscribe', () => {
123
128
  const subscriber1 = vi.fn();
124
129
  const subscriber2 = vi.fn();
125
- const unsubscribe1 = ideContext.subscribeToIdeContext(subscriber1);
126
- ideContext.subscribeToIdeContext(subscriber2);
127
- ideContext.setIdeContext({
130
+ const unsubscribe1 = ideContextStore.subscribeToIdeContext(subscriber1);
131
+ ideContextStore.subscribeToIdeContext(subscriber2);
132
+ ideContextStore.setIdeContext({
128
133
  workspaceState: {
129
134
  openFiles: [
130
135
  {
@@ -139,7 +144,7 @@ describe('ideContext', () => {
139
144
  expect(subscriber1).toHaveBeenCalledTimes(1);
140
145
  expect(subscriber2).toHaveBeenCalledTimes(1);
141
146
  unsubscribe1();
142
- ideContext.setIdeContext({
147
+ ideContextStore.setIdeContext({
143
148
  workspaceState: {
144
149
  openFiles: [
145
150
  {
@@ -167,10 +172,135 @@ describe('ideContext', () => {
167
172
  ],
168
173
  },
169
174
  };
170
- ideContext.setIdeContext(testFile);
171
- expect(ideContext.getIdeContext()).toEqual(testFile);
172
- ideContext.clearIdeContext();
173
- expect(ideContext.getIdeContext()).toBeUndefined();
175
+ ideContextStore.setIdeContext(testFile);
176
+ expect(ideContextStore.getIdeContext()).toEqual(testFile);
177
+ ideContextStore.clearIdeContext();
178
+ expect(ideContextStore.getIdeContext()).toBeUndefined();
179
+ });
180
+ it('should set the context and notify subscribers when no workspaceState is present', () => {
181
+ const subscriber = vi.fn();
182
+ ideContextStore.subscribeToIdeContext(subscriber);
183
+ const context = {};
184
+ ideContextStore.setIdeContext(context);
185
+ expect(ideContextStore.getIdeContext()).toBe(context);
186
+ expect(subscriber).toHaveBeenCalledWith(context);
187
+ });
188
+ it('should handle an empty openFiles array', () => {
189
+ const context = {
190
+ workspaceState: {
191
+ openFiles: [],
192
+ },
193
+ };
194
+ ideContextStore.setIdeContext(context);
195
+ expect(ideContextStore.getIdeContext()?.workspaceState?.openFiles).toEqual([]);
196
+ });
197
+ it('should sort openFiles by timestamp in descending order', () => {
198
+ const context = {
199
+ workspaceState: {
200
+ openFiles: [
201
+ { path: 'file1.ts', timestamp: 100, isActive: false },
202
+ { path: 'file2.ts', timestamp: 300, isActive: true },
203
+ { path: 'file3.ts', timestamp: 200, isActive: false },
204
+ ],
205
+ },
206
+ };
207
+ ideContextStore.setIdeContext(context);
208
+ const openFiles = ideContextStore.getIdeContext()?.workspaceState?.openFiles;
209
+ expect(openFiles?.[0]?.path).toBe('file2.ts');
210
+ expect(openFiles?.[1]?.path).toBe('file3.ts');
211
+ expect(openFiles?.[2]?.path).toBe('file1.ts');
212
+ });
213
+ it('should mark only the most recent file as active and clear other active files', () => {
214
+ const context = {
215
+ workspaceState: {
216
+ openFiles: [
217
+ {
218
+ path: 'file1.ts',
219
+ timestamp: 100,
220
+ isActive: true,
221
+ selectedText: 'hello',
222
+ },
223
+ {
224
+ path: 'file2.ts',
225
+ timestamp: 300,
226
+ isActive: true,
227
+ cursor: { line: 1, character: 1 },
228
+ selectedText: 'hello',
229
+ },
230
+ {
231
+ path: 'file3.ts',
232
+ timestamp: 200,
233
+ isActive: false,
234
+ selectedText: 'hello',
235
+ },
236
+ ],
237
+ },
238
+ };
239
+ ideContextStore.setIdeContext(context);
240
+ const openFiles = ideContextStore.getIdeContext()?.workspaceState?.openFiles;
241
+ expect(openFiles?.[0]?.isActive).toBe(true);
242
+ expect(openFiles?.[0]?.cursor).toBeDefined();
243
+ expect(openFiles?.[0]?.selectedText).toBeDefined();
244
+ expect(openFiles?.[1]?.isActive).toBe(false);
245
+ expect(openFiles?.[1]?.cursor).toBeUndefined();
246
+ expect(openFiles?.[1]?.selectedText).toBeUndefined();
247
+ expect(openFiles?.[2]?.isActive).toBe(false);
248
+ expect(openFiles?.[2]?.cursor).toBeUndefined();
249
+ expect(openFiles?.[2]?.selectedText).toBeUndefined();
250
+ });
251
+ it('should truncate selectedText if it exceeds the max length', () => {
252
+ const longText = 'a'.repeat(IDE_MAX_SELECTED_TEXT_LENGTH + 10);
253
+ const context = {
254
+ workspaceState: {
255
+ openFiles: [
256
+ {
257
+ path: 'file1.ts',
258
+ timestamp: 100,
259
+ isActive: true,
260
+ selectedText: longText,
261
+ },
262
+ ],
263
+ },
264
+ };
265
+ ideContextStore.setIdeContext(context);
266
+ const selectedText = ideContextStore.getIdeContext()?.workspaceState?.openFiles?.[0]
267
+ ?.selectedText;
268
+ expect(selectedText).toHaveLength(IDE_MAX_SELECTED_TEXT_LENGTH + '... [TRUNCATED]'.length);
269
+ expect(selectedText?.endsWith('... [TRUNCATED]')).toBe(true);
270
+ });
271
+ it('should not truncate selectedText if it is within the max length', () => {
272
+ const shortText = 'a'.repeat(IDE_MAX_SELECTED_TEXT_LENGTH);
273
+ const context = {
274
+ workspaceState: {
275
+ openFiles: [
276
+ {
277
+ path: 'file1.ts',
278
+ timestamp: 100,
279
+ isActive: true,
280
+ selectedText: shortText,
281
+ },
282
+ ],
283
+ },
284
+ };
285
+ ideContextStore.setIdeContext(context);
286
+ const selectedText = ideContextStore.getIdeContext()?.workspaceState?.openFiles?.[0]
287
+ ?.selectedText;
288
+ expect(selectedText).toBe(shortText);
289
+ });
290
+ it('should truncate the openFiles list if it exceeds the max length', () => {
291
+ const files = Array.from({ length: IDE_MAX_OPEN_FILES + 5 }, (_, i) => ({
292
+ path: `file${i}.ts`,
293
+ timestamp: i,
294
+ isActive: false,
295
+ }));
296
+ const context = {
297
+ workspaceState: {
298
+ openFiles: files,
299
+ },
300
+ };
301
+ ideContextStore.setIdeContext(context);
302
+ const openFiles = ideContextStore.getIdeContext()?.workspaceState?.openFiles;
303
+ expect(openFiles).toHaveLength(IDE_MAX_OPEN_FILES);
174
304
  });
175
305
  });
176
306
  describe('FileSchema', () => {
@@ -1 +1 @@
1
- {"version":3,"file":"ideContext.test.js","sourceRoot":"","sources":["../../../src/ide/ideContext.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EACL,qBAAqB,EACrB,UAAU,EACV,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAEzB,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;QACrC,IAAI,UAAoD,CAAC;QAEzD,UAAU,CAAC,GAAG,EAAE;YACd,kDAAkD;YAClD,UAAU,GAAG,qBAAqB,EAAE,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;YAC3D,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;YACjD,MAAM,QAAQ,GAAG;gBACf,cAAc,EAAE;oBACd,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,uBAAuB;4BAC7B,QAAQ,EAAE,IAAI;4BACd,YAAY,EAAE,MAAM;4BACpB,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF;aACF,CAAC;YAEF,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAEnC,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;YAClE,MAAM,SAAS,GAAG;gBAChB,cAAc,EAAE;oBACd,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,mBAAmB;4BACzB,QAAQ,EAAE,IAAI;4BACd,YAAY,EAAE,MAAM;4BACpB,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF;aACF,CAAC;YACF,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YAEpC,MAAM,UAAU,GAAG;gBACjB,cAAc,EAAE;oBACd,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,oBAAoB;4BAC1B,QAAQ,EAAE,IAAI;4BACd,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;4BACnC,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF;aACF,CAAC;YACF,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YAErC,MAAM,UAAU,GAAG,UAAU,CAAC,aAAa,EAAE,CAAC;YAC9C,MAAM,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;YAClD,MAAM,QAAQ,GAAG;gBACf,cAAc,EAAE;oBACd,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,EAAE;4BACR,QAAQ,EAAE,IAAI;4BACd,YAAY,EAAE,MAAM;4BACpB,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF;aACF,CAAC;YACF,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACnC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;YAC5D,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAE5B,UAAU,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAC9C,UAAU,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAE9C,MAAM,QAAQ,GAAG;gBACf,cAAc,EAAE;oBACd,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,wBAAwB;4BAC9B,QAAQ,EAAE,IAAI;4BACd,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;4BACnC,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF;aACF,CAAC;YACF,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAEnC,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACnD,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YAEnD,2BAA2B;YAC3B,MAAM,OAAO,GAAG;gBACd,cAAc,EAAE;oBACd,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,iBAAiB;4BACvB,QAAQ,EAAE,IAAI;4BACd,YAAY,EAAE,MAAM;4BACpB,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF;aACF,CAAC;YACF,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;YAElC,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;YAClD,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACpD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sDAAsD,EAAE,GAAG,EAAE;YAC9D,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5B,MAAM,WAAW,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;YAE5B,MAAM,YAAY,GAAG,UAAU,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YACnE,UAAU,CAAC,qBAAqB,CAAC,WAAW,CAAC,CAAC;YAE9C,UAAU,CAAC,aAAa,CAAC;gBACvB,cAAc,EAAE;oBACd,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,oBAAoB;4BAC1B,QAAQ,EAAE,IAAI;4BACd,YAAY,EAAE,MAAM;4BACpB,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF;aACF,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YAE7C,YAAY,EAAE,CAAC;YAEf,UAAU,CAAC,aAAa,CAAC;gBACvB,cAAc,EAAE;oBACd,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,oBAAoB;4BAC1B,QAAQ,EAAE,IAAI;4BACd,YAAY,EAAE,MAAM;4BACpB,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF;aACF,CAAC,CAAC;YACH,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,6BAA6B;YAC3E,MAAM,CAAC,WAAW,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8BAA8B,EAAE,GAAG,EAAE;YACtC,MAAM,QAAQ,GAAG;gBACf,cAAc,EAAE;oBACd,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,uBAAuB;4BAC7B,QAAQ,EAAE,IAAI;4BACd,YAAY,EAAE,MAAM;4BACpB,SAAS,EAAE,CAAC;yBACb;qBACF;iBACF;aACF,CAAC;YAEF,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAEnC,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAErD,UAAU,CAAC,eAAe,EAAE,CAAC;YAE7B,MAAM,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,CAAC,aAAa,EAAE,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;QAC1B,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,IAAI,GAAG;gBACX,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,KAAK;aACjB,CAAC;YACF,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;YAChD,MAAM,IAAI,GAAG;gBACX,IAAI,EAAE,kBAAkB;gBACxB,SAAS,EAAE,KAAK;gBAChB,QAAQ,EAAE,IAAI;gBACd,YAAY,EAAE,cAAc;gBAC5B,MAAM,EAAE;oBACN,IAAI,EAAE,EAAE;oBACR,SAAS,EAAE,EAAE;iBACd;aACF,CAAC;YACF,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;YACnD,MAAM,IAAI,GAAG;gBACX,SAAS,EAAE,KAAK;aACjB,CAAC;YACF,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,gDAAgD,EAAE,GAAG,EAAE;YACxD,MAAM,IAAI,GAAG;gBACX,IAAI,EAAE,kBAAkB;aACzB,CAAC;YACF,MAAM,MAAM,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YAC1C,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;QAChC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;YAC1C,MAAM,OAAO,GAAG,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;YAChE,MAAM,OAAO,GAAG;gBACd,cAAc,EAAE,EAAE;aACnB,CAAC;YACF,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yDAAyD,EAAE,GAAG,EAAE;YACjE,MAAM,OAAO,GAAG;gBACd,cAAc,EAAE;oBACd,SAAS,EAAE,EAAE;iBACd;aACF,CAAC;YACF,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,OAAO,GAAG;gBACd,cAAc,EAAE;oBACd,SAAS,EAAE;wBACT;4BACE,IAAI,EAAE,kBAAkB;4BACxB,SAAS,EAAE,KAAK;yBACjB;qBACF;iBACF;aACF,CAAC;YACF,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;YACrD,MAAM,OAAO,GAAG;gBACd,cAAc,EAAE;oBACd,SAAS,EAAE;wBACT;4BACE,SAAS,EAAE,KAAK,EAAE,kBAAkB;yBACrC;qBACF;iBACF;aACF,CAAC;YACF,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YACnD,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"ideContext.test.js","sourceRoot":"","sources":["../../../src/ide/ideContext.test.ts"],"names":[],"mappings":"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"}
@@ -33,12 +33,19 @@ async function getProcessInfo(pid) {
33
33
  if (!output)
34
34
  return { parentPid: 0, name: '', command: '' };
35
35
  const { Name = '', ParentProcessId = 0, CommandLine = '', } = JSON.parse(output);
36
- return { parentPid: ParentProcessId, name: Name, command: CommandLine };
36
+ return {
37
+ parentPid: ParentProcessId,
38
+ name: Name,
39
+ command: CommandLine ?? '',
40
+ };
37
41
  }
38
42
  else {
39
43
  const command = `ps -o ppid=,command= -p ${pid}`;
40
44
  const { stdout } = await execAsync(command);
41
45
  const trimmedStdout = stdout.trim();
46
+ if (!trimmedStdout) {
47
+ return { parentPid: 0, name: '', command: '' };
48
+ }
42
49
  const ppidString = trimmedStdout.split(/\s+/)[0];
43
50
  const parentPid = parseInt(ppidString, 10);
44
51
  const fullCommand = trimmedStdout.substring(ppidString.length).trim();
@@ -1 +1 @@
1
- {"version":3,"file":"process-utils.js","sourceRoot":"","sources":["../../../src/ide/process-utils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;AAElC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AAE/B;;;;;GAKG;AACH,KAAK,UAAU,cAAc,CAAC,GAAW;IAKvC,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC/B,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;YACzB,MAAM,iBAAiB,GAAG;gBACxB,oCAAoC;gBACpC,sBAAsB,GAAG,GAAG;gBAC5B,gCAAgC;gBAChC,WAAW;gBACX,+EAA+E;gBAC/E,kBAAkB;gBAClB,GAAG;aACJ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACZ,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,eAAe,iBAAiB,GAAG,CAAC,CAAC;YACxE,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM;gBAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;YAC5D,MAAM,EACJ,IAAI,GAAG,EAAE,EACT,eAAe,GAAG,CAAC,EACnB,WAAW,GAAG,EAAE,GACjB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YACvB,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;QAC1E,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,2BAA2B,GAAG,EAAE,CAAC;YACjD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;YACpC,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACjD,MAAM,SAAS,GAAG,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC3C,MAAM,WAAW,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;YACtE,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,OAAO;gBACL,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;gBAC3C,IAAI,EAAE,WAAW;gBACjB,OAAO,EAAE,WAAW;aACrB,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,OAAO,CAAC,KAAK,CAAC,sCAAsC,GAAG,GAAG,EAAE,EAAE,CAAC,CAAC;QAChE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACjD,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,KAAK,UAAU,wBAAwB;IAIrC,MAAM,MAAM,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3E,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAE7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;YAE7D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;YACvD,IAAI,OAAO,EAAE,CAAC;gBACZ,qEAAqE;gBACrE,qEAAqE;gBACrE,oDAAoD;gBACpD,IAAI,MAAM,GAAG,SAAS,CAAC;gBACvB,IAAI,CAAC;oBACH,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;oBACtE,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;wBACvB,MAAM,GAAG,cAAc,CAAC;oBAC1B,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,sEAAsE;gBACxE,CAAC;gBACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,CAAC;gBACjD,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YAClC,CAAC;YAED,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,mBAAmB;YAC5B,CAAC;YACD,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;YACxB,MAAM;QACR,CAAC;IACH,CAAC;IAED,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,2BAA2B;IAIxC,IAAI,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC;IAC7B,IAAI,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC;IAE9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,mBAAmB,EAAE,CAAC,EAAE,EAAE,CAAC;QAC7C,IAAI,CAAC;YACH,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;YAEvD,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;gBAClB,IAAI,CAAC;oBACH,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,GAAG,MAAM,cAAc,CAAC,SAAS,CAAC,CAAC;oBACtE,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;wBACzB,iEAAiE;wBACjE,6DAA6D;wBAC7D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,cAAc,CAAC,WAAW,CAAC,CAAC;wBACtD,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;oBACvC,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,sCAAsC;gBACxC,CAAC;YACH,CAAC;YAED,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;gBACnB,MAAM,CAAC,mBAAmB;YAC5B,CAAC;YACD,WAAW,GAAG,UAAU,CAAC;YACzB,UAAU,GAAG,SAAS,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;YACxB,MAAM;QACR,CAAC;IACH,CAAC;IACD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,cAAc,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;AACtC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB;IAIrC,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE/B,IAAI,QAAQ,KAAK,OAAO,EAAE,CAAC;QACzB,OAAO,2BAA2B,EAAE,CAAC;IACvC,CAAC;IAED,OAAO,wBAAwB,EAAE,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"process-utils.js","sourceRoot":"","sources":["../../../src/ide/process-utils.ts"],"names":[],"mappings":"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"}