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.
Files changed (549) hide show
  1. package/dist/analysis/FindingsExtractor.d.ts +105 -0
  2. package/dist/analysis/FindingsExtractor.js +363 -0
  3. package/dist/analysis/FindingsExtractor.js.map +1 -0
  4. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +111 -0
  5. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +215 -0
  6. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +1 -0
  7. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +142 -0
  8. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +503 -0
  9. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +1 -0
  10. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +88 -0
  11. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +343 -0
  12. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +1 -0
  13. package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +104 -0
  14. package/dist/analysis/ai-detection/core/AIDetectionEngine.js +369 -0
  15. package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +1 -0
  16. package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +364 -0
  17. package/dist/analysis/ai-detection/types/DetectionTypes.js +32 -0
  18. package/dist/analysis/ai-detection/types/DetectionTypes.js.map +1 -0
  19. package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +97 -0
  20. package/dist/analysis/ai-detection/utils/SubmissionConverter.js +339 -0
  21. package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +1 -0
  22. package/dist/analysis/context/ReviewContext.d.ts +184 -0
  23. package/dist/analysis/context/ReviewContext.js +294 -0
  24. package/dist/analysis/context/ReviewContext.js.map +1 -0
  25. package/{src/analysis/context/index.ts → dist/analysis/context/index.d.ts} +0 -1
  26. package/dist/analysis/context/index.js +23 -0
  27. package/dist/analysis/context/index.js.map +1 -0
  28. package/{src/analysis/index.ts → dist/analysis/index.d.ts} +0 -1
  29. package/dist/analysis/index.js +24 -0
  30. package/dist/analysis/index.js.map +1 -0
  31. package/dist/analysis/static/wpPhpcsRunner.d.ts +11 -0
  32. package/dist/analysis/static/wpPhpcsRunner.js +219 -0
  33. package/dist/analysis/static/wpPhpcsRunner.js.map +1 -0
  34. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +27 -0
  35. package/{src/analysis/tokens/TokenAnalysisFormatter.ts → dist/analysis/tokens/TokenAnalysisFormatter.js} +64 -75
  36. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +1 -0
  37. package/dist/analysis/tokens/TokenAnalyzer.d.ts +155 -0
  38. package/dist/analysis/tokens/TokenAnalyzer.js +502 -0
  39. package/dist/analysis/tokens/TokenAnalyzer.js.map +1 -0
  40. package/{src/analysis/tokens/index.ts → dist/analysis/tokens/index.d.ts} +0 -1
  41. package/dist/analysis/tokens/index.js +24 -0
  42. package/dist/analysis/tokens/index.js.map +1 -0
  43. package/dist/clients/base/abstractClient.d.ts +99 -0
  44. package/dist/clients/base/abstractClient.js +98 -0
  45. package/dist/clients/base/abstractClient.js.map +1 -0
  46. package/dist/clients/base/httpClient.d.ts +24 -0
  47. package/dist/clients/base/httpClient.js +147 -0
  48. package/dist/clients/base/httpClient.js.map +1 -0
  49. package/{src/clients/base/index.ts → dist/clients/base/index.d.ts} +0 -1
  50. package/dist/clients/base/index.js +28 -0
  51. package/dist/clients/base/index.js.map +1 -0
  52. package/dist/clients/base/modelDetection.d.ts +41 -0
  53. package/dist/clients/base/modelDetection.js +88 -0
  54. package/dist/clients/base/modelDetection.js.map +1 -0
  55. package/dist/clients/base/responseProcessor.d.ts +45 -0
  56. package/dist/clients/base/responseProcessor.js +495 -0
  57. package/dist/clients/base/responseProcessor.js.map +1 -0
  58. package/dist/clients/factory/clientFactory.d.ts +23 -0
  59. package/dist/clients/factory/clientFactory.js +50 -0
  60. package/dist/clients/factory/clientFactory.js.map +1 -0
  61. package/{src/clients/factory/index.ts → dist/clients/factory/index.d.ts} +0 -1
  62. package/dist/clients/factory/index.js +24 -0
  63. package/dist/clients/factory/index.js.map +1 -0
  64. package/{src/clients/implementations/index.ts → dist/clients/implementations/index.d.ts} +0 -1
  65. package/dist/clients/implementations/index.js +24 -0
  66. package/dist/clients/implementations/index.js.map +1 -0
  67. package/dist/clients/implementations/openRouterClient.d.ts +69 -0
  68. package/dist/clients/implementations/openRouterClient.js +294 -0
  69. package/dist/clients/implementations/openRouterClient.js.map +1 -0
  70. package/dist/clients/openRouterClient.d.ts +42 -0
  71. package/dist/clients/openRouterClient.js +738 -0
  72. package/dist/clients/openRouterClient.js.map +1 -0
  73. package/{src/clients/openRouterClientWrapper.ts → dist/clients/openRouterClientWrapper.d.ts} +2 -24
  74. package/dist/clients/openRouterClientWrapper.js +64 -0
  75. package/dist/clients/openRouterClientWrapper.js.map +1 -0
  76. package/dist/clients/utils/directoryStructure.d.ts +14 -0
  77. package/dist/clients/utils/directoryStructure.js +48 -0
  78. package/dist/clients/utils/directoryStructure.js.map +1 -0
  79. package/{src/clients/utils/index.ts → dist/clients/utils/index.d.ts} +0 -1
  80. package/dist/clients/utils/index.js +31 -0
  81. package/dist/clients/utils/index.js.map +1 -0
  82. package/dist/clients/utils/languageDetection.d.ts +13 -0
  83. package/dist/clients/utils/languageDetection.js +46 -0
  84. package/dist/clients/utils/languageDetection.js.map +1 -0
  85. package/dist/clients/utils/promptFormatter.d.ts +37 -0
  86. package/dist/clients/utils/promptFormatter.js +150 -0
  87. package/dist/clients/utils/promptFormatter.js.map +1 -0
  88. package/{src/clients/utils/promptLoader.ts → dist/clients/utils/promptLoader.d.ts} +1 -27
  89. package/dist/clients/utils/promptLoader.js +49 -0
  90. package/dist/clients/utils/promptLoader.js.map +1 -0
  91. package/dist/clients/utils/tokenCounter.d.ts +81 -0
  92. package/dist/clients/utils/tokenCounter.js +209 -0
  93. package/dist/clients/utils/tokenCounter.js.map +1 -0
  94. package/dist/core/ApiClientSelector.d.ts +8 -0
  95. package/dist/core/ApiClientSelector.js +29 -0
  96. package/dist/core/ApiClientSelector.js.map +1 -0
  97. package/dist/core/ConfigurationService.d.ts +307 -0
  98. package/dist/core/ConfigurationService.js +516 -0
  99. package/dist/core/ConfigurationService.js.map +1 -0
  100. package/dist/core/ConsolidationService.d.ts +99 -0
  101. package/dist/core/ConsolidationService.js +341 -0
  102. package/dist/core/ConsolidationService.js.map +1 -0
  103. package/dist/core/InteractiveDisplayManager.d.ts +22 -0
  104. package/dist/core/InteractiveDisplayManager.js +70 -0
  105. package/dist/core/InteractiveDisplayManager.js.map +1 -0
  106. package/dist/core/OutputManager.d.ts +26 -0
  107. package/dist/core/OutputManager.js +217 -0
  108. package/dist/core/OutputManager.js.map +1 -0
  109. package/dist/core/ReviewGenerator.d.ts +13 -0
  110. package/dist/core/ReviewGenerator.js +102 -0
  111. package/dist/core/ReviewGenerator.js.map +1 -0
  112. package/dist/core/fileDiscovery.d.ts +35 -0
  113. package/dist/core/fileDiscovery.js +202 -0
  114. package/dist/core/fileDiscovery.js.map +1 -0
  115. package/dist/core/handlers/EstimationHandler.d.ts +18 -0
  116. package/dist/core/handlers/EstimationHandler.js +110 -0
  117. package/dist/core/handlers/EstimationHandler.js.map +1 -0
  118. package/dist/core/handlers/FileProcessingHandler.d.ts +31 -0
  119. package/dist/core/handlers/FileProcessingHandler.js +164 -0
  120. package/dist/core/handlers/FileProcessingHandler.js.map +1 -0
  121. package/dist/core/handlers/OutputHandler.d.ts +27 -0
  122. package/dist/core/handlers/OutputHandler.js +127 -0
  123. package/dist/core/handlers/OutputHandler.js.map +1 -0
  124. package/dist/core/handlers/ReviewExecutor.d.ts +32 -0
  125. package/dist/core/handlers/ReviewExecutor.js +111 -0
  126. package/dist/core/handlers/ReviewExecutor.js.map +1 -0
  127. package/dist/core/reviewOrchestrator.d.ts +24 -0
  128. package/dist/core/reviewOrchestrator.js +354 -0
  129. package/dist/core/reviewOrchestrator.js.map +1 -0
  130. package/dist/core/utils/ModelInfoUtils.d.ts +16 -0
  131. package/dist/core/utils/ModelInfoUtils.js +54 -0
  132. package/dist/core/utils/ModelInfoUtils.js.map +1 -0
  133. package/{src/formatters/outputFormatter.ts → dist/formatters/outputFormatter.d.ts} +2 -33
  134. package/dist/formatters/outputFormatter.js +65 -0
  135. package/dist/formatters/outputFormatter.js.map +1 -0
  136. package/dist/formatters/utils/IssueFormatters.d.ts +20 -0
  137. package/dist/formatters/utils/IssueFormatters.js +67 -0
  138. package/dist/formatters/utils/IssueFormatters.js.map +1 -0
  139. package/dist/formatters/utils/JsonFormatter.d.ts +13 -0
  140. package/dist/formatters/utils/JsonFormatter.js +57 -0
  141. package/dist/formatters/utils/JsonFormatter.js.map +1 -0
  142. package/dist/formatters/utils/MarkdownFormatters.d.ts +51 -0
  143. package/dist/formatters/utils/MarkdownFormatters.js +456 -0
  144. package/dist/formatters/utils/MarkdownFormatters.js.map +1 -0
  145. package/dist/formatters/utils/MetadataFormatter.d.ts +65 -0
  146. package/dist/formatters/utils/MetadataFormatter.js +219 -0
  147. package/dist/formatters/utils/MetadataFormatter.js.map +1 -0
  148. package/dist/formatters/utils/ModelInfoExtractor.d.ts +33 -0
  149. package/dist/formatters/utils/ModelInfoExtractor.js +111 -0
  150. package/dist/formatters/utils/ModelInfoExtractor.js.map +1 -0
  151. package/dist/index.d.ts +1 -0
  152. package/dist/index.js.map +1 -0
  153. package/dist/plugins/PluginInterface.d.ts +44 -0
  154. package/dist/plugins/PluginInterface.js +9 -0
  155. package/dist/plugins/PluginInterface.js.map +1 -0
  156. package/dist/plugins/PluginManager.d.ts +51 -0
  157. package/dist/plugins/PluginManager.js +151 -0
  158. package/dist/plugins/PluginManager.js.map +1 -0
  159. package/dist/prompts/PromptManager.d.ts +30 -0
  160. package/dist/prompts/PromptManager.js +62 -0
  161. package/dist/prompts/PromptManager.js.map +1 -0
  162. package/dist/prompts/cache/PromptCache.d.ts +32 -0
  163. package/dist/prompts/cache/PromptCache.js +48 -0
  164. package/dist/prompts/cache/PromptCache.js.map +1 -0
  165. package/dist/runtime/auth/service.d.ts +2 -0
  166. package/dist/runtime/auth/service.js +41 -0
  167. package/dist/runtime/auth/service.js.map +1 -0
  168. package/dist/runtime/auth/session.d.ts +5 -0
  169. package/dist/runtime/auth/session.js +87 -0
  170. package/dist/runtime/auth/session.js.map +1 -0
  171. package/dist/runtime/auth/types.d.ts +9 -0
  172. package/dist/runtime/auth/types.js +3 -0
  173. package/dist/runtime/auth/types.js.map +1 -0
  174. package/dist/runtime/cliEntry.d.ts +1 -0
  175. package/dist/runtime/cliEntry.js +266 -0
  176. package/dist/runtime/cliEntry.js.map +1 -0
  177. package/dist/runtime/debug/logManager.d.ts +5 -0
  178. package/dist/runtime/debug/logManager.js +31 -0
  179. package/dist/runtime/debug/logManager.js.map +1 -0
  180. package/dist/runtime/errors.d.ts +5 -0
  181. package/dist/runtime/errors.js +15 -0
  182. package/dist/runtime/errors.js.map +1 -0
  183. package/dist/runtime/fileCollector.d.ts +14 -0
  184. package/dist/runtime/fileCollector.js +382 -0
  185. package/dist/runtime/fileCollector.js.map +1 -0
  186. package/dist/runtime/manifest.d.ts +1 -0
  187. package/dist/runtime/manifest.js +65 -0
  188. package/dist/runtime/manifest.js.map +1 -0
  189. package/dist/runtime/openrouterProxy.d.ts +4 -0
  190. package/dist/runtime/openrouterProxy.js +43 -0
  191. package/dist/runtime/openrouterProxy.js.map +1 -0
  192. package/dist/runtime/preprod/webCheck.d.ts +1 -0
  193. package/dist/runtime/preprod/webCheck.js +98 -0
  194. package/dist/runtime/preprod/webCheck.js.map +1 -0
  195. package/dist/runtime/proxyConfig.d.ts +6 -0
  196. package/dist/runtime/proxyConfig.js +86 -0
  197. package/dist/runtime/proxyConfig.js.map +1 -0
  198. package/dist/runtime/proxyEnvironment.d.ts +3 -0
  199. package/dist/runtime/proxyEnvironment.js +63 -0
  200. package/dist/runtime/proxyEnvironment.js.map +1 -0
  201. package/dist/runtime/reportMerge.d.ts +30 -0
  202. package/dist/runtime/reportMerge.js +70 -0
  203. package/dist/runtime/reportMerge.js.map +1 -0
  204. package/dist/runtime/reporting/markdownReportBuilder.d.ts +17 -0
  205. package/dist/runtime/reporting/markdownReportBuilder.js +154 -0
  206. package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
  207. package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
  208. package/dist/runtime/reporting/reportDataCollector.js +170 -0
  209. package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
  210. package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
  211. package/dist/runtime/reporting/summaryGenerator.js +67 -0
  212. package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
  213. package/dist/runtime/reviewPipeline.d.ts +47 -0
  214. package/dist/runtime/reviewPipeline.js +161 -0
  215. package/dist/runtime/reviewPipeline.js.map +1 -0
  216. package/dist/runtime/runAiCodeReview.d.ts +28 -0
  217. package/dist/runtime/runAiCodeReview.js +373 -0
  218. package/dist/runtime/runAiCodeReview.js.map +1 -0
  219. package/dist/runtime/runtimeConfig.d.ts +4 -0
  220. package/dist/runtime/runtimeConfig.js +7 -0
  221. package/dist/runtime/runtimeConfig.js.map +1 -0
  222. package/dist/runtime/ui/Layout.d.ts +11 -0
  223. package/dist/runtime/ui/Layout.js +47 -0
  224. package/dist/runtime/ui/Layout.js.map +1 -0
  225. package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
  226. package/dist/runtime/ui/RuntimeApp.js +172 -0
  227. package/dist/runtime/ui/RuntimeApp.js.map +1 -0
  228. package/dist/runtime/ui/inkModules.d.ts +10 -0
  229. package/dist/runtime/ui/inkModules.js +63 -0
  230. package/dist/runtime/ui/inkModules.js.map +1 -0
  231. package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
  232. package/dist/runtime/ui/screens/AuthScreen.js +67 -0
  233. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
  234. package/dist/runtime/ui/screens/ModeSelection.d.ts +10 -0
  235. package/dist/runtime/ui/screens/ModeSelection.js +100 -0
  236. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
  237. package/dist/runtime/ui/screens/ProgressScreen.d.ts +12 -0
  238. package/dist/runtime/ui/screens/ProgressScreen.js +64 -0
  239. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
  240. package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
  241. package/dist/runtime/ui/screens/ResultsScreen.js +29 -0
  242. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
  243. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
  244. package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
  245. package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
  246. package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
  247. package/dist/strategies/CodingTestReviewStrategy.js +681 -0
  248. package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
  249. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
  250. package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
  251. package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
  252. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
  253. package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
  254. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
  255. package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
  256. package/dist/strategies/MultiPassReviewStrategy.js +590 -0
  257. package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
  258. package/dist/strategies/ReviewStrategy.d.ts +45 -0
  259. package/dist/strategies/ReviewStrategy.js +24 -0
  260. package/dist/strategies/ReviewStrategy.js.map +1 -0
  261. package/dist/strategies/StrategyFactory.d.ts +19 -0
  262. package/dist/strategies/StrategyFactory.js +72 -0
  263. package/dist/strategies/StrategyFactory.js.map +1 -0
  264. package/{src/strategies/index.ts → dist/strategies/index.d.ts} +0 -1
  265. package/dist/strategies/index.js +30 -0
  266. package/dist/strategies/index.js.map +1 -0
  267. package/dist/tokenizers/baseTokenizer.d.ts +25 -0
  268. package/dist/tokenizers/baseTokenizer.js +48 -0
  269. package/dist/tokenizers/baseTokenizer.js.map +1 -0
  270. package/dist/tokenizers/gptTokenizer.d.ts +7 -0
  271. package/dist/tokenizers/gptTokenizer.js +28 -0
  272. package/dist/tokenizers/gptTokenizer.js.map +1 -0
  273. package/{src/tokenizers/index.ts → dist/tokenizers/index.d.ts} +0 -1
  274. package/dist/tokenizers/index.js +24 -0
  275. package/dist/tokenizers/index.js.map +1 -0
  276. package/dist/types/apiResponses.d.ts +39 -0
  277. package/dist/types/apiResponses.js +9 -0
  278. package/dist/types/apiResponses.js.map +1 -0
  279. package/dist/types/cli.d.ts +22 -0
  280. package/dist/types/cli.js +3 -0
  281. package/dist/types/cli.js.map +1 -0
  282. package/{src/types/common.ts → dist/types/common.d.ts} +2 -19
  283. package/dist/types/common.js +14 -0
  284. package/dist/types/common.js.map +1 -0
  285. package/dist/types/configuration.d.ts +682 -0
  286. package/dist/types/configuration.js +65 -0
  287. package/dist/types/configuration.js.map +1 -0
  288. package/dist/types/review.d.ts +318 -0
  289. package/dist/types/review.js +8 -0
  290. package/dist/types/review.js.map +1 -0
  291. package/dist/types/reviewSchema.d.ts +543 -0
  292. package/{src/types/reviewSchema.ts → dist/types/reviewSchema.js} +44 -104
  293. package/dist/types/reviewSchema.js.map +1 -0
  294. package/dist/types/structuredReview.d.ts +119 -0
  295. package/dist/types/structuredReview.js +6 -0
  296. package/dist/types/structuredReview.js.map +1 -0
  297. package/dist/types/tokenAnalysis.d.ts +44 -0
  298. package/dist/types/tokenAnalysis.js +4 -0
  299. package/dist/types/tokenAnalysis.js.map +1 -0
  300. package/dist/utils/FileReader.d.ts +33 -0
  301. package/dist/utils/FileReader.js +88 -0
  302. package/dist/utils/FileReader.js.map +1 -0
  303. package/dist/utils/FileWriter.d.ts +26 -0
  304. package/dist/utils/FileWriter.js +76 -0
  305. package/dist/utils/FileWriter.js.map +1 -0
  306. package/dist/utils/PathGenerator.d.ts +30 -0
  307. package/dist/utils/PathGenerator.js +82 -0
  308. package/dist/utils/PathGenerator.js.map +1 -0
  309. package/dist/utils/api/apiUtils.d.ts +3 -0
  310. package/dist/utils/api/apiUtils.js +20 -0
  311. package/dist/utils/api/apiUtils.js.map +1 -0
  312. package/dist/utils/api/index.js +18 -0
  313. package/dist/utils/api/index.js.map +1 -0
  314. package/dist/utils/apiErrorHandler.d.ts +130 -0
  315. package/dist/utils/apiErrorHandler.js +256 -0
  316. package/dist/utils/apiErrorHandler.js.map +1 -0
  317. package/dist/utils/ciDataCollector.d.ts +51 -0
  318. package/dist/utils/ciDataCollector.js +197 -0
  319. package/dist/utils/ciDataCollector.js.map +1 -0
  320. package/dist/utils/codingTestConfigLoader.d.ts +66 -0
  321. package/dist/utils/codingTestConfigLoader.js +420 -0
  322. package/dist/utils/codingTestConfigLoader.js.map +1 -0
  323. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
  324. package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
  325. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
  326. package/dist/utils/detection/frameworkDetector.d.ts +43 -0
  327. package/dist/utils/detection/frameworkDetector.js +850 -0
  328. package/dist/utils/detection/frameworkDetector.js.map +1 -0
  329. package/{src/utils/detection/index.ts → dist/utils/detection/index.d.ts} +0 -1
  330. package/dist/utils/detection/index.js +28 -0
  331. package/dist/utils/detection/index.js.map +1 -0
  332. package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
  333. package/dist/utils/detection/projectTypeDetector.js +469 -0
  334. package/dist/utils/detection/projectTypeDetector.js.map +1 -0
  335. package/dist/utils/diagramGenerator.d.ts +49 -0
  336. package/dist/utils/diagramGenerator.js +218 -0
  337. package/dist/utils/diagramGenerator.js.map +1 -0
  338. package/dist/utils/errorLogger.d.ts +24 -0
  339. package/dist/utils/errorLogger.js +59 -0
  340. package/dist/utils/errorLogger.js.map +1 -0
  341. package/dist/utils/estimationUtils.d.ts +139 -0
  342. package/dist/utils/estimationUtils.js +329 -0
  343. package/dist/utils/estimationUtils.js.map +1 -0
  344. package/dist/utils/fileFilters.d.ts +72 -0
  345. package/dist/utils/fileFilters.js +338 -0
  346. package/dist/utils/fileFilters.js.map +1 -0
  347. package/dist/utils/fileSystem.d.ts +22 -0
  348. package/dist/utils/fileSystem.js +45 -0
  349. package/dist/utils/fileSystem.js.map +1 -0
  350. package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -14
  351. package/dist/utils/index.js +52 -0
  352. package/dist/utils/index.js.map +1 -0
  353. package/dist/utils/logger.d.ts +77 -0
  354. package/dist/utils/logger.js +271 -0
  355. package/dist/utils/logger.js.map +1 -0
  356. package/dist/utils/pathValidator.d.ts +40 -0
  357. package/dist/utils/pathValidator.js +98 -0
  358. package/dist/utils/pathValidator.js.map +1 -0
  359. package/{src/utils/priorityFilter.ts → dist/utils/priorityFilter.d.ts} +1 -26
  360. package/dist/utils/priorityFilter.js +54 -0
  361. package/dist/utils/priorityFilter.js.map +1 -0
  362. package/dist/utils/projectDocs.d.ts +47 -0
  363. package/dist/utils/projectDocs.js +158 -0
  364. package/dist/utils/projectDocs.js.map +1 -0
  365. package/dist/utils/promptPaths.d.ts +6 -0
  366. package/dist/utils/promptPaths.js +33 -0
  367. package/dist/utils/promptPaths.js.map +1 -0
  368. package/dist/utils/promptTemplateManager.d.ts +34 -0
  369. package/dist/utils/promptTemplateManager.js +141 -0
  370. package/dist/utils/promptTemplateManager.js.map +1 -0
  371. package/dist/utils/review/consolidateReview.d.ts +15 -0
  372. package/dist/utils/review/consolidateReview.js +481 -0
  373. package/dist/utils/review/consolidateReview.js.map +1 -0
  374. package/dist/utils/review/fixDisplay.d.ts +20 -0
  375. package/dist/utils/review/fixDisplay.js +84 -0
  376. package/dist/utils/review/fixDisplay.js.map +1 -0
  377. package/dist/utils/review/fixImplementation.d.ts +28 -0
  378. package/dist/utils/review/fixImplementation.js +60 -0
  379. package/dist/utils/review/fixImplementation.js.map +1 -0
  380. package/dist/utils/review/index.d.ts +13 -0
  381. package/dist/utils/review/index.js +50 -0
  382. package/dist/utils/review/index.js.map +1 -0
  383. package/dist/utils/review/interactiveProcessing.d.ts +25 -0
  384. package/dist/utils/review/interactiveProcessing.js +251 -0
  385. package/dist/utils/review/interactiveProcessing.js.map +1 -0
  386. package/dist/utils/review/progressTracker.d.ts +106 -0
  387. package/dist/utils/review/progressTracker.js +227 -0
  388. package/dist/utils/review/progressTracker.js.map +1 -0
  389. package/dist/utils/review/reviewExtraction.d.ts +31 -0
  390. package/dist/utils/review/reviewExtraction.js +324 -0
  391. package/dist/utils/review/reviewExtraction.js.map +1 -0
  392. package/dist/utils/review/types.d.ts +45 -0
  393. package/dist/utils/review/types.js +18 -0
  394. package/dist/utils/review/types.js.map +1 -0
  395. package/{src/utils/reviewActionHandler.ts → dist/utils/reviewActionHandler.d.ts} +0 -2
  396. package/dist/utils/reviewActionHandler.js +34 -0
  397. package/dist/utils/reviewActionHandler.js.map +1 -0
  398. package/dist/utils/reviewParser.d.ts +34 -0
  399. package/dist/utils/reviewParser.js +218 -0
  400. package/dist/utils/reviewParser.js.map +1 -0
  401. package/dist/utils/sanitizer.d.ts +82 -0
  402. package/dist/utils/sanitizer.js +239 -0
  403. package/dist/utils/sanitizer.js.map +1 -0
  404. package/dist/utils/smartFileSelector.d.ts +50 -0
  405. package/dist/utils/smartFileSelector.js +261 -0
  406. package/dist/utils/smartFileSelector.js.map +1 -0
  407. package/dist/utils/templateLoader.d.ts +44 -0
  408. package/dist/utils/templateLoader.js +431 -0
  409. package/dist/utils/templateLoader.js.map +1 -0
  410. package/dist/utils/treeGenerator.d.ts +12 -0
  411. package/dist/utils/treeGenerator.js +133 -0
  412. package/dist/utils/treeGenerator.js.map +1 -0
  413. package/package.json +5 -2
  414. package/.cr-aia.yml +0 -23
  415. package/.crignore +0 -0
  416. package/docs/opt-in-full-context.md +0 -27
  417. package/reports/cr-cr-aia-17-11-2025-20-13.md +0 -354
  418. package/src/analysis/FindingsExtractor.ts +0 -431
  419. package/src/analysis/ai-detection/analyzers/BaseAnalyzer.ts +0 -267
  420. package/src/analysis/ai-detection/analyzers/DocumentationAnalyzer.ts +0 -622
  421. package/src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts +0 -430
  422. package/src/analysis/ai-detection/core/AIDetectionEngine.ts +0 -467
  423. package/src/analysis/ai-detection/types/DetectionTypes.ts +0 -406
  424. package/src/analysis/ai-detection/utils/SubmissionConverter.ts +0 -390
  425. package/src/analysis/context/ReviewContext.ts +0 -378
  426. package/src/analysis/tokens/TokenAnalyzer.ts +0 -747
  427. package/src/clients/base/abstractClient.ts +0 -190
  428. package/src/clients/base/httpClient.ts +0 -160
  429. package/src/clients/base/modelDetection.ts +0 -107
  430. package/src/clients/base/responseProcessor.ts +0 -586
  431. package/src/clients/factory/clientFactory.ts +0 -55
  432. package/src/clients/implementations/openRouterClient.ts +0 -413
  433. package/src/clients/openRouterClient.ts +0 -870
  434. package/src/clients/utils/directoryStructure.ts +0 -52
  435. package/src/clients/utils/languageDetection.ts +0 -44
  436. package/src/clients/utils/promptFormatter.ts +0 -182
  437. package/src/clients/utils/tokenCounter.ts +0 -297
  438. package/src/core/ApiClientSelector.ts +0 -37
  439. package/src/core/ConfigurationService.ts +0 -591
  440. package/src/core/ConsolidationService.ts +0 -423
  441. package/src/core/InteractiveDisplayManager.ts +0 -81
  442. package/src/core/OutputManager.ts +0 -275
  443. package/src/core/ReviewGenerator.ts +0 -140
  444. package/src/core/fileDiscovery.ts +0 -237
  445. package/src/core/handlers/EstimationHandler.ts +0 -104
  446. package/src/core/handlers/FileProcessingHandler.ts +0 -210
  447. package/src/core/handlers/OutputHandler.ts +0 -125
  448. package/src/core/handlers/ReviewExecutor.ts +0 -104
  449. package/src/core/reviewOrchestrator.ts +0 -333
  450. package/src/core/utils/ModelInfoUtils.ts +0 -56
  451. package/src/formatters/utils/IssueFormatters.ts +0 -83
  452. package/src/formatters/utils/JsonFormatter.ts +0 -77
  453. package/src/formatters/utils/MarkdownFormatters.ts +0 -609
  454. package/src/formatters/utils/MetadataFormatter.ts +0 -269
  455. package/src/formatters/utils/ModelInfoExtractor.ts +0 -115
  456. package/src/index.ts +0 -25
  457. package/src/plugins/PluginInterface.ts +0 -50
  458. package/src/plugins/PluginManager.ts +0 -126
  459. package/src/prompts/PromptManager.ts +0 -69
  460. package/src/prompts/cache/PromptCache.ts +0 -50
  461. package/src/prompts/promptText/common/variables/css-frameworks.json +0 -33
  462. package/src/prompts/promptText/common/variables/framework-versions.json +0 -45
  463. package/src/prompts/promptText/frameworks/react/comprehensive.hbs +0 -19
  464. package/src/prompts/promptText/languages/css/comprehensive.hbs +0 -18
  465. package/src/prompts/promptText/languages/generic/comprehensive.hbs +0 -20
  466. package/src/prompts/promptText/languages/html/comprehensive.hbs +0 -18
  467. package/src/prompts/promptText/languages/javascript/comprehensive.hbs +0 -18
  468. package/src/prompts/promptText/languages/python/comprehensive.hbs +0 -18
  469. package/src/prompts/promptText/languages/typescript/comprehensive.hbs +0 -18
  470. package/src/runtime/auth/service.ts +0 -58
  471. package/src/runtime/auth/session.ts +0 -103
  472. package/src/runtime/auth/types.ts +0 -11
  473. package/src/runtime/cliEntry.ts +0 -214
  474. package/src/runtime/debug/logManager.ts +0 -37
  475. package/src/runtime/errors.ts +0 -13
  476. package/src/runtime/fileCollector.ts +0 -495
  477. package/src/runtime/manifest.ts +0 -64
  478. package/src/runtime/openrouterProxy.ts +0 -45
  479. package/src/runtime/preprod/webCheck.ts +0 -104
  480. package/src/runtime/proxyConfig.ts +0 -94
  481. package/src/runtime/proxyEnvironment.ts +0 -71
  482. package/src/runtime/reportMerge.ts +0 -102
  483. package/src/runtime/reporting/markdownReportBuilder.ts +0 -138
  484. package/src/runtime/reporting/reportDataCollector.ts +0 -234
  485. package/src/runtime/reporting/summaryGenerator.ts +0 -86
  486. package/src/runtime/reviewPipeline.ts +0 -200
  487. package/src/runtime/runAiCodeReview.ts +0 -308
  488. package/src/runtime/runtimeConfig.ts +0 -5
  489. package/src/runtime/ui/Layout.tsx +0 -57
  490. package/src/runtime/ui/RuntimeApp.tsx +0 -262
  491. package/src/runtime/ui/inkModules.ts +0 -73
  492. package/src/runtime/ui/screens/AuthScreen.tsx +0 -128
  493. package/src/runtime/ui/screens/ModeSelection.tsx +0 -185
  494. package/src/runtime/ui/screens/ProgressScreen.tsx +0 -110
  495. package/src/runtime/ui/screens/ResultsScreen.tsx +0 -103
  496. package/src/strategies/ArchitecturalReviewStrategy.ts +0 -54
  497. package/src/strategies/CodingTestReviewStrategy.ts +0 -920
  498. package/src/strategies/ConsolidatedReviewStrategy.ts +0 -59
  499. package/src/strategies/ExtractPatternsReviewStrategy.ts +0 -64
  500. package/src/strategies/MultiPassReviewStrategy.ts +0 -785
  501. package/src/strategies/ReviewStrategy.ts +0 -64
  502. package/src/strategies/StrategyFactory.ts +0 -79
  503. package/src/tokenizers/baseTokenizer.ts +0 -61
  504. package/src/tokenizers/gptTokenizer.ts +0 -27
  505. package/src/types/apiResponses.ts +0 -40
  506. package/src/types/cli.ts +0 -24
  507. package/src/types/configuration.ts +0 -201
  508. package/src/types/handlebars.d.ts +0 -5
  509. package/src/types/patch.d.ts +0 -25
  510. package/src/types/review.ts +0 -312
  511. package/src/types/reviewContext.d.ts +0 -65
  512. package/src/types/structuredReview.ts +0 -167
  513. package/src/types/tokenAnalysis.ts +0 -56
  514. package/src/utils/FileReader.ts +0 -93
  515. package/src/utils/FileWriter.ts +0 -76
  516. package/src/utils/PathGenerator.ts +0 -97
  517. package/src/utils/api/apiUtils.ts +0 -14
  518. package/src/utils/apiErrorHandler.ts +0 -287
  519. package/src/utils/ciDataCollector.ts +0 -252
  520. package/src/utils/codingTestConfigLoader.ts +0 -466
  521. package/src/utils/dependencies/aiDependencyAnalyzer.ts +0 -454
  522. package/src/utils/detection/frameworkDetector.ts +0 -879
  523. package/src/utils/detection/projectTypeDetector.ts +0 -518
  524. package/src/utils/diagramGenerator.ts +0 -206
  525. package/src/utils/errorLogger.ts +0 -60
  526. package/src/utils/estimationUtils.ts +0 -407
  527. package/src/utils/fileFilters.ts +0 -373
  528. package/src/utils/fileSystem.ts +0 -57
  529. package/src/utils/logger.ts +0 -290
  530. package/src/utils/pathValidator.ts +0 -98
  531. package/src/utils/projectDocs.ts +0 -189
  532. package/src/utils/promptPaths.ts +0 -29
  533. package/src/utils/promptTemplateManager.ts +0 -157
  534. package/src/utils/review/consolidateReview.ts +0 -553
  535. package/src/utils/review/fixDisplay.ts +0 -100
  536. package/src/utils/review/fixImplementation.ts +0 -61
  537. package/src/utils/review/index.ts +0 -36
  538. package/src/utils/review/interactiveProcessing.ts +0 -294
  539. package/src/utils/review/progressTracker.ts +0 -296
  540. package/src/utils/review/reviewExtraction.ts +0 -382
  541. package/src/utils/review/types.ts +0 -46
  542. package/src/utils/reviewParser.ts +0 -253
  543. package/src/utils/sanitizer.ts +0 -238
  544. package/src/utils/smartFileSelector.ts +0 -255
  545. package/src/utils/templateLoader.ts +0 -514
  546. package/src/utils/treeGenerator.ts +0 -153
  547. package/tsconfig.build.json +0 -14
  548. package/tsconfig.json +0 -59
  549. /package/{src/utils/api/index.ts → dist/utils/api/index.d.ts} +0 -0
@@ -1,423 +0,0 @@
1
- /**
2
- * @fileoverview Consolidation Service for Multi-Pass Reviews
3
- *
4
- * This service handles the consolidation of multi-pass review results into
5
- * a single cohesive report. It manages both AI-powered consolidation and
6
- * fallback consolidation when AI services are unavailable.
7
- */
8
-
9
- import type { ReviewResult } from '../types/review';
10
- import logger from '../utils/logger';
11
- import { consolidateReview } from '../utils/review/consolidateReview';
12
- import type { ApiClientConfig } from './ApiClientSelector';
13
-
14
- /**
15
- * Service for consolidating multi-pass review results
16
- */
17
- export class ConsolidationService {
18
- /**
19
- * Generate a consolidated report from multi-pass review results
20
- * @param multiPassResult Combined result from all passes
21
- * @param apiClientConfig API client configuration
22
- * @param options Consolidation options
23
- * @returns Promise resolving to consolidated content
24
- */
25
- async generateConsolidatedReport(
26
- multiPassResult: ReviewResult,
27
- apiClientConfig: ApiClientConfig,
28
- options: {
29
- projectName: string;
30
- modelName: string;
31
- totalPasses: number;
32
- passResults: ReviewResult[];
33
- },
34
- ): Promise<string> {
35
- const { projectName, modelName, totalPasses, passResults } = options;
36
-
37
- try {
38
- logger.info(`Generating consolidated report for ${projectName} using ${modelName}...`);
39
-
40
- // Attempt AI-powered consolidation
41
- const consolidatedContent = await this.attemptAiConsolidation(
42
- multiPassResult,
43
- apiClientConfig,
44
- options,
45
- );
46
-
47
- if (consolidatedContent) {
48
- logger.info('Successfully generated AI-powered consolidated report');
49
- return consolidatedContent;
50
- }
51
-
52
- // Fall back to manual consolidation
53
- logger.warn('AI consolidation failed, falling back to enhanced manual consolidation');
54
- return this.createEnhancedFallbackConsolidation(multiPassResult, modelName, options);
55
- } catch (error) {
56
- logger.error('Error during consolidation:', error);
57
- logger.info('Creating fallback consolidation due to error');
58
- return this.createFallbackConsolidation(multiPassResult, modelName);
59
- }
60
- }
61
-
62
- /**
63
- * Attempt AI-powered consolidation
64
- * @param multiPassResult Combined result from all passes
65
- * @param apiClientConfig API client configuration
66
- * @param options Consolidation options
67
- * @returns Promise resolving to consolidated content or null if failed
68
- */
69
- private async attemptAiConsolidation(
70
- multiPassResult: ReviewResult,
71
- apiClientConfig: ApiClientConfig,
72
- options: {
73
- projectName: string;
74
- modelName: string;
75
- totalPasses: number;
76
- passResults: ReviewResult[];
77
- },
78
- ): Promise<string | null> {
79
- try {
80
- // Set the project name in the result for consolidation
81
- const reviewForConsolidation = {
82
- ...multiPassResult,
83
- projectName: options.projectName,
84
- };
85
-
86
- const consolidationResult = await consolidateReview(reviewForConsolidation);
87
-
88
- if (consolidationResult && consolidationResult.trim() !== '') {
89
- return consolidationResult;
90
- }
91
-
92
- logger.warn('AI consolidation returned empty content');
93
- return null;
94
- } catch (error) {
95
- logger.error('AI consolidation failed:', error);
96
- return null;
97
- }
98
- }
99
-
100
- /**
101
- * Creates an enhanced fallback consolidation with better error handling
102
- * @param multiPassResult The combined result from all passes
103
- * @param modelName The model name used for the review
104
- * @param options Additional consolidation options
105
- * @returns Enhanced fallback consolidation content
106
- */
107
- private createEnhancedFallbackConsolidation(
108
- multiPassResult: ReviewResult,
109
- modelName: string,
110
- options: {
111
- projectName: string;
112
- totalPasses: number;
113
- passResults: ReviewResult[];
114
- },
115
- ): string {
116
- logger.info('Creating enhanced fallback consolidation from multi-pass results...');
117
-
118
- const { projectName, totalPasses, passResults } = options;
119
- const timestamp = new Date().toISOString();
120
-
121
- // Extract findings from all passes
122
- const findings = this.extractFindingsFromPasses(passResults);
123
-
124
- // Calculate grades and recommendations
125
- const overallGrade = this.calculateOverallGrade(findings);
126
- const recommendations = this.generateRecommendations(findings, false);
127
-
128
- // Build the consolidated report
129
- const sections = [
130
- `# Code Review: ${projectName}`,
131
- '',
132
- `**Review Type:** Multi-Pass Analysis (${totalPasses} passes)`,
133
- `**Model:** ${modelName}`,
134
- `**Generated:** ${timestamp}`,
135
- '',
136
- '## Executive Summary',
137
- '',
138
- `This multi-pass review analyzed the ${projectName} codebase across ${totalPasses} passes, ` +
139
- `identifying ${findings.high.size + findings.medium.size + findings.low.size} total issues.`,
140
- '',
141
- `**Overall Grade:** ${overallGrade}`,
142
- '',
143
- '## Key Findings',
144
- '',
145
- this.formatFindings(findings),
146
- '',
147
- '## Recommendations',
148
- '',
149
- ...recommendations.map((rec) => `- ${rec}`),
150
- '',
151
- '## Pass Summary',
152
- '',
153
- this.generatePassSummary(passResults),
154
- '',
155
- '---',
156
- '',
157
- '*This report was generated using enhanced fallback consolidation due to AI service limitations.*',
158
- ];
159
-
160
- return sections.join('\n');
161
- }
162
-
163
- /**
164
- * Creates a basic fallback consolidation when AI consolidation fails
165
- * @param multiPassResult The combined result from all passes
166
- * @param modelName The model name used for the review
167
- * @returns Basic fallback consolidation content
168
- */
169
- private createFallbackConsolidation(multiPassResult: ReviewResult, modelName: string): string {
170
- logger.info('Creating basic fallback consolidation from multi-pass results...');
171
-
172
- const timestamp = new Date().toISOString();
173
- const content = multiPassResult.content || 'No content available';
174
-
175
- return [
176
- `# Multi-Pass Code Review`,
177
- '',
178
- `**Model:** ${modelName}`,
179
- `**Generated:** ${timestamp}`,
180
- `**Note:** This is a fallback consolidation due to service limitations.`,
181
- '',
182
- '## Review Content',
183
- '',
184
- content,
185
- '',
186
- '---',
187
- '',
188
- '*This report was generated using basic fallback consolidation.*',
189
- ].join('\n');
190
- }
191
-
192
- /**
193
- * Extract findings from valid passes
194
- * @param passResults Array of pass results
195
- * @returns Categorized findings
196
- */
197
- private extractFindingsFromPasses(passResults: Array<{ content: string }>) {
198
- const highPriorityFindings = new Set<string>();
199
- const mediumPriorityFindings = new Set<string>();
200
- const lowPriorityFindings = new Set<string>();
201
-
202
- for (const pass of passResults) {
203
- if (!pass.content) continue;
204
-
205
- const content = pass.content.toLowerCase();
206
- const issueTexts = this.extractIssueTexts(pass.content);
207
-
208
- for (const issue of issueTexts) {
209
- const lowerIssue = issue.toLowerCase();
210
-
211
- // Categorize by priority keywords
212
- if (this.isHighPriority(lowerIssue)) {
213
- highPriorityFindings.add(issue);
214
- } else if (this.isMediumPriority(lowerIssue)) {
215
- mediumPriorityFindings.add(issue);
216
- } else {
217
- lowPriorityFindings.add(issue);
218
- }
219
- }
220
- }
221
-
222
- return {
223
- high: highPriorityFindings,
224
- medium: mediumPriorityFindings,
225
- low: lowPriorityFindings,
226
- };
227
- }
228
-
229
- /**
230
- * Extract individual issue texts from content
231
- * @param content Review content
232
- * @returns Array of issue descriptions
233
- */
234
- private extractIssueTexts(content: string): string[] {
235
- const issues: string[] = [];
236
-
237
- // Extract bullet points and numbered items
238
- const bulletRegex = /^[\s]*[-*•]\s+(.+)$/gm;
239
- const numberedRegex = /^[\s]*\d+\.\s+(.+)$/gm;
240
-
241
- let match;
242
- while ((match = bulletRegex.exec(content)) !== null) {
243
- issues.push(match[1].trim());
244
- }
245
-
246
- while ((match = numberedRegex.exec(content)) !== null) {
247
- issues.push(match[1].trim());
248
- }
249
-
250
- return issues;
251
- }
252
-
253
- /**
254
- * Check if an issue is high priority
255
- * @param issue Issue text (lowercase)
256
- * @returns True if high priority
257
- */
258
- private isHighPriority(issue: string): boolean {
259
- const highPriorityKeywords = [
260
- 'security',
261
- 'vulnerability',
262
- 'critical',
263
- 'error',
264
- 'bug',
265
- 'crash',
266
- 'memory leak',
267
- 'performance',
268
- 'sql injection',
269
- 'xss',
270
- ];
271
- return highPriorityKeywords.some((keyword) => issue.includes(keyword));
272
- }
273
-
274
- /**
275
- * Check if an issue is medium priority
276
- * @param issue Issue text (lowercase)
277
- * @returns True if medium priority
278
- */
279
- private isMediumPriority(issue: string): boolean {
280
- const mediumPriorityKeywords = [
281
- 'warning',
282
- 'deprecated',
283
- 'inefficient',
284
- 'refactor',
285
- 'improve',
286
- 'optimization',
287
- 'maintainability',
288
- 'readability',
289
- ];
290
- return mediumPriorityKeywords.some((keyword) => issue.includes(keyword));
291
- }
292
-
293
- /**
294
- * Calculate overall grade based on findings
295
- * @param findings Categorized findings
296
- * @returns Overall grade string
297
- */
298
- private calculateOverallGrade(findings: {
299
- high: Set<string>;
300
- medium: Set<string>;
301
- low: Set<string>;
302
- }): string {
303
- const totalIssues = findings.high.size + findings.medium.size + findings.low.size;
304
-
305
- if (findings.high.size > 5) return 'D';
306
- if (findings.high.size > 2) return 'C';
307
- if (findings.medium.size > 10) return 'C+';
308
- if (findings.medium.size > 5) return 'B';
309
- if (totalIssues > 10) return 'B+';
310
- if (totalIssues > 5) return 'A-';
311
- if (totalIssues > 0) return 'A';
312
- return 'A+';
313
- }
314
-
315
- /**
316
- * Generate recommendations based on findings
317
- * @param findings Categorized findings
318
- * @param hasErrors Whether there are compilation errors
319
- * @returns Array of recommendation strings
320
- */
321
- private generateRecommendations(
322
- findings: { high: Set<string>; medium: Set<string>; low: Set<string> },
323
- hasErrors: boolean,
324
- ): string[] {
325
- const recommendations: string[] = [];
326
-
327
- if (hasErrors) {
328
- recommendations.push('Fix compilation errors before proceeding with other improvements');
329
- }
330
-
331
- if (findings.high.size > 0) {
332
- recommendations.push(
333
- `Address ${findings.high.size} high-priority security and critical issues immediately`,
334
- );
335
- }
336
-
337
- if (findings.medium.size > 5) {
338
- recommendations.push(
339
- `Review and address ${findings.medium.size} medium-priority maintainability issues`,
340
- );
341
- }
342
-
343
- if (findings.low.size > 10) {
344
- recommendations.push(
345
- `Consider addressing ${findings.low.size} low-priority style and minor issues`,
346
- );
347
- }
348
-
349
- if (recommendations.length === 0) {
350
- recommendations.push('Code quality is good. Continue following current best practices.');
351
- }
352
-
353
- return recommendations;
354
- }
355
-
356
- /**
357
- * Format findings for display
358
- * @param findings Categorized findings
359
- * @returns Formatted findings string
360
- */
361
- private formatFindings(findings: {
362
- high: Set<string>;
363
- medium: Set<string>;
364
- low: Set<string>;
365
- }): string {
366
- const sections: string[] = [];
367
-
368
- if (findings.high.size > 0) {
369
- sections.push(`**High Priority (${findings.high.size}):**`);
370
- sections.push(
371
- ...Array.from(findings.high)
372
- .slice(0, 5)
373
- .map((f) => `- ${f}`),
374
- );
375
- if (findings.high.size > 5) {
376
- sections.push(`- ... and ${findings.high.size - 5} more`);
377
- }
378
- sections.push('');
379
- }
380
-
381
- if (findings.medium.size > 0) {
382
- sections.push(`**Medium Priority (${findings.medium.size}):**`);
383
- sections.push(
384
- ...Array.from(findings.medium)
385
- .slice(0, 3)
386
- .map((f) => `- ${f}`),
387
- );
388
- if (findings.medium.size > 3) {
389
- sections.push(`- ... and ${findings.medium.size - 3} more`);
390
- }
391
- sections.push('');
392
- }
393
-
394
- if (findings.low.size > 0) {
395
- sections.push(`**Low Priority (${findings.low.size}):**`);
396
- sections.push(
397
- ...Array.from(findings.low)
398
- .slice(0, 2)
399
- .map((f) => `- ${f}`),
400
- );
401
- if (findings.low.size > 2) {
402
- sections.push(`- ... and ${findings.low.size - 2} more`);
403
- }
404
- }
405
-
406
- return sections.join('\n');
407
- }
408
-
409
- /**
410
- * Generate a summary of all passes
411
- * @param passResults Array of pass results
412
- * @returns Pass summary string
413
- */
414
- private generatePassSummary(passResults: ReviewResult[]): string {
415
- return passResults
416
- .map((result, index) => {
417
- const passNum = index + 1;
418
- const wordCount = result.content ? result.content.split(/\s+/).length : 0;
419
- return `**Pass ${passNum}:** ${wordCount} words of analysis`;
420
- })
421
- .join('\n');
422
- }
423
- }
@@ -1,81 +0,0 @@
1
- /**
2
- * @fileoverview Interactive display manager module.
3
- *
4
- * This module is responsible for handling the interactive display of review results.
5
- * It centralizes the logic for displaying review results and handling user interaction.
6
- */
7
-
8
- import fs from 'node:fs/promises';
9
- import type { ReviewOptions } from '../types/review';
10
- import type { PriorityFilter } from '../types/common';
11
- import logger from '../utils/logger';
12
- import { displayReviewResults } from '../utils/reviewActionHandler';
13
-
14
- /**
15
- * Display review results in interactive mode
16
- * @param reviewPath Path to the review file
17
- * @param projectPath Path to the project
18
- * @param options Review options
19
- * @returns Promise resolving when the display is complete
20
- */
21
- export async function displayReviewInteractively(
22
- reviewPath: string,
23
- projectPath: string,
24
- options: ReviewOptions,
25
- ): Promise<void> {
26
- try {
27
- logger.info('\nDisplaying review results in interactive mode...');
28
-
29
- // Read the review content
30
- const reviewContent = await fs.readFile(reviewPath, 'utf-8');
31
-
32
- // Get the priority filter from the options
33
- const priorityFilter = getPriorityFilterFromOptions(options);
34
-
35
- // Display the review results
36
- const results = await displayReviewResults(reviewContent, projectPath, priorityFilter);
37
-
38
- // Print summary
39
- logger.info('\n--- Review Summary ---');
40
- logger.info(`Total issues found: ${results.totalSuggestions}`);
41
- logger.info(`High priority issues: ${results.highPrioritySuggestions.length}`);
42
- logger.info(`Medium priority issues: ${results.mediumPrioritySuggestions.length}`);
43
- logger.info(`Low priority issues: ${results.lowPrioritySuggestions.length}`);
44
- logger.info('----------------------');
45
- } catch (error) {
46
- logger.error(
47
- `Error displaying review results: ${error instanceof Error ? error.message : String(error)}`,
48
- );
49
- throw error;
50
- }
51
- }
52
-
53
- /**
54
- * Get the priority filter from review options
55
- * @param options Review options that may contain the priority filter
56
- * @returns The priority filter (h, m, l, or a) or undefined if not specified
57
- */
58
- export function getPriorityFilterFromOptions(options?: ReviewOptions): PriorityFilter | undefined {
59
- // First check if the interactive option is a string (priority filter)
60
- if (
61
- options &&
62
- typeof options.interactive === 'string' &&
63
- ['h', 'm', 'l', 'a'].includes(options.interactive)
64
- ) {
65
- return options.interactive as PriorityFilter;
66
- }
67
-
68
- // Otherwise check if there's a priority filter argument after --interactive
69
- const args = process.argv;
70
- const interactiveIndex = args.findIndex((arg) => arg === '--interactive' || arg === '-i');
71
-
72
- if (interactiveIndex !== -1 && interactiveIndex < args.length - 1) {
73
- const nextArg = args[interactiveIndex + 1];
74
- // Check if the next argument is a priority filter and not another option
75
- if (['h', 'm', 'l', 'a'].includes(nextArg) && !nextArg.startsWith('-')) {
76
- return nextArg as PriorityFilter;
77
- }
78
- }
79
-
80
- return undefined;
81
- }