sicua
Version:
A tool for analyzing project structure and dependencies
140 lines (139 loc) • 4.74 kB
TypeScript
import ts from "typescript";
import { ProcessingStats, AnalysisOptions, QualityMetrics } from "./types/main.types";
import { ContextualSummariesAnalysisResult, ContextualSummary, ProjectContext } from "./types/contextualSummaries.types";
import { PromptPersonalization } from "./types/summaryBuilder.types";
import { ScanResult } from "../../types";
export declare class ContextualSummariesAnalyzer {
private scanResult;
private srcDir;
private typeChecker?;
private options;
private cache;
private stats;
private summaryBuilder;
constructor(scanResult: ScanResult, srcDir: string, typeChecker?: ts.TypeChecker);
/**
* Main analysis method that orchestrates the entire contextual summaries generation process
*/
analyze(options?: Partial<AnalysisOptions>): Promise<ContextualSummariesAnalysisResult>;
/**
* Analyzes files in parallel or sequential based on configuration
*/
private analyzeFiles;
/**
* Analyzes a single file and generates its contextual summary
*/
private analyzeFile;
/**
* Generates project-level context from all summaries
*/
private generateProjectContext;
/**
* Generates relationships between files
*/
private generateFileRelationships;
/**
* Calculates final analysis statistics
*/
private calculateFinalStatistics;
/**
* Generates reusable prompt templates from analysis
*/
private generatePromptTemplates;
/**
* Creates a prompt template from a group of similar summaries
*/
private createPromptTemplate;
private filterRelevantFiles;
private hasSignificantContent;
private shouldIncludeTestFiles;
private isRelevantFileType;
private createBatches;
private reportProgress;
private estimateCompletion;
private handleFileError;
private handleCriticalError;
private determineSeverity;
private isRecoverableError;
private isCachedAndValid;
private cacheResult;
private updateProcessingStats;
private generateMetadata;
private inferArchitectureType;
private inferProjectType;
private inferProjectStructure;
private identifyModules;
private inferModulePurpose;
private extractModuleDependencies;
private calculateRelationshipStrength;
private deduplicateRelationships;
private calculateAverageComplexity;
private getMostCommonValue;
private getTopValues;
private getCommonWords;
private groupSummariesForTemplates;
private extractCommonStructure;
private findCommonHeaderPattern;
private findCommonKeyPointPatterns;
private findCommonSections;
private findCommonPrefix;
private findCommonSuffix;
private extractPatterns;
private identifyVariableFields;
private buildTemplateString;
private createEmptyResult;
private getDefaultOptions;
private initializeCache;
private initializeStats;
/**
* Public methods for advanced usage
*/
/**
* Generates a single contextual summary for a specific file
*/
analyzeSingleFile(filePath: string, options?: Partial<AnalysisOptions>): Promise<ContextualSummary | null>;
/**
* Regenerates summaries for files that have changed
*/
analyzeChangedFiles(changedFiles: string[], options?: Partial<AnalysisOptions>): Promise<ContextualSummary[]>;
/**
* Updates project context after adding new files
*/
updateProjectContext(existingSummaries: ContextualSummary[], newSummaries: ContextualSummary[]): ProjectContext;
/**
* Generates specialized summaries for specific use cases
*/
generateSpecializedSummaries(filePaths: string[], personalization: PromptPersonalization, options?: Partial<AnalysisOptions>): Promise<ContextualSummary[]>;
/**
* Validates and optimizes existing summaries
*/
optimizeSummaries(summaries: ContextualSummary[], constraints?: {
maxTokens?: number;
targetAudience?: string;
}): ContextualSummary[];
/**
* Generates quality metrics for summaries
*/
calculateQualityMetrics(summaries: ContextualSummary[]): QualityMetrics;
/**
* Exports summaries in various formats
*/
exportSummaries(summaries: ContextualSummary[], format: "json" | "markdown" | "csv" | "xml"): string;
private exportToMarkdown;
private exportToCSV;
private exportToXML;
private escapeXml;
private getPersonalizationForAudience;
/**
* Gets current analysis statistics
*/
getAnalysisStatistics(): ProcessingStats;
/**
* Clears the analysis cache
*/
clearCache(): void;
/**
* Gets cached summaries count
*/
getCacheSize(): number;
}