diff options
| author | Taylor Mullen <[email protected]> | 2025-05-11 14:28:21 -0700 |
|---|---|---|
| committer | N. Taylor Mullen <[email protected]> | 2025-05-11 14:33:58 -0700 |
| commit | 8537aabba49543af5c96138285578e4e9d36a76f (patch) | |
| tree | 2570ee978092301320130dbc4652b00afe1cd79c /packages/server/src | |
| parent | 2970f0a06c234d1cb2fafb2e02754973bd1fa26a (diff) | |
feat: Add User-Agent to API requests
This change introduces a User-Agent header to all API requests made by the Gemini CLI.
The User-Agent string includes the CLI version, Node.js version, operating system, and architecture. This will help in tracking usage and identifying potential issues.
Fixes https://b.corp.google.com/issues/416353675
Signed-off-by: Gemini
Diffstat (limited to 'packages/server/src')
| -rw-r--r-- | packages/server/src/config/config.ts | 7 | ||||
| -rw-r--r-- | packages/server/src/core/client.ts | 10 |
2 files changed, 16 insertions, 1 deletions
diff --git a/packages/server/src/config/config.ts b/packages/server/src/config/config.ts index 41409f7c..daff1807 100644 --- a/packages/server/src/config/config.ts +++ b/packages/server/src/config/config.ts @@ -34,6 +34,7 @@ export class Config { private readonly toolDiscoveryCommand: string | undefined, private readonly toolCallCommand: string | undefined, private readonly mcpServerCommand: string | undefined, + private readonly userAgent: string, ) { // toolRegistry still needs initialization based on the instance this.toolRegistry = createToolRegistry(this); @@ -81,6 +82,10 @@ export class Config { getMcpServerCommand(): string | undefined { return this.mcpServerCommand; } + + getUserAgent(): string { + return this.userAgent; + } } function findEnvFile(startDir: string): string | null { @@ -117,6 +122,7 @@ export function createServerConfig( toolDiscoveryCommand?: string, toolCallCommand?: string, mcpServerCommand?: string, + userAgent?: string, ): Config { return new Config( apiKey, @@ -129,6 +135,7 @@ export function createServerConfig( toolDiscoveryCommand, toolCallCommand, mcpServerCommand, + userAgent ?? 'GeminiCLI/unknown', // Default user agent ); } diff --git a/packages/server/src/core/client.ts b/packages/server/src/core/client.ts index b8d47476..0b1e8ecf 100644 --- a/packages/server/src/core/client.ts +++ b/packages/server/src/core/client.ts @@ -34,7 +34,15 @@ export class GeminiClient { private readonly MAX_TURNS = 100; constructor(private config: Config) { - this.client = new GoogleGenAI({ apiKey: config.getApiKey() }); + const userAgent = config.getUserAgent(); + this.client = new GoogleGenAI({ + apiKey: config.getApiKey(), + httpOptions: { + headers: { + 'User-Agent': userAgent, + }, + }, + }); this.model = config.getModel(); } |
