mirror of
https://github.com/google-gemini/gemini-cli.git
synced 2026-03-13 15:40:57 -07:00
48 lines
1.0 KiB
TypeScript
48 lines
1.0 KiB
TypeScript
/**
|
|
* @license
|
|
* Copyright 2025 Google LLC
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
import process from 'node:process';
|
|
|
|
/**
|
|
* Returns the color depth of the current terminal.
|
|
* Returns 24 (TrueColor) if unknown or not a TTY.
|
|
*/
|
|
export function getColorDepth(): number {
|
|
return process.stdout.getColorDepth ? process.stdout.getColorDepth() : 24;
|
|
}
|
|
|
|
/**
|
|
* Returns true if the terminal has low color depth (less than 24-bit).
|
|
*/
|
|
export function isLowColorDepth(): boolean {
|
|
return getColorDepth() < 24;
|
|
}
|
|
|
|
let cachedIsITerm2: boolean | undefined;
|
|
|
|
/**
|
|
* Returns true if the current terminal is iTerm2.
|
|
*/
|
|
export function isITerm2(): boolean {
|
|
if (cachedIsITerm2 !== undefined) {
|
|
return cachedIsITerm2;
|
|
}
|
|
|
|
cachedIsITerm2 =
|
|
process.env['TERM_PROGRAM'] === 'iTerm.app' ||
|
|
!!process.env['ITERM_SESSION_ID'];
|
|
|
|
return cachedIsITerm2;
|
|
}
|
|
|
|
/**
|
|
* Resets the cached iTerm2 detection value.
|
|
* Primarily used for testing.
|
|
*/
|
|
export function resetITerm2Cache(): void {
|
|
cachedIsITerm2 = undefined;
|
|
}
|