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,294 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Review context for maintaining state between review passes.
4
+ *
5
+ * This module provides a class for maintaining context between multiple review passes.
6
+ * It stores information about the review, including file metadata, important code elements,
7
+ * and findings from previous passes.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ exports.ReviewContext = exports.CodeElementType = void 0;
11
+ /**
12
+ * Type of code element tracked in the context
13
+ */
14
+ var CodeElementType;
15
+ (function (CodeElementType) {
16
+ CodeElementType["Function"] = "function";
17
+ CodeElementType["Class"] = "class";
18
+ CodeElementType["Interface"] = "interface";
19
+ CodeElementType["Variable"] = "variable";
20
+ CodeElementType["Import"] = "import";
21
+ CodeElementType["ExportedItem"] = "exported";
22
+ CodeElementType["Component"] = "component";
23
+ CodeElementType["EntryPoint"] = "entryPoint";
24
+ })(CodeElementType || (exports.CodeElementType = CodeElementType = {}));
25
+ /**
26
+ * Context for multi-pass reviews
27
+ */
28
+ class ReviewContext {
29
+ /** Project name */
30
+ projectName;
31
+ /** Review type */
32
+ reviewType;
33
+ /** All files involved in the review */
34
+ allFiles;
35
+ /** Current pass number */
36
+ currentPass;
37
+ /** Important code elements tracked across passes */
38
+ codeElements;
39
+ /** Findings from previous passes */
40
+ findings;
41
+ /** File summaries from previous passes */
42
+ fileSummaries;
43
+ /** General notes about the codebase */
44
+ generalNotes;
45
+ /** Timestamp when context was created */
46
+ createdAt;
47
+ /** Timestamp of last update */
48
+ updatedAt;
49
+ /**
50
+ * Create a new review context
51
+ * @param projectName Name of the project
52
+ * @param reviewType Type of review
53
+ * @param files Files involved in the review
54
+ */
55
+ constructor(projectName, reviewType, files) {
56
+ this.projectName = projectName;
57
+ this.reviewType = reviewType;
58
+ this.allFiles = files.map((f) => f.path);
59
+ this.currentPass = 0;
60
+ this.codeElements = new Map();
61
+ this.findings = [];
62
+ this.fileSummaries = new Map();
63
+ this.generalNotes = [];
64
+ this.createdAt = new Date();
65
+ this.updatedAt = new Date();
66
+ }
67
+ /**
68
+ * Start a new review pass
69
+ * @returns Updated pass number
70
+ */
71
+ startPass() {
72
+ this.currentPass++;
73
+ this.updatedAt = new Date();
74
+ return this.currentPass;
75
+ }
76
+ /**
77
+ * Get the current pass number
78
+ * @returns Current pass number
79
+ */
80
+ getCurrentPass() {
81
+ return this.currentPass;
82
+ }
83
+ /**
84
+ * Add a code element to the context
85
+ * @param element Code element to add
86
+ */
87
+ addCodeElement(element) {
88
+ const key = `${element.type}:${element.file}:${element.name}`;
89
+ this.codeElements.set(key, element);
90
+ this.updatedAt = new Date();
91
+ }
92
+ /**
93
+ * Get all tracked code elements
94
+ * @returns Array of code elements
95
+ */
96
+ getCodeElements() {
97
+ return Array.from(this.codeElements.values());
98
+ }
99
+ /**
100
+ * Get code elements of a specific type
101
+ * @param type Type of code elements to get
102
+ * @returns Array of code elements of the specified type
103
+ */
104
+ getCodeElementsByType(type) {
105
+ return this.getCodeElements().filter((el) => el.type === type);
106
+ }
107
+ /**
108
+ * Get code elements in a specific file
109
+ * @param filePath Path of the file
110
+ * @returns Array of code elements in the file
111
+ */
112
+ getCodeElementsInFile(filePath) {
113
+ return this.getCodeElements().filter((el) => el.file === filePath);
114
+ }
115
+ /**
116
+ * Add a review finding
117
+ * @param finding Review finding to add
118
+ */
119
+ addFinding(finding) {
120
+ this.findings.push({
121
+ ...finding,
122
+ passNumber: this.currentPass,
123
+ });
124
+ this.updatedAt = new Date();
125
+ }
126
+ /**
127
+ * Get all findings
128
+ * @returns Array of all findings
129
+ */
130
+ getFindings() {
131
+ return [...this.findings];
132
+ }
133
+ /**
134
+ * Add or update a file summary
135
+ * @param summary File summary to add
136
+ */
137
+ addFileSummary(summary) {
138
+ this.fileSummaries.set(summary.path, {
139
+ ...summary,
140
+ passNumber: this.currentPass,
141
+ });
142
+ this.updatedAt = new Date();
143
+ }
144
+ /**
145
+ * Get summary for a specific file
146
+ * @param filePath Path of the file
147
+ * @returns File summary or undefined if not found
148
+ */
149
+ getFileSummary(filePath) {
150
+ return this.fileSummaries.get(filePath);
151
+ }
152
+ /**
153
+ * Get summaries for all files
154
+ * @returns Array of file summaries
155
+ */
156
+ getAllFileSummaries() {
157
+ return Array.from(this.fileSummaries.values());
158
+ }
159
+ /**
160
+ * Add a general note about the codebase
161
+ * @param note Note to add
162
+ */
163
+ addGeneralNote(note) {
164
+ this.generalNotes.push(note);
165
+ this.updatedAt = new Date();
166
+ }
167
+ /**
168
+ * Get all general notes
169
+ * @returns Array of general notes
170
+ */
171
+ getGeneralNotes() {
172
+ return [...this.generalNotes];
173
+ }
174
+ /**
175
+ * Generate a contextual prompt for the next pass
176
+ * @param files Files to include in the next pass
177
+ * @param maxContextLength Maximum length of context in characters
178
+ * @returns Formatted context string for inclusion in the next prompt
179
+ */
180
+ generateNextPassContext(files, maxContextLength = 2000) {
181
+ let context = `
182
+ ### Review Context (Pass ${this.currentPass})
183
+
184
+ Project: ${this.projectName}
185
+ Review Type: ${this.reviewType}
186
+ Files in this pass: ${files.length} / ${this.allFiles.length}
187
+
188
+ `;
189
+ // Add important findings from previous passes
190
+ const importantFindings = this.findings.sort((a, b) => b.severity - a.severity).slice(0, 5);
191
+ if (importantFindings.length > 0) {
192
+ context += '#### Key Findings from Previous Passes\n\n';
193
+ importantFindings.forEach((finding) => {
194
+ context += `- [${finding.type.toUpperCase()}] ${finding.description}${finding.file ? ` (in ${finding.file})` : ''}\n`;
195
+ });
196
+ context += '\n';
197
+ }
198
+ // Add summaries of files that are related but not in this pass
199
+ const relatedFiles = this.getAllFileSummaries()
200
+ .filter((summary) => !files.includes(summary.path))
201
+ .slice(0, 5);
202
+ if (relatedFiles.length > 0) {
203
+ context += '#### Related Files (Not in This Pass)\n\n';
204
+ relatedFiles.forEach((file) => {
205
+ context += `- ${file.path}: ${file.description}\n`;
206
+ if (file.keyElements.length > 0) {
207
+ context += ` Key elements: ${file.keyElements.join(', ')}\n`;
208
+ }
209
+ });
210
+ context += '\n';
211
+ }
212
+ // Add important code elements relevant to this pass
213
+ const relevantElements = this.getCodeElements()
214
+ .filter((el) => files.includes(el.file) || el.importance > 7)
215
+ .sort((a, b) => b.importance - a.importance)
216
+ .slice(0, 10);
217
+ if (relevantElements.length > 0) {
218
+ context += '#### Important Code Elements\n\n';
219
+ relevantElements.forEach((element) => {
220
+ context += `- ${element.type} \`${element.name}\`${element.signature ? `: ${element.signature}` : ''} (in ${element.file})\n`;
221
+ });
222
+ context += '\n';
223
+ }
224
+ // Add general notes
225
+ if (this.generalNotes.length > 0) {
226
+ context += '#### General Notes\n\n';
227
+ this.generalNotes.slice(0, 3).forEach((note) => {
228
+ context += `- ${note}\n`;
229
+ });
230
+ context += '\n';
231
+ }
232
+ // Truncate if too long
233
+ if (context.length > maxContextLength) {
234
+ context = `${context.substring(0, maxContextLength - 3)}...`;
235
+ }
236
+ return context;
237
+ }
238
+ /**
239
+ * Serialize the context to JSON
240
+ * @returns JSON representation of the context
241
+ */
242
+ toJSON() {
243
+ return {
244
+ projectName: this.projectName,
245
+ reviewType: this.reviewType,
246
+ currentPass: this.currentPass,
247
+ codeElements: Array.from(this.codeElements.values()),
248
+ findings: this.findings,
249
+ fileSummaries: Array.from(this.fileSummaries.values()),
250
+ generalNotes: this.generalNotes,
251
+ createdAt: this.createdAt.toISOString(),
252
+ updatedAt: this.updatedAt.toISOString(),
253
+ };
254
+ }
255
+ /**
256
+ * Create a review context from JSON
257
+ * @param json JSON object
258
+ * @returns New ReviewContext instance
259
+ */
260
+ static fromJSON(json) {
261
+ const context = new ReviewContext(json.projectName, json.reviewType, json.allFiles || []);
262
+ context.currentPass = json.currentPass || 0;
263
+ // Restore code elements
264
+ if (Array.isArray(json.codeElements)) {
265
+ json.codeElements.forEach((element) => {
266
+ context.addCodeElement(element);
267
+ });
268
+ }
269
+ // Restore findings
270
+ if (Array.isArray(json.findings)) {
271
+ context.findings = json.findings;
272
+ }
273
+ // Restore file summaries
274
+ if (Array.isArray(json.fileSummaries)) {
275
+ json.fileSummaries.forEach((summary) => {
276
+ context.fileSummaries.set(summary.path, summary);
277
+ });
278
+ }
279
+ // Restore general notes
280
+ if (Array.isArray(json.generalNotes)) {
281
+ context.generalNotes = json.generalNotes;
282
+ }
283
+ // Restore timestamps
284
+ if (json.createdAt) {
285
+ context.createdAt = new Date(json.createdAt);
286
+ }
287
+ if (json.updatedAt) {
288
+ context.updatedAt = new Date(json.updatedAt);
289
+ }
290
+ return context;
291
+ }
292
+ }
293
+ exports.ReviewContext = ReviewContext;
294
+ //# sourceMappingURL=ReviewContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReviewContext.js","sourceRoot":"","sources":["../../../src/analysis/context/ReviewContext.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Context management exports.
3
+ *
4
+ * This module exports all context management related functions and types.
5
+ */
6
+ export * from './ReviewContext';
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Context management exports.
4
+ *
5
+ * This module exports all context management related functions and types.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ __exportStar(require("./ReviewContext"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analysis/context/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,kDAAgC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview Analysis module exports.
3
+ *
4
+ * This module exports all analysis related functions and types.
5
+ */
6
+ export * from './context';
7
+ export * from './tokens';
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Analysis module exports.
4
+ *
5
+ * This module exports all analysis related functions and types.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ Object.defineProperty(exports, "__esModule", { value: true });
22
+ __exportStar(require("./context"), exports);
23
+ __exportStar(require("./tokens"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/analysis/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,4CAA0B;AAC1B,2CAAyB"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * @fileoverview Formatter for token analysis results.
3
+ *
4
+ * This module provides utilities for formatting token analysis results into
5
+ * human-readable strings and other formats for display or logging.
6
+ */
7
+ import type { FileTokenAnalysis, TokenAnalysisResult } from './TokenAnalyzer';
8
+ /**
9
+ * Format token analysis result as a human-readable string
10
+ * @param analysis Token analysis result
11
+ * @param modelName Name of the model used
12
+ * @param includedFiles Whether to include detailed file listing
13
+ * @returns Formatted string representation of the analysis
14
+ */
15
+ export declare function formatTokenAnalysis(analysis: TokenAnalysisResult, modelName: string, includeFiles?: boolean): string;
16
+ /**
17
+ * Format token analysis result as JSON
18
+ * @param analysis Token analysis result
19
+ * @returns JSON string representation of the analysis
20
+ */
21
+ export declare function formatTokenAnalysisAsJson(analysis: TokenAnalysisResult): string;
22
+ /**
23
+ * Format a single file token analysis as a string
24
+ * @param fileAnalysis File token analysis
25
+ * @returns Formatted string representation of the file analysis
26
+ */
27
+ export declare function formatFileTokenAnalysis(fileAnalysis: FileTokenAnalysis): string;
@@ -0,0 +1,143 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Formatter for token analysis results.
4
+ *
5
+ * This module provides utilities for formatting token analysis results into
6
+ * human-readable strings and other formats for display or logging.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.formatTokenAnalysis = formatTokenAnalysis;
10
+ exports.formatTokenAnalysisAsJson = formatTokenAnalysisAsJson;
11
+ exports.formatFileTokenAnalysis = formatFileTokenAnalysis;
12
+ /**
13
+ * Format a number with commas as thousands separators
14
+ * @param num Number to format
15
+ * @returns Formatted number string
16
+ */
17
+ function formatNumber(num) {
18
+ return num.toLocaleString();
19
+ }
20
+ /**
21
+ * Format a file size in bytes to a human-readable string
22
+ * @param bytes Size in bytes
23
+ * @returns Formatted size string (e.g., "1.23 KB")
24
+ */
25
+ function formatFileSize(bytes) {
26
+ if (bytes < 1024) {
27
+ return `${bytes} B`;
28
+ }
29
+ if (bytes < 1024 * 1024) {
30
+ return `${(bytes / 1024).toFixed(2)} KB`;
31
+ }
32
+ return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;
33
+ }
34
+ /**
35
+ * Format token analysis result as a human-readable string
36
+ * @param analysis Token analysis result
37
+ * @param modelName Name of the model used
38
+ * @param includedFiles Whether to include detailed file listing
39
+ * @returns Formatted string representation of the analysis
40
+ */
41
+ function formatTokenAnalysis(analysis, modelName, includeFiles = false) {
42
+ // Extract provider and model from both colon and slash formats
43
+ // Handle formats: "provider:model", "provider/model", or just "model"
44
+ let provider;
45
+ let model;
46
+ if (modelName.includes(':')) {
47
+ // Traditional format: "provider:model"
48
+ [provider, model] = modelName.split(':', 2);
49
+ }
50
+ else if (modelName.includes('/')) {
51
+ // OpenRouter format: "provider/model"
52
+ [provider, model] = modelName.split('/', 2);
53
+ }
54
+ else {
55
+ // Just model name
56
+ provider = undefined;
57
+ model = modelName;
58
+ }
59
+ const displayModel = model || modelName;
60
+ const displayProvider = provider
61
+ ? `${provider.charAt(0).toUpperCase() + provider.slice(1)}`
62
+ : 'Unknown';
63
+ let output = `
64
+ === Token Analysis Report ===
65
+
66
+ Provider: ${displayProvider}
67
+ Model: ${displayModel}
68
+ Files: ${formatNumber(analysis.fileCount)} (${formatFileSize(analysis.totalSizeInBytes)})
69
+
70
+ Token Information:
71
+ Content Tokens: ${formatNumber(analysis.totalTokens)}
72
+ Prompt Overhead: ${formatNumber(analysis.promptOverheadTokens)}
73
+ Total Estimated Tokens: ${formatNumber(analysis.estimatedTotalTokens)}
74
+ Context Window Size: ${formatNumber(analysis.contextWindowSize)}
75
+
76
+ Context Utilization:
77
+ ${((analysis.estimatedTotalTokens / analysis.contextWindowSize) * 100).toFixed(2)}% of context window used
78
+
79
+ `;
80
+ // Add chunking information if recommended
81
+ if (analysis.chunkingRecommendation.chunkingRecommended) {
82
+ output += `
83
+ Multi-Pass Analysis:
84
+ Chunking Required: Yes
85
+ Reason: ${analysis.chunkingRecommendation.reason}
86
+ Estimated Passes: ${formatNumber(analysis.estimatedPassesNeeded)}
87
+ `;
88
+ // Add chunk details
89
+ analysis.chunkingRecommendation.recommendedChunks.forEach((chunk, index) => {
90
+ output += `
91
+ Chunk ${index + 1}:
92
+ Files: ${formatNumber(chunk.files.length)}
93
+ Estimated Tokens: ${formatNumber(chunk.estimatedTokenCount)}
94
+ Priority: ${chunk.priority}
95
+ `;
96
+ });
97
+ }
98
+ else {
99
+ output += `
100
+ Multi-Pass Analysis:
101
+ Chunking Required: No
102
+ Reason: ${analysis.chunkingRecommendation.reason}
103
+ `;
104
+ }
105
+ // Add file details if requested
106
+ if (includeFiles) {
107
+ output += `
108
+ File Details:
109
+ `;
110
+ // Sort files by token count (largest first)
111
+ const sortedFiles = [...analysis.files].sort((a, b) => b.tokenCount - a.tokenCount);
112
+ sortedFiles.forEach((file) => {
113
+ output += ` ${file.relativePath}:
114
+ Tokens: ${formatNumber(file.tokenCount)}
115
+ Size: ${formatFileSize(file.sizeInBytes)}
116
+ Tokens/Byte: ${file.tokensPerByte.toFixed(2)}
117
+ `;
118
+ });
119
+ }
120
+ return output;
121
+ }
122
+ /**
123
+ * Format token analysis result as JSON
124
+ * @param analysis Token analysis result
125
+ * @returns JSON string representation of the analysis
126
+ */
127
+ function formatTokenAnalysisAsJson(analysis) {
128
+ return JSON.stringify(analysis, null, 2);
129
+ }
130
+ /**
131
+ * Format a single file token analysis as a string
132
+ * @param fileAnalysis File token analysis
133
+ * @returns Formatted string representation of the file analysis
134
+ */
135
+ function formatFileTokenAnalysis(fileAnalysis) {
136
+ return `
137
+ File: ${fileAnalysis.relativePath}
138
+ Tokens: ${formatNumber(fileAnalysis.tokenCount)}
139
+ Size: ${formatFileSize(fileAnalysis.sizeInBytes)}
140
+ Tokens/Byte: ${fileAnalysis.tokensPerByte.toFixed(2)}
141
+ `;
142
+ }
143
+ //# sourceMappingURL=TokenAnalysisFormatter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenAnalysisFormatter.js","sourceRoot":"","sources":["../../../src/analysis/tokens/TokenAnalysisFormatter.ts"],"names":[],"mappings":"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"}