summaryrefslogtreecommitdiff
path: root/packages/core/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/core/src/config
parentac1bb5ee4275e508dfc2256bbd5ca012e4a4f469 (diff)
Add toggleable IDE mode setting (#5146)
Diffstat (limited to 'packages/core/src/config')
-rw-r--r--packages/core/src/config/config.ts29
1 files changed, 24 insertions, 5 deletions
diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts
index e62e2962..edb24351 100644
--- a/packages/core/src/config/config.ts
+++ b/packages/core/src/config/config.ts
@@ -184,6 +184,7 @@ export interface ConfigParameters {
blockedMcpServers?: Array<{ name: string; extensionName: string }>;
noBrowser?: boolean;
summarizeToolOutput?: Record<string, SummarizeToolOutputSettings>;
+ ideModeFeature?: boolean;
ideMode?: boolean;
ideClient: IdeClient;
}
@@ -228,8 +229,9 @@ export class Config {
private readonly model: string;
private readonly extensionContextFilePaths: string[];
private readonly noBrowser: boolean;
- private readonly ideMode: boolean;
- private readonly ideClient: IdeClient;
+ private readonly ideModeFeature: boolean;
+ private ideMode: boolean;
+ private ideClient: IdeClient;
private inFallbackMode = false;
private readonly maxSessionTurns: number;
private readonly listExtensions: boolean;
@@ -298,7 +300,8 @@ export class Config {
this._blockedMcpServers = params.blockedMcpServers ?? [];
this.noBrowser = params.noBrowser ?? false;
this.summarizeToolOutput = params.summarizeToolOutput;
- this.ideMode = params.ideMode ?? false;
+ this.ideModeFeature = params.ideModeFeature ?? false;
+ this.ideMode = params.ideMode ?? true;
this.ideClient = params.ideClient;
if (params.contextFileName) {
@@ -589,14 +592,30 @@ export class Config {
return this.summarizeToolOutput;
}
- getIdeMode(): boolean {
- return this.ideMode;
+ getIdeModeFeature(): boolean {
+ return this.ideModeFeature;
}
getIdeClient(): IdeClient {
return this.ideClient;
}
+ getIdeMode(): boolean {
+ return this.ideMode;
+ }
+
+ setIdeMode(value: boolean): void {
+ this.ideMode = value;
+ }
+
+ setIdeClientDisconnected(): void {
+ this.ideClient.setDisconnected();
+ }
+
+ setIdeClientConnected(): void {
+ this.ideClient.reconnect(this.ideMode && this.ideModeFeature);
+ }
+
async getGitService(): Promise<GitService> {
if (!this.gitService) {
this.gitService = new GitService(this.targetDir);