@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
TypeScript
/**
* @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;
};
}