codereview-aia 0.1.3 → 0.2.0
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 +580 -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 +184 -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 +276 -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 +381 -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/batchStreamer.d.ts +54 -0
- package/dist/runtime/preprod/batchStreamer.js +159 -0
- package/dist/runtime/preprod/batchStreamer.js.map +1 -0
- package/dist/runtime/preprod/crEdgeServiceClient.d.ts +30 -0
- package/dist/runtime/preprod/crEdgeServiceClient.js +133 -0
- package/dist/runtime/preprod/crEdgeServiceClient.js.map +1 -0
- package/dist/runtime/preprod/progressTracker.d.ts +21 -0
- package/dist/runtime/preprod/progressTracker.js +80 -0
- package/dist/runtime/preprod/progressTracker.js.map +1 -0
- package/dist/runtime/preprod/webCheck.d.ts +1 -0
- package/dist/runtime/preprod/webCheck.js +102 -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 +61 -0
- package/dist/runtime/reviewPipeline.js +231 -0
- package/dist/runtime/reviewPipeline.js.map +1 -0
- package/dist/runtime/runAiCodeReview.d.ts +36 -0
- package/dist/runtime/runAiCodeReview.js +409 -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 +275 -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 +11 -0
- package/dist/runtime/ui/screens/ModeSelection.js +169 -0
- package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
- package/dist/runtime/ui/screens/ProgressScreen.d.ts +21 -0
- package/dist/runtime/ui/screens/ProgressScreen.js +86 -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 +34 -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 -1
- package/.cr-aia.yml +0 -23
- package/.crignore +0 -0
- package/docs/opt-in-full-context.md +0 -27
- package/reports/cr-cr-aia-17-11-2025-20-13.md +0 -354
- package/src/analysis/FindingsExtractor.ts +0 -431
- package/src/analysis/ai-detection/analyzers/BaseAnalyzer.ts +0 -267
- package/src/analysis/ai-detection/analyzers/DocumentationAnalyzer.ts +0 -622
- package/src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts +0 -430
- package/src/analysis/ai-detection/core/AIDetectionEngine.ts +0 -467
- package/src/analysis/ai-detection/types/DetectionTypes.ts +0 -406
- package/src/analysis/ai-detection/utils/SubmissionConverter.ts +0 -390
- package/src/analysis/context/ReviewContext.ts +0 -378
- package/src/analysis/tokens/TokenAnalyzer.ts +0 -747
- package/src/clients/base/abstractClient.ts +0 -190
- package/src/clients/base/httpClient.ts +0 -160
- package/src/clients/base/modelDetection.ts +0 -107
- package/src/clients/base/responseProcessor.ts +0 -586
- package/src/clients/factory/clientFactory.ts +0 -55
- package/src/clients/implementations/openRouterClient.ts +0 -413
- package/src/clients/openRouterClient.ts +0 -870
- package/src/clients/utils/directoryStructure.ts +0 -52
- package/src/clients/utils/languageDetection.ts +0 -44
- package/src/clients/utils/promptFormatter.ts +0 -182
- package/src/clients/utils/tokenCounter.ts +0 -297
- package/src/core/ApiClientSelector.ts +0 -37
- package/src/core/ConfigurationService.ts +0 -591
- package/src/core/ConsolidationService.ts +0 -423
- package/src/core/InteractiveDisplayManager.ts +0 -81
- package/src/core/OutputManager.ts +0 -275
- package/src/core/ReviewGenerator.ts +0 -140
- package/src/core/fileDiscovery.ts +0 -237
- package/src/core/handlers/EstimationHandler.ts +0 -104
- package/src/core/handlers/FileProcessingHandler.ts +0 -210
- package/src/core/handlers/OutputHandler.ts +0 -125
- package/src/core/handlers/ReviewExecutor.ts +0 -104
- package/src/core/reviewOrchestrator.ts +0 -333
- package/src/core/utils/ModelInfoUtils.ts +0 -56
- package/src/formatters/utils/IssueFormatters.ts +0 -83
- package/src/formatters/utils/JsonFormatter.ts +0 -77
- package/src/formatters/utils/MarkdownFormatters.ts +0 -609
- package/src/formatters/utils/MetadataFormatter.ts +0 -269
- package/src/formatters/utils/ModelInfoExtractor.ts +0 -115
- package/src/index.ts +0 -25
- package/src/plugins/PluginInterface.ts +0 -50
- package/src/plugins/PluginManager.ts +0 -126
- package/src/prompts/PromptManager.ts +0 -69
- package/src/prompts/cache/PromptCache.ts +0 -50
- package/src/prompts/promptText/common/variables/css-frameworks.json +0 -33
- package/src/prompts/promptText/common/variables/framework-versions.json +0 -45
- package/src/prompts/promptText/frameworks/react/comprehensive.hbs +0 -19
- package/src/prompts/promptText/languages/css/comprehensive.hbs +0 -18
- package/src/prompts/promptText/languages/generic/comprehensive.hbs +0 -20
- package/src/prompts/promptText/languages/html/comprehensive.hbs +0 -18
- package/src/prompts/promptText/languages/javascript/comprehensive.hbs +0 -18
- package/src/prompts/promptText/languages/python/comprehensive.hbs +0 -18
- package/src/prompts/promptText/languages/typescript/comprehensive.hbs +0 -18
- package/src/runtime/auth/service.ts +0 -58
- package/src/runtime/auth/session.ts +0 -103
- package/src/runtime/auth/types.ts +0 -11
- package/src/runtime/cliEntry.ts +0 -214
- package/src/runtime/debug/logManager.ts +0 -37
- package/src/runtime/errors.ts +0 -13
- package/src/runtime/fileCollector.ts +0 -495
- package/src/runtime/manifest.ts +0 -64
- package/src/runtime/openrouterProxy.ts +0 -45
- package/src/runtime/preprod/webCheck.ts +0 -104
- package/src/runtime/proxyConfig.ts +0 -94
- package/src/runtime/proxyEnvironment.ts +0 -71
- package/src/runtime/reportMerge.ts +0 -102
- package/src/runtime/reporting/markdownReportBuilder.ts +0 -138
- package/src/runtime/reporting/reportDataCollector.ts +0 -234
- package/src/runtime/reporting/summaryGenerator.ts +0 -86
- package/src/runtime/reviewPipeline.ts +0 -200
- package/src/runtime/runAiCodeReview.ts +0 -308
- package/src/runtime/runtimeConfig.ts +0 -5
- package/src/runtime/ui/Layout.tsx +0 -57
- package/src/runtime/ui/RuntimeApp.tsx +0 -262
- package/src/runtime/ui/inkModules.ts +0 -73
- package/src/runtime/ui/screens/AuthScreen.tsx +0 -128
- package/src/runtime/ui/screens/ModeSelection.tsx +0 -185
- package/src/runtime/ui/screens/ProgressScreen.tsx +0 -110
- package/src/runtime/ui/screens/ResultsScreen.tsx +0 -103
- package/src/strategies/ArchitecturalReviewStrategy.ts +0 -54
- package/src/strategies/CodingTestReviewStrategy.ts +0 -920
- package/src/strategies/ConsolidatedReviewStrategy.ts +0 -59
- package/src/strategies/ExtractPatternsReviewStrategy.ts +0 -64
- package/src/strategies/MultiPassReviewStrategy.ts +0 -785
- package/src/strategies/ReviewStrategy.ts +0 -64
- package/src/strategies/StrategyFactory.ts +0 -79
- package/src/tokenizers/baseTokenizer.ts +0 -61
- package/src/tokenizers/gptTokenizer.ts +0 -27
- package/src/types/apiResponses.ts +0 -40
- package/src/types/cli.ts +0 -24
- package/src/types/configuration.ts +0 -201
- package/src/types/handlebars.d.ts +0 -5
- package/src/types/patch.d.ts +0 -25
- package/src/types/review.ts +0 -312
- package/src/types/reviewContext.d.ts +0 -65
- package/src/types/structuredReview.ts +0 -167
- package/src/types/tokenAnalysis.ts +0 -56
- package/src/utils/FileReader.ts +0 -93
- package/src/utils/FileWriter.ts +0 -76
- package/src/utils/PathGenerator.ts +0 -97
- package/src/utils/api/apiUtils.ts +0 -14
- package/src/utils/apiErrorHandler.ts +0 -287
- package/src/utils/ciDataCollector.ts +0 -252
- package/src/utils/codingTestConfigLoader.ts +0 -466
- package/src/utils/dependencies/aiDependencyAnalyzer.ts +0 -454
- package/src/utils/detection/frameworkDetector.ts +0 -879
- package/src/utils/detection/projectTypeDetector.ts +0 -518
- package/src/utils/diagramGenerator.ts +0 -206
- package/src/utils/errorLogger.ts +0 -60
- package/src/utils/estimationUtils.ts +0 -407
- package/src/utils/fileFilters.ts +0 -373
- package/src/utils/fileSystem.ts +0 -57
- package/src/utils/logger.ts +0 -290
- package/src/utils/pathValidator.ts +0 -98
- package/src/utils/projectDocs.ts +0 -189
- package/src/utils/promptPaths.ts +0 -29
- package/src/utils/promptTemplateManager.ts +0 -157
- package/src/utils/review/consolidateReview.ts +0 -553
- package/src/utils/review/fixDisplay.ts +0 -100
- package/src/utils/review/fixImplementation.ts +0 -61
- package/src/utils/review/index.ts +0 -36
- package/src/utils/review/interactiveProcessing.ts +0 -294
- package/src/utils/review/progressTracker.ts +0 -296
- package/src/utils/review/reviewExtraction.ts +0 -382
- package/src/utils/review/types.ts +0 -46
- package/src/utils/reviewParser.ts +0 -253
- package/src/utils/sanitizer.ts +0 -238
- package/src/utils/smartFileSelector.ts +0 -255
- package/src/utils/templateLoader.ts +0 -514
- package/src/utils/treeGenerator.ts +0 -153
- package/tsconfig.build.json +0 -14
- package/tsconfig.json +0 -59
- /package/{src/utils/api/index.ts → dist/utils/api/index.d.ts} +0 -0
|
@@ -0,0 +1,580 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fileoverview Client for interacting with the OpenRouter API.
|
|
4
|
+
*
|
|
5
|
+
* This module provides a client for interacting with OpenRouter's API, which gives
|
|
6
|
+
* access to a variety of AI models from different providers. It handles API key
|
|
7
|
+
* management, request formatting, response processing, rate limiting, error handling,
|
|
8
|
+
* and cost estimation for code reviews.
|
|
9
|
+
*
|
|
10
|
+
* Key features:
|
|
11
|
+
* - Support for various models through OpenRouter (Claude, GPT-4, etc.)
|
|
12
|
+
* - Streaming and non-streaming responses
|
|
13
|
+
* - Robust error handling and rate limit management
|
|
14
|
+
* - Cost estimation for API usage
|
|
15
|
+
* - Support for different review types
|
|
16
|
+
*/
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
33
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
34
|
+
var ownKeys = function(o) {
|
|
35
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
36
|
+
var ar = [];
|
|
37
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
38
|
+
return ar;
|
|
39
|
+
};
|
|
40
|
+
return ownKeys(o);
|
|
41
|
+
};
|
|
42
|
+
return function (mod) {
|
|
43
|
+
if (mod && mod.__esModule) return mod;
|
|
44
|
+
var result = {};
|
|
45
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
46
|
+
__setModuleDefault(result, mod);
|
|
47
|
+
return result;
|
|
48
|
+
};
|
|
49
|
+
})();
|
|
50
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
51
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
52
|
+
};
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.initializeAnyOpenRouterModel = initializeAnyOpenRouterModel;
|
|
55
|
+
exports.generateOpenRouterReview = generateOpenRouterReview;
|
|
56
|
+
exports.generateOpenRouterConsolidatedReview = generateOpenRouterConsolidatedReview;
|
|
57
|
+
const apiErrorHandler_1 = require("../utils/apiErrorHandler");
|
|
58
|
+
const ConfigurationService_1 = require("../core/ConfigurationService");
|
|
59
|
+
const logger_1 = __importDefault(require("../utils/logger"));
|
|
60
|
+
const openrouterProxy_1 = require("../runtime/openrouterProxy");
|
|
61
|
+
// import { generateDirectoryStructure } from './utils'; // Not used in this file
|
|
62
|
+
// import { getLanguageFromExtension } from './utils/languageDetection'; // Not used in this file
|
|
63
|
+
const promptFormatter_1 = require("./utils/promptFormatter");
|
|
64
|
+
const promptLoader_1 = require("./utils/promptLoader");
|
|
65
|
+
const tokenCounter_1 = require("./utils/tokenCounter");
|
|
66
|
+
// Track if we've initialized a model successfully
|
|
67
|
+
let modelInitialized = false;
|
|
68
|
+
const OPENROUTER_FALLBACK_MODEL = process.env.AI_CODE_REVIEW_FALLBACK_MODEL || 'openrouter:x-ai/grok-4-fast';
|
|
69
|
+
const MAX_ATTEMPTS_PER_MODEL = 3;
|
|
70
|
+
const RETRY_BASE_DELAY_MS = 750;
|
|
71
|
+
/**
|
|
72
|
+
* Determine appropriate max_tokens based on review type and context
|
|
73
|
+
*/
|
|
74
|
+
function getMaxTokensForReviewType(reviewType, isConsolidation) {
|
|
75
|
+
// For consolidation passes, we need unlimited tokens to avoid truncation
|
|
76
|
+
if (isConsolidation) {
|
|
77
|
+
return undefined; // No limit for consolidating multiple reviews
|
|
78
|
+
}
|
|
79
|
+
// For different review types, adjust token limits based on expected output size
|
|
80
|
+
switch (reviewType) {
|
|
81
|
+
case 'consolidated':
|
|
82
|
+
return undefined; // No limit for consolidated reviews to avoid truncation
|
|
83
|
+
case 'architectural':
|
|
84
|
+
return 8000; // Architectural reviews can be detailed
|
|
85
|
+
case 'security':
|
|
86
|
+
return 8000; // Security reviews can be detailed
|
|
87
|
+
case 'performance':
|
|
88
|
+
return 8000; // Performance reviews can be detailed
|
|
89
|
+
case 'quick-fixes':
|
|
90
|
+
return 8000; // Quick fixes can be substantial for large codebases
|
|
91
|
+
default:
|
|
92
|
+
return 8000; // Default to higher limit for unknown types
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Detect if response was truncated due to token limits
|
|
97
|
+
*/
|
|
98
|
+
function isResponseTruncated(content, finishReason) {
|
|
99
|
+
if (finishReason === 'length' || finishReason === 'MAX_TOKENS') {
|
|
100
|
+
return true;
|
|
101
|
+
}
|
|
102
|
+
// Check for common truncation patterns in JSON responses
|
|
103
|
+
const trimmed = content.trim();
|
|
104
|
+
if (trimmed.startsWith('{') || trimmed.startsWith('```json')) {
|
|
105
|
+
// Look for incomplete JSON structures
|
|
106
|
+
if (!trimmed.endsWith('}') && !trimmed.endsWith('```')) {
|
|
107
|
+
return true;
|
|
108
|
+
}
|
|
109
|
+
// Count braces to detect incomplete JSON
|
|
110
|
+
const openBraces = (trimmed.match(/\{/g) || []).length;
|
|
111
|
+
const closeBraces = (trimmed.match(/\}/g) || []).length;
|
|
112
|
+
if (openBraces > closeBraces) {
|
|
113
|
+
return true;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
return false;
|
|
117
|
+
}
|
|
118
|
+
// Helper function to check if this is the correct client for the selected model
|
|
119
|
+
function isOpenRouterModel() {
|
|
120
|
+
// Get the model from configuration (CLI override or env)
|
|
121
|
+
const selectedModel = (0, ConfigurationService_1.getConfig)().model || '';
|
|
122
|
+
// Parse the model name
|
|
123
|
+
const [adapter, modelName] = selectedModel.includes(':')
|
|
124
|
+
? selectedModel.split(':')
|
|
125
|
+
: ['openrouter', selectedModel];
|
|
126
|
+
return {
|
|
127
|
+
isCorrect: adapter === 'openrouter',
|
|
128
|
+
adapter,
|
|
129
|
+
modelName,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
// This function was removed as it's no longer needed with the improved client selection logic
|
|
133
|
+
/**
|
|
134
|
+
* Initialize the OpenRouter client
|
|
135
|
+
* @returns Promise resolving to a boolean indicating if initialization was successful
|
|
136
|
+
*/
|
|
137
|
+
async function initializeAnyOpenRouterModel() {
|
|
138
|
+
const { isCorrect, modelName } = isOpenRouterModel();
|
|
139
|
+
// If this is not an OpenRouter model, just return true without initializing
|
|
140
|
+
if (!isCorrect) {
|
|
141
|
+
return true;
|
|
142
|
+
}
|
|
143
|
+
// If we've already initialized, return true
|
|
144
|
+
if (modelInitialized) {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
try {
|
|
148
|
+
logger_1.default.debug(`Initializing OpenRouter model: ${modelName}...`);
|
|
149
|
+
// Mark as initialized
|
|
150
|
+
modelInitialized = true;
|
|
151
|
+
logger_1.default.debug(`Successfully initialized OpenRouter model: ${modelName}`);
|
|
152
|
+
return true;
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
console.error(`Error initializing OpenRouter model ${modelName}:`, error);
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
function extractModelName(identifier) {
|
|
160
|
+
const trimmed = identifier.trim();
|
|
161
|
+
if (!trimmed) {
|
|
162
|
+
return trimmed;
|
|
163
|
+
}
|
|
164
|
+
return trimmed.includes(':') ? trimmed.split(':', 2)[1] : trimmed;
|
|
165
|
+
}
|
|
166
|
+
function getModelPriorityList(options) {
|
|
167
|
+
const configured = options?.model || (0, ConfigurationService_1.getConfig)().model || 'openrouter:moonshotai/kimi-k2-thinking';
|
|
168
|
+
const preferred = extractModelName(configured);
|
|
169
|
+
const fallback = extractModelName(OPENROUTER_FALLBACK_MODEL);
|
|
170
|
+
const models = [preferred];
|
|
171
|
+
if (fallback && !models.includes(fallback)) {
|
|
172
|
+
models.push(fallback);
|
|
173
|
+
}
|
|
174
|
+
return models.filter(Boolean);
|
|
175
|
+
}
|
|
176
|
+
function shouldEnableReasoning(modelName) {
|
|
177
|
+
return modelName.toLowerCase().includes('moonshotai/kimi');
|
|
178
|
+
}
|
|
179
|
+
function isRetryableError(error) {
|
|
180
|
+
if (!error) {
|
|
181
|
+
return true;
|
|
182
|
+
}
|
|
183
|
+
if (error instanceof apiErrorHandler_1.TokenLimitError) {
|
|
184
|
+
return false;
|
|
185
|
+
}
|
|
186
|
+
if (error instanceof apiErrorHandler_1.ApiError) {
|
|
187
|
+
if (typeof error.statusCode === 'number' && error.statusCode >= 500) {
|
|
188
|
+
return true;
|
|
189
|
+
}
|
|
190
|
+
const detailString = typeof error.details === 'string'
|
|
191
|
+
? error.details.toLowerCase()
|
|
192
|
+
: error.details
|
|
193
|
+
? JSON.stringify(error.details).toLowerCase()
|
|
194
|
+
: '';
|
|
195
|
+
const message = error.message?.toLowerCase?.() ?? '';
|
|
196
|
+
if (detailString.includes('upstream request failed') || message.includes('upstream request failed')) {
|
|
197
|
+
return true;
|
|
198
|
+
}
|
|
199
|
+
return false;
|
|
200
|
+
}
|
|
201
|
+
if (error instanceof Error) {
|
|
202
|
+
const message = error.message.toLowerCase();
|
|
203
|
+
return (message.includes('network') ||
|
|
204
|
+
message.includes('fetch failed') ||
|
|
205
|
+
message.includes('upstream request failed') ||
|
|
206
|
+
message.includes('timeout'));
|
|
207
|
+
}
|
|
208
|
+
return false;
|
|
209
|
+
}
|
|
210
|
+
function delay(ms) {
|
|
211
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
212
|
+
}
|
|
213
|
+
async function executeWithRetries(buildPayload, meta) {
|
|
214
|
+
const models = getModelPriorityList(meta.options);
|
|
215
|
+
let lastError;
|
|
216
|
+
for (let modelIdx = 0; modelIdx < models.length; modelIdx += 1) {
|
|
217
|
+
const modelName = models[modelIdx];
|
|
218
|
+
for (let attempt = 1; attempt <= MAX_ATTEMPTS_PER_MODEL; attempt += 1) {
|
|
219
|
+
try {
|
|
220
|
+
const payload = buildPayload(modelName);
|
|
221
|
+
return await performOpenRouterRequest(modelName, payload, meta);
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
if (error instanceof apiErrorHandler_1.TokenLimitError) {
|
|
225
|
+
throw error;
|
|
226
|
+
}
|
|
227
|
+
const shouldRetry = isRetryableError(error) && attempt < MAX_ATTEMPTS_PER_MODEL;
|
|
228
|
+
if (!shouldRetry) {
|
|
229
|
+
lastError = error;
|
|
230
|
+
logger_1.default.warn(`[OpenRouter] ${modelName} failed (attempt ${attempt}/${MAX_ATTEMPTS_PER_MODEL}): ${error instanceof Error ? error.message : String(error)}`);
|
|
231
|
+
break;
|
|
232
|
+
}
|
|
233
|
+
const delayMs = RETRY_BASE_DELAY_MS * Math.pow(2, attempt - 1);
|
|
234
|
+
logger_1.default.warn(`[OpenRouter] ${modelName} failed (attempt ${attempt}/${MAX_ATTEMPTS_PER_MODEL}): ${error instanceof Error ? error.message : String(error)}. Retrying in ${Math.round(delayMs)}ms`);
|
|
235
|
+
await delay(delayMs);
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
if (modelIdx < models.length - 1) {
|
|
239
|
+
logger_1.default.warn(`[OpenRouter] Falling back to secondary model after repeated failures with ${models[modelIdx]}`);
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
throw lastError instanceof Error
|
|
243
|
+
? lastError
|
|
244
|
+
: new apiErrorHandler_1.ApiError('All configured OpenRouter models failed after retries');
|
|
245
|
+
}
|
|
246
|
+
async function performOpenRouterRequest(modelName, payload, meta) {
|
|
247
|
+
let cost;
|
|
248
|
+
const finalPayload = (0, openrouterProxy_1.withProxyMetadata)({
|
|
249
|
+
...payload,
|
|
250
|
+
model: modelName,
|
|
251
|
+
provider: {
|
|
252
|
+
sort: 'throughput',
|
|
253
|
+
},
|
|
254
|
+
...(shouldEnableReasoning(modelName) ? { reasoning: { enabled: true } } : {}),
|
|
255
|
+
});
|
|
256
|
+
const response = await fetch((0, openrouterProxy_1.resolveOpenRouterProxyUrl)(), {
|
|
257
|
+
method: 'POST',
|
|
258
|
+
headers: (0, openrouterProxy_1.buildOpenRouterProxyHeaders)(),
|
|
259
|
+
body: JSON.stringify(finalPayload),
|
|
260
|
+
});
|
|
261
|
+
if (!response.ok) {
|
|
262
|
+
let errorData;
|
|
263
|
+
try {
|
|
264
|
+
errorData = await response.json();
|
|
265
|
+
}
|
|
266
|
+
catch {
|
|
267
|
+
// ignore
|
|
268
|
+
}
|
|
269
|
+
const errorMessage = JSON.stringify(errorData || {});
|
|
270
|
+
const lowered = errorMessage.toLowerCase();
|
|
271
|
+
if (lowered.includes('token') &&
|
|
272
|
+
(lowered.includes('limit') || lowered.includes('exceed') || lowered.includes('too long') || lowered.includes('too many'))) {
|
|
273
|
+
const { countTokens } = await Promise.resolve().then(() => __importStar(require('../tokenizers')));
|
|
274
|
+
const tokenCount = countTokens(meta.prompt, modelName);
|
|
275
|
+
throw new apiErrorHandler_1.TokenLimitError(`Token limit exceeded for model ${modelName}. Content has ${tokenCount.toLocaleString()} tokens. Consider using --multi-pass flag for large codebases.`, tokenCount, undefined, response.status, errorData);
|
|
276
|
+
}
|
|
277
|
+
throw new apiErrorHandler_1.ApiError(`OpenRouter API error: ${errorMessage}`, response.status, errorData);
|
|
278
|
+
}
|
|
279
|
+
const data = await response.json();
|
|
280
|
+
const finishReason = data.choices?.[0]?.finish_reason;
|
|
281
|
+
const responseContent = data.choices?.[0]?.message?.content || '';
|
|
282
|
+
const truncated = isResponseTruncated(responseContent, finishReason);
|
|
283
|
+
logger_1.default.debug(`[OpenRouter] API Response structure:`, {
|
|
284
|
+
hasChoices: !!data.choices,
|
|
285
|
+
choicesLength: data.choices?.length || 0,
|
|
286
|
+
firstChoiceExists: !!(data.choices && data.choices[0]),
|
|
287
|
+
firstChoiceMessage: data.choices?.[0]?.message ? 'exists' : 'missing',
|
|
288
|
+
contentExists: !!responseContent,
|
|
289
|
+
contentLength: responseContent.length,
|
|
290
|
+
contentPreview: responseContent.substring(0, 100) || 'N/A',
|
|
291
|
+
finishReason: finishReason || 'unknown',
|
|
292
|
+
isTruncated: truncated,
|
|
293
|
+
maxTokensUsed: getMaxTokensForReviewType(meta.reviewType, meta.isConsolidation) || 'unlimited',
|
|
294
|
+
fullResponse: JSON.stringify(data).substring(0, 500) + '...',
|
|
295
|
+
});
|
|
296
|
+
if (!responseContent || responseContent.trim().length === 0) {
|
|
297
|
+
logger_1.default.error(`[OpenRouter] CRITICAL: API returned successful response but content is empty!`);
|
|
298
|
+
logger_1.default.error(`[OpenRouter] Response details:`, {
|
|
299
|
+
modelName,
|
|
300
|
+
promptLength: meta.prompt.length,
|
|
301
|
+
responseStatus: response.status,
|
|
302
|
+
responseHeaders: Object.fromEntries(response.headers.entries()),
|
|
303
|
+
fullApiResponse: JSON.stringify(data, null, 2),
|
|
304
|
+
});
|
|
305
|
+
throw new apiErrorHandler_1.ApiError(`OpenRouter API returned empty content for model ${modelName}`);
|
|
306
|
+
}
|
|
307
|
+
if (finishReason === 'length' || finishReason === 'MAX_TOKENS') {
|
|
308
|
+
logger_1.default.warn(`[OpenRouter] WARNING: Response truncated due to token limit!`);
|
|
309
|
+
logger_1.default.warn(`[OpenRouter] Truncation details:`, {
|
|
310
|
+
modelName,
|
|
311
|
+
finishReason,
|
|
312
|
+
contentLength: responseContent.length,
|
|
313
|
+
maxTokensRequested: getMaxTokensForReviewType(meta.reviewType, meta.isConsolidation) || 'unlimited',
|
|
314
|
+
reviewType: meta.reviewType,
|
|
315
|
+
isConsolidation: meta.isConsolidation || false,
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
else if (truncated) {
|
|
319
|
+
logger_1.default.debug(`[OpenRouter] Response appears truncated by heuristics, but finishReason is ${finishReason}. Proceeding to JSON parse.`);
|
|
320
|
+
}
|
|
321
|
+
logger_1.default.debug(`Successfully generated review with OpenRouter ${modelName}`);
|
|
322
|
+
try {
|
|
323
|
+
cost = (0, tokenCounter_1.getCostInfoFromText)(meta.prompt, responseContent, `openrouter:${modelName}`);
|
|
324
|
+
}
|
|
325
|
+
catch (error) {
|
|
326
|
+
logger_1.default.warn(`Failed to calculate cost information: ${error instanceof Error ? error.message : String(error)}`);
|
|
327
|
+
}
|
|
328
|
+
let structuredData = null;
|
|
329
|
+
try {
|
|
330
|
+
const jsonExtractionStrategies = [
|
|
331
|
+
() => {
|
|
332
|
+
const patterns = [
|
|
333
|
+
/```(?:json)?\s*([\s\S]*?)\s*```/,
|
|
334
|
+
/```(?:typescript|javascript|ts|js)?\s*([\s\S]*?)\s*```/,
|
|
335
|
+
];
|
|
336
|
+
for (const pattern of patterns) {
|
|
337
|
+
const match = responseContent.match(pattern);
|
|
338
|
+
if (match && match[1]) {
|
|
339
|
+
const extracted = match[1].trim();
|
|
340
|
+
if (extracted.startsWith('{') && extracted.endsWith('}')) {
|
|
341
|
+
return extracted;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
return null;
|
|
346
|
+
},
|
|
347
|
+
() => {
|
|
348
|
+
const startIdx = responseContent.indexOf('{');
|
|
349
|
+
if (startIdx === -1)
|
|
350
|
+
return null;
|
|
351
|
+
let depth = 0;
|
|
352
|
+
let inString = false;
|
|
353
|
+
let escapeNext = false;
|
|
354
|
+
for (let i = startIdx; i < responseContent.length; i += 1) {
|
|
355
|
+
const char = responseContent[i];
|
|
356
|
+
if (escapeNext) {
|
|
357
|
+
escapeNext = false;
|
|
358
|
+
continue;
|
|
359
|
+
}
|
|
360
|
+
if (char === '\\') {
|
|
361
|
+
escapeNext = true;
|
|
362
|
+
continue;
|
|
363
|
+
}
|
|
364
|
+
if (char === '"' && !escapeNext) {
|
|
365
|
+
inString = !inString;
|
|
366
|
+
continue;
|
|
367
|
+
}
|
|
368
|
+
if (!inString) {
|
|
369
|
+
if (char === '{')
|
|
370
|
+
depth += 1;
|
|
371
|
+
else if (char === '}') {
|
|
372
|
+
depth -= 1;
|
|
373
|
+
if (depth === 0) {
|
|
374
|
+
return responseContent.substring(startIdx, i + 1);
|
|
375
|
+
}
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
if (inString) {
|
|
380
|
+
return responseContent.substring(startIdx) + '"}';
|
|
381
|
+
}
|
|
382
|
+
return null;
|
|
383
|
+
},
|
|
384
|
+
() => responseContent,
|
|
385
|
+
];
|
|
386
|
+
for (const strategy of jsonExtractionStrategies) {
|
|
387
|
+
try {
|
|
388
|
+
const extracted = strategy();
|
|
389
|
+
if (extracted) {
|
|
390
|
+
structuredData = JSON.parse(extracted);
|
|
391
|
+
logger_1.default.debug('Successfully extracted and parsed JSON');
|
|
392
|
+
break;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
catch (err) {
|
|
396
|
+
logger_1.default.debug(`JSON extraction strategy failed: ${err instanceof Error ? err.message : String(err)}`);
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
if (structuredData && !structuredData.summary && !Array.isArray(structuredData.issues)) {
|
|
400
|
+
logger_1.default.warn('Response is valid JSON but does not have the expected structure');
|
|
401
|
+
}
|
|
402
|
+
}
|
|
403
|
+
catch (parseError) {
|
|
404
|
+
logger_1.default.warn(`Failed to parse response as JSON after all recovery attempts: ${parseError instanceof Error ? parseError.message : String(parseError)}`);
|
|
405
|
+
structuredData = null;
|
|
406
|
+
}
|
|
407
|
+
return {
|
|
408
|
+
content: responseContent,
|
|
409
|
+
structuredData,
|
|
410
|
+
cost,
|
|
411
|
+
modelName,
|
|
412
|
+
};
|
|
413
|
+
}
|
|
414
|
+
/**
|
|
415
|
+
* Generate a code review using the OpenRouter API
|
|
416
|
+
* @param fileContent Content of the file to review
|
|
417
|
+
* @param filePath Path to the file
|
|
418
|
+
* @param reviewType Type of review to perform
|
|
419
|
+
* @param projectDocs Optional project documentation
|
|
420
|
+
* @param options Review options
|
|
421
|
+
* @returns Promise resolving to the review result
|
|
422
|
+
*/
|
|
423
|
+
async function generateOpenRouterReview(fileContent, filePath, reviewType, projectDocs, options) {
|
|
424
|
+
try {
|
|
425
|
+
if (!modelInitialized) {
|
|
426
|
+
await initializeAnyOpenRouterModel();
|
|
427
|
+
}
|
|
428
|
+
const promptTemplate = await (0, promptLoader_1.loadPromptTemplate)(reviewType, options);
|
|
429
|
+
const prompt = (0, promptFormatter_1.formatSingleFileReviewPrompt)(promptTemplate, fileContent, filePath, projectDocs, options?.runContext);
|
|
430
|
+
const requestMaxTokens = getMaxTokensForReviewType(reviewType, options?.isConsolidation);
|
|
431
|
+
const messages = [
|
|
432
|
+
{
|
|
433
|
+
role: 'system',
|
|
434
|
+
content: `You are an expert code reviewer. Focus on providing actionable feedback. IMPORTANT: DO NOT REPEAT THE INSTRUCTIONS IN YOUR RESPONSE. DO NOT ASK FOR CODE TO REVIEW. ASSUME THE CODE IS ALREADY PROVIDED IN THE USER MESSAGE. FOCUS ONLY ON PROVIDING THE CODE REVIEW CONTENT.
|
|
435
|
+
|
|
436
|
+
IMPORTANT: Your response MUST be in the following JSON format:
|
|
437
|
+
|
|
438
|
+
{
|
|
439
|
+
"summary": "A brief summary of the code review",
|
|
440
|
+
"issues": [
|
|
441
|
+
{
|
|
442
|
+
"title": "Issue title",
|
|
443
|
+
"priority": "high|medium|low",
|
|
444
|
+
"type": "bug|security|performance|maintainability|readability|architecture|best-practice|documentation|testing|other",
|
|
445
|
+
"filePath": "Path to the file",
|
|
446
|
+
"lineNumbers": "Line number or range (e.g., 10 or 10-15)",
|
|
447
|
+
"description": "Detailed description of the issue",
|
|
448
|
+
"codeSnippet": "Relevant code snippet",
|
|
449
|
+
"suggestedFix": "Suggested code fix",
|
|
450
|
+
"impact": "Impact of the issue"
|
|
451
|
+
}
|
|
452
|
+
],
|
|
453
|
+
"recommendations": [
|
|
454
|
+
"General recommendation 1",
|
|
455
|
+
"General recommendation 2"
|
|
456
|
+
],
|
|
457
|
+
"positiveAspects": [
|
|
458
|
+
"Positive aspect 1",
|
|
459
|
+
"Positive aspect 2"
|
|
460
|
+
]
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
Ensure your response is valid JSON. Do not include any text outside the JSON structure.`,
|
|
464
|
+
},
|
|
465
|
+
{
|
|
466
|
+
role: 'user',
|
|
467
|
+
content: prompt,
|
|
468
|
+
},
|
|
469
|
+
];
|
|
470
|
+
const callResult = await executeWithRetries(() => ({
|
|
471
|
+
messages,
|
|
472
|
+
temperature: 0.2,
|
|
473
|
+
...(requestMaxTokens ? { max_tokens: requestMaxTokens } : {}),
|
|
474
|
+
}), {
|
|
475
|
+
prompt,
|
|
476
|
+
reviewType,
|
|
477
|
+
isConsolidation: options?.isConsolidation,
|
|
478
|
+
options,
|
|
479
|
+
});
|
|
480
|
+
return {
|
|
481
|
+
content: callResult.content,
|
|
482
|
+
cost: callResult.cost,
|
|
483
|
+
modelUsed: `openrouter:${callResult.modelName}`,
|
|
484
|
+
filePath,
|
|
485
|
+
reviewType,
|
|
486
|
+
timestamp: new Date().toISOString(),
|
|
487
|
+
structuredData: callResult.structuredData,
|
|
488
|
+
};
|
|
489
|
+
}
|
|
490
|
+
catch (error) {
|
|
491
|
+
logger_1.default.error(`Error generating review for ${filePath}: ${error instanceof Error ? error.message : String(error)}`);
|
|
492
|
+
throw error;
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Generate a consolidated review for multiple files
|
|
497
|
+
* @param files Array of file information objects
|
|
498
|
+
* @param projectName Name of the project
|
|
499
|
+
* @param reviewType Type of review to perform
|
|
500
|
+
* @param projectDocs Optional project documentation
|
|
501
|
+
* @param options Review options
|
|
502
|
+
* @returns Promise resolving to the review result
|
|
503
|
+
*/
|
|
504
|
+
async function generateOpenRouterConsolidatedReview(files, projectName, reviewType, projectDocs, options) {
|
|
505
|
+
try {
|
|
506
|
+
if (!modelInitialized) {
|
|
507
|
+
await initializeAnyOpenRouterModel();
|
|
508
|
+
}
|
|
509
|
+
const promptTemplate = await (0, promptLoader_1.loadPromptTemplate)(reviewType, options);
|
|
510
|
+
const prompt = (0, promptFormatter_1.formatConsolidatedReviewPrompt)(promptTemplate, projectName, files.map((file) => ({
|
|
511
|
+
relativePath: file.relativePath || '',
|
|
512
|
+
content: file.content,
|
|
513
|
+
sizeInBytes: file.content.length,
|
|
514
|
+
})), projectDocs, options?.runContext);
|
|
515
|
+
const requestMaxTokens = getMaxTokensForReviewType(reviewType, options?.isConsolidation);
|
|
516
|
+
const messages = [
|
|
517
|
+
{
|
|
518
|
+
role: 'system',
|
|
519
|
+
content: `You are an expert code reviewer. Focus on providing actionable feedback. IMPORTANT: DO NOT REPEAT THE INSTRUCTIONS IN YOUR RESPONSE. DO NOT ASK FOR CODE TO REVIEW. ASSUME THE CODE IS ALREADY PROVIDED IN THE USER MESSAGE. FOCUS ONLY ON PROVIDING THE CODE REVIEW CONTENT.
|
|
520
|
+
|
|
521
|
+
IMPORTANT: Your response MUST be in the following JSON format:
|
|
522
|
+
|
|
523
|
+
{
|
|
524
|
+
"summary": "A brief summary of the code review",
|
|
525
|
+
"issues": [
|
|
526
|
+
{
|
|
527
|
+
"title": "Issue title",
|
|
528
|
+
"priority": "high|medium|low",
|
|
529
|
+
"type": "bug|security|performance|maintainability|readability|architecture|best-practice|documentation|testing|other",
|
|
530
|
+
"filePath": "Path to the file",
|
|
531
|
+
"lineNumbers": "Line number or range (e.g., 10 or 10-15)",
|
|
532
|
+
"description": "Detailed description of the issue",
|
|
533
|
+
"codeSnippet": "Relevant code snippet",
|
|
534
|
+
"suggestedFix": "Suggested code fix",
|
|
535
|
+
"impact": "Impact of the issue"
|
|
536
|
+
}
|
|
537
|
+
],
|
|
538
|
+
"recommendations": [
|
|
539
|
+
"General recommendation 1",
|
|
540
|
+
"General recommendation 2"
|
|
541
|
+
],
|
|
542
|
+
"positiveAspects": [
|
|
543
|
+
"Positive aspect 1",
|
|
544
|
+
"Positive aspect 2"
|
|
545
|
+
]
|
|
546
|
+
}
|
|
547
|
+
|
|
548
|
+
Ensure your response is valid JSON. Do not include any text outside the JSON structure.`,
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
role: 'user',
|
|
552
|
+
content: prompt,
|
|
553
|
+
},
|
|
554
|
+
];
|
|
555
|
+
const callResult = await executeWithRetries(() => ({
|
|
556
|
+
messages,
|
|
557
|
+
temperature: 0.2,
|
|
558
|
+
...(requestMaxTokens ? { max_tokens: requestMaxTokens } : {}),
|
|
559
|
+
}), {
|
|
560
|
+
prompt,
|
|
561
|
+
reviewType,
|
|
562
|
+
isConsolidation: options?.isConsolidation,
|
|
563
|
+
options,
|
|
564
|
+
});
|
|
565
|
+
return {
|
|
566
|
+
content: callResult.content,
|
|
567
|
+
cost: callResult.cost,
|
|
568
|
+
modelUsed: `openrouter:${callResult.modelName}`,
|
|
569
|
+
filePath: 'consolidated',
|
|
570
|
+
reviewType,
|
|
571
|
+
timestamp: new Date().toISOString(),
|
|
572
|
+
structuredData: callResult.structuredData,
|
|
573
|
+
};
|
|
574
|
+
}
|
|
575
|
+
catch (error) {
|
|
576
|
+
logger_1.default.error(`Error generating consolidated review: ${error instanceof Error ? error.message : String(error)}`);
|
|
577
|
+
throw error;
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
//# sourceMappingURL=openRouterClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"openRouterClient.js","sourceRoot":"","sources":["../../src/clients/openRouterClient.ts"],"names":[],"mappings":"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"}
|
package/{src/clients/openRouterClientWrapper.ts → dist/clients/openRouterClientWrapper.d.ts}
RENAMED
|
@@ -3,21 +3,13 @@
|
|
|
3
3
|
*
|
|
4
4
|
* This module provides a wrapper for the OpenRouter client to handle dynamic imports.
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
6
|
import type { FileInfo, ReviewOptions, ReviewResult, ReviewType } from '../types/review';
|
|
8
7
|
import type { ProjectDocs } from '../utils/projectDocs';
|
|
9
|
-
|
|
10
|
-
// Import the OpenRouter client directly
|
|
11
|
-
import * as openRouterClient from './openRouterClient';
|
|
12
|
-
|
|
13
8
|
/**
|
|
14
9
|
* Initialize the OpenRouter client
|
|
15
10
|
* @returns Promise resolving to a boolean indicating if initialization was successful
|
|
16
11
|
*/
|
|
17
|
-
export
|
|
18
|
-
return openRouterClient.initializeAnyOpenRouterModel();
|
|
19
|
-
}
|
|
20
|
-
|
|
12
|
+
export declare function initializeAnyOpenRouterModel(): Promise<boolean>;
|
|
21
13
|
/**
|
|
22
14
|
* Generate a consolidated review using the OpenRouter API
|
|
23
15
|
* @param fileInfos Array of file information objects
|
|
@@ -27,18 +19,4 @@ export async function initializeAnyOpenRouterModel(): Promise<boolean> {
|
|
|
27
19
|
* @param options Review options
|
|
28
20
|
* @returns Promise resolving to the review result
|
|
29
21
|
*/
|
|
30
|
-
export
|
|
31
|
-
fileInfos: FileInfo[],
|
|
32
|
-
project: string,
|
|
33
|
-
reviewType: ReviewType,
|
|
34
|
-
projectDocs: ProjectDocs | null,
|
|
35
|
-
options: ReviewOptions,
|
|
36
|
-
): Promise<ReviewResult> {
|
|
37
|
-
return openRouterClient.generateOpenRouterConsolidatedReview(
|
|
38
|
-
fileInfos,
|
|
39
|
-
project,
|
|
40
|
-
reviewType,
|
|
41
|
-
projectDocs,
|
|
42
|
-
options,
|
|
43
|
-
);
|
|
44
|
-
}
|
|
22
|
+
export declare function generateOpenRouterConsolidatedReview(fileInfos: FileInfo[], project: string, reviewType: ReviewType, projectDocs: ProjectDocs | null, options: ReviewOptions): Promise<ReviewResult>;
|