/** * Impact Analyzer Service * * 提供智能的代码变更影响分析,包括: * - 直接和间接调用者分析 * - 受影响文件列表 * - 相关测试文件发现 * - 风险等级评估 */ import type { QueryService, CodeEntityInfo } from '../domain/query/queryService.js'; export type RiskLevel = 'low' | 'medium' | 'high' | 'critical'; /** * 增强的影响分析结果 */ export interface EnhancedImpactAnalysis { symbol: string; type: 'function' | 'class' | 'interface'; directCallers: CodeEntityInfo[]; indirectCallers: CodeEntityInfo[]; affectedFiles: string[]; testFiles: string[]; testCoverage: number; riskLevel: RiskLevel; riskFactors: string[]; recommendations: string[]; analysisDepth: number; totalCallers: number; } /** * 分析输入 */ export interface AnalyzeImpactInput { projectPath: string; symbol: string; type: 'function' | 'class' | 'interface'; maxDepth?: number; } export interface ImpactAnalyzerDependencies { queryService: QueryService; } export declare class ImpactAnalyzer { private readonly deps; constructor(deps: ImpactAnalyzerDependencies); /** * 分析符号变更的影响 */ analyze(input: AnalyzeImpactInput): Promise; /** * 发现与受影响文件相关的测试文件 */ private findTestFiles; /** * 生成可能的测试文件路径模式 */ private generateTestFilePatterns; /** * 计算测试覆盖率 */ private calculateTestCoverage; /** * 计算风险等级 */ private calculateRiskLevel; /** * 解释风险因素 */ private explainRiskFactors; /** * 生成建议 */ private generateRecommendations; }