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
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Minimal in-memory prompt cache.
|
|
3
|
-
*
|
|
4
|
-
* The original project ships a much more elaborate cache layer that integrates
|
|
5
|
-
* with the prompt manager. For the trimmed-down fork we only need a basic
|
|
6
|
-
* singleton that allows strategies to avoid recomputing prompt payloads.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Simple key-value cache for prompts.
|
|
11
|
-
*/
|
|
12
|
-
export class PromptCache {
|
|
13
|
-
private static instance: PromptCache | null = null;
|
|
14
|
-
private cache = new Map<string, string>();
|
|
15
|
-
|
|
16
|
-
private constructor() {}
|
|
17
|
-
|
|
18
|
-
/**
|
|
19
|
-
* Get the singleton instance.
|
|
20
|
-
*/
|
|
21
|
-
public static getInstance(): PromptCache {
|
|
22
|
-
if (!PromptCache.instance) {
|
|
23
|
-
PromptCache.instance = new PromptCache();
|
|
24
|
-
}
|
|
25
|
-
return PromptCache.instance;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Retrieve a cached prompt by key.
|
|
30
|
-
*/
|
|
31
|
-
public get(key: string): string | undefined {
|
|
32
|
-
return this.cache.get(key);
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Store a prompt in the cache.
|
|
37
|
-
*/
|
|
38
|
-
public set(key: string, value: string): void {
|
|
39
|
-
this.cache.set(key, value);
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
* Remove all cached prompts.
|
|
44
|
-
*/
|
|
45
|
-
public clear(): void {
|
|
46
|
-
this.cache.clear();
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
export default PromptCache;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"cssFrameworks": {
|
|
3
|
-
"tailwind": {
|
|
4
|
-
"name": "Tailwind CSS",
|
|
5
|
-
"version": "4.0",
|
|
6
|
-
"releaseDate": "2024-10-01",
|
|
7
|
-
"features": [
|
|
8
|
-
"Design tokens by default",
|
|
9
|
-
"Smaller runtime",
|
|
10
|
-
"Improved dark-mode primitives"
|
|
11
|
-
],
|
|
12
|
-
"integrations": {
|
|
13
|
-
"react": "Official tailwindcss-react plugin",
|
|
14
|
-
"nextjs": "next/font + tailwind preset",
|
|
15
|
-
"astro": "Integrated via astro add tailwind"
|
|
16
|
-
}
|
|
17
|
-
},
|
|
18
|
-
"vanilla": {
|
|
19
|
-
"name": "Vanilla CSS",
|
|
20
|
-
"version": "latest",
|
|
21
|
-
"releaseDate": "2024-01-01",
|
|
22
|
-
"features": [
|
|
23
|
-
"Native nesting",
|
|
24
|
-
"Cascade layers",
|
|
25
|
-
"Custom properties"
|
|
26
|
-
],
|
|
27
|
-
"integrations": {
|
|
28
|
-
"global": "Works with any renderer"
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
|
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"frameworks": {
|
|
3
|
-
"react": {
|
|
4
|
-
"latest": {
|
|
5
|
-
"version": "19.x",
|
|
6
|
-
"releaseDate": "2024-12-01",
|
|
7
|
-
"supportedUntil": "2026-12-01",
|
|
8
|
-
"features": [
|
|
9
|
-
"Concurrent rendering defaults",
|
|
10
|
-
"Server components with streaming",
|
|
11
|
-
"Improved memo semantics"
|
|
12
|
-
]
|
|
13
|
-
},
|
|
14
|
-
"previous": {
|
|
15
|
-
"version": "18.x",
|
|
16
|
-
"releaseDate": "2022-03-01",
|
|
17
|
-
"supportedUntil": "2025-03-01",
|
|
18
|
-
"features": [
|
|
19
|
-
"Automatic batching",
|
|
20
|
-
"Transitions",
|
|
21
|
-
"Suspense refinements"
|
|
22
|
-
]
|
|
23
|
-
}
|
|
24
|
-
},
|
|
25
|
-
"generic": {
|
|
26
|
-
"latest": {
|
|
27
|
-
"version": "1.0.0",
|
|
28
|
-
"releaseDate": "2024-01-01",
|
|
29
|
-
"supportedUntil": "2026-01-01",
|
|
30
|
-
"features": [
|
|
31
|
-
"Baseline guidance only"
|
|
32
|
-
]
|
|
33
|
-
},
|
|
34
|
-
"previous": {
|
|
35
|
-
"version": "0.9.0",
|
|
36
|
-
"releaseDate": "2023-01-01",
|
|
37
|
-
"supportedUntil": "2024-12-31",
|
|
38
|
-
"features": [
|
|
39
|
-
"Legacy guidance"
|
|
40
|
-
]
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
## Role
|
|
2
|
-
You are a senior React and TypeScript reviewer. Assume the author expects production-ready guidance with zero fluff.
|
|
3
|
-
|
|
4
|
-
## Focus Areas
|
|
5
|
-
1. **Component contracts** – props/state flow, memoization boundaries, hook dependencies.
|
|
6
|
-
2. **Rendering hygiene** – suspense/streaming boundaries, server/client component split, hydration safety.
|
|
7
|
-
3. **Side effects** – lifecycle correctness, async handling, cleanup discipline.
|
|
8
|
-
4. **Styling & accessibility** – ARIA, keyboard traps, reduced-motion support.
|
|
9
|
-
5. **Data flow** – cache invalidation, query key usage, optimistic updates.
|
|
10
|
-
|
|
11
|
-
## Output Expectations
|
|
12
|
-
- Respond with a single JSON object that matches the schema already defined in the system instructions (summary, issues[], recommendations[], positiveAspects[]).
|
|
13
|
-
- Every issue must cite the relevant file path and line numbers the formatter supplies.
|
|
14
|
-
- Classify issue type realistically (bug/security/performance/maintainability/etc.). Never invent nonsense categories.
|
|
15
|
-
|
|
16
|
-
## Deliverable Tone
|
|
17
|
-
- Actionable, surgical, brutally honest. One sentence per bullet unless code requires a short snippet.
|
|
18
|
-
- Never restate these instructions or the original code; go straight to findings.
|
|
19
|
-
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
## Role
|
|
2
|
-
You review plain CSS (or preprocessors compiling to CSS) with an eye for resilience, performance, and clarity.
|
|
3
|
-
|
|
4
|
-
## Focus Areas
|
|
5
|
-
1. **Cascade discipline** – selector specificity, layering, variable scoping, inheritance leaks.
|
|
6
|
-
2. **Layout** – responsive breakpoints, container queries, flex/grid misuse, overflow handling.
|
|
7
|
-
3. **Performance** – expensive selectors, animations on non-composited properties, unused rules.
|
|
8
|
-
4. **Accessibility** – contrast ratios, focus indicators, prefers-reduced-motion support.
|
|
9
|
-
5. **Maintainability** – naming conventions, duplication, magic numbers, theme tokens.
|
|
10
|
-
|
|
11
|
-
## Output Contract
|
|
12
|
-
- Respond with the enforced JSON schema (summary, issues[], recommendations[], positiveAspects[]).
|
|
13
|
-
- Issues must cite stylesheet path + line numbers and, when helpful, a short snippet showing the offending rule.
|
|
14
|
-
- Suggested fixes should mention the exact CSS change (e.g., “replace `left/top` animation with `transform` to keep it on the compositor”).
|
|
15
|
-
|
|
16
|
-
## Tone
|
|
17
|
-
Succinct, blunt, actionable. Celebrate thoughtful patterns (tokens, logical properties) under `positiveAspects` so the team keeps them.
|
|
18
|
-
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
## Role
|
|
2
|
-
You are an experienced full-stack reviewer asked to deliver a comprehensive assessment of the provided code. Your job is to surface the highest-leverage risks, not to narrate the obvious.
|
|
3
|
-
|
|
4
|
-
## What to Deliver
|
|
5
|
-
1. **Correctness** – logic errors, race conditions, edge cases the author ignored.
|
|
6
|
-
2. **Security & privacy** – injection, auth/z gaps, data leaks, unsafe third-party usage.
|
|
7
|
-
3. **Performance** – hot-path complexity, blocking I/O, unnecessary allocations.
|
|
8
|
-
4. **Maintainability** – readability, duplication, dead code, missing tests, weak observability.
|
|
9
|
-
5. **Testing guidance** – when a failing/absent test would have caught the issue.
|
|
10
|
-
|
|
11
|
-
## Response Contract
|
|
12
|
-
- Output must be the JSON structure described in the system message (summary, issues[], recommendations[], positiveAspects[]). No prose outside the JSON.
|
|
13
|
-
- Each issue needs: title, priority, type, filePath, lineNumbers, description, codeSnippet (if possible), suggestedFix, impact.
|
|
14
|
-
- Keep snippets minimal but sufficient to justify the claim.
|
|
15
|
-
|
|
16
|
-
## Behavioral Rules
|
|
17
|
-
- Be direct, no pleasantries.
|
|
18
|
-
- If the file is already solid, explicitly call out the strengths under `positiveAspects`.
|
|
19
|
-
- If you cannot determine something because context is missing, say so and move on—do not guess.
|
|
20
|
-
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
## Role
|
|
2
|
-
You are reviewing vanilla HTML templates for production reliability, accessibility, and maintainability.
|
|
3
|
-
|
|
4
|
-
## Review Targets
|
|
5
|
-
1. **Document structure** – semantic tags, heading hierarchy, landmark regions.
|
|
6
|
-
2. **Accessibility** – ARIA usage, label/control pairing, keyboard focus order, reduced-motion fallbacks.
|
|
7
|
-
3. **Security** – escaping of dynamic content, CSP readiness, referrer policy, form autofill hardening.
|
|
8
|
-
4. **Performance** – critical-path resources, preload/prefetch, lazy loading, SSR hydration markers.
|
|
9
|
-
5. **Maintainability** – component composition, duplication, inline styles/scripts, template partials.
|
|
10
|
-
|
|
11
|
-
## Response Format
|
|
12
|
-
- Emit the agreed JSON payload (summary, issues[], recommendations[], positiveAspects[]). Nothing else.
|
|
13
|
-
- Every issue must cite the template path + line span and include a short snippet when it clarifies the bug.
|
|
14
|
-
- Recommendations should state the exact attribute/tag/structure change, not vague advice.
|
|
15
|
-
|
|
16
|
-
## Tone
|
|
17
|
-
Clinical and pragmatic. Highlight blockers fast, acknowledge solid craftsmanship when deserved.
|
|
18
|
-
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
## Role
|
|
2
|
-
You are a senior JavaScript reviewer focused on reliability and runtime performance in plain JS environments (DOM, Node, workers).
|
|
3
|
-
|
|
4
|
-
## What to Police
|
|
5
|
-
1. **Runtime safety** – null/undefined guards, prototype pollution, global namespace leaks.
|
|
6
|
-
2. **Async orchestration** – promise chains vs. async/await, error bubbling, microtask starvation, timers cleanup.
|
|
7
|
-
3. **State & DOM** – mutation patterns, event listener lifecycle, layout thrashing, security (XSS, CSP).
|
|
8
|
-
4. **Modularity** – bundling boundaries, circular deps, ESM/CommonJS interop, dead code elimination.
|
|
9
|
-
5. **Tooling** – lint/format parity, build outputs, sourcemaps, feature detection vs. UA sniffing.
|
|
10
|
-
|
|
11
|
-
## Reporting Rules
|
|
12
|
-
- Return the JSON structure mandated earlier. Each issue must include file path + line range + concise impact/suggested fix.
|
|
13
|
-
- Keep code snippets tiny (2‑6 lines) and only when they prove the problem.
|
|
14
|
-
- If something is already optimal (e.g., efficient event delegation), praise it under `positiveAspects`.
|
|
15
|
-
|
|
16
|
-
## Tone
|
|
17
|
-
Direct, technical, no platitudes. Show the cost of ignoring the issue (crash, exploit, perf cliff, debt).
|
|
18
|
-
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
## Role
|
|
2
|
-
You are a Python platform reviewer. Treat every file as production-critical.
|
|
3
|
-
|
|
4
|
-
## Inspection Targets
|
|
5
|
-
1. **Correctness** – control flow, edge cases, exception handling, context managers.
|
|
6
|
-
2. **Security** – injection vectors, unsafe deserialization, shell usage, secrets, dependency pinning.
|
|
7
|
-
3. **Performance** – N+1 DB hits, eager loading, blocking operations inside async code, memory churn.
|
|
8
|
-
4. **Maintainability** – adherence to idiomatic patterns, dependency inversion, logging/metrics, docstrings, typing.
|
|
9
|
-
5. **Testing hooks** – unit/functional coverage gaps, fixtures, deterministic randomness.
|
|
10
|
-
|
|
11
|
-
## Output Rules
|
|
12
|
-
- Emit the mandated JSON object (summary, issues[], recommendations[], positiveAspects[]). No stray prose.
|
|
13
|
-
- Precision matters: reference module + line numbers, include the minimal snippet, suggest a concrete fix.
|
|
14
|
-
- When the code is already strong, record the win under `positiveAspects` so the team knows what to keep.
|
|
15
|
-
|
|
16
|
-
## Style
|
|
17
|
-
Short, blunt sentences. Call out laziness, accidental complexity, or missing safeguards immediately.
|
|
18
|
-
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
## Role
|
|
2
|
-
You are a senior TypeScript architect. Assume the consuming teams expect bulletproof typings, predictable runtime behavior, and zero regressions.
|
|
3
|
-
|
|
4
|
-
## Checklist
|
|
5
|
-
1. **Type safety** – sound generics, discriminated unions, exhaustiveness, DTO validation, `any`/`unknown` misuse.
|
|
6
|
-
2. **Runtime parity** – ensure the types describe the actual runtime contract (e.g., optional fields, narrowing, JSON payloads).
|
|
7
|
-
3. **Async flow** – promise chains, error propagation, cancellation, resource cleanup.
|
|
8
|
-
4. **Modularity** – separation of concerns, side-effect-free modules, tree-shakeability.
|
|
9
|
-
5. **Tooling** – eslint/tsconfig alignment, path aliases, build-time assumptions.
|
|
10
|
-
|
|
11
|
-
## Expectations
|
|
12
|
-
- Output the JSON schema defined in the system instructions. Every issue must cite the path + line range you received.
|
|
13
|
-
- Tie each finding back to the risk (bug/security/perf/etc.) and quantify impact.
|
|
14
|
-
- Suggest fixes that respect TS best practices (narrowing, safe casting, type guards, proper inference).
|
|
15
|
-
|
|
16
|
-
## Tone
|
|
17
|
-
Relentless but constructive. No filler, no justification about missing context—flag the risk, explain why it matters, prescribe the fix.
|
|
18
|
-
|
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { getActiveProxySettings } from '../proxyEnvironment';
|
|
2
|
-
import type { AuthSuccess } from './types';
|
|
3
|
-
|
|
4
|
-
interface AuthResponsePayload {
|
|
5
|
-
token: string;
|
|
6
|
-
user?: {
|
|
7
|
-
id?: string;
|
|
8
|
-
username?: string;
|
|
9
|
-
expires_at?: string | null;
|
|
10
|
-
};
|
|
11
|
-
expires_at?: string;
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const DEFAULT_PROXY_BASE_URL = 'https://cr.ai.enki.si';
|
|
15
|
-
|
|
16
|
-
function resolveAuthUrl(): string {
|
|
17
|
-
const base =
|
|
18
|
-
getActiveProxySettings()?.baseUrl ||
|
|
19
|
-
process.env.CR_AIA_PROXY_BASE_URL ||
|
|
20
|
-
process.env.PROXY_BASE_URL ||
|
|
21
|
-
DEFAULT_PROXY_BASE_URL;
|
|
22
|
-
|
|
23
|
-
return `${base.replace(/\/$/, '')}/auth`;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export async function authenticate(username: string, password: string): Promise<AuthSuccess> {
|
|
27
|
-
const url = resolveAuthUrl();
|
|
28
|
-
const response = await fetch(url, {
|
|
29
|
-
method: 'POST',
|
|
30
|
-
headers: {
|
|
31
|
-
'Content-Type': 'application/json',
|
|
32
|
-
},
|
|
33
|
-
body: JSON.stringify({ username, password }),
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
if (!response.ok) {
|
|
37
|
-
const errorText = await response.text();
|
|
38
|
-
throw new Error(errorText || 'Authentication failed');
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
const payload = (await response.json()) as AuthResponsePayload;
|
|
42
|
-
if (!payload.token) {
|
|
43
|
-
throw new Error('Malformed auth response: missing token');
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const usernameFromPayload = payload.user?.username;
|
|
47
|
-
const expiresAt = payload.user?.expires_at ?? payload.expires_at ?? undefined;
|
|
48
|
-
|
|
49
|
-
return {
|
|
50
|
-
token: payload.token,
|
|
51
|
-
user: {
|
|
52
|
-
id: payload.user?.id ?? usernameFromPayload ?? 'user',
|
|
53
|
-
username: usernameFromPayload ?? username,
|
|
54
|
-
expiresAt: expiresAt ?? undefined,
|
|
55
|
-
},
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
|
|
@@ -1,103 +0,0 @@
|
|
|
1
|
-
import { existsSync, mkdirSync, readFileSync, writeFileSync, rmSync } from 'fs';
|
|
2
|
-
import { homedir } from 'os';
|
|
3
|
-
import { join } from 'path';
|
|
4
|
-
import type { SessionUser } from './types';
|
|
5
|
-
|
|
6
|
-
const SESSION_DIR = join(homedir(), '.cr-aia');
|
|
7
|
-
const SESSION_FILE = join(SESSION_DIR, 'session.json');
|
|
8
|
-
|
|
9
|
-
interface SessionFileContents {
|
|
10
|
-
token: string;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
function ensureSessionDir(): void {
|
|
14
|
-
if (!existsSync(SESSION_DIR)) {
|
|
15
|
-
mkdirSync(SESSION_DIR, { recursive: true });
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function saveSession(token: string): void {
|
|
20
|
-
ensureSessionDir();
|
|
21
|
-
const payload: SessionFileContents = { token };
|
|
22
|
-
writeFileSync(SESSION_FILE, JSON.stringify(payload, null, 2));
|
|
23
|
-
process.env.CR_AIA_PROXY_SESSION_TOKEN = token;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
export function loadSession(): SessionUser | null {
|
|
27
|
-
if (!existsSync(SESSION_FILE)) {
|
|
28
|
-
return null;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
try {
|
|
32
|
-
const raw = readFileSync(SESSION_FILE, 'utf8');
|
|
33
|
-
const { token } = JSON.parse(raw) as SessionFileContents;
|
|
34
|
-
if (!token) {
|
|
35
|
-
return null;
|
|
36
|
-
}
|
|
37
|
-
const decoded = decodeToken(token);
|
|
38
|
-
if (!decoded) {
|
|
39
|
-
return null;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (decoded.expiresAt && Date.now() > decoded.expiresAt * 1000) {
|
|
43
|
-
clearSession();
|
|
44
|
-
return null;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
return {
|
|
48
|
-
id: decoded.sub ?? 'user',
|
|
49
|
-
username: decoded.username ?? decoded.email ?? 'user',
|
|
50
|
-
expiresAt: decoded.expiresAt ? new Date(decoded.expiresAt * 1000).toISOString() : undefined,
|
|
51
|
-
};
|
|
52
|
-
} catch {
|
|
53
|
-
return null;
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export function getSessionToken(): string | null {
|
|
58
|
-
if (!existsSync(SESSION_FILE)) {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
try {
|
|
63
|
-
const raw = readFileSync(SESSION_FILE, 'utf8');
|
|
64
|
-
const { token } = JSON.parse(raw) as SessionFileContents;
|
|
65
|
-
return token ?? null;
|
|
66
|
-
} catch {
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export function clearSession(): void {
|
|
72
|
-
if (existsSync(SESSION_FILE)) {
|
|
73
|
-
rmSync(SESSION_FILE, { force: true });
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
function decodeToken(token: string):
|
|
78
|
-
| {
|
|
79
|
-
sub?: string;
|
|
80
|
-
username?: string;
|
|
81
|
-
email?: string;
|
|
82
|
-
exp?: number;
|
|
83
|
-
expiresAt?: number;
|
|
84
|
-
}
|
|
85
|
-
| null {
|
|
86
|
-
const parts = token.split('.');
|
|
87
|
-
if (parts.length < 2) {
|
|
88
|
-
return null;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
try {
|
|
92
|
-
const payload = parts[1];
|
|
93
|
-
const decoded = Buffer.from(payload, 'base64').toString('utf8');
|
|
94
|
-
const parsed = JSON.parse(decoded) as { sub?: string; username?: string; email?: string; exp?: number };
|
|
95
|
-
return {
|
|
96
|
-
...parsed,
|
|
97
|
-
expiresAt: parsed.exp,
|
|
98
|
-
};
|
|
99
|
-
} catch {
|
|
100
|
-
return null;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
|
package/src/runtime/cliEntry.ts
DELETED
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
import pc from 'picocolors';
|
|
2
|
-
import pkg from '../../package.json';
|
|
3
|
-
import { RUNTIME_CONFIG } from './runtimeConfig';
|
|
4
|
-
import { executeReview } from './reviewPipeline';
|
|
5
|
-
import { ensureProxyEnvironmentInitialized } from './proxyEnvironment';
|
|
6
|
-
import { preloadInkModules, getInk } from './ui/inkModules';
|
|
7
|
-
import { setLogLevel, LogLevel } from '../utils/logger';
|
|
8
|
-
|
|
9
|
-
interface DirectOptions {
|
|
10
|
-
model: string;
|
|
11
|
-
outDir: string;
|
|
12
|
-
debug: boolean;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const pkgVersion = pkg.version ?? 'unknown';
|
|
16
|
-
const DEFAULT_PROXY_BASE_URL = 'https://cr.ai.enki.si';
|
|
17
|
-
|
|
18
|
-
export async function handleRuntimeCliEntry(): Promise<boolean> {
|
|
19
|
-
const rawArgs = process.argv.slice(2);
|
|
20
|
-
const { cliArgs, debugFlag } = stripDebugFlag(rawArgs);
|
|
21
|
-
|
|
22
|
-
if (cliArgs.length === 0) {
|
|
23
|
-
await launchUi(debugFlag);
|
|
24
|
-
return true;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if (shouldPrintHelp(cliArgs)) {
|
|
28
|
-
printHelp();
|
|
29
|
-
return true;
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
if (shouldRunDirect(cliArgs)) {
|
|
33
|
-
await runDirectSafely(stripDirectArgs(cliArgs));
|
|
34
|
-
return true;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
await launchUi(debugFlag);
|
|
38
|
-
return true;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
function shouldPrintHelp(args: string[]): boolean {
|
|
42
|
-
if (args.length === 0) return false;
|
|
43
|
-
const first = args[0];
|
|
44
|
-
return first === '--help' || first === '-h';
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function shouldRunDirect(args: string[]): boolean {
|
|
48
|
-
if (args.length === 0) return false;
|
|
49
|
-
return args[0] === 'review';
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
function stripDirectArgs(args: string[]): string[] {
|
|
53
|
-
if (args[0] === 'review') {
|
|
54
|
-
return args.slice(1);
|
|
55
|
-
}
|
|
56
|
-
return args;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
function stripDebugFlag(args: string[]): { cliArgs: string[]; debugFlag: boolean } {
|
|
60
|
-
const cleaned: string[] = [];
|
|
61
|
-
let debugFlag = false;
|
|
62
|
-
|
|
63
|
-
for (const arg of args) {
|
|
64
|
-
if (arg === '--debug') {
|
|
65
|
-
debugFlag = true;
|
|
66
|
-
continue;
|
|
67
|
-
}
|
|
68
|
-
cleaned.push(arg);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
return { cliArgs: cleaned, debugFlag };
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
async function runDirectSafely(argv: string[]): Promise<void> {
|
|
75
|
-
try {
|
|
76
|
-
const options = parseArgs(argv);
|
|
77
|
-
await runDirect(options);
|
|
78
|
-
} catch (error) {
|
|
79
|
-
console.error(pc.red('Fatal error:'), error instanceof Error ? error.message : error);
|
|
80
|
-
process.exit(1);
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
async function launchUi(debug: boolean): Promise<void> {
|
|
85
|
-
setLogLevel(LogLevel.NONE);
|
|
86
|
-
const restoreConsole = silenceConsole();
|
|
87
|
-
try {
|
|
88
|
-
ensureProxyEnvironmentInitialized(process.cwd());
|
|
89
|
-
await preloadInkModules();
|
|
90
|
-
const React = await import('react');
|
|
91
|
-
const { render } = getInk();
|
|
92
|
-
const { RuntimeApp } = await import('./ui/RuntimeApp');
|
|
93
|
-
const ink = render(React.createElement(RuntimeApp, { debug }));
|
|
94
|
-
await ink.waitUntilExit();
|
|
95
|
-
} finally {
|
|
96
|
-
restoreConsole();
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
function silenceConsole(): () => void {
|
|
101
|
-
const originalLog = console.log;
|
|
102
|
-
const originalInfo = console.info;
|
|
103
|
-
const originalWarn = console.warn;
|
|
104
|
-
const originalDebug = console.debug;
|
|
105
|
-
const noop = () => {};
|
|
106
|
-
console.log = noop;
|
|
107
|
-
console.info = noop;
|
|
108
|
-
console.warn = noop;
|
|
109
|
-
console.debug = noop;
|
|
110
|
-
return () => {
|
|
111
|
-
console.log = originalLog;
|
|
112
|
-
console.info = originalInfo;
|
|
113
|
-
console.warn = originalWarn;
|
|
114
|
-
console.debug = originalDebug;
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function parseArgs(argv: string[]): DirectOptions {
|
|
119
|
-
const opts: DirectOptions = {
|
|
120
|
-
model: process.env.AI_CODE_REVIEW_MODEL || RUNTIME_CONFIG.DEFAULT_MODEL,
|
|
121
|
-
outDir: './reports',
|
|
122
|
-
debug: false,
|
|
123
|
-
};
|
|
124
|
-
|
|
125
|
-
for (let i = 0; i < argv.length; i += 1) {
|
|
126
|
-
const arg = argv[i];
|
|
127
|
-
if (!arg.startsWith('--')) continue;
|
|
128
|
-
const value = argv[i + 1];
|
|
129
|
-
|
|
130
|
-
switch (arg) {
|
|
131
|
-
case '--model':
|
|
132
|
-
if (!value) throw new Error('Missing value for --model');
|
|
133
|
-
opts.model = value;
|
|
134
|
-
i += 1;
|
|
135
|
-
break;
|
|
136
|
-
case '--out':
|
|
137
|
-
if (!value) throw new Error('Missing value for --out');
|
|
138
|
-
opts.outDir = value;
|
|
139
|
-
i += 1;
|
|
140
|
-
break;
|
|
141
|
-
case '--debug':
|
|
142
|
-
opts.debug = true;
|
|
143
|
-
break;
|
|
144
|
-
case '--help':
|
|
145
|
-
case '-h':
|
|
146
|
-
printHelp();
|
|
147
|
-
process.exit(0);
|
|
148
|
-
break;
|
|
149
|
-
default:
|
|
150
|
-
throw new Error(`Unknown option: ${arg}`);
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
|
|
154
|
-
return opts;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
async function runDirect(options: DirectOptions): Promise<void> {
|
|
158
|
-
console.log(pc.blue('Collecting files...'));
|
|
159
|
-
const result = await executeReview({
|
|
160
|
-
model: options.model,
|
|
161
|
-
outDir: options.outDir,
|
|
162
|
-
debug: options.debug,
|
|
163
|
-
onStage: (stage, info) => {
|
|
164
|
-
switch (stage) {
|
|
165
|
-
case 'collecting':
|
|
166
|
-
if (info?.filesFound !== undefined) {
|
|
167
|
-
const uncommitted = info.uncommittedFiles ?? info.filesFound;
|
|
168
|
-
const context = info.contextFiles ?? 0;
|
|
169
|
-
const breakdown = context ? ` (${uncommitted} uncommitted + ${context} context)` : '';
|
|
170
|
-
console.log(pc.green(`✓ Found ${info.filesFound} files${breakdown}`));
|
|
171
|
-
}
|
|
172
|
-
break;
|
|
173
|
-
case 'reviewing': {
|
|
174
|
-
const context = info?.contextFiles ?? 0;
|
|
175
|
-
const base = info?.uncommittedFiles ?? info?.filesFound;
|
|
176
|
-
const suffix =
|
|
177
|
-
base || context
|
|
178
|
-
? ` (scope: ${base ?? '?'} uncommitted${context ? ` + ${context} context` : ''})`
|
|
179
|
-
: '';
|
|
180
|
-
const defaultLine = `Running AI review${suffix ? suffix : ''}...`;
|
|
181
|
-
const detailLine =
|
|
182
|
-
typeof info?.fileIndex === 'number' &&
|
|
183
|
-
typeof info.totalFiles === 'number' &&
|
|
184
|
-
info.totalFiles > 0 &&
|
|
185
|
-
info.currentFile
|
|
186
|
-
? `Running AI review ▸ ${info.fileIndex}/${info.totalFiles} ${info.currentFile}${suffix}`
|
|
187
|
-
: defaultLine;
|
|
188
|
-
console.log(pc.blue(detailLine));
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
case 'merging':
|
|
192
|
-
console.log(pc.blue('Merging reports...'));
|
|
193
|
-
break;
|
|
194
|
-
default:
|
|
195
|
-
break;
|
|
196
|
-
}
|
|
197
|
-
},
|
|
198
|
-
});
|
|
199
|
-
|
|
200
|
-
console.log(pc.green(`✓ Review complete (${result.duration}s)`));
|
|
201
|
-
console.log(pc.cyan(` Critical: ${result.totals?.critical || 0}`));
|
|
202
|
-
console.log(pc.yellow(` High: ${result.totals?.high || 0}`));
|
|
203
|
-
console.log(pc.gray(` Medium: ${result.totals?.medium || 0}`));
|
|
204
|
-
console.log(pc.gray(` Low: ${result.totals?.low || 0}`));
|
|
205
|
-
if (result.reportPath) {
|
|
206
|
-
console.log(pc.green(` Report: ${result.reportPath}`));
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
function printHelp(): void {
|
|
211
|
-
console.log(
|
|
212
|
-
`cr-aia v${pkgVersion}\n\nUsage: cr-aia review [options]\n\nOptions:\n --model <model-id> AI model (default: ${RUNTIME_CONFIG.DEFAULT_MODEL})\n --out <dir> Output directory (default: ./reports)\n --debug Enable debug logging to logs/ directory\n --help Show this help message\n\nProxy:\n Requests to OpenRouter are routed through the proxy at PROXY_BASE_URL\n (default: ${DEFAULT_PROXY_BASE_URL}). Configure via env or .cr-aia.yml.\n Optional: PROXY_HTTP_REFERER, PROXY_X_TITLE, PROXY_BASIC_AUTH_USER/PASSWORD.\n\nNotes:\n This CLI runs a non-interactive review of your staged/uncommitted changes.\n Ensure the proxy endpoint is reachable before running a review.`,
|
|
213
|
-
);
|
|
214
|
-
}
|