codereview-aia 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. package/dist/analysis/FindingsExtractor.d.ts +105 -0
  2. package/dist/analysis/FindingsExtractor.js +363 -0
  3. package/dist/analysis/FindingsExtractor.js.map +1 -0
  4. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +111 -0
  5. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +215 -0
  6. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +1 -0
  7. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +142 -0
  8. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +503 -0
  9. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +1 -0
  10. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +88 -0
  11. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +343 -0
  12. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +1 -0
  13. package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +104 -0
  14. package/dist/analysis/ai-detection/core/AIDetectionEngine.js +369 -0
  15. package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +1 -0
  16. package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +364 -0
  17. package/dist/analysis/ai-detection/types/DetectionTypes.js +32 -0
  18. package/dist/analysis/ai-detection/types/DetectionTypes.js.map +1 -0
  19. package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +97 -0
  20. package/dist/analysis/ai-detection/utils/SubmissionConverter.js +339 -0
  21. package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +1 -0
  22. package/dist/analysis/context/ReviewContext.d.ts +184 -0
  23. package/dist/analysis/context/ReviewContext.js +294 -0
  24. package/dist/analysis/context/ReviewContext.js.map +1 -0
  25. package/dist/analysis/context/index.d.ts +6 -0
  26. package/dist/analysis/context/index.js +23 -0
  27. package/dist/analysis/context/index.js.map +1 -0
  28. package/dist/analysis/index.d.ts +7 -0
  29. package/dist/analysis/index.js +24 -0
  30. package/dist/analysis/index.js.map +1 -0
  31. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +27 -0
  32. package/dist/analysis/tokens/TokenAnalysisFormatter.js +143 -0
  33. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +1 -0
  34. package/dist/analysis/tokens/TokenAnalyzer.d.ts +155 -0
  35. package/dist/analysis/tokens/TokenAnalyzer.js +502 -0
  36. package/dist/analysis/tokens/TokenAnalyzer.js.map +1 -0
  37. package/dist/analysis/tokens/index.d.ts +7 -0
  38. package/dist/analysis/tokens/index.js +24 -0
  39. package/dist/analysis/tokens/index.js.map +1 -0
  40. package/dist/clients/base/abstractClient.d.ts +99 -0
  41. package/dist/clients/base/abstractClient.js +98 -0
  42. package/dist/clients/base/abstractClient.js.map +1 -0
  43. package/dist/clients/base/httpClient.d.ts +24 -0
  44. package/dist/clients/base/httpClient.js +147 -0
  45. package/dist/clients/base/httpClient.js.map +1 -0
  46. package/dist/clients/base/index.d.ts +11 -0
  47. package/dist/clients/base/index.js +28 -0
  48. package/dist/clients/base/index.js.map +1 -0
  49. package/dist/clients/base/modelDetection.d.ts +41 -0
  50. package/dist/clients/base/modelDetection.js +88 -0
  51. package/dist/clients/base/modelDetection.js.map +1 -0
  52. package/dist/clients/base/responseProcessor.d.ts +45 -0
  53. package/dist/clients/base/responseProcessor.js +495 -0
  54. package/dist/clients/base/responseProcessor.js.map +1 -0
  55. package/dist/clients/factory/clientFactory.d.ts +23 -0
  56. package/dist/clients/factory/clientFactory.js +50 -0
  57. package/dist/clients/factory/clientFactory.js.map +1 -0
  58. package/dist/clients/factory/index.d.ts +7 -0
  59. package/dist/clients/factory/index.js +24 -0
  60. package/dist/clients/factory/index.js.map +1 -0
  61. package/dist/clients/implementations/index.d.ts +7 -0
  62. package/dist/clients/implementations/index.js +24 -0
  63. package/dist/clients/implementations/index.js.map +1 -0
  64. package/dist/clients/implementations/openRouterClient.d.ts +69 -0
  65. package/dist/clients/implementations/openRouterClient.js +294 -0
  66. package/dist/clients/implementations/openRouterClient.js.map +1 -0
  67. package/dist/clients/openRouterClient.d.ts +42 -0
  68. package/dist/clients/openRouterClient.js +738 -0
  69. package/dist/clients/openRouterClient.js.map +1 -0
  70. package/dist/clients/openRouterClientWrapper.d.ts +22 -0
  71. package/dist/clients/openRouterClientWrapper.js +64 -0
  72. package/dist/clients/openRouterClientWrapper.js.map +1 -0
  73. package/dist/clients/utils/directoryStructure.d.ts +14 -0
  74. package/dist/clients/utils/directoryStructure.js +48 -0
  75. package/dist/clients/utils/directoryStructure.js.map +1 -0
  76. package/dist/clients/utils/index.d.ts +10 -0
  77. package/dist/clients/utils/index.js +31 -0
  78. package/dist/clients/utils/index.js.map +1 -0
  79. package/dist/clients/utils/languageDetection.d.ts +13 -0
  80. package/dist/clients/utils/languageDetection.js +46 -0
  81. package/dist/clients/utils/languageDetection.js.map +1 -0
  82. package/dist/clients/utils/promptFormatter.d.ts +36 -0
  83. package/dist/clients/utils/promptFormatter.js +92 -0
  84. package/dist/clients/utils/promptFormatter.js.map +1 -0
  85. package/dist/clients/utils/promptLoader.d.ts +27 -0
  86. package/dist/clients/utils/promptLoader.js +49 -0
  87. package/dist/clients/utils/promptLoader.js.map +1 -0
  88. package/dist/clients/utils/tokenCounter.d.ts +81 -0
  89. package/dist/clients/utils/tokenCounter.js +209 -0
  90. package/dist/clients/utils/tokenCounter.js.map +1 -0
  91. package/dist/core/ApiClientSelector.d.ts +8 -0
  92. package/dist/core/ApiClientSelector.js +29 -0
  93. package/dist/core/ApiClientSelector.js.map +1 -0
  94. package/dist/core/ConfigurationService.d.ts +286 -0
  95. package/dist/core/ConfigurationService.js +477 -0
  96. package/dist/core/ConfigurationService.js.map +1 -0
  97. package/dist/core/ConsolidationService.d.ts +99 -0
  98. package/dist/core/ConsolidationService.js +341 -0
  99. package/dist/core/ConsolidationService.js.map +1 -0
  100. package/dist/core/InteractiveDisplayManager.d.ts +22 -0
  101. package/dist/core/InteractiveDisplayManager.js +70 -0
  102. package/dist/core/InteractiveDisplayManager.js.map +1 -0
  103. package/dist/core/OutputManager.d.ts +26 -0
  104. package/dist/core/OutputManager.js +217 -0
  105. package/dist/core/OutputManager.js.map +1 -0
  106. package/dist/core/ReviewGenerator.d.ts +13 -0
  107. package/dist/core/ReviewGenerator.js +102 -0
  108. package/dist/core/ReviewGenerator.js.map +1 -0
  109. package/dist/core/fileDiscovery.d.ts +35 -0
  110. package/dist/core/fileDiscovery.js +202 -0
  111. package/dist/core/fileDiscovery.js.map +1 -0
  112. package/dist/core/handlers/EstimationHandler.d.ts +18 -0
  113. package/dist/core/handlers/EstimationHandler.js +110 -0
  114. package/dist/core/handlers/EstimationHandler.js.map +1 -0
  115. package/dist/core/handlers/FileProcessingHandler.d.ts +31 -0
  116. package/dist/core/handlers/FileProcessingHandler.js +159 -0
  117. package/dist/core/handlers/FileProcessingHandler.js.map +1 -0
  118. package/dist/core/handlers/OutputHandler.d.ts +27 -0
  119. package/dist/core/handlers/OutputHandler.js +127 -0
  120. package/dist/core/handlers/OutputHandler.js.map +1 -0
  121. package/dist/core/handlers/ReviewExecutor.d.ts +32 -0
  122. package/dist/core/handlers/ReviewExecutor.js +111 -0
  123. package/dist/core/handlers/ReviewExecutor.js.map +1 -0
  124. package/dist/core/reviewOrchestrator.d.ts +24 -0
  125. package/dist/core/reviewOrchestrator.js +294 -0
  126. package/dist/core/reviewOrchestrator.js.map +1 -0
  127. package/dist/core/utils/ModelInfoUtils.d.ts +16 -0
  128. package/dist/core/utils/ModelInfoUtils.js +54 -0
  129. package/dist/core/utils/ModelInfoUtils.js.map +1 -0
  130. package/dist/formatters/outputFormatter.d.ts +31 -0
  131. package/dist/formatters/outputFormatter.js +65 -0
  132. package/dist/formatters/outputFormatter.js.map +1 -0
  133. package/dist/formatters/utils/IssueFormatters.d.ts +20 -0
  134. package/dist/formatters/utils/IssueFormatters.js +67 -0
  135. package/dist/formatters/utils/IssueFormatters.js.map +1 -0
  136. package/dist/formatters/utils/JsonFormatter.d.ts +13 -0
  137. package/dist/formatters/utils/JsonFormatter.js +57 -0
  138. package/dist/formatters/utils/JsonFormatter.js.map +1 -0
  139. package/dist/formatters/utils/MarkdownFormatters.d.ts +51 -0
  140. package/dist/formatters/utils/MarkdownFormatters.js +456 -0
  141. package/dist/formatters/utils/MarkdownFormatters.js.map +1 -0
  142. package/dist/formatters/utils/MetadataFormatter.d.ts +65 -0
  143. package/dist/formatters/utils/MetadataFormatter.js +219 -0
  144. package/dist/formatters/utils/MetadataFormatter.js.map +1 -0
  145. package/dist/formatters/utils/ModelInfoExtractor.d.ts +33 -0
  146. package/dist/formatters/utils/ModelInfoExtractor.js +111 -0
  147. package/dist/formatters/utils/ModelInfoExtractor.js.map +1 -0
  148. package/dist/index.d.ts +2 -0
  149. package/dist/index.js +1 -0
  150. package/dist/index.js.map +1 -0
  151. package/dist/plugins/PluginInterface.d.ts +44 -0
  152. package/dist/plugins/PluginInterface.js +9 -0
  153. package/dist/plugins/PluginInterface.js.map +1 -0
  154. package/dist/plugins/PluginManager.d.ts +51 -0
  155. package/dist/plugins/PluginManager.js +151 -0
  156. package/dist/plugins/PluginManager.js.map +1 -0
  157. package/dist/prompts/PromptManager.d.ts +30 -0
  158. package/dist/prompts/PromptManager.js +62 -0
  159. package/dist/prompts/PromptManager.js.map +1 -0
  160. package/dist/prompts/cache/PromptCache.d.ts +32 -0
  161. package/dist/prompts/cache/PromptCache.js +48 -0
  162. package/dist/prompts/cache/PromptCache.js.map +1 -0
  163. package/dist/runtime/auth/service.d.ts +2 -0
  164. package/dist/runtime/auth/service.js +41 -0
  165. package/dist/runtime/auth/service.js.map +1 -0
  166. package/dist/runtime/auth/session.d.ts +5 -0
  167. package/dist/runtime/auth/session.js +87 -0
  168. package/dist/runtime/auth/session.js.map +1 -0
  169. package/dist/runtime/auth/types.d.ts +9 -0
  170. package/dist/runtime/auth/types.js +3 -0
  171. package/dist/runtime/auth/types.js.map +1 -0
  172. package/dist/runtime/cliEntry.d.ts +1 -0
  173. package/dist/runtime/cliEntry.js +213 -0
  174. package/dist/runtime/cliEntry.js.map +1 -0
  175. package/dist/runtime/debug/logManager.d.ts +5 -0
  176. package/dist/runtime/debug/logManager.js +31 -0
  177. package/dist/runtime/debug/logManager.js.map +1 -0
  178. package/dist/runtime/errors.d.ts +5 -0
  179. package/dist/runtime/errors.js +15 -0
  180. package/dist/runtime/errors.js.map +1 -0
  181. package/dist/runtime/fileCollector.d.ts +5 -0
  182. package/dist/runtime/fileCollector.js +167 -0
  183. package/dist/runtime/fileCollector.js.map +1 -0
  184. package/dist/runtime/manifest.d.ts +1 -0
  185. package/dist/runtime/manifest.js +65 -0
  186. package/dist/runtime/manifest.js.map +1 -0
  187. package/dist/runtime/openrouterProxy.d.ts +4 -0
  188. package/dist/runtime/openrouterProxy.js +43 -0
  189. package/dist/runtime/openrouterProxy.js.map +1 -0
  190. package/dist/runtime/preprod/webCheck.d.ts +1 -0
  191. package/dist/runtime/preprod/webCheck.js +98 -0
  192. package/dist/runtime/preprod/webCheck.js.map +1 -0
  193. package/dist/runtime/proxyConfig.d.ts +6 -0
  194. package/dist/runtime/proxyConfig.js +86 -0
  195. package/dist/runtime/proxyConfig.js.map +1 -0
  196. package/dist/runtime/proxyEnvironment.d.ts +3 -0
  197. package/dist/runtime/proxyEnvironment.js +63 -0
  198. package/dist/runtime/proxyEnvironment.js.map +1 -0
  199. package/dist/runtime/reportMerge.d.ts +30 -0
  200. package/dist/runtime/reportMerge.js +70 -0
  201. package/dist/runtime/reportMerge.js.map +1 -0
  202. package/dist/runtime/reporting/markdownReportBuilder.d.ts +15 -0
  203. package/dist/runtime/reporting/markdownReportBuilder.js +97 -0
  204. package/dist/runtime/reporting/markdownReportBuilder.js.map +1 -0
  205. package/dist/runtime/reporting/reportDataCollector.d.ts +31 -0
  206. package/dist/runtime/reporting/reportDataCollector.js +170 -0
  207. package/dist/runtime/reporting/reportDataCollector.js.map +1 -0
  208. package/dist/runtime/reporting/summaryGenerator.d.ts +10 -0
  209. package/dist/runtime/reporting/summaryGenerator.js +67 -0
  210. package/dist/runtime/reporting/summaryGenerator.js.map +1 -0
  211. package/dist/runtime/reviewPipeline.d.ts +28 -0
  212. package/dist/runtime/reviewPipeline.js +122 -0
  213. package/dist/runtime/reviewPipeline.js.map +1 -0
  214. package/dist/runtime/runAiCodeReview.d.ts +10 -0
  215. package/dist/runtime/runAiCodeReview.js +138 -0
  216. package/dist/runtime/runAiCodeReview.js.map +1 -0
  217. package/dist/runtime/runtimeConfig.d.ts +4 -0
  218. package/dist/runtime/runtimeConfig.js +7 -0
  219. package/dist/runtime/runtimeConfig.js.map +1 -0
  220. package/dist/runtime/ui/Layout.d.ts +11 -0
  221. package/dist/runtime/ui/Layout.js +47 -0
  222. package/dist/runtime/ui/Layout.js.map +1 -0
  223. package/dist/runtime/ui/RuntimeApp.d.ts +6 -0
  224. package/dist/runtime/ui/RuntimeApp.js +161 -0
  225. package/dist/runtime/ui/RuntimeApp.js.map +1 -0
  226. package/dist/runtime/ui/inkModules.d.ts +10 -0
  227. package/dist/runtime/ui/inkModules.js +63 -0
  228. package/dist/runtime/ui/inkModules.js.map +1 -0
  229. package/dist/runtime/ui/screens/AuthScreen.d.ts +6 -0
  230. package/dist/runtime/ui/screens/AuthScreen.js +67 -0
  231. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -0
  232. package/dist/runtime/ui/screens/ModeSelection.d.ts +10 -0
  233. package/dist/runtime/ui/screens/ModeSelection.js +100 -0
  234. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -0
  235. package/dist/runtime/ui/screens/ProgressScreen.d.ts +7 -0
  236. package/dist/runtime/ui/screens/ProgressScreen.js +38 -0
  237. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -0
  238. package/dist/runtime/ui/screens/ResultsScreen.d.ts +7 -0
  239. package/dist/runtime/ui/screens/ResultsScreen.js +22 -0
  240. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -0
  241. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +29 -0
  242. package/dist/strategies/ArchitecturalReviewStrategy.js +42 -0
  243. package/dist/strategies/ArchitecturalReviewStrategy.js.map +1 -0
  244. package/dist/strategies/CodingTestReviewStrategy.d.ts +194 -0
  245. package/dist/strategies/CodingTestReviewStrategy.js +681 -0
  246. package/dist/strategies/CodingTestReviewStrategy.js.map +1 -0
  247. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +25 -0
  248. package/dist/strategies/ConsolidatedReviewStrategy.js +45 -0
  249. package/dist/strategies/ConsolidatedReviewStrategy.js.map +1 -0
  250. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +30 -0
  251. package/dist/strategies/ExtractPatternsReviewStrategy.js +51 -0
  252. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +1 -0
  253. package/dist/strategies/MultiPassReviewStrategy.d.ts +86 -0
  254. package/dist/strategies/MultiPassReviewStrategy.js +590 -0
  255. package/dist/strategies/MultiPassReviewStrategy.js.map +1 -0
  256. package/dist/strategies/ReviewStrategy.d.ts +45 -0
  257. package/dist/strategies/ReviewStrategy.js +24 -0
  258. package/dist/strategies/ReviewStrategy.js.map +1 -0
  259. package/dist/strategies/StrategyFactory.d.ts +19 -0
  260. package/dist/strategies/StrategyFactory.js +72 -0
  261. package/dist/strategies/StrategyFactory.js.map +1 -0
  262. package/dist/strategies/index.d.ts +13 -0
  263. package/dist/strategies/index.js +30 -0
  264. package/dist/strategies/index.js.map +1 -0
  265. package/dist/tokenizers/baseTokenizer.d.ts +25 -0
  266. package/dist/tokenizers/baseTokenizer.js +48 -0
  267. package/dist/tokenizers/baseTokenizer.js.map +1 -0
  268. package/dist/tokenizers/gptTokenizer.d.ts +7 -0
  269. package/dist/tokenizers/gptTokenizer.js +28 -0
  270. package/dist/tokenizers/gptTokenizer.js.map +1 -0
  271. package/dist/tokenizers/index.d.ts +7 -0
  272. package/dist/tokenizers/index.js +24 -0
  273. package/dist/tokenizers/index.js.map +1 -0
  274. package/dist/types/apiResponses.d.ts +39 -0
  275. package/dist/types/apiResponses.js +9 -0
  276. package/dist/types/apiResponses.js.map +1 -0
  277. package/dist/types/cli.d.ts +22 -0
  278. package/dist/types/cli.js +3 -0
  279. package/dist/types/cli.js.map +1 -0
  280. package/dist/types/common.d.ts +22 -0
  281. package/dist/types/common.js +14 -0
  282. package/dist/types/common.js.map +1 -0
  283. package/dist/types/configuration.d.ts +682 -0
  284. package/dist/types/configuration.js +65 -0
  285. package/dist/types/configuration.js.map +1 -0
  286. package/dist/types/review.d.ts +258 -0
  287. package/dist/types/review.js +8 -0
  288. package/dist/types/review.js.map +1 -0
  289. package/dist/types/reviewSchema.d.ts +543 -0
  290. package/dist/types/reviewSchema.js +121 -0
  291. package/dist/types/reviewSchema.js.map +1 -0
  292. package/dist/types/structuredReview.d.ts +119 -0
  293. package/dist/types/structuredReview.js +6 -0
  294. package/dist/types/structuredReview.js.map +1 -0
  295. package/dist/types/tokenAnalysis.d.ts +44 -0
  296. package/dist/types/tokenAnalysis.js +4 -0
  297. package/dist/types/tokenAnalysis.js.map +1 -0
  298. package/dist/utils/FileReader.d.ts +33 -0
  299. package/dist/utils/FileReader.js +88 -0
  300. package/dist/utils/FileReader.js.map +1 -0
  301. package/dist/utils/FileWriter.d.ts +26 -0
  302. package/dist/utils/FileWriter.js +76 -0
  303. package/dist/utils/FileWriter.js.map +1 -0
  304. package/dist/utils/PathGenerator.d.ts +30 -0
  305. package/dist/utils/PathGenerator.js +82 -0
  306. package/dist/utils/PathGenerator.js.map +1 -0
  307. package/dist/utils/api/apiUtils.d.ts +3 -0
  308. package/dist/utils/api/apiUtils.js +20 -0
  309. package/dist/utils/api/apiUtils.js.map +1 -0
  310. package/dist/utils/api/index.d.ts +1 -0
  311. package/dist/utils/api/index.js +18 -0
  312. package/dist/utils/api/index.js.map +1 -0
  313. package/dist/utils/apiErrorHandler.d.ts +130 -0
  314. package/dist/utils/apiErrorHandler.js +256 -0
  315. package/dist/utils/apiErrorHandler.js.map +1 -0
  316. package/dist/utils/ciDataCollector.d.ts +51 -0
  317. package/dist/utils/ciDataCollector.js +197 -0
  318. package/dist/utils/ciDataCollector.js.map +1 -0
  319. package/dist/utils/codingTestConfigLoader.d.ts +66 -0
  320. package/dist/utils/codingTestConfigLoader.js +420 -0
  321. package/dist/utils/codingTestConfigLoader.js.map +1 -0
  322. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +30 -0
  323. package/dist/utils/dependencies/aiDependencyAnalyzer.js +343 -0
  324. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +1 -0
  325. package/dist/utils/detection/frameworkDetector.d.ts +43 -0
  326. package/dist/utils/detection/frameworkDetector.js +795 -0
  327. package/dist/utils/detection/frameworkDetector.js.map +1 -0
  328. package/dist/utils/detection/index.d.ts +9 -0
  329. package/dist/utils/detection/index.js +28 -0
  330. package/dist/utils/detection/index.js.map +1 -0
  331. package/dist/utils/detection/projectTypeDetector.d.ts +27 -0
  332. package/dist/utils/detection/projectTypeDetector.js +469 -0
  333. package/dist/utils/detection/projectTypeDetector.js.map +1 -0
  334. package/dist/utils/diagramGenerator.d.ts +49 -0
  335. package/dist/utils/diagramGenerator.js +218 -0
  336. package/dist/utils/diagramGenerator.js.map +1 -0
  337. package/dist/utils/errorLogger.d.ts +24 -0
  338. package/dist/utils/errorLogger.js +59 -0
  339. package/dist/utils/errorLogger.js.map +1 -0
  340. package/dist/utils/estimationUtils.d.ts +139 -0
  341. package/dist/utils/estimationUtils.js +329 -0
  342. package/dist/utils/estimationUtils.js.map +1 -0
  343. package/dist/utils/fileFilters.d.ts +72 -0
  344. package/dist/utils/fileFilters.js +338 -0
  345. package/dist/utils/fileFilters.js.map +1 -0
  346. package/dist/utils/fileSystem.d.ts +22 -0
  347. package/dist/utils/fileSystem.js +45 -0
  348. package/dist/utils/fileSystem.js.map +1 -0
  349. package/dist/utils/index.d.ts +22 -0
  350. package/dist/utils/index.js +52 -0
  351. package/dist/utils/index.js.map +1 -0
  352. package/dist/utils/logger.d.ts +77 -0
  353. package/dist/utils/logger.js +271 -0
  354. package/dist/utils/logger.js.map +1 -0
  355. package/dist/utils/pathValidator.d.ts +40 -0
  356. package/dist/utils/pathValidator.js +98 -0
  357. package/dist/utils/pathValidator.js.map +1 -0
  358. package/dist/utils/priorityFilter.d.ts +34 -0
  359. package/dist/utils/priorityFilter.js +54 -0
  360. package/dist/utils/priorityFilter.js.map +1 -0
  361. package/dist/utils/projectDocs.d.ts +47 -0
  362. package/dist/utils/projectDocs.js +158 -0
  363. package/dist/utils/projectDocs.js.map +1 -0
  364. package/dist/utils/promptPaths.d.ts +6 -0
  365. package/dist/utils/promptPaths.js +33 -0
  366. package/dist/utils/promptPaths.js.map +1 -0
  367. package/dist/utils/promptTemplateManager.d.ts +34 -0
  368. package/dist/utils/promptTemplateManager.js +140 -0
  369. package/dist/utils/promptTemplateManager.js.map +1 -0
  370. package/dist/utils/review/consolidateReview.d.ts +15 -0
  371. package/dist/utils/review/consolidateReview.js +481 -0
  372. package/dist/utils/review/consolidateReview.js.map +1 -0
  373. package/dist/utils/review/fixDisplay.d.ts +20 -0
  374. package/dist/utils/review/fixDisplay.js +84 -0
  375. package/dist/utils/review/fixDisplay.js.map +1 -0
  376. package/dist/utils/review/fixImplementation.d.ts +28 -0
  377. package/dist/utils/review/fixImplementation.js +60 -0
  378. package/dist/utils/review/fixImplementation.js.map +1 -0
  379. package/dist/utils/review/index.d.ts +13 -0
  380. package/dist/utils/review/index.js +50 -0
  381. package/dist/utils/review/index.js.map +1 -0
  382. package/dist/utils/review/interactiveProcessing.d.ts +25 -0
  383. package/dist/utils/review/interactiveProcessing.js +251 -0
  384. package/dist/utils/review/interactiveProcessing.js.map +1 -0
  385. package/dist/utils/review/progressTracker.d.ts +106 -0
  386. package/dist/utils/review/progressTracker.js +227 -0
  387. package/dist/utils/review/progressTracker.js.map +1 -0
  388. package/dist/utils/review/reviewExtraction.d.ts +31 -0
  389. package/dist/utils/review/reviewExtraction.js +324 -0
  390. package/dist/utils/review/reviewExtraction.js.map +1 -0
  391. package/dist/utils/review/types.d.ts +45 -0
  392. package/dist/utils/review/types.js +18 -0
  393. package/dist/utils/review/types.js.map +1 -0
  394. package/dist/utils/reviewActionHandler.d.ts +16 -0
  395. package/dist/utils/reviewActionHandler.js +34 -0
  396. package/dist/utils/reviewActionHandler.js.map +1 -0
  397. package/dist/utils/reviewParser.d.ts +34 -0
  398. package/dist/utils/reviewParser.js +218 -0
  399. package/dist/utils/reviewParser.js.map +1 -0
  400. package/dist/utils/sanitizer.d.ts +82 -0
  401. package/dist/utils/sanitizer.js +239 -0
  402. package/dist/utils/sanitizer.js.map +1 -0
  403. package/dist/utils/smartFileSelector.d.ts +50 -0
  404. package/dist/utils/smartFileSelector.js +261 -0
  405. package/dist/utils/smartFileSelector.js.map +1 -0
  406. package/dist/utils/templateLoader.d.ts +44 -0
  407. package/dist/utils/templateLoader.js +431 -0
  408. package/dist/utils/templateLoader.js.map +1 -0
  409. package/dist/utils/treeGenerator.d.ts +12 -0
  410. package/dist/utils/treeGenerator.js +133 -0
  411. package/dist/utils/treeGenerator.js.map +1 -0
  412. package/package.json +11 -12
  413. package/src/index.ts +1 -0
  414. package/src/runtime/debug/logManager.ts +37 -0
  415. package/src/runtime/fileCollector.ts +58 -24
  416. package/src/runtime/preprod/webCheck.ts +104 -0
  417. package/src/runtime/reviewPipeline.ts +10 -4
  418. package/src/runtime/ui/RuntimeApp.tsx +96 -13
  419. package/src/runtime/ui/screens/ModeSelection.tsx +148 -15
  420. package/src/runtime/ui/screens/ProgressScreen.tsx +10 -3
  421. package/src/runtime/ui/screens/ResultsScreen.tsx +8 -1
  422. package/src/utils/logger.ts +64 -14
@@ -0,0 +1,329 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Utilities for estimating token usage and costs for code reviews.
4
+ *
5
+ * This module provides functions for estimating token usage and costs for code reviews
6
+ * based on file content and model selection. It uses the tokenCounter utilities for
7
+ * basic token counting and cost calculation, and adds specialized functions for
8
+ * estimating review-specific token usage patterns.
9
+ */
10
+ var __importDefault = (this && this.__importDefault) || function (mod) {
11
+ return (mod && mod.__esModule) ? mod : { "default": mod };
12
+ };
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.estimateOutputTokens = estimateOutputTokens;
15
+ exports.estimateReviewCost = estimateReviewCost;
16
+ exports.formatEstimation = formatEstimation;
17
+ exports.estimateFromFilePaths = estimateFromFilePaths;
18
+ exports.estimateMultiPassReviewCost = estimateMultiPassReviewCost;
19
+ exports.formatMultiPassEstimation = formatMultiPassEstimation;
20
+ const promises_1 = __importDefault(require("node:fs/promises"));
21
+ const node_path_1 = __importDefault(require("node:path"));
22
+ const tokenCounter_1 = require("../clients/utils/tokenCounter");
23
+ const logger_1 = __importDefault(require("./logger"));
24
+ /**
25
+ * Ratio of output tokens to input tokens based on empirical observations
26
+ * This is an approximation and may vary based on the specific review type and content
27
+ */
28
+ const OUTPUT_TO_INPUT_RATIO = {
29
+ architectural: 0.6, // Architectural reviews tend to be more concise
30
+ 'quick-fixes': 0.8, // Quick fixes often include code snippets
31
+ security: 0.7, // Security reviews are moderately detailed
32
+ performance: 0.7, // Performance reviews are similar to security
33
+ default: 0.75, // Default ratio if review type is not specified
34
+ };
35
+ /**
36
+ * Overhead tokens for review context, instructions, and formatting
37
+ * This is added to the total token count to account for the review framework
38
+ */
39
+ const REVIEW_OVERHEAD_TOKENS = 1500;
40
+ /**
41
+ * Context maintenance overhead factor for multi-pass reviews
42
+ * This factor is applied to estimate additional tokens needed for maintaining context
43
+ */
44
+ const MULTI_PASS_CONTEXT_MAINTENANCE_FACTOR = 0.15;
45
+ /**
46
+ * Additional overhead tokens per pass in multi-pass reviews
47
+ * This accounts for pass management, coordination, and state tracking
48
+ */
49
+ const MULTI_PASS_OVERHEAD_PER_PASS = 800;
50
+ /**
51
+ * Estimate the number of output tokens based on input tokens and review type
52
+ * @param inputTokens Number of input tokens
53
+ * @param reviewType Type of review
54
+ * @returns Estimated number of output tokens
55
+ */
56
+ function estimateOutputTokens(inputTokens, reviewType) {
57
+ const ratio = OUTPUT_TO_INPUT_RATIO[reviewType] ||
58
+ OUTPUT_TO_INPUT_RATIO.default;
59
+ return Math.ceil(inputTokens * ratio);
60
+ }
61
+ /**
62
+ * Estimate token usage and cost for a set of files
63
+ *
64
+ * This function calculates the estimated token usage and cost for reviewing a set of files
65
+ * using a specified AI model. It considers:
66
+ * - The content of each file (code, comments, etc.)
67
+ * - The type of review being performed (quick, security, architectural, etc.)
68
+ * - The specific AI model being used and its pricing structure
69
+ *
70
+ * The estimation includes overhead tokens for system prompts and instructions that are
71
+ * included in every review, in addition to the tokens from the file content itself.
72
+ *
73
+ * @param files Array of file information objects containing file content and metadata
74
+ * @param reviewType Type of review (quick, security, architectural, performance)
75
+ * @param modelName Name of the model to use (e.g., 'openrouter:anthropic/claude-3-opus-20240229')
76
+ * @returns Estimated token usage and cost information including:
77
+ * - inputTokens: Number of tokens in the input (files + prompts)
78
+ * - outputTokens: Estimated number of tokens in the AI response
79
+ * - totalTokens: Total token usage (input + output)
80
+ * - estimatedCost: Estimated cost in USD
81
+ * - formattedCost: Cost formatted as a string (e.g., '$0.12 USD')
82
+ * - fileCount: Number of files being reviewed
83
+ * - totalFileSize: Total size of all files in bytes
84
+ */
85
+ async function estimateReviewCost(files, reviewType, modelName = process.env.AI_CODE_REVIEW_MODEL || 'openrouter:anthropic/claude-3-opus-20240229') {
86
+ // Calculate total input tokens from all files
87
+ let totalInputTokens = REVIEW_OVERHEAD_TOKENS; // Start with overhead tokens
88
+ let totalFileSize = 0;
89
+ for (const file of files) {
90
+ const fileTokens = (0, tokenCounter_1.estimateTokenCount)(file.content);
91
+ totalInputTokens += fileTokens;
92
+ totalFileSize += file.content.length;
93
+ }
94
+ // Estimate output tokens based on input tokens and review type
95
+ const estimatedOutputTokens = estimateOutputTokens(totalInputTokens, reviewType);
96
+ // Calculate cost information
97
+ const costInfo = (0, tokenCounter_1.getCostInfo)(totalInputTokens, estimatedOutputTokens, modelName);
98
+ return {
99
+ ...costInfo,
100
+ fileCount: files.length,
101
+ totalFileSize,
102
+ };
103
+ }
104
+ /**
105
+ * Format estimation results as a human-readable string
106
+ *
107
+ * This function takes the estimation results from estimateReviewCost or estimateFromFilePaths
108
+ * and formats them into a user-friendly string that can be displayed to the user.
109
+ *
110
+ * The formatted string includes:
111
+ * - Number of files being reviewed
112
+ * - Total file size
113
+ * - Input token count
114
+ * - Estimated output token count
115
+ * - Total token usage
116
+ * - Estimated cost in USD
117
+ *
118
+ * @param estimation Estimation results from estimateReviewCost or estimateFromFilePaths
119
+ * @param reviewType Type of review (quick, security, architectural, performance)
120
+ * @param modelName Name of the model being used
121
+ * @returns Formatted estimation string ready for display
122
+ * @example
123
+ * // Example output:
124
+ * // Estimation for 5 files (25.5 KB) using openrouter:anthropic/claude-3-opus-20240229:
125
+ * // - Review type: quick
126
+ * // - Input tokens: 5,000
127
+ * // - Output tokens: 2,500 (estimated)
128
+ * // - Total tokens: 7,500
129
+ * // - Estimated Cost: $0.015 USD
130
+ */
131
+ function formatEstimation(estimation, reviewType, modelName) {
132
+ // Extract provider and model if available
133
+ const [provider, model] = modelName.includes(':') ? modelName.split(':') : [undefined, modelName];
134
+ const displayModel = model || modelName;
135
+ const displayProvider = provider
136
+ ? `${provider.charAt(0).toUpperCase() + provider.slice(1)}`
137
+ : 'Unknown';
138
+ const fileSizeInKB = (estimation.totalFileSize / 1024).toFixed(2);
139
+ const averageFileSize = estimation.fileCount > 0
140
+ ? (estimation.totalFileSize / estimation.fileCount / 1024).toFixed(2)
141
+ : '0.00';
142
+ return `
143
+ === Token Usage and Cost Estimation ===
144
+
145
+ Review Type: ${reviewType}
146
+ Provider: ${displayProvider}
147
+ Model: ${displayModel}
148
+ Files: ${estimation.fileCount} (${fileSizeInKB} KB total, ${averageFileSize} KB average)
149
+
150
+ Token Usage:
151
+ Input Tokens: ${estimation.inputTokens.toLocaleString()} (includes ${REVIEW_OVERHEAD_TOKENS.toLocaleString()} overhead tokens)
152
+ Estimated Output Tokens: ${estimation.outputTokens.toLocaleString()}
153
+ Total Tokens: ${estimation.totalTokens.toLocaleString()}
154
+
155
+ Estimated Cost: ${estimation.formattedCost}
156
+
157
+ Note: This is an estimate based on approximate token counts and may vary
158
+ based on the actual content and model behavior.
159
+ `;
160
+ }
161
+ /**
162
+ * Estimate token usage and cost for a set of file paths
163
+ *
164
+ * This function is a convenience wrapper around estimateReviewCost that takes file paths
165
+ * instead of FileInfo objects. It reads the content of each file and then calls
166
+ * estimateReviewCost to calculate the token usage and cost.
167
+ *
168
+ * This is particularly useful for the --estimate command line flag, which needs to
169
+ * estimate costs before actually performing a review.
170
+ *
171
+ * @param filePaths Array of file paths to estimate token usage for
172
+ * @param reviewType Type of review (quick, security, architectural, performance)
173
+ * @param modelName Name of the model to use (e.g., 'openrouter:anthropic/claude-3-opus-20240229')
174
+ * @returns Estimated token usage and cost information (same as estimateReviewCost)
175
+ * @throws Error if any file cannot be read
176
+ * @see estimateReviewCost for details on the return value
177
+ */
178
+ async function estimateFromFilePaths(filePaths, reviewType, modelName = process.env.AI_CODE_REVIEW_MODEL || 'openrouter:anthropic/claude-3-opus-20240229') {
179
+ // Read file contents
180
+ const files = [];
181
+ for (const filePath of filePaths) {
182
+ try {
183
+ const content = await promises_1.default.readFile(filePath, 'utf-8');
184
+ files.push({
185
+ path: filePath,
186
+ relativePath: node_path_1.default.basename(filePath),
187
+ content,
188
+ });
189
+ }
190
+ catch (error) {
191
+ logger_1.default.error(`Error reading file ${filePath}: ${error instanceof Error ? error.message : String(error)}`);
192
+ }
193
+ }
194
+ // Estimate cost
195
+ return await estimateReviewCost(files, reviewType, modelName);
196
+ }
197
+ /**
198
+ * Estimate token usage and cost for a multi-pass review
199
+ *
200
+ * This function extends the standard token estimation by accounting for the overhead
201
+ * of multi-pass reviews, including context maintenance between passes and additional
202
+ * overhead for each pass.
203
+ *
204
+ * @param files Array of file information objects containing file content and metadata
205
+ * @param reviewType Type of review (quick, security, architectural, performance)
206
+ * @param modelName Name of the model to use (e.g., 'openrouter:anthropic/claude-3-opus-20240229')
207
+ * @param options Additional estimation options
208
+ * @param options.passCount Number of passes to estimate (if known)
209
+ * @param options.contextMaintenanceFactor Factor for context maintenance overhead (0-1)
210
+ * @returns Estimated token usage and cost information for multi-pass review
211
+ */
212
+ async function estimateMultiPassReviewCost(files, reviewType, modelName = process.env.AI_CODE_REVIEW_MODEL || 'openrouter:anthropic/claude-3-opus-20240229', options = {}) {
213
+ // Calculate total input tokens from all files
214
+ let totalFileTokens = 0;
215
+ let totalFileSize = 0;
216
+ for (const file of files) {
217
+ const fileTokens = (0, tokenCounter_1.estimateTokenCount)(file.content);
218
+ totalFileTokens += fileTokens;
219
+ totalFileSize += file.content.length;
220
+ }
221
+ // Calculate or determine the number of passes
222
+ const contextMaintenanceFactor = options.contextMaintenanceFactor || MULTI_PASS_CONTEXT_MAINTENANCE_FACTOR;
223
+ // Get a rough estimate of context window size based on the model
224
+ // This is a simplified approach; in production we'd pull this from provider metadata.
225
+ const getContextWindow = (model) => {
226
+ if (model.includes('claude'))
227
+ return 200000;
228
+ if (model.includes('gpt-4o'))
229
+ return 128000;
230
+ if (model.includes('gpt-4'))
231
+ return 128000;
232
+ return 128000; // Default for OpenRouter models
233
+ };
234
+ const contextWindow = getContextWindow(modelName);
235
+ const effectiveContextSize = Math.floor(contextWindow * (1 - contextMaintenanceFactor));
236
+ // Determine number of passes if not provided
237
+ const passCount = options.passCount || Math.max(1, Math.ceil(totalFileTokens / effectiveContextSize));
238
+ // Calculate tokens per pass (roughly equal distribution for estimation)
239
+ const tokensPerPass = totalFileTokens / passCount;
240
+ // Calculate per-pass costs
241
+ const perPassCosts = [];
242
+ let totalInputTokens = 0;
243
+ let totalOutputTokens = 0;
244
+ let totalEstimatedCost = 0;
245
+ for (let i = 0; i < passCount; i++) {
246
+ // Each pass has standard overhead plus context maintenance overhead
247
+ const passInputTokens = Math.ceil(tokensPerPass + REVIEW_OVERHEAD_TOKENS + MULTI_PASS_OVERHEAD_PER_PASS);
248
+ // For passes after the first, add context from previous passes
249
+ const contextTokens = i > 0 ? Math.ceil(i * MULTI_PASS_OVERHEAD_PER_PASS * 1.5) : 0;
250
+ const totalPassInputTokens = passInputTokens + contextTokens;
251
+ // Estimate output tokens
252
+ const passOutputTokens = estimateOutputTokens(totalPassInputTokens, reviewType);
253
+ // Calculate cost for this pass
254
+ const passCostInfo = (0, tokenCounter_1.getCostInfo)(totalPassInputTokens, passOutputTokens, modelName);
255
+ perPassCosts.push({
256
+ passNumber: i + 1,
257
+ inputTokens: totalPassInputTokens,
258
+ outputTokens: passOutputTokens,
259
+ totalTokens: totalPassInputTokens + passOutputTokens,
260
+ estimatedCost: passCostInfo.estimatedCost,
261
+ });
262
+ // Accumulate totals
263
+ totalInputTokens += totalPassInputTokens;
264
+ totalOutputTokens += passOutputTokens;
265
+ totalEstimatedCost += passCostInfo.estimatedCost;
266
+ }
267
+ return {
268
+ inputTokens: totalInputTokens,
269
+ outputTokens: totalOutputTokens,
270
+ totalTokens: totalInputTokens + totalOutputTokens,
271
+ estimatedCost: totalEstimatedCost,
272
+ formattedCost: (0, tokenCounter_1.formatCost)(totalEstimatedCost),
273
+ fileCount: files.length,
274
+ totalFileSize,
275
+ passCount,
276
+ perPassCosts,
277
+ };
278
+ }
279
+ /**
280
+ * Format multi-pass estimation results as a human-readable string
281
+ *
282
+ * @param estimation Multi-pass estimation results
283
+ * @param reviewType Type of review
284
+ * @param modelName Name of the model being used
285
+ * @returns Formatted estimation string
286
+ */
287
+ function formatMultiPassEstimation(estimation, reviewType, modelName) {
288
+ // Extract provider and model if available
289
+ const [provider, model] = modelName.includes(':') ? modelName.split(':') : [undefined, modelName];
290
+ const displayModel = model || modelName;
291
+ const displayProvider = provider
292
+ ? `${provider.charAt(0).toUpperCase() + provider.slice(1)}`
293
+ : 'Unknown';
294
+ const fileSizeInKB = (estimation.totalFileSize / 1024).toFixed(2);
295
+ const averageFileSize = estimation.fileCount > 0
296
+ ? (estimation.totalFileSize / estimation.fileCount / 1024).toFixed(2)
297
+ : '0.00';
298
+ let output = `
299
+ === Multi-Pass Token Usage and Cost Estimation ===
300
+
301
+ Review Type: ${reviewType}
302
+ Provider: ${displayProvider}
303
+ Model: ${displayModel}
304
+ Files: ${estimation.fileCount} (${fileSizeInKB} KB total, ${averageFileSize} KB average)
305
+ Passes: ${estimation.passCount}
306
+
307
+ Total Token Usage:
308
+ Input Tokens: ${estimation.inputTokens.toLocaleString()}
309
+ Estimated Output Tokens: ${estimation.outputTokens.toLocaleString()}
310
+ Total Tokens: ${estimation.totalTokens.toLocaleString()}
311
+
312
+ Estimated Total Cost: ${estimation.formattedCost}
313
+
314
+ Per-Pass Breakdown:
315
+ `;
316
+ estimation.perPassCosts.forEach((passCost) => {
317
+ output += ` Pass ${passCost.passNumber}:
318
+ Input Tokens: ${passCost.inputTokens.toLocaleString()}
319
+ Output Tokens: ${passCost.outputTokens.toLocaleString()}
320
+ Cost: ${(0, tokenCounter_1.formatCost)(passCost.estimatedCost)}
321
+ `;
322
+ });
323
+ output += `
324
+ Note: This is an estimate based on approximate token counts and may vary
325
+ based on the actual content and model behavior.
326
+ `;
327
+ return output;
328
+ }
329
+ //# sourceMappingURL=estimationUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimationUtils.js","sourceRoot":"","sources":["../../src/utils/estimationUtils.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * @fileoverview Utilities for filtering and selecting files for code review.
3
+ *
4
+ * This module provides functions for identifying, filtering, and selecting files
5
+ * for code review based on various criteria. It handles file discovery, gitignore
6
+ * pattern matching, file extension filtering, and test file identification.
7
+ * Supported file types include TypeScript, JavaScript, JSON, and Markdown.
8
+ */
9
+ import type { FileInfo } from '../types/review';
10
+ /**
11
+ * Check if a file is a test file
12
+ * @param filePath File path
13
+ * @returns True if the file is a test file
14
+ */
15
+ export declare function isTestFile(filePath: string): boolean;
16
+ /**
17
+ * Load gitignore patterns from a project directory
18
+ * @param projectDir Project directory path
19
+ * @returns Array of gitignore patterns
20
+ */
21
+ export declare function loadGitignorePatterns(projectDir: string): Promise<string[]>;
22
+ /**
23
+ * Check if a file should be excluded based on gitignore patterns
24
+ * @param filePath File path
25
+ * @param gitignorePatterns Array of gitignore patterns
26
+ * @returns True if the file should be excluded
27
+ */
28
+ export declare function shouldExcludeFile(filePath: string, gitignorePatterns: string[]): boolean;
29
+ /**
30
+ * Get the language for a file based on its extension
31
+ * @param filePath File path
32
+ * @returns Language identifier
33
+ */
34
+ export declare function getLanguageForFile(filePath: string): string;
35
+ /**
36
+ * Check if a file is supported for code review
37
+ * @param filePath File path
38
+ * @returns True if the file is supported
39
+ */
40
+ export declare function isSupportedFile(filePath: string): boolean;
41
+ /**
42
+ * Discover files in a directory recursively
43
+ * @param dirPath Directory path
44
+ * @param options Options for file discovery
45
+ * @returns Array of file paths
46
+ */
47
+ export declare function discoverFiles(dirPath: string, options?: {
48
+ excludePatterns?: string[];
49
+ includeTests?: boolean;
50
+ maxDepth?: number;
51
+ currentDepth?: number;
52
+ }): Promise<string[]>;
53
+ /**
54
+ * Read file content and create a FileInfo object
55
+ * @param filePath File path
56
+ * @returns FileInfo object
57
+ */
58
+ export declare function readFileInfo(filePath: string): Promise<FileInfo>;
59
+ /**
60
+ * Read multiple files and create FileInfo objects
61
+ * @param filePaths Array of file paths
62
+ * @returns Array of FileInfo objects
63
+ */
64
+ export declare function readMultipleFiles(filePaths: string[]): Promise<FileInfo[]>;
65
+ /**
66
+ * Get files to review based on the target path
67
+ * @param targetPath The target file or directory path
68
+ * @param isFile Whether the target is a file
69
+ * @param includeTests Whether to include test files
70
+ * @returns Array of file paths to review
71
+ */
72
+ export declare function getFilesToReview(targetPath: string, isFile: boolean, includeTests?: boolean, excludePatterns?: string[]): Promise<string[]>;