codereview-aia 0.2.0 → 0.2.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 (435) hide show
  1. package/dist/index.js +0 -7
  2. package/dist/index.js.map +1 -1
  3. package/dist/runtime/api/batcher.d.ts +20 -0
  4. package/dist/runtime/api/batcher.js +52 -0
  5. package/dist/runtime/api/batcher.js.map +1 -0
  6. package/dist/runtime/api/edgeClient.d.ts +102 -0
  7. package/dist/runtime/api/edgeClient.js +162 -0
  8. package/dist/runtime/api/edgeClient.js.map +1 -0
  9. package/dist/runtime/api/index.d.ts +2 -0
  10. package/dist/runtime/api/index.js +9 -0
  11. package/dist/runtime/api/index.js.map +1 -0
  12. package/dist/runtime/cliEntry.js +24 -76
  13. package/dist/runtime/cliEntry.js.map +1 -1
  14. package/dist/runtime/errors.d.ts +13 -3
  15. package/dist/runtime/errors.js +31 -8
  16. package/dist/runtime/errors.js.map +1 -1
  17. package/dist/runtime/llm/index.d.ts +1 -0
  18. package/dist/runtime/llm/index.js +6 -0
  19. package/dist/runtime/llm/index.js.map +1 -0
  20. package/dist/runtime/llm/openRouterClient.d.ts +13 -0
  21. package/dist/runtime/llm/openRouterClient.js +187 -0
  22. package/dist/runtime/llm/openRouterClient.js.map +1 -0
  23. package/dist/runtime/phpFileResolver.d.ts +14 -0
  24. package/dist/runtime/phpFileResolver.js +231 -0
  25. package/dist/runtime/phpFileResolver.js.map +1 -0
  26. package/dist/runtime/phpcsParser.d.ts +10 -0
  27. package/dist/runtime/phpcsParser.js +35 -0
  28. package/dist/runtime/phpcsParser.js.map +1 -0
  29. package/dist/runtime/phpcsRunner.d.ts +32 -0
  30. package/dist/runtime/phpcsRunner.js +62 -0
  31. package/dist/runtime/phpcsRunner.js.map +1 -0
  32. package/dist/runtime/reportWriter.d.ts +17 -0
  33. package/dist/runtime/reportWriter.js +80 -0
  34. package/dist/runtime/reportWriter.js.map +1 -0
  35. package/dist/runtime/reviewPipeline.d.ts +14 -36
  36. package/dist/runtime/reviewPipeline.js +146 -199
  37. package/dist/runtime/reviewPipeline.js.map +1 -1
  38. package/dist/runtime/ui/RuntimeApp.js +23 -154
  39. package/dist/runtime/ui/RuntimeApp.js.map +1 -1
  40. package/dist/runtime/ui/screens/AuthScreen.d.ts +2 -3
  41. package/dist/runtime/ui/screens/AuthScreen.js +7 -53
  42. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -1
  43. package/dist/runtime/ui/screens/ModeSelection.d.ts +1 -2
  44. package/dist/runtime/ui/screens/ModeSelection.js +14 -139
  45. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -1
  46. package/dist/runtime/ui/screens/ProgressScreen.d.ts +5 -13
  47. package/dist/runtime/ui/screens/ProgressScreen.js +24 -61
  48. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -1
  49. package/dist/runtime/ui/screens/ResultsScreen.js +7 -17
  50. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -1
  51. package/package.json +4 -44
  52. package/dist/analysis/FindingsExtractor.d.ts +0 -105
  53. package/dist/analysis/FindingsExtractor.js +0 -363
  54. package/dist/analysis/FindingsExtractor.js.map +0 -1
  55. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +0 -111
  56. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +0 -215
  57. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +0 -1
  58. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +0 -142
  59. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +0 -503
  60. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +0 -1
  61. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +0 -88
  62. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +0 -343
  63. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +0 -1
  64. package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +0 -104
  65. package/dist/analysis/ai-detection/core/AIDetectionEngine.js +0 -369
  66. package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +0 -1
  67. package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +0 -364
  68. package/dist/analysis/ai-detection/types/DetectionTypes.js +0 -32
  69. package/dist/analysis/ai-detection/types/DetectionTypes.js.map +0 -1
  70. package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +0 -97
  71. package/dist/analysis/ai-detection/utils/SubmissionConverter.js +0 -339
  72. package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +0 -1
  73. package/dist/analysis/context/ReviewContext.d.ts +0 -184
  74. package/dist/analysis/context/ReviewContext.js +0 -294
  75. package/dist/analysis/context/ReviewContext.js.map +0 -1
  76. package/dist/analysis/context/index.d.ts +0 -6
  77. package/dist/analysis/context/index.js +0 -23
  78. package/dist/analysis/context/index.js.map +0 -1
  79. package/dist/analysis/index.d.ts +0 -7
  80. package/dist/analysis/index.js +0 -24
  81. package/dist/analysis/index.js.map +0 -1
  82. package/dist/analysis/static/wpPhpcsRunner.d.ts +0 -11
  83. package/dist/analysis/static/wpPhpcsRunner.js +0 -219
  84. package/dist/analysis/static/wpPhpcsRunner.js.map +0 -1
  85. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +0 -27
  86. package/dist/analysis/tokens/TokenAnalysisFormatter.js +0 -143
  87. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +0 -1
  88. package/dist/analysis/tokens/TokenAnalyzer.d.ts +0 -155
  89. package/dist/analysis/tokens/TokenAnalyzer.js +0 -502
  90. package/dist/analysis/tokens/TokenAnalyzer.js.map +0 -1
  91. package/dist/analysis/tokens/index.d.ts +0 -7
  92. package/dist/analysis/tokens/index.js +0 -24
  93. package/dist/analysis/tokens/index.js.map +0 -1
  94. package/dist/clients/base/abstractClient.d.ts +0 -99
  95. package/dist/clients/base/abstractClient.js +0 -98
  96. package/dist/clients/base/abstractClient.js.map +0 -1
  97. package/dist/clients/base/httpClient.d.ts +0 -24
  98. package/dist/clients/base/httpClient.js +0 -147
  99. package/dist/clients/base/httpClient.js.map +0 -1
  100. package/dist/clients/base/index.d.ts +0 -11
  101. package/dist/clients/base/index.js +0 -28
  102. package/dist/clients/base/index.js.map +0 -1
  103. package/dist/clients/base/modelDetection.d.ts +0 -41
  104. package/dist/clients/base/modelDetection.js +0 -88
  105. package/dist/clients/base/modelDetection.js.map +0 -1
  106. package/dist/clients/base/responseProcessor.d.ts +0 -45
  107. package/dist/clients/base/responseProcessor.js +0 -495
  108. package/dist/clients/base/responseProcessor.js.map +0 -1
  109. package/dist/clients/factory/clientFactory.d.ts +0 -23
  110. package/dist/clients/factory/clientFactory.js +0 -50
  111. package/dist/clients/factory/clientFactory.js.map +0 -1
  112. package/dist/clients/factory/index.d.ts +0 -7
  113. package/dist/clients/factory/index.js +0 -24
  114. package/dist/clients/factory/index.js.map +0 -1
  115. package/dist/clients/implementations/index.d.ts +0 -7
  116. package/dist/clients/implementations/index.js +0 -24
  117. package/dist/clients/implementations/index.js.map +0 -1
  118. package/dist/clients/implementations/openRouterClient.d.ts +0 -69
  119. package/dist/clients/implementations/openRouterClient.js +0 -294
  120. package/dist/clients/implementations/openRouterClient.js.map +0 -1
  121. package/dist/clients/openRouterClient.d.ts +0 -42
  122. package/dist/clients/openRouterClient.js +0 -580
  123. package/dist/clients/openRouterClient.js.map +0 -1
  124. package/dist/clients/openRouterClientWrapper.d.ts +0 -22
  125. package/dist/clients/openRouterClientWrapper.js +0 -64
  126. package/dist/clients/openRouterClientWrapper.js.map +0 -1
  127. package/dist/clients/utils/directoryStructure.d.ts +0 -14
  128. package/dist/clients/utils/directoryStructure.js +0 -48
  129. package/dist/clients/utils/directoryStructure.js.map +0 -1
  130. package/dist/clients/utils/index.d.ts +0 -10
  131. package/dist/clients/utils/index.js +0 -31
  132. package/dist/clients/utils/index.js.map +0 -1
  133. package/dist/clients/utils/languageDetection.d.ts +0 -13
  134. package/dist/clients/utils/languageDetection.js +0 -46
  135. package/dist/clients/utils/languageDetection.js.map +0 -1
  136. package/dist/clients/utils/promptFormatter.d.ts +0 -37
  137. package/dist/clients/utils/promptFormatter.js +0 -150
  138. package/dist/clients/utils/promptFormatter.js.map +0 -1
  139. package/dist/clients/utils/promptLoader.d.ts +0 -27
  140. package/dist/clients/utils/promptLoader.js +0 -49
  141. package/dist/clients/utils/promptLoader.js.map +0 -1
  142. package/dist/clients/utils/tokenCounter.d.ts +0 -81
  143. package/dist/clients/utils/tokenCounter.js +0 -184
  144. package/dist/clients/utils/tokenCounter.js.map +0 -1
  145. package/dist/core/ApiClientSelector.d.ts +0 -8
  146. package/dist/core/ApiClientSelector.js +0 -29
  147. package/dist/core/ApiClientSelector.js.map +0 -1
  148. package/dist/core/ConfigurationService.d.ts +0 -307
  149. package/dist/core/ConfigurationService.js +0 -516
  150. package/dist/core/ConfigurationService.js.map +0 -1
  151. package/dist/core/ConsolidationService.d.ts +0 -99
  152. package/dist/core/ConsolidationService.js +0 -341
  153. package/dist/core/ConsolidationService.js.map +0 -1
  154. package/dist/core/InteractiveDisplayManager.d.ts +0 -22
  155. package/dist/core/InteractiveDisplayManager.js +0 -70
  156. package/dist/core/InteractiveDisplayManager.js.map +0 -1
  157. package/dist/core/OutputManager.d.ts +0 -26
  158. package/dist/core/OutputManager.js +0 -217
  159. package/dist/core/OutputManager.js.map +0 -1
  160. package/dist/core/ReviewGenerator.d.ts +0 -13
  161. package/dist/core/ReviewGenerator.js +0 -102
  162. package/dist/core/ReviewGenerator.js.map +0 -1
  163. package/dist/core/fileDiscovery.d.ts +0 -35
  164. package/dist/core/fileDiscovery.js +0 -202
  165. package/dist/core/fileDiscovery.js.map +0 -1
  166. package/dist/core/handlers/EstimationHandler.d.ts +0 -18
  167. package/dist/core/handlers/EstimationHandler.js +0 -110
  168. package/dist/core/handlers/EstimationHandler.js.map +0 -1
  169. package/dist/core/handlers/FileProcessingHandler.d.ts +0 -31
  170. package/dist/core/handlers/FileProcessingHandler.js +0 -164
  171. package/dist/core/handlers/FileProcessingHandler.js.map +0 -1
  172. package/dist/core/handlers/OutputHandler.d.ts +0 -27
  173. package/dist/core/handlers/OutputHandler.js +0 -127
  174. package/dist/core/handlers/OutputHandler.js.map +0 -1
  175. package/dist/core/handlers/ReviewExecutor.d.ts +0 -32
  176. package/dist/core/handlers/ReviewExecutor.js +0 -111
  177. package/dist/core/handlers/ReviewExecutor.js.map +0 -1
  178. package/dist/core/reviewOrchestrator.d.ts +0 -24
  179. package/dist/core/reviewOrchestrator.js +0 -354
  180. package/dist/core/reviewOrchestrator.js.map +0 -1
  181. package/dist/core/utils/ModelInfoUtils.d.ts +0 -16
  182. package/dist/core/utils/ModelInfoUtils.js +0 -54
  183. package/dist/core/utils/ModelInfoUtils.js.map +0 -1
  184. package/dist/formatters/outputFormatter.d.ts +0 -31
  185. package/dist/formatters/outputFormatter.js +0 -65
  186. package/dist/formatters/outputFormatter.js.map +0 -1
  187. package/dist/formatters/utils/IssueFormatters.d.ts +0 -20
  188. package/dist/formatters/utils/IssueFormatters.js +0 -67
  189. package/dist/formatters/utils/IssueFormatters.js.map +0 -1
  190. package/dist/formatters/utils/JsonFormatter.d.ts +0 -13
  191. package/dist/formatters/utils/JsonFormatter.js +0 -57
  192. package/dist/formatters/utils/JsonFormatter.js.map +0 -1
  193. package/dist/formatters/utils/MarkdownFormatters.d.ts +0 -51
  194. package/dist/formatters/utils/MarkdownFormatters.js +0 -456
  195. package/dist/formatters/utils/MarkdownFormatters.js.map +0 -1
  196. package/dist/formatters/utils/MetadataFormatter.d.ts +0 -65
  197. package/dist/formatters/utils/MetadataFormatter.js +0 -219
  198. package/dist/formatters/utils/MetadataFormatter.js.map +0 -1
  199. package/dist/formatters/utils/ModelInfoExtractor.d.ts +0 -33
  200. package/dist/formatters/utils/ModelInfoExtractor.js +0 -111
  201. package/dist/formatters/utils/ModelInfoExtractor.js.map +0 -1
  202. package/dist/plugins/PluginInterface.d.ts +0 -44
  203. package/dist/plugins/PluginInterface.js +0 -9
  204. package/dist/plugins/PluginInterface.js.map +0 -1
  205. package/dist/plugins/PluginManager.d.ts +0 -51
  206. package/dist/plugins/PluginManager.js +0 -151
  207. package/dist/plugins/PluginManager.js.map +0 -1
  208. package/dist/prompts/PromptManager.d.ts +0 -30
  209. package/dist/prompts/PromptManager.js +0 -62
  210. package/dist/prompts/PromptManager.js.map +0 -1
  211. package/dist/prompts/cache/PromptCache.d.ts +0 -32
  212. package/dist/prompts/cache/PromptCache.js +0 -48
  213. package/dist/prompts/cache/PromptCache.js.map +0 -1
  214. package/dist/runtime/auth/service.d.ts +0 -2
  215. package/dist/runtime/auth/service.js +0 -41
  216. package/dist/runtime/auth/service.js.map +0 -1
  217. package/dist/runtime/auth/session.d.ts +0 -5
  218. package/dist/runtime/auth/session.js +0 -87
  219. package/dist/runtime/auth/session.js.map +0 -1
  220. package/dist/runtime/auth/types.d.ts +0 -9
  221. package/dist/runtime/auth/types.js +0 -3
  222. package/dist/runtime/auth/types.js.map +0 -1
  223. package/dist/runtime/fileCollector.d.ts +0 -14
  224. package/dist/runtime/fileCollector.js +0 -381
  225. package/dist/runtime/fileCollector.js.map +0 -1
  226. package/dist/runtime/manifest.d.ts +0 -1
  227. package/dist/runtime/manifest.js +0 -65
  228. package/dist/runtime/manifest.js.map +0 -1
  229. package/dist/runtime/openrouterProxy.d.ts +0 -4
  230. package/dist/runtime/openrouterProxy.js +0 -43
  231. package/dist/runtime/openrouterProxy.js.map +0 -1
  232. package/dist/runtime/preprod/batchStreamer.d.ts +0 -54
  233. package/dist/runtime/preprod/batchStreamer.js +0 -159
  234. package/dist/runtime/preprod/batchStreamer.js.map +0 -1
  235. package/dist/runtime/preprod/crEdgeServiceClient.d.ts +0 -30
  236. package/dist/runtime/preprod/crEdgeServiceClient.js +0 -133
  237. package/dist/runtime/preprod/crEdgeServiceClient.js.map +0 -1
  238. package/dist/runtime/preprod/progressTracker.d.ts +0 -21
  239. package/dist/runtime/preprod/progressTracker.js +0 -80
  240. package/dist/runtime/preprod/progressTracker.js.map +0 -1
  241. package/dist/runtime/preprod/webCheck.d.ts +0 -1
  242. package/dist/runtime/preprod/webCheck.js +0 -102
  243. package/dist/runtime/preprod/webCheck.js.map +0 -1
  244. package/dist/runtime/proxyConfig.d.ts +0 -6
  245. package/dist/runtime/proxyConfig.js +0 -86
  246. package/dist/runtime/proxyConfig.js.map +0 -1
  247. package/dist/runtime/proxyEnvironment.d.ts +0 -3
  248. package/dist/runtime/proxyEnvironment.js +0 -63
  249. package/dist/runtime/proxyEnvironment.js.map +0 -1
  250. package/dist/runtime/reportMerge.d.ts +0 -30
  251. package/dist/runtime/reportMerge.js +0 -70
  252. package/dist/runtime/reportMerge.js.map +0 -1
  253. package/dist/runtime/reporting/markdownReportBuilder.d.ts +0 -17
  254. package/dist/runtime/reporting/markdownReportBuilder.js +0 -154
  255. package/dist/runtime/reporting/markdownReportBuilder.js.map +0 -1
  256. package/dist/runtime/reporting/reportDataCollector.d.ts +0 -31
  257. package/dist/runtime/reporting/reportDataCollector.js +0 -170
  258. package/dist/runtime/reporting/reportDataCollector.js.map +0 -1
  259. package/dist/runtime/reporting/summaryGenerator.d.ts +0 -10
  260. package/dist/runtime/reporting/summaryGenerator.js +0 -67
  261. package/dist/runtime/reporting/summaryGenerator.js.map +0 -1
  262. package/dist/runtime/runAiCodeReview.d.ts +0 -36
  263. package/dist/runtime/runAiCodeReview.js +0 -409
  264. package/dist/runtime/runAiCodeReview.js.map +0 -1
  265. package/dist/runtime/runtimeConfig.d.ts +0 -4
  266. package/dist/runtime/runtimeConfig.js +0 -7
  267. package/dist/runtime/runtimeConfig.js.map +0 -1
  268. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +0 -29
  269. package/dist/strategies/ArchitecturalReviewStrategy.js +0 -42
  270. package/dist/strategies/ArchitecturalReviewStrategy.js.map +0 -1
  271. package/dist/strategies/CodingTestReviewStrategy.d.ts +0 -194
  272. package/dist/strategies/CodingTestReviewStrategy.js +0 -681
  273. package/dist/strategies/CodingTestReviewStrategy.js.map +0 -1
  274. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +0 -25
  275. package/dist/strategies/ConsolidatedReviewStrategy.js +0 -45
  276. package/dist/strategies/ConsolidatedReviewStrategy.js.map +0 -1
  277. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +0 -30
  278. package/dist/strategies/ExtractPatternsReviewStrategy.js +0 -51
  279. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +0 -1
  280. package/dist/strategies/MultiPassReviewStrategy.d.ts +0 -86
  281. package/dist/strategies/MultiPassReviewStrategy.js +0 -590
  282. package/dist/strategies/MultiPassReviewStrategy.js.map +0 -1
  283. package/dist/strategies/ReviewStrategy.d.ts +0 -45
  284. package/dist/strategies/ReviewStrategy.js +0 -24
  285. package/dist/strategies/ReviewStrategy.js.map +0 -1
  286. package/dist/strategies/StrategyFactory.d.ts +0 -19
  287. package/dist/strategies/StrategyFactory.js +0 -72
  288. package/dist/strategies/StrategyFactory.js.map +0 -1
  289. package/dist/strategies/index.d.ts +0 -13
  290. package/dist/strategies/index.js +0 -30
  291. package/dist/strategies/index.js.map +0 -1
  292. package/dist/tokenizers/baseTokenizer.d.ts +0 -25
  293. package/dist/tokenizers/baseTokenizer.js +0 -48
  294. package/dist/tokenizers/baseTokenizer.js.map +0 -1
  295. package/dist/tokenizers/gptTokenizer.d.ts +0 -7
  296. package/dist/tokenizers/gptTokenizer.js +0 -28
  297. package/dist/tokenizers/gptTokenizer.js.map +0 -1
  298. package/dist/tokenizers/index.d.ts +0 -7
  299. package/dist/tokenizers/index.js +0 -24
  300. package/dist/tokenizers/index.js.map +0 -1
  301. package/dist/types/apiResponses.d.ts +0 -39
  302. package/dist/types/apiResponses.js +0 -9
  303. package/dist/types/apiResponses.js.map +0 -1
  304. package/dist/types/cli.d.ts +0 -22
  305. package/dist/types/cli.js +0 -3
  306. package/dist/types/cli.js.map +0 -1
  307. package/dist/types/common.d.ts +0 -22
  308. package/dist/types/common.js +0 -14
  309. package/dist/types/common.js.map +0 -1
  310. package/dist/types/configuration.d.ts +0 -682
  311. package/dist/types/configuration.js +0 -65
  312. package/dist/types/configuration.js.map +0 -1
  313. package/dist/types/review.d.ts +0 -318
  314. package/dist/types/review.js +0 -8
  315. package/dist/types/review.js.map +0 -1
  316. package/dist/types/reviewSchema.d.ts +0 -543
  317. package/dist/types/reviewSchema.js +0 -121
  318. package/dist/types/reviewSchema.js.map +0 -1
  319. package/dist/types/structuredReview.d.ts +0 -119
  320. package/dist/types/structuredReview.js +0 -6
  321. package/dist/types/structuredReview.js.map +0 -1
  322. package/dist/types/tokenAnalysis.d.ts +0 -44
  323. package/dist/types/tokenAnalysis.js +0 -4
  324. package/dist/types/tokenAnalysis.js.map +0 -1
  325. package/dist/utils/FileReader.d.ts +0 -33
  326. package/dist/utils/FileReader.js +0 -88
  327. package/dist/utils/FileReader.js.map +0 -1
  328. package/dist/utils/FileWriter.d.ts +0 -26
  329. package/dist/utils/FileWriter.js +0 -76
  330. package/dist/utils/FileWriter.js.map +0 -1
  331. package/dist/utils/PathGenerator.d.ts +0 -30
  332. package/dist/utils/PathGenerator.js +0 -82
  333. package/dist/utils/PathGenerator.js.map +0 -1
  334. package/dist/utils/api/apiUtils.d.ts +0 -3
  335. package/dist/utils/api/apiUtils.js +0 -20
  336. package/dist/utils/api/apiUtils.js.map +0 -1
  337. package/dist/utils/api/index.d.ts +0 -1
  338. package/dist/utils/api/index.js +0 -18
  339. package/dist/utils/api/index.js.map +0 -1
  340. package/dist/utils/apiErrorHandler.d.ts +0 -130
  341. package/dist/utils/apiErrorHandler.js +0 -256
  342. package/dist/utils/apiErrorHandler.js.map +0 -1
  343. package/dist/utils/ciDataCollector.d.ts +0 -51
  344. package/dist/utils/ciDataCollector.js +0 -197
  345. package/dist/utils/ciDataCollector.js.map +0 -1
  346. package/dist/utils/codingTestConfigLoader.d.ts +0 -66
  347. package/dist/utils/codingTestConfigLoader.js +0 -420
  348. package/dist/utils/codingTestConfigLoader.js.map +0 -1
  349. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +0 -30
  350. package/dist/utils/dependencies/aiDependencyAnalyzer.js +0 -343
  351. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +0 -1
  352. package/dist/utils/detection/frameworkDetector.d.ts +0 -43
  353. package/dist/utils/detection/frameworkDetector.js +0 -850
  354. package/dist/utils/detection/frameworkDetector.js.map +0 -1
  355. package/dist/utils/detection/index.d.ts +0 -9
  356. package/dist/utils/detection/index.js +0 -28
  357. package/dist/utils/detection/index.js.map +0 -1
  358. package/dist/utils/detection/projectTypeDetector.d.ts +0 -27
  359. package/dist/utils/detection/projectTypeDetector.js +0 -469
  360. package/dist/utils/detection/projectTypeDetector.js.map +0 -1
  361. package/dist/utils/diagramGenerator.d.ts +0 -49
  362. package/dist/utils/diagramGenerator.js +0 -218
  363. package/dist/utils/diagramGenerator.js.map +0 -1
  364. package/dist/utils/errorLogger.d.ts +0 -24
  365. package/dist/utils/errorLogger.js +0 -59
  366. package/dist/utils/errorLogger.js.map +0 -1
  367. package/dist/utils/estimationUtils.d.ts +0 -139
  368. package/dist/utils/estimationUtils.js +0 -329
  369. package/dist/utils/estimationUtils.js.map +0 -1
  370. package/dist/utils/fileFilters.d.ts +0 -72
  371. package/dist/utils/fileFilters.js +0 -338
  372. package/dist/utils/fileFilters.js.map +0 -1
  373. package/dist/utils/fileSystem.d.ts +0 -22
  374. package/dist/utils/fileSystem.js +0 -45
  375. package/dist/utils/fileSystem.js.map +0 -1
  376. package/dist/utils/index.d.ts +0 -22
  377. package/dist/utils/index.js +0 -52
  378. package/dist/utils/index.js.map +0 -1
  379. package/dist/utils/pathValidator.d.ts +0 -40
  380. package/dist/utils/pathValidator.js +0 -98
  381. package/dist/utils/pathValidator.js.map +0 -1
  382. package/dist/utils/priorityFilter.d.ts +0 -34
  383. package/dist/utils/priorityFilter.js +0 -54
  384. package/dist/utils/priorityFilter.js.map +0 -1
  385. package/dist/utils/projectDocs.d.ts +0 -47
  386. package/dist/utils/projectDocs.js +0 -158
  387. package/dist/utils/projectDocs.js.map +0 -1
  388. package/dist/utils/promptPaths.d.ts +0 -6
  389. package/dist/utils/promptPaths.js +0 -33
  390. package/dist/utils/promptPaths.js.map +0 -1
  391. package/dist/utils/promptTemplateManager.d.ts +0 -34
  392. package/dist/utils/promptTemplateManager.js +0 -141
  393. package/dist/utils/promptTemplateManager.js.map +0 -1
  394. package/dist/utils/review/consolidateReview.d.ts +0 -15
  395. package/dist/utils/review/consolidateReview.js +0 -481
  396. package/dist/utils/review/consolidateReview.js.map +0 -1
  397. package/dist/utils/review/fixDisplay.d.ts +0 -20
  398. package/dist/utils/review/fixDisplay.js +0 -84
  399. package/dist/utils/review/fixDisplay.js.map +0 -1
  400. package/dist/utils/review/fixImplementation.d.ts +0 -28
  401. package/dist/utils/review/fixImplementation.js +0 -60
  402. package/dist/utils/review/fixImplementation.js.map +0 -1
  403. package/dist/utils/review/index.d.ts +0 -13
  404. package/dist/utils/review/index.js +0 -50
  405. package/dist/utils/review/index.js.map +0 -1
  406. package/dist/utils/review/interactiveProcessing.d.ts +0 -25
  407. package/dist/utils/review/interactiveProcessing.js +0 -251
  408. package/dist/utils/review/interactiveProcessing.js.map +0 -1
  409. package/dist/utils/review/progressTracker.d.ts +0 -106
  410. package/dist/utils/review/progressTracker.js +0 -227
  411. package/dist/utils/review/progressTracker.js.map +0 -1
  412. package/dist/utils/review/reviewExtraction.d.ts +0 -31
  413. package/dist/utils/review/reviewExtraction.js +0 -324
  414. package/dist/utils/review/reviewExtraction.js.map +0 -1
  415. package/dist/utils/review/types.d.ts +0 -45
  416. package/dist/utils/review/types.js +0 -18
  417. package/dist/utils/review/types.js.map +0 -1
  418. package/dist/utils/reviewActionHandler.d.ts +0 -16
  419. package/dist/utils/reviewActionHandler.js +0 -34
  420. package/dist/utils/reviewActionHandler.js.map +0 -1
  421. package/dist/utils/reviewParser.d.ts +0 -34
  422. package/dist/utils/reviewParser.js +0 -218
  423. package/dist/utils/reviewParser.js.map +0 -1
  424. package/dist/utils/sanitizer.d.ts +0 -82
  425. package/dist/utils/sanitizer.js +0 -239
  426. package/dist/utils/sanitizer.js.map +0 -1
  427. package/dist/utils/smartFileSelector.d.ts +0 -50
  428. package/dist/utils/smartFileSelector.js +0 -261
  429. package/dist/utils/smartFileSelector.js.map +0 -1
  430. package/dist/utils/templateLoader.d.ts +0 -44
  431. package/dist/utils/templateLoader.js +0 -431
  432. package/dist/utils/templateLoader.js.map +0 -1
  433. package/dist/utils/treeGenerator.d.ts +0 -12
  434. package/dist/utils/treeGenerator.js +0 -133
  435. package/dist/utils/treeGenerator.js.map +0 -1
@@ -1,15 +1,38 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MissingCrIgnoreError = void 0;
4
- class MissingCrIgnoreError extends Error {
3
+ exports.NotAGitRepoError = exports.InvalidPhpcsJsonError = exports.NoPhpFilesError = exports.MissingPhpcsError = void 0;
4
+ class MissingPhpcsError extends Error {
5
5
  workspaceRoot;
6
- crIgnorePath;
7
- constructor(workspaceRoot, crIgnorePath) {
8
- super(`cr-aia needs a .crignore file in ${workspaceRoot}. Create one (can be empty, gitignore syntax) and rerun.`);
9
- this.name = 'MissingCrIgnoreError';
6
+ phpcsPath;
7
+ constructor(workspaceRoot, phpcsPath) {
8
+ super(`PHPCS not found at ${phpcsPath}. Install with: composer require --dev squizlabs/php_codesniffer`);
9
+ this.name = 'MissingPhpcsError';
10
10
  this.workspaceRoot = workspaceRoot;
11
- this.crIgnorePath = crIgnorePath;
11
+ this.phpcsPath = phpcsPath;
12
12
  }
13
13
  }
14
- exports.MissingCrIgnoreError = MissingCrIgnoreError;
14
+ exports.MissingPhpcsError = MissingPhpcsError;
15
+ class NoPhpFilesError extends Error {
16
+ constructor() {
17
+ super('No PHP files found for review.');
18
+ this.name = 'NoPhpFilesError';
19
+ }
20
+ }
21
+ exports.NoPhpFilesError = NoPhpFilesError;
22
+ class InvalidPhpcsJsonError extends Error {
23
+ constructor(details) {
24
+ super(details ? `Invalid PHPCS JSON output: ${details}` : 'Invalid PHPCS JSON output.');
25
+ this.name = 'InvalidPhpcsJsonError';
26
+ }
27
+ }
28
+ exports.InvalidPhpcsJsonError = InvalidPhpcsJsonError;
29
+ class NotAGitRepoError extends Error {
30
+ workspaceRoot;
31
+ constructor(workspaceRoot) {
32
+ super(`Not a git repository: ${workspaceRoot}`);
33
+ this.name = 'NotAGitRepoError';
34
+ this.workspaceRoot = workspaceRoot;
35
+ }
36
+ }
37
+ exports.NotAGitRepoError = NotAGitRepoError;
15
38
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/runtime/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,oBAAqB,SAAQ,KAAK;IACpC,aAAa,CAAS;IACtB,YAAY,CAAS;IAE9B,YAAY,aAAqB,EAAE,YAAoB;QACrD,KAAK,CACH,oCAAoC,aAAa,0DAA0D,CAC5G,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;CACF;AAZD,oDAYC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/runtime/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,iBAAkB,SAAQ,KAAK;IACjC,aAAa,CAAS;IACtB,SAAS,CAAS;IAE3B,YAAY,aAAqB,EAAE,SAAiB;QAClD,KAAK,CACH,sBAAsB,SAAS,kEAAkE,CAClG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;CACF;AAZD,8CAYC;AAED,MAAa,eAAgB,SAAQ,KAAK;IACxC;QACE,KAAK,CAAC,gCAAgC,CAAC,CAAC;QACxC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AALD,0CAKC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,OAAgB;QAC1B,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,OAAO,EAAE,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC;QACxF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC;AAED,MAAa,gBAAiB,SAAQ,KAAK;IAChC,aAAa,CAAS;IAE/B,YAAY,aAAqB;QAC/B,KAAK,CAAC,yBAAyB,aAAa,EAAE,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;CACF;AARD,4CAQC"}
@@ -0,0 +1 @@
1
+ export { analyzeWithLlm, type LlmAnalysisInput, type LlmAnalysisResult } from './openRouterClient';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.analyzeWithLlm = void 0;
4
+ var openRouterClient_1 = require("./openRouterClient");
5
+ Object.defineProperty(exports, "analyzeWithLlm", { enumerable: true, get: function () { return openRouterClient_1.analyzeWithLlm; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/runtime/llm/index.ts"],"names":[],"mappings":";;;AAAA,uDAAmG;AAA1F,kHAAA,cAAc,OAAA"}
@@ -0,0 +1,13 @@
1
+ import type { PhpcsJsonReport } from '../phpcsRunner';
2
+ export interface LlmAnalysisInput {
3
+ phpcsJson: PhpcsJsonReport;
4
+ fileContents: Map<string, string>;
5
+ mode: 'uncommitted' | 'prod';
6
+ totalFiles: number;
7
+ }
8
+ export interface LlmAnalysisResult {
9
+ markdownReport: string;
10
+ success: boolean;
11
+ error?: string;
12
+ }
13
+ export declare function analyzeWithLlm(input: LlmAnalysisInput): Promise<LlmAnalysisResult>;
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.analyzeWithLlm = analyzeWithLlm;
4
+ // Cache the auth token for reuse
5
+ let cachedToken = null;
6
+ // Default edge service config (production) - zero config needed!
7
+ const DEFAULT_EDGE_URL = 'https://cr.ai.enki.si';
8
+ const DEFAULT_EDGE_USERNAME = 'dev@enki';
9
+ const DEFAULT_EDGE_PASSWORD = 'c0ev4rz5i3nr416u';
10
+ const DEFAULT_MODEL = 'google/gemini-2.0-flash-exp:free';
11
+ function getEdgeConfig() {
12
+ return {
13
+ baseUrl: (process.env['CR_EDGE_API_URL'] || DEFAULT_EDGE_URL).replace(/\/$/, ''),
14
+ username: process.env['CR_EDGE_USERNAME'] || DEFAULT_EDGE_USERNAME,
15
+ password: process.env['CR_EDGE_PASSWORD'] || DEFAULT_EDGE_PASSWORD,
16
+ };
17
+ }
18
+ async function getEdgeToken() {
19
+ if (cachedToken)
20
+ return cachedToken;
21
+ const { baseUrl, username, password } = getEdgeConfig();
22
+ const response = await fetch(`${baseUrl}/auth`, {
23
+ method: 'POST',
24
+ headers: { 'Content-Type': 'application/json' },
25
+ body: JSON.stringify({ username, password }),
26
+ });
27
+ if (!response.ok) {
28
+ const text = await response.text();
29
+ throw new Error(`Edge auth failed: ${response.status} - ${text}`);
30
+ }
31
+ const data = await response.json();
32
+ cachedToken = data.token;
33
+ return cachedToken;
34
+ }
35
+ async function callViaProxy(payload) {
36
+ const { baseUrl } = getEdgeConfig();
37
+ const token = await getEdgeToken();
38
+ const response = await fetch(`${baseUrl}/proxy`, {
39
+ method: 'POST',
40
+ headers: {
41
+ 'Authorization': `Bearer ${token}`,
42
+ 'Content-Type': 'application/json',
43
+ },
44
+ body: JSON.stringify(payload),
45
+ });
46
+ if (!response.ok) {
47
+ const errorText = await response.text();
48
+ throw new Error(`Proxy error: ${response.status} - ${errorText}`);
49
+ }
50
+ return response.json();
51
+ }
52
+ async function callDirectly(payload, apiKey) {
53
+ const response = await fetch('https://openrouter.ai/api/v1/chat/completions', {
54
+ method: 'POST',
55
+ headers: {
56
+ 'Authorization': `Bearer ${apiKey}`,
57
+ 'Content-Type': 'application/json',
58
+ 'HTTP-Referer': 'https://github.com/cr-aia',
59
+ 'X-Title': 'cr-aia'
60
+ },
61
+ body: JSON.stringify(payload),
62
+ });
63
+ if (!response.ok) {
64
+ const errorText = await response.text();
65
+ throw new Error(`OpenRouter error: ${response.status} - ${errorText}`);
66
+ }
67
+ return response.json();
68
+ }
69
+ async function analyzeWithLlm(input) {
70
+ const directApiKey = process.env['OPENROUTER_API_KEY'];
71
+ const model = process.env['CR_LITE_MODEL'] || DEFAULT_MODEL;
72
+ const systemPrompt = buildSystemPrompt();
73
+ const userPrompt = buildUserPrompt(input);
74
+ const payload = {
75
+ model,
76
+ messages: [
77
+ { role: 'system', content: systemPrompt },
78
+ { role: 'user', content: userPrompt }
79
+ ],
80
+ temperature: 0.3,
81
+ max_tokens: 8000,
82
+ http_referer: 'https://github.com/cr-aia',
83
+ x_title: 'cr-aia'
84
+ };
85
+ try {
86
+ let data;
87
+ // Use direct API key if set, otherwise use proxy (default)
88
+ if (directApiKey) {
89
+ data = await callDirectly(payload, directApiKey);
90
+ }
91
+ else {
92
+ data = await callViaProxy(payload);
93
+ }
94
+ const content = data.choices?.[0]?.message?.content;
95
+ if (!content) {
96
+ return {
97
+ markdownReport: buildFallbackReport(input),
98
+ success: false,
99
+ error: 'Empty response from LLM'
100
+ };
101
+ }
102
+ return {
103
+ markdownReport: content,
104
+ success: true
105
+ };
106
+ }
107
+ catch (error) {
108
+ return {
109
+ markdownReport: buildFallbackReport(input),
110
+ success: false,
111
+ error: error instanceof Error ? error.message : 'Unknown error'
112
+ };
113
+ }
114
+ }
115
+ function buildSystemPrompt() {
116
+ return `You are a Senior PHP Developer and Code Review Expert.
117
+ Your task is to analyze PHPCS (PHP_CodeSniffer) output and provide a comprehensive,
118
+ actionable code review report.
119
+
120
+ RESPONSE FORMAT:
121
+ You MUST respond with a well-structured Markdown report. Include:
122
+ 1. Executive Summary (2-3 sentences)
123
+ 2. Critical Issues (must fix before deployment)
124
+ 3. Warnings (should fix)
125
+ 4. File-by-file breakdown with specific recommendations
126
+ 5. Next Steps (prioritized action items)
127
+
128
+ GUIDELINES:
129
+ - Focus on issues that affect production readiness
130
+ - Group related issues together
131
+ - Provide specific, actionable fix recommendations
132
+ - Use clear severity levels: 🔴 Critical, 🟠 Warning, 🟡 Info
133
+ - Be concise but thorough`;
134
+ }
135
+ function buildUserPrompt(input) {
136
+ const { phpcsJson, fileContents, mode, totalFiles } = input;
137
+ let prompt = `## PHPCS Analysis Request\n\n`;
138
+ prompt += `**Mode:** ${mode}\n`;
139
+ prompt += `**Total Files Analyzed:** ${totalFiles}\n`;
140
+ prompt += `**Files with Issues:** ${Object.keys(phpcsJson.files).length}\n`;
141
+ prompt += `**Total Errors:** ${phpcsJson.totals.errors}\n`;
142
+ prompt += `**Total Warnings:** ${phpcsJson.totals.warnings}\n`;
143
+ prompt += `**Fixable Issues:** ${phpcsJson.totals.fixable}\n\n`;
144
+ prompt += `### PHPCS JSON Output:\n`;
145
+ prompt += `\`\`\`json\n${JSON.stringify(phpcsJson, null, 2)}\n\`\`\`\n\n`;
146
+ prompt += `### Source Code Context:\n`;
147
+ const MAX_FILE_SIZE = 5000;
148
+ const MAX_TOTAL_SIZE = 50000;
149
+ let totalSize = 0;
150
+ for (const [filePath, content] of fileContents) {
151
+ if (totalSize >= MAX_TOTAL_SIZE) {
152
+ prompt += `\n*[Additional files truncated for token limits]*\n`;
153
+ break;
154
+ }
155
+ const truncatedContent = content.length > MAX_FILE_SIZE
156
+ ? content.slice(0, MAX_FILE_SIZE) + '\n... [truncated]'
157
+ : content;
158
+ prompt += `\n#### ${filePath}\n\`\`\`php\n${truncatedContent}\n\`\`\`\n`;
159
+ totalSize += truncatedContent.length;
160
+ }
161
+ prompt += `\n\nPlease analyze the above PHPCS output and source code,
162
+ then provide a comprehensive code review report in Markdown format.`;
163
+ return prompt;
164
+ }
165
+ function buildFallbackReport(input) {
166
+ const { phpcsJson, mode, totalFiles } = input;
167
+ let report = `# PHPCS Analysis Report (Fallback - LLM Unavailable)\n\n`;
168
+ report += `**Mode:** ${mode}\n`;
169
+ report += `**Files Reviewed:** ${totalFiles}\n`;
170
+ report += `**Errors:** ${phpcsJson.totals.errors}\n`;
171
+ report += `**Warnings:** ${phpcsJson.totals.warnings}\n`;
172
+ report += `**Fixable:** ${phpcsJson.totals.fixable}\n\n`;
173
+ report += `> ⚠️ LLM analysis failed. Showing raw PHPCS output below.\n\n`;
174
+ report += `## Issues by File\n\n`;
175
+ for (const [filePath, fileReport] of Object.entries(phpcsJson.files)) {
176
+ if (fileReport.messages.length === 0)
177
+ continue;
178
+ report += `### ${filePath}\n\n`;
179
+ for (const msg of fileReport.messages) {
180
+ const icon = msg.type === 'ERROR' ? '🔴' : '🟠';
181
+ report += `- ${icon} **Line ${msg.line}:${msg.column}** - ${msg.message} \`(${msg.source})\`\n`;
182
+ }
183
+ report += '\n';
184
+ }
185
+ return report;
186
+ }
187
+ //# sourceMappingURL=openRouterClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openRouterClient.js","sourceRoot":"","sources":["../../../src/runtime/llm/openRouterClient.ts"],"names":[],"mappings":";;AA2HA,wCAkDC;AAjID,iCAAiC;AACjC,IAAI,WAAW,GAAkB,IAAI,CAAC;AAEtC,iEAAiE;AACjE,MAAM,gBAAgB,GAAG,uBAAuB,CAAC;AACjD,MAAM,qBAAqB,GAAG,UAAU,CAAC;AACzC,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AACjD,MAAM,aAAa,GAAG,kCAAkC,CAAC;AAEzD,SAAS,aAAa;IACpB,OAAO;QACL,OAAO,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,gBAAgB,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QAChF,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,qBAAqB;QAClE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,qBAAqB;KACnE,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,YAAY;IACzB,IAAI,WAAW;QAAE,OAAO,WAAW,CAAC;IAEpC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,aAAa,EAAE,CAAC;IAExD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,OAAO,EAAE;QAC9C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;QAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;KAC7C,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,MAAM,IAAI,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAuB,CAAC;IACxD,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC;IACzB,OAAO,WAAW,CAAC;AACrB,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAA0B;IACpD,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,EAAE,CAAC;IACpC,MAAM,KAAK,GAAG,MAAM,YAAY,EAAE,CAAC;IAEnC,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,OAAO,QAAQ,EAAE;QAC/C,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,KAAK,EAAE;YAClC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,gBAAgB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAiC,CAAC;AACxD,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,OAA0B,EAAE,MAAc;IACpE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,+CAA+C,EAAE;QAC5E,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,UAAU,MAAM,EAAE;YACnC,cAAc,EAAE,kBAAkB;YAClC,cAAc,EAAE,2BAA2B;YAC3C,SAAS,EAAE,QAAQ;SACpB;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;KAC9B,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,IAAI,KAAK,CAAC,qBAAqB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;IACzE,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,EAAiC,CAAC;AACxD,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,KAAuB;IAC1D,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IACvD,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,aAAa,CAAC;IAE5D,MAAM,YAAY,GAAG,iBAAiB,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAE1C,MAAM,OAAO,GAAsB;QACjC,KAAK;QACL,QAAQ,EAAE;YACR,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,EAAE;YACzC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE;SACtC;QACD,WAAW,EAAE,GAAG;QAChB,UAAU,EAAE,IAAI;QAChB,YAAY,EAAE,2BAA2B;QACzC,OAAO,EAAE,QAAQ;KAClB,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,IAAwB,CAAC;QAE7B,2DAA2D;QAC3D,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QACnD,CAAC;aAAM,CAAC;YACN,IAAI,GAAG,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;QACrC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC;QAEpD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,cAAc,EAAE,mBAAmB,CAAC,KAAK,CAAC;gBAC1C,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,yBAAyB;aACjC,CAAC;QACJ,CAAC;QAED,OAAO;YACL,cAAc,EAAE,OAAO;YACvB,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO;YACL,cAAc,EAAE,mBAAmB,CAAC,KAAK,CAAC;YAC1C,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe;SAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO;;;;;;;;;;;;;;;;;0BAiBiB,CAAC;AAC3B,CAAC;AAED,SAAS,eAAe,CAAC,KAAuB;IAC9C,MAAM,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE5D,IAAI,MAAM,GAAG,+BAA+B,CAAC;IAC7C,MAAM,IAAI,aAAa,IAAI,IAAI,CAAC;IAChC,MAAM,IAAI,6BAA6B,UAAU,IAAI,CAAC;IACtD,MAAM,IAAI,0BAA0B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC;IAC5E,MAAM,IAAI,qBAAqB,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;IAC3D,MAAM,IAAI,uBAAuB,SAAS,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC;IAC/D,MAAM,IAAI,uBAAuB,SAAS,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC;IAEhE,MAAM,IAAI,0BAA0B,CAAC;IACrC,MAAM,IAAI,eAAe,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,cAAc,CAAC;IAE1E,MAAM,IAAI,4BAA4B,CAAC;IAEvC,MAAM,aAAa,GAAG,IAAI,CAAC;IAC3B,MAAM,cAAc,GAAG,KAAK,CAAC;IAC7B,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,KAAK,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,YAAY,EAAE,CAAC;QAC/C,IAAI,SAAS,IAAI,cAAc,EAAE,CAAC;YAChC,MAAM,IAAI,qDAAqD,CAAC;YAChE,MAAM;QACR,CAAC;QAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,MAAM,GAAG,aAAa;YACrD,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,GAAG,mBAAmB;YACvD,CAAC,CAAC,OAAO,CAAC;QAEZ,MAAM,IAAI,UAAU,QAAQ,gBAAgB,gBAAgB,YAAY,CAAC;QACzE,SAAS,IAAI,gBAAgB,CAAC,MAAM,CAAC;IACvC,CAAC;IAED,MAAM,IAAI;oEACwD,CAAC;IAEnE,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAuB;IAClD,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC;IAE9C,IAAI,MAAM,GAAG,0DAA0D,CAAC;IACxE,MAAM,IAAI,aAAa,IAAI,IAAI,CAAC;IAChC,MAAM,IAAI,uBAAuB,UAAU,IAAI,CAAC;IAChD,MAAM,IAAI,eAAe,SAAS,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC;IACrD,MAAM,IAAI,iBAAiB,SAAS,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC;IACzD,MAAM,IAAI,gBAAgB,SAAS,CAAC,MAAM,CAAC,OAAO,MAAM,CAAC;IAEzD,MAAM,IAAI,+DAA+D,CAAC;IAC1E,MAAM,IAAI,uBAAuB,CAAC;IAElC,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrE,IAAI,UAAU,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,SAAS;QAE/C,MAAM,IAAI,OAAO,QAAQ,MAAM,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACtC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAChD,MAAM,IAAI,KAAK,IAAI,WAAW,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,MAAM,QAAQ,GAAG,CAAC,OAAO,OAAO,GAAG,CAAC,MAAM,OAAO,CAAC;QAClG,CAAC;QACD,MAAM,IAAI,IAAI,CAAC;IACjB,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export type FileCollectionMode = 'uncommitted' | 'prod';
2
+ export interface FileCollectionStats {
3
+ uncommitted: number;
4
+ related: number;
5
+ }
6
+ export interface FileCollectionResult {
7
+ files: string[];
8
+ stats: FileCollectionStats;
9
+ }
10
+ export interface CollectPhpFilesOptions {
11
+ mode: FileCollectionMode;
12
+ includeRelated?: boolean;
13
+ }
14
+ export declare function collectPhpFiles(options: CollectPhpFilesOptions): Promise<FileCollectionResult>;
@@ -0,0 +1,231 @@
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.collectPhpFiles = collectPhpFiles;
7
+ const node_fs_1 = require("node:fs");
8
+ const node_path_1 = require("node:path");
9
+ const execa_1 = require("execa");
10
+ const ignore_1 = __importDefault(require("ignore"));
11
+ const errors_1 = require("./errors");
12
+ const HARD_EXCLUDES = new Set(['.git', 'node_modules', 'vendor']);
13
+ async function collectPhpFiles(options) {
14
+ const workspaceRoot = (0, node_path_1.resolve)(process.cwd());
15
+ const repoRoot = await resolveRepoRoot();
16
+ if (!repoRoot && options.mode === 'uncommitted') {
17
+ throw new errors_1.NotAGitRepoError(workspaceRoot);
18
+ }
19
+ const ignored = buildIgnoreMatcher(workspaceRoot, repoRoot ?? workspaceRoot);
20
+ if (options.mode === 'uncommitted') {
21
+ const uncommitted = await listUncommittedPhpFiles(workspaceRoot, repoRoot, ignored);
22
+ const related = options.includeRelated ? await expandRelatedFiles(uncommitted, ignored) : [];
23
+ const combined = mergeFiles(uncommitted, related);
24
+ return {
25
+ files: combined,
26
+ stats: {
27
+ uncommitted: uncommitted.length,
28
+ related: related.length,
29
+ },
30
+ };
31
+ }
32
+ const allPhp = repoRoot
33
+ ? await listAllPhpFilesFromGit(workspaceRoot, ignored)
34
+ : await walkPhpFiles(workspaceRoot, ignored);
35
+ return {
36
+ files: allPhp,
37
+ stats: {
38
+ uncommitted: allPhp.length,
39
+ related: 0,
40
+ },
41
+ };
42
+ }
43
+ async function resolveRepoRoot() {
44
+ try {
45
+ const { stdout } = await (0, execa_1.execa)('git', ['rev-parse', '--show-toplevel']);
46
+ return stdout.trim();
47
+ }
48
+ catch {
49
+ return null;
50
+ }
51
+ }
52
+ async function listUncommittedPhpFiles(workspaceRoot, repoRoot, ignored) {
53
+ const statusArgs = ['-C', workspaceRoot, 'status', '--porcelain=1', '-z', '--', '.'];
54
+ const diffArgs = ['-C', workspaceRoot, 'diff', '--name-only', '-z', '--', '.'];
55
+ const { stdout: statusOut } = await (0, execa_1.execa)('git', statusArgs);
56
+ const { stdout: diffOut } = await (0, execa_1.execa)('git', diffArgs);
57
+ const statusEntries = statusOut.split('\0').filter(Boolean);
58
+ const statusFiles = [];
59
+ for (let i = 0; i < statusEntries.length; i += 1) {
60
+ const entry = statusEntries[i];
61
+ const statusPrefix = entry.slice(0, 3);
62
+ const pathPart = entry.slice(3).trim();
63
+ if (!pathPart) {
64
+ continue;
65
+ }
66
+ if (statusPrefix.trim().startsWith('R')) {
67
+ const renamedTarget = statusEntries[i + 1];
68
+ if (renamedTarget) {
69
+ statusFiles.push(renamedTarget);
70
+ i += 1;
71
+ continue;
72
+ }
73
+ }
74
+ statusFiles.push(pathPart);
75
+ }
76
+ const diffFiles = diffOut.split('\0').filter(Boolean);
77
+ const unique = new Set([...statusFiles, ...diffFiles]);
78
+ return filterPhpFiles(Array.from(unique), repoRoot, workspaceRoot, ignored);
79
+ }
80
+ async function listAllPhpFilesFromGit(workspaceRoot, ignored) {
81
+ const trackedArgs = ['-C', workspaceRoot, 'ls-files', '-z', '--', '*.php'];
82
+ const untrackedArgs = ['-C', workspaceRoot, 'ls-files', '--others', '--exclude-standard', '-z', '--', '*.php'];
83
+ const [{ stdout: trackedOut }, { stdout: untrackedOut }] = await Promise.all([
84
+ (0, execa_1.execa)('git', trackedArgs),
85
+ (0, execa_1.execa)('git', untrackedArgs),
86
+ ]);
87
+ const tracked = trackedOut.split('\0').filter(Boolean);
88
+ const untracked = untrackedOut.split('\0').filter(Boolean);
89
+ const unique = new Set([...tracked, ...untracked]);
90
+ return Array.from(unique)
91
+ .map((file) => (0, node_path_1.resolve)(workspaceRoot, file))
92
+ .filter((file) => file.endsWith('.php'))
93
+ .filter((file) => !shouldIgnore(file, ignored))
94
+ .filter((file) => isFile(file));
95
+ }
96
+ async function expandRelatedFiles(files, ignored) {
97
+ const directories = new Set(files.map((file) => (0, node_path_1.dirname)(file)));
98
+ const related = [];
99
+ for (const dir of directories) {
100
+ try {
101
+ const entries = (0, node_fs_1.readdirSync)(dir);
102
+ for (const entry of entries) {
103
+ if (!entry.endsWith('.php')) {
104
+ continue;
105
+ }
106
+ const absolute = (0, node_path_1.resolve)(dir, entry);
107
+ if (shouldIgnore(absolute, ignored)) {
108
+ continue;
109
+ }
110
+ if (isFile(absolute)) {
111
+ related.push(absolute);
112
+ }
113
+ }
114
+ }
115
+ catch {
116
+ // Ignore unreadable directories
117
+ }
118
+ }
119
+ return related;
120
+ }
121
+ function mergeFiles(base, extras) {
122
+ const merged = new Set();
123
+ for (const file of base)
124
+ merged.add(file);
125
+ for (const file of extras)
126
+ merged.add(file);
127
+ return Array.from(merged);
128
+ }
129
+ function filterPhpFiles(files, repoRoot, workspaceRoot, ignored) {
130
+ const filtered = [];
131
+ for (const file of files) {
132
+ if (!file.endsWith('.php')) {
133
+ continue;
134
+ }
135
+ const absolute = (0, node_path_1.resolve)(repoRoot, file);
136
+ if (!isWithinWorkspace(absolute, workspaceRoot)) {
137
+ continue;
138
+ }
139
+ if (shouldIgnore(absolute, ignored)) {
140
+ continue;
141
+ }
142
+ if (!isFile(absolute)) {
143
+ continue;
144
+ }
145
+ filtered.push(absolute);
146
+ }
147
+ return filtered;
148
+ }
149
+ function buildIgnoreMatcher(workspaceRoot, repoRoot) {
150
+ const ig = (0, ignore_1.default)();
151
+ const gitIgnorePaths = new Set([
152
+ (0, node_path_1.join)(repoRoot, '.gitignore'),
153
+ (0, node_path_1.join)(workspaceRoot, '.gitignore'),
154
+ ]);
155
+ const crIgnorePath = (0, node_path_1.join)(workspaceRoot, '.crignore');
156
+ for (const ignorePath of gitIgnorePaths) {
157
+ addIgnoreFile(ig, ignorePath);
158
+ }
159
+ addIgnoreFile(ig, crIgnorePath);
160
+ return {
161
+ ig,
162
+ workspaceRoot,
163
+ };
164
+ }
165
+ function addIgnoreFile(ig, filePath) {
166
+ try {
167
+ const content = (0, node_fs_1.readFileSync)(filePath, 'utf8');
168
+ ig.add(content.split(/\r?\n/));
169
+ }
170
+ catch {
171
+ // ignore missing ignore files
172
+ }
173
+ }
174
+ function shouldIgnore(absolutePath, matcher) {
175
+ const relative = (0, node_path_1.relative)(matcher.workspaceRoot, absolutePath);
176
+ if (relative.startsWith('..')) {
177
+ return true;
178
+ }
179
+ const segments = relative.split(/[\\/]/);
180
+ for (const segment of segments) {
181
+ if (HARD_EXCLUDES.has(segment)) {
182
+ return true;
183
+ }
184
+ }
185
+ return matcher.ig.ignores(relative);
186
+ }
187
+ function isWithinWorkspace(absolutePath, workspaceRoot) {
188
+ const rel = (0, node_path_1.relative)(workspaceRoot, absolutePath);
189
+ return rel === '' || (!rel.startsWith('..') && !rel.startsWith('../'));
190
+ }
191
+ function walkPhpFiles(root, ignored) {
192
+ const results = [];
193
+ const stack = [root];
194
+ while (stack.length > 0) {
195
+ const current = stack.pop();
196
+ if (!current)
197
+ continue;
198
+ if (shouldIgnore(current, ignored)) {
199
+ continue;
200
+ }
201
+ if (isFile(current)) {
202
+ if (current.endsWith('.php')) {
203
+ results.push(current);
204
+ }
205
+ continue;
206
+ }
207
+ try {
208
+ const entries = (0, node_fs_1.readdirSync)(current);
209
+ for (const entry of entries) {
210
+ const absolute = (0, node_path_1.resolve)(current, entry);
211
+ if (HARD_EXCLUDES.has(entry)) {
212
+ continue;
213
+ }
214
+ stack.push(absolute);
215
+ }
216
+ }
217
+ catch {
218
+ // ignore unreadable dirs
219
+ }
220
+ }
221
+ return results;
222
+ }
223
+ function isFile(path) {
224
+ try {
225
+ return (0, node_fs_1.statSync)(path).isFile();
226
+ }
227
+ catch {
228
+ return false;
229
+ }
230
+ }
231
+ //# sourceMappingURL=phpFileResolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phpFileResolver.js","sourceRoot":"","sources":["../../src/runtime/phpFileResolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { PhpcsJsonReport, PhpcsMessage, PhpcsTotals } from './phpcsRunner';
2
+ export interface PhpcsIssue extends PhpcsMessage {
3
+ filePath: string;
4
+ }
5
+ export interface ParsedPhpcsReport {
6
+ totals: PhpcsTotals;
7
+ issuesByFile: Record<string, PhpcsIssue[]>;
8
+ issueCount: number;
9
+ }
10
+ export declare function parsePhpcsReport(report: PhpcsJsonReport, workspaceRoot: string): ParsedPhpcsReport;
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePhpcsReport = parsePhpcsReport;
4
+ const node_path_1 = require("node:path");
5
+ function parsePhpcsReport(report, workspaceRoot) {
6
+ const issuesByFile = {};
7
+ let issueCount = 0;
8
+ for (const [filePath, fileReport] of Object.entries(report.files ?? {})) {
9
+ const relative = normalizePath((0, node_path_1.relative)(workspaceRoot, filePath));
10
+ const issues = (fileReport.messages ?? []).map((message) => ({
11
+ ...message,
12
+ filePath: relative,
13
+ }));
14
+ if (issues.length > 0) {
15
+ issuesByFile[relative] = issues;
16
+ issueCount += issues.length;
17
+ }
18
+ }
19
+ return {
20
+ totals: {
21
+ errors: report.totals?.errors ?? 0,
22
+ warnings: report.totals?.warnings ?? 0,
23
+ fixable: report.totals?.fixable ?? 0,
24
+ },
25
+ issuesByFile,
26
+ issueCount,
27
+ };
28
+ }
29
+ function normalizePath(value) {
30
+ if (!value || value === '.') {
31
+ return '.';
32
+ }
33
+ return value.split('\\').join('/');
34
+ }
35
+ //# sourceMappingURL=phpcsParser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phpcsParser.js","sourceRoot":"","sources":["../../src/runtime/phpcsParser.ts"],"names":[],"mappings":";;AAaA,4CAyBC;AAtCD,yCAAqD;AAarD,SAAgB,gBAAgB,CAAC,MAAuB,EAAE,aAAqB;IAC7E,MAAM,YAAY,GAAiC,EAAE,CAAC;IACtD,IAAI,UAAU,GAAG,CAAC,CAAC;IAEnB,KAAK,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAA,oBAAY,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC;QACtE,MAAM,MAAM,GAAiB,CAAC,UAAU,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACzE,GAAG,OAAO;YACV,QAAQ,EAAE,QAAQ;SACnB,CAAC,CAAC,CAAC;QACJ,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,YAAY,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC;YAChC,UAAU,IAAI,MAAM,CAAC,MAAM,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,OAAO;QACL,MAAM,EAAE;YACN,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC;YAClC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC;YACtC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,IAAI,CAAC;SACrC;QACD,YAAY;QACZ,UAAU;KACX,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAa;IAClC,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,GAAG,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,OAAO,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,CAAC"}
@@ -0,0 +1,32 @@
1
+ export interface PhpcsTotals {
2
+ errors: number;
3
+ warnings: number;
4
+ fixable: number;
5
+ }
6
+ export interface PhpcsMessage {
7
+ line: number;
8
+ column: number;
9
+ message: string;
10
+ source: string;
11
+ type: 'ERROR' | 'WARNING';
12
+ severity: number;
13
+ fixable: boolean;
14
+ }
15
+ export interface PhpcsFileReport {
16
+ errors: number;
17
+ warnings: number;
18
+ messages: PhpcsMessage[];
19
+ }
20
+ export interface PhpcsJsonReport {
21
+ totals: PhpcsTotals;
22
+ files: Record<string, PhpcsFileReport>;
23
+ }
24
+ export interface PhpcsRunnerOptions {
25
+ workspaceRoot: string;
26
+ chunkSize?: number;
27
+ onBatch?: (info: {
28
+ batchIndex: number;
29
+ totalBatches: number;
30
+ }) => void;
31
+ }
32
+ export declare function runPhpcs(files: string[], options: PhpcsRunnerOptions): Promise<PhpcsJsonReport>;