/** * Download laya-mlx model weights from HuggingFace with a progress bar. * * Downloads to ~/.pi/agent/pi-warden/laya/ using an atomic staging strategy: * files are written to a .staging subdirectory first, then promoted to the final * location only after all files are present and the required files are validated. * A .done marker signals a complete, validated checkpoint. */ /** The directory where model weights are stored. */ export declare function layaModelDir(): string; /** * True when the model directory exists, the .done marker is present, * and all required files are on disk with non-zero size. */ export declare function layaModelReady(): boolean; /** * Download the laya-mlx model. Shows a progress bar in the terminal. * Returns the model directory path. * * Uses atomic staging: files are written to a .staging subdirectory, * then promoted to the final location only after all files download * successfully. An interrupted download leaves .staging behind, which * is cleaned up on the next startup. * * @param onStatus - callback for status messages */ export declare function downloadLayaModel(onStatus?: (msg: string) => void): Promise; /** * The directory where the pi-warden-managed Laya virtual environment lives. * Uses the same agent dir as the model, keeping all Laya state together. */ export declare function layaVenvDir(): string; /** True when the venv exists and has laya importable. */ export declare function layaVenvReady(): boolean; /** The Python executable inside the venv. */ export declare function layaVenvPython(): string; /** Mark the venv as ready after successful installation. */ export declare function markVenvReady(): Promise; /** Remove the venv done marker so the next startup rebuilds it. */ export declare function invalidateVenv(): void;