codereview-aia 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/analysis/FindingsExtractor.d.ts +105 -0
- package/dist/analysis/FindingsExtractor.js +363 -0
- package/dist/analysis/FindingsExtractor.js.map +1 -0
- package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +111 -0
- package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +215 -0
- package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +1 -0
- package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +142 -0
- package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +503 -0
- package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +1 -0
- package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +88 -0
- package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +343 -0
- package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +1 -0
- package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +104 -0
- package/dist/analysis/ai-detection/core/AIDetectionEngine.js +369 -0
- package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +1 -0
- package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +364 -0
- package/dist/analysis/ai-detection/types/DetectionTypes.js +32 -0
- package/dist/analysis/ai-detection/types/DetectionTypes.js.map +1 -0
- package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +97 -0
- package/dist/analysis/ai-detection/utils/SubmissionConverter.js +339 -0
- package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +1 -0
- package/dist/analysis/context/ReviewContext.d.ts +184 -0
- package/dist/analysis/context/ReviewContext.js +294 -0
- package/dist/analysis/context/ReviewContext.js.map +1 -0
- package/{src/analysis/context/index.ts → dist/analysis/context/index.d.ts} +0 -1
- package/dist/analysis/context/index.js +23 -0
- package/dist/analysis/context/index.js.map +1 -0
- package/{src/analysis/index.ts → dist/analysis/index.d.ts} +0 -1
- package/dist/analysis/index.js +24 -0
- package/dist/analysis/index.js.map +1 -0
- package/dist/analysis/static/wpPhpcsRunner.d.ts +11 -0
- package/dist/analysis/static/wpPhpcsRunner.js +219 -0
- package/dist/analysis/static/wpPhpcsRunner.js.map +1 -0
- package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +27 -0
- package/{src/analysis/tokens/TokenAnalysisFormatter.ts → dist/analysis/tokens/TokenAnalysisFormatter.js} +64 -75
- package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +1 -0
- package/dist/analysis/tokens/TokenAnalyzer.d.ts +155 -0
- package/dist/analysis/tokens/TokenAnalyzer.js +502 -0
- package/dist/analysis/tokens/TokenAnalyzer.js.map +1 -0
- package/{src/analysis/tokens/index.ts → dist/analysis/tokens/index.d.ts} +0 -1
- package/dist/analysis/tokens/index.js +24 -0
- package/dist/analysis/tokens/index.js.map +1 -0
- package/dist/clients/base/abstractClient.d.ts +99 -0
- package/dist/clients/base/abstractClient.js +98 -0
- package/dist/clients/base/abstractClient.js.map +1 -0
- package/dist/clients/base/httpClient.d.ts +24 -0
- package/dist/clients/base/httpClient.js +147 -0
- package/dist/clients/base/httpClient.js.map +1 -0
- package/{src/clients/base/index.ts → dist/clients/base/index.d.ts} +0 -1
- package/dist/clients/base/index.js +28 -0
- package/dist/clients/base/index.js.map +1 -0
- package/dist/clients/base/modelDetection.d.ts +41 -0
- package/dist/clients/base/modelDetection.js +88 -0
- package/dist/clients/base/modelDetection.js.map +1 -0
- package/dist/clients/base/responseProcessor.d.ts +45 -0
- package/dist/clients/base/responseProcessor.js +495 -0
- package/dist/clients/base/responseProcessor.js.map +1 -0
- package/dist/clients/factory/clientFactory.d.ts +23 -0
- package/dist/clients/factory/clientFactory.js +50 -0
- package/dist/clients/factory/clientFactory.js.map +1 -0
- package/{src/clients/factory/index.ts → dist/clients/factory/index.d.ts} +0 -1
- package/dist/clients/factory/index.js +24 -0
- package/dist/clients/factory/index.js.map +1 -0
- package/{src/clients/implementations/index.ts → dist/clients/implementations/index.d.ts} +0 -1
- package/dist/clients/implementations/index.js +24 -0
- package/dist/clients/implementations/index.js.map +1 -0
- package/dist/clients/implementations/openRouterClient.d.ts +69 -0
- package/dist/clients/implementations/openRouterClient.js +294 -0
- package/dist/clients/implementations/openRouterClient.js.map +1 -0
- package/dist/clients/openRouterClient.d.ts +42 -0
- package/dist/clients/openRouterClient.js +738 -0
- package/dist/clients/openRouterClient.js.map +1 -0
- package/{src/clients/openRouterClientWrapper.ts → dist/clients/openRouterClientWrapper.d.ts} +2 -24
- package/dist/clients/openRouterClientWrapper.js +64 -0
- package/dist/clients/openRouterClientWrapper.js.map +1 -0
- package/dist/clients/utils/directoryStructure.d.ts +14 -0
- package/dist/clients/utils/directoryStructure.js +48 -0
- package/dist/clients/utils/directoryStructure.js.map +1 -0
- package/{src/clients/utils/index.ts → dist/clients/utils/index.d.ts} +0 -1
- package/dist/clients/utils/index.js +31 -0
- package/dist/clients/utils/index.js.map +1 -0
- package/dist/clients/utils/languageDetection.d.ts +13 -0
- package/dist/clients/utils/languageDetection.js +46 -0
- package/dist/clients/utils/languageDetection.js.map +1 -0
- package/dist/clients/utils/promptFormatter.d.ts +37 -0
- package/dist/clients/utils/promptFormatter.js +150 -0
- package/dist/clients/utils/promptFormatter.js.map +1 -0
- package/{src/clients/utils/promptLoader.ts → dist/clients/utils/promptLoader.d.ts} +1 -27
- package/dist/clients/utils/promptLoader.js +49 -0
- package/dist/clients/utils/promptLoader.js.map +1 -0
- package/dist/clients/utils/tokenCounter.d.ts +81 -0
- package/dist/clients/utils/tokenCounter.js +209 -0
- package/dist/clients/utils/tokenCounter.js.map +1 -0
- package/dist/core/ApiClientSelector.d.ts +8 -0
- package/dist/core/ApiClientSelector.js +29 -0
- package/dist/core/ApiClientSelector.js.map +1 -0
- package/dist/core/ConfigurationService.d.ts +307 -0
- package/dist/core/ConfigurationService.js +516 -0
- package/dist/core/ConfigurationService.js.map +1 -0
- package/dist/core/ConsolidationService.d.ts +99 -0
- package/dist/core/ConsolidationService.js +341 -0
- package/dist/core/ConsolidationService.js.map +1 -0
- package/dist/core/InteractiveDisplayManager.d.ts +22 -0
- package/dist/core/InteractiveDisplayManager.js +70 -0
- package/dist/core/InteractiveDisplayManager.js.map +1 -0
- package/dist/core/OutputManager.d.ts +26 -0
- package/dist/core/OutputManager.js +217 -0
- package/dist/core/OutputManager.js.map +1 -0
- package/dist/core/ReviewGenerator.d.ts +13 -0
- package/dist/core/ReviewGenerator.js +102 -0
- package/dist/core/ReviewGenerator.js.map +1 -0
- package/dist/core/fileDiscovery.d.ts +35 -0
- package/dist/core/fileDiscovery.js +202 -0
- package/dist/core/fileDiscovery.js.map +1 -0
- package/dist/core/handlers/EstimationHandler.d.ts +18 -0
- package/dist/core/handlers/EstimationHandler.js +110 -0
- package/dist/core/handlers/EstimationHandler.js.map +1 -0
- package/dist/core/handlers/FileProcessingHandler.d.ts +31 -0
- package/dist/core/handlers/FileProcessingHandler.js +164 -0
- package/dist/core/handlers/FileProcessingHandler.js.map +1 -0
- package/dist/core/handlers/OutputHandler.d.ts +27 -0
- package/dist/core/handlers/OutputHandler.js +127 -0
- package/dist/core/handlers/OutputHandler.js.map +1 -0
- package/dist/core/handlers/ReviewExecutor.d.ts +32 -0
- package/dist/core/handlers/ReviewExecutor.js +111 -0
- package/dist/core/handlers/ReviewExecutor.js.map +1 -0
- package/dist/core/reviewOrchestrator.d.ts +24 -0
- package/dist/core/reviewOrchestrator.js +354 -0
- package/dist/core/reviewOrchestrator.js.map +1 -0
- package/dist/core/utils/ModelInfoUtils.d.ts +16 -0
- package/dist/core/utils/ModelInfoUtils.js +54 -0
- package/dist/core/utils/ModelInfoUtils.js.map +1 -0
- package/{src/formatters/outputFormatter.ts → dist/formatters/outputFormatter.d.ts} +2 -33
- package/dist/formatters/outputFormatter.js +65 -0
- package/dist/formatters/outputFormatter.js.map +1 -0
- package/dist/formatters/utils/IssueFormatters.d.ts +20 -0
- package/dist/formatters/utils/IssueFormatters.js +67 -0
- package/dist/formatters/utils/IssueFormatters.js.map +1 -0
- package/dist/formatters/utils/JsonFormatter.d.ts +13 -0
- package/dist/formatters/utils/JsonFormatter.js +57 -0
- package/dist/formatters/utils/JsonFormatter.js.map +1 -0
- package/dist/formatters/utils/MarkdownFormatters.d.ts +51 -0
- package/dist/formatters/utils/MarkdownFormatters.js +456 -0
- package/dist/formatters/utils/MarkdownFormatters.js.map +1 -0
- package/dist/formatters/utils/MetadataFormatter.d.ts +65 -0
- package/dist/formatters/utils/MetadataFormatter.js +219 -0
- package/dist/formatters/utils/MetadataFormatter.js.map +1 -0
- package/dist/formatters/utils/ModelInfoExtractor.d.ts +33 -0
- package/dist/formatters/utils/ModelInfoExtractor.js +111 -0
- package/dist/formatters/utils/ModelInfoExtractor.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js.map +1 -0
- package/dist/plugins/PluginInterface.d.ts +44 -0
- package/dist/plugins/PluginInterface.js +9 -0
- package/dist/plugins/PluginInterface.js.map +1 -0
- package/dist/plugins/PluginManager.d.ts +51 -0
- package/dist/plugins/PluginManager.js +151 -0
- package/dist/plugins/PluginManager.js.map +1 -0
- package/dist/prompts/PromptManager.d.ts +30 -0
- package/dist/prompts/PromptManager.js +62 -0
- package/dist/prompts/PromptManager.js.map +1 -0
- package/dist/prompts/cache/PromptCache.d.ts +32 -0
- package/dist/prompts/cache/PromptCache.js +48 -0
- package/dist/prompts/cache/PromptCache.js.map +1 -0
- package/dist/runtime/auth/service.d.ts +2 -0
- package/dist/runtime/auth/service.js +41 -0
- package/dist/runtime/auth/service.js.map +1 -0
- package/dist/runtime/auth/session.d.ts +5 -0
- package/dist/runtime/auth/session.js +87 -0
- package/dist/runtime/auth/session.js.map +1 -0
- package/dist/runtime/auth/types.d.ts +9 -0
- package/dist/runtime/auth/types.js +3 -0
- package/dist/runtime/auth/types.js.map +1 -0
- package/dist/runtime/cliEntry.d.ts +1 -0
- package/dist/runtime/cliEntry.js +266 -0
- package/dist/runtime/cliEntry.js.map +1 -0
- package/dist/runtime/debug/logManager.d.ts +5 -0
- package/dist/runtime/debug/logManager.js +31 -0
- package/dist/runtime/debug/logManager.js.map +1 -0
- package/dist/runtime/errors.d.ts +5 -0
- package/dist/runtime/errors.js +15 -0
- package/dist/runtime/errors.js.map +1 -0
- package/dist/runtime/fileCollector.d.ts +14 -0
- package/dist/runtime/fileCollector.js +382 -0
- package/dist/runtime/fileCollector.js.map +1 -0
- package/dist/runtime/manifest.d.ts +1 -0
- package/dist/runtime/manifest.js +65 -0
- package/dist/runtime/manifest.js.map +1 -0
- package/dist/runtime/openrouterProxy.d.ts +4 -0
- package/dist/runtime/openrouterProxy.js +43 -0
- package/dist/runtime/openrouterProxy.js.map +1 -0
- package/dist/runtime/preprod/webCheck.d.ts +1 -0
- package/dist/runtime/preprod/webCheck.js +98 -0
- package/dist/runtime/preprod/webCheck.js.map +1 -0
- package/dist/runtime/proxyConfig.d.ts +6 -0
- package/dist/runtime/proxyConfig.js +86 -0
- package/dist/runtime/proxyConfig.js.map +1 -0
- package/dist/runtime/proxyEnvironment.d.ts +3 -0
- package/dist/runtime/proxyEnvironment.js +63 -0
- package/dist/runtime/proxyEnvironment.js.map +1 -0
- package/dist/runtime/reportMerge.d.ts +30 -0
- package/dist/runtime/reportMerge.js +70 -0
- package/dist/runtime/reportMerge.js.map +1 -0
- package/dist/runtime/reporting/markdownReportBuilder.d.ts +17 -0
- package/dist/runtime/reporting/markdownReportBuilder.js +154 -0
- package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
- package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
- package/dist/runtime/reporting/reportDataCollector.js +170 -0
- package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
- package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
- package/dist/runtime/reporting/summaryGenerator.js +67 -0
- package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
- package/dist/runtime/reviewPipeline.d.ts +47 -0
- package/dist/runtime/reviewPipeline.js +161 -0
- package/dist/runtime/reviewPipeline.js.map +1 -0
- package/dist/runtime/runAiCodeReview.d.ts +28 -0
- package/dist/runtime/runAiCodeReview.js +373 -0
- package/dist/runtime/runAiCodeReview.js.map +1 -0
- package/dist/runtime/runtimeConfig.d.ts +4 -0
- package/dist/runtime/runtimeConfig.js +7 -0
- package/dist/runtime/runtimeConfig.js.map +1 -0
- package/dist/runtime/ui/Layout.d.ts +11 -0
- package/dist/runtime/ui/Layout.js +47 -0
- package/dist/runtime/ui/Layout.js.map +1 -0
- package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
- package/dist/runtime/ui/RuntimeApp.js +172 -0
- package/dist/runtime/ui/RuntimeApp.js.map +1 -0
- package/dist/runtime/ui/inkModules.d.ts +10 -0
- package/dist/runtime/ui/inkModules.js +63 -0
- package/dist/runtime/ui/inkModules.js.map +1 -0
- package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
- package/dist/runtime/ui/screens/AuthScreen.js +67 -0
- package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
- package/dist/runtime/ui/screens/ModeSelection.d.ts +10 -0
- package/dist/runtime/ui/screens/ModeSelection.js +100 -0
- package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
- package/dist/runtime/ui/screens/ProgressScreen.d.ts +12 -0
- package/dist/runtime/ui/screens/ProgressScreen.js +64 -0
- package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
- package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
- package/dist/runtime/ui/screens/ResultsScreen.js +29 -0
- package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
- package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
- package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
- package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
- package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
- package/dist/strategies/CodingTestReviewStrategy.js +681 -0
- package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
- package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
- package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
- package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
- package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
- package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
- package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
- package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
- package/dist/strategies/MultiPassReviewStrategy.js +590 -0
- package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
- package/dist/strategies/ReviewStrategy.d.ts +45 -0
- package/dist/strategies/ReviewStrategy.js +24 -0
- package/dist/strategies/ReviewStrategy.js.map +1 -0
- package/dist/strategies/StrategyFactory.d.ts +19 -0
- package/dist/strategies/StrategyFactory.js +72 -0
- package/dist/strategies/StrategyFactory.js.map +1 -0
- package/{src/strategies/index.ts → dist/strategies/index.d.ts} +0 -1
- package/dist/strategies/index.js +30 -0
- package/dist/strategies/index.js.map +1 -0
- package/dist/tokenizers/baseTokenizer.d.ts +25 -0
- package/dist/tokenizers/baseTokenizer.js +48 -0
- package/dist/tokenizers/baseTokenizer.js.map +1 -0
- package/dist/tokenizers/gptTokenizer.d.ts +7 -0
- package/dist/tokenizers/gptTokenizer.js +28 -0
- package/dist/tokenizers/gptTokenizer.js.map +1 -0
- package/{src/tokenizers/index.ts → dist/tokenizers/index.d.ts} +0 -1
- package/dist/tokenizers/index.js +24 -0
- package/dist/tokenizers/index.js.map +1 -0
- package/dist/types/apiResponses.d.ts +39 -0
- package/dist/types/apiResponses.js +9 -0
- package/dist/types/apiResponses.js.map +1 -0
- package/dist/types/cli.d.ts +22 -0
- package/dist/types/cli.js +3 -0
- package/dist/types/cli.js.map +1 -0
- package/{src/types/common.ts → dist/types/common.d.ts} +2 -19
- package/dist/types/common.js +14 -0
- package/dist/types/common.js.map +1 -0
- package/dist/types/configuration.d.ts +682 -0
- package/dist/types/configuration.js +65 -0
- package/dist/types/configuration.js.map +1 -0
- package/dist/types/review.d.ts +318 -0
- package/dist/types/review.js +8 -0
- package/dist/types/review.js.map +1 -0
- package/dist/types/reviewSchema.d.ts +543 -0
- package/{src/types/reviewSchema.ts → dist/types/reviewSchema.js} +44 -104
- package/dist/types/reviewSchema.js.map +1 -0
- package/dist/types/structuredReview.d.ts +119 -0
- package/dist/types/structuredReview.js +6 -0
- package/dist/types/structuredReview.js.map +1 -0
- package/dist/types/tokenAnalysis.d.ts +44 -0
- package/dist/types/tokenAnalysis.js +4 -0
- package/dist/types/tokenAnalysis.js.map +1 -0
- package/dist/utils/FileReader.d.ts +33 -0
- package/dist/utils/FileReader.js +88 -0
- package/dist/utils/FileReader.js.map +1 -0
- package/dist/utils/FileWriter.d.ts +26 -0
- package/dist/utils/FileWriter.js +76 -0
- package/dist/utils/FileWriter.js.map +1 -0
- package/dist/utils/PathGenerator.d.ts +30 -0
- package/dist/utils/PathGenerator.js +82 -0
- package/dist/utils/PathGenerator.js.map +1 -0
- package/dist/utils/api/apiUtils.d.ts +3 -0
- package/dist/utils/api/apiUtils.js +20 -0
- package/dist/utils/api/apiUtils.js.map +1 -0
- package/dist/utils/api/index.js +18 -0
- package/dist/utils/api/index.js.map +1 -0
- package/dist/utils/apiErrorHandler.d.ts +130 -0
- package/dist/utils/apiErrorHandler.js +256 -0
- package/dist/utils/apiErrorHandler.js.map +1 -0
- package/dist/utils/ciDataCollector.d.ts +51 -0
- package/dist/utils/ciDataCollector.js +197 -0
- package/dist/utils/ciDataCollector.js.map +1 -0
- package/dist/utils/codingTestConfigLoader.d.ts +66 -0
- package/dist/utils/codingTestConfigLoader.js +420 -0
- package/dist/utils/codingTestConfigLoader.js.map +1 -0
- package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
- package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
- package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
- package/dist/utils/detection/frameworkDetector.d.ts +43 -0
- package/dist/utils/detection/frameworkDetector.js +850 -0
- package/dist/utils/detection/frameworkDetector.js.map +1 -0
- package/{src/utils/detection/index.ts → dist/utils/detection/index.d.ts} +0 -1
- package/dist/utils/detection/index.js +28 -0
- package/dist/utils/detection/index.js.map +1 -0
- package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
- package/dist/utils/detection/projectTypeDetector.js +469 -0
- package/dist/utils/detection/projectTypeDetector.js.map +1 -0
- package/dist/utils/diagramGenerator.d.ts +49 -0
- package/dist/utils/diagramGenerator.js +218 -0
- package/dist/utils/diagramGenerator.js.map +1 -0
- package/dist/utils/errorLogger.d.ts +24 -0
- package/dist/utils/errorLogger.js +59 -0
- package/dist/utils/errorLogger.js.map +1 -0
- package/dist/utils/estimationUtils.d.ts +139 -0
- package/dist/utils/estimationUtils.js +329 -0
- package/dist/utils/estimationUtils.js.map +1 -0
- package/dist/utils/fileFilters.d.ts +72 -0
- package/dist/utils/fileFilters.js +338 -0
- package/dist/utils/fileFilters.js.map +1 -0
- package/dist/utils/fileSystem.d.ts +22 -0
- package/dist/utils/fileSystem.js +45 -0
- package/dist/utils/fileSystem.js.map +1 -0
- package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -14
- package/dist/utils/index.js +52 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +77 -0
- package/dist/utils/logger.js +271 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/pathValidator.d.ts +40 -0
- package/dist/utils/pathValidator.js +98 -0
- package/dist/utils/pathValidator.js.map +1 -0
- package/{src/utils/priorityFilter.ts → dist/utils/priorityFilter.d.ts} +1 -26
- package/dist/utils/priorityFilter.js +54 -0
- package/dist/utils/priorityFilter.js.map +1 -0
- package/dist/utils/projectDocs.d.ts +47 -0
- package/dist/utils/projectDocs.js +158 -0
- package/dist/utils/projectDocs.js.map +1 -0
- package/dist/utils/promptPaths.d.ts +6 -0
- package/dist/utils/promptPaths.js +33 -0
- package/dist/utils/promptPaths.js.map +1 -0
- package/dist/utils/promptTemplateManager.d.ts +34 -0
- package/dist/utils/promptTemplateManager.js +141 -0
- package/dist/utils/promptTemplateManager.js.map +1 -0
- package/dist/utils/review/consolidateReview.d.ts +15 -0
- package/dist/utils/review/consolidateReview.js +481 -0
- package/dist/utils/review/consolidateReview.js.map +1 -0
- package/dist/utils/review/fixDisplay.d.ts +20 -0
- package/dist/utils/review/fixDisplay.js +84 -0
- package/dist/utils/review/fixDisplay.js.map +1 -0
- package/dist/utils/review/fixImplementation.d.ts +28 -0
- package/dist/utils/review/fixImplementation.js +60 -0
- package/dist/utils/review/fixImplementation.js.map +1 -0
- package/dist/utils/review/index.d.ts +13 -0
- package/dist/utils/review/index.js +50 -0
- package/dist/utils/review/index.js.map +1 -0
- package/dist/utils/review/interactiveProcessing.d.ts +25 -0
- package/dist/utils/review/interactiveProcessing.js +251 -0
- package/dist/utils/review/interactiveProcessing.js.map +1 -0
- package/dist/utils/review/progressTracker.d.ts +106 -0
- package/dist/utils/review/progressTracker.js +227 -0
- package/dist/utils/review/progressTracker.js.map +1 -0
- package/dist/utils/review/reviewExtraction.d.ts +31 -0
- package/dist/utils/review/reviewExtraction.js +324 -0
- package/dist/utils/review/reviewExtraction.js.map +1 -0
- package/dist/utils/review/types.d.ts +45 -0
- package/dist/utils/review/types.js +18 -0
- package/dist/utils/review/types.js.map +1 -0
- package/{src/utils/reviewActionHandler.ts → dist/utils/reviewActionHandler.d.ts} +0 -2
- package/dist/utils/reviewActionHandler.js +34 -0
- package/dist/utils/reviewActionHandler.js.map +1 -0
- package/dist/utils/reviewParser.d.ts +34 -0
- package/dist/utils/reviewParser.js +218 -0
- package/dist/utils/reviewParser.js.map +1 -0
- package/dist/utils/sanitizer.d.ts +82 -0
- package/dist/utils/sanitizer.js +239 -0
- package/dist/utils/sanitizer.js.map +1 -0
- package/dist/utils/smartFileSelector.d.ts +50 -0
- package/dist/utils/smartFileSelector.js +261 -0
- package/dist/utils/smartFileSelector.js.map +1 -0
- package/dist/utils/templateLoader.d.ts +44 -0
- package/dist/utils/templateLoader.js +431 -0
- package/dist/utils/templateLoader.js.map +1 -0
- package/dist/utils/treeGenerator.d.ts +12 -0
- package/dist/utils/treeGenerator.js +133 -0
- package/dist/utils/treeGenerator.js.map +1 -0
- package/package.json +5 -2
- package/.cr-aia.yml +0 -23
- package/.crignore +0 -0
- package/docs/opt-in-full-context.md +0 -27
- package/reports/cr-cr-aia-17-11-2025-20-13.md +0 -354
- package/src/analysis/FindingsExtractor.ts +0 -431
- package/src/analysis/ai-detection/analyzers/BaseAnalyzer.ts +0 -267
- package/src/analysis/ai-detection/analyzers/DocumentationAnalyzer.ts +0 -622
- package/src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts +0 -430
- package/src/analysis/ai-detection/core/AIDetectionEngine.ts +0 -467
- package/src/analysis/ai-detection/types/DetectionTypes.ts +0 -406
- package/src/analysis/ai-detection/utils/SubmissionConverter.ts +0 -390
- package/src/analysis/context/ReviewContext.ts +0 -378
- package/src/analysis/tokens/TokenAnalyzer.ts +0 -747
- package/src/clients/base/abstractClient.ts +0 -190
- package/src/clients/base/httpClient.ts +0 -160
- package/src/clients/base/modelDetection.ts +0 -107
- package/src/clients/base/responseProcessor.ts +0 -586
- package/src/clients/factory/clientFactory.ts +0 -55
- package/src/clients/implementations/openRouterClient.ts +0 -413
- package/src/clients/openRouterClient.ts +0 -870
- package/src/clients/utils/directoryStructure.ts +0 -52
- package/src/clients/utils/languageDetection.ts +0 -44
- package/src/clients/utils/promptFormatter.ts +0 -182
- package/src/clients/utils/tokenCounter.ts +0 -297
- package/src/core/ApiClientSelector.ts +0 -37
- package/src/core/ConfigurationService.ts +0 -591
- package/src/core/ConsolidationService.ts +0 -423
- package/src/core/InteractiveDisplayManager.ts +0 -81
- package/src/core/OutputManager.ts +0 -275
- package/src/core/ReviewGenerator.ts +0 -140
- package/src/core/fileDiscovery.ts +0 -237
- package/src/core/handlers/EstimationHandler.ts +0 -104
- package/src/core/handlers/FileProcessingHandler.ts +0 -210
- package/src/core/handlers/OutputHandler.ts +0 -125
- package/src/core/handlers/ReviewExecutor.ts +0 -104
- package/src/core/reviewOrchestrator.ts +0 -333
- package/src/core/utils/ModelInfoUtils.ts +0 -56
- package/src/formatters/utils/IssueFormatters.ts +0 -83
- package/src/formatters/utils/JsonFormatter.ts +0 -77
- package/src/formatters/utils/MarkdownFormatters.ts +0 -609
- package/src/formatters/utils/MetadataFormatter.ts +0 -269
- package/src/formatters/utils/ModelInfoExtractor.ts +0 -115
- package/src/index.ts +0 -25
- package/src/plugins/PluginInterface.ts +0 -50
- package/src/plugins/PluginManager.ts +0 -126
- package/src/prompts/PromptManager.ts +0 -69
- package/src/prompts/cache/PromptCache.ts +0 -50
- package/src/prompts/promptText/common/variables/css-frameworks.json +0 -33
- package/src/prompts/promptText/common/variables/framework-versions.json +0 -45
- package/src/prompts/promptText/frameworks/react/comprehensive.hbs +0 -19
- package/src/prompts/promptText/languages/css/comprehensive.hbs +0 -18
- package/src/prompts/promptText/languages/generic/comprehensive.hbs +0 -20
- package/src/prompts/promptText/languages/html/comprehensive.hbs +0 -18
- package/src/prompts/promptText/languages/javascript/comprehensive.hbs +0 -18
- package/src/prompts/promptText/languages/python/comprehensive.hbs +0 -18
- package/src/prompts/promptText/languages/typescript/comprehensive.hbs +0 -18
- package/src/runtime/auth/service.ts +0 -58
- package/src/runtime/auth/session.ts +0 -103
- package/src/runtime/auth/types.ts +0 -11
- package/src/runtime/cliEntry.ts +0 -214
- package/src/runtime/debug/logManager.ts +0 -37
- package/src/runtime/errors.ts +0 -13
- package/src/runtime/fileCollector.ts +0 -495
- package/src/runtime/manifest.ts +0 -64
- package/src/runtime/openrouterProxy.ts +0 -45
- package/src/runtime/preprod/webCheck.ts +0 -104
- package/src/runtime/proxyConfig.ts +0 -94
- package/src/runtime/proxyEnvironment.ts +0 -71
- package/src/runtime/reportMerge.ts +0 -102
- package/src/runtime/reporting/markdownReportBuilder.ts +0 -138
- package/src/runtime/reporting/reportDataCollector.ts +0 -234
- package/src/runtime/reporting/summaryGenerator.ts +0 -86
- package/src/runtime/reviewPipeline.ts +0 -200
- package/src/runtime/runAiCodeReview.ts +0 -308
- package/src/runtime/runtimeConfig.ts +0 -5
- package/src/runtime/ui/Layout.tsx +0 -57
- package/src/runtime/ui/RuntimeApp.tsx +0 -262
- package/src/runtime/ui/inkModules.ts +0 -73
- package/src/runtime/ui/screens/AuthScreen.tsx +0 -128
- package/src/runtime/ui/screens/ModeSelection.tsx +0 -185
- package/src/runtime/ui/screens/ProgressScreen.tsx +0 -110
- package/src/runtime/ui/screens/ResultsScreen.tsx +0 -103
- package/src/strategies/ArchitecturalReviewStrategy.ts +0 -54
- package/src/strategies/CodingTestReviewStrategy.ts +0 -920
- package/src/strategies/ConsolidatedReviewStrategy.ts +0 -59
- package/src/strategies/ExtractPatternsReviewStrategy.ts +0 -64
- package/src/strategies/MultiPassReviewStrategy.ts +0 -785
- package/src/strategies/ReviewStrategy.ts +0 -64
- package/src/strategies/StrategyFactory.ts +0 -79
- package/src/tokenizers/baseTokenizer.ts +0 -61
- package/src/tokenizers/gptTokenizer.ts +0 -27
- package/src/types/apiResponses.ts +0 -40
- package/src/types/cli.ts +0 -24
- package/src/types/configuration.ts +0 -201
- package/src/types/handlebars.d.ts +0 -5
- package/src/types/patch.d.ts +0 -25
- package/src/types/review.ts +0 -312
- package/src/types/reviewContext.d.ts +0 -65
- package/src/types/structuredReview.ts +0 -167
- package/src/types/tokenAnalysis.ts +0 -56
- package/src/utils/FileReader.ts +0 -93
- package/src/utils/FileWriter.ts +0 -76
- package/src/utils/PathGenerator.ts +0 -97
- package/src/utils/api/apiUtils.ts +0 -14
- package/src/utils/apiErrorHandler.ts +0 -287
- package/src/utils/ciDataCollector.ts +0 -252
- package/src/utils/codingTestConfigLoader.ts +0 -466
- package/src/utils/dependencies/aiDependencyAnalyzer.ts +0 -454
- package/src/utils/detection/frameworkDetector.ts +0 -879
- package/src/utils/detection/projectTypeDetector.ts +0 -518
- package/src/utils/diagramGenerator.ts +0 -206
- package/src/utils/errorLogger.ts +0 -60
- package/src/utils/estimationUtils.ts +0 -407
- package/src/utils/fileFilters.ts +0 -373
- package/src/utils/fileSystem.ts +0 -57
- package/src/utils/logger.ts +0 -290
- package/src/utils/pathValidator.ts +0 -98
- package/src/utils/projectDocs.ts +0 -189
- package/src/utils/promptPaths.ts +0 -29
- package/src/utils/promptTemplateManager.ts +0 -157
- package/src/utils/review/consolidateReview.ts +0 -553
- package/src/utils/review/fixDisplay.ts +0 -100
- package/src/utils/review/fixImplementation.ts +0 -61
- package/src/utils/review/index.ts +0 -36
- package/src/utils/review/interactiveProcessing.ts +0 -294
- package/src/utils/review/progressTracker.ts +0 -296
- package/src/utils/review/reviewExtraction.ts +0 -382
- package/src/utils/review/types.ts +0 -46
- package/src/utils/reviewParser.ts +0 -253
- package/src/utils/sanitizer.ts +0 -238
- package/src/utils/smartFileSelector.ts +0 -255
- package/src/utils/templateLoader.ts +0 -514
- package/src/utils/treeGenerator.ts +0 -153
- package/tsconfig.build.json +0 -14
- package/tsconfig.json +0 -59
- /package/{src/utils/api/index.ts → dist/utils/api/index.d.ts} +0 -0
|
@@ -0,0 +1,343 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Git history analyzer for detecting AI-generated code patterns.
|
|
4
|
+
*
|
|
5
|
+
* This analyzer examines git commit history, patterns, and metadata to identify
|
|
6
|
+
* characteristics commonly associated with AI-generated code submissions.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.GitHistoryAnalyzer = void 0;
|
|
10
|
+
const BaseAnalyzer_1 = require("./BaseAnalyzer");
|
|
11
|
+
/**
|
|
12
|
+
* Analyzer for git history patterns that may indicate AI generation
|
|
13
|
+
*/
|
|
14
|
+
class GitHistoryAnalyzer extends BaseAnalyzer_1.BaseAnalyzer {
|
|
15
|
+
/**
|
|
16
|
+
* Get analyzer name
|
|
17
|
+
*/
|
|
18
|
+
getAnalyzerName() {
|
|
19
|
+
return 'git';
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Analyze git history for AI-generated patterns
|
|
23
|
+
* @param submission Code submission to analyze
|
|
24
|
+
* @returns Git analysis result
|
|
25
|
+
*/
|
|
26
|
+
async analyze(submission) {
|
|
27
|
+
this.startTimer();
|
|
28
|
+
const patterns = [];
|
|
29
|
+
try {
|
|
30
|
+
const commits = submission.repository.commits;
|
|
31
|
+
if (commits.length === 0) {
|
|
32
|
+
return this.createEmptyResult();
|
|
33
|
+
}
|
|
34
|
+
// Pattern H1.1: Simultaneous File Creation
|
|
35
|
+
const bulkCreationResult = this.detectBulkFileCreation(commits);
|
|
36
|
+
if (bulkCreationResult.detected) {
|
|
37
|
+
patterns.push(this.createDetectedPattern('H1.1', 'Simultaneous File Creation', 'high', bulkCreationResult.score, 'Initial commit contains unusually large number of files, suggesting bulk generation', bulkCreationResult.evidence || {}));
|
|
38
|
+
}
|
|
39
|
+
// Pattern H1.2: AI-Generated Commit Messages
|
|
40
|
+
const aiCommitResult = this.detectAICommitMessages(commits);
|
|
41
|
+
if (aiCommitResult.detected) {
|
|
42
|
+
patterns.push(this.createDetectedPattern('H1.2', 'AI-Generated Commit Messages', 'high', aiCommitResult.score, 'Commit messages follow AI-generated patterns and templates', aiCommitResult.evidence || {}));
|
|
43
|
+
}
|
|
44
|
+
// Pattern H1.3: Absence of Debugging Commits
|
|
45
|
+
const debuggingAbsenceResult = this.detectDebuggingAbsence(commits);
|
|
46
|
+
if (debuggingAbsenceResult.detected) {
|
|
47
|
+
patterns.push(this.createDetectedPattern('H1.3', 'Missing Developer Workflow', 'high', debuggingAbsenceResult.score, 'Lacks typical developer debugging and iteration patterns', debuggingAbsenceResult.evidence || {}));
|
|
48
|
+
}
|
|
49
|
+
// Pattern H1.4: Perfect Initial Commit
|
|
50
|
+
const perfectInitialResult = this.detectPerfectInitialCommit(commits);
|
|
51
|
+
if (perfectInitialResult.detected) {
|
|
52
|
+
patterns.push(this.createDetectedPattern('H1.4', 'Perfect Initial Commit', 'high', perfectInitialResult.score, 'Initial commit contains complete, working project without typical development artifacts', perfectInitialResult.evidence || {}));
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
analyzer: 'git-history',
|
|
56
|
+
patterns,
|
|
57
|
+
metadata: {
|
|
58
|
+
totalCommits: commits.length,
|
|
59
|
+
analysisTime: this.getElapsedTime(),
|
|
60
|
+
sufficientHistory: commits.length >= 3,
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
catch (error) {
|
|
65
|
+
console.error('Error in GitHistoryAnalyzer:', error);
|
|
66
|
+
return this.createEmptyResult();
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Detect bulk file creation in initial commit
|
|
71
|
+
* @param commits Array of git commits
|
|
72
|
+
* @returns Pattern detection result
|
|
73
|
+
*/
|
|
74
|
+
detectBulkFileCreation(commits) {
|
|
75
|
+
if (commits.length === 0) {
|
|
76
|
+
return this.createPatternResult(false, 0);
|
|
77
|
+
}
|
|
78
|
+
const initialCommit = commits[0];
|
|
79
|
+
const fileCount = initialCommit.changedFiles.length;
|
|
80
|
+
// Threshold: >15 files in initial commit is suspicious
|
|
81
|
+
// More files = higher suspicion
|
|
82
|
+
if (fileCount > 15) {
|
|
83
|
+
const score = Math.min(0.95, 0.6 + (fileCount - 15) * 0.02);
|
|
84
|
+
return this.createPatternResult(true, score, {
|
|
85
|
+
fileCount,
|
|
86
|
+
commitHash: initialCommit.hash,
|
|
87
|
+
message: initialCommit.message,
|
|
88
|
+
files: initialCommit.changedFiles.slice(0, 10), // First 10 files for evidence
|
|
89
|
+
timestamp: initialCommit.timestamp,
|
|
90
|
+
threshold: 15,
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
return this.createPatternResult(false, 0);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Detect AI-generated commit message patterns
|
|
97
|
+
* @param commits Array of git commits
|
|
98
|
+
* @returns Pattern detection result
|
|
99
|
+
*/
|
|
100
|
+
detectAICommitMessages(commits) {
|
|
101
|
+
const aiPatterns = [
|
|
102
|
+
// Conventional commit patterns (overly consistent usage)
|
|
103
|
+
/^(feat|fix|docs|style|refactor|test|chore)(\(.+\))?: .{20,}/,
|
|
104
|
+
// Template-like descriptive messages
|
|
105
|
+
/^(Add|Update|Fix|Implement|Create) .+ (feature|functionality|component|module)$/i,
|
|
106
|
+
// Overly formal initial commit messages
|
|
107
|
+
/^Initial (commit|implementation) with (complete|full) .+ structure$/i,
|
|
108
|
+
// Perfect grammar and structure
|
|
109
|
+
/^(Implement|Add|Create) comprehensive .+ with .+ support$/i,
|
|
110
|
+
// Emoji usage patterns common in AI
|
|
111
|
+
/^(✨|🚀|🎉|🔧|📝|🐛|💡) /,
|
|
112
|
+
];
|
|
113
|
+
let matches = 0;
|
|
114
|
+
const evidence = [];
|
|
115
|
+
const totalCommits = commits.length;
|
|
116
|
+
commits.forEach((commit, index) => {
|
|
117
|
+
const isAIPattern = aiPatterns.some((pattern) => pattern.test(commit.message));
|
|
118
|
+
if (isAIPattern) {
|
|
119
|
+
matches++;
|
|
120
|
+
evidence.push({
|
|
121
|
+
hash: commit.hash,
|
|
122
|
+
message: commit.message,
|
|
123
|
+
timestamp: commit.timestamp,
|
|
124
|
+
position: index === 0 ? 'initial' : index === totalCommits - 1 ? 'latest' : 'middle',
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
const ratio = matches / totalCommits;
|
|
129
|
+
// >70% of commits match AI patterns is highly suspicious
|
|
130
|
+
if (ratio > 0.7 && totalCommits >= 3) {
|
|
131
|
+
const score = Math.min(0.95, 0.6 + ratio * 0.3);
|
|
132
|
+
return this.createPatternResult(true, score, {
|
|
133
|
+
matchingCommits: matches,
|
|
134
|
+
totalCommits,
|
|
135
|
+
ratio,
|
|
136
|
+
examples: evidence.slice(0, 5), // Top 5 examples
|
|
137
|
+
patterns: aiPatterns.map((p) => p.source),
|
|
138
|
+
});
|
|
139
|
+
}
|
|
140
|
+
return this.createPatternResult(false, ratio * 0.4); // Partial score for moderate usage
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Detect absence of typical debugging/development commits
|
|
144
|
+
* @param commits Array of git commits
|
|
145
|
+
* @returns Pattern detection result
|
|
146
|
+
*/
|
|
147
|
+
detectDebuggingAbsence(commits) {
|
|
148
|
+
if (commits.length < 3) {
|
|
149
|
+
return this.createPatternResult(false, 0); // Need sufficient history
|
|
150
|
+
}
|
|
151
|
+
const developmentPatterns = [
|
|
152
|
+
// Work in progress indicators
|
|
153
|
+
/\bwip\b/i,
|
|
154
|
+
/work.?in.?progress/i,
|
|
155
|
+
// Quick fixes and debugging
|
|
156
|
+
/\bfix\b(?!:)/i, // "fix" but not "fix:" (conventional commits)
|
|
157
|
+
/\bbug\b/i,
|
|
158
|
+
/\bdebug\b/i,
|
|
159
|
+
/oops/i,
|
|
160
|
+
/typo/i,
|
|
161
|
+
// Experimental work
|
|
162
|
+
/test/i,
|
|
163
|
+
/experiment/i,
|
|
164
|
+
/try/i,
|
|
165
|
+
/attempt/i,
|
|
166
|
+
// Informal language
|
|
167
|
+
/\btodo\b/i,
|
|
168
|
+
/\bfixme\b/i,
|
|
169
|
+
/wtf/i,
|
|
170
|
+
/hack/i,
|
|
171
|
+
];
|
|
172
|
+
let humanLikeCommits = 0;
|
|
173
|
+
const totalCommits = commits.length;
|
|
174
|
+
commits.forEach((commit) => {
|
|
175
|
+
const isHumanLike = developmentPatterns.some((pattern) => pattern.test(commit.message));
|
|
176
|
+
if (isHumanLike) {
|
|
177
|
+
humanLikeCommits++;
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
const humanRatio = humanLikeCommits / totalCommits;
|
|
181
|
+
// Very low ratio of human-like commits suggests AI generation
|
|
182
|
+
if (humanRatio < 0.1 && totalCommits >= 5) {
|
|
183
|
+
const score = Math.min(0.88, 0.5 + (0.1 - humanRatio) * 3);
|
|
184
|
+
return this.createPatternResult(true, score, {
|
|
185
|
+
humanLikeCommits,
|
|
186
|
+
totalCommits,
|
|
187
|
+
humanRatio,
|
|
188
|
+
missingPatterns: developmentPatterns.map((p) => p.source),
|
|
189
|
+
threshold: 0.1,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
return this.createPatternResult(false, 0);
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* Detect perfect initial commit without development artifacts
|
|
196
|
+
* @param commits Array of git commits
|
|
197
|
+
* @returns Pattern detection result
|
|
198
|
+
*/
|
|
199
|
+
detectPerfectInitialCommit(commits) {
|
|
200
|
+
if (commits.length === 0) {
|
|
201
|
+
return this.createPatternResult(false, 0);
|
|
202
|
+
}
|
|
203
|
+
const initialCommit = commits[0];
|
|
204
|
+
const fileCount = initialCommit.changedFiles.length;
|
|
205
|
+
// Indicators of "perfect" initial commit
|
|
206
|
+
const indicators = {
|
|
207
|
+
largeFileCount: fileCount > 20,
|
|
208
|
+
hasCompleteStructure: this.hasCompleteProjectStructure(initialCommit.changedFiles),
|
|
209
|
+
hasConfigFiles: this.hasConfigurationFiles(initialCommit.changedFiles),
|
|
210
|
+
hasDocumentation: this.hasDocumentationFiles(initialCommit.changedFiles),
|
|
211
|
+
hasTests: this.hasTestFiles(initialCommit.changedFiles),
|
|
212
|
+
perfectMessage: this.isPerfectInitialMessage(initialCommit.message),
|
|
213
|
+
};
|
|
214
|
+
const indicatorCount = Object.values(indicators).filter(Boolean).length;
|
|
215
|
+
const totalIndicators = Object.keys(indicators).length;
|
|
216
|
+
// If most indicators are present, it suggests AI generation
|
|
217
|
+
if (indicatorCount >= 4) {
|
|
218
|
+
const score = Math.min(0.92, 0.5 + (indicatorCount / totalIndicators) * 0.4);
|
|
219
|
+
return this.createPatternResult(true, score, {
|
|
220
|
+
indicators,
|
|
221
|
+
indicatorCount,
|
|
222
|
+
totalIndicators,
|
|
223
|
+
fileCount,
|
|
224
|
+
commitMessage: initialCommit.message,
|
|
225
|
+
fileTypes: this.categorizeFiles(initialCommit.changedFiles),
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
return this.createPatternResult(false, (indicatorCount / totalIndicators) * 0.3);
|
|
229
|
+
}
|
|
230
|
+
/**
|
|
231
|
+
* Check if commit has complete project structure
|
|
232
|
+
* @param files Array of file paths
|
|
233
|
+
* @returns True if has complete structure
|
|
234
|
+
*/
|
|
235
|
+
hasCompleteProjectStructure(files) {
|
|
236
|
+
const structureFiles = [
|
|
237
|
+
'package.json',
|
|
238
|
+
'tsconfig.json',
|
|
239
|
+
'webpack.config.js',
|
|
240
|
+
'vite.config.js',
|
|
241
|
+
'babel.config.js',
|
|
242
|
+
'.eslintrc',
|
|
243
|
+
'.prettierrc',
|
|
244
|
+
'jest.config.js',
|
|
245
|
+
];
|
|
246
|
+
const foundStructureFiles = files.filter((file) => structureFiles.some((sf) => file.endsWith(sf))).length;
|
|
247
|
+
return foundStructureFiles >= 3;
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Check if commit has configuration files
|
|
251
|
+
* @param files Array of file paths
|
|
252
|
+
* @returns True if has config files
|
|
253
|
+
*/
|
|
254
|
+
hasConfigurationFiles(files) {
|
|
255
|
+
const configPatterns = [/\.config\.(js|ts|json)$/, /^\.env/, /^\.git/, /^\.vscode/, /^\.idea/];
|
|
256
|
+
return files.some((file) => configPatterns.some((pattern) => pattern.test(file)));
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Check if commit has documentation files
|
|
260
|
+
* @param files Array of file paths
|
|
261
|
+
* @returns True if has documentation
|
|
262
|
+
*/
|
|
263
|
+
hasDocumentationFiles(files) {
|
|
264
|
+
const docPatterns = [/README/i, /CHANGELOG/i, /LICENSE/i, /CONTRIBUTING/i, /\.md$/];
|
|
265
|
+
return files.some((file) => docPatterns.some((pattern) => pattern.test(file)));
|
|
266
|
+
}
|
|
267
|
+
/**
|
|
268
|
+
* Check if commit has test files
|
|
269
|
+
* @param files Array of file paths
|
|
270
|
+
* @returns True if has tests
|
|
271
|
+
*/
|
|
272
|
+
hasTestFiles(files) {
|
|
273
|
+
const testPatterns = [/\.(test|spec)\.(js|ts|jsx|tsx)$/, /^test\//, /^tests\//, /__tests__/];
|
|
274
|
+
return files.some((file) => testPatterns.some((pattern) => pattern.test(file)));
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Check if initial commit message is "perfect" (suggests AI)
|
|
278
|
+
* @param message Commit message
|
|
279
|
+
* @returns True if message seems AI-generated
|
|
280
|
+
*/
|
|
281
|
+
isPerfectInitialMessage(message) {
|
|
282
|
+
const perfectPatterns = [
|
|
283
|
+
/^Initial commit with complete .+ implementation$/i,
|
|
284
|
+
/^feat: initial .+ setup with .+ integration$/i,
|
|
285
|
+
/^🎉 Initial release with comprehensive .+ support$/i,
|
|
286
|
+
/^Add complete .+ project structure$/i,
|
|
287
|
+
];
|
|
288
|
+
return perfectPatterns.some((pattern) => pattern.test(message));
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Categorize files by type
|
|
292
|
+
* @param files Array of file paths
|
|
293
|
+
* @returns Object with file type counts
|
|
294
|
+
*/
|
|
295
|
+
categorizeFiles(files) {
|
|
296
|
+
const categories = {
|
|
297
|
+
source: 0,
|
|
298
|
+
config: 0,
|
|
299
|
+
test: 0,
|
|
300
|
+
documentation: 0,
|
|
301
|
+
assets: 0,
|
|
302
|
+
other: 0,
|
|
303
|
+
};
|
|
304
|
+
files.forEach((file) => {
|
|
305
|
+
if (/\.(js|ts|jsx|tsx|py|java|go|rb|php)$/.test(file)) {
|
|
306
|
+
categories.source++;
|
|
307
|
+
}
|
|
308
|
+
else if (/\.(json|yaml|yml|toml|ini|env)$/.test(file) || file.includes('config')) {
|
|
309
|
+
categories.config++;
|
|
310
|
+
}
|
|
311
|
+
else if (/\.(test|spec)\./.test(file) || file.includes('test')) {
|
|
312
|
+
categories.test++;
|
|
313
|
+
}
|
|
314
|
+
else if (/\.(md|txt|rst)$/.test(file) || /README|LICENSE|CHANGELOG/i.test(file)) {
|
|
315
|
+
categories.documentation++;
|
|
316
|
+
}
|
|
317
|
+
else if (/\.(png|jpg|jpeg|gif|svg|ico|woff|ttf)$/.test(file)) {
|
|
318
|
+
categories.assets++;
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
categories.other++;
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
return categories;
|
|
325
|
+
}
|
|
326
|
+
/**
|
|
327
|
+
* Create empty result for error cases
|
|
328
|
+
* @returns Empty git analysis result
|
|
329
|
+
*/
|
|
330
|
+
createEmptyResult() {
|
|
331
|
+
return {
|
|
332
|
+
analyzer: 'git-history',
|
|
333
|
+
patterns: [],
|
|
334
|
+
metadata: {
|
|
335
|
+
totalCommits: 0,
|
|
336
|
+
analysisTime: this.getElapsedTime(),
|
|
337
|
+
sufficientHistory: false,
|
|
338
|
+
},
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
exports.GitHistoryAnalyzer = GitHistoryAnalyzer;
|
|
343
|
+
//# sourceMappingURL=GitHistoryAnalyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GitHistoryAnalyzer.js","sourceRoot":"","sources":["../../../../src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AASH,iDAA8C;AAE9C;;GAEG;AACH,MAAa,kBAAmB,SAAQ,2BAAY;IAClD;;OAEG;IACH,eAAe;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,OAAO,CAAC,UAA0B;QACtC,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,MAAM,QAAQ,GAAsB,EAAE,CAAC;QAEvC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC;YAE9C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAClC,CAAC;YAED,2CAA2C;YAC3C,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAChE,IAAI,kBAAkB,CAAC,QAAQ,EAAE,CAAC;gBAChC,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,qBAAqB,CACxB,MAAM,EACN,4BAA4B,EAC5B,MAAM,EACN,kBAAkB,CAAC,KAAK,EACxB,qFAAqF,EACrF,kBAAkB,CAAC,QAAQ,IAAI,EAAE,CAClC,CACF,CAAC;YACJ,CAAC;YAED,6CAA6C;YAC7C,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YAC5D,IAAI,cAAc,CAAC,QAAQ,EAAE,CAAC;gBAC5B,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,qBAAqB,CACxB,MAAM,EACN,8BAA8B,EAC9B,MAAM,EACN,cAAc,CAAC,KAAK,EACpB,4DAA4D,EAC5D,cAAc,CAAC,QAAQ,IAAI,EAAE,CAC9B,CACF,CAAC;YACJ,CAAC;YAED,6CAA6C;YAC7C,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;YACpE,IAAI,sBAAsB,CAAC,QAAQ,EAAE,CAAC;gBACpC,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,qBAAqB,CACxB,MAAM,EACN,4BAA4B,EAC5B,MAAM,EACN,sBAAsB,CAAC,KAAK,EAC5B,0DAA0D,EAC1D,sBAAsB,CAAC,QAAQ,IAAI,EAAE,CACtC,CACF,CAAC;YACJ,CAAC;YAED,uCAAuC;YACvC,MAAM,oBAAoB,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,CAAC;YACtE,IAAI,oBAAoB,CAAC,QAAQ,EAAE,CAAC;gBAClC,QAAQ,CAAC,IAAI,CACX,IAAI,CAAC,qBAAqB,CACxB,MAAM,EACN,wBAAwB,EACxB,MAAM,EACN,oBAAoB,CAAC,KAAK,EAC1B,yFAAyF,EACzF,oBAAoB,CAAC,QAAQ,IAAI,EAAE,CACpC,CACF,CAAC;YACJ,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,aAAa;gBACvB,QAAQ;gBACR,QAAQ,EAAE;oBACR,YAAY,EAAE,OAAO,CAAC,MAAM;oBAC5B,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE;oBACnC,iBAAiB,EAAE,OAAO,CAAC,MAAM,IAAI,CAAC;iBACvC;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,8BAA8B,EAAE,KAAK,CAAC,CAAC;YACrD,OAAO,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAClC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,sBAAsB,CAAC,OAAoB;QACjD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC;QAEpD,uDAAuD;QACvD,gCAAgC;QAChC,IAAI,SAAS,GAAG,EAAE,EAAE,CAAC;YACnB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,SAAS,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YAE5D,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE;gBAC3C,SAAS;gBACT,UAAU,EAAE,aAAa,CAAC,IAAI;gBAC9B,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,8BAA8B;gBAC9E,SAAS,EAAE,aAAa,CAAC,SAAS;gBAClC,SAAS,EAAE,EAAE;aACd,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACK,sBAAsB,CAAC,OAAoB;QACjD,MAAM,UAAU,GAAG;YACjB,yDAAyD;YACzD,6DAA6D;YAC7D,qCAAqC;YACrC,kFAAkF;YAClF,wCAAwC;YACxC,sEAAsE;YACtE,gCAAgC;YAChC,4DAA4D;YAC5D,oCAAoC;YACpC,yBAAyB;SAC1B,CAAC;QAEF,IAAI,OAAO,GAAG,CAAC,CAAC;QAChB,MAAM,QAAQ,GAAU,EAAE,CAAC;QAC3B,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;QAEpC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAChC,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAC/E,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,EAAE,CAAC;gBACV,QAAQ,CAAC,IAAI,CAAC;oBACZ,IAAI,EAAE,MAAM,CAAC,IAAI;oBACjB,OAAO,EAAE,MAAM,CAAC,OAAO;oBACvB,SAAS,EAAE,MAAM,CAAC,SAAS;oBAC3B,QAAQ,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,KAAK,YAAY,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;iBACrF,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,OAAO,GAAG,YAAY,CAAC;QAErC,yDAAyD;QACzD,IAAI,KAAK,GAAG,GAAG,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC,CAAC;YAEhD,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE;gBAC3C,eAAe,EAAE,OAAO;gBACxB,YAAY;gBACZ,KAAK;gBACL,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB;gBACjD,QAAQ,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;aAC1C,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC,mCAAmC;IAC1F,CAAC;IAED;;;;OAIG;IACK,sBAAsB,CAAC,OAAoB;QACjD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,0BAA0B;QACvE,CAAC;QAED,MAAM,mBAAmB,GAAG;YAC1B,8BAA8B;YAC9B,UAAU;YACV,qBAAqB;YACrB,4BAA4B;YAC5B,eAAe,EAAE,8CAA8C;YAC/D,UAAU;YACV,YAAY;YACZ,OAAO;YACP,OAAO;YACP,oBAAoB;YACpB,OAAO;YACP,aAAa;YACb,MAAM;YACN,UAAU;YACV,oBAAoB;YACpB,WAAW;YACX,YAAY;YACZ,MAAM;YACN,OAAO;SACR,CAAC;QAEF,IAAI,gBAAgB,GAAG,CAAC,CAAC;QACzB,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;QAEpC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,MAAM,WAAW,GAAG,mBAAmB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;YAExF,IAAI,WAAW,EAAE,CAAC;gBAChB,gBAAgB,EAAE,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,UAAU,GAAG,gBAAgB,GAAG,YAAY,CAAC;QAEnD,8DAA8D;QAC9D,IAAI,UAAU,GAAG,GAAG,IAAI,YAAY,IAAI,CAAC,EAAE,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,GAAG,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;YAE3D,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE;gBAC3C,gBAAgB;gBAChB,YAAY;gBACZ,UAAU;gBACV,eAAe,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;gBACzD,SAAS,EAAE,GAAG;aACf,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACK,0BAA0B,CAAC,OAAoB;QACrD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC;QAEpD,yCAAyC;QACzC,MAAM,UAAU,GAAG;YACjB,cAAc,EAAE,SAAS,GAAG,EAAE;YAC9B,oBAAoB,EAAE,IAAI,CAAC,2BAA2B,CAAC,aAAa,CAAC,YAAY,CAAC;YAClF,cAAc,EAAE,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,YAAY,CAAC;YACtE,gBAAgB,EAAE,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,YAAY,CAAC;YACxE,QAAQ,EAAE,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,YAAY,CAAC;YACvD,cAAc,EAAE,IAAI,CAAC,uBAAuB,CAAC,aAAa,CAAC,OAAO,CAAC;SACpE,CAAC;QAEF,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;QACxE,MAAM,eAAe,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC;QAEvD,4DAA4D;QAC5D,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,cAAc,GAAG,eAAe,CAAC,GAAG,GAAG,CAAC,CAAC;YAE7E,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE;gBAC3C,UAAU;gBACV,cAAc;gBACd,eAAe;gBACf,SAAS;gBACT,aAAa,EAAE,aAAa,CAAC,OAAO;gBACpC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,YAAY,CAAC;aAC5D,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC,cAAc,GAAG,eAAe,CAAC,GAAG,GAAG,CAAC,CAAC;IACnF,CAAC;IAED;;;;OAIG;IACK,2BAA2B,CAAC,KAAe;QACjD,MAAM,cAAc,GAAG;YACrB,cAAc;YACd,eAAe;YACf,mBAAmB;YACnB,gBAAgB;YAChB,iBAAiB;YACjB,WAAW;YACX,aAAa;YACb,gBAAgB;SACjB,CAAC;QAEF,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAChD,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAC/C,CAAC,MAAM,CAAC;QAET,OAAO,mBAAmB,IAAI,CAAC,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,KAAe;QAC3C,MAAM,cAAc,GAAG,CAAC,yBAAyB,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,CAAC,CAAC;QAE/F,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpF,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,KAAe;QAC3C,MAAM,WAAW,GAAG,CAAC,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,OAAO,CAAC,CAAC;QAEpF,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACjF,CAAC;IAED;;;;OAIG;IACK,YAAY,CAAC,KAAe;QAClC,MAAM,YAAY,GAAG,CAAC,iCAAiC,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;QAE7F,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClF,CAAC;IAED;;;;OAIG;IACK,uBAAuB,CAAC,OAAe;QAC7C,MAAM,eAAe,GAAG;YACtB,mDAAmD;YACnD,+CAA+C;YAC/C,qDAAqD;YACrD,sCAAsC;SACvC,CAAC;QAEF,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;OAIG;IACK,eAAe,CAAC,KAAe;QACrC,MAAM,UAAU,GAAG;YACjB,MAAM,EAAE,CAAC;YACT,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,aAAa,EAAE,CAAC;YAChB,MAAM,EAAE,CAAC;YACT,KAAK,EAAE,CAAC;SACT,CAAC;QAEF,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,sCAAsC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,CAAC;iBAAM,IAAI,iCAAiC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACnF,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,CAAC;iBAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBACjE,UAAU,CAAC,IAAI,EAAE,CAAC;YACpB,CAAC;iBAAM,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAClF,UAAU,CAAC,aAAa,EAAE,CAAC;YAC7B,CAAC;iBAAM,IAAI,wCAAwC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/D,UAAU,CAAC,MAAM,EAAE,CAAC;YACtB,CAAC;iBAAM,CAAC;gBACN,UAAU,CAAC,KAAK,EAAE,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC;IACpB,CAAC;IAED;;;OAGG;IACK,iBAAiB;QACvB,OAAO;YACL,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,EAAE;YACZ,QAAQ,EAAE;gBACR,YAAY,EAAE,CAAC;gBACf,YAAY,EAAE,IAAI,CAAC,cAAc,EAAE;gBACnC,iBAAiB,EAAE,KAAK;aACzB;SACF,CAAC;IACJ,CAAC;CACF;AA1ZD,gDA0ZC"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Main AI detection engine that orchestrates analysis across multiple analyzers.
|
|
3
|
+
*
|
|
4
|
+
* This module provides the central detection engine that coordinates various analyzers
|
|
5
|
+
* to determine if code was generated by AI, aggregating results and calculating confidence scores.
|
|
6
|
+
*/
|
|
7
|
+
import type { CodeSubmission, DetectionConfig, DetectionResult } from '../types/DetectionTypes';
|
|
8
|
+
/**
|
|
9
|
+
* Core AI detection engine interface
|
|
10
|
+
*/
|
|
11
|
+
export interface IAIDetectionEngine {
|
|
12
|
+
analyze(submission: CodeSubmission): Promise<DetectionResult>;
|
|
13
|
+
getConfig(): DetectionConfig;
|
|
14
|
+
setConfig(config: Partial<DetectionConfig>): void;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Main AI detection engine that orchestrates analysis
|
|
18
|
+
*/
|
|
19
|
+
export declare class AIDetectionEngine implements IAIDetectionEngine {
|
|
20
|
+
private config;
|
|
21
|
+
private analyzers;
|
|
22
|
+
private cache;
|
|
23
|
+
/**
|
|
24
|
+
* Create a new AI detection engine
|
|
25
|
+
* @param config Detection configuration
|
|
26
|
+
*/
|
|
27
|
+
constructor(config?: Partial<DetectionConfig>);
|
|
28
|
+
/**
|
|
29
|
+
* Analyze code submission for AI-generated patterns
|
|
30
|
+
* @param submission Code submission to analyze
|
|
31
|
+
* @returns Detection result with confidence score and patterns
|
|
32
|
+
*/
|
|
33
|
+
analyze(submission: CodeSubmission): Promise<DetectionResult>;
|
|
34
|
+
/**
|
|
35
|
+
* Get current configuration
|
|
36
|
+
* @returns Current detection configuration
|
|
37
|
+
*/
|
|
38
|
+
getConfig(): DetectionConfig;
|
|
39
|
+
/**
|
|
40
|
+
* Update configuration
|
|
41
|
+
* @param config Partial configuration to merge
|
|
42
|
+
*/
|
|
43
|
+
setConfig(config: Partial<DetectionConfig>): void;
|
|
44
|
+
/**
|
|
45
|
+
* Validate detection configuration
|
|
46
|
+
* @param config Configuration to validate
|
|
47
|
+
*/
|
|
48
|
+
private validateConfig;
|
|
49
|
+
/**
|
|
50
|
+
* Initialize all available analyzers
|
|
51
|
+
*/
|
|
52
|
+
private initializeAnalyzers;
|
|
53
|
+
/**
|
|
54
|
+
* Get enabled analyzers based on configuration
|
|
55
|
+
* @returns Array of enabled analyzers
|
|
56
|
+
*/
|
|
57
|
+
private getEnabledAnalyzers;
|
|
58
|
+
/**
|
|
59
|
+
* Run analyzer with timeout protection
|
|
60
|
+
* @param analyzer Analyzer to run
|
|
61
|
+
* @param submission Code submission
|
|
62
|
+
* @returns Analysis result or timeout error
|
|
63
|
+
*/
|
|
64
|
+
private runAnalyzerWithTimeout;
|
|
65
|
+
/**
|
|
66
|
+
* Calculate overall confidence score from detected patterns
|
|
67
|
+
* @param patterns Array of detected patterns
|
|
68
|
+
* @returns Confidence score between 0.0 and 1.0
|
|
69
|
+
*/
|
|
70
|
+
private calculateConfidenceScore;
|
|
71
|
+
/**
|
|
72
|
+
* Create analysis breakdown from results
|
|
73
|
+
* @param results Array of analysis results
|
|
74
|
+
* @returns Analysis breakdown object
|
|
75
|
+
*/
|
|
76
|
+
private createAnalysisBreakdown;
|
|
77
|
+
/**
|
|
78
|
+
* Generate actionable recommendations based on detected patterns
|
|
79
|
+
* @param patterns Detected patterns
|
|
80
|
+
* @param isAIGenerated Whether code is determined to be AI-generated
|
|
81
|
+
* @returns Array of recommendation strings
|
|
82
|
+
*/
|
|
83
|
+
private generateRecommendations;
|
|
84
|
+
/**
|
|
85
|
+
* Create detection metadata
|
|
86
|
+
* @param startTime Analysis start time
|
|
87
|
+
* @param warnings Array of warning messages
|
|
88
|
+
* @returns Detection metadata object
|
|
89
|
+
*/
|
|
90
|
+
private createMetadata;
|
|
91
|
+
/**
|
|
92
|
+
* Generate cache key for a submission
|
|
93
|
+
* @param submission Code submission
|
|
94
|
+
* @returns Cache key string
|
|
95
|
+
*/
|
|
96
|
+
private generateCacheKey;
|
|
97
|
+
/**
|
|
98
|
+
* Create error result for failed analyses
|
|
99
|
+
* @param startTime Analysis start time
|
|
100
|
+
* @param error Error that occurred
|
|
101
|
+
* @returns Error detection result
|
|
102
|
+
*/
|
|
103
|
+
private createErrorResult;
|
|
104
|
+
}
|