@google/gemini-cli-core 0.1.10-dev.15 → 0.1.11-nightly.250713.4442e893

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 (192) hide show
  1. package/README.md +16 -2
  2. package/dist/google-gemini-cli-core-0.1.11.tgz +0 -0
  3. package/dist/src/code_assist/codeAssist.d.ts +2 -1
  4. package/dist/src/code_assist/codeAssist.js +4 -3
  5. package/dist/src/code_assist/codeAssist.js.map +1 -1
  6. package/dist/src/code_assist/converter.js.map +1 -1
  7. package/dist/src/code_assist/oauth2.d.ts +3 -8
  8. package/dist/src/code_assist/oauth2.js +117 -75
  9. package/dist/src/code_assist/oauth2.js.map +1 -1
  10. package/dist/src/code_assist/oauth2.test.js +134 -34
  11. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  12. package/dist/src/code_assist/server.d.ts +4 -0
  13. package/dist/src/code_assist/server.js +68 -2
  14. package/dist/src/code_assist/server.js.map +1 -1
  15. package/dist/src/code_assist/setup.js +1 -1
  16. package/dist/src/code_assist/setup.js.map +1 -1
  17. package/dist/src/code_assist/setup.test.d.ts +6 -0
  18. package/dist/src/code_assist/setup.test.js +62 -0
  19. package/dist/src/code_assist/setup.test.js.map +1 -0
  20. package/dist/src/config/config.d.ts +31 -3
  21. package/dist/src/config/config.js +102 -56
  22. package/dist/src/config/config.js.map +1 -1
  23. package/dist/src/config/config.test.js +48 -23
  24. package/dist/src/config/config.test.js.map +1 -1
  25. package/dist/src/core/client.d.ts +23 -6
  26. package/dist/src/core/client.js +88 -24
  27. package/dist/src/core/client.js.map +1 -1
  28. package/dist/src/core/client.test.js +131 -12
  29. package/dist/src/core/client.test.js.map +1 -1
  30. package/dist/src/core/contentGenerator.d.ts +7 -5
  31. package/dist/src/core/contentGenerator.js +16 -15
  32. package/dist/src/core/contentGenerator.js.map +1 -1
  33. package/dist/src/core/contentGenerator.test.js +52 -5
  34. package/dist/src/core/contentGenerator.test.js.map +1 -1
  35. package/dist/src/core/coreToolScheduler.d.ts +9 -2
  36. package/dist/src/core/coreToolScheduler.js +52 -5
  37. package/dist/src/core/coreToolScheduler.js.map +1 -1
  38. package/dist/src/core/coreToolScheduler.test.js +80 -0
  39. package/dist/src/core/coreToolScheduler.test.js.map +1 -1
  40. package/dist/src/core/geminiChat.d.ts +2 -2
  41. package/dist/src/core/geminiChat.js +52 -32
  42. package/dist/src/core/geminiChat.js.map +1 -1
  43. package/dist/src/core/geminiChat.test.js +4 -2
  44. package/dist/src/core/geminiChat.test.js.map +1 -1
  45. package/dist/src/core/modelCheck.js +1 -1
  46. package/dist/src/core/modelCheck.js.map +1 -1
  47. package/dist/src/core/nonInteractiveToolExecutor.js +11 -2
  48. package/dist/src/core/nonInteractiveToolExecutor.js.map +1 -1
  49. package/dist/src/core/nonInteractiveToolExecutor.test.js +5 -0
  50. package/dist/src/core/nonInteractiveToolExecutor.test.js.map +1 -1
  51. package/dist/src/core/prompts.js +9 -8
  52. package/dist/src/core/prompts.js.map +1 -1
  53. package/dist/src/core/turn.d.ts +9 -3
  54. package/dist/src/core/turn.js +6 -2
  55. package/dist/src/core/turn.js.map +1 -1
  56. package/dist/src/core/turn.test.js +2 -2
  57. package/dist/src/core/turn.test.js.map +1 -1
  58. package/dist/src/index.d.ts +1 -0
  59. package/dist/src/index.js +1 -0
  60. package/dist/src/index.js.map +1 -1
  61. package/dist/src/services/fileDiscoveryService.d.ts +4 -0
  62. package/dist/src/services/fileDiscoveryService.js +13 -0
  63. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  64. package/dist/src/telemetry/clearcut-logger/clearcut-logger.d.ts +3 -2
  65. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js +70 -28
  66. package/dist/src/telemetry/clearcut-logger/clearcut-logger.js.map +1 -1
  67. package/dist/src/telemetry/clearcut-logger/event-metadata-key.d.ts +4 -1
  68. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js +9 -0
  69. package/dist/src/telemetry/clearcut-logger/event-metadata-key.js.map +1 -1
  70. package/dist/src/telemetry/constants.d.ts +1 -0
  71. package/dist/src/telemetry/constants.js +1 -0
  72. package/dist/src/telemetry/constants.js.map +1 -1
  73. package/dist/src/telemetry/index.d.ts +2 -2
  74. package/dist/src/telemetry/index.js +2 -2
  75. package/dist/src/telemetry/index.js.map +1 -1
  76. package/dist/src/telemetry/loggers.d.ts +2 -1
  77. package/dist/src/telemetry/loggers.js +18 -1
  78. package/dist/src/telemetry/loggers.js.map +1 -1
  79. package/dist/src/telemetry/loggers.test.js +42 -9
  80. package/dist/src/telemetry/loggers.test.js.map +1 -1
  81. package/dist/src/telemetry/types.d.ts +19 -5
  82. package/dist/src/telemetry/types.js +30 -4
  83. package/dist/src/telemetry/types.js.map +1 -1
  84. package/dist/src/telemetry/uiTelemetry.test.js +1 -0
  85. package/dist/src/telemetry/uiTelemetry.test.js.map +1 -1
  86. package/dist/src/tools/edit.d.ts +1 -2
  87. package/dist/src/tools/edit.js +11 -12
  88. package/dist/src/tools/edit.js.map +1 -1
  89. package/dist/src/tools/edit.test.js +7 -9
  90. package/dist/src/tools/edit.test.js.map +1 -1
  91. package/dist/src/tools/glob.js +9 -8
  92. package/dist/src/tools/glob.js.map +1 -1
  93. package/dist/src/tools/glob.test.js +3 -3
  94. package/dist/src/tools/glob.test.js.map +1 -1
  95. package/dist/src/tools/grep.js +8 -7
  96. package/dist/src/tools/grep.js.map +1 -1
  97. package/dist/src/tools/grep.test.js +4 -4
  98. package/dist/src/tools/grep.test.js.map +1 -1
  99. package/dist/src/tools/ls.js +9 -8
  100. package/dist/src/tools/ls.js.map +1 -1
  101. package/dist/src/tools/mcp-client.d.ts +0 -9
  102. package/dist/src/tools/mcp-client.js +29 -48
  103. package/dist/src/tools/mcp-client.js.map +1 -1
  104. package/dist/src/tools/mcp-client.test.js +131 -5
  105. package/dist/src/tools/mcp-client.test.js.map +1 -1
  106. package/dist/src/tools/mcp-tool.d.ts +3 -3
  107. package/dist/src/tools/mcp-tool.js.map +1 -1
  108. package/dist/src/tools/memoryTool.js +3 -2
  109. package/dist/src/tools/memoryTool.js.map +1 -1
  110. package/dist/src/tools/read-file.js +9 -10
  111. package/dist/src/tools/read-file.js.map +1 -1
  112. package/dist/src/tools/read-file.test.js +4 -4
  113. package/dist/src/tools/read-file.test.js.map +1 -1
  114. package/dist/src/tools/read-many-files.js +25 -39
  115. package/dist/src/tools/read-many-files.js.map +1 -1
  116. package/dist/src/tools/read-many-files.test.js +25 -14
  117. package/dist/src/tools/read-many-files.test.js.map +1 -1
  118. package/dist/src/tools/shell.d.ts +5 -2
  119. package/dist/src/tools/shell.js +41 -18
  120. package/dist/src/tools/shell.js.map +1 -1
  121. package/dist/src/tools/shell.test.js +85 -65
  122. package/dist/src/tools/shell.test.js.map +1 -1
  123. package/dist/src/tools/tool-registry.d.ts +16 -2
  124. package/dist/src/tools/tool-registry.js +153 -20
  125. package/dist/src/tools/tool-registry.js.map +1 -1
  126. package/dist/src/tools/tool-registry.test.js +186 -75
  127. package/dist/src/tools/tool-registry.test.js.map +1 -1
  128. package/dist/src/tools/tools.d.ts +25 -4
  129. package/dist/src/tools/tools.js +8 -1
  130. package/dist/src/tools/tools.js.map +1 -1
  131. package/dist/src/tools/web-fetch.js +6 -5
  132. package/dist/src/tools/web-fetch.js.map +1 -1
  133. package/dist/src/tools/web-search.d.ts +1 -1
  134. package/dist/src/tools/web-search.js +7 -6
  135. package/dist/src/tools/web-search.js.map +1 -1
  136. package/dist/src/tools/write-file.d.ts +0 -1
  137. package/dist/src/tools/write-file.js +10 -11
  138. package/dist/src/tools/write-file.js.map +1 -1
  139. package/dist/src/tools/write-file.test.js +4 -4
  140. package/dist/src/tools/write-file.test.js.map +1 -1
  141. package/dist/src/utils/editCorrector.d.ts +1 -1
  142. package/dist/src/utils/editCorrector.js +106 -2
  143. package/dist/src/utils/editCorrector.js.map +1 -1
  144. package/dist/src/utils/editCorrector.test.js +69 -19
  145. package/dist/src/utils/editCorrector.test.js.map +1 -1
  146. package/dist/src/utils/editor.d.ts +1 -1
  147. package/dist/src/utils/editor.js +1 -1
  148. package/dist/src/utils/fileUtils.d.ts +1 -1
  149. package/dist/src/utils/fileUtils.js +17 -0
  150. package/dist/src/utils/fileUtils.js.map +1 -1
  151. package/dist/src/utils/fileUtils.test.js +17 -0
  152. package/dist/src/utils/fileUtils.test.js.map +1 -1
  153. package/dist/src/utils/flashFallback.integration.test.js +1 -1
  154. package/dist/src/utils/flashFallback.integration.test.js.map +1 -1
  155. package/dist/src/utils/messageInspectors.d.ts +1 -0
  156. package/dist/src/utils/messageInspectors.js +5 -0
  157. package/dist/src/utils/messageInspectors.js.map +1 -1
  158. package/dist/src/utils/nextSpeakerChecker.js +1 -1
  159. package/dist/src/utils/nextSpeakerChecker.js.map +1 -1
  160. package/dist/src/utils/paths.d.ts +1 -0
  161. package/dist/src/utils/paths.js +1 -0
  162. package/dist/src/utils/paths.js.map +1 -1
  163. package/dist/src/utils/quotaErrorDetection.d.ts +22 -0
  164. package/dist/src/utils/quotaErrorDetection.js +74 -0
  165. package/dist/src/utils/quotaErrorDetection.js.map +1 -0
  166. package/dist/src/utils/retry.d.ts +1 -1
  167. package/dist/src/utils/retry.js +58 -2
  168. package/dist/src/utils/retry.js.map +1 -1
  169. package/dist/src/utils/retry.test.js +1 -1
  170. package/dist/src/utils/retry.test.js.map +1 -1
  171. package/dist/src/utils/schemaValidator.d.ts +10 -5
  172. package/dist/src/utils/schemaValidator.js +44 -32
  173. package/dist/src/utils/schemaValidator.js.map +1 -1
  174. package/dist/src/utils/summarizer.d.ts +25 -0
  175. package/dist/src/utils/summarizer.js +79 -0
  176. package/dist/src/utils/summarizer.js.map +1 -0
  177. package/dist/src/utils/summarizer.test.d.ts +6 -0
  178. package/dist/src/utils/summarizer.test.js +131 -0
  179. package/dist/src/utils/summarizer.test.js.map +1 -0
  180. package/dist/src/utils/user_account.d.ts +9 -0
  181. package/dist/src/utils/user_account.js +99 -0
  182. package/dist/src/utils/user_account.js.map +1 -0
  183. package/dist/src/utils/user_account.test.d.ts +6 -0
  184. package/dist/src/utils/user_account.test.js +153 -0
  185. package/dist/src/utils/user_account.test.js.map +1 -0
  186. package/dist/src/utils/user_id.d.ts +0 -6
  187. package/dist/src/utils/user_id.js +0 -21
  188. package/dist/src/utils/user_id.js.map +1 -1
  189. package/dist/src/utils/user_id.test.js +1 -22
  190. package/dist/src/utils/user_id.test.js.map +1 -1
  191. package/dist/tsconfig.tsbuildinfo +1 -1
  192. package/package.json +7 -6
@@ -1 +1 @@
1
- {"version":3,"file":"oauth2.test.js","sourceRoot":"","sources":["../../../src/code_assist/oauth2.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth2.test.js","sourceRoot":"","sources":["../../../src/code_assist/oauth2.test.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ import { OAuth2Client } from 'google-auth-library';
7
7
  import { CodeAssistGlobalUserSettingResponse, LoadCodeAssistRequest, LoadCodeAssistResponse, LongrunningOperationResponse, OnboardUserRequest, SetCodeAssistGlobalUserSettingRequest } from './types.js';
8
8
  import { CountTokensParameters, CountTokensResponse, EmbedContentParameters, EmbedContentResponse, GenerateContentParameters, GenerateContentResponse } from '@google/genai';
9
9
  import { ContentGenerator } from '../core/contentGenerator.js';
10
+ import { UserTierId } from './types.js';
10
11
  /** HTTP options to be used in each of the requests. */
11
12
  export interface HttpOptions {
12
13
  /** Additional HTTP headers to be sent with the request. */
@@ -19,6 +20,7 @@ export declare class CodeAssistServer implements ContentGenerator {
19
20
  readonly projectId?: string | undefined;
20
21
  readonly httpOptions: HttpOptions;
21
22
  readonly sessionId?: string | undefined;
23
+ private userTier;
22
24
  constructor(client: OAuth2Client, projectId?: string | undefined, httpOptions?: HttpOptions, sessionId?: string | undefined);
23
25
  generateContentStream(req: GenerateContentParameters): Promise<AsyncGenerator<GenerateContentResponse>>;
24
26
  generateContent(req: GenerateContentParameters): Promise<GenerateContentResponse>;
@@ -31,5 +33,7 @@ export declare class CodeAssistServer implements ContentGenerator {
31
33
  requestPost<T>(method: string, req: object, signal?: AbortSignal): Promise<T>;
32
34
  requestGet<T>(method: string, signal?: AbortSignal): Promise<T>;
33
35
  requestStreamingPost<T>(method: string, req: object, signal?: AbortSignal): Promise<AsyncGenerator<T>>;
36
+ getTier(): Promise<UserTierId | undefined>;
37
+ private detectUserTier;
34
38
  getMethodUrl(method: string): string;
35
39
  }
@@ -5,7 +5,7 @@
5
5
  */
6
6
  import * as readline from 'readline';
7
7
  import { fromCountTokenResponse, fromGenerateContentResponse, toCountTokenRequest, toGenerateContentRequest, } from './converter.js';
8
- // TODO: Use production endpoint once it supports our methods.
8
+ import { Readable } from 'node:stream';
9
9
  export const CODE_ASSIST_ENDPOINT = 'https://cloudcode-pa.googleapis.com';
10
10
  export const CODE_ASSIST_API_VERSION = 'v1internal';
11
11
  export class CodeAssistServer {
@@ -13,6 +13,7 @@ export class CodeAssistServer {
13
13
  projectId;
14
14
  httpOptions;
15
15
  sessionId;
16
+ userTier = undefined;
16
17
  constructor(client, projectId, httpOptions = {}, sessionId) {
17
18
  this.client = client;
18
19
  this.projectId = projectId;
@@ -93,8 +94,41 @@ export class CodeAssistServer {
93
94
  signal,
94
95
  });
95
96
  return (async function* () {
97
+ // Convert ReadableStream to Node.js stream if needed
98
+ let nodeStream;
99
+ if (res.data instanceof ReadableStream) {
100
+ // Convert Web ReadableStream to Node.js Readable stream
101
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
+ nodeStream = Readable.fromWeb(res.data);
103
+ }
104
+ else if (res.data &&
105
+ typeof res.data.on === 'function') {
106
+ // Already a Node.js stream
107
+ nodeStream = res.data;
108
+ }
109
+ else {
110
+ // If res.data is not a stream, it might be an error response
111
+ // Try to extract error information from the response
112
+ let errorMessage = 'Response data is not a readable stream. This may indicate a server error or quota issue.';
113
+ if (res.data && typeof res.data === 'object') {
114
+ // Check if this is an error response with error details
115
+ const errorData = res.data;
116
+ if (errorData.error?.message) {
117
+ errorMessage = errorData.error.message;
118
+ }
119
+ else if (typeof errorData === 'string') {
120
+ errorMessage = errorData;
121
+ }
122
+ }
123
+ // Create an error that looks like a quota error if it contains quota information
124
+ const error = new Error(errorMessage);
125
+ // Add status and response properties so it can be properly handled by retry logic
126
+ error.status = res.status;
127
+ error.response = res;
128
+ throw error;
129
+ }
96
130
  const rl = readline.createInterface({
97
- input: res.data,
131
+ input: nodeStream,
98
132
  crlfDelay: Infinity, // Recognizes '\r\n' and '\n' as line breaks
99
133
  });
100
134
  let bufferedLines = [];
@@ -116,6 +150,38 @@ export class CodeAssistServer {
116
150
  }
117
151
  })();
118
152
  }
153
+ async getTier() {
154
+ if (this.userTier === undefined) {
155
+ await this.detectUserTier();
156
+ }
157
+ return this.userTier;
158
+ }
159
+ async detectUserTier() {
160
+ try {
161
+ // Reset user tier when detection runs
162
+ this.userTier = undefined;
163
+ // Only attempt tier detection if we have a project ID
164
+ if (this.projectId) {
165
+ const loadRes = await this.loadCodeAssist({
166
+ cloudaicompanionProject: this.projectId,
167
+ metadata: {
168
+ ideType: 'IDE_UNSPECIFIED',
169
+ platform: 'PLATFORM_UNSPECIFIED',
170
+ pluginType: 'GEMINI',
171
+ duetProject: this.projectId,
172
+ },
173
+ });
174
+ if (loadRes.currentTier) {
175
+ this.userTier = loadRes.currentTier.id;
176
+ }
177
+ }
178
+ }
179
+ catch (error) {
180
+ // Silently fail - this is not critical functionality
181
+ // We'll default to FREE tier behavior if tier detection fails
182
+ console.debug('User tier detection failed:', error);
183
+ }
184
+ }
119
185
  getMethodUrl(method) {
120
186
  const endpoint = process.env.CODE_ASSIST_ENDPOINT ?? CODE_ASSIST_ENDPOINT;
121
187
  return `${endpoint}/${CODE_ASSIST_API_VERSION}:${method}`;
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/code_assist/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/code_assist/server.ts"],"names":[],"mappings":"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"}
@@ -16,7 +16,7 @@ export class ProjectIdRequiredError extends Error {
16
16
  * @returns the user's actual project id
17
17
  */
18
18
  export async function setupUser(client) {
19
- let projectId = process.env.GOOGLE_CLOUD_PROJECT;
19
+ let projectId = process.env.GOOGLE_CLOUD_PROJECT || undefined;
20
20
  const caServer = new CodeAssistServer(client, projectId);
21
21
  const clientMetadata = {
22
22
  ideType: 'IDE_UNSPECIFIED',
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/code_assist/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAKL,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C;QACE,KAAK,CACH,wHAAwH,CACzH,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAoB;IAClD,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEzD,MAAM,cAAc,GAAmB;QACrC,OAAO,EAAE,iBAAiB;QAC1B,QAAQ,EAAE,sBAAsB;QAChC,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,SAAS;KACvB,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC;QAC5C,uBAAuB,EAAE,SAAS;QAClC,QAAQ,EAAE,cAAc;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAClD,SAAS,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAC9C,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,kCAAkC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1D,MAAM,IAAI,sBAAsB,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,UAAU,GAAuB;QACrC,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,uBAAuB,EAAE,SAAS;QAClC,QAAQ,EAAE,cAAc;KACzB,CAAC;IAEF,6DAA6D;IAC7D,IAAI,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACpD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9C,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,cAAc,CAAC,GAA2B;IACjD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,WAAW,CAAC;IACzB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,EAAE;QACR,WAAW,EAAE,EAAE;QACf,EAAE,EAAE,UAAU,CAAC,MAAM;QACrB,kCAAkC,EAAE,IAAI;KACzC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../../src/code_assist/setup.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAKL,UAAU,GACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAC/C;QACE,KAAK,CACH,wHAAwH,CACzH,CAAC;IACJ,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,MAAoB;IAClD,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,SAAS,CAAC;IAC9D,MAAM,QAAQ,GAAG,IAAI,gBAAgB,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAEzD,MAAM,cAAc,GAAmB;QACrC,OAAO,EAAE,iBAAiB;QAC1B,QAAQ,EAAE,sBAAsB;QAChC,UAAU,EAAE,QAAQ;QACpB,WAAW,EAAE,SAAS;KACvB,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC;QAC5C,uBAAuB,EAAE,SAAS;QAClC,QAAQ,EAAE,cAAc;KACzB,CAAC,CAAC;IAEH,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,uBAAuB,EAAE,CAAC;QAClD,SAAS,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAC9C,CAAC;IAED,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,IAAI,CAAC,kCAAkC,IAAI,CAAC,SAAS,EAAE,CAAC;QAC1D,MAAM,IAAI,sBAAsB,EAAE,CAAC;IACrC,CAAC;IAED,MAAM,UAAU,GAAuB;QACrC,MAAM,EAAE,IAAI,CAAC,EAAE;QACf,uBAAuB,EAAE,SAAS;QAClC,QAAQ,EAAE,cAAc;KACzB,CAAC;IAEF,6DAA6D;IAC7D,IAAI,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACpD,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACpB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;QAC9C,MAAM,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,EAAE,uBAAuB,EAAE,EAAE,IAAI,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,cAAc,CAAC,GAA2B;IACjD,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;QACpB,OAAO,GAAG,CAAC,WAAW,CAAC;IACzB,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;QAC1C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,EAAE;QACR,WAAW,EAAE,EAAE;QACf,EAAE,EAAE,UAAU,CAAC,MAAM;QACrB,kCAAkC,EAAE,IAAI;KACzC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
7
+ import { setupUser, ProjectIdRequiredError } from './setup.js';
8
+ import { CodeAssistServer } from '../code_assist/server.js';
9
+ import { UserTierId } from './types.js';
10
+ vi.mock('../code_assist/server.js');
11
+ const mockPaidTier = {
12
+ id: UserTierId.STANDARD,
13
+ name: 'paid',
14
+ description: 'Paid tier',
15
+ };
16
+ describe('setupUser', () => {
17
+ let mockLoad;
18
+ let mockOnboardUser;
19
+ beforeEach(() => {
20
+ vi.resetAllMocks();
21
+ mockLoad = vi.fn();
22
+ mockOnboardUser = vi.fn().mockResolvedValue({
23
+ done: true,
24
+ response: {
25
+ cloudaicompanionProject: {
26
+ id: 'server-project',
27
+ },
28
+ },
29
+ });
30
+ vi.mocked(CodeAssistServer).mockImplementation(() => ({
31
+ loadCodeAssist: mockLoad,
32
+ onboardUser: mockOnboardUser,
33
+ }));
34
+ });
35
+ it('should use GOOGLE_CLOUD_PROJECT when set', async () => {
36
+ process.env.GOOGLE_CLOUD_PROJECT = 'test-project';
37
+ mockLoad.mockResolvedValue({
38
+ currentTier: mockPaidTier,
39
+ });
40
+ await setupUser({});
41
+ expect(CodeAssistServer).toHaveBeenCalledWith(expect.any(Object), 'test-project');
42
+ });
43
+ it('should treat empty GOOGLE_CLOUD_PROJECT as undefined and use project from server', async () => {
44
+ process.env.GOOGLE_CLOUD_PROJECT = '';
45
+ mockLoad.mockResolvedValue({
46
+ cloudaicompanionProject: 'server-project',
47
+ currentTier: mockPaidTier,
48
+ });
49
+ const projectId = await setupUser({});
50
+ expect(CodeAssistServer).toHaveBeenCalledWith(expect.any(Object), undefined);
51
+ expect(projectId).toBe('server-project');
52
+ });
53
+ it('should throw ProjectIdRequiredError when no project ID is available', async () => {
54
+ delete process.env.GOOGLE_CLOUD_PROJECT;
55
+ // And the server itself requires a project ID internally
56
+ vi.mocked(CodeAssistServer).mockImplementation(() => {
57
+ throw new ProjectIdRequiredError();
58
+ });
59
+ await expect(setupUser({})).rejects.toThrow(ProjectIdRequiredError);
60
+ });
61
+ });
62
+ //# sourceMappingURL=setup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../../src/code_assist/setup.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAE5D,OAAO,EAAkB,UAAU,EAAE,MAAM,YAAY,CAAC;AAExD,EAAE,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AAEpC,MAAM,YAAY,GAAmB;IACnC,EAAE,EAAE,UAAU,CAAC,QAAQ;IACvB,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,WAAW;CACzB,CAAC;AAEF,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;IACzB,IAAI,QAAkC,CAAC;IACvC,IAAI,eAAyC,CAAC;IAE9C,UAAU,CAAC,GAAG,EAAE;QACd,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,QAAQ,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACnB,eAAe,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAC1C,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE;gBACR,uBAAuB,EAAE;oBACvB,EAAE,EAAE,gBAAgB;iBACrB;aACF;SACF,CAAC,CAAC;QACH,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,kBAAkB,CAC5C,GAAG,EAAE,CACH,CAAC;YACC,cAAc,EAAE,QAAQ;YACxB,WAAW,EAAE,eAAe;SAC7B,CAAgC,CACpC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACxD,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,cAAc,CAAC;QAClD,QAAQ,CAAC,iBAAiB,CAAC;YACzB,WAAW,EAAE,YAAY;SAC1B,CAAC,CAAC;QACH,MAAM,SAAS,CAAC,EAAkB,CAAC,CAAC;QACpC,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,cAAc,CACf,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kFAAkF,EAAE,KAAK,IAAI,EAAE;QAChG,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,EAAE,CAAC;QACtC,QAAQ,CAAC,iBAAiB,CAAC;YACzB,uBAAuB,EAAE,gBAAgB;YACzC,WAAW,EAAE,YAAY;SAC1B,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,EAAkB,CAAC,CAAC;QACtD,MAAM,CAAC,gBAAgB,CAAC,CAAC,oBAAoB,CAC3C,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EAClB,SAAS,CACV,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACnF,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACxC,yDAAyD;QACzD,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,kBAAkB,CAAC,GAAG,EAAE;YAClD,MAAM,IAAI,sBAAsB,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,MAAM,MAAM,CAAC,SAAS,CAAC,EAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CACzD,sBAAsB,CACvB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { AuthType, ContentGeneratorConfig } from '../core/contentGenerator.js';
7
+ import { UserTierId } from '../code_assist/types.js';
7
8
  import { ToolRegistry } from '../tools/tool-registry.js';
8
9
  import { GeminiClient } from '../core/client.js';
9
10
  import { FileDiscoveryService } from '../services/fileDiscoveryService.js';
@@ -27,6 +28,10 @@ export interface TelemetrySettings {
27
28
  otlpEndpoint?: string;
28
29
  logPrompts?: boolean;
29
30
  }
31
+ export interface ActiveExtension {
32
+ name: string;
33
+ version: string;
34
+ }
30
35
  export declare class MCPServerConfig {
31
36
  readonly command?: string | undefined;
32
37
  readonly args?: string[] | undefined;
@@ -39,13 +44,15 @@ export declare class MCPServerConfig {
39
44
  readonly timeout?: number | undefined;
40
45
  readonly trust?: boolean | undefined;
41
46
  readonly description?: string | undefined;
42
- constructor(command?: string | undefined, args?: string[] | undefined, env?: Record<string, string> | undefined, cwd?: string | undefined, url?: string | undefined, httpUrl?: string | undefined, headers?: Record<string, string> | undefined, tcp?: string | undefined, timeout?: number | undefined, trust?: boolean | undefined, description?: string | undefined);
47
+ readonly includeTools?: string[] | undefined;
48
+ readonly excludeTools?: string[] | undefined;
49
+ constructor(command?: string | undefined, args?: string[] | undefined, env?: Record<string, string> | undefined, cwd?: string | undefined, url?: string | undefined, httpUrl?: string | undefined, headers?: Record<string, string> | undefined, tcp?: string | undefined, timeout?: number | undefined, trust?: boolean | undefined, description?: string | undefined, includeTools?: string[] | undefined, excludeTools?: string[] | undefined);
43
50
  }
44
51
  export interface SandboxConfig {
45
52
  command: 'docker' | 'podman' | 'sandbox-exec';
46
53
  image: string;
47
54
  }
48
- export type FlashFallbackHandler = (currentModel: string, fallbackModel: string) => Promise<boolean>;
55
+ export type FlashFallbackHandler = (currentModel: string, fallbackModel: string, error?: unknown) => Promise<boolean | string | null>;
49
56
  export interface ConfigParameters {
50
57
  sessionId: string;
51
58
  embeddingModel?: string;
@@ -79,6 +86,10 @@ export interface ConfigParameters {
79
86
  bugCommand?: BugCommandSettings;
80
87
  model: string;
81
88
  extensionContextFilePaths?: string[];
89
+ maxSessionTurns?: number;
90
+ listExtensions?: boolean;
91
+ activeExtensions?: ActiveExtension[];
92
+ noBrowser?: boolean;
82
93
  }
83
94
  export declare class Config {
84
95
  private toolRegistry;
@@ -113,9 +124,15 @@ export declare class Config {
113
124
  private readonly bugCommand;
114
125
  private readonly model;
115
126
  private readonly extensionContextFilePaths;
127
+ private readonly noBrowser;
116
128
  private modelSwitchedDuringSession;
129
+ private readonly maxSessionTurns;
130
+ private readonly listExtensions;
131
+ private readonly _activeExtensions;
117
132
  flashFallbackHandler?: FlashFallbackHandler;
133
+ private quotaErrorOccurred;
118
134
  constructor(params: ConfigParameters);
135
+ initialize(): Promise<void>;
119
136
  refreshAuth(authMethod: AuthType): Promise<void>;
120
137
  getSessionId(): string;
121
138
  getContentGeneratorConfig(): ContentGeneratorConfig;
@@ -124,6 +141,10 @@ export declare class Config {
124
141
  isModelSwitchedDuringSession(): boolean;
125
142
  resetModelToDefault(): void;
126
143
  setFlashFallbackHandler(handler: FlashFallbackHandler): void;
144
+ getMaxSessionTurns(): number;
145
+ setQuotaErrorOccurred(value: boolean): void;
146
+ getQuotaErrorOccurred(): boolean;
147
+ getUserTier(): Promise<UserTierId | undefined>;
127
148
  getEmbeddingModel(): string;
128
149
  getSandbox(): SandboxConfig | undefined;
129
150
  getTargetDir(): string;
@@ -162,7 +183,14 @@ export declare class Config {
162
183
  getFileService(): FileDiscoveryService;
163
184
  getUsageStatisticsEnabled(): boolean;
164
185
  getExtensionContextFilePaths(): string[];
186
+ getListExtensions(): boolean;
187
+ getActiveExtensions(): ActiveExtension[];
188
+ getNoBrowser(): boolean;
165
189
  getGitService(): Promise<GitService>;
190
+ refreshMemory(): Promise<{
191
+ memoryContent: string;
192
+ fileCount: number;
193
+ }>;
194
+ createToolRegistry(): Promise<ToolRegistry>;
166
195
  }
167
- export declare function createToolRegistry(config: Config): Promise<ToolRegistry>;
168
196
  export { DEFAULT_GEMINI_FLASH_MODEL };
@@ -21,6 +21,7 @@ import { WebSearchTool } from '../tools/web-search.js';
21
21
  import { GeminiClient } from '../core/client.js';
22
22
  import { FileDiscoveryService } from '../services/fileDiscoveryService.js';
23
23
  import { GitService } from '../services/gitService.js';
24
+ import { loadServerHierarchicalMemory } from '../utils/memoryDiscovery.js';
24
25
  import { getProjectTempDir } from '../utils/paths.js';
25
26
  import { initializeTelemetry, DEFAULT_TELEMETRY_TARGET, DEFAULT_OTLP_ENDPOINT, StartSessionEvent, } from '../telemetry/index.js';
26
27
  import { DEFAULT_GEMINI_EMBEDDING_MODEL, DEFAULT_GEMINI_FLASH_MODEL, } from './models.js';
@@ -43,6 +44,8 @@ export class MCPServerConfig {
43
44
  timeout;
44
45
  trust;
45
46
  description;
47
+ includeTools;
48
+ excludeTools;
46
49
  constructor(
47
50
  // For stdio transport
48
51
  command, args, env, cwd,
@@ -55,7 +58,7 @@ export class MCPServerConfig {
55
58
  // Common
56
59
  timeout, trust,
57
60
  // Metadata
58
- description) {
61
+ description, includeTools, excludeTools) {
59
62
  this.command = command;
60
63
  this.args = args;
61
64
  this.env = env;
@@ -67,6 +70,8 @@ export class MCPServerConfig {
67
70
  this.timeout = timeout;
68
71
  this.trust = trust;
69
72
  this.description = description;
73
+ this.includeTools = includeTools;
74
+ this.excludeTools = excludeTools;
70
75
  }
71
76
  }
72
77
  export class Config {
@@ -102,8 +107,13 @@ export class Config {
102
107
  bugCommand;
103
108
  model;
104
109
  extensionContextFilePaths;
110
+ noBrowser;
105
111
  modelSwitchedDuringSession = false;
112
+ maxSessionTurns;
113
+ listExtensions;
114
+ _activeExtensions;
106
115
  flashFallbackHandler;
116
+ quotaErrorOccurred = false;
107
117
  constructor(params) {
108
118
  this.sessionId = params.sessionId;
109
119
  this.embeddingModel =
@@ -142,6 +152,10 @@ export class Config {
142
152
  this.bugCommand = params.bugCommand;
143
153
  this.model = params.model;
144
154
  this.extensionContextFilePaths = params.extensionContextFilePaths ?? [];
155
+ this.maxSessionTurns = params.maxSessionTurns ?? -1;
156
+ this.listExtensions = params.listExtensions ?? false;
157
+ this._activeExtensions = params.activeExtensions ?? [];
158
+ this.noBrowser = params.noBrowser ?? false;
145
159
  if (params.contextFileName) {
146
160
  setGeminiMdFilename(params.contextFileName);
147
161
  }
@@ -155,23 +169,25 @@ export class Config {
155
169
  console.log('Data collection is disabled.');
156
170
  }
157
171
  }
172
+ async initialize() {
173
+ // Initialize centralized FileDiscoveryService
174
+ this.getFileService();
175
+ if (this.getCheckpointingEnabled()) {
176
+ try {
177
+ await this.getGitService();
178
+ }
179
+ catch {
180
+ // For now swallow the error, later log it.
181
+ }
182
+ }
183
+ this.toolRegistry = await this.createToolRegistry();
184
+ }
158
185
  async refreshAuth(authMethod) {
159
- // Always use the original default model when switching auth methods
160
- // This ensures users don't stay on Flash after switching between auth types
161
- // and allows API key users to get proper fallback behavior from getEffectiveModel
162
- const modelToUse = this.model; // Use the original default model
163
- // Temporarily clear contentGeneratorConfig to prevent getModel() from returning
164
- // the previous session's model (which might be Flash)
165
- this.contentGeneratorConfig = undefined;
166
- const contentConfig = await createContentGeneratorConfig(modelToUse, authMethod, this);
167
- const gc = new GeminiClient(this);
168
- this.geminiClient = gc;
169
- this.toolRegistry = await createToolRegistry(this);
170
- await gc.initialize(contentConfig);
171
- this.contentGeneratorConfig = contentConfig;
186
+ this.contentGeneratorConfig = await createContentGeneratorConfig(this.model, authMethod);
187
+ this.geminiClient = new GeminiClient(this);
188
+ await this.geminiClient.initialize(this.contentGeneratorConfig);
172
189
  // Reset the session flag since we're explicitly changing auth and using default model
173
190
  this.modelSwitchedDuringSession = false;
174
- // Note: In the future, we may want to reset any cached state when switching auth methods
175
191
  }
176
192
  getSessionId() {
177
193
  return this.sessionId;
@@ -200,6 +216,22 @@ export class Config {
200
216
  setFlashFallbackHandler(handler) {
201
217
  this.flashFallbackHandler = handler;
202
218
  }
219
+ getMaxSessionTurns() {
220
+ return this.maxSessionTurns;
221
+ }
222
+ setQuotaErrorOccurred(value) {
223
+ this.quotaErrorOccurred = value;
224
+ }
225
+ getQuotaErrorOccurred() {
226
+ return this.quotaErrorOccurred;
227
+ }
228
+ async getUserTier() {
229
+ if (!this.geminiClient) {
230
+ return undefined;
231
+ }
232
+ const generator = this.geminiClient.getContentGenerator();
233
+ return await generator.getTier?.();
234
+ }
203
235
  getEmbeddingModel() {
204
236
  return this.embeddingModel;
205
237
  }
@@ -317,6 +349,15 @@ export class Config {
317
349
  getExtensionContextFilePaths() {
318
350
  return this.extensionContextFilePaths;
319
351
  }
352
+ getListExtensions() {
353
+ return this.listExtensions;
354
+ }
355
+ getActiveExtensions() {
356
+ return this._activeExtensions;
357
+ }
358
+ getNoBrowser() {
359
+ return this.noBrowser;
360
+ }
320
361
  async getGitService() {
321
362
  if (!this.gitService) {
322
363
  this.gitService = new GitService(this.targetDir);
@@ -324,49 +365,54 @@ export class Config {
324
365
  }
325
366
  return this.gitService;
326
367
  }
327
- }
328
- export function createToolRegistry(config) {
329
- const registry = new ToolRegistry(config);
330
- const targetDir = config.getTargetDir();
331
- // helper to create & register core tools that are enabled
332
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
333
- const registerCoreTool = (ToolClass, ...args) => {
334
- const className = ToolClass.name;
335
- const toolName = ToolClass.Name || className;
336
- const coreTools = config.getCoreTools();
337
- const excludeTools = config.getExcludeTools();
338
- let isEnabled = false;
339
- if (coreTools === undefined) {
340
- isEnabled = true;
341
- }
342
- else {
343
- isEnabled = coreTools.some((tool) => tool === className ||
344
- tool === toolName ||
345
- tool.startsWith(`${className}(`) ||
346
- tool.startsWith(`${toolName}(`));
347
- }
348
- if (excludeTools?.includes(className) || excludeTools?.includes(toolName)) {
349
- isEnabled = false;
350
- }
351
- if (isEnabled) {
352
- registry.registerTool(new ToolClass(...args));
353
- }
354
- };
355
- registerCoreTool(LSTool, targetDir, config);
356
- registerCoreTool(ReadFileTool, targetDir, config);
357
- registerCoreTool(GrepTool, targetDir);
358
- registerCoreTool(GlobTool, targetDir, config);
359
- registerCoreTool(EditTool, config);
360
- registerCoreTool(WriteFileTool, config);
361
- registerCoreTool(WebFetchTool, config);
362
- registerCoreTool(ReadManyFilesTool, targetDir, config);
363
- registerCoreTool(ShellTool, config);
364
- registerCoreTool(MemoryTool);
365
- registerCoreTool(WebSearchTool, config);
366
- return (async () => {
368
+ async refreshMemory() {
369
+ const { memoryContent, fileCount } = await loadServerHierarchicalMemory(this.getWorkingDir(), this.getDebugMode(), this.getFileService(), this.getExtensionContextFilePaths());
370
+ this.setUserMemory(memoryContent);
371
+ this.setGeminiMdFileCount(fileCount);
372
+ return { memoryContent, fileCount };
373
+ }
374
+ async createToolRegistry() {
375
+ const registry = new ToolRegistry(this);
376
+ const targetDir = this.getTargetDir();
377
+ // helper to create & register core tools that are enabled
378
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
379
+ const registerCoreTool = (ToolClass, ...args) => {
380
+ const className = ToolClass.name;
381
+ const toolName = ToolClass.Name || className;
382
+ const coreTools = this.getCoreTools();
383
+ const excludeTools = this.getExcludeTools();
384
+ let isEnabled = false;
385
+ if (coreTools === undefined) {
386
+ isEnabled = true;
387
+ }
388
+ else {
389
+ isEnabled = coreTools.some((tool) => tool === className ||
390
+ tool === toolName ||
391
+ tool.startsWith(`${className}(`) ||
392
+ tool.startsWith(`${toolName}(`));
393
+ }
394
+ if (excludeTools?.includes(className) ||
395
+ excludeTools?.includes(toolName)) {
396
+ isEnabled = false;
397
+ }
398
+ if (isEnabled) {
399
+ registry.registerTool(new ToolClass(...args));
400
+ }
401
+ };
402
+ registerCoreTool(LSTool, targetDir, this);
403
+ registerCoreTool(ReadFileTool, targetDir, this);
404
+ registerCoreTool(GrepTool, targetDir);
405
+ registerCoreTool(GlobTool, targetDir, this);
406
+ registerCoreTool(EditTool, this);
407
+ registerCoreTool(WriteFileTool, this);
408
+ registerCoreTool(WebFetchTool, this);
409
+ registerCoreTool(ReadManyFilesTool, targetDir, this);
410
+ registerCoreTool(ShellTool, this);
411
+ registerCoreTool(MemoryTool);
412
+ registerCoreTool(WebSearchTool, this);
367
413
  await registry.discoverTools();
368
414
  return registry;
369
- })();
415
+ }
370
416
  }
371
417
  // Export model constants for use in CLI
372
418
  export { DEFAULT_GEMINI_FLASH_MODEL };