summaryrefslogtreecommitdiff
path: root/packages/core/src
diff options
context:
space:
mode:
authorBilly Biggs <[email protected]>2025-07-18 20:45:00 +0200
committerGitHub <[email protected]>2025-07-18 18:45:00 +0000
commit18c3bf3a4206d5d3be41b2510ec3940760a15e9f (patch)
tree960112fd2f233b53f6ea35aa777da51769617197 /packages/core/src
parent9dadf2295804867d44628eda32fc1e46d80f9db3 (diff)
Summarize extensions and MCP servers on startup (#3977)
Diffstat (limited to 'packages/core/src')
-rw-r--r--packages/core/src/config/config.ts24
1 files changed, 18 insertions, 6 deletions
diff --git a/packages/core/src/config/config.ts b/packages/core/src/config/config.ts
index 9d47fb08..f81b3e32 100644
--- a/packages/core/src/config/config.ts
+++ b/packages/core/src/config/config.ts
@@ -71,9 +71,10 @@ export interface TelemetrySettings {
logPrompts?: boolean;
}
-export interface ActiveExtension {
+export interface GeminiCLIExtension {
name: string;
version: string;
+ isActive: boolean;
}
export class MCPServerConfig {
@@ -97,6 +98,7 @@ export class MCPServerConfig {
readonly description?: string,
readonly includeTools?: string[],
readonly excludeTools?: string[],
+ readonly extensionName?: string,
) {}
}
@@ -147,7 +149,8 @@ export interface ConfigParameters {
maxSessionTurns?: number;
experimentalAcp?: boolean;
listExtensions?: boolean;
- activeExtensions?: ActiveExtension[];
+ extensions?: GeminiCLIExtension[];
+ blockedMcpServers?: Array<{ name: string; extensionName: string }>;
noBrowser?: boolean;
summarizeToolOutput?: Record<string, SummarizeToolOutputSettings>;
ideMode?: boolean;
@@ -194,7 +197,11 @@ export class Config {
private modelSwitchedDuringSession: boolean = false;
private readonly maxSessionTurns: number;
private readonly listExtensions: boolean;
- private readonly _activeExtensions: ActiveExtension[];
+ private readonly _extensions: GeminiCLIExtension[];
+ private readonly _blockedMcpServers: Array<{
+ name: string;
+ extensionName: string;
+ }>;
flashFallbackHandler?: FlashFallbackHandler;
private quotaErrorOccurred: boolean = false;
private readonly summarizeToolOutput:
@@ -245,7 +252,8 @@ export class Config {
this.maxSessionTurns = params.maxSessionTurns ?? -1;
this.experimentalAcp = params.experimentalAcp ?? false;
this.listExtensions = params.listExtensions ?? false;
- this._activeExtensions = params.activeExtensions ?? [];
+ this._extensions = params.extensions ?? [];
+ this._blockedMcpServers = params.blockedMcpServers ?? [];
this.noBrowser = params.noBrowser ?? false;
this.summarizeToolOutput = params.summarizeToolOutput;
this.ideMode = params.ideMode ?? false;
@@ -505,8 +513,12 @@ export class Config {
return this.listExtensions;
}
- getActiveExtensions(): ActiveExtension[] {
- return this._activeExtensions;
+ getExtensions(): GeminiCLIExtension[] {
+ return this._extensions;
+ }
+
+ getBlockedMcpServers(): Array<{ name: string; extensionName: string }> {
+ return this._blockedMcpServers;
}
getNoBrowser(): boolean {