@git.zone/tsdoc
Version:
A comprehensive TypeScript documentation tool that leverages AI to generate and enhance project documentation, including dynamic README creation, API docs via TypeDoc, and smart commit message generation.
74 lines (73 loc) • 2.52 kB
TypeScript
import type { IFileMetadata, IAnalysisResult, TaskType, IPrioritizationWeights, ITierConfig } from './types.js';
/**
* ContextAnalyzer provides intelligent file selection and prioritization
* based on dependency analysis, task relevance, and configurable weights
*/
export declare class ContextAnalyzer {
private projectRoot;
private weights;
private tiers;
/**
* Creates a new ContextAnalyzer
* @param projectRoot - Root directory of the project
* @param weights - Prioritization weights
* @param tiers - Tier configuration
*/
constructor(projectRoot: string, weights?: Partial<IPrioritizationWeights>, tiers?: Partial<ITierConfig>);
/**
* Analyzes files for a specific task type
* @param metadata - Array of file metadata to analyze
* @param taskType - Type of task being performed
* @param changedFiles - Optional list of recently changed files (for commits)
* @returns Analysis result with scored files
*/
analyze(metadata: IFileMetadata[], taskType: TaskType, changedFiles?: string[]): Promise<IAnalysisResult>;
/**
* Builds a dependency graph from file metadata
* @param metadata - Array of file metadata
* @returns Dependency graph as a map
*/
private buildDependencyGraph;
/**
* Extracts import statements from file contents
* @param contents - File contents
* @param filePath - Path of the file being analyzed
* @returns Array of absolute paths to imported files
*/
private extractImports;
/**
* Calculates centrality scores for all nodes in the dependency graph
* Uses a simplified PageRank-like algorithm
* @param graph - Dependency graph
*/
private calculateCentrality;
/**
* Analyzes a single file
* @param meta - File metadata
* @param taskType - Task being performed
* @param graph - Dependency graph
* @param changedFiles - Recently changed files
* @returns File analysis
*/
private analyzeFile;
/**
* Calculates task-specific relevance score
*/
private calculateRelevance;
/**
* Calculates efficiency score (information density)
*/
private calculateEfficiency;
/**
* Calculates recency score for changed files
*/
private calculateRecency;
/**
* Assigns a tier based on importance score
*/
private assignTier;
/**
* Generates a human-readable reason for the score
*/
private generateReason;
}