codereview-aia 0.2.0 → 0.2.2
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 -7
- package/dist/index.js.map +1 -1
- package/dist/runtime/api/batcher.d.ts +20 -0
- package/dist/runtime/api/batcher.js +52 -0
- package/dist/runtime/api/batcher.js.map +1 -0
- package/dist/runtime/api/edgeClient.d.ts +102 -0
- package/dist/runtime/api/edgeClient.js +162 -0
- package/dist/runtime/api/edgeClient.js.map +1 -0
- package/dist/runtime/api/index.d.ts +2 -0
- package/dist/runtime/api/index.js +9 -0
- package/dist/runtime/api/index.js.map +1 -0
- package/dist/runtime/cliEntry.js +24 -76
- package/dist/runtime/cliEntry.js.map +1 -1
- package/dist/runtime/errors.d.ts +13 -3
- package/dist/runtime/errors.js +31 -8
- package/dist/runtime/errors.js.map +1 -1
- package/dist/runtime/llm/index.d.ts +1 -0
- package/dist/runtime/llm/index.js +6 -0
- package/dist/runtime/llm/index.js.map +1 -0
- package/dist/runtime/llm/openRouterClient.d.ts +13 -0
- package/dist/runtime/llm/openRouterClient.js +187 -0
- package/dist/runtime/llm/openRouterClient.js.map +1 -0
- package/dist/runtime/phpFileResolver.d.ts +14 -0
- package/dist/runtime/phpFileResolver.js +231 -0
- package/dist/runtime/phpFileResolver.js.map +1 -0
- package/dist/runtime/phpcsParser.d.ts +10 -0
- package/dist/runtime/phpcsParser.js +35 -0
- package/dist/runtime/phpcsParser.js.map +1 -0
- package/dist/runtime/phpcsRunner.d.ts +32 -0
- package/dist/runtime/phpcsRunner.js +62 -0
- package/dist/runtime/phpcsRunner.js.map +1 -0
- package/dist/runtime/reportWriter.d.ts +17 -0
- package/dist/runtime/reportWriter.js +80 -0
- package/dist/runtime/reportWriter.js.map +1 -0
- package/dist/runtime/reviewPipeline.d.ts +14 -36
- package/dist/runtime/reviewPipeline.js +146 -199
- package/dist/runtime/reviewPipeline.js.map +1 -1
- package/dist/runtime/ui/RuntimeApp.js +23 -154
- package/dist/runtime/ui/RuntimeApp.js.map +1 -1
- package/dist/runtime/ui/screens/AuthScreen.d.ts +2 -3
- package/dist/runtime/ui/screens/AuthScreen.js +7 -53
- package/dist/runtime/ui/screens/AuthScreen.js.map +1 -1
- package/dist/runtime/ui/screens/ModeSelection.d.ts +1 -2
- package/dist/runtime/ui/screens/ModeSelection.js +14 -139
- package/dist/runtime/ui/screens/ModeSelection.js.map +1 -1
- package/dist/runtime/ui/screens/ProgressScreen.d.ts +5 -13
- package/dist/runtime/ui/screens/ProgressScreen.js +24 -61
- package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -1
- package/dist/runtime/ui/screens/ResultsScreen.js +7 -17
- package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -1
- package/package.json +4 -44
- 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/static/wpPhpcsRunner.d.ts +0 -11
- package/dist/analysis/static/wpPhpcsRunner.js +0 -219
- package/dist/analysis/static/wpPhpcsRunner.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 -580
- 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 -37
- package/dist/clients/utils/promptFormatter.js +0 -150
- 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 -184
- 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 -307
- package/dist/core/ConfigurationService.js +0 -516
- 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 -164
- 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 -354
- 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/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/fileCollector.d.ts +0 -14
- package/dist/runtime/fileCollector.js +0 -381
- 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/batchStreamer.d.ts +0 -54
- package/dist/runtime/preprod/batchStreamer.js +0 -159
- package/dist/runtime/preprod/batchStreamer.js.map +0 -1
- package/dist/runtime/preprod/crEdgeServiceClient.d.ts +0 -30
- package/dist/runtime/preprod/crEdgeServiceClient.js +0 -133
- package/dist/runtime/preprod/crEdgeServiceClient.js.map +0 -1
- package/dist/runtime/preprod/progressTracker.d.ts +0 -21
- package/dist/runtime/preprod/progressTracker.js +0 -80
- package/dist/runtime/preprod/progressTracker.js.map +0 -1
- package/dist/runtime/preprod/webCheck.d.ts +0 -1
- package/dist/runtime/preprod/webCheck.js +0 -102
- 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 -17
- package/dist/runtime/reporting/markdownReportBuilder.js +0 -154
- 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/runAiCodeReview.d.ts +0 -36
- package/dist/runtime/runAiCodeReview.js +0 -409
- 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/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 -318
- 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 -850
- 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/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 -141
- 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,227 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @fileoverview Progress tracker for multi-pass reviews.
|
|
4
|
-
*
|
|
5
|
-
* This module provides utilities for tracking and displaying progress
|
|
6
|
-
* during multi-pass reviews.
|
|
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.MultiPassProgressTracker = void 0;
|
|
13
|
-
const node_readline_1 = __importDefault(require("node:readline"));
|
|
14
|
-
const logger_1 = __importDefault(require("../logger"));
|
|
15
|
-
/**
|
|
16
|
-
* Progress tracker for multi-pass reviews
|
|
17
|
-
*/
|
|
18
|
-
class MultiPassProgressTracker {
|
|
19
|
-
progress;
|
|
20
|
-
updateInterval = null;
|
|
21
|
-
useAnsiEscapes;
|
|
22
|
-
completedFiles = [];
|
|
23
|
-
/**
|
|
24
|
-
* Create a new progress tracker
|
|
25
|
-
* @param totalPasses Total number of passes
|
|
26
|
-
* @param totalFiles Total number of files
|
|
27
|
-
* @param options Options for the progress tracker
|
|
28
|
-
*/
|
|
29
|
-
constructor(totalPasses = 1, totalFiles = 0, options = {}) {
|
|
30
|
-
this.progress = {
|
|
31
|
-
totalPasses,
|
|
32
|
-
currentPass: 0,
|
|
33
|
-
currentFiles: [],
|
|
34
|
-
totalFiles,
|
|
35
|
-
processedFiles: 0,
|
|
36
|
-
startTime: new Date(),
|
|
37
|
-
isComplete: false,
|
|
38
|
-
currentPhase: 'preparing',
|
|
39
|
-
};
|
|
40
|
-
this.useAnsiEscapes = options.useAnsiEscapes !== false;
|
|
41
|
-
// Start the progress update interval if not in quiet mode
|
|
42
|
-
if (!options.quiet) {
|
|
43
|
-
this.startProgressUpdates();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Initialize the progress tracker with a total file count
|
|
48
|
-
* @param totalFiles Total number of files
|
|
49
|
-
*/
|
|
50
|
-
initialize(totalFiles) {
|
|
51
|
-
this.progress.totalFiles = totalFiles;
|
|
52
|
-
logger_1.default.info(`Initialized progress tracker with ${totalFiles} total files`);
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Start the progress update interval
|
|
56
|
-
*/
|
|
57
|
-
startProgressUpdates() {
|
|
58
|
-
// Update the progress display every 1 second
|
|
59
|
-
this.updateInterval = setInterval(() => {
|
|
60
|
-
this.updateProgressDisplay();
|
|
61
|
-
}, 1000);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Stop the progress update interval
|
|
65
|
-
*/
|
|
66
|
-
stopProgressUpdates() {
|
|
67
|
-
if (this.updateInterval) {
|
|
68
|
-
clearInterval(this.updateInterval);
|
|
69
|
-
this.updateInterval = null;
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Update the progress display
|
|
74
|
-
*/
|
|
75
|
-
updateProgressDisplay() {
|
|
76
|
-
if (this.progress.isComplete) {
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
const { currentPass, totalPasses, currentPhase, startTime } = this.progress;
|
|
80
|
-
// Calculate elapsed time
|
|
81
|
-
const elapsed = Math.floor((Date.now() - startTime.getTime()) / 1000);
|
|
82
|
-
const elapsedMinutes = Math.floor(elapsed / 60);
|
|
83
|
-
const elapsedSeconds = elapsed % 60;
|
|
84
|
-
// Clear the previous line if terminal supports ANSI escapes
|
|
85
|
-
if (this.useAnsiEscapes) {
|
|
86
|
-
node_readline_1.default.clearLine(process.stdout, 0);
|
|
87
|
-
node_readline_1.default.cursorTo(process.stdout, 0);
|
|
88
|
-
}
|
|
89
|
-
// Create the progress message
|
|
90
|
-
let progressMessage = '';
|
|
91
|
-
if (currentPhase === 'preparing') {
|
|
92
|
-
progressMessage = `Preparing multi-pass review...`;
|
|
93
|
-
}
|
|
94
|
-
else if (currentPhase === 'analyzing') {
|
|
95
|
-
progressMessage = `Analyzing files for multi-pass review...`;
|
|
96
|
-
}
|
|
97
|
-
else if (currentPhase === 'reviewing') {
|
|
98
|
-
const passProgress = (currentPass / totalPasses) * 100;
|
|
99
|
-
progressMessage = `Pass ${currentPass}/${totalPasses} (${passProgress.toFixed(1)}%)`;
|
|
100
|
-
if (this.progress.currentFiles.length > 0) {
|
|
101
|
-
const fileNames = this.progress.currentFiles.map((f) => f.split('/').pop()).join(', ');
|
|
102
|
-
progressMessage += ` | Processing: ${fileNames.length > 50 ? `${fileNames.substring(0, 50)}...` : fileNames}`;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
else if (currentPhase === 'processing') {
|
|
106
|
-
progressMessage = `Processing results...`;
|
|
107
|
-
}
|
|
108
|
-
else if (currentPhase === 'consolidating') {
|
|
109
|
-
progressMessage = `Consolidating multi-pass review and generating final graded report...`;
|
|
110
|
-
}
|
|
111
|
-
// Add timing information
|
|
112
|
-
progressMessage += ` | Elapsed: ${elapsedMinutes}m ${elapsedSeconds}s`;
|
|
113
|
-
// Print the progress message without a newline if terminal supports ANSI escapes
|
|
114
|
-
if (this.useAnsiEscapes) {
|
|
115
|
-
process.stdout.write(progressMessage);
|
|
116
|
-
}
|
|
117
|
-
else {
|
|
118
|
-
// Otherwise, just log the progress
|
|
119
|
-
logger_1.default.info(progressMessage);
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Start a new pass
|
|
124
|
-
* @param passNumber Pass number
|
|
125
|
-
* @param files Files being processed in this pass
|
|
126
|
-
*/
|
|
127
|
-
startPass(passNumber, files) {
|
|
128
|
-
this.progress.currentPass = passNumber;
|
|
129
|
-
this.progress.currentFiles = files;
|
|
130
|
-
this.progress.currentPhase = 'reviewing';
|
|
131
|
-
// Log the start of a new pass (with a newline to avoid overwriting the progress bar)
|
|
132
|
-
if (this.useAnsiEscapes) {
|
|
133
|
-
process.stdout.write('\n');
|
|
134
|
-
}
|
|
135
|
-
logger_1.default.info(`Starting pass ${passNumber}/${this.progress.totalPasses} with ${files.length} files`);
|
|
136
|
-
}
|
|
137
|
-
/**
|
|
138
|
-
* Complete a pass
|
|
139
|
-
* @param passNumber Pass number
|
|
140
|
-
*/
|
|
141
|
-
completePass(passNumber) {
|
|
142
|
-
if (passNumber !== this.progress.currentPass) {
|
|
143
|
-
logger_1.default.warn(`Completed pass ${passNumber} but current pass is ${this.progress.currentPass}`);
|
|
144
|
-
}
|
|
145
|
-
this.progress.processedFiles += this.progress.currentFiles.length;
|
|
146
|
-
this.progress.currentFiles = [];
|
|
147
|
-
// Log the completion of a pass (with a newline to avoid overwriting the progress bar)
|
|
148
|
-
if (this.useAnsiEscapes) {
|
|
149
|
-
process.stdout.write('\n');
|
|
150
|
-
}
|
|
151
|
-
logger_1.default.info(`Completed pass ${passNumber}/${this.progress.totalPasses}`);
|
|
152
|
-
// If this was the last pass, mark the review as complete
|
|
153
|
-
if (passNumber === this.progress.totalPasses) {
|
|
154
|
-
this.complete();
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
/**
|
|
158
|
-
* Set the current phase
|
|
159
|
-
* @param phase Current phase
|
|
160
|
-
*/
|
|
161
|
-
setPhase(phase) {
|
|
162
|
-
this.progress.currentPhase = phase;
|
|
163
|
-
if (phase === 'complete') {
|
|
164
|
-
this.complete();
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
/**
|
|
168
|
-
* Complete the review
|
|
169
|
-
*/
|
|
170
|
-
complete() {
|
|
171
|
-
this.progress.isComplete = true;
|
|
172
|
-
this.progress.currentPhase = 'complete';
|
|
173
|
-
// Calculate total time
|
|
174
|
-
const elapsed = Math.floor((Date.now() - this.progress.startTime.getTime()) / 1000);
|
|
175
|
-
const elapsedMinutes = Math.floor(elapsed / 60);
|
|
176
|
-
const elapsedSeconds = elapsed % 60;
|
|
177
|
-
// Clear the progress bar
|
|
178
|
-
if (this.useAnsiEscapes) {
|
|
179
|
-
node_readline_1.default.clearLine(process.stdout, 0);
|
|
180
|
-
node_readline_1.default.cursorTo(process.stdout, 0);
|
|
181
|
-
}
|
|
182
|
-
// Log the completion message
|
|
183
|
-
logger_1.default.info(`Multi-pass review completed in ${elapsedMinutes}m ${elapsedSeconds}s`);
|
|
184
|
-
// Stop the progress updates
|
|
185
|
-
this.stopProgressUpdates();
|
|
186
|
-
}
|
|
187
|
-
/**
|
|
188
|
-
* Mark a file as completed
|
|
189
|
-
* @param filePath Path to the file that was completed
|
|
190
|
-
*/
|
|
191
|
-
completeFile(filePath) {
|
|
192
|
-
// Add to completed files list
|
|
193
|
-
if (!this.completedFiles.includes(filePath)) {
|
|
194
|
-
this.completedFiles.push(filePath);
|
|
195
|
-
}
|
|
196
|
-
// Remove from current files if it's there
|
|
197
|
-
const fileIndex = this.progress.currentFiles.indexOf(filePath);
|
|
198
|
-
if (fileIndex !== -1) {
|
|
199
|
-
this.progress.currentFiles.splice(fileIndex, 1);
|
|
200
|
-
}
|
|
201
|
-
// Update processed files count
|
|
202
|
-
const progressPercent = (this.completedFiles.length / this.progress.totalFiles) * 100;
|
|
203
|
-
logger_1.default.debug(`File completed: ${filePath} (${progressPercent.toFixed(1)}% complete)`);
|
|
204
|
-
}
|
|
205
|
-
/**
|
|
206
|
-
* Get the current progress
|
|
207
|
-
* @returns Current progress state
|
|
208
|
-
*/
|
|
209
|
-
getProgress() {
|
|
210
|
-
return { ...this.progress };
|
|
211
|
-
}
|
|
212
|
-
/**
|
|
213
|
-
* Get the full state including completed files
|
|
214
|
-
* @returns Full state object
|
|
215
|
-
*/
|
|
216
|
-
getState() {
|
|
217
|
-
return {
|
|
218
|
-
progressData: this.getProgress(),
|
|
219
|
-
completedFiles: [...this.completedFiles],
|
|
220
|
-
progress: this.completedFiles.length / this.progress.totalFiles,
|
|
221
|
-
completed: this.progress.isComplete,
|
|
222
|
-
currentPass: this.progress.currentPass,
|
|
223
|
-
};
|
|
224
|
-
}
|
|
225
|
-
}
|
|
226
|
-
exports.MultiPassProgressTracker = MultiPassProgressTracker;
|
|
227
|
-
//# sourceMappingURL=progressTracker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"progressTracker.js","sourceRoot":"","sources":["../../../src/utils/review/progressTracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Utilities for extracting and parsing code review results.
|
|
3
|
-
*
|
|
4
|
-
* This module provides functions for extracting actionable items from code review results,
|
|
5
|
-
* including parsing sections by priority, identifying file locations, and extracting code snippets.
|
|
6
|
-
*/
|
|
7
|
-
import { FixPriority, type FixSuggestion } from './types';
|
|
8
|
-
/**
|
|
9
|
-
* Extract fix suggestions from review content
|
|
10
|
-
* @param reviewContent The content of the review
|
|
11
|
-
* @param projectPath Base path of the project
|
|
12
|
-
* @param priorityLevel Optional priority level to extract (if not provided, extracts all)
|
|
13
|
-
* @returns Array of fix suggestions
|
|
14
|
-
*/
|
|
15
|
-
export declare function extractFixSuggestions(reviewContent: string, projectPath: string, priorityLevel?: FixPriority): Promise<FixSuggestion[]>;
|
|
16
|
-
/**
|
|
17
|
-
* Extract a section from the review content
|
|
18
|
-
* @param content Full review content
|
|
19
|
-
* @param startMarker Start marker for the section
|
|
20
|
-
* @param endMarker End marker for the section
|
|
21
|
-
* @returns The extracted section or null if not found
|
|
22
|
-
*/
|
|
23
|
-
export declare function extractSection(content: string, startMarker: string, endMarker: string): string | null;
|
|
24
|
-
/**
|
|
25
|
-
* Parse suggestions from a section of the review
|
|
26
|
-
* @param sectionContent Content of the section
|
|
27
|
-
* @param priority Priority level of the suggestions
|
|
28
|
-
* @param projectPath Base path of the project
|
|
29
|
-
* @returns Array of fix suggestions
|
|
30
|
-
*/
|
|
31
|
-
export declare function parseSuggestions(sectionContent: string, priority: FixPriority, projectPath: string): Promise<FixSuggestion[]>;
|
|
@@ -1,324 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* @fileoverview Utilities for extracting and parsing code review results.
|
|
4
|
-
*
|
|
5
|
-
* This module provides functions for extracting actionable items from code review results,
|
|
6
|
-
* including parsing sections by priority, identifying file locations, and extracting code snippets.
|
|
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.extractFixSuggestions = extractFixSuggestions;
|
|
13
|
-
exports.extractSection = extractSection;
|
|
14
|
-
exports.parseSuggestions = parseSuggestions;
|
|
15
|
-
const node_path_1 = __importDefault(require("node:path"));
|
|
16
|
-
const logger_1 = __importDefault(require("../logger"));
|
|
17
|
-
const types_1 = require("./types");
|
|
18
|
-
/**
|
|
19
|
-
* Extract fix suggestions from review content
|
|
20
|
-
* @param reviewContent The content of the review
|
|
21
|
-
* @param projectPath Base path of the project
|
|
22
|
-
* @param priorityLevel Optional priority level to extract (if not provided, extracts all)
|
|
23
|
-
* @returns Array of fix suggestions
|
|
24
|
-
*/
|
|
25
|
-
async function extractFixSuggestions(reviewContent, projectPath, priorityLevel) {
|
|
26
|
-
const suggestions = [];
|
|
27
|
-
// If a specific priority level is requested, only extract that level
|
|
28
|
-
if (priorityLevel) {
|
|
29
|
-
let section = null;
|
|
30
|
-
switch (priorityLevel) {
|
|
31
|
-
case types_1.FixPriority.HIGH:
|
|
32
|
-
section = extractSection(reviewContent, '### 🟥 High Priority', '### 🟧 Medium Priority');
|
|
33
|
-
break;
|
|
34
|
-
case types_1.FixPriority.MEDIUM:
|
|
35
|
-
section = extractSection(reviewContent, '### 🟧 Medium Priority', '### 🟩 Low Priority');
|
|
36
|
-
break;
|
|
37
|
-
case types_1.FixPriority.LOW:
|
|
38
|
-
section = extractSection(reviewContent, '### 🟩 Low Priority', '---');
|
|
39
|
-
break;
|
|
40
|
-
}
|
|
41
|
-
if (section) {
|
|
42
|
-
const prioritySuggestions = await parseSuggestions(section, priorityLevel, projectPath);
|
|
43
|
-
suggestions.push(...prioritySuggestions);
|
|
44
|
-
}
|
|
45
|
-
return suggestions;
|
|
46
|
-
}
|
|
47
|
-
// Otherwise, extract all priority levels
|
|
48
|
-
// Extract high priority issues
|
|
49
|
-
const highPrioritySection = extractSection(reviewContent, '### 🟥 High Priority', '### 🟧 Medium Priority');
|
|
50
|
-
if (highPrioritySection) {
|
|
51
|
-
const highPrioritySuggestions = await parseSuggestions(highPrioritySection, types_1.FixPriority.HIGH, projectPath);
|
|
52
|
-
suggestions.push(...highPrioritySuggestions);
|
|
53
|
-
}
|
|
54
|
-
// Extract medium priority issues
|
|
55
|
-
const mediumPrioritySection = extractSection(reviewContent, '### 🟧 Medium Priority', '### 🟩 Low Priority');
|
|
56
|
-
if (mediumPrioritySection) {
|
|
57
|
-
const mediumPrioritySuggestions = await parseSuggestions(mediumPrioritySection, types_1.FixPriority.MEDIUM, projectPath);
|
|
58
|
-
suggestions.push(...mediumPrioritySuggestions);
|
|
59
|
-
}
|
|
60
|
-
// Extract low priority issues
|
|
61
|
-
const lowPrioritySection = extractSection(reviewContent, '### 🟩 Low Priority', '---');
|
|
62
|
-
if (lowPrioritySection) {
|
|
63
|
-
const lowPrioritySuggestions = await parseSuggestions(lowPrioritySection, types_1.FixPriority.LOW, projectPath);
|
|
64
|
-
suggestions.push(...lowPrioritySuggestions);
|
|
65
|
-
}
|
|
66
|
-
return suggestions;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Extract a section from the review content
|
|
70
|
-
* @param content Full review content
|
|
71
|
-
* @param startMarker Start marker for the section
|
|
72
|
-
* @param endMarker End marker for the section
|
|
73
|
-
* @returns The extracted section or null if not found
|
|
74
|
-
*/
|
|
75
|
-
function extractSection(content, startMarker, endMarker) {
|
|
76
|
-
// Try exact match first
|
|
77
|
-
let startIndex = content.indexOf(startMarker);
|
|
78
|
-
// If exact match fails, try more flexible matching
|
|
79
|
-
if (startIndex === -1) {
|
|
80
|
-
// Try without emoji
|
|
81
|
-
const startMarkerNoEmoji = startMarker.replace(/🟥|🟧|🟩/g, '').trim();
|
|
82
|
-
startIndex = content.indexOf(startMarkerNoEmoji);
|
|
83
|
-
// Try with different heading levels (## or # instead of ###)
|
|
84
|
-
if (startIndex === -1) {
|
|
85
|
-
const startMarkerAltHeading = startMarker.replace('###', '##');
|
|
86
|
-
startIndex = content.indexOf(startMarkerAltHeading);
|
|
87
|
-
}
|
|
88
|
-
if (startIndex === -1) {
|
|
89
|
-
const startMarkerAltHeading2 = startMarker.replace('###', '#');
|
|
90
|
-
startIndex = content.indexOf(startMarkerAltHeading2);
|
|
91
|
-
}
|
|
92
|
-
// Try with case-insensitive match for priority level
|
|
93
|
-
if (startIndex === -1) {
|
|
94
|
-
const priorityLevel = startMarker.includes('High')
|
|
95
|
-
? 'high'
|
|
96
|
-
: startMarker.includes('Medium')
|
|
97
|
-
? 'medium'
|
|
98
|
-
: startMarker.includes('Low')
|
|
99
|
-
? 'low'
|
|
100
|
-
: '';
|
|
101
|
-
if (priorityLevel) {
|
|
102
|
-
const regex = new RegExp(`[#]{1,3}\\s*(?:🟥|🟧|🟩)?\\s*${priorityLevel}\\s*priority`, 'i');
|
|
103
|
-
const match = content.match(regex);
|
|
104
|
-
if (match && match.index !== undefined) {
|
|
105
|
-
startIndex = match.index;
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
if (startIndex === -1)
|
|
111
|
-
return null;
|
|
112
|
-
// Try exact match for end marker
|
|
113
|
-
let endIndex = content.indexOf(endMarker, startIndex);
|
|
114
|
-
// If exact match fails, try more flexible matching for end marker
|
|
115
|
-
if (endIndex === -1) {
|
|
116
|
-
// Try without emoji
|
|
117
|
-
const endMarkerNoEmoji = endMarker.replace(/🟥|🟧|🟩/g, '').trim();
|
|
118
|
-
endIndex = content.indexOf(endMarkerNoEmoji, startIndex);
|
|
119
|
-
// Try with different heading levels
|
|
120
|
-
if (endIndex === -1) {
|
|
121
|
-
const endMarkerAltHeading = endMarker.replace('###', '##');
|
|
122
|
-
endIndex = content.indexOf(endMarkerAltHeading, startIndex);
|
|
123
|
-
}
|
|
124
|
-
if (endIndex === -1) {
|
|
125
|
-
const endMarkerAltHeading2 = endMarker.replace('###', '#');
|
|
126
|
-
endIndex = content.indexOf(endMarkerAltHeading2, startIndex);
|
|
127
|
-
}
|
|
128
|
-
// If we still can't find the end marker, look for the next heading
|
|
129
|
-
if (endIndex === -1) {
|
|
130
|
-
const nextHeadingMatch = content.substring(startIndex).match(/\n[#]{1,3}\s/);
|
|
131
|
-
if (nextHeadingMatch && nextHeadingMatch.index !== undefined) {
|
|
132
|
-
endIndex = startIndex + nextHeadingMatch.index;
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
if (endIndex === -1)
|
|
137
|
-
return content.substring(startIndex);
|
|
138
|
-
return content.substring(startIndex, endIndex);
|
|
139
|
-
}
|
|
140
|
-
/**
|
|
141
|
-
* Parse suggestions from a section of the review
|
|
142
|
-
* @param sectionContent Content of the section
|
|
143
|
-
* @param priority Priority level of the suggestions
|
|
144
|
-
* @param projectPath Base path of the project
|
|
145
|
-
* @returns Array of fix suggestions
|
|
146
|
-
*/
|
|
147
|
-
async function parseSuggestions(sectionContent, priority, projectPath) {
|
|
148
|
-
const suggestions = [];
|
|
149
|
-
// Split the section into individual issues to reduce memory usage
|
|
150
|
-
// Try different patterns to match issue blocks
|
|
151
|
-
let issueBlocks = [];
|
|
152
|
-
// Pattern 1: **Issue**: format
|
|
153
|
-
const pattern1Blocks = sectionContent
|
|
154
|
-
.split(/(?=\*\*Issue\*\*:)/)
|
|
155
|
-
.filter((block) => block.trim().startsWith('**Issue**:'));
|
|
156
|
-
if (pattern1Blocks.length > 0) {
|
|
157
|
-
issueBlocks = pattern1Blocks;
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
// Pattern 2: 1. **Issue**: format (numbered list)
|
|
161
|
-
const pattern2Blocks = sectionContent
|
|
162
|
-
.split(/(?=\d+\.\s*\*\*Issue\*\*:)/)
|
|
163
|
-
.filter((block) => block.trim().match(/^\d+\.\s*\*\*Issue\*\*/));
|
|
164
|
-
if (pattern2Blocks.length > 0) {
|
|
165
|
-
issueBlocks = pattern2Blocks;
|
|
166
|
-
}
|
|
167
|
-
else {
|
|
168
|
-
// Pattern 3: ### Issue: format (heading)
|
|
169
|
-
const pattern3Blocks = sectionContent
|
|
170
|
-
.split(/(?=[#]{1,3}\s+Issue:)/)
|
|
171
|
-
.filter((block) => block.trim().match(/^[#]{1,3}\s+Issue:/));
|
|
172
|
-
if (pattern3Blocks.length > 0) {
|
|
173
|
-
issueBlocks = pattern3Blocks;
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
// Pattern 4: **Finding**: format (security reviews)
|
|
177
|
-
const pattern4Blocks = sectionContent
|
|
178
|
-
.split(/(?=\*\*Finding\*\*:)/)
|
|
179
|
-
.filter((block) => block.trim().startsWith('**Finding**:'));
|
|
180
|
-
if (pattern4Blocks.length > 0) {
|
|
181
|
-
issueBlocks = pattern4Blocks;
|
|
182
|
-
}
|
|
183
|
-
else {
|
|
184
|
-
// Pattern 5: **Performance Issue**: format (performance reviews)
|
|
185
|
-
const pattern5Blocks = sectionContent
|
|
186
|
-
.split(/(?=\*\*Performance Issue\*\*:)/)
|
|
187
|
-
.filter((block) => block.trim().startsWith('**Performance Issue**:'));
|
|
188
|
-
if (pattern5Blocks.length > 0) {
|
|
189
|
-
issueBlocks = pattern5Blocks;
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
for (const issueBlock of issueBlocks) {
|
|
196
|
-
try {
|
|
197
|
-
// Extract issue description using multiple patterns
|
|
198
|
-
let issueDescription = '';
|
|
199
|
-
let issueMatch = issueBlock.match(/\*\*Issue\*\*:([^*]+)/);
|
|
200
|
-
if (!issueMatch) {
|
|
201
|
-
// Try alternative patterns
|
|
202
|
-
issueMatch = issueBlock.match(/\d+\.\s*\*\*Issue\*\*:([^*]+)/);
|
|
203
|
-
}
|
|
204
|
-
if (!issueMatch) {
|
|
205
|
-
issueMatch = issueBlock.match(/[#]{1,3}\s+Issue:([^\n]+)/);
|
|
206
|
-
}
|
|
207
|
-
if (!issueMatch) {
|
|
208
|
-
issueMatch = issueBlock.match(/\*\*Finding\*\*:([^*]+)/);
|
|
209
|
-
}
|
|
210
|
-
if (!issueMatch) {
|
|
211
|
-
issueMatch = issueBlock.match(/\*\*Performance Issue\*\*:([^*]+)/);
|
|
212
|
-
}
|
|
213
|
-
if (!issueMatch)
|
|
214
|
-
continue;
|
|
215
|
-
issueDescription = issueMatch[1].trim();
|
|
216
|
-
// Extract file path using multiple patterns
|
|
217
|
-
let filePath = '';
|
|
218
|
-
let fileMatch = issueBlock.match(/\*\*File\*\*:([^*]+)/);
|
|
219
|
-
if (!fileMatch) {
|
|
220
|
-
fileMatch = issueBlock.match(/\*\*Location\*\*:([^*]+)/);
|
|
221
|
-
}
|
|
222
|
-
if (!fileMatch) {
|
|
223
|
-
fileMatch = issueBlock.match(/File:([^\n]+)/);
|
|
224
|
-
}
|
|
225
|
-
if (!fileMatch) {
|
|
226
|
-
fileMatch = issueBlock.match(/Path:([^\n]+)/);
|
|
227
|
-
}
|
|
228
|
-
if (!fileMatch) {
|
|
229
|
-
// Try to find any path-like string in the issue block
|
|
230
|
-
const pathMatch = issueBlock.match(/(?:src|lib|test|app|components|utils|helpers|services|models|controllers|views|pages|api|config|public|assets|styles|css|js|ts|tsx|jsx)\/[\w\-./_]+\.(ts|js|tsx|jsx|json|css|scss|html|md)/);
|
|
231
|
-
if (pathMatch) {
|
|
232
|
-
filePath = pathMatch[0].trim();
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
continue; // Skip if we can't find a file path
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
else {
|
|
239
|
-
filePath = fileMatch[1].trim();
|
|
240
|
-
}
|
|
241
|
-
// Remove any markdown formatting from the file path
|
|
242
|
-
let cleanFilePath = filePath.replace(/`/g, '').replace(/\*/g, '').trim();
|
|
243
|
-
// Extract the actual file path from common patterns
|
|
244
|
-
const filePathMatch = cleanFilePath.match(/(?:src|\/)\S+\.(ts|js|tsx|jsx|json)/);
|
|
245
|
-
if (filePathMatch) {
|
|
246
|
-
cleanFilePath = filePathMatch[0];
|
|
247
|
-
}
|
|
248
|
-
else {
|
|
249
|
-
// If we can't extract a clear file path, try to find the most likely path
|
|
250
|
-
const possiblePaths = cleanFilePath
|
|
251
|
-
.split(/[\s,()]/)
|
|
252
|
-
.filter((part) => part.includes('/') || part.includes('.ts') || part.includes('.js'));
|
|
253
|
-
if (possiblePaths.length > 0) {
|
|
254
|
-
cleanFilePath = possiblePaths[0];
|
|
255
|
-
}
|
|
256
|
-
}
|
|
257
|
-
// Resolve the full file path
|
|
258
|
-
const fullFilePath = node_path_1.default.resolve(projectPath, cleanFilePath);
|
|
259
|
-
// Extract location
|
|
260
|
-
const locationMatch = issueBlock.match(/\*\*Location\*\*:([^*]+)/);
|
|
261
|
-
const location = locationMatch ? locationMatch[1].trim() : '';
|
|
262
|
-
// Extract code blocks with more flexible pattern matching
|
|
263
|
-
// Match code blocks with or without language specifier
|
|
264
|
-
const codeBlockMatches = issueBlock.match(/```(?:[a-zA-Z0-9_-]*)?\s*([\s\S]*?)```/g) || [];
|
|
265
|
-
// If no code blocks found with triple backticks, try alternative formats
|
|
266
|
-
let codeBlocks = [];
|
|
267
|
-
if (codeBlockMatches.length > 0) {
|
|
268
|
-
codeBlocks = codeBlockMatches.map((block) => {
|
|
269
|
-
// Extract the content inside the code block
|
|
270
|
-
const content = block.replace(/```(?:[a-zA-Z0-9_-]*)?\s*|```$/g, '');
|
|
271
|
-
return content.trim();
|
|
272
|
-
});
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
// Try to find code blocks with indentation (4 spaces or tab)
|
|
276
|
-
const indentedCodeBlockMatch = issueBlock.match(/(?:^|\n)(?: {4}|\t)([^\n]+(?:\n(?: {4}|\t)[^\n]+)*)/g);
|
|
277
|
-
if (indentedCodeBlockMatch) {
|
|
278
|
-
codeBlocks = indentedCodeBlockMatch.map((block) => {
|
|
279
|
-
// Remove the indentation
|
|
280
|
-
return block.replace(/(?:^|\n)(?: {4}|\t)/g, '\n').trim();
|
|
281
|
-
});
|
|
282
|
-
}
|
|
283
|
-
// Try to find code blocks with 'Current code:' and 'Suggested code:' markers
|
|
284
|
-
const currentCodeMatch = issueBlock.match(/Current code:([\s\S]*?)(?:Suggested code:|$)/i);
|
|
285
|
-
const suggestedCodeMatch = issueBlock.match(/Suggested code:([\s\S]*?)(?:Impact:|$)/i);
|
|
286
|
-
if (currentCodeMatch?.[1].trim()) {
|
|
287
|
-
codeBlocks.push(currentCodeMatch[1].trim());
|
|
288
|
-
}
|
|
289
|
-
if (suggestedCodeMatch?.[1].trim()) {
|
|
290
|
-
codeBlocks.push(suggestedCodeMatch[1].trim());
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
// Create suggestion
|
|
294
|
-
const suggestion = {
|
|
295
|
-
priority,
|
|
296
|
-
file: fullFilePath,
|
|
297
|
-
description: issueDescription,
|
|
298
|
-
};
|
|
299
|
-
// If we have code blocks, assume the first is current code and second is suggested code
|
|
300
|
-
if (codeBlocks.length >= 2) {
|
|
301
|
-
suggestion.currentCode = codeBlocks[0];
|
|
302
|
-
suggestion.suggestedCode = codeBlocks[1];
|
|
303
|
-
}
|
|
304
|
-
else if (codeBlocks.length === 1) {
|
|
305
|
-
// If only one code block, assume it's the suggested code
|
|
306
|
-
suggestion.suggestedCode = codeBlocks[0];
|
|
307
|
-
}
|
|
308
|
-
// Try to extract line numbers from location
|
|
309
|
-
const lineNumberMatch = location.match(/lines? (\d+)(?:-(\d+))?/i);
|
|
310
|
-
if (lineNumberMatch) {
|
|
311
|
-
const startLine = parseInt(lineNumberMatch[1], 10);
|
|
312
|
-
const endLine = lineNumberMatch[2] ? parseInt(lineNumberMatch[2], 10) : startLine;
|
|
313
|
-
suggestion.lineNumbers = { start: startLine, end: endLine };
|
|
314
|
-
}
|
|
315
|
-
suggestions.push(suggestion);
|
|
316
|
-
}
|
|
317
|
-
catch (error) {
|
|
318
|
-
logger_1.default.error('Error parsing suggestion:', error);
|
|
319
|
-
// Continue with the next issue block
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
return suggestions;
|
|
323
|
-
}
|
|
324
|
-
//# sourceMappingURL=reviewExtraction.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"reviewExtraction.js","sourceRoot":"","sources":["../../../src/utils/review/reviewExtraction.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Type definitions for review action modules
|
|
3
|
-
*
|
|
4
|
-
* This module provides shared types used across the review action modules.
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Priority levels for code review fixes
|
|
8
|
-
*/
|
|
9
|
-
export declare enum FixPriority {
|
|
10
|
-
HIGH = "high",
|
|
11
|
-
MEDIUM = "medium",
|
|
12
|
-
LOW = "low"
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Structure representing a code fix suggestion
|
|
16
|
-
*/
|
|
17
|
-
export interface FixSuggestion {
|
|
18
|
-
priority: FixPriority;
|
|
19
|
-
file: string;
|
|
20
|
-
description: string;
|
|
21
|
-
currentCode?: string;
|
|
22
|
-
suggestedCode?: string;
|
|
23
|
-
lineNumbers?: {
|
|
24
|
-
start: number;
|
|
25
|
-
end: number;
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Summary of fix actions taken
|
|
30
|
-
*/
|
|
31
|
-
export interface FixSummary {
|
|
32
|
-
highPriorityFixed: number;
|
|
33
|
-
mediumPriorityFixed: number;
|
|
34
|
-
lowPriorityFixed: number;
|
|
35
|
-
totalSuggestions: number;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Summary of suggestions found
|
|
39
|
-
*/
|
|
40
|
-
export interface SuggestionSummary {
|
|
41
|
-
highPrioritySuggestions: FixSuggestion[];
|
|
42
|
-
mediumPrioritySuggestions: FixSuggestion[];
|
|
43
|
-
lowPrioritySuggestions: FixSuggestion[];
|
|
44
|
-
totalSuggestions: number;
|
|
45
|
-
}
|