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,269 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Utilities for formatting metadata sections in review outputs.
|
|
3
|
-
*
|
|
4
|
-
* This module provides functions to format metadata sections for review outputs,
|
|
5
|
-
* including cost information, model details, and other metadata.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import type { PassCost, ReviewType } from '../../types/review';
|
|
9
|
-
import { extractModelInfoFromString } from './ModelInfoExtractor';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Format a metadata section for a review
|
|
13
|
-
* @param reviewType Type of review
|
|
14
|
-
* @param timestamp Timestamp of the review
|
|
15
|
-
* @param modelInfo Model information string
|
|
16
|
-
* @param cost Cost information object
|
|
17
|
-
* @param toolVersion Tool version
|
|
18
|
-
* @param commandOptions Command options used
|
|
19
|
-
* @param detectedLanguage Detected language
|
|
20
|
-
* @param detectedFramework Detected framework
|
|
21
|
-
* @param frameworkVersion Framework version
|
|
22
|
-
* @param cssFrameworks CSS frameworks detected
|
|
23
|
-
* @returns Formatted metadata section as markdown
|
|
24
|
-
*/
|
|
25
|
-
export function formatMetadataSection(
|
|
26
|
-
reviewType: string,
|
|
27
|
-
timestamp: string,
|
|
28
|
-
modelInfo: string,
|
|
29
|
-
cost?: any,
|
|
30
|
-
toolVersion?: string,
|
|
31
|
-
commandOptions?: string,
|
|
32
|
-
detectedLanguage?: string,
|
|
33
|
-
detectedFramework?: string,
|
|
34
|
-
frameworkVersion?: string,
|
|
35
|
-
cssFrameworks?: Array<{ name: string; version?: string }>,
|
|
36
|
-
): string {
|
|
37
|
-
// Extract model vendor and name from modelInfo
|
|
38
|
-
const { modelVendor, modelName } = extractModelInfoFromString(modelInfo);
|
|
39
|
-
|
|
40
|
-
// Format the date
|
|
41
|
-
const formattedDate = new Date(timestamp).toLocaleString(undefined, {
|
|
42
|
-
year: 'numeric',
|
|
43
|
-
month: 'long',
|
|
44
|
-
day: 'numeric',
|
|
45
|
-
hour: '2-digit',
|
|
46
|
-
minute: '2-digit',
|
|
47
|
-
second: '2-digit',
|
|
48
|
-
timeZoneName: 'short',
|
|
49
|
-
});
|
|
50
|
-
|
|
51
|
-
// Create metadata section
|
|
52
|
-
let metadataSection = `## Metadata\n| Property | Value |\n|----------|-------|\n| Review Type | ${reviewType} |\n| Generated At | ${formattedDate} |\n| Model Provider | ${modelVendor} |\n| Model Name | ${modelName} |`;
|
|
53
|
-
|
|
54
|
-
// Add framework detection information if available
|
|
55
|
-
if (detectedLanguage) {
|
|
56
|
-
metadataSection += `\n| Detected Language | ${detectedLanguage} |`;
|
|
57
|
-
|
|
58
|
-
if (detectedFramework && detectedFramework !== 'none') {
|
|
59
|
-
metadataSection += `\n| Detected Framework | ${detectedFramework}${frameworkVersion ? ` v${frameworkVersion}` : ''} |`;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
if (cssFrameworks && cssFrameworks.length > 0) {
|
|
63
|
-
const cssFrameworksStr = cssFrameworks
|
|
64
|
-
.map((cf) => (cf.version ? `${cf.name} v${cf.version.replace(/[^\d.]/g, '')}` : cf.name))
|
|
65
|
-
.join(', ');
|
|
66
|
-
|
|
67
|
-
metadataSection += `\n| CSS Frameworks | ${cssFrameworksStr} |`;
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
// Add cost information if available
|
|
72
|
-
if (cost) {
|
|
73
|
-
metadataSection += `\n| Input Tokens | ${cost.inputTokens.toLocaleString()} |\n| Output Tokens | ${cost.outputTokens.toLocaleString()} |\n| Total Tokens | ${cost.totalTokens.toLocaleString()} |\n| Estimated Cost | ${cost.formattedCost} |`;
|
|
74
|
-
|
|
75
|
-
// Add multi-pass information if available
|
|
76
|
-
if (cost.passCount && cost.passCount > 1) {
|
|
77
|
-
metadataSection += `\n| Multi-pass Review | ${cost.passCount} passes |`;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
// Add tool version if available
|
|
82
|
-
if (toolVersion) {
|
|
83
|
-
metadataSection += `\n| Tool Version | ${toolVersion} |`;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
// Add command options if available
|
|
87
|
-
if (commandOptions) {
|
|
88
|
-
metadataSection += `\n| Command Options | \`${commandOptions}\` |`;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// Close the metadata table
|
|
92
|
-
metadataSection += `\n`;
|
|
93
|
-
|
|
94
|
-
return metadataSection;
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
/**
|
|
98
|
-
* Parse metadata from a review object
|
|
99
|
-
* @param metadata Metadata object or string
|
|
100
|
-
* @returns Parsed metadata object
|
|
101
|
-
*/
|
|
102
|
-
export function parseMetadata(metadata: any): any {
|
|
103
|
-
if (!metadata) {
|
|
104
|
-
return {};
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
try {
|
|
108
|
-
return typeof metadata === 'string' ? JSON.parse(metadata) : metadata;
|
|
109
|
-
} catch (_error) {
|
|
110
|
-
// Silently continue if metadata parsing fails
|
|
111
|
-
return {};
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
* Create enhanced metadata object with detection info
|
|
117
|
-
* @param modelVendor Model vendor
|
|
118
|
-
* @param modelName Model name
|
|
119
|
-
* @param modelInfo Full model info string
|
|
120
|
-
* @param reviewType Review type
|
|
121
|
-
* @param displayPath Display path
|
|
122
|
-
* @param timestamp Timestamp
|
|
123
|
-
* @param cost Cost information
|
|
124
|
-
* @param toolVersion Tool version
|
|
125
|
-
* @param commandOptions Command options
|
|
126
|
-
* @param additionalMetadata Additional metadata
|
|
127
|
-
* @param detectedLanguage Detected language
|
|
128
|
-
* @param detectedFramework Detected framework
|
|
129
|
-
* @param frameworkVersion Framework version
|
|
130
|
-
* @param cssFrameworks CSS frameworks
|
|
131
|
-
* @returns Enhanced metadata object
|
|
132
|
-
*/
|
|
133
|
-
export function createEnhancedMetadata(
|
|
134
|
-
modelVendor: string,
|
|
135
|
-
modelName: string,
|
|
136
|
-
modelInfo: string,
|
|
137
|
-
reviewType: ReviewType,
|
|
138
|
-
displayPath: string,
|
|
139
|
-
timestamp: string,
|
|
140
|
-
cost: any,
|
|
141
|
-
toolVersion?: string,
|
|
142
|
-
commandOptions?: string,
|
|
143
|
-
additionalMetadata: any = {},
|
|
144
|
-
detectedLanguage?: string,
|
|
145
|
-
detectedFramework?: string,
|
|
146
|
-
frameworkVersion?: string,
|
|
147
|
-
cssFrameworks?: Array<{ name: string; version?: string }>,
|
|
148
|
-
): any {
|
|
149
|
-
// Format the date
|
|
150
|
-
const formattedDate = new Date(timestamp).toLocaleString(undefined, {
|
|
151
|
-
year: 'numeric',
|
|
152
|
-
month: 'long',
|
|
153
|
-
day: 'numeric',
|
|
154
|
-
hour: '2-digit',
|
|
155
|
-
minute: '2-digit',
|
|
156
|
-
second: '2-digit',
|
|
157
|
-
timeZoneName: 'short',
|
|
158
|
-
});
|
|
159
|
-
|
|
160
|
-
// Create enhanced metadata object
|
|
161
|
-
const enhancedMetadata: any = {
|
|
162
|
-
model: {
|
|
163
|
-
provider: modelVendor,
|
|
164
|
-
name: modelName,
|
|
165
|
-
fullName: modelInfo,
|
|
166
|
-
},
|
|
167
|
-
review: {
|
|
168
|
-
type: reviewType,
|
|
169
|
-
path: displayPath,
|
|
170
|
-
generatedAt: new Date(timestamp).toISOString(),
|
|
171
|
-
formattedDate: formattedDate,
|
|
172
|
-
multiPass:
|
|
173
|
-
cost?.passCount && cost.passCount > 1
|
|
174
|
-
? {
|
|
175
|
-
enabled: true,
|
|
176
|
-
passCount: cost.passCount || 1,
|
|
177
|
-
perPassCosts: cost.perPassCosts || null,
|
|
178
|
-
}
|
|
179
|
-
: null,
|
|
180
|
-
},
|
|
181
|
-
cost: cost || null,
|
|
182
|
-
tool: {
|
|
183
|
-
version: toolVersion || process.env.npm_package_version || '2.1.1',
|
|
184
|
-
commandOptions: commandOptions || null,
|
|
185
|
-
...additionalMetadata,
|
|
186
|
-
},
|
|
187
|
-
};
|
|
188
|
-
|
|
189
|
-
// Add framework detection information if available
|
|
190
|
-
if (detectedLanguage) {
|
|
191
|
-
enhancedMetadata.detection = {
|
|
192
|
-
language: detectedLanguage,
|
|
193
|
-
};
|
|
194
|
-
|
|
195
|
-
if (detectedFramework && detectedFramework !== 'none') {
|
|
196
|
-
enhancedMetadata.detection.framework = detectedFramework;
|
|
197
|
-
if (frameworkVersion) {
|
|
198
|
-
enhancedMetadata.detection.frameworkVersion = frameworkVersion;
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
if (cssFrameworks && cssFrameworks.length > 0) {
|
|
203
|
-
enhancedMetadata.detection.cssFrameworks = cssFrameworks;
|
|
204
|
-
}
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
return enhancedMetadata;
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Parse cost information from a cost info string
|
|
212
|
-
* @param costInfo Cost information string
|
|
213
|
-
* @returns Parsed cost object or null
|
|
214
|
-
*/
|
|
215
|
-
export function parseCostInfo(costInfo: string): any {
|
|
216
|
-
if (!costInfo) {
|
|
217
|
-
return null;
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
// Try to extract cost information from the costInfo string
|
|
221
|
-
const inputTokensMatch = costInfo.match(/Input tokens: ([\d,]+)/);
|
|
222
|
-
const outputTokensMatch = costInfo.match(/Output tokens: ([\d,]+)/);
|
|
223
|
-
const totalTokensMatch = costInfo.match(/Total tokens: ([\d,]+)/);
|
|
224
|
-
const estimatedCostMatch = costInfo.match(/Estimated cost: (.*?)$/m);
|
|
225
|
-
const passCountMatch = costInfo.match(/Multi-pass review: (\d+) passes/);
|
|
226
|
-
|
|
227
|
-
if (inputTokensMatch || outputTokensMatch || totalTokensMatch || estimatedCostMatch) {
|
|
228
|
-
return {
|
|
229
|
-
inputTokens: inputTokensMatch ? parseInt(inputTokensMatch[1].replace(/,/g, '')) : 0,
|
|
230
|
-
outputTokens: outputTokensMatch ? parseInt(outputTokensMatch[1].replace(/,/g, '')) : 0,
|
|
231
|
-
totalTokens: totalTokensMatch ? parseInt(totalTokensMatch[1].replace(/,/g, '')) : 0,
|
|
232
|
-
estimatedCost: estimatedCostMatch
|
|
233
|
-
? parseFloat(estimatedCostMatch[1].replace('$', '').replace(' USD', ''))
|
|
234
|
-
: 0,
|
|
235
|
-
formattedCost: estimatedCostMatch ? estimatedCostMatch[1] : '$0.00 USD',
|
|
236
|
-
passCount: passCountMatch ? parseInt(passCountMatch[1]) : 1,
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
return null;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Format cost information as a markdown string
|
|
245
|
-
* @param cost Cost information object
|
|
246
|
-
* @returns Formatted cost information string
|
|
247
|
-
*/
|
|
248
|
-
export function formatCostInfo(cost: any): string {
|
|
249
|
-
if (!cost) {
|
|
250
|
-
return '';
|
|
251
|
-
}
|
|
252
|
-
|
|
253
|
-
let costInfo = `\n\n## Token Usage and Cost\n- Input tokens: ${cost.inputTokens.toLocaleString()}\n- Output tokens: ${cost.outputTokens.toLocaleString()}\n- Total tokens: ${cost.totalTokens.toLocaleString()}\n- Estimated cost: ${cost.formattedCost}`;
|
|
254
|
-
|
|
255
|
-
// Add multi-pass information if available
|
|
256
|
-
if (cost.passCount && cost.passCount > 1) {
|
|
257
|
-
costInfo += `\n- Multi-pass review: ${cost.passCount} passes`;
|
|
258
|
-
|
|
259
|
-
// Add per-pass breakdown if available
|
|
260
|
-
if (cost.perPassCosts && Array.isArray(cost.perPassCosts)) {
|
|
261
|
-
costInfo += `\n\n### Pass Breakdown`;
|
|
262
|
-
cost.perPassCosts.forEach((passCost: PassCost) => {
|
|
263
|
-
costInfo += `\nPass ${passCost.passNumber}:\n- Input tokens: ${passCost.inputTokens.toLocaleString()}\n- Output tokens: ${passCost.outputTokens.toLocaleString()}\n- Total tokens: ${passCost.totalTokens.toLocaleString()}\n- Cost: ${typeof passCost.estimatedCost === 'number' ? `$${passCost.estimatedCost.toFixed(4)} USD` : 'N/A'}`;
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
return costInfo;
|
|
269
|
-
}
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Utility for extracting model information from model strings.
|
|
3
|
-
*
|
|
4
|
-
* This module provides functions to extract and parse model information from
|
|
5
|
-
* model strings in various formats. It handles different provider prefixes
|
|
6
|
-
* and standardizes the output format.
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
import logger from '../../utils/logger';
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Model information extracted from a model string
|
|
13
|
-
*/
|
|
14
|
-
export interface ModelInfo {
|
|
15
|
-
/** The provider of the model (e.g., 'Google', 'Anthropic', 'OpenAI') */
|
|
16
|
-
modelVendor: string;
|
|
17
|
-
/** The name of the model without the provider prefix */
|
|
18
|
-
modelName: string;
|
|
19
|
-
/** A formatted string combining the provider and model name */
|
|
20
|
-
modelInfo: string;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Extract model information from a model string
|
|
25
|
-
* @param modelString The model string to extract information from (e.g., 'gemini:gemini-1.5-pro')
|
|
26
|
-
* @returns Object containing modelVendor, modelName, and modelInfo
|
|
27
|
-
*/
|
|
28
|
-
export function extractModelInfo(modelString?: string): ModelInfo {
|
|
29
|
-
// Default values
|
|
30
|
-
let modelVendor = 'Unknown';
|
|
31
|
-
let modelName = 'AI';
|
|
32
|
-
let modelInfo = 'AI';
|
|
33
|
-
|
|
34
|
-
if (!modelString) {
|
|
35
|
-
logger.warn('No model string provided. Using default values.');
|
|
36
|
-
return { modelVendor, modelName, modelInfo };
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
// Extract model information based on provider prefix
|
|
40
|
-
if (modelString.startsWith('openrouter:')) {
|
|
41
|
-
modelVendor = 'OpenRouter';
|
|
42
|
-
modelName = modelString.substring('openrouter:'.length);
|
|
43
|
-
modelInfo = `OpenRouter (${modelName})`;
|
|
44
|
-
} else if (modelString.startsWith('anthropic:')) {
|
|
45
|
-
modelVendor = 'Anthropic';
|
|
46
|
-
modelName = modelString.substring('anthropic:'.length);
|
|
47
|
-
modelInfo = `Anthropic (${modelName})`;
|
|
48
|
-
} else if (modelString.startsWith('openai:')) {
|
|
49
|
-
modelVendor = 'OpenAI';
|
|
50
|
-
modelName = modelString.substring('openai:'.length);
|
|
51
|
-
modelInfo = `OpenAI (${modelName})`;
|
|
52
|
-
} else if (modelString.startsWith('gemini:')) {
|
|
53
|
-
modelVendor = 'Google';
|
|
54
|
-
modelName = modelString.substring('gemini:'.length);
|
|
55
|
-
modelInfo = `Google Gemini AI (${modelName})`;
|
|
56
|
-
} else if (modelString.startsWith('Google:')) {
|
|
57
|
-
// Handle miscapitalized provider names
|
|
58
|
-
modelVendor = 'Google';
|
|
59
|
-
modelName = modelString.substring('Google:'.length);
|
|
60
|
-
modelInfo = `Google Gemini AI (${modelName})`;
|
|
61
|
-
} else if (modelString.startsWith('Anthropic:')) {
|
|
62
|
-
modelVendor = 'Anthropic';
|
|
63
|
-
modelName = modelString.substring('Anthropic:'.length);
|
|
64
|
-
modelInfo = `Anthropic (${modelName})`;
|
|
65
|
-
} else if (modelString.startsWith('OpenAI:')) {
|
|
66
|
-
modelVendor = 'OpenAI';
|
|
67
|
-
modelName = modelString.substring('OpenAI:'.length);
|
|
68
|
-
modelInfo = `OpenAI (${modelName})`;
|
|
69
|
-
} else if (modelString.startsWith('OpenRouter:')) {
|
|
70
|
-
modelVendor = 'OpenRouter';
|
|
71
|
-
modelName = modelString.substring('OpenRouter:'.length);
|
|
72
|
-
modelInfo = `OpenRouter (${modelName})`;
|
|
73
|
-
} else {
|
|
74
|
-
modelVendor = 'Unknown';
|
|
75
|
-
modelName = modelString;
|
|
76
|
-
modelInfo = `AI (${modelName})`;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return { modelVendor, modelName, modelInfo };
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Extract model information from a formatted model info string
|
|
84
|
-
* @param modelInfo Formatted model info string (e.g., "Google Gemini AI (gemini-1.5-pro)")
|
|
85
|
-
* @returns Object containing modelVendor and modelName
|
|
86
|
-
*/
|
|
87
|
-
export function extractModelInfoFromString(modelInfo: string): {
|
|
88
|
-
modelVendor: string;
|
|
89
|
-
modelName: string;
|
|
90
|
-
} {
|
|
91
|
-
let modelVendor = 'Unknown';
|
|
92
|
-
let modelName = 'AI';
|
|
93
|
-
|
|
94
|
-
if (modelInfo) {
|
|
95
|
-
if (modelInfo.includes('Google Gemini AI')) {
|
|
96
|
-
modelVendor = 'Google';
|
|
97
|
-
const match = modelInfo.match(/\((.*?)\)/);
|
|
98
|
-
modelName = match ? match[1] : 'Gemini';
|
|
99
|
-
} else if (modelInfo.includes('Anthropic')) {
|
|
100
|
-
modelVendor = 'Anthropic';
|
|
101
|
-
const match = modelInfo.match(/\((.*?)\)/);
|
|
102
|
-
modelName = match ? match[1] : 'Claude';
|
|
103
|
-
} else if (modelInfo.includes('OpenAI')) {
|
|
104
|
-
modelVendor = 'OpenAI';
|
|
105
|
-
const match = modelInfo.match(/\((.*?)\)/);
|
|
106
|
-
modelName = match ? match[1] : 'GPT';
|
|
107
|
-
} else if (modelInfo.includes('OpenRouter')) {
|
|
108
|
-
modelVendor = 'OpenRouter';
|
|
109
|
-
const match = modelInfo.match(/\((.*?)\)/);
|
|
110
|
-
modelName = match ? match[1] : 'AI';
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
|
|
114
|
-
return { modelVendor, modelName };
|
|
115
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import logger from './utils/logger';
|
|
2
|
-
import { ensureProxyEnvironmentInitialized } from './runtime/proxyEnvironment';
|
|
3
|
-
import { handleRuntimeCliEntry } from './runtime/cliEntry';
|
|
4
|
-
|
|
5
|
-
async function bootstrap(): Promise<void> {
|
|
6
|
-
try {
|
|
7
|
-
ensureProxyEnvironmentInitialized(process.cwd());
|
|
8
|
-
} catch (error) {
|
|
9
|
-
logger.warn(
|
|
10
|
-
`Failed to load proxy configuration: ${error instanceof Error ? error.message : String(error)}`,
|
|
11
|
-
);
|
|
12
|
-
}
|
|
13
|
-
|
|
14
|
-
const handled = await handleRuntimeCliEntry();
|
|
15
|
-
|
|
16
|
-
if (!handled) {
|
|
17
|
-
logger.error('Unknown command. Run `cr-aia --help` for usage.');
|
|
18
|
-
process.exit(1);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
bootstrap().catch((error) => {
|
|
23
|
-
logger.error(`Fatal runtime error: ${error instanceof Error ? error.message : String(error)}`);
|
|
24
|
-
process.exit(1);
|
|
25
|
-
});
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Plugin interface for custom review strategies.
|
|
3
|
-
*
|
|
4
|
-
* This module defines the interface for plugins that can be registered with the
|
|
5
|
-
* plugin manager to provide custom review strategies.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import type { IReviewStrategy } from '../strategies/ReviewStrategy';
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
* Interface for plugin registration
|
|
12
|
-
*/
|
|
13
|
-
export interface PluginRegistration {
|
|
14
|
-
/**
|
|
15
|
-
* Name of the plugin
|
|
16
|
-
*/
|
|
17
|
-
name: string;
|
|
18
|
-
|
|
19
|
-
/**
|
|
20
|
-
* Description of the plugin
|
|
21
|
-
*/
|
|
22
|
-
description: string;
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Strategy implementation
|
|
26
|
-
*/
|
|
27
|
-
strategy: IReviewStrategy;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Interface for plugin modules
|
|
32
|
-
*/
|
|
33
|
-
export interface Plugin {
|
|
34
|
-
/**
|
|
35
|
-
* Register the plugin with the plugin manager
|
|
36
|
-
* @param pluginManager The plugin manager instance
|
|
37
|
-
*/
|
|
38
|
-
register: (pluginManager: any) => void;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Get information about the plugin
|
|
42
|
-
* @returns Plugin information
|
|
43
|
-
*/
|
|
44
|
-
getInfo: () => {
|
|
45
|
-
name: string;
|
|
46
|
-
description: string;
|
|
47
|
-
version: string;
|
|
48
|
-
author: string;
|
|
49
|
-
};
|
|
50
|
-
}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Plugin manager for custom review strategies.
|
|
3
|
-
*
|
|
4
|
-
* This module provides a singleton manager for loading and registering plugins
|
|
5
|
-
* that provide custom review strategies.
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import fs from 'node:fs/promises';
|
|
9
|
-
import path from 'node:path';
|
|
10
|
-
import type { IReviewStrategy } from '../strategies/ReviewStrategy';
|
|
11
|
-
import logger from '../utils/logger';
|
|
12
|
-
import type { PluginRegistration } from './PluginInterface';
|
|
13
|
-
|
|
14
|
-
/**
|
|
15
|
-
* Singleton manager for plugins
|
|
16
|
-
*/
|
|
17
|
-
export class PluginManager {
|
|
18
|
-
private static instance: PluginManager;
|
|
19
|
-
private plugins: Map<string, PluginRegistration> = new Map();
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Private constructor to enforce singleton pattern
|
|
23
|
-
*/
|
|
24
|
-
private constructor() {}
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* Get the singleton instance
|
|
28
|
-
* @returns The plugin manager instance
|
|
29
|
-
*/
|
|
30
|
-
static getInstance(): PluginManager {
|
|
31
|
-
if (!PluginManager.instance) {
|
|
32
|
-
PluginManager.instance = new PluginManager();
|
|
33
|
-
}
|
|
34
|
-
return PluginManager.instance;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Register a plugin strategy
|
|
39
|
-
* @param registration Plugin registration information
|
|
40
|
-
*/
|
|
41
|
-
registerPlugin(registration: PluginRegistration): void {
|
|
42
|
-
if (this.plugins.has(registration.name)) {
|
|
43
|
-
logger.warn(`Plugin with name "${registration.name}" is already registered. Overwriting...`);
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
this.plugins.set(registration.name, registration);
|
|
47
|
-
logger.info(`Registered plugin strategy: ${registration.name}`);
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Get a plugin strategy by name
|
|
52
|
-
* @param name Plugin name
|
|
53
|
-
* @returns The strategy or undefined if not found
|
|
54
|
-
*/
|
|
55
|
-
getPlugin(name: string): IReviewStrategy | undefined {
|
|
56
|
-
const registration = this.plugins.get(name);
|
|
57
|
-
return registration?.strategy;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Get plugin information by name
|
|
62
|
-
* @param name Plugin name
|
|
63
|
-
* @returns Plugin information or undefined if not found
|
|
64
|
-
*/
|
|
65
|
-
getPluginInfo(name: string): PluginRegistration | undefined {
|
|
66
|
-
return this.plugins.get(name);
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* List all registered plugins
|
|
71
|
-
* @returns Array of plugin registrations
|
|
72
|
-
*/
|
|
73
|
-
listPlugins(): PluginRegistration[] {
|
|
74
|
-
return Array.from(this.plugins.values());
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Load plugins from a directory
|
|
79
|
-
* @param pluginsDir Directory containing plugins
|
|
80
|
-
*/
|
|
81
|
-
async loadPlugins(pluginsDir: string): Promise<void> {
|
|
82
|
-
try {
|
|
83
|
-
// Check if the directory exists
|
|
84
|
-
try {
|
|
85
|
-
await fs.access(pluginsDir);
|
|
86
|
-
} catch (_error) {
|
|
87
|
-
// Silently ignore missing plugins directory - this is expected in most cases
|
|
88
|
-
logger.debug(`Plugins directory not found: ${pluginsDir}`);
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// Read the directory
|
|
93
|
-
const files = await fs.readdir(pluginsDir);
|
|
94
|
-
|
|
95
|
-
// Load each plugin
|
|
96
|
-
for (const file of files) {
|
|
97
|
-
if (file.endsWith('.js')) {
|
|
98
|
-
try {
|
|
99
|
-
const pluginPath = path.join(pluginsDir, file);
|
|
100
|
-
// Dynamic import to load the plugin
|
|
101
|
-
const plugin = await import(pluginPath);
|
|
102
|
-
|
|
103
|
-
// Check if the plugin has a register function
|
|
104
|
-
if (plugin.default && typeof plugin.default.register === 'function') {
|
|
105
|
-
// Register the plugin
|
|
106
|
-
plugin.default.register(this);
|
|
107
|
-
logger.info(`Loaded plugin from ${file}`);
|
|
108
|
-
} else {
|
|
109
|
-
logger.warn(`File ${file} is not a valid plugin (missing register function)`);
|
|
110
|
-
}
|
|
111
|
-
} catch (error) {
|
|
112
|
-
logger.error(
|
|
113
|
-
`Error loading plugin ${file}: ${error instanceof Error ? error.message : String(error)}`,
|
|
114
|
-
);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
logger.info(`Loaded ${this.plugins.size} plugins from ${pluginsDir}`);
|
|
120
|
-
} catch (error) {
|
|
121
|
-
logger.error(
|
|
122
|
-
`Error loading plugins: ${error instanceof Error ? error.message : String(error)}`,
|
|
123
|
-
);
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
}
|
|
@@ -1,69 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview Lightweight prompt manager.
|
|
3
|
-
*
|
|
4
|
-
* The upstream project exposes a fairly sophisticated prompt management system.
|
|
5
|
-
* For this fork we keep the API surface that strategies rely on while providing
|
|
6
|
-
* a much smaller implementation that pulls templates from the bundled prompt
|
|
7
|
-
* utilities when available and falls back to opinionated defaults otherwise.
|
|
8
|
-
*/
|
|
9
|
-
|
|
10
|
-
import type { ReviewOptions, ReviewType } from '../types/review';
|
|
11
|
-
import logger from '../utils/logger';
|
|
12
|
-
import { getPromptTemplate as fetchTemplate } from '../utils/promptTemplateManager';
|
|
13
|
-
import PromptCache from './cache/PromptCache';
|
|
14
|
-
|
|
15
|
-
/**
|
|
16
|
-
* Singleton prompt manager responsible for serving prompt templates.
|
|
17
|
-
*/
|
|
18
|
-
export class PromptManager {
|
|
19
|
-
private static instance: PromptManager | null = null;
|
|
20
|
-
private cache = PromptCache.getInstance();
|
|
21
|
-
|
|
22
|
-
private constructor() {}
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Get the shared prompt manager instance.
|
|
26
|
-
*/
|
|
27
|
-
public static getInstance(): PromptManager {
|
|
28
|
-
if (!PromptManager.instance) {
|
|
29
|
-
PromptManager.instance = new PromptManager();
|
|
30
|
-
}
|
|
31
|
-
return PromptManager.instance;
|
|
32
|
-
}
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Retrieve a prompt template for a given review type and options.
|
|
36
|
-
*/
|
|
37
|
-
public getPromptTemplate(reviewType: ReviewType, options?: ReviewOptions): string {
|
|
38
|
-
const keyParts = [reviewType, options?.language ?? 'default', options?.framework ?? 'any'];
|
|
39
|
-
const cacheKey = keyParts.join('::');
|
|
40
|
-
|
|
41
|
-
const cached = this.cache.get(cacheKey);
|
|
42
|
-
if (cached) {
|
|
43
|
-
return cached;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
const template =
|
|
47
|
-
fetchTemplate(reviewType, options?.language, options?.framework) ??
|
|
48
|
-
this.buildFallbackTemplate(reviewType);
|
|
49
|
-
|
|
50
|
-
this.cache.set(cacheKey, template);
|
|
51
|
-
return template;
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Build a minimal fallback template when no custom template exists.
|
|
56
|
-
*/
|
|
57
|
-
private buildFallbackTemplate(reviewType: ReviewType): string {
|
|
58
|
-
logger.warn(
|
|
59
|
-
`Prompt template for review type "${reviewType}" not found. Using fallback instructions.`,
|
|
60
|
-
);
|
|
61
|
-
|
|
62
|
-
return [
|
|
63
|
-
`You are an experienced reviewer performing a ${reviewType} assessment.`,
|
|
64
|
-
'Focus on the provided files, identify actionable issues, and respond with concise findings.',
|
|
65
|
-
].join('\n\n');
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
export default PromptManager;
|