UNPKG

agentsqripts

Version:

Comprehensive static code analysis toolkit for identifying technical debt, security vulnerabilities, performance issues, and code quality problems

73 lines (68 loc) 3.47 kB
/** * @file Comprehensive WET code analysis system aggregating all duplication detection capabilities * @description Single responsibility: Provide unified access to complete WET/DRY analysis functionality * * This barrel index consolidates all WET (Write Everything Twice) code analysis functionality * including both traditional and improved AST-based analyzers, utility functions, and * recommendation systems. It serves as the main entry point for code duplication detection, * similarity analysis, and deduplication guidance across the AgentSqripts platform. * * Design rationale: * - Unified interface simplifies WET code analysis integration across tools * - Comprehensive exports enable both basic and advanced duplication detection workflows * - Dual analyzer support (original and improved) provides flexibility for different needs * - Complete utility ecosystem supports custom analysis implementations * - Configuration consolidation ensures consistent analysis behavior * * Analysis capabilities: * - Original analyzer: Fast pattern-based duplication detection for quick assessments * - Improved analyzer: AST-based semantic similarity with 100x performance improvement * - Block extraction: Logical code unit identification for meaningful comparison * - Similarity calculation: Advanced algorithms for duplicate and near-duplicate detection * - Recommendation generation: Actionable guidance for strategic deduplication efforts * * Export organization: * - Core analyzers: Main entry points for file and project analysis * - Utility functions: Building blocks for custom analysis implementations * - Configuration: Shared settings and patterns for consistent behavior * - Grading system: DRY score calculation with intelligent warnings for over-optimization */ // Main analysis functions const { analyzeFileWetCode, analyzeProjectWetCode } = require('./wetCodeAnalyzer'); const { analyzeFileWetCodeImproved, analyzeProjectWetCodeImproved } = require('./improvedWetCodeAnalyzer'); // Individual utilities const { extractLogicalBlocks } = require('./blockExtractor'); const { normalizeLine } = require('./lineNormalizer'); const { calculateSimilarity } = require('./similarityCalculator'); const { calculateBlockComplexity } = require('./complexityCalculator'); const { generateBlockHash } = require('./blockHasher'); const { calculateEstimatedSavings } = require('./savingsCalculator'); const { getDryGrade, getWetGrade } = require('./gradeCalculator'); const { calculateDryScore } = require('./wetScoreCalculator'); const { groupDuplicateBlocks } = require('./duplicateGrouper'); const { groupDuplicateBlocksOptimized } = require('./optimizedDuplicateGrouper'); const { getAllFiles } = require('./fileSystemUtils'); const { generateWetRecommendations, generateProjectWetRecommendations } = require('./recommendationGenerator'); const { VALID_EXTENSIONS, WET_CODE_CONFIG, WET_PATTERNS } = require('./wetCodeConfig'); module.exports = { // Original analyzer analyzeFileWetCode, analyzeProjectWetCode, // Improved AST-based analyzer analyzeFileWetCodeImproved, analyzeProjectWetCodeImproved, // Utilities extractLogicalBlocks, groupDuplicateBlocks, groupDuplicateBlocksOptimized, calculateSimilarity, calculateBlockComplexity, generateWetRecommendations, generateProjectWetRecommendations, getDryGrade, getWetGrade, calculateDryScore, normalizeLine, WET_CODE_CONFIG, WET_PATTERNS };