Something went wrong. Try again.
more up to date at codeberg https://codeberg.org/cowie/tau.git
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253/** * TUI session selector for --resume flag */
import { ProcessTerminal, setKeybindings, TUI } from "@earendil-works/pi-tui";import { KeybindingsManager } from "../core/keybindings.ts";import type { SessionInfo, SessionListProgress } from "../core/session-manager.ts";import { SessionSelectorComponent } from "../modes/interactive/components/session-selector.ts";
type SessionsLoader = (onProgress?: SessionListProgress) => Promise<SessionInfo[]>;
/** Show TUI session selector and return selected session path or null if cancelled */export async function selectSession( currentSessionsLoader: SessionsLoader, allSessionsLoader: SessionsLoader,): Promise<string | null> { return new Promise((resolve) => { const ui = new TUI(new ProcessTerminal()); const keybindings = KeybindingsManager.create(); setKeybindings(keybindings); let resolved = false;
const selector = new SessionSelectorComponent( currentSessionsLoader, allSessionsLoader, (path: string) => { if (!resolved) { resolved = true; ui.stop(); resolve(path); } }, () => { if (!resolved) { resolved = true; ui.stop(); resolve(null); } }, () => { ui.stop(); process.exit(0); }, () => ui.requestRender(), { showRenameHint: false, keybindings }, );
ui.addChild(selector); ui.setFocus(selector.getSessionList()); ui.start(); });}