@vybestack/llxprt-code-core 0.1.19-gamma → 0.1.20

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 (184) hide show
  1. package/README.md +9 -0
  2. package/dist/index.js +1 -0
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/auth/anthropic-device-flow.d.ts +1 -1
  5. package/dist/src/auth/anthropic-device-flow.js +4 -2
  6. package/dist/src/auth/anthropic-device-flow.js.map +1 -1
  7. package/dist/src/code_assist/converter.d.ts +2 -2
  8. package/dist/src/code_assist/converter.js +1 -1
  9. package/dist/src/code_assist/converter.js.map +1 -1
  10. package/dist/src/code_assist/setup.js +49 -15
  11. package/dist/src/code_assist/setup.js.map +1 -1
  12. package/dist/src/config/config.d.ts +9 -6
  13. package/dist/src/config/config.js +28 -22
  14. package/dist/src/config/config.js.map +1 -1
  15. package/dist/src/core/client.d.ts +8 -3
  16. package/dist/src/core/client.js +177 -38
  17. package/dist/src/core/client.js.map +1 -1
  18. package/dist/src/core/contentGenerator.js +0 -2
  19. package/dist/src/core/contentGenerator.js.map +1 -1
  20. package/dist/src/core/coreToolScheduler.d.ts +0 -1
  21. package/dist/src/core/coreToolScheduler.js +0 -3
  22. package/dist/src/core/coreToolScheduler.js.map +1 -1
  23. package/dist/src/core/geminiChat.js +57 -5
  24. package/dist/src/core/geminiChat.js.map +1 -1
  25. package/dist/src/core/loggingContentGenerator.d.ts +5 -0
  26. package/dist/src/core/loggingContentGenerator.js +9 -1
  27. package/dist/src/core/loggingContentGenerator.js.map +1 -1
  28. package/dist/src/core/nonInteractiveToolExecutor.js +158 -3
  29. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  30. package/dist/src/core/prompts.js +19 -2
  31. package/dist/src/core/prompts.js.map +1 -1
  32. package/dist/src/filters/EmojiFilter.d.ts +122 -0
  33. package/dist/src/filters/EmojiFilter.js +327 -0
  34. package/dist/src/filters/EmojiFilter.js.map +1 -0
  35. package/dist/src/ide/detect-ide.d.ts +12 -2
  36. package/dist/src/ide/detect-ide.js +64 -5
  37. package/dist/src/ide/detect-ide.js.map +1 -1
  38. package/dist/src/ide/ide-client.js +22 -15
  39. package/dist/src/ide/ide-client.js.map +1 -1
  40. package/dist/src/ide/ide-installer.js +1 -26
  41. package/dist/src/ide/ide-installer.js.map +1 -1
  42. package/dist/src/ide/ideContext.d.ts +6 -6
  43. package/dist/src/index.d.ts +4 -1
  44. package/dist/src/index.js +4 -1
  45. package/dist/src/index.js.map +1 -1
  46. package/dist/src/mcp/oauth-provider.d.ts +0 -1
  47. package/dist/src/mcp/oauth-provider.js +2 -3
  48. package/dist/src/mcp/oauth-provider.js.map +1 -1
  49. package/dist/src/prompt-config/defaults/core-defaults.d.ts +1 -1
  50. package/dist/src/prompt-config/defaults/core-defaults.js +205 -326
  51. package/dist/src/prompt-config/defaults/core-defaults.js.map +1 -1
  52. package/dist/src/prompt-config/defaults/core.md +1 -1
  53. package/dist/src/prompt-config/defaults/provider-defaults.d.ts +1 -1
  54. package/dist/src/prompt-config/defaults/provider-defaults.js +172 -19
  55. package/dist/src/prompt-config/defaults/provider-defaults.js.map +1 -1
  56. package/dist/src/prompt-config/defaults/providers/anthropic/core.md +81 -0
  57. package/dist/src/prompt-config/defaults/providers/anthropic/tools/glob.md +34 -0
  58. package/dist/src/prompt-config/defaults/providers/anthropic/tools/list-directory.md +11 -0
  59. package/dist/src/prompt-config/defaults/providers/anthropic/tools/read-file.md +14 -0
  60. package/dist/src/prompt-config/defaults/providers/anthropic/tools/read-many-files.md +31 -0
  61. package/dist/src/prompt-config/defaults/providers/anthropic/tools/replace.md +41 -0
  62. package/dist/src/prompt-config/defaults/providers/anthropic/tools/run-shell-command.md +32 -0
  63. package/dist/src/prompt-config/defaults/providers/anthropic/tools/save-memory.md +35 -0
  64. package/dist/src/prompt-config/defaults/providers/anthropic/tools/search-file-content.md +44 -0
  65. package/dist/src/prompt-config/defaults/providers/anthropic/tools/todo-write.md +45 -0
  66. package/dist/src/prompt-config/defaults/providers/anthropic/tools/write-file.md +11 -0
  67. package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/core.md +273 -10
  68. package/dist/src/prompt-config/defaults/providers/gemini/models/gemini-2.5-flash/gemini-2-5-flash/core.md +278 -0
  69. package/dist/src/prompt-config/defaults/tool-defaults.d.ts +1 -1
  70. package/dist/src/prompt-config/defaults/tool-defaults.js +184 -75
  71. package/dist/src/prompt-config/defaults/tool-defaults.js.map +1 -1
  72. package/dist/src/prompt-config/defaults/tools/read-file.md +1 -1
  73. package/dist/src/prompt-config/prompt-service.d.ts +1 -1
  74. package/dist/src/prompt-config/prompt-service.js +5 -3
  75. package/dist/src/prompt-config/prompt-service.js.map +1 -1
  76. package/dist/src/providers/BaseProvider.js +1 -1
  77. package/dist/src/providers/BaseProvider.js.map +1 -1
  78. package/dist/src/providers/LoggingProviderWrapper.js +0 -12
  79. package/dist/src/providers/LoggingProviderWrapper.js.map +1 -1
  80. package/dist/src/providers/ProviderContentGenerator.d.ts +2 -2
  81. package/dist/src/providers/ProviderContentGenerator.js +5 -3
  82. package/dist/src/providers/ProviderContentGenerator.js.map +1 -1
  83. package/dist/src/providers/adapters/GeminiCompatibleWrapper.js +1 -1
  84. package/dist/src/providers/adapters/GeminiCompatibleWrapper.js.map +1 -1
  85. package/dist/src/providers/anthropic/AnthropicProvider.d.ts +1 -1
  86. package/dist/src/providers/anthropic/AnthropicProvider.js +97 -35
  87. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  88. package/dist/src/providers/gemini/GeminiProvider.d.ts +4 -5
  89. package/dist/src/providers/gemini/GeminiProvider.js +21 -26
  90. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  91. package/dist/src/providers/openai/OpenAIProvider.js +2 -1
  92. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  93. package/dist/src/providers/openai/parseResponsesStream.js +6 -6
  94. package/dist/src/providers/openai/parseResponsesStream.js.map +1 -1
  95. package/dist/src/services/loopDetectionService.js +4 -5
  96. package/dist/src/services/loopDetectionService.js.map +1 -1
  97. package/dist/src/services/todo-context-tracker.d.ts +1 -1
  98. package/dist/src/services/todo-context-tracker.js +5 -3
  99. package/dist/src/services/todo-context-tracker.js.map +1 -1
  100. package/dist/src/settings/SettingsService.js.map +1 -1
  101. package/dist/src/settings/types.d.ts +16 -0
  102. package/dist/src/telemetry/integration.test.circular.js +2 -40
  103. package/dist/src/telemetry/integration.test.circular.js.map +1 -1
  104. package/dist/src/telemetry/loggers.js +0 -20
  105. package/dist/src/telemetry/loggers.js.map +1 -1
  106. package/dist/src/telemetry/sdk.d.ts +1 -1
  107. package/dist/src/telemetry/sdk.js +13 -29
  108. package/dist/src/telemetry/sdk.js.map +1 -1
  109. package/dist/src/test-utils/tools.js +2 -2
  110. package/dist/src/test-utils/tools.js.map +1 -1
  111. package/dist/src/tools/edit.js +91 -27
  112. package/dist/src/tools/edit.js.map +1 -1
  113. package/dist/src/tools/glob.js +9 -10
  114. package/dist/src/tools/glob.js.map +1 -1
  115. package/dist/src/tools/grep.js +8 -9
  116. package/dist/src/tools/grep.js.map +1 -1
  117. package/dist/src/tools/ls.d.ts +3 -22
  118. package/dist/src/tools/ls.js +84 -114
  119. package/dist/src/tools/ls.js.map +1 -1
  120. package/dist/src/tools/mcp-client.js +2 -2
  121. package/dist/src/tools/mcp-client.js.map +1 -1
  122. package/dist/src/tools/mcp-tool.d.ts +6 -13
  123. package/dist/src/tools/mcp-tool.js +41 -31
  124. package/dist/src/tools/mcp-tool.js.map +1 -1
  125. package/dist/src/tools/memoryTool.d.ts +9 -13
  126. package/dist/src/tools/memoryTool.js +127 -121
  127. package/dist/src/tools/memoryTool.js.map +1 -1
  128. package/dist/src/tools/read-file.js +7 -8
  129. package/dist/src/tools/read-file.js.map +1 -1
  130. package/dist/src/tools/read-many-files.d.ts +4 -6
  131. package/dist/src/tools/read-many-files.js +118 -111
  132. package/dist/src/tools/read-many-files.js.map +1 -1
  133. package/dist/src/tools/shell.d.ts +7 -14
  134. package/dist/src/tools/shell.js +120 -117
  135. package/dist/src/tools/shell.js.map +1 -1
  136. package/dist/src/tools/todo-pause.js +2 -2
  137. package/dist/src/tools/todo-pause.js.map +1 -1
  138. package/dist/src/tools/todo-read.js +8 -8
  139. package/dist/src/tools/todo-read.js.map +1 -1
  140. package/dist/src/tools/todo-write.js +2 -2
  141. package/dist/src/tools/todo-write.js.map +1 -1
  142. package/dist/src/tools/tool-registry.d.ts +6 -15
  143. package/dist/src/tools/tool-registry.js +17 -74
  144. package/dist/src/tools/tool-registry.js.map +1 -1
  145. package/dist/src/tools/tools.d.ts +20 -19
  146. package/dist/src/tools/tools.js +21 -20
  147. package/dist/src/tools/tools.js.map +1 -1
  148. package/dist/src/tools/web-fetch.d.ts +4 -7
  149. package/dist/src/tools/web-fetch.js +81 -83
  150. package/dist/src/tools/web-fetch.js.map +1 -1
  151. package/dist/src/tools/web-search.js +26 -9
  152. package/dist/src/tools/web-search.js.map +1 -1
  153. package/dist/src/tools/write-file.d.ts +2 -1
  154. package/dist/src/tools/write-file.js +89 -29
  155. package/dist/src/tools/write-file.js.map +1 -1
  156. package/dist/src/utils/editCorrector.js +8 -9
  157. package/dist/src/utils/editCorrector.js.map +1 -1
  158. package/dist/src/utils/errorParsing.d.ts +8 -0
  159. package/dist/src/utils/errorParsing.js +109 -0
  160. package/dist/src/utils/errorParsing.js.map +1 -0
  161. package/dist/src/utils/filesearch/fileSearch.js +1 -1
  162. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  163. package/dist/src/utils/filesearch/result-cache.d.ts +1 -2
  164. package/dist/src/utils/filesearch/result-cache.js +1 -3
  165. package/dist/src/utils/filesearch/result-cache.js.map +1 -1
  166. package/dist/src/utils/memoryImportProcessor.js +1 -1
  167. package/dist/src/utils/memoryImportProcessor.js.map +1 -1
  168. package/dist/src/utils/nextSpeakerChecker.js +3 -4
  169. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  170. package/dist/src/utils/quotaErrorDetection.d.ts +1 -5
  171. package/dist/src/utils/quotaErrorDetection.js.map +1 -1
  172. package/dist/src/utils/schemaValidator.d.ts +1 -9
  173. package/dist/src/utils/schemaValidator.js +1 -109
  174. package/dist/src/utils/schemaValidator.js.map +1 -1
  175. package/package.json +2 -2
  176. package/dist/src/core/modelCheck.d.ts +0 -14
  177. package/dist/src/core/modelCheck.js +0 -62
  178. package/dist/src/core/modelCheck.js.map +0 -1
  179. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +0 -48
  180. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +0 -577
  181. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +0 -1
  182. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +0 -58
  183. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +0 -157
  184. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +0 -1
@@ -0,0 +1,327 @@
1
+ /**
2
+ * EmojiFilter - Filters emojis from text content based on configuration
3
+ * Implementation stub based on pseudocode lines 01-186
4
+ */
5
+ /**
6
+ * EmojiFilter class for filtering emojis from various content types
7
+ * @pseudocode lines 01-186
8
+ */
9
+ export class EmojiFilter {
10
+ patterns;
11
+ conversions;
12
+ buffer;
13
+ config;
14
+ /**
15
+ * Creates new EmojiFilter instance
16
+ * @param config Filter configuration
17
+ * @pseudocode lines 07-12
18
+ */
19
+ constructor(config) {
20
+ this.config = config;
21
+ this.patterns = this.compileEmojiPatterns();
22
+ this.conversions = this.loadConversionMap();
23
+ this.buffer = '';
24
+ }
25
+ /**
26
+ * Filters text content for emojis
27
+ * @param text Text to filter
28
+ * @returns Filter result with processed text
29
+ * @pseudocode lines 14-45
30
+ */
31
+ filterText(text) {
32
+ if (this.config.mode === 'allowed') {
33
+ return { filtered: text, emojiDetected: false, blocked: false };
34
+ }
35
+ const emojiDetected = this.detectEmojis(text);
36
+ if (!emojiDetected) {
37
+ return { filtered: text, emojiDetected: false, blocked: false };
38
+ }
39
+ if (this.config.mode === 'error') {
40
+ return {
41
+ filtered: null,
42
+ emojiDetected: true,
43
+ blocked: true,
44
+ error: 'Emojis detected in content',
45
+ };
46
+ }
47
+ let filtered = this.applyConversions(text);
48
+ filtered = this.removeDecorativeEmojis(filtered);
49
+ /**
50
+ * @requirement REQ-004.1 - Silent filtering in auto mode
51
+ */
52
+ return {
53
+ filtered,
54
+ emojiDetected: true,
55
+ blocked: false,
56
+ systemFeedback: this.config.mode === 'warn'
57
+ ? 'Emojis were detected and removed. Please avoid using emojis.'
58
+ : undefined,
59
+ };
60
+ }
61
+ /**
62
+ * Filters streaming text chunks for emojis
63
+ * @param chunk Text chunk to filter
64
+ * @returns Filter result with processed chunk
65
+ * @pseudocode lines 47-60
66
+ */
67
+ filterStreamChunk(chunk) {
68
+ const combined = this.buffer + chunk;
69
+ const lastBoundary = this.findLastSafeBoundary(combined);
70
+ if (lastBoundary === -1 || lastBoundary === 0) {
71
+ this.buffer = combined;
72
+ // In error mode, check if buffer has emojis and return error immediately
73
+ if (this.config.mode === 'error' && this.detectEmojis(combined)) {
74
+ return {
75
+ filtered: null,
76
+ emojiDetected: true,
77
+ blocked: true,
78
+ error: 'Emojis detected in content',
79
+ };
80
+ }
81
+ return { filtered: '', emojiDetected: false, blocked: false };
82
+ }
83
+ const toProcess = combined.substring(0, lastBoundary);
84
+ this.buffer = combined.substring(lastBoundary);
85
+ return this.filterText(toProcess);
86
+ }
87
+ /**
88
+ * Filters tool arguments for emojis
89
+ * @param args Tool arguments object
90
+ * @returns Filter result with processed arguments
91
+ * @pseudocode lines 62-95
92
+ */
93
+ filterToolArgs(args) {
94
+ if (this.config.mode === 'allowed') {
95
+ return { filtered: args, emojiDetected: false, blocked: false };
96
+ }
97
+ const stringified = JSON.stringify(args);
98
+ const emojiDetected = this.detectEmojis(stringified);
99
+ if (!emojiDetected) {
100
+ return { filtered: args, emojiDetected: false, blocked: false };
101
+ }
102
+ if (this.config.mode === 'error') {
103
+ return {
104
+ filtered: null,
105
+ emojiDetected: true,
106
+ blocked: true,
107
+ error: 'Cannot execute tool with emojis in parameters',
108
+ };
109
+ }
110
+ const filteredArgs = this.deepFilterObject(args);
111
+ /**
112
+ * @requirement REQ-004.1 - Silent filtering in auto mode
113
+ */
114
+ return {
115
+ filtered: filteredArgs,
116
+ emojiDetected: true,
117
+ blocked: false,
118
+ systemFeedback: this.config.mode === 'warn'
119
+ ? 'Emojis were detected and removed from your tool call. Please avoid using emojis in tool parameters.'
120
+ : undefined,
121
+ };
122
+ }
123
+ /**
124
+ * Filters file content for emojis
125
+ * @param content File content to filter
126
+ * @param toolName Name of the tool writing the file
127
+ * @returns Filter result with processed content
128
+ * @pseudocode lines 97-128
129
+ */
130
+ filterFileContent(content, toolName) {
131
+ if (this.config.mode === 'allowed') {
132
+ return { filtered: content, emojiDetected: false, blocked: false };
133
+ }
134
+ const emojiDetected = this.detectEmojis(content);
135
+ if (!emojiDetected) {
136
+ return { filtered: content, emojiDetected: false, blocked: false };
137
+ }
138
+ if (this.config.mode === 'error') {
139
+ return {
140
+ filtered: null,
141
+ emojiDetected: true,
142
+ blocked: true,
143
+ error: 'Cannot write emojis to code files',
144
+ };
145
+ }
146
+ let filtered = this.applyConversions(content);
147
+ filtered = this.removeDecorativeEmojis(filtered);
148
+ /**
149
+ * @requirement REQ-004.1 - Silent filtering in auto mode
150
+ */
151
+ return {
152
+ filtered,
153
+ emojiDetected: true,
154
+ blocked: false,
155
+ systemFeedback: this.config.mode === 'warn'
156
+ ? `Emojis were removed from ${toolName} content. Please avoid using emojis in code.`
157
+ : undefined,
158
+ };
159
+ }
160
+ /**
161
+ * Flushes remaining buffered content
162
+ * @returns Remaining filtered content
163
+ * @pseudocode lines 130-138
164
+ */
165
+ flushBuffer() {
166
+ const remaining = this.buffer;
167
+ this.buffer = '';
168
+ if (remaining.length > 0) {
169
+ const result = this.filterText(remaining);
170
+ return (typeof result.filtered === 'string' ? result.filtered : '') || '';
171
+ }
172
+ return '';
173
+ }
174
+ /**
175
+ * Detects if text contains emojis
176
+ * @param text Text to check
177
+ * @returns True if emojis detected
178
+ * @pseudocode lines 140-147
179
+ */
180
+ detectEmojis(text) {
181
+ for (const pattern of this.patterns) {
182
+ // Reset lastIndex to ensure test starts from beginning
183
+ pattern.lastIndex = 0;
184
+ if (pattern.test(text)) {
185
+ return true;
186
+ }
187
+ }
188
+ return false;
189
+ }
190
+ /**
191
+ * Applies emoji-to-text conversions
192
+ * @param text Text to convert
193
+ * @returns Text with emojis converted
194
+ * @pseudocode lines 149-155
195
+ */
196
+ applyConversions(text) {
197
+ let result = text;
198
+ for (const [emoji, replacement] of this.conversions) {
199
+ result = result.replaceAll(emoji, replacement);
200
+ }
201
+ return result;
202
+ }
203
+ /**
204
+ * Removes decorative emojis from text
205
+ * @param text Text to clean
206
+ * @returns Text with decorative emojis removed
207
+ * @pseudocode lines 157-163
208
+ */
209
+ removeDecorativeEmojis(text) {
210
+ // Remove ALL emojis using comprehensive Unicode patterns
211
+ // Note: Functional emojis (✅, ✓, ⚠️, ❌, ⚡) are already converted by applyConversions
212
+ let result = text;
213
+ // Apply each pattern to remove emojis
214
+ for (const pattern of this.patterns) {
215
+ result = result.replace(new RegExp(pattern.source, pattern.flags), '');
216
+ }
217
+ return result;
218
+ }
219
+ /**
220
+ * Finds last safe boundary to avoid splitting multi-byte characters
221
+ * @param text Text to analyze
222
+ * @returns Safe boundary position or -1 if none found
223
+ * @pseudocode lines 165-180
224
+ */
225
+ findLastSafeBoundary(text) {
226
+ const length = text.length;
227
+ if (length === 0) {
228
+ return -1;
229
+ }
230
+ // If text contains emojis, be more conservative about boundaries
231
+ const hasEmojis = this.detectEmojis(text);
232
+ // Special case: if text ends with known complete words (common endings)
233
+ const endsWithKnownCompleteWords = /(?:done|completed|finished|success|error|failed|ready|developer|warnings)$/i.test(text);
234
+ if (endsWithKnownCompleteWords) {
235
+ return length;
236
+ }
237
+ // If we have emojis in the text, be very conservative - only process
238
+ // when we have known complete words or strong punctuation
239
+ if (hasEmojis) {
240
+ const endsWithPunctuation = /[.!?]$/.test(text);
241
+ if (endsWithPunctuation) {
242
+ return length;
243
+ }
244
+ return -1;
245
+ }
246
+ // For text without emojis, check if text ends with clear termination
247
+ const endsWithPunctuation = /[.!?]$/.test(text);
248
+ const endsWithSpace = /\s$/.test(text);
249
+ // Process text if it ends with punctuation or whitespace
250
+ if (endsWithPunctuation || endsWithSpace) {
251
+ return length;
252
+ }
253
+ // Otherwise buffer - text might be incomplete (like 'tas' from 'task')
254
+ return -1;
255
+ }
256
+ /**
257
+ * Compiles emoji detection patterns
258
+ * @returns Array of compiled regex patterns
259
+ * @pseudocode line 09
260
+ */
261
+ compileEmojiPatterns() {
262
+ return [
263
+ // Unicode emoji ranges for comprehensive detection
264
+ /[\u{1F300}-\u{1F9FF}]/gu, // Miscellaneous Symbols and Pictographs + Supplemental Symbols
265
+ /[\u{1FA00}-\u{1FAFF}]/gu, // Extended Symbols and Pictographs (includes magic wand, rock, blood, planet, berries, vegetables, teapot, beans, jar)
266
+ /[\u{2600}-\u{26FF}]/gu, // Miscellaneous Symbols
267
+ /[\u{2700}-\u{27BF}]/gu, // Dingbats
268
+ /[\u{1F170}-\u{1F1FF}]/gu, // Enclosed Alphanumeric Supplement (includes 🆙 U+1F199) and Regional Indicators
269
+ /[\u{1F600}-\u{1F64F}]/gu, // Emoticons
270
+ /[\u{1F680}-\u{1F6FF}]/gu, // Transport and Map Symbols
271
+ /[\u{23E9}-\u{23FF}]/gu, // Additional symbols including ⏳ (hourglass)
272
+ // Specific functional emojis that might not be caught by ranges
273
+ /[\u2705\u2713\u26A0\u274C\u26A1]|\u26A0\uFE0F/gu,
274
+ // Variation selectors and combining characters often used with emojis
275
+ /[\uFE0E\uFE0F]/gu, // Variation selectors
276
+ /[\u200D]/gu, // Zero-width joiner
277
+ ];
278
+ }
279
+ /**
280
+ * Loads emoji-to-text conversion map
281
+ * @returns Map of emoji conversions
282
+ * @pseudocode line 10
283
+ */
284
+ loadConversionMap() {
285
+ return new Map([
286
+ ['✅', '[OK]'], // ✅ -> [OK]
287
+ ['✓', '[OK]'], // ✓ -> [OK]
288
+ ['⚠️', 'WARNING:'], // ⚠️ -> WARNING:
289
+ ['❌', '[ERROR]'], // ❌ -> [ERROR]
290
+ ['⚡', '[ACTION]'], // ⚡ -> [ACTION]
291
+ ['🪄', '[MAGIC]'], // 🪄 -> [MAGIC]
292
+ ['🆙', '[UP]'], // 🆙 -> [UP]
293
+ ['🪨', '[ROCK]'], // 🪨 -> [ROCK]
294
+ ['🩸', '[BLOOD]'], // 🩸 -> [BLOOD]
295
+ ['🪐', '[PLANET]'], // 🪐 -> [PLANET]
296
+ ['🫐', '[BLUEBERRIES]'], // 🫐 -> [BLUEBERRIES]
297
+ ['🫒', '[OLIVE]'], // 🫒 -> [OLIVE]
298
+ ['🫑', '[BELL_PEPPER]'], // 🫑 -> [BELL_PEPPER]
299
+ ['🫖', '[TEAPOT]'], // 🫖 -> [TEAPOT]
300
+ ['🫘', '[BEANS]'], // 🫘 -> [BEANS]
301
+ ['🫙', '[JAR]'], // 🫙 -> [JAR]
302
+ // Note: 📝 is treated as decorative in the tests, not functional
303
+ ]);
304
+ }
305
+ /**
306
+ * Recursively filters emojis from object properties
307
+ * @param obj Object to filter
308
+ * @returns Filtered object
309
+ */
310
+ deepFilterObject(obj) {
311
+ if (typeof obj === 'string') {
312
+ return this.filterText(obj).filtered;
313
+ }
314
+ if (Array.isArray(obj)) {
315
+ return obj.map((item) => this.deepFilterObject(item));
316
+ }
317
+ if (obj && typeof obj === 'object') {
318
+ const filtered = {};
319
+ for (const [key, value] of Object.entries(obj)) {
320
+ filtered[key] = this.deepFilterObject(value);
321
+ }
322
+ return filtered;
323
+ }
324
+ return obj;
325
+ }
326
+ }
327
+ //# sourceMappingURL=EmojiFilter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmojiFilter.js","sourceRoot":"","sources":["../../../src/filters/EmojiFilter.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,17 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  export declare enum DetectedIde {
7
- VSCode = "vscode"
7
+ Devin = "devin",
8
+ Replit = "replit",
9
+ VSCode = "vscode",
10
+ Cursor = "cursor",
11
+ CloudShell = "cloudshell",
12
+ Codespaces = "codespaces",
13
+ FirebaseStudio = "firebasestudio",
14
+ Trae = "trae"
8
15
  }
9
- export declare function getIdeDisplayName(ide: DetectedIde): string;
16
+ export interface IdeInfo {
17
+ displayName: string;
18
+ }
19
+ export declare function getIdeInfo(ide: DetectedIde): IdeInfo;
10
20
  export declare function detectIde(): DetectedIde | undefined;
@@ -5,12 +5,49 @@
5
5
  */
6
6
  export var DetectedIde;
7
7
  (function (DetectedIde) {
8
+ DetectedIde["Devin"] = "devin";
9
+ DetectedIde["Replit"] = "replit";
8
10
  DetectedIde["VSCode"] = "vscode";
11
+ DetectedIde["Cursor"] = "cursor";
12
+ DetectedIde["CloudShell"] = "cloudshell";
13
+ DetectedIde["Codespaces"] = "codespaces";
14
+ DetectedIde["FirebaseStudio"] = "firebasestudio";
15
+ DetectedIde["Trae"] = "trae";
9
16
  })(DetectedIde || (DetectedIde = {}));
10
- export function getIdeDisplayName(ide) {
17
+ export function getIdeInfo(ide) {
11
18
  switch (ide) {
19
+ case DetectedIde.Devin:
20
+ return {
21
+ displayName: 'Devin',
22
+ };
23
+ case DetectedIde.Replit:
24
+ return {
25
+ displayName: 'Replit',
26
+ };
12
27
  case DetectedIde.VSCode:
13
- return 'VS Code';
28
+ return {
29
+ displayName: 'VS Code',
30
+ };
31
+ case DetectedIde.Cursor:
32
+ return {
33
+ displayName: 'Cursor',
34
+ };
35
+ case DetectedIde.CloudShell:
36
+ return {
37
+ displayName: 'Cloud Shell',
38
+ };
39
+ case DetectedIde.Codespaces:
40
+ return {
41
+ displayName: 'GitHub Codespaces',
42
+ };
43
+ case DetectedIde.FirebaseStudio:
44
+ return {
45
+ displayName: 'Firebase Studio',
46
+ };
47
+ case DetectedIde.Trae:
48
+ return {
49
+ displayName: 'Trae',
50
+ };
14
51
  default: {
15
52
  // This ensures that if a new IDE is added to the enum, we get a compile-time error.
16
53
  const exhaustiveCheck = ide;
@@ -19,9 +56,31 @@ export function getIdeDisplayName(ide) {
19
56
  }
20
57
  }
21
58
  export function detectIde() {
22
- if (process.env.TERM_PROGRAM === 'vscode') {
23
- return DetectedIde.VSCode;
59
+ // Only VSCode-based integrations are currently supported.
60
+ if (process.env.TERM_PROGRAM !== 'vscode') {
61
+ return undefined;
24
62
  }
25
- return undefined;
63
+ if (process.env.__COG_BASHRC_SOURCED) {
64
+ return DetectedIde.Devin;
65
+ }
66
+ if (process.env.REPLIT_USER) {
67
+ return DetectedIde.Replit;
68
+ }
69
+ if (process.env.CURSOR_TRACE_ID) {
70
+ return DetectedIde.Cursor;
71
+ }
72
+ if (process.env.CODESPACES) {
73
+ return DetectedIde.Codespaces;
74
+ }
75
+ if (process.env.EDITOR_IN_CLOUD_SHELL || process.env.CLOUD_SHELL) {
76
+ return DetectedIde.CloudShell;
77
+ }
78
+ if (process.env.TERM_PRODUCT === 'Trae') {
79
+ return DetectedIde.Trae;
80
+ }
81
+ if (process.env.FIREBASE_DEPLOY_AGENT || process.env.MONOSPACE_ENV) {
82
+ return DetectedIde.FirebaseStudio;
83
+ }
84
+ return DetectedIde.VSCode;
26
85
  }
27
86
  //# sourceMappingURL=detect-ide.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"detect-ide.js","sourceRoot":"","sources":["../../../src/ide/detect-ide.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAN,IAAY,WAEX;AAFD,WAAY,WAAW;IACrB,gCAAiB,CAAA;AACnB,CAAC,EAFW,WAAW,KAAX,WAAW,QAEtB;AAED,MAAM,UAAU,iBAAiB,CAAC,GAAgB;IAChD,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO,SAAS,CAAC;QACnB,OAAO,CAAC,CAAC,CAAC;YACR,oFAAoF;YACpF,MAAM,eAAe,GAAU,GAAG,CAAC;YACnC,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,WAAW,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"detect-ide.js","sourceRoot":"","sources":["../../../src/ide/detect-ide.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAN,IAAY,WASX;AATD,WAAY,WAAW;IACrB,8BAAe,CAAA;IACf,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;IACjB,gCAAiB,CAAA;IACjB,wCAAyB,CAAA;IACzB,wCAAyB,CAAA;IACzB,gDAAiC,CAAA;IACjC,4BAAa,CAAA;AACf,CAAC,EATW,WAAW,KAAX,WAAW,QAStB;AAMD,MAAM,UAAU,UAAU,CAAC,GAAgB;IACzC,QAAQ,GAAG,EAAE,CAAC;QACZ,KAAK,WAAW,CAAC,KAAK;YACpB,OAAO;gBACL,WAAW,EAAE,OAAO;aACrB,CAAC;QACJ,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO;gBACL,WAAW,EAAE,QAAQ;aACtB,CAAC;QACJ,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO;gBACL,WAAW,EAAE,SAAS;aACvB,CAAC;QACJ,KAAK,WAAW,CAAC,MAAM;YACrB,OAAO;gBACL,WAAW,EAAE,QAAQ;aACtB,CAAC;QACJ,KAAK,WAAW,CAAC,UAAU;YACzB,OAAO;gBACL,WAAW,EAAE,aAAa;aAC3B,CAAC;QACJ,KAAK,WAAW,CAAC,UAAU;YACzB,OAAO;gBACL,WAAW,EAAE,mBAAmB;aACjC,CAAC;QACJ,KAAK,WAAW,CAAC,cAAc;YAC7B,OAAO;gBACL,WAAW,EAAE,iBAAiB;aAC/B,CAAC;QACJ,KAAK,WAAW,CAAC,IAAI;YACnB,OAAO;gBACL,WAAW,EAAE,MAAM;aACpB,CAAC;QACJ,OAAO,CAAC,CAAC,CAAC;YACR,oFAAoF;YACpF,MAAM,eAAe,GAAU,GAAG,CAAC;YACnC,OAAO,eAAe,CAAC;QACzB,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS;IACvB,0DAA0D;IAC1D,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;QAC1C,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACrC,OAAO,WAAW,CAAC,KAAK,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC5B,OAAO,WAAW,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC;QAChC,OAAO,WAAW,CAAC,MAAM,CAAC;IAC5B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QAC3B,OAAO,WAAW,CAAC,UAAU,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACjE,OAAO,WAAW,CAAC,UAAU,CAAC;IAChC,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,MAAM,EAAE,CAAC;QACxC,OAAO,WAAW,CAAC,IAAI,CAAC;IAC1B,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACnE,OAAO,WAAW,CAAC,cAAc,CAAC;IACpC,CAAC;IACD,OAAO,WAAW,CAAC,MAAM,CAAC;AAC5B,CAAC"}
@@ -4,7 +4,8 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import * as fs from 'node:fs';
7
- import { detectIde, DetectedIde, getIdeDisplayName, } from '../ide/detect-ide.js';
7
+ import * as path from 'node:path';
8
+ import { detectIde, DetectedIde, getIdeInfo } from '../ide/detect-ide.js';
8
9
  import { ideContext, IdeContextNotificationSchema, IdeDiffAcceptedNotificationSchema, IdeDiffClosedNotificationSchema, CloseDiffResponseSchema, } from '../ide/ideContext.js';
9
10
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
10
11
  import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
@@ -45,7 +46,7 @@ export class IdeClient {
45
46
  constructor(ideMode) {
46
47
  this.currentIde = detectIde();
47
48
  if (this.currentIde) {
48
- this.currentIdeDisplayName = getIdeDisplayName(this.currentIde);
49
+ this.currentIdeDisplayName = getIdeInfo(this.currentIde).displayName;
49
50
  }
50
51
  if (!ideMode) {
51
52
  return;
@@ -61,13 +62,13 @@ export class IdeClient {
61
62
  return IdeClient.instance;
62
63
  }
63
64
  async connect() {
64
- this.setState(IDEConnectionStatus.Connecting);
65
65
  if (!this.currentIde || !this.currentIdeDisplayName) {
66
66
  this.setState(IDEConnectionStatus.Disconnected, `IDE integration is not supported in your current environment. To use this feature, run LLxprt Code in one of these supported IDEs: ${Object.values(DetectedIde)
67
- .map((ide) => getIdeDisplayName(ide))
68
- .join(', ')}`, true);
67
+ .map((ide) => getIdeInfo(ide).displayName)
68
+ .join(', ')}`, false);
69
69
  return;
70
70
  }
71
+ this.setState(IDEConnectionStatus.Connecting);
71
72
  if (!this.validateWorkspacePath()) {
72
73
  return;
73
74
  }
@@ -168,19 +169,25 @@ export class IdeClient {
168
169
  // disconnected, so that the first detail message is preserved.
169
170
  if (!isAlreadyDisconnected) {
170
171
  this.state = { status, details };
171
- if (logToConsole) {
172
- logger.error(details);
172
+ if (details) {
173
+ if (logToConsole) {
174
+ logger.error(details);
175
+ }
176
+ else {
177
+ // We only want to log disconnect messages to debug
178
+ // if they are not already being logged to the console.
179
+ logger.debug(details);
180
+ }
173
181
  }
174
182
  }
175
183
  if (status === IDEConnectionStatus.Disconnected) {
176
- logger.debug(details);
177
184
  ideContext.clearIdeContext();
178
185
  }
179
186
  }
180
187
  getPortFromEnv() {
181
188
  const port = process.env['LLXPRT_CODE_IDE_SERVER_PORT'];
182
189
  if (!port) {
183
- this.setState(IDEConnectionStatus.Disconnected, `Failed to connect to IDE companion extension for ${this.currentIdeDisplayName}. LLxprt Code Companion extension not found. Install via /ide install and restart the CLI in a fresh terminal window.`, true);
190
+ this.setState(IDEConnectionStatus.Disconnected, `Failed to connect to IDE companion extension for ${this.currentIdeDisplayName}. Please ensure the extension is running and try restarting your terminal. To install the extension, run /ide install.`, true);
184
191
  return undefined;
185
192
  }
186
193
  return port;
@@ -191,7 +198,10 @@ export class IdeClient {
191
198
  this.setState(IDEConnectionStatus.Disconnected, `To use this feature, please open a single workspace folder in ${this.currentIdeDisplayName} and try again.`, true);
192
199
  return false;
193
200
  }
194
- if (getRealPath(ideWorkspacePath) !== getRealPath(process.cwd())) {
201
+ const idePath = getRealPath(ideWorkspacePath).toLocaleLowerCase();
202
+ const cwd = getRealPath(process.cwd()).toLocaleLowerCase();
203
+ const rel = path.relative(idePath, cwd);
204
+ if (rel.startsWith('..') || path.isAbsolute(rel)) {
195
205
  this.setState(IDEConnectionStatus.Disconnected, `Directory mismatch. LLxprt Code is running in a different location than the open workspace in ${this.currentIdeDisplayName}. Please run the CLI from the same directory as your project's root folder.`, true);
196
206
  return false;
197
207
  }
@@ -250,7 +260,7 @@ export class IdeClient {
250
260
  this.setState(IDEConnectionStatus.Connected);
251
261
  }
252
262
  catch (_error) {
253
- this.setState(IDEConnectionStatus.Disconnected, `Failed to connect to IDE companion extension for ${this.currentIdeDisplayName}. Please ensure the extension is running and try refreshing your terminal. To install the extension, run /ide install.`, true);
263
+ this.setState(IDEConnectionStatus.Disconnected, `Failed to connect to IDE companion extension for ${this.currentIdeDisplayName}. Please ensure the extension is running and try restarting your terminal. To install the extension, run /ide install.`, true);
254
264
  if (transport) {
255
265
  try {
256
266
  await transport.close();
@@ -287,10 +297,7 @@ export class IdeClient {
287
297
  }
288
298
  }
289
299
  function getIdeServerHost() {
290
- const isInContainer = fs.existsSync('/.dockerenv') ||
291
- fs.existsSync('/run/.containerenv') ||
292
- !!process.env.SANDBOX ||
293
- !!process.env.container;
300
+ const isInContainer = fs.existsSync('/.dockerenv') || fs.existsSync('/run/.containerenv');
294
301
  return isInContainer ? 'host.docker.internal' : 'localhost';
295
302
  }
296
303
  //# sourceMappingURL=ide-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ide-client.js","sourceRoot":"","sources":["../../../src/ide/ide-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EACL,SAAS,EACT,WAAW,EACX,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,UAAU,EACV,4BAA4B,EAC5B,iCAAiC,EACjC,+BAA+B,EAC/B,uBAAuB,GAExB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAEnG,MAAM,MAAM,GAAG;IACb,8DAA8D;IAC9D,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC;IACxE,8DAA8D;IAC9D,KAAK,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAG,IAAI,CAAC;CACzE,CAAC;AAOF,MAAM,CAAN,IAAY,mBAIX;AAJD,WAAY,mBAAmB;IAC7B,8CAAuB,CAAA;IACvB,oDAA6B,CAAA;IAC7B,gDAAyB,CAAA;AAC3B,CAAC,EAJW,mBAAmB,KAAnB,mBAAmB,QAI9B;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,IAAI,CAAC;QACH,OAAO,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,EAAE,EAAE,CAAC;QACZ,qEAAqE;QACrE,uDAAuD;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,SAAS;IACpB,MAAM,GAAuB,SAAS,CAAC;IAC/B,KAAK,GAAuB;QAClC,MAAM,EAAE,mBAAmB,CAAC,YAAY;KACzC,CAAC;IACM,MAAM,CAAC,QAAQ,CAAY;IAClB,UAAU,CAA0B;IACpC,qBAAqB,CAAqB;IACnD,aAAa,GAAG,IAAI,GAAG,EAA8C,CAAC;IAE9E,YAAY,OAAgB;QAC1B,IAAI,CAAC,UAAU,GAAG,SAAS,EAAE,CAAC;QAC9B,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC,qBAAqB,GAAG,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAClE,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;YACxB,MAAM,CAAC,KAAK,CAAC,iCAAiC,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,OAAgB;QACjC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;YACxB,SAAS,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,OAAO;QACX,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACpD,IAAI,CAAC,QAAQ,CACX,mBAAmB,CAAC,YAAY,EAChC,sIAAsI,MAAM,CAAC,MAAM,CACjJ,WAAW,CACZ;iBACE,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;iBACpC,IAAI,CAAC,IAAI,CAAC,EAAE,EACf,IAAI,CACL,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,QAAQ,CACZ,QAAgB,EAChB,UAAmB;QAEnB,OAAO,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAC1C,IAAI,CAAC,MAAM;gBACT,EAAE,QAAQ,CAAC;gBACT,IAAI,EAAE,UAAU;gBAChB,SAAS,EAAE;oBACT,QAAQ;oBACR,UAAU;iBACX;aACF,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,MAAM,CAAC,KAAK,CAAC,gBAAgB,QAAQ,UAAU,EAAE,GAAG,CAAC,CAAC;gBACtD,MAAM,CAAC,GAAG,CAAC,CAAC;YACd,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC;gBACzC,IAAI,EAAE,WAAW;gBACjB,SAAS,EAAE;oBACT,QAAQ;iBACT;aACF,CAAC,CAAC;YAEH,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,MAAM,GAAG,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;gBACrD,OAAO,MAAM,CAAC,OAAO,CAAC;YACxB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,gBAAgB,QAAQ,UAAU,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;QACD,OAAO;IACT,CAAC;IAED,0DAA0D;IAC1D,8DAA8D;IAC9D,KAAK,CAAC,kBAAkB,CAAC,QAAgB,EAAE,OAAgC;QACzE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;gBAC3B,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;YAC5C,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,mBAAmB,CAAC,YAAY,EAAE,CAAC;YAC3D,OAAO;QACT,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,EAAE,CAAC;YACjD,MAAM,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,QAAQ,CACX,mBAAmB,CAAC,YAAY,EAChC,gEAAgE,CACjE,CAAC;QACF,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED,yBAAyB;QACvB,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAEO,QAAQ,CACd,MAA2B,EAC3B,OAAgB,EAChB,YAAY,GAAG,KAAK;QAEpB,MAAM,qBAAqB,GACzB,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,mBAAmB,CAAC,YAAY;YACtD,MAAM,KAAK,mBAAmB,CAAC,YAAY,CAAC;QAE9C,mEAAmE;QACnE,+DAA+D;QAC/D,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,IAAI,CAAC,KAAK,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;YACjC,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;QACH,CAAC;QAED,IAAI,MAAM,KAAK,mBAAmB,CAAC,YAAY,EAAE,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YACtB,UAAU,CAAC,eAAe,EAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,QAAQ,CACX,mBAAmB,CAAC,YAAY,EAChC,oDAAoD,IAAI,CAAC,qBAAqB,uHAAuH,EACrM,IAAI,CACL,CAAC;YACF,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,qBAAqB;QAC3B,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;QACvE,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,IAAI,CAAC,QAAQ,CACX,mBAAmB,CAAC,YAAY,EAChC,iEAAiE,IAAI,CAAC,qBAAqB,iBAAiB,EAC5G,IAAI,CACL,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,IAAI,WAAW,CAAC,gBAAgB,CAAC,KAAK,WAAW,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACjE,IAAI,CAAC,QAAQ,CACX,mBAAmB,CAAC,YAAY,EAChC,iGAAiG,IAAI,CAAC,qBAAqB,6EAA6E,EACxM,IAAI,CACL,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,sBAAsB;QAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAChC,4BAA4B,EAC5B,CAAC,YAAY,EAAE,EAAE;YACf,UAAU,CAAC,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,CAAC,MAAM,EAAE,EAAE;YAC/B,IAAI,CAAC,QAAQ,CACX,mBAAmB,CAAC,YAAY,EAChC,4GAA4G,EAC5G,IAAI,CACL,CAAC;QACJ,CAAC,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;YACzB,IAAI,CAAC,QAAQ,CACX,mBAAmB,CAAC,YAAY,EAChC,4GAA4G,EAC5G,IAAI,CACL,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAChC,iCAAiC,EACjC,CAAC,YAAY,EAAE,EAAE;YACf,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC;YAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;gBAC1C,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,sBAAsB,CAChC,+BAA+B,EAC/B,CAAC,YAAY,EAAE,EAAE;YACf,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC,MAAM,CAAC;YACzC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,QAAQ,EAAE,CAAC;gBACb,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;gBACrD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,OAAgB;QAC9B,SAAS,CAAC,QAAQ,GAAG,IAAI,SAAS,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,IAAY;QAC5C,IAAI,SAAoD,CAAC;QACzD,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC;gBACvB,IAAI,EAAE,wBAAwB;gBAC9B,yCAAyC;gBACzC,OAAO,EAAE,OAAO;aACjB,CAAC,CAAC;YAEH,SAAS,GAAG,IAAI,6BAA6B,CAC3C,IAAI,GAAG,CAAC,UAAU,gBAAgB,EAAE,IAAI,IAAI,MAAM,CAAC,CACpD,CAAC;YAEF,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAE9B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAErC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;QAC/C,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CACX,mBAAmB,CAAC,YAAY,EAChC,oDAAoD,IAAI,CAAC,qBAAqB,wHAAwH,EACtM,IAAI,CACL,CAAC;YACF,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC;oBACH,MAAM,SAAS,CAAC,KAAK,EAAE,CAAC;gBAC1B,CAAC;gBAAC,OAAO,UAAU,EAAE,CAAC;oBACpB,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE,UAAU,CAAC,CAAC;gBACzD,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,mBAAmB,CAAC,SAAS,EAAE,CAAC;YACxD,OAAO;QACT,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CACX,mBAAmB,CAAC,YAAY,EAChC,sDAAsD,CACvD,CAAC;YACF,OAAO;QACT,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,CAAC;YAClC,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAED,OAAO;QACL,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC;IACvB,CAAC;IAED,eAAe;QACb,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;CACF;AAED,SAAS,gBAAgB;IACvB,MAAM,aAAa,GACjB,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC;QAC5B,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC;QACnC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO;QACrB,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;IAC1B,OAAO,aAAa,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,WAAW,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"ide-client.js","sourceRoot":"","sources":["../../../src/ide/ide-client.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,11 @@
5
5
  */
6
6
  import * as child_process from 'child_process';
7
7
  import * as process from 'process';
8
- import { glob } from 'glob';
9
8
  import * as path from 'path';
10
9
  import * as fs from 'fs';
11
10
  import * as os from 'os';
12
- import { fileURLToPath } from 'url';
13
11
  import { DetectedIde } from './detect-ide.js';
14
12
  const VSCODE_COMMAND = process.platform === 'win32' ? 'code.cmd' : 'code';
15
- const VSCODE_COMPANION_EXTENSION_FOLDER = 'vscode-ide-companion';
16
13
  async function findVsCodeCommand() {
17
14
  // 1. Check PATH first.
18
15
  try {
@@ -60,29 +57,7 @@ class VsCodeInstaller {
60
57
  message: `VS Code CLI not found. Please ensure 'code' is in your system's PATH. For help, see https://code.visualstudio.com/docs/configure/command-line#_code-is-not-recognized-as-an-internal-or-external-command. You can also install the companion extension manually from the VS Code marketplace.`,
61
58
  };
62
59
  }
63
- const bundleDir = path.dirname(fileURLToPath(import.meta.url));
64
- // The VSIX file is copied to the bundle directory as part of the build.
65
- let vsixFiles = glob.sync(path.join(bundleDir, '*.vsix'));
66
- if (vsixFiles.length === 0) {
67
- // If the VSIX file is not in the bundle, it might be a dev
68
- // environment running with `npm start`. Look for it in the original
69
- // package location, relative to the bundle dir.
70
- const devPath = path.join(bundleDir, // .../packages/core/dist/src/ide
71
- '..', // .../packages/core/dist/src
72
- '..', // .../packages/core/dist
73
- '..', // .../packages/core
74
- '..', // .../packages
75
- VSCODE_COMPANION_EXTENSION_FOLDER, '*.vsix');
76
- vsixFiles = glob.sync(devPath);
77
- }
78
- if (vsixFiles.length === 0) {
79
- return {
80
- success: false,
81
- message: 'Could not find the required VS Code companion extension. Please file a bug via /bug.',
82
- };
83
- }
84
- const vsixPath = vsixFiles[0];
85
- const command = `"${commandPath}" --install-extension "${vsixPath}" --force`;
60
+ const command = `"${commandPath}" --install-extension google.gemini-cli-vscode-ide-companion --force`;
86
61
  try {
87
62
  child_process.execSync(command, { stdio: 'pipe' });
88
63
  return {