UNPKG

@bobmatnyc/ai-code-review

Version:

A TypeScript-based tool for automated code reviews using AI models from Google Gemini, Anthropic Claude, and OpenRouter

107 lines (106 loc) 2.98 kB
/** * @fileoverview Progress tracker for multi-pass reviews. * * This module provides utilities for tracking and displaying progress * during multi-pass reviews. */ /** * Progress state for a multi-pass review */ export interface MultiPassProgress { /** Total number of passes */ totalPasses: number; /** Current pass number */ currentPass: number; /** Files being processed in the current pass */ currentFiles: string[]; /** Total number of files */ totalFiles: number; /** Number of files processed so far */ processedFiles: number; /** Start time of the review */ startTime: Date; /** Estimated completion time */ estimatedCompletionTime?: Date; /** Whether the review is complete */ isComplete: boolean; /** Current phase of the review */ currentPhase: 'preparing' | 'analyzing' | 'reviewing' | 'processing' | 'consolidating' | 'complete'; } /** * Progress tracker for multi-pass reviews */ export declare class MultiPassProgressTracker { private progress; private updateInterval; private useAnsiEscapes; private completedFiles; /** * Create a new progress tracker * @param totalPasses Total number of passes * @param totalFiles Total number of files * @param options Options for the progress tracker */ constructor(totalPasses?: number, totalFiles?: number, options?: { useAnsiEscapes?: boolean; quiet?: boolean; }); /** * Initialize the progress tracker with a total file count * @param totalFiles Total number of files */ initialize(totalFiles: number): void; /** * Start the progress update interval */ private startProgressUpdates; /** * Stop the progress update interval */ stopProgressUpdates(): void; /** * Update the progress display */ private updateProgressDisplay; /** * Start a new pass * @param passNumber Pass number * @param files Files being processed in this pass */ startPass(passNumber: number, files: string[]): void; /** * Complete a pass * @param passNumber Pass number */ completePass(passNumber: number): void; /** * Set the current phase * @param phase Current phase */ setPhase(phase: MultiPassProgress['currentPhase']): void; /** * Complete the review */ complete(): void; /** * Mark a file as completed * @param filePath Path to the file that was completed */ completeFile(filePath: string): void; /** * Get the current progress * @returns Current progress state */ getProgress(): MultiPassProgress; /** * Get the full state including completed files * @returns Full state object */ getState(): { progressData: MultiPassProgress; completedFiles: string[]; progress: number; completed: boolean; currentPass: number; }; }