Summarize extensions and MCP servers on startup (#3977)

This commit is contained in:
Billy Biggs
2025-07-18 20:45:00 +02:00
committed by GitHub
parent 9dadf22958
commit 18c3bf3a42
11 changed files with 218 additions and 64 deletions

View File

@@ -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 {