diff options
| author | Shreya Keshive <[email protected]> | 2025-07-14 12:04:08 -0400 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-14 16:04:08 +0000 |
| commit | fadc477001cfcf988b9565b5d9d6ccd0da15a35c (patch) | |
| tree | 4a3e64ee85e865f6ec000225cfacbcaea24eb35e /packages/cli/src/config/config.ts | |
| parent | e9d680e8a45b18152042214891132eec60e4a09b (diff) | |
Add feature flag for IDE integration (#3927)
Co-authored-by: Scott Densmore <[email protected]>
Diffstat (limited to 'packages/cli/src/config/config.ts')
| -rw-r--r-- | packages/cli/src/config/config.ts | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts index 1c1f0746..626f23e1 100644 --- a/packages/cli/src/config/config.ts +++ b/packages/cli/src/config/config.ts @@ -17,6 +17,7 @@ import { DEFAULT_GEMINI_EMBEDDING_MODEL, FileDiscoveryService, TelemetryTarget, + MCPServerConfig, } from '@google/gemini-cli-core'; import { Settings } from './settings.js'; @@ -54,6 +55,7 @@ export interface CliArgs { allowedMcpServerNames: string[] | undefined; extensions: string[] | undefined; listExtensions: boolean | undefined; + ideMode: boolean | undefined; } export async function parseArguments(): Promise<CliArgs> { @@ -175,6 +177,10 @@ export async function parseArguments(): Promise<CliArgs> { type: 'boolean', description: 'List all available extensions and exit.', }) + .option('ide-mode', { + type: 'boolean', + description: 'Run in IDE mode?', + }) .version(await getCliVersion()) // This will enable the --version flag based on package.json .alias('v', 'version') @@ -230,6 +236,11 @@ export async function loadCliConfig( (v) => v === 'true' || v === '1', ); + const ideMode = + (argv.ideMode ?? settings.ideMode ?? false) && + process.env.TERM_PROGRAM === 'vscode' && + !process.env.SANDBOX; + const activeExtensions = filterActiveExtensions( extensions, argv.extensions || [], @@ -273,6 +284,24 @@ export async function loadCliConfig( } } + if (ideMode) { + mcpServers['_ide_server'] = new MCPServerConfig( + undefined, // command + undefined, // args + undefined, // env + undefined, // cwd + undefined, // url + 'http://localhost:3000/mcp', // httpUrl + undefined, // headers + undefined, // tcp + undefined, // timeout + false, // trust + 'IDE connection', // description + undefined, // includeTools + undefined, // excludeTools + ); + } + const sandboxConfig = await loadSandboxConfig(settings, argv); return new Config({ @@ -333,6 +362,7 @@ export async function loadCliConfig( version: e.config.version, })), noBrowser: !!process.env.NO_BROWSER, + ideMode, }); } |
