/** * File Modularization Assessor (Issue #104) * Detects large monolithic tool files and recommends modularization * * Checks: * - Single file >1,000 lines (WARNING, MEDIUM severity) * - Single file >2,000 lines (ERROR, HIGH severity) * - Tool file with >10 tools (WARNING, MEDIUM severity) * - Tool file with >20 tools (ERROR, HIGH severity) * - No modular structure (INFO, LOW severity) * * Scoring: * - Starts at 100 points * - -15 per file >2,000 lines * - -8 per file 1,000-2,000 lines * - -12 per file with >20 tools * - -6 per file with 10-20 tools * - -10 for no modular structure * - +5 for tools/ subdirectory * - +3 for multiple tool files (>3) */ import { BaseAssessor } from "./BaseAssessor.js"; import { AssessmentContext } from "../AssessmentOrchestrator.js"; import type { FileModularizationAssessment } from "../../../lib/assessmentTypes.js"; export declare class FileModularizationAssessor extends BaseAssessor { /** * Run file modularization assessment */ assess(context: AssessmentContext): Promise; /** * Create result when source code is not available */ private createSkippedResult; /** * Analyze all source files */ private analyzeFiles; /** * Check if file is a source file worth scanning */ private isSourceFile; /** * Detect language from file extension */ private detectLanguage; /** * Count tool definitions in a file */ private countToolsInFile; /** * Calculate aggregated metrics */ private calculateMetrics; /** * Determine severity for a file */ private determineSeverity; /** * Generate recommendation for a specific file */ private generateFileRecommendation; /** * Check if codebase has modular structure */ private checkModularStructure; /** * Calculate modularization score (0-100) */ private calculateScore; /** * Run threshold checks */ private runChecks; /** * Determine status from checks */ private determineStatusFromChecks; /** * Generate explanation */ private generateExplanation; /** * Generate recommendations */ private generateRecommendations; } //# sourceMappingURL=FileModularizationAssessor.d.ts.map