@vybestack/llxprt-code-core 0.2.25 → 0.3.4-nightly.250912.86a20bc3

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 (193) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +1 -1
  3. package/dist/index.js.map +1 -1
  4. package/dist/src/code_assist/converter.js +35 -3
  5. package/dist/src/code_assist/converter.js.map +1 -1
  6. package/dist/src/code_assist/oauth2.d.ts +1 -1
  7. package/dist/src/code_assist/oauth2.js +18 -25
  8. package/dist/src/code_assist/oauth2.js.map +1 -1
  9. package/dist/src/config/config.d.ts +33 -2
  10. package/dist/src/config/config.js +73 -13
  11. package/dist/src/config/config.js.map +1 -1
  12. package/dist/src/config/storage.d.ts +33 -0
  13. package/dist/src/config/storage.js +93 -0
  14. package/dist/src/config/storage.js.map +1 -0
  15. package/dist/src/core/client.d.ts +8 -5
  16. package/dist/src/core/client.js +119 -20
  17. package/dist/src/core/client.js.map +1 -1
  18. package/dist/src/core/contentGenerator.js +11 -0
  19. package/dist/src/core/contentGenerator.js.map +1 -1
  20. package/dist/src/core/coreToolScheduler.d.ts +18 -12
  21. package/dist/src/core/coreToolScheduler.js +235 -241
  22. package/dist/src/core/coreToolScheduler.js.map +1 -1
  23. package/dist/src/core/logger.d.ts +3 -1
  24. package/dist/src/core/logger.js +5 -3
  25. package/dist/src/core/logger.js.map +1 -1
  26. package/dist/src/core/nonInteractiveToolExecutor.js +2 -2
  27. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  28. package/dist/src/core/subagent.js +2 -12
  29. package/dist/src/core/subagent.js.map +1 -1
  30. package/dist/src/core/turn.d.ts +13 -2
  31. package/dist/src/core/turn.js +15 -4
  32. package/dist/src/core/turn.js.map +1 -1
  33. package/dist/src/filters/EmojiFilter.d.ts +5 -0
  34. package/dist/src/filters/EmojiFilter.js +14 -2
  35. package/dist/src/filters/EmojiFilter.js.map +1 -1
  36. package/dist/src/ide/detect-ide.d.ts +8 -3
  37. package/dist/src/ide/detect-ide.js +29 -11
  38. package/dist/src/ide/detect-ide.js.map +1 -1
  39. package/dist/src/ide/ide-client.d.ts +5 -4
  40. package/dist/src/ide/ide-client.js +21 -17
  41. package/dist/src/ide/ide-client.js.map +1 -1
  42. package/dist/src/ide/ide-installer.d.ts +1 -1
  43. package/dist/src/ide/ide-installer.js +29 -20
  44. package/dist/src/ide/ide-installer.js.map +1 -1
  45. package/dist/src/ide/process-utils.d.ts +7 -5
  46. package/dist/src/ide/process-utils.js +80 -47
  47. package/dist/src/ide/process-utils.js.map +1 -1
  48. package/dist/src/index.d.ts +6 -0
  49. package/dist/src/index.js +7 -0
  50. package/dist/src/index.js.map +1 -1
  51. package/dist/src/mcp/file-token-store.d.ts +58 -0
  52. package/dist/src/mcp/file-token-store.js +181 -0
  53. package/dist/src/mcp/file-token-store.js.map +1 -0
  54. package/dist/src/mcp/oauth-token-storage.d.ts +13 -28
  55. package/dist/src/mcp/oauth-token-storage.js +21 -87
  56. package/dist/src/mcp/oauth-token-storage.js.map +1 -1
  57. package/dist/src/mcp/oauth-utils.d.ts +8 -0
  58. package/dist/src/mcp/oauth-utils.js +41 -27
  59. package/dist/src/mcp/oauth-utils.js.map +1 -1
  60. package/dist/src/mcp/token-store.d.ts +99 -0
  61. package/dist/src/mcp/token-store.js +77 -0
  62. package/dist/src/mcp/token-store.js.map +1 -0
  63. package/dist/src/parsers/TextToolCallParser.d.ts +5 -0
  64. package/dist/src/parsers/TextToolCallParser.js +3 -13
  65. package/dist/src/parsers/TextToolCallParser.js.map +1 -1
  66. package/dist/src/providers/anthropic/AnthropicProvider.js +8 -9
  67. package/dist/src/providers/anthropic/AnthropicProvider.js.map +1 -1
  68. package/dist/src/providers/gemini/GeminiProvider.js +19 -1
  69. package/dist/src/providers/gemini/GeminiProvider.js.map +1 -1
  70. package/dist/src/providers/openai/OpenAIProvider.d.ts +14 -0
  71. package/dist/src/providers/openai/OpenAIProvider.js +36 -38
  72. package/dist/src/providers/openai/OpenAIProvider.js.map +1 -1
  73. package/dist/src/services/gitService.d.ts +3 -1
  74. package/dist/src/services/gitService.js +20 -10
  75. package/dist/src/services/gitService.js.map +1 -1
  76. package/dist/src/services/history/ContentConverters.js +40 -1
  77. package/dist/src/services/history/ContentConverters.js.map +1 -1
  78. package/dist/src/services/loopDetectionService.js +8 -2
  79. package/dist/src/services/loopDetectionService.js.map +1 -1
  80. package/dist/src/services/shellExecutionService.js +2 -1
  81. package/dist/src/services/shellExecutionService.js.map +1 -1
  82. package/dist/src/settings/SettingsService.d.ts +5 -0
  83. package/dist/src/settings/SettingsService.js +5 -0
  84. package/dist/src/settings/SettingsService.js.map +1 -1
  85. package/dist/src/settings/settingsServiceInstance.d.ts +5 -0
  86. package/dist/src/settings/settingsServiceInstance.js +5 -0
  87. package/dist/src/settings/settingsServiceInstance.js.map +1 -1
  88. package/dist/src/settings/types.d.ts +5 -0
  89. package/dist/src/settings/types.js +3 -1
  90. package/dist/src/settings/types.js.map +1 -1
  91. package/dist/src/tools/IToolFormatter.d.ts +5 -0
  92. package/dist/src/tools/IToolFormatter.js +3 -13
  93. package/dist/src/tools/IToolFormatter.js.map +1 -1
  94. package/dist/src/tools/ToolFormatter.d.ts +5 -0
  95. package/dist/src/tools/ToolFormatter.js +3 -13
  96. package/dist/src/tools/ToolFormatter.js.map +1 -1
  97. package/dist/src/tools/doubleEscapeUtils.d.ts +3 -13
  98. package/dist/src/tools/doubleEscapeUtils.js +5 -0
  99. package/dist/src/tools/doubleEscapeUtils.js.map +1 -1
  100. package/dist/src/tools/edit.js +10 -1
  101. package/dist/src/tools/edit.js.map +1 -1
  102. package/dist/src/tools/glob.d.ts +0 -4
  103. package/dist/src/tools/glob.js +18 -42
  104. package/dist/src/tools/glob.js.map +1 -1
  105. package/dist/src/tools/grep.d.ts +0 -4
  106. package/dist/src/tools/grep.js +41 -77
  107. package/dist/src/tools/grep.js.map +1 -1
  108. package/dist/src/tools/ls.d.ts +2 -6
  109. package/dist/src/tools/ls.js +18 -13
  110. package/dist/src/tools/ls.js.map +1 -1
  111. package/dist/src/tools/mcp-client.d.ts +7 -0
  112. package/dist/src/tools/mcp-client.js +38 -21
  113. package/dist/src/tools/mcp-client.js.map +1 -1
  114. package/dist/src/tools/mcp-tool.js +12 -2
  115. package/dist/src/tools/mcp-tool.js.map +1 -1
  116. package/dist/src/tools/memoryTool.js +7 -2
  117. package/dist/src/tools/memoryTool.js.map +1 -1
  118. package/dist/src/tools/read-file.js +2 -30
  119. package/dist/src/tools/read-file.js.map +1 -1
  120. package/dist/src/tools/read-many-files.js +29 -52
  121. package/dist/src/tools/read-many-files.js.map +1 -1
  122. package/dist/src/tools/ripGrep.d.ts +46 -0
  123. package/dist/src/tools/ripGrep.js +368 -0
  124. package/dist/src/tools/ripGrep.js.map +1 -0
  125. package/dist/src/tools/shell.js +13 -2
  126. package/dist/src/tools/shell.js.map +1 -1
  127. package/dist/src/tools/todo-pause.js +0 -1
  128. package/dist/src/tools/todo-pause.js.map +1 -1
  129. package/dist/src/tools/tool-error.d.ts +18 -2
  130. package/dist/src/tools/tool-error.js +27 -1
  131. package/dist/src/tools/tool-error.js.map +1 -1
  132. package/dist/src/tools/tool-registry.d.ts +13 -2
  133. package/dist/src/tools/tool-registry.js +36 -6
  134. package/dist/src/tools/tool-registry.js.map +1 -1
  135. package/dist/src/tools/tools.d.ts +7 -5
  136. package/dist/src/tools/tools.js +12 -0
  137. package/dist/src/tools/tools.js.map +1 -1
  138. package/dist/src/tools/web-fetch.js +101 -76
  139. package/dist/src/tools/web-fetch.js.map +1 -1
  140. package/dist/src/tools/web-search-invocation.js +13 -1
  141. package/dist/src/tools/web-search-invocation.js.map +1 -1
  142. package/dist/src/utils/deterministicEditCorrector.d.ts +28 -0
  143. package/dist/src/utils/deterministicEditCorrector.js +295 -0
  144. package/dist/src/utils/deterministicEditCorrector.js.map +1 -0
  145. package/dist/src/utils/editCorrector.d.ts +4 -4
  146. package/dist/src/utils/editCorrector.js +15 -213
  147. package/dist/src/utils/editCorrector.js.map +1 -1
  148. package/dist/src/utils/editor.js +1 -1
  149. package/dist/src/utils/editor.js.map +1 -1
  150. package/dist/src/utils/errors.d.ts +19 -0
  151. package/dist/src/utils/errors.js +32 -0
  152. package/dist/src/utils/errors.js.map +1 -1
  153. package/dist/src/utils/fileUtils.d.ts +2 -7
  154. package/dist/src/utils/fileUtils.js +16 -47
  155. package/dist/src/utils/fileUtils.js.map +1 -1
  156. package/dist/src/utils/filesearch/fileSearch.d.ts +1 -0
  157. package/dist/src/utils/filesearch/fileSearch.js +14 -9
  158. package/dist/src/utils/filesearch/fileSearch.js.map +1 -1
  159. package/dist/src/utils/ignorePatterns.d.ts +103 -0
  160. package/dist/src/utils/ignorePatterns.js +220 -0
  161. package/dist/src/utils/ignorePatterns.js.map +1 -0
  162. package/dist/src/utils/installationManager.d.ts +16 -0
  163. package/dist/src/utils/installationManager.js +50 -0
  164. package/dist/src/utils/installationManager.js.map +1 -0
  165. package/dist/src/utils/memoryDiscovery.d.ts +1 -1
  166. package/dist/src/utils/memoryDiscovery.js +64 -43
  167. package/dist/src/utils/memoryDiscovery.js.map +1 -1
  168. package/dist/src/utils/paths.d.ts +0 -17
  169. package/dist/src/utils/paths.js +0 -26
  170. package/dist/src/utils/paths.js.map +1 -1
  171. package/dist/src/utils/schemaValidator.js +4 -0
  172. package/dist/src/utils/schemaValidator.js.map +1 -1
  173. package/dist/src/utils/shell-utils.d.ts +1 -1
  174. package/dist/src/utils/shell-utils.js +23 -29
  175. package/dist/src/utils/shell-utils.js.map +1 -1
  176. package/dist/src/utils/tool-utils.d.ts +19 -0
  177. package/dist/src/utils/tool-utils.js +58 -0
  178. package/dist/src/utils/tool-utils.js.map +1 -0
  179. package/dist/src/utils/userAccountManager.d.ts +20 -0
  180. package/dist/src/utils/userAccountManager.js +122 -0
  181. package/dist/src/utils/userAccountManager.js.map +1 -0
  182. package/dist/src/utils/workspaceContext.js +11 -5
  183. package/dist/src/utils/workspaceContext.js.map +1 -1
  184. package/package.json +7 -3
  185. package/dist/src/utils/nextSpeakerChecker.d.ts +0 -12
  186. package/dist/src/utils/nextSpeakerChecker.js +0 -97
  187. package/dist/src/utils/nextSpeakerChecker.js.map +0 -1
  188. package/dist/src/utils/user_account.d.ts +0 -9
  189. package/dist/src/utils/user_account.js +0 -109
  190. package/dist/src/utils/user_account.js.map +0 -1
  191. package/dist/src/utils/user_id.d.ts +0 -11
  192. package/dist/src/utils/user_id.js +0 -49
  193. package/dist/src/utils/user_id.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  export * from './src/index.js';
7
- export { DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, } from './src/config/models.js';
7
+ export { DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, } from './src/config/models.js';
8
8
  export { QwenDeviceFlow, DeviceFlowConfig, } from './src/auth/qwen-device-flow.js';
9
9
  export { MultiProviderTokenStore } from './src/auth/token-store.js';
10
10
  export { openBrowserSecurely, shouldLaunchBrowser, } from './src/utils/secure-browser-launcher.js';
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  export * from './src/index.js';
7
- export { DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, } from './src/config/models.js';
7
+ export { DEFAULT_GEMINI_MODEL, DEFAULT_GEMINI_FLASH_MODEL, DEFAULT_GEMINI_FLASH_LITE_MODEL, DEFAULT_GEMINI_EMBEDDING_MODEL, } from './src/config/models.js';
8
8
  export { QwenDeviceFlow, } from './src/auth/qwen-device-flow.js';
9
9
  export { MultiProviderTokenStore } from './src/auth/token-store.js';
10
10
  export { openBrowserSecurely, shouldLaunchBrowser, } from './src/utils/secure-browser-launcher.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,cAAc,GAEf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,wCAAwC,CAAC;AAEhD,gDAAgD;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAYpE,0EAA0E"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EACL,oBAAoB,EACpB,0BAA0B,EAC1B,+BAA+B,EAC/B,8BAA8B,GAC/B,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,cAAc,GAEf,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EACL,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,wCAAwC,CAAC;AAEhD,gDAAgD;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAYpE,0EAA0E"}
@@ -78,13 +78,18 @@ function toContent(content) {
78
78
  };
79
79
  }
80
80
  if ('parts' in content) {
81
- // it's a Content
82
- return content;
81
+ // it's a Content - process parts to handle thought filtering
82
+ return {
83
+ ...content,
84
+ parts: content.parts
85
+ ? toParts(content.parts.filter((p) => p != null))
86
+ : [],
87
+ };
83
88
  }
84
89
  // it's a Part
85
90
  return {
86
91
  role: 'user',
87
- parts: [content],
92
+ parts: [toPart(content)],
88
93
  };
89
94
  }
90
95
  function toParts(parts) {
@@ -95,6 +100,33 @@ function toPart(part) {
95
100
  // it's a string
96
101
  return { text: part };
97
102
  }
103
+ // Handle thought parts for CountToken API compatibility
104
+ // The CountToken API expects parts to have certain required "oneof" fields initialized,
105
+ // but thought parts don't conform to this schema and cause API failures
106
+ if ('thought' in part && part.thought) {
107
+ const thoughtText = `[Thought: ${part.thought}]`;
108
+ const newPart = { ...part };
109
+ delete newPart['thought'];
110
+ const hasApiContent = 'functionCall' in newPart ||
111
+ 'functionResponse' in newPart ||
112
+ 'inlineData' in newPart ||
113
+ 'fileData' in newPart;
114
+ if (hasApiContent) {
115
+ // It's a functionCall or other non-text part. Just strip the thought.
116
+ return newPart;
117
+ }
118
+ // If no other valid API content, this must be a text part.
119
+ // Combine existing text (if any) with the thought, preserving other properties.
120
+ const text = newPart.text;
121
+ const existingText = text ? String(text) : '';
122
+ const combinedText = existingText
123
+ ? `${existingText}\n${thoughtText}`
124
+ : thoughtText;
125
+ return {
126
+ ...newPart,
127
+ text: combinedText,
128
+ };
129
+ }
98
130
  return part;
99
131
  }
100
132
  function toVertexGenerationConfig(config) {
@@ -1 +1 @@
1
- {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/code_assist/converter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"converter.js","sourceRoot":"","sources":["../../../src/code_assist/converter.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { OAuth2Client } from 'google-auth-library';
7
- import { Config } from '../config/config.js';
7
+ import type { Config } from '../config/config.js';
8
8
  import { AuthType } from '../core/contentGenerator.js';
9
9
  /**
10
10
  * An Authentication URL for updating the credentials of a Oauth2Client
@@ -10,13 +10,14 @@ import crypto from 'crypto';
10
10
  import * as net from 'net';
11
11
  import path from 'node:path';
12
12
  import { promises as fs } from 'node:fs';
13
- import * as os from 'os';
14
- import { getErrorMessage } from '../utils/errors.js';
15
- import { cacheGoogleAccount, getCachedGoogleAccount, clearCachedGoogleAccount, } from '../utils/user_account.js';
13
+ import { getErrorMessage, FatalAuthenticationError } from '../utils/errors.js';
14
+ import { UserAccountManager } from '../utils/userAccountManager.js';
16
15
  import { AuthType } from '../core/contentGenerator.js';
17
16
  import readline from 'node:readline';
18
17
  import open from 'open';
19
18
  import { ClipboardService } from '../services/ClipboardService.js';
19
+ import { Storage } from '../config/storage.js';
20
+ const userAccountManager = new UserAccountManager();
20
21
  // OAuth Client ID used to initiate OAuth2Client class.
21
22
  const OAUTH_CLIENT_ID = '681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com';
22
23
  // OAuth Secret value used to initiate OAuth2Client class.
@@ -35,8 +36,6 @@ const OAUTH_SCOPE = [
35
36
  const HTTP_REDIRECT = 301;
36
37
  const SIGN_IN_SUCCESS_URL = 'https://developers.google.com/gemini-code-assist/auth_success_gemini';
37
38
  const SIGN_IN_FAILURE_URL = 'https://developers.google.com/gemini-code-assist/auth_failure_gemini';
38
- const LLXPRT_DIR = '.llxprt';
39
- const CREDENTIAL_FILENAME = 'oauth_creds.json';
40
39
  const oauthClientPromises = new Map();
41
40
  async function initOauthClient(authType, config) {
42
41
  // Handle USE_NONE auth type - skip OAuth entirely
@@ -68,7 +67,7 @@ async function initOauthClient(authType, config) {
68
67
  if (await loadCachedCredentials(client)) {
69
68
  // Found valid cached credentials.
70
69
  // Check if we need to retrieve Google Account ID or Email
71
- if (!getCachedGoogleAccount()) {
70
+ if (!userAccountManager.getCachedGoogleAccount()) {
72
71
  try {
73
72
  await fetchAndCacheUserInfo(client);
74
73
  }
@@ -108,7 +107,7 @@ async function initOauthClient(authType, config) {
108
107
  }
109
108
  }
110
109
  if (!success) {
111
- process.exit(1);
110
+ throw new FatalAuthenticationError('Failed to authenticate with user code.');
112
111
  }
113
112
  }
114
113
  else {
@@ -126,18 +125,13 @@ async function initOauthClient(authType, config) {
126
125
  // in a minimal Docker container), it will emit an unhandled 'error' event,
127
126
  // causing the entire Node.js process to crash.
128
127
  childProcess.on('error', (_) => {
129
- // Error will be handled in the catch block
128
+ console.error('Failed to open browser automatically. Please try running again with NO_BROWSER=true set.');
129
+ throw new FatalAuthenticationError('Failed to open browser.');
130
130
  });
131
131
  }
132
132
  catch (_err) {
133
133
  console.error('Failed to open browser automatically. Falling back to manual authentication.');
134
- // Fall back to user code flow when browser fails
135
- const success = await authWithUserCode(client);
136
- if (!success) {
137
- console.error('Authentication failed.');
138
- process.exit(1);
139
- }
140
- return client;
134
+ throw new FatalAuthenticationError('Failed to open browser.');
141
135
  }
142
136
  console.log('Waiting for authentication...');
143
137
  await webLogin.loginCompletePromise;
@@ -322,7 +316,7 @@ export function getAvailablePort() {
322
316
  }
323
317
  async function loadCachedCredentials(client) {
324
318
  const pathsToTry = [
325
- getCachedCredentialPath(),
319
+ Storage.getOAuthCredsPath(),
326
320
  process.env['GOOGLE_APPLICATION_CREDENTIALS'],
327
321
  ].filter((p) => !!p);
328
322
  for (const credPath of pathsToTry) {
@@ -341,7 +335,7 @@ async function loadCachedCredentials(client) {
341
335
  return false;
342
336
  }
343
337
  async function cacheCredentials(credentials) {
344
- const filePath = getCachedCredentialPath();
338
+ const filePath = Storage.getOAuthCredsPath();
345
339
  const dir = path.dirname(filePath);
346
340
  try {
347
341
  // Check if directory exists first to avoid unnecessary mkdir calls
@@ -372,17 +366,16 @@ async function cacheCredentials(credentials) {
372
366
  // Don't throw - allow OAuth to continue without caching
373
367
  }
374
368
  }
375
- function getCachedCredentialPath() {
376
- return path.join(os.homedir(), LLXPRT_DIR, CREDENTIAL_FILENAME);
377
- }
378
369
  export async function clearCachedCredentialFile() {
379
370
  try {
380
- await fs.rm(getCachedCredentialPath(), { force: true });
371
+ await fs.rm(Storage.getOAuthCredsPath(), { force: true });
381
372
  // Clear the Google Account ID cache when credentials are cleared
382
- await clearCachedGoogleAccount();
373
+ await userAccountManager.clearCachedGoogleAccount();
374
+ // Clear the in-memory OAuth client cache to force re-authentication
375
+ clearOauthClientCache();
383
376
  }
384
- catch (_) {
385
- /* empty */
377
+ catch (e) {
378
+ console.error('Failed to clear cached credentials:', e);
386
379
  }
387
380
  }
388
381
  async function fetchAndCacheUserInfo(client) {
@@ -402,7 +395,7 @@ async function fetchAndCacheUserInfo(client) {
402
395
  }
403
396
  const userInfo = (await response.json());
404
397
  if (userInfo.email) {
405
- await cacheGoogleAccount(userInfo.email);
398
+ await userAccountManager.cacheGoogleAccount(userInfo.email);
406
399
  }
407
400
  }
408
401
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../../../src/code_assist/oauth2.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth2.js","sourceRoot":"","sources":["../../../src/code_assist/oauth2.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,YAAY,EAEZ,OAAO,EACP,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,SAAS,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,QAAQ,MAAM,eAAe,CAAC;AACrC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,MAAM,kBAAkB,GAAG,IAAI,kBAAkB,EAAE,CAAC;AAEpD,wDAAwD;AACxD,MAAM,eAAe,GACnB,0EAA0E,CAAC;AAE7E,0DAA0D;AAC1D,6EAA6E;AAC7E,uFAAuF;AACvF,2EAA2E;AAC3E,4EAA4E;AAC5E,4DAA4D;AAC5D,MAAM,mBAAmB,GAAG,qCAAqC,CAAC;AAElE,6CAA6C;AAC7C,MAAM,WAAW,GAAG;IAClB,gDAAgD;IAChD,gDAAgD;IAChD,kDAAkD;CACnD,CAAC;AAEF,MAAM,aAAa,GAAG,GAAG,CAAC;AAC1B,MAAM,mBAAmB,GACvB,sEAAsE,CAAC;AACzE,MAAM,mBAAmB,GACvB,sEAAsE,CAAC;AAYzE,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAmC,CAAC;AAEvE,KAAK,UAAU,eAAe,CAC5B,QAAkB,EAClB,MAAc;IAEd,kDAAkD;IAClD,IAAI,QAAQ,KAAK,QAAQ,CAAC,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC;QAC9B,QAAQ,EAAE,eAAe;QACzB,YAAY,EAAE,mBAAmB;QACjC,kBAAkB,EAAE;YAClB,KAAK,EAAE,MAAM,CAAC,QAAQ,EAAE;SACzB;KACF,CAAC,CAAC;IAEH,IACE,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAChC,OAAO,CAAC,GAAG,CAAC,yBAAyB,EACrC,CAAC;QACD,MAAM,CAAC,cAAc,CAAC;YACpB,YAAY,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;SACpD,CAAC,CAAC;QACH,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAmB,EAAE,EAAE;QAC1C,mEAAmE;QACnE,gBAAgB,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;YACvC,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,iEAAiE;IACjE,IAAI,MAAM,qBAAqB,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,kCAAkC;QAClC,0DAA0D;QAC1D,IAAI,CAAC,kBAAkB,CAAC,sBAAsB,EAAE,EAAE,CAAC;YACjD,IAAI,CAAC;gBACH,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;YACtC,CAAC;YAAC,MAAM,CAAC;gBACP,0CAA0C;YAC5C,CAAC;QACH,CAAC;QACD,4BAA4B;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,0EAA0E;IAC1E,2EAA2E;IAC3E,oDAAoD;IACpD,IAAI,QAAQ,KAAK,QAAQ,CAAC,WAAW,EAAE,CAAC;QACtC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,CAAC,sDAAsD,CAAC,CAAC;YACpE,MAAM,aAAa,GAAG,IAAI,OAAO,CAAC;YAChC,kEAAkE;YAClE,6BAA6B;aAC9B,CAAC,CAAC;YACH,MAAM,aAAa,CAAC,cAAc,EAAE,CAAC;YACrC,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAE1C,wFAAwF;YACxF,OAAO,aAAa,CAAC;QACvB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CACb,wKAAwK,eAAe,CACrL,CAAC,CACF,EAAE,CACJ,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAC,yBAAyB,EAAE,EAAE,CAAC;QACvC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,UAAU,GAAG,CAAC,CAAC;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,OAAO,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CACX,0CAA0C,EAC1C,CAAC,KAAK,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,eAAe,CAC5C,CAAC;YACJ,CAAC;QACH,CAAC;QACD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,wBAAwB,CAChC,wCAAwC,CACzC,CAAC;QACJ,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,QAAQ,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,CAAC;QAE3C,OAAO,CAAC,GAAG,CACT,mCAAmC;YACjC,2DAA2D;YAC3D,6BAA6B,QAAQ,CAAC,OAAO,MAAM,CACtD,CAAC;QAEF,IAAI,CAAC;YACH,iEAAiE;YACjE,2EAA2E;YAC3E,iFAAiF;YACjF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAElD,oEAAoE;YACpE,kFAAkF;YAClF,2EAA2E;YAC3E,+CAA+C;YAC/C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;gBAC7B,OAAO,CAAC,KAAK,CACX,0FAA0F,CAC3F,CAAC;gBACF,MAAM,IAAI,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,IAAI,EAAE,CAAC;YACd,OAAO,CAAC,KAAK,CACX,8EAA8E,CAC/E,CAAC;YACF,MAAM,IAAI,wBAAwB,CAAC,yBAAyB,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,MAAM,QAAQ,CAAC,oBAAoB,CAAC;QAEpC,+DAA+D;QAC/D;;;;WAIG;QACF,MAAkC,CAAC,kBAAkB,GAAG,KAAK,CAAC;QAC9D,MAAkC,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACnE,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,QAAkB,EAClB,MAAc;IAEd,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;QACvC,mBAAmB,CAAC,GAAG,CAAC,QAAQ,EAAE,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,mBAAmB,CAAC,GAAG,CAAC,QAAQ,CAAE,CAAC;AAC5C,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,MAAoB;IAClD,MAAM,WAAW,GAAG,wCAAwC,CAAC;IAC7D,MAAM,YAAY,GAAG,MAAM,MAAM,CAAC,yBAAyB,EAAE,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,OAAO,GAAW,MAAM,CAAC,eAAe,CAAC;QAC7C,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,SAAS;QACtB,KAAK,EAAE,WAAW;QAClB,qBAAqB,EAAE,mBAAmB,CAAC,IAAI;QAC/C,cAAc,EAAE,YAAY,CAAC,aAAa;QAC1C,KAAK;KACN,CAAC,CAAC;IAEH,+BAA+B;IAC/B;;;;OAIG;IACH,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC;IAChD,IAAI,CAAC;QACH,MAAM,gBAAgB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CACT,mCAAmC;YACjC,6DAA6D;YAC7D,sDAAsD;YACtD,0EAA0E,CAC7E,CAAC;IACJ,CAAC;IAAC,OAAO,cAAc,EAAE,CAAC;QACxB,OAAO,CAAC,KAAK,CAAC,kCAAkC,EAAE,cAAc,CAAC,CAAC;QAClE,8EAA8E;QAC9E,OAAO,CAAC,GAAG,CACT,gEAAgE,CACjE,CAAC;QACF,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QACrB,OAAO,CAAC,GAAG,CACT,wEAAwE,CACzE,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,EAAE;QACjD,MAAM,EAAE,GAAG,QAAQ,CAAC,eAAe,CAAC;YAClC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC,CAAC;QACH,EAAE,CAAC,QAAQ,CAAC,gCAAgC,EAAE,CAAC,IAAI,EAAE,EAAE;YACrD,EAAE,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACjD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;YACvC,IAAI;YACJ,YAAY,EAAE,YAAY,CAAC,YAAY;YACvC,YAAY,EAAE,WAAW;SAC1B,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,mDAAmD,EAAE,KAAK,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,MAAoB;IAC7C,MAAM,IAAI,GAAG,MAAM,gBAAgB,EAAE,CAAC;IACtC,6EAA6E;IAC7E,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,WAAW,CAAC;IAC5D,yFAAyF;IACzF,0FAA0F;IAC1F,iFAAiF;IACjF,2CAA2C;IAC3C,MAAM,WAAW,GAAG,oBAAoB,IAAI,iBAAiB,CAAC;IAC9D,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACrD,MAAM,OAAO,GAAG,MAAM,CAAC,eAAe,CAAC;QACrC,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,SAAS;QACtB,KAAK,EAAE,WAAW;QAClB,KAAK;KACN,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE;YAClD,IAAI,CAAC;gBACH,IAAI,GAAG,CAAC,GAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;oBAC/C,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC;oBAChE,GAAG,CAAC,GAAG,EAAE,CAAC;oBACV,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;gBACtD,CAAC;gBACD,mEAAmE;gBACnE,MAAM,EAAE,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAI,EAAE,uBAAuB,CAAC,CAAC,YAAY,CAAC;gBACvE,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;oBACpB,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC;oBAChE,GAAG,CAAC,GAAG,EAAE,CAAC;oBAEV,MAAM,CAAC,IAAI,KAAK,CAAC,gCAAgC,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;gBACvE,CAAC;qBAAM,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,KAAK,EAAE,CAAC;oBACrC,GAAG,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;oBAEhD,MAAM,CAAC,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;gBAC5D,CAAC;qBAAM,IAAI,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC1B,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC;wBACvC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,CAAE;wBACrB,YAAY,EAAE,WAAW;qBAC1B,CAAC,CAAC;oBACH,MAAM,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;oBAC9B,6DAA6D;oBAC7D,IAAI,CAAC;wBACH,MAAM,qBAAqB,CAAC,MAAM,CAAC,CAAC;oBACtC,CAAC;oBAAC,OAAO,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,KAAK,CACX,6DAA6D,EAC7D,KAAK,CACN,CAAC;wBACF,gEAAgE;oBAClE,CAAC;oBAED,GAAG,CAAC,SAAS,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC;oBAChE,GAAG,CAAC,GAAG,EAAE,CAAC;oBACV,OAAO,EAAE,CAAC;gBACZ,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;gBAChD,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,CAAC,CAAC,CAAC;YACZ,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,oBAAoB;KACrB,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC;YAChD,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,GAAG,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC7B,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;oBAC7C,OAAO,MAAM,CACX,IAAI,KAAK,CAAC,0CAA0C,OAAO,EAAE,CAAC,CAC/D,CAAC;gBACJ,CAAC;gBACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YACD,MAAM,MAAM,GAAG,GAAG,CAAC,YAAY,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,EAAE;gBACpB,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;gBACjC,IAAI,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;oBAChE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC,CAAC;gBACpD,CAAC;gBACD,MAAM,CAAC,KAAK,EAAE,CAAC;YACjB,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QAC7B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,CAAC,CAAC,CAAC;QACZ,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,MAAoB;IACvD,MAAM,UAAU,GAAG;QACjB,OAAO,CAAC,iBAAiB,EAAE;QAC3B,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC;KAC9C,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAElC,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAgB,CAAC;YACnD,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxB,MAAM,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC7B,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,wBAAwB;QAC1B,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,WAAwB;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEnC,IAAI,CAAC;QACH,mEAAmE;QACnE,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,qCAAqC;QACrC,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6EAA6E;YAC7E,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACvD,OAAO,CAAC,KAAK,CAAC,yCAAyC,EAAE,KAAK,CAAC,CAAC;gBAChE,wDAAwD;gBACxD,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,CAAC;QACH,4DAA4D;QAC5D,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE;YACjE,IAAI,EAAE,KAAK;SACZ,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,KAAK,CAAC,CAAC;QAC3D,wDAAwD;IAC1D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB;IAC7C,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1D,iEAAiE;QACjE,MAAM,kBAAkB,CAAC,wBAAwB,EAAE,CAAC;QACpD,oEAAoE;QACpE,qBAAqB,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,KAAK,CAAC,qCAAqC,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;AACH,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,MAAoB;IACvD,IAAI,CAAC;QACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,EAAE,CAAC;QAChD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAC1B,+CAA+C,EAC/C;YACE,OAAO,EAAE;gBACP,aAAa,EAAE,UAAU,KAAK,EAAE;aACjC;SACF,CACF,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,CAAC,KAAK,CACX,4BAA4B,EAC5B,QAAQ,CAAC,MAAM,EACf,QAAQ,CAAC,UAAU,CACpB,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAuB,CAAC;QAC/D,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;YACnB,MAAM,kBAAkB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACtD,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CAAC,QAAmB;IACvD,IAAI,CAAC;QACH,IAAI,QAAQ,EAAE,CAAC;YACb,mBAAmB,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvC,CAAC;aAAM,CAAC;YACN,mBAAmB,CAAC,KAAK,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,oFAAoF;QACpF,OAAO,CAAC,IAAI,CAAC,qCAAqC,EAAE,KAAK,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,kCAAkC;AAClC,MAAM,UAAU,0BAA0B;IACxC,mBAAmB,CAAC,KAAK,EAAE,CAAC;AAC9B,CAAC"}
@@ -16,8 +16,11 @@ import { MCPOAuthConfig } from '../mcp/oauth-provider.js';
16
16
  import { IdeClient } from '../ide/ide-client.js';
17
17
  import { SettingsService } from '../settings/SettingsService.js';
18
18
  import { FileSystemService } from '../services/fileSystemService.js';
19
- export type { MCPOAuthConfig };
19
+ export type { MCPOAuthConfig, AnyToolInvocation };
20
+ import type { AnyToolInvocation } from '../tools/tools.js';
20
21
  import { WorkspaceContext } from '../utils/workspaceContext.js';
22
+ import { Storage } from './storage.js';
23
+ import { FileExclusions } from '../utils/ignorePatterns.js';
21
24
  export interface RedactionConfig {
22
25
  redactApiKeys: boolean;
23
26
  redactCredentials: boolean;
@@ -39,6 +42,7 @@ export declare enum ApprovalMode {
39
42
  }
40
43
  export interface AccessibilitySettings {
41
44
  disableLoadingPhrases?: boolean;
45
+ screenReader?: boolean;
42
46
  }
43
47
  export interface BugCommandSettings {
44
48
  urlTemplate: string;
@@ -136,6 +140,7 @@ export interface ConfigParameters {
136
140
  question?: string;
137
141
  fullContext?: boolean;
138
142
  coreTools?: string[];
143
+ allowedTools?: string[];
139
144
  excludeTools?: string[];
140
145
  toolDiscoveryCommand?: string;
141
146
  toolCallCommand?: string;
@@ -155,6 +160,7 @@ export interface ConfigParameters {
155
160
  respectGitIgnore?: boolean;
156
161
  respectLlxprtIgnore?: boolean;
157
162
  enableRecursiveFileSearch?: boolean;
163
+ disableFuzzySearch?: boolean;
158
164
  };
159
165
  checkpointing?: boolean;
160
166
  proxy?: string;
@@ -187,7 +193,11 @@ export interface ConfigParameters {
187
193
  interactive?: boolean;
188
194
  shellReplacement?: boolean;
189
195
  trustedFolder?: boolean;
196
+ useRipgrep?: boolean;
190
197
  shouldUseNodePtyShell?: boolean;
198
+ skipNextSpeakerCheck?: boolean;
199
+ extensionManagement?: boolean;
200
+ enablePromptCompletion?: boolean;
191
201
  }
192
202
  export declare class Config {
193
203
  private toolRegistry;
@@ -204,6 +214,7 @@ export declare class Config {
204
214
  private readonly question;
205
215
  private readonly fullContext;
206
216
  private readonly coreTools;
217
+ private readonly allowedTools;
207
218
  private readonly excludeTools;
208
219
  private readonly toolDiscoveryCommand;
209
220
  private readonly toolCallCommand;
@@ -232,7 +243,7 @@ export declare class Config {
232
243
  private readonly folderTrustFeature;
233
244
  private readonly folderTrust;
234
245
  private ideMode;
235
- private ideClient?;
246
+ private ideClient;
236
247
  private inFallbackMode;
237
248
  private _modelSwitchedDuringSession;
238
249
  private readonly maxSessionTurns;
@@ -253,9 +264,15 @@ export declare class Config {
253
264
  private readonly chatCompression;
254
265
  private readonly interactive;
255
266
  private readonly trustedFolder;
267
+ private readonly useRipgrep;
256
268
  private readonly shouldUseNodePtyShell;
269
+ private readonly skipNextSpeakerCheck;
270
+ private readonly extensionManagement;
271
+ private readonly enablePromptCompletion;
257
272
  private initialized;
258
273
  private readonly shellReplacement;
274
+ readonly storage: Storage;
275
+ private readonly fileExclusions;
259
276
  constructor(params: ConfigParameters);
260
277
  /**
261
278
  * Must only be called once, throws if called again.
@@ -286,6 +303,7 @@ export declare class Config {
286
303
  getQuestion(): string | undefined;
287
304
  getFullContext(): boolean;
288
305
  getCoreTools(): string[] | undefined;
306
+ getAllowedTools(): string[] | undefined;
289
307
  getExcludeTools(): string[] | undefined;
290
308
  getToolDiscoveryCommand(): string | undefined;
291
309
  getToolCallCommand(): string | undefined;
@@ -325,9 +343,16 @@ export declare class Config {
325
343
  getGeminiDir(): string;
326
344
  getProjectTempDir(): string;
327
345
  getEnableRecursiveFileSearch(): boolean;
346
+ getFileFilteringDisableFuzzySearch(): boolean;
328
347
  getFileFilteringRespectGitIgnore(): boolean;
329
348
  getFileFilteringRespectLlxprtIgnore(): boolean;
330
349
  getFileFilteringOptions(): FileFilteringOptions;
350
+ /**
351
+ * Gets custom file exclusion patterns from configuration.
352
+ * TODO: This is a placeholder implementation. In the future, this could
353
+ * read from settings files, CLI arguments, or environment variables.
354
+ */
355
+ getCustomExcludes(): string[];
331
356
  getCheckpointingEnabled(): boolean;
332
357
  getProxy(): string | undefined;
333
358
  getWorkingDir(): string;
@@ -337,6 +362,7 @@ export declare class Config {
337
362
  getExtensionContextFilePaths(): string[];
338
363
  getExperimentalZedIntegration(): boolean;
339
364
  getListExtensions(): boolean;
365
+ getExtensionManagement(): boolean;
340
366
  getExtensions(): GeminiCLIExtension[];
341
367
  getActiveExtensions(): ActiveExtension[];
342
368
  getBlockedMcpServers(): Array<{
@@ -375,12 +401,17 @@ export declare class Config {
375
401
  isCommandAlwaysAllowed(rootCommand: string): boolean;
376
402
  getAlwaysAllowedCommands(): string[];
377
403
  getShellReplacement(): boolean;
404
+ getUseRipgrep(): boolean;
378
405
  getShouldUseNodePtyShell(): boolean;
406
+ getSkipNextSpeakerCheck(): boolean;
407
+ getScreenReader(): boolean;
408
+ getEnablePromptCompletion(): boolean;
379
409
  getGitService(): Promise<GitService>;
380
410
  /**
381
411
  * Get the SettingsService instance
382
412
  */
383
413
  getSettingsService(): SettingsService;
414
+ getFileExclusions(): FileExclusions;
384
415
  refreshMemory(): Promise<{
385
416
  memoryContent: string;
386
417
  fileCount: number;
@@ -11,6 +11,7 @@ import { ToolRegistry } from '../tools/tool-registry.js';
11
11
  import { LSTool } from '../tools/ls.js';
12
12
  import { ReadFileTool } from '../tools/read-file.js';
13
13
  import { GrepTool } from '../tools/grep.js';
14
+ import { RipGrepTool } from '../tools/ripGrep.js';
14
15
  import { GlobTool } from '../tools/glob.js';
15
16
  import { EditTool } from '../tools/edit.js';
16
17
  import { ShellTool } from '../tools/shell.js';
@@ -25,7 +26,6 @@ import { TodoPause } from '../tools/todo-pause.js';
25
26
  import { GeminiClient } from '../core/client.js';
26
27
  import { FileDiscoveryService } from '../services/fileDiscoveryService.js';
27
28
  import { GitService } from '../services/gitService.js';
28
- import { getProjectTempDir } from '../utils/paths.js';
29
29
  import { loadServerHierarchicalMemory } from '../utils/memoryDiscovery.js';
30
30
  import {
31
31
  // TELEMETRY: Re-enabled for local file logging only
@@ -36,6 +36,8 @@ import { IdeClient } from '../ide/ide-client.js';
36
36
  import { getSettingsService } from '../settings/settingsServiceInstance.js';
37
37
  import { StandardFileSystemService, } from '../services/fileSystemService.js';
38
38
  import { WorkspaceContext } from '../utils/workspaceContext.js';
39
+ import { Storage } from './storage.js';
40
+ import { FileExclusions } from '../utils/ignorePatterns.js';
39
41
  export var ApprovalMode;
40
42
  (function (ApprovalMode) {
41
43
  ApprovalMode["DEFAULT"] = "default";
@@ -123,6 +125,7 @@ export class Config {
123
125
  question;
124
126
  fullContext;
125
127
  coreTools;
128
+ allowedTools;
126
129
  excludeTools;
127
130
  toolDiscoveryCommand;
128
131
  toolCallCommand;
@@ -176,9 +179,15 @@ export class Config {
176
179
  chatCompression;
177
180
  interactive;
178
181
  trustedFolder;
182
+ useRipgrep;
179
183
  shouldUseNodePtyShell;
184
+ skipNextSpeakerCheck;
185
+ extensionManagement;
186
+ enablePromptCompletion = false;
180
187
  initialized = false;
181
188
  shellReplacement = false;
189
+ storage;
190
+ fileExclusions;
182
191
  constructor(params) {
183
192
  this.sessionId = params.sessionId;
184
193
  this.embeddingModel =
@@ -191,6 +200,7 @@ export class Config {
191
200
  this.question = params.question;
192
201
  this.fullContext = params.fullContext ?? false;
193
202
  this.coreTools = params.coreTools;
203
+ this.allowedTools = params.allowedTools;
194
204
  this.excludeTools = params.excludeTools;
195
205
  this.toolDiscoveryCommand = params.toolDiscoveryCommand;
196
206
  this.toolCallCommand = params.toolCallCommand;
@@ -220,6 +230,7 @@ export class Config {
220
230
  respectGitIgnore: params.fileFiltering?.respectGitIgnore ?? true,
221
231
  respectLlxprtIgnore: params.fileFiltering?.respectLlxprtIgnore ?? true,
222
232
  enableRecursiveFileSearch: params.fileFiltering?.enableRecursiveFileSearch ?? true,
233
+ disableFuzzySearch: params.fileFiltering?.disableFuzzySearch ?? false,
223
234
  };
224
235
  this.checkpointing = params.checkpointing ?? false;
225
236
  this.proxy = params.proxy;
@@ -243,7 +254,6 @@ export class Config {
243
254
  this.folderTrustFeature = params.folderTrustFeature ?? false;
244
255
  this.folderTrust = params.folderTrust ?? false;
245
256
  this.ideMode = params.ideMode ?? false;
246
- this.ideClient = params.ideClient || IdeClient.getInstance();
247
257
  this.complexityAnalyzerSettings = params.complexityAnalyzer ?? {
248
258
  complexityThreshold: 0.6,
249
259
  minTasksForSuggestion: 3,
@@ -255,7 +265,13 @@ export class Config {
255
265
  this.interactive = params.interactive ?? false;
256
266
  this.shellReplacement = params.shellReplacement ?? false;
257
267
  this.trustedFolder = params.trustedFolder;
268
+ this.useRipgrep = params.useRipgrep ?? false;
258
269
  this.shouldUseNodePtyShell = params.shouldUseNodePtyShell ?? false;
270
+ this.skipNextSpeakerCheck = params.skipNextSpeakerCheck ?? false;
271
+ this.extensionManagement = params.extensionManagement ?? false;
272
+ this.storage = new Storage(this.targetDir);
273
+ this.enablePromptCompletion = params.enablePromptCompletion ?? false;
274
+ this.fileExclusions = new FileExclusions(this);
259
275
  if (params.contextFileName) {
260
276
  setLlxprtMdFilename(params.contextFileName);
261
277
  }
@@ -282,6 +298,7 @@ export class Config {
282
298
  throw Error('Config was already initialized');
283
299
  }
284
300
  this.initialized = true;
301
+ this.ideClient = await IdeClient.getInstance();
285
302
  // Initialize centralized FileDiscoveryService
286
303
  this.getFileService();
287
304
  if (this.getCheckpointingEnabled()) {
@@ -432,6 +449,9 @@ export class Config {
432
449
  getCoreTools() {
433
450
  return this.coreTools;
434
451
  }
452
+ getAllowedTools() {
453
+ return this.allowedTools;
454
+ }
435
455
  getExcludeTools() {
436
456
  return this.excludeTools;
437
457
  }
@@ -463,6 +483,9 @@ export class Config {
463
483
  return this.approvalMode;
464
484
  }
465
485
  setApprovalMode(mode) {
486
+ if (this.isTrustedFolder() === false && mode !== ApprovalMode.DEFAULT) {
487
+ throw new Error('Cannot enable privileged approval modes in an untrusted folder.');
488
+ }
466
489
  this.approvalMode = mode;
467
490
  }
468
491
  getShowMemoryUsage() {
@@ -576,11 +599,14 @@ export class Config {
576
599
  return path.join(this.targetDir, LLXPRT_DIR);
577
600
  }
578
601
  getProjectTempDir() {
579
- return getProjectTempDir(this.getProjectRoot());
602
+ return this.storage.getProjectTempDir();
580
603
  }
581
604
  getEnableRecursiveFileSearch() {
582
605
  return this.fileFiltering.enableRecursiveFileSearch;
583
606
  }
607
+ getFileFilteringDisableFuzzySearch() {
608
+ return this.fileFiltering.disableFuzzySearch;
609
+ }
584
610
  getFileFilteringRespectGitIgnore() {
585
611
  return this.fileFiltering.respectGitIgnore;
586
612
  }
@@ -593,6 +619,20 @@ export class Config {
593
619
  respectLlxprtIgnore: this.fileFiltering.respectLlxprtIgnore,
594
620
  };
595
621
  }
622
+ /**
623
+ * Gets custom file exclusion patterns from configuration.
624
+ * TODO: This is a placeholder implementation. In the future, this could
625
+ * read from settings files, CLI arguments, or environment variables.
626
+ */
627
+ getCustomExcludes() {
628
+ // Placeholder implementation - returns empty array for now
629
+ // Future implementation could read from:
630
+ // - User settings file
631
+ // - Project-specific configuration
632
+ // - Environment variables
633
+ // - CLI arguments
634
+ return [];
635
+ }
596
636
  getCheckpointingEnabled() {
597
637
  return this.checkpointing;
598
638
  }
@@ -623,6 +663,9 @@ export class Config {
623
663
  getListExtensions() {
624
664
  return this.listExtensions;
625
665
  }
666
+ getExtensionManagement() {
667
+ return this.extensionManagement;
668
+ }
626
669
  getExtensions() {
627
670
  return this._extensions;
628
671
  }
@@ -727,12 +770,24 @@ export class Config {
727
770
  }
728
771
  return this.shellReplacement;
729
772
  }
773
+ getUseRipgrep() {
774
+ return this.useRipgrep;
775
+ }
730
776
  getShouldUseNodePtyShell() {
731
777
  return this.shouldUseNodePtyShell;
732
778
  }
779
+ getSkipNextSpeakerCheck() {
780
+ return this.skipNextSpeakerCheck;
781
+ }
782
+ getScreenReader() {
783
+ return this.accessibility.screenReader ?? false;
784
+ }
785
+ getEnablePromptCompletion() {
786
+ return this.enablePromptCompletion;
787
+ }
733
788
  async getGitService() {
734
789
  if (!this.gitService) {
735
- this.gitService = new GitService(this.targetDir);
790
+ this.gitService = new GitService(this.targetDir, this.storage);
736
791
  await this.gitService.initialize();
737
792
  }
738
793
  return this.gitService;
@@ -743,6 +798,9 @@ export class Config {
743
798
  getSettingsService() {
744
799
  return this.settingsService;
745
800
  }
801
+ getFileExclusions() {
802
+ return this.fileExclusions;
803
+ }
746
804
  async refreshMemory() {
747
805
  const { memoryContent, fileCount } = await loadServerHierarchicalMemory(this.getWorkingDir(), this.shouldLoadMemoryFromIncludeDirectories()
748
806
  ? this.getWorkspaceContext().getDirectories()
@@ -759,19 +817,16 @@ export class Config {
759
817
  const className = ToolClass.name;
760
818
  const toolName = ToolClass.Name || className;
761
819
  const coreTools = this.getCoreTools();
762
- const excludeTools = this.getExcludeTools();
763
- let isEnabled = false;
764
- if (coreTools === undefined) {
765
- isEnabled = true;
766
- }
767
- else {
820
+ const excludeTools = this.getExcludeTools() || [];
821
+ let isEnabled = true; // Enabled by default if coreTools is not set.
822
+ if (coreTools) {
768
823
  isEnabled = coreTools.some((tool) => tool === className ||
769
824
  tool === toolName ||
770
825
  tool.startsWith(`${className}(`) ||
771
826
  tool.startsWith(`${toolName}(`));
772
827
  }
773
- if (excludeTools?.includes(className) ||
774
- excludeTools?.includes(toolName)) {
828
+ const isExcluded = excludeTools.some((tool) => tool === className || tool === toolName);
829
+ if (isExcluded) {
775
830
  isEnabled = false;
776
831
  }
777
832
  if (isEnabled) {
@@ -780,7 +835,12 @@ export class Config {
780
835
  };
781
836
  registerCoreTool(LSTool, this);
782
837
  registerCoreTool(ReadFileTool, this);
783
- registerCoreTool(GrepTool, this);
838
+ if (this.getUseRipgrep()) {
839
+ registerCoreTool(RipGrepTool, this);
840
+ }
841
+ else {
842
+ registerCoreTool(GrepTool, this);
843
+ }
784
844
  registerCoreTool(GlobTool, this);
785
845
  registerCoreTool(EditTool, this);
786
846
  registerCoreTool(WriteFileTool, this);