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,184 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Token counting and cost estimation utilities for AI API usage.
4
+ *
5
+ * This module provides utilities for estimating token usage and associated costs
6
+ * when using OpenRouter models. It implements accurate token counting using
7
+ * model-specific tokenizers and maintains current pricing information for OpenRouter models.
8
+ *
9
+ * Key responsibilities:
10
+ * - Counting tokens for input and output text using model-specific tokenizers
11
+ * - Calculating approximate API costs based on token usage and model
12
+ * - Tracking different pricing tiers for various AI models
13
+ * - Providing cost information for review outputs
14
+ * - Supporting cost-aware decision making for API usage
15
+ *
16
+ * These utilities help users understand the resource usage and costs associated
17
+ * with their code reviews, enabling better planning and resource allocation.
18
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.estimateTokenCount = estimateTokenCount;
21
+ exports.calculateCost = calculateCost;
22
+ exports.formatCost = formatCost;
23
+ exports.getCostInfoFromText = getCostInfoFromText;
24
+ exports.getCostInfo = getCostInfo;
25
+ const tokenizers_1 = require("../../tokenizers");
26
+ /**
27
+ * Utility functions for estimating token counts and costs for AI API calls
28
+ */
29
+ /**
30
+ * Count tokens in a text using the appropriate tokenizer for a model
31
+ * @param text Text to count tokens for
32
+ * @param modelName Name of the model (optional)
33
+ * @returns Token count
34
+ */
35
+ function estimateTokenCount(text, modelName) {
36
+ return (0, tokenizers_1.countTokens)(text, modelName || 'fallback');
37
+ }
38
+ /**
39
+ * Pricing information for OpenRouter models
40
+ */
41
+ const MODEL_PRICING = {
42
+ // Retained models
43
+ 'x-ai/grok-4-fast': {
44
+ type: 'standard',
45
+ inputTokenCost: 0.0002, // $0.20 per 1M input tokens (approx)
46
+ outputTokenCost: 0.0005, // $0.50 per 1M output tokens (approx)
47
+ },
48
+ 'moonshotai/kimi-k2-thinking': {
49
+ type: 'standard',
50
+ inputTokenCost: 0.00045, // $0.45 per 1M input tokens
51
+ outputTokenCost: 0.00235, // $2.35 per 1M output tokens
52
+ },
53
+ 'kimi-k2-thinking': {
54
+ type: 'standard',
55
+ inputTokenCost: 0.00045, // $0.45 per 1M input tokens
56
+ outputTokenCost: 0.00235, // $2.35 per 1M output tokens
57
+ },
58
+ // Default fallback pricing (OpenRouter average)
59
+ default: {
60
+ type: 'standard',
61
+ inputTokenCost: 0.005, // $5.00 per 1M tokens
62
+ outputTokenCost: 0.015, // $15.00 per 1M tokens
63
+ },
64
+ };
65
+ /**
66
+ * Get the pricing for a specific model
67
+ * @param modelName Name of the model
68
+ * @returns Pricing information for the model
69
+ */
70
+ function getModelPricing(modelName) {
71
+ // Handle OpenRouter model names (remove the 'openrouter:' prefix)
72
+ let actualModelName = modelName;
73
+ if (modelName.startsWith('openrouter:')) {
74
+ actualModelName = modelName.substring('openrouter:'.length);
75
+ }
76
+ else if (modelName.startsWith('openrouter-')) {
77
+ actualModelName = modelName.substring('openrouter-'.length);
78
+ }
79
+ // Check if we have pricing for this model
80
+ if (MODEL_PRICING[actualModelName]) {
81
+ return MODEL_PRICING[actualModelName];
82
+ }
83
+ // Default fallback
84
+ return MODEL_PRICING.default;
85
+ }
86
+ /**
87
+ * Calculate the cost for a specific tier
88
+ * @param tokens Number of tokens
89
+ * @param tokenCost Cost per 1K tokens
90
+ * @param tierStart Start of the tier
91
+ * @param tierEnd End of the tier (or undefined for no upper limit)
92
+ * @returns Cost for this tier
93
+ */
94
+ function calculateTierCost(tokens, tokenCost, tierStart, tierEnd) {
95
+ // Calculate how many tokens fall within this tier
96
+ const tierTokens = tierEnd
97
+ ? Math.min(Math.max(0, tokens - tierStart), tierEnd - tierStart)
98
+ : Math.max(0, tokens - tierStart);
99
+ // Calculate the cost for this tier
100
+ return (tierTokens / 1000) * tokenCost;
101
+ }
102
+ /**
103
+ * Calculate the estimated cost for an AI API call
104
+ * @param inputTokens Number of input tokens
105
+ * @param outputTokens Number of output tokens
106
+ * @param modelName Name of the model used
107
+ * @returns Estimated cost in USD
108
+ */
109
+ function calculateCost(inputTokens, outputTokens, modelName = 'openrouter:anthropic/claude-3-opus-20240229') {
110
+ const pricing = getModelPricing(modelName);
111
+ let inputCost = 0;
112
+ let outputCost = 0;
113
+ if (pricing.type === 'standard') {
114
+ // Standard pricing is simple - just multiply by the cost per token
115
+ inputCost = (inputTokens / 1000) * pricing.inputTokenCost;
116
+ outputCost = (outputTokens / 1000) * pricing.outputTokenCost;
117
+ }
118
+ else if (pricing.type === 'tiered') {
119
+ // Tiered pricing requires calculating costs for each tier
120
+ const tiers = pricing.tiers;
121
+ // Calculate input token cost across tiers
122
+ for (let i = 0; i < tiers.length; i++) {
123
+ const tierStart = tiers[i].threshold;
124
+ const tierEnd = i < tiers.length - 1 ? tiers[i + 1].threshold : undefined;
125
+ inputCost += calculateTierCost(inputTokens, tiers[i].inputTokenCost, tierStart, tierEnd);
126
+ }
127
+ // Calculate output token cost across tiers
128
+ for (let i = 0; i < tiers.length; i++) {
129
+ const tierStart = tiers[i].threshold;
130
+ const tierEnd = i < tiers.length - 1 ? tiers[i + 1].threshold : undefined;
131
+ outputCost += calculateTierCost(outputTokens, tiers[i].outputTokenCost, tierStart, tierEnd);
132
+ }
133
+ }
134
+ return inputCost + outputCost;
135
+ }
136
+ /**
137
+ * Format a cost value as a currency string
138
+ * @param cost Cost value in USD
139
+ * @returns Formatted cost string
140
+ */
141
+ function formatCost(cost) {
142
+ return `$${cost.toFixed(6)} USD`;
143
+ }
144
+ /**
145
+ * Calculate cost information for an API call based on text
146
+ * @param inputText Input text sent to the API
147
+ * @param outputText Output text received from the API
148
+ * @param modelName Name of the model used
149
+ * @returns Cost information
150
+ */
151
+ function getCostInfoFromText(inputText, outputText, modelName = 'openrouter:anthropic/claude-3-opus-20240229') {
152
+ const inputTokens = estimateTokenCount(inputText, modelName);
153
+ const outputTokens = estimateTokenCount(outputText, modelName);
154
+ const totalTokens = inputTokens + outputTokens;
155
+ const estimatedCost = calculateCost(inputTokens, outputTokens, modelName);
156
+ return {
157
+ inputTokens,
158
+ outputTokens,
159
+ totalTokens,
160
+ estimatedCost,
161
+ formattedCost: formatCost(estimatedCost),
162
+ cost: estimatedCost, // Alias for backward compatibility
163
+ };
164
+ }
165
+ /**
166
+ * Calculate cost information for an API call based on token counts
167
+ * @param inputTokens Number of input tokens
168
+ * @param outputTokens Number of output tokens
169
+ * @param modelName Name of the model used
170
+ * @returns Cost information
171
+ */
172
+ function getCostInfo(inputTokens, outputTokens, modelName = 'openrouter:anthropic/claude-3-opus-20240229') {
173
+ const totalTokens = inputTokens + outputTokens;
174
+ const estimatedCost = calculateCost(inputTokens, outputTokens, modelName);
175
+ return {
176
+ inputTokens,
177
+ outputTokens,
178
+ totalTokens,
179
+ estimatedCost,
180
+ formattedCost: formatCost(estimatedCost),
181
+ cost: estimatedCost, // Alias for backward compatibility
182
+ };
183
+ }
184
+ //# sourceMappingURL=tokenCounter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenCounter.js","sourceRoot":"","sources":["../../../src/clients/utils/tokenCounter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export type ApiClientType = 'OpenRouter';
2
+ export interface ApiClientConfig {
3
+ clientType: ApiClientType;
4
+ modelName: string;
5
+ initialized: boolean;
6
+ provider: 'openrouter';
7
+ }
8
+ export declare function selectApiClient(cliOptions?: any): Promise<ApiClientConfig>;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.selectApiClient = selectApiClient;
7
+ const logger_1 = __importDefault(require("../utils/logger"));
8
+ const ConfigurationService_1 = require("../core/ConfigurationService");
9
+ const openRouterClientWrapper_1 = require("../clients/openRouterClientWrapper");
10
+ async function selectApiClient(cliOptions) {
11
+ logger_1.default.debug('selectApiClient called');
12
+ // Get model from ConfigurationService or CLI options
13
+ const config = (0, ConfigurationService_1.getConfig)(cliOptions);
14
+ const requestedModel = cliOptions?.model || config.model || '';
15
+ const normalized = requestedModel.replace(/['"`]/g, '').trim();
16
+ const [, modelName] = normalized.includes(':') ? normalized.split(':', 2) : ['openrouter', normalized];
17
+ if (!modelName) {
18
+ throw new Error('AI_CODE_REVIEW_MODEL must specify an OpenRouter-compatible model.');
19
+ }
20
+ await (0, openRouterClientWrapper_1.initializeAnyOpenRouterModel)();
21
+ logger_1.default.info(`Using OpenRouter model: ${modelName}`);
22
+ return {
23
+ clientType: 'OpenRouter',
24
+ modelName: `openrouter:${modelName}`,
25
+ initialized: true,
26
+ provider: 'openrouter',
27
+ };
28
+ }
29
+ //# sourceMappingURL=ApiClientSelector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ApiClientSelector.js","sourceRoot":"","sources":["../../src/core/ApiClientSelector.ts"],"names":[],"mappings":";;;;;AAaA,0CAuBC;AApCD,6DAAqC;AACrC,uEAAyD;AACzD,gFAAkF;AAW3E,KAAK,UAAU,eAAe,CAAC,UAAgB;IACpD,gBAAM,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAEvC,qDAAqD;IACrD,MAAM,MAAM,GAAG,IAAA,gCAAS,EAAC,UAAU,CAAC,CAAC;IACrC,MAAM,cAAc,GAAG,UAAU,EAAE,KAAK,IAAI,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/D,MAAM,UAAU,GAAG,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/D,MAAM,CAAC,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;IAEvG,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,IAAA,sDAA4B,GAAE,CAAC;IAErC,gBAAM,CAAC,IAAI,CAAC,2BAA2B,SAAS,EAAE,CAAC,CAAC;IAEpD,OAAO;QACL,UAAU,EAAE,YAAY;QACxB,SAAS,EAAE,cAAc,SAAS,EAAE;QACpC,WAAW,EAAE,IAAI;QACjB,QAAQ,EAAE,YAAY;KACvB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,307 @@
1
+ /**
2
+ * @fileoverview Unified Configuration Service
3
+ *
4
+ * This service consolidates all configuration management into a single, cohesive module.
5
+ * It replaces the fragmented configuration files (config.ts, configFileManager.ts,
6
+ * configManager.ts, unifiedConfig.ts, codingTestConfigLoader.ts, envLoader.ts) with
7
+ * a single source of truth for configuration.
8
+ *
9
+ * Key features:
10
+ * - Single source of truth for all configuration
11
+ * - Clear precedence order: CLI > Environment > Config File > Defaults
12
+ * - Type-safe configuration with Zod validation
13
+ * - Support for YAML and JSON config files
14
+ * - Environment variable loading with .env.local support
15
+ * - Comprehensive error handling and validation
16
+ */
17
+ import { z } from 'zod';
18
+ import type { CliOptions } from '../types/cli';
19
+ declare const ConfigSchema: z.ZodObject<{
20
+ openRouterApiKey: z.ZodOptional<z.ZodString>;
21
+ model: z.ZodDefault<z.ZodString>;
22
+ writerModel: z.ZodOptional<z.ZodString>;
23
+ outputDir: z.ZodDefault<z.ZodString>;
24
+ outputFormat: z.ZodDefault<z.ZodEnum<["markdown", "json"]>>;
25
+ debug: z.ZodDefault<z.ZodBoolean>;
26
+ logLevel: z.ZodDefault<z.ZodEnum<["debug", "info", "warn", "error", "none"]>>;
27
+ interactive: z.ZodDefault<z.ZodBoolean>;
28
+ includeTests: z.ZodDefault<z.ZodBoolean>;
29
+ includeProjectDocs: z.ZodDefault<z.ZodBoolean>;
30
+ includeDependencyAnalysis: z.ZodDefault<z.ZodBoolean>;
31
+ multiPass: z.ZodDefault<z.ZodBoolean>;
32
+ forceSinglePass: z.ZodDefault<z.ZodBoolean>;
33
+ contextMaintenanceFactor: z.ZodDefault<z.ZodNumber>;
34
+ testApi: z.ZodDefault<z.ZodBoolean>;
35
+ estimate: z.ZodDefault<z.ZodBoolean>;
36
+ noConfirm: z.ZodDefault<z.ZodBoolean>;
37
+ contextPaths: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
38
+ configPath: z.ZodOptional<z.ZodString>;
39
+ assignmentFile: z.ZodOptional<z.ZodString>;
40
+ assignmentUrl: z.ZodOptional<z.ZodString>;
41
+ assignmentText: z.ZodOptional<z.ZodString>;
42
+ evaluationTemplate: z.ZodOptional<z.ZodString>;
43
+ templateUrl: z.ZodOptional<z.ZodString>;
44
+ rubricFile: z.ZodOptional<z.ZodString>;
45
+ assessmentType: z.ZodDefault<z.ZodEnum<["coding-challenge", "take-home", "live-coding", "code-review"]>>;
46
+ difficultyLevel: z.ZodDefault<z.ZodEnum<["junior", "mid", "senior", "lead", "architect"]>>;
47
+ weightCorrectness: z.ZodDefault<z.ZodNumber>;
48
+ weightCodeQuality: z.ZodDefault<z.ZodNumber>;
49
+ weightArchitecture: z.ZodDefault<z.ZodNumber>;
50
+ weightPerformance: z.ZodDefault<z.ZodNumber>;
51
+ weightTesting: z.ZodDefault<z.ZodNumber>;
52
+ evaluateDocumentation: z.ZodDefault<z.ZodBoolean>;
53
+ evaluateGitHistory: z.ZodDefault<z.ZodBoolean>;
54
+ evaluateEdgeCases: z.ZodDefault<z.ZodBoolean>;
55
+ evaluateErrorHandling: z.ZodDefault<z.ZodBoolean>;
56
+ scoringSystem: z.ZodDefault<z.ZodEnum<["numeric", "letter", "pass-fail", "custom"]>>;
57
+ maxScore: z.ZodDefault<z.ZodNumber>;
58
+ passingThreshold: z.ZodDefault<z.ZodNumber>;
59
+ scoreBreakdown: z.ZodDefault<z.ZodBoolean>;
60
+ feedbackLevel: z.ZodDefault<z.ZodEnum<["basic", "detailed", "comprehensive"]>>;
61
+ includeExamples: z.ZodDefault<z.ZodBoolean>;
62
+ includeSuggestions: z.ZodDefault<z.ZodBoolean>;
63
+ includeResources: z.ZodDefault<z.ZodBoolean>;
64
+ enableAiDetection: z.ZodDefault<z.ZodBoolean>;
65
+ aiDetectionThreshold: z.ZodDefault<z.ZodNumber>;
66
+ aiDetectionAnalyzers: z.ZodDefault<z.ZodString>;
67
+ aiDetectionIncludeInReport: z.ZodDefault<z.ZodBoolean>;
68
+ aiDetectionFailOnDetection: z.ZodDefault<z.ZodBoolean>;
69
+ allowedLibraries: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
70
+ forbiddenPatterns: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
71
+ nodeVersion: z.ZodOptional<z.ZodString>;
72
+ typescriptVersion: z.ZodOptional<z.ZodString>;
73
+ memoryLimit: z.ZodOptional<z.ZodNumber>;
74
+ executionTimeout: z.ZodOptional<z.ZodNumber>;
75
+ timeLimit: z.ZodOptional<z.ZodNumber>;
76
+ diagram: z.ZodDefault<z.ZodBoolean>;
77
+ batchTokenLimit: z.ZodOptional<z.ZodNumber>;
78
+ wordpressAutoDetect: z.ZodDefault<z.ZodBoolean>;
79
+ wordpressForceEnable: z.ZodDefault<z.ZodBoolean>;
80
+ wordpressForceDisable: z.ZodDefault<z.ZodBoolean>;
81
+ wordpressPhpcsEnabled: z.ZodDefault<z.ZodBoolean>;
82
+ wordpressPhpcsPath: z.ZodOptional<z.ZodString>;
83
+ wordpressPhpcsStandard: z.ZodOptional<z.ZodString>;
84
+ wordpressPhpcsTestVersion: z.ZodOptional<z.ZodString>;
85
+ }, "strip", z.ZodTypeAny, {
86
+ debug: boolean;
87
+ model: string;
88
+ outputDir: string;
89
+ outputFormat: "json" | "markdown";
90
+ logLevel: "debug" | "info" | "warn" | "error" | "none";
91
+ interactive: boolean;
92
+ includeTests: boolean;
93
+ includeProjectDocs: boolean;
94
+ includeDependencyAnalysis: boolean;
95
+ multiPass: boolean;
96
+ forceSinglePass: boolean;
97
+ contextMaintenanceFactor: number;
98
+ testApi: boolean;
99
+ estimate: boolean;
100
+ noConfirm: boolean;
101
+ assessmentType: "coding-challenge" | "take-home" | "live-coding" | "code-review";
102
+ difficultyLevel: "junior" | "mid" | "senior" | "lead" | "architect";
103
+ weightCorrectness: number;
104
+ weightCodeQuality: number;
105
+ weightArchitecture: number;
106
+ weightPerformance: number;
107
+ weightTesting: number;
108
+ evaluateDocumentation: boolean;
109
+ evaluateGitHistory: boolean;
110
+ evaluateEdgeCases: boolean;
111
+ evaluateErrorHandling: boolean;
112
+ scoringSystem: "numeric" | "letter" | "pass-fail" | "custom";
113
+ maxScore: number;
114
+ passingThreshold: number;
115
+ scoreBreakdown: boolean;
116
+ feedbackLevel: "comprehensive" | "basic" | "detailed";
117
+ includeExamples: boolean;
118
+ includeSuggestions: boolean;
119
+ includeResources: boolean;
120
+ enableAiDetection: boolean;
121
+ aiDetectionThreshold: number;
122
+ aiDetectionAnalyzers: string;
123
+ aiDetectionIncludeInReport: boolean;
124
+ aiDetectionFailOnDetection: boolean;
125
+ diagram: boolean;
126
+ wordpressAutoDetect: boolean;
127
+ wordpressForceEnable: boolean;
128
+ wordpressForceDisable: boolean;
129
+ wordpressPhpcsEnabled: boolean;
130
+ openRouterApiKey?: string | undefined;
131
+ writerModel?: string | undefined;
132
+ contextPaths?: string[] | undefined;
133
+ configPath?: string | undefined;
134
+ assignmentFile?: string | undefined;
135
+ assignmentUrl?: string | undefined;
136
+ assignmentText?: string | undefined;
137
+ evaluationTemplate?: string | undefined;
138
+ templateUrl?: string | undefined;
139
+ rubricFile?: string | undefined;
140
+ allowedLibraries?: string[] | undefined;
141
+ forbiddenPatterns?: string[] | undefined;
142
+ nodeVersion?: string | undefined;
143
+ typescriptVersion?: string | undefined;
144
+ memoryLimit?: number | undefined;
145
+ executionTimeout?: number | undefined;
146
+ timeLimit?: number | undefined;
147
+ batchTokenLimit?: number | undefined;
148
+ wordpressPhpcsPath?: string | undefined;
149
+ wordpressPhpcsStandard?: string | undefined;
150
+ wordpressPhpcsTestVersion?: string | undefined;
151
+ }, {
152
+ debug?: boolean | undefined;
153
+ openRouterApiKey?: string | undefined;
154
+ model?: string | undefined;
155
+ writerModel?: string | undefined;
156
+ outputDir?: string | undefined;
157
+ outputFormat?: "json" | "markdown" | undefined;
158
+ logLevel?: "debug" | "info" | "warn" | "error" | "none" | undefined;
159
+ interactive?: boolean | undefined;
160
+ includeTests?: boolean | undefined;
161
+ includeProjectDocs?: boolean | undefined;
162
+ includeDependencyAnalysis?: boolean | undefined;
163
+ multiPass?: boolean | undefined;
164
+ forceSinglePass?: boolean | undefined;
165
+ contextMaintenanceFactor?: number | undefined;
166
+ testApi?: boolean | undefined;
167
+ estimate?: boolean | undefined;
168
+ noConfirm?: boolean | undefined;
169
+ contextPaths?: string[] | undefined;
170
+ configPath?: string | undefined;
171
+ assignmentFile?: string | undefined;
172
+ assignmentUrl?: string | undefined;
173
+ assignmentText?: string | undefined;
174
+ evaluationTemplate?: string | undefined;
175
+ templateUrl?: string | undefined;
176
+ rubricFile?: string | undefined;
177
+ assessmentType?: "coding-challenge" | "take-home" | "live-coding" | "code-review" | undefined;
178
+ difficultyLevel?: "junior" | "mid" | "senior" | "lead" | "architect" | undefined;
179
+ weightCorrectness?: number | undefined;
180
+ weightCodeQuality?: number | undefined;
181
+ weightArchitecture?: number | undefined;
182
+ weightPerformance?: number | undefined;
183
+ weightTesting?: number | undefined;
184
+ evaluateDocumentation?: boolean | undefined;
185
+ evaluateGitHistory?: boolean | undefined;
186
+ evaluateEdgeCases?: boolean | undefined;
187
+ evaluateErrorHandling?: boolean | undefined;
188
+ scoringSystem?: "numeric" | "letter" | "pass-fail" | "custom" | undefined;
189
+ maxScore?: number | undefined;
190
+ passingThreshold?: number | undefined;
191
+ scoreBreakdown?: boolean | undefined;
192
+ feedbackLevel?: "comprehensive" | "basic" | "detailed" | undefined;
193
+ includeExamples?: boolean | undefined;
194
+ includeSuggestions?: boolean | undefined;
195
+ includeResources?: boolean | undefined;
196
+ enableAiDetection?: boolean | undefined;
197
+ aiDetectionThreshold?: number | undefined;
198
+ aiDetectionAnalyzers?: string | undefined;
199
+ aiDetectionIncludeInReport?: boolean | undefined;
200
+ aiDetectionFailOnDetection?: boolean | undefined;
201
+ allowedLibraries?: string[] | undefined;
202
+ forbiddenPatterns?: string[] | undefined;
203
+ nodeVersion?: string | undefined;
204
+ typescriptVersion?: string | undefined;
205
+ memoryLimit?: number | undefined;
206
+ executionTimeout?: number | undefined;
207
+ timeLimit?: number | undefined;
208
+ diagram?: boolean | undefined;
209
+ batchTokenLimit?: number | undefined;
210
+ wordpressAutoDetect?: boolean | undefined;
211
+ wordpressForceEnable?: boolean | undefined;
212
+ wordpressForceDisable?: boolean | undefined;
213
+ wordpressPhpcsEnabled?: boolean | undefined;
214
+ wordpressPhpcsPath?: string | undefined;
215
+ wordpressPhpcsStandard?: string | undefined;
216
+ wordpressPhpcsTestVersion?: string | undefined;
217
+ }>;
218
+ export type Config = z.infer<typeof ConfigSchema>;
219
+ /**
220
+ * Unified Configuration Service
221
+ *
222
+ * This class provides a single source of truth for all configuration management.
223
+ * It handles loading from CLI arguments, environment variables, and config files
224
+ * with a clear precedence order.
225
+ */
226
+ export declare class ConfigurationService {
227
+ private static instance;
228
+ private config;
229
+ private constructor();
230
+ /**
231
+ * Get the singleton instance of the configuration service
232
+ */
233
+ static getInstance(): ConfigurationService;
234
+ /**
235
+ * Get the current configuration
236
+ * @param cliOptions Optional CLI options to override configuration
237
+ * @returns The validated configuration object
238
+ */
239
+ getConfig(cliOptions?: CliOptions): Config;
240
+ /**
241
+ * Reset the configuration (useful for testing)
242
+ */
243
+ resetConfig(): void;
244
+ /**
245
+ * Check if any API key is available
246
+ */
247
+ hasAnyApiKey(config?: Config): boolean;
248
+ /**
249
+ * Get paths configuration
250
+ */
251
+ getPathsConfig(): {
252
+ outputDir: string;
253
+ promptsDir: string;
254
+ templatesDir: string;
255
+ contextPaths?: string[];
256
+ };
257
+ /**
258
+ * Get application config (for backward compatibility)
259
+ */
260
+ getApplicationConfig(): {
261
+ selectedModel: {
262
+ value: string;
263
+ source: string;
264
+ };
265
+ openRouterApiKey?: {
266
+ value: string;
267
+ source: string;
268
+ };
269
+ debug: {
270
+ value: boolean;
271
+ source: string;
272
+ };
273
+ logLevel: {
274
+ value: string;
275
+ source: string;
276
+ };
277
+ outputDir: {
278
+ value: string;
279
+ source: string;
280
+ };
281
+ };
282
+ /**
283
+ * Build the configuration from all sources with proper precedence
284
+ */
285
+ private buildConfiguration;
286
+ /**
287
+ * Load environment variables from .env.local file
288
+ */
289
+ private loadEnvironmentVariables;
290
+ /**
291
+ * Load configuration file (YAML or JSON)
292
+ */
293
+ private loadConfigFile;
294
+ /**
295
+ * Merge configuration from all sources with proper precedence
296
+ */
297
+ private mergeConfigurationSources;
298
+ /**
299
+ * Get API key from environment variables (OpenRouter only)
300
+ */
301
+ private getApiKey;
302
+ }
303
+ export declare const configurationService: ConfigurationService;
304
+ export declare function getConfig(cliOptions?: CliOptions): Config;
305
+ export declare function resetConfig(): void;
306
+ export declare function hasAnyApiKey(config?: Config): boolean;
307
+ export {};