mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-25 13:30:45 -07:00
78 lines
2.2 KiB
TypeScript
78 lines
2.2 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import {
|
|
CommandKind,
|
|
type CommandContext,
|
|
type SlashCommand,
|
|
} from './types.js';
|
|
import process from 'node:process';
|
|
import { MessageType, type HistoryItemAbout } from '../types.js';
|
|
import {
|
|
IdeClient,
|
|
UserAccountManager,
|
|
debugLogger,
|
|
getVersion,
|
|
} from '@google/gemini-cli-core';
|
|
|
|
export const aboutCommand: SlashCommand = {
|
|
name: 'about',
|
|
description: 'Show version info',
|
|
kind: CommandKind.BUILT_IN,
|
|
autoExecute: true,
|
|
isSafeConcurrent: true,
|
|
action: async (context) => {
|
|
const osVersion = process.platform;
|
|
let sandboxEnv = 'no sandbox';
|
|
if (process.env['SANDBOX'] && process.env['SANDBOX'] !== 'sandbox-exec') {
|
|
sandboxEnv = process.env['SANDBOX'];
|
|
} else if (process.env['SANDBOX'] === 'sandbox-exec') {
|
|
sandboxEnv = `sandbox-exec (${
|
|
process.env['SEATBELT_PROFILE'] || 'unknown'
|
|
})`;
|
|
}
|
|
const modelVersion =
|
|
context.services.agentContext?.config.getModel() || 'Unknown';
|
|
const cliVersion = await getVersion();
|
|
const selectedAuthType =
|
|
context.services.settings.merged.security.auth.selectedType || '';
|
|
const gcpProject = process.env['GOOGLE_CLOUD_PROJECT'] || '';
|
|
const ideClient = await getIdeClientName(context);
|
|
|
|
const userAccountManager = new UserAccountManager();
|
|
const cachedAccount = userAccountManager.getCachedGoogleAccount();
|
|
debugLogger.log('AboutCommand: Retrieved cached Google account', {
|
|
cachedAccount,
|
|
});
|
|
const userEmail = cachedAccount ?? undefined;
|
|
|
|
const tier = context.services.agentContext?.config.getUserTierName();
|
|
|
|
const aboutItem: Omit<HistoryItemAbout, 'id'> = {
|
|
type: MessageType.ABOUT,
|
|
cliVersion,
|
|
osVersion,
|
|
sandboxEnv,
|
|
modelVersion,
|
|
selectedAuthType,
|
|
gcpProject,
|
|
ideClient,
|
|
userEmail,
|
|
tier,
|
|
};
|
|
|
|
context.ui.addItem(aboutItem);
|
|
},
|
|
};
|
|
|
|
async function getIdeClientName(context: CommandContext) {
|
|
if (!context.services.agentContext?.config.getIdeMode()) {
|
|
return '';
|
|
}
|
|
const ideClient = await IdeClient.getInstance();
|
|
return ideClient?.getDetectedIdeDisplayName() ?? '';
|
|
}
|