/** * @license * Copyright 2026 Google LLC * SPDX-License-Identifier: Apache-2.0 */ import type React from 'react'; import { useMemo } from 'react'; import { Box, Text } from 'ink'; import { theme } from '../semantic-colors.js'; import { type Config, UserAccountManager, AuthType, } from '@google/gemini-cli-core'; import { isUltraTier } from '../../utils/tierUtils.js'; interface UserIdentityProps { config: Config; } export const UserIdentity: React.FC = ({ config }) => { const authType = config.getContentGeneratorConfig()?.authType; const email = useMemo(() => { if (authType) { const userAccountManager = new UserAccountManager(); return userAccountManager.getCachedGoogleAccount() ?? undefined; } return undefined; }, [authType]); const tierName = useMemo( () => (authType ? config.getUserTierName() : undefined), [config, authType], ); const isUltra = useMemo(() => isUltraTier(tierName), [tierName]); if (!authType) { return null; } return ( {/* User Email /auth */} {authType === AuthType.LOGIN_WITH_GOOGLE ? ( Signed in with Google{email ? ':' : ''} {email ? ` ${email}` : ''} ) : ( `Authenticated with ${authType}` )} /auth {/* Tier Name /upgrade */} {tierName && ( Plan: {tierName} {!isUltra && /upgrade} )} ); };