summaryrefslogtreecommitdiff
path: root/packages/cli/src/config
diff options
context:
space:
mode:
authorchristine betts <[email protected]>2025-07-30 22:36:24 +0000
committerGitHub <[email protected]>2025-07-30 22:36:24 +0000
commit325bb8913776c60b763ee5f66375a4ca90d22ce0 (patch)
treeeb2aaf9fa1f826e9cfeff3e1507457aeb61d8fdf /packages/cli/src/config
parentac1bb5ee4275e508dfc2256bbd5ca012e4a4f469 (diff)
Add toggleable IDE mode setting (#5146)
Diffstat (limited to 'packages/cli/src/config')
-rw-r--r--packages/cli/src/config/config.test.ts10
-rw-r--r--packages/cli/src/config/config.ts14
-rw-r--r--packages/cli/src/config/settings.ts4
3 files changed, 17 insertions, 11 deletions
diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts
index 1dd09f4b..d87d0c8f 100644
--- a/packages/cli/src/config/config.test.ts
+++ b/packages/cli/src/config/config.test.ts
@@ -916,7 +916,7 @@ describe('loadCliConfig extensions', () => {
});
});
-describe('loadCliConfig ideMode', () => {
+describe('loadCliConfig ideModeFeature', () => {
const originalArgv = process.argv;
const originalEnv = { ...process.env };
@@ -939,16 +939,16 @@ describe('loadCliConfig ideMode', () => {
const settings: Settings = {};
const argv = await parseArguments();
const config = await loadCliConfig(settings, [], 'test-session', argv);
- expect(config.getIdeMode()).toBe(false);
+ expect(config.getIdeModeFeature()).toBe(false);
});
- it('should be false when settings.ideMode is true, but SANDBOX is set', async () => {
+ it('should be false when settings.ideModeFeature is true, but SANDBOX is set', async () => {
process.argv = ['node', 'script.js'];
const argv = await parseArguments();
process.env.TERM_PROGRAM = 'vscode';
process.env.SANDBOX = 'true';
- const settings: Settings = { ideMode: true };
+ const settings: Settings = { ideModeFeature: true };
const config = await loadCliConfig(settings, [], 'test-session', argv);
- expect(config.getIdeMode()).toBe(false);
+ expect(config.getIdeModeFeature()).toBe(false);
});
});
diff --git a/packages/cli/src/config/config.ts b/packages/cli/src/config/config.ts
index 1cc78888..d650a9af 100644
--- a/packages/cli/src/config/config.ts
+++ b/packages/cli/src/config/config.ts
@@ -59,7 +59,7 @@ export interface CliArgs {
experimentalAcp: boolean | undefined;
extensions: string[] | undefined;
listExtensions: boolean | undefined;
- ideMode: boolean | undefined;
+ ideModeFeature: boolean | undefined;
proxy: string | undefined;
includeDirectories: string[] | undefined;
}
@@ -191,7 +191,7 @@ export async function parseArguments(): Promise<CliArgs> {
type: 'boolean',
description: 'List all available extensions and exit.',
})
- .option('ide-mode', {
+ .option('ide-mode-feature', {
type: 'boolean',
description: 'Run in IDE mode?',
})
@@ -268,10 +268,13 @@ export async function loadCliConfig(
(v) => v === 'true' || v === '1',
);
- const ideMode =
- (argv.ideMode ?? settings.ideMode ?? false) && !process.env.SANDBOX;
+ const ideMode = settings.ideMode ?? false;
- const ideClient = IdeClient.getInstance(ideMode);
+ const ideModeFeature =
+ (argv.ideModeFeature ?? settings.ideModeFeature ?? false) &&
+ !process.env.SANDBOX;
+
+ const ideClient = IdeClient.getInstance(ideMode && ideModeFeature);
const allExtensions = annotateActiveExtensions(
extensions,
@@ -429,6 +432,7 @@ export async function loadCliConfig(
noBrowser: !!process.env.NO_BROWSER,
summarizeToolOutput: settings.summarizeToolOutput,
ideMode,
+ ideModeFeature,
ideClient,
});
}
diff --git a/packages/cli/src/config/settings.ts b/packages/cli/src/config/settings.ts
index 17c1d0d5..5d1b1aaf 100644
--- a/packages/cli/src/config/settings.ts
+++ b/packages/cli/src/config/settings.ts
@@ -99,7 +99,9 @@ export interface Settings {
vimMode?: boolean;
- // Add other settings here.
+ // Flag to be removed post-launch.
+ ideModeFeature?: boolean;
+ /// IDE mode setting configured via slash command toggle.
ideMode?: boolean;
// Setting for disabling auto-update.