codereview-aia 0.1.3 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/dist/analysis/FindingsExtractor.d.ts +105 -0
  2. package/dist/analysis/FindingsExtractor.js +363 -0
  3. package/dist/analysis/FindingsExtractor.js.map +1 -0
  4. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +111 -0
  5. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +215 -0
  6. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +1 -0
  7. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +142 -0
  8. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +503 -0
  9. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +1 -0
  10. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +88 -0
  11. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +343 -0
  12. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +1 -0
  13. package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +104 -0
  14. package/dist/analysis/ai-detection/core/AIDetectionEngine.js +369 -0
  15. package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +1 -0
  16. package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +364 -0
  17. package/dist/analysis/ai-detection/types/DetectionTypes.js +32 -0
  18. package/dist/analysis/ai-detection/types/DetectionTypes.js.map +1 -0
  19. package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +97 -0
  20. package/dist/analysis/ai-detection/utils/SubmissionConverter.js +339 -0
  21. package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +1 -0
  22. package/dist/analysis/context/ReviewContext.d.ts +184 -0
  23. package/dist/analysis/context/ReviewContext.js +294 -0
  24. package/dist/analysis/context/ReviewContext.js.map +1 -0
  25. package/{src/analysis/context/index.ts → dist/analysis/context/index.d.ts} +0 -1
  26. package/dist/analysis/context/index.js +23 -0
  27. package/dist/analysis/context/index.js.map +1 -0
  28. package/{src/analysis/index.ts → dist/analysis/index.d.ts} +0 -1
  29. package/dist/analysis/index.js +24 -0
  30. package/dist/analysis/index.js.map +1 -0
  31. package/dist/analysis/static/wpPhpcsRunner.d.ts +11 -0
  32. package/dist/analysis/static/wpPhpcsRunner.js +219 -0
  33. package/dist/analysis/static/wpPhpcsRunner.js.map +1 -0
  34. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +27 -0
  35. package/{src/analysis/tokens/TokenAnalysisFormatter.ts → dist/analysis/tokens/TokenAnalysisFormatter.js} +64 -75
  36. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +1 -0
  37. package/dist/analysis/tokens/TokenAnalyzer.d.ts +155 -0
  38. package/dist/analysis/tokens/TokenAnalyzer.js +502 -0
  39. package/dist/analysis/tokens/TokenAnalyzer.js.map +1 -0
  40. package/{src/analysis/tokens/index.ts → dist/analysis/tokens/index.d.ts} +0 -1
  41. package/dist/analysis/tokens/index.js +24 -0
  42. package/dist/analysis/tokens/index.js.map +1 -0
  43. package/dist/clients/base/abstractClient.d.ts +99 -0
  44. package/dist/clients/base/abstractClient.js +98 -0
  45. package/dist/clients/base/abstractClient.js.map +1 -0
  46. package/dist/clients/base/httpClient.d.ts +24 -0
  47. package/dist/clients/base/httpClient.js +147 -0
  48. package/dist/clients/base/httpClient.js.map +1 -0
  49. package/{src/clients/base/index.ts → dist/clients/base/index.d.ts} +0 -1
  50. package/dist/clients/base/index.js +28 -0
  51. package/dist/clients/base/index.js.map +1 -0
  52. package/dist/clients/base/modelDetection.d.ts +41 -0
  53. package/dist/clients/base/modelDetection.js +88 -0
  54. package/dist/clients/base/modelDetection.js.map +1 -0
  55. package/dist/clients/base/responseProcessor.d.ts +45 -0
  56. package/dist/clients/base/responseProcessor.js +495 -0
  57. package/dist/clients/base/responseProcessor.js.map +1 -0
  58. package/dist/clients/factory/clientFactory.d.ts +23 -0
  59. package/dist/clients/factory/clientFactory.js +50 -0
  60. package/dist/clients/factory/clientFactory.js.map +1 -0
  61. package/{src/clients/factory/index.ts → dist/clients/factory/index.d.ts} +0 -1
  62. package/dist/clients/factory/index.js +24 -0
  63. package/dist/clients/factory/index.js.map +1 -0
  64. package/{src/clients/implementations/index.ts → dist/clients/implementations/index.d.ts} +0 -1
  65. package/dist/clients/implementations/index.js +24 -0
  66. package/dist/clients/implementations/index.js.map +1 -0
  67. package/dist/clients/implementations/openRouterClient.d.ts +69 -0
  68. package/dist/clients/implementations/openRouterClient.js +294 -0
  69. package/dist/clients/implementations/openRouterClient.js.map +1 -0
  70. package/dist/clients/openRouterClient.d.ts +42 -0
  71. package/dist/clients/openRouterClient.js +580 -0
  72. package/dist/clients/openRouterClient.js.map +1 -0
  73. package/{src/clients/openRouterClientWrapper.ts → dist/clients/openRouterClientWrapper.d.ts} +2 -24
  74. package/dist/clients/openRouterClientWrapper.js +64 -0
  75. package/dist/clients/openRouterClientWrapper.js.map +1 -0
  76. package/dist/clients/utils/directoryStructure.d.ts +14 -0
  77. package/dist/clients/utils/directoryStructure.js +48 -0
  78. package/dist/clients/utils/directoryStructure.js.map +1 -0
  79. package/{src/clients/utils/index.ts → dist/clients/utils/index.d.ts} +0 -1
  80. package/dist/clients/utils/index.js +31 -0
  81. package/dist/clients/utils/index.js.map +1 -0
  82. package/dist/clients/utils/languageDetection.d.ts +13 -0
  83. package/dist/clients/utils/languageDetection.js +46 -0
  84. package/dist/clients/utils/languageDetection.js.map +1 -0
  85. package/dist/clients/utils/promptFormatter.d.ts +37 -0
  86. package/dist/clients/utils/promptFormatter.js +150 -0
  87. package/dist/clients/utils/promptFormatter.js.map +1 -0
  88. package/{src/clients/utils/promptLoader.ts → dist/clients/utils/promptLoader.d.ts} +1 -27
  89. package/dist/clients/utils/promptLoader.js +49 -0
  90. package/dist/clients/utils/promptLoader.js.map +1 -0
  91. package/dist/clients/utils/tokenCounter.d.ts +81 -0
  92. package/dist/clients/utils/tokenCounter.js +184 -0
  93. package/dist/clients/utils/tokenCounter.js.map +1 -0
  94. package/dist/core/ApiClientSelector.d.ts +8 -0
  95. package/dist/core/ApiClientSelector.js +29 -0
  96. package/dist/core/ApiClientSelector.js.map +1 -0
  97. package/dist/core/ConfigurationService.d.ts +307 -0
  98. package/dist/core/ConfigurationService.js +516 -0
  99. package/dist/core/ConfigurationService.js.map +1 -0
  100. package/dist/core/ConsolidationService.d.ts +99 -0
  101. package/dist/core/ConsolidationService.js +341 -0
  102. package/dist/core/ConsolidationService.js.map +1 -0
  103. package/dist/core/InteractiveDisplayManager.d.ts +22 -0
  104. package/dist/core/InteractiveDisplayManager.js +70 -0
  105. package/dist/core/InteractiveDisplayManager.js.map +1 -0
  106. package/dist/core/OutputManager.d.ts +26 -0
  107. package/dist/core/OutputManager.js +217 -0
  108. package/dist/core/OutputManager.js.map +1 -0
  109. package/dist/core/ReviewGenerator.d.ts +13 -0
  110. package/dist/core/ReviewGenerator.js +102 -0
  111. package/dist/core/ReviewGenerator.js.map +1 -0
  112. package/dist/core/fileDiscovery.d.ts +35 -0
  113. package/dist/core/fileDiscovery.js +202 -0
  114. package/dist/core/fileDiscovery.js.map +1 -0
  115. package/dist/core/handlers/EstimationHandler.d.ts +18 -0
  116. package/dist/core/handlers/EstimationHandler.js +110 -0
  117. package/dist/core/handlers/EstimationHandler.js.map +1 -0
  118. package/dist/core/handlers/FileProcessingHandler.d.ts +31 -0
  119. package/dist/core/handlers/FileProcessingHandler.js +164 -0
  120. package/dist/core/handlers/FileProcessingHandler.js.map +1 -0
  121. package/dist/core/handlers/OutputHandler.d.ts +27 -0
  122. package/dist/core/handlers/OutputHandler.js +127 -0
  123. package/dist/core/handlers/OutputHandler.js.map +1 -0
  124. package/dist/core/handlers/ReviewExecutor.d.ts +32 -0
  125. package/dist/core/handlers/ReviewExecutor.js +111 -0
  126. package/dist/core/handlers/ReviewExecutor.js.map +1 -0
  127. package/dist/core/reviewOrchestrator.d.ts +24 -0
  128. package/dist/core/reviewOrchestrator.js +354 -0
  129. package/dist/core/reviewOrchestrator.js.map +1 -0
  130. package/dist/core/utils/ModelInfoUtils.d.ts +16 -0
  131. package/dist/core/utils/ModelInfoUtils.js +54 -0
  132. package/dist/core/utils/ModelInfoUtils.js.map +1 -0
  133. package/{src/formatters/outputFormatter.ts → dist/formatters/outputFormatter.d.ts} +2 -33
  134. package/dist/formatters/outputFormatter.js +65 -0
  135. package/dist/formatters/outputFormatter.js.map +1 -0
  136. package/dist/formatters/utils/IssueFormatters.d.ts +20 -0
  137. package/dist/formatters/utils/IssueFormatters.js +67 -0
  138. package/dist/formatters/utils/IssueFormatters.js.map +1 -0
  139. package/dist/formatters/utils/JsonFormatter.d.ts +13 -0
  140. package/dist/formatters/utils/JsonFormatter.js +57 -0
  141. package/dist/formatters/utils/JsonFormatter.js.map +1 -0
  142. package/dist/formatters/utils/MarkdownFormatters.d.ts +51 -0
  143. package/dist/formatters/utils/MarkdownFormatters.js +456 -0
  144. package/dist/formatters/utils/MarkdownFormatters.js.map +1 -0
  145. package/dist/formatters/utils/MetadataFormatter.d.ts +65 -0
  146. package/dist/formatters/utils/MetadataFormatter.js +219 -0
  147. package/dist/formatters/utils/MetadataFormatter.js.map +1 -0
  148. package/dist/formatters/utils/ModelInfoExtractor.d.ts +33 -0
  149. package/dist/formatters/utils/ModelInfoExtractor.js +111 -0
  150. package/dist/formatters/utils/ModelInfoExtractor.js.map +1 -0
  151. package/dist/index.d.ts +1 -0
  152. package/dist/index.js.map +1 -0
  153. package/dist/plugins/PluginInterface.d.ts +44 -0
  154. package/dist/plugins/PluginInterface.js +9 -0
  155. package/dist/plugins/PluginInterface.js.map +1 -0
  156. package/dist/plugins/PluginManager.d.ts +51 -0
  157. package/dist/plugins/PluginManager.js +151 -0
  158. package/dist/plugins/PluginManager.js.map +1 -0
  159. package/dist/prompts/PromptManager.d.ts +30 -0
  160. package/dist/prompts/PromptManager.js +62 -0
  161. package/dist/prompts/PromptManager.js.map +1 -0
  162. package/dist/prompts/cache/PromptCache.d.ts +32 -0
  163. package/dist/prompts/cache/PromptCache.js +48 -0
  164. package/dist/prompts/cache/PromptCache.js.map +1 -0
  165. package/dist/runtime/auth/service.d.ts +2 -0
  166. package/dist/runtime/auth/service.js +41 -0
  167. package/dist/runtime/auth/service.js.map +1 -0
  168. package/dist/runtime/auth/session.d.ts +5 -0
  169. package/dist/runtime/auth/session.js +87 -0
  170. package/dist/runtime/auth/session.js.map +1 -0
  171. package/dist/runtime/auth/types.d.ts +9 -0
  172. package/dist/runtime/auth/types.js +3 -0
  173. package/dist/runtime/auth/types.js.map +1 -0
  174. package/dist/runtime/cliEntry.d.ts +1 -0
  175. package/dist/runtime/cliEntry.js +276 -0
  176. package/dist/runtime/cliEntry.js.map +1 -0
  177. package/dist/runtime/debug/logManager.d.ts +5 -0
  178. package/dist/runtime/debug/logManager.js +31 -0
  179. package/dist/runtime/debug/logManager.js.map +1 -0
  180. package/dist/runtime/errors.d.ts +5 -0
  181. package/dist/runtime/errors.js +15 -0
  182. package/dist/runtime/errors.js.map +1 -0
  183. package/dist/runtime/fileCollector.d.ts +14 -0
  184. package/dist/runtime/fileCollector.js +381 -0
  185. package/dist/runtime/fileCollector.js.map +1 -0
  186. package/dist/runtime/manifest.d.ts +1 -0
  187. package/dist/runtime/manifest.js +65 -0
  188. package/dist/runtime/manifest.js.map +1 -0
  189. package/dist/runtime/openrouterProxy.d.ts +4 -0
  190. package/dist/runtime/openrouterProxy.js +43 -0
  191. package/dist/runtime/openrouterProxy.js.map +1 -0
  192. package/dist/runtime/preprod/batchStreamer.d.ts +54 -0
  193. package/dist/runtime/preprod/batchStreamer.js +159 -0
  194. package/dist/runtime/preprod/batchStreamer.js.map +1 -0
  195. package/dist/runtime/preprod/crEdgeServiceClient.d.ts +30 -0
  196. package/dist/runtime/preprod/crEdgeServiceClient.js +133 -0
  197. package/dist/runtime/preprod/crEdgeServiceClient.js.map +1 -0
  198. package/dist/runtime/preprod/progressTracker.d.ts +21 -0
  199. package/dist/runtime/preprod/progressTracker.js +80 -0
  200. package/dist/runtime/preprod/progressTracker.js.map +1 -0
  201. package/dist/runtime/preprod/webCheck.d.ts +1 -0
  202. package/dist/runtime/preprod/webCheck.js +102 -0
  203. package/dist/runtime/preprod/webCheck.js.map +1 -0
  204. package/dist/runtime/proxyConfig.d.ts +6 -0
  205. package/dist/runtime/proxyConfig.js +86 -0
  206. package/dist/runtime/proxyConfig.js.map +1 -0
  207. package/dist/runtime/proxyEnvironment.d.ts +3 -0
  208. package/dist/runtime/proxyEnvironment.js +63 -0
  209. package/dist/runtime/proxyEnvironment.js.map +1 -0
  210. package/dist/runtime/reportMerge.d.ts +30 -0
  211. package/dist/runtime/reportMerge.js +70 -0
  212. package/dist/runtime/reportMerge.js.map +1 -0
  213. package/dist/runtime/reporting/markdownReportBuilder.d.ts +17 -0
  214. package/dist/runtime/reporting/markdownReportBuilder.js +154 -0
  215. package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
  216. package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
  217. package/dist/runtime/reporting/reportDataCollector.js +170 -0
  218. package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
  219. package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
  220. package/dist/runtime/reporting/summaryGenerator.js +67 -0
  221. package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
  222. package/dist/runtime/reviewPipeline.d.ts +61 -0
  223. package/dist/runtime/reviewPipeline.js +231 -0
  224. package/dist/runtime/reviewPipeline.js.map +1 -0
  225. package/dist/runtime/runAiCodeReview.d.ts +36 -0
  226. package/dist/runtime/runAiCodeReview.js +409 -0
  227. package/dist/runtime/runAiCodeReview.js.map +1 -0
  228. package/dist/runtime/runtimeConfig.d.ts +4 -0
  229. package/dist/runtime/runtimeConfig.js +7 -0
  230. package/dist/runtime/runtimeConfig.js.map +1 -0
  231. package/dist/runtime/ui/Layout.d.ts +11 -0
  232. package/dist/runtime/ui/Layout.js +47 -0
  233. package/dist/runtime/ui/Layout.js.map +1 -0
  234. package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
  235. package/dist/runtime/ui/RuntimeApp.js +275 -0
  236. package/dist/runtime/ui/RuntimeApp.js.map +1 -0
  237. package/dist/runtime/ui/inkModules.d.ts +10 -0
  238. package/dist/runtime/ui/inkModules.js +63 -0
  239. package/dist/runtime/ui/inkModules.js.map +1 -0
  240. package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
  241. package/dist/runtime/ui/screens/AuthScreen.js +67 -0
  242. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
  243. package/dist/runtime/ui/screens/ModeSelection.d.ts +11 -0
  244. package/dist/runtime/ui/screens/ModeSelection.js +169 -0
  245. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
  246. package/dist/runtime/ui/screens/ProgressScreen.d.ts +21 -0
  247. package/dist/runtime/ui/screens/ProgressScreen.js +86 -0
  248. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
  249. package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
  250. package/dist/runtime/ui/screens/ResultsScreen.js +34 -0
  251. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
  252. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
  253. package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
  254. package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
  255. package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
  256. package/dist/strategies/CodingTestReviewStrategy.js +681 -0
  257. package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
  258. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
  259. package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
  260. package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
  261. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
  262. package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
  263. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
  264. package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
  265. package/dist/strategies/MultiPassReviewStrategy.js +590 -0
  266. package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
  267. package/dist/strategies/ReviewStrategy.d.ts +45 -0
  268. package/dist/strategies/ReviewStrategy.js +24 -0
  269. package/dist/strategies/ReviewStrategy.js.map +1 -0
  270. package/dist/strategies/StrategyFactory.d.ts +19 -0
  271. package/dist/strategies/StrategyFactory.js +72 -0
  272. package/dist/strategies/StrategyFactory.js.map +1 -0
  273. package/{src/strategies/index.ts → dist/strategies/index.d.ts} +0 -1
  274. package/dist/strategies/index.js +30 -0
  275. package/dist/strategies/index.js.map +1 -0
  276. package/dist/tokenizers/baseTokenizer.d.ts +25 -0
  277. package/dist/tokenizers/baseTokenizer.js +48 -0
  278. package/dist/tokenizers/baseTokenizer.js.map +1 -0
  279. package/dist/tokenizers/gptTokenizer.d.ts +7 -0
  280. package/dist/tokenizers/gptTokenizer.js +28 -0
  281. package/dist/tokenizers/gptTokenizer.js.map +1 -0
  282. package/{src/tokenizers/index.ts → dist/tokenizers/index.d.ts} +0 -1
  283. package/dist/tokenizers/index.js +24 -0
  284. package/dist/tokenizers/index.js.map +1 -0
  285. package/dist/types/apiResponses.d.ts +39 -0
  286. package/dist/types/apiResponses.js +9 -0
  287. package/dist/types/apiResponses.js.map +1 -0
  288. package/dist/types/cli.d.ts +22 -0
  289. package/dist/types/cli.js +3 -0
  290. package/dist/types/cli.js.map +1 -0
  291. package/{src/types/common.ts → dist/types/common.d.ts} +2 -19
  292. package/dist/types/common.js +14 -0
  293. package/dist/types/common.js.map +1 -0
  294. package/dist/types/configuration.d.ts +682 -0
  295. package/dist/types/configuration.js +65 -0
  296. package/dist/types/configuration.js.map +1 -0
  297. package/dist/types/review.d.ts +318 -0
  298. package/dist/types/review.js +8 -0
  299. package/dist/types/review.js.map +1 -0
  300. package/dist/types/reviewSchema.d.ts +543 -0
  301. package/{src/types/reviewSchema.ts → dist/types/reviewSchema.js} +44 -104
  302. package/dist/types/reviewSchema.js.map +1 -0
  303. package/dist/types/structuredReview.d.ts +119 -0
  304. package/dist/types/structuredReview.js +6 -0
  305. package/dist/types/structuredReview.js.map +1 -0
  306. package/dist/types/tokenAnalysis.d.ts +44 -0
  307. package/dist/types/tokenAnalysis.js +4 -0
  308. package/dist/types/tokenAnalysis.js.map +1 -0
  309. package/dist/utils/FileReader.d.ts +33 -0
  310. package/dist/utils/FileReader.js +88 -0
  311. package/dist/utils/FileReader.js.map +1 -0
  312. package/dist/utils/FileWriter.d.ts +26 -0
  313. package/dist/utils/FileWriter.js +76 -0
  314. package/dist/utils/FileWriter.js.map +1 -0
  315. package/dist/utils/PathGenerator.d.ts +30 -0
  316. package/dist/utils/PathGenerator.js +82 -0
  317. package/dist/utils/PathGenerator.js.map +1 -0
  318. package/dist/utils/api/apiUtils.d.ts +3 -0
  319. package/dist/utils/api/apiUtils.js +20 -0
  320. package/dist/utils/api/apiUtils.js.map +1 -0
  321. package/dist/utils/api/index.js +18 -0
  322. package/dist/utils/api/index.js.map +1 -0
  323. package/dist/utils/apiErrorHandler.d.ts +130 -0
  324. package/dist/utils/apiErrorHandler.js +256 -0
  325. package/dist/utils/apiErrorHandler.js.map +1 -0
  326. package/dist/utils/ciDataCollector.d.ts +51 -0
  327. package/dist/utils/ciDataCollector.js +197 -0
  328. package/dist/utils/ciDataCollector.js.map +1 -0
  329. package/dist/utils/codingTestConfigLoader.d.ts +66 -0
  330. package/dist/utils/codingTestConfigLoader.js +420 -0
  331. package/dist/utils/codingTestConfigLoader.js.map +1 -0
  332. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
  333. package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
  334. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
  335. package/dist/utils/detection/frameworkDetector.d.ts +43 -0
  336. package/dist/utils/detection/frameworkDetector.js +850 -0
  337. package/dist/utils/detection/frameworkDetector.js.map +1 -0
  338. package/{src/utils/detection/index.ts → dist/utils/detection/index.d.ts} +0 -1
  339. package/dist/utils/detection/index.js +28 -0
  340. package/dist/utils/detection/index.js.map +1 -0
  341. package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
  342. package/dist/utils/detection/projectTypeDetector.js +469 -0
  343. package/dist/utils/detection/projectTypeDetector.js.map +1 -0
  344. package/dist/utils/diagramGenerator.d.ts +49 -0
  345. package/dist/utils/diagramGenerator.js +218 -0
  346. package/dist/utils/diagramGenerator.js.map +1 -0
  347. package/dist/utils/errorLogger.d.ts +24 -0
  348. package/dist/utils/errorLogger.js +59 -0
  349. package/dist/utils/errorLogger.js.map +1 -0
  350. package/dist/utils/estimationUtils.d.ts +139 -0
  351. package/dist/utils/estimationUtils.js +329 -0
  352. package/dist/utils/estimationUtils.js.map +1 -0
  353. package/dist/utils/fileFilters.d.ts +72 -0
  354. package/dist/utils/fileFilters.js +338 -0
  355. package/dist/utils/fileFilters.js.map +1 -0
  356. package/dist/utils/fileSystem.d.ts +22 -0
  357. package/dist/utils/fileSystem.js +45 -0
  358. package/dist/utils/fileSystem.js.map +1 -0
  359. package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -14
  360. package/dist/utils/index.js +52 -0
  361. package/dist/utils/index.js.map +1 -0
  362. package/dist/utils/logger.d.ts +77 -0
  363. package/dist/utils/logger.js +271 -0
  364. package/dist/utils/logger.js.map +1 -0
  365. package/dist/utils/pathValidator.d.ts +40 -0
  366. package/dist/utils/pathValidator.js +98 -0
  367. package/dist/utils/pathValidator.js.map +1 -0
  368. package/{src/utils/priorityFilter.ts → dist/utils/priorityFilter.d.ts} +1 -26
  369. package/dist/utils/priorityFilter.js +54 -0
  370. package/dist/utils/priorityFilter.js.map +1 -0
  371. package/dist/utils/projectDocs.d.ts +47 -0
  372. package/dist/utils/projectDocs.js +158 -0
  373. package/dist/utils/projectDocs.js.map +1 -0
  374. package/dist/utils/promptPaths.d.ts +6 -0
  375. package/dist/utils/promptPaths.js +33 -0
  376. package/dist/utils/promptPaths.js.map +1 -0
  377. package/dist/utils/promptTemplateManager.d.ts +34 -0
  378. package/dist/utils/promptTemplateManager.js +141 -0
  379. package/dist/utils/promptTemplateManager.js.map +1 -0
  380. package/dist/utils/review/consolidateReview.d.ts +15 -0
  381. package/dist/utils/review/consolidateReview.js +481 -0
  382. package/dist/utils/review/consolidateReview.js.map +1 -0
  383. package/dist/utils/review/fixDisplay.d.ts +20 -0
  384. package/dist/utils/review/fixDisplay.js +84 -0
  385. package/dist/utils/review/fixDisplay.js.map +1 -0
  386. package/dist/utils/review/fixImplementation.d.ts +28 -0
  387. package/dist/utils/review/fixImplementation.js +60 -0
  388. package/dist/utils/review/fixImplementation.js.map +1 -0
  389. package/dist/utils/review/index.d.ts +13 -0
  390. package/dist/utils/review/index.js +50 -0
  391. package/dist/utils/review/index.js.map +1 -0
  392. package/dist/utils/review/interactiveProcessing.d.ts +25 -0
  393. package/dist/utils/review/interactiveProcessing.js +251 -0
  394. package/dist/utils/review/interactiveProcessing.js.map +1 -0
  395. package/dist/utils/review/progressTracker.d.ts +106 -0
  396. package/dist/utils/review/progressTracker.js +227 -0
  397. package/dist/utils/review/progressTracker.js.map +1 -0
  398. package/dist/utils/review/reviewExtraction.d.ts +31 -0
  399. package/dist/utils/review/reviewExtraction.js +324 -0
  400. package/dist/utils/review/reviewExtraction.js.map +1 -0
  401. package/dist/utils/review/types.d.ts +45 -0
  402. package/dist/utils/review/types.js +18 -0
  403. package/dist/utils/review/types.js.map +1 -0
  404. package/{src/utils/reviewActionHandler.ts → dist/utils/reviewActionHandler.d.ts} +0 -2
  405. package/dist/utils/reviewActionHandler.js +34 -0
  406. package/dist/utils/reviewActionHandler.js.map +1 -0
  407. package/dist/utils/reviewParser.d.ts +34 -0
  408. package/dist/utils/reviewParser.js +218 -0
  409. package/dist/utils/reviewParser.js.map +1 -0
  410. package/dist/utils/sanitizer.d.ts +82 -0
  411. package/dist/utils/sanitizer.js +239 -0
  412. package/dist/utils/sanitizer.js.map +1 -0
  413. package/dist/utils/smartFileSelector.d.ts +50 -0
  414. package/dist/utils/smartFileSelector.js +261 -0
  415. package/dist/utils/smartFileSelector.js.map +1 -0
  416. package/dist/utils/templateLoader.d.ts +44 -0
  417. package/dist/utils/templateLoader.js +431 -0
  418. package/dist/utils/templateLoader.js.map +1 -0
  419. package/dist/utils/treeGenerator.d.ts +12 -0
  420. package/dist/utils/treeGenerator.js +133 -0
  421. package/dist/utils/treeGenerator.js.map +1 -0
  422. package/package.json +5 -1
  423. package/.cr-aia.yml +0 -23
  424. package/.crignore +0 -0
  425. package/docs/opt-in-full-context.md +0 -27
  426. package/reports/cr-cr-aia-17-11-2025-20-13.md +0 -354
  427. package/src/analysis/FindingsExtractor.ts +0 -431
  428. package/src/analysis/ai-detection/analyzers/BaseAnalyzer.ts +0 -267
  429. package/src/analysis/ai-detection/analyzers/DocumentationAnalyzer.ts +0 -622
  430. package/src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts +0 -430
  431. package/src/analysis/ai-detection/core/AIDetectionEngine.ts +0 -467
  432. package/src/analysis/ai-detection/types/DetectionTypes.ts +0 -406
  433. package/src/analysis/ai-detection/utils/SubmissionConverter.ts +0 -390
  434. package/src/analysis/context/ReviewContext.ts +0 -378
  435. package/src/analysis/tokens/TokenAnalyzer.ts +0 -747
  436. package/src/clients/base/abstractClient.ts +0 -190
  437. package/src/clients/base/httpClient.ts +0 -160
  438. package/src/clients/base/modelDetection.ts +0 -107
  439. package/src/clients/base/responseProcessor.ts +0 -586
  440. package/src/clients/factory/clientFactory.ts +0 -55
  441. package/src/clients/implementations/openRouterClient.ts +0 -413
  442. package/src/clients/openRouterClient.ts +0 -870
  443. package/src/clients/utils/directoryStructure.ts +0 -52
  444. package/src/clients/utils/languageDetection.ts +0 -44
  445. package/src/clients/utils/promptFormatter.ts +0 -182
  446. package/src/clients/utils/tokenCounter.ts +0 -297
  447. package/src/core/ApiClientSelector.ts +0 -37
  448. package/src/core/ConfigurationService.ts +0 -591
  449. package/src/core/ConsolidationService.ts +0 -423
  450. package/src/core/InteractiveDisplayManager.ts +0 -81
  451. package/src/core/OutputManager.ts +0 -275
  452. package/src/core/ReviewGenerator.ts +0 -140
  453. package/src/core/fileDiscovery.ts +0 -237
  454. package/src/core/handlers/EstimationHandler.ts +0 -104
  455. package/src/core/handlers/FileProcessingHandler.ts +0 -210
  456. package/src/core/handlers/OutputHandler.ts +0 -125
  457. package/src/core/handlers/ReviewExecutor.ts +0 -104
  458. package/src/core/reviewOrchestrator.ts +0 -333
  459. package/src/core/utils/ModelInfoUtils.ts +0 -56
  460. package/src/formatters/utils/IssueFormatters.ts +0 -83
  461. package/src/formatters/utils/JsonFormatter.ts +0 -77
  462. package/src/formatters/utils/MarkdownFormatters.ts +0 -609
  463. package/src/formatters/utils/MetadataFormatter.ts +0 -269
  464. package/src/formatters/utils/ModelInfoExtractor.ts +0 -115
  465. package/src/index.ts +0 -25
  466. package/src/plugins/PluginInterface.ts +0 -50
  467. package/src/plugins/PluginManager.ts +0 -126
  468. package/src/prompts/PromptManager.ts +0 -69
  469. package/src/prompts/cache/PromptCache.ts +0 -50
  470. package/src/prompts/promptText/common/variables/css-frameworks.json +0 -33
  471. package/src/prompts/promptText/common/variables/framework-versions.json +0 -45
  472. package/src/prompts/promptText/frameworks/react/comprehensive.hbs +0 -19
  473. package/src/prompts/promptText/languages/css/comprehensive.hbs +0 -18
  474. package/src/prompts/promptText/languages/generic/comprehensive.hbs +0 -20
  475. package/src/prompts/promptText/languages/html/comprehensive.hbs +0 -18
  476. package/src/prompts/promptText/languages/javascript/comprehensive.hbs +0 -18
  477. package/src/prompts/promptText/languages/python/comprehensive.hbs +0 -18
  478. package/src/prompts/promptText/languages/typescript/comprehensive.hbs +0 -18
  479. package/src/runtime/auth/service.ts +0 -58
  480. package/src/runtime/auth/session.ts +0 -103
  481. package/src/runtime/auth/types.ts +0 -11
  482. package/src/runtime/cliEntry.ts +0 -214
  483. package/src/runtime/debug/logManager.ts +0 -37
  484. package/src/runtime/errors.ts +0 -13
  485. package/src/runtime/fileCollector.ts +0 -495
  486. package/src/runtime/manifest.ts +0 -64
  487. package/src/runtime/openrouterProxy.ts +0 -45
  488. package/src/runtime/preprod/webCheck.ts +0 -104
  489. package/src/runtime/proxyConfig.ts +0 -94
  490. package/src/runtime/proxyEnvironment.ts +0 -71
  491. package/src/runtime/reportMerge.ts +0 -102
  492. package/src/runtime/reporting/markdownReportBuilder.ts +0 -138
  493. package/src/runtime/reporting/reportDataCollector.ts +0 -234
  494. package/src/runtime/reporting/summaryGenerator.ts +0 -86
  495. package/src/runtime/reviewPipeline.ts +0 -200
  496. package/src/runtime/runAiCodeReview.ts +0 -308
  497. package/src/runtime/runtimeConfig.ts +0 -5
  498. package/src/runtime/ui/Layout.tsx +0 -57
  499. package/src/runtime/ui/RuntimeApp.tsx +0 -262
  500. package/src/runtime/ui/inkModules.ts +0 -73
  501. package/src/runtime/ui/screens/AuthScreen.tsx +0 -128
  502. package/src/runtime/ui/screens/ModeSelection.tsx +0 -185
  503. package/src/runtime/ui/screens/ProgressScreen.tsx +0 -110
  504. package/src/runtime/ui/screens/ResultsScreen.tsx +0 -103
  505. package/src/strategies/ArchitecturalReviewStrategy.ts +0 -54
  506. package/src/strategies/CodingTestReviewStrategy.ts +0 -920
  507. package/src/strategies/ConsolidatedReviewStrategy.ts +0 -59
  508. package/src/strategies/ExtractPatternsReviewStrategy.ts +0 -64
  509. package/src/strategies/MultiPassReviewStrategy.ts +0 -785
  510. package/src/strategies/ReviewStrategy.ts +0 -64
  511. package/src/strategies/StrategyFactory.ts +0 -79
  512. package/src/tokenizers/baseTokenizer.ts +0 -61
  513. package/src/tokenizers/gptTokenizer.ts +0 -27
  514. package/src/types/apiResponses.ts +0 -40
  515. package/src/types/cli.ts +0 -24
  516. package/src/types/configuration.ts +0 -201
  517. package/src/types/handlebars.d.ts +0 -5
  518. package/src/types/patch.d.ts +0 -25
  519. package/src/types/review.ts +0 -312
  520. package/src/types/reviewContext.d.ts +0 -65
  521. package/src/types/structuredReview.ts +0 -167
  522. package/src/types/tokenAnalysis.ts +0 -56
  523. package/src/utils/FileReader.ts +0 -93
  524. package/src/utils/FileWriter.ts +0 -76
  525. package/src/utils/PathGenerator.ts +0 -97
  526. package/src/utils/api/apiUtils.ts +0 -14
  527. package/src/utils/apiErrorHandler.ts +0 -287
  528. package/src/utils/ciDataCollector.ts +0 -252
  529. package/src/utils/codingTestConfigLoader.ts +0 -466
  530. package/src/utils/dependencies/aiDependencyAnalyzer.ts +0 -454
  531. package/src/utils/detection/frameworkDetector.ts +0 -879
  532. package/src/utils/detection/projectTypeDetector.ts +0 -518
  533. package/src/utils/diagramGenerator.ts +0 -206
  534. package/src/utils/errorLogger.ts +0 -60
  535. package/src/utils/estimationUtils.ts +0 -407
  536. package/src/utils/fileFilters.ts +0 -373
  537. package/src/utils/fileSystem.ts +0 -57
  538. package/src/utils/logger.ts +0 -290
  539. package/src/utils/pathValidator.ts +0 -98
  540. package/src/utils/projectDocs.ts +0 -189
  541. package/src/utils/promptPaths.ts +0 -29
  542. package/src/utils/promptTemplateManager.ts +0 -157
  543. package/src/utils/review/consolidateReview.ts +0 -553
  544. package/src/utils/review/fixDisplay.ts +0 -100
  545. package/src/utils/review/fixImplementation.ts +0 -61
  546. package/src/utils/review/index.ts +0 -36
  547. package/src/utils/review/interactiveProcessing.ts +0 -294
  548. package/src/utils/review/progressTracker.ts +0 -296
  549. package/src/utils/review/reviewExtraction.ts +0 -382
  550. package/src/utils/review/types.ts +0 -46
  551. package/src/utils/reviewParser.ts +0 -253
  552. package/src/utils/sanitizer.ts +0 -238
  553. package/src/utils/smartFileSelector.ts +0 -255
  554. package/src/utils/templateLoader.ts +0 -514
  555. package/src/utils/treeGenerator.ts +0 -153
  556. package/tsconfig.build.json +0 -14
  557. package/tsconfig.json +0 -59
  558. /package/{src/utils/api/index.ts → dist/utils/api/index.d.ts} +0 -0
@@ -0,0 +1,516 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Unified Configuration Service
4
+ *
5
+ * This service consolidates all configuration management into a single, cohesive module.
6
+ * It replaces the fragmented configuration files (config.ts, configFileManager.ts,
7
+ * configManager.ts, unifiedConfig.ts, codingTestConfigLoader.ts, envLoader.ts) with
8
+ * a single source of truth for configuration.
9
+ *
10
+ * Key features:
11
+ * - Single source of truth for all configuration
12
+ * - Clear precedence order: CLI > Environment > Config File > Defaults
13
+ * - Type-safe configuration with Zod validation
14
+ * - Support for YAML and JSON config files
15
+ * - Environment variable loading with .env.local support
16
+ * - Comprehensive error handling and validation
17
+ */
18
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
19
+ if (k2 === undefined) k2 = k;
20
+ var desc = Object.getOwnPropertyDescriptor(m, k);
21
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
22
+ desc = { enumerable: true, get: function() { return m[k]; } };
23
+ }
24
+ Object.defineProperty(o, k2, desc);
25
+ }) : (function(o, m, k, k2) {
26
+ if (k2 === undefined) k2 = k;
27
+ o[k2] = m[k];
28
+ }));
29
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
30
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
31
+ }) : function(o, v) {
32
+ o["default"] = v;
33
+ });
34
+ var __importStar = (this && this.__importStar) || (function () {
35
+ var ownKeys = function(o) {
36
+ ownKeys = Object.getOwnPropertyNames || function (o) {
37
+ var ar = [];
38
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
39
+ return ar;
40
+ };
41
+ return ownKeys(o);
42
+ };
43
+ return function (mod) {
44
+ if (mod && mod.__esModule) return mod;
45
+ var result = {};
46
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
47
+ __setModuleDefault(result, mod);
48
+ return result;
49
+ };
50
+ })();
51
+ var __importDefault = (this && this.__importDefault) || function (mod) {
52
+ return (mod && mod.__esModule) ? mod : { "default": mod };
53
+ };
54
+ Object.defineProperty(exports, "__esModule", { value: true });
55
+ exports.configurationService = exports.ConfigurationService = void 0;
56
+ exports.getConfig = getConfig;
57
+ exports.resetConfig = resetConfig;
58
+ exports.hasAnyApiKey = hasAnyApiKey;
59
+ const node_fs_1 = __importDefault(require("node:fs"));
60
+ const node_path_1 = __importDefault(require("node:path"));
61
+ // Use dynamic import for js-yaml to avoid type issues
62
+ // import * as yaml from 'js-yaml';
63
+ const dotenv = __importStar(require("dotenv"));
64
+ const zod_1 = require("zod");
65
+ const logger_1 = __importDefault(require("../utils/logger"));
66
+ const promptPaths_1 = require("../utils/promptPaths");
67
+ /**
68
+ * Safely converts optional string inputs (like env vars) to numbers.
69
+ * Returns undefined when the input is absent or not a valid finite number.
70
+ */
71
+ const toOptionalNumber = (value) => {
72
+ if (value === undefined || value === null || value === '') {
73
+ return undefined;
74
+ }
75
+ const parsed = Number(value);
76
+ return Number.isFinite(parsed) ? parsed : undefined;
77
+ };
78
+ // Configuration schema with validation
79
+ const ConfigSchema = zod_1.z.object({
80
+ // API Keys (OpenRouter only)
81
+ openRouterApiKey: zod_1.z.string().optional(),
82
+ // Model configuration
83
+ model: zod_1.z.string().default('openrouter:moonshotai/kimi-k2-thinking'),
84
+ writerModel: zod_1.z.string().optional(),
85
+ // Output configuration
86
+ outputDir: zod_1.z.string().default('cr-aia-docs'),
87
+ outputFormat: zod_1.z.enum(['markdown', 'json']).default('markdown'),
88
+ // Behavior configuration
89
+ debug: zod_1.z.boolean().default(false),
90
+ logLevel: zod_1.z.enum(['debug', 'info', 'warn', 'error', 'none']).default('info'),
91
+ interactive: zod_1.z.boolean().default(false),
92
+ // Review features
93
+ includeTests: zod_1.z.boolean().default(false),
94
+ includeProjectDocs: zod_1.z.boolean().default(true),
95
+ includeDependencyAnalysis: zod_1.z.boolean().default(true),
96
+ // Multi-pass configuration
97
+ multiPass: zod_1.z.boolean().default(false),
98
+ forceSinglePass: zod_1.z.boolean().default(false),
99
+ contextMaintenanceFactor: zod_1.z.number().min(0).max(1).default(0.15),
100
+ // Advanced features
101
+ testApi: zod_1.z.boolean().default(false),
102
+ estimate: zod_1.z.boolean().default(false),
103
+ noConfirm: zod_1.z.boolean().default(false),
104
+ // Paths
105
+ contextPaths: zod_1.z.array(zod_1.z.string()).optional(),
106
+ configPath: zod_1.z.string().optional(),
107
+ // Coding test specific
108
+ assignmentFile: zod_1.z.string().optional(),
109
+ assignmentUrl: zod_1.z.string().optional(),
110
+ assignmentText: zod_1.z.string().optional(),
111
+ evaluationTemplate: zod_1.z.string().optional(),
112
+ templateUrl: zod_1.z.string().optional(),
113
+ rubricFile: zod_1.z.string().optional(),
114
+ assessmentType: zod_1.z
115
+ .enum(['coding-challenge', 'take-home', 'live-coding', 'code-review'])
116
+ .default('coding-challenge'),
117
+ difficultyLevel: zod_1.z.enum(['junior', 'mid', 'senior', 'lead', 'architect']).default('mid'),
118
+ // Evaluation weights
119
+ weightCorrectness: zod_1.z.number().min(0).max(100).default(30),
120
+ weightCodeQuality: zod_1.z.number().min(0).max(100).default(25),
121
+ weightArchitecture: zod_1.z.number().min(0).max(100).default(20),
122
+ weightPerformance: zod_1.z.number().min(0).max(100).default(15),
123
+ weightTesting: zod_1.z.number().min(0).max(100).default(10),
124
+ // Evaluation options
125
+ evaluateDocumentation: zod_1.z.boolean().default(false),
126
+ evaluateGitHistory: zod_1.z.boolean().default(false),
127
+ evaluateEdgeCases: zod_1.z.boolean().default(false),
128
+ evaluateErrorHandling: zod_1.z.boolean().default(false),
129
+ // Scoring system
130
+ scoringSystem: zod_1.z.enum(['numeric', 'letter', 'pass-fail', 'custom']).default('numeric'),
131
+ maxScore: zod_1.z.number().default(100),
132
+ passingThreshold: zod_1.z.number().default(70),
133
+ scoreBreakdown: zod_1.z.boolean().default(true),
134
+ // Feedback configuration
135
+ feedbackLevel: zod_1.z.enum(['basic', 'detailed', 'comprehensive']).default('detailed'),
136
+ includeExamples: zod_1.z.boolean().default(true),
137
+ includeSuggestions: zod_1.z.boolean().default(true),
138
+ includeResources: zod_1.z.boolean().default(false),
139
+ // AI detection
140
+ enableAiDetection: zod_1.z.boolean().default(false),
141
+ aiDetectionThreshold: zod_1.z.number().min(0).max(1).default(0.7),
142
+ aiDetectionAnalyzers: zod_1.z.string().default('git,documentation'),
143
+ aiDetectionIncludeInReport: zod_1.z.boolean().default(true),
144
+ aiDetectionFailOnDetection: zod_1.z.boolean().default(false),
145
+ // Constraints
146
+ allowedLibraries: zod_1.z.array(zod_1.z.string()).optional(),
147
+ forbiddenPatterns: zod_1.z.array(zod_1.z.string()).optional(),
148
+ nodeVersion: zod_1.z.string().optional(),
149
+ typescriptVersion: zod_1.z.string().optional(),
150
+ memoryLimit: zod_1.z.number().optional(),
151
+ executionTimeout: zod_1.z.number().optional(),
152
+ timeLimit: zod_1.z.number().optional(),
153
+ // Diagram generation
154
+ diagram: zod_1.z.boolean().default(false),
155
+ // Batch processing
156
+ batchTokenLimit: zod_1.z.number().optional(),
157
+ // WordPress integration
158
+ wordpressAutoDetect: zod_1.z.boolean().default(true),
159
+ wordpressForceEnable: zod_1.z.boolean().default(false),
160
+ wordpressForceDisable: zod_1.z.boolean().default(false),
161
+ wordpressPhpcsEnabled: zod_1.z.boolean().default(true),
162
+ wordpressPhpcsPath: zod_1.z.string().optional(),
163
+ wordpressPhpcsStandard: zod_1.z.string().optional(),
164
+ wordpressPhpcsTestVersion: zod_1.z.string().optional(),
165
+ });
166
+ /**
167
+ * Unified Configuration Service
168
+ *
169
+ * This class provides a single source of truth for all configuration management.
170
+ * It handles loading from CLI arguments, environment variables, and config files
171
+ * with a clear precedence order.
172
+ */
173
+ class ConfigurationService {
174
+ static instance = null;
175
+ config = null;
176
+ constructor() { }
177
+ /**
178
+ * Get the singleton instance of the configuration service
179
+ */
180
+ static getInstance() {
181
+ if (!ConfigurationService.instance) {
182
+ ConfigurationService.instance = new ConfigurationService();
183
+ }
184
+ return ConfigurationService.instance;
185
+ }
186
+ /**
187
+ * Get the current configuration
188
+ * @param cliOptions Optional CLI options to override configuration
189
+ * @returns The validated configuration object
190
+ */
191
+ getConfig(cliOptions) {
192
+ if (!this.config || cliOptions) {
193
+ this.config = this.buildConfiguration(cliOptions);
194
+ }
195
+ return this.config;
196
+ }
197
+ /**
198
+ * Reset the configuration (useful for testing)
199
+ */
200
+ resetConfig() {
201
+ this.config = null;
202
+ }
203
+ /**
204
+ * Check if any API key is available
205
+ */
206
+ hasAnyApiKey(config) {
207
+ const cfg = config || this.getConfig();
208
+ return !!cfg.openRouterApiKey;
209
+ }
210
+ /**
211
+ * Get paths configuration
212
+ */
213
+ getPathsConfig() {
214
+ const config = this.getConfig();
215
+ const promptsDir = (0, promptPaths_1.resolvePromptTemplatesDir)();
216
+ return {
217
+ outputDir: config.outputDir || 'cr-aia-docs',
218
+ promptsDir,
219
+ templatesDir: promptsDir,
220
+ contextPaths: config.contextPaths,
221
+ };
222
+ }
223
+ /**
224
+ * Get application config (for backward compatibility)
225
+ */
226
+ getApplicationConfig() {
227
+ const config = this.getConfig();
228
+ return {
229
+ selectedModel: {
230
+ value: config.model,
231
+ source: 'configuration_service',
232
+ },
233
+ openRouterApiKey: config.openRouterApiKey
234
+ ? {
235
+ value: config.openRouterApiKey,
236
+ source: 'environment',
237
+ }
238
+ : undefined,
239
+ debug: {
240
+ value: config.debug,
241
+ source: 'configuration_service',
242
+ },
243
+ logLevel: {
244
+ value: config.logLevel,
245
+ source: 'configuration_service',
246
+ },
247
+ outputDir: {
248
+ value: config.outputDir,
249
+ source: 'configuration_service',
250
+ },
251
+ };
252
+ }
253
+ /**
254
+ * Build the configuration from all sources with proper precedence
255
+ */
256
+ buildConfiguration(cliOptions) {
257
+ // 1. Load environment variables from .env.local
258
+ this.loadEnvironmentVariables();
259
+ // 2. Load configuration file
260
+ const configFile = this.loadConfigFile(cliOptions?.config);
261
+ // 3. Build configuration with precedence: CLI > Environment > Config File > Defaults
262
+ const rawConfig = this.mergeConfigurationSources(cliOptions, configFile);
263
+ // 4. Validate and return the configuration
264
+ try {
265
+ return ConfigSchema.parse(rawConfig);
266
+ }
267
+ catch (error) {
268
+ logger_1.default.error('Configuration validation failed:', error);
269
+ throw new Error(`Invalid configuration: ${error}`);
270
+ }
271
+ }
272
+ /**
273
+ * Load environment variables from .env.local file
274
+ */
275
+ loadEnvironmentVariables() {
276
+ const envLocalPath = node_path_1.default.join(process.cwd(), '.env.local');
277
+ if (node_fs_1.default.existsSync(envLocalPath)) {
278
+ try {
279
+ dotenv.config({ path: envLocalPath, override: true });
280
+ logger_1.default.debug(`Loaded environment variables from ${envLocalPath}`);
281
+ }
282
+ catch (error) {
283
+ logger_1.default.warn(`Failed to load environment variables from ${envLocalPath}:`, error);
284
+ }
285
+ }
286
+ }
287
+ /**
288
+ * Load configuration file (YAML or JSON)
289
+ */
290
+ loadConfigFile(configPath) {
291
+ const defaultConfigFiles = [
292
+ '.cr-aia.yml',
293
+ ];
294
+ const filesToTry = configPath ? [configPath] : defaultConfigFiles;
295
+ for (const filePath of filesToTry) {
296
+ const fullPath = node_path_1.default.resolve(filePath);
297
+ if (node_fs_1.default.existsSync(fullPath)) {
298
+ try {
299
+ const content = node_fs_1.default.readFileSync(fullPath, 'utf8');
300
+ const extension = node_path_1.default.extname(fullPath).toLowerCase();
301
+ let config;
302
+ if (extension === '.json') {
303
+ config = JSON.parse(content);
304
+ }
305
+ else if (extension === '.yaml' || extension === '.yml') {
306
+ // Use dynamic import for js-yaml
307
+ const yaml = require('js-yaml');
308
+ config = yaml.load(content);
309
+ }
310
+ else {
311
+ logger_1.default.warn(`Unsupported config file format: ${extension}`);
312
+ continue;
313
+ }
314
+ logger_1.default.debug(`Loaded configuration from ${fullPath}`);
315
+ return config;
316
+ }
317
+ catch (error) {
318
+ logger_1.default.error(`Failed to load config file ${fullPath}:`, error);
319
+ if (configPath) {
320
+ throw error; // If explicitly specified, throw the error
321
+ }
322
+ }
323
+ }
324
+ }
325
+ return null;
326
+ }
327
+ /**
328
+ * Merge configuration from all sources with proper precedence
329
+ */
330
+ mergeConfigurationSources(cliOptions, configFile) {
331
+ return {
332
+ // API Keys (OpenRouter only, environment only, not exposed via CLI for security)
333
+ openRouterApiKey: this.getApiKey('openrouter'),
334
+ // Model configuration
335
+ model: cliOptions?.model ||
336
+ process.env.AI_CODE_REVIEW_MODEL ||
337
+ configFile?.model?.default ||
338
+ configFile?.api?.model ||
339
+ 'openrouter:moonshotai/kimi-k2-thinking',
340
+ writerModel: cliOptions?.writerModel ||
341
+ process.env.AI_CODE_REVIEW_WRITER_MODEL ||
342
+ configFile?.model?.writer ||
343
+ configFile?.api?.writer_model,
344
+ // Output configuration
345
+ outputDir: cliOptions?.outputDir ||
346
+ process.env.AI_CODE_REVIEW_OUTPUT_DIR ||
347
+ configFile?.output?.directory ||
348
+ configFile?.output?.dir ||
349
+ 'cr-aia-docs',
350
+ outputFormat: cliOptions?.output ||
351
+ process.env.AI_CODE_REVIEW_OUTPUT_FORMAT ||
352
+ configFile?.output?.format ||
353
+ 'markdown',
354
+ // Behavior configuration
355
+ debug: cliOptions?.debug ??
356
+ (process.env.AI_CODE_REVIEW_DEBUG === 'true' ? true : undefined) ??
357
+ configFile?.behavior?.debug ??
358
+ configFile?.system?.debug ??
359
+ false,
360
+ logLevel: cliOptions?.logLevel ||
361
+ process.env.AI_CODE_REVIEW_LOG_LEVEL ||
362
+ configFile?.behavior?.log_level ||
363
+ configFile?.system?.log_level ||
364
+ 'info',
365
+ interactive: cliOptions?.interactive ??
366
+ (process.env.AI_CODE_REVIEW_INTERACTIVE === 'true' ? true : undefined) ??
367
+ configFile?.behavior?.interactive ??
368
+ configFile?.review?.interactive ??
369
+ false,
370
+ // Review features
371
+ includeTests: cliOptions?.includeTests ??
372
+ (process.env.AI_CODE_REVIEW_INCLUDE_TESTS === 'true' ? true : undefined) ??
373
+ configFile?.features?.include_tests ??
374
+ configFile?.review?.include_tests ??
375
+ false,
376
+ includeProjectDocs: cliOptions?.includeProjectDocs ??
377
+ (process.env.AI_CODE_REVIEW_INCLUDE_PROJECT_DOCS === 'true' ? true : undefined) ??
378
+ configFile?.features?.include_project_docs ??
379
+ configFile?.review?.include_project_docs ??
380
+ true,
381
+ includeDependencyAnalysis: cliOptions?.includeDependencyAnalysis ??
382
+ (process.env.AI_CODE_REVIEW_INCLUDE_DEPENDENCY_ANALYSIS === 'true' ? true : undefined) ??
383
+ configFile?.features?.include_dependency_analysis ??
384
+ configFile?.review?.include_dependency_analysis ??
385
+ true,
386
+ // Multi-pass configuration
387
+ multiPass: cliOptions?.multiPass ??
388
+ (process.env.AI_CODE_REVIEW_MULTI_PASS === 'true' ? true : undefined) ??
389
+ configFile?.features?.multi_pass ??
390
+ false,
391
+ forceSinglePass: cliOptions?.forceSinglePass ??
392
+ (process.env.AI_CODE_REVIEW_FORCE_SINGLE_PASS === 'true' ? true : undefined) ??
393
+ configFile?.features?.force_single_pass ??
394
+ false,
395
+ contextMaintenanceFactor: cliOptions?.contextMaintenanceFactor ??
396
+ toOptionalNumber(process.env.AI_CODE_REVIEW_CONTEXT_MAINTENANCE_FACTOR) ??
397
+ 0.15,
398
+ // Advanced features
399
+ testApi: cliOptions?.testApi ??
400
+ (process.env.AI_CODE_REVIEW_TEST_API === 'true' ? true : undefined) ??
401
+ configFile?.api?.test_api ??
402
+ false,
403
+ estimate: cliOptions?.estimate ??
404
+ (process.env.AI_CODE_REVIEW_ESTIMATE === 'true' ? true : undefined) ??
405
+ false,
406
+ noConfirm: cliOptions?.noConfirm ??
407
+ (process.env.AI_CODE_REVIEW_NO_CONFIRM === 'true' ? true : undefined) ??
408
+ !(configFile?.review?.confirm ?? true),
409
+ // Paths
410
+ contextPaths: undefined, // contextPaths is not available in CliOptions
411
+ configPath: cliOptions?.config,
412
+ // Coding test specific (from CLI options)
413
+ assignmentFile: cliOptions?.assignmentFile,
414
+ assignmentUrl: cliOptions?.assignmentUrl,
415
+ assignmentText: cliOptions?.assignmentText,
416
+ evaluationTemplate: cliOptions?.evaluationTemplate,
417
+ templateUrl: cliOptions?.templateUrl,
418
+ rubricFile: cliOptions?.rubricFile,
419
+ assessmentType: cliOptions?.assessmentType || 'coding-challenge',
420
+ difficultyLevel: cliOptions?.difficultyLevel || 'mid',
421
+ // Evaluation weights
422
+ weightCorrectness: cliOptions?.weightCorrectness ?? 30,
423
+ weightCodeQuality: cliOptions?.weightCodeQuality ?? 25,
424
+ weightArchitecture: cliOptions?.weightArchitecture ?? 20,
425
+ weightPerformance: cliOptions?.weightPerformance ?? 15,
426
+ weightTesting: cliOptions?.weightTesting ?? 10,
427
+ // Evaluation options
428
+ evaluateDocumentation: cliOptions?.evaluateDocumentation ?? false,
429
+ evaluateGitHistory: cliOptions?.evaluateGitHistory ?? false,
430
+ evaluateEdgeCases: cliOptions?.evaluateEdgeCases ?? false,
431
+ evaluateErrorHandling: cliOptions?.evaluateErrorHandling ?? false,
432
+ // Scoring system
433
+ scoringSystem: cliOptions?.scoringSystem || 'numeric',
434
+ maxScore: cliOptions?.maxScore ?? 100,
435
+ passingThreshold: cliOptions?.passingThreshold ?? 70,
436
+ scoreBreakdown: cliOptions?.scoreBreakdown ?? true,
437
+ // Feedback configuration
438
+ feedbackLevel: cliOptions?.feedbackLevel || 'detailed',
439
+ includeExamples: cliOptions?.includeExamples ?? true,
440
+ includeSuggestions: cliOptions?.includeSuggestions ?? true,
441
+ includeResources: cliOptions?.includeResources ?? false,
442
+ // AI detection
443
+ enableAiDetection: cliOptions?.enableAiDetection ?? false,
444
+ aiDetectionThreshold: cliOptions?.aiDetectionThreshold ?? 0.7,
445
+ aiDetectionAnalyzers: cliOptions?.aiDetectionAnalyzers || 'git,documentation',
446
+ aiDetectionIncludeInReport: cliOptions?.aiDetectionIncludeInReport ?? true,
447
+ aiDetectionFailOnDetection: cliOptions?.aiDetectionFailOnDetection ?? false,
448
+ // Constraints
449
+ allowedLibraries: cliOptions?.allowedLibraries,
450
+ forbiddenPatterns: cliOptions?.forbiddenPatterns,
451
+ nodeVersion: cliOptions?.nodeVersion,
452
+ typescriptVersion: cliOptions?.typescriptVersion,
453
+ memoryLimit: cliOptions?.memoryLimit,
454
+ executionTimeout: cliOptions?.executionTimeout,
455
+ timeLimit: cliOptions?.timeLimit,
456
+ // Diagram generation
457
+ diagram: cliOptions?.diagram ?? false,
458
+ // Batch processing
459
+ batchTokenLimit: cliOptions?.batchTokenLimit,
460
+ // WordPress integration
461
+ wordpressAutoDetect: (process.env.AI_CODE_REVIEW_WORDPRESS_AUTO_DETECT === 'false'
462
+ ? false
463
+ : process.env.AI_CODE_REVIEW_WORDPRESS_AUTO_DETECT === 'true'
464
+ ? true
465
+ : undefined) ?? configFile?.wordpress?.auto_detect ?? true,
466
+ wordpressForceEnable: cliOptions?.forceWordPress ??
467
+ (process.env.AI_CODE_REVIEW_FORCE_WORDPRESS === 'true' ? true : undefined) ??
468
+ configFile?.wordpress?.force_enable ??
469
+ false,
470
+ wordpressForceDisable: cliOptions?.disableWordPress ??
471
+ (process.env.AI_CODE_REVIEW_DISABLE_WORDPRESS === 'true' ? true : undefined) ??
472
+ configFile?.wordpress?.force_disable ??
473
+ false,
474
+ wordpressPhpcsEnabled: cliOptions?.wordpressPhpcsEnabled ??
475
+ (process.env.AI_CODE_REVIEW_WORDPRESS_PHPCS === 'false'
476
+ ? false
477
+ : process.env.AI_CODE_REVIEW_WORDPRESS_PHPCS === 'true'
478
+ ? true
479
+ : undefined) ??
480
+ configFile?.wordpress?.phpcs_enabled ??
481
+ true,
482
+ wordpressPhpcsPath: cliOptions?.wordpressPhpcsPath ||
483
+ process.env.AI_CODE_REVIEW_WORDPRESS_PHPCS_PATH ||
484
+ configFile?.wordpress?.phpcs_path,
485
+ wordpressPhpcsStandard: cliOptions?.wordpressPhpcsStandard ||
486
+ process.env.AI_CODE_REVIEW_WORDPRESS_PHPCS_STANDARD ||
487
+ configFile?.wordpress?.ruleset,
488
+ wordpressPhpcsTestVersion: cliOptions?.wordpressPhpcsTestVersion ||
489
+ process.env.AI_CODE_REVIEW_WORDPRESS_TEST_VERSION ||
490
+ configFile?.wordpress?.test_version,
491
+ };
492
+ }
493
+ /**
494
+ * Get API key from environment variables (OpenRouter only)
495
+ */
496
+ getApiKey(provider) {
497
+ if (provider === 'openrouter') {
498
+ return process.env.AI_CODE_REVIEW_OPENROUTER_API_KEY || process.env.OPENROUTER_API_KEY;
499
+ }
500
+ return undefined;
501
+ }
502
+ }
503
+ exports.ConfigurationService = ConfigurationService;
504
+ // Export singleton instance for easy access
505
+ exports.configurationService = ConfigurationService.getInstance();
506
+ // Export convenience functions for backward compatibility
507
+ function getConfig(cliOptions) {
508
+ return exports.configurationService.getConfig(cliOptions);
509
+ }
510
+ function resetConfig() {
511
+ exports.configurationService.resetConfig();
512
+ }
513
+ function hasAnyApiKey(config) {
514
+ return exports.configurationService.hasAnyApiKey(config);
515
+ }
516
+ //# sourceMappingURL=ConfigurationService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigurationService.js","sourceRoot":"","sources":["../../src/core/ConfigurationService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,99 @@
1
+ /**
2
+ * @fileoverview Consolidation Service for Multi-Pass Reviews
3
+ *
4
+ * This service handles the consolidation of multi-pass review results into
5
+ * a single cohesive report. It manages both AI-powered consolidation and
6
+ * fallback consolidation when AI services are unavailable.
7
+ */
8
+ import type { ReviewResult } from '../types/review';
9
+ import type { ApiClientConfig } from './ApiClientSelector';
10
+ /**
11
+ * Service for consolidating multi-pass review results
12
+ */
13
+ export declare class ConsolidationService {
14
+ /**
15
+ * Generate a consolidated report from multi-pass review results
16
+ * @param multiPassResult Combined result from all passes
17
+ * @param apiClientConfig API client configuration
18
+ * @param options Consolidation options
19
+ * @returns Promise resolving to consolidated content
20
+ */
21
+ generateConsolidatedReport(multiPassResult: ReviewResult, apiClientConfig: ApiClientConfig, options: {
22
+ projectName: string;
23
+ modelName: string;
24
+ totalPasses: number;
25
+ passResults: ReviewResult[];
26
+ }): Promise<string>;
27
+ /**
28
+ * Attempt AI-powered consolidation
29
+ * @param multiPassResult Combined result from all passes
30
+ * @param apiClientConfig API client configuration
31
+ * @param options Consolidation options
32
+ * @returns Promise resolving to consolidated content or null if failed
33
+ */
34
+ private attemptAiConsolidation;
35
+ /**
36
+ * Creates an enhanced fallback consolidation with better error handling
37
+ * @param multiPassResult The combined result from all passes
38
+ * @param modelName The model name used for the review
39
+ * @param options Additional consolidation options
40
+ * @returns Enhanced fallback consolidation content
41
+ */
42
+ private createEnhancedFallbackConsolidation;
43
+ /**
44
+ * Creates a basic fallback consolidation when AI consolidation fails
45
+ * @param multiPassResult The combined result from all passes
46
+ * @param modelName The model name used for the review
47
+ * @returns Basic fallback consolidation content
48
+ */
49
+ private createFallbackConsolidation;
50
+ /**
51
+ * Extract findings from valid passes
52
+ * @param passResults Array of pass results
53
+ * @returns Categorized findings
54
+ */
55
+ private extractFindingsFromPasses;
56
+ /**
57
+ * Extract individual issue texts from content
58
+ * @param content Review content
59
+ * @returns Array of issue descriptions
60
+ */
61
+ private extractIssueTexts;
62
+ /**
63
+ * Check if an issue is high priority
64
+ * @param issue Issue text (lowercase)
65
+ * @returns True if high priority
66
+ */
67
+ private isHighPriority;
68
+ /**
69
+ * Check if an issue is medium priority
70
+ * @param issue Issue text (lowercase)
71
+ * @returns True if medium priority
72
+ */
73
+ private isMediumPriority;
74
+ /**
75
+ * Calculate overall grade based on findings
76
+ * @param findings Categorized findings
77
+ * @returns Overall grade string
78
+ */
79
+ private calculateOverallGrade;
80
+ /**
81
+ * Generate recommendations based on findings
82
+ * @param findings Categorized findings
83
+ * @param hasErrors Whether there are compilation errors
84
+ * @returns Array of recommendation strings
85
+ */
86
+ private generateRecommendations;
87
+ /**
88
+ * Format findings for display
89
+ * @param findings Categorized findings
90
+ * @returns Formatted findings string
91
+ */
92
+ private formatFindings;
93
+ /**
94
+ * Generate a summary of all passes
95
+ * @param passResults Array of pass results
96
+ * @returns Pass summary string
97
+ */
98
+ private generatePassSummary;
99
+ }