codereview-aia 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/dist/index.js +0 -7
  2. package/dist/index.js.map +1 -1
  3. package/dist/runtime/api/batcher.d.ts +20 -0
  4. package/dist/runtime/api/batcher.js +52 -0
  5. package/dist/runtime/api/batcher.js.map +1 -0
  6. package/dist/runtime/api/edgeClient.d.ts +102 -0
  7. package/dist/runtime/api/edgeClient.js +162 -0
  8. package/dist/runtime/api/edgeClient.js.map +1 -0
  9. package/dist/runtime/api/index.d.ts +2 -0
  10. package/dist/runtime/api/index.js +9 -0
  11. package/dist/runtime/api/index.js.map +1 -0
  12. package/dist/runtime/cliEntry.js +24 -76
  13. package/dist/runtime/cliEntry.js.map +1 -1
  14. package/dist/runtime/errors.d.ts +13 -3
  15. package/dist/runtime/errors.js +31 -8
  16. package/dist/runtime/errors.js.map +1 -1
  17. package/dist/runtime/llm/index.d.ts +1 -0
  18. package/dist/runtime/llm/index.js +6 -0
  19. package/dist/runtime/llm/index.js.map +1 -0
  20. package/dist/runtime/llm/openRouterClient.d.ts +13 -0
  21. package/dist/runtime/llm/openRouterClient.js +187 -0
  22. package/dist/runtime/llm/openRouterClient.js.map +1 -0
  23. package/dist/runtime/phpFileResolver.d.ts +14 -0
  24. package/dist/runtime/phpFileResolver.js +231 -0
  25. package/dist/runtime/phpFileResolver.js.map +1 -0
  26. package/dist/runtime/phpcsParser.d.ts +10 -0
  27. package/dist/runtime/phpcsParser.js +35 -0
  28. package/dist/runtime/phpcsParser.js.map +1 -0
  29. package/dist/runtime/phpcsRunner.d.ts +32 -0
  30. package/dist/runtime/phpcsRunner.js +62 -0
  31. package/dist/runtime/phpcsRunner.js.map +1 -0
  32. package/dist/runtime/reportWriter.d.ts +17 -0
  33. package/dist/runtime/reportWriter.js +80 -0
  34. package/dist/runtime/reportWriter.js.map +1 -0
  35. package/dist/runtime/reviewPipeline.d.ts +14 -36
  36. package/dist/runtime/reviewPipeline.js +146 -199
  37. package/dist/runtime/reviewPipeline.js.map +1 -1
  38. package/dist/runtime/ui/RuntimeApp.js +23 -154
  39. package/dist/runtime/ui/RuntimeApp.js.map +1 -1
  40. package/dist/runtime/ui/screens/AuthScreen.d.ts +2 -3
  41. package/dist/runtime/ui/screens/AuthScreen.js +7 -53
  42. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -1
  43. package/dist/runtime/ui/screens/ModeSelection.d.ts +1 -2
  44. package/dist/runtime/ui/screens/ModeSelection.js +14 -139
  45. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -1
  46. package/dist/runtime/ui/screens/ProgressScreen.d.ts +5 -13
  47. package/dist/runtime/ui/screens/ProgressScreen.js +24 -61
  48. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -1
  49. package/dist/runtime/ui/screens/ResultsScreen.js +7 -17
  50. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -1
  51. package/package.json +4 -44
  52. package/dist/analysis/FindingsExtractor.d.ts +0 -105
  53. package/dist/analysis/FindingsExtractor.js +0 -363
  54. package/dist/analysis/FindingsExtractor.js.map +0 -1
  55. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +0 -111
  56. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +0 -215
  57. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +0 -1
  58. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +0 -142
  59. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +0 -503
  60. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +0 -1
  61. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +0 -88
  62. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +0 -343
  63. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +0 -1
  64. package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +0 -104
  65. package/dist/analysis/ai-detection/core/AIDetectionEngine.js +0 -369
  66. package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +0 -1
  67. package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +0 -364
  68. package/dist/analysis/ai-detection/types/DetectionTypes.js +0 -32
  69. package/dist/analysis/ai-detection/types/DetectionTypes.js.map +0 -1
  70. package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +0 -97
  71. package/dist/analysis/ai-detection/utils/SubmissionConverter.js +0 -339
  72. package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +0 -1
  73. package/dist/analysis/context/ReviewContext.d.ts +0 -184
  74. package/dist/analysis/context/ReviewContext.js +0 -294
  75. package/dist/analysis/context/ReviewContext.js.map +0 -1
  76. package/dist/analysis/context/index.d.ts +0 -6
  77. package/dist/analysis/context/index.js +0 -23
  78. package/dist/analysis/context/index.js.map +0 -1
  79. package/dist/analysis/index.d.ts +0 -7
  80. package/dist/analysis/index.js +0 -24
  81. package/dist/analysis/index.js.map +0 -1
  82. package/dist/analysis/static/wpPhpcsRunner.d.ts +0 -11
  83. package/dist/analysis/static/wpPhpcsRunner.js +0 -219
  84. package/dist/analysis/static/wpPhpcsRunner.js.map +0 -1
  85. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +0 -27
  86. package/dist/analysis/tokens/TokenAnalysisFormatter.js +0 -143
  87. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +0 -1
  88. package/dist/analysis/tokens/TokenAnalyzer.d.ts +0 -155
  89. package/dist/analysis/tokens/TokenAnalyzer.js +0 -502
  90. package/dist/analysis/tokens/TokenAnalyzer.js.map +0 -1
  91. package/dist/analysis/tokens/index.d.ts +0 -7
  92. package/dist/analysis/tokens/index.js +0 -24
  93. package/dist/analysis/tokens/index.js.map +0 -1
  94. package/dist/clients/base/abstractClient.d.ts +0 -99
  95. package/dist/clients/base/abstractClient.js +0 -98
  96. package/dist/clients/base/abstractClient.js.map +0 -1
  97. package/dist/clients/base/httpClient.d.ts +0 -24
  98. package/dist/clients/base/httpClient.js +0 -147
  99. package/dist/clients/base/httpClient.js.map +0 -1
  100. package/dist/clients/base/index.d.ts +0 -11
  101. package/dist/clients/base/index.js +0 -28
  102. package/dist/clients/base/index.js.map +0 -1
  103. package/dist/clients/base/modelDetection.d.ts +0 -41
  104. package/dist/clients/base/modelDetection.js +0 -88
  105. package/dist/clients/base/modelDetection.js.map +0 -1
  106. package/dist/clients/base/responseProcessor.d.ts +0 -45
  107. package/dist/clients/base/responseProcessor.js +0 -495
  108. package/dist/clients/base/responseProcessor.js.map +0 -1
  109. package/dist/clients/factory/clientFactory.d.ts +0 -23
  110. package/dist/clients/factory/clientFactory.js +0 -50
  111. package/dist/clients/factory/clientFactory.js.map +0 -1
  112. package/dist/clients/factory/index.d.ts +0 -7
  113. package/dist/clients/factory/index.js +0 -24
  114. package/dist/clients/factory/index.js.map +0 -1
  115. package/dist/clients/implementations/index.d.ts +0 -7
  116. package/dist/clients/implementations/index.js +0 -24
  117. package/dist/clients/implementations/index.js.map +0 -1
  118. package/dist/clients/implementations/openRouterClient.d.ts +0 -69
  119. package/dist/clients/implementations/openRouterClient.js +0 -294
  120. package/dist/clients/implementations/openRouterClient.js.map +0 -1
  121. package/dist/clients/openRouterClient.d.ts +0 -42
  122. package/dist/clients/openRouterClient.js +0 -580
  123. package/dist/clients/openRouterClient.js.map +0 -1
  124. package/dist/clients/openRouterClientWrapper.d.ts +0 -22
  125. package/dist/clients/openRouterClientWrapper.js +0 -64
  126. package/dist/clients/openRouterClientWrapper.js.map +0 -1
  127. package/dist/clients/utils/directoryStructure.d.ts +0 -14
  128. package/dist/clients/utils/directoryStructure.js +0 -48
  129. package/dist/clients/utils/directoryStructure.js.map +0 -1
  130. package/dist/clients/utils/index.d.ts +0 -10
  131. package/dist/clients/utils/index.js +0 -31
  132. package/dist/clients/utils/index.js.map +0 -1
  133. package/dist/clients/utils/languageDetection.d.ts +0 -13
  134. package/dist/clients/utils/languageDetection.js +0 -46
  135. package/dist/clients/utils/languageDetection.js.map +0 -1
  136. package/dist/clients/utils/promptFormatter.d.ts +0 -37
  137. package/dist/clients/utils/promptFormatter.js +0 -150
  138. package/dist/clients/utils/promptFormatter.js.map +0 -1
  139. package/dist/clients/utils/promptLoader.d.ts +0 -27
  140. package/dist/clients/utils/promptLoader.js +0 -49
  141. package/dist/clients/utils/promptLoader.js.map +0 -1
  142. package/dist/clients/utils/tokenCounter.d.ts +0 -81
  143. package/dist/clients/utils/tokenCounter.js +0 -184
  144. package/dist/clients/utils/tokenCounter.js.map +0 -1
  145. package/dist/core/ApiClientSelector.d.ts +0 -8
  146. package/dist/core/ApiClientSelector.js +0 -29
  147. package/dist/core/ApiClientSelector.js.map +0 -1
  148. package/dist/core/ConfigurationService.d.ts +0 -307
  149. package/dist/core/ConfigurationService.js +0 -516
  150. package/dist/core/ConfigurationService.js.map +0 -1
  151. package/dist/core/ConsolidationService.d.ts +0 -99
  152. package/dist/core/ConsolidationService.js +0 -341
  153. package/dist/core/ConsolidationService.js.map +0 -1
  154. package/dist/core/InteractiveDisplayManager.d.ts +0 -22
  155. package/dist/core/InteractiveDisplayManager.js +0 -70
  156. package/dist/core/InteractiveDisplayManager.js.map +0 -1
  157. package/dist/core/OutputManager.d.ts +0 -26
  158. package/dist/core/OutputManager.js +0 -217
  159. package/dist/core/OutputManager.js.map +0 -1
  160. package/dist/core/ReviewGenerator.d.ts +0 -13
  161. package/dist/core/ReviewGenerator.js +0 -102
  162. package/dist/core/ReviewGenerator.js.map +0 -1
  163. package/dist/core/fileDiscovery.d.ts +0 -35
  164. package/dist/core/fileDiscovery.js +0 -202
  165. package/dist/core/fileDiscovery.js.map +0 -1
  166. package/dist/core/handlers/EstimationHandler.d.ts +0 -18
  167. package/dist/core/handlers/EstimationHandler.js +0 -110
  168. package/dist/core/handlers/EstimationHandler.js.map +0 -1
  169. package/dist/core/handlers/FileProcessingHandler.d.ts +0 -31
  170. package/dist/core/handlers/FileProcessingHandler.js +0 -164
  171. package/dist/core/handlers/FileProcessingHandler.js.map +0 -1
  172. package/dist/core/handlers/OutputHandler.d.ts +0 -27
  173. package/dist/core/handlers/OutputHandler.js +0 -127
  174. package/dist/core/handlers/OutputHandler.js.map +0 -1
  175. package/dist/core/handlers/ReviewExecutor.d.ts +0 -32
  176. package/dist/core/handlers/ReviewExecutor.js +0 -111
  177. package/dist/core/handlers/ReviewExecutor.js.map +0 -1
  178. package/dist/core/reviewOrchestrator.d.ts +0 -24
  179. package/dist/core/reviewOrchestrator.js +0 -354
  180. package/dist/core/reviewOrchestrator.js.map +0 -1
  181. package/dist/core/utils/ModelInfoUtils.d.ts +0 -16
  182. package/dist/core/utils/ModelInfoUtils.js +0 -54
  183. package/dist/core/utils/ModelInfoUtils.js.map +0 -1
  184. package/dist/formatters/outputFormatter.d.ts +0 -31
  185. package/dist/formatters/outputFormatter.js +0 -65
  186. package/dist/formatters/outputFormatter.js.map +0 -1
  187. package/dist/formatters/utils/IssueFormatters.d.ts +0 -20
  188. package/dist/formatters/utils/IssueFormatters.js +0 -67
  189. package/dist/formatters/utils/IssueFormatters.js.map +0 -1
  190. package/dist/formatters/utils/JsonFormatter.d.ts +0 -13
  191. package/dist/formatters/utils/JsonFormatter.js +0 -57
  192. package/dist/formatters/utils/JsonFormatter.js.map +0 -1
  193. package/dist/formatters/utils/MarkdownFormatters.d.ts +0 -51
  194. package/dist/formatters/utils/MarkdownFormatters.js +0 -456
  195. package/dist/formatters/utils/MarkdownFormatters.js.map +0 -1
  196. package/dist/formatters/utils/MetadataFormatter.d.ts +0 -65
  197. package/dist/formatters/utils/MetadataFormatter.js +0 -219
  198. package/dist/formatters/utils/MetadataFormatter.js.map +0 -1
  199. package/dist/formatters/utils/ModelInfoExtractor.d.ts +0 -33
  200. package/dist/formatters/utils/ModelInfoExtractor.js +0 -111
  201. package/dist/formatters/utils/ModelInfoExtractor.js.map +0 -1
  202. package/dist/plugins/PluginInterface.d.ts +0 -44
  203. package/dist/plugins/PluginInterface.js +0 -9
  204. package/dist/plugins/PluginInterface.js.map +0 -1
  205. package/dist/plugins/PluginManager.d.ts +0 -51
  206. package/dist/plugins/PluginManager.js +0 -151
  207. package/dist/plugins/PluginManager.js.map +0 -1
  208. package/dist/prompts/PromptManager.d.ts +0 -30
  209. package/dist/prompts/PromptManager.js +0 -62
  210. package/dist/prompts/PromptManager.js.map +0 -1
  211. package/dist/prompts/cache/PromptCache.d.ts +0 -32
  212. package/dist/prompts/cache/PromptCache.js +0 -48
  213. package/dist/prompts/cache/PromptCache.js.map +0 -1
  214. package/dist/runtime/auth/service.d.ts +0 -2
  215. package/dist/runtime/auth/service.js +0 -41
  216. package/dist/runtime/auth/service.js.map +0 -1
  217. package/dist/runtime/auth/session.d.ts +0 -5
  218. package/dist/runtime/auth/session.js +0 -87
  219. package/dist/runtime/auth/session.js.map +0 -1
  220. package/dist/runtime/auth/types.d.ts +0 -9
  221. package/dist/runtime/auth/types.js +0 -3
  222. package/dist/runtime/auth/types.js.map +0 -1
  223. package/dist/runtime/fileCollector.d.ts +0 -14
  224. package/dist/runtime/fileCollector.js +0 -381
  225. package/dist/runtime/fileCollector.js.map +0 -1
  226. package/dist/runtime/manifest.d.ts +0 -1
  227. package/dist/runtime/manifest.js +0 -65
  228. package/dist/runtime/manifest.js.map +0 -1
  229. package/dist/runtime/openrouterProxy.d.ts +0 -4
  230. package/dist/runtime/openrouterProxy.js +0 -43
  231. package/dist/runtime/openrouterProxy.js.map +0 -1
  232. package/dist/runtime/preprod/batchStreamer.d.ts +0 -54
  233. package/dist/runtime/preprod/batchStreamer.js +0 -159
  234. package/dist/runtime/preprod/batchStreamer.js.map +0 -1
  235. package/dist/runtime/preprod/crEdgeServiceClient.d.ts +0 -30
  236. package/dist/runtime/preprod/crEdgeServiceClient.js +0 -133
  237. package/dist/runtime/preprod/crEdgeServiceClient.js.map +0 -1
  238. package/dist/runtime/preprod/progressTracker.d.ts +0 -21
  239. package/dist/runtime/preprod/progressTracker.js +0 -80
  240. package/dist/runtime/preprod/progressTracker.js.map +0 -1
  241. package/dist/runtime/preprod/webCheck.d.ts +0 -1
  242. package/dist/runtime/preprod/webCheck.js +0 -102
  243. package/dist/runtime/preprod/webCheck.js.map +0 -1
  244. package/dist/runtime/proxyConfig.d.ts +0 -6
  245. package/dist/runtime/proxyConfig.js +0 -86
  246. package/dist/runtime/proxyConfig.js.map +0 -1
  247. package/dist/runtime/proxyEnvironment.d.ts +0 -3
  248. package/dist/runtime/proxyEnvironment.js +0 -63
  249. package/dist/runtime/proxyEnvironment.js.map +0 -1
  250. package/dist/runtime/reportMerge.d.ts +0 -30
  251. package/dist/runtime/reportMerge.js +0 -70
  252. package/dist/runtime/reportMerge.js.map +0 -1
  253. package/dist/runtime/reporting/markdownReportBuilder.d.ts +0 -17
  254. package/dist/runtime/reporting/markdownReportBuilder.js +0 -154
  255. package/dist/runtime/reporting/markdownReportBuilder.js.map +0 -1
  256. package/dist/runtime/reporting/reportDataCollector.d.ts +0 -31
  257. package/dist/runtime/reporting/reportDataCollector.js +0 -170
  258. package/dist/runtime/reporting/reportDataCollector.js.map +0 -1
  259. package/dist/runtime/reporting/summaryGenerator.d.ts +0 -10
  260. package/dist/runtime/reporting/summaryGenerator.js +0 -67
  261. package/dist/runtime/reporting/summaryGenerator.js.map +0 -1
  262. package/dist/runtime/runAiCodeReview.d.ts +0 -36
  263. package/dist/runtime/runAiCodeReview.js +0 -409
  264. package/dist/runtime/runAiCodeReview.js.map +0 -1
  265. package/dist/runtime/runtimeConfig.d.ts +0 -4
  266. package/dist/runtime/runtimeConfig.js +0 -7
  267. package/dist/runtime/runtimeConfig.js.map +0 -1
  268. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +0 -29
  269. package/dist/strategies/ArchitecturalReviewStrategy.js +0 -42
  270. package/dist/strategies/ArchitecturalReviewStrategy.js.map +0 -1
  271. package/dist/strategies/CodingTestReviewStrategy.d.ts +0 -194
  272. package/dist/strategies/CodingTestReviewStrategy.js +0 -681
  273. package/dist/strategies/CodingTestReviewStrategy.js.map +0 -1
  274. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +0 -25
  275. package/dist/strategies/ConsolidatedReviewStrategy.js +0 -45
  276. package/dist/strategies/ConsolidatedReviewStrategy.js.map +0 -1
  277. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +0 -30
  278. package/dist/strategies/ExtractPatternsReviewStrategy.js +0 -51
  279. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +0 -1
  280. package/dist/strategies/MultiPassReviewStrategy.d.ts +0 -86
  281. package/dist/strategies/MultiPassReviewStrategy.js +0 -590
  282. package/dist/strategies/MultiPassReviewStrategy.js.map +0 -1
  283. package/dist/strategies/ReviewStrategy.d.ts +0 -45
  284. package/dist/strategies/ReviewStrategy.js +0 -24
  285. package/dist/strategies/ReviewStrategy.js.map +0 -1
  286. package/dist/strategies/StrategyFactory.d.ts +0 -19
  287. package/dist/strategies/StrategyFactory.js +0 -72
  288. package/dist/strategies/StrategyFactory.js.map +0 -1
  289. package/dist/strategies/index.d.ts +0 -13
  290. package/dist/strategies/index.js +0 -30
  291. package/dist/strategies/index.js.map +0 -1
  292. package/dist/tokenizers/baseTokenizer.d.ts +0 -25
  293. package/dist/tokenizers/baseTokenizer.js +0 -48
  294. package/dist/tokenizers/baseTokenizer.js.map +0 -1
  295. package/dist/tokenizers/gptTokenizer.d.ts +0 -7
  296. package/dist/tokenizers/gptTokenizer.js +0 -28
  297. package/dist/tokenizers/gptTokenizer.js.map +0 -1
  298. package/dist/tokenizers/index.d.ts +0 -7
  299. package/dist/tokenizers/index.js +0 -24
  300. package/dist/tokenizers/index.js.map +0 -1
  301. package/dist/types/apiResponses.d.ts +0 -39
  302. package/dist/types/apiResponses.js +0 -9
  303. package/dist/types/apiResponses.js.map +0 -1
  304. package/dist/types/cli.d.ts +0 -22
  305. package/dist/types/cli.js +0 -3
  306. package/dist/types/cli.js.map +0 -1
  307. package/dist/types/common.d.ts +0 -22
  308. package/dist/types/common.js +0 -14
  309. package/dist/types/common.js.map +0 -1
  310. package/dist/types/configuration.d.ts +0 -682
  311. package/dist/types/configuration.js +0 -65
  312. package/dist/types/configuration.js.map +0 -1
  313. package/dist/types/review.d.ts +0 -318
  314. package/dist/types/review.js +0 -8
  315. package/dist/types/review.js.map +0 -1
  316. package/dist/types/reviewSchema.d.ts +0 -543
  317. package/dist/types/reviewSchema.js +0 -121
  318. package/dist/types/reviewSchema.js.map +0 -1
  319. package/dist/types/structuredReview.d.ts +0 -119
  320. package/dist/types/structuredReview.js +0 -6
  321. package/dist/types/structuredReview.js.map +0 -1
  322. package/dist/types/tokenAnalysis.d.ts +0 -44
  323. package/dist/types/tokenAnalysis.js +0 -4
  324. package/dist/types/tokenAnalysis.js.map +0 -1
  325. package/dist/utils/FileReader.d.ts +0 -33
  326. package/dist/utils/FileReader.js +0 -88
  327. package/dist/utils/FileReader.js.map +0 -1
  328. package/dist/utils/FileWriter.d.ts +0 -26
  329. package/dist/utils/FileWriter.js +0 -76
  330. package/dist/utils/FileWriter.js.map +0 -1
  331. package/dist/utils/PathGenerator.d.ts +0 -30
  332. package/dist/utils/PathGenerator.js +0 -82
  333. package/dist/utils/PathGenerator.js.map +0 -1
  334. package/dist/utils/api/apiUtils.d.ts +0 -3
  335. package/dist/utils/api/apiUtils.js +0 -20
  336. package/dist/utils/api/apiUtils.js.map +0 -1
  337. package/dist/utils/api/index.d.ts +0 -1
  338. package/dist/utils/api/index.js +0 -18
  339. package/dist/utils/api/index.js.map +0 -1
  340. package/dist/utils/apiErrorHandler.d.ts +0 -130
  341. package/dist/utils/apiErrorHandler.js +0 -256
  342. package/dist/utils/apiErrorHandler.js.map +0 -1
  343. package/dist/utils/ciDataCollector.d.ts +0 -51
  344. package/dist/utils/ciDataCollector.js +0 -197
  345. package/dist/utils/ciDataCollector.js.map +0 -1
  346. package/dist/utils/codingTestConfigLoader.d.ts +0 -66
  347. package/dist/utils/codingTestConfigLoader.js +0 -420
  348. package/dist/utils/codingTestConfigLoader.js.map +0 -1
  349. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +0 -30
  350. package/dist/utils/dependencies/aiDependencyAnalyzer.js +0 -343
  351. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +0 -1
  352. package/dist/utils/detection/frameworkDetector.d.ts +0 -43
  353. package/dist/utils/detection/frameworkDetector.js +0 -850
  354. package/dist/utils/detection/frameworkDetector.js.map +0 -1
  355. package/dist/utils/detection/index.d.ts +0 -9
  356. package/dist/utils/detection/index.js +0 -28
  357. package/dist/utils/detection/index.js.map +0 -1
  358. package/dist/utils/detection/projectTypeDetector.d.ts +0 -27
  359. package/dist/utils/detection/projectTypeDetector.js +0 -469
  360. package/dist/utils/detection/projectTypeDetector.js.map +0 -1
  361. package/dist/utils/diagramGenerator.d.ts +0 -49
  362. package/dist/utils/diagramGenerator.js +0 -218
  363. package/dist/utils/diagramGenerator.js.map +0 -1
  364. package/dist/utils/errorLogger.d.ts +0 -24
  365. package/dist/utils/errorLogger.js +0 -59
  366. package/dist/utils/errorLogger.js.map +0 -1
  367. package/dist/utils/estimationUtils.d.ts +0 -139
  368. package/dist/utils/estimationUtils.js +0 -329
  369. package/dist/utils/estimationUtils.js.map +0 -1
  370. package/dist/utils/fileFilters.d.ts +0 -72
  371. package/dist/utils/fileFilters.js +0 -338
  372. package/dist/utils/fileFilters.js.map +0 -1
  373. package/dist/utils/fileSystem.d.ts +0 -22
  374. package/dist/utils/fileSystem.js +0 -45
  375. package/dist/utils/fileSystem.js.map +0 -1
  376. package/dist/utils/index.d.ts +0 -22
  377. package/dist/utils/index.js +0 -52
  378. package/dist/utils/index.js.map +0 -1
  379. package/dist/utils/pathValidator.d.ts +0 -40
  380. package/dist/utils/pathValidator.js +0 -98
  381. package/dist/utils/pathValidator.js.map +0 -1
  382. package/dist/utils/priorityFilter.d.ts +0 -34
  383. package/dist/utils/priorityFilter.js +0 -54
  384. package/dist/utils/priorityFilter.js.map +0 -1
  385. package/dist/utils/projectDocs.d.ts +0 -47
  386. package/dist/utils/projectDocs.js +0 -158
  387. package/dist/utils/projectDocs.js.map +0 -1
  388. package/dist/utils/promptPaths.d.ts +0 -6
  389. package/dist/utils/promptPaths.js +0 -33
  390. package/dist/utils/promptPaths.js.map +0 -1
  391. package/dist/utils/promptTemplateManager.d.ts +0 -34
  392. package/dist/utils/promptTemplateManager.js +0 -141
  393. package/dist/utils/promptTemplateManager.js.map +0 -1
  394. package/dist/utils/review/consolidateReview.d.ts +0 -15
  395. package/dist/utils/review/consolidateReview.js +0 -481
  396. package/dist/utils/review/consolidateReview.js.map +0 -1
  397. package/dist/utils/review/fixDisplay.d.ts +0 -20
  398. package/dist/utils/review/fixDisplay.js +0 -84
  399. package/dist/utils/review/fixDisplay.js.map +0 -1
  400. package/dist/utils/review/fixImplementation.d.ts +0 -28
  401. package/dist/utils/review/fixImplementation.js +0 -60
  402. package/dist/utils/review/fixImplementation.js.map +0 -1
  403. package/dist/utils/review/index.d.ts +0 -13
  404. package/dist/utils/review/index.js +0 -50
  405. package/dist/utils/review/index.js.map +0 -1
  406. package/dist/utils/review/interactiveProcessing.d.ts +0 -25
  407. package/dist/utils/review/interactiveProcessing.js +0 -251
  408. package/dist/utils/review/interactiveProcessing.js.map +0 -1
  409. package/dist/utils/review/progressTracker.d.ts +0 -106
  410. package/dist/utils/review/progressTracker.js +0 -227
  411. package/dist/utils/review/progressTracker.js.map +0 -1
  412. package/dist/utils/review/reviewExtraction.d.ts +0 -31
  413. package/dist/utils/review/reviewExtraction.js +0 -324
  414. package/dist/utils/review/reviewExtraction.js.map +0 -1
  415. package/dist/utils/review/types.d.ts +0 -45
  416. package/dist/utils/review/types.js +0 -18
  417. package/dist/utils/review/types.js.map +0 -1
  418. package/dist/utils/reviewActionHandler.d.ts +0 -16
  419. package/dist/utils/reviewActionHandler.js +0 -34
  420. package/dist/utils/reviewActionHandler.js.map +0 -1
  421. package/dist/utils/reviewParser.d.ts +0 -34
  422. package/dist/utils/reviewParser.js +0 -218
  423. package/dist/utils/reviewParser.js.map +0 -1
  424. package/dist/utils/sanitizer.d.ts +0 -82
  425. package/dist/utils/sanitizer.js +0 -239
  426. package/dist/utils/sanitizer.js.map +0 -1
  427. package/dist/utils/smartFileSelector.d.ts +0 -50
  428. package/dist/utils/smartFileSelector.js +0 -261
  429. package/dist/utils/smartFileSelector.js.map +0 -1
  430. package/dist/utils/templateLoader.d.ts +0 -44
  431. package/dist/utils/templateLoader.js +0 -431
  432. package/dist/utils/templateLoader.js.map +0 -1
  433. package/dist/utils/treeGenerator.d.ts +0 -12
  434. package/dist/utils/treeGenerator.js +0 -133
  435. package/dist/utils/treeGenerator.js.map +0 -1
@@ -1,67 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview Formatters for review issues in different formats.
4
- *
5
- * This module provides functions to format review issues in different formats,
6
- * including structured issues and schema-based issues.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.formatSchemaIssue = formatSchemaIssue;
10
- exports.formatIssue = formatIssue;
11
- /**
12
- * Format a single issue from the schema format
13
- * @param issue Issue object from schema
14
- * @param index Issue number
15
- * @returns Formatted issue string
16
- */
17
- function formatSchemaIssue(issue, index) {
18
- let issueMarkdown = `### ${index}. ${issue.description}\n\n`;
19
- if (issue.filePath) {
20
- issueMarkdown += `**File**: \`${issue.filePath}\`\n`;
21
- }
22
- if (issue.location) {
23
- issueMarkdown += `**Location**: Lines ${issue.location.startLine}-${issue.location.endLine}\n\n`;
24
- }
25
- if (issue.currentCode) {
26
- issueMarkdown += `**Current Code**:\n\`\`\`\n${issue.currentCode}\n\`\`\`\n\n`;
27
- }
28
- if (issue.suggestedCode) {
29
- issueMarkdown += `**Suggested Fix**:\n\`\`\`\n${issue.suggestedCode}\n\`\`\`\n\n`;
30
- }
31
- if (issue.explanation) {
32
- issueMarkdown += `**Explanation**: ${issue.explanation}\n\n`;
33
- }
34
- issueMarkdown += `---\n\n`;
35
- return issueMarkdown;
36
- }
37
- /**
38
- * Format a single issue as Markdown
39
- * @param issue Review issue
40
- * @returns Markdown string
41
- */
42
- function formatIssue(issue) {
43
- // Guard against null or undefined issues
44
- if (!issue) {
45
- return '#### [Error: Issue data missing]';
46
- }
47
- const { title, type, filePath, lineNumbers, description, codeSnippet, suggestedFix, impact } = issue;
48
- let issueMarkdown = `#### ${title || '[Untitled Issue]'}\n`;
49
- if (filePath) {
50
- issueMarkdown += `- **Location**: \`${filePath}${lineNumbers ? `:${lineNumbers}` : ''}\`\n`;
51
- }
52
- if (type) {
53
- issueMarkdown += `- **Type**: ${type}\n`;
54
- }
55
- issueMarkdown += `- **Description**: ${description || 'No description provided'}\n`;
56
- if (codeSnippet) {
57
- issueMarkdown += `- **Code**:\n\`\`\`\n${codeSnippet}\n\`\`\`\n`;
58
- }
59
- if (suggestedFix) {
60
- issueMarkdown += `- **Suggested Fix**:\n\`\`\`\n${suggestedFix}\n\`\`\`\n`;
61
- }
62
- if (impact) {
63
- issueMarkdown += `- **Impact**: ${impact}\n`;
64
- }
65
- return issueMarkdown;
66
- }
67
- //# sourceMappingURL=IssueFormatters.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IssueFormatters.js","sourceRoot":"","sources":["../../../src/formatters/utils/IssueFormatters.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAUH,8CA0BC;AAOD,kCAkCC;AAzED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,KAAU,EAAE,KAAa;IACzD,IAAI,aAAa,GAAG,OAAO,KAAK,KAAK,KAAK,CAAC,WAAW,MAAM,CAAC;IAE7D,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,aAAa,IAAI,eAAe,KAAK,CAAC,QAAQ,MAAM,CAAC;IACvD,CAAC;IAED,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACnB,aAAa,IAAI,uBAAuB,KAAK,CAAC,QAAQ,CAAC,SAAS,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,MAAM,CAAC;IACnG,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,aAAa,IAAI,8BAA8B,KAAK,CAAC,WAAW,cAAc,CAAC;IACjF,CAAC;IAED,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;QACxB,aAAa,IAAI,+BAA+B,KAAK,CAAC,aAAa,cAAc,CAAC;IACpF,CAAC;IAED,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACtB,aAAa,IAAI,oBAAoB,KAAK,CAAC,WAAW,MAAM,CAAC;IAC/D,CAAC;IAED,aAAa,IAAI,SAAS,CAAC;IAE3B,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;;;GAIG;AACH,SAAgB,WAAW,CAAC,KAAkB;IAC5C,yCAAyC;IACzC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,kCAAkC,CAAC;IAC5C,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,GAC1F,KAAK,CAAC;IAER,IAAI,aAAa,GAAG,QAAQ,KAAK,IAAI,kBAAkB,IAAI,CAAC;IAE5D,IAAI,QAAQ,EAAE,CAAC;QACb,aAAa,IAAI,qBAAqB,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC;IAC9F,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,aAAa,IAAI,eAAe,IAAI,IAAI,CAAC;IAC3C,CAAC;IAED,aAAa,IAAI,sBAAsB,WAAW,IAAI,yBAAyB,IAAI,CAAC;IAEpF,IAAI,WAAW,EAAE,CAAC;QAChB,aAAa,IAAI,wBAAwB,WAAW,YAAY,CAAC;IACnE,CAAC;IAED,IAAI,YAAY,EAAE,CAAC;QACjB,aAAa,IAAI,iCAAiC,YAAY,YAAY,CAAC;IAC7E,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,aAAa,IAAI,iBAAiB,MAAM,IAAI,CAAC;IAC/C,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC"}
@@ -1,13 +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
- import type { ReviewResult } from '../../types/review';
8
- /**
9
- * Format the review as JSON
10
- * @param review Review result to format
11
- * @returns JSON string
12
- */
13
- export declare function formatAsJson(review: ReviewResult): string;
@@ -1,57 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview Formatter for JSON output of code reviews.
4
- *
5
- * This module provides functions to format code review results as JSON,
6
- * including metadata, structured data, and content.
7
- */
8
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.formatAsJson = formatAsJson;
10
- const sanitizer_1 = require("../../utils/sanitizer");
11
- const MetadataFormatter_1 = require("./MetadataFormatter");
12
- const ModelInfoExtractor_1 = require("./ModelInfoExtractor");
13
- /**
14
- * Format the review as JSON
15
- * @param review Review result to format
16
- * @returns JSON string
17
- */
18
- function formatAsJson(review) {
19
- // Extract model information
20
- const { modelVendor, modelName, modelInfo } = (0, ModelInfoExtractor_1.extractModelInfo)(review.modelUsed);
21
- // Sanitize the content to prevent XSS attacks
22
- const sanitizedContent = (0, sanitizer_1.sanitizeContent)(review.content);
23
- // Parse structured data if available
24
- let parsedStructuredData = review.structuredData;
25
- if (typeof review.structuredData === 'string') {
26
- try {
27
- parsedStructuredData = JSON.parse(review.structuredData);
28
- }
29
- catch (error) {
30
- console.error('Error parsing structured review data:', error);
31
- }
32
- }
33
- // Parse additional metadata if available
34
- const additionalMetadata = (0, MetadataFormatter_1.parseMetadata)(review.metadata);
35
- // Format path for display
36
- let displayPath = review.filePath || '';
37
- if (!displayPath || displayPath === review.reviewType || displayPath === 'consolidated') {
38
- displayPath = `${process.cwd()} (Current Directory)`;
39
- }
40
- // Create enhanced metadata with detection info
41
- const enhancedMetadata = (0, MetadataFormatter_1.createEnhancedMetadata)(modelVendor, modelName, modelInfo, review.reviewType, displayPath, review.timestamp, review.costInfo || review.cost, review.toolVersion, review.commandOptions, additionalMetadata, review.detectedLanguage, review.detectedFramework, review.frameworkVersion, review.cssFrameworks);
42
- // Create a copy of the review with enhanced metadata
43
- const reviewWithMeta = {
44
- ...review,
45
- content: sanitizedContent,
46
- structuredData: parsedStructuredData,
47
- meta: enhancedMetadata,
48
- // Legacy metadata field for backward compatibility
49
- metadata: {
50
- model: modelInfo,
51
- generatedAt: new Date(review.timestamp).toISOString(),
52
- costEstimation: review.cost,
53
- },
54
- };
55
- return JSON.stringify(reviewWithMeta, null, 2);
56
- }
57
- //# sourceMappingURL=JsonFormatter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"JsonFormatter.js","sourceRoot":"","sources":["../../../src/formatters/utils/JsonFormatter.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAYH,oCA2DC;AApED,qDAAwD;AACxD,2DAA4E;AAC5E,6DAAwD;AAExD;;;;GAIG;AACH,SAAgB,YAAY,CAAC,MAAoB;IAC/C,4BAA4B;IAC5B,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,IAAA,qCAAgB,EAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAEjF,8CAA8C;IAC9C,MAAM,gBAAgB,GAAG,IAAA,2BAAe,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAEzD,qCAAqC;IACrC,IAAI,oBAAoB,GAAG,MAAM,CAAC,cAAc,CAAC;IACjD,IAAI,OAAO,MAAM,CAAC,cAAc,KAAK,QAAQ,EAAE,CAAC;QAC9C,IAAI,CAAC;YACH,oBAAoB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC3D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uCAAuC,EAAE,KAAK,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;IAED,yCAAyC;IACzC,MAAM,kBAAkB,GAAG,IAAA,iCAAa,EAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAE1D,0BAA0B;IAC1B,IAAI,WAAW,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IACxC,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,MAAM,CAAC,UAAU,IAAI,WAAW,KAAK,cAAc,EAAE,CAAC;QACxF,WAAW,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,sBAAsB,CAAC;IACvD,CAAC;IAED,+CAA+C;IAC/C,MAAM,gBAAgB,GAAG,IAAA,0CAAsB,EAC7C,WAAW,EACX,SAAS,EACT,SAAS,EACT,MAAM,CAAC,UAAU,EACjB,WAAW,EACX,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,IAAI,EAC9B,MAAM,CAAC,WAAW,EAClB,MAAM,CAAC,cAAc,EACrB,kBAAkB,EAClB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,iBAAiB,EACxB,MAAM,CAAC,gBAAgB,EACvB,MAAM,CAAC,aAAa,CACrB,CAAC;IAEF,qDAAqD;IACrD,MAAM,cAAc,GAAG;QACrB,GAAG,MAAM;QACT,OAAO,EAAE,gBAAgB;QACzB,cAAc,EAAE,oBAAoB;QACpC,IAAI,EAAE,gBAAgB;QACtB,mDAAmD;QACnD,QAAQ,EAAE;YACR,KAAK,EAAE,SAAS;YAChB,WAAW,EAAE,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE;YACrD,cAAc,EAAE,MAAM,CAAC,IAAI;SAC5B;KACF,CAAC;IAEF,OAAO,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACjD,CAAC"}
@@ -1,51 +0,0 @@
1
- /**
2
- * @fileoverview Formatters for Markdown output of code reviews.
3
- *
4
- * This module provides functions to format code review results as Markdown,
5
- * including different formats for structured and unstructured reviews.
6
- */
7
- import type { ReviewResult } from '../../types/review';
8
- import type { StructuredReview } from '../../types/structuredReview';
9
- /**
10
- * Format the review as Markdown
11
- * @param review Review result to format
12
- * @returns Markdown string
13
- */
14
- export declare function formatAsMarkdown(review: ReviewResult): string;
15
- /**
16
- * Format a structured review as Markdown
17
- * @param structuredReview Structured review data
18
- * @param filePath Path to the reviewed file
19
- * @param reviewType Type of review performed
20
- * @param timestamp Timestamp of when the review was generated
21
- * @param costInfo Cost information formatted as Markdown
22
- * @param modelInfo Model information
23
- * @param metadataSection Optional metadata section to include
24
- * @returns Markdown string
25
- */
26
- export declare function formatStructuredReviewAsMarkdown(structuredReview: StructuredReview, filePath: string, reviewType: string, timestamp: string, costInfo: string, modelInfo: string, metadataSection?: string): string;
27
- /**
28
- * Format a simple markdown document with just the content
29
- * Used as fallback when structured data isn't available
30
- * @param content Content to include in the document
31
- * @param filePath Path to the reviewed file
32
- * @param reviewType Type of review performed
33
- * @param timestamp Timestamp of when the review was generated
34
- * @param costInfo Cost information formatted as Markdown
35
- * @param modelInfo Model information
36
- * @param metadataSection Optional metadata section to include
37
- * @returns Markdown string
38
- */
39
- export declare function formatSimpleMarkdown(content: string, filePath: string, reviewType: string, timestamp: string, costInfo: string, modelInfo: string, metadataSection?: string): string;
40
- /**
41
- * Format a schema-based review (with 'review' property) as Markdown
42
- * @param schemaReview Schema-based review object
43
- * @param filePath Path to the reviewed file
44
- * @param reviewType Type of review
45
- * @param timestamp Timestamp of the review
46
- * @param costInfo Cost information string
47
- * @param modelInfo Model information string
48
- * @param metadataSection Optional metadata section
49
- * @returns Formatted markdown string
50
- */
51
- export declare function formatSchemaBasedReviewAsMarkdown(schemaReview: any, filePath: string, reviewType: string, timestamp: string, costInfo: string, modelInfo: string, metadataSection?: string): string;
@@ -1,456 +0,0 @@
1
- "use strict";
2
- /**
3
- * @fileoverview Formatters for Markdown output of code reviews.
4
- *
5
- * This module provides functions to format code review results as Markdown,
6
- * including different formats for structured and unstructured reviews.
7
- */
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.formatAsMarkdown = formatAsMarkdown;
13
- exports.formatStructuredReviewAsMarkdown = formatStructuredReviewAsMarkdown;
14
- exports.formatSimpleMarkdown = formatSimpleMarkdown;
15
- exports.formatSchemaBasedReviewAsMarkdown = formatSchemaBasedReviewAsMarkdown;
16
- const logger_1 = __importDefault(require("../../utils/logger"));
17
- const sanitizer_1 = require("../../utils/sanitizer");
18
- const IssueFormatters_1 = require("./IssueFormatters");
19
- const MetadataFormatter_1 = require("./MetadataFormatter");
20
- const ModelInfoExtractor_1 = require("./ModelInfoExtractor");
21
- /**
22
- * Format the review as Markdown
23
- * @param review Review result to format
24
- * @returns Markdown string
25
- */
26
- function formatAsMarkdown(review) {
27
- const { filePath, reviewType, content, timestamp, structuredData } = review;
28
- // Use costInfo if available, fallback to cost
29
- const cost = review.costInfo || review.cost;
30
- // Extract model information
31
- const { modelInfo } = (0, ModelInfoExtractor_1.extractModelInfo)(review.modelUsed);
32
- // Format cost information if available
33
- const costInfo = (0, MetadataFormatter_1.formatCostInfo)(cost);
34
- // Check if the content is JSON that should be formatted as structured data
35
- let actualStructuredData = structuredData;
36
- // For architectural reviews with diagrams, always prefer Markdown format
37
- const forceMarkdown = reviewType === 'architectural' && review.metadata?.diagramRequested;
38
- if (!actualStructuredData && content && typeof content === 'string' && !forceMarkdown) {
39
- // Improved JSON detection - check for both raw JSON and code blocks
40
- const trimmedContent = content.trim();
41
- // First, check if this looks like truncated/incomplete JSON
42
- if (trimmedContent.startsWith('{') && !trimmedContent.includes('}')) {
43
- logger_1.default.warn('Content appears to be truncated JSON - missing closing brace');
44
- // Don't try to parse incomplete JSON, just return it as plain text with a warning
45
- const warningMessage = '⚠️ **Warning**: The AI response appears to be incomplete or truncated. ' +
46
- 'This may be due to token limits or API issues. Please try again or use a different model.\n\n' +
47
- '**Partial response received:**\n\n';
48
- return formatSimpleMarkdown(`${warningMessage}\`\`\`json\n${content}\n\`\`\``, filePath || '', reviewType, timestamp, costInfo, modelInfo);
49
- }
50
- // Try to extract JSON from code blocks with improved regex
51
- // This regex matches code blocks with or without the json language specifier
52
- const jsonBlockRegex = /```(?:json)?\s*([\s\S]*?)\s*```/g;
53
- const jsonBlocks = [...trimmedContent.matchAll(jsonBlockRegex)];
54
- if (jsonBlocks.length > 0) {
55
- // Try each code block until we find valid JSON
56
- for (const match of jsonBlocks) {
57
- try {
58
- const jsonContent = match[1].trim();
59
- if (jsonContent) {
60
- actualStructuredData = JSON.parse(jsonContent);
61
- logger_1.default.debug('Successfully parsed JSON from code block');
62
- break;
63
- }
64
- }
65
- catch (e) {
66
- logger_1.default.debug(`Failed to parse JSON from code block: ${e instanceof Error ? e.message : String(e)}`);
67
- // Continue to next block
68
- }
69
- }
70
- }
71
- // If no valid JSON found in code blocks, try the entire content if it looks like JSON
72
- if (!actualStructuredData && trimmedContent.startsWith('{') && trimmedContent.endsWith('}')) {
73
- try {
74
- actualStructuredData = JSON.parse(trimmedContent);
75
- logger_1.default.debug('Successfully parsed JSON from full content');
76
- }
77
- catch (e) {
78
- logger_1.default.debug(`Failed to parse content as JSON: ${e instanceof Error ? e.message : String(e)}`);
79
- // Not valid JSON, continue with regular formatting
80
- }
81
- }
82
- }
83
- // If we have structured data, format it as Markdown
84
- // But skip JSON parsing for architectural reviews with diagrams - keep original Markdown
85
- if (actualStructuredData && !forceMarkdown) {
86
- try {
87
- let structuredReview;
88
- if (typeof actualStructuredData === 'string') {
89
- try {
90
- structuredReview = JSON.parse(actualStructuredData);
91
- logger_1.default.debug('Successfully parsed structured data string as JSON');
92
- }
93
- catch (parseError) {
94
- logger_1.default.warn(`Failed to parse structured data as JSON: ${parseError instanceof Error ? parseError.message : String(parseError)}`);
95
- // If it's not valid JSON, treat it as plain text
96
- return formatSimpleMarkdown(content, filePath || '', reviewType, timestamp, costInfo, modelInfo);
97
- }
98
- }
99
- else {
100
- structuredReview = actualStructuredData;
101
- }
102
- // Check if the data has a 'review' property (our JSON structure)
103
- if (structuredReview?.review) {
104
- return formatSchemaBasedReviewAsMarkdown(structuredReview, filePath || '', reviewType, timestamp, costInfo, modelInfo);
105
- }
106
- // Validate the parsed data has expected structure
107
- if (typeof structuredReview === 'object' && structuredReview !== null) {
108
- return formatStructuredReviewAsMarkdown(structuredReview, filePath || '', reviewType, timestamp, costInfo, modelInfo);
109
- }
110
- logger_1.default.warn('Structured data is not an object:', typeof structuredReview);
111
- // If the data doesn't have the right structure, fall back to plain text
112
- return formatSimpleMarkdown(content, filePath || '', reviewType, timestamp, costInfo, modelInfo);
113
- }
114
- catch (error) {
115
- logger_1.default.error(`Error processing structured review data: ${error instanceof Error ? error.message : String(error)}`);
116
- // Fall back to unstructured format
117
- return formatSimpleMarkdown(content, filePath || '', reviewType, timestamp, costInfo, modelInfo);
118
- }
119
- }
120
- // Sanitize the content to prevent XSS attacks
121
- const sanitizedContent = (0, sanitizer_1.sanitizeContent)(content);
122
- // Use the actual file path for the review title and the reviewed field
123
- // If filePath is the same as reviewType, is 'consolidated', or is undefined/empty, show the current directory path
124
- let displayPath = filePath || '';
125
- if (!displayPath || displayPath === reviewType || displayPath === 'consolidated') {
126
- // For consolidated reviews, show the full target directory path
127
- displayPath = `${process.cwd()} (Current Directory)`;
128
- }
129
- // Extract model vendor and name from modelInfo (currently unused but may be needed for future features)
130
- // const { modelVendor, modelName } = extractModelInfoFromString(modelInfo);
131
- // Create metadata section
132
- const metadataSection = (0, MetadataFormatter_1.formatMetadataSection)(reviewType, timestamp, modelInfo, cost, review.toolVersion, review.commandOptions, review.detectedLanguage, review.detectedFramework, review.frameworkVersion, review.cssFrameworks);
133
- return `# Code Review: ${displayPath}
134
-
135
- > **Review Type**: ${reviewType}
136
- > **Model**: ${modelInfo}
137
- > **Generated**: ${new Date(timestamp).toLocaleString()}
138
-
139
- ---
140
-
141
- ${metadataSection}
142
-
143
- ${sanitizedContent}
144
-
145
- ---${costInfo}
146
-
147
- *Generated by [cr-aia](https://github.com/filipkustec/cr-aia) using ${modelInfo}*`;
148
- }
149
- /**
150
- * Format a structured review as Markdown
151
- * @param structuredReview Structured review data
152
- * @param filePath Path to the reviewed file
153
- * @param reviewType Type of review performed
154
- * @param timestamp Timestamp of when the review was generated
155
- * @param costInfo Cost information formatted as Markdown
156
- * @param modelInfo Model information
157
- * @param metadataSection Optional metadata section to include
158
- * @returns Markdown string
159
- */
160
- function formatStructuredReviewAsMarkdown(structuredReview, filePath, reviewType, timestamp, costInfo, modelInfo, metadataSection) {
161
- // Check if the structuredReview has required properties
162
- if (!structuredReview || typeof structuredReview !== 'object') {
163
- console.warn('Invalid structured review data, falling back to simple format');
164
- return formatSimpleMarkdown('No structured data available. The review may be in an unsupported format.', filePath, reviewType, timestamp, costInfo, modelInfo, metadataSection);
165
- }
166
- // Extract properties with fallbacks for missing properties
167
- const summary = structuredReview.summary || 'No summary provided';
168
- const issues = Array.isArray(structuredReview.issues) ? structuredReview.issues : [];
169
- const recommendations = Array.isArray(structuredReview.recommendations)
170
- ? structuredReview.recommendations
171
- : [];
172
- const positiveAspects = Array.isArray(structuredReview.positiveAspects)
173
- ? structuredReview.positiveAspects
174
- : [];
175
- // Extract grade information if available
176
- const grade = structuredReview.grade;
177
- const gradeCategories = structuredReview.gradeCategories;
178
- // Group issues by priority
179
- const highPriorityIssues = issues.filter((issue) => issue && issue.priority === 'high');
180
- const mediumPriorityIssues = issues.filter((issue) => issue && issue.priority === 'medium');
181
- const lowPriorityIssues = issues.filter((issue) => issue && issue.priority === 'low');
182
- // Format issues by priority
183
- let issuesMarkdown = '';
184
- if (highPriorityIssues.length > 0) {
185
- issuesMarkdown += '### High Priority\n\n';
186
- issuesMarkdown += highPriorityIssues.map((issue) => (0, IssueFormatters_1.formatIssue)(issue)).join('\n\n');
187
- issuesMarkdown += '\n\n';
188
- }
189
- if (mediumPriorityIssues.length > 0) {
190
- issuesMarkdown += '### Medium Priority\n\n';
191
- issuesMarkdown += mediumPriorityIssues.map((issue) => (0, IssueFormatters_1.formatIssue)(issue)).join('\n\n');
192
- issuesMarkdown += '\n\n';
193
- }
194
- if (lowPriorityIssues.length > 0) {
195
- issuesMarkdown += '### Low Priority\n\n';
196
- issuesMarkdown += lowPriorityIssues.map((issue) => (0, IssueFormatters_1.formatIssue)(issue)).join('\n\n');
197
- issuesMarkdown += '\n\n';
198
- }
199
- // Format recommendations
200
- let recommendationsMarkdown = '';
201
- if (recommendations && recommendations.length > 0) {
202
- recommendationsMarkdown = '## General Recommendations\n\n';
203
- recommendationsMarkdown += recommendations.map((rec) => `- ${rec}`).join('\n');
204
- recommendationsMarkdown += '\n\n';
205
- }
206
- // Format positive aspects
207
- let positiveAspectsMarkdown = '';
208
- if (positiveAspects && positiveAspects.length > 0) {
209
- positiveAspectsMarkdown = '## Positive Aspects\n\n';
210
- positiveAspectsMarkdown += positiveAspects.map((aspect) => `- ${aspect}`).join('\n');
211
- positiveAspectsMarkdown += '\n\n';
212
- }
213
- // Use the actual file path for the review title and the reviewed field
214
- // If filePath is the same as reviewType, is 'consolidated', or is undefined/empty, show the current directory path
215
- let displayPath = filePath || '';
216
- if (!displayPath || displayPath === reviewType || displayPath === 'consolidated') {
217
- // For consolidated reviews, show the full target directory path
218
- displayPath = `${process.cwd()} (Current Directory)`;
219
- }
220
- // Include metadata section if available
221
- const metadataContent = metadataSection ? `${metadataSection}\n` : '';
222
- // Format grade section if available
223
- let gradeMarkdown = '';
224
- if (grade) {
225
- gradeMarkdown = `## Grade: ${grade}\n\n`;
226
- // Add grade categories if available
227
- if (gradeCategories) {
228
- if (gradeCategories.functionality)
229
- gradeMarkdown += `- **Functionality**: ${gradeCategories.functionality}\n`;
230
- if (gradeCategories.codeQuality)
231
- gradeMarkdown += `- **Code Quality**: ${gradeCategories.codeQuality}\n`;
232
- if (gradeCategories.documentation)
233
- gradeMarkdown += `- **Documentation**: ${gradeCategories.documentation}\n`;
234
- if (gradeCategories.testing)
235
- gradeMarkdown += `- **Testing**: ${gradeCategories.testing}\n`;
236
- if (gradeCategories.maintainability)
237
- gradeMarkdown += `- **Maintainability**: ${gradeCategories.maintainability}\n`;
238
- if (gradeCategories.security)
239
- gradeMarkdown += `- **Security**: ${gradeCategories.security}\n`;
240
- if (gradeCategories.performance)
241
- gradeMarkdown += `- **Performance**: ${gradeCategories.performance}\n`;
242
- gradeMarkdown += '\n';
243
- }
244
- }
245
- return `# Code Review: ${displayPath}
246
-
247
- > **Review Type**: ${reviewType}
248
- > **Model**: ${modelInfo}
249
- > **Generated**: ${new Date(timestamp).toLocaleString()}
250
-
251
- ---
252
-
253
- ${metadataContent}${gradeMarkdown}## Summary
254
-
255
- ${summary}
256
-
257
- ## Issues
258
-
259
- ${issuesMarkdown}
260
- ${recommendationsMarkdown}${positiveAspectsMarkdown}---${costInfo}
261
-
262
- *Generated by [cr-aia](https://github.com/filipkustec/cr-aia) using ${modelInfo}*`;
263
- }
264
- /**
265
- * Format a simple markdown document with just the content
266
- * Used as fallback when structured data isn't available
267
- * @param content Content to include in the document
268
- * @param filePath Path to the reviewed file
269
- * @param reviewType Type of review performed
270
- * @param timestamp Timestamp of when the review was generated
271
- * @param costInfo Cost information formatted as Markdown
272
- * @param modelInfo Model information
273
- * @param metadataSection Optional metadata section to include
274
- * @returns Markdown string
275
- */
276
- function formatSimpleMarkdown(content, filePath, reviewType, timestamp, costInfo, modelInfo, metadataSection) {
277
- // Sanitize the content
278
- const sanitizedContent = (0, sanitizer_1.sanitizeContent)(content);
279
- // Use the actual file path for the review title and the reviewed field
280
- let displayPath = filePath || '';
281
- if (!displayPath || displayPath === reviewType || displayPath === 'consolidated') {
282
- // For consolidated reviews, show the full target directory path
283
- displayPath = `${process.cwd()} (Current Directory)`;
284
- }
285
- // Extract model vendor and name from modelInfo
286
- const { modelVendor, modelName } = (0, ModelInfoExtractor_1.extractModelInfoFromString)(modelInfo);
287
- // Parse cost information if it's available in string form
288
- const cost = (0, MetadataFormatter_1.parseCostInfo)(costInfo);
289
- // Include metadata section if available
290
- const metadataContent = metadataSection ? `${metadataSection}\n` : '';
291
- // Generate a metadata section with model information if not provided
292
- const modelMetadata = !metadataSection
293
- ? `## Metadata
294
- | Property | Value |
295
- |----------|-------|
296
- | Review Type | ${reviewType} |
297
- | Generated At | ${new Date(timestamp).toLocaleString(undefined, {
298
- year: 'numeric',
299
- month: 'long',
300
- day: 'numeric',
301
- hour: '2-digit',
302
- minute: '2-digit',
303
- second: '2-digit',
304
- timeZoneName: 'short',
305
- })} |
306
- | Model Provider | ${modelVendor} |
307
- | Model Name | ${modelName} |${cost
308
- ? `
309
- | Input Tokens | ${cost.inputTokens.toLocaleString()} |
310
- | Output Tokens | ${cost.outputTokens.toLocaleString()} |
311
- | Total Tokens | ${cost.totalTokens.toLocaleString()} |
312
- | Estimated Cost | ${cost.formattedCost} |`
313
- : ''}${cost?.passCount
314
- ? `
315
- | Multi-pass Review | ${cost.passCount} passes |`
316
- : ''}
317
- `
318
- : '';
319
- // Include this metadata section in all formats for consistency
320
- const fullMetadataContent = metadataContent || modelMetadata;
321
- return `# Code Review: ${displayPath}
322
-
323
- > **Review Type**: ${reviewType}
324
- > **Model**: ${modelInfo}
325
- > **Generated**: ${new Date(timestamp).toLocaleString()}
326
-
327
- ---
328
-
329
- ${fullMetadataContent}
330
-
331
- ${sanitizedContent}
332
-
333
- ---${costInfo}
334
-
335
- *Generated by [cr-aia](https://github.com/filipkustec/cr-aia) using ${modelInfo}*`;
336
- }
337
- /**
338
- * Format a schema-based review (with 'review' property) as Markdown
339
- * @param schemaReview Schema-based review object
340
- * @param filePath Path to the reviewed file
341
- * @param reviewType Type of review
342
- * @param timestamp Timestamp of the review
343
- * @param costInfo Cost information string
344
- * @param modelInfo Model information string
345
- * @param metadataSection Optional metadata section
346
- * @returns Formatted markdown string
347
- */
348
- function formatSchemaBasedReviewAsMarkdown(schemaReview, filePath, reviewType, timestamp, costInfo, modelInfo, metadataSection) {
349
- // Extract the review object
350
- const review = schemaReview.review;
351
- if (!review || typeof review !== 'object') {
352
- return formatSimpleMarkdown(JSON.stringify(schemaReview, null, 2), filePath, reviewType, timestamp, costInfo, modelInfo, metadataSection);
353
- }
354
- // Extract files and issues
355
- const files = review.files || [];
356
- const summary = review.summary || {};
357
- // Create issues sections by priority
358
- const highPriorityIssues = [];
359
- const mediumPriorityIssues = [];
360
- const lowPriorityIssues = [];
361
- // Collect all issues from all files
362
- files.forEach((file) => {
363
- const issues = file.issues || [];
364
- issues.forEach((issue) => {
365
- // Add file path to issue for context
366
- const issueWithFile = { ...issue, filePath: file.filePath };
367
- if (issue.priority === 'HIGH') {
368
- highPriorityIssues.push(issueWithFile);
369
- }
370
- else if (issue.priority === 'MEDIUM') {
371
- mediumPriorityIssues.push(issueWithFile);
372
- }
373
- else if (issue.priority === 'LOW') {
374
- lowPriorityIssues.push(issueWithFile);
375
- }
376
- });
377
- });
378
- // Format the metadata section
379
- let displayPath = filePath || '';
380
- if (!displayPath || displayPath === reviewType || displayPath === 'consolidated') {
381
- displayPath = `${process.cwd()} (Current Directory)`;
382
- }
383
- // Extract model vendor and name from modelInfo
384
- const { modelVendor, modelName } = (0, ModelInfoExtractor_1.extractModelInfoFromString)(modelInfo);
385
- // Build the metadata section if not provided
386
- if (!metadataSection) {
387
- const formattedDate = new Date(timestamp).toLocaleString(undefined, {
388
- year: 'numeric',
389
- month: 'long',
390
- day: 'numeric',
391
- hour: '2-digit',
392
- minute: '2-digit',
393
- second: '2-digit',
394
- timeZoneName: 'short',
395
- });
396
- metadataSection = `## Metadata
397
- | Property | Value |
398
- |----------|-------|
399
- | Review Type | ${reviewType} |
400
- | Generated At | ${formattedDate} |
401
- | Model Provider | ${modelVendor} |
402
- | Model Name | ${modelName} |`;
403
- }
404
- let output = `# Code Review: ${displayPath}
405
-
406
- > **Review Type**: ${reviewType}
407
- > **Model**: ${modelInfo}
408
- > **Generated**: ${new Date(timestamp).toLocaleString()}
409
-
410
- ---
411
-
412
- ${metadataSection}
413
-
414
- ## Review Summary
415
-
416
- `;
417
- // Add summary counts
418
- if (summary.totalIssues > 0) {
419
- output += `Total issues found: **${summary.totalIssues}**
420
- - High Priority: ${summary.highPriorityIssues || 0}
421
- - Medium Priority: ${summary.mediumPriorityIssues || 0}
422
- - Low Priority: ${summary.lowPriorityIssues || 0}
423
-
424
- `;
425
- }
426
- else {
427
- output += `No issues found. The code looks good!\n\n`;
428
- }
429
- // Add issues by priority
430
- if (highPriorityIssues.length > 0) {
431
- output += `## High Priority Issues\n\n`;
432
- highPriorityIssues.forEach((issue, index) => {
433
- output += (0, IssueFormatters_1.formatSchemaIssue)(issue, index + 1);
434
- });
435
- }
436
- if (mediumPriorityIssues.length > 0) {
437
- output += `## Medium Priority Issues\n\n`;
438
- mediumPriorityIssues.forEach((issue, index) => {
439
- output += (0, IssueFormatters_1.formatSchemaIssue)(issue, index + 1);
440
- });
441
- }
442
- if (lowPriorityIssues.length > 0) {
443
- output += `## Low Priority Issues\n\n`;
444
- lowPriorityIssues.forEach((issue, index) => {
445
- output += (0, IssueFormatters_1.formatSchemaIssue)(issue, index + 1);
446
- });
447
- }
448
- // Add cost information at the end
449
- if (costInfo) {
450
- output += `\n${costInfo}\n`;
451
- }
452
- // Add footer with tool information
453
- output += `\n*Generated by [cr-aia](https://github.com/filipkustec/cr-aia) using ${modelInfo}*`;
454
- return output;
455
- }
456
- //# sourceMappingURL=MarkdownFormatters.js.map