/** * Canonical RCASD path helpers for provenance file management. * * All provenance artifacts live under `.cleo/rcasd/{epicId}/` with * stage subdirectories created on-demand. * * @task T5200 * @epic T4798 */ /** * Strip suffixes from epic directory names. * E.g. `T4881_install-channels` -> `T4881` * * @param dirName - Directory name that may contain a suffix * @returns The normalized T#### epic ID */ export declare function normalizeEpicId(dirName: string): string; /** * Get the absolute path to the `.cleo/rcasd/` base directory. * * @param cwd - Optional working directory override * @returns Absolute path to the rcasd base directory */ export declare function getRcasdBaseDir(cwd?: string): string; /** * Get the absolute path to `.cleo/rcasd/{epicId}/`. * Uses the normalized epic ID (without suffixes). * * @param epicId - Epic identifier (e.g. `T4881`) * @param cwd - Optional working directory override * @returns Absolute path to the epic directory */ export declare function getEpicDir(epicId: string, cwd?: string): string; /** * Search both `rcasd/` and legacy `rcsd/` for an existing epic directory. * Also checks suffixed directory names (e.g. `T4881_install-channels` * matches `T4881`). * * @param epicId - Epic identifier to search for * @param cwd - Optional working directory override * @returns Absolute path to the found directory, or null */ export declare function findEpicDir(epicId: string, cwd?: string): string | null; /** * Get the stage subdirectory path for an epic. * Uses STAGE_SUBDIRS mapping, falling back to the raw stage name. * * @param epicId - Epic identifier * @param stage - Canonical stage name (e.g. `research`, `contribution`) * @param cwd - Optional working directory override * @returns Absolute path to the stage subdirectory */ export declare function getStagePath(epicId: string, stage: string, cwd?: string): string; /** * Get the stage subdirectory path, creating it if it does not exist. * * @param epicId - Epic identifier * @param stage - Canonical stage name * @param cwd - Optional working directory override * @returns Absolute path to the (now existing) stage subdirectory */ export declare function ensureStagePath(epicId: string, stage: string, cwd?: string): string; /** * Get the manifest path for an epic under the default rcasd directory. * * @param epicId - Epic identifier * @param cwd - Optional working directory override * @returns Absolute path to `.cleo/rcasd/{epicId}/_manifest.json` */ export declare function getManifestPath(epicId: string, cwd?: string): string; /** * Search both `rcasd/` and `rcsd/` for an existing manifest file. * Checks suffixed directory names as well. * * @param epicId - Epic identifier * @param cwd - Optional working directory override * @returns Absolute path to the found manifest, or null */ export declare function findManifestPath(epicId: string, cwd?: string): string | null; /** * Scan the rcasd root directory for loose `T####_*.md` files that are * not inside subdirectories. * * @param cwd - Optional working directory override * @returns Array of file info with extracted epic ID */ export declare function getLooseResearchFiles(cwd?: string): Array<{ file: string; epicId: string; fullPath: string; }>; /** * List all epic directories across `rcasd/` and `rcsd/`. * * @param cwd - Optional working directory override * @returns Array of epic info with normalized IDs and original directory names */ export declare function listEpicDirs(cwd?: string): Array<{ epicId: string; dirName: string; fullPath: string; }>; //# sourceMappingURL=rcasd-paths.d.ts.map