codereview-aia 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/dist/analysis/FindingsExtractor.d.ts +105 -0
  2. package/dist/analysis/FindingsExtractor.js +363 -0
  3. package/dist/analysis/FindingsExtractor.js.map +1 -0
  4. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +111 -0
  5. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +215 -0
  6. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +1 -0
  7. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +142 -0
  8. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +503 -0
  9. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +1 -0
  10. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +88 -0
  11. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +343 -0
  12. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +1 -0
  13. package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +104 -0
  14. package/dist/analysis/ai-detection/core/AIDetectionEngine.js +369 -0
  15. package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +1 -0
  16. package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +364 -0
  17. package/dist/analysis/ai-detection/types/DetectionTypes.js +32 -0
  18. package/dist/analysis/ai-detection/types/DetectionTypes.js.map +1 -0
  19. package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +97 -0
  20. package/dist/analysis/ai-detection/utils/SubmissionConverter.js +339 -0
  21. package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +1 -0
  22. package/dist/analysis/context/ReviewContext.d.ts +184 -0
  23. package/dist/analysis/context/ReviewContext.js +294 -0
  24. package/dist/analysis/context/ReviewContext.js.map +1 -0
  25. package/{src/analysis/context/index.ts → dist/analysis/context/index.d.ts} +0 -1
  26. package/dist/analysis/context/index.js +23 -0
  27. package/dist/analysis/context/index.js.map +1 -0
  28. package/{src/analysis/index.ts → dist/analysis/index.d.ts} +0 -1
  29. package/dist/analysis/index.js +24 -0
  30. package/dist/analysis/index.js.map +1 -0
  31. package/dist/analysis/static/wpPhpcsRunner.d.ts +11 -0
  32. package/dist/analysis/static/wpPhpcsRunner.js +219 -0
  33. package/dist/analysis/static/wpPhpcsRunner.js.map +1 -0
  34. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +27 -0
  35. package/{src/analysis/tokens/TokenAnalysisFormatter.ts → dist/analysis/tokens/TokenAnalysisFormatter.js} +64 -75
  36. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +1 -0
  37. package/dist/analysis/tokens/TokenAnalyzer.d.ts +155 -0
  38. package/dist/analysis/tokens/TokenAnalyzer.js +502 -0
  39. package/dist/analysis/tokens/TokenAnalyzer.js.map +1 -0
  40. package/{src/analysis/tokens/index.ts → dist/analysis/tokens/index.d.ts} +0 -1
  41. package/dist/analysis/tokens/index.js +24 -0
  42. package/dist/analysis/tokens/index.js.map +1 -0
  43. package/dist/clients/base/abstractClient.d.ts +99 -0
  44. package/dist/clients/base/abstractClient.js +98 -0
  45. package/dist/clients/base/abstractClient.js.map +1 -0
  46. package/dist/clients/base/httpClient.d.ts +24 -0
  47. package/dist/clients/base/httpClient.js +147 -0
  48. package/dist/clients/base/httpClient.js.map +1 -0
  49. package/{src/clients/base/index.ts → dist/clients/base/index.d.ts} +0 -1
  50. package/dist/clients/base/index.js +28 -0
  51. package/dist/clients/base/index.js.map +1 -0
  52. package/dist/clients/base/modelDetection.d.ts +41 -0
  53. package/dist/clients/base/modelDetection.js +88 -0
  54. package/dist/clients/base/modelDetection.js.map +1 -0
  55. package/dist/clients/base/responseProcessor.d.ts +45 -0
  56. package/dist/clients/base/responseProcessor.js +495 -0
  57. package/dist/clients/base/responseProcessor.js.map +1 -0
  58. package/dist/clients/factory/clientFactory.d.ts +23 -0
  59. package/dist/clients/factory/clientFactory.js +50 -0
  60. package/dist/clients/factory/clientFactory.js.map +1 -0
  61. package/{src/clients/factory/index.ts → dist/clients/factory/index.d.ts} +0 -1
  62. package/dist/clients/factory/index.js +24 -0
  63. package/dist/clients/factory/index.js.map +1 -0
  64. package/{src/clients/implementations/index.ts → dist/clients/implementations/index.d.ts} +0 -1
  65. package/dist/clients/implementations/index.js +24 -0
  66. package/dist/clients/implementations/index.js.map +1 -0
  67. package/dist/clients/implementations/openRouterClient.d.ts +69 -0
  68. package/dist/clients/implementations/openRouterClient.js +294 -0
  69. package/dist/clients/implementations/openRouterClient.js.map +1 -0
  70. package/dist/clients/openRouterClient.d.ts +42 -0
  71. package/dist/clients/openRouterClient.js +580 -0
  72. package/dist/clients/openRouterClient.js.map +1 -0
  73. package/{src/clients/openRouterClientWrapper.ts → dist/clients/openRouterClientWrapper.d.ts} +2 -24
  74. package/dist/clients/openRouterClientWrapper.js +64 -0
  75. package/dist/clients/openRouterClientWrapper.js.map +1 -0
  76. package/dist/clients/utils/directoryStructure.d.ts +14 -0
  77. package/dist/clients/utils/directoryStructure.js +48 -0
  78. package/dist/clients/utils/directoryStructure.js.map +1 -0
  79. package/{src/clients/utils/index.ts → dist/clients/utils/index.d.ts} +0 -1
  80. package/dist/clients/utils/index.js +31 -0
  81. package/dist/clients/utils/index.js.map +1 -0
  82. package/dist/clients/utils/languageDetection.d.ts +13 -0
  83. package/dist/clients/utils/languageDetection.js +46 -0
  84. package/dist/clients/utils/languageDetection.js.map +1 -0
  85. package/dist/clients/utils/promptFormatter.d.ts +37 -0
  86. package/dist/clients/utils/promptFormatter.js +150 -0
  87. package/dist/clients/utils/promptFormatter.js.map +1 -0
  88. package/{src/clients/utils/promptLoader.ts → dist/clients/utils/promptLoader.d.ts} +1 -27
  89. package/dist/clients/utils/promptLoader.js +49 -0
  90. package/dist/clients/utils/promptLoader.js.map +1 -0
  91. package/dist/clients/utils/tokenCounter.d.ts +81 -0
  92. package/dist/clients/utils/tokenCounter.js +184 -0
  93. package/dist/clients/utils/tokenCounter.js.map +1 -0
  94. package/dist/core/ApiClientSelector.d.ts +8 -0
  95. package/dist/core/ApiClientSelector.js +29 -0
  96. package/dist/core/ApiClientSelector.js.map +1 -0
  97. package/dist/core/ConfigurationService.d.ts +307 -0
  98. package/dist/core/ConfigurationService.js +516 -0
  99. package/dist/core/ConfigurationService.js.map +1 -0
  100. package/dist/core/ConsolidationService.d.ts +99 -0
  101. package/dist/core/ConsolidationService.js +341 -0
  102. package/dist/core/ConsolidationService.js.map +1 -0
  103. package/dist/core/InteractiveDisplayManager.d.ts +22 -0
  104. package/dist/core/InteractiveDisplayManager.js +70 -0
  105. package/dist/core/InteractiveDisplayManager.js.map +1 -0
  106. package/dist/core/OutputManager.d.ts +26 -0
  107. package/dist/core/OutputManager.js +217 -0
  108. package/dist/core/OutputManager.js.map +1 -0
  109. package/dist/core/ReviewGenerator.d.ts +13 -0
  110. package/dist/core/ReviewGenerator.js +102 -0
  111. package/dist/core/ReviewGenerator.js.map +1 -0
  112. package/dist/core/fileDiscovery.d.ts +35 -0
  113. package/dist/core/fileDiscovery.js +202 -0
  114. package/dist/core/fileDiscovery.js.map +1 -0
  115. package/dist/core/handlers/EstimationHandler.d.ts +18 -0
  116. package/dist/core/handlers/EstimationHandler.js +110 -0
  117. package/dist/core/handlers/EstimationHandler.js.map +1 -0
  118. package/dist/core/handlers/FileProcessingHandler.d.ts +31 -0
  119. package/dist/core/handlers/FileProcessingHandler.js +164 -0
  120. package/dist/core/handlers/FileProcessingHandler.js.map +1 -0
  121. package/dist/core/handlers/OutputHandler.d.ts +27 -0
  122. package/dist/core/handlers/OutputHandler.js +127 -0
  123. package/dist/core/handlers/OutputHandler.js.map +1 -0
  124. package/dist/core/handlers/ReviewExecutor.d.ts +32 -0
  125. package/dist/core/handlers/ReviewExecutor.js +111 -0
  126. package/dist/core/handlers/ReviewExecutor.js.map +1 -0
  127. package/dist/core/reviewOrchestrator.d.ts +24 -0
  128. package/dist/core/reviewOrchestrator.js +354 -0
  129. package/dist/core/reviewOrchestrator.js.map +1 -0
  130. package/dist/core/utils/ModelInfoUtils.d.ts +16 -0
  131. package/dist/core/utils/ModelInfoUtils.js +54 -0
  132. package/dist/core/utils/ModelInfoUtils.js.map +1 -0
  133. package/{src/formatters/outputFormatter.ts → dist/formatters/outputFormatter.d.ts} +2 -33
  134. package/dist/formatters/outputFormatter.js +65 -0
  135. package/dist/formatters/outputFormatter.js.map +1 -0
  136. package/dist/formatters/utils/IssueFormatters.d.ts +20 -0
  137. package/dist/formatters/utils/IssueFormatters.js +67 -0
  138. package/dist/formatters/utils/IssueFormatters.js.map +1 -0
  139. package/dist/formatters/utils/JsonFormatter.d.ts +13 -0
  140. package/dist/formatters/utils/JsonFormatter.js +57 -0
  141. package/dist/formatters/utils/JsonFormatter.js.map +1 -0
  142. package/dist/formatters/utils/MarkdownFormatters.d.ts +51 -0
  143. package/dist/formatters/utils/MarkdownFormatters.js +456 -0
  144. package/dist/formatters/utils/MarkdownFormatters.js.map +1 -0
  145. package/dist/formatters/utils/MetadataFormatter.d.ts +65 -0
  146. package/dist/formatters/utils/MetadataFormatter.js +219 -0
  147. package/dist/formatters/utils/MetadataFormatter.js.map +1 -0
  148. package/dist/formatters/utils/ModelInfoExtractor.d.ts +33 -0
  149. package/dist/formatters/utils/ModelInfoExtractor.js +111 -0
  150. package/dist/formatters/utils/ModelInfoExtractor.js.map +1 -0
  151. package/dist/index.d.ts +1 -0
  152. package/dist/index.js.map +1 -0
  153. package/dist/plugins/PluginInterface.d.ts +44 -0
  154. package/dist/plugins/PluginInterface.js +9 -0
  155. package/dist/plugins/PluginInterface.js.map +1 -0
  156. package/dist/plugins/PluginManager.d.ts +51 -0
  157. package/dist/plugins/PluginManager.js +151 -0
  158. package/dist/plugins/PluginManager.js.map +1 -0
  159. package/dist/prompts/PromptManager.d.ts +30 -0
  160. package/dist/prompts/PromptManager.js +62 -0
  161. package/dist/prompts/PromptManager.js.map +1 -0
  162. package/dist/prompts/cache/PromptCache.d.ts +32 -0
  163. package/dist/prompts/cache/PromptCache.js +48 -0
  164. package/dist/prompts/cache/PromptCache.js.map +1 -0
  165. package/dist/runtime/auth/service.d.ts +2 -0
  166. package/dist/runtime/auth/service.js +41 -0
  167. package/dist/runtime/auth/service.js.map +1 -0
  168. package/dist/runtime/auth/session.d.ts +5 -0
  169. package/dist/runtime/auth/session.js +87 -0
  170. package/dist/runtime/auth/session.js.map +1 -0
  171. package/dist/runtime/auth/types.d.ts +9 -0
  172. package/dist/runtime/auth/types.js +3 -0
  173. package/dist/runtime/auth/types.js.map +1 -0
  174. package/dist/runtime/cliEntry.d.ts +1 -0
  175. package/dist/runtime/cliEntry.js +276 -0
  176. package/dist/runtime/cliEntry.js.map +1 -0
  177. package/dist/runtime/debug/logManager.d.ts +5 -0
  178. package/dist/runtime/debug/logManager.js +31 -0
  179. package/dist/runtime/debug/logManager.js.map +1 -0
  180. package/dist/runtime/errors.d.ts +5 -0
  181. package/dist/runtime/errors.js +15 -0
  182. package/dist/runtime/errors.js.map +1 -0
  183. package/dist/runtime/fileCollector.d.ts +14 -0
  184. package/dist/runtime/fileCollector.js +381 -0
  185. package/dist/runtime/fileCollector.js.map +1 -0
  186. package/dist/runtime/manifest.d.ts +1 -0
  187. package/dist/runtime/manifest.js +65 -0
  188. package/dist/runtime/manifest.js.map +1 -0
  189. package/dist/runtime/openrouterProxy.d.ts +4 -0
  190. package/dist/runtime/openrouterProxy.js +43 -0
  191. package/dist/runtime/openrouterProxy.js.map +1 -0
  192. package/dist/runtime/preprod/batchStreamer.d.ts +54 -0
  193. package/dist/runtime/preprod/batchStreamer.js +159 -0
  194. package/dist/runtime/preprod/batchStreamer.js.map +1 -0
  195. package/dist/runtime/preprod/crEdgeServiceClient.d.ts +30 -0
  196. package/dist/runtime/preprod/crEdgeServiceClient.js +133 -0
  197. package/dist/runtime/preprod/crEdgeServiceClient.js.map +1 -0
  198. package/dist/runtime/preprod/progressTracker.d.ts +21 -0
  199. package/dist/runtime/preprod/progressTracker.js +80 -0
  200. package/dist/runtime/preprod/progressTracker.js.map +1 -0
  201. package/dist/runtime/preprod/webCheck.d.ts +1 -0
  202. package/dist/runtime/preprod/webCheck.js +102 -0
  203. package/dist/runtime/preprod/webCheck.js.map +1 -0
  204. package/dist/runtime/proxyConfig.d.ts +6 -0
  205. package/dist/runtime/proxyConfig.js +86 -0
  206. package/dist/runtime/proxyConfig.js.map +1 -0
  207. package/dist/runtime/proxyEnvironment.d.ts +3 -0
  208. package/dist/runtime/proxyEnvironment.js +63 -0
  209. package/dist/runtime/proxyEnvironment.js.map +1 -0
  210. package/dist/runtime/reportMerge.d.ts +30 -0
  211. package/dist/runtime/reportMerge.js +70 -0
  212. package/dist/runtime/reportMerge.js.map +1 -0
  213. package/dist/runtime/reporting/markdownReportBuilder.d.ts +17 -0
  214. package/dist/runtime/reporting/markdownReportBuilder.js +154 -0
  215. package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
  216. package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
  217. package/dist/runtime/reporting/reportDataCollector.js +170 -0
  218. package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
  219. package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
  220. package/dist/runtime/reporting/summaryGenerator.js +67 -0
  221. package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
  222. package/dist/runtime/reviewPipeline.d.ts +61 -0
  223. package/dist/runtime/reviewPipeline.js +231 -0
  224. package/dist/runtime/reviewPipeline.js.map +1 -0
  225. package/dist/runtime/runAiCodeReview.d.ts +36 -0
  226. package/dist/runtime/runAiCodeReview.js +409 -0
  227. package/dist/runtime/runAiCodeReview.js.map +1 -0
  228. package/dist/runtime/runtimeConfig.d.ts +4 -0
  229. package/dist/runtime/runtimeConfig.js +7 -0
  230. package/dist/runtime/runtimeConfig.js.map +1 -0
  231. package/dist/runtime/ui/Layout.d.ts +11 -0
  232. package/dist/runtime/ui/Layout.js +47 -0
  233. package/dist/runtime/ui/Layout.js.map +1 -0
  234. package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
  235. package/dist/runtime/ui/RuntimeApp.js +275 -0
  236. package/dist/runtime/ui/RuntimeApp.js.map +1 -0
  237. package/dist/runtime/ui/inkModules.d.ts +10 -0
  238. package/dist/runtime/ui/inkModules.js +63 -0
  239. package/dist/runtime/ui/inkModules.js.map +1 -0
  240. package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
  241. package/dist/runtime/ui/screens/AuthScreen.js +67 -0
  242. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
  243. package/dist/runtime/ui/screens/ModeSelection.d.ts +11 -0
  244. package/dist/runtime/ui/screens/ModeSelection.js +169 -0
  245. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
  246. package/dist/runtime/ui/screens/ProgressScreen.d.ts +21 -0
  247. package/dist/runtime/ui/screens/ProgressScreen.js +86 -0
  248. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
  249. package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
  250. package/dist/runtime/ui/screens/ResultsScreen.js +34 -0
  251. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
  252. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
  253. package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
  254. package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
  255. package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
  256. package/dist/strategies/CodingTestReviewStrategy.js +681 -0
  257. package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
  258. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
  259. package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
  260. package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
  261. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
  262. package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
  263. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
  264. package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
  265. package/dist/strategies/MultiPassReviewStrategy.js +590 -0
  266. package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
  267. package/dist/strategies/ReviewStrategy.d.ts +45 -0
  268. package/dist/strategies/ReviewStrategy.js +24 -0
  269. package/dist/strategies/ReviewStrategy.js.map +1 -0
  270. package/dist/strategies/StrategyFactory.d.ts +19 -0
  271. package/dist/strategies/StrategyFactory.js +72 -0
  272. package/dist/strategies/StrategyFactory.js.map +1 -0
  273. package/{src/strategies/index.ts → dist/strategies/index.d.ts} +0 -1
  274. package/dist/strategies/index.js +30 -0
  275. package/dist/strategies/index.js.map +1 -0
  276. package/dist/tokenizers/baseTokenizer.d.ts +25 -0
  277. package/dist/tokenizers/baseTokenizer.js +48 -0
  278. package/dist/tokenizers/baseTokenizer.js.map +1 -0
  279. package/dist/tokenizers/gptTokenizer.d.ts +7 -0
  280. package/dist/tokenizers/gptTokenizer.js +28 -0
  281. package/dist/tokenizers/gptTokenizer.js.map +1 -0
  282. package/{src/tokenizers/index.ts → dist/tokenizers/index.d.ts} +0 -1
  283. package/dist/tokenizers/index.js +24 -0
  284. package/dist/tokenizers/index.js.map +1 -0
  285. package/dist/types/apiResponses.d.ts +39 -0
  286. package/dist/types/apiResponses.js +9 -0
  287. package/dist/types/apiResponses.js.map +1 -0
  288. package/dist/types/cli.d.ts +22 -0
  289. package/dist/types/cli.js +3 -0
  290. package/dist/types/cli.js.map +1 -0
  291. package/{src/types/common.ts → dist/types/common.d.ts} +2 -19
  292. package/dist/types/common.js +14 -0
  293. package/dist/types/common.js.map +1 -0
  294. package/dist/types/configuration.d.ts +682 -0
  295. package/dist/types/configuration.js +65 -0
  296. package/dist/types/configuration.js.map +1 -0
  297. package/dist/types/review.d.ts +318 -0
  298. package/dist/types/review.js +8 -0
  299. package/dist/types/review.js.map +1 -0
  300. package/dist/types/reviewSchema.d.ts +543 -0
  301. package/{src/types/reviewSchema.ts → dist/types/reviewSchema.js} +44 -104
  302. package/dist/types/reviewSchema.js.map +1 -0
  303. package/dist/types/structuredReview.d.ts +119 -0
  304. package/dist/types/structuredReview.js +6 -0
  305. package/dist/types/structuredReview.js.map +1 -0
  306. package/dist/types/tokenAnalysis.d.ts +44 -0
  307. package/dist/types/tokenAnalysis.js +4 -0
  308. package/dist/types/tokenAnalysis.js.map +1 -0
  309. package/dist/utils/FileReader.d.ts +33 -0
  310. package/dist/utils/FileReader.js +88 -0
  311. package/dist/utils/FileReader.js.map +1 -0
  312. package/dist/utils/FileWriter.d.ts +26 -0
  313. package/dist/utils/FileWriter.js +76 -0
  314. package/dist/utils/FileWriter.js.map +1 -0
  315. package/dist/utils/PathGenerator.d.ts +30 -0
  316. package/dist/utils/PathGenerator.js +82 -0
  317. package/dist/utils/PathGenerator.js.map +1 -0
  318. package/dist/utils/api/apiUtils.d.ts +3 -0
  319. package/dist/utils/api/apiUtils.js +20 -0
  320. package/dist/utils/api/apiUtils.js.map +1 -0
  321. package/dist/utils/api/index.js +18 -0
  322. package/dist/utils/api/index.js.map +1 -0
  323. package/dist/utils/apiErrorHandler.d.ts +130 -0
  324. package/dist/utils/apiErrorHandler.js +256 -0
  325. package/dist/utils/apiErrorHandler.js.map +1 -0
  326. package/dist/utils/ciDataCollector.d.ts +51 -0
  327. package/dist/utils/ciDataCollector.js +197 -0
  328. package/dist/utils/ciDataCollector.js.map +1 -0
  329. package/dist/utils/codingTestConfigLoader.d.ts +66 -0
  330. package/dist/utils/codingTestConfigLoader.js +420 -0
  331. package/dist/utils/codingTestConfigLoader.js.map +1 -0
  332. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
  333. package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
  334. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
  335. package/dist/utils/detection/frameworkDetector.d.ts +43 -0
  336. package/dist/utils/detection/frameworkDetector.js +850 -0
  337. package/dist/utils/detection/frameworkDetector.js.map +1 -0
  338. package/{src/utils/detection/index.ts → dist/utils/detection/index.d.ts} +0 -1
  339. package/dist/utils/detection/index.js +28 -0
  340. package/dist/utils/detection/index.js.map +1 -0
  341. package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
  342. package/dist/utils/detection/projectTypeDetector.js +469 -0
  343. package/dist/utils/detection/projectTypeDetector.js.map +1 -0
  344. package/dist/utils/diagramGenerator.d.ts +49 -0
  345. package/dist/utils/diagramGenerator.js +218 -0
  346. package/dist/utils/diagramGenerator.js.map +1 -0
  347. package/dist/utils/errorLogger.d.ts +24 -0
  348. package/dist/utils/errorLogger.js +59 -0
  349. package/dist/utils/errorLogger.js.map +1 -0
  350. package/dist/utils/estimationUtils.d.ts +139 -0
  351. package/dist/utils/estimationUtils.js +329 -0
  352. package/dist/utils/estimationUtils.js.map +1 -0
  353. package/dist/utils/fileFilters.d.ts +72 -0
  354. package/dist/utils/fileFilters.js +338 -0
  355. package/dist/utils/fileFilters.js.map +1 -0
  356. package/dist/utils/fileSystem.d.ts +22 -0
  357. package/dist/utils/fileSystem.js +45 -0
  358. package/dist/utils/fileSystem.js.map +1 -0
  359. package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -14
  360. package/dist/utils/index.js +52 -0
  361. package/dist/utils/index.js.map +1 -0
  362. package/dist/utils/logger.d.ts +77 -0
  363. package/dist/utils/logger.js +271 -0
  364. package/dist/utils/logger.js.map +1 -0
  365. package/dist/utils/pathValidator.d.ts +40 -0
  366. package/dist/utils/pathValidator.js +98 -0
  367. package/dist/utils/pathValidator.js.map +1 -0
  368. package/{src/utils/priorityFilter.ts → dist/utils/priorityFilter.d.ts} +1 -26
  369. package/dist/utils/priorityFilter.js +54 -0
  370. package/dist/utils/priorityFilter.js.map +1 -0
  371. package/dist/utils/projectDocs.d.ts +47 -0
  372. package/dist/utils/projectDocs.js +158 -0
  373. package/dist/utils/projectDocs.js.map +1 -0
  374. package/dist/utils/promptPaths.d.ts +6 -0
  375. package/dist/utils/promptPaths.js +33 -0
  376. package/dist/utils/promptPaths.js.map +1 -0
  377. package/dist/utils/promptTemplateManager.d.ts +34 -0
  378. package/dist/utils/promptTemplateManager.js +141 -0
  379. package/dist/utils/promptTemplateManager.js.map +1 -0
  380. package/dist/utils/review/consolidateReview.d.ts +15 -0
  381. package/dist/utils/review/consolidateReview.js +481 -0
  382. package/dist/utils/review/consolidateReview.js.map +1 -0
  383. package/dist/utils/review/fixDisplay.d.ts +20 -0
  384. package/dist/utils/review/fixDisplay.js +84 -0
  385. package/dist/utils/review/fixDisplay.js.map +1 -0
  386. package/dist/utils/review/fixImplementation.d.ts +28 -0
  387. package/dist/utils/review/fixImplementation.js +60 -0
  388. package/dist/utils/review/fixImplementation.js.map +1 -0
  389. package/dist/utils/review/index.d.ts +13 -0
  390. package/dist/utils/review/index.js +50 -0
  391. package/dist/utils/review/index.js.map +1 -0
  392. package/dist/utils/review/interactiveProcessing.d.ts +25 -0
  393. package/dist/utils/review/interactiveProcessing.js +251 -0
  394. package/dist/utils/review/interactiveProcessing.js.map +1 -0
  395. package/dist/utils/review/progressTracker.d.ts +106 -0
  396. package/dist/utils/review/progressTracker.js +227 -0
  397. package/dist/utils/review/progressTracker.js.map +1 -0
  398. package/dist/utils/review/reviewExtraction.d.ts +31 -0
  399. package/dist/utils/review/reviewExtraction.js +324 -0
  400. package/dist/utils/review/reviewExtraction.js.map +1 -0
  401. package/dist/utils/review/types.d.ts +45 -0
  402. package/dist/utils/review/types.js +18 -0
  403. package/dist/utils/review/types.js.map +1 -0
  404. package/{src/utils/reviewActionHandler.ts → dist/utils/reviewActionHandler.d.ts} +0 -2
  405. package/dist/utils/reviewActionHandler.js +34 -0
  406. package/dist/utils/reviewActionHandler.js.map +1 -0
  407. package/dist/utils/reviewParser.d.ts +34 -0
  408. package/dist/utils/reviewParser.js +218 -0
  409. package/dist/utils/reviewParser.js.map +1 -0
  410. package/dist/utils/sanitizer.d.ts +82 -0
  411. package/dist/utils/sanitizer.js +239 -0
  412. package/dist/utils/sanitizer.js.map +1 -0
  413. package/dist/utils/smartFileSelector.d.ts +50 -0
  414. package/dist/utils/smartFileSelector.js +261 -0
  415. package/dist/utils/smartFileSelector.js.map +1 -0
  416. package/dist/utils/templateLoader.d.ts +44 -0
  417. package/dist/utils/templateLoader.js +431 -0
  418. package/dist/utils/templateLoader.js.map +1 -0
  419. package/dist/utils/treeGenerator.d.ts +12 -0
  420. package/dist/utils/treeGenerator.js +133 -0
  421. package/dist/utils/treeGenerator.js.map +1 -0
  422. package/package.json +5 -1
  423. package/.cr-aia.yml +0 -23
  424. package/.crignore +0 -0
  425. package/docs/opt-in-full-context.md +0 -27
  426. package/reports/cr-cr-aia-17-11-2025-20-13.md +0 -354
  427. package/src/analysis/FindingsExtractor.ts +0 -431
  428. package/src/analysis/ai-detection/analyzers/BaseAnalyzer.ts +0 -267
  429. package/src/analysis/ai-detection/analyzers/DocumentationAnalyzer.ts +0 -622
  430. package/src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts +0 -430
  431. package/src/analysis/ai-detection/core/AIDetectionEngine.ts +0 -467
  432. package/src/analysis/ai-detection/types/DetectionTypes.ts +0 -406
  433. package/src/analysis/ai-detection/utils/SubmissionConverter.ts +0 -390
  434. package/src/analysis/context/ReviewContext.ts +0 -378
  435. package/src/analysis/tokens/TokenAnalyzer.ts +0 -747
  436. package/src/clients/base/abstractClient.ts +0 -190
  437. package/src/clients/base/httpClient.ts +0 -160
  438. package/src/clients/base/modelDetection.ts +0 -107
  439. package/src/clients/base/responseProcessor.ts +0 -586
  440. package/src/clients/factory/clientFactory.ts +0 -55
  441. package/src/clients/implementations/openRouterClient.ts +0 -413
  442. package/src/clients/openRouterClient.ts +0 -870
  443. package/src/clients/utils/directoryStructure.ts +0 -52
  444. package/src/clients/utils/languageDetection.ts +0 -44
  445. package/src/clients/utils/promptFormatter.ts +0 -182
  446. package/src/clients/utils/tokenCounter.ts +0 -297
  447. package/src/core/ApiClientSelector.ts +0 -37
  448. package/src/core/ConfigurationService.ts +0 -591
  449. package/src/core/ConsolidationService.ts +0 -423
  450. package/src/core/InteractiveDisplayManager.ts +0 -81
  451. package/src/core/OutputManager.ts +0 -275
  452. package/src/core/ReviewGenerator.ts +0 -140
  453. package/src/core/fileDiscovery.ts +0 -237
  454. package/src/core/handlers/EstimationHandler.ts +0 -104
  455. package/src/core/handlers/FileProcessingHandler.ts +0 -210
  456. package/src/core/handlers/OutputHandler.ts +0 -125
  457. package/src/core/handlers/ReviewExecutor.ts +0 -104
  458. package/src/core/reviewOrchestrator.ts +0 -333
  459. package/src/core/utils/ModelInfoUtils.ts +0 -56
  460. package/src/formatters/utils/IssueFormatters.ts +0 -83
  461. package/src/formatters/utils/JsonFormatter.ts +0 -77
  462. package/src/formatters/utils/MarkdownFormatters.ts +0 -609
  463. package/src/formatters/utils/MetadataFormatter.ts +0 -269
  464. package/src/formatters/utils/ModelInfoExtractor.ts +0 -115
  465. package/src/index.ts +0 -25
  466. package/src/plugins/PluginInterface.ts +0 -50
  467. package/src/plugins/PluginManager.ts +0 -126
  468. package/src/prompts/PromptManager.ts +0 -69
  469. package/src/prompts/cache/PromptCache.ts +0 -50
  470. package/src/prompts/promptText/common/variables/css-frameworks.json +0 -33
  471. package/src/prompts/promptText/common/variables/framework-versions.json +0 -45
  472. package/src/prompts/promptText/frameworks/react/comprehensive.hbs +0 -19
  473. package/src/prompts/promptText/languages/css/comprehensive.hbs +0 -18
  474. package/src/prompts/promptText/languages/generic/comprehensive.hbs +0 -20
  475. package/src/prompts/promptText/languages/html/comprehensive.hbs +0 -18
  476. package/src/prompts/promptText/languages/javascript/comprehensive.hbs +0 -18
  477. package/src/prompts/promptText/languages/python/comprehensive.hbs +0 -18
  478. package/src/prompts/promptText/languages/typescript/comprehensive.hbs +0 -18
  479. package/src/runtime/auth/service.ts +0 -58
  480. package/src/runtime/auth/session.ts +0 -103
  481. package/src/runtime/auth/types.ts +0 -11
  482. package/src/runtime/cliEntry.ts +0 -214
  483. package/src/runtime/debug/logManager.ts +0 -37
  484. package/src/runtime/errors.ts +0 -13
  485. package/src/runtime/fileCollector.ts +0 -495
  486. package/src/runtime/manifest.ts +0 -64
  487. package/src/runtime/openrouterProxy.ts +0 -45
  488. package/src/runtime/preprod/webCheck.ts +0 -104
  489. package/src/runtime/proxyConfig.ts +0 -94
  490. package/src/runtime/proxyEnvironment.ts +0 -71
  491. package/src/runtime/reportMerge.ts +0 -102
  492. package/src/runtime/reporting/markdownReportBuilder.ts +0 -138
  493. package/src/runtime/reporting/reportDataCollector.ts +0 -234
  494. package/src/runtime/reporting/summaryGenerator.ts +0 -86
  495. package/src/runtime/reviewPipeline.ts +0 -200
  496. package/src/runtime/runAiCodeReview.ts +0 -308
  497. package/src/runtime/runtimeConfig.ts +0 -5
  498. package/src/runtime/ui/Layout.tsx +0 -57
  499. package/src/runtime/ui/RuntimeApp.tsx +0 -262
  500. package/src/runtime/ui/inkModules.ts +0 -73
  501. package/src/runtime/ui/screens/AuthScreen.tsx +0 -128
  502. package/src/runtime/ui/screens/ModeSelection.tsx +0 -185
  503. package/src/runtime/ui/screens/ProgressScreen.tsx +0 -110
  504. package/src/runtime/ui/screens/ResultsScreen.tsx +0 -103
  505. package/src/strategies/ArchitecturalReviewStrategy.ts +0 -54
  506. package/src/strategies/CodingTestReviewStrategy.ts +0 -920
  507. package/src/strategies/ConsolidatedReviewStrategy.ts +0 -59
  508. package/src/strategies/ExtractPatternsReviewStrategy.ts +0 -64
  509. package/src/strategies/MultiPassReviewStrategy.ts +0 -785
  510. package/src/strategies/ReviewStrategy.ts +0 -64
  511. package/src/strategies/StrategyFactory.ts +0 -79
  512. package/src/tokenizers/baseTokenizer.ts +0 -61
  513. package/src/tokenizers/gptTokenizer.ts +0 -27
  514. package/src/types/apiResponses.ts +0 -40
  515. package/src/types/cli.ts +0 -24
  516. package/src/types/configuration.ts +0 -201
  517. package/src/types/handlebars.d.ts +0 -5
  518. package/src/types/patch.d.ts +0 -25
  519. package/src/types/review.ts +0 -312
  520. package/src/types/reviewContext.d.ts +0 -65
  521. package/src/types/structuredReview.ts +0 -167
  522. package/src/types/tokenAnalysis.ts +0 -56
  523. package/src/utils/FileReader.ts +0 -93
  524. package/src/utils/FileWriter.ts +0 -76
  525. package/src/utils/PathGenerator.ts +0 -97
  526. package/src/utils/api/apiUtils.ts +0 -14
  527. package/src/utils/apiErrorHandler.ts +0 -287
  528. package/src/utils/ciDataCollector.ts +0 -252
  529. package/src/utils/codingTestConfigLoader.ts +0 -466
  530. package/src/utils/dependencies/aiDependencyAnalyzer.ts +0 -454
  531. package/src/utils/detection/frameworkDetector.ts +0 -879
  532. package/src/utils/detection/projectTypeDetector.ts +0 -518
  533. package/src/utils/diagramGenerator.ts +0 -206
  534. package/src/utils/errorLogger.ts +0 -60
  535. package/src/utils/estimationUtils.ts +0 -407
  536. package/src/utils/fileFilters.ts +0 -373
  537. package/src/utils/fileSystem.ts +0 -57
  538. package/src/utils/logger.ts +0 -290
  539. package/src/utils/pathValidator.ts +0 -98
  540. package/src/utils/projectDocs.ts +0 -189
  541. package/src/utils/promptPaths.ts +0 -29
  542. package/src/utils/promptTemplateManager.ts +0 -157
  543. package/src/utils/review/consolidateReview.ts +0 -553
  544. package/src/utils/review/fixDisplay.ts +0 -100
  545. package/src/utils/review/fixImplementation.ts +0 -61
  546. package/src/utils/review/index.ts +0 -36
  547. package/src/utils/review/interactiveProcessing.ts +0 -294
  548. package/src/utils/review/progressTracker.ts +0 -296
  549. package/src/utils/review/reviewExtraction.ts +0 -382
  550. package/src/utils/review/types.ts +0 -46
  551. package/src/utils/reviewParser.ts +0 -253
  552. package/src/utils/sanitizer.ts +0 -238
  553. package/src/utils/smartFileSelector.ts +0 -255
  554. package/src/utils/templateLoader.ts +0 -514
  555. package/src/utils/treeGenerator.ts +0 -153
  556. package/tsconfig.build.json +0 -14
  557. package/tsconfig.json +0 -59
  558. /package/{src/utils/api/index.ts → dist/utils/api/index.d.ts} +0 -0
@@ -0,0 +1,24 @@
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
+ import type { ReviewOptions } from '../types/review';
8
+ /**
9
+ * Orchestrate the code review process
10
+ *
11
+ * This function is the main entry point for the code review process. It coordinates
12
+ * the entire review workflow, including:
13
+ * - Validating inputs and environment variables
14
+ * - Selecting the appropriate API client based on available API keys
15
+ * - Discovering files to review
16
+ * - Handling different review types (consolidated, individual, architectural)
17
+ * - Managing output directories and file generation
18
+ * - Supporting interactive mode for real-time feedback
19
+ *
20
+ * @param target Path to the file or directory to review
21
+ * @param options Review options including type, output format, and interactive mode
22
+ * @throws Error if the review process fails for any reason
23
+ */
24
+ export declare function orchestrateReview(target: string, options: ReviewOptions): Promise<void>;
@@ -0,0 +1,354 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Review orchestrator module.
4
+ *
5
+ * This module is responsible for coordinating the review process,
6
+ * selecting the appropriate API client, and managing the review workflow.
7
+ */
8
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
9
+ if (k2 === undefined) k2 = k;
10
+ var desc = Object.getOwnPropertyDescriptor(m, k);
11
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
12
+ desc = { enumerable: true, get: function() { return m[k]; } };
13
+ }
14
+ Object.defineProperty(o, k2, desc);
15
+ }) : (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ o[k2] = m[k];
18
+ }));
19
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
20
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
21
+ }) : function(o, v) {
22
+ o["default"] = v;
23
+ });
24
+ var __importStar = (this && this.__importStar) || (function () {
25
+ var ownKeys = function(o) {
26
+ ownKeys = Object.getOwnPropertyNames || function (o) {
27
+ var ar = [];
28
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
29
+ return ar;
30
+ };
31
+ return ownKeys(o);
32
+ };
33
+ return function (mod) {
34
+ if (mod && mod.__esModule) return mod;
35
+ var result = {};
36
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
37
+ __setModuleDefault(result, mod);
38
+ return result;
39
+ };
40
+ })();
41
+ var __importDefault = (this && this.__importDefault) || function (mod) {
42
+ return (mod && mod.__esModule) ? mod : { "default": mod };
43
+ };
44
+ Object.defineProperty(exports, "__esModule", { value: true });
45
+ exports.orchestrateReview = orchestrateReview;
46
+ const path = __importStar(require("node:path"));
47
+ const apiUtils_1 = require("../utils/api/apiUtils");
48
+ const ConfigurationService_1 = require("../core/ConfigurationService");
49
+ const ConfigurationService_2 = require("../core/ConfigurationService");
50
+ const fileSystem_1 = require("../utils/fileSystem");
51
+ const logger_1 = __importDefault(require("../utils/logger"));
52
+ const projectDocs_1 = require("../utils/projectDocs");
53
+ // Import other dependencies
54
+ const ApiClientSelector_1 = require("./ApiClientSelector");
55
+ const EstimationHandler_1 = require("./handlers/EstimationHandler");
56
+ const wpPhpcsRunner_1 = require("../analysis/static/wpPhpcsRunner");
57
+ // Import handlers
58
+ const FileProcessingHandler_1 = require("./handlers/FileProcessingHandler");
59
+ const OutputHandler_1 = require("./handlers/OutputHandler");
60
+ const ReviewExecutor_1 = require("./handlers/ReviewExecutor");
61
+ /**
62
+ * Orchestrate the code review process
63
+ *
64
+ * This function is the main entry point for the code review process. It coordinates
65
+ * the entire review workflow, including:
66
+ * - Validating inputs and environment variables
67
+ * - Selecting the appropriate API client based on available API keys
68
+ * - Discovering files to review
69
+ * - Handling different review types (consolidated, individual, architectural)
70
+ * - Managing output directories and file generation
71
+ * - Supporting interactive mode for real-time feedback
72
+ *
73
+ * @param target Path to the file or directory to review
74
+ * @param options Review options including type, output format, and interactive mode
75
+ * @throws Error if the review process fails for any reason
76
+ */
77
+ async function orchestrateReview(target, options) {
78
+ // Initialize configuration
79
+ const resolvedConfig = (0, ConfigurationService_1.getConfig)(options);
80
+ try {
81
+ // Validate input parameters
82
+ if (options === undefined) {
83
+ throw new Error('Review options object must be provided');
84
+ }
85
+ // Validate that options contains a review type
86
+ if (!options.type) {
87
+ throw new Error('Review type must be specified in options');
88
+ }
89
+ // Ensure target is defined with a default of "." for current directory
90
+ const effectiveTarget = target || '.';
91
+ // Log if we're using the default target
92
+ if (!target || target.trim() === '') {
93
+ logger_1.default.info('No target path provided, defaulting to current directory (".")');
94
+ }
95
+ // Add debug information if debug mode is enabled
96
+ if (options.debug) {
97
+ logger_1.default.debug(`[ORCHESTRATOR] Effective target: "${effectiveTarget}"`);
98
+ logger_1.default.debug(`[ORCHESTRATOR] Review type: "${options.type}"`);
99
+ logger_1.default.debug(`Review options: ${JSON.stringify(options, null, 2)}`);
100
+ logger_1.default.debug(`Target path: ${effectiveTarget}${!target || target.trim() === '' ? ' (defaulted to ".")' : ''}`);
101
+ logger_1.default.debug(`Selected model: ${process.env.AI_CODE_REVIEW_MODEL || 'not set'}`);
102
+ logger_1.default.debug(`API key type: ${(0, apiUtils_1.getApiKeyType)() || 'None'}`);
103
+ }
104
+ // Test API connections if requested (removed - no longer supported)
105
+ if (options.testApi) {
106
+ logger_1.default.warn('API connection tests are not available in this build.');
107
+ }
108
+ // Log the review type
109
+ if (options.type === 'architectural') {
110
+ logger_1.default.info(`Starting architectural review for ${effectiveTarget}...`);
111
+ }
112
+ else if (options.type === 'coding-test') {
113
+ logger_1.default.info(`Starting coding test evaluation for ${effectiveTarget}...`);
114
+ }
115
+ else if (options.type === 'extract-patterns') {
116
+ logger_1.default.info(`Starting pattern extraction for ${effectiveTarget}...`);
117
+ }
118
+ else if (options.type === 'unused-code') {
119
+ logger_1.default.info(`Starting unused code review for ${effectiveTarget}...`);
120
+ }
121
+ else {
122
+ logger_1.default.info(`Starting ${options.type} review for ${effectiveTarget}...`);
123
+ }
124
+ // Determine the project path
125
+ const projectPath = process.cwd();
126
+ const projectName = path.basename(projectPath);
127
+ // Create output directory using the centralized function
128
+ const configOutputDir = ConfigurationService_2.configurationService.getPathsConfig().outputDir;
129
+ const outputBaseDir = (0, OutputHandler_1.createOutputDirectory)(projectPath, {
130
+ outputDir: options.outputDir,
131
+ configOutputDir: configOutputDir,
132
+ });
133
+ // Create the directory
134
+ await (0, fileSystem_1.createDirectory)(outputBaseDir);
135
+ // Log project information
136
+ logger_1.default.info(`Project: ${projectName}`);
137
+ logger_1.default.info(`Project path: ${projectPath}`);
138
+ // Detect language and framework
139
+ let frameworkDetectionResult = null;
140
+ if (!options.language) {
141
+ try {
142
+ const { detectFramework } = await Promise.resolve().then(() => __importStar(require('../utils/detection')));
143
+ frameworkDetectionResult = await detectFramework(projectPath);
144
+ if (frameworkDetectionResult) {
145
+ options.language = frameworkDetectionResult.language;
146
+ options.framework = frameworkDetectionResult.framework;
147
+ if (frameworkDetectionResult.framework !== 'none' &&
148
+ frameworkDetectionResult.confidence > 0.6) {
149
+ logger_1.default.info(`Detected language: ${frameworkDetectionResult.language}, framework: ${frameworkDetectionResult.framework} (confidence: ${frameworkDetectionResult.confidence.toFixed(2)})`);
150
+ if (frameworkDetectionResult.frameworkVersion) {
151
+ logger_1.default.info(`Framework version: ${frameworkDetectionResult.frameworkVersion}`);
152
+ }
153
+ if (frameworkDetectionResult.additionalFrameworks &&
154
+ frameworkDetectionResult.additionalFrameworks.length > 0) {
155
+ logger_1.default.info(`Additional frameworks detected: ${frameworkDetectionResult.additionalFrameworks.join(', ')}`);
156
+ }
157
+ if (frameworkDetectionResult.cssFrameworks &&
158
+ frameworkDetectionResult.cssFrameworks.length > 0) {
159
+ const cssFrameworksStr = frameworkDetectionResult.cssFrameworks
160
+ .map((cf) => (cf.version ? `${cf.name} (${cf.version})` : cf.name))
161
+ .join(', ');
162
+ logger_1.default.info(`CSS frameworks detected: ${cssFrameworksStr}`);
163
+ }
164
+ }
165
+ else {
166
+ logger_1.default.info(`Detected language: ${frameworkDetectionResult.language}, no specific framework detected`);
167
+ // Still log CSS frameworks if detected
168
+ if (frameworkDetectionResult.cssFrameworks &&
169
+ frameworkDetectionResult.cssFrameworks.length > 0) {
170
+ const cssFrameworksStr = frameworkDetectionResult.cssFrameworks
171
+ .map((cf) => (cf.version ? `${cf.name} (${cf.version})` : cf.name))
172
+ .join(', ');
173
+ logger_1.default.info(`CSS frameworks detected: ${cssFrameworksStr}`);
174
+ }
175
+ }
176
+ }
177
+ }
178
+ catch (error) {
179
+ logger_1.default.debug(`Error detecting language/framework: ${error instanceof Error ? error.message : String(error)}`);
180
+ }
181
+ }
182
+ if (typeof options.useWordPressStandards === 'undefined') {
183
+ const forcedDisable = options.disableWordPress ?? resolvedConfig.wordpressForceDisable;
184
+ const forcedEnable = options.forceWordPress ?? resolvedConfig.wordpressForceEnable;
185
+ if (forcedDisable) {
186
+ options.useWordPressStandards = false;
187
+ }
188
+ else if (forcedEnable) {
189
+ options.useWordPressStandards = true;
190
+ }
191
+ else if (resolvedConfig.wordpressAutoDetect !== false) {
192
+ options.useWordPressStandards = frameworkDetectionResult?.framework === 'wordpress';
193
+ }
194
+ else {
195
+ options.useWordPressStandards = false;
196
+ }
197
+ }
198
+ let wordpressReport = options.wordpressStandardsReport;
199
+ // Discover files to review
200
+ const filesToReview = await (0, FileProcessingHandler_1.discoverFilesForReview)(effectiveTarget, projectPath, options);
201
+ if (filesToReview.length === 0) {
202
+ return; // No files to review, exit early
203
+ }
204
+ // If estimate flag is set, calculate and display token usage and cost estimates
205
+ if (options.estimate) {
206
+ // Get the model name from options or environment variables
207
+ const modelName = options.model || process.env.AI_CODE_REVIEW_MODEL || 'openrouter:anthropic/claude-3-opus-20240229';
208
+ try {
209
+ // Read file contents for token analysis
210
+ const { fileInfos, errors } = await (0, FileProcessingHandler_1.readFilesForReview)(filesToReview, projectPath);
211
+ // If we have errors reading files, report them but continue
212
+ if (errors.length > 0) {
213
+ console.warn(`Warning: Failed to read ${errors.length} file(s):`);
214
+ for (const error of errors) {
215
+ console.warn(` - ${error.path}: ${error.error}`);
216
+ }
217
+ }
218
+ // Ensure we have at least some files to analyze
219
+ if (fileInfos.length === 0) {
220
+ throw new Error('No files could be read for review. Please check file permissions and paths.');
221
+ }
222
+ // Perform estimation
223
+ await (0, EstimationHandler_1.performEstimation)(fileInfos, filesToReview, options, modelName);
224
+ }
225
+ catch (error) {
226
+ logger_1.default.error(`Estimation failed: ${error instanceof Error ? error.message : String(error)}`);
227
+ }
228
+ return; // Exit after displaying the estimation
229
+ }
230
+ // Read file contents
231
+ const { fileInfos } = await (0, FileProcessingHandler_1.readFilesForReview)(filesToReview, projectPath);
232
+ // Fallback: If WordPress standards are enabled but no report was passed (e.g. orchestrator called directly),
233
+ // run the scan now. In normal CLI usage via runAiCodeReview, this is already handled.
234
+ if (options.useWordPressStandards && !wordpressReport) {
235
+ const wordpressTargets = options.wordpressFilesForStandards ?? filesToReview;
236
+ const phpcsOptions = {
237
+ enabled: options.wordpressPhpcsEnabled ?? resolvedConfig.wordpressPhpcsEnabled,
238
+ phpcsPath: options.wordpressPhpcsPath ?? resolvedConfig.wordpressPhpcsPath,
239
+ rulesetPath: options.wordpressPhpcsStandard ?? resolvedConfig.wordpressPhpcsStandard,
240
+ testVersion: options.wordpressPhpcsTestVersion ?? resolvedConfig.wordpressPhpcsTestVersion,
241
+ };
242
+ wordpressReport = await (0, wpPhpcsRunner_1.getCachedWordPressReport)(projectPath, wordpressTargets, phpcsOptions);
243
+ options.wordpressStandardsReport = wordpressReport;
244
+ if (!options.wordpressStandardsSummary) {
245
+ options.wordpressStandardsSummary = (0, wpPhpcsRunner_1.summarizeWordPressReport)(wordpressReport, 6, projectPath);
246
+ }
247
+ }
248
+ if (options.useWordPressStandards && options.wordpressStandardsSummary) {
249
+ if (!options.runContext) {
250
+ options.runContext = {
251
+ repoName: projectName,
252
+ contextDocs: [],
253
+ };
254
+ }
255
+ options.runContext.wordpressStandards = wordpressReport;
256
+ options.runContext.contextDocs = [
257
+ ...(options.runContext.contextDocs || []),
258
+ {
259
+ path: 'WordPress Coding Standards',
260
+ snippet: options.wordpressStandardsSummary,
261
+ },
262
+ ];
263
+ }
264
+ // Read project documentation if enabled
265
+ let projectDocs = null;
266
+ if (options.includeProjectDocs) {
267
+ logger_1.default.info('Reading project documentation...');
268
+ projectDocs = await (0, projectDocs_1.readProjectDocs)(projectPath);
269
+ }
270
+ // Get the API client configuration
271
+ const apiClientConfig = await (0, ApiClientSelector_1.selectApiClient)(options);
272
+ // Log writer model if configured
273
+ const config = (0, ConfigurationService_1.getConfig)(options);
274
+ logger_1.default.debug(`Config writerModel: ${config.writerModel}`);
275
+ if (config.writerModel) {
276
+ logger_1.default.info(`Using writer model for consolidation: ${config.writerModel}`);
277
+ }
278
+ // Perform token analysis to check if content exceeds context window
279
+ let tokenAnalysis = null;
280
+ if (!options.multiPass) {
281
+ try {
282
+ logger_1.default.info('Analyzing token usage to determine review strategy...');
283
+ // Use the new TokenAnalyzer for more comprehensive analysis
284
+ const { TokenAnalyzer } = await Promise.resolve().then(() => __importStar(require('../analysis/tokens')));
285
+ const tokenAnalysisOptions = {
286
+ reviewType: options.type,
287
+ modelName: apiClientConfig.modelName,
288
+ contextMaintenanceFactor: options.contextMaintenanceFactor || 0.15,
289
+ forceSinglePass: options.forceSinglePass,
290
+ batchTokenLimit: options.batchTokenLimit,
291
+ };
292
+ // Log if forceSinglePass is enabled
293
+ if (options.forceSinglePass) {
294
+ logger_1.default.info('Force single-pass mode is enabled. This will override the chunking recommendation.');
295
+ logger_1.default.info("Note: This may result in token limit errors if the content exceeds the model's context window.");
296
+ }
297
+ tokenAnalysis = TokenAnalyzer.analyzeFiles(fileInfos, tokenAnalysisOptions);
298
+ }
299
+ catch (error) {
300
+ logger_1.default.warn(`Token analysis failed: ${error instanceof Error ? error.message : 'Unknown error'}`);
301
+ logger_1.default.info('Proceeding with review without token analysis');
302
+ }
303
+ }
304
+ // Execute the review
305
+ const reviewResult = await (0, ReviewExecutor_1.executeReview)(fileInfos, options, apiClientConfig, projectDocs, tokenAnalysis);
306
+ if (options.useWordPressStandards && options.wordpressStandardsReport) {
307
+ reviewResult.wordpressStandardsReport = options.wordpressStandardsReport;
308
+ reviewResult.metadata = {
309
+ ...(reviewResult.metadata || {}),
310
+ wordpressStandards: options.wordpressStandardsReport,
311
+ };
312
+ if (options.wordpressStandardsSummary) {
313
+ logger_1.default.info(options.wordpressStandardsSummary.split('\n')[0]);
314
+ }
315
+ }
316
+ // Handle review output
317
+ await (0, OutputHandler_1.handleReviewOutput)(reviewResult, options, outputBaseDir);
318
+ }
319
+ catch (error) {
320
+ // Import TokenLimitError for specific handling
321
+ const { TokenLimitError } = await Promise.resolve().then(() => __importStar(require('../utils/apiErrorHandler')));
322
+ // Handle token limit errors with helpful guidance
323
+ if (error instanceof TokenLimitError) {
324
+ logger_1.default.error('');
325
+ logger_1.default.error('==========================================');
326
+ logger_1.default.error('TOKEN LIMIT EXCEEDED');
327
+ logger_1.default.error('==========================================');
328
+ logger_1.default.error(`The codebase is too large for single-pass review.`);
329
+ if (error.tokenCount) {
330
+ logger_1.default.error(`Content size: ${error.tokenCount.toLocaleString()} tokens`);
331
+ }
332
+ logger_1.default.error('');
333
+ logger_1.default.error('SOLUTION: Use the --multi-pass flag to automatically split the review into multiple passes:');
334
+ logger_1.default.error('');
335
+ logger_1.default.error(' cr-aia --multi-pass');
336
+ logger_1.default.error('');
337
+ logger_1.default.error('This will intelligently chunk your codebase and maintain context between passes.');
338
+ logger_1.default.error('==========================================');
339
+ logger_1.default.error('');
340
+ if (options.debug && error.stack) {
341
+ logger_1.default.debug(`Error stack trace: ${error.stack}`);
342
+ }
343
+ // Re-throw with a cleaner message
344
+ throw new Error('Token limit exceeded. Please use --multi-pass flag for large codebases.');
345
+ }
346
+ // Handle any other errors
347
+ logger_1.default.error(`Review failed: ${error instanceof Error ? error.message : String(error)}`);
348
+ if (error instanceof Error && error.stack && options.debug) {
349
+ logger_1.default.debug(`Error stack trace: ${error.stack}`);
350
+ }
351
+ throw error;
352
+ }
353
+ }
354
+ //# sourceMappingURL=reviewOrchestrator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reviewOrchestrator.js","sourceRoot":"","sources":["../../src/core/reviewOrchestrator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
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
+ * Parse and display provider and model information
9
+ *
10
+ * @param modelName The full model name (e.g., 'openai:gpt-4.1')
11
+ * @returns An object with provider and model display information
12
+ */
13
+ export declare function getProviderDisplayInfo(modelName: string): {
14
+ provider: string;
15
+ model: string;
16
+ };
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Utilities for handling model information and display
4
+ *
5
+ * This module provides helper functions for parsing and displaying
6
+ * provider and model information in a user-friendly format.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.getProviderDisplayInfo = getProviderDisplayInfo;
10
+ /**
11
+ * Parse and display provider and model information
12
+ *
13
+ * @param modelName The full model name (e.g., 'openai:gpt-4.1')
14
+ * @returns An object with provider and model display information
15
+ */
16
+ function getProviderDisplayInfo(modelName) {
17
+ const getFallbackInfo = () => {
18
+ const parts = modelName.split(':');
19
+ if (parts.length === 2 && parts[1]) {
20
+ const providerPart = parts[0].toLowerCase();
21
+ return {
22
+ provider: providerPart.charAt(0).toUpperCase() + providerPart.slice(1), // Capitalize provider name
23
+ model: parts[1],
24
+ };
25
+ }
26
+ return {
27
+ provider: 'Unknown',
28
+ model: modelName,
29
+ };
30
+ };
31
+ // If the model name doesn't contain a colon, it's not in the expected format
32
+ if (!modelName.includes(':')) {
33
+ return {
34
+ provider: 'Unknown',
35
+ model: modelName,
36
+ };
37
+ }
38
+ try {
39
+ const [providerPart, modelPart] = modelName.split(':', 2);
40
+ if (modelPart) {
41
+ const provider = providerPart.charAt(0).toUpperCase() + providerPart.slice(1).toLowerCase();
42
+ return {
43
+ provider,
44
+ model: modelPart,
45
+ };
46
+ }
47
+ }
48
+ catch (_error) {
49
+ // If parsing fails, use a fallback approach
50
+ return getFallbackInfo();
51
+ }
52
+ return getFallbackInfo();
53
+ }
54
+ //# sourceMappingURL=ModelInfoUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelInfoUtils.js","sourceRoot":"","sources":["../../../src/core/utils/ModelInfoUtils.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAQH,wDA0CC;AAhDD;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,SAAiB;IACtD,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YACnC,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC5C,OAAO;gBACL,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,2BAA2B;gBACnG,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;aAChB,CAAC;QACJ,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC,CAAC;IAEF,6EAA6E;IAC7E,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC7B,OAAO;YACL,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE,SAAS;SACjB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,CAAC,YAAY,EAAE,SAAS,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;QAC1D,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GACZ,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;YAC7E,OAAO;gBACL,QAAQ;gBACR,KAAK,EAAE,SAAS;aACjB,CAAC;QACJ,CAAC;IACH,CAAC;IAAC,OAAO,MAAM,EAAE,CAAC;QAChB,4CAA4C;QAC5C,OAAO,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,OAAO,eAAe,EAAE,CAAC;AAC3B,CAAC"}
@@ -16,47 +16,16 @@
16
16
  * The formatter ensures that review outputs are consistent, readable, and properly
17
17
  * structured regardless of the review type or content.
18
18
  */
19
-
20
19
  import type { ReviewResult } from '../types/review';
21
- import { formatAsJson } from './utils/JsonFormatter';
22
- import { formatAsMarkdown } from './utils/MarkdownFormatters';
23
-
24
20
  /**
25
21
  * Format the review output based on the specified format
26
22
  * @param review Review result to format
27
23
  * @param format Output format (markdown or json)
28
24
  * @returns Formatted review output
29
25
  */
30
- export function formatReviewOutput(review: ReviewResult, format: string): string {
31
- // Debug logging to help diagnose issues with missing fields
32
- if (!review.filePath) {
33
- console.warn('Warning: filePath is undefined or empty in ReviewResult');
34
- }
35
- if (!review.modelUsed) {
36
- console.warn('Warning: modelUsed is undefined or empty in ReviewResult');
37
- }
38
-
39
- // Ensure costInfo is set if only cost is available
40
- if (review.cost && !review.costInfo) {
41
- review.costInfo = review.cost;
42
- }
43
-
44
- if (format === 'json') {
45
- return formatAsJson(review);
46
- }
47
-
48
- return formatAsMarkdown(review);
49
- }
50
-
26
+ export declare function formatReviewOutput(review: ReviewResult, format: string): string;
51
27
  export { formatIssue, formatSchemaIssue } from './utils/IssueFormatters';
52
28
  export { formatAsJson } from './utils/JsonFormatter';
53
- // Re-export utility functions for use by other modules
54
29
  export { formatAsMarkdown } from './utils/MarkdownFormatters';
55
- export {
56
- createEnhancedMetadata,
57
- formatCostInfo,
58
- formatMetadataSection,
59
- parseCostInfo,
60
- parseMetadata,
61
- } from './utils/MetadataFormatter';
30
+ export { createEnhancedMetadata, formatCostInfo, formatMetadataSection, parseCostInfo, parseMetadata, } from './utils/MetadataFormatter';
62
31
  export { extractModelInfo, extractModelInfoFromString } from './utils/ModelInfoExtractor';
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Formatter for code review output in different formats.
4
+ *
5
+ * This module provides formatting utilities for code review results, supporting
6
+ * multiple output formats including Markdown and JSON. It handles the transformation
7
+ * of raw review data into well-structured, readable formats suitable for different
8
+ * consumption patterns.
9
+ *
10
+ * Key responsibilities:
11
+ * - Converting review results to Markdown format with proper headings and sections
12
+ * - Converting review results to JSON format for programmatic consumption
13
+ * - Sanitizing content to prevent rendering issues
14
+ * - Adding metadata like review date, model used, and cost information
15
+ * - Formatting code snippets and recommendations consistently
16
+ *
17
+ * The formatter ensures that review outputs are consistent, readable, and properly
18
+ * structured regardless of the review type or content.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.extractModelInfoFromString = exports.extractModelInfo = exports.parseMetadata = exports.parseCostInfo = exports.formatMetadataSection = exports.formatCostInfo = exports.createEnhancedMetadata = exports.formatAsMarkdown = exports.formatAsJson = exports.formatSchemaIssue = exports.formatIssue = void 0;
22
+ exports.formatReviewOutput = formatReviewOutput;
23
+ const JsonFormatter_1 = require("./utils/JsonFormatter");
24
+ const MarkdownFormatters_1 = require("./utils/MarkdownFormatters");
25
+ /**
26
+ * Format the review output based on the specified format
27
+ * @param review Review result to format
28
+ * @param format Output format (markdown or json)
29
+ * @returns Formatted review output
30
+ */
31
+ function formatReviewOutput(review, format) {
32
+ // Debug logging to help diagnose issues with missing fields
33
+ if (!review.filePath) {
34
+ console.warn('Warning: filePath is undefined or empty in ReviewResult');
35
+ }
36
+ if (!review.modelUsed) {
37
+ console.warn('Warning: modelUsed is undefined or empty in ReviewResult');
38
+ }
39
+ // Ensure costInfo is set if only cost is available
40
+ if (review.cost && !review.costInfo) {
41
+ review.costInfo = review.cost;
42
+ }
43
+ if (format === 'json') {
44
+ return (0, JsonFormatter_1.formatAsJson)(review);
45
+ }
46
+ return (0, MarkdownFormatters_1.formatAsMarkdown)(review);
47
+ }
48
+ var IssueFormatters_1 = require("./utils/IssueFormatters");
49
+ Object.defineProperty(exports, "formatIssue", { enumerable: true, get: function () { return IssueFormatters_1.formatIssue; } });
50
+ Object.defineProperty(exports, "formatSchemaIssue", { enumerable: true, get: function () { return IssueFormatters_1.formatSchemaIssue; } });
51
+ var JsonFormatter_2 = require("./utils/JsonFormatter");
52
+ Object.defineProperty(exports, "formatAsJson", { enumerable: true, get: function () { return JsonFormatter_2.formatAsJson; } });
53
+ // Re-export utility functions for use by other modules
54
+ var MarkdownFormatters_2 = require("./utils/MarkdownFormatters");
55
+ Object.defineProperty(exports, "formatAsMarkdown", { enumerable: true, get: function () { return MarkdownFormatters_2.formatAsMarkdown; } });
56
+ var MetadataFormatter_1 = require("./utils/MetadataFormatter");
57
+ Object.defineProperty(exports, "createEnhancedMetadata", { enumerable: true, get: function () { return MetadataFormatter_1.createEnhancedMetadata; } });
58
+ Object.defineProperty(exports, "formatCostInfo", { enumerable: true, get: function () { return MetadataFormatter_1.formatCostInfo; } });
59
+ Object.defineProperty(exports, "formatMetadataSection", { enumerable: true, get: function () { return MetadataFormatter_1.formatMetadataSection; } });
60
+ Object.defineProperty(exports, "parseCostInfo", { enumerable: true, get: function () { return MetadataFormatter_1.parseCostInfo; } });
61
+ Object.defineProperty(exports, "parseMetadata", { enumerable: true, get: function () { return MetadataFormatter_1.parseMetadata; } });
62
+ var ModelInfoExtractor_1 = require("./utils/ModelInfoExtractor");
63
+ Object.defineProperty(exports, "extractModelInfo", { enumerable: true, get: function () { return ModelInfoExtractor_1.extractModelInfo; } });
64
+ Object.defineProperty(exports, "extractModelInfoFromString", { enumerable: true, get: function () { return ModelInfoExtractor_1.extractModelInfoFromString; } });
65
+ //# sourceMappingURL=outputFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"outputFormatter.js","sourceRoot":"","sources":["../../src/formatters/outputFormatter.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;AAYH,gDAmBC;AA5BD,yDAAqD;AACrD,mEAA8D;AAE9D;;;;;GAKG;AACH,SAAgB,kBAAkB,CAAC,MAAoB,EAAE,MAAc;IACrE,4DAA4D;IAC5D,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,yDAAyD,CAAC,CAAC;IAC1E,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;IAC3E,CAAC;IAED,mDAAmD;IACnD,IAAI,MAAM,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpC,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;IAChC,CAAC;IAED,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,OAAO,IAAA,4BAAY,EAAC,MAAM,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,IAAA,qCAAgB,EAAC,MAAM,CAAC,CAAC;AAClC,CAAC;AAED,2DAAyE;AAAhE,8GAAA,WAAW,OAAA;AAAE,oHAAA,iBAAiB,OAAA;AACvC,uDAAqD;AAA5C,6GAAA,YAAY,OAAA;AACrB,uDAAuD;AACvD,iEAA8D;AAArD,sHAAA,gBAAgB,OAAA;AACzB,+DAMmC;AALjC,2HAAA,sBAAsB,OAAA;AACtB,mHAAA,cAAc,OAAA;AACd,0HAAA,qBAAqB,OAAA;AACrB,kHAAA,aAAa,OAAA;AACb,kHAAA,aAAa,OAAA;AAEf,iEAA0F;AAAjF,sHAAA,gBAAgB,OAAA;AAAE,gIAAA,0BAA0B,OAAA"}
@@ -0,0 +1,20 @@
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
+ import type { ReviewIssue } from '../../types/structuredReview';
8
+ /**
9
+ * Format a single issue from the schema format
10
+ * @param issue Issue object from schema
11
+ * @param index Issue number
12
+ * @returns Formatted issue string
13
+ */
14
+ export declare function formatSchemaIssue(issue: any, index: number): string;
15
+ /**
16
+ * Format a single issue as Markdown
17
+ * @param issue Review issue
18
+ * @returns Markdown string
19
+ */
20
+ export declare function formatIssue(issue: ReviewIssue): string;