codereview-aia 0.1.0 → 0.1.2

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 (422) 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/dist/analysis/context/index.d.ts +6 -0
  26. package/dist/analysis/context/index.js +23 -0
  27. package/dist/analysis/context/index.js.map +1 -0
  28. package/dist/analysis/index.d.ts +7 -0
  29. package/dist/analysis/index.js +24 -0
  30. package/dist/analysis/index.js.map +1 -0
  31. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +27 -0
  32. package/dist/analysis/tokens/TokenAnalysisFormatter.js +143 -0
  33. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +1 -0
  34. package/dist/analysis/tokens/TokenAnalyzer.d.ts +155 -0
  35. package/dist/analysis/tokens/TokenAnalyzer.js +502 -0
  36. package/dist/analysis/tokens/TokenAnalyzer.js.map +1 -0
  37. package/dist/analysis/tokens/index.d.ts +7 -0
  38. package/dist/analysis/tokens/index.js +24 -0
  39. package/dist/analysis/tokens/index.js.map +1 -0
  40. package/dist/clients/base/abstractClient.d.ts +99 -0
  41. package/dist/clients/base/abstractClient.js +98 -0
  42. package/dist/clients/base/abstractClient.js.map +1 -0
  43. package/dist/clients/base/httpClient.d.ts +24 -0
  44. package/dist/clients/base/httpClient.js +147 -0
  45. package/dist/clients/base/httpClient.js.map +1 -0
  46. package/dist/clients/base/index.d.ts +11 -0
  47. package/dist/clients/base/index.js +28 -0
  48. package/dist/clients/base/index.js.map +1 -0
  49. package/dist/clients/base/modelDetection.d.ts +41 -0
  50. package/dist/clients/base/modelDetection.js +88 -0
  51. package/dist/clients/base/modelDetection.js.map +1 -0
  52. package/dist/clients/base/responseProcessor.d.ts +45 -0
  53. package/dist/clients/base/responseProcessor.js +495 -0
  54. package/dist/clients/base/responseProcessor.js.map +1 -0
  55. package/dist/clients/factory/clientFactory.d.ts +23 -0
  56. package/dist/clients/factory/clientFactory.js +50 -0
  57. package/dist/clients/factory/clientFactory.js.map +1 -0
  58. package/dist/clients/factory/index.d.ts +7 -0
  59. package/dist/clients/factory/index.js +24 -0
  60. package/dist/clients/factory/index.js.map +1 -0
  61. package/dist/clients/implementations/index.d.ts +7 -0
  62. package/dist/clients/implementations/index.js +24 -0
  63. package/dist/clients/implementations/index.js.map +1 -0
  64. package/dist/clients/implementations/openRouterClient.d.ts +69 -0
  65. package/dist/clients/implementations/openRouterClient.js +294 -0
  66. package/dist/clients/implementations/openRouterClient.js.map +1 -0
  67. package/dist/clients/openRouterClient.d.ts +42 -0
  68. package/dist/clients/openRouterClient.js +738 -0
  69. package/dist/clients/openRouterClient.js.map +1 -0
  70. package/dist/clients/openRouterClientWrapper.d.ts +22 -0
  71. package/dist/clients/openRouterClientWrapper.js +64 -0
  72. package/dist/clients/openRouterClientWrapper.js.map +1 -0
  73. package/dist/clients/utils/directoryStructure.d.ts +14 -0
  74. package/dist/clients/utils/directoryStructure.js +48 -0
  75. package/dist/clients/utils/directoryStructure.js.map +1 -0
  76. package/dist/clients/utils/index.d.ts +10 -0
  77. package/dist/clients/utils/index.js +31 -0
  78. package/dist/clients/utils/index.js.map +1 -0
  79. package/dist/clients/utils/languageDetection.d.ts +13 -0
  80. package/dist/clients/utils/languageDetection.js +46 -0
  81. package/dist/clients/utils/languageDetection.js.map +1 -0
  82. package/dist/clients/utils/promptFormatter.d.ts +36 -0
  83. package/dist/clients/utils/promptFormatter.js +92 -0
  84. package/dist/clients/utils/promptFormatter.js.map +1 -0
  85. package/dist/clients/utils/promptLoader.d.ts +27 -0
  86. package/dist/clients/utils/promptLoader.js +49 -0
  87. package/dist/clients/utils/promptLoader.js.map +1 -0
  88. package/dist/clients/utils/tokenCounter.d.ts +81 -0
  89. package/dist/clients/utils/tokenCounter.js +209 -0
  90. package/dist/clients/utils/tokenCounter.js.map +1 -0
  91. package/dist/core/ApiClientSelector.d.ts +8 -0
  92. package/dist/core/ApiClientSelector.js +29 -0
  93. package/dist/core/ApiClientSelector.js.map +1 -0
  94. package/dist/core/ConfigurationService.d.ts +286 -0
  95. package/dist/core/ConfigurationService.js +477 -0
  96. package/dist/core/ConfigurationService.js.map +1 -0
  97. package/dist/core/ConsolidationService.d.ts +99 -0
  98. package/dist/core/ConsolidationService.js +341 -0
  99. package/dist/core/ConsolidationService.js.map +1 -0
  100. package/dist/core/InteractiveDisplayManager.d.ts +22 -0
  101. package/dist/core/InteractiveDisplayManager.js +70 -0
  102. package/dist/core/InteractiveDisplayManager.js.map +1 -0
  103. package/dist/core/OutputManager.d.ts +26 -0
  104. package/dist/core/OutputManager.js +217 -0
  105. package/dist/core/OutputManager.js.map +1 -0
  106. package/dist/core/ReviewGenerator.d.ts +13 -0
  107. package/dist/core/ReviewGenerator.js +102 -0
  108. package/dist/core/ReviewGenerator.js.map +1 -0
  109. package/dist/core/fileDiscovery.d.ts +35 -0
  110. package/dist/core/fileDiscovery.js +202 -0
  111. package/dist/core/fileDiscovery.js.map +1 -0
  112. package/dist/core/handlers/EstimationHandler.d.ts +18 -0
  113. package/dist/core/handlers/EstimationHandler.js +110 -0
  114. package/dist/core/handlers/EstimationHandler.js.map +1 -0
  115. package/dist/core/handlers/FileProcessingHandler.d.ts +31 -0
  116. package/dist/core/handlers/FileProcessingHandler.js +159 -0
  117. package/dist/core/handlers/FileProcessingHandler.js.map +1 -0
  118. package/dist/core/handlers/OutputHandler.d.ts +27 -0
  119. package/dist/core/handlers/OutputHandler.js +127 -0
  120. package/dist/core/handlers/OutputHandler.js.map +1 -0
  121. package/dist/core/handlers/ReviewExecutor.d.ts +32 -0
  122. package/dist/core/handlers/ReviewExecutor.js +111 -0
  123. package/dist/core/handlers/ReviewExecutor.js.map +1 -0
  124. package/dist/core/reviewOrchestrator.d.ts +24 -0
  125. package/dist/core/reviewOrchestrator.js +294 -0
  126. package/dist/core/reviewOrchestrator.js.map +1 -0
  127. package/dist/core/utils/ModelInfoUtils.d.ts +16 -0
  128. package/dist/core/utils/ModelInfoUtils.js +54 -0
  129. package/dist/core/utils/ModelInfoUtils.js.map +1 -0
  130. package/dist/formatters/outputFormatter.d.ts +31 -0
  131. package/dist/formatters/outputFormatter.js +65 -0
  132. package/dist/formatters/outputFormatter.js.map +1 -0
  133. package/dist/formatters/utils/IssueFormatters.d.ts +20 -0
  134. package/dist/formatters/utils/IssueFormatters.js +67 -0
  135. package/dist/formatters/utils/IssueFormatters.js.map +1 -0
  136. package/dist/formatters/utils/JsonFormatter.d.ts +13 -0
  137. package/dist/formatters/utils/JsonFormatter.js +57 -0
  138. package/dist/formatters/utils/JsonFormatter.js.map +1 -0
  139. package/dist/formatters/utils/MarkdownFormatters.d.ts +51 -0
  140. package/dist/formatters/utils/MarkdownFormatters.js +456 -0
  141. package/dist/formatters/utils/MarkdownFormatters.js.map +1 -0
  142. package/dist/formatters/utils/MetadataFormatter.d.ts +65 -0
  143. package/dist/formatters/utils/MetadataFormatter.js +219 -0
  144. package/dist/formatters/utils/MetadataFormatter.js.map +1 -0
  145. package/dist/formatters/utils/ModelInfoExtractor.d.ts +33 -0
  146. package/dist/formatters/utils/ModelInfoExtractor.js +111 -0
  147. package/dist/formatters/utils/ModelInfoExtractor.js.map +1 -0
  148. package/dist/index.d.ts +2 -0
  149. package/dist/index.js +1 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/plugins/PluginInterface.d.ts +44 -0
  152. package/dist/plugins/PluginInterface.js +9 -0
  153. package/dist/plugins/PluginInterface.js.map +1 -0
  154. package/dist/plugins/PluginManager.d.ts +51 -0
  155. package/dist/plugins/PluginManager.js +151 -0
  156. package/dist/plugins/PluginManager.js.map +1 -0
  157. package/dist/prompts/PromptManager.d.ts +30 -0
  158. package/dist/prompts/PromptManager.js +62 -0
  159. package/dist/prompts/PromptManager.js.map +1 -0
  160. package/dist/prompts/cache/PromptCache.d.ts +32 -0
  161. package/dist/prompts/cache/PromptCache.js +48 -0
  162. package/dist/prompts/cache/PromptCache.js.map +1 -0
  163. package/dist/runtime/auth/service.d.ts +2 -0
  164. package/dist/runtime/auth/service.js +41 -0
  165. package/dist/runtime/auth/service.js.map +1 -0
  166. package/dist/runtime/auth/session.d.ts +5 -0
  167. package/dist/runtime/auth/session.js +87 -0
  168. package/dist/runtime/auth/session.js.map +1 -0
  169. package/dist/runtime/auth/types.d.ts +9 -0
  170. package/dist/runtime/auth/types.js +3 -0
  171. package/dist/runtime/auth/types.js.map +1 -0
  172. package/dist/runtime/cliEntry.d.ts +1 -0
  173. package/dist/runtime/cliEntry.js +213 -0
  174. package/dist/runtime/cliEntry.js.map +1 -0
  175. package/dist/runtime/debug/logManager.d.ts +5 -0
  176. package/dist/runtime/debug/logManager.js +31 -0
  177. package/dist/runtime/debug/logManager.js.map +1 -0
  178. package/dist/runtime/errors.d.ts +5 -0
  179. package/dist/runtime/errors.js +15 -0
  180. package/dist/runtime/errors.js.map +1 -0
  181. package/dist/runtime/fileCollector.d.ts +5 -0
  182. package/dist/runtime/fileCollector.js +167 -0
  183. package/dist/runtime/fileCollector.js.map +1 -0
  184. package/dist/runtime/manifest.d.ts +1 -0
  185. package/dist/runtime/manifest.js +65 -0
  186. package/dist/runtime/manifest.js.map +1 -0
  187. package/dist/runtime/openrouterProxy.d.ts +4 -0
  188. package/dist/runtime/openrouterProxy.js +43 -0
  189. package/dist/runtime/openrouterProxy.js.map +1 -0
  190. package/dist/runtime/preprod/webCheck.d.ts +1 -0
  191. package/dist/runtime/preprod/webCheck.js +98 -0
  192. package/dist/runtime/preprod/webCheck.js.map +1 -0
  193. package/dist/runtime/proxyConfig.d.ts +6 -0
  194. package/dist/runtime/proxyConfig.js +86 -0
  195. package/dist/runtime/proxyConfig.js.map +1 -0
  196. package/dist/runtime/proxyEnvironment.d.ts +3 -0
  197. package/dist/runtime/proxyEnvironment.js +63 -0
  198. package/dist/runtime/proxyEnvironment.js.map +1 -0
  199. package/dist/runtime/reportMerge.d.ts +30 -0
  200. package/dist/runtime/reportMerge.js +70 -0
  201. package/dist/runtime/reportMerge.js.map +1 -0
  202. package/dist/runtime/reporting/markdownReportBuilder.d.ts +15 -0
  203. package/dist/runtime/reporting/markdownReportBuilder.js +97 -0
  204. package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
  205. package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
  206. package/dist/runtime/reporting/reportDataCollector.js +170 -0
  207. package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
  208. package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
  209. package/dist/runtime/reporting/summaryGenerator.js +67 -0
  210. package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
  211. package/dist/runtime/reviewPipeline.d.ts +28 -0
  212. package/dist/runtime/reviewPipeline.js +122 -0
  213. package/dist/runtime/reviewPipeline.js.map +1 -0
  214. package/dist/runtime/runAiCodeReview.d.ts +10 -0
  215. package/dist/runtime/runAiCodeReview.js +138 -0
  216. package/dist/runtime/runAiCodeReview.js.map +1 -0
  217. package/dist/runtime/runtimeConfig.d.ts +4 -0
  218. package/dist/runtime/runtimeConfig.js +7 -0
  219. package/dist/runtime/runtimeConfig.js.map +1 -0
  220. package/dist/runtime/ui/Layout.d.ts +11 -0
  221. package/dist/runtime/ui/Layout.js +47 -0
  222. package/dist/runtime/ui/Layout.js.map +1 -0
  223. package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
  224. package/dist/runtime/ui/RuntimeApp.js +161 -0
  225. package/dist/runtime/ui/RuntimeApp.js.map +1 -0
  226. package/dist/runtime/ui/inkModules.d.ts +10 -0
  227. package/dist/runtime/ui/inkModules.js +63 -0
  228. package/dist/runtime/ui/inkModules.js.map +1 -0
  229. package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
  230. package/dist/runtime/ui/screens/AuthScreen.js +67 -0
  231. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
  232. package/dist/runtime/ui/screens/ModeSelection.d.ts +10 -0
  233. package/dist/runtime/ui/screens/ModeSelection.js +100 -0
  234. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
  235. package/dist/runtime/ui/screens/ProgressScreen.d.ts +7 -0
  236. package/dist/runtime/ui/screens/ProgressScreen.js +38 -0
  237. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
  238. package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
  239. package/dist/runtime/ui/screens/ResultsScreen.js +22 -0
  240. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
  241. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
  242. package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
  243. package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
  244. package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
  245. package/dist/strategies/CodingTestReviewStrategy.js +681 -0
  246. package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
  247. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
  248. package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
  249. package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
  250. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
  251. package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
  252. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
  253. package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
  254. package/dist/strategies/MultiPassReviewStrategy.js +590 -0
  255. package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
  256. package/dist/strategies/ReviewStrategy.d.ts +45 -0
  257. package/dist/strategies/ReviewStrategy.js +24 -0
  258. package/dist/strategies/ReviewStrategy.js.map +1 -0
  259. package/dist/strategies/StrategyFactory.d.ts +19 -0
  260. package/dist/strategies/StrategyFactory.js +72 -0
  261. package/dist/strategies/StrategyFactory.js.map +1 -0
  262. package/dist/strategies/index.d.ts +13 -0
  263. package/dist/strategies/index.js +30 -0
  264. package/dist/strategies/index.js.map +1 -0
  265. package/dist/tokenizers/baseTokenizer.d.ts +25 -0
  266. package/dist/tokenizers/baseTokenizer.js +48 -0
  267. package/dist/tokenizers/baseTokenizer.js.map +1 -0
  268. package/dist/tokenizers/gptTokenizer.d.ts +7 -0
  269. package/dist/tokenizers/gptTokenizer.js +28 -0
  270. package/dist/tokenizers/gptTokenizer.js.map +1 -0
  271. package/dist/tokenizers/index.d.ts +7 -0
  272. package/dist/tokenizers/index.js +24 -0
  273. package/dist/tokenizers/index.js.map +1 -0
  274. package/dist/types/apiResponses.d.ts +39 -0
  275. package/dist/types/apiResponses.js +9 -0
  276. package/dist/types/apiResponses.js.map +1 -0
  277. package/dist/types/cli.d.ts +22 -0
  278. package/dist/types/cli.js +3 -0
  279. package/dist/types/cli.js.map +1 -0
  280. package/dist/types/common.d.ts +22 -0
  281. package/dist/types/common.js +14 -0
  282. package/dist/types/common.js.map +1 -0
  283. package/dist/types/configuration.d.ts +682 -0
  284. package/dist/types/configuration.js +65 -0
  285. package/dist/types/configuration.js.map +1 -0
  286. package/dist/types/review.d.ts +258 -0
  287. package/dist/types/review.js +8 -0
  288. package/dist/types/review.js.map +1 -0
  289. package/dist/types/reviewSchema.d.ts +543 -0
  290. package/dist/types/reviewSchema.js +121 -0
  291. package/dist/types/reviewSchema.js.map +1 -0
  292. package/dist/types/structuredReview.d.ts +119 -0
  293. package/dist/types/structuredReview.js +6 -0
  294. package/dist/types/structuredReview.js.map +1 -0
  295. package/dist/types/tokenAnalysis.d.ts +44 -0
  296. package/dist/types/tokenAnalysis.js +4 -0
  297. package/dist/types/tokenAnalysis.js.map +1 -0
  298. package/dist/utils/FileReader.d.ts +33 -0
  299. package/dist/utils/FileReader.js +88 -0
  300. package/dist/utils/FileReader.js.map +1 -0
  301. package/dist/utils/FileWriter.d.ts +26 -0
  302. package/dist/utils/FileWriter.js +76 -0
  303. package/dist/utils/FileWriter.js.map +1 -0
  304. package/dist/utils/PathGenerator.d.ts +30 -0
  305. package/dist/utils/PathGenerator.js +82 -0
  306. package/dist/utils/PathGenerator.js.map +1 -0
  307. package/dist/utils/api/apiUtils.d.ts +3 -0
  308. package/dist/utils/api/apiUtils.js +20 -0
  309. package/dist/utils/api/apiUtils.js.map +1 -0
  310. package/dist/utils/api/index.d.ts +1 -0
  311. package/dist/utils/api/index.js +18 -0
  312. package/dist/utils/api/index.js.map +1 -0
  313. package/dist/utils/apiErrorHandler.d.ts +130 -0
  314. package/dist/utils/apiErrorHandler.js +256 -0
  315. package/dist/utils/apiErrorHandler.js.map +1 -0
  316. package/dist/utils/ciDataCollector.d.ts +51 -0
  317. package/dist/utils/ciDataCollector.js +197 -0
  318. package/dist/utils/ciDataCollector.js.map +1 -0
  319. package/dist/utils/codingTestConfigLoader.d.ts +66 -0
  320. package/dist/utils/codingTestConfigLoader.js +420 -0
  321. package/dist/utils/codingTestConfigLoader.js.map +1 -0
  322. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
  323. package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
  324. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
  325. package/dist/utils/detection/frameworkDetector.d.ts +43 -0
  326. package/dist/utils/detection/frameworkDetector.js +795 -0
  327. package/dist/utils/detection/frameworkDetector.js.map +1 -0
  328. package/dist/utils/detection/index.d.ts +9 -0
  329. package/dist/utils/detection/index.js +28 -0
  330. package/dist/utils/detection/index.js.map +1 -0
  331. package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
  332. package/dist/utils/detection/projectTypeDetector.js +469 -0
  333. package/dist/utils/detection/projectTypeDetector.js.map +1 -0
  334. package/dist/utils/diagramGenerator.d.ts +49 -0
  335. package/dist/utils/diagramGenerator.js +218 -0
  336. package/dist/utils/diagramGenerator.js.map +1 -0
  337. package/dist/utils/errorLogger.d.ts +24 -0
  338. package/dist/utils/errorLogger.js +59 -0
  339. package/dist/utils/errorLogger.js.map +1 -0
  340. package/dist/utils/estimationUtils.d.ts +139 -0
  341. package/dist/utils/estimationUtils.js +329 -0
  342. package/dist/utils/estimationUtils.js.map +1 -0
  343. package/dist/utils/fileFilters.d.ts +72 -0
  344. package/dist/utils/fileFilters.js +338 -0
  345. package/dist/utils/fileFilters.js.map +1 -0
  346. package/dist/utils/fileSystem.d.ts +22 -0
  347. package/dist/utils/fileSystem.js +45 -0
  348. package/dist/utils/fileSystem.js.map +1 -0
  349. package/dist/utils/index.d.ts +22 -0
  350. package/dist/utils/index.js +52 -0
  351. package/dist/utils/index.js.map +1 -0
  352. package/dist/utils/logger.d.ts +77 -0
  353. package/dist/utils/logger.js +271 -0
  354. package/dist/utils/logger.js.map +1 -0
  355. package/dist/utils/pathValidator.d.ts +40 -0
  356. package/dist/utils/pathValidator.js +98 -0
  357. package/dist/utils/pathValidator.js.map +1 -0
  358. package/dist/utils/priorityFilter.d.ts +34 -0
  359. package/dist/utils/priorityFilter.js +54 -0
  360. package/dist/utils/priorityFilter.js.map +1 -0
  361. package/dist/utils/projectDocs.d.ts +47 -0
  362. package/dist/utils/projectDocs.js +158 -0
  363. package/dist/utils/projectDocs.js.map +1 -0
  364. package/dist/utils/promptPaths.d.ts +6 -0
  365. package/dist/utils/promptPaths.js +33 -0
  366. package/dist/utils/promptPaths.js.map +1 -0
  367. package/dist/utils/promptTemplateManager.d.ts +34 -0
  368. package/dist/utils/promptTemplateManager.js +140 -0
  369. package/dist/utils/promptTemplateManager.js.map +1 -0
  370. package/dist/utils/review/consolidateReview.d.ts +15 -0
  371. package/dist/utils/review/consolidateReview.js +481 -0
  372. package/dist/utils/review/consolidateReview.js.map +1 -0
  373. package/dist/utils/review/fixDisplay.d.ts +20 -0
  374. package/dist/utils/review/fixDisplay.js +84 -0
  375. package/dist/utils/review/fixDisplay.js.map +1 -0
  376. package/dist/utils/review/fixImplementation.d.ts +28 -0
  377. package/dist/utils/review/fixImplementation.js +60 -0
  378. package/dist/utils/review/fixImplementation.js.map +1 -0
  379. package/dist/utils/review/index.d.ts +13 -0
  380. package/dist/utils/review/index.js +50 -0
  381. package/dist/utils/review/index.js.map +1 -0
  382. package/dist/utils/review/interactiveProcessing.d.ts +25 -0
  383. package/dist/utils/review/interactiveProcessing.js +251 -0
  384. package/dist/utils/review/interactiveProcessing.js.map +1 -0
  385. package/dist/utils/review/progressTracker.d.ts +106 -0
  386. package/dist/utils/review/progressTracker.js +227 -0
  387. package/dist/utils/review/progressTracker.js.map +1 -0
  388. package/dist/utils/review/reviewExtraction.d.ts +31 -0
  389. package/dist/utils/review/reviewExtraction.js +324 -0
  390. package/dist/utils/review/reviewExtraction.js.map +1 -0
  391. package/dist/utils/review/types.d.ts +45 -0
  392. package/dist/utils/review/types.js +18 -0
  393. package/dist/utils/review/types.js.map +1 -0
  394. package/dist/utils/reviewActionHandler.d.ts +16 -0
  395. package/dist/utils/reviewActionHandler.js +34 -0
  396. package/dist/utils/reviewActionHandler.js.map +1 -0
  397. package/dist/utils/reviewParser.d.ts +34 -0
  398. package/dist/utils/reviewParser.js +218 -0
  399. package/dist/utils/reviewParser.js.map +1 -0
  400. package/dist/utils/sanitizer.d.ts +82 -0
  401. package/dist/utils/sanitizer.js +239 -0
  402. package/dist/utils/sanitizer.js.map +1 -0
  403. package/dist/utils/smartFileSelector.d.ts +50 -0
  404. package/dist/utils/smartFileSelector.js +261 -0
  405. package/dist/utils/smartFileSelector.js.map +1 -0
  406. package/dist/utils/templateLoader.d.ts +44 -0
  407. package/dist/utils/templateLoader.js +431 -0
  408. package/dist/utils/templateLoader.js.map +1 -0
  409. package/dist/utils/treeGenerator.d.ts +12 -0
  410. package/dist/utils/treeGenerator.js +133 -0
  411. package/dist/utils/treeGenerator.js.map +1 -0
  412. package/package.json +11 -12
  413. package/src/index.ts +1 -0
  414. package/src/runtime/debug/logManager.ts +37 -0
  415. package/src/runtime/fileCollector.ts +58 -24
  416. package/src/runtime/preprod/webCheck.ts +104 -0
  417. package/src/runtime/reviewPipeline.ts +10 -4
  418. package/src/runtime/ui/RuntimeApp.tsx +96 -13
  419. package/src/runtime/ui/screens/ModeSelection.tsx +148 -15
  420. package/src/runtime/ui/screens/ProgressScreen.tsx +10 -3
  421. package/src/runtime/ui/screens/ResultsScreen.tsx +8 -1
  422. package/src/utils/logger.ts +64 -14
@@ -0,0 +1,227 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Progress tracker for multi-pass reviews.
4
+ *
5
+ * This module provides utilities for tracking and displaying progress
6
+ * during multi-pass reviews.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MultiPassProgressTracker = void 0;
13
+ const node_readline_1 = __importDefault(require("node:readline"));
14
+ const logger_1 = __importDefault(require("../logger"));
15
+ /**
16
+ * Progress tracker for multi-pass reviews
17
+ */
18
+ class MultiPassProgressTracker {
19
+ progress;
20
+ updateInterval = null;
21
+ useAnsiEscapes;
22
+ completedFiles = [];
23
+ /**
24
+ * Create a new progress tracker
25
+ * @param totalPasses Total number of passes
26
+ * @param totalFiles Total number of files
27
+ * @param options Options for the progress tracker
28
+ */
29
+ constructor(totalPasses = 1, totalFiles = 0, options = {}) {
30
+ this.progress = {
31
+ totalPasses,
32
+ currentPass: 0,
33
+ currentFiles: [],
34
+ totalFiles,
35
+ processedFiles: 0,
36
+ startTime: new Date(),
37
+ isComplete: false,
38
+ currentPhase: 'preparing',
39
+ };
40
+ this.useAnsiEscapes = options.useAnsiEscapes !== false;
41
+ // Start the progress update interval if not in quiet mode
42
+ if (!options.quiet) {
43
+ this.startProgressUpdates();
44
+ }
45
+ }
46
+ /**
47
+ * Initialize the progress tracker with a total file count
48
+ * @param totalFiles Total number of files
49
+ */
50
+ initialize(totalFiles) {
51
+ this.progress.totalFiles = totalFiles;
52
+ logger_1.default.info(`Initialized progress tracker with ${totalFiles} total files`);
53
+ }
54
+ /**
55
+ * Start the progress update interval
56
+ */
57
+ startProgressUpdates() {
58
+ // Update the progress display every 1 second
59
+ this.updateInterval = setInterval(() => {
60
+ this.updateProgressDisplay();
61
+ }, 1000);
62
+ }
63
+ /**
64
+ * Stop the progress update interval
65
+ */
66
+ stopProgressUpdates() {
67
+ if (this.updateInterval) {
68
+ clearInterval(this.updateInterval);
69
+ this.updateInterval = null;
70
+ }
71
+ }
72
+ /**
73
+ * Update the progress display
74
+ */
75
+ updateProgressDisplay() {
76
+ if (this.progress.isComplete) {
77
+ return;
78
+ }
79
+ const { currentPass, totalPasses, currentPhase, startTime } = this.progress;
80
+ // Calculate elapsed time
81
+ const elapsed = Math.floor((Date.now() - startTime.getTime()) / 1000);
82
+ const elapsedMinutes = Math.floor(elapsed / 60);
83
+ const elapsedSeconds = elapsed % 60;
84
+ // Clear the previous line if terminal supports ANSI escapes
85
+ if (this.useAnsiEscapes) {
86
+ node_readline_1.default.clearLine(process.stdout, 0);
87
+ node_readline_1.default.cursorTo(process.stdout, 0);
88
+ }
89
+ // Create the progress message
90
+ let progressMessage = '';
91
+ if (currentPhase === 'preparing') {
92
+ progressMessage = `Preparing multi-pass review...`;
93
+ }
94
+ else if (currentPhase === 'analyzing') {
95
+ progressMessage = `Analyzing files for multi-pass review...`;
96
+ }
97
+ else if (currentPhase === 'reviewing') {
98
+ const passProgress = (currentPass / totalPasses) * 100;
99
+ progressMessage = `Pass ${currentPass}/${totalPasses} (${passProgress.toFixed(1)}%)`;
100
+ if (this.progress.currentFiles.length > 0) {
101
+ const fileNames = this.progress.currentFiles.map((f) => f.split('/').pop()).join(', ');
102
+ progressMessage += ` | Processing: ${fileNames.length > 50 ? `${fileNames.substring(0, 50)}...` : fileNames}`;
103
+ }
104
+ }
105
+ else if (currentPhase === 'processing') {
106
+ progressMessage = `Processing results...`;
107
+ }
108
+ else if (currentPhase === 'consolidating') {
109
+ progressMessage = `Consolidating multi-pass review and generating final graded report...`;
110
+ }
111
+ // Add timing information
112
+ progressMessage += ` | Elapsed: ${elapsedMinutes}m ${elapsedSeconds}s`;
113
+ // Print the progress message without a newline if terminal supports ANSI escapes
114
+ if (this.useAnsiEscapes) {
115
+ process.stdout.write(progressMessage);
116
+ }
117
+ else {
118
+ // Otherwise, just log the progress
119
+ logger_1.default.info(progressMessage);
120
+ }
121
+ }
122
+ /**
123
+ * Start a new pass
124
+ * @param passNumber Pass number
125
+ * @param files Files being processed in this pass
126
+ */
127
+ startPass(passNumber, files) {
128
+ this.progress.currentPass = passNumber;
129
+ this.progress.currentFiles = files;
130
+ this.progress.currentPhase = 'reviewing';
131
+ // Log the start of a new pass (with a newline to avoid overwriting the progress bar)
132
+ if (this.useAnsiEscapes) {
133
+ process.stdout.write('\n');
134
+ }
135
+ logger_1.default.info(`Starting pass ${passNumber}/${this.progress.totalPasses} with ${files.length} files`);
136
+ }
137
+ /**
138
+ * Complete a pass
139
+ * @param passNumber Pass number
140
+ */
141
+ completePass(passNumber) {
142
+ if (passNumber !== this.progress.currentPass) {
143
+ logger_1.default.warn(`Completed pass ${passNumber} but current pass is ${this.progress.currentPass}`);
144
+ }
145
+ this.progress.processedFiles += this.progress.currentFiles.length;
146
+ this.progress.currentFiles = [];
147
+ // Log the completion of a pass (with a newline to avoid overwriting the progress bar)
148
+ if (this.useAnsiEscapes) {
149
+ process.stdout.write('\n');
150
+ }
151
+ logger_1.default.info(`Completed pass ${passNumber}/${this.progress.totalPasses}`);
152
+ // If this was the last pass, mark the review as complete
153
+ if (passNumber === this.progress.totalPasses) {
154
+ this.complete();
155
+ }
156
+ }
157
+ /**
158
+ * Set the current phase
159
+ * @param phase Current phase
160
+ */
161
+ setPhase(phase) {
162
+ this.progress.currentPhase = phase;
163
+ if (phase === 'complete') {
164
+ this.complete();
165
+ }
166
+ }
167
+ /**
168
+ * Complete the review
169
+ */
170
+ complete() {
171
+ this.progress.isComplete = true;
172
+ this.progress.currentPhase = 'complete';
173
+ // Calculate total time
174
+ const elapsed = Math.floor((Date.now() - this.progress.startTime.getTime()) / 1000);
175
+ const elapsedMinutes = Math.floor(elapsed / 60);
176
+ const elapsedSeconds = elapsed % 60;
177
+ // Clear the progress bar
178
+ if (this.useAnsiEscapes) {
179
+ node_readline_1.default.clearLine(process.stdout, 0);
180
+ node_readline_1.default.cursorTo(process.stdout, 0);
181
+ }
182
+ // Log the completion message
183
+ logger_1.default.info(`Multi-pass review completed in ${elapsedMinutes}m ${elapsedSeconds}s`);
184
+ // Stop the progress updates
185
+ this.stopProgressUpdates();
186
+ }
187
+ /**
188
+ * Mark a file as completed
189
+ * @param filePath Path to the file that was completed
190
+ */
191
+ completeFile(filePath) {
192
+ // Add to completed files list
193
+ if (!this.completedFiles.includes(filePath)) {
194
+ this.completedFiles.push(filePath);
195
+ }
196
+ // Remove from current files if it's there
197
+ const fileIndex = this.progress.currentFiles.indexOf(filePath);
198
+ if (fileIndex !== -1) {
199
+ this.progress.currentFiles.splice(fileIndex, 1);
200
+ }
201
+ // Update processed files count
202
+ const progressPercent = (this.completedFiles.length / this.progress.totalFiles) * 100;
203
+ logger_1.default.debug(`File completed: ${filePath} (${progressPercent.toFixed(1)}% complete)`);
204
+ }
205
+ /**
206
+ * Get the current progress
207
+ * @returns Current progress state
208
+ */
209
+ getProgress() {
210
+ return { ...this.progress };
211
+ }
212
+ /**
213
+ * Get the full state including completed files
214
+ * @returns Full state object
215
+ */
216
+ getState() {
217
+ return {
218
+ progressData: this.getProgress(),
219
+ completedFiles: [...this.completedFiles],
220
+ progress: this.completedFiles.length / this.progress.totalFiles,
221
+ completed: this.progress.isComplete,
222
+ currentPass: this.progress.currentPass,
223
+ };
224
+ }
225
+ }
226
+ exports.MultiPassProgressTracker = MultiPassProgressTracker;
227
+ //# sourceMappingURL=progressTracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"progressTracker.js","sourceRoot":"","sources":["../../../src/utils/review/progressTracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @fileoverview Utilities for extracting and parsing code review results.
3
+ *
4
+ * This module provides functions for extracting actionable items from code review results,
5
+ * including parsing sections by priority, identifying file locations, and extracting code snippets.
6
+ */
7
+ import { FixPriority, type FixSuggestion } from './types';
8
+ /**
9
+ * Extract fix suggestions from review content
10
+ * @param reviewContent The content of the review
11
+ * @param projectPath Base path of the project
12
+ * @param priorityLevel Optional priority level to extract (if not provided, extracts all)
13
+ * @returns Array of fix suggestions
14
+ */
15
+ export declare function extractFixSuggestions(reviewContent: string, projectPath: string, priorityLevel?: FixPriority): Promise<FixSuggestion[]>;
16
+ /**
17
+ * Extract a section from the review content
18
+ * @param content Full review content
19
+ * @param startMarker Start marker for the section
20
+ * @param endMarker End marker for the section
21
+ * @returns The extracted section or null if not found
22
+ */
23
+ export declare function extractSection(content: string, startMarker: string, endMarker: string): string | null;
24
+ /**
25
+ * Parse suggestions from a section of the review
26
+ * @param sectionContent Content of the section
27
+ * @param priority Priority level of the suggestions
28
+ * @param projectPath Base path of the project
29
+ * @returns Array of fix suggestions
30
+ */
31
+ export declare function parseSuggestions(sectionContent: string, priority: FixPriority, projectPath: string): Promise<FixSuggestion[]>;
@@ -0,0 +1,324 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Utilities for extracting and parsing code review results.
4
+ *
5
+ * This module provides functions for extracting actionable items from code review results,
6
+ * including parsing sections by priority, identifying file locations, and extracting code snippets.
7
+ */
8
+ var __importDefault = (this && this.__importDefault) || function (mod) {
9
+ return (mod && mod.__esModule) ? mod : { "default": mod };
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.extractFixSuggestions = extractFixSuggestions;
13
+ exports.extractSection = extractSection;
14
+ exports.parseSuggestions = parseSuggestions;
15
+ const node_path_1 = __importDefault(require("node:path"));
16
+ const logger_1 = __importDefault(require("../logger"));
17
+ const types_1 = require("./types");
18
+ /**
19
+ * Extract fix suggestions from review content
20
+ * @param reviewContent The content of the review
21
+ * @param projectPath Base path of the project
22
+ * @param priorityLevel Optional priority level to extract (if not provided, extracts all)
23
+ * @returns Array of fix suggestions
24
+ */
25
+ async function extractFixSuggestions(reviewContent, projectPath, priorityLevel) {
26
+ const suggestions = [];
27
+ // If a specific priority level is requested, only extract that level
28
+ if (priorityLevel) {
29
+ let section = null;
30
+ switch (priorityLevel) {
31
+ case types_1.FixPriority.HIGH:
32
+ section = extractSection(reviewContent, '### 🟥 High Priority', '### 🟧 Medium Priority');
33
+ break;
34
+ case types_1.FixPriority.MEDIUM:
35
+ section = extractSection(reviewContent, '### 🟧 Medium Priority', '### 🟩 Low Priority');
36
+ break;
37
+ case types_1.FixPriority.LOW:
38
+ section = extractSection(reviewContent, '### 🟩 Low Priority', '---');
39
+ break;
40
+ }
41
+ if (section) {
42
+ const prioritySuggestions = await parseSuggestions(section, priorityLevel, projectPath);
43
+ suggestions.push(...prioritySuggestions);
44
+ }
45
+ return suggestions;
46
+ }
47
+ // Otherwise, extract all priority levels
48
+ // Extract high priority issues
49
+ const highPrioritySection = extractSection(reviewContent, '### 🟥 High Priority', '### 🟧 Medium Priority');
50
+ if (highPrioritySection) {
51
+ const highPrioritySuggestions = await parseSuggestions(highPrioritySection, types_1.FixPriority.HIGH, projectPath);
52
+ suggestions.push(...highPrioritySuggestions);
53
+ }
54
+ // Extract medium priority issues
55
+ const mediumPrioritySection = extractSection(reviewContent, '### 🟧 Medium Priority', '### 🟩 Low Priority');
56
+ if (mediumPrioritySection) {
57
+ const mediumPrioritySuggestions = await parseSuggestions(mediumPrioritySection, types_1.FixPriority.MEDIUM, projectPath);
58
+ suggestions.push(...mediumPrioritySuggestions);
59
+ }
60
+ // Extract low priority issues
61
+ const lowPrioritySection = extractSection(reviewContent, '### 🟩 Low Priority', '---');
62
+ if (lowPrioritySection) {
63
+ const lowPrioritySuggestions = await parseSuggestions(lowPrioritySection, types_1.FixPriority.LOW, projectPath);
64
+ suggestions.push(...lowPrioritySuggestions);
65
+ }
66
+ return suggestions;
67
+ }
68
+ /**
69
+ * Extract a section from the review content
70
+ * @param content Full review content
71
+ * @param startMarker Start marker for the section
72
+ * @param endMarker End marker for the section
73
+ * @returns The extracted section or null if not found
74
+ */
75
+ function extractSection(content, startMarker, endMarker) {
76
+ // Try exact match first
77
+ let startIndex = content.indexOf(startMarker);
78
+ // If exact match fails, try more flexible matching
79
+ if (startIndex === -1) {
80
+ // Try without emoji
81
+ const startMarkerNoEmoji = startMarker.replace(/🟥|🟧|🟩/g, '').trim();
82
+ startIndex = content.indexOf(startMarkerNoEmoji);
83
+ // Try with different heading levels (## or # instead of ###)
84
+ if (startIndex === -1) {
85
+ const startMarkerAltHeading = startMarker.replace('###', '##');
86
+ startIndex = content.indexOf(startMarkerAltHeading);
87
+ }
88
+ if (startIndex === -1) {
89
+ const startMarkerAltHeading2 = startMarker.replace('###', '#');
90
+ startIndex = content.indexOf(startMarkerAltHeading2);
91
+ }
92
+ // Try with case-insensitive match for priority level
93
+ if (startIndex === -1) {
94
+ const priorityLevel = startMarker.includes('High')
95
+ ? 'high'
96
+ : startMarker.includes('Medium')
97
+ ? 'medium'
98
+ : startMarker.includes('Low')
99
+ ? 'low'
100
+ : '';
101
+ if (priorityLevel) {
102
+ const regex = new RegExp(`[#]{1,3}\\s*(?:🟥|🟧|🟩)?\\s*${priorityLevel}\\s*priority`, 'i');
103
+ const match = content.match(regex);
104
+ if (match && match.index !== undefined) {
105
+ startIndex = match.index;
106
+ }
107
+ }
108
+ }
109
+ }
110
+ if (startIndex === -1)
111
+ return null;
112
+ // Try exact match for end marker
113
+ let endIndex = content.indexOf(endMarker, startIndex);
114
+ // If exact match fails, try more flexible matching for end marker
115
+ if (endIndex === -1) {
116
+ // Try without emoji
117
+ const endMarkerNoEmoji = endMarker.replace(/🟥|🟧|🟩/g, '').trim();
118
+ endIndex = content.indexOf(endMarkerNoEmoji, startIndex);
119
+ // Try with different heading levels
120
+ if (endIndex === -1) {
121
+ const endMarkerAltHeading = endMarker.replace('###', '##');
122
+ endIndex = content.indexOf(endMarkerAltHeading, startIndex);
123
+ }
124
+ if (endIndex === -1) {
125
+ const endMarkerAltHeading2 = endMarker.replace('###', '#');
126
+ endIndex = content.indexOf(endMarkerAltHeading2, startIndex);
127
+ }
128
+ // If we still can't find the end marker, look for the next heading
129
+ if (endIndex === -1) {
130
+ const nextHeadingMatch = content.substring(startIndex).match(/\n[#]{1,3}\s/);
131
+ if (nextHeadingMatch && nextHeadingMatch.index !== undefined) {
132
+ endIndex = startIndex + nextHeadingMatch.index;
133
+ }
134
+ }
135
+ }
136
+ if (endIndex === -1)
137
+ return content.substring(startIndex);
138
+ return content.substring(startIndex, endIndex);
139
+ }
140
+ /**
141
+ * Parse suggestions from a section of the review
142
+ * @param sectionContent Content of the section
143
+ * @param priority Priority level of the suggestions
144
+ * @param projectPath Base path of the project
145
+ * @returns Array of fix suggestions
146
+ */
147
+ async function parseSuggestions(sectionContent, priority, projectPath) {
148
+ const suggestions = [];
149
+ // Split the section into individual issues to reduce memory usage
150
+ // Try different patterns to match issue blocks
151
+ let issueBlocks = [];
152
+ // Pattern 1: **Issue**: format
153
+ const pattern1Blocks = sectionContent
154
+ .split(/(?=\*\*Issue\*\*:)/)
155
+ .filter((block) => block.trim().startsWith('**Issue**:'));
156
+ if (pattern1Blocks.length > 0) {
157
+ issueBlocks = pattern1Blocks;
158
+ }
159
+ else {
160
+ // Pattern 2: 1. **Issue**: format (numbered list)
161
+ const pattern2Blocks = sectionContent
162
+ .split(/(?=\d+\.\s*\*\*Issue\*\*:)/)
163
+ .filter((block) => block.trim().match(/^\d+\.\s*\*\*Issue\*\*/));
164
+ if (pattern2Blocks.length > 0) {
165
+ issueBlocks = pattern2Blocks;
166
+ }
167
+ else {
168
+ // Pattern 3: ### Issue: format (heading)
169
+ const pattern3Blocks = sectionContent
170
+ .split(/(?=[#]{1,3}\s+Issue:)/)
171
+ .filter((block) => block.trim().match(/^[#]{1,3}\s+Issue:/));
172
+ if (pattern3Blocks.length > 0) {
173
+ issueBlocks = pattern3Blocks;
174
+ }
175
+ else {
176
+ // Pattern 4: **Finding**: format (security reviews)
177
+ const pattern4Blocks = sectionContent
178
+ .split(/(?=\*\*Finding\*\*:)/)
179
+ .filter((block) => block.trim().startsWith('**Finding**:'));
180
+ if (pattern4Blocks.length > 0) {
181
+ issueBlocks = pattern4Blocks;
182
+ }
183
+ else {
184
+ // Pattern 5: **Performance Issue**: format (performance reviews)
185
+ const pattern5Blocks = sectionContent
186
+ .split(/(?=\*\*Performance Issue\*\*:)/)
187
+ .filter((block) => block.trim().startsWith('**Performance Issue**:'));
188
+ if (pattern5Blocks.length > 0) {
189
+ issueBlocks = pattern5Blocks;
190
+ }
191
+ }
192
+ }
193
+ }
194
+ }
195
+ for (const issueBlock of issueBlocks) {
196
+ try {
197
+ // Extract issue description using multiple patterns
198
+ let issueDescription = '';
199
+ let issueMatch = issueBlock.match(/\*\*Issue\*\*:([^*]+)/);
200
+ if (!issueMatch) {
201
+ // Try alternative patterns
202
+ issueMatch = issueBlock.match(/\d+\.\s*\*\*Issue\*\*:([^*]+)/);
203
+ }
204
+ if (!issueMatch) {
205
+ issueMatch = issueBlock.match(/[#]{1,3}\s+Issue:([^\n]+)/);
206
+ }
207
+ if (!issueMatch) {
208
+ issueMatch = issueBlock.match(/\*\*Finding\*\*:([^*]+)/);
209
+ }
210
+ if (!issueMatch) {
211
+ issueMatch = issueBlock.match(/\*\*Performance Issue\*\*:([^*]+)/);
212
+ }
213
+ if (!issueMatch)
214
+ continue;
215
+ issueDescription = issueMatch[1].trim();
216
+ // Extract file path using multiple patterns
217
+ let filePath = '';
218
+ let fileMatch = issueBlock.match(/\*\*File\*\*:([^*]+)/);
219
+ if (!fileMatch) {
220
+ fileMatch = issueBlock.match(/\*\*Location\*\*:([^*]+)/);
221
+ }
222
+ if (!fileMatch) {
223
+ fileMatch = issueBlock.match(/File:([^\n]+)/);
224
+ }
225
+ if (!fileMatch) {
226
+ fileMatch = issueBlock.match(/Path:([^\n]+)/);
227
+ }
228
+ if (!fileMatch) {
229
+ // Try to find any path-like string in the issue block
230
+ const pathMatch = issueBlock.match(/(?:src|lib|test|app|components|utils|helpers|services|models|controllers|views|pages|api|config|public|assets|styles|css|js|ts|tsx|jsx)\/[\w\-./_]+\.(ts|js|tsx|jsx|json|css|scss|html|md)/);
231
+ if (pathMatch) {
232
+ filePath = pathMatch[0].trim();
233
+ }
234
+ else {
235
+ continue; // Skip if we can't find a file path
236
+ }
237
+ }
238
+ else {
239
+ filePath = fileMatch[1].trim();
240
+ }
241
+ // Remove any markdown formatting from the file path
242
+ let cleanFilePath = filePath.replace(/`/g, '').replace(/\*/g, '').trim();
243
+ // Extract the actual file path from common patterns
244
+ const filePathMatch = cleanFilePath.match(/(?:src|\/)\S+\.(ts|js|tsx|jsx|json)/);
245
+ if (filePathMatch) {
246
+ cleanFilePath = filePathMatch[0];
247
+ }
248
+ else {
249
+ // If we can't extract a clear file path, try to find the most likely path
250
+ const possiblePaths = cleanFilePath
251
+ .split(/[\s,()]/)
252
+ .filter((part) => part.includes('/') || part.includes('.ts') || part.includes('.js'));
253
+ if (possiblePaths.length > 0) {
254
+ cleanFilePath = possiblePaths[0];
255
+ }
256
+ }
257
+ // Resolve the full file path
258
+ const fullFilePath = node_path_1.default.resolve(projectPath, cleanFilePath);
259
+ // Extract location
260
+ const locationMatch = issueBlock.match(/\*\*Location\*\*:([^*]+)/);
261
+ const location = locationMatch ? locationMatch[1].trim() : '';
262
+ // Extract code blocks with more flexible pattern matching
263
+ // Match code blocks with or without language specifier
264
+ const codeBlockMatches = issueBlock.match(/```(?:[a-zA-Z0-9_-]*)?\s*([\s\S]*?)```/g) || [];
265
+ // If no code blocks found with triple backticks, try alternative formats
266
+ let codeBlocks = [];
267
+ if (codeBlockMatches.length > 0) {
268
+ codeBlocks = codeBlockMatches.map((block) => {
269
+ // Extract the content inside the code block
270
+ const content = block.replace(/```(?:[a-zA-Z0-9_-]*)?\s*|```$/g, '');
271
+ return content.trim();
272
+ });
273
+ }
274
+ else {
275
+ // Try to find code blocks with indentation (4 spaces or tab)
276
+ const indentedCodeBlockMatch = issueBlock.match(/(?:^|\n)(?: {4}|\t)([^\n]+(?:\n(?: {4}|\t)[^\n]+)*)/g);
277
+ if (indentedCodeBlockMatch) {
278
+ codeBlocks = indentedCodeBlockMatch.map((block) => {
279
+ // Remove the indentation
280
+ return block.replace(/(?:^|\n)(?: {4}|\t)/g, '\n').trim();
281
+ });
282
+ }
283
+ // Try to find code blocks with 'Current code:' and 'Suggested code:' markers
284
+ const currentCodeMatch = issueBlock.match(/Current code:([\s\S]*?)(?:Suggested code:|$)/i);
285
+ const suggestedCodeMatch = issueBlock.match(/Suggested code:([\s\S]*?)(?:Impact:|$)/i);
286
+ if (currentCodeMatch?.[1].trim()) {
287
+ codeBlocks.push(currentCodeMatch[1].trim());
288
+ }
289
+ if (suggestedCodeMatch?.[1].trim()) {
290
+ codeBlocks.push(suggestedCodeMatch[1].trim());
291
+ }
292
+ }
293
+ // Create suggestion
294
+ const suggestion = {
295
+ priority,
296
+ file: fullFilePath,
297
+ description: issueDescription,
298
+ };
299
+ // If we have code blocks, assume the first is current code and second is suggested code
300
+ if (codeBlocks.length >= 2) {
301
+ suggestion.currentCode = codeBlocks[0];
302
+ suggestion.suggestedCode = codeBlocks[1];
303
+ }
304
+ else if (codeBlocks.length === 1) {
305
+ // If only one code block, assume it's the suggested code
306
+ suggestion.suggestedCode = codeBlocks[0];
307
+ }
308
+ // Try to extract line numbers from location
309
+ const lineNumberMatch = location.match(/lines? (\d+)(?:-(\d+))?/i);
310
+ if (lineNumberMatch) {
311
+ const startLine = parseInt(lineNumberMatch[1], 10);
312
+ const endLine = lineNumberMatch[2] ? parseInt(lineNumberMatch[2], 10) : startLine;
313
+ suggestion.lineNumbers = { start: startLine, end: endLine };
314
+ }
315
+ suggestions.push(suggestion);
316
+ }
317
+ catch (error) {
318
+ logger_1.default.error('Error parsing suggestion:', error);
319
+ // Continue with the next issue block
320
+ }
321
+ }
322
+ return suggestions;
323
+ }
324
+ //# sourceMappingURL=reviewExtraction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewExtraction.js","sourceRoot":"","sources":["../../../src/utils/review/reviewExtraction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @fileoverview Type definitions for review action modules
3
+ *
4
+ * This module provides shared types used across the review action modules.
5
+ */
6
+ /**
7
+ * Priority levels for code review fixes
8
+ */
9
+ export declare enum FixPriority {
10
+ HIGH = "high",
11
+ MEDIUM = "medium",
12
+ LOW = "low"
13
+ }
14
+ /**
15
+ * Structure representing a code fix suggestion
16
+ */
17
+ export interface FixSuggestion {
18
+ priority: FixPriority;
19
+ file: string;
20
+ description: string;
21
+ currentCode?: string;
22
+ suggestedCode?: string;
23
+ lineNumbers?: {
24
+ start: number;
25
+ end: number;
26
+ };
27
+ }
28
+ /**
29
+ * Summary of fix actions taken
30
+ */
31
+ export interface FixSummary {
32
+ highPriorityFixed: number;
33
+ mediumPriorityFixed: number;
34
+ lowPriorityFixed: number;
35
+ totalSuggestions: number;
36
+ }
37
+ /**
38
+ * Summary of suggestions found
39
+ */
40
+ export interface SuggestionSummary {
41
+ highPrioritySuggestions: FixSuggestion[];
42
+ mediumPrioritySuggestions: FixSuggestion[];
43
+ lowPrioritySuggestions: FixSuggestion[];
44
+ totalSuggestions: number;
45
+ }