codereview-aia 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analysis/FindingsExtractor.d.ts +105 -0
- package/dist/analysis/FindingsExtractor.js +363 -0
- package/dist/analysis/FindingsExtractor.js.map +1 -0
- package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +111 -0
- package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +215 -0
- package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +1 -0
- package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +142 -0
- package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +503 -0
- package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +1 -0
- package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +88 -0
- package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +343 -0
- package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +1 -0
- package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +104 -0
- package/dist/analysis/ai-detection/core/AIDetectionEngine.js +369 -0
- package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +1 -0
- package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +364 -0
- package/dist/analysis/ai-detection/types/DetectionTypes.js +32 -0
- package/dist/analysis/ai-detection/types/DetectionTypes.js.map +1 -0
- package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +97 -0
- package/dist/analysis/ai-detection/utils/SubmissionConverter.js +339 -0
- package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +1 -0
- package/dist/analysis/context/ReviewContext.d.ts +184 -0
- package/dist/analysis/context/ReviewContext.js +294 -0
- package/dist/analysis/context/ReviewContext.js.map +1 -0
- package/{src/analysis/context/index.ts → dist/analysis/context/index.d.ts} +0 -1
- package/dist/analysis/context/index.js +23 -0
- package/dist/analysis/context/index.js.map +1 -0
- package/{src/analysis/index.ts → dist/analysis/index.d.ts} +0 -1
- package/dist/analysis/index.js +24 -0
- package/dist/analysis/index.js.map +1 -0
- package/dist/analysis/static/wpPhpcsRunner.d.ts +11 -0
- package/dist/analysis/static/wpPhpcsRunner.js +219 -0
- package/dist/analysis/static/wpPhpcsRunner.js.map +1 -0
- package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +27 -0
- package/{src/analysis/tokens/TokenAnalysisFormatter.ts → dist/analysis/tokens/TokenAnalysisFormatter.js} +64 -75
- package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +1 -0
- package/dist/analysis/tokens/TokenAnalyzer.d.ts +155 -0
- package/dist/analysis/tokens/TokenAnalyzer.js +502 -0
- package/dist/analysis/tokens/TokenAnalyzer.js.map +1 -0
- package/{src/analysis/tokens/index.ts → dist/analysis/tokens/index.d.ts} +0 -1
- package/dist/analysis/tokens/index.js +24 -0
- package/dist/analysis/tokens/index.js.map +1 -0
- package/dist/clients/base/abstractClient.d.ts +99 -0
- package/dist/clients/base/abstractClient.js +98 -0
- package/dist/clients/base/abstractClient.js.map +1 -0
- package/dist/clients/base/httpClient.d.ts +24 -0
- package/dist/clients/base/httpClient.js +147 -0
- package/dist/clients/base/httpClient.js.map +1 -0
- package/{src/clients/base/index.ts → dist/clients/base/index.d.ts} +0 -1
- package/dist/clients/base/index.js +28 -0
- package/dist/clients/base/index.js.map +1 -0
- package/dist/clients/base/modelDetection.d.ts +41 -0
- package/dist/clients/base/modelDetection.js +88 -0
- package/dist/clients/base/modelDetection.js.map +1 -0
- package/dist/clients/base/responseProcessor.d.ts +45 -0
- package/dist/clients/base/responseProcessor.js +495 -0
- package/dist/clients/base/responseProcessor.js.map +1 -0
- package/dist/clients/factory/clientFactory.d.ts +23 -0
- package/dist/clients/factory/clientFactory.js +50 -0
- package/dist/clients/factory/clientFactory.js.map +1 -0
- package/{src/clients/factory/index.ts → dist/clients/factory/index.d.ts} +0 -1
- package/dist/clients/factory/index.js +24 -0
- package/dist/clients/factory/index.js.map +1 -0
- package/{src/clients/implementations/index.ts → dist/clients/implementations/index.d.ts} +0 -1
- package/dist/clients/implementations/index.js +24 -0
- package/dist/clients/implementations/index.js.map +1 -0
- package/dist/clients/implementations/openRouterClient.d.ts +69 -0
- package/dist/clients/implementations/openRouterClient.js +294 -0
- package/dist/clients/implementations/openRouterClient.js.map +1 -0
- package/dist/clients/openRouterClient.d.ts +42 -0
- package/dist/clients/openRouterClient.js +738 -0
- package/dist/clients/openRouterClient.js.map +1 -0
- package/{src/clients/openRouterClientWrapper.ts → dist/clients/openRouterClientWrapper.d.ts} +2 -24
- package/dist/clients/openRouterClientWrapper.js +64 -0
- package/dist/clients/openRouterClientWrapper.js.map +1 -0
- package/dist/clients/utils/directoryStructure.d.ts +14 -0
- package/dist/clients/utils/directoryStructure.js +48 -0
- package/dist/clients/utils/directoryStructure.js.map +1 -0
- package/{src/clients/utils/index.ts → dist/clients/utils/index.d.ts} +0 -1
- package/dist/clients/utils/index.js +31 -0
- package/dist/clients/utils/index.js.map +1 -0
- package/dist/clients/utils/languageDetection.d.ts +13 -0
- package/dist/clients/utils/languageDetection.js +46 -0
- package/dist/clients/utils/languageDetection.js.map +1 -0
- package/dist/clients/utils/promptFormatter.d.ts +37 -0
- package/dist/clients/utils/promptFormatter.js +150 -0
- package/dist/clients/utils/promptFormatter.js.map +1 -0
- package/{src/clients/utils/promptLoader.ts → dist/clients/utils/promptLoader.d.ts} +1 -27
- package/dist/clients/utils/promptLoader.js +49 -0
- package/dist/clients/utils/promptLoader.js.map +1 -0
- package/dist/clients/utils/tokenCounter.d.ts +81 -0
- package/dist/clients/utils/tokenCounter.js +209 -0
- package/dist/clients/utils/tokenCounter.js.map +1 -0
- package/dist/core/ApiClientSelector.d.ts +8 -0
- package/dist/core/ApiClientSelector.js +29 -0
- package/dist/core/ApiClientSelector.js.map +1 -0
- package/dist/core/ConfigurationService.d.ts +307 -0
- package/dist/core/ConfigurationService.js +516 -0
- package/dist/core/ConfigurationService.js.map +1 -0
- package/dist/core/ConsolidationService.d.ts +99 -0
- package/dist/core/ConsolidationService.js +341 -0
- package/dist/core/ConsolidationService.js.map +1 -0
- package/dist/core/InteractiveDisplayManager.d.ts +22 -0
- package/dist/core/InteractiveDisplayManager.js +70 -0
- package/dist/core/InteractiveDisplayManager.js.map +1 -0
- package/dist/core/OutputManager.d.ts +26 -0
- package/dist/core/OutputManager.js +217 -0
- package/dist/core/OutputManager.js.map +1 -0
- package/dist/core/ReviewGenerator.d.ts +13 -0
- package/dist/core/ReviewGenerator.js +102 -0
- package/dist/core/ReviewGenerator.js.map +1 -0
- package/dist/core/fileDiscovery.d.ts +35 -0
- package/dist/core/fileDiscovery.js +202 -0
- package/dist/core/fileDiscovery.js.map +1 -0
- package/dist/core/handlers/EstimationHandler.d.ts +18 -0
- package/dist/core/handlers/EstimationHandler.js +110 -0
- package/dist/core/handlers/EstimationHandler.js.map +1 -0
- package/dist/core/handlers/FileProcessingHandler.d.ts +31 -0
- package/dist/core/handlers/FileProcessingHandler.js +164 -0
- package/dist/core/handlers/FileProcessingHandler.js.map +1 -0
- package/dist/core/handlers/OutputHandler.d.ts +27 -0
- package/dist/core/handlers/OutputHandler.js +127 -0
- package/dist/core/handlers/OutputHandler.js.map +1 -0
- package/dist/core/handlers/ReviewExecutor.d.ts +32 -0
- package/dist/core/handlers/ReviewExecutor.js +111 -0
- package/dist/core/handlers/ReviewExecutor.js.map +1 -0
- package/dist/core/reviewOrchestrator.d.ts +24 -0
- package/dist/core/reviewOrchestrator.js +354 -0
- package/dist/core/reviewOrchestrator.js.map +1 -0
- package/dist/core/utils/ModelInfoUtils.d.ts +16 -0
- package/dist/core/utils/ModelInfoUtils.js +54 -0
- package/dist/core/utils/ModelInfoUtils.js.map +1 -0
- package/{src/formatters/outputFormatter.ts → dist/formatters/outputFormatter.d.ts} +2 -33
- package/dist/formatters/outputFormatter.js +65 -0
- package/dist/formatters/outputFormatter.js.map +1 -0
- package/dist/formatters/utils/IssueFormatters.d.ts +20 -0
- package/dist/formatters/utils/IssueFormatters.js +67 -0
- package/dist/formatters/utils/IssueFormatters.js.map +1 -0
- package/dist/formatters/utils/JsonFormatter.d.ts +13 -0
- package/dist/formatters/utils/JsonFormatter.js +57 -0
- package/dist/formatters/utils/JsonFormatter.js.map +1 -0
- package/dist/formatters/utils/MarkdownFormatters.d.ts +51 -0
- package/dist/formatters/utils/MarkdownFormatters.js +456 -0
- package/dist/formatters/utils/MarkdownFormatters.js.map +1 -0
- package/dist/formatters/utils/MetadataFormatter.d.ts +65 -0
- package/dist/formatters/utils/MetadataFormatter.js +219 -0
- package/dist/formatters/utils/MetadataFormatter.js.map +1 -0
- package/dist/formatters/utils/ModelInfoExtractor.d.ts +33 -0
- package/dist/formatters/utils/ModelInfoExtractor.js +111 -0
- package/dist/formatters/utils/ModelInfoExtractor.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/PluginInterface.d.ts +44 -0
- package/dist/plugins/PluginInterface.js +9 -0
- package/dist/plugins/PluginInterface.js.map +1 -0
- package/dist/plugins/PluginManager.d.ts +51 -0
- package/dist/plugins/PluginManager.js +151 -0
- package/dist/plugins/PluginManager.js.map +1 -0
- package/dist/prompts/PromptManager.d.ts +30 -0
- package/dist/prompts/PromptManager.js +62 -0
- package/dist/prompts/PromptManager.js.map +1 -0
- package/dist/prompts/cache/PromptCache.d.ts +32 -0
- package/dist/prompts/cache/PromptCache.js +48 -0
- package/dist/prompts/cache/PromptCache.js.map +1 -0
- package/dist/runtime/auth/service.d.ts +2 -0
- package/dist/runtime/auth/service.js +41 -0
- package/dist/runtime/auth/service.js.map +1 -0
- package/dist/runtime/auth/session.d.ts +5 -0
- package/dist/runtime/auth/session.js +87 -0
- package/dist/runtime/auth/session.js.map +1 -0
- package/dist/runtime/auth/types.d.ts +9 -0
- package/dist/runtime/auth/types.js +3 -0
- package/dist/runtime/auth/types.js.map +1 -0
- package/dist/runtime/cliEntry.d.ts +1 -0
- package/dist/runtime/cliEntry.js +266 -0
- package/dist/runtime/cliEntry.js.map +1 -0
- package/dist/runtime/debug/logManager.d.ts +5 -0
- package/dist/runtime/debug/logManager.js +31 -0
- package/dist/runtime/debug/logManager.js.map +1 -0
- package/dist/runtime/errors.d.ts +5 -0
- package/dist/runtime/errors.js +15 -0
- package/dist/runtime/errors.js.map +1 -0
- package/dist/runtime/fileCollector.d.ts +14 -0
- package/dist/runtime/fileCollector.js +382 -0
- package/dist/runtime/fileCollector.js.map +1 -0
- package/dist/runtime/manifest.d.ts +1 -0
- package/dist/runtime/manifest.js +65 -0
- package/dist/runtime/manifest.js.map +1 -0
- package/dist/runtime/openrouterProxy.d.ts +4 -0
- package/dist/runtime/openrouterProxy.js +43 -0
- package/dist/runtime/openrouterProxy.js.map +1 -0
- package/dist/runtime/preprod/webCheck.d.ts +1 -0
- package/dist/runtime/preprod/webCheck.js +98 -0
- package/dist/runtime/preprod/webCheck.js.map +1 -0
- package/dist/runtime/proxyConfig.d.ts +6 -0
- package/dist/runtime/proxyConfig.js +86 -0
- package/dist/runtime/proxyConfig.js.map +1 -0
- package/dist/runtime/proxyEnvironment.d.ts +3 -0
- package/dist/runtime/proxyEnvironment.js +63 -0
- package/dist/runtime/proxyEnvironment.js.map +1 -0
- package/dist/runtime/reportMerge.d.ts +30 -0
- package/dist/runtime/reportMerge.js +70 -0
- package/dist/runtime/reportMerge.js.map +1 -0
- package/dist/runtime/reporting/markdownReportBuilder.d.ts +17 -0
- package/dist/runtime/reporting/markdownReportBuilder.js +154 -0
- package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
- package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
- package/dist/runtime/reporting/reportDataCollector.js +170 -0
- package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
- package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
- package/dist/runtime/reporting/summaryGenerator.js +67 -0
- package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
- package/dist/runtime/reviewPipeline.d.ts +47 -0
- package/dist/runtime/reviewPipeline.js +161 -0
- package/dist/runtime/reviewPipeline.js.map +1 -0
- package/dist/runtime/runAiCodeReview.d.ts +28 -0
- package/dist/runtime/runAiCodeReview.js +373 -0
- package/dist/runtime/runAiCodeReview.js.map +1 -0
- package/dist/runtime/runtimeConfig.d.ts +4 -0
- package/dist/runtime/runtimeConfig.js +7 -0
- package/dist/runtime/runtimeConfig.js.map +1 -0
- package/dist/runtime/ui/Layout.d.ts +11 -0
- package/dist/runtime/ui/Layout.js +47 -0
- package/dist/runtime/ui/Layout.js.map +1 -0
- package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
- package/dist/runtime/ui/RuntimeApp.js +172 -0
- package/dist/runtime/ui/RuntimeApp.js.map +1 -0
- package/dist/runtime/ui/inkModules.d.ts +10 -0
- package/dist/runtime/ui/inkModules.js +63 -0
- package/dist/runtime/ui/inkModules.js.map +1 -0
- package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
- package/dist/runtime/ui/screens/AuthScreen.js +67 -0
- package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
- package/dist/runtime/ui/screens/ModeSelection.d.ts +10 -0
- package/dist/runtime/ui/screens/ModeSelection.js +100 -0
- package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
- package/dist/runtime/ui/screens/ProgressScreen.d.ts +12 -0
- package/dist/runtime/ui/screens/ProgressScreen.js +64 -0
- package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
- package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
- package/dist/runtime/ui/screens/ResultsScreen.js +29 -0
- package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
- package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
- package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
- package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
- package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
- package/dist/strategies/CodingTestReviewStrategy.js +681 -0
- package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
- package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
- package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
- package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
- package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
- package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
- package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
- package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
- package/dist/strategies/MultiPassReviewStrategy.js +590 -0
- package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
- package/dist/strategies/ReviewStrategy.d.ts +45 -0
- package/dist/strategies/ReviewStrategy.js +24 -0
- package/dist/strategies/ReviewStrategy.js.map +1 -0
- package/dist/strategies/StrategyFactory.d.ts +19 -0
- package/dist/strategies/StrategyFactory.js +72 -0
- package/dist/strategies/StrategyFactory.js.map +1 -0
- package/{src/strategies/index.ts → dist/strategies/index.d.ts} +0 -1
- package/dist/strategies/index.js +30 -0
- package/dist/strategies/index.js.map +1 -0
- package/dist/tokenizers/baseTokenizer.d.ts +25 -0
- package/dist/tokenizers/baseTokenizer.js +48 -0
- package/dist/tokenizers/baseTokenizer.js.map +1 -0
- package/dist/tokenizers/gptTokenizer.d.ts +7 -0
- package/dist/tokenizers/gptTokenizer.js +28 -0
- package/dist/tokenizers/gptTokenizer.js.map +1 -0
- package/{src/tokenizers/index.ts → dist/tokenizers/index.d.ts} +0 -1
- package/dist/tokenizers/index.js +24 -0
- package/dist/tokenizers/index.js.map +1 -0
- package/dist/types/apiResponses.d.ts +39 -0
- package/dist/types/apiResponses.js +9 -0
- package/dist/types/apiResponses.js.map +1 -0
- package/dist/types/cli.d.ts +22 -0
- package/dist/types/cli.js +3 -0
- package/dist/types/cli.js.map +1 -0
- package/{src/types/common.ts → dist/types/common.d.ts} +2 -19
- package/dist/types/common.js +14 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/configuration.d.ts +682 -0
- package/dist/types/configuration.js +65 -0
- package/dist/types/configuration.js.map +1 -0
- package/dist/types/review.d.ts +318 -0
- package/dist/types/review.js +8 -0
- package/dist/types/review.js.map +1 -0
- package/dist/types/reviewSchema.d.ts +543 -0
- package/{src/types/reviewSchema.ts → dist/types/reviewSchema.js} +44 -104
- package/dist/types/reviewSchema.js.map +1 -0
- package/dist/types/structuredReview.d.ts +119 -0
- package/dist/types/structuredReview.js +6 -0
- package/dist/types/structuredReview.js.map +1 -0
- package/dist/types/tokenAnalysis.d.ts +44 -0
- package/dist/types/tokenAnalysis.js +4 -0
- package/dist/types/tokenAnalysis.js.map +1 -0
- package/dist/utils/FileReader.d.ts +33 -0
- package/dist/utils/FileReader.js +88 -0
- package/dist/utils/FileReader.js.map +1 -0
- package/dist/utils/FileWriter.d.ts +26 -0
- package/dist/utils/FileWriter.js +76 -0
- package/dist/utils/FileWriter.js.map +1 -0
- package/dist/utils/PathGenerator.d.ts +30 -0
- package/dist/utils/PathGenerator.js +82 -0
- package/dist/utils/PathGenerator.js.map +1 -0
- package/dist/utils/api/apiUtils.d.ts +3 -0
- package/dist/utils/api/apiUtils.js +20 -0
- package/dist/utils/api/apiUtils.js.map +1 -0
- package/dist/utils/api/index.js +18 -0
- package/dist/utils/api/index.js.map +1 -0
- package/dist/utils/apiErrorHandler.d.ts +130 -0
- package/dist/utils/apiErrorHandler.js +256 -0
- package/dist/utils/apiErrorHandler.js.map +1 -0
- package/dist/utils/ciDataCollector.d.ts +51 -0
- package/dist/utils/ciDataCollector.js +197 -0
- package/dist/utils/ciDataCollector.js.map +1 -0
- package/dist/utils/codingTestConfigLoader.d.ts +66 -0
- package/dist/utils/codingTestConfigLoader.js +420 -0
- package/dist/utils/codingTestConfigLoader.js.map +1 -0
- package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
- package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
- package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
- package/dist/utils/detection/frameworkDetector.d.ts +43 -0
- package/dist/utils/detection/frameworkDetector.js +850 -0
- package/dist/utils/detection/frameworkDetector.js.map +1 -0
- package/{src/utils/detection/index.ts → dist/utils/detection/index.d.ts} +0 -1
- package/dist/utils/detection/index.js +28 -0
- package/dist/utils/detection/index.js.map +1 -0
- package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
- package/dist/utils/detection/projectTypeDetector.js +469 -0
- package/dist/utils/detection/projectTypeDetector.js.map +1 -0
- package/dist/utils/diagramGenerator.d.ts +49 -0
- package/dist/utils/diagramGenerator.js +218 -0
- package/dist/utils/diagramGenerator.js.map +1 -0
- package/dist/utils/errorLogger.d.ts +24 -0
- package/dist/utils/errorLogger.js +59 -0
- package/dist/utils/errorLogger.js.map +1 -0
- package/dist/utils/estimationUtils.d.ts +139 -0
- package/dist/utils/estimationUtils.js +329 -0
- package/dist/utils/estimationUtils.js.map +1 -0
- package/dist/utils/fileFilters.d.ts +72 -0
- package/dist/utils/fileFilters.js +338 -0
- package/dist/utils/fileFilters.js.map +1 -0
- package/dist/utils/fileSystem.d.ts +22 -0
- package/dist/utils/fileSystem.js +45 -0
- package/dist/utils/fileSystem.js.map +1 -0
- package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -14
- package/dist/utils/index.js +52 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +77 -0
- package/dist/utils/logger.js +271 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/pathValidator.d.ts +40 -0
- package/dist/utils/pathValidator.js +98 -0
- package/dist/utils/pathValidator.js.map +1 -0
- package/{src/utils/priorityFilter.ts → dist/utils/priorityFilter.d.ts} +1 -26
- package/dist/utils/priorityFilter.js +54 -0
- package/dist/utils/priorityFilter.js.map +1 -0
- package/dist/utils/projectDocs.d.ts +47 -0
- package/dist/utils/projectDocs.js +158 -0
- package/dist/utils/projectDocs.js.map +1 -0
- package/dist/utils/promptPaths.d.ts +6 -0
- package/dist/utils/promptPaths.js +33 -0
- package/dist/utils/promptPaths.js.map +1 -0
- package/dist/utils/promptTemplateManager.d.ts +34 -0
- package/dist/utils/promptTemplateManager.js +141 -0
- package/dist/utils/promptTemplateManager.js.map +1 -0
- package/dist/utils/review/consolidateReview.d.ts +15 -0
- package/dist/utils/review/consolidateReview.js +481 -0
- package/dist/utils/review/consolidateReview.js.map +1 -0
- package/dist/utils/review/fixDisplay.d.ts +20 -0
- package/dist/utils/review/fixDisplay.js +84 -0
- package/dist/utils/review/fixDisplay.js.map +1 -0
- package/dist/utils/review/fixImplementation.d.ts +28 -0
- package/dist/utils/review/fixImplementation.js +60 -0
- package/dist/utils/review/fixImplementation.js.map +1 -0
- package/dist/utils/review/index.d.ts +13 -0
- package/dist/utils/review/index.js +50 -0
- package/dist/utils/review/index.js.map +1 -0
- package/dist/utils/review/interactiveProcessing.d.ts +25 -0
- package/dist/utils/review/interactiveProcessing.js +251 -0
- package/dist/utils/review/interactiveProcessing.js.map +1 -0
- package/dist/utils/review/progressTracker.d.ts +106 -0
- package/dist/utils/review/progressTracker.js +227 -0
- package/dist/utils/review/progressTracker.js.map +1 -0
- package/dist/utils/review/reviewExtraction.d.ts +31 -0
- package/dist/utils/review/reviewExtraction.js +324 -0
- package/dist/utils/review/reviewExtraction.js.map +1 -0
- package/dist/utils/review/types.d.ts +45 -0
- package/dist/utils/review/types.js +18 -0
- package/dist/utils/review/types.js.map +1 -0
- package/{src/utils/reviewActionHandler.ts → dist/utils/reviewActionHandler.d.ts} +0 -2
- package/dist/utils/reviewActionHandler.js +34 -0
- package/dist/utils/reviewActionHandler.js.map +1 -0
- package/dist/utils/reviewParser.d.ts +34 -0
- package/dist/utils/reviewParser.js +218 -0
- package/dist/utils/reviewParser.js.map +1 -0
- package/dist/utils/sanitizer.d.ts +82 -0
- package/dist/utils/sanitizer.js +239 -0
- package/dist/utils/sanitizer.js.map +1 -0
- package/dist/utils/smartFileSelector.d.ts +50 -0
- package/dist/utils/smartFileSelector.js +261 -0
- package/dist/utils/smartFileSelector.js.map +1 -0
- package/dist/utils/templateLoader.d.ts +44 -0
- package/dist/utils/templateLoader.js +431 -0
- package/dist/utils/templateLoader.js.map +1 -0
- package/dist/utils/treeGenerator.d.ts +12 -0
- package/dist/utils/treeGenerator.js +133 -0
- package/dist/utils/treeGenerator.js.map +1 -0
- package/package.json +5 -2
- package/.cr-aia.yml +0 -23
- package/.crignore +0 -0
- package/docs/opt-in-full-context.md +0 -27
- package/reports/cr-cr-aia-17-11-2025-20-13.md +0 -354
- package/src/analysis/FindingsExtractor.ts +0 -431
- package/src/analysis/ai-detection/analyzers/BaseAnalyzer.ts +0 -267
- package/src/analysis/ai-detection/analyzers/DocumentationAnalyzer.ts +0 -622
- package/src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts +0 -430
- package/src/analysis/ai-detection/core/AIDetectionEngine.ts +0 -467
- package/src/analysis/ai-detection/types/DetectionTypes.ts +0 -406
- package/src/analysis/ai-detection/utils/SubmissionConverter.ts +0 -390
- package/src/analysis/context/ReviewContext.ts +0 -378
- package/src/analysis/tokens/TokenAnalyzer.ts +0 -747
- package/src/clients/base/abstractClient.ts +0 -190
- package/src/clients/base/httpClient.ts +0 -160
- package/src/clients/base/modelDetection.ts +0 -107
- package/src/clients/base/responseProcessor.ts +0 -586
- package/src/clients/factory/clientFactory.ts +0 -55
- package/src/clients/implementations/openRouterClient.ts +0 -413
- package/src/clients/openRouterClient.ts +0 -870
- package/src/clients/utils/directoryStructure.ts +0 -52
- package/src/clients/utils/languageDetection.ts +0 -44
- package/src/clients/utils/promptFormatter.ts +0 -182
- package/src/clients/utils/tokenCounter.ts +0 -297
- package/src/core/ApiClientSelector.ts +0 -37
- package/src/core/ConfigurationService.ts +0 -591
- package/src/core/ConsolidationService.ts +0 -423
- package/src/core/InteractiveDisplayManager.ts +0 -81
- package/src/core/OutputManager.ts +0 -275
- package/src/core/ReviewGenerator.ts +0 -140
- package/src/core/fileDiscovery.ts +0 -237
- package/src/core/handlers/EstimationHandler.ts +0 -104
- package/src/core/handlers/FileProcessingHandler.ts +0 -210
- package/src/core/handlers/OutputHandler.ts +0 -125
- package/src/core/handlers/ReviewExecutor.ts +0 -104
- package/src/core/reviewOrchestrator.ts +0 -333
- package/src/core/utils/ModelInfoUtils.ts +0 -56
- package/src/formatters/utils/IssueFormatters.ts +0 -83
- package/src/formatters/utils/JsonFormatter.ts +0 -77
- package/src/formatters/utils/MarkdownFormatters.ts +0 -609
- package/src/formatters/utils/MetadataFormatter.ts +0 -269
- package/src/formatters/utils/ModelInfoExtractor.ts +0 -115
- package/src/index.ts +0 -25
- package/src/plugins/PluginInterface.ts +0 -50
- package/src/plugins/PluginManager.ts +0 -126
- package/src/prompts/PromptManager.ts +0 -69
- package/src/prompts/cache/PromptCache.ts +0 -50
- package/src/prompts/promptText/common/variables/css-frameworks.json +0 -33
- package/src/prompts/promptText/common/variables/framework-versions.json +0 -45
- package/src/prompts/promptText/frameworks/react/comprehensive.hbs +0 -19
- package/src/prompts/promptText/languages/css/comprehensive.hbs +0 -18
- package/src/prompts/promptText/languages/generic/comprehensive.hbs +0 -20
- package/src/prompts/promptText/languages/html/comprehensive.hbs +0 -18
- package/src/prompts/promptText/languages/javascript/comprehensive.hbs +0 -18
- package/src/prompts/promptText/languages/python/comprehensive.hbs +0 -18
- package/src/prompts/promptText/languages/typescript/comprehensive.hbs +0 -18
- package/src/runtime/auth/service.ts +0 -58
- package/src/runtime/auth/session.ts +0 -103
- package/src/runtime/auth/types.ts +0 -11
- package/src/runtime/cliEntry.ts +0 -214
- package/src/runtime/debug/logManager.ts +0 -37
- package/src/runtime/errors.ts +0 -13
- package/src/runtime/fileCollector.ts +0 -495
- package/src/runtime/manifest.ts +0 -64
- package/src/runtime/openrouterProxy.ts +0 -45
- package/src/runtime/preprod/webCheck.ts +0 -104
- package/src/runtime/proxyConfig.ts +0 -94
- package/src/runtime/proxyEnvironment.ts +0 -71
- package/src/runtime/reportMerge.ts +0 -102
- package/src/runtime/reporting/markdownReportBuilder.ts +0 -138
- package/src/runtime/reporting/reportDataCollector.ts +0 -234
- package/src/runtime/reporting/summaryGenerator.ts +0 -86
- package/src/runtime/reviewPipeline.ts +0 -200
- package/src/runtime/runAiCodeReview.ts +0 -308
- package/src/runtime/runtimeConfig.ts +0 -5
- package/src/runtime/ui/Layout.tsx +0 -57
- package/src/runtime/ui/RuntimeApp.tsx +0 -262
- package/src/runtime/ui/inkModules.ts +0 -73
- package/src/runtime/ui/screens/AuthScreen.tsx +0 -128
- package/src/runtime/ui/screens/ModeSelection.tsx +0 -185
- package/src/runtime/ui/screens/ProgressScreen.tsx +0 -110
- package/src/runtime/ui/screens/ResultsScreen.tsx +0 -103
- package/src/strategies/ArchitecturalReviewStrategy.ts +0 -54
- package/src/strategies/CodingTestReviewStrategy.ts +0 -920
- package/src/strategies/ConsolidatedReviewStrategy.ts +0 -59
- package/src/strategies/ExtractPatternsReviewStrategy.ts +0 -64
- package/src/strategies/MultiPassReviewStrategy.ts +0 -785
- package/src/strategies/ReviewStrategy.ts +0 -64
- package/src/strategies/StrategyFactory.ts +0 -79
- package/src/tokenizers/baseTokenizer.ts +0 -61
- package/src/tokenizers/gptTokenizer.ts +0 -27
- package/src/types/apiResponses.ts +0 -40
- package/src/types/cli.ts +0 -24
- package/src/types/configuration.ts +0 -201
- package/src/types/handlebars.d.ts +0 -5
- package/src/types/patch.d.ts +0 -25
- package/src/types/review.ts +0 -312
- package/src/types/reviewContext.d.ts +0 -65
- package/src/types/structuredReview.ts +0 -167
- package/src/types/tokenAnalysis.ts +0 -56
- package/src/utils/FileReader.ts +0 -93
- package/src/utils/FileWriter.ts +0 -76
- package/src/utils/PathGenerator.ts +0 -97
- package/src/utils/api/apiUtils.ts +0 -14
- package/src/utils/apiErrorHandler.ts +0 -287
- package/src/utils/ciDataCollector.ts +0 -252
- package/src/utils/codingTestConfigLoader.ts +0 -466
- package/src/utils/dependencies/aiDependencyAnalyzer.ts +0 -454
- package/src/utils/detection/frameworkDetector.ts +0 -879
- package/src/utils/detection/projectTypeDetector.ts +0 -518
- package/src/utils/diagramGenerator.ts +0 -206
- package/src/utils/errorLogger.ts +0 -60
- package/src/utils/estimationUtils.ts +0 -407
- package/src/utils/fileFilters.ts +0 -373
- package/src/utils/fileSystem.ts +0 -57
- package/src/utils/logger.ts +0 -290
- package/src/utils/pathValidator.ts +0 -98
- package/src/utils/projectDocs.ts +0 -189
- package/src/utils/promptPaths.ts +0 -29
- package/src/utils/promptTemplateManager.ts +0 -157
- package/src/utils/review/consolidateReview.ts +0 -553
- package/src/utils/review/fixDisplay.ts +0 -100
- package/src/utils/review/fixImplementation.ts +0 -61
- package/src/utils/review/index.ts +0 -36
- package/src/utils/review/interactiveProcessing.ts +0 -294
- package/src/utils/review/progressTracker.ts +0 -296
- package/src/utils/review/reviewExtraction.ts +0 -382
- package/src/utils/review/types.ts +0 -46
- package/src/utils/reviewParser.ts +0 -253
- package/src/utils/sanitizer.ts +0 -238
- package/src/utils/smartFileSelector.ts +0 -255
- package/src/utils/templateLoader.ts +0 -514
- package/src/utils/treeGenerator.ts +0 -153
- package/tsconfig.build.json +0 -14
- package/tsconfig.json +0 -59
- /package/{src/utils/api/index.ts → dist/utils/api/index.d.ts} +0 -0
|
@@ -0,0 +1,294 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Review context for maintaining state between review passes.
|
|
4
|
+
*
|
|
5
|
+
* This module provides a class for maintaining context between multiple review passes.
|
|
6
|
+
* It stores information about the review, including file metadata, important code elements,
|
|
7
|
+
* and findings from previous passes.
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.ReviewContext = exports.CodeElementType = void 0;
|
|
11
|
+
/**
|
|
12
|
+
* Type of code element tracked in the context
|
|
13
|
+
*/
|
|
14
|
+
var CodeElementType;
|
|
15
|
+
(function (CodeElementType) {
|
|
16
|
+
CodeElementType["Function"] = "function";
|
|
17
|
+
CodeElementType["Class"] = "class";
|
|
18
|
+
CodeElementType["Interface"] = "interface";
|
|
19
|
+
CodeElementType["Variable"] = "variable";
|
|
20
|
+
CodeElementType["Import"] = "import";
|
|
21
|
+
CodeElementType["ExportedItem"] = "exported";
|
|
22
|
+
CodeElementType["Component"] = "component";
|
|
23
|
+
CodeElementType["EntryPoint"] = "entryPoint";
|
|
24
|
+
})(CodeElementType || (exports.CodeElementType = CodeElementType = {}));
|
|
25
|
+
/**
|
|
26
|
+
* Context for multi-pass reviews
|
|
27
|
+
*/
|
|
28
|
+
class ReviewContext {
|
|
29
|
+
/** Project name */
|
|
30
|
+
projectName;
|
|
31
|
+
/** Review type */
|
|
32
|
+
reviewType;
|
|
33
|
+
/** All files involved in the review */
|
|
34
|
+
allFiles;
|
|
35
|
+
/** Current pass number */
|
|
36
|
+
currentPass;
|
|
37
|
+
/** Important code elements tracked across passes */
|
|
38
|
+
codeElements;
|
|
39
|
+
/** Findings from previous passes */
|
|
40
|
+
findings;
|
|
41
|
+
/** File summaries from previous passes */
|
|
42
|
+
fileSummaries;
|
|
43
|
+
/** General notes about the codebase */
|
|
44
|
+
generalNotes;
|
|
45
|
+
/** Timestamp when context was created */
|
|
46
|
+
createdAt;
|
|
47
|
+
/** Timestamp of last update */
|
|
48
|
+
updatedAt;
|
|
49
|
+
/**
|
|
50
|
+
* Create a new review context
|
|
51
|
+
* @param projectName Name of the project
|
|
52
|
+
* @param reviewType Type of review
|
|
53
|
+
* @param files Files involved in the review
|
|
54
|
+
*/
|
|
55
|
+
constructor(projectName, reviewType, files) {
|
|
56
|
+
this.projectName = projectName;
|
|
57
|
+
this.reviewType = reviewType;
|
|
58
|
+
this.allFiles = files.map((f) => f.path);
|
|
59
|
+
this.currentPass = 0;
|
|
60
|
+
this.codeElements = new Map();
|
|
61
|
+
this.findings = [];
|
|
62
|
+
this.fileSummaries = new Map();
|
|
63
|
+
this.generalNotes = [];
|
|
64
|
+
this.createdAt = new Date();
|
|
65
|
+
this.updatedAt = new Date();
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Start a new review pass
|
|
69
|
+
* @returns Updated pass number
|
|
70
|
+
*/
|
|
71
|
+
startPass() {
|
|
72
|
+
this.currentPass++;
|
|
73
|
+
this.updatedAt = new Date();
|
|
74
|
+
return this.currentPass;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Get the current pass number
|
|
78
|
+
* @returns Current pass number
|
|
79
|
+
*/
|
|
80
|
+
getCurrentPass() {
|
|
81
|
+
return this.currentPass;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Add a code element to the context
|
|
85
|
+
* @param element Code element to add
|
|
86
|
+
*/
|
|
87
|
+
addCodeElement(element) {
|
|
88
|
+
const key = `${element.type}:${element.file}:${element.name}`;
|
|
89
|
+
this.codeElements.set(key, element);
|
|
90
|
+
this.updatedAt = new Date();
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Get all tracked code elements
|
|
94
|
+
* @returns Array of code elements
|
|
95
|
+
*/
|
|
96
|
+
getCodeElements() {
|
|
97
|
+
return Array.from(this.codeElements.values());
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Get code elements of a specific type
|
|
101
|
+
* @param type Type of code elements to get
|
|
102
|
+
* @returns Array of code elements of the specified type
|
|
103
|
+
*/
|
|
104
|
+
getCodeElementsByType(type) {
|
|
105
|
+
return this.getCodeElements().filter((el) => el.type === type);
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Get code elements in a specific file
|
|
109
|
+
* @param filePath Path of the file
|
|
110
|
+
* @returns Array of code elements in the file
|
|
111
|
+
*/
|
|
112
|
+
getCodeElementsInFile(filePath) {
|
|
113
|
+
return this.getCodeElements().filter((el) => el.file === filePath);
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Add a review finding
|
|
117
|
+
* @param finding Review finding to add
|
|
118
|
+
*/
|
|
119
|
+
addFinding(finding) {
|
|
120
|
+
this.findings.push({
|
|
121
|
+
...finding,
|
|
122
|
+
passNumber: this.currentPass,
|
|
123
|
+
});
|
|
124
|
+
this.updatedAt = new Date();
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Get all findings
|
|
128
|
+
* @returns Array of all findings
|
|
129
|
+
*/
|
|
130
|
+
getFindings() {
|
|
131
|
+
return [...this.findings];
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Add or update a file summary
|
|
135
|
+
* @param summary File summary to add
|
|
136
|
+
*/
|
|
137
|
+
addFileSummary(summary) {
|
|
138
|
+
this.fileSummaries.set(summary.path, {
|
|
139
|
+
...summary,
|
|
140
|
+
passNumber: this.currentPass,
|
|
141
|
+
});
|
|
142
|
+
this.updatedAt = new Date();
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Get summary for a specific file
|
|
146
|
+
* @param filePath Path of the file
|
|
147
|
+
* @returns File summary or undefined if not found
|
|
148
|
+
*/
|
|
149
|
+
getFileSummary(filePath) {
|
|
150
|
+
return this.fileSummaries.get(filePath);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Get summaries for all files
|
|
154
|
+
* @returns Array of file summaries
|
|
155
|
+
*/
|
|
156
|
+
getAllFileSummaries() {
|
|
157
|
+
return Array.from(this.fileSummaries.values());
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Add a general note about the codebase
|
|
161
|
+
* @param note Note to add
|
|
162
|
+
*/
|
|
163
|
+
addGeneralNote(note) {
|
|
164
|
+
this.generalNotes.push(note);
|
|
165
|
+
this.updatedAt = new Date();
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Get all general notes
|
|
169
|
+
* @returns Array of general notes
|
|
170
|
+
*/
|
|
171
|
+
getGeneralNotes() {
|
|
172
|
+
return [...this.generalNotes];
|
|
173
|
+
}
|
|
174
|
+
/**
|
|
175
|
+
* Generate a contextual prompt for the next pass
|
|
176
|
+
* @param files Files to include in the next pass
|
|
177
|
+
* @param maxContextLength Maximum length of context in characters
|
|
178
|
+
* @returns Formatted context string for inclusion in the next prompt
|
|
179
|
+
*/
|
|
180
|
+
generateNextPassContext(files, maxContextLength = 2000) {
|
|
181
|
+
let context = `
|
|
182
|
+
### Review Context (Pass ${this.currentPass})
|
|
183
|
+
|
|
184
|
+
Project: ${this.projectName}
|
|
185
|
+
Review Type: ${this.reviewType}
|
|
186
|
+
Files in this pass: ${files.length} / ${this.allFiles.length}
|
|
187
|
+
|
|
188
|
+
`;
|
|
189
|
+
// Add important findings from previous passes
|
|
190
|
+
const importantFindings = this.findings.sort((a, b) => b.severity - a.severity).slice(0, 5);
|
|
191
|
+
if (importantFindings.length > 0) {
|
|
192
|
+
context += '#### Key Findings from Previous Passes\n\n';
|
|
193
|
+
importantFindings.forEach((finding) => {
|
|
194
|
+
context += `- [${finding.type.toUpperCase()}] ${finding.description}${finding.file ? ` (in ${finding.file})` : ''}\n`;
|
|
195
|
+
});
|
|
196
|
+
context += '\n';
|
|
197
|
+
}
|
|
198
|
+
// Add summaries of files that are related but not in this pass
|
|
199
|
+
const relatedFiles = this.getAllFileSummaries()
|
|
200
|
+
.filter((summary) => !files.includes(summary.path))
|
|
201
|
+
.slice(0, 5);
|
|
202
|
+
if (relatedFiles.length > 0) {
|
|
203
|
+
context += '#### Related Files (Not in This Pass)\n\n';
|
|
204
|
+
relatedFiles.forEach((file) => {
|
|
205
|
+
context += `- ${file.path}: ${file.description}\n`;
|
|
206
|
+
if (file.keyElements.length > 0) {
|
|
207
|
+
context += ` Key elements: ${file.keyElements.join(', ')}\n`;
|
|
208
|
+
}
|
|
209
|
+
});
|
|
210
|
+
context += '\n';
|
|
211
|
+
}
|
|
212
|
+
// Add important code elements relevant to this pass
|
|
213
|
+
const relevantElements = this.getCodeElements()
|
|
214
|
+
.filter((el) => files.includes(el.file) || el.importance > 7)
|
|
215
|
+
.sort((a, b) => b.importance - a.importance)
|
|
216
|
+
.slice(0, 10);
|
|
217
|
+
if (relevantElements.length > 0) {
|
|
218
|
+
context += '#### Important Code Elements\n\n';
|
|
219
|
+
relevantElements.forEach((element) => {
|
|
220
|
+
context += `- ${element.type} \`${element.name}\`${element.signature ? `: ${element.signature}` : ''} (in ${element.file})\n`;
|
|
221
|
+
});
|
|
222
|
+
context += '\n';
|
|
223
|
+
}
|
|
224
|
+
// Add general notes
|
|
225
|
+
if (this.generalNotes.length > 0) {
|
|
226
|
+
context += '#### General Notes\n\n';
|
|
227
|
+
this.generalNotes.slice(0, 3).forEach((note) => {
|
|
228
|
+
context += `- ${note}\n`;
|
|
229
|
+
});
|
|
230
|
+
context += '\n';
|
|
231
|
+
}
|
|
232
|
+
// Truncate if too long
|
|
233
|
+
if (context.length > maxContextLength) {
|
|
234
|
+
context = `${context.substring(0, maxContextLength - 3)}...`;
|
|
235
|
+
}
|
|
236
|
+
return context;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Serialize the context to JSON
|
|
240
|
+
* @returns JSON representation of the context
|
|
241
|
+
*/
|
|
242
|
+
toJSON() {
|
|
243
|
+
return {
|
|
244
|
+
projectName: this.projectName,
|
|
245
|
+
reviewType: this.reviewType,
|
|
246
|
+
currentPass: this.currentPass,
|
|
247
|
+
codeElements: Array.from(this.codeElements.values()),
|
|
248
|
+
findings: this.findings,
|
|
249
|
+
fileSummaries: Array.from(this.fileSummaries.values()),
|
|
250
|
+
generalNotes: this.generalNotes,
|
|
251
|
+
createdAt: this.createdAt.toISOString(),
|
|
252
|
+
updatedAt: this.updatedAt.toISOString(),
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Create a review context from JSON
|
|
257
|
+
* @param json JSON object
|
|
258
|
+
* @returns New ReviewContext instance
|
|
259
|
+
*/
|
|
260
|
+
static fromJSON(json) {
|
|
261
|
+
const context = new ReviewContext(json.projectName, json.reviewType, json.allFiles || []);
|
|
262
|
+
context.currentPass = json.currentPass || 0;
|
|
263
|
+
// Restore code elements
|
|
264
|
+
if (Array.isArray(json.codeElements)) {
|
|
265
|
+
json.codeElements.forEach((element) => {
|
|
266
|
+
context.addCodeElement(element);
|
|
267
|
+
});
|
|
268
|
+
}
|
|
269
|
+
// Restore findings
|
|
270
|
+
if (Array.isArray(json.findings)) {
|
|
271
|
+
context.findings = json.findings;
|
|
272
|
+
}
|
|
273
|
+
// Restore file summaries
|
|
274
|
+
if (Array.isArray(json.fileSummaries)) {
|
|
275
|
+
json.fileSummaries.forEach((summary) => {
|
|
276
|
+
context.fileSummaries.set(summary.path, summary);
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
// Restore general notes
|
|
280
|
+
if (Array.isArray(json.generalNotes)) {
|
|
281
|
+
context.generalNotes = json.generalNotes;
|
|
282
|
+
}
|
|
283
|
+
// Restore timestamps
|
|
284
|
+
if (json.createdAt) {
|
|
285
|
+
context.createdAt = new Date(json.createdAt);
|
|
286
|
+
}
|
|
287
|
+
if (json.updatedAt) {
|
|
288
|
+
context.updatedAt = new Date(json.updatedAt);
|
|
289
|
+
}
|
|
290
|
+
return context;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
exports.ReviewContext = ReviewContext;
|
|
294
|
+
//# sourceMappingURL=ReviewContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReviewContext.js","sourceRoot":"","sources":["../../../src/analysis/context/ReviewContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Context management exports.
|
|
4
|
+
*
|
|
5
|
+
* This module exports all context management related functions and types.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
__exportStar(require("./ReviewContext"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analysis/context/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,kDAAgC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Analysis module exports.
|
|
4
|
+
*
|
|
5
|
+
* This module exports all analysis related functions and types.
|
|
6
|
+
*/
|
|
7
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
+
if (k2 === undefined) k2 = k;
|
|
9
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
+
}
|
|
13
|
+
Object.defineProperty(o, k2, desc);
|
|
14
|
+
}) : (function(o, m, k, k2) {
|
|
15
|
+
if (k2 === undefined) k2 = k;
|
|
16
|
+
o[k2] = m[k];
|
|
17
|
+
}));
|
|
18
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
+
};
|
|
21
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
+
__exportStar(require("./context"), exports);
|
|
23
|
+
__exportStar(require("./tokens"), exports);
|
|
24
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,4CAA0B;AAC1B,2CAAyB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { WordPressStandardsFinding, WordPressStandardsReport } from '../../types/review';
|
|
2
|
+
export interface WordPressPhpcsOptions {
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
phpcsPath?: string;
|
|
5
|
+
rulesetPath?: string;
|
|
6
|
+
testVersion?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function getCachedWordPressReport(projectRoot: string, files: string[], options: WordPressPhpcsOptions): Promise<WordPressStandardsReport>;
|
|
9
|
+
export declare function resetWordPressReportCache(): void;
|
|
10
|
+
export declare function summarizeWordPressReport(report: WordPressStandardsReport, limit?: number, projectRoot?: string): string;
|
|
11
|
+
export declare function formatWordPressFinding(finding: WordPressStandardsFinding, projectRoot: string): string;
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.getCachedWordPressReport = getCachedWordPressReport;
|
|
7
|
+
exports.resetWordPressReportCache = resetWordPressReportCache;
|
|
8
|
+
exports.summarizeWordPressReport = summarizeWordPressReport;
|
|
9
|
+
exports.formatWordPressFinding = formatWordPressFinding;
|
|
10
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
11
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
12
|
+
const execa_1 = require("execa");
|
|
13
|
+
const logger_1 = __importDefault(require("../../utils/logger"));
|
|
14
|
+
const reportCache = new Map();
|
|
15
|
+
function resolveDefaultRuleset(projectRoot) {
|
|
16
|
+
// 1. Check for project-level configuration (phpcs.xml or phpcs.xml.dist)
|
|
17
|
+
const projectConfigCandidates = [
|
|
18
|
+
node_path_1.default.join(projectRoot, 'phpcs.xml'),
|
|
19
|
+
node_path_1.default.join(projectRoot, 'phpcs.xml.dist'),
|
|
20
|
+
];
|
|
21
|
+
for (const config of projectConfigCandidates) {
|
|
22
|
+
if (node_fs_1.default.existsSync(config)) {
|
|
23
|
+
logger_1.default.debug(`Found project-level PHPCS config: ${config}`);
|
|
24
|
+
return undefined; // Return undefined to let PHPCS auto-discover this
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
// 2. Check for WordPress Coding Standards in standard locations
|
|
28
|
+
const wpcsCandidates = [
|
|
29
|
+
node_path_1.default.resolve(projectRoot, '..', 'WordPress-Coding-Standards-develop', 'WordPress', 'ruleset.xml'),
|
|
30
|
+
node_path_1.default.resolve(projectRoot, 'WordPress-Coding-Standards-develop', 'WordPress', 'ruleset.xml'),
|
|
31
|
+
node_path_1.default.resolve(projectRoot, 'vendor', 'wp-coding-standards', 'wpcs', 'WordPress', 'ruleset.xml'),
|
|
32
|
+
];
|
|
33
|
+
for (const candidate of wpcsCandidates) {
|
|
34
|
+
if (node_fs_1.default.existsSync(candidate)) {
|
|
35
|
+
return candidate;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
function pickPhpcsBinary(customPath) {
|
|
41
|
+
if (customPath) {
|
|
42
|
+
return customPath;
|
|
43
|
+
}
|
|
44
|
+
if (process.env.PHPCS_BINARY) {
|
|
45
|
+
return process.env.PHPCS_BINARY;
|
|
46
|
+
}
|
|
47
|
+
return 'phpcs';
|
|
48
|
+
}
|
|
49
|
+
function filterPhpFiles(files) {
|
|
50
|
+
return files
|
|
51
|
+
.map((file) => node_path_1.default.resolve(file))
|
|
52
|
+
.filter((file) => /\.(php|phtml|inc|php5|php7)$/i.test(file));
|
|
53
|
+
}
|
|
54
|
+
async function executePhpcs(projectRoot, files, options) {
|
|
55
|
+
if (options.enabled === false) {
|
|
56
|
+
return {
|
|
57
|
+
status: 'skipped',
|
|
58
|
+
errors: 0,
|
|
59
|
+
warnings: 0,
|
|
60
|
+
findings: [],
|
|
61
|
+
reason: 'WordPress PHPCS disabled',
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const phpFiles = filterPhpFiles(files);
|
|
65
|
+
if (phpFiles.length === 0) {
|
|
66
|
+
return {
|
|
67
|
+
status: 'skipped',
|
|
68
|
+
errors: 0,
|
|
69
|
+
warnings: 0,
|
|
70
|
+
findings: [],
|
|
71
|
+
reason: 'No PHP files provided for PHPCS scan',
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const ruleset = options.rulesetPath || resolveDefaultRuleset(projectRoot);
|
|
75
|
+
// If ruleset is undefined here, it might mean we found a phpcs.xml, or we're relying on global config.
|
|
76
|
+
// We'll proceed and let PHPCS decide, unless we want to enforce a specific fallback.
|
|
77
|
+
const phpcsBinary = pickPhpcsBinary(options.phpcsPath);
|
|
78
|
+
// Base arguments
|
|
79
|
+
const baseArgs = [
|
|
80
|
+
'--report=json',
|
|
81
|
+
'--colors=false',
|
|
82
|
+
'--extensions=php,php5,inc,phtml',
|
|
83
|
+
];
|
|
84
|
+
if (ruleset) {
|
|
85
|
+
baseArgs.push(`--standard=${ruleset}`);
|
|
86
|
+
}
|
|
87
|
+
if (options.testVersion) {
|
|
88
|
+
baseArgs.push('--runtime-set', 'testVersion', options.testVersion);
|
|
89
|
+
}
|
|
90
|
+
// Batch processing to avoid E2BIG
|
|
91
|
+
const BATCH_SIZE = 50;
|
|
92
|
+
const allFindings = [];
|
|
93
|
+
let totalErrors = 0;
|
|
94
|
+
let totalWarnings = 0;
|
|
95
|
+
let hasFailure = false;
|
|
96
|
+
let failureReason = '';
|
|
97
|
+
for (let i = 0; i < phpFiles.length; i += BATCH_SIZE) {
|
|
98
|
+
const batch = phpFiles.slice(i, i + BATCH_SIZE);
|
|
99
|
+
const args = [...baseArgs, ...batch];
|
|
100
|
+
try {
|
|
101
|
+
const { stdout } = await (0, execa_1.execa)(phpcsBinary, args, {
|
|
102
|
+
cwd: projectRoot,
|
|
103
|
+
reject: false,
|
|
104
|
+
});
|
|
105
|
+
if (!stdout || stdout.trim().length === 0) {
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
// Robust JSON parsing: find the first '{' and last '}'
|
|
109
|
+
const jsonStart = stdout.indexOf('{');
|
|
110
|
+
const jsonEnd = stdout.lastIndexOf('}');
|
|
111
|
+
if (jsonStart === -1 || jsonEnd === -1) {
|
|
112
|
+
logger_1.default.warn('PHPCS output does not contain valid JSON');
|
|
113
|
+
continue;
|
|
114
|
+
}
|
|
115
|
+
const jsonStr = stdout.substring(jsonStart, jsonEnd + 1);
|
|
116
|
+
let parsed;
|
|
117
|
+
try {
|
|
118
|
+
parsed = JSON.parse(jsonStr);
|
|
119
|
+
}
|
|
120
|
+
catch (error) {
|
|
121
|
+
logger_1.default.warn(`Failed to parse PHPCS output batch ${i}: ${error instanceof Error ? error.message : String(error)}`);
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
if (parsed.totals) {
|
|
125
|
+
totalErrors += Number(parsed.totals.errors ?? 0);
|
|
126
|
+
totalWarnings += Number(parsed.totals.warnings ?? 0);
|
|
127
|
+
}
|
|
128
|
+
if (parsed.files) {
|
|
129
|
+
for (const [fileName, data] of Object.entries(parsed.files)) {
|
|
130
|
+
const messages = Array.isArray(data.messages) ? data.messages : [];
|
|
131
|
+
for (const message of messages) {
|
|
132
|
+
allFindings.push({
|
|
133
|
+
filePath: fileName,
|
|
134
|
+
line: message.line ?? 0,
|
|
135
|
+
column: message.column ?? 0,
|
|
136
|
+
type: message.type === 'ERROR' ? 'ERROR' : 'WARNING',
|
|
137
|
+
severity: Number(message.severity ?? 0),
|
|
138
|
+
message: message.message ?? 'Violation detected',
|
|
139
|
+
source: message.source ?? 'WordPress',
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
hasFailure = true;
|
|
147
|
+
failureReason =
|
|
148
|
+
error instanceof Error && 'code' in error && error.code === 'ENOENT'
|
|
149
|
+
? `PHPCS binary not found (${phpcsBinary})`
|
|
150
|
+
: error instanceof Error
|
|
151
|
+
? error.message
|
|
152
|
+
: 'Unknown error running PHPCS';
|
|
153
|
+
// If binary is missing, abort immediately
|
|
154
|
+
if (failureReason.includes('binary not found')) {
|
|
155
|
+
return {
|
|
156
|
+
status: 'skipped',
|
|
157
|
+
errors: 0,
|
|
158
|
+
warnings: 0,
|
|
159
|
+
findings: [],
|
|
160
|
+
reason: failureReason,
|
|
161
|
+
};
|
|
162
|
+
}
|
|
163
|
+
logger_1.default.warn(`Error running PHPCS batch: ${failureReason}`);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
if (hasFailure && allFindings.length === 0) {
|
|
167
|
+
return {
|
|
168
|
+
status: 'failed',
|
|
169
|
+
errors: 0,
|
|
170
|
+
warnings: 0,
|
|
171
|
+
findings: [],
|
|
172
|
+
reason: failureReason || 'PHPCS execution failed',
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
return {
|
|
176
|
+
status: 'ok',
|
|
177
|
+
errors: totalErrors,
|
|
178
|
+
warnings: totalWarnings,
|
|
179
|
+
findings: allFindings,
|
|
180
|
+
};
|
|
181
|
+
}
|
|
182
|
+
function getCachedWordPressReport(projectRoot, files, options) {
|
|
183
|
+
const cacheKey = `${projectRoot}|${options.rulesetPath || 'default'}|${options.phpcsPath || 'phpcs'}`;
|
|
184
|
+
if (!reportCache.has(cacheKey)) {
|
|
185
|
+
reportCache.set(cacheKey, executePhpcs(projectRoot, files, options));
|
|
186
|
+
}
|
|
187
|
+
return reportCache.get(cacheKey);
|
|
188
|
+
}
|
|
189
|
+
function resetWordPressReportCache() {
|
|
190
|
+
reportCache.clear();
|
|
191
|
+
}
|
|
192
|
+
function summarizeWordPressReport(report, limit = 5, projectRoot = process.cwd()) {
|
|
193
|
+
if (report.status === 'skipped') {
|
|
194
|
+
return `WordPress Coding Standards scan skipped: ${report.reason ?? 'not enabled'}`;
|
|
195
|
+
}
|
|
196
|
+
if (report.status === 'failed') {
|
|
197
|
+
return `WordPress Coding Standards scan failed: ${report.reason ?? 'unknown error'}`;
|
|
198
|
+
}
|
|
199
|
+
if (report.findings.length === 0) {
|
|
200
|
+
return 'WordPress Coding Standards scan passed with no issues.';
|
|
201
|
+
}
|
|
202
|
+
const lines = [
|
|
203
|
+
`WordPress Coding Standards: ${report.errors} error(s), ${report.warnings} warning(s).`,
|
|
204
|
+
];
|
|
205
|
+
const topFindings = report.findings.slice(0, limit);
|
|
206
|
+
for (const finding of topFindings) {
|
|
207
|
+
const rel = node_path_1.default.relative(projectRoot, finding.filePath);
|
|
208
|
+
lines.push(`- ${rel || finding.filePath}:${finding.line} [${finding.type}] ${finding.source} – ${finding.message}`);
|
|
209
|
+
}
|
|
210
|
+
if (report.findings.length > limit) {
|
|
211
|
+
lines.push(`- ...and ${report.findings.length - limit} more finding(s)`);
|
|
212
|
+
}
|
|
213
|
+
return lines.join('\n');
|
|
214
|
+
}
|
|
215
|
+
function formatWordPressFinding(finding, projectRoot) {
|
|
216
|
+
const rel = node_path_1.default.relative(projectRoot, finding.filePath);
|
|
217
|
+
return `- ${rel || finding.filePath}:${finding.line} [${finding.type}] ${finding.source} – ${finding.message}`;
|
|
218
|
+
}
|
|
219
|
+
//# sourceMappingURL=wpPhpcsRunner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wpPhpcsRunner.js","sourceRoot":"","sources":["../../../src/analysis/static/wpPhpcsRunner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Formatter for token analysis results.
|
|
3
|
+
*
|
|
4
|
+
* This module provides utilities for formatting token analysis results into
|
|
5
|
+
* human-readable strings and other formats for display or logging.
|
|
6
|
+
*/
|
|
7
|
+
import type { FileTokenAnalysis, TokenAnalysisResult } from './TokenAnalyzer';
|
|
8
|
+
/**
|
|
9
|
+
* Format token analysis result as a human-readable string
|
|
10
|
+
* @param analysis Token analysis result
|
|
11
|
+
* @param modelName Name of the model used
|
|
12
|
+
* @param includedFiles Whether to include detailed file listing
|
|
13
|
+
* @returns Formatted string representation of the analysis
|
|
14
|
+
*/
|
|
15
|
+
export declare function formatTokenAnalysis(analysis: TokenAnalysisResult, modelName: string, includeFiles?: boolean): string;
|
|
16
|
+
/**
|
|
17
|
+
* Format token analysis result as JSON
|
|
18
|
+
* @param analysis Token analysis result
|
|
19
|
+
* @returns JSON string representation of the analysis
|
|
20
|
+
*/
|
|
21
|
+
export declare function formatTokenAnalysisAsJson(analysis: TokenAnalysisResult): string;
|
|
22
|
+
/**
|
|
23
|
+
* Format a single file token analysis as a string
|
|
24
|
+
* @param fileAnalysis File token analysis
|
|
25
|
+
* @returns Formatted string representation of the file analysis
|
|
26
|
+
*/
|
|
27
|
+
export declare function formatFileTokenAnalysis(fileAnalysis: FileTokenAnalysis): string;
|