/** * Action inbox helpers for file-based IPC between loop processes and the TUI. * * The loop writes an action request file; the TUI reads it and writes a reply. * Both files live in /tmp with the conventional ralph-loop- prefix. */ export interface ActionChoice { id: string; label: string; } export interface ActionRequest { id: string; prompt: string; choices: ActionChoice[]; default: string; } export interface ActionReply { id: string; choice: string; } /** * Return the path to the action request file for a feature. */ export declare function getActionRequestPath(feature: string): string; /** * Return the path to the action reply file for a feature. */ export declare function getActionReplyPath(feature: string): string; /** * Read and validate the action request file for a feature. * * Returns null if the file does not exist, cannot be parsed, or is missing * required fields. Logs a warning on parse errors. */ export declare function readActionRequest(feature: string): ActionRequest | null; /** * Write an action reply file atomically (write to .tmp then rename). */ export declare function writeActionReply(feature: string, reply: ActionReply): Promise; /** * Remove both action request and reply files. Only suppresses ENOENT (file not found). */ export declare function cleanupActionFiles(feature: string): Promise;