@google/gemini-cli-core 0.1.9-nightly.250707.d1c0a211 → 0.1.9-nightly.250708.a4097ae6

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 (60) hide show
  1. package/README.md +14 -0
  2. package/dist/google-gemini-cli-core-0.1.9.tgz +0 -0
  3. package/dist/src/code_assist/codeAssist.js +3 -2
  4. package/dist/src/code_assist/codeAssist.js.map +1 -1
  5. package/dist/src/code_assist/converter.js.map +1 -1
  6. package/dist/src/code_assist/oauth2.d.ts +2 -1
  7. package/dist/src/code_assist/oauth2.js +28 -5
  8. package/dist/src/code_assist/oauth2.js.map +1 -1
  9. package/dist/src/code_assist/oauth2.test.js +65 -7
  10. package/dist/src/code_assist/oauth2.test.js.map +1 -1
  11. package/dist/src/code_assist/server.js +0 -1
  12. package/dist/src/code_assist/server.js.map +1 -1
  13. package/dist/src/config/config.d.ts +9 -2
  14. package/dist/src/config/config.js +68 -56
  15. package/dist/src/config/config.js.map +1 -1
  16. package/dist/src/config/config.test.js +25 -0
  17. package/dist/src/config/config.test.js.map +1 -1
  18. package/dist/src/core/contentGenerator.d.ts +3 -4
  19. package/dist/src/core/contentGenerator.js +8 -5
  20. package/dist/src/core/contentGenerator.js.map +1 -1
  21. package/dist/src/services/fileDiscoveryService.d.ts +4 -0
  22. package/dist/src/services/fileDiscoveryService.js +13 -0
  23. package/dist/src/services/fileDiscoveryService.js.map +1 -1
  24. package/dist/src/tools/edit.d.ts +1 -2
  25. package/dist/src/tools/edit.js +2 -4
  26. package/dist/src/tools/edit.js.map +1 -1
  27. package/dist/src/tools/edit.test.js +7 -9
  28. package/dist/src/tools/edit.test.js.map +1 -1
  29. package/dist/src/tools/mcp-client.js +15 -0
  30. package/dist/src/tools/mcp-client.js.map +1 -1
  31. package/dist/src/tools/mcp-client.test.js +75 -0
  32. package/dist/src/tools/mcp-client.test.js.map +1 -1
  33. package/dist/src/tools/shell.d.ts +5 -2
  34. package/dist/src/tools/shell.js +30 -11
  35. package/dist/src/tools/shell.js.map +1 -1
  36. package/dist/src/tools/shell.test.js +85 -65
  37. package/dist/src/tools/shell.test.js.map +1 -1
  38. package/dist/src/tools/tool-registry.d.ts +0 -1
  39. package/dist/src/tools/tool-registry.js +0 -4
  40. package/dist/src/tools/tool-registry.js.map +1 -1
  41. package/dist/src/tools/write-file.d.ts +0 -1
  42. package/dist/src/tools/write-file.js +3 -5
  43. package/dist/src/tools/write-file.js.map +1 -1
  44. package/dist/src/tools/write-file.test.js +4 -4
  45. package/dist/src/tools/write-file.test.js.map +1 -1
  46. package/dist/src/utils/editCorrector.d.ts +1 -1
  47. package/dist/src/utils/editCorrector.js +105 -1
  48. package/dist/src/utils/editCorrector.js.map +1 -1
  49. package/dist/src/utils/editCorrector.test.js +65 -19
  50. package/dist/src/utils/editCorrector.test.js.map +1 -1
  51. package/dist/src/utils/fileUtils.d.ts +1 -1
  52. package/dist/src/utils/fileUtils.js +17 -0
  53. package/dist/src/utils/fileUtils.js.map +1 -1
  54. package/dist/src/utils/fileUtils.test.js +17 -0
  55. package/dist/src/utils/fileUtils.test.js.map +1 -1
  56. package/dist/src/utils/messageInspectors.d.ts +1 -0
  57. package/dist/src/utils/messageInspectors.js +5 -0
  58. package/dist/src/utils/messageInspectors.js.map +1 -1
  59. package/dist/tsconfig.tsbuildinfo +1 -1
  60. package/package.json +2 -2
package/README.md CHANGED
@@ -51,6 +51,20 @@ The Gemini API provides a free tier with [100 requests per day](https://ai.googl
51
51
 
52
52
  3. (Optionally) Upgrade your Gemini API project to a paid plan on the API key page (will automatically unlock [Tier 1 rate limits](https://ai.google.dev/gemini-api/docs/rate-limits#tier-1))
53
53
 
54
+ ### Use a Vertex AI API key:
55
+
56
+ The Vertex AI provides [free tier](https://cloud.google.com/vertex-ai/generative-ai/docs/start/express-mode/overview) using express mode for Gemini 2.5 Pro, control over which model you use, and access to higher rate limits with a billing account:
57
+
58
+ 1. Generate a key from [Google Cloud](https://cloud.google.com/vertex-ai/generative-ai/docs/start/api-keys).
59
+ 2. Set it as an environment variable in your terminal. Replace `YOUR_API_KEY` with your generated key and set GOOGLE_GENAI_USE_VERTEXAI to true
60
+
61
+ ```bash
62
+ export GOOGLE_API_KEY="YOUR_API_KEY"
63
+ export GOOGLE_GENAI_USE_VERTEXAI=true
64
+ ```
65
+
66
+ 3. (Optionally) Add a billing account on your project to get access to [higher usage limits](https://cloud.google.com/vertex-ai/generative-ai/docs/quotas)
67
+
54
68
  For other authentication methods, including Google Workspace accounts, see the [authentication](./docs/cli/authentication.md) guide.
55
69
 
56
70
  ## Examples
@@ -8,8 +8,9 @@ import { getOauthClient } from './oauth2.js';
8
8
  import { setupUser } from './setup.js';
9
9
  import { CodeAssistServer } from './server.js';
10
10
  export async function createCodeAssistContentGenerator(httpOptions, authType, sessionId) {
11
- if (authType === AuthType.LOGIN_WITH_GOOGLE) {
12
- const authClient = await getOauthClient();
11
+ if (authType === AuthType.LOGIN_WITH_GOOGLE ||
12
+ authType === AuthType.CLOUD_SHELL) {
13
+ const authClient = await getOauthClient(authType);
13
14
  const projectId = await setupUser(authClient);
14
15
  return new CodeAssistServer(authClient, projectId, httpOptions, sessionId);
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"codeAssist.js","sourceRoot":"","sources":["../../../src/code_assist/codeAssist.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAoB,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAe,MAAM,aAAa,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,WAAwB,EACxB,QAAkB,EAClB,SAAkB;IAElB,IAAI,QAAQ,KAAK,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,MAAM,cAAc,EAAE,CAAC;QAC1C,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;QAC9C,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;AACvD,CAAC"}
1
+ {"version":3,"file":"codeAssist.js","sourceRoot":"","sources":["../../../src/code_assist/codeAssist.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAoB,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAe,MAAM,aAAa,CAAC;AAE5D,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,WAAwB,EACxB,QAAkB,EAClB,SAAkB;IAElB,IACE,QAAQ,KAAK,QAAQ,CAAC,iBAAiB;QACvC,QAAQ,KAAK,QAAQ,CAAC,WAAW,EACjC,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,SAAS,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC;QAC9C,OAAO,IAAI,gBAAgB,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,yBAAyB,QAAQ,EAAE,CAAC,CAAC;AACvD,CAAC"}
@@ -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,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { OAuth2Client } from 'google-auth-library';
7
+ import { AuthType } from '../core/contentGenerator.js';
7
8
  /**
8
9
  * An Authentication URL for updating the credentials of a Oauth2Client
9
10
  * as well as a promise that will resolve when the credentials have
@@ -13,7 +14,7 @@ export interface OauthWebLogin {
13
14
  authUrl: string;
14
15
  loginCompletePromise: Promise<void>;
15
16
  }
16
- export declare function getOauthClient(): Promise<OAuth2Client>;
17
+ export declare function getOauthClient(authType: AuthType): Promise<OAuth2Client>;
17
18
  export declare function getAvailablePort(): Promise<number>;
18
19
  export declare function getCachedGoogleAccountId(): string | null;
19
20
  export declare function clearCachedCredentialFile(): Promise<void>;
@@ -3,7 +3,7 @@
3
3
  * Copyright 2025 Google LLC
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { OAuth2Client } from 'google-auth-library';
6
+ import { OAuth2Client, Compute } from 'google-auth-library';
7
7
  import * as http from 'http';
8
8
  import url from 'url';
9
9
  import crypto from 'crypto';
@@ -12,6 +12,8 @@ import open from 'open';
12
12
  import path from 'node:path';
13
13
  import { promises as fs, existsSync, readFileSync } from 'node:fs';
14
14
  import * as os from 'os';
15
+ import { getErrorMessage } from '../utils/errors.js';
16
+ import { AuthType } from '../core/contentGenerator.js';
15
17
  // OAuth Client ID used to initiate OAuth2Client class.
16
18
  const OAUTH_CLIENT_ID = '681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com';
17
19
  // OAuth Secret value used to initiate OAuth2Client class.
@@ -33,7 +35,7 @@ const SIGN_IN_FAILURE_URL = 'https://developers.google.com/gemini-code-assist/au
33
35
  const GEMINI_DIR = '.gemini';
34
36
  const CREDENTIAL_FILENAME = 'oauth_creds.json';
35
37
  const GOOGLE_ACCOUNT_ID_FILENAME = 'google_account_id';
36
- export async function getOauthClient() {
38
+ export async function getOauthClient(authType) {
37
39
  const client = new OAuth2Client({
38
40
  clientId: OAUTH_CLIENT_ID,
39
41
  clientSecret: OAUTH_CLIENT_SECRET,
@@ -41,6 +43,7 @@ export async function getOauthClient() {
41
43
  client.on('tokens', async (tokens) => {
42
44
  await cacheCredentials(tokens);
43
45
  });
46
+ // If there are cached creds on disk, they always take precedence
44
47
  if (await loadCachedCredentials(client)) {
45
48
  // Found valid cached credentials.
46
49
  // Check if we need to retrieve Google Account ID
@@ -51,13 +54,33 @@ export async function getOauthClient() {
51
54
  await cacheGoogleAccountId(googleAccountId);
52
55
  }
53
56
  }
54
- catch (error) {
55
- console.error('Failed to retrieve Google Account ID for existing credentials:', error);
56
- // Continue with existing auth flow
57
+ catch {
58
+ // Non-fatal, continue with existing auth.
57
59
  }
58
60
  }
61
+ console.log('Loaded cached credentials.');
59
62
  return client;
60
63
  }
64
+ // In Google Cloud Shell, we can use Application Default Credentials (ADC)
65
+ // provided via its metadata server to authenticate non-interactively using
66
+ // the identity of the user logged into Cloud Shell.
67
+ if (authType === AuthType.CLOUD_SHELL) {
68
+ try {
69
+ console.log("Attempting to authenticate via Cloud Shell VM's ADC.");
70
+ const computeClient = new Compute({
71
+ // We can leave this empty, since the metadata server will provide
72
+ // the service account email.
73
+ });
74
+ await computeClient.getAccessToken();
75
+ console.log('Authentication successful.');
76
+ // Do not cache creds in this case; note that Compute client will handle its own refresh
77
+ return computeClient;
78
+ }
79
+ catch (e) {
80
+ throw new Error(`Could not authenticate using Cloud Shell credentials. Please select a different authentication method or ensure you are in a properly configured environment. Error: ${getErrorMessage(e)}`);
81
+ }
82
+ }
83
+ // Otherwise, obtain creds using standard web flow
61
84
  const webLogin = await authWithWeb(client);
62
85
  console.log(`\n\nCode Assist login required.\n` +
63
86
  `Attempting to open authentication page in your browser.\n` +
@@ -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":"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"}
@@ -5,13 +5,14 @@
5
5
  */
6
6
  import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
7
7
  import { getOauthClient, getCachedGoogleAccountId } from './oauth2.js';
8
- import { OAuth2Client } from 'google-auth-library';
8
+ import { OAuth2Client, Compute } from 'google-auth-library';
9
9
  import * as fs from 'fs';
10
10
  import * as path from 'path';
11
11
  import http from 'http';
12
12
  import open from 'open';
13
13
  import crypto from 'crypto';
14
14
  import * as os from 'os';
15
+ import { AuthType } from '../core/contentGenerator.js';
15
16
  vi.mock('os', async (importOriginal) => {
16
17
  const os = await importOriginal();
17
18
  return {
@@ -29,10 +30,12 @@ describe('oauth2', () => {
29
30
  let tempHomeDir;
30
31
  beforeEach(() => {
31
32
  tempHomeDir = fs.mkdtempSync(path.join(os.tmpdir(), 'gemini-cli-test-home-'));
32
- vi.mocked(os.homedir).mockReturnValue(tempHomeDir);
33
+ os.homedir.mockReturnValue(tempHomeDir);
33
34
  });
34
35
  afterEach(() => {
35
36
  fs.rmSync(tempHomeDir, { recursive: true, force: true });
37
+ vi.clearAllMocks();
38
+ delete process.env.CLOUD_SHELL;
36
39
  });
37
40
  it('should perform a web login', async () => {
38
41
  const mockAuthUrl = 'https://example.com/auth';
@@ -74,11 +77,11 @@ describe('oauth2', () => {
74
77
  credentials: mockTokens,
75
78
  on: vi.fn(),
76
79
  };
77
- vi.mocked(OAuth2Client).mockImplementation(() => mockOAuth2Client);
80
+ OAuth2Client.mockImplementation(() => mockOAuth2Client);
78
81
  vi.spyOn(crypto, 'randomBytes').mockReturnValue(mockState);
79
- vi.mocked(open).mockImplementation(async () => ({}));
82
+ open.mockImplementation(async () => ({}));
80
83
  // Mock the UserInfo API response
81
- vi.mocked(global.fetch).mockResolvedValue({
84
+ global.fetch.mockResolvedValue({
82
85
  ok: true,
83
86
  json: vi.fn().mockResolvedValue({ id: 'test-google-account-id-123' }),
84
87
  });
@@ -102,11 +105,11 @@ describe('oauth2', () => {
102
105
  on: vi.fn(),
103
106
  address: () => ({ port: capturedPort }),
104
107
  };
105
- vi.mocked(http.createServer).mockImplementation((cb) => {
108
+ http.createServer.mockImplementation((cb) => {
106
109
  requestCallback = cb;
107
110
  return mockHttpServer;
108
111
  });
109
- const clientPromise = getOauthClient();
112
+ const clientPromise = getOauthClient(AuthType.LOGIN_WITH_GOOGLE);
110
113
  // wait for server to start listening.
111
114
  await serverListeningPromise;
112
115
  const mockReq = {
@@ -133,5 +136,60 @@ describe('oauth2', () => {
133
136
  // Verify the getCachedGoogleAccountId function works
134
137
  expect(getCachedGoogleAccountId()).toBe('test-google-account-id-123');
135
138
  });
139
+ describe('in Cloud Shell', () => {
140
+ const mockGetAccessToken = vi.fn();
141
+ let mockComputeClient;
142
+ beforeEach(() => {
143
+ vi.spyOn(os, 'homedir').mockReturnValue('/user/home');
144
+ vi.spyOn(fs.promises, 'mkdir').mockResolvedValue(undefined);
145
+ vi.spyOn(fs.promises, 'writeFile').mockResolvedValue(undefined);
146
+ vi.spyOn(fs.promises, 'readFile').mockRejectedValue(new Error('File not found')); // Default to no cached creds
147
+ mockGetAccessToken.mockResolvedValue({ token: 'test-access-token' });
148
+ mockComputeClient = {
149
+ credentials: { refresh_token: 'test-refresh-token' },
150
+ getAccessToken: mockGetAccessToken,
151
+ };
152
+ Compute.mockImplementation(() => mockComputeClient);
153
+ });
154
+ it('should attempt to load cached credentials first', async () => {
155
+ const cachedCreds = { refresh_token: 'cached-token' };
156
+ vi.spyOn(fs.promises, 'readFile').mockResolvedValue(JSON.stringify(cachedCreds));
157
+ const mockClient = {
158
+ setCredentials: vi.fn(),
159
+ getAccessToken: vi.fn().mockResolvedValue({ token: 'test-token' }),
160
+ getTokenInfo: vi.fn().mockResolvedValue({}),
161
+ on: vi.fn(),
162
+ };
163
+ // To mock the new OAuth2Client() inside the function
164
+ OAuth2Client.mockImplementation(() => mockClient);
165
+ await getOauthClient(AuthType.LOGIN_WITH_GOOGLE);
166
+ expect(fs.promises.readFile).toHaveBeenCalledWith('/user/home/.gemini/oauth_creds.json', 'utf-8');
167
+ expect(mockClient.setCredentials).toHaveBeenCalledWith(cachedCreds);
168
+ expect(mockClient.getAccessToken).toHaveBeenCalled();
169
+ expect(mockClient.getTokenInfo).toHaveBeenCalled();
170
+ expect(Compute).not.toHaveBeenCalled(); // Should not fetch new client if cache is valid
171
+ });
172
+ it('should use Compute to get a client if no cached credentials exist', async () => {
173
+ await getOauthClient(AuthType.CLOUD_SHELL);
174
+ expect(Compute).toHaveBeenCalledWith({});
175
+ expect(mockGetAccessToken).toHaveBeenCalled();
176
+ });
177
+ it('should not cache the credentials after fetching them via ADC', async () => {
178
+ const newCredentials = { refresh_token: 'new-adc-token' };
179
+ mockComputeClient.credentials = newCredentials;
180
+ mockGetAccessToken.mockResolvedValue({ token: 'new-adc-token' });
181
+ await getOauthClient(AuthType.CLOUD_SHELL);
182
+ expect(fs.promises.writeFile).not.toHaveBeenCalled();
183
+ });
184
+ it('should return the Compute client on successful ADC authentication', async () => {
185
+ const client = await getOauthClient(AuthType.CLOUD_SHELL);
186
+ expect(client).toBe(mockComputeClient);
187
+ });
188
+ it('should throw an error if ADC fails', async () => {
189
+ const testError = new Error('ADC Failed');
190
+ mockGetAccessToken.mockRejectedValue(testError);
191
+ await expect(getOauthClient(AuthType.CLOUD_SHELL)).rejects.toThrow('Could not authenticate using Cloud Shell credentials. Please select a different authentication method or ensure you are in a properly configured environment. Error: ADC Failed');
192
+ });
193
+ });
136
194
  });
137
195
  //# sourceMappingURL=oauth2.test.js.map
@@ -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":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAQ,MAAM,QAAQ,CAAC;AAC/E,OAAO,EAAE,cAAc,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAEvD,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;IACrC,MAAM,EAAE,GAAG,MAAM,cAAc,EAAuB,CAAC;IACvD,OAAO;QACL,GAAG,EAAE;QACL,OAAO,EAAE,EAAE,CAAC,EAAE,EAAE;KACjB,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;AAC/B,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChB,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAElB,sBAAsB;AACtB,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;AAEvB,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,IAAI,WAAmB,CAAC;IAExB,UAAU,CAAC,GAAG,EAAE;QACd,WAAW,GAAG,EAAE,CAAC,WAAW,CAC1B,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAChD,CAAC;QACD,EAAE,CAAC,OAAgB,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IACH,SAAS,CAAC,GAAG,EAAE;QACb,EAAE,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,EAAE,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4BAA4B,EAAE,KAAK,IAAI,EAAE;QAC1C,MAAM,WAAW,GAAG,0BAA0B,CAAC;QAC/C,MAAM,QAAQ,GAAG,WAAW,CAAC;QAC7B,MAAM,SAAS,GAAG,YAAY,CAAC;QAC/B,MAAM,UAAU,GAAG;YACjB,YAAY,EAAE,mBAAmB;YACjC,aAAa,EAAE,oBAAoB;SACpC,CAAC;QAEF,MAAM,mBAAmB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACvE,MAAM,kBAAkB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,MAAM,kBAAkB,GAAG,EAAE;aAC1B,EAAE,EAAE;aACJ,iBAAiB,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;QACrD,MAAM,sBAAsB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,QAAQ,EAAE,EAAE;YACrE,oDAAoD;YACpD,MAAM,qBAAqB,GAAG;gBAC5B,YAAY,EAAE,mBAAmB;gBACjC,aAAa,EAAE,oBAAoB;gBACnC,QAAQ,EACN,iGAAiG,EAAE,gDAAgD;aACtJ,CAAC;YACF,QAAQ,CAAC,IAAI,EAAE,qBAAqB,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;QACH,MAAM,iBAAiB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC;YAClD,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;gBACjB,GAAG,EAAE,4BAA4B;gBACjC,GAAG,EAAE,eAAe;gBACpB,GAAG,EAAE,6BAA6B;aACnC,CAAC;SACH,CAAC,CAAC;QACH,MAAM,gBAAgB,GAAG;YACvB,eAAe,EAAE,mBAAmB;YACpC,QAAQ,EAAE,YAAY;YACtB,cAAc,EAAE,kBAAkB;YAClC,cAAc,EAAE,kBAAkB;YAClC,kBAAkB,EAAE,sBAAsB;YAC1C,aAAa,EAAE,iBAAiB;YAChC,WAAW,EAAE,UAAU;YACvB,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;SACe,CAAC;QAC5B,YAAgC,CAAC,kBAAkB,CAClD,GAAG,EAAE,CAAC,gBAAgB,CACvB,CAAC;QAEF,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,eAAe,CAAC,SAAkB,CAAC,CAAC;QACnE,IAAa,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,CAAU,CAAC,CAAC;QAE7D,iCAAiC;QAChC,MAAM,CAAC,KAAc,CAAC,iBAAiB,CAAC;YACvC,EAAE,EAAE,IAAI;YACR,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,EAAE,EAAE,4BAA4B,EAAE,CAAC;SAC/C,CAAC,CAAC;QAE1B,IAAI,eAGH,CAAC;QAEF,IAAI,uBAAiD,CAAC;QACtD,MAAM,sBAAsB,GAAG,IAAI,OAAO,CACxC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,uBAAuB,GAAG,OAAO,CAAC,CACjD,CAAC;QAEF,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,cAAc,GAAG;YACrB,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAY,EAAE,QAAqB,EAAE,EAAE;gBACpD,YAAY,GAAG,IAAI,CAAC;gBACpB,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,EAAE,CAAC;gBACb,CAAC;gBACD,uBAAuB,CAAC,SAAS,CAAC,CAAC;YACrC,CAAC,CAAC;YACF,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,QAAqB,EAAE,EAAE;gBACrC,IAAI,QAAQ,EAAE,CAAC;oBACb,QAAQ,EAAE,CAAC;gBACb,CAAC;YACH,CAAC,CAAC;YACF,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;YACX,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;SACxC,CAAC;QACD,IAAI,CAAC,YAAqB,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE;YACpD,eAAe,GAAG,EAGjB,CAAC;YACF,OAAO,cAAwC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,MAAM,aAAa,GAAG,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;QAEjE,sCAAsC;QACtC,MAAM,sBAAsB,CAAC;QAE7B,MAAM,OAAO,GAAG;YACd,GAAG,EAAE,wBAAwB,QAAQ,UAAU,SAAS,EAAE;SACnC,CAAC;QAC1B,MAAM,OAAO,GAAG;YACd,SAAS,EAAE,EAAE,CAAC,EAAE,EAAE;YAClB,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;SACqB,CAAC;QAEpC,MAAM,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAExC,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAEtC,MAAM,CAAC,IAAI,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QAC/C,MAAM,CAAC,YAAY,CAAC,CAAC,oBAAoB,CAAC;YACxC,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,oBAAoB,YAAY,iBAAiB;SAChE,CAAC,CAAC;QACH,MAAM,CAAC,kBAAkB,CAAC,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;QAE5D,sCAAsC;QACtC,MAAM,mBAAmB,GAAG,IAAI,CAAC,IAAI,CACnC,WAAW,EACX,SAAS,EACT,mBAAmB,CACpB,CAAC;QACF,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,qBAAqB,GAAG,EAAE,CAAC,YAAY,CAAC,mBAAmB,EAAE,OAAO,CAAC,CAAC;QAC5E,MAAM,CAAC,qBAAqB,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAEjE,qDAAqD;QACrD,MAAM,CAAC,wBAAwB,EAAE,CAAC,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IACxE,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,MAAM,kBAAkB,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;QACnC,IAAI,iBAA0B,CAAC;QAE/B,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YACtD,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAC5D,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAChE,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,iBAAiB,CACjD,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAC5B,CAAC,CAAC,6BAA6B;YAEhC,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,mBAAmB,EAAE,CAAC,CAAC;YACrE,iBAAiB,GAAG;gBAClB,WAAW,EAAE,EAAE,aAAa,EAAE,oBAAoB,EAAE;gBACpD,cAAc,EAAE,kBAAkB;aACb,CAAC;YAEvB,OAA2B,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,iBAAiB,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,iDAAiD,EAAE,KAAK,IAAI,EAAE;YAC/D,MAAM,WAAW,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,CAAC;YACtD,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,iBAAiB,CACjD,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAC5B,CAAC;YAEF,MAAM,UAAU,GAAG;gBACjB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE;gBACvB,cAAc,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;gBAClE,YAAY,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBAC3C,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE;aACZ,CAAC;YAEF,qDAAqD;YACpD,YAAgC,CAAC,kBAAkB,CAClD,GAAG,EAAE,CAAC,UAAqC,CAC5C,CAAC;YAEF,MAAM,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;YAEjD,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAC/C,qCAAqC,EACrC,OAAO,CACR,CAAC;YACF,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;YACpE,MAAM,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACrD,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACnD,MAAM,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC,gDAAgD;QAC1F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YACjF,MAAM,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE3C,MAAM,CAAC,OAAO,CAAC,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;YACzC,MAAM,CAAC,kBAAkB,CAAC,CAAC,gBAAgB,EAAE,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC5E,MAAM,cAAc,GAAG,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;YAC1D,iBAAiB,CAAC,WAAW,GAAG,cAAc,CAAC;YAC/C,kBAAkB,CAAC,iBAAiB,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAAC;YAEjE,MAAM,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAE3C,MAAM,CAAC,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACvD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;YACjF,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC1D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK,IAAI,EAAE;YAClD,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAC1C,kBAAkB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC;YAEhD,MAAM,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAChE,iLAAiL,CAClL,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -5,7 +5,6 @@
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.
9
8
  export const CODE_ASSIST_ENDPOINT = 'https://cloudcode-pa.googleapis.com';
10
9
  export const CODE_ASSIST_API_VERSION = 'v1internal';
11
10
  export class CodeAssistServer {
@@ -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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"}
@@ -39,7 +39,9 @@ export declare class MCPServerConfig {
39
39
  readonly timeout?: number | undefined;
40
40
  readonly trust?: boolean | undefined;
41
41
  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);
42
+ readonly includeTools?: string[] | undefined;
43
+ readonly excludeTools?: string[] | undefined;
44
+ 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
45
  }
44
46
  export interface SandboxConfig {
45
47
  command: 'docker' | 'podman' | 'sandbox-exec';
@@ -116,6 +118,7 @@ export declare class Config {
116
118
  private modelSwitchedDuringSession;
117
119
  flashFallbackHandler?: FlashFallbackHandler;
118
120
  constructor(params: ConfigParameters);
121
+ initialize(): Promise<void>;
119
122
  refreshAuth(authMethod: AuthType): Promise<void>;
120
123
  getSessionId(): string;
121
124
  getContentGeneratorConfig(): ContentGeneratorConfig;
@@ -163,6 +166,10 @@ export declare class Config {
163
166
  getUsageStatisticsEnabled(): boolean;
164
167
  getExtensionContextFilePaths(): string[];
165
168
  getGitService(): Promise<GitService>;
169
+ refreshMemory(): Promise<{
170
+ memoryContent: string;
171
+ fileCount: number;
172
+ }>;
173
+ createToolRegistry(): Promise<ToolRegistry>;
166
174
  }
167
- export declare function createToolRegistry(config: Config): Promise<ToolRegistry>;
168
175
  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 {
@@ -155,23 +160,25 @@ export class Config {
155
160
  console.log('Data collection is disabled.');
156
161
  }
157
162
  }
163
+ async initialize() {
164
+ // Initialize centralized FileDiscoveryService
165
+ this.getFileService();
166
+ if (this.getCheckpointingEnabled()) {
167
+ try {
168
+ await this.getGitService();
169
+ }
170
+ catch {
171
+ // For now swallow the error, later log it.
172
+ }
173
+ }
174
+ this.toolRegistry = await this.createToolRegistry();
175
+ }
158
176
  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;
177
+ this.contentGeneratorConfig = await createContentGeneratorConfig(this.model, authMethod);
178
+ this.geminiClient = new GeminiClient(this);
179
+ await this.geminiClient.initialize(this.contentGeneratorConfig);
172
180
  // Reset the session flag since we're explicitly changing auth and using default model
173
181
  this.modelSwitchedDuringSession = false;
174
- // Note: In the future, we may want to reset any cached state when switching auth methods
175
182
  }
176
183
  getSessionId() {
177
184
  return this.sessionId;
@@ -324,49 +331,54 @@ export class Config {
324
331
  }
325
332
  return this.gitService;
326
333
  }
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 () => {
334
+ async refreshMemory() {
335
+ const { memoryContent, fileCount } = await loadServerHierarchicalMemory(this.getWorkingDir(), this.getDebugMode(), this.getFileService(), this.getExtensionContextFilePaths());
336
+ this.setUserMemory(memoryContent);
337
+ this.setGeminiMdFileCount(fileCount);
338
+ return { memoryContent, fileCount };
339
+ }
340
+ async createToolRegistry() {
341
+ const registry = new ToolRegistry(this);
342
+ const targetDir = this.getTargetDir();
343
+ // helper to create & register core tools that are enabled
344
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
345
+ const registerCoreTool = (ToolClass, ...args) => {
346
+ const className = ToolClass.name;
347
+ const toolName = ToolClass.Name || className;
348
+ const coreTools = this.getCoreTools();
349
+ const excludeTools = this.getExcludeTools();
350
+ let isEnabled = false;
351
+ if (coreTools === undefined) {
352
+ isEnabled = true;
353
+ }
354
+ else {
355
+ isEnabled = coreTools.some((tool) => tool === className ||
356
+ tool === toolName ||
357
+ tool.startsWith(`${className}(`) ||
358
+ tool.startsWith(`${toolName}(`));
359
+ }
360
+ if (excludeTools?.includes(className) ||
361
+ excludeTools?.includes(toolName)) {
362
+ isEnabled = false;
363
+ }
364
+ if (isEnabled) {
365
+ registry.registerTool(new ToolClass(...args));
366
+ }
367
+ };
368
+ registerCoreTool(LSTool, targetDir, this);
369
+ registerCoreTool(ReadFileTool, targetDir, this);
370
+ registerCoreTool(GrepTool, targetDir);
371
+ registerCoreTool(GlobTool, targetDir, this);
372
+ registerCoreTool(EditTool, this);
373
+ registerCoreTool(WriteFileTool, this);
374
+ registerCoreTool(WebFetchTool, this);
375
+ registerCoreTool(ReadManyFilesTool, targetDir, this);
376
+ registerCoreTool(ShellTool, this);
377
+ registerCoreTool(MemoryTool);
378
+ registerCoreTool(WebSearchTool, this);
367
379
  await registry.discoverTools();
368
380
  return registry;
369
- })();
381
+ }
370
382
  }
371
383
  // Export model constants for use in CLI
372
384
  export { DEFAULT_GEMINI_FLASH_MODEL };