@entro314labs/ai-changelog-generator
Version:
AI-powered changelog generator with MCP server support - works with most providers, online and local models
83 lines (82 loc) • 2.67 kB
TypeScript
/**
* DiffProcessor - Central utility for intelligent diff compression and processing
*
* Handles large diffs by applying smart reduction strategies while preserving
* semantic meaning for AI analysis.
*/
export declare class DiffProcessor {
[key: string]: any;
constructor(options?: Record<string, any>);
getDefaultMaxSize(): any;
getDefaultPriorityFiles(): any;
/**
* Process a collection of files with diffs, applying intelligent compression
*/
processFiles(files: any, _options?: Record<string, any>): {
processedFiles: any[];
totalSize: number;
patterns: Record<string, any>;
filesProcessed: number;
filesSkipped: number;
};
/**
* Process a single file's diff with intelligent compression
*/
processFileDiff(file: any, options?: Record<string, any>): any;
/**
* Prioritize files by importance for analysis
*/
prioritizeFiles(files: any): any[];
/**
* Calculate file importance score
*/
calculateFileImportance(file: any): number;
/**
* Detect bulk change patterns across files
*/
detectChangePatterns(files: any): Record<string, any>;
/**
* Check if a file matches a bulk pattern
*/
matchesBulkPattern(file: any, patterns: any): any;
/**
* Apply diff filtering to remove noise
*/
applyDiffFiltering(diff: any, _file: any): any;
/**
* Check if a file appears to be mostly formatting changes
*/
isLikelyFormattingChange(file: any): boolean;
/**
* Apply intelligent truncation that preserves structure
*/
intelligentTruncation(diff: any, budget: any, options?: Record<string, any>): any;
/**
* Generate fallback description for files without diffs
*/
generateFallbackDescription(file: any): string;
/**
* Get file type description
*/
getFileTypeDescription(filePath: any): "JSON configuration" | "JavaScript/TypeScript file" | "documentation file" | "file" | "package configuration" | "test file";
/**
* Create summary for remaining files that weren't processed
*/
createRemainingFilesSummary(remainingFiles: any, _patterns: any): {
path: string;
status: string;
diff: string;
processed: boolean;
compressionApplied: boolean;
isSummary: boolean;
};
/**
* Categorize a file for summary purposes
*/
categorizeFile(file: any): "build" | "configuration" | "documentation" | "other" | "test";
/**
* Estimate size of processed content
*/
estimateSize(content: any): any;
}
export default DiffProcessor;