UNPKG

sicua

Version:

A tool for analyzing project structure and dependencies

140 lines (139 loc) 4.74 kB
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; }