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.
Files changed (558) 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 +580 -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 +184 -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 +276 -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 +381 -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/batchStreamer.d.ts +54 -0
  193. package/dist/runtime/preprod/batchStreamer.js +159 -0
  194. package/dist/runtime/preprod/batchStreamer.js.map +1 -0
  195. package/dist/runtime/preprod/crEdgeServiceClient.d.ts +30 -0
  196. package/dist/runtime/preprod/crEdgeServiceClient.js +133 -0
  197. package/dist/runtime/preprod/crEdgeServiceClient.js.map +1 -0
  198. package/dist/runtime/preprod/progressTracker.d.ts +21 -0
  199. package/dist/runtime/preprod/progressTracker.js +80 -0
  200. package/dist/runtime/preprod/progressTracker.js.map +1 -0
  201. package/dist/runtime/preprod/webCheck.d.ts +1 -0
  202. package/dist/runtime/preprod/webCheck.js +102 -0
  203. package/dist/runtime/preprod/webCheck.js.map +1 -0
  204. package/dist/runtime/proxyConfig.d.ts +6 -0
  205. package/dist/runtime/proxyConfig.js +86 -0
  206. package/dist/runtime/proxyConfig.js.map +1 -0
  207. package/dist/runtime/proxyEnvironment.d.ts +3 -0
  208. package/dist/runtime/proxyEnvironment.js +63 -0
  209. package/dist/runtime/proxyEnvironment.js.map +1 -0
  210. package/dist/runtime/reportMerge.d.ts +30 -0
  211. package/dist/runtime/reportMerge.js +70 -0
  212. package/dist/runtime/reportMerge.js.map +1 -0
  213. package/dist/runtime/reporting/markdownReportBuilder.d.ts +17 -0
  214. package/dist/runtime/reporting/markdownReportBuilder.js +154 -0
  215. package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
  216. package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
  217. package/dist/runtime/reporting/reportDataCollector.js +170 -0
  218. package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
  219. package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
  220. package/dist/runtime/reporting/summaryGenerator.js +67 -0
  221. package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
  222. package/dist/runtime/reviewPipeline.d.ts +61 -0
  223. package/dist/runtime/reviewPipeline.js +231 -0
  224. package/dist/runtime/reviewPipeline.js.map +1 -0
  225. package/dist/runtime/runAiCodeReview.d.ts +36 -0
  226. package/dist/runtime/runAiCodeReview.js +409 -0
  227. package/dist/runtime/runAiCodeReview.js.map +1 -0
  228. package/dist/runtime/runtimeConfig.d.ts +4 -0
  229. package/dist/runtime/runtimeConfig.js +7 -0
  230. package/dist/runtime/runtimeConfig.js.map +1 -0
  231. package/dist/runtime/ui/Layout.d.ts +11 -0
  232. package/dist/runtime/ui/Layout.js +47 -0
  233. package/dist/runtime/ui/Layout.js.map +1 -0
  234. package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
  235. package/dist/runtime/ui/RuntimeApp.js +275 -0
  236. package/dist/runtime/ui/RuntimeApp.js.map +1 -0
  237. package/dist/runtime/ui/inkModules.d.ts +10 -0
  238. package/dist/runtime/ui/inkModules.js +63 -0
  239. package/dist/runtime/ui/inkModules.js.map +1 -0
  240. package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
  241. package/dist/runtime/ui/screens/AuthScreen.js +67 -0
  242. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
  243. package/dist/runtime/ui/screens/ModeSelection.d.ts +11 -0
  244. package/dist/runtime/ui/screens/ModeSelection.js +169 -0
  245. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
  246. package/dist/runtime/ui/screens/ProgressScreen.d.ts +21 -0
  247. package/dist/runtime/ui/screens/ProgressScreen.js +86 -0
  248. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
  249. package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
  250. package/dist/runtime/ui/screens/ResultsScreen.js +34 -0
  251. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
  252. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
  253. package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
  254. package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
  255. package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
  256. package/dist/strategies/CodingTestReviewStrategy.js +681 -0
  257. package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
  258. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
  259. package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
  260. package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
  261. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
  262. package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
  263. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
  264. package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
  265. package/dist/strategies/MultiPassReviewStrategy.js +590 -0
  266. package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
  267. package/dist/strategies/ReviewStrategy.d.ts +45 -0
  268. package/dist/strategies/ReviewStrategy.js +24 -0
  269. package/dist/strategies/ReviewStrategy.js.map +1 -0
  270. package/dist/strategies/StrategyFactory.d.ts +19 -0
  271. package/dist/strategies/StrategyFactory.js +72 -0
  272. package/dist/strategies/StrategyFactory.js.map +1 -0
  273. package/{src/strategies/index.ts → dist/strategies/index.d.ts} +0 -1
  274. package/dist/strategies/index.js +30 -0
  275. package/dist/strategies/index.js.map +1 -0
  276. package/dist/tokenizers/baseTokenizer.d.ts +25 -0
  277. package/dist/tokenizers/baseTokenizer.js +48 -0
  278. package/dist/tokenizers/baseTokenizer.js.map +1 -0
  279. package/dist/tokenizers/gptTokenizer.d.ts +7 -0
  280. package/dist/tokenizers/gptTokenizer.js +28 -0
  281. package/dist/tokenizers/gptTokenizer.js.map +1 -0
  282. package/{src/tokenizers/index.ts → dist/tokenizers/index.d.ts} +0 -1
  283. package/dist/tokenizers/index.js +24 -0
  284. package/dist/tokenizers/index.js.map +1 -0
  285. package/dist/types/apiResponses.d.ts +39 -0
  286. package/dist/types/apiResponses.js +9 -0
  287. package/dist/types/apiResponses.js.map +1 -0
  288. package/dist/types/cli.d.ts +22 -0
  289. package/dist/types/cli.js +3 -0
  290. package/dist/types/cli.js.map +1 -0
  291. package/{src/types/common.ts → dist/types/common.d.ts} +2 -19
  292. package/dist/types/common.js +14 -0
  293. package/dist/types/common.js.map +1 -0
  294. package/dist/types/configuration.d.ts +682 -0
  295. package/dist/types/configuration.js +65 -0
  296. package/dist/types/configuration.js.map +1 -0
  297. package/dist/types/review.d.ts +318 -0
  298. package/dist/types/review.js +8 -0
  299. package/dist/types/review.js.map +1 -0
  300. package/dist/types/reviewSchema.d.ts +543 -0
  301. package/{src/types/reviewSchema.ts → dist/types/reviewSchema.js} +44 -104
  302. package/dist/types/reviewSchema.js.map +1 -0
  303. package/dist/types/structuredReview.d.ts +119 -0
  304. package/dist/types/structuredReview.js +6 -0
  305. package/dist/types/structuredReview.js.map +1 -0
  306. package/dist/types/tokenAnalysis.d.ts +44 -0
  307. package/dist/types/tokenAnalysis.js +4 -0
  308. package/dist/types/tokenAnalysis.js.map +1 -0
  309. package/dist/utils/FileReader.d.ts +33 -0
  310. package/dist/utils/FileReader.js +88 -0
  311. package/dist/utils/FileReader.js.map +1 -0
  312. package/dist/utils/FileWriter.d.ts +26 -0
  313. package/dist/utils/FileWriter.js +76 -0
  314. package/dist/utils/FileWriter.js.map +1 -0
  315. package/dist/utils/PathGenerator.d.ts +30 -0
  316. package/dist/utils/PathGenerator.js +82 -0
  317. package/dist/utils/PathGenerator.js.map +1 -0
  318. package/dist/utils/api/apiUtils.d.ts +3 -0
  319. package/dist/utils/api/apiUtils.js +20 -0
  320. package/dist/utils/api/apiUtils.js.map +1 -0
  321. package/dist/utils/api/index.js +18 -0
  322. package/dist/utils/api/index.js.map +1 -0
  323. package/dist/utils/apiErrorHandler.d.ts +130 -0
  324. package/dist/utils/apiErrorHandler.js +256 -0
  325. package/dist/utils/apiErrorHandler.js.map +1 -0
  326. package/dist/utils/ciDataCollector.d.ts +51 -0
  327. package/dist/utils/ciDataCollector.js +197 -0
  328. package/dist/utils/ciDataCollector.js.map +1 -0
  329. package/dist/utils/codingTestConfigLoader.d.ts +66 -0
  330. package/dist/utils/codingTestConfigLoader.js +420 -0
  331. package/dist/utils/codingTestConfigLoader.js.map +1 -0
  332. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
  333. package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
  334. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
  335. package/dist/utils/detection/frameworkDetector.d.ts +43 -0
  336. package/dist/utils/detection/frameworkDetector.js +850 -0
  337. package/dist/utils/detection/frameworkDetector.js.map +1 -0
  338. package/{src/utils/detection/index.ts → dist/utils/detection/index.d.ts} +0 -1
  339. package/dist/utils/detection/index.js +28 -0
  340. package/dist/utils/detection/index.js.map +1 -0
  341. package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
  342. package/dist/utils/detection/projectTypeDetector.js +469 -0
  343. package/dist/utils/detection/projectTypeDetector.js.map +1 -0
  344. package/dist/utils/diagramGenerator.d.ts +49 -0
  345. package/dist/utils/diagramGenerator.js +218 -0
  346. package/dist/utils/diagramGenerator.js.map +1 -0
  347. package/dist/utils/errorLogger.d.ts +24 -0
  348. package/dist/utils/errorLogger.js +59 -0
  349. package/dist/utils/errorLogger.js.map +1 -0
  350. package/dist/utils/estimationUtils.d.ts +139 -0
  351. package/dist/utils/estimationUtils.js +329 -0
  352. package/dist/utils/estimationUtils.js.map +1 -0
  353. package/dist/utils/fileFilters.d.ts +72 -0
  354. package/dist/utils/fileFilters.js +338 -0
  355. package/dist/utils/fileFilters.js.map +1 -0
  356. package/dist/utils/fileSystem.d.ts +22 -0
  357. package/dist/utils/fileSystem.js +45 -0
  358. package/dist/utils/fileSystem.js.map +1 -0
  359. package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -14
  360. package/dist/utils/index.js +52 -0
  361. package/dist/utils/index.js.map +1 -0
  362. package/dist/utils/logger.d.ts +77 -0
  363. package/dist/utils/logger.js +271 -0
  364. package/dist/utils/logger.js.map +1 -0
  365. package/dist/utils/pathValidator.d.ts +40 -0
  366. package/dist/utils/pathValidator.js +98 -0
  367. package/dist/utils/pathValidator.js.map +1 -0
  368. package/{src/utils/priorityFilter.ts → dist/utils/priorityFilter.d.ts} +1 -26
  369. package/dist/utils/priorityFilter.js +54 -0
  370. package/dist/utils/priorityFilter.js.map +1 -0
  371. package/dist/utils/projectDocs.d.ts +47 -0
  372. package/dist/utils/projectDocs.js +158 -0
  373. package/dist/utils/projectDocs.js.map +1 -0
  374. package/dist/utils/promptPaths.d.ts +6 -0
  375. package/dist/utils/promptPaths.js +33 -0
  376. package/dist/utils/promptPaths.js.map +1 -0
  377. package/dist/utils/promptTemplateManager.d.ts +34 -0
  378. package/dist/utils/promptTemplateManager.js +141 -0
  379. package/dist/utils/promptTemplateManager.js.map +1 -0
  380. package/dist/utils/review/consolidateReview.d.ts +15 -0
  381. package/dist/utils/review/consolidateReview.js +481 -0
  382. package/dist/utils/review/consolidateReview.js.map +1 -0
  383. package/dist/utils/review/fixDisplay.d.ts +20 -0
  384. package/dist/utils/review/fixDisplay.js +84 -0
  385. package/dist/utils/review/fixDisplay.js.map +1 -0
  386. package/dist/utils/review/fixImplementation.d.ts +28 -0
  387. package/dist/utils/review/fixImplementation.js +60 -0
  388. package/dist/utils/review/fixImplementation.js.map +1 -0
  389. package/dist/utils/review/index.d.ts +13 -0
  390. package/dist/utils/review/index.js +50 -0
  391. package/dist/utils/review/index.js.map +1 -0
  392. package/dist/utils/review/interactiveProcessing.d.ts +25 -0
  393. package/dist/utils/review/interactiveProcessing.js +251 -0
  394. package/dist/utils/review/interactiveProcessing.js.map +1 -0
  395. package/dist/utils/review/progressTracker.d.ts +106 -0
  396. package/dist/utils/review/progressTracker.js +227 -0
  397. package/dist/utils/review/progressTracker.js.map +1 -0
  398. package/dist/utils/review/reviewExtraction.d.ts +31 -0
  399. package/dist/utils/review/reviewExtraction.js +324 -0
  400. package/dist/utils/review/reviewExtraction.js.map +1 -0
  401. package/dist/utils/review/types.d.ts +45 -0
  402. package/dist/utils/review/types.js +18 -0
  403. package/dist/utils/review/types.js.map +1 -0
  404. package/{src/utils/reviewActionHandler.ts → dist/utils/reviewActionHandler.d.ts} +0 -2
  405. package/dist/utils/reviewActionHandler.js +34 -0
  406. package/dist/utils/reviewActionHandler.js.map +1 -0
  407. package/dist/utils/reviewParser.d.ts +34 -0
  408. package/dist/utils/reviewParser.js +218 -0
  409. package/dist/utils/reviewParser.js.map +1 -0
  410. package/dist/utils/sanitizer.d.ts +82 -0
  411. package/dist/utils/sanitizer.js +239 -0
  412. package/dist/utils/sanitizer.js.map +1 -0
  413. package/dist/utils/smartFileSelector.d.ts +50 -0
  414. package/dist/utils/smartFileSelector.js +261 -0
  415. package/dist/utils/smartFileSelector.js.map +1 -0
  416. package/dist/utils/templateLoader.d.ts +44 -0
  417. package/dist/utils/templateLoader.js +431 -0
  418. package/dist/utils/templateLoader.js.map +1 -0
  419. package/dist/utils/treeGenerator.d.ts +12 -0
  420. package/dist/utils/treeGenerator.js +133 -0
  421. package/dist/utils/treeGenerator.js.map +1 -0
  422. package/package.json +5 -1
  423. package/.cr-aia.yml +0 -23
  424. package/.crignore +0 -0
  425. package/docs/opt-in-full-context.md +0 -27
  426. package/reports/cr-cr-aia-17-11-2025-20-13.md +0 -354
  427. package/src/analysis/FindingsExtractor.ts +0 -431
  428. package/src/analysis/ai-detection/analyzers/BaseAnalyzer.ts +0 -267
  429. package/src/analysis/ai-detection/analyzers/DocumentationAnalyzer.ts +0 -622
  430. package/src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts +0 -430
  431. package/src/analysis/ai-detection/core/AIDetectionEngine.ts +0 -467
  432. package/src/analysis/ai-detection/types/DetectionTypes.ts +0 -406
  433. package/src/analysis/ai-detection/utils/SubmissionConverter.ts +0 -390
  434. package/src/analysis/context/ReviewContext.ts +0 -378
  435. package/src/analysis/tokens/TokenAnalyzer.ts +0 -747
  436. package/src/clients/base/abstractClient.ts +0 -190
  437. package/src/clients/base/httpClient.ts +0 -160
  438. package/src/clients/base/modelDetection.ts +0 -107
  439. package/src/clients/base/responseProcessor.ts +0 -586
  440. package/src/clients/factory/clientFactory.ts +0 -55
  441. package/src/clients/implementations/openRouterClient.ts +0 -413
  442. package/src/clients/openRouterClient.ts +0 -870
  443. package/src/clients/utils/directoryStructure.ts +0 -52
  444. package/src/clients/utils/languageDetection.ts +0 -44
  445. package/src/clients/utils/promptFormatter.ts +0 -182
  446. package/src/clients/utils/tokenCounter.ts +0 -297
  447. package/src/core/ApiClientSelector.ts +0 -37
  448. package/src/core/ConfigurationService.ts +0 -591
  449. package/src/core/ConsolidationService.ts +0 -423
  450. package/src/core/InteractiveDisplayManager.ts +0 -81
  451. package/src/core/OutputManager.ts +0 -275
  452. package/src/core/ReviewGenerator.ts +0 -140
  453. package/src/core/fileDiscovery.ts +0 -237
  454. package/src/core/handlers/EstimationHandler.ts +0 -104
  455. package/src/core/handlers/FileProcessingHandler.ts +0 -210
  456. package/src/core/handlers/OutputHandler.ts +0 -125
  457. package/src/core/handlers/ReviewExecutor.ts +0 -104
  458. package/src/core/reviewOrchestrator.ts +0 -333
  459. package/src/core/utils/ModelInfoUtils.ts +0 -56
  460. package/src/formatters/utils/IssueFormatters.ts +0 -83
  461. package/src/formatters/utils/JsonFormatter.ts +0 -77
  462. package/src/formatters/utils/MarkdownFormatters.ts +0 -609
  463. package/src/formatters/utils/MetadataFormatter.ts +0 -269
  464. package/src/formatters/utils/ModelInfoExtractor.ts +0 -115
  465. package/src/index.ts +0 -25
  466. package/src/plugins/PluginInterface.ts +0 -50
  467. package/src/plugins/PluginManager.ts +0 -126
  468. package/src/prompts/PromptManager.ts +0 -69
  469. package/src/prompts/cache/PromptCache.ts +0 -50
  470. package/src/prompts/promptText/common/variables/css-frameworks.json +0 -33
  471. package/src/prompts/promptText/common/variables/framework-versions.json +0 -45
  472. package/src/prompts/promptText/frameworks/react/comprehensive.hbs +0 -19
  473. package/src/prompts/promptText/languages/css/comprehensive.hbs +0 -18
  474. package/src/prompts/promptText/languages/generic/comprehensive.hbs +0 -20
  475. package/src/prompts/promptText/languages/html/comprehensive.hbs +0 -18
  476. package/src/prompts/promptText/languages/javascript/comprehensive.hbs +0 -18
  477. package/src/prompts/promptText/languages/python/comprehensive.hbs +0 -18
  478. package/src/prompts/promptText/languages/typescript/comprehensive.hbs +0 -18
  479. package/src/runtime/auth/service.ts +0 -58
  480. package/src/runtime/auth/session.ts +0 -103
  481. package/src/runtime/auth/types.ts +0 -11
  482. package/src/runtime/cliEntry.ts +0 -214
  483. package/src/runtime/debug/logManager.ts +0 -37
  484. package/src/runtime/errors.ts +0 -13
  485. package/src/runtime/fileCollector.ts +0 -495
  486. package/src/runtime/manifest.ts +0 -64
  487. package/src/runtime/openrouterProxy.ts +0 -45
  488. package/src/runtime/preprod/webCheck.ts +0 -104
  489. package/src/runtime/proxyConfig.ts +0 -94
  490. package/src/runtime/proxyEnvironment.ts +0 -71
  491. package/src/runtime/reportMerge.ts +0 -102
  492. package/src/runtime/reporting/markdownReportBuilder.ts +0 -138
  493. package/src/runtime/reporting/reportDataCollector.ts +0 -234
  494. package/src/runtime/reporting/summaryGenerator.ts +0 -86
  495. package/src/runtime/reviewPipeline.ts +0 -200
  496. package/src/runtime/runAiCodeReview.ts +0 -308
  497. package/src/runtime/runtimeConfig.ts +0 -5
  498. package/src/runtime/ui/Layout.tsx +0 -57
  499. package/src/runtime/ui/RuntimeApp.tsx +0 -262
  500. package/src/runtime/ui/inkModules.ts +0 -73
  501. package/src/runtime/ui/screens/AuthScreen.tsx +0 -128
  502. package/src/runtime/ui/screens/ModeSelection.tsx +0 -185
  503. package/src/runtime/ui/screens/ProgressScreen.tsx +0 -110
  504. package/src/runtime/ui/screens/ResultsScreen.tsx +0 -103
  505. package/src/strategies/ArchitecturalReviewStrategy.ts +0 -54
  506. package/src/strategies/CodingTestReviewStrategy.ts +0 -920
  507. package/src/strategies/ConsolidatedReviewStrategy.ts +0 -59
  508. package/src/strategies/ExtractPatternsReviewStrategy.ts +0 -64
  509. package/src/strategies/MultiPassReviewStrategy.ts +0 -785
  510. package/src/strategies/ReviewStrategy.ts +0 -64
  511. package/src/strategies/StrategyFactory.ts +0 -79
  512. package/src/tokenizers/baseTokenizer.ts +0 -61
  513. package/src/tokenizers/gptTokenizer.ts +0 -27
  514. package/src/types/apiResponses.ts +0 -40
  515. package/src/types/cli.ts +0 -24
  516. package/src/types/configuration.ts +0 -201
  517. package/src/types/handlebars.d.ts +0 -5
  518. package/src/types/patch.d.ts +0 -25
  519. package/src/types/review.ts +0 -312
  520. package/src/types/reviewContext.d.ts +0 -65
  521. package/src/types/structuredReview.ts +0 -167
  522. package/src/types/tokenAnalysis.ts +0 -56
  523. package/src/utils/FileReader.ts +0 -93
  524. package/src/utils/FileWriter.ts +0 -76
  525. package/src/utils/PathGenerator.ts +0 -97
  526. package/src/utils/api/apiUtils.ts +0 -14
  527. package/src/utils/apiErrorHandler.ts +0 -287
  528. package/src/utils/ciDataCollector.ts +0 -252
  529. package/src/utils/codingTestConfigLoader.ts +0 -466
  530. package/src/utils/dependencies/aiDependencyAnalyzer.ts +0 -454
  531. package/src/utils/detection/frameworkDetector.ts +0 -879
  532. package/src/utils/detection/projectTypeDetector.ts +0 -518
  533. package/src/utils/diagramGenerator.ts +0 -206
  534. package/src/utils/errorLogger.ts +0 -60
  535. package/src/utils/estimationUtils.ts +0 -407
  536. package/src/utils/fileFilters.ts +0 -373
  537. package/src/utils/fileSystem.ts +0 -57
  538. package/src/utils/logger.ts +0 -290
  539. package/src/utils/pathValidator.ts +0 -98
  540. package/src/utils/projectDocs.ts +0 -189
  541. package/src/utils/promptPaths.ts +0 -29
  542. package/src/utils/promptTemplateManager.ts +0 -157
  543. package/src/utils/review/consolidateReview.ts +0 -553
  544. package/src/utils/review/fixDisplay.ts +0 -100
  545. package/src/utils/review/fixImplementation.ts +0 -61
  546. package/src/utils/review/index.ts +0 -36
  547. package/src/utils/review/interactiveProcessing.ts +0 -294
  548. package/src/utils/review/progressTracker.ts +0 -296
  549. package/src/utils/review/reviewExtraction.ts +0 -382
  550. package/src/utils/review/types.ts +0 -46
  551. package/src/utils/reviewParser.ts +0 -253
  552. package/src/utils/sanitizer.ts +0 -238
  553. package/src/utils/smartFileSelector.ts +0 -255
  554. package/src/utils/templateLoader.ts +0 -514
  555. package/src/utils/treeGenerator.ts +0 -153
  556. package/tsconfig.build.json +0 -14
  557. package/tsconfig.json +0 -59
  558. /package/{src/utils/api/index.ts → dist/utils/api/index.d.ts} +0 -0
@@ -1,61 +0,0 @@
1
- /**
2
- * @fileoverview Utilities for implementing code review fixes
3
- *
4
- * This module provides functions for applying fixes from code review suggestions
5
- * to the corresponding files. Currently it only provides a placeholder for future
6
- * implementation as automatic fixes are not fully supported.
7
- */
8
-
9
- import readline from 'node:readline';
10
- import type { FixSuggestion } from './types';
11
-
12
- /**
13
- * Create a readline interface for user input
14
- */
15
- export function createReadlineInterface(): readline.Interface {
16
- return readline.createInterface({
17
- input: process.stdin,
18
- output: process.stdout,
19
- });
20
- }
21
-
22
- /**
23
- * Prompt the user for confirmation
24
- * @param message Message to display to the user
25
- * @returns Promise resolving to boolean indicating user's response
26
- */
27
- export async function promptForConfirmation(message: string): Promise<boolean> {
28
- const rl = createReadlineInterface();
29
-
30
- return new Promise((resolve) => {
31
- rl.question(`${message} (y/n): `, (answer) => {
32
- rl.close();
33
- resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
34
- });
35
- });
36
- }
37
-
38
- /**
39
- * This function is a placeholder for future functionality.
40
- * Currently, the AI code review tool does not automatically apply fixes.
41
- * It only provides suggestions that developers must review and implement manually.
42
- *
43
- * @param suggestion The fix suggestion to apply
44
- * @returns Always returns false as automatic fixes are not supported
45
- */
46
- export async function applyFixToFile(suggestion: FixSuggestion): Promise<boolean> {
47
- console.log(`\n⚠️ Automatic fixes are not supported.`);
48
- console.log(
49
- `The AI code review tool only provides suggestions that you must implement manually.`,
50
- );
51
- console.log(`Review the suggested fix and apply it yourself if appropriate.`);
52
-
53
- if (suggestion.suggestedCode) {
54
- console.log(`\nSuggested code:`);
55
- console.log('```');
56
- console.log(suggestion.suggestedCode);
57
- console.log('```');
58
- }
59
-
60
- return false;
61
- }
@@ -1,36 +0,0 @@
1
- /**
2
- * @fileoverview Index file for review action modules
3
- *
4
- * This module re-exports all the functionality from the review action modules
5
- * to provide a clean interface for the main reviewActionHandler.
6
- */
7
-
8
- // Export consolidation utilities
9
- export { consolidateReview } from './consolidateReview';
10
- // Export fix display utilities
11
- export {
12
- displayDetailedFixSuggestion,
13
- displayFixSuggestions,
14
- } from './fixDisplay';
15
-
16
- // Export fix implementation utilities
17
- export {
18
- applyFixToFile,
19
- createReadlineInterface,
20
- promptForConfirmation,
21
- } from './fixImplementation';
22
- // Export interactive processing utilities
23
- export {
24
- displayReviewResults,
25
- processReviewResults,
26
- } from './interactiveProcessing';
27
- // Export progress tracking utilities for multi-pass reviews
28
- export { MultiPassProgressTracker } from './progressTracker';
29
- // Export review extraction utilities
30
- export {
31
- extractFixSuggestions,
32
- extractSection,
33
- parseSuggestions,
34
- } from './reviewExtraction';
35
- // Export types
36
- export * from './types';
@@ -1,294 +0,0 @@
1
- /**
2
- * @fileoverview Utilities for interactive processing of code review fixes
3
- *
4
- * This module provides functions for interactively processing code review
5
- * fixes, either by displaying them for manual implementation or by
6
- * implementing them automatically with user confirmation.
7
- */
8
-
9
- import logger from '../logger';
10
- import { displayStructuredReview, parseReviewJson } from '../reviewParser';
11
- import { displayDetailedFixSuggestion, displayFixSuggestions } from './fixDisplay';
12
- import { applyFixToFile, promptForConfirmation } from './fixImplementation';
13
- import { extractFixSuggestions } from './reviewExtraction';
14
- import { FixPriority, type FixSuggestion, type FixSummary, type SuggestionSummary } from './types';
15
-
16
- /**
17
- * Process review results in non-interactive mode, just displaying recommendations
18
- * @param reviewContent Content of the review
19
- * @param projectPath Base path of the project
20
- * @param priorityFilter Optional filter to show only specific priority issues (h, m, l, or a for all)
21
- * @returns Summary of suggestions found
22
- */
23
- export async function displayReviewResults(
24
- reviewContent: string,
25
- projectPath: string,
26
- priorityFilter?: 'h' | 'm' | 'l' | 'a',
27
- ): Promise<SuggestionSummary> {
28
- // First try to parse the review content as structured JSON
29
- const parsedReview = parseReviewJson(reviewContent);
30
-
31
- if (parsedReview) {
32
- // If we have a structured review, display it using the structured format
33
- displayStructuredReview(parsedReview);
34
-
35
- // Convert the structured review to FixSuggestion format for compatibility
36
- const highPrioritySuggestions: FixSuggestion[] = [];
37
- const mediumPrioritySuggestions: FixSuggestion[] = [];
38
- const lowPrioritySuggestions: FixSuggestion[] = [];
39
-
40
- // Process each file and issue
41
- parsedReview.review.files.forEach((file) => {
42
- file.issues.forEach((issue) => {
43
- const suggestion: FixSuggestion = {
44
- priority:
45
- issue.priority === 'HIGH'
46
- ? FixPriority.HIGH
47
- : issue.priority === 'MEDIUM'
48
- ? FixPriority.MEDIUM
49
- : FixPriority.LOW,
50
- file: file.filePath,
51
- description: issue.description,
52
- currentCode: issue.currentCode,
53
- suggestedCode: issue.suggestedCode,
54
- lineNumbers: issue.location
55
- ? {
56
- start: issue.location.startLine,
57
- end: issue.location.endLine,
58
- }
59
- : undefined,
60
- };
61
-
62
- // Add to the appropriate array based on priority
63
- if (suggestion.priority === FixPriority.HIGH) {
64
- highPrioritySuggestions.push(suggestion);
65
- } else if (suggestion.priority === FixPriority.MEDIUM) {
66
- mediumPrioritySuggestions.push(suggestion);
67
- } else {
68
- lowPrioritySuggestions.push(suggestion);
69
- }
70
- });
71
- });
72
-
73
- const totalSuggestions =
74
- highPrioritySuggestions.length +
75
- mediumPrioritySuggestions.length +
76
- lowPrioritySuggestions.length;
77
-
78
- return {
79
- highPrioritySuggestions,
80
- mediumPrioritySuggestions,
81
- lowPrioritySuggestions,
82
- totalSuggestions,
83
- };
84
- }
85
- // Fall back to the original extraction method if parsing fails
86
- logger.info('Using legacy format for review results (no structured schema detected)');
87
-
88
- // Extract all suggestions
89
- const highPrioritySuggestions = await extractFixSuggestions(
90
- reviewContent,
91
- projectPath,
92
- FixPriority.HIGH,
93
- );
94
- const mediumPrioritySuggestions = await extractFixSuggestions(
95
- reviewContent,
96
- projectPath,
97
- FixPriority.MEDIUM,
98
- );
99
- const lowPrioritySuggestions = await extractFixSuggestions(
100
- reviewContent,
101
- projectPath,
102
- FixPriority.LOW,
103
- );
104
-
105
- const totalSuggestions =
106
- highPrioritySuggestions.length +
107
- mediumPrioritySuggestions.length +
108
- lowPrioritySuggestions.length;
109
-
110
- // Display summary of all suggestions
111
- logger.info('\n=== CODE REVIEW RECOMMENDATIONS ===');
112
- logger.info(`Total issues found: ${totalSuggestions}`);
113
- logger.info(`🟥 High priority: ${highPrioritySuggestions.length}`);
114
- logger.info(`🟧 Medium priority: ${mediumPrioritySuggestions.length}`);
115
- logger.info(`🟩 Low priority: ${lowPrioritySuggestions.length}`);
116
-
117
- // Display instructions for interactive mode
118
- logger.info('\nShowing ALL issues by default. To filter by priority, use these options:');
119
- logger.info(' (h) High priority issues only');
120
- logger.info(' (m) Medium priority issues only');
121
- logger.info(' (l) Low priority issues only');
122
- logger.info(' (a) All issues (default)');
123
- logger.info('\nExample: cr-aia src --interactive h');
124
-
125
- // Display suggestions based on priority filter
126
- // If no filter is provided, show all issues by default
127
- if (!priorityFilter || priorityFilter.toLowerCase() === 'a') {
128
- // Show all issues
129
- displayFixSuggestions(highPrioritySuggestions, FixPriority.HIGH);
130
- displayFixSuggestions(mediumPrioritySuggestions, FixPriority.MEDIUM);
131
- displayFixSuggestions(lowPrioritySuggestions, FixPriority.LOW);
132
- } else {
133
- // Show issues based on the specified filter
134
- switch (priorityFilter.toLowerCase()) {
135
- case 'h':
136
- displayFixSuggestions(highPrioritySuggestions, FixPriority.HIGH);
137
- break;
138
- case 'm':
139
- displayFixSuggestions(mediumPrioritySuggestions, FixPriority.MEDIUM);
140
- break;
141
- case 'l':
142
- displayFixSuggestions(lowPrioritySuggestions, FixPriority.LOW);
143
- break;
144
- default:
145
- logger.warn('Invalid priority filter. Use h, m, l, or a.');
146
- // Show all issues if the filter is invalid
147
- displayFixSuggestions(highPrioritySuggestions, FixPriority.HIGH);
148
- displayFixSuggestions(mediumPrioritySuggestions, FixPriority.MEDIUM);
149
- displayFixSuggestions(lowPrioritySuggestions, FixPriority.LOW);
150
- }
151
- }
152
-
153
- return {
154
- highPrioritySuggestions,
155
- mediumPrioritySuggestions,
156
- lowPrioritySuggestions,
157
- totalSuggestions,
158
- };
159
- }
160
-
161
- /**
162
- * Process review results and implement fixes
163
- * @param reviewContent Content of the review
164
- * @param projectPath Base path of the project
165
- * @param autoImplementHighPriority Whether to automatically implement high priority fixes
166
- * @param promptForMediumLow Whether to prompt for confirmation on medium and low priority fixes
167
- * @returns Summary of actions taken
168
- */
169
- export async function processReviewResults(
170
- reviewContent: string,
171
- projectPath: string,
172
- autoImplementHighPriority = true,
173
- promptForMediumLow = true,
174
- ): Promise<FixSummary> {
175
- // Initialize counters
176
- let highPriorityFixed = 0;
177
- let mediumPriorityFixed = 0;
178
- let lowPriorityFixed = 0;
179
- let totalSuggestions = 0;
180
-
181
- // Process high priority suggestions
182
- console.log('\nExtracting high priority issues...');
183
- const highPrioritySuggestions = await extractFixSuggestions(
184
- reviewContent,
185
- projectPath,
186
- FixPriority.HIGH,
187
- );
188
- totalSuggestions += highPrioritySuggestions.length;
189
-
190
- if (highPrioritySuggestions.length > 0) {
191
- console.log(`Found ${highPrioritySuggestions.length} high priority issues.`);
192
-
193
- if (autoImplementHighPriority) {
194
- console.log('Automatically implementing high priority fixes...');
195
-
196
- for (const suggestion of highPrioritySuggestions) {
197
- console.log(`\nImplementing fix for: ${suggestion.description}`);
198
- console.log(`File: ${suggestion.file}`);
199
-
200
- const success = await applyFixToFile(suggestion);
201
- if (success) {
202
- console.log('✅ Fix applied successfully.');
203
- highPriorityFixed++;
204
- } else {
205
- console.log('❌ Could not apply fix automatically.');
206
- }
207
- }
208
- } else {
209
- console.log('Skipping high priority fixes as auto-implementation is disabled.');
210
- }
211
- } else {
212
- console.log('No high priority issues found.');
213
- }
214
-
215
- // Process medium priority suggestions
216
- console.log('\nExtracting medium priority issues...');
217
- const mediumPrioritySuggestions = await extractFixSuggestions(
218
- reviewContent,
219
- projectPath,
220
- FixPriority.MEDIUM,
221
- );
222
- totalSuggestions += mediumPrioritySuggestions.length;
223
-
224
- if (mediumPrioritySuggestions.length > 0) {
225
- console.log(`Found ${mediumPrioritySuggestions.length} medium priority issues.`);
226
-
227
- if (promptForMediumLow) {
228
- for (const suggestion of mediumPrioritySuggestions) {
229
- displayDetailedFixSuggestion(suggestion, 0, FixPriority.MEDIUM);
230
-
231
- const shouldImplement = await promptForConfirmation('Implement this fix?');
232
- if (shouldImplement) {
233
- const success = await applyFixToFile(suggestion);
234
- if (success) {
235
- console.log('✅ Fix applied successfully.');
236
- mediumPriorityFixed++;
237
- } else {
238
- console.log('❌ Could not apply fix automatically.');
239
- }
240
- } else {
241
- console.log('Skipping this fix.');
242
- }
243
- }
244
- } else {
245
- console.log('Skipping medium priority fixes as prompting is disabled.');
246
- }
247
- } else {
248
- console.log('No medium priority issues found.');
249
- }
250
-
251
- // Process low priority suggestions
252
- console.log('\nExtracting low priority issues...');
253
- const lowPrioritySuggestions = await extractFixSuggestions(
254
- reviewContent,
255
- projectPath,
256
- FixPriority.LOW,
257
- );
258
- totalSuggestions += lowPrioritySuggestions.length;
259
-
260
- if (lowPrioritySuggestions.length > 0) {
261
- console.log(`Found ${lowPrioritySuggestions.length} low priority issues.`);
262
-
263
- if (promptForMediumLow) {
264
- for (const suggestion of lowPrioritySuggestions) {
265
- displayDetailedFixSuggestion(suggestion, 0, FixPriority.LOW);
266
-
267
- const shouldImplement = await promptForConfirmation('Implement this fix?');
268
- if (shouldImplement) {
269
- const success = await applyFixToFile(suggestion);
270
- if (success) {
271
- console.log('✅ Fix applied successfully.');
272
- lowPriorityFixed++;
273
- } else {
274
- console.log('❌ Could not apply fix automatically.');
275
- }
276
- } else {
277
- console.log('Skipping this fix.');
278
- }
279
- }
280
- } else {
281
- console.log('Skipping low priority fixes as prompting is disabled.');
282
- }
283
- } else {
284
- console.log('No low priority issues found.');
285
- }
286
-
287
- // Return summary
288
- return {
289
- highPriorityFixed,
290
- mediumPriorityFixed,
291
- lowPriorityFixed,
292
- totalSuggestions,
293
- };
294
- }
@@ -1,296 +0,0 @@
1
- /**
2
- * @fileoverview Progress tracker for multi-pass reviews.
3
- *
4
- * This module provides utilities for tracking and displaying progress
5
- * during multi-pass reviews.
6
- */
7
-
8
- import readline from 'node:readline';
9
- import logger from '../logger';
10
-
11
- /**
12
- * Progress state for a multi-pass review
13
- */
14
- export interface MultiPassProgress {
15
- /** Total number of passes */
16
- totalPasses: number;
17
- /** Current pass number */
18
- currentPass: number;
19
- /** Files being processed in the current pass */
20
- currentFiles: string[];
21
- /** Total number of files */
22
- totalFiles: number;
23
- /** Number of files processed so far */
24
- processedFiles: number;
25
- /** Start time of the review */
26
- startTime: Date;
27
- /** Estimated completion time */
28
- estimatedCompletionTime?: Date;
29
- /** Whether the review is complete */
30
- isComplete: boolean;
31
- /** Current phase of the review */
32
- currentPhase:
33
- | 'preparing'
34
- | 'analyzing'
35
- | 'reviewing'
36
- | 'processing'
37
- | 'consolidating'
38
- | 'complete';
39
- }
40
-
41
- /**
42
- * Progress tracker for multi-pass reviews
43
- */
44
- export class MultiPassProgressTracker {
45
- private progress: MultiPassProgress;
46
- private updateInterval: NodeJS.Timeout | null = null;
47
- private useAnsiEscapes: boolean;
48
- private completedFiles: string[] = [];
49
-
50
- /**
51
- * Create a new progress tracker
52
- * @param totalPasses Total number of passes
53
- * @param totalFiles Total number of files
54
- * @param options Options for the progress tracker
55
- */
56
- constructor(
57
- totalPasses = 1,
58
- totalFiles = 0,
59
- options: {
60
- useAnsiEscapes?: boolean;
61
- quiet?: boolean;
62
- } = {},
63
- ) {
64
- this.progress = {
65
- totalPasses,
66
- currentPass: 0,
67
- currentFiles: [],
68
- totalFiles,
69
- processedFiles: 0,
70
- startTime: new Date(),
71
- isComplete: false,
72
- currentPhase: 'preparing',
73
- };
74
-
75
- this.useAnsiEscapes = options.useAnsiEscapes !== false;
76
-
77
- // Start the progress update interval if not in quiet mode
78
- if (!options.quiet) {
79
- this.startProgressUpdates();
80
- }
81
- }
82
-
83
- /**
84
- * Initialize the progress tracker with a total file count
85
- * @param totalFiles Total number of files
86
- */
87
- public initialize(totalFiles: number): void {
88
- this.progress.totalFiles = totalFiles;
89
- logger.info(`Initialized progress tracker with ${totalFiles} total files`);
90
- }
91
-
92
- /**
93
- * Start the progress update interval
94
- */
95
- private startProgressUpdates(): void {
96
- // Update the progress display every 1 second
97
- this.updateInterval = setInterval(() => {
98
- this.updateProgressDisplay();
99
- }, 1000);
100
- }
101
-
102
- /**
103
- * Stop the progress update interval
104
- */
105
- public stopProgressUpdates(): void {
106
- if (this.updateInterval) {
107
- clearInterval(this.updateInterval);
108
- this.updateInterval = null;
109
- }
110
- }
111
-
112
- /**
113
- * Update the progress display
114
- */
115
- private updateProgressDisplay(): void {
116
- if (this.progress.isComplete) {
117
- return;
118
- }
119
-
120
- const { currentPass, totalPasses, currentPhase, startTime } = this.progress;
121
-
122
- // Calculate elapsed time
123
- const elapsed = Math.floor((Date.now() - startTime.getTime()) / 1000);
124
- const elapsedMinutes = Math.floor(elapsed / 60);
125
- const elapsedSeconds = elapsed % 60;
126
-
127
- // Clear the previous line if terminal supports ANSI escapes
128
- if (this.useAnsiEscapes) {
129
- readline.clearLine(process.stdout, 0);
130
- readline.cursorTo(process.stdout, 0);
131
- }
132
-
133
- // Create the progress message
134
- let progressMessage = '';
135
-
136
- if (currentPhase === 'preparing') {
137
- progressMessage = `Preparing multi-pass review...`;
138
- } else if (currentPhase === 'analyzing') {
139
- progressMessage = `Analyzing files for multi-pass review...`;
140
- } else if (currentPhase === 'reviewing') {
141
- const passProgress = (currentPass / totalPasses) * 100;
142
- progressMessage = `Pass ${currentPass}/${totalPasses} (${passProgress.toFixed(1)}%)`;
143
-
144
- if (this.progress.currentFiles.length > 0) {
145
- const fileNames = this.progress.currentFiles.map((f) => f.split('/').pop()).join(', ');
146
- progressMessage += ` | Processing: ${fileNames.length > 50 ? `${fileNames.substring(0, 50)}...` : fileNames}`;
147
- }
148
- } else if (currentPhase === 'processing') {
149
- progressMessage = `Processing results...`;
150
- } else if (currentPhase === 'consolidating') {
151
- progressMessage = `Consolidating multi-pass review and generating final graded report...`;
152
- }
153
-
154
- // Add timing information
155
- progressMessage += ` | Elapsed: ${elapsedMinutes}m ${elapsedSeconds}s`;
156
-
157
- // Print the progress message without a newline if terminal supports ANSI escapes
158
- if (this.useAnsiEscapes) {
159
- process.stdout.write(progressMessage);
160
- } else {
161
- // Otherwise, just log the progress
162
- logger.info(progressMessage);
163
- }
164
- }
165
-
166
- /**
167
- * Start a new pass
168
- * @param passNumber Pass number
169
- * @param files Files being processed in this pass
170
- */
171
- public startPass(passNumber: number, files: string[]): void {
172
- this.progress.currentPass = passNumber;
173
- this.progress.currentFiles = files;
174
- this.progress.currentPhase = 'reviewing';
175
-
176
- // Log the start of a new pass (with a newline to avoid overwriting the progress bar)
177
- if (this.useAnsiEscapes) {
178
- process.stdout.write('\n');
179
- }
180
-
181
- logger.info(
182
- `Starting pass ${passNumber}/${this.progress.totalPasses} with ${files.length} files`,
183
- );
184
- }
185
-
186
- /**
187
- * Complete a pass
188
- * @param passNumber Pass number
189
- */
190
- public completePass(passNumber: number): void {
191
- if (passNumber !== this.progress.currentPass) {
192
- logger.warn(`Completed pass ${passNumber} but current pass is ${this.progress.currentPass}`);
193
- }
194
-
195
- this.progress.processedFiles += this.progress.currentFiles.length;
196
- this.progress.currentFiles = [];
197
-
198
- // Log the completion of a pass (with a newline to avoid overwriting the progress bar)
199
- if (this.useAnsiEscapes) {
200
- process.stdout.write('\n');
201
- }
202
-
203
- logger.info(`Completed pass ${passNumber}/${this.progress.totalPasses}`);
204
-
205
- // If this was the last pass, mark the review as complete
206
- if (passNumber === this.progress.totalPasses) {
207
- this.complete();
208
- }
209
- }
210
-
211
- /**
212
- * Set the current phase
213
- * @param phase Current phase
214
- */
215
- public setPhase(phase: MultiPassProgress['currentPhase']): void {
216
- this.progress.currentPhase = phase;
217
-
218
- if (phase === 'complete') {
219
- this.complete();
220
- }
221
- }
222
-
223
- /**
224
- * Complete the review
225
- */
226
- public complete(): void {
227
- this.progress.isComplete = true;
228
- this.progress.currentPhase = 'complete';
229
-
230
- // Calculate total time
231
- const elapsed = Math.floor((Date.now() - this.progress.startTime.getTime()) / 1000);
232
- const elapsedMinutes = Math.floor(elapsed / 60);
233
- const elapsedSeconds = elapsed % 60;
234
-
235
- // Clear the progress bar
236
- if (this.useAnsiEscapes) {
237
- readline.clearLine(process.stdout, 0);
238
- readline.cursorTo(process.stdout, 0);
239
- }
240
-
241
- // Log the completion message
242
- logger.info(`Multi-pass review completed in ${elapsedMinutes}m ${elapsedSeconds}s`);
243
-
244
- // Stop the progress updates
245
- this.stopProgressUpdates();
246
- }
247
-
248
- /**
249
- * Mark a file as completed
250
- * @param filePath Path to the file that was completed
251
- */
252
- public completeFile(filePath: string): void {
253
- // Add to completed files list
254
- if (!this.completedFiles.includes(filePath)) {
255
- this.completedFiles.push(filePath);
256
- }
257
-
258
- // Remove from current files if it's there
259
- const fileIndex = this.progress.currentFiles.indexOf(filePath);
260
- if (fileIndex !== -1) {
261
- this.progress.currentFiles.splice(fileIndex, 1);
262
- }
263
-
264
- // Update processed files count
265
- const progressPercent = (this.completedFiles.length / this.progress.totalFiles) * 100;
266
- logger.debug(`File completed: ${filePath} (${progressPercent.toFixed(1)}% complete)`);
267
- }
268
-
269
- /**
270
- * Get the current progress
271
- * @returns Current progress state
272
- */
273
- public getProgress(): MultiPassProgress {
274
- return { ...this.progress };
275
- }
276
-
277
- /**
278
- * Get the full state including completed files
279
- * @returns Full state object
280
- */
281
- public getState(): {
282
- progressData: MultiPassProgress;
283
- completedFiles: string[];
284
- progress: number;
285
- completed: boolean;
286
- currentPass: number;
287
- } {
288
- return {
289
- progressData: this.getProgress(),
290
- completedFiles: [...this.completedFiles],
291
- progress: this.completedFiles.length / this.progress.totalFiles,
292
- completed: this.progress.isComplete,
293
- currentPass: this.progress.currentPass,
294
- };
295
- }
296
- }