codereview-aia 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/dist/analysis/FindingsExtractor.d.ts +105 -0
  2. package/dist/analysis/FindingsExtractor.js +363 -0
  3. package/dist/analysis/FindingsExtractor.js.map +1 -0
  4. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +111 -0
  5. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +215 -0
  6. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +1 -0
  7. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +142 -0
  8. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +503 -0
  9. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +1 -0
  10. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +88 -0
  11. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +343 -0
  12. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +1 -0
  13. package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +104 -0
  14. package/dist/analysis/ai-detection/core/AIDetectionEngine.js +369 -0
  15. package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +1 -0
  16. package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +364 -0
  17. package/dist/analysis/ai-detection/types/DetectionTypes.js +32 -0
  18. package/dist/analysis/ai-detection/types/DetectionTypes.js.map +1 -0
  19. package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +97 -0
  20. package/dist/analysis/ai-detection/utils/SubmissionConverter.js +339 -0
  21. package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +1 -0
  22. package/dist/analysis/context/ReviewContext.d.ts +184 -0
  23. package/dist/analysis/context/ReviewContext.js +294 -0
  24. package/dist/analysis/context/ReviewContext.js.map +1 -0
  25. package/dist/analysis/context/index.d.ts +6 -0
  26. package/dist/analysis/context/index.js +23 -0
  27. package/dist/analysis/context/index.js.map +1 -0
  28. package/dist/analysis/index.d.ts +7 -0
  29. package/dist/analysis/index.js +24 -0
  30. package/dist/analysis/index.js.map +1 -0
  31. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +27 -0
  32. package/dist/analysis/tokens/TokenAnalysisFormatter.js +143 -0
  33. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +1 -0
  34. package/dist/analysis/tokens/TokenAnalyzer.d.ts +155 -0
  35. package/dist/analysis/tokens/TokenAnalyzer.js +502 -0
  36. package/dist/analysis/tokens/TokenAnalyzer.js.map +1 -0
  37. package/dist/analysis/tokens/index.d.ts +7 -0
  38. package/dist/analysis/tokens/index.js +24 -0
  39. package/dist/analysis/tokens/index.js.map +1 -0
  40. package/dist/clients/base/abstractClient.d.ts +99 -0
  41. package/dist/clients/base/abstractClient.js +98 -0
  42. package/dist/clients/base/abstractClient.js.map +1 -0
  43. package/dist/clients/base/httpClient.d.ts +24 -0
  44. package/dist/clients/base/httpClient.js +147 -0
  45. package/dist/clients/base/httpClient.js.map +1 -0
  46. package/dist/clients/base/index.d.ts +11 -0
  47. package/dist/clients/base/index.js +28 -0
  48. package/dist/clients/base/index.js.map +1 -0
  49. package/dist/clients/base/modelDetection.d.ts +41 -0
  50. package/dist/clients/base/modelDetection.js +88 -0
  51. package/dist/clients/base/modelDetection.js.map +1 -0
  52. package/dist/clients/base/responseProcessor.d.ts +45 -0
  53. package/dist/clients/base/responseProcessor.js +495 -0
  54. package/dist/clients/base/responseProcessor.js.map +1 -0
  55. package/dist/clients/factory/clientFactory.d.ts +23 -0
  56. package/dist/clients/factory/clientFactory.js +50 -0
  57. package/dist/clients/factory/clientFactory.js.map +1 -0
  58. package/dist/clients/factory/index.d.ts +7 -0
  59. package/dist/clients/factory/index.js +24 -0
  60. package/dist/clients/factory/index.js.map +1 -0
  61. package/dist/clients/implementations/index.d.ts +7 -0
  62. package/dist/clients/implementations/index.js +24 -0
  63. package/dist/clients/implementations/index.js.map +1 -0
  64. package/dist/clients/implementations/openRouterClient.d.ts +69 -0
  65. package/dist/clients/implementations/openRouterClient.js +294 -0
  66. package/dist/clients/implementations/openRouterClient.js.map +1 -0
  67. package/dist/clients/openRouterClient.d.ts +42 -0
  68. package/dist/clients/openRouterClient.js +738 -0
  69. package/dist/clients/openRouterClient.js.map +1 -0
  70. package/dist/clients/openRouterClientWrapper.d.ts +22 -0
  71. package/dist/clients/openRouterClientWrapper.js +64 -0
  72. package/dist/clients/openRouterClientWrapper.js.map +1 -0
  73. package/dist/clients/utils/directoryStructure.d.ts +14 -0
  74. package/dist/clients/utils/directoryStructure.js +48 -0
  75. package/dist/clients/utils/directoryStructure.js.map +1 -0
  76. package/dist/clients/utils/index.d.ts +10 -0
  77. package/dist/clients/utils/index.js +31 -0
  78. package/dist/clients/utils/index.js.map +1 -0
  79. package/dist/clients/utils/languageDetection.d.ts +13 -0
  80. package/dist/clients/utils/languageDetection.js +46 -0
  81. package/dist/clients/utils/languageDetection.js.map +1 -0
  82. package/dist/clients/utils/promptFormatter.d.ts +36 -0
  83. package/dist/clients/utils/promptFormatter.js +92 -0
  84. package/dist/clients/utils/promptFormatter.js.map +1 -0
  85. package/dist/clients/utils/promptLoader.d.ts +27 -0
  86. package/dist/clients/utils/promptLoader.js +49 -0
  87. package/dist/clients/utils/promptLoader.js.map +1 -0
  88. package/dist/clients/utils/tokenCounter.d.ts +81 -0
  89. package/dist/clients/utils/tokenCounter.js +209 -0
  90. package/dist/clients/utils/tokenCounter.js.map +1 -0
  91. package/dist/core/ApiClientSelector.d.ts +8 -0
  92. package/dist/core/ApiClientSelector.js +29 -0
  93. package/dist/core/ApiClientSelector.js.map +1 -0
  94. package/dist/core/ConfigurationService.d.ts +286 -0
  95. package/dist/core/ConfigurationService.js +477 -0
  96. package/dist/core/ConfigurationService.js.map +1 -0
  97. package/dist/core/ConsolidationService.d.ts +99 -0
  98. package/dist/core/ConsolidationService.js +341 -0
  99. package/dist/core/ConsolidationService.js.map +1 -0
  100. package/dist/core/InteractiveDisplayManager.d.ts +22 -0
  101. package/dist/core/InteractiveDisplayManager.js +70 -0
  102. package/dist/core/InteractiveDisplayManager.js.map +1 -0
  103. package/dist/core/OutputManager.d.ts +26 -0
  104. package/dist/core/OutputManager.js +217 -0
  105. package/dist/core/OutputManager.js.map +1 -0
  106. package/dist/core/ReviewGenerator.d.ts +13 -0
  107. package/dist/core/ReviewGenerator.js +102 -0
  108. package/dist/core/ReviewGenerator.js.map +1 -0
  109. package/dist/core/fileDiscovery.d.ts +35 -0
  110. package/dist/core/fileDiscovery.js +202 -0
  111. package/dist/core/fileDiscovery.js.map +1 -0
  112. package/dist/core/handlers/EstimationHandler.d.ts +18 -0
  113. package/dist/core/handlers/EstimationHandler.js +110 -0
  114. package/dist/core/handlers/EstimationHandler.js.map +1 -0
  115. package/dist/core/handlers/FileProcessingHandler.d.ts +31 -0
  116. package/dist/core/handlers/FileProcessingHandler.js +159 -0
  117. package/dist/core/handlers/FileProcessingHandler.js.map +1 -0
  118. package/dist/core/handlers/OutputHandler.d.ts +27 -0
  119. package/dist/core/handlers/OutputHandler.js +127 -0
  120. package/dist/core/handlers/OutputHandler.js.map +1 -0
  121. package/dist/core/handlers/ReviewExecutor.d.ts +32 -0
  122. package/dist/core/handlers/ReviewExecutor.js +111 -0
  123. package/dist/core/handlers/ReviewExecutor.js.map +1 -0
  124. package/dist/core/reviewOrchestrator.d.ts +24 -0
  125. package/dist/core/reviewOrchestrator.js +294 -0
  126. package/dist/core/reviewOrchestrator.js.map +1 -0
  127. package/dist/core/utils/ModelInfoUtils.d.ts +16 -0
  128. package/dist/core/utils/ModelInfoUtils.js +54 -0
  129. package/dist/core/utils/ModelInfoUtils.js.map +1 -0
  130. package/dist/formatters/outputFormatter.d.ts +31 -0
  131. package/dist/formatters/outputFormatter.js +65 -0
  132. package/dist/formatters/outputFormatter.js.map +1 -0
  133. package/dist/formatters/utils/IssueFormatters.d.ts +20 -0
  134. package/dist/formatters/utils/IssueFormatters.js +67 -0
  135. package/dist/formatters/utils/IssueFormatters.js.map +1 -0
  136. package/dist/formatters/utils/JsonFormatter.d.ts +13 -0
  137. package/dist/formatters/utils/JsonFormatter.js +57 -0
  138. package/dist/formatters/utils/JsonFormatter.js.map +1 -0
  139. package/dist/formatters/utils/MarkdownFormatters.d.ts +51 -0
  140. package/dist/formatters/utils/MarkdownFormatters.js +456 -0
  141. package/dist/formatters/utils/MarkdownFormatters.js.map +1 -0
  142. package/dist/formatters/utils/MetadataFormatter.d.ts +65 -0
  143. package/dist/formatters/utils/MetadataFormatter.js +219 -0
  144. package/dist/formatters/utils/MetadataFormatter.js.map +1 -0
  145. package/dist/formatters/utils/ModelInfoExtractor.d.ts +33 -0
  146. package/dist/formatters/utils/ModelInfoExtractor.js +111 -0
  147. package/dist/formatters/utils/ModelInfoExtractor.js.map +1 -0
  148. package/dist/index.d.ts +2 -0
  149. package/dist/index.js +1 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/plugins/PluginInterface.d.ts +44 -0
  152. package/dist/plugins/PluginInterface.js +9 -0
  153. package/dist/plugins/PluginInterface.js.map +1 -0
  154. package/dist/plugins/PluginManager.d.ts +51 -0
  155. package/dist/plugins/PluginManager.js +151 -0
  156. package/dist/plugins/PluginManager.js.map +1 -0
  157. package/dist/prompts/PromptManager.d.ts +30 -0
  158. package/dist/prompts/PromptManager.js +62 -0
  159. package/dist/prompts/PromptManager.js.map +1 -0
  160. package/dist/prompts/cache/PromptCache.d.ts +32 -0
  161. package/dist/prompts/cache/PromptCache.js +48 -0
  162. package/dist/prompts/cache/PromptCache.js.map +1 -0
  163. package/dist/runtime/auth/service.d.ts +2 -0
  164. package/dist/runtime/auth/service.js +41 -0
  165. package/dist/runtime/auth/service.js.map +1 -0
  166. package/dist/runtime/auth/session.d.ts +5 -0
  167. package/dist/runtime/auth/session.js +87 -0
  168. package/dist/runtime/auth/session.js.map +1 -0
  169. package/dist/runtime/auth/types.d.ts +9 -0
  170. package/dist/runtime/auth/types.js +3 -0
  171. package/dist/runtime/auth/types.js.map +1 -0
  172. package/dist/runtime/cliEntry.d.ts +1 -0
  173. package/dist/runtime/cliEntry.js +213 -0
  174. package/dist/runtime/cliEntry.js.map +1 -0
  175. package/dist/runtime/debug/logManager.d.ts +5 -0
  176. package/dist/runtime/debug/logManager.js +31 -0
  177. package/dist/runtime/debug/logManager.js.map +1 -0
  178. package/dist/runtime/errors.d.ts +5 -0
  179. package/dist/runtime/errors.js +15 -0
  180. package/dist/runtime/errors.js.map +1 -0
  181. package/dist/runtime/fileCollector.d.ts +5 -0
  182. package/dist/runtime/fileCollector.js +167 -0
  183. package/dist/runtime/fileCollector.js.map +1 -0
  184. package/dist/runtime/manifest.d.ts +1 -0
  185. package/dist/runtime/manifest.js +65 -0
  186. package/dist/runtime/manifest.js.map +1 -0
  187. package/dist/runtime/openrouterProxy.d.ts +4 -0
  188. package/dist/runtime/openrouterProxy.js +43 -0
  189. package/dist/runtime/openrouterProxy.js.map +1 -0
  190. package/dist/runtime/preprod/webCheck.d.ts +1 -0
  191. package/dist/runtime/preprod/webCheck.js +98 -0
  192. package/dist/runtime/preprod/webCheck.js.map +1 -0
  193. package/dist/runtime/proxyConfig.d.ts +6 -0
  194. package/dist/runtime/proxyConfig.js +86 -0
  195. package/dist/runtime/proxyConfig.js.map +1 -0
  196. package/dist/runtime/proxyEnvironment.d.ts +3 -0
  197. package/dist/runtime/proxyEnvironment.js +63 -0
  198. package/dist/runtime/proxyEnvironment.js.map +1 -0
  199. package/dist/runtime/reportMerge.d.ts +30 -0
  200. package/dist/runtime/reportMerge.js +70 -0
  201. package/dist/runtime/reportMerge.js.map +1 -0
  202. package/dist/runtime/reporting/markdownReportBuilder.d.ts +15 -0
  203. package/dist/runtime/reporting/markdownReportBuilder.js +97 -0
  204. package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
  205. package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
  206. package/dist/runtime/reporting/reportDataCollector.js +170 -0
  207. package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
  208. package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
  209. package/dist/runtime/reporting/summaryGenerator.js +67 -0
  210. package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
  211. package/dist/runtime/reviewPipeline.d.ts +28 -0
  212. package/dist/runtime/reviewPipeline.js +122 -0
  213. package/dist/runtime/reviewPipeline.js.map +1 -0
  214. package/dist/runtime/runAiCodeReview.d.ts +10 -0
  215. package/dist/runtime/runAiCodeReview.js +138 -0
  216. package/dist/runtime/runAiCodeReview.js.map +1 -0
  217. package/dist/runtime/runtimeConfig.d.ts +4 -0
  218. package/dist/runtime/runtimeConfig.js +7 -0
  219. package/dist/runtime/runtimeConfig.js.map +1 -0
  220. package/dist/runtime/ui/Layout.d.ts +11 -0
  221. package/dist/runtime/ui/Layout.js +47 -0
  222. package/dist/runtime/ui/Layout.js.map +1 -0
  223. package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
  224. package/dist/runtime/ui/RuntimeApp.js +161 -0
  225. package/dist/runtime/ui/RuntimeApp.js.map +1 -0
  226. package/dist/runtime/ui/inkModules.d.ts +10 -0
  227. package/dist/runtime/ui/inkModules.js +63 -0
  228. package/dist/runtime/ui/inkModules.js.map +1 -0
  229. package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
  230. package/dist/runtime/ui/screens/AuthScreen.js +67 -0
  231. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
  232. package/dist/runtime/ui/screens/ModeSelection.d.ts +10 -0
  233. package/dist/runtime/ui/screens/ModeSelection.js +100 -0
  234. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
  235. package/dist/runtime/ui/screens/ProgressScreen.d.ts +7 -0
  236. package/dist/runtime/ui/screens/ProgressScreen.js +38 -0
  237. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
  238. package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
  239. package/dist/runtime/ui/screens/ResultsScreen.js +22 -0
  240. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
  241. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
  242. package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
  243. package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
  244. package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
  245. package/dist/strategies/CodingTestReviewStrategy.js +681 -0
  246. package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
  247. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
  248. package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
  249. package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
  250. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
  251. package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
  252. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
  253. package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
  254. package/dist/strategies/MultiPassReviewStrategy.js +590 -0
  255. package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
  256. package/dist/strategies/ReviewStrategy.d.ts +45 -0
  257. package/dist/strategies/ReviewStrategy.js +24 -0
  258. package/dist/strategies/ReviewStrategy.js.map +1 -0
  259. package/dist/strategies/StrategyFactory.d.ts +19 -0
  260. package/dist/strategies/StrategyFactory.js +72 -0
  261. package/dist/strategies/StrategyFactory.js.map +1 -0
  262. package/dist/strategies/index.d.ts +13 -0
  263. package/dist/strategies/index.js +30 -0
  264. package/dist/strategies/index.js.map +1 -0
  265. package/dist/tokenizers/baseTokenizer.d.ts +25 -0
  266. package/dist/tokenizers/baseTokenizer.js +48 -0
  267. package/dist/tokenizers/baseTokenizer.js.map +1 -0
  268. package/dist/tokenizers/gptTokenizer.d.ts +7 -0
  269. package/dist/tokenizers/gptTokenizer.js +28 -0
  270. package/dist/tokenizers/gptTokenizer.js.map +1 -0
  271. package/dist/tokenizers/index.d.ts +7 -0
  272. package/dist/tokenizers/index.js +24 -0
  273. package/dist/tokenizers/index.js.map +1 -0
  274. package/dist/types/apiResponses.d.ts +39 -0
  275. package/dist/types/apiResponses.js +9 -0
  276. package/dist/types/apiResponses.js.map +1 -0
  277. package/dist/types/cli.d.ts +22 -0
  278. package/dist/types/cli.js +3 -0
  279. package/dist/types/cli.js.map +1 -0
  280. package/dist/types/common.d.ts +22 -0
  281. package/dist/types/common.js +14 -0
  282. package/dist/types/common.js.map +1 -0
  283. package/dist/types/configuration.d.ts +682 -0
  284. package/dist/types/configuration.js +65 -0
  285. package/dist/types/configuration.js.map +1 -0
  286. package/dist/types/review.d.ts +258 -0
  287. package/dist/types/review.js +8 -0
  288. package/dist/types/review.js.map +1 -0
  289. package/dist/types/reviewSchema.d.ts +543 -0
  290. package/dist/types/reviewSchema.js +121 -0
  291. package/dist/types/reviewSchema.js.map +1 -0
  292. package/dist/types/structuredReview.d.ts +119 -0
  293. package/dist/types/structuredReview.js +6 -0
  294. package/dist/types/structuredReview.js.map +1 -0
  295. package/dist/types/tokenAnalysis.d.ts +44 -0
  296. package/dist/types/tokenAnalysis.js +4 -0
  297. package/dist/types/tokenAnalysis.js.map +1 -0
  298. package/dist/utils/FileReader.d.ts +33 -0
  299. package/dist/utils/FileReader.js +88 -0
  300. package/dist/utils/FileReader.js.map +1 -0
  301. package/dist/utils/FileWriter.d.ts +26 -0
  302. package/dist/utils/FileWriter.js +76 -0
  303. package/dist/utils/FileWriter.js.map +1 -0
  304. package/dist/utils/PathGenerator.d.ts +30 -0
  305. package/dist/utils/PathGenerator.js +82 -0
  306. package/dist/utils/PathGenerator.js.map +1 -0
  307. package/dist/utils/api/apiUtils.d.ts +3 -0
  308. package/dist/utils/api/apiUtils.js +20 -0
  309. package/dist/utils/api/apiUtils.js.map +1 -0
  310. package/dist/utils/api/index.d.ts +1 -0
  311. package/dist/utils/api/index.js +18 -0
  312. package/dist/utils/api/index.js.map +1 -0
  313. package/dist/utils/apiErrorHandler.d.ts +130 -0
  314. package/dist/utils/apiErrorHandler.js +256 -0
  315. package/dist/utils/apiErrorHandler.js.map +1 -0
  316. package/dist/utils/ciDataCollector.d.ts +51 -0
  317. package/dist/utils/ciDataCollector.js +197 -0
  318. package/dist/utils/ciDataCollector.js.map +1 -0
  319. package/dist/utils/codingTestConfigLoader.d.ts +66 -0
  320. package/dist/utils/codingTestConfigLoader.js +420 -0
  321. package/dist/utils/codingTestConfigLoader.js.map +1 -0
  322. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
  323. package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
  324. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
  325. package/dist/utils/detection/frameworkDetector.d.ts +43 -0
  326. package/dist/utils/detection/frameworkDetector.js +795 -0
  327. package/dist/utils/detection/frameworkDetector.js.map +1 -0
  328. package/dist/utils/detection/index.d.ts +9 -0
  329. package/dist/utils/detection/index.js +28 -0
  330. package/dist/utils/detection/index.js.map +1 -0
  331. package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
  332. package/dist/utils/detection/projectTypeDetector.js +469 -0
  333. package/dist/utils/detection/projectTypeDetector.js.map +1 -0
  334. package/dist/utils/diagramGenerator.d.ts +49 -0
  335. package/dist/utils/diagramGenerator.js +218 -0
  336. package/dist/utils/diagramGenerator.js.map +1 -0
  337. package/dist/utils/errorLogger.d.ts +24 -0
  338. package/dist/utils/errorLogger.js +59 -0
  339. package/dist/utils/errorLogger.js.map +1 -0
  340. package/dist/utils/estimationUtils.d.ts +139 -0
  341. package/dist/utils/estimationUtils.js +329 -0
  342. package/dist/utils/estimationUtils.js.map +1 -0
  343. package/dist/utils/fileFilters.d.ts +72 -0
  344. package/dist/utils/fileFilters.js +338 -0
  345. package/dist/utils/fileFilters.js.map +1 -0
  346. package/dist/utils/fileSystem.d.ts +22 -0
  347. package/dist/utils/fileSystem.js +45 -0
  348. package/dist/utils/fileSystem.js.map +1 -0
  349. package/dist/utils/index.d.ts +22 -0
  350. package/dist/utils/index.js +52 -0
  351. package/dist/utils/index.js.map +1 -0
  352. package/dist/utils/logger.d.ts +77 -0
  353. package/dist/utils/logger.js +271 -0
  354. package/dist/utils/logger.js.map +1 -0
  355. package/dist/utils/pathValidator.d.ts +40 -0
  356. package/dist/utils/pathValidator.js +98 -0
  357. package/dist/utils/pathValidator.js.map +1 -0
  358. package/dist/utils/priorityFilter.d.ts +34 -0
  359. package/dist/utils/priorityFilter.js +54 -0
  360. package/dist/utils/priorityFilter.js.map +1 -0
  361. package/dist/utils/projectDocs.d.ts +47 -0
  362. package/dist/utils/projectDocs.js +158 -0
  363. package/dist/utils/projectDocs.js.map +1 -0
  364. package/dist/utils/promptPaths.d.ts +6 -0
  365. package/dist/utils/promptPaths.js +33 -0
  366. package/dist/utils/promptPaths.js.map +1 -0
  367. package/dist/utils/promptTemplateManager.d.ts +34 -0
  368. package/dist/utils/promptTemplateManager.js +140 -0
  369. package/dist/utils/promptTemplateManager.js.map +1 -0
  370. package/dist/utils/review/consolidateReview.d.ts +15 -0
  371. package/dist/utils/review/consolidateReview.js +481 -0
  372. package/dist/utils/review/consolidateReview.js.map +1 -0
  373. package/dist/utils/review/fixDisplay.d.ts +20 -0
  374. package/dist/utils/review/fixDisplay.js +84 -0
  375. package/dist/utils/review/fixDisplay.js.map +1 -0
  376. package/dist/utils/review/fixImplementation.d.ts +28 -0
  377. package/dist/utils/review/fixImplementation.js +60 -0
  378. package/dist/utils/review/fixImplementation.js.map +1 -0
  379. package/dist/utils/review/index.d.ts +13 -0
  380. package/dist/utils/review/index.js +50 -0
  381. package/dist/utils/review/index.js.map +1 -0
  382. package/dist/utils/review/interactiveProcessing.d.ts +25 -0
  383. package/dist/utils/review/interactiveProcessing.js +251 -0
  384. package/dist/utils/review/interactiveProcessing.js.map +1 -0
  385. package/dist/utils/review/progressTracker.d.ts +106 -0
  386. package/dist/utils/review/progressTracker.js +227 -0
  387. package/dist/utils/review/progressTracker.js.map +1 -0
  388. package/dist/utils/review/reviewExtraction.d.ts +31 -0
  389. package/dist/utils/review/reviewExtraction.js +324 -0
  390. package/dist/utils/review/reviewExtraction.js.map +1 -0
  391. package/dist/utils/review/types.d.ts +45 -0
  392. package/dist/utils/review/types.js +18 -0
  393. package/dist/utils/review/types.js.map +1 -0
  394. package/dist/utils/reviewActionHandler.d.ts +16 -0
  395. package/dist/utils/reviewActionHandler.js +34 -0
  396. package/dist/utils/reviewActionHandler.js.map +1 -0
  397. package/dist/utils/reviewParser.d.ts +34 -0
  398. package/dist/utils/reviewParser.js +218 -0
  399. package/dist/utils/reviewParser.js.map +1 -0
  400. package/dist/utils/sanitizer.d.ts +82 -0
  401. package/dist/utils/sanitizer.js +239 -0
  402. package/dist/utils/sanitizer.js.map +1 -0
  403. package/dist/utils/smartFileSelector.d.ts +50 -0
  404. package/dist/utils/smartFileSelector.js +261 -0
  405. package/dist/utils/smartFileSelector.js.map +1 -0
  406. package/dist/utils/templateLoader.d.ts +44 -0
  407. package/dist/utils/templateLoader.js +431 -0
  408. package/dist/utils/templateLoader.js.map +1 -0
  409. package/dist/utils/treeGenerator.d.ts +12 -0
  410. package/dist/utils/treeGenerator.js +133 -0
  411. package/dist/utils/treeGenerator.js.map +1 -0
  412. package/package.json +11 -12
  413. package/src/index.ts +1 -0
  414. package/src/runtime/debug/logManager.ts +37 -0
  415. package/src/runtime/fileCollector.ts +58 -24
  416. package/src/runtime/preprod/webCheck.ts +104 -0
  417. package/src/runtime/reviewPipeline.ts +10 -4
  418. package/src/runtime/ui/RuntimeApp.tsx +96 -13
  419. package/src/runtime/ui/screens/ModeSelection.tsx +148 -15
  420. package/src/runtime/ui/screens/ProgressScreen.tsx +10 -3
  421. package/src/runtime/ui/screens/ResultsScreen.tsx +8 -1
  422. package/src/utils/logger.ts +64 -14
@@ -0,0 +1,57 @@
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
@@ -0,0 +1 @@
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"}
@@ -0,0 +1,51 @@
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;
@@ -0,0 +1,456 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MarkdownFormatters.js","sourceRoot":"","sources":["../../../src/formatters/utils/MarkdownFormatters.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * @fileoverview Utilities for formatting metadata sections in review outputs.
3
+ *
4
+ * This module provides functions to format metadata sections for review outputs,
5
+ * including cost information, model details, and other metadata.
6
+ */
7
+ import type { ReviewType } from '../../types/review';
8
+ /**
9
+ * Format a metadata section for a review
10
+ * @param reviewType Type of review
11
+ * @param timestamp Timestamp of the review
12
+ * @param modelInfo Model information string
13
+ * @param cost Cost information object
14
+ * @param toolVersion Tool version
15
+ * @param commandOptions Command options used
16
+ * @param detectedLanguage Detected language
17
+ * @param detectedFramework Detected framework
18
+ * @param frameworkVersion Framework version
19
+ * @param cssFrameworks CSS frameworks detected
20
+ * @returns Formatted metadata section as markdown
21
+ */
22
+ export declare function formatMetadataSection(reviewType: string, timestamp: string, modelInfo: string, cost?: any, toolVersion?: string, commandOptions?: string, detectedLanguage?: string, detectedFramework?: string, frameworkVersion?: string, cssFrameworks?: Array<{
23
+ name: string;
24
+ version?: string;
25
+ }>): string;
26
+ /**
27
+ * Parse metadata from a review object
28
+ * @param metadata Metadata object or string
29
+ * @returns Parsed metadata object
30
+ */
31
+ export declare function parseMetadata(metadata: any): any;
32
+ /**
33
+ * Create enhanced metadata object with detection info
34
+ * @param modelVendor Model vendor
35
+ * @param modelName Model name
36
+ * @param modelInfo Full model info string
37
+ * @param reviewType Review type
38
+ * @param displayPath Display path
39
+ * @param timestamp Timestamp
40
+ * @param cost Cost information
41
+ * @param toolVersion Tool version
42
+ * @param commandOptions Command options
43
+ * @param additionalMetadata Additional metadata
44
+ * @param detectedLanguage Detected language
45
+ * @param detectedFramework Detected framework
46
+ * @param frameworkVersion Framework version
47
+ * @param cssFrameworks CSS frameworks
48
+ * @returns Enhanced metadata object
49
+ */
50
+ export declare function createEnhancedMetadata(modelVendor: string, modelName: string, modelInfo: string, reviewType: ReviewType, displayPath: string, timestamp: string, cost: any, toolVersion?: string, commandOptions?: string, additionalMetadata?: any, detectedLanguage?: string, detectedFramework?: string, frameworkVersion?: string, cssFrameworks?: Array<{
51
+ name: string;
52
+ version?: string;
53
+ }>): any;
54
+ /**
55
+ * Parse cost information from a cost info string
56
+ * @param costInfo Cost information string
57
+ * @returns Parsed cost object or null
58
+ */
59
+ export declare function parseCostInfo(costInfo: string): any;
60
+ /**
61
+ * Format cost information as a markdown string
62
+ * @param cost Cost information object
63
+ * @returns Formatted cost information string
64
+ */
65
+ export declare function formatCostInfo(cost: any): string;