Download packages/cli/src/config/footerItems.ts from SaylorTwift/gemini-cli: direct link, hf CLI and curl.
- Browser
- Download file 3.66 kB
-
https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/config/footerItems.ts
- Command line
-
hf download hf://SaylorTwift/gemini-cli/packages/cli/src/config/footerItems.ts
-
curl -L -o footerItems.ts https://huggingface.co/SaylorTwift/gemini-cli/resolve/main/packages/cli/src/config/footerItems.ts
3.66 kB
| /** | |
| * @license | |
| * Copyright 2026 Google LLC | |
| * SPDX-License-Identifier: Apache-2.0 | |
| */ | |
| import type { MergedSettings } from './settings.js'; | |
| export const ALL_ITEMS = [ | |
| { | |
| id: 'workspace', | |
| header: 'workspace (/directory)', | |
| description: 'Current working directory', | |
| }, | |
| { | |
| id: 'git-branch', | |
| header: 'branch', | |
| description: 'Current git branch name (not shown when unavailable)', | |
| }, | |
| { | |
| id: 'sandbox', | |
| header: 'sandbox', | |
| description: 'Sandbox type and trust indicator', | |
| }, | |
| { | |
| id: 'model-name', | |
| header: '/model', | |
| description: 'Current model identifier', | |
| }, | |
| { | |
| id: 'context-used', | |
| header: 'context', | |
| description: 'Percentage of context window used', | |
| }, | |
| { | |
| id: 'quota', | |
| header: 'quota', | |
| description: 'Percentage of daily limit used (not shown when unavailable)', | |
| }, | |
| { | |
| id: 'memory-usage', | |
| header: 'memory', | |
| description: 'Memory used by the application', | |
| }, | |
| { | |
| id: 'session-id', | |
| header: 'session', | |
| description: 'Unique identifier for the current session', | |
| }, | |
| { | |
| id: 'hostname', | |
| header: 'machine', | |
| description: 'Current machine hostname', | |
| }, | |
| { | |
| id: 'auth', | |
| header: '/auth', | |
| description: 'Current authentication info', | |
| }, | |
| { | |
| id: 'code-changes', | |
| header: 'diff', | |
| description: 'Lines added/removed in the session (not shown when zero)', | |
| }, | |
| { | |
| id: 'token-count', | |
| header: 'tokens', | |
| description: 'Total tokens used in the session (not shown when zero)', | |
| }, | |
| ] as const; | |
| export type FooterItemId = (typeof ALL_ITEMS)[number]['id']; | |
| export const DEFAULT_ORDER = [ | |
| 'workspace', | |
| 'git-branch', | |
| 'sandbox', | |
| 'model-name', | |
| 'context-used', | |
| 'quota', | |
| 'memory-usage', | |
| 'session-id', | |
| 'hostname', | |
| 'auth', | |
| 'code-changes', | |
| 'token-count', | |
| ]; | |
| export function deriveItemsFromLegacySettings( | |
| settings: MergedSettings, | |
| ): string[] { | |
| const defaults = [ | |
| 'workspace', | |
| 'git-branch', | |
| 'sandbox', | |
| 'model-name', | |
| 'quota', | |
| ]; | |
| const items = [...defaults]; | |
| const remove = (arr: string[], id: string) => { | |
| const idx = arr.indexOf(id); | |
| if (idx !== -1) arr.splice(idx, 1); | |
| }; | |
| if (settings.ui.footer.hideCWD) remove(items, 'workspace'); | |
| if (settings.ui.footer.hideSandboxStatus) remove(items, 'sandbox'); | |
| if (settings.ui.footer.hideModelInfo) { | |
| remove(items, 'model-name'); | |
| remove(items, 'context-used'); | |
| remove(items, 'quota'); | |
| } | |
| if ( | |
| !settings.ui.footer.hideContextPercentage && | |
| !items.includes('context-used') | |
| ) { | |
| const modelIdx = items.indexOf('model-name'); | |
| if (modelIdx !== -1) items.splice(modelIdx + 1, 0, 'context-used'); | |
| else items.push('context-used'); | |
| } | |
| if (settings.ui.showMemoryUsage) items.push('memory-usage'); | |
| return items; | |
| } | |
| const VALID_IDS: Set<string> = new Set(ALL_ITEMS.map((i) => i.id)); | |
| /** | |
| * Resolves the ordered list and selected set of footer items from settings. | |
| * Used by FooterConfigDialog to initialize and reset state. | |
| */ | |
| export function resolveFooterState(settings: MergedSettings): { | |
| orderedIds: string[]; | |
| selectedIds: Set<string>; | |
| } { | |
| const showUserIdentity = settings.ui?.showUserIdentity !== false; | |
| const filteredValidIds = showUserIdentity | |
| ? VALID_IDS | |
| : new Set([...VALID_IDS].filter((id) => id !== 'auth')); | |
| const source = ( | |
| settings.ui?.footer?.items ?? deriveItemsFromLegacySettings(settings) | |
| ).filter((id: string) => filteredValidIds.has(id)); | |
| const others = DEFAULT_ORDER.filter( | |
| (id) => !source.includes(id) && filteredValidIds.has(id), | |
| ); | |
| return { | |
| orderedIds: [...source, ...others], | |
| selectedIds: new Set(source), | |
| }; | |
| } | |