codereview-aia 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (549) hide show
  1. package/dist/analysis/FindingsExtractor.d.ts +105 -0
  2. package/dist/analysis/FindingsExtractor.js +363 -0
  3. package/dist/analysis/FindingsExtractor.js.map +1 -0
  4. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +111 -0
  5. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +215 -0
  6. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +1 -0
  7. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +142 -0
  8. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +503 -0
  9. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +1 -0
  10. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +88 -0
  11. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +343 -0
  12. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +1 -0
  13. package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +104 -0
  14. package/dist/analysis/ai-detection/core/AIDetectionEngine.js +369 -0
  15. package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +1 -0
  16. package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +364 -0
  17. package/dist/analysis/ai-detection/types/DetectionTypes.js +32 -0
  18. package/dist/analysis/ai-detection/types/DetectionTypes.js.map +1 -0
  19. package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +97 -0
  20. package/dist/analysis/ai-detection/utils/SubmissionConverter.js +339 -0
  21. package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +1 -0
  22. package/dist/analysis/context/ReviewContext.d.ts +184 -0
  23. package/dist/analysis/context/ReviewContext.js +294 -0
  24. package/dist/analysis/context/ReviewContext.js.map +1 -0
  25. package/{src/analysis/context/index.ts → dist/analysis/context/index.d.ts} +0 -1
  26. package/dist/analysis/context/index.js +23 -0
  27. package/dist/analysis/context/index.js.map +1 -0
  28. package/{src/analysis/index.ts → dist/analysis/index.d.ts} +0 -1
  29. package/dist/analysis/index.js +24 -0
  30. package/dist/analysis/index.js.map +1 -0
  31. package/dist/analysis/static/wpPhpcsRunner.d.ts +11 -0
  32. package/dist/analysis/static/wpPhpcsRunner.js +219 -0
  33. package/dist/analysis/static/wpPhpcsRunner.js.map +1 -0
  34. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +27 -0
  35. package/{src/analysis/tokens/TokenAnalysisFormatter.ts → dist/analysis/tokens/TokenAnalysisFormatter.js} +64 -75
  36. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +1 -0
  37. package/dist/analysis/tokens/TokenAnalyzer.d.ts +155 -0
  38. package/dist/analysis/tokens/TokenAnalyzer.js +502 -0
  39. package/dist/analysis/tokens/TokenAnalyzer.js.map +1 -0
  40. package/{src/analysis/tokens/index.ts → dist/analysis/tokens/index.d.ts} +0 -1
  41. package/dist/analysis/tokens/index.js +24 -0
  42. package/dist/analysis/tokens/index.js.map +1 -0
  43. package/dist/clients/base/abstractClient.d.ts +99 -0
  44. package/dist/clients/base/abstractClient.js +98 -0
  45. package/dist/clients/base/abstractClient.js.map +1 -0
  46. package/dist/clients/base/httpClient.d.ts +24 -0
  47. package/dist/clients/base/httpClient.js +147 -0
  48. package/dist/clients/base/httpClient.js.map +1 -0
  49. package/{src/clients/base/index.ts → dist/clients/base/index.d.ts} +0 -1
  50. package/dist/clients/base/index.js +28 -0
  51. package/dist/clients/base/index.js.map +1 -0
  52. package/dist/clients/base/modelDetection.d.ts +41 -0
  53. package/dist/clients/base/modelDetection.js +88 -0
  54. package/dist/clients/base/modelDetection.js.map +1 -0
  55. package/dist/clients/base/responseProcessor.d.ts +45 -0
  56. package/dist/clients/base/responseProcessor.js +495 -0
  57. package/dist/clients/base/responseProcessor.js.map +1 -0
  58. package/dist/clients/factory/clientFactory.d.ts +23 -0
  59. package/dist/clients/factory/clientFactory.js +50 -0
  60. package/dist/clients/factory/clientFactory.js.map +1 -0
  61. package/{src/clients/factory/index.ts → dist/clients/factory/index.d.ts} +0 -1
  62. package/dist/clients/factory/index.js +24 -0
  63. package/dist/clients/factory/index.js.map +1 -0
  64. package/{src/clients/implementations/index.ts → dist/clients/implementations/index.d.ts} +0 -1
  65. package/dist/clients/implementations/index.js +24 -0
  66. package/dist/clients/implementations/index.js.map +1 -0
  67. package/dist/clients/implementations/openRouterClient.d.ts +69 -0
  68. package/dist/clients/implementations/openRouterClient.js +294 -0
  69. package/dist/clients/implementations/openRouterClient.js.map +1 -0
  70. package/dist/clients/openRouterClient.d.ts +42 -0
  71. package/dist/clients/openRouterClient.js +738 -0
  72. package/dist/clients/openRouterClient.js.map +1 -0
  73. package/{src/clients/openRouterClientWrapper.ts → dist/clients/openRouterClientWrapper.d.ts} +2 -24
  74. package/dist/clients/openRouterClientWrapper.js +64 -0
  75. package/dist/clients/openRouterClientWrapper.js.map +1 -0
  76. package/dist/clients/utils/directoryStructure.d.ts +14 -0
  77. package/dist/clients/utils/directoryStructure.js +48 -0
  78. package/dist/clients/utils/directoryStructure.js.map +1 -0
  79. package/{src/clients/utils/index.ts → dist/clients/utils/index.d.ts} +0 -1
  80. package/dist/clients/utils/index.js +31 -0
  81. package/dist/clients/utils/index.js.map +1 -0
  82. package/dist/clients/utils/languageDetection.d.ts +13 -0
  83. package/dist/clients/utils/languageDetection.js +46 -0
  84. package/dist/clients/utils/languageDetection.js.map +1 -0
  85. package/dist/clients/utils/promptFormatter.d.ts +37 -0
  86. package/dist/clients/utils/promptFormatter.js +150 -0
  87. package/dist/clients/utils/promptFormatter.js.map +1 -0
  88. package/{src/clients/utils/promptLoader.ts → dist/clients/utils/promptLoader.d.ts} +1 -27
  89. package/dist/clients/utils/promptLoader.js +49 -0
  90. package/dist/clients/utils/promptLoader.js.map +1 -0
  91. package/dist/clients/utils/tokenCounter.d.ts +81 -0
  92. package/dist/clients/utils/tokenCounter.js +209 -0
  93. package/dist/clients/utils/tokenCounter.js.map +1 -0
  94. package/dist/core/ApiClientSelector.d.ts +8 -0
  95. package/dist/core/ApiClientSelector.js +29 -0
  96. package/dist/core/ApiClientSelector.js.map +1 -0
  97. package/dist/core/ConfigurationService.d.ts +307 -0
  98. package/dist/core/ConfigurationService.js +516 -0
  99. package/dist/core/ConfigurationService.js.map +1 -0
  100. package/dist/core/ConsolidationService.d.ts +99 -0
  101. package/dist/core/ConsolidationService.js +341 -0
  102. package/dist/core/ConsolidationService.js.map +1 -0
  103. package/dist/core/InteractiveDisplayManager.d.ts +22 -0
  104. package/dist/core/InteractiveDisplayManager.js +70 -0
  105. package/dist/core/InteractiveDisplayManager.js.map +1 -0
  106. package/dist/core/OutputManager.d.ts +26 -0
  107. package/dist/core/OutputManager.js +217 -0
  108. package/dist/core/OutputManager.js.map +1 -0
  109. package/dist/core/ReviewGenerator.d.ts +13 -0
  110. package/dist/core/ReviewGenerator.js +102 -0
  111. package/dist/core/ReviewGenerator.js.map +1 -0
  112. package/dist/core/fileDiscovery.d.ts +35 -0
  113. package/dist/core/fileDiscovery.js +202 -0
  114. package/dist/core/fileDiscovery.js.map +1 -0
  115. package/dist/core/handlers/EstimationHandler.d.ts +18 -0
  116. package/dist/core/handlers/EstimationHandler.js +110 -0
  117. package/dist/core/handlers/EstimationHandler.js.map +1 -0
  118. package/dist/core/handlers/FileProcessingHandler.d.ts +31 -0
  119. package/dist/core/handlers/FileProcessingHandler.js +164 -0
  120. package/dist/core/handlers/FileProcessingHandler.js.map +1 -0
  121. package/dist/core/handlers/OutputHandler.d.ts +27 -0
  122. package/dist/core/handlers/OutputHandler.js +127 -0
  123. package/dist/core/handlers/OutputHandler.js.map +1 -0
  124. package/dist/core/handlers/ReviewExecutor.d.ts +32 -0
  125. package/dist/core/handlers/ReviewExecutor.js +111 -0
  126. package/dist/core/handlers/ReviewExecutor.js.map +1 -0
  127. package/dist/core/reviewOrchestrator.d.ts +24 -0
  128. package/dist/core/reviewOrchestrator.js +354 -0
  129. package/dist/core/reviewOrchestrator.js.map +1 -0
  130. package/dist/core/utils/ModelInfoUtils.d.ts +16 -0
  131. package/dist/core/utils/ModelInfoUtils.js +54 -0
  132. package/dist/core/utils/ModelInfoUtils.js.map +1 -0
  133. package/{src/formatters/outputFormatter.ts → dist/formatters/outputFormatter.d.ts} +2 -33
  134. package/dist/formatters/outputFormatter.js +65 -0
  135. package/dist/formatters/outputFormatter.js.map +1 -0
  136. package/dist/formatters/utils/IssueFormatters.d.ts +20 -0
  137. package/dist/formatters/utils/IssueFormatters.js +67 -0
  138. package/dist/formatters/utils/IssueFormatters.js.map +1 -0
  139. package/dist/formatters/utils/JsonFormatter.d.ts +13 -0
  140. package/dist/formatters/utils/JsonFormatter.js +57 -0
  141. package/dist/formatters/utils/JsonFormatter.js.map +1 -0
  142. package/dist/formatters/utils/MarkdownFormatters.d.ts +51 -0
  143. package/dist/formatters/utils/MarkdownFormatters.js +456 -0
  144. package/dist/formatters/utils/MarkdownFormatters.js.map +1 -0
  145. package/dist/formatters/utils/MetadataFormatter.d.ts +65 -0
  146. package/dist/formatters/utils/MetadataFormatter.js +219 -0
  147. package/dist/formatters/utils/MetadataFormatter.js.map +1 -0
  148. package/dist/formatters/utils/ModelInfoExtractor.d.ts +33 -0
  149. package/dist/formatters/utils/ModelInfoExtractor.js +111 -0
  150. package/dist/formatters/utils/ModelInfoExtractor.js.map +1 -0
  151. package/dist/index.d.ts +1 -0
  152. package/dist/index.js.map +1 -0
  153. package/dist/plugins/PluginInterface.d.ts +44 -0
  154. package/dist/plugins/PluginInterface.js +9 -0
  155. package/dist/plugins/PluginInterface.js.map +1 -0
  156. package/dist/plugins/PluginManager.d.ts +51 -0
  157. package/dist/plugins/PluginManager.js +151 -0
  158. package/dist/plugins/PluginManager.js.map +1 -0
  159. package/dist/prompts/PromptManager.d.ts +30 -0
  160. package/dist/prompts/PromptManager.js +62 -0
  161. package/dist/prompts/PromptManager.js.map +1 -0
  162. package/dist/prompts/cache/PromptCache.d.ts +32 -0
  163. package/dist/prompts/cache/PromptCache.js +48 -0
  164. package/dist/prompts/cache/PromptCache.js.map +1 -0
  165. package/dist/runtime/auth/service.d.ts +2 -0
  166. package/dist/runtime/auth/service.js +41 -0
  167. package/dist/runtime/auth/service.js.map +1 -0
  168. package/dist/runtime/auth/session.d.ts +5 -0
  169. package/dist/runtime/auth/session.js +87 -0
  170. package/dist/runtime/auth/session.js.map +1 -0
  171. package/dist/runtime/auth/types.d.ts +9 -0
  172. package/dist/runtime/auth/types.js +3 -0
  173. package/dist/runtime/auth/types.js.map +1 -0
  174. package/dist/runtime/cliEntry.d.ts +1 -0
  175. package/dist/runtime/cliEntry.js +266 -0
  176. package/dist/runtime/cliEntry.js.map +1 -0
  177. package/dist/runtime/debug/logManager.d.ts +5 -0
  178. package/dist/runtime/debug/logManager.js +31 -0
  179. package/dist/runtime/debug/logManager.js.map +1 -0
  180. package/dist/runtime/errors.d.ts +5 -0
  181. package/dist/runtime/errors.js +15 -0
  182. package/dist/runtime/errors.js.map +1 -0
  183. package/dist/runtime/fileCollector.d.ts +14 -0
  184. package/dist/runtime/fileCollector.js +382 -0
  185. package/dist/runtime/fileCollector.js.map +1 -0
  186. package/dist/runtime/manifest.d.ts +1 -0
  187. package/dist/runtime/manifest.js +65 -0
  188. package/dist/runtime/manifest.js.map +1 -0
  189. package/dist/runtime/openrouterProxy.d.ts +4 -0
  190. package/dist/runtime/openrouterProxy.js +43 -0
  191. package/dist/runtime/openrouterProxy.js.map +1 -0
  192. package/dist/runtime/preprod/webCheck.d.ts +1 -0
  193. package/dist/runtime/preprod/webCheck.js +98 -0
  194. package/dist/runtime/preprod/webCheck.js.map +1 -0
  195. package/dist/runtime/proxyConfig.d.ts +6 -0
  196. package/dist/runtime/proxyConfig.js +86 -0
  197. package/dist/runtime/proxyConfig.js.map +1 -0
  198. package/dist/runtime/proxyEnvironment.d.ts +3 -0
  199. package/dist/runtime/proxyEnvironment.js +63 -0
  200. package/dist/runtime/proxyEnvironment.js.map +1 -0
  201. package/dist/runtime/reportMerge.d.ts +30 -0
  202. package/dist/runtime/reportMerge.js +70 -0
  203. package/dist/runtime/reportMerge.js.map +1 -0
  204. package/dist/runtime/reporting/markdownReportBuilder.d.ts +17 -0
  205. package/dist/runtime/reporting/markdownReportBuilder.js +154 -0
  206. package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
  207. package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
  208. package/dist/runtime/reporting/reportDataCollector.js +170 -0
  209. package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
  210. package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
  211. package/dist/runtime/reporting/summaryGenerator.js +67 -0
  212. package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
  213. package/dist/runtime/reviewPipeline.d.ts +47 -0
  214. package/dist/runtime/reviewPipeline.js +161 -0
  215. package/dist/runtime/reviewPipeline.js.map +1 -0
  216. package/dist/runtime/runAiCodeReview.d.ts +28 -0
  217. package/dist/runtime/runAiCodeReview.js +373 -0
  218. package/dist/runtime/runAiCodeReview.js.map +1 -0
  219. package/dist/runtime/runtimeConfig.d.ts +4 -0
  220. package/dist/runtime/runtimeConfig.js +7 -0
  221. package/dist/runtime/runtimeConfig.js.map +1 -0
  222. package/dist/runtime/ui/Layout.d.ts +11 -0
  223. package/dist/runtime/ui/Layout.js +47 -0
  224. package/dist/runtime/ui/Layout.js.map +1 -0
  225. package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
  226. package/dist/runtime/ui/RuntimeApp.js +172 -0
  227. package/dist/runtime/ui/RuntimeApp.js.map +1 -0
  228. package/dist/runtime/ui/inkModules.d.ts +10 -0
  229. package/dist/runtime/ui/inkModules.js +63 -0
  230. package/dist/runtime/ui/inkModules.js.map +1 -0
  231. package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
  232. package/dist/runtime/ui/screens/AuthScreen.js +67 -0
  233. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
  234. package/dist/runtime/ui/screens/ModeSelection.d.ts +10 -0
  235. package/dist/runtime/ui/screens/ModeSelection.js +100 -0
  236. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
  237. package/dist/runtime/ui/screens/ProgressScreen.d.ts +12 -0
  238. package/dist/runtime/ui/screens/ProgressScreen.js +64 -0
  239. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
  240. package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
  241. package/dist/runtime/ui/screens/ResultsScreen.js +29 -0
  242. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
  243. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
  244. package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
  245. package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
  246. package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
  247. package/dist/strategies/CodingTestReviewStrategy.js +681 -0
  248. package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
  249. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
  250. package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
  251. package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
  252. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
  253. package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
  254. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
  255. package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
  256. package/dist/strategies/MultiPassReviewStrategy.js +590 -0
  257. package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
  258. package/dist/strategies/ReviewStrategy.d.ts +45 -0
  259. package/dist/strategies/ReviewStrategy.js +24 -0
  260. package/dist/strategies/ReviewStrategy.js.map +1 -0
  261. package/dist/strategies/StrategyFactory.d.ts +19 -0
  262. package/dist/strategies/StrategyFactory.js +72 -0
  263. package/dist/strategies/StrategyFactory.js.map +1 -0
  264. package/{src/strategies/index.ts → dist/strategies/index.d.ts} +0 -1
  265. package/dist/strategies/index.js +30 -0
  266. package/dist/strategies/index.js.map +1 -0
  267. package/dist/tokenizers/baseTokenizer.d.ts +25 -0
  268. package/dist/tokenizers/baseTokenizer.js +48 -0
  269. package/dist/tokenizers/baseTokenizer.js.map +1 -0
  270. package/dist/tokenizers/gptTokenizer.d.ts +7 -0
  271. package/dist/tokenizers/gptTokenizer.js +28 -0
  272. package/dist/tokenizers/gptTokenizer.js.map +1 -0
  273. package/{src/tokenizers/index.ts → dist/tokenizers/index.d.ts} +0 -1
  274. package/dist/tokenizers/index.js +24 -0
  275. package/dist/tokenizers/index.js.map +1 -0
  276. package/dist/types/apiResponses.d.ts +39 -0
  277. package/dist/types/apiResponses.js +9 -0
  278. package/dist/types/apiResponses.js.map +1 -0
  279. package/dist/types/cli.d.ts +22 -0
  280. package/dist/types/cli.js +3 -0
  281. package/dist/types/cli.js.map +1 -0
  282. package/{src/types/common.ts → dist/types/common.d.ts} +2 -19
  283. package/dist/types/common.js +14 -0
  284. package/dist/types/common.js.map +1 -0
  285. package/dist/types/configuration.d.ts +682 -0
  286. package/dist/types/configuration.js +65 -0
  287. package/dist/types/configuration.js.map +1 -0
  288. package/dist/types/review.d.ts +318 -0
  289. package/dist/types/review.js +8 -0
  290. package/dist/types/review.js.map +1 -0
  291. package/dist/types/reviewSchema.d.ts +543 -0
  292. package/{src/types/reviewSchema.ts → dist/types/reviewSchema.js} +44 -104
  293. package/dist/types/reviewSchema.js.map +1 -0
  294. package/dist/types/structuredReview.d.ts +119 -0
  295. package/dist/types/structuredReview.js +6 -0
  296. package/dist/types/structuredReview.js.map +1 -0
  297. package/dist/types/tokenAnalysis.d.ts +44 -0
  298. package/dist/types/tokenAnalysis.js +4 -0
  299. package/dist/types/tokenAnalysis.js.map +1 -0
  300. package/dist/utils/FileReader.d.ts +33 -0
  301. package/dist/utils/FileReader.js +88 -0
  302. package/dist/utils/FileReader.js.map +1 -0
  303. package/dist/utils/FileWriter.d.ts +26 -0
  304. package/dist/utils/FileWriter.js +76 -0
  305. package/dist/utils/FileWriter.js.map +1 -0
  306. package/dist/utils/PathGenerator.d.ts +30 -0
  307. package/dist/utils/PathGenerator.js +82 -0
  308. package/dist/utils/PathGenerator.js.map +1 -0
  309. package/dist/utils/api/apiUtils.d.ts +3 -0
  310. package/dist/utils/api/apiUtils.js +20 -0
  311. package/dist/utils/api/apiUtils.js.map +1 -0
  312. package/dist/utils/api/index.js +18 -0
  313. package/dist/utils/api/index.js.map +1 -0
  314. package/dist/utils/apiErrorHandler.d.ts +130 -0
  315. package/dist/utils/apiErrorHandler.js +256 -0
  316. package/dist/utils/apiErrorHandler.js.map +1 -0
  317. package/dist/utils/ciDataCollector.d.ts +51 -0
  318. package/dist/utils/ciDataCollector.js +197 -0
  319. package/dist/utils/ciDataCollector.js.map +1 -0
  320. package/dist/utils/codingTestConfigLoader.d.ts +66 -0
  321. package/dist/utils/codingTestConfigLoader.js +420 -0
  322. package/dist/utils/codingTestConfigLoader.js.map +1 -0
  323. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
  324. package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
  325. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
  326. package/dist/utils/detection/frameworkDetector.d.ts +43 -0
  327. package/dist/utils/detection/frameworkDetector.js +850 -0
  328. package/dist/utils/detection/frameworkDetector.js.map +1 -0
  329. package/{src/utils/detection/index.ts → dist/utils/detection/index.d.ts} +0 -1
  330. package/dist/utils/detection/index.js +28 -0
  331. package/dist/utils/detection/index.js.map +1 -0
  332. package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
  333. package/dist/utils/detection/projectTypeDetector.js +469 -0
  334. package/dist/utils/detection/projectTypeDetector.js.map +1 -0
  335. package/dist/utils/diagramGenerator.d.ts +49 -0
  336. package/dist/utils/diagramGenerator.js +218 -0
  337. package/dist/utils/diagramGenerator.js.map +1 -0
  338. package/dist/utils/errorLogger.d.ts +24 -0
  339. package/dist/utils/errorLogger.js +59 -0
  340. package/dist/utils/errorLogger.js.map +1 -0
  341. package/dist/utils/estimationUtils.d.ts +139 -0
  342. package/dist/utils/estimationUtils.js +329 -0
  343. package/dist/utils/estimationUtils.js.map +1 -0
  344. package/dist/utils/fileFilters.d.ts +72 -0
  345. package/dist/utils/fileFilters.js +338 -0
  346. package/dist/utils/fileFilters.js.map +1 -0
  347. package/dist/utils/fileSystem.d.ts +22 -0
  348. package/dist/utils/fileSystem.js +45 -0
  349. package/dist/utils/fileSystem.js.map +1 -0
  350. package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -14
  351. package/dist/utils/index.js +52 -0
  352. package/dist/utils/index.js.map +1 -0
  353. package/dist/utils/logger.d.ts +77 -0
  354. package/dist/utils/logger.js +271 -0
  355. package/dist/utils/logger.js.map +1 -0
  356. package/dist/utils/pathValidator.d.ts +40 -0
  357. package/dist/utils/pathValidator.js +98 -0
  358. package/dist/utils/pathValidator.js.map +1 -0
  359. package/{src/utils/priorityFilter.ts → dist/utils/priorityFilter.d.ts} +1 -26
  360. package/dist/utils/priorityFilter.js +54 -0
  361. package/dist/utils/priorityFilter.js.map +1 -0
  362. package/dist/utils/projectDocs.d.ts +47 -0
  363. package/dist/utils/projectDocs.js +158 -0
  364. package/dist/utils/projectDocs.js.map +1 -0
  365. package/dist/utils/promptPaths.d.ts +6 -0
  366. package/dist/utils/promptPaths.js +33 -0
  367. package/dist/utils/promptPaths.js.map +1 -0
  368. package/dist/utils/promptTemplateManager.d.ts +34 -0
  369. package/dist/utils/promptTemplateManager.js +141 -0
  370. package/dist/utils/promptTemplateManager.js.map +1 -0
  371. package/dist/utils/review/consolidateReview.d.ts +15 -0
  372. package/dist/utils/review/consolidateReview.js +481 -0
  373. package/dist/utils/review/consolidateReview.js.map +1 -0
  374. package/dist/utils/review/fixDisplay.d.ts +20 -0
  375. package/dist/utils/review/fixDisplay.js +84 -0
  376. package/dist/utils/review/fixDisplay.js.map +1 -0
  377. package/dist/utils/review/fixImplementation.d.ts +28 -0
  378. package/dist/utils/review/fixImplementation.js +60 -0
  379. package/dist/utils/review/fixImplementation.js.map +1 -0
  380. package/dist/utils/review/index.d.ts +13 -0
  381. package/dist/utils/review/index.js +50 -0
  382. package/dist/utils/review/index.js.map +1 -0
  383. package/dist/utils/review/interactiveProcessing.d.ts +25 -0
  384. package/dist/utils/review/interactiveProcessing.js +251 -0
  385. package/dist/utils/review/interactiveProcessing.js.map +1 -0
  386. package/dist/utils/review/progressTracker.d.ts +106 -0
  387. package/dist/utils/review/progressTracker.js +227 -0
  388. package/dist/utils/review/progressTracker.js.map +1 -0
  389. package/dist/utils/review/reviewExtraction.d.ts +31 -0
  390. package/dist/utils/review/reviewExtraction.js +324 -0
  391. package/dist/utils/review/reviewExtraction.js.map +1 -0
  392. package/dist/utils/review/types.d.ts +45 -0
  393. package/dist/utils/review/types.js +18 -0
  394. package/dist/utils/review/types.js.map +1 -0
  395. package/{src/utils/reviewActionHandler.ts → dist/utils/reviewActionHandler.d.ts} +0 -2
  396. package/dist/utils/reviewActionHandler.js +34 -0
  397. package/dist/utils/reviewActionHandler.js.map +1 -0
  398. package/dist/utils/reviewParser.d.ts +34 -0
  399. package/dist/utils/reviewParser.js +218 -0
  400. package/dist/utils/reviewParser.js.map +1 -0
  401. package/dist/utils/sanitizer.d.ts +82 -0
  402. package/dist/utils/sanitizer.js +239 -0
  403. package/dist/utils/sanitizer.js.map +1 -0
  404. package/dist/utils/smartFileSelector.d.ts +50 -0
  405. package/dist/utils/smartFileSelector.js +261 -0
  406. package/dist/utils/smartFileSelector.js.map +1 -0
  407. package/dist/utils/templateLoader.d.ts +44 -0
  408. package/dist/utils/templateLoader.js +431 -0
  409. package/dist/utils/templateLoader.js.map +1 -0
  410. package/dist/utils/treeGenerator.d.ts +12 -0
  411. package/dist/utils/treeGenerator.js +133 -0
  412. package/dist/utils/treeGenerator.js.map +1 -0
  413. package/package.json +5 -2
  414. package/.cr-aia.yml +0 -23
  415. package/.crignore +0 -0
  416. package/docs/opt-in-full-context.md +0 -27
  417. package/reports/cr-cr-aia-17-11-2025-20-13.md +0 -354
  418. package/src/analysis/FindingsExtractor.ts +0 -431
  419. package/src/analysis/ai-detection/analyzers/BaseAnalyzer.ts +0 -267
  420. package/src/analysis/ai-detection/analyzers/DocumentationAnalyzer.ts +0 -622
  421. package/src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts +0 -430
  422. package/src/analysis/ai-detection/core/AIDetectionEngine.ts +0 -467
  423. package/src/analysis/ai-detection/types/DetectionTypes.ts +0 -406
  424. package/src/analysis/ai-detection/utils/SubmissionConverter.ts +0 -390
  425. package/src/analysis/context/ReviewContext.ts +0 -378
  426. package/src/analysis/tokens/TokenAnalyzer.ts +0 -747
  427. package/src/clients/base/abstractClient.ts +0 -190
  428. package/src/clients/base/httpClient.ts +0 -160
  429. package/src/clients/base/modelDetection.ts +0 -107
  430. package/src/clients/base/responseProcessor.ts +0 -586
  431. package/src/clients/factory/clientFactory.ts +0 -55
  432. package/src/clients/implementations/openRouterClient.ts +0 -413
  433. package/src/clients/openRouterClient.ts +0 -870
  434. package/src/clients/utils/directoryStructure.ts +0 -52
  435. package/src/clients/utils/languageDetection.ts +0 -44
  436. package/src/clients/utils/promptFormatter.ts +0 -182
  437. package/src/clients/utils/tokenCounter.ts +0 -297
  438. package/src/core/ApiClientSelector.ts +0 -37
  439. package/src/core/ConfigurationService.ts +0 -591
  440. package/src/core/ConsolidationService.ts +0 -423
  441. package/src/core/InteractiveDisplayManager.ts +0 -81
  442. package/src/core/OutputManager.ts +0 -275
  443. package/src/core/ReviewGenerator.ts +0 -140
  444. package/src/core/fileDiscovery.ts +0 -237
  445. package/src/core/handlers/EstimationHandler.ts +0 -104
  446. package/src/core/handlers/FileProcessingHandler.ts +0 -210
  447. package/src/core/handlers/OutputHandler.ts +0 -125
  448. package/src/core/handlers/ReviewExecutor.ts +0 -104
  449. package/src/core/reviewOrchestrator.ts +0 -333
  450. package/src/core/utils/ModelInfoUtils.ts +0 -56
  451. package/src/formatters/utils/IssueFormatters.ts +0 -83
  452. package/src/formatters/utils/JsonFormatter.ts +0 -77
  453. package/src/formatters/utils/MarkdownFormatters.ts +0 -609
  454. package/src/formatters/utils/MetadataFormatter.ts +0 -269
  455. package/src/formatters/utils/ModelInfoExtractor.ts +0 -115
  456. package/src/index.ts +0 -25
  457. package/src/plugins/PluginInterface.ts +0 -50
  458. package/src/plugins/PluginManager.ts +0 -126
  459. package/src/prompts/PromptManager.ts +0 -69
  460. package/src/prompts/cache/PromptCache.ts +0 -50
  461. package/src/prompts/promptText/common/variables/css-frameworks.json +0 -33
  462. package/src/prompts/promptText/common/variables/framework-versions.json +0 -45
  463. package/src/prompts/promptText/frameworks/react/comprehensive.hbs +0 -19
  464. package/src/prompts/promptText/languages/css/comprehensive.hbs +0 -18
  465. package/src/prompts/promptText/languages/generic/comprehensive.hbs +0 -20
  466. package/src/prompts/promptText/languages/html/comprehensive.hbs +0 -18
  467. package/src/prompts/promptText/languages/javascript/comprehensive.hbs +0 -18
  468. package/src/prompts/promptText/languages/python/comprehensive.hbs +0 -18
  469. package/src/prompts/promptText/languages/typescript/comprehensive.hbs +0 -18
  470. package/src/runtime/auth/service.ts +0 -58
  471. package/src/runtime/auth/session.ts +0 -103
  472. package/src/runtime/auth/types.ts +0 -11
  473. package/src/runtime/cliEntry.ts +0 -214
  474. package/src/runtime/debug/logManager.ts +0 -37
  475. package/src/runtime/errors.ts +0 -13
  476. package/src/runtime/fileCollector.ts +0 -495
  477. package/src/runtime/manifest.ts +0 -64
  478. package/src/runtime/openrouterProxy.ts +0 -45
  479. package/src/runtime/preprod/webCheck.ts +0 -104
  480. package/src/runtime/proxyConfig.ts +0 -94
  481. package/src/runtime/proxyEnvironment.ts +0 -71
  482. package/src/runtime/reportMerge.ts +0 -102
  483. package/src/runtime/reporting/markdownReportBuilder.ts +0 -138
  484. package/src/runtime/reporting/reportDataCollector.ts +0 -234
  485. package/src/runtime/reporting/summaryGenerator.ts +0 -86
  486. package/src/runtime/reviewPipeline.ts +0 -200
  487. package/src/runtime/runAiCodeReview.ts +0 -308
  488. package/src/runtime/runtimeConfig.ts +0 -5
  489. package/src/runtime/ui/Layout.tsx +0 -57
  490. package/src/runtime/ui/RuntimeApp.tsx +0 -262
  491. package/src/runtime/ui/inkModules.ts +0 -73
  492. package/src/runtime/ui/screens/AuthScreen.tsx +0 -128
  493. package/src/runtime/ui/screens/ModeSelection.tsx +0 -185
  494. package/src/runtime/ui/screens/ProgressScreen.tsx +0 -110
  495. package/src/runtime/ui/screens/ResultsScreen.tsx +0 -103
  496. package/src/strategies/ArchitecturalReviewStrategy.ts +0 -54
  497. package/src/strategies/CodingTestReviewStrategy.ts +0 -920
  498. package/src/strategies/ConsolidatedReviewStrategy.ts +0 -59
  499. package/src/strategies/ExtractPatternsReviewStrategy.ts +0 -64
  500. package/src/strategies/MultiPassReviewStrategy.ts +0 -785
  501. package/src/strategies/ReviewStrategy.ts +0 -64
  502. package/src/strategies/StrategyFactory.ts +0 -79
  503. package/src/tokenizers/baseTokenizer.ts +0 -61
  504. package/src/tokenizers/gptTokenizer.ts +0 -27
  505. package/src/types/apiResponses.ts +0 -40
  506. package/src/types/cli.ts +0 -24
  507. package/src/types/configuration.ts +0 -201
  508. package/src/types/handlebars.d.ts +0 -5
  509. package/src/types/patch.d.ts +0 -25
  510. package/src/types/review.ts +0 -312
  511. package/src/types/reviewContext.d.ts +0 -65
  512. package/src/types/structuredReview.ts +0 -167
  513. package/src/types/tokenAnalysis.ts +0 -56
  514. package/src/utils/FileReader.ts +0 -93
  515. package/src/utils/FileWriter.ts +0 -76
  516. package/src/utils/PathGenerator.ts +0 -97
  517. package/src/utils/api/apiUtils.ts +0 -14
  518. package/src/utils/apiErrorHandler.ts +0 -287
  519. package/src/utils/ciDataCollector.ts +0 -252
  520. package/src/utils/codingTestConfigLoader.ts +0 -466
  521. package/src/utils/dependencies/aiDependencyAnalyzer.ts +0 -454
  522. package/src/utils/detection/frameworkDetector.ts +0 -879
  523. package/src/utils/detection/projectTypeDetector.ts +0 -518
  524. package/src/utils/diagramGenerator.ts +0 -206
  525. package/src/utils/errorLogger.ts +0 -60
  526. package/src/utils/estimationUtils.ts +0 -407
  527. package/src/utils/fileFilters.ts +0 -373
  528. package/src/utils/fileSystem.ts +0 -57
  529. package/src/utils/logger.ts +0 -290
  530. package/src/utils/pathValidator.ts +0 -98
  531. package/src/utils/projectDocs.ts +0 -189
  532. package/src/utils/promptPaths.ts +0 -29
  533. package/src/utils/promptTemplateManager.ts +0 -157
  534. package/src/utils/review/consolidateReview.ts +0 -553
  535. package/src/utils/review/fixDisplay.ts +0 -100
  536. package/src/utils/review/fixImplementation.ts +0 -61
  537. package/src/utils/review/index.ts +0 -36
  538. package/src/utils/review/interactiveProcessing.ts +0 -294
  539. package/src/utils/review/progressTracker.ts +0 -296
  540. package/src/utils/review/reviewExtraction.ts +0 -382
  541. package/src/utils/review/types.ts +0 -46
  542. package/src/utils/reviewParser.ts +0 -253
  543. package/src/utils/sanitizer.ts +0 -238
  544. package/src/utils/smartFileSelector.ts +0 -255
  545. package/src/utils/templateLoader.ts +0 -514
  546. package/src/utils/treeGenerator.ts +0 -153
  547. package/tsconfig.build.json +0 -14
  548. package/tsconfig.json +0 -59
  549. /package/{src/utils/api/index.ts → dist/utils/api/index.d.ts} +0 -0
@@ -1,333 +0,0 @@
1
- /**
2
- * @fileoverview Review orchestrator module.
3
- *
4
- * This module is responsible for coordinating the review process,
5
- * selecting the appropriate API client, and managing the review workflow.
6
- */
7
-
8
- import * as path from 'node:path';
9
- import type { ProgrammingLanguage } from '../types/common';
10
- import type { ReviewOptions } from '../types/review';
11
- import { getApiKeyType } from '../utils/api/apiUtils';
12
- import { getConfig } from '../core/ConfigurationService';
13
- import { configurationService } from '../core/ConfigurationService';
14
- import { createDirectory } from '../utils/fileSystem';
15
- import logger from '../utils/logger';
16
- import { readProjectDocs } from '../utils/projectDocs';
17
- // Import other dependencies
18
- import { selectApiClient } from './ApiClientSelector';
19
- import { performEstimation } from './handlers/EstimationHandler';
20
- // Import handlers
21
- import { discoverFilesForReview, readFilesForReview } from './handlers/FileProcessingHandler';
22
- import { createOutputDirectory, handleReviewOutput } from './handlers/OutputHandler';
23
- import { executeReview } from './handlers/ReviewExecutor';
24
-
25
-
26
- /**
27
- * Orchestrate the code review process
28
- *
29
- * This function is the main entry point for the code review process. It coordinates
30
- * the entire review workflow, including:
31
- * - Validating inputs and environment variables
32
- * - Selecting the appropriate API client based on available API keys
33
- * - Discovering files to review
34
- * - Handling different review types (consolidated, individual, architectural)
35
- * - Managing output directories and file generation
36
- * - Supporting interactive mode for real-time feedback
37
- *
38
- * @param target Path to the file or directory to review
39
- * @param options Review options including type, output format, and interactive mode
40
- * @throws Error if the review process fails for any reason
41
- */
42
- export async function orchestrateReview(target: string, options: ReviewOptions): Promise<void> {
43
- // Initialize configuration
44
- getConfig();
45
- try {
46
- // Validate input parameters
47
- if (options === undefined) {
48
- throw new Error('Review options object must be provided');
49
- }
50
-
51
- // Validate that options contains a review type
52
- if (!options.type) {
53
- throw new Error('Review type must be specified in options');
54
- }
55
-
56
- // Ensure target is defined with a default of "." for current directory
57
- const effectiveTarget = target || '.';
58
-
59
- // Log if we're using the default target
60
- if (!target || target.trim() === '') {
61
- logger.info('No target path provided, defaulting to current directory (".")');
62
- }
63
-
64
- // Add debug information if debug mode is enabled
65
- if (options.debug) {
66
- logger.debug(`[ORCHESTRATOR] Effective target: "${effectiveTarget}"`);
67
- logger.debug(`[ORCHESTRATOR] Review type: "${options.type}"`);
68
- logger.debug(`Review options: ${JSON.stringify(options, null, 2)}`);
69
- logger.debug(
70
- `Target path: ${effectiveTarget}${!target || target.trim() === '' ? ' (defaulted to ".")' : ''}`,
71
- );
72
- logger.debug(`Selected model: ${process.env.AI_CODE_REVIEW_MODEL || 'not set'}`);
73
- logger.debug(`API key type: ${getApiKeyType() || 'None'}`);
74
- }
75
-
76
- // Test API connections if requested (removed - no longer supported)
77
- if (options.testApi) {
78
- logger.warn('API connection tests are not available in this build.');
79
- }
80
-
81
- // Log the review type
82
- if (options.type === 'architectural') {
83
- logger.info(`Starting architectural review for ${effectiveTarget}...`);
84
- } else if (options.type === 'coding-test') {
85
- logger.info(`Starting coding test evaluation for ${effectiveTarget}...`);
86
- } else if (options.type === 'extract-patterns') {
87
- logger.info(`Starting pattern extraction for ${effectiveTarget}...`);
88
- } else if (options.type === 'unused-code') {
89
- logger.info(`Starting unused code review for ${effectiveTarget}...`);
90
- } else {
91
- logger.info(`Starting ${options.type} review for ${effectiveTarget}...`);
92
- }
93
-
94
- // Determine the project path
95
- const projectPath = process.cwd();
96
- const projectName = path.basename(projectPath);
97
-
98
- // Create output directory using the centralized function
99
- const configOutputDir = configurationService.getPathsConfig().outputDir;
100
- const outputBaseDir = createOutputDirectory(projectPath, {
101
- outputDir: options.outputDir,
102
- configOutputDir: configOutputDir,
103
- });
104
-
105
- // Create the directory
106
- await createDirectory(outputBaseDir);
107
-
108
- // Log project information
109
- logger.info(`Project: ${projectName}`);
110
- logger.info(`Project path: ${projectPath}`);
111
-
112
- // Detect language and framework
113
- let frameworkDetectionResult = null;
114
- if (!options.language) {
115
- try {
116
- const { detectFramework } = await import('../utils/detection');
117
- frameworkDetectionResult = await detectFramework(projectPath);
118
-
119
- if (frameworkDetectionResult) {
120
- options.language = frameworkDetectionResult.language as ProgrammingLanguage;
121
- options.framework = frameworkDetectionResult.framework;
122
-
123
- if (
124
- frameworkDetectionResult.framework !== 'none' &&
125
- frameworkDetectionResult.confidence > 0.6
126
- ) {
127
- logger.info(
128
- `Detected language: ${frameworkDetectionResult.language}, framework: ${frameworkDetectionResult.framework} (confidence: ${frameworkDetectionResult.confidence.toFixed(2)})`,
129
- );
130
-
131
- if (frameworkDetectionResult.frameworkVersion) {
132
- logger.info(`Framework version: ${frameworkDetectionResult.frameworkVersion}`);
133
- }
134
-
135
- if (
136
- frameworkDetectionResult.additionalFrameworks &&
137
- frameworkDetectionResult.additionalFrameworks.length > 0
138
- ) {
139
- logger.info(
140
- `Additional frameworks detected: ${frameworkDetectionResult.additionalFrameworks.join(', ')}`,
141
- );
142
- }
143
-
144
- if (
145
- frameworkDetectionResult.cssFrameworks &&
146
- frameworkDetectionResult.cssFrameworks.length > 0
147
- ) {
148
- const cssFrameworksStr = frameworkDetectionResult.cssFrameworks
149
- .map((cf) => (cf.version ? `${cf.name} (${cf.version})` : cf.name))
150
- .join(', ');
151
- logger.info(`CSS frameworks detected: ${cssFrameworksStr}`);
152
- }
153
- } else {
154
- logger.info(
155
- `Detected language: ${frameworkDetectionResult.language}, no specific framework detected`,
156
- );
157
-
158
- // Still log CSS frameworks if detected
159
- if (
160
- frameworkDetectionResult.cssFrameworks &&
161
- frameworkDetectionResult.cssFrameworks.length > 0
162
- ) {
163
- const cssFrameworksStr = frameworkDetectionResult.cssFrameworks
164
- .map((cf) => (cf.version ? `${cf.name} (${cf.version})` : cf.name))
165
- .join(', ');
166
- logger.info(`CSS frameworks detected: ${cssFrameworksStr}`);
167
- }
168
- }
169
- }
170
- } catch (error) {
171
- logger.debug(
172
- `Error detecting language/framework: ${error instanceof Error ? error.message : String(error)}`,
173
- );
174
- }
175
- }
176
-
177
- // Discover files to review
178
- const filesToReview = await discoverFilesForReview(effectiveTarget, projectPath, options);
179
-
180
- if (filesToReview.length === 0) {
181
- return; // No files to review, exit early
182
- }
183
-
184
- // If estimate flag is set, calculate and display token usage and cost estimates
185
- if (options.estimate) {
186
- // Get the model name from options or environment variables
187
- const modelName =
188
- options.model || process.env.AI_CODE_REVIEW_MODEL || 'openrouter:anthropic/claude-3-opus-20240229';
189
-
190
- try {
191
- // Read file contents for token analysis
192
- const { fileInfos, errors } = await readFilesForReview(filesToReview, projectPath);
193
-
194
- // If we have errors reading files, report them but continue
195
- if (errors.length > 0) {
196
- console.warn(`Warning: Failed to read ${errors.length} file(s):`);
197
- for (const error of errors) {
198
- console.warn(` - ${error.path}: ${error.error}`);
199
- }
200
- }
201
-
202
- // Ensure we have at least some files to analyze
203
- if (fileInfos.length === 0) {
204
- throw new Error(
205
- 'No files could be read for review. Please check file permissions and paths.',
206
- );
207
- }
208
-
209
- // Perform estimation
210
- await performEstimation(fileInfos, filesToReview, options, modelName);
211
- } catch (error) {
212
- logger.error(
213
- `Estimation failed: ${error instanceof Error ? error.message : String(error)}`,
214
- );
215
- }
216
-
217
- return; // Exit after displaying the estimation
218
- }
219
-
220
- // Read file contents
221
- const { fileInfos } = await readFilesForReview(filesToReview, projectPath);
222
-
223
- // Read project documentation if enabled
224
- let projectDocs = null;
225
- if (options.includeProjectDocs) {
226
- logger.info('Reading project documentation...');
227
- projectDocs = await readProjectDocs(projectPath);
228
- }
229
-
230
- // Get the API client configuration
231
- const apiClientConfig = await selectApiClient(options);
232
-
233
- // Log writer model if configured
234
- const config = getConfig(options as any);
235
- logger.debug(`Config writerModel: ${config.writerModel}`);
236
- if (config.writerModel) {
237
- logger.info(`Using writer model for consolidation: ${config.writerModel}`);
238
- }
239
-
240
- // Perform token analysis to check if content exceeds context window
241
- let tokenAnalysis = null;
242
-
243
- if (!options.multiPass) {
244
- try {
245
- logger.info('Analyzing token usage to determine review strategy...');
246
-
247
- // Use the new TokenAnalyzer for more comprehensive analysis
248
- const { TokenAnalyzer } = await import('../analysis/tokens');
249
-
250
- const tokenAnalysisOptions = {
251
- reviewType: options.type,
252
- modelName: apiClientConfig.modelName,
253
- contextMaintenanceFactor: options.contextMaintenanceFactor || 0.15,
254
- forceSinglePass: options.forceSinglePass,
255
- batchTokenLimit: options.batchTokenLimit,
256
- };
257
-
258
- // Log if forceSinglePass is enabled
259
- if (options.forceSinglePass) {
260
- logger.info(
261
- 'Force single-pass mode is enabled. This will override the chunking recommendation.',
262
- );
263
- logger.info(
264
- "Note: This may result in token limit errors if the content exceeds the model's context window.",
265
- );
266
- }
267
-
268
- tokenAnalysis = TokenAnalyzer.analyzeFiles(fileInfos, tokenAnalysisOptions);
269
-
270
- } catch (error) {
271
- logger.warn(
272
- `Token analysis failed: ${error instanceof Error ? error.message : 'Unknown error'}`,
273
- );
274
- logger.info('Proceeding with review without token analysis');
275
- }
276
- }
277
-
278
- // Execute the review
279
- const reviewResult = await executeReview(
280
- fileInfos,
281
- options,
282
- apiClientConfig as any,
283
- projectDocs,
284
- tokenAnalysis,
285
- );
286
-
287
- // Handle review output
288
- await handleReviewOutput(reviewResult, options, outputBaseDir);
289
- } catch (error) {
290
- // Import TokenLimitError for specific handling
291
- const { TokenLimitError } = await import('../utils/apiErrorHandler');
292
-
293
- // Handle token limit errors with helpful guidance
294
- if (error instanceof TokenLimitError) {
295
- logger.error('');
296
- logger.error('==========================================');
297
- logger.error('TOKEN LIMIT EXCEEDED');
298
- logger.error('==========================================');
299
- logger.error(`The codebase is too large for single-pass review.`);
300
- if (error.tokenCount) {
301
- logger.error(`Content size: ${error.tokenCount.toLocaleString()} tokens`);
302
- }
303
- logger.error('');
304
- logger.error(
305
- 'SOLUTION: Use the --multi-pass flag to automatically split the review into multiple passes:',
306
- );
307
- logger.error('');
308
- logger.error(' cr-aia --multi-pass');
309
- logger.error('');
310
- logger.error(
311
- 'This will intelligently chunk your codebase and maintain context between passes.',
312
- );
313
- logger.error('==========================================');
314
- logger.error('');
315
-
316
- if (options.debug && error.stack) {
317
- logger.debug(`Error stack trace: ${error.stack}`);
318
- }
319
-
320
- // Re-throw with a cleaner message
321
- throw new Error('Token limit exceeded. Please use --multi-pass flag for large codebases.');
322
- }
323
-
324
- // Handle any other errors
325
- logger.error(`Review failed: ${error instanceof Error ? error.message : String(error)}`);
326
-
327
- if (error instanceof Error && error.stack && options.debug) {
328
- logger.debug(`Error stack trace: ${error.stack}`);
329
- }
330
-
331
- throw error;
332
- }
333
- }
@@ -1,56 +0,0 @@
1
- /**
2
- * @fileoverview Utilities for handling model information and display
3
- *
4
- * This module provides helper functions for parsing and displaying
5
- * provider and model information in a user-friendly format.
6
- */
7
-
8
- /**
9
- * Parse and display provider and model information
10
- *
11
- * @param modelName The full model name (e.g., 'openai:gpt-4.1')
12
- * @returns An object with provider and model display information
13
- */
14
- export function getProviderDisplayInfo(modelName: string): { provider: string; model: string } {
15
- const getFallbackInfo = () => {
16
- const parts = modelName.split(':');
17
-
18
- if (parts.length === 2 && parts[1]) {
19
- const providerPart = parts[0].toLowerCase();
20
- return {
21
- provider: providerPart.charAt(0).toUpperCase() + providerPart.slice(1), // Capitalize provider name
22
- model: parts[1],
23
- };
24
- }
25
-
26
- return {
27
- provider: 'Unknown',
28
- model: modelName,
29
- };
30
- };
31
-
32
- // If the model name doesn't contain a colon, it's not in the expected format
33
- if (!modelName.includes(':')) {
34
- return {
35
- provider: 'Unknown',
36
- model: modelName,
37
- };
38
- }
39
-
40
- try {
41
- const [providerPart, modelPart] = modelName.split(':', 2);
42
- if (modelPart) {
43
- const provider =
44
- providerPart.charAt(0).toUpperCase() + providerPart.slice(1).toLowerCase();
45
- return {
46
- provider,
47
- model: modelPart,
48
- };
49
- }
50
- } catch (_error) {
51
- // If parsing fails, use a fallback approach
52
- return getFallbackInfo();
53
- }
54
-
55
- return getFallbackInfo();
56
- }
@@ -1,83 +0,0 @@
1
- /**
2
- * @fileoverview Formatters for review issues in different formats.
3
- *
4
- * This module provides functions to format review issues in different formats,
5
- * including structured issues and schema-based issues.
6
- */
7
-
8
- import type { ReviewIssue } from '../../types/structuredReview';
9
-
10
- /**
11
- * Format a single issue from the schema format
12
- * @param issue Issue object from schema
13
- * @param index Issue number
14
- * @returns Formatted issue string
15
- */
16
- export function formatSchemaIssue(issue: any, index: number): string {
17
- let issueMarkdown = `### ${index}. ${issue.description}\n\n`;
18
-
19
- if (issue.filePath) {
20
- issueMarkdown += `**File**: \`${issue.filePath}\`\n`;
21
- }
22
-
23
- if (issue.location) {
24
- issueMarkdown += `**Location**: Lines ${issue.location.startLine}-${issue.location.endLine}\n\n`;
25
- }
26
-
27
- if (issue.currentCode) {
28
- issueMarkdown += `**Current Code**:\n\`\`\`\n${issue.currentCode}\n\`\`\`\n\n`;
29
- }
30
-
31
- if (issue.suggestedCode) {
32
- issueMarkdown += `**Suggested Fix**:\n\`\`\`\n${issue.suggestedCode}\n\`\`\`\n\n`;
33
- }
34
-
35
- if (issue.explanation) {
36
- issueMarkdown += `**Explanation**: ${issue.explanation}\n\n`;
37
- }
38
-
39
- issueMarkdown += `---\n\n`;
40
-
41
- return issueMarkdown;
42
- }
43
-
44
- /**
45
- * Format a single issue as Markdown
46
- * @param issue Review issue
47
- * @returns Markdown string
48
- */
49
- export function formatIssue(issue: ReviewIssue): string {
50
- // Guard against null or undefined issues
51
- if (!issue) {
52
- return '#### [Error: Issue data missing]';
53
- }
54
-
55
- const { title, type, filePath, lineNumbers, description, codeSnippet, suggestedFix, impact } =
56
- issue;
57
-
58
- let issueMarkdown = `#### ${title || '[Untitled Issue]'}\n`;
59
-
60
- if (filePath) {
61
- issueMarkdown += `- **Location**: \`${filePath}${lineNumbers ? `:${lineNumbers}` : ''}\`\n`;
62
- }
63
-
64
- if (type) {
65
- issueMarkdown += `- **Type**: ${type}\n`;
66
- }
67
-
68
- issueMarkdown += `- **Description**: ${description || 'No description provided'}\n`;
69
-
70
- if (codeSnippet) {
71
- issueMarkdown += `- **Code**:\n\`\`\`\n${codeSnippet}\n\`\`\`\n`;
72
- }
73
-
74
- if (suggestedFix) {
75
- issueMarkdown += `- **Suggested Fix**:\n\`\`\`\n${suggestedFix}\n\`\`\`\n`;
76
- }
77
-
78
- if (impact) {
79
- issueMarkdown += `- **Impact**: ${impact}\n`;
80
- }
81
-
82
- return issueMarkdown;
83
- }
@@ -1,77 +0,0 @@
1
- /**
2
- * @fileoverview Formatter for JSON output of code reviews.
3
- *
4
- * This module provides functions to format code review results as JSON,
5
- * including metadata, structured data, and content.
6
- */
7
-
8
- import type { ReviewResult } from '../../types/review';
9
- import { sanitizeContent } from '../../utils/sanitizer';
10
- import { createEnhancedMetadata, parseMetadata } from './MetadataFormatter';
11
- import { extractModelInfo } from './ModelInfoExtractor';
12
-
13
- /**
14
- * Format the review as JSON
15
- * @param review Review result to format
16
- * @returns JSON string
17
- */
18
- export function formatAsJson(review: ReviewResult): string {
19
- // Extract model information
20
- const { modelVendor, modelName, modelInfo } = extractModelInfo(review.modelUsed);
21
-
22
- // Sanitize the content to prevent XSS attacks
23
- const sanitizedContent = sanitizeContent(review.content);
24
-
25
- // Parse structured data if available
26
- let parsedStructuredData = review.structuredData;
27
- if (typeof review.structuredData === 'string') {
28
- try {
29
- parsedStructuredData = JSON.parse(review.structuredData);
30
- } catch (error) {
31
- console.error('Error parsing structured review data:', error);
32
- }
33
- }
34
-
35
- // Parse additional metadata if available
36
- const additionalMetadata = parseMetadata(review.metadata);
37
-
38
- // Format path for display
39
- let displayPath = review.filePath || '';
40
- if (!displayPath || displayPath === review.reviewType || displayPath === 'consolidated') {
41
- displayPath = `${process.cwd()} (Current Directory)`;
42
- }
43
-
44
- // Create enhanced metadata with detection info
45
- const enhancedMetadata = createEnhancedMetadata(
46
- modelVendor,
47
- modelName,
48
- modelInfo,
49
- review.reviewType,
50
- displayPath,
51
- review.timestamp,
52
- review.costInfo || review.cost,
53
- review.toolVersion,
54
- review.commandOptions,
55
- additionalMetadata,
56
- review.detectedLanguage,
57
- review.detectedFramework,
58
- review.frameworkVersion,
59
- review.cssFrameworks,
60
- );
61
-
62
- // Create a copy of the review with enhanced metadata
63
- const reviewWithMeta = {
64
- ...review,
65
- content: sanitizedContent,
66
- structuredData: parsedStructuredData,
67
- meta: enhancedMetadata,
68
- // Legacy metadata field for backward compatibility
69
- metadata: {
70
- model: modelInfo,
71
- generatedAt: new Date(review.timestamp).toISOString(),
72
- costEstimation: review.cost,
73
- },
74
- };
75
-
76
- return JSON.stringify(reviewWithMeta, null, 2);
77
- }