@vybestack/llxprt-code-core 0.1.17 → 0.1.18-nightly.250808.f9b79d74

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 (232) hide show
  1. package/README.md +1 -1
  2. package/dist/src/config/config.alwaysAllow.test.d.ts +6 -0
  3. package/dist/src/config/config.alwaysAllow.test.js +84 -0
  4. package/dist/src/config/config.alwaysAllow.test.js.map +1 -0
  5. package/dist/src/config/config.d.ts +13 -0
  6. package/dist/src/config/config.js +30 -2
  7. package/dist/src/config/config.js.map +1 -1
  8. package/dist/src/core/client.d.ts +9 -4
  9. package/dist/src/core/client.js +44 -88
  10. package/dist/src/core/client.js.map +1 -1
  11. package/dist/src/core/client.test.js +1 -1
  12. package/dist/src/core/client.test.js.map +1 -1
  13. package/dist/src/core/contentGenerator.js +1 -1
  14. package/dist/src/core/contentGenerator.js.map +1 -1
  15. package/dist/src/core/coreToolScheduler.d.ts +19 -7
  16. package/dist/src/core/coreToolScheduler.js +124 -19
  17. package/dist/src/core/coreToolScheduler.js.map +1 -1
  18. package/dist/src/core/coreToolScheduler.test.js +31 -37
  19. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  20. package/dist/src/core/geminiChat.d.ts +4 -0
  21. package/dist/src/core/geminiChat.js +41 -4
  22. package/dist/src/core/geminiChat.js.map +1 -1
  23. package/dist/src/core/nonInteractiveToolExecutor.js +4 -1
  24. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  25. package/dist/src/core/nonInteractiveToolExecutor.test.js +8 -31
  26. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  27. package/dist/src/core/subagent.d.ts +230 -0
  28. package/dist/src/core/subagent.js +453 -0
  29. package/dist/src/core/subagent.js.map +1 -0
  30. package/dist/src/core/subagent.test.d.ts +6 -0
  31. package/dist/src/core/subagent.test.js +519 -0
  32. package/dist/src/core/subagent.test.js.map +1 -0
  33. package/dist/src/hooks/tool-render-suppression-hook.d.ts +16 -0
  34. package/dist/src/hooks/tool-render-suppression-hook.js +26 -0
  35. package/dist/src/hooks/tool-render-suppression-hook.js.map +1 -0
  36. package/dist/src/hooks/tool-render-suppression-hook.test.d.ts +6 -0
  37. package/dist/src/hooks/tool-render-suppression-hook.test.js +59 -0
  38. package/dist/src/hooks/tool-render-suppression-hook.test.js.map +1 -0
  39. package/dist/src/ide/ide-client.d.ts +21 -0
  40. package/dist/src/ide/ide-client.js +107 -1
  41. package/dist/src/ide/ide-client.js.map +1 -1
  42. package/dist/src/ide/ideContext.d.ts +127 -32
  43. package/dist/src/ide/ideContext.js +45 -0
  44. package/dist/src/ide/ideContext.js.map +1 -1
  45. package/dist/src/index.d.ts +4 -0
  46. package/dist/src/index.js +4 -0
  47. package/dist/src/index.js.map +1 -1
  48. package/dist/src/integration-tests/todo-system.test.js +38 -602
  49. package/dist/src/integration-tests/todo-system.test.js.map +1 -1
  50. package/dist/src/mcp/oauth-provider.d.ts +1 -0
  51. package/dist/src/mcp/oauth-provider.js +14 -1
  52. package/dist/src/mcp/oauth-provider.js.map +1 -1
  53. package/dist/src/mcp/oauth-provider.test.js +87 -6
  54. package/dist/src/mcp/oauth-provider.test.js.map +1 -1
  55. package/dist/src/prompts/prompt-registry.d.ts +8 -0
  56. package/dist/src/prompts/prompt-registry.js +16 -0
  57. package/dist/src/prompts/prompt-registry.js.map +1 -1
  58. package/dist/src/providers/gemini/GeminiProvider.js +5 -5
  59. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  60. package/dist/src/providers/openai/OpenAIProvider.integration.test.js +1 -1
  61. package/dist/src/providers/openai/OpenAIProvider.integration.test.js.map +1 -1
  62. package/dist/src/providers/openai/OpenAIProvider.js +8 -1
  63. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  64. package/dist/src/providers/openai/OpenAIProvider.test.js +106 -0
  65. package/dist/src/providers/openai/OpenAIProvider.test.js.map +1 -1
  66. package/dist/src/providers/types/IProviderConfig.d.ts +5 -0
  67. package/dist/src/services/loopDetectionService.js +2 -4
  68. package/dist/src/services/loopDetectionService.js.map +1 -1
  69. package/dist/src/services/shellExecutionService.js +29 -5
  70. package/dist/src/services/shellExecutionService.js.map +1 -1
  71. package/dist/src/services/shellExecutionService.test.js +8 -0
  72. package/dist/src/services/shellExecutionService.test.js.map +1 -1
  73. package/dist/src/services/todo-context-tracker.d.ts +31 -0
  74. package/dist/src/services/todo-context-tracker.js +45 -0
  75. package/dist/src/services/todo-context-tracker.js.map +1 -0
  76. package/dist/src/services/tool-call-tracker-service.d.ts +52 -0
  77. package/dist/src/services/tool-call-tracker-service.js +170 -0
  78. package/dist/src/services/tool-call-tracker-service.js.map +1 -0
  79. package/dist/src/services/tool-call-tracker-service.test.d.ts +6 -0
  80. package/dist/src/services/tool-call-tracker-service.test.js +99 -0
  81. package/dist/src/services/tool-call-tracker-service.test.js.map +1 -0
  82. package/dist/src/telemetry/loggers.test.circular.js +7 -2
  83. package/dist/src/telemetry/loggers.test.circular.js.map +1 -1
  84. package/dist/src/telemetry/loggers.test.js +5 -1
  85. package/dist/src/telemetry/loggers.test.js.map +1 -1
  86. package/dist/src/telemetry/metrics.d.ts +1 -1
  87. package/dist/src/telemetry/metrics.js.map +1 -1
  88. package/dist/src/telemetry/types.d.ts +2 -1
  89. package/dist/src/telemetry/types.js +3 -1
  90. package/dist/src/telemetry/types.js.map +1 -1
  91. package/dist/src/telemetry/uiTelemetry.d.ts +2 -0
  92. package/dist/src/telemetry/uiTelemetry.js +2 -0
  93. package/dist/src/telemetry/uiTelemetry.js.map +1 -1
  94. package/dist/src/telemetry/uiTelemetry.test.js +11 -1
  95. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  96. package/dist/src/test-utils/tools.d.ts +23 -0
  97. package/dist/src/test-utils/tools.js +41 -0
  98. package/dist/src/test-utils/tools.js.map +1 -0
  99. package/dist/src/tools/edit.d.ts +2 -2
  100. package/dist/src/tools/edit.js +18 -0
  101. package/dist/src/tools/edit.js.map +1 -1
  102. package/dist/src/tools/edit.test.js +48 -0
  103. package/dist/src/tools/edit.test.js.map +1 -1
  104. package/dist/src/tools/glob.d.ts +4 -0
  105. package/dist/src/tools/glob.js +31 -5
  106. package/dist/src/tools/glob.js.map +1 -1
  107. package/dist/src/tools/grep.d.ts +4 -0
  108. package/dist/src/tools/grep.js +22 -5
  109. package/dist/src/tools/grep.js.map +1 -1
  110. package/dist/src/tools/ls.d.ts +4 -0
  111. package/dist/src/tools/ls.js +30 -5
  112. package/dist/src/tools/ls.js.map +1 -1
  113. package/dist/src/tools/mcp-client.d.ts +10 -0
  114. package/dist/src/tools/mcp-client.js +59 -0
  115. package/dist/src/tools/mcp-client.js.map +1 -1
  116. package/dist/src/tools/mcp-client.test.js +294 -1
  117. package/dist/src/tools/mcp-client.test.js.map +1 -1
  118. package/dist/src/tools/mcp-tool.js +104 -45
  119. package/dist/src/tools/mcp-tool.js.map +1 -1
  120. package/dist/src/tools/mcp-tool.test.js +280 -2
  121. package/dist/src/tools/mcp-tool.test.js.map +1 -1
  122. package/dist/src/tools/memoryTool.d.ts +2 -2
  123. package/dist/src/tools/memoryTool.js +1 -0
  124. package/dist/src/tools/memoryTool.js.map +1 -1
  125. package/dist/src/tools/modifiable-tool.d.ts +9 -6
  126. package/dist/src/tools/modifiable-tool.js +6 -3
  127. package/dist/src/tools/modifiable-tool.js.map +1 -1
  128. package/dist/src/tools/modifiable-tool.test.js +12 -12
  129. package/dist/src/tools/modifiable-tool.test.js.map +1 -1
  130. package/dist/src/tools/read-file.d.ts +4 -6
  131. package/dist/src/tools/read-file.js +59 -46
  132. package/dist/src/tools/read-file.js.map +1 -1
  133. package/dist/src/tools/read-file.test.js +201 -126
  134. package/dist/src/tools/read-file.test.js.map +1 -1
  135. package/dist/src/tools/read-many-files.js +8 -2
  136. package/dist/src/tools/read-many-files.js.map +1 -1
  137. package/dist/src/tools/read-many-files.test.js +16 -0
  138. package/dist/src/tools/read-many-files.test.js.map +1 -1
  139. package/dist/src/tools/shell.js +14 -2
  140. package/dist/src/tools/shell.js.map +1 -1
  141. package/dist/src/tools/todo-events.d.ts +22 -0
  142. package/dist/src/tools/todo-events.js +24 -0
  143. package/dist/src/tools/todo-events.js.map +1 -0
  144. package/dist/src/tools/todo-read.js.map +1 -1
  145. package/dist/src/tools/todo-schemas.d.ts +232 -4
  146. package/dist/src/tools/todo-schemas.js +13 -0
  147. package/dist/src/tools/todo-schemas.js.map +1 -1
  148. package/dist/src/tools/todo-schemas.test.js +190 -1
  149. package/dist/src/tools/todo-schemas.test.js.map +1 -1
  150. package/dist/src/tools/todo-store.d.ts +1 -4
  151. package/dist/src/tools/todo-store.js +41 -40
  152. package/dist/src/tools/todo-store.js.map +1 -1
  153. package/dist/src/tools/todo-store.test.js +34 -40
  154. package/dist/src/tools/todo-store.test.js.map +1 -1
  155. package/dist/src/tools/todo-write.d.ts +1 -1
  156. package/dist/src/tools/todo-write.js +84 -47
  157. package/dist/src/tools/todo-write.js.map +1 -1
  158. package/dist/src/tools/todo-write.test.js +23 -9
  159. package/dist/src/tools/todo-write.test.js.map +1 -1
  160. package/dist/src/tools/tool-context.d.ts +2 -0
  161. package/dist/src/tools/tool-registry.d.ts +13 -6
  162. package/dist/src/tools/tool-registry.js +28 -11
  163. package/dist/src/tools/tool-registry.js.map +1 -1
  164. package/dist/src/tools/tool-registry.test.js +7 -20
  165. package/dist/src/tools/tool-registry.test.js.map +1 -1
  166. package/dist/src/tools/tools.d.ts +122 -39
  167. package/dist/src/tools/tools.js +165 -10
  168. package/dist/src/tools/tools.js.map +1 -1
  169. package/dist/src/tools/tools.test.d.ts +6 -0
  170. package/dist/src/tools/tools.test.js +117 -0
  171. package/dist/src/tools/tools.test.js.map +1 -0
  172. package/dist/src/tools/write-file.d.ts +2 -2
  173. package/dist/src/tools/write-file.js +16 -0
  174. package/dist/src/tools/write-file.js.map +1 -1
  175. package/dist/src/tools/write-file.test.js +20 -3
  176. package/dist/src/tools/write-file.test.js.map +1 -1
  177. package/dist/src/types/modelParams.d.ts +2 -0
  178. package/dist/src/utils/editor.d.ts +1 -1
  179. package/dist/src/utils/editor.js +13 -5
  180. package/dist/src/utils/editor.js.map +1 -1
  181. package/dist/src/utils/editor.test.js +38 -6
  182. package/dist/src/utils/editor.test.js.map +1 -1
  183. package/dist/src/utils/environmentContext.d.ts +21 -0
  184. package/dist/src/utils/environmentContext.js +90 -0
  185. package/dist/src/utils/environmentContext.js.map +1 -0
  186. package/dist/src/utils/environmentContext.test.d.ts +6 -0
  187. package/dist/src/utils/environmentContext.test.js +139 -0
  188. package/dist/src/utils/environmentContext.test.js.map +1 -0
  189. package/dist/src/utils/fileUtils.js +7 -14
  190. package/dist/src/utils/fileUtils.js.map +1 -1
  191. package/dist/src/utils/fileUtils.test.js +18 -4
  192. package/dist/src/utils/fileUtils.test.js.map +1 -1
  193. package/dist/src/utils/filesearch/crawlCache.d.ts +25 -0
  194. package/dist/src/utils/filesearch/crawlCache.js +57 -0
  195. package/dist/src/utils/filesearch/crawlCache.js.map +1 -0
  196. package/dist/src/utils/filesearch/crawlCache.test.d.ts +6 -0
  197. package/dist/src/utils/filesearch/crawlCache.test.js +103 -0
  198. package/dist/src/utils/filesearch/crawlCache.test.js.map +1 -0
  199. package/dist/src/utils/filesearch/fileSearch.d.ts +80 -0
  200. package/dist/src/utils/filesearch/fileSearch.js +233 -0
  201. package/dist/src/utils/filesearch/fileSearch.js.map +1 -0
  202. package/dist/src/utils/filesearch/fileSearch.test.d.ts +6 -0
  203. package/dist/src/utils/filesearch/fileSearch.test.js +654 -0
  204. package/dist/src/utils/filesearch/fileSearch.test.js.map +1 -0
  205. package/dist/src/utils/filesearch/ignore.d.ts +35 -0
  206. package/dist/src/utils/filesearch/ignore.js +81 -0
  207. package/dist/src/utils/filesearch/ignore.js.map +1 -0
  208. package/dist/src/utils/filesearch/ignore.test.d.ts +6 -0
  209. package/dist/src/utils/filesearch/ignore.test.js +57 -0
  210. package/dist/src/utils/filesearch/ignore.test.js.map +1 -0
  211. package/dist/src/utils/filesearch/result-cache.d.ts +34 -0
  212. package/dist/src/utils/filesearch/result-cache.js +61 -0
  213. package/dist/src/utils/filesearch/result-cache.js.map +1 -0
  214. package/dist/src/utils/filesearch/result-cache.test.d.ts +6 -0
  215. package/dist/src/utils/filesearch/result-cache.test.js +47 -0
  216. package/dist/src/utils/filesearch/result-cache.test.js.map +1 -0
  217. package/dist/src/utils/memoryDiscovery.d.ts +1 -1
  218. package/dist/src/utils/memoryDiscovery.js +22 -7
  219. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  220. package/dist/src/utils/memoryDiscovery.test.js +30 -71
  221. package/dist/src/utils/memoryDiscovery.test.js.map +1 -1
  222. package/dist/src/utils/shell-utils.js +14 -2
  223. package/dist/src/utils/shell-utils.js.map +1 -1
  224. package/dist/src/utils/shell-utils.shellReplacement.test.d.ts +6 -0
  225. package/dist/src/utils/shell-utils.shellReplacement.test.js +149 -0
  226. package/dist/src/utils/shell-utils.shellReplacement.test.js.map +1 -0
  227. package/dist/src/utils/toolOutputLimiter.js +5 -1
  228. package/dist/src/utils/toolOutputLimiter.js.map +1 -1
  229. package/dist/src/utils/workspaceContext.d.ts +4 -0
  230. package/dist/src/utils/workspaceContext.js +33 -0
  231. package/dist/src/utils/workspaceContext.js.map +1 -1
  232. package/package.json +6 -1
package/README.md CHANGED
@@ -67,7 +67,6 @@ You have two options to install LLxprt Code.
67
67
  ```bash
68
68
  llxprt
69
69
  ```
70
-
71
70
  - Pick a beautiful theme
72
71
  - Choose your provider with `/provider` (defaults to Gemini)
73
72
  - Set up authentication as needed
@@ -267,6 +266,7 @@ Learn more in the [Prompt Configuration Guide](./docs/prompt-configuration.md).
267
266
  - Explore the available **[CLI Commands](./docs/cli/commands.md)**.
268
267
  - If you encounter any issues, review the **[troubleshooting guide](./docs/troubleshooting.md)**.
269
268
  - For more comprehensive documentation, see the [full documentation](./docs/index.md).
269
+ - **Migrating from Gemini CLI?** Check out our [tips for Gemini CLI users](./docs/gemini-cli-tips.md).
270
270
  - Take a look at some [popular tasks](#popular-tasks) for more inspiration.
271
271
  - Check out our **[Official Roadmap](./ROADMAP.md)**
272
272
 
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Vybestack LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, beforeEach } from 'vitest';
7
+ import { Config } from './config.js';
8
+ describe('Config always allowed commands', () => {
9
+ let config;
10
+ beforeEach(() => {
11
+ config = new Config({
12
+ model: 'test-model',
13
+ question: 'test question',
14
+ embeddingModel: 'test-embedding',
15
+ targetDir: '.',
16
+ usageStatisticsEnabled: false,
17
+ sessionId: 'test-session',
18
+ debugMode: false,
19
+ cwd: '.',
20
+ });
21
+ });
22
+ describe('addAlwaysAllowedCommand', () => {
23
+ it('should add a command to the always allowed list', () => {
24
+ config.addAlwaysAllowedCommand('mv');
25
+ expect(config.isCommandAlwaysAllowed('mv')).toBe(true);
26
+ });
27
+ it('should handle multiple commands', () => {
28
+ config.addAlwaysAllowedCommand('mv');
29
+ config.addAlwaysAllowedCommand('cp');
30
+ config.addAlwaysAllowedCommand('rm');
31
+ expect(config.isCommandAlwaysAllowed('mv')).toBe(true);
32
+ expect(config.isCommandAlwaysAllowed('cp')).toBe(true);
33
+ expect(config.isCommandAlwaysAllowed('rm')).toBe(true);
34
+ });
35
+ it('should not duplicate commands', () => {
36
+ config.addAlwaysAllowedCommand('mv');
37
+ config.addAlwaysAllowedCommand('mv');
38
+ config.addAlwaysAllowedCommand('mv');
39
+ const commands = config.getAlwaysAllowedCommands();
40
+ expect(commands).toHaveLength(1);
41
+ expect(commands).toContain('mv');
42
+ });
43
+ });
44
+ describe('isCommandAlwaysAllowed', () => {
45
+ it('should return false for commands not in the list', () => {
46
+ expect(config.isCommandAlwaysAllowed('mv')).toBe(false);
47
+ expect(config.isCommandAlwaysAllowed('cp')).toBe(false);
48
+ });
49
+ it('should return true only for added commands', () => {
50
+ config.addAlwaysAllowedCommand('mv');
51
+ expect(config.isCommandAlwaysAllowed('mv')).toBe(true);
52
+ expect(config.isCommandAlwaysAllowed('cp')).toBe(false);
53
+ });
54
+ it('should be case sensitive', () => {
55
+ config.addAlwaysAllowedCommand('mv');
56
+ expect(config.isCommandAlwaysAllowed('mv')).toBe(true);
57
+ expect(config.isCommandAlwaysAllowed('MV')).toBe(false);
58
+ expect(config.isCommandAlwaysAllowed('Mv')).toBe(false);
59
+ });
60
+ });
61
+ describe('getAlwaysAllowedCommands', () => {
62
+ it('should return empty array when no commands are allowed', () => {
63
+ expect(config.getAlwaysAllowedCommands()).toEqual([]);
64
+ });
65
+ it('should return all added commands', () => {
66
+ config.addAlwaysAllowedCommand('mv');
67
+ config.addAlwaysAllowedCommand('cp');
68
+ config.addAlwaysAllowedCommand('ls');
69
+ const commands = config.getAlwaysAllowedCommands();
70
+ expect(commands).toHaveLength(3);
71
+ expect(commands).toContain('mv');
72
+ expect(commands).toContain('cp');
73
+ expect(commands).toContain('ls');
74
+ });
75
+ it('should return a copy of the internal set', () => {
76
+ config.addAlwaysAllowedCommand('mv');
77
+ const commands1 = config.getAlwaysAllowedCommands();
78
+ commands1.push('cp'); // Modify the returned array
79
+ const commands2 = config.getAlwaysAllowedCommands();
80
+ expect(commands2).toEqual(['mv']); // Original should be unchanged
81
+ });
82
+ });
83
+ });
84
+ //# sourceMappingURL=config.alwaysAllow.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.alwaysAllow.test.js","sourceRoot":"","sources":["../../../src/config/config.alwaysAllow.test.ts"],"names":[],"mappings":"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"}
@@ -137,9 +137,12 @@ export interface ConfigParameters {
137
137
  noBrowser?: boolean;
138
138
  summarizeToolOutput?: Record<string, SummarizeToolOutputSettings>;
139
139
  ideModeFeature?: boolean;
140
+ folderTrustFeature?: boolean;
140
141
  ideMode?: boolean;
141
142
  ideClient?: IdeClient;
142
143
  complexityAnalyzer?: ComplexityAnalyzerSettings;
144
+ loadMemoryFromIncludeDirectories?: boolean;
145
+ shellReplacement?: boolean;
143
146
  }
144
147
  export declare class Config {
145
148
  private toolRegistry;
@@ -169,6 +172,7 @@ export declare class Config {
169
172
  private readonly usageStatisticsEnabled;
170
173
  private geminiClient;
171
174
  private readonly fileFiltering;
175
+ private alwaysAllowedCommands;
172
176
  private fileDiscoveryService;
173
177
  private gitService;
174
178
  private readonly checkpointing;
@@ -180,6 +184,7 @@ export declare class Config {
180
184
  private readonly extensionContextFilePaths;
181
185
  private readonly noBrowser;
182
186
  private readonly ideModeFeature;
187
+ private readonly folderTrustFeature;
183
188
  private ideMode;
184
189
  private ideClient?;
185
190
  private inFallbackMode;
@@ -198,10 +203,13 @@ export declare class Config {
198
203
  private readonly summarizeToolOutput;
199
204
  private readonly experimentalAcp;
200
205
  private readonly complexityAnalyzerSettings;
206
+ private readonly loadMemoryFromIncludeDirectories;
207
+ private readonly shellReplacement;
201
208
  constructor(params: ConfigParameters);
202
209
  initialize(): Promise<void>;
203
210
  refreshAuth(authMethod: AuthType): Promise<void>;
204
211
  getSessionId(): string;
212
+ shouldLoadMemoryFromIncludeDirectories(): boolean;
205
213
  getContentGeneratorConfig(): ContentGeneratorConfig | undefined;
206
214
  getModel(): string;
207
215
  setModel(newModel: string): void;
@@ -271,6 +279,7 @@ export declare class Config {
271
279
  getSummarizeToolOutputConfig(): Record<string, SummarizeToolOutputSettings> | undefined;
272
280
  getIdeModeFeature(): boolean;
273
281
  getIdeClient(): IdeClient | undefined;
282
+ getFolderTrustFeature(): boolean;
274
283
  getIdeMode(): boolean;
275
284
  setIdeMode(value: boolean): void;
276
285
  setIdeClientDisconnected(): void;
@@ -279,6 +288,10 @@ export declare class Config {
279
288
  getEphemeralSetting(key: string): unknown;
280
289
  setEphemeralSetting(key: string, value: unknown): void;
281
290
  getEphemeralSettings(): Record<string, unknown>;
291
+ addAlwaysAllowedCommand(rootCommand: string): void;
292
+ isCommandAlwaysAllowed(rootCommand: string): boolean;
293
+ getAlwaysAllowedCommands(): string[];
294
+ getShellReplacement(): boolean;
282
295
  getGitService(): Promise<GitService>;
283
296
  refreshMemory(): Promise<{
284
297
  memoryContent: string;
@@ -133,6 +133,7 @@ export class Config {
133
133
  usageStatisticsEnabled;
134
134
  geminiClient;
135
135
  fileFiltering;
136
+ alwaysAllowedCommands = new Set();
136
137
  fileDiscoveryService = null;
137
138
  gitService = undefined;
138
139
  checkpointing;
@@ -144,6 +145,7 @@ export class Config {
144
145
  extensionContextFilePaths;
145
146
  noBrowser;
146
147
  ideModeFeature;
148
+ folderTrustFeature;
147
149
  ideMode;
148
150
  ideClient;
149
151
  inFallbackMode = false;
@@ -166,6 +168,8 @@ export class Config {
166
168
  summarizeToolOutput;
167
169
  experimentalAcp = false;
168
170
  complexityAnalyzerSettings;
171
+ loadMemoryFromIncludeDirectories = false;
172
+ shellReplacement = false;
169
173
  constructor(params) {
170
174
  this.sessionId = params.sessionId;
171
175
  this.embeddingModel =
@@ -219,6 +223,7 @@ export class Config {
219
223
  this.noBrowser = params.noBrowser ?? false;
220
224
  this.summarizeToolOutput = params.summarizeToolOutput;
221
225
  this.ideModeFeature = params.ideModeFeature ?? false;
226
+ this.folderTrustFeature = params.folderTrustFeature ?? false;
222
227
  this.ideMode = params.ideMode ?? false;
223
228
  this.ideClient = params.ideClient;
224
229
  this.complexityAnalyzerSettings = params.complexityAnalyzer ?? {
@@ -226,6 +231,9 @@ export class Config {
226
231
  minTasksForSuggestion: 3,
227
232
  suggestionCooldownMs: 300000, // 5 minutes
228
233
  };
234
+ this.loadMemoryFromIncludeDirectories =
235
+ params.loadMemoryFromIncludeDirectories ?? false;
236
+ this.shellReplacement = params.shellReplacement ?? false;
229
237
  if (params.contextFileName) {
230
238
  setLlxprtMdFilename(params.contextFileName);
231
239
  }
@@ -269,7 +277,7 @@ export class Config {
269
277
  // Save the current conversation history before creating a new client
270
278
  let existingHistory = [];
271
279
  if (this.geminiClient && this.geminiClient.isInitialized()) {
272
- existingHistory = this.geminiClient.getHistory();
280
+ existingHistory = await this.geminiClient.getHistory();
273
281
  }
274
282
  // Create new content generator config
275
283
  const newContentGeneratorConfig = createContentGeneratorConfig(this, authMethod);
@@ -293,6 +301,9 @@ export class Config {
293
301
  getSessionId() {
294
302
  return this.sessionId;
295
303
  }
304
+ shouldLoadMemoryFromIncludeDirectories() {
305
+ return this.loadMemoryFromIncludeDirectories;
306
+ }
296
307
  getContentGeneratorConfig() {
297
308
  return this.contentGeneratorConfig;
298
309
  }
@@ -510,6 +521,9 @@ export class Config {
510
521
  getIdeClient() {
511
522
  return this.ideClient;
512
523
  }
524
+ getFolderTrustFeature() {
525
+ return this.folderTrustFeature;
526
+ }
513
527
  getIdeMode() {
514
528
  return this.ideMode;
515
529
  }
@@ -534,6 +548,18 @@ export class Config {
534
548
  getEphemeralSettings() {
535
549
  return { ...this.ephemeralSettings };
536
550
  }
551
+ addAlwaysAllowedCommand(rootCommand) {
552
+ this.alwaysAllowedCommands.add(rootCommand);
553
+ }
554
+ isCommandAlwaysAllowed(rootCommand) {
555
+ return this.alwaysAllowedCommands.has(rootCommand);
556
+ }
557
+ getAlwaysAllowedCommands() {
558
+ return Array.from(this.alwaysAllowedCommands);
559
+ }
560
+ getShellReplacement() {
561
+ return this.shellReplacement;
562
+ }
537
563
  async getGitService() {
538
564
  if (!this.gitService) {
539
565
  this.gitService = new GitService(this.targetDir);
@@ -542,7 +568,9 @@ export class Config {
542
568
  return this.gitService;
543
569
  }
544
570
  async refreshMemory() {
545
- const { memoryContent, fileCount } = await loadServerHierarchicalMemory(this.getWorkingDir(), this.getDebugMode(), this.getFileService(), this.getExtensionContextFilePaths());
571
+ const { memoryContent, fileCount } = await loadServerHierarchicalMemory(this.getWorkingDir(), this.shouldLoadMemoryFromIncludeDirectories()
572
+ ? this.getWorkspaceContext().getDirectories()
573
+ : [], this.getDebugMode(), this.getFileService(), this.getExtensionContextFilePaths());
546
574
  this.setUserMemory(memoryContent);
547
575
  this.setLlxprtMdFileCount(fileCount);
548
576
  return { memoryContent, fileCount };
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/config/config.ts"],"names":[],"mappings":"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"}
@@ -56,14 +56,19 @@ export declare class GeminiClient {
56
56
  getUserTier(): UserTierId | undefined;
57
57
  addHistory(content: Content): Promise<void>;
58
58
  getChat(): GeminiChat;
59
+ hasChatInitialized(): boolean;
59
60
  isInitialized(): boolean;
60
- getHistory(): Content[];
61
- setHistory(history: Content[]): void;
61
+ getHistory(): Promise<Content[]>;
62
+ setHistory(history: Content[]): Promise<void>;
63
+ /**
64
+ * Store history for later use when the client is initialized.
65
+ * This is used when resuming a chat before authentication.
66
+ * The history will be restored when lazyInitialize() is called.
67
+ */
68
+ storeHistoryForLaterUse(history: Content[]): void;
62
69
  setTools(): Promise<void>;
63
70
  resetChat(): Promise<void>;
64
71
  addDirectoryContext(): Promise<void>;
65
- private getDirectoryContext;
66
- private getEnvironment;
67
72
  startChat(extraHistory?: Content[]): Promise<GeminiChat>;
68
73
  sendMessageStream(request: PartListUnion, signal: AbortSignal, prompt_id: string, turns?: number, originalModel?: string): AsyncGenerator<ServerGeminiStreamEvent, Turn>;
69
74
  generateJson(contents: Content[], schema: SchemaUnion, abortSignal: AbortSignal, model?: string, config?: GenerateContentConfig): Promise<Record<string, unknown>>;
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { getFolderStructure } from '../utils/getFolderStructure.js';
6
+ import { getDirectoryContextString, getEnvironmentContext, } from '../utils/environmentContext.js';
7
7
  import { Turn, GeminiEventType, } from './turn.js';
8
8
  import { getCoreSystemPromptAsync, getCompressionPrompt } from './prompts.js';
9
9
  import { getResponseText } from '../utils/generateContentResponseUtilities.js';
@@ -149,7 +149,7 @@ export class GeminiClient {
149
149
  }
150
150
  this.contentGenerator = await createContentGenerator(contentGenConfig, this.config, this.config.getSessionId());
151
151
  // If we have previous history, restore it when creating the chat
152
- // This preserves conversation context across auth transitions
152
+ // This preserves conversation context across auth transitions and chat resumes
153
153
  if (this._previousHistory && this._previousHistory.length > 0) {
154
154
  // Extract the conversation history after the initial environment setup
155
155
  // The first two messages are always the environment context and acknowledgment
@@ -159,9 +159,9 @@ export class GeminiClient {
159
159
  else {
160
160
  this.chat = await this.startChat();
161
161
  }
162
- // Clear pending config and history after successful initialization
162
+ // Clear pending config after successful initialization
163
+ // Note: We do NOT clear _previousHistory as it may be needed for the chat context
163
164
  this._pendingConfig = undefined;
164
- this._previousHistory = undefined;
165
165
  }
166
166
  getContentGenerator() {
167
167
  if (!this.contentGenerator) {
@@ -173,6 +173,10 @@ export class GeminiClient {
173
173
  return this.contentGenerator?.userTier;
174
174
  }
175
175
  async addHistory(content) {
176
+ // Ensure chat is initialized before adding history
177
+ if (!this.hasChatInitialized()) {
178
+ await this.resetChat();
179
+ }
176
180
  this.getChat().addHistory(content);
177
181
  }
178
182
  getChat() {
@@ -181,19 +185,49 @@ export class GeminiClient {
181
185
  }
182
186
  return this.chat;
183
187
  }
188
+ hasChatInitialized() {
189
+ return this.chat !== undefined;
190
+ }
184
191
  isInitialized() {
185
192
  return this.chat !== undefined && this.contentGenerator !== undefined;
186
193
  }
187
- getHistory() {
188
- return this.getChat().getHistory();
194
+ async getHistory() {
195
+ // If we have stored history but no chat, return the stored history
196
+ if (!this.hasChatInitialized() && this._previousHistory) {
197
+ return this._previousHistory;
198
+ }
199
+ // If chat is initialized, get its current history
200
+ if (this.hasChatInitialized()) {
201
+ return this.getChat().getHistory();
202
+ }
203
+ // No history available
204
+ return [];
205
+ }
206
+ async setHistory(history) {
207
+ // Store the history for later use
208
+ this._previousHistory = history;
209
+ // If chat is already initialized, update it immediately
210
+ if (this.hasChatInitialized()) {
211
+ this.getChat().setHistory(history);
212
+ }
213
+ // Otherwise, the history will be used when the chat is initialized
189
214
  }
190
- setHistory(history) {
191
- this.getChat().setHistory(history);
215
+ /**
216
+ * Store history for later use when the client is initialized.
217
+ * This is used when resuming a chat before authentication.
218
+ * The history will be restored when lazyInitialize() is called.
219
+ */
220
+ storeHistoryForLaterUse(history) {
221
+ this._previousHistory = history;
192
222
  }
193
223
  async setTools() {
194
224
  const toolRegistry = await this.config.getToolRegistry();
195
225
  const toolDeclarations = toolRegistry.getFunctionDeclarations();
196
226
  const tools = [{ functionDeclarations: toolDeclarations }];
227
+ // Ensure chat is initialized before setting tools
228
+ if (!this.hasChatInitialized()) {
229
+ await this.resetChat();
230
+ }
197
231
  this.getChat().setTools(tools);
198
232
  }
199
233
  async resetChat() {
@@ -205,89 +239,11 @@ export class GeminiClient {
205
239
  }
206
240
  this.getChat().addHistory({
207
241
  role: 'user',
208
- parts: [{ text: await this.getDirectoryContext() }],
209
- });
210
- }
211
- async getDirectoryContext() {
212
- const workspaceContext = this.config.getWorkspaceContext();
213
- const workspaceDirectories = workspaceContext.getDirectories();
214
- const folderStructures = await Promise.all(workspaceDirectories.map((dir) => getFolderStructure(dir, {
215
- fileService: this.config.getFileService(),
216
- })));
217
- const folderStructure = folderStructures.join('\n');
218
- const dirList = workspaceDirectories.map((dir) => ` - ${dir}`).join('\n');
219
- const workingDirPreamble = `I'm currently working in the following directories:\n${dirList}\n Folder structures are as follows:\n${folderStructure}`;
220
- return workingDirPreamble;
221
- }
222
- async getEnvironment() {
223
- const today = new Date().toLocaleDateString(undefined, {
224
- weekday: 'long',
225
- year: 'numeric',
226
- month: 'long',
227
- day: 'numeric',
242
+ parts: [{ text: await getDirectoryContextString(this.config) }],
228
243
  });
229
- const platform = process.platform;
230
- const workspaceContext = this.config.getWorkspaceContext();
231
- const workspaceDirectories = workspaceContext.getDirectories();
232
- const folderStructures = await Promise.all(workspaceDirectories.map((dir) => getFolderStructure(dir, {
233
- fileService: this.config.getFileService(),
234
- })));
235
- const folderStructure = folderStructures.join('\n');
236
- let workingDirPreamble;
237
- if (workspaceDirectories.length === 1) {
238
- workingDirPreamble = `I'm currently working in the directory: ${workspaceDirectories[0]}`;
239
- }
240
- else {
241
- const dirList = workspaceDirectories
242
- .map((dir) => ` - ${dir}`)
243
- .join('\n');
244
- workingDirPreamble = `I'm currently working in the following directories:\n${dirList}`;
245
- }
246
- const context = `
247
- This is the CLI. We are setting up the context for our chat.
248
- Today's date is ${today}.
249
- My operating system is: ${platform}
250
- ${workingDirPreamble}
251
- Here is the folder structure of the current working directories:\n
252
- ${folderStructure}
253
- `.trim();
254
- const initialParts = [{ text: context }];
255
- const toolRegistry = await this.config.getToolRegistry();
256
- // Add full file context if the flag is set
257
- if (this.config.getFullContext()) {
258
- try {
259
- const readManyFilesTool = toolRegistry.getTool('read_many_files');
260
- if (readManyFilesTool) {
261
- // Read all files in the target directory
262
- const result = await readManyFilesTool.execute({
263
- paths: ['**/*'], // Read everything recursively
264
- useDefaultExcludes: true, // Use default excludes
265
- }, AbortSignal.timeout(30000));
266
- if (result.llmContent) {
267
- initialParts.push({
268
- text: `\n--- Full File Context ---\n${result.llmContent}`,
269
- });
270
- }
271
- else {
272
- console.warn('Full context requested, but read_many_files returned no content.');
273
- }
274
- }
275
- else {
276
- console.warn('Full context requested, but read_many_files tool not found.');
277
- }
278
- }
279
- catch (error) {
280
- // Not using reportError here as it's a startup/config phase, not a chat/generation phase error.
281
- console.error('Error reading full file context:', error);
282
- initialParts.push({
283
- text: '\n--- Error reading full file context ---',
284
- });
285
- }
286
- }
287
- return initialParts;
288
244
  }
289
245
  async startChat(extraHistory) {
290
- const envParts = await this.getEnvironment();
246
+ const envParts = await getEnvironmentContext(this.config);
291
247
  const toolRegistry = await this.config.getToolRegistry();
292
248
  const toolDeclarations = toolRegistry.getFunctionDeclarations();
293
249
  const tools = [{ functionDeclarations: toolDeclarations }];