UNPKG

@earendil-works/pi-coding-agent

Version:

Coding agent CLI with read, bash, edit, write tools and session management

34 lines • 1.58 kB
/** * TUI config selector for `pi config` command */ import { ProcessTerminal, setKeybindings, TuiMainScreen } from "@earendil-works/pi-tui"; import { KeybindingsManager } from "../core/keybindings.js"; import { ConfigSelectorComponent } from "../modes/interactive/components/config-selector.js"; import { initTheme, stopThemeWatcher } from "../modes/interactive/theme/theme.js"; /** Show TUI config selector and return when closed */ export async function selectConfig(options) { // Initialize theme before showing TUI initTheme(options.settingsManager.getTheme(), true); setKeybindings(KeybindingsManager.create(options.agentDir)); return new Promise((resolve) => { const ui = new TuiMainScreen(new ProcessTerminal(), options.settingsManager.getShowHardwareCursor(), options.agentDir); ui.setClearOnShrink(options.settingsManager.getClearOnShrink()); let resolved = false; const selector = new ConfigSelectorComponent(options.resolvedPaths, options.settingsManager, options.cwd, options.agentDir, () => { if (!resolved) { resolved = true; ui.stop(); stopThemeWatcher(); resolve(); } }, () => { ui.stop(); stopThemeWatcher(); process.exit(0); }, () => ui.requestRender(), ui.terminal.rows, options.writeScope, options.projectModeAvailable); ui.addChild(selector); ui.setFocus(selector.getResourceList()); ui.start(); }); } //# sourceMappingURL=config-selector.js.map