/** * Incremental Certification Caching * * Tracks file hashes to enable incremental certification. Instead of re-auditing * the entire codebase, only changed files are analyzed in subsequent runs. * * Cache structure: * ``` * .vaspera/certifications/{cert-id}/cache.json * ``` * * @module certification/cache */ /** * Hash information for a single file */ export interface FileHash { /** Relative path from project root */ path: string; /** SHA-256 hash of file contents */ hash: string; /** ISO timestamp of when this file was last checked */ lastChecked: string; /** File size in bytes */ size: number; } /** * Certification cache containing file hashes */ export interface CertificationCache { /** Cache format version for future compatibility */ version: 1; /** Combined hash of all project files */ projectHash: string; /** Timestamp when cache was created */ createdAt: string; /** Timestamp when cache was last updated */ updatedAt: string; /** Individual file hashes */ files: FileHash[]; } /** * Result of comparing current files against cache */ export interface CacheComparison { /** Files that have changed since last certification */ changed: string[]; /** Files that are new since last certification */ added: string[]; /** Files that were removed since last certification */ removed: string[]; /** Files that are unchanged */ unchanged: string[]; /** Whether the cache is valid and can be used */ cacheValid: boolean; } /** * Compute SHA-256 hash of a file * * @param filePath - Absolute path to the file * @returns Hex-encoded SHA-256 hash */ export declare function hashFile(filePath: string): Promise; /** * Compute a combined hash of multiple file hashes * * @param hashes - Array of file hashes to combine * @returns Hex-encoded SHA-256 hash of all files */ export declare function computeProjectHash(hashes: FileHash[]): string; /** * Generate file hashes for all relevant files in a project * * @param projectPath - Absolute path to project root * @returns Array of file hashes */ export declare function generateFileHashes(projectPath: string): Promise; /** * Load certification cache from disk * * @param certDir - Certification directory path * @returns Cache object or null if not found/invalid */ export declare function loadCache(certDir: string): Promise; /** * Save certification cache to disk * * @param certDir - Certification directory path * @param cache - Cache object to save */ export declare function saveCache(certDir: string, cache: CertificationCache): Promise; /** * Create a new cache from current project state * * @param projectPath - Absolute path to project root * @returns New certification cache */ export declare function createCache(projectPath: string): Promise; /** * Compare current project state against a cached state * * @param projectPath - Absolute path to project root * @param cache - Previous certification cache * @returns Comparison result showing what changed */ export declare function compareWithCache(projectPath: string, cache: CertificationCache): Promise; /** * Get list of files that need re-auditing based on cache comparison * * @param comparison - Result of cache comparison * @returns Array of file paths that need to be re-audited */ export declare function getFilesToAudit(comparison: CacheComparison): string[]; /** * Check if incremental audit is possible (cache exists and is valid structure) * * @param certDir - Certification directory path * @returns Whether incremental audit can be performed */ export declare function canUseIncrementalAudit(certDir: string): Promise; //# sourceMappingURL=cache.d.ts.map