codereview-aia 0.1.3 → 0.1.4

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 (549) 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 +738 -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 +209 -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 +266 -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 +382 -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/webCheck.d.ts +1 -0
  193. package/dist/runtime/preprod/webCheck.js +98 -0
  194. package/dist/runtime/preprod/webCheck.js.map +1 -0
  195. package/dist/runtime/proxyConfig.d.ts +6 -0
  196. package/dist/runtime/proxyConfig.js +86 -0
  197. package/dist/runtime/proxyConfig.js.map +1 -0
  198. package/dist/runtime/proxyEnvironment.d.ts +3 -0
  199. package/dist/runtime/proxyEnvironment.js +63 -0
  200. package/dist/runtime/proxyEnvironment.js.map +1 -0
  201. package/dist/runtime/reportMerge.d.ts +30 -0
  202. package/dist/runtime/reportMerge.js +70 -0
  203. package/dist/runtime/reportMerge.js.map +1 -0
  204. package/dist/runtime/reporting/markdownReportBuilder.d.ts +17 -0
  205. package/dist/runtime/reporting/markdownReportBuilder.js +154 -0
  206. package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
  207. package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
  208. package/dist/runtime/reporting/reportDataCollector.js +170 -0
  209. package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
  210. package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
  211. package/dist/runtime/reporting/summaryGenerator.js +67 -0
  212. package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
  213. package/dist/runtime/reviewPipeline.d.ts +47 -0
  214. package/dist/runtime/reviewPipeline.js +161 -0
  215. package/dist/runtime/reviewPipeline.js.map +1 -0
  216. package/dist/runtime/runAiCodeReview.d.ts +28 -0
  217. package/dist/runtime/runAiCodeReview.js +373 -0
  218. package/dist/runtime/runAiCodeReview.js.map +1 -0
  219. package/dist/runtime/runtimeConfig.d.ts +4 -0
  220. package/dist/runtime/runtimeConfig.js +7 -0
  221. package/dist/runtime/runtimeConfig.js.map +1 -0
  222. package/dist/runtime/ui/Layout.d.ts +11 -0
  223. package/dist/runtime/ui/Layout.js +47 -0
  224. package/dist/runtime/ui/Layout.js.map +1 -0
  225. package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
  226. package/dist/runtime/ui/RuntimeApp.js +172 -0
  227. package/dist/runtime/ui/RuntimeApp.js.map +1 -0
  228. package/dist/runtime/ui/inkModules.d.ts +10 -0
  229. package/dist/runtime/ui/inkModules.js +63 -0
  230. package/dist/runtime/ui/inkModules.js.map +1 -0
  231. package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
  232. package/dist/runtime/ui/screens/AuthScreen.js +67 -0
  233. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
  234. package/dist/runtime/ui/screens/ModeSelection.d.ts +10 -0
  235. package/dist/runtime/ui/screens/ModeSelection.js +100 -0
  236. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
  237. package/dist/runtime/ui/screens/ProgressScreen.d.ts +12 -0
  238. package/dist/runtime/ui/screens/ProgressScreen.js +64 -0
  239. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
  240. package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
  241. package/dist/runtime/ui/screens/ResultsScreen.js +29 -0
  242. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
  243. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
  244. package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
  245. package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
  246. package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
  247. package/dist/strategies/CodingTestReviewStrategy.js +681 -0
  248. package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
  249. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
  250. package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
  251. package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
  252. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
  253. package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
  254. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
  255. package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
  256. package/dist/strategies/MultiPassReviewStrategy.js +590 -0
  257. package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
  258. package/dist/strategies/ReviewStrategy.d.ts +45 -0
  259. package/dist/strategies/ReviewStrategy.js +24 -0
  260. package/dist/strategies/ReviewStrategy.js.map +1 -0
  261. package/dist/strategies/StrategyFactory.d.ts +19 -0
  262. package/dist/strategies/StrategyFactory.js +72 -0
  263. package/dist/strategies/StrategyFactory.js.map +1 -0
  264. package/{src/strategies/index.ts → dist/strategies/index.d.ts} +0 -1
  265. package/dist/strategies/index.js +30 -0
  266. package/dist/strategies/index.js.map +1 -0
  267. package/dist/tokenizers/baseTokenizer.d.ts +25 -0
  268. package/dist/tokenizers/baseTokenizer.js +48 -0
  269. package/dist/tokenizers/baseTokenizer.js.map +1 -0
  270. package/dist/tokenizers/gptTokenizer.d.ts +7 -0
  271. package/dist/tokenizers/gptTokenizer.js +28 -0
  272. package/dist/tokenizers/gptTokenizer.js.map +1 -0
  273. package/{src/tokenizers/index.ts → dist/tokenizers/index.d.ts} +0 -1
  274. package/dist/tokenizers/index.js +24 -0
  275. package/dist/tokenizers/index.js.map +1 -0
  276. package/dist/types/apiResponses.d.ts +39 -0
  277. package/dist/types/apiResponses.js +9 -0
  278. package/dist/types/apiResponses.js.map +1 -0
  279. package/dist/types/cli.d.ts +22 -0
  280. package/dist/types/cli.js +3 -0
  281. package/dist/types/cli.js.map +1 -0
  282. package/{src/types/common.ts → dist/types/common.d.ts} +2 -19
  283. package/dist/types/common.js +14 -0
  284. package/dist/types/common.js.map +1 -0
  285. package/dist/types/configuration.d.ts +682 -0
  286. package/dist/types/configuration.js +65 -0
  287. package/dist/types/configuration.js.map +1 -0
  288. package/dist/types/review.d.ts +318 -0
  289. package/dist/types/review.js +8 -0
  290. package/dist/types/review.js.map +1 -0
  291. package/dist/types/reviewSchema.d.ts +543 -0
  292. package/{src/types/reviewSchema.ts → dist/types/reviewSchema.js} +44 -104
  293. package/dist/types/reviewSchema.js.map +1 -0
  294. package/dist/types/structuredReview.d.ts +119 -0
  295. package/dist/types/structuredReview.js +6 -0
  296. package/dist/types/structuredReview.js.map +1 -0
  297. package/dist/types/tokenAnalysis.d.ts +44 -0
  298. package/dist/types/tokenAnalysis.js +4 -0
  299. package/dist/types/tokenAnalysis.js.map +1 -0
  300. package/dist/utils/FileReader.d.ts +33 -0
  301. package/dist/utils/FileReader.js +88 -0
  302. package/dist/utils/FileReader.js.map +1 -0
  303. package/dist/utils/FileWriter.d.ts +26 -0
  304. package/dist/utils/FileWriter.js +76 -0
  305. package/dist/utils/FileWriter.js.map +1 -0
  306. package/dist/utils/PathGenerator.d.ts +30 -0
  307. package/dist/utils/PathGenerator.js +82 -0
  308. package/dist/utils/PathGenerator.js.map +1 -0
  309. package/dist/utils/api/apiUtils.d.ts +3 -0
  310. package/dist/utils/api/apiUtils.js +20 -0
  311. package/dist/utils/api/apiUtils.js.map +1 -0
  312. package/dist/utils/api/index.js +18 -0
  313. package/dist/utils/api/index.js.map +1 -0
  314. package/dist/utils/apiErrorHandler.d.ts +130 -0
  315. package/dist/utils/apiErrorHandler.js +256 -0
  316. package/dist/utils/apiErrorHandler.js.map +1 -0
  317. package/dist/utils/ciDataCollector.d.ts +51 -0
  318. package/dist/utils/ciDataCollector.js +197 -0
  319. package/dist/utils/ciDataCollector.js.map +1 -0
  320. package/dist/utils/codingTestConfigLoader.d.ts +66 -0
  321. package/dist/utils/codingTestConfigLoader.js +420 -0
  322. package/dist/utils/codingTestConfigLoader.js.map +1 -0
  323. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
  324. package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
  325. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
  326. package/dist/utils/detection/frameworkDetector.d.ts +43 -0
  327. package/dist/utils/detection/frameworkDetector.js +850 -0
  328. package/dist/utils/detection/frameworkDetector.js.map +1 -0
  329. package/{src/utils/detection/index.ts → dist/utils/detection/index.d.ts} +0 -1
  330. package/dist/utils/detection/index.js +28 -0
  331. package/dist/utils/detection/index.js.map +1 -0
  332. package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
  333. package/dist/utils/detection/projectTypeDetector.js +469 -0
  334. package/dist/utils/detection/projectTypeDetector.js.map +1 -0
  335. package/dist/utils/diagramGenerator.d.ts +49 -0
  336. package/dist/utils/diagramGenerator.js +218 -0
  337. package/dist/utils/diagramGenerator.js.map +1 -0
  338. package/dist/utils/errorLogger.d.ts +24 -0
  339. package/dist/utils/errorLogger.js +59 -0
  340. package/dist/utils/errorLogger.js.map +1 -0
  341. package/dist/utils/estimationUtils.d.ts +139 -0
  342. package/dist/utils/estimationUtils.js +329 -0
  343. package/dist/utils/estimationUtils.js.map +1 -0
  344. package/dist/utils/fileFilters.d.ts +72 -0
  345. package/dist/utils/fileFilters.js +338 -0
  346. package/dist/utils/fileFilters.js.map +1 -0
  347. package/dist/utils/fileSystem.d.ts +22 -0
  348. package/dist/utils/fileSystem.js +45 -0
  349. package/dist/utils/fileSystem.js.map +1 -0
  350. package/{src/utils/index.ts → dist/utils/index.d.ts} +0 -14
  351. package/dist/utils/index.js +52 -0
  352. package/dist/utils/index.js.map +1 -0
  353. package/dist/utils/logger.d.ts +77 -0
  354. package/dist/utils/logger.js +271 -0
  355. package/dist/utils/logger.js.map +1 -0
  356. package/dist/utils/pathValidator.d.ts +40 -0
  357. package/dist/utils/pathValidator.js +98 -0
  358. package/dist/utils/pathValidator.js.map +1 -0
  359. package/{src/utils/priorityFilter.ts → dist/utils/priorityFilter.d.ts} +1 -26
  360. package/dist/utils/priorityFilter.js +54 -0
  361. package/dist/utils/priorityFilter.js.map +1 -0
  362. package/dist/utils/projectDocs.d.ts +47 -0
  363. package/dist/utils/projectDocs.js +158 -0
  364. package/dist/utils/projectDocs.js.map +1 -0
  365. package/dist/utils/promptPaths.d.ts +6 -0
  366. package/dist/utils/promptPaths.js +33 -0
  367. package/dist/utils/promptPaths.js.map +1 -0
  368. package/dist/utils/promptTemplateManager.d.ts +34 -0
  369. package/dist/utils/promptTemplateManager.js +141 -0
  370. package/dist/utils/promptTemplateManager.js.map +1 -0
  371. package/dist/utils/review/consolidateReview.d.ts +15 -0
  372. package/dist/utils/review/consolidateReview.js +481 -0
  373. package/dist/utils/review/consolidateReview.js.map +1 -0
  374. package/dist/utils/review/fixDisplay.d.ts +20 -0
  375. package/dist/utils/review/fixDisplay.js +84 -0
  376. package/dist/utils/review/fixDisplay.js.map +1 -0
  377. package/dist/utils/review/fixImplementation.d.ts +28 -0
  378. package/dist/utils/review/fixImplementation.js +60 -0
  379. package/dist/utils/review/fixImplementation.js.map +1 -0
  380. package/dist/utils/review/index.d.ts +13 -0
  381. package/dist/utils/review/index.js +50 -0
  382. package/dist/utils/review/index.js.map +1 -0
  383. package/dist/utils/review/interactiveProcessing.d.ts +25 -0
  384. package/dist/utils/review/interactiveProcessing.js +251 -0
  385. package/dist/utils/review/interactiveProcessing.js.map +1 -0
  386. package/dist/utils/review/progressTracker.d.ts +106 -0
  387. package/dist/utils/review/progressTracker.js +227 -0
  388. package/dist/utils/review/progressTracker.js.map +1 -0
  389. package/dist/utils/review/reviewExtraction.d.ts +31 -0
  390. package/dist/utils/review/reviewExtraction.js +324 -0
  391. package/dist/utils/review/reviewExtraction.js.map +1 -0
  392. package/dist/utils/review/types.d.ts +45 -0
  393. package/dist/utils/review/types.js +18 -0
  394. package/dist/utils/review/types.js.map +1 -0
  395. package/{src/utils/reviewActionHandler.ts → dist/utils/reviewActionHandler.d.ts} +0 -2
  396. package/dist/utils/reviewActionHandler.js +34 -0
  397. package/dist/utils/reviewActionHandler.js.map +1 -0
  398. package/dist/utils/reviewParser.d.ts +34 -0
  399. package/dist/utils/reviewParser.js +218 -0
  400. package/dist/utils/reviewParser.js.map +1 -0
  401. package/dist/utils/sanitizer.d.ts +82 -0
  402. package/dist/utils/sanitizer.js +239 -0
  403. package/dist/utils/sanitizer.js.map +1 -0
  404. package/dist/utils/smartFileSelector.d.ts +50 -0
  405. package/dist/utils/smartFileSelector.js +261 -0
  406. package/dist/utils/smartFileSelector.js.map +1 -0
  407. package/dist/utils/templateLoader.d.ts +44 -0
  408. package/dist/utils/templateLoader.js +431 -0
  409. package/dist/utils/templateLoader.js.map +1 -0
  410. package/dist/utils/treeGenerator.d.ts +12 -0
  411. package/dist/utils/treeGenerator.js +133 -0
  412. package/dist/utils/treeGenerator.js.map +1 -0
  413. package/package.json +5 -2
  414. package/.cr-aia.yml +0 -23
  415. package/.crignore +0 -0
  416. package/docs/opt-in-full-context.md +0 -27
  417. package/reports/cr-cr-aia-17-11-2025-20-13.md +0 -354
  418. package/src/analysis/FindingsExtractor.ts +0 -431
  419. package/src/analysis/ai-detection/analyzers/BaseAnalyzer.ts +0 -267
  420. package/src/analysis/ai-detection/analyzers/DocumentationAnalyzer.ts +0 -622
  421. package/src/analysis/ai-detection/analyzers/GitHistoryAnalyzer.ts +0 -430
  422. package/src/analysis/ai-detection/core/AIDetectionEngine.ts +0 -467
  423. package/src/analysis/ai-detection/types/DetectionTypes.ts +0 -406
  424. package/src/analysis/ai-detection/utils/SubmissionConverter.ts +0 -390
  425. package/src/analysis/context/ReviewContext.ts +0 -378
  426. package/src/analysis/tokens/TokenAnalyzer.ts +0 -747
  427. package/src/clients/base/abstractClient.ts +0 -190
  428. package/src/clients/base/httpClient.ts +0 -160
  429. package/src/clients/base/modelDetection.ts +0 -107
  430. package/src/clients/base/responseProcessor.ts +0 -586
  431. package/src/clients/factory/clientFactory.ts +0 -55
  432. package/src/clients/implementations/openRouterClient.ts +0 -413
  433. package/src/clients/openRouterClient.ts +0 -870
  434. package/src/clients/utils/directoryStructure.ts +0 -52
  435. package/src/clients/utils/languageDetection.ts +0 -44
  436. package/src/clients/utils/promptFormatter.ts +0 -182
  437. package/src/clients/utils/tokenCounter.ts +0 -297
  438. package/src/core/ApiClientSelector.ts +0 -37
  439. package/src/core/ConfigurationService.ts +0 -591
  440. package/src/core/ConsolidationService.ts +0 -423
  441. package/src/core/InteractiveDisplayManager.ts +0 -81
  442. package/src/core/OutputManager.ts +0 -275
  443. package/src/core/ReviewGenerator.ts +0 -140
  444. package/src/core/fileDiscovery.ts +0 -237
  445. package/src/core/handlers/EstimationHandler.ts +0 -104
  446. package/src/core/handlers/FileProcessingHandler.ts +0 -210
  447. package/src/core/handlers/OutputHandler.ts +0 -125
  448. package/src/core/handlers/ReviewExecutor.ts +0 -104
  449. package/src/core/reviewOrchestrator.ts +0 -333
  450. package/src/core/utils/ModelInfoUtils.ts +0 -56
  451. package/src/formatters/utils/IssueFormatters.ts +0 -83
  452. package/src/formatters/utils/JsonFormatter.ts +0 -77
  453. package/src/formatters/utils/MarkdownFormatters.ts +0 -609
  454. package/src/formatters/utils/MetadataFormatter.ts +0 -269
  455. package/src/formatters/utils/ModelInfoExtractor.ts +0 -115
  456. package/src/index.ts +0 -25
  457. package/src/plugins/PluginInterface.ts +0 -50
  458. package/src/plugins/PluginManager.ts +0 -126
  459. package/src/prompts/PromptManager.ts +0 -69
  460. package/src/prompts/cache/PromptCache.ts +0 -50
  461. package/src/prompts/promptText/common/variables/css-frameworks.json +0 -33
  462. package/src/prompts/promptText/common/variables/framework-versions.json +0 -45
  463. package/src/prompts/promptText/frameworks/react/comprehensive.hbs +0 -19
  464. package/src/prompts/promptText/languages/css/comprehensive.hbs +0 -18
  465. package/src/prompts/promptText/languages/generic/comprehensive.hbs +0 -20
  466. package/src/prompts/promptText/languages/html/comprehensive.hbs +0 -18
  467. package/src/prompts/promptText/languages/javascript/comprehensive.hbs +0 -18
  468. package/src/prompts/promptText/languages/python/comprehensive.hbs +0 -18
  469. package/src/prompts/promptText/languages/typescript/comprehensive.hbs +0 -18
  470. package/src/runtime/auth/service.ts +0 -58
  471. package/src/runtime/auth/session.ts +0 -103
  472. package/src/runtime/auth/types.ts +0 -11
  473. package/src/runtime/cliEntry.ts +0 -214
  474. package/src/runtime/debug/logManager.ts +0 -37
  475. package/src/runtime/errors.ts +0 -13
  476. package/src/runtime/fileCollector.ts +0 -495
  477. package/src/runtime/manifest.ts +0 -64
  478. package/src/runtime/openrouterProxy.ts +0 -45
  479. package/src/runtime/preprod/webCheck.ts +0 -104
  480. package/src/runtime/proxyConfig.ts +0 -94
  481. package/src/runtime/proxyEnvironment.ts +0 -71
  482. package/src/runtime/reportMerge.ts +0 -102
  483. package/src/runtime/reporting/markdownReportBuilder.ts +0 -138
  484. package/src/runtime/reporting/reportDataCollector.ts +0 -234
  485. package/src/runtime/reporting/summaryGenerator.ts +0 -86
  486. package/src/runtime/reviewPipeline.ts +0 -200
  487. package/src/runtime/runAiCodeReview.ts +0 -308
  488. package/src/runtime/runtimeConfig.ts +0 -5
  489. package/src/runtime/ui/Layout.tsx +0 -57
  490. package/src/runtime/ui/RuntimeApp.tsx +0 -262
  491. package/src/runtime/ui/inkModules.ts +0 -73
  492. package/src/runtime/ui/screens/AuthScreen.tsx +0 -128
  493. package/src/runtime/ui/screens/ModeSelection.tsx +0 -185
  494. package/src/runtime/ui/screens/ProgressScreen.tsx +0 -110
  495. package/src/runtime/ui/screens/ResultsScreen.tsx +0 -103
  496. package/src/strategies/ArchitecturalReviewStrategy.ts +0 -54
  497. package/src/strategies/CodingTestReviewStrategy.ts +0 -920
  498. package/src/strategies/ConsolidatedReviewStrategy.ts +0 -59
  499. package/src/strategies/ExtractPatternsReviewStrategy.ts +0 -64
  500. package/src/strategies/MultiPassReviewStrategy.ts +0 -785
  501. package/src/strategies/ReviewStrategy.ts +0 -64
  502. package/src/strategies/StrategyFactory.ts +0 -79
  503. package/src/tokenizers/baseTokenizer.ts +0 -61
  504. package/src/tokenizers/gptTokenizer.ts +0 -27
  505. package/src/types/apiResponses.ts +0 -40
  506. package/src/types/cli.ts +0 -24
  507. package/src/types/configuration.ts +0 -201
  508. package/src/types/handlebars.d.ts +0 -5
  509. package/src/types/patch.d.ts +0 -25
  510. package/src/types/review.ts +0 -312
  511. package/src/types/reviewContext.d.ts +0 -65
  512. package/src/types/structuredReview.ts +0 -167
  513. package/src/types/tokenAnalysis.ts +0 -56
  514. package/src/utils/FileReader.ts +0 -93
  515. package/src/utils/FileWriter.ts +0 -76
  516. package/src/utils/PathGenerator.ts +0 -97
  517. package/src/utils/api/apiUtils.ts +0 -14
  518. package/src/utils/apiErrorHandler.ts +0 -287
  519. package/src/utils/ciDataCollector.ts +0 -252
  520. package/src/utils/codingTestConfigLoader.ts +0 -466
  521. package/src/utils/dependencies/aiDependencyAnalyzer.ts +0 -454
  522. package/src/utils/detection/frameworkDetector.ts +0 -879
  523. package/src/utils/detection/projectTypeDetector.ts +0 -518
  524. package/src/utils/diagramGenerator.ts +0 -206
  525. package/src/utils/errorLogger.ts +0 -60
  526. package/src/utils/estimationUtils.ts +0 -407
  527. package/src/utils/fileFilters.ts +0 -373
  528. package/src/utils/fileSystem.ts +0 -57
  529. package/src/utils/logger.ts +0 -290
  530. package/src/utils/pathValidator.ts +0 -98
  531. package/src/utils/projectDocs.ts +0 -189
  532. package/src/utils/promptPaths.ts +0 -29
  533. package/src/utils/promptTemplateManager.ts +0 -157
  534. package/src/utils/review/consolidateReview.ts +0 -553
  535. package/src/utils/review/fixDisplay.ts +0 -100
  536. package/src/utils/review/fixImplementation.ts +0 -61
  537. package/src/utils/review/index.ts +0 -36
  538. package/src/utils/review/interactiveProcessing.ts +0 -294
  539. package/src/utils/review/progressTracker.ts +0 -296
  540. package/src/utils/review/reviewExtraction.ts +0 -382
  541. package/src/utils/review/types.ts +0 -46
  542. package/src/utils/reviewParser.ts +0 -253
  543. package/src/utils/sanitizer.ts +0 -238
  544. package/src/utils/smartFileSelector.ts +0 -255
  545. package/src/utils/templateLoader.ts +0 -514
  546. package/src/utils/treeGenerator.ts +0 -153
  547. package/tsconfig.build.json +0 -14
  548. package/tsconfig.json +0 -59
  549. /package/{src/utils/api/index.ts → dist/utils/api/index.d.ts} +0 -0
@@ -0,0 +1,81 @@
1
+ /**
2
+ * @fileoverview Token counting and cost estimation utilities for AI API usage.
3
+ *
4
+ * This module provides utilities for estimating token usage and associated costs
5
+ * when using OpenRouter models. It implements accurate token counting using
6
+ * model-specific tokenizers and maintains current pricing information for OpenRouter models.
7
+ *
8
+ * Key responsibilities:
9
+ * - Counting tokens for input and output text using model-specific tokenizers
10
+ * - Calculating approximate API costs based on token usage and model
11
+ * - Tracking different pricing tiers for various AI models
12
+ * - Providing cost information for review outputs
13
+ * - Supporting cost-aware decision making for API usage
14
+ *
15
+ * These utilities help users understand the resource usage and costs associated
16
+ * with their code reviews, enabling better planning and resource allocation.
17
+ */
18
+ /**
19
+ * Utility functions for estimating token counts and costs for AI API calls
20
+ */
21
+ /**
22
+ * Count tokens in a text using the appropriate tokenizer for a model
23
+ * @param text Text to count tokens for
24
+ * @param modelName Name of the model (optional)
25
+ * @returns Token count
26
+ */
27
+ export declare function estimateTokenCount(text: string, modelName?: string): number;
28
+ /**
29
+ * Calculate the estimated cost for an AI API call
30
+ * @param inputTokens Number of input tokens
31
+ * @param outputTokens Number of output tokens
32
+ * @param modelName Name of the model used
33
+ * @returns Estimated cost in USD
34
+ */
35
+ export declare function calculateCost(inputTokens: number, outputTokens: number, modelName?: string): number;
36
+ /**
37
+ * Format a cost value as a currency string
38
+ * @param cost Cost value in USD
39
+ * @returns Formatted cost string
40
+ */
41
+ export declare function formatCost(cost: number): string;
42
+ /**
43
+ * Cost information for an API call
44
+ */
45
+ export interface CostInfo {
46
+ inputTokens: number;
47
+ outputTokens: number;
48
+ totalTokens: number;
49
+ estimatedCost: number;
50
+ formattedCost: string;
51
+ cost: number;
52
+ passCount?: number;
53
+ perPassCosts?: PassCostInfo[];
54
+ contextMaintenanceFactor?: number;
55
+ }
56
+ /**
57
+ * Cost information for a single pass in a multi-pass review
58
+ */
59
+ export interface PassCostInfo {
60
+ passNumber: number;
61
+ inputTokens: number;
62
+ outputTokens: number;
63
+ totalTokens: number;
64
+ estimatedCost: number;
65
+ }
66
+ /**
67
+ * Calculate cost information for an API call based on text
68
+ * @param inputText Input text sent to the API
69
+ * @param outputText Output text received from the API
70
+ * @param modelName Name of the model used
71
+ * @returns Cost information
72
+ */
73
+ export declare function getCostInfoFromText(inputText: string, outputText: string, modelName?: string): CostInfo;
74
+ /**
75
+ * Calculate cost information for an API call based on token counts
76
+ * @param inputTokens Number of input tokens
77
+ * @param outputTokens Number of output tokens
78
+ * @param modelName Name of the model used
79
+ * @returns Cost information
80
+ */
81
+ export declare function getCostInfo(inputTokens: number, outputTokens: number, modelName?: string): CostInfo;
@@ -0,0 +1,209 @@
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
+ // OpenRouter models (via OpenRouter)
43
+ 'anthropic/claude-3-opus': {
44
+ type: 'standard',
45
+ inputTokenCost: 0.015, // $15.00 per 1M tokens
46
+ outputTokenCost: 0.075, // $75.00 per 1M tokens
47
+ },
48
+ 'anthropic/claude-3-sonnet': {
49
+ type: 'standard',
50
+ inputTokenCost: 0.003, // $3.00 per 1M tokens
51
+ outputTokenCost: 0.015, // $15.00 per 1M tokens
52
+ },
53
+ 'anthropic/claude-3-haiku': {
54
+ type: 'standard',
55
+ inputTokenCost: 0.00025, // $0.25 per 1M tokens
56
+ outputTokenCost: 0.00125, // $1.25 per 1M tokens
57
+ },
58
+ 'openai/gpt-4-turbo': {
59
+ type: 'standard',
60
+ inputTokenCost: 0.01, // $10.00 per 1M tokens
61
+ outputTokenCost: 0.03, // $30.00 per 1M tokens
62
+ },
63
+ 'openai/gpt-4o': {
64
+ type: 'standard',
65
+ inputTokenCost: 0.005, // $5.00 per 1M tokens (OpenRouter pricing)
66
+ outputTokenCost: 0.015, // $15.00 per 1M tokens (OpenRouter pricing)
67
+ },
68
+ 'openai/gpt-4o-mini': {
69
+ type: 'standard',
70
+ inputTokenCost: 0.00015, // $0.15 per 1M tokens (OpenRouter pricing)
71
+ outputTokenCost: 0.0006, // $0.60 per 1M tokens (OpenRouter pricing)
72
+ },
73
+ 'openai/gpt-3.5-turbo': {
74
+ type: 'standard',
75
+ inputTokenCost: 0.0005, // $0.50 per 1M tokens (OpenRouter pricing)
76
+ outputTokenCost: 0.0015, // $1.50 per 1M tokens (OpenRouter pricing)
77
+ },
78
+ 'x-ai/grok-4-fast': {
79
+ type: 'standard',
80
+ inputTokenCost: 0.0002, // $0.20 per 1M input tokens (approx)
81
+ outputTokenCost: 0.0005, // $0.50 per 1M output tokens (approx)
82
+ },
83
+ // Default fallback pricing (OpenRouter average)
84
+ default: {
85
+ type: 'standard',
86
+ inputTokenCost: 0.005, // $5.00 per 1M tokens
87
+ outputTokenCost: 0.015, // $15.00 per 1M tokens
88
+ },
89
+ };
90
+ /**
91
+ * Get the pricing for a specific model
92
+ * @param modelName Name of the model
93
+ * @returns Pricing information for the model
94
+ */
95
+ function getModelPricing(modelName) {
96
+ // Handle OpenRouter model names (remove the 'openrouter:' prefix)
97
+ let actualModelName = modelName;
98
+ if (modelName.startsWith('openrouter:')) {
99
+ actualModelName = modelName.substring('openrouter:'.length);
100
+ }
101
+ else if (modelName.startsWith('openrouter-')) {
102
+ actualModelName = modelName.substring('openrouter-'.length);
103
+ }
104
+ // Check if we have pricing for this model
105
+ if (MODEL_PRICING[actualModelName]) {
106
+ return MODEL_PRICING[actualModelName];
107
+ }
108
+ // Default fallback
109
+ return MODEL_PRICING.default;
110
+ }
111
+ /**
112
+ * Calculate the cost for a specific tier
113
+ * @param tokens Number of tokens
114
+ * @param tokenCost Cost per 1K tokens
115
+ * @param tierStart Start of the tier
116
+ * @param tierEnd End of the tier (or undefined for no upper limit)
117
+ * @returns Cost for this tier
118
+ */
119
+ function calculateTierCost(tokens, tokenCost, tierStart, tierEnd) {
120
+ // Calculate how many tokens fall within this tier
121
+ const tierTokens = tierEnd
122
+ ? Math.min(Math.max(0, tokens - tierStart), tierEnd - tierStart)
123
+ : Math.max(0, tokens - tierStart);
124
+ // Calculate the cost for this tier
125
+ return (tierTokens / 1000) * tokenCost;
126
+ }
127
+ /**
128
+ * Calculate the estimated cost for an AI API call
129
+ * @param inputTokens Number of input tokens
130
+ * @param outputTokens Number of output tokens
131
+ * @param modelName Name of the model used
132
+ * @returns Estimated cost in USD
133
+ */
134
+ function calculateCost(inputTokens, outputTokens, modelName = 'openrouter:anthropic/claude-3-opus-20240229') {
135
+ const pricing = getModelPricing(modelName);
136
+ let inputCost = 0;
137
+ let outputCost = 0;
138
+ if (pricing.type === 'standard') {
139
+ // Standard pricing is simple - just multiply by the cost per token
140
+ inputCost = (inputTokens / 1000) * pricing.inputTokenCost;
141
+ outputCost = (outputTokens / 1000) * pricing.outputTokenCost;
142
+ }
143
+ else if (pricing.type === 'tiered') {
144
+ // Tiered pricing requires calculating costs for each tier
145
+ const tiers = pricing.tiers;
146
+ // Calculate input token cost across tiers
147
+ for (let i = 0; i < tiers.length; i++) {
148
+ const tierStart = tiers[i].threshold;
149
+ const tierEnd = i < tiers.length - 1 ? tiers[i + 1].threshold : undefined;
150
+ inputCost += calculateTierCost(inputTokens, tiers[i].inputTokenCost, tierStart, tierEnd);
151
+ }
152
+ // Calculate output token cost across tiers
153
+ for (let i = 0; i < tiers.length; i++) {
154
+ const tierStart = tiers[i].threshold;
155
+ const tierEnd = i < tiers.length - 1 ? tiers[i + 1].threshold : undefined;
156
+ outputCost += calculateTierCost(outputTokens, tiers[i].outputTokenCost, tierStart, tierEnd);
157
+ }
158
+ }
159
+ return inputCost + outputCost;
160
+ }
161
+ /**
162
+ * Format a cost value as a currency string
163
+ * @param cost Cost value in USD
164
+ * @returns Formatted cost string
165
+ */
166
+ function formatCost(cost) {
167
+ return `$${cost.toFixed(6)} USD`;
168
+ }
169
+ /**
170
+ * Calculate cost information for an API call based on text
171
+ * @param inputText Input text sent to the API
172
+ * @param outputText Output text received from the API
173
+ * @param modelName Name of the model used
174
+ * @returns Cost information
175
+ */
176
+ function getCostInfoFromText(inputText, outputText, modelName = 'openrouter:anthropic/claude-3-opus-20240229') {
177
+ const inputTokens = estimateTokenCount(inputText, modelName);
178
+ const outputTokens = estimateTokenCount(outputText, modelName);
179
+ const totalTokens = inputTokens + outputTokens;
180
+ const estimatedCost = calculateCost(inputTokens, outputTokens, modelName);
181
+ return {
182
+ inputTokens,
183
+ outputTokens,
184
+ totalTokens,
185
+ estimatedCost,
186
+ formattedCost: formatCost(estimatedCost),
187
+ cost: estimatedCost, // Alias for backward compatibility
188
+ };
189
+ }
190
+ /**
191
+ * Calculate cost information for an API call based on token counts
192
+ * @param inputTokens Number of input tokens
193
+ * @param outputTokens Number of output tokens
194
+ * @param modelName Name of the model used
195
+ * @returns Cost information
196
+ */
197
+ function getCostInfo(inputTokens, outputTokens, modelName = 'openrouter:anthropic/claude-3-opus-20240229') {
198
+ const totalTokens = inputTokens + outputTokens;
199
+ const estimatedCost = calculateCost(inputTokens, outputTokens, modelName);
200
+ return {
201
+ inputTokens,
202
+ outputTokens,
203
+ totalTokens,
204
+ estimatedCost,
205
+ formattedCost: formatCost(estimatedCost),
206
+ cost: estimatedCost, // Alias for backward compatibility
207
+ };
208
+ }
209
+ //# 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 {};