UNPKG

@lanonasis/cli

Version:

Professional CLI for LanOnasis Memory as a Service (MaaS) with MCP support, seamless inline editing, and enterprise-grade security

76 lines (75 loc) 2.08 kB
/** * Text Input Handler Implementation * * Provides seamless multi-line text input without external editors * Implementation of the TextInputHandler interface. */ import { TextInputHandler, KeyEvent, InputOptions, InputSession } from '../interfaces/TextInputHandler.js'; /** * TextInputHandlerImpl provides seamless multi-line text input without external editors * * This implementation uses process.stdin.setRawMode(true) to capture individual keystrokes * and handles special characters manually to provide a smooth editing experience. */ export declare class TextInputHandlerImpl implements TextInputHandler { private currentSession; private isRawModeEnabled; private originalStdinMode; /** * Collect multi-line text input from the user */ collectMultilineInput(prompt: string, options?: InputOptions): Promise<string>; /** * Enable raw mode for direct keystroke capture */ enableRawMode(): void; /** * Disable raw mode and return to normal terminal behavior */ disableRawMode(): void; /** * Handle special keyboard events */ handleSpecialKeys(key: KeyEvent): boolean; /** * Display the input prompt with current content */ displayInputPrompt(content: string): void; /** * Get the current input session */ getCurrentSession(): InputSession | null; /** * Cancel the current input session */ cancelInput(): void; /** * Parse raw key event from buffer */ private parseKeyEvent; private resumeStdinIfSupported; /** * Check if a key event matches a key pattern */ private matchesKey; /** * Add a character to the current input */ private addCharacterToInput; /** * Add a new line to the input */ private addNewLine; /** * Handle backspace key */ private handleBackspace; /** * Handle arrow key navigation */ private handleArrowKey; /** * Get the current content as a string */ private getCurrentContent; }