codereview-aia 0.1.2 → 0.1.3
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/index.js +0 -2
- package/docs/opt-in-full-context.md +27 -0
- package/package.json +11 -11
- package/reports/cr-cr-aia-17-11-2025-20-13.md +354 -0
- package/src/clients/implementations/openRouterClient.ts +2 -0
- package/src/clients/openRouterClient.ts +8 -1
- package/src/clients/utils/promptFormatter.ts +97 -20
- package/src/core/handlers/FileProcessingHandler.ts +6 -0
- package/src/index.ts +0 -3
- package/src/runtime/cliEntry.ts +21 -3
- package/src/runtime/fileCollector.ts +278 -5
- package/src/runtime/reviewPipeline.ts +46 -7
- package/src/runtime/runAiCodeReview.ts +161 -6
- package/src/runtime/ui/RuntimeApp.tsx +34 -5
- package/src/runtime/ui/screens/ProgressScreen.tsx +49 -1
- package/src/runtime/ui/screens/ResultsScreen.tsx +29 -9
- package/src/types/review.ts +18 -0
- package/dist/analysis/FindingsExtractor.d.ts +0 -105
- package/dist/analysis/FindingsExtractor.js +0 -363
- package/dist/analysis/FindingsExtractor.js.map +0 -1
- package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +0 -111
- package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +0 -215
- package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +0 -1
- package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +0 -142
- package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +0 -503
- package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +0 -1
- package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +0 -88
- package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +0 -343
- package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +0 -1
- package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +0 -104
- package/dist/analysis/ai-detection/core/AIDetectionEngine.js +0 -369
- package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +0 -1
- package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +0 -364
- package/dist/analysis/ai-detection/types/DetectionTypes.js +0 -32
- package/dist/analysis/ai-detection/types/DetectionTypes.js.map +0 -1
- package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +0 -97
- package/dist/analysis/ai-detection/utils/SubmissionConverter.js +0 -339
- package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +0 -1
- package/dist/analysis/context/ReviewContext.d.ts +0 -184
- package/dist/analysis/context/ReviewContext.js +0 -294
- package/dist/analysis/context/ReviewContext.js.map +0 -1
- package/dist/analysis/context/index.d.ts +0 -6
- package/dist/analysis/context/index.js +0 -23
- package/dist/analysis/context/index.js.map +0 -1
- package/dist/analysis/index.d.ts +0 -7
- package/dist/analysis/index.js +0 -24
- package/dist/analysis/index.js.map +0 -1
- package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +0 -27
- package/dist/analysis/tokens/TokenAnalysisFormatter.js +0 -143
- package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +0 -1
- package/dist/analysis/tokens/TokenAnalyzer.d.ts +0 -155
- package/dist/analysis/tokens/TokenAnalyzer.js +0 -502
- package/dist/analysis/tokens/TokenAnalyzer.js.map +0 -1
- package/dist/analysis/tokens/index.d.ts +0 -7
- package/dist/analysis/tokens/index.js +0 -24
- package/dist/analysis/tokens/index.js.map +0 -1
- package/dist/clients/base/abstractClient.d.ts +0 -99
- package/dist/clients/base/abstractClient.js +0 -98
- package/dist/clients/base/abstractClient.js.map +0 -1
- package/dist/clients/base/httpClient.d.ts +0 -24
- package/dist/clients/base/httpClient.js +0 -147
- package/dist/clients/base/httpClient.js.map +0 -1
- package/dist/clients/base/index.d.ts +0 -11
- package/dist/clients/base/index.js +0 -28
- package/dist/clients/base/index.js.map +0 -1
- package/dist/clients/base/modelDetection.d.ts +0 -41
- package/dist/clients/base/modelDetection.js +0 -88
- package/dist/clients/base/modelDetection.js.map +0 -1
- package/dist/clients/base/responseProcessor.d.ts +0 -45
- package/dist/clients/base/responseProcessor.js +0 -495
- package/dist/clients/base/responseProcessor.js.map +0 -1
- package/dist/clients/factory/clientFactory.d.ts +0 -23
- package/dist/clients/factory/clientFactory.js +0 -50
- package/dist/clients/factory/clientFactory.js.map +0 -1
- package/dist/clients/factory/index.d.ts +0 -7
- package/dist/clients/factory/index.js +0 -24
- package/dist/clients/factory/index.js.map +0 -1
- package/dist/clients/implementations/index.d.ts +0 -7
- package/dist/clients/implementations/index.js +0 -24
- package/dist/clients/implementations/index.js.map +0 -1
- package/dist/clients/implementations/openRouterClient.d.ts +0 -69
- package/dist/clients/implementations/openRouterClient.js +0 -294
- package/dist/clients/implementations/openRouterClient.js.map +0 -1
- package/dist/clients/openRouterClient.d.ts +0 -42
- package/dist/clients/openRouterClient.js +0 -738
- package/dist/clients/openRouterClient.js.map +0 -1
- package/dist/clients/openRouterClientWrapper.d.ts +0 -22
- package/dist/clients/openRouterClientWrapper.js +0 -64
- package/dist/clients/openRouterClientWrapper.js.map +0 -1
- package/dist/clients/utils/directoryStructure.d.ts +0 -14
- package/dist/clients/utils/directoryStructure.js +0 -48
- package/dist/clients/utils/directoryStructure.js.map +0 -1
- package/dist/clients/utils/index.d.ts +0 -10
- package/dist/clients/utils/index.js +0 -31
- package/dist/clients/utils/index.js.map +0 -1
- package/dist/clients/utils/languageDetection.d.ts +0 -13
- package/dist/clients/utils/languageDetection.js +0 -46
- package/dist/clients/utils/languageDetection.js.map +0 -1
- package/dist/clients/utils/promptFormatter.d.ts +0 -36
- package/dist/clients/utils/promptFormatter.js +0 -92
- package/dist/clients/utils/promptFormatter.js.map +0 -1
- package/dist/clients/utils/promptLoader.d.ts +0 -27
- package/dist/clients/utils/promptLoader.js +0 -49
- package/dist/clients/utils/promptLoader.js.map +0 -1
- package/dist/clients/utils/tokenCounter.d.ts +0 -81
- package/dist/clients/utils/tokenCounter.js +0 -209
- package/dist/clients/utils/tokenCounter.js.map +0 -1
- package/dist/core/ApiClientSelector.d.ts +0 -8
- package/dist/core/ApiClientSelector.js +0 -29
- package/dist/core/ApiClientSelector.js.map +0 -1
- package/dist/core/ConfigurationService.d.ts +0 -286
- package/dist/core/ConfigurationService.js +0 -477
- package/dist/core/ConfigurationService.js.map +0 -1
- package/dist/core/ConsolidationService.d.ts +0 -99
- package/dist/core/ConsolidationService.js +0 -341
- package/dist/core/ConsolidationService.js.map +0 -1
- package/dist/core/InteractiveDisplayManager.d.ts +0 -22
- package/dist/core/InteractiveDisplayManager.js +0 -70
- package/dist/core/InteractiveDisplayManager.js.map +0 -1
- package/dist/core/OutputManager.d.ts +0 -26
- package/dist/core/OutputManager.js +0 -217
- package/dist/core/OutputManager.js.map +0 -1
- package/dist/core/ReviewGenerator.d.ts +0 -13
- package/dist/core/ReviewGenerator.js +0 -102
- package/dist/core/ReviewGenerator.js.map +0 -1
- package/dist/core/fileDiscovery.d.ts +0 -35
- package/dist/core/fileDiscovery.js +0 -202
- package/dist/core/fileDiscovery.js.map +0 -1
- package/dist/core/handlers/EstimationHandler.d.ts +0 -18
- package/dist/core/handlers/EstimationHandler.js +0 -110
- package/dist/core/handlers/EstimationHandler.js.map +0 -1
- package/dist/core/handlers/FileProcessingHandler.d.ts +0 -31
- package/dist/core/handlers/FileProcessingHandler.js +0 -159
- package/dist/core/handlers/FileProcessingHandler.js.map +0 -1
- package/dist/core/handlers/OutputHandler.d.ts +0 -27
- package/dist/core/handlers/OutputHandler.js +0 -127
- package/dist/core/handlers/OutputHandler.js.map +0 -1
- package/dist/core/handlers/ReviewExecutor.d.ts +0 -32
- package/dist/core/handlers/ReviewExecutor.js +0 -111
- package/dist/core/handlers/ReviewExecutor.js.map +0 -1
- package/dist/core/reviewOrchestrator.d.ts +0 -24
- package/dist/core/reviewOrchestrator.js +0 -294
- package/dist/core/reviewOrchestrator.js.map +0 -1
- package/dist/core/utils/ModelInfoUtils.d.ts +0 -16
- package/dist/core/utils/ModelInfoUtils.js +0 -54
- package/dist/core/utils/ModelInfoUtils.js.map +0 -1
- package/dist/formatters/outputFormatter.d.ts +0 -31
- package/dist/formatters/outputFormatter.js +0 -65
- package/dist/formatters/outputFormatter.js.map +0 -1
- package/dist/formatters/utils/IssueFormatters.d.ts +0 -20
- package/dist/formatters/utils/IssueFormatters.js +0 -67
- package/dist/formatters/utils/IssueFormatters.js.map +0 -1
- package/dist/formatters/utils/JsonFormatter.d.ts +0 -13
- package/dist/formatters/utils/JsonFormatter.js +0 -57
- package/dist/formatters/utils/JsonFormatter.js.map +0 -1
- package/dist/formatters/utils/MarkdownFormatters.d.ts +0 -51
- package/dist/formatters/utils/MarkdownFormatters.js +0 -456
- package/dist/formatters/utils/MarkdownFormatters.js.map +0 -1
- package/dist/formatters/utils/MetadataFormatter.d.ts +0 -65
- package/dist/formatters/utils/MetadataFormatter.js +0 -219
- package/dist/formatters/utils/MetadataFormatter.js.map +0 -1
- package/dist/formatters/utils/ModelInfoExtractor.d.ts +0 -33
- package/dist/formatters/utils/ModelInfoExtractor.js +0 -111
- package/dist/formatters/utils/ModelInfoExtractor.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js.map +0 -1
- package/dist/plugins/PluginInterface.d.ts +0 -44
- package/dist/plugins/PluginInterface.js +0 -9
- package/dist/plugins/PluginInterface.js.map +0 -1
- package/dist/plugins/PluginManager.d.ts +0 -51
- package/dist/plugins/PluginManager.js +0 -151
- package/dist/plugins/PluginManager.js.map +0 -1
- package/dist/prompts/PromptManager.d.ts +0 -30
- package/dist/prompts/PromptManager.js +0 -62
- package/dist/prompts/PromptManager.js.map +0 -1
- package/dist/prompts/cache/PromptCache.d.ts +0 -32
- package/dist/prompts/cache/PromptCache.js +0 -48
- package/dist/prompts/cache/PromptCache.js.map +0 -1
- package/dist/runtime/auth/service.d.ts +0 -2
- package/dist/runtime/auth/service.js +0 -41
- package/dist/runtime/auth/service.js.map +0 -1
- package/dist/runtime/auth/session.d.ts +0 -5
- package/dist/runtime/auth/session.js +0 -87
- package/dist/runtime/auth/session.js.map +0 -1
- package/dist/runtime/auth/types.d.ts +0 -9
- package/dist/runtime/auth/types.js +0 -3
- package/dist/runtime/auth/types.js.map +0 -1
- package/dist/runtime/cliEntry.d.ts +0 -1
- package/dist/runtime/cliEntry.js +0 -213
- package/dist/runtime/cliEntry.js.map +0 -1
- package/dist/runtime/debug/logManager.d.ts +0 -5
- package/dist/runtime/debug/logManager.js +0 -31
- package/dist/runtime/debug/logManager.js.map +0 -1
- package/dist/runtime/errors.d.ts +0 -5
- package/dist/runtime/errors.js +0 -15
- package/dist/runtime/errors.js.map +0 -1
- package/dist/runtime/fileCollector.d.ts +0 -5
- package/dist/runtime/fileCollector.js +0 -167
- package/dist/runtime/fileCollector.js.map +0 -1
- package/dist/runtime/manifest.d.ts +0 -1
- package/dist/runtime/manifest.js +0 -65
- package/dist/runtime/manifest.js.map +0 -1
- package/dist/runtime/openrouterProxy.d.ts +0 -4
- package/dist/runtime/openrouterProxy.js +0 -43
- package/dist/runtime/openrouterProxy.js.map +0 -1
- package/dist/runtime/preprod/webCheck.d.ts +0 -1
- package/dist/runtime/preprod/webCheck.js +0 -98
- package/dist/runtime/preprod/webCheck.js.map +0 -1
- package/dist/runtime/proxyConfig.d.ts +0 -6
- package/dist/runtime/proxyConfig.js +0 -86
- package/dist/runtime/proxyConfig.js.map +0 -1
- package/dist/runtime/proxyEnvironment.d.ts +0 -3
- package/dist/runtime/proxyEnvironment.js +0 -63
- package/dist/runtime/proxyEnvironment.js.map +0 -1
- package/dist/runtime/reportMerge.d.ts +0 -30
- package/dist/runtime/reportMerge.js +0 -70
- package/dist/runtime/reportMerge.js.map +0 -1
- package/dist/runtime/reporting/markdownReportBuilder.d.ts +0 -15
- package/dist/runtime/reporting/markdownReportBuilder.js +0 -97
- package/dist/runtime/reporting/markdownReportBuilder.js.map +0 -1
- package/dist/runtime/reporting/reportDataCollector.d.ts +0 -31
- package/dist/runtime/reporting/reportDataCollector.js +0 -170
- package/dist/runtime/reporting/reportDataCollector.js.map +0 -1
- package/dist/runtime/reporting/summaryGenerator.d.ts +0 -10
- package/dist/runtime/reporting/summaryGenerator.js +0 -67
- package/dist/runtime/reporting/summaryGenerator.js.map +0 -1
- package/dist/runtime/reviewPipeline.d.ts +0 -28
- package/dist/runtime/reviewPipeline.js +0 -122
- package/dist/runtime/reviewPipeline.js.map +0 -1
- package/dist/runtime/runAiCodeReview.d.ts +0 -10
- package/dist/runtime/runAiCodeReview.js +0 -138
- package/dist/runtime/runAiCodeReview.js.map +0 -1
- package/dist/runtime/runtimeConfig.d.ts +0 -4
- package/dist/runtime/runtimeConfig.js +0 -7
- package/dist/runtime/runtimeConfig.js.map +0 -1
- package/dist/runtime/ui/Layout.d.ts +0 -11
- package/dist/runtime/ui/Layout.js +0 -47
- package/dist/runtime/ui/Layout.js.map +0 -1
- package/dist/runtime/ui/RuntimeApp.d.ts +0 -6
- package/dist/runtime/ui/RuntimeApp.js +0 -161
- package/dist/runtime/ui/RuntimeApp.js.map +0 -1
- package/dist/runtime/ui/inkModules.d.ts +0 -10
- package/dist/runtime/ui/inkModules.js +0 -63
- package/dist/runtime/ui/inkModules.js.map +0 -1
- package/dist/runtime/ui/screens/AuthScreen.d.ts +0 -6
- package/dist/runtime/ui/screens/AuthScreen.js +0 -67
- package/dist/runtime/ui/screens/AuthScreen.js.map +0 -1
- package/dist/runtime/ui/screens/ModeSelection.d.ts +0 -10
- package/dist/runtime/ui/screens/ModeSelection.js +0 -100
- package/dist/runtime/ui/screens/ModeSelection.js.map +0 -1
- package/dist/runtime/ui/screens/ProgressScreen.d.ts +0 -7
- package/dist/runtime/ui/screens/ProgressScreen.js +0 -38
- package/dist/runtime/ui/screens/ProgressScreen.js.map +0 -1
- package/dist/runtime/ui/screens/ResultsScreen.d.ts +0 -7
- package/dist/runtime/ui/screens/ResultsScreen.js +0 -22
- package/dist/runtime/ui/screens/ResultsScreen.js.map +0 -1
- package/dist/strategies/ArchitecturalReviewStrategy.d.ts +0 -29
- package/dist/strategies/ArchitecturalReviewStrategy.js +0 -42
- package/dist/strategies/ArchitecturalReviewStrategy.js.map +0 -1
- package/dist/strategies/CodingTestReviewStrategy.d.ts +0 -194
- package/dist/strategies/CodingTestReviewStrategy.js +0 -681
- package/dist/strategies/CodingTestReviewStrategy.js.map +0 -1
- package/dist/strategies/ConsolidatedReviewStrategy.d.ts +0 -25
- package/dist/strategies/ConsolidatedReviewStrategy.js +0 -45
- package/dist/strategies/ConsolidatedReviewStrategy.js.map +0 -1
- package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +0 -30
- package/dist/strategies/ExtractPatternsReviewStrategy.js +0 -51
- package/dist/strategies/ExtractPatternsReviewStrategy.js.map +0 -1
- package/dist/strategies/MultiPassReviewStrategy.d.ts +0 -86
- package/dist/strategies/MultiPassReviewStrategy.js +0 -590
- package/dist/strategies/MultiPassReviewStrategy.js.map +0 -1
- package/dist/strategies/ReviewStrategy.d.ts +0 -45
- package/dist/strategies/ReviewStrategy.js +0 -24
- package/dist/strategies/ReviewStrategy.js.map +0 -1
- package/dist/strategies/StrategyFactory.d.ts +0 -19
- package/dist/strategies/StrategyFactory.js +0 -72
- package/dist/strategies/StrategyFactory.js.map +0 -1
- package/dist/strategies/index.d.ts +0 -13
- package/dist/strategies/index.js +0 -30
- package/dist/strategies/index.js.map +0 -1
- package/dist/tokenizers/baseTokenizer.d.ts +0 -25
- package/dist/tokenizers/baseTokenizer.js +0 -48
- package/dist/tokenizers/baseTokenizer.js.map +0 -1
- package/dist/tokenizers/gptTokenizer.d.ts +0 -7
- package/dist/tokenizers/gptTokenizer.js +0 -28
- package/dist/tokenizers/gptTokenizer.js.map +0 -1
- package/dist/tokenizers/index.d.ts +0 -7
- package/dist/tokenizers/index.js +0 -24
- package/dist/tokenizers/index.js.map +0 -1
- package/dist/types/apiResponses.d.ts +0 -39
- package/dist/types/apiResponses.js +0 -9
- package/dist/types/apiResponses.js.map +0 -1
- package/dist/types/cli.d.ts +0 -22
- package/dist/types/cli.js +0 -3
- package/dist/types/cli.js.map +0 -1
- package/dist/types/common.d.ts +0 -22
- package/dist/types/common.js +0 -14
- package/dist/types/common.js.map +0 -1
- package/dist/types/configuration.d.ts +0 -682
- package/dist/types/configuration.js +0 -65
- package/dist/types/configuration.js.map +0 -1
- package/dist/types/review.d.ts +0 -258
- package/dist/types/review.js +0 -8
- package/dist/types/review.js.map +0 -1
- package/dist/types/reviewSchema.d.ts +0 -543
- package/dist/types/reviewSchema.js +0 -121
- package/dist/types/reviewSchema.js.map +0 -1
- package/dist/types/structuredReview.d.ts +0 -119
- package/dist/types/structuredReview.js +0 -6
- package/dist/types/structuredReview.js.map +0 -1
- package/dist/types/tokenAnalysis.d.ts +0 -44
- package/dist/types/tokenAnalysis.js +0 -4
- package/dist/types/tokenAnalysis.js.map +0 -1
- package/dist/utils/FileReader.d.ts +0 -33
- package/dist/utils/FileReader.js +0 -88
- package/dist/utils/FileReader.js.map +0 -1
- package/dist/utils/FileWriter.d.ts +0 -26
- package/dist/utils/FileWriter.js +0 -76
- package/dist/utils/FileWriter.js.map +0 -1
- package/dist/utils/PathGenerator.d.ts +0 -30
- package/dist/utils/PathGenerator.js +0 -82
- package/dist/utils/PathGenerator.js.map +0 -1
- package/dist/utils/api/apiUtils.d.ts +0 -3
- package/dist/utils/api/apiUtils.js +0 -20
- package/dist/utils/api/apiUtils.js.map +0 -1
- package/dist/utils/api/index.d.ts +0 -1
- package/dist/utils/api/index.js +0 -18
- package/dist/utils/api/index.js.map +0 -1
- package/dist/utils/apiErrorHandler.d.ts +0 -130
- package/dist/utils/apiErrorHandler.js +0 -256
- package/dist/utils/apiErrorHandler.js.map +0 -1
- package/dist/utils/ciDataCollector.d.ts +0 -51
- package/dist/utils/ciDataCollector.js +0 -197
- package/dist/utils/ciDataCollector.js.map +0 -1
- package/dist/utils/codingTestConfigLoader.d.ts +0 -66
- package/dist/utils/codingTestConfigLoader.js +0 -420
- package/dist/utils/codingTestConfigLoader.js.map +0 -1
- package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +0 -30
- package/dist/utils/dependencies/aiDependencyAnalyzer.js +0 -343
- package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +0 -1
- package/dist/utils/detection/frameworkDetector.d.ts +0 -43
- package/dist/utils/detection/frameworkDetector.js +0 -795
- package/dist/utils/detection/frameworkDetector.js.map +0 -1
- package/dist/utils/detection/index.d.ts +0 -9
- package/dist/utils/detection/index.js +0 -28
- package/dist/utils/detection/index.js.map +0 -1
- package/dist/utils/detection/projectTypeDetector.d.ts +0 -27
- package/dist/utils/detection/projectTypeDetector.js +0 -469
- package/dist/utils/detection/projectTypeDetector.js.map +0 -1
- package/dist/utils/diagramGenerator.d.ts +0 -49
- package/dist/utils/diagramGenerator.js +0 -218
- package/dist/utils/diagramGenerator.js.map +0 -1
- package/dist/utils/errorLogger.d.ts +0 -24
- package/dist/utils/errorLogger.js +0 -59
- package/dist/utils/errorLogger.js.map +0 -1
- package/dist/utils/estimationUtils.d.ts +0 -139
- package/dist/utils/estimationUtils.js +0 -329
- package/dist/utils/estimationUtils.js.map +0 -1
- package/dist/utils/fileFilters.d.ts +0 -72
- package/dist/utils/fileFilters.js +0 -338
- package/dist/utils/fileFilters.js.map +0 -1
- package/dist/utils/fileSystem.d.ts +0 -22
- package/dist/utils/fileSystem.js +0 -45
- package/dist/utils/fileSystem.js.map +0 -1
- package/dist/utils/index.d.ts +0 -22
- package/dist/utils/index.js +0 -52
- package/dist/utils/index.js.map +0 -1
- package/dist/utils/logger.d.ts +0 -77
- package/dist/utils/logger.js +0 -271
- package/dist/utils/logger.js.map +0 -1
- package/dist/utils/pathValidator.d.ts +0 -40
- package/dist/utils/pathValidator.js +0 -98
- package/dist/utils/pathValidator.js.map +0 -1
- package/dist/utils/priorityFilter.d.ts +0 -34
- package/dist/utils/priorityFilter.js +0 -54
- package/dist/utils/priorityFilter.js.map +0 -1
- package/dist/utils/projectDocs.d.ts +0 -47
- package/dist/utils/projectDocs.js +0 -158
- package/dist/utils/projectDocs.js.map +0 -1
- package/dist/utils/promptPaths.d.ts +0 -6
- package/dist/utils/promptPaths.js +0 -33
- package/dist/utils/promptPaths.js.map +0 -1
- package/dist/utils/promptTemplateManager.d.ts +0 -34
- package/dist/utils/promptTemplateManager.js +0 -140
- package/dist/utils/promptTemplateManager.js.map +0 -1
- package/dist/utils/review/consolidateReview.d.ts +0 -15
- package/dist/utils/review/consolidateReview.js +0 -481
- package/dist/utils/review/consolidateReview.js.map +0 -1
- package/dist/utils/review/fixDisplay.d.ts +0 -20
- package/dist/utils/review/fixDisplay.js +0 -84
- package/dist/utils/review/fixDisplay.js.map +0 -1
- package/dist/utils/review/fixImplementation.d.ts +0 -28
- package/dist/utils/review/fixImplementation.js +0 -60
- package/dist/utils/review/fixImplementation.js.map +0 -1
- package/dist/utils/review/index.d.ts +0 -13
- package/dist/utils/review/index.js +0 -50
- package/dist/utils/review/index.js.map +0 -1
- package/dist/utils/review/interactiveProcessing.d.ts +0 -25
- package/dist/utils/review/interactiveProcessing.js +0 -251
- package/dist/utils/review/interactiveProcessing.js.map +0 -1
- package/dist/utils/review/progressTracker.d.ts +0 -106
- package/dist/utils/review/progressTracker.js +0 -227
- package/dist/utils/review/progressTracker.js.map +0 -1
- package/dist/utils/review/reviewExtraction.d.ts +0 -31
- package/dist/utils/review/reviewExtraction.js +0 -324
- package/dist/utils/review/reviewExtraction.js.map +0 -1
- package/dist/utils/review/types.d.ts +0 -45
- package/dist/utils/review/types.js +0 -18
- package/dist/utils/review/types.js.map +0 -1
- package/dist/utils/reviewActionHandler.d.ts +0 -16
- package/dist/utils/reviewActionHandler.js +0 -34
- package/dist/utils/reviewActionHandler.js.map +0 -1
- package/dist/utils/reviewParser.d.ts +0 -34
- package/dist/utils/reviewParser.js +0 -218
- package/dist/utils/reviewParser.js.map +0 -1
- package/dist/utils/sanitizer.d.ts +0 -82
- package/dist/utils/sanitizer.js +0 -239
- package/dist/utils/sanitizer.js.map +0 -1
- package/dist/utils/smartFileSelector.d.ts +0 -50
- package/dist/utils/smartFileSelector.js +0 -261
- package/dist/utils/smartFileSelector.js.map +0 -1
- package/dist/utils/templateLoader.d.ts +0 -44
- package/dist/utils/templateLoader.js +0 -431
- package/dist/utils/templateLoader.js.map +0 -1
- package/dist/utils/treeGenerator.d.ts +0 -12
- package/dist/utils/treeGenerator.js +0 -133
- package/dist/utils/treeGenerator.js.map +0 -1
|
@@ -1,217 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @fileoverview Output manager module.
|
|
4
|
-
*
|
|
5
|
-
* This module is responsible for formatting and saving review outputs to files.
|
|
6
|
-
* It centralizes the logic for generating output paths and writing review results.
|
|
7
|
-
*/
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.addFileTreeToReview = addFileTreeToReview;
|
|
13
|
-
exports.saveReviewOutput = saveReviewOutput;
|
|
14
|
-
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
15
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
-
const outputFormatter_1 = require("../formatters/outputFormatter");
|
|
17
|
-
const aiDependencyAnalyzer_1 = require("../utils/dependencies/aiDependencyAnalyzer");
|
|
18
|
-
const diagramGenerator_1 = require("../utils/diagramGenerator");
|
|
19
|
-
const errorLogger_1 = require("../utils/errorLogger");
|
|
20
|
-
const fileSystem_1 = require("../utils/fileSystem");
|
|
21
|
-
const logger_1 = __importDefault(require("../utils/logger"));
|
|
22
|
-
const treeGenerator_1 = require("../utils/treeGenerator");
|
|
23
|
-
/**
|
|
24
|
-
* Add file tree visualization to a review
|
|
25
|
-
* @param formattedOutput Formatted review output (markdown or JSON)
|
|
26
|
-
* @param files Files included in the review
|
|
27
|
-
* @param outputFormat Output format (markdown or json)
|
|
28
|
-
* @returns Enhanced output with file tree
|
|
29
|
-
*/
|
|
30
|
-
function addFileTreeToReview(formattedOutput, files, outputFormat) {
|
|
31
|
-
if (!files || files.length === 0) {
|
|
32
|
-
logger_1.default.debug('No files provided for tree generation');
|
|
33
|
-
return formattedOutput;
|
|
34
|
-
}
|
|
35
|
-
logger_1.default.debug(`Adding file tree for ${files.length} files in ${outputFormat} format`);
|
|
36
|
-
// Extract relative paths from files
|
|
37
|
-
const relativePaths = files.map((file) => file.relativePath || file.path);
|
|
38
|
-
// Generate tree visualization
|
|
39
|
-
const fileTree = (0, treeGenerator_1.generateFileTree)(relativePaths);
|
|
40
|
-
if (outputFormat === 'json') {
|
|
41
|
-
// For JSON, parse and add tree visualization as property
|
|
42
|
-
try {
|
|
43
|
-
const reviewObj = JSON.parse(formattedOutput);
|
|
44
|
-
// Add both a flat list and a tree structure
|
|
45
|
-
reviewObj.analyzedFiles = relativePaths;
|
|
46
|
-
reviewObj.fileTree = fileTree.replace(/```/g, '').trim();
|
|
47
|
-
return JSON.stringify(reviewObj, null, 2);
|
|
48
|
-
}
|
|
49
|
-
catch (error) {
|
|
50
|
-
logger_1.default.warn(`Error enhancing JSON review with file tree: ${error}`);
|
|
51
|
-
return formattedOutput;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
// For markdown, find appropriate position to insert file tree section
|
|
56
|
-
const fileListSection = `\n## Files Analyzed\n\nThe following ${files.length} files were included in this review:\n\n${fileTree}\n\n`;
|
|
57
|
-
// Find the position to insert (before cost information section if it exists)
|
|
58
|
-
const costSectionMatch = formattedOutput.match(/^## Cost Information/m);
|
|
59
|
-
if (costSectionMatch?.index) {
|
|
60
|
-
// Insert before cost information
|
|
61
|
-
const position = costSectionMatch.index;
|
|
62
|
-
logger_1.default.debug('Inserting file list before Cost Information section');
|
|
63
|
-
return (formattedOutput.substring(0, position) +
|
|
64
|
-
fileListSection +
|
|
65
|
-
formattedOutput.substring(position));
|
|
66
|
-
}
|
|
67
|
-
// Find the position to insert before the closing markdown
|
|
68
|
-
const closingMatch = formattedOutput.match(/---\n\*Generated by Code Review Tool/);
|
|
69
|
-
if (closingMatch?.index) {
|
|
70
|
-
// Insert before the closing section
|
|
71
|
-
const position = closingMatch.index;
|
|
72
|
-
logger_1.default.debug('Inserting file list before closing section');
|
|
73
|
-
return (formattedOutput.substring(0, position) +
|
|
74
|
-
fileListSection +
|
|
75
|
-
formattedOutput.substring(position));
|
|
76
|
-
}
|
|
77
|
-
// If no suitable position found, append at the end
|
|
78
|
-
logger_1.default.debug('No insertion point found, appending file list to end');
|
|
79
|
-
return formattedOutput + fileListSection;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
/**
|
|
83
|
-
* Format and save a review result to a file
|
|
84
|
-
* @param review Review result to save
|
|
85
|
-
* @param options Review options
|
|
86
|
-
* @param outputBaseDir Base directory for output
|
|
87
|
-
* @param modelName Name of the model used for the review
|
|
88
|
-
* @param targetName Name of the target file or directory
|
|
89
|
-
* @param files Optional array of file information to include in the review
|
|
90
|
-
* @returns Promise resolving to the path of the saved file
|
|
91
|
-
*/
|
|
92
|
-
async function saveReviewOutput(review, options, outputBaseDir, modelName, targetName, files) {
|
|
93
|
-
try {
|
|
94
|
-
// Generate a versioned output path
|
|
95
|
-
const extension = options.output === 'json' ? '.json' : '.md';
|
|
96
|
-
// Create unique filenames for different types of output
|
|
97
|
-
// For formatted review output
|
|
98
|
-
let outputPath = await (0, fileSystem_1.generateVersionedOutputPath)(outputBaseDir, `${options.type}-review`, extension, modelName, targetName);
|
|
99
|
-
// For raw review data (if needed for debugging)
|
|
100
|
-
const rawDataPath = await (0, fileSystem_1.generateUniqueOutputPath)(outputBaseDir, `${options.type}-review-raw-data-${node_path_1.default.basename(outputPath, extension)}.json`);
|
|
101
|
-
// Ensure costInfo is set if only cost is available
|
|
102
|
-
if (review.cost && !review.costInfo) {
|
|
103
|
-
review.costInfo = review.cost;
|
|
104
|
-
}
|
|
105
|
-
// Format the review output
|
|
106
|
-
logger_1.default.debug(`Formatting review output as ${options.output}`);
|
|
107
|
-
let formattedOutput = (0, outputFormatter_1.formatReviewOutput)(review, options.output || 'markdown');
|
|
108
|
-
// Add file tree to all review types if files are provided
|
|
109
|
-
if (files && files.length > 0) {
|
|
110
|
-
logger_1.default.info(`Adding file tree visualization for ${files.length} files`);
|
|
111
|
-
formattedOutput = addFileTreeToReview(formattedOutput, files, options.output || 'markdown');
|
|
112
|
-
}
|
|
113
|
-
// For architectural and security reviews, dependency analysis is ON by default unless explicitly disabled
|
|
114
|
-
const reviewTypeNeedsDependencyAnalysis = ['architectural', 'security'].includes(options.type);
|
|
115
|
-
if (reviewTypeNeedsDependencyAnalysis && options.includeDependencyAnalysis !== false) {
|
|
116
|
-
console.log(`=========== DEPENDENCY ANALYSIS FOR ${options.type.toUpperCase()} REVIEW ===========`);
|
|
117
|
-
logger_1.default.info(`=========== DEPENDENCY ANALYSIS FOR ${options.type.toUpperCase()} REVIEW ===========`);
|
|
118
|
-
try {
|
|
119
|
-
// Use the AI-powered dependency analyzer (no external dependencies required)
|
|
120
|
-
logger_1.default.info(`Performing AI-powered dependency analysis for ${options.type} review...`);
|
|
121
|
-
// Use project directory path instead of current working directory to ensure correct analysis
|
|
122
|
-
const projectPath = files && files.length > 0 ? node_path_1.default.dirname(files[0].path) : node_path_1.default.resolve(process.cwd());
|
|
123
|
-
console.log(`Project path for dependency analysis: ${projectPath}`);
|
|
124
|
-
logger_1.default.info(`Project path for dependency analysis: ${projectPath}`);
|
|
125
|
-
// Run the AI-powered dependency analysis
|
|
126
|
-
const dependencySection = await (0, aiDependencyAnalyzer_1.createAIDependencyAnalysis)(projectPath);
|
|
127
|
-
// Append dependency analysis section to the review
|
|
128
|
-
if (options.output === 'json') {
|
|
129
|
-
try {
|
|
130
|
-
// Parse JSON, add dependency analysis section, and stringify again
|
|
131
|
-
const reviewObj = JSON.parse(formattedOutput);
|
|
132
|
-
reviewObj.dependencyAnalysis = dependencySection;
|
|
133
|
-
formattedOutput = JSON.stringify(reviewObj, null, 2);
|
|
134
|
-
logger_1.default.info('AI-powered dependency analysis added to JSON review output');
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
logger_1.default.warn(`Error adding dependency analysis section to JSON review: ${error}`);
|
|
138
|
-
// If JSON parsing fails, append as text
|
|
139
|
-
formattedOutput += `\n\n${dependencySection}`;
|
|
140
|
-
logger_1.default.info('AI-powered dependency analysis appended as text to JSON review (JSON parsing failed)');
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
// For markdown, append at the end
|
|
145
|
-
formattedOutput += `\n\n${dependencySection}`;
|
|
146
|
-
logger_1.default.info('AI-powered dependency analysis added to markdown review output');
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
catch (error) {
|
|
150
|
-
logger_1.default.error(`Error performing AI-powered dependency analysis for ${options.type} review: ${error instanceof Error ? error.message : String(error)}`);
|
|
151
|
-
logger_1.default.error(error instanceof Error && error.stack ? error.stack : 'No stack trace available');
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
// Check if the output file already exists (to avoid overwriting)
|
|
155
|
-
try {
|
|
156
|
-
await promises_1.default.access(outputPath);
|
|
157
|
-
logger_1.default.warn(`Output file already exists: ${outputPath}`);
|
|
158
|
-
// Generate a new unique path to avoid overwriting
|
|
159
|
-
const uniqueOutputPath = await (0, fileSystem_1.generateUniqueOutputPath)(outputBaseDir, `${options.type}-review-${Date.now()}${extension}`);
|
|
160
|
-
logger_1.default.info(`Using alternative output path to avoid overwriting: ${uniqueOutputPath}`);
|
|
161
|
-
// Update the output path
|
|
162
|
-
const originalPath = outputPath;
|
|
163
|
-
outputPath = uniqueOutputPath;
|
|
164
|
-
// Log this change for debugging
|
|
165
|
-
logger_1.default.debug(`Changed output path from ${originalPath} to ${outputPath} to avoid collision`);
|
|
166
|
-
}
|
|
167
|
-
catch (_error) {
|
|
168
|
-
// File doesn't exist, which is good
|
|
169
|
-
logger_1.default.debug(`Output file doesn't exist yet, proceeding with: ${outputPath}`);
|
|
170
|
-
}
|
|
171
|
-
// Write the formatted output to the file
|
|
172
|
-
logger_1.default.debug(`Writing formatted review output to: ${outputPath}`);
|
|
173
|
-
await promises_1.default.writeFile(outputPath, formattedOutput);
|
|
174
|
-
logger_1.default.info(`Review output saved to: ${outputPath}`);
|
|
175
|
-
// Process and save any Mermaid diagrams if requested
|
|
176
|
-
if (options.diagram && options.type === 'architectural') {
|
|
177
|
-
const diagramPaths = await (0, diagramGenerator_1.processDiagrams)(formattedOutput, outputPath, options);
|
|
178
|
-
if (diagramPaths.length > 0) {
|
|
179
|
-
logger_1.default.info(`Generated ${diagramPaths.length} architecture diagram file(s)`);
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
// Optionally save raw review data for debugging (only if debug mode is enabled)
|
|
183
|
-
if (options.debug) {
|
|
184
|
-
logger_1.default.debug(`Saving raw review data for debugging to: ${rawDataPath}`);
|
|
185
|
-
await promises_1.default.writeFile(rawDataPath, JSON.stringify(review, null, 2));
|
|
186
|
-
logger_1.default.debug(`Raw review data saved to: ${rawDataPath}`);
|
|
187
|
-
}
|
|
188
|
-
return outputPath;
|
|
189
|
-
}
|
|
190
|
-
catch (error) {
|
|
191
|
-
if (error instanceof Error) {
|
|
192
|
-
const errorLogPath = await (0, errorLogger_1.logError)(error, {
|
|
193
|
-
operation: 'writeFile',
|
|
194
|
-
outputPath: 'unknown',
|
|
195
|
-
reviewType: options.type,
|
|
196
|
-
});
|
|
197
|
-
logger_1.default.error(`Error saving review output:`);
|
|
198
|
-
logger_1.default.error(` Message: ${error.message}`);
|
|
199
|
-
logger_1.default.error(` Error details logged to: ${errorLogPath}`);
|
|
200
|
-
// Add more detailed error information
|
|
201
|
-
if (error.stack) {
|
|
202
|
-
logger_1.default.debug(`Error stack trace: ${error.stack}`);
|
|
203
|
-
}
|
|
204
|
-
if (error.name === 'EACCES') {
|
|
205
|
-
logger_1.default.error(` This appears to be a permission error. Please check that you have write access to the output directory.`);
|
|
206
|
-
}
|
|
207
|
-
else if (error.name === 'ENOSPC') {
|
|
208
|
-
logger_1.default.error(` This appears to be a disk space error. Please free up some disk space and try again.`);
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
else {
|
|
212
|
-
logger_1.default.error(`Unknown error saving review output: ${String(error)}`);
|
|
213
|
-
}
|
|
214
|
-
throw error;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
//# sourceMappingURL=OutputManager.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OutputManager.js","sourceRoot":"","sources":["../../src/core/OutputManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Review generator module.
|
|
3
|
-
*
|
|
4
|
-
* This module coordinates OpenRouter reviews. All other provider implementations
|
|
5
|
-
* have been removed so we can focus on the only runtime dependency we actually use.
|
|
6
|
-
*/
|
|
7
|
-
import type { FileInfo, ReviewOptions, ReviewResult, ReviewType } from '../types/review';
|
|
8
|
-
import type { ProjectDocs } from '../utils/projectDocs';
|
|
9
|
-
import type { ApiClientConfig } from './ApiClientSelector';
|
|
10
|
-
/**
|
|
11
|
-
* Generate an OpenRouter review.
|
|
12
|
-
*/
|
|
13
|
-
export declare function generateReview(fileInfos: FileInfo[], project: string, reviewType: ReviewType, projectDocs: ProjectDocs | null, options: ReviewOptions, apiClientConfig: ApiClientConfig): Promise<ReviewResult>;
|
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @fileoverview Review generator module.
|
|
4
|
-
*
|
|
5
|
-
* This module coordinates OpenRouter reviews. All other provider implementations
|
|
6
|
-
* have been removed so we can focus on the only runtime dependency we actually use.
|
|
7
|
-
*/
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.generateReview = generateReview;
|
|
13
|
-
const openRouterClientWrapper_1 = require("../clients/openRouterClientWrapper");
|
|
14
|
-
const logger_1 = __importDefault(require("../utils/logger"));
|
|
15
|
-
/**
|
|
16
|
-
* Generate an OpenRouter review.
|
|
17
|
-
*/
|
|
18
|
-
async function generateReview(fileInfos, project, reviewType, projectDocs, options, apiClientConfig) {
|
|
19
|
-
logger_1.default.debug('generateReview called');
|
|
20
|
-
logger_1.default.debug(`generateReview: apiClientConfig=${JSON.stringify(apiClientConfig)}`);
|
|
21
|
-
if (apiClientConfig.clientType !== 'OpenRouter') {
|
|
22
|
-
throw new Error(`Unsupported client type: ${apiClientConfig.clientType ?? 'unknown'}`);
|
|
23
|
-
}
|
|
24
|
-
let result;
|
|
25
|
-
try {
|
|
26
|
-
await (0, openRouterClientWrapper_1.initializeAnyOpenRouterModel)();
|
|
27
|
-
result = await (0, openRouterClientWrapper_1.generateOpenRouterConsolidatedReview)(fileInfos, project, reviewType, projectDocs, options);
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
logger_1.default.error(`Error initializing or calling OpenRouter client: ${error instanceof Error ? error.message : String(error)}`);
|
|
31
|
-
throw error;
|
|
32
|
-
}
|
|
33
|
-
const reviewResult = result;
|
|
34
|
-
// Enhanced logging for debugging empty content issues
|
|
35
|
-
logger_1.default.debug(`generateReview completed:`);
|
|
36
|
-
logger_1.default.debug(` Client type: ${apiClientConfig.clientType}`);
|
|
37
|
-
logger_1.default.debug(` Model: ${apiClientConfig.modelName}`);
|
|
38
|
-
logger_1.default.debug(` Result exists: ${!!reviewResult}`);
|
|
39
|
-
logger_1.default.debug(` Content exists: ${!!(reviewResult && reviewResult.content)}`);
|
|
40
|
-
logger_1.default.debug(` Content length: ${reviewResult && reviewResult.content ? reviewResult.content.length : 'N/A'}`);
|
|
41
|
-
logger_1.default.debug(` Content preview: ${reviewResult && reviewResult.content ? reviewResult.content.substring(0, 100).replace(/\n/g, ' ') + '...' : 'N/A'}`);
|
|
42
|
-
// Get package version from process.env or hardcoded value
|
|
43
|
-
const packageVersion = process.env.npm_package_version || '2.1.1';
|
|
44
|
-
// Create a string representation of the command-line options
|
|
45
|
-
const commandOptions = Object.entries(options)
|
|
46
|
-
.filter(([key, value]) => {
|
|
47
|
-
// Filter out internal options and undefined values
|
|
48
|
-
if (key.startsWith('_') || value === undefined)
|
|
49
|
-
return false;
|
|
50
|
-
// Filter out ciData which can be very large
|
|
51
|
-
if (key === 'ciData')
|
|
52
|
-
return false;
|
|
53
|
-
// Filter out empty arrays and objects
|
|
54
|
-
if (Array.isArray(value) && value.length === 0)
|
|
55
|
-
return false;
|
|
56
|
-
if (typeof value === 'object' && value !== null && Object.keys(value).length === 0)
|
|
57
|
-
return false;
|
|
58
|
-
return true;
|
|
59
|
-
})
|
|
60
|
-
.map(([key, value]) => {
|
|
61
|
-
// Format boolean options as flags without values
|
|
62
|
-
if (typeof value === 'boolean') {
|
|
63
|
-
return value ? `--${key}` : '';
|
|
64
|
-
}
|
|
65
|
-
// Format arrays and objects as JSON strings
|
|
66
|
-
if (typeof value === 'object' && value !== null) {
|
|
67
|
-
return `--${key}='${JSON.stringify(value)}'`;
|
|
68
|
-
}
|
|
69
|
-
// Format other values normally
|
|
70
|
-
return `--${key}=${value}`;
|
|
71
|
-
})
|
|
72
|
-
.filter(Boolean) // Remove empty strings
|
|
73
|
-
.join(' ');
|
|
74
|
-
// Add metadata to the review result
|
|
75
|
-
reviewResult.toolVersion = packageVersion;
|
|
76
|
-
reviewResult.commandOptions = commandOptions;
|
|
77
|
-
// Ensure costInfo is set if only cost is available
|
|
78
|
-
if (reviewResult.cost && !reviewResult.costInfo) {
|
|
79
|
-
reviewResult.costInfo = reviewResult.cost;
|
|
80
|
-
}
|
|
81
|
-
// Ensure required fields are set to avoid undefined values in output
|
|
82
|
-
if (!reviewResult.filePath) {
|
|
83
|
-
logger_1.default.warn('Review result has no filePath. Setting to default value.');
|
|
84
|
-
reviewResult.filePath = reviewType;
|
|
85
|
-
}
|
|
86
|
-
if (!reviewResult.modelUsed) {
|
|
87
|
-
logger_1.default.warn('Review result has no modelUsed. Setting to default value.');
|
|
88
|
-
reviewResult.modelUsed = `${apiClientConfig.clientType}:${apiClientConfig.modelName}`;
|
|
89
|
-
}
|
|
90
|
-
// Final validation before returning
|
|
91
|
-
if (!reviewResult.content || reviewResult.content.trim() === '') {
|
|
92
|
-
logger_1.default.error('CRITICAL: generateReview is about to return a result with empty content!');
|
|
93
|
-
logger_1.default.error(` Client: ${apiClientConfig.clientType}:${apiClientConfig.modelName}`);
|
|
94
|
-
logger_1.default.error(` Files: ${fileInfos.length} files`);
|
|
95
|
-
logger_1.default.error(` Review type: ${reviewType}`);
|
|
96
|
-
logger_1.default.error(` Project: ${project}`);
|
|
97
|
-
// This is a critical error that should be investigated
|
|
98
|
-
throw new Error(`generateReview produced empty content for ${apiClientConfig.clientType}:${apiClientConfig.modelName}`);
|
|
99
|
-
}
|
|
100
|
-
return reviewResult;
|
|
101
|
-
}
|
|
102
|
-
//# sourceMappingURL=ReviewGenerator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ReviewGenerator.js","sourceRoot":"","sources":["../../src/core/ReviewGenerator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview File discovery and filtering module.
|
|
3
|
-
*
|
|
4
|
-
* This module is responsible for finding, filtering, and reading files for review.
|
|
5
|
-
* It handles gitignore patterns, test exclusions, and file system operations.
|
|
6
|
-
*/
|
|
7
|
-
/**
|
|
8
|
-
* File information structure
|
|
9
|
-
*/
|
|
10
|
-
export interface FileInfo {
|
|
11
|
-
path: string;
|
|
12
|
-
relativePath: string;
|
|
13
|
-
content: string;
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Discover files for review based on the target path and options
|
|
17
|
-
* @param target The target file or directory path
|
|
18
|
-
* @param projectPath The project root path
|
|
19
|
-
* @param includeTests Whether to include test files
|
|
20
|
-
* @returns Array of file paths to review
|
|
21
|
-
*/
|
|
22
|
-
export declare function discoverFiles(target: string, projectPath: string, includeTests?: boolean): Promise<string[]>;
|
|
23
|
-
/**
|
|
24
|
-
* Read file contents and prepare file information for review
|
|
25
|
-
* @param filePaths Array of file paths to read
|
|
26
|
-
* @param projectPath The project root path
|
|
27
|
-
* @returns Array of FileInfo objects with file contents
|
|
28
|
-
*/
|
|
29
|
-
export declare function readFilesContent(filePaths: string[], projectPath: string): Promise<{
|
|
30
|
-
fileInfos: FileInfo[];
|
|
31
|
-
errors: Array<{
|
|
32
|
-
path: string;
|
|
33
|
-
error: string;
|
|
34
|
-
}>;
|
|
35
|
-
}>;
|
|
@@ -1,202 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @fileoverview File discovery and filtering module.
|
|
4
|
-
*
|
|
5
|
-
* This module is responsible for finding, filtering, and reading files for review.
|
|
6
|
-
* It handles gitignore patterns, test exclusions, and file system operations.
|
|
7
|
-
*/
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.discoverFiles = discoverFiles;
|
|
13
|
-
exports.readFilesContent = readFilesContent;
|
|
14
|
-
const promises_1 = __importDefault(require("node:fs/promises"));
|
|
15
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
-
const fileFilters_1 = require("../utils/fileFilters");
|
|
17
|
-
const fileSystem_1 = require("../utils/fileSystem");
|
|
18
|
-
const logger_1 = __importDefault(require("../utils/logger"));
|
|
19
|
-
const smartFileSelector_1 = require("../utils/smartFileSelector");
|
|
20
|
-
/**
|
|
21
|
-
* Validate target parameter and provide helpful error messages for common mistakes
|
|
22
|
-
* @param target The target parameter to validate
|
|
23
|
-
* @throws Error with helpful message if the target looks like a misformatted parameter
|
|
24
|
-
*/
|
|
25
|
-
function validateTargetParameter(target) {
|
|
26
|
-
// Check for common parameter format mistakes
|
|
27
|
-
if (target.includes('=')) {
|
|
28
|
-
const [key, ...valueParts] = target.split('=');
|
|
29
|
-
const value = valueParts.join('='); // Rejoin in case value contains =
|
|
30
|
-
const commonOptions = [
|
|
31
|
-
'type',
|
|
32
|
-
'output',
|
|
33
|
-
'model',
|
|
34
|
-
'language',
|
|
35
|
-
'debug',
|
|
36
|
-
'interactive',
|
|
37
|
-
'estimate',
|
|
38
|
-
];
|
|
39
|
-
// Only flag as parameter if the key part matches a known option
|
|
40
|
-
// This avoids false positives for file paths like "src/file=name.ts"
|
|
41
|
-
if (commonOptions.includes(key)) {
|
|
42
|
-
throw new Error(`Invalid parameter format: '${target}'
|
|
43
|
-
|
|
44
|
-
It looks like you're trying to set the '${key}' option.
|
|
45
|
-
Did you mean: --${key} ${value}
|
|
46
|
-
|
|
47
|
-
Example usage:
|
|
48
|
-
cr-aia --${key} ${value}
|
|
49
|
-
cr-aia src --${key} ${value}
|
|
50
|
-
cr-aia . --${key} ${value}
|
|
51
|
-
|
|
52
|
-
Run 'cr-aia --help' for more options.`);
|
|
53
|
-
}
|
|
54
|
-
if (!key.includes('/') && !key.includes('\\') && !key.includes('.')) {
|
|
55
|
-
// If the key doesn't look like a path (no slashes or dots), it's probably a parameter mistake
|
|
56
|
-
throw new Error(`Invalid parameter format: '${target}'
|
|
57
|
-
|
|
58
|
-
Parameters should use '--' prefix, not '=' format.
|
|
59
|
-
Example: --type performance
|
|
60
|
-
|
|
61
|
-
Common usage patterns:
|
|
62
|
-
cr-aia # Review current directory
|
|
63
|
-
cr-aia src # Review src directory
|
|
64
|
-
cr-aia src/index.ts # Review specific file
|
|
65
|
-
cr-aia --type security # Security review of current directory
|
|
66
|
-
cr-aia src --type performance # Performance review of src
|
|
67
|
-
|
|
68
|
-
Run 'cr-aia --help' for all options.`);
|
|
69
|
-
}
|
|
70
|
-
// If key looks like a path (contains / or \ or .), don't flag it as an error
|
|
71
|
-
}
|
|
72
|
-
// Check if the target looks like an option without proper prefix
|
|
73
|
-
const commonOptions = [
|
|
74
|
-
'type',
|
|
75
|
-
'output',
|
|
76
|
-
'model',
|
|
77
|
-
'language',
|
|
78
|
-
'debug',
|
|
79
|
-
'interactive',
|
|
80
|
-
'estimate',
|
|
81
|
-
'help',
|
|
82
|
-
'version',
|
|
83
|
-
];
|
|
84
|
-
if (commonOptions.includes(target)) {
|
|
85
|
-
throw new Error(`'${target}' looks like an option but is missing '--' prefix.
|
|
86
|
-
|
|
87
|
-
Did you mean: --${target}
|
|
88
|
-
|
|
89
|
-
Example usage:
|
|
90
|
-
cr-aia --${target}
|
|
91
|
-
cr-aia src --${target}
|
|
92
|
-
|
|
93
|
-
For options that require values:
|
|
94
|
-
cr-aia --type performance
|
|
95
|
-
cr-aia --output json
|
|
96
|
-
cr-aia --model openai:gpt-4
|
|
97
|
-
|
|
98
|
-
Run 'cr-aia --help' for more information.`);
|
|
99
|
-
}
|
|
100
|
-
// Check for other common mistakes
|
|
101
|
-
if (target.startsWith('-') && !target.startsWith('--')) {
|
|
102
|
-
throw new Error(`Invalid option format: '${target}'
|
|
103
|
-
|
|
104
|
-
Options should use double dashes (--), not single dash (-).
|
|
105
|
-
Did you mean: -${target}?
|
|
106
|
-
|
|
107
|
-
Example usage:
|
|
108
|
-
cr-aia --type security
|
|
109
|
-
cr-aia --debug
|
|
110
|
-
cr-aia --help
|
|
111
|
-
|
|
112
|
-
Run 'cr-aia --help' for all available options.`);
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Discover files for review based on the target path and options
|
|
117
|
-
* @param target The target file or directory path
|
|
118
|
-
* @param projectPath The project root path
|
|
119
|
-
* @param includeTests Whether to include test files
|
|
120
|
-
* @returns Array of file paths to review
|
|
121
|
-
*/
|
|
122
|
-
async function discoverFiles(target, projectPath, includeTests = false) {
|
|
123
|
-
try {
|
|
124
|
-
// First validate the target parameter for common mistakes
|
|
125
|
-
validateTargetParameter(target);
|
|
126
|
-
// Validate the target path
|
|
127
|
-
const resolvedTarget = node_path_1.default.resolve(projectPath, target);
|
|
128
|
-
// Check if the path is within the project directory
|
|
129
|
-
if (!(0, fileSystem_1.isPathWithinCwd)(resolvedTarget)) {
|
|
130
|
-
throw new Error(`Target must be within the project directory: ${projectPath}`);
|
|
131
|
-
}
|
|
132
|
-
const targetPath = resolvedTarget;
|
|
133
|
-
// Check if the target exists
|
|
134
|
-
const isFileTarget = (await (0, fileSystem_1.pathExists)(targetPath)) && !(await (0, fileSystem_1.isDirectory)(targetPath));
|
|
135
|
-
const isDirectoryTarget = await (0, fileSystem_1.isDirectory)(targetPath);
|
|
136
|
-
if (!isFileTarget && !isDirectoryTarget) {
|
|
137
|
-
throw new Error(`Target not found: ${target}`);
|
|
138
|
-
}
|
|
139
|
-
// Load gitignore patterns from target path, not project path
|
|
140
|
-
const gitignorePatterns = await (0, fileFilters_1.loadGitignorePatterns)(targetPath);
|
|
141
|
-
logger_1.default.debug(`Loaded ${gitignorePatterns.length} patterns from .gitignore in ${targetPath}`);
|
|
142
|
-
// Get files to review using the existing filter utility
|
|
143
|
-
let filesToReview = await (0, fileFilters_1.getFilesToReview)(targetPath, isFileTarget, includeTests, gitignorePatterns);
|
|
144
|
-
// Apply smart filtering (tsconfig.json and .eslintignore)
|
|
145
|
-
if (filesToReview.length > 0) {
|
|
146
|
-
logger_1.default.info('Applying smart filtering based on project configuration files...');
|
|
147
|
-
// Use the target directory for finding tsconfig.json, not the project root
|
|
148
|
-
const configDir = isFileTarget ? node_path_1.default.dirname(targetPath) : targetPath;
|
|
149
|
-
filesToReview = await (0, smartFileSelector_1.applySmartFiltering)(filesToReview, configDir);
|
|
150
|
-
}
|
|
151
|
-
if (filesToReview.length === 0) {
|
|
152
|
-
logger_1.default.info('No files found to review.');
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
logger_1.default.info(`Found ${filesToReview.length} files to review.`);
|
|
156
|
-
}
|
|
157
|
-
return filesToReview;
|
|
158
|
-
}
|
|
159
|
-
catch (error) {
|
|
160
|
-
logger_1.default.error(`Error discovering files: ${error instanceof Error ? error.message : String(error)}`);
|
|
161
|
-
throw error; // Re-throw to allow the caller to handle it
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
/**
|
|
165
|
-
* Read file contents and prepare file information for review
|
|
166
|
-
* @param filePaths Array of file paths to read
|
|
167
|
-
* @param projectPath The project root path
|
|
168
|
-
* @returns Array of FileInfo objects with file contents
|
|
169
|
-
*/
|
|
170
|
-
async function readFilesContent(filePaths, projectPath) {
|
|
171
|
-
const fileInfos = [];
|
|
172
|
-
const errors = [];
|
|
173
|
-
for (const filePath of filePaths) {
|
|
174
|
-
try {
|
|
175
|
-
// Check if file exists and is readable
|
|
176
|
-
if (!(await (0, fileSystem_1.pathExists)(filePath))) {
|
|
177
|
-
errors.push({ path: filePath, error: 'File does not exist' });
|
|
178
|
-
continue;
|
|
179
|
-
}
|
|
180
|
-
// Read file content
|
|
181
|
-
const fileContent = await promises_1.default.readFile(filePath, 'utf-8');
|
|
182
|
-
// Get relative path from project root
|
|
183
|
-
const relativePath = node_path_1.default.relative(projectPath, filePath);
|
|
184
|
-
// Add to file infos
|
|
185
|
-
fileInfos.push({
|
|
186
|
-
path: filePath,
|
|
187
|
-
relativePath,
|
|
188
|
-
content: fileContent,
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
catch (error) {
|
|
192
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
193
|
-
logger_1.default.error(`Error reading file ${filePath}: ${errorMessage}`);
|
|
194
|
-
errors.push({ path: filePath, error: errorMessage });
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
if (errors.length > 0) {
|
|
198
|
-
logger_1.default.warn(`Failed to read ${errors.length} file(s)`);
|
|
199
|
-
}
|
|
200
|
-
return { fileInfos, errors };
|
|
201
|
-
}
|
|
202
|
-
//# sourceMappingURL=fileDiscovery.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fileDiscovery.js","sourceRoot":"","sources":["../../src/core/fileDiscovery.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Token and cost estimation handler for code review
|
|
3
|
-
*
|
|
4
|
-
* This module handles token usage estimation and cost analysis for code review
|
|
5
|
-
* using the TokenAnalyzer plus legacy fallbacks.
|
|
6
|
-
*/
|
|
7
|
-
import type { ReviewOptions } from '../../types/review';
|
|
8
|
-
import type { FileInfo } from '../fileDiscovery';
|
|
9
|
-
/**
|
|
10
|
-
* Perform token usage and cost estimation for review
|
|
11
|
-
*
|
|
12
|
-
* @param fileInfos Array of file information objects
|
|
13
|
-
* @param filesToReview Array of file paths
|
|
14
|
-
* @param options Review options
|
|
15
|
-
* @param modelName Model name to use for estimation
|
|
16
|
-
* @returns Promise that resolves when estimation is complete
|
|
17
|
-
*/
|
|
18
|
-
export declare function performEstimation(fileInfos: FileInfo[], filesToReview: string[], options: ReviewOptions, modelName: string): Promise<void>;
|