codereview-aia 0.2.1 → 0.2.3

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 (436) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.js +1 -7
  3. package/dist/index.js.map +1 -1
  4. package/dist/runtime/api/batcher.d.ts +20 -0
  5. package/dist/runtime/api/batcher.js +52 -0
  6. package/dist/runtime/api/batcher.js.map +1 -0
  7. package/dist/runtime/api/edgeClient.d.ts +102 -0
  8. package/dist/runtime/api/edgeClient.js +162 -0
  9. package/dist/runtime/api/edgeClient.js.map +1 -0
  10. package/dist/runtime/api/index.d.ts +2 -0
  11. package/dist/runtime/api/index.js +9 -0
  12. package/dist/runtime/api/index.js.map +1 -0
  13. package/dist/runtime/cliEntry.js +24 -76
  14. package/dist/runtime/cliEntry.js.map +1 -1
  15. package/dist/runtime/errors.d.ts +13 -3
  16. package/dist/runtime/errors.js +31 -8
  17. package/dist/runtime/errors.js.map +1 -1
  18. package/dist/runtime/llm/index.d.ts +1 -0
  19. package/dist/runtime/llm/index.js +6 -0
  20. package/dist/runtime/llm/index.js.map +1 -0
  21. package/dist/runtime/llm/openRouterClient.d.ts +13 -0
  22. package/dist/runtime/llm/openRouterClient.js +187 -0
  23. package/dist/runtime/llm/openRouterClient.js.map +1 -0
  24. package/dist/runtime/phpFileResolver.d.ts +14 -0
  25. package/dist/runtime/phpFileResolver.js +231 -0
  26. package/dist/runtime/phpFileResolver.js.map +1 -0
  27. package/dist/runtime/phpcsParser.d.ts +10 -0
  28. package/dist/runtime/phpcsParser.js +35 -0
  29. package/dist/runtime/phpcsParser.js.map +1 -0
  30. package/dist/runtime/phpcsRunner.d.ts +32 -0
  31. package/dist/runtime/phpcsRunner.js +62 -0
  32. package/dist/runtime/phpcsRunner.js.map +1 -0
  33. package/dist/runtime/reportWriter.d.ts +17 -0
  34. package/dist/runtime/reportWriter.js +80 -0
  35. package/dist/runtime/reportWriter.js.map +1 -0
  36. package/dist/runtime/reviewPipeline.d.ts +14 -36
  37. package/dist/runtime/reviewPipeline.js +146 -199
  38. package/dist/runtime/reviewPipeline.js.map +1 -1
  39. package/dist/runtime/ui/RuntimeApp.js +23 -154
  40. package/dist/runtime/ui/RuntimeApp.js.map +1 -1
  41. package/dist/runtime/ui/screens/AuthScreen.d.ts +2 -3
  42. package/dist/runtime/ui/screens/AuthScreen.js +7 -53
  43. package/dist/runtime/ui/screens/AuthScreen.js.map +1 -1
  44. package/dist/runtime/ui/screens/ModeSelection.d.ts +1 -2
  45. package/dist/runtime/ui/screens/ModeSelection.js +14 -139
  46. package/dist/runtime/ui/screens/ModeSelection.js.map +1 -1
  47. package/dist/runtime/ui/screens/ProgressScreen.d.ts +5 -13
  48. package/dist/runtime/ui/screens/ProgressScreen.js +24 -61
  49. package/dist/runtime/ui/screens/ProgressScreen.js.map +1 -1
  50. package/dist/runtime/ui/screens/ResultsScreen.js +7 -17
  51. package/dist/runtime/ui/screens/ResultsScreen.js.map +1 -1
  52. package/package.json +4 -44
  53. package/dist/analysis/FindingsExtractor.d.ts +0 -105
  54. package/dist/analysis/FindingsExtractor.js +0 -363
  55. package/dist/analysis/FindingsExtractor.js.map +0 -1
  56. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.d.ts +0 -111
  57. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js +0 -215
  58. package/dist/analysis/ai-detection/analyzers/BaseAnalyzer.js.map +0 -1
  59. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.d.ts +0 -142
  60. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js +0 -503
  61. package/dist/analysis/ai-detection/analyzers/DocumentationAnalyzer.js.map +0 -1
  62. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.d.ts +0 -88
  63. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js +0 -343
  64. package/dist/analysis/ai-detection/analyzers/GitHistoryAnalyzer.js.map +0 -1
  65. package/dist/analysis/ai-detection/core/AIDetectionEngine.d.ts +0 -104
  66. package/dist/analysis/ai-detection/core/AIDetectionEngine.js +0 -369
  67. package/dist/analysis/ai-detection/core/AIDetectionEngine.js.map +0 -1
  68. package/dist/analysis/ai-detection/types/DetectionTypes.d.ts +0 -364
  69. package/dist/analysis/ai-detection/types/DetectionTypes.js +0 -32
  70. package/dist/analysis/ai-detection/types/DetectionTypes.js.map +0 -1
  71. package/dist/analysis/ai-detection/utils/SubmissionConverter.d.ts +0 -97
  72. package/dist/analysis/ai-detection/utils/SubmissionConverter.js +0 -339
  73. package/dist/analysis/ai-detection/utils/SubmissionConverter.js.map +0 -1
  74. package/dist/analysis/context/ReviewContext.d.ts +0 -184
  75. package/dist/analysis/context/ReviewContext.js +0 -294
  76. package/dist/analysis/context/ReviewContext.js.map +0 -1
  77. package/dist/analysis/context/index.d.ts +0 -6
  78. package/dist/analysis/context/index.js +0 -23
  79. package/dist/analysis/context/index.js.map +0 -1
  80. package/dist/analysis/index.d.ts +0 -7
  81. package/dist/analysis/index.js +0 -24
  82. package/dist/analysis/index.js.map +0 -1
  83. package/dist/analysis/static/wpPhpcsRunner.d.ts +0 -11
  84. package/dist/analysis/static/wpPhpcsRunner.js +0 -219
  85. package/dist/analysis/static/wpPhpcsRunner.js.map +0 -1
  86. package/dist/analysis/tokens/TokenAnalysisFormatter.d.ts +0 -27
  87. package/dist/analysis/tokens/TokenAnalysisFormatter.js +0 -143
  88. package/dist/analysis/tokens/TokenAnalysisFormatter.js.map +0 -1
  89. package/dist/analysis/tokens/TokenAnalyzer.d.ts +0 -155
  90. package/dist/analysis/tokens/TokenAnalyzer.js +0 -502
  91. package/dist/analysis/tokens/TokenAnalyzer.js.map +0 -1
  92. package/dist/analysis/tokens/index.d.ts +0 -7
  93. package/dist/analysis/tokens/index.js +0 -24
  94. package/dist/analysis/tokens/index.js.map +0 -1
  95. package/dist/clients/base/abstractClient.d.ts +0 -99
  96. package/dist/clients/base/abstractClient.js +0 -98
  97. package/dist/clients/base/abstractClient.js.map +0 -1
  98. package/dist/clients/base/httpClient.d.ts +0 -24
  99. package/dist/clients/base/httpClient.js +0 -147
  100. package/dist/clients/base/httpClient.js.map +0 -1
  101. package/dist/clients/base/index.d.ts +0 -11
  102. package/dist/clients/base/index.js +0 -28
  103. package/dist/clients/base/index.js.map +0 -1
  104. package/dist/clients/base/modelDetection.d.ts +0 -41
  105. package/dist/clients/base/modelDetection.js +0 -88
  106. package/dist/clients/base/modelDetection.js.map +0 -1
  107. package/dist/clients/base/responseProcessor.d.ts +0 -45
  108. package/dist/clients/base/responseProcessor.js +0 -495
  109. package/dist/clients/base/responseProcessor.js.map +0 -1
  110. package/dist/clients/factory/clientFactory.d.ts +0 -23
  111. package/dist/clients/factory/clientFactory.js +0 -50
  112. package/dist/clients/factory/clientFactory.js.map +0 -1
  113. package/dist/clients/factory/index.d.ts +0 -7
  114. package/dist/clients/factory/index.js +0 -24
  115. package/dist/clients/factory/index.js.map +0 -1
  116. package/dist/clients/implementations/index.d.ts +0 -7
  117. package/dist/clients/implementations/index.js +0 -24
  118. package/dist/clients/implementations/index.js.map +0 -1
  119. package/dist/clients/implementations/openRouterClient.d.ts +0 -69
  120. package/dist/clients/implementations/openRouterClient.js +0 -294
  121. package/dist/clients/implementations/openRouterClient.js.map +0 -1
  122. package/dist/clients/openRouterClient.d.ts +0 -42
  123. package/dist/clients/openRouterClient.js +0 -580
  124. package/dist/clients/openRouterClient.js.map +0 -1
  125. package/dist/clients/openRouterClientWrapper.d.ts +0 -22
  126. package/dist/clients/openRouterClientWrapper.js +0 -64
  127. package/dist/clients/openRouterClientWrapper.js.map +0 -1
  128. package/dist/clients/utils/directoryStructure.d.ts +0 -14
  129. package/dist/clients/utils/directoryStructure.js +0 -48
  130. package/dist/clients/utils/directoryStructure.js.map +0 -1
  131. package/dist/clients/utils/index.d.ts +0 -10
  132. package/dist/clients/utils/index.js +0 -31
  133. package/dist/clients/utils/index.js.map +0 -1
  134. package/dist/clients/utils/languageDetection.d.ts +0 -13
  135. package/dist/clients/utils/languageDetection.js +0 -46
  136. package/dist/clients/utils/languageDetection.js.map +0 -1
  137. package/dist/clients/utils/promptFormatter.d.ts +0 -37
  138. package/dist/clients/utils/promptFormatter.js +0 -186
  139. package/dist/clients/utils/promptFormatter.js.map +0 -1
  140. package/dist/clients/utils/promptLoader.d.ts +0 -27
  141. package/dist/clients/utils/promptLoader.js +0 -49
  142. package/dist/clients/utils/promptLoader.js.map +0 -1
  143. package/dist/clients/utils/tokenCounter.d.ts +0 -81
  144. package/dist/clients/utils/tokenCounter.js +0 -184
  145. package/dist/clients/utils/tokenCounter.js.map +0 -1
  146. package/dist/core/ApiClientSelector.d.ts +0 -8
  147. package/dist/core/ApiClientSelector.js +0 -29
  148. package/dist/core/ApiClientSelector.js.map +0 -1
  149. package/dist/core/ConfigurationService.d.ts +0 -307
  150. package/dist/core/ConfigurationService.js +0 -516
  151. package/dist/core/ConfigurationService.js.map +0 -1
  152. package/dist/core/ConsolidationService.d.ts +0 -99
  153. package/dist/core/ConsolidationService.js +0 -341
  154. package/dist/core/ConsolidationService.js.map +0 -1
  155. package/dist/core/InteractiveDisplayManager.d.ts +0 -22
  156. package/dist/core/InteractiveDisplayManager.js +0 -70
  157. package/dist/core/InteractiveDisplayManager.js.map +0 -1
  158. package/dist/core/OutputManager.d.ts +0 -26
  159. package/dist/core/OutputManager.js +0 -217
  160. package/dist/core/OutputManager.js.map +0 -1
  161. package/dist/core/ReviewGenerator.d.ts +0 -13
  162. package/dist/core/ReviewGenerator.js +0 -102
  163. package/dist/core/ReviewGenerator.js.map +0 -1
  164. package/dist/core/fileDiscovery.d.ts +0 -35
  165. package/dist/core/fileDiscovery.js +0 -202
  166. package/dist/core/fileDiscovery.js.map +0 -1
  167. package/dist/core/handlers/EstimationHandler.d.ts +0 -18
  168. package/dist/core/handlers/EstimationHandler.js +0 -110
  169. package/dist/core/handlers/EstimationHandler.js.map +0 -1
  170. package/dist/core/handlers/FileProcessingHandler.d.ts +0 -31
  171. package/dist/core/handlers/FileProcessingHandler.js +0 -164
  172. package/dist/core/handlers/FileProcessingHandler.js.map +0 -1
  173. package/dist/core/handlers/OutputHandler.d.ts +0 -27
  174. package/dist/core/handlers/OutputHandler.js +0 -127
  175. package/dist/core/handlers/OutputHandler.js.map +0 -1
  176. package/dist/core/handlers/ReviewExecutor.d.ts +0 -32
  177. package/dist/core/handlers/ReviewExecutor.js +0 -111
  178. package/dist/core/handlers/ReviewExecutor.js.map +0 -1
  179. package/dist/core/reviewOrchestrator.d.ts +0 -24
  180. package/dist/core/reviewOrchestrator.js +0 -354
  181. package/dist/core/reviewOrchestrator.js.map +0 -1
  182. package/dist/core/utils/ModelInfoUtils.d.ts +0 -16
  183. package/dist/core/utils/ModelInfoUtils.js +0 -54
  184. package/dist/core/utils/ModelInfoUtils.js.map +0 -1
  185. package/dist/formatters/outputFormatter.d.ts +0 -31
  186. package/dist/formatters/outputFormatter.js +0 -65
  187. package/dist/formatters/outputFormatter.js.map +0 -1
  188. package/dist/formatters/utils/IssueFormatters.d.ts +0 -20
  189. package/dist/formatters/utils/IssueFormatters.js +0 -67
  190. package/dist/formatters/utils/IssueFormatters.js.map +0 -1
  191. package/dist/formatters/utils/JsonFormatter.d.ts +0 -13
  192. package/dist/formatters/utils/JsonFormatter.js +0 -57
  193. package/dist/formatters/utils/JsonFormatter.js.map +0 -1
  194. package/dist/formatters/utils/MarkdownFormatters.d.ts +0 -51
  195. package/dist/formatters/utils/MarkdownFormatters.js +0 -456
  196. package/dist/formatters/utils/MarkdownFormatters.js.map +0 -1
  197. package/dist/formatters/utils/MetadataFormatter.d.ts +0 -65
  198. package/dist/formatters/utils/MetadataFormatter.js +0 -219
  199. package/dist/formatters/utils/MetadataFormatter.js.map +0 -1
  200. package/dist/formatters/utils/ModelInfoExtractor.d.ts +0 -33
  201. package/dist/formatters/utils/ModelInfoExtractor.js +0 -111
  202. package/dist/formatters/utils/ModelInfoExtractor.js.map +0 -1
  203. package/dist/plugins/PluginInterface.d.ts +0 -44
  204. package/dist/plugins/PluginInterface.js +0 -9
  205. package/dist/plugins/PluginInterface.js.map +0 -1
  206. package/dist/plugins/PluginManager.d.ts +0 -51
  207. package/dist/plugins/PluginManager.js +0 -151
  208. package/dist/plugins/PluginManager.js.map +0 -1
  209. package/dist/prompts/PromptManager.d.ts +0 -30
  210. package/dist/prompts/PromptManager.js +0 -62
  211. package/dist/prompts/PromptManager.js.map +0 -1
  212. package/dist/prompts/cache/PromptCache.d.ts +0 -32
  213. package/dist/prompts/cache/PromptCache.js +0 -48
  214. package/dist/prompts/cache/PromptCache.js.map +0 -1
  215. package/dist/runtime/auth/service.d.ts +0 -2
  216. package/dist/runtime/auth/service.js +0 -41
  217. package/dist/runtime/auth/service.js.map +0 -1
  218. package/dist/runtime/auth/session.d.ts +0 -5
  219. package/dist/runtime/auth/session.js +0 -87
  220. package/dist/runtime/auth/session.js.map +0 -1
  221. package/dist/runtime/auth/types.d.ts +0 -9
  222. package/dist/runtime/auth/types.js +0 -3
  223. package/dist/runtime/auth/types.js.map +0 -1
  224. package/dist/runtime/fileCollector.d.ts +0 -14
  225. package/dist/runtime/fileCollector.js +0 -383
  226. package/dist/runtime/fileCollector.js.map +0 -1
  227. package/dist/runtime/manifest.d.ts +0 -1
  228. package/dist/runtime/manifest.js +0 -65
  229. package/dist/runtime/manifest.js.map +0 -1
  230. package/dist/runtime/openrouterProxy.d.ts +0 -4
  231. package/dist/runtime/openrouterProxy.js +0 -43
  232. package/dist/runtime/openrouterProxy.js.map +0 -1
  233. package/dist/runtime/preprod/batchStreamer.d.ts +0 -54
  234. package/dist/runtime/preprod/batchStreamer.js +0 -159
  235. package/dist/runtime/preprod/batchStreamer.js.map +0 -1
  236. package/dist/runtime/preprod/crEdgeServiceClient.d.ts +0 -30
  237. package/dist/runtime/preprod/crEdgeServiceClient.js +0 -133
  238. package/dist/runtime/preprod/crEdgeServiceClient.js.map +0 -1
  239. package/dist/runtime/preprod/progressTracker.d.ts +0 -21
  240. package/dist/runtime/preprod/progressTracker.js +0 -80
  241. package/dist/runtime/preprod/progressTracker.js.map +0 -1
  242. package/dist/runtime/preprod/webCheck.d.ts +0 -1
  243. package/dist/runtime/preprod/webCheck.js +0 -102
  244. package/dist/runtime/preprod/webCheck.js.map +0 -1
  245. package/dist/runtime/proxyConfig.d.ts +0 -6
  246. package/dist/runtime/proxyConfig.js +0 -86
  247. package/dist/runtime/proxyConfig.js.map +0 -1
  248. package/dist/runtime/proxyEnvironment.d.ts +0 -3
  249. package/dist/runtime/proxyEnvironment.js +0 -63
  250. package/dist/runtime/proxyEnvironment.js.map +0 -1
  251. package/dist/runtime/reportMerge.d.ts +0 -30
  252. package/dist/runtime/reportMerge.js +0 -70
  253. package/dist/runtime/reportMerge.js.map +0 -1
  254. package/dist/runtime/reporting/markdownReportBuilder.d.ts +0 -17
  255. package/dist/runtime/reporting/markdownReportBuilder.js +0 -154
  256. package/dist/runtime/reporting/markdownReportBuilder.js.map +0 -1
  257. package/dist/runtime/reporting/reportDataCollector.d.ts +0 -31
  258. package/dist/runtime/reporting/reportDataCollector.js +0 -170
  259. package/dist/runtime/reporting/reportDataCollector.js.map +0 -1
  260. package/dist/runtime/reporting/summaryGenerator.d.ts +0 -10
  261. package/dist/runtime/reporting/summaryGenerator.js +0 -67
  262. package/dist/runtime/reporting/summaryGenerator.js.map +0 -1
  263. package/dist/runtime/runAiCodeReview.d.ts +0 -36
  264. package/dist/runtime/runAiCodeReview.js +0 -409
  265. package/dist/runtime/runAiCodeReview.js.map +0 -1
  266. package/dist/runtime/runtimeConfig.d.ts +0 -4
  267. package/dist/runtime/runtimeConfig.js +0 -7
  268. package/dist/runtime/runtimeConfig.js.map +0 -1
  269. package/dist/strategies/ArchitecturalReviewStrategy.d.ts +0 -29
  270. package/dist/strategies/ArchitecturalReviewStrategy.js +0 -42
  271. package/dist/strategies/ArchitecturalReviewStrategy.js.map +0 -1
  272. package/dist/strategies/CodingTestReviewStrategy.d.ts +0 -194
  273. package/dist/strategies/CodingTestReviewStrategy.js +0 -681
  274. package/dist/strategies/CodingTestReviewStrategy.js.map +0 -1
  275. package/dist/strategies/ConsolidatedReviewStrategy.d.ts +0 -25
  276. package/dist/strategies/ConsolidatedReviewStrategy.js +0 -45
  277. package/dist/strategies/ConsolidatedReviewStrategy.js.map +0 -1
  278. package/dist/strategies/ExtractPatternsReviewStrategy.d.ts +0 -30
  279. package/dist/strategies/ExtractPatternsReviewStrategy.js +0 -51
  280. package/dist/strategies/ExtractPatternsReviewStrategy.js.map +0 -1
  281. package/dist/strategies/MultiPassReviewStrategy.d.ts +0 -86
  282. package/dist/strategies/MultiPassReviewStrategy.js +0 -590
  283. package/dist/strategies/MultiPassReviewStrategy.js.map +0 -1
  284. package/dist/strategies/ReviewStrategy.d.ts +0 -45
  285. package/dist/strategies/ReviewStrategy.js +0 -24
  286. package/dist/strategies/ReviewStrategy.js.map +0 -1
  287. package/dist/strategies/StrategyFactory.d.ts +0 -19
  288. package/dist/strategies/StrategyFactory.js +0 -72
  289. package/dist/strategies/StrategyFactory.js.map +0 -1
  290. package/dist/strategies/index.d.ts +0 -13
  291. package/dist/strategies/index.js +0 -30
  292. package/dist/strategies/index.js.map +0 -1
  293. package/dist/tokenizers/baseTokenizer.d.ts +0 -25
  294. package/dist/tokenizers/baseTokenizer.js +0 -48
  295. package/dist/tokenizers/baseTokenizer.js.map +0 -1
  296. package/dist/tokenizers/gptTokenizer.d.ts +0 -7
  297. package/dist/tokenizers/gptTokenizer.js +0 -28
  298. package/dist/tokenizers/gptTokenizer.js.map +0 -1
  299. package/dist/tokenizers/index.d.ts +0 -7
  300. package/dist/tokenizers/index.js +0 -24
  301. package/dist/tokenizers/index.js.map +0 -1
  302. package/dist/types/apiResponses.d.ts +0 -39
  303. package/dist/types/apiResponses.js +0 -9
  304. package/dist/types/apiResponses.js.map +0 -1
  305. package/dist/types/cli.d.ts +0 -22
  306. package/dist/types/cli.js +0 -3
  307. package/dist/types/cli.js.map +0 -1
  308. package/dist/types/common.d.ts +0 -22
  309. package/dist/types/common.js +0 -14
  310. package/dist/types/common.js.map +0 -1
  311. package/dist/types/configuration.d.ts +0 -682
  312. package/dist/types/configuration.js +0 -65
  313. package/dist/types/configuration.js.map +0 -1
  314. package/dist/types/review.d.ts +0 -318
  315. package/dist/types/review.js +0 -8
  316. package/dist/types/review.js.map +0 -1
  317. package/dist/types/reviewSchema.d.ts +0 -543
  318. package/dist/types/reviewSchema.js +0 -121
  319. package/dist/types/reviewSchema.js.map +0 -1
  320. package/dist/types/structuredReview.d.ts +0 -119
  321. package/dist/types/structuredReview.js +0 -6
  322. package/dist/types/structuredReview.js.map +0 -1
  323. package/dist/types/tokenAnalysis.d.ts +0 -44
  324. package/dist/types/tokenAnalysis.js +0 -4
  325. package/dist/types/tokenAnalysis.js.map +0 -1
  326. package/dist/utils/FileReader.d.ts +0 -33
  327. package/dist/utils/FileReader.js +0 -88
  328. package/dist/utils/FileReader.js.map +0 -1
  329. package/dist/utils/FileWriter.d.ts +0 -26
  330. package/dist/utils/FileWriter.js +0 -76
  331. package/dist/utils/FileWriter.js.map +0 -1
  332. package/dist/utils/PathGenerator.d.ts +0 -30
  333. package/dist/utils/PathGenerator.js +0 -82
  334. package/dist/utils/PathGenerator.js.map +0 -1
  335. package/dist/utils/api/apiUtils.d.ts +0 -3
  336. package/dist/utils/api/apiUtils.js +0 -20
  337. package/dist/utils/api/apiUtils.js.map +0 -1
  338. package/dist/utils/api/index.d.ts +0 -1
  339. package/dist/utils/api/index.js +0 -18
  340. package/dist/utils/api/index.js.map +0 -1
  341. package/dist/utils/apiErrorHandler.d.ts +0 -130
  342. package/dist/utils/apiErrorHandler.js +0 -256
  343. package/dist/utils/apiErrorHandler.js.map +0 -1
  344. package/dist/utils/ciDataCollector.d.ts +0 -51
  345. package/dist/utils/ciDataCollector.js +0 -197
  346. package/dist/utils/ciDataCollector.js.map +0 -1
  347. package/dist/utils/codingTestConfigLoader.d.ts +0 -66
  348. package/dist/utils/codingTestConfigLoader.js +0 -420
  349. package/dist/utils/codingTestConfigLoader.js.map +0 -1
  350. package/dist/utils/dependencies/aiDependencyAnalyzer.d.ts +0 -30
  351. package/dist/utils/dependencies/aiDependencyAnalyzer.js +0 -343
  352. package/dist/utils/dependencies/aiDependencyAnalyzer.js.map +0 -1
  353. package/dist/utils/detection/frameworkDetector.d.ts +0 -43
  354. package/dist/utils/detection/frameworkDetector.js +0 -850
  355. package/dist/utils/detection/frameworkDetector.js.map +0 -1
  356. package/dist/utils/detection/index.d.ts +0 -9
  357. package/dist/utils/detection/index.js +0 -28
  358. package/dist/utils/detection/index.js.map +0 -1
  359. package/dist/utils/detection/projectTypeDetector.d.ts +0 -27
  360. package/dist/utils/detection/projectTypeDetector.js +0 -469
  361. package/dist/utils/detection/projectTypeDetector.js.map +0 -1
  362. package/dist/utils/diagramGenerator.d.ts +0 -49
  363. package/dist/utils/diagramGenerator.js +0 -218
  364. package/dist/utils/diagramGenerator.js.map +0 -1
  365. package/dist/utils/errorLogger.d.ts +0 -24
  366. package/dist/utils/errorLogger.js +0 -59
  367. package/dist/utils/errorLogger.js.map +0 -1
  368. package/dist/utils/estimationUtils.d.ts +0 -139
  369. package/dist/utils/estimationUtils.js +0 -329
  370. package/dist/utils/estimationUtils.js.map +0 -1
  371. package/dist/utils/fileFilters.d.ts +0 -72
  372. package/dist/utils/fileFilters.js +0 -350
  373. package/dist/utils/fileFilters.js.map +0 -1
  374. package/dist/utils/fileSystem.d.ts +0 -22
  375. package/dist/utils/fileSystem.js +0 -45
  376. package/dist/utils/fileSystem.js.map +0 -1
  377. package/dist/utils/index.d.ts +0 -22
  378. package/dist/utils/index.js +0 -52
  379. package/dist/utils/index.js.map +0 -1
  380. package/dist/utils/pathValidator.d.ts +0 -40
  381. package/dist/utils/pathValidator.js +0 -98
  382. package/dist/utils/pathValidator.js.map +0 -1
  383. package/dist/utils/priorityFilter.d.ts +0 -34
  384. package/dist/utils/priorityFilter.js +0 -54
  385. package/dist/utils/priorityFilter.js.map +0 -1
  386. package/dist/utils/projectDocs.d.ts +0 -47
  387. package/dist/utils/projectDocs.js +0 -158
  388. package/dist/utils/projectDocs.js.map +0 -1
  389. package/dist/utils/promptPaths.d.ts +0 -6
  390. package/dist/utils/promptPaths.js +0 -33
  391. package/dist/utils/promptPaths.js.map +0 -1
  392. package/dist/utils/promptTemplateManager.d.ts +0 -34
  393. package/dist/utils/promptTemplateManager.js +0 -141
  394. package/dist/utils/promptTemplateManager.js.map +0 -1
  395. package/dist/utils/review/consolidateReview.d.ts +0 -15
  396. package/dist/utils/review/consolidateReview.js +0 -481
  397. package/dist/utils/review/consolidateReview.js.map +0 -1
  398. package/dist/utils/review/fixDisplay.d.ts +0 -20
  399. package/dist/utils/review/fixDisplay.js +0 -84
  400. package/dist/utils/review/fixDisplay.js.map +0 -1
  401. package/dist/utils/review/fixImplementation.d.ts +0 -28
  402. package/dist/utils/review/fixImplementation.js +0 -60
  403. package/dist/utils/review/fixImplementation.js.map +0 -1
  404. package/dist/utils/review/index.d.ts +0 -13
  405. package/dist/utils/review/index.js +0 -50
  406. package/dist/utils/review/index.js.map +0 -1
  407. package/dist/utils/review/interactiveProcessing.d.ts +0 -25
  408. package/dist/utils/review/interactiveProcessing.js +0 -251
  409. package/dist/utils/review/interactiveProcessing.js.map +0 -1
  410. package/dist/utils/review/progressTracker.d.ts +0 -106
  411. package/dist/utils/review/progressTracker.js +0 -227
  412. package/dist/utils/review/progressTracker.js.map +0 -1
  413. package/dist/utils/review/reviewExtraction.d.ts +0 -31
  414. package/dist/utils/review/reviewExtraction.js +0 -324
  415. package/dist/utils/review/reviewExtraction.js.map +0 -1
  416. package/dist/utils/review/types.d.ts +0 -45
  417. package/dist/utils/review/types.js +0 -18
  418. package/dist/utils/review/types.js.map +0 -1
  419. package/dist/utils/reviewActionHandler.d.ts +0 -16
  420. package/dist/utils/reviewActionHandler.js +0 -34
  421. package/dist/utils/reviewActionHandler.js.map +0 -1
  422. package/dist/utils/reviewParser.d.ts +0 -34
  423. package/dist/utils/reviewParser.js +0 -218
  424. package/dist/utils/reviewParser.js.map +0 -1
  425. package/dist/utils/sanitizer.d.ts +0 -82
  426. package/dist/utils/sanitizer.js +0 -239
  427. package/dist/utils/sanitizer.js.map +0 -1
  428. package/dist/utils/smartFileSelector.d.ts +0 -50
  429. package/dist/utils/smartFileSelector.js +0 -261
  430. package/dist/utils/smartFileSelector.js.map +0 -1
  431. package/dist/utils/templateLoader.d.ts +0 -44
  432. package/dist/utils/templateLoader.js +0 -431
  433. package/dist/utils/templateLoader.js.map +0 -1
  434. package/dist/utils/treeGenerator.d.ts +0 -12
  435. package/dist/utils/treeGenerator.js +0 -133
  436. 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":"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"}
@@ -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":";;;;;AAyBA,0CAmCC;AA5DD,qCAA8D;AAC9D,yCAAwG;AACxG,iCAA8B;AAC9B,oDAA4B;AAC5B,qCAA4C;AAmB5C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC;AAE3D,KAAK,UAAU,eAAe,CAAC,OAA+B;IACnE,MAAM,aAAa,GAAG,IAAA,mBAAW,EAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,eAAe,EAAE,CAAC;IAEzC,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QAChD,MAAM,IAAI,yBAAgB,CAAC,aAAa,CAAC,CAAC;IAC5C,CAAC;IAED,MAAM,OAAO,GAAG,kBAAkB,CAAC,aAAa,EAAE,QAAQ,IAAI,aAAa,CAAC,CAAC;IAE7E,IAAI,OAAO,CAAC,IAAI,KAAK,aAAa,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,MAAM,uBAAuB,CAAC,aAAa,EAAE,QAAS,EAAE,OAAO,CAAC,CAAC;QACrF,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,kBAAkB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7F,MAAM,QAAQ,GAAG,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;QAElD,OAAO;YACL,KAAK,EAAE,QAAQ;YACf,KAAK,EAAE;gBACL,WAAW,EAAE,WAAW,CAAC,MAAM;gBAC/B,OAAO,EAAE,OAAO,CAAC,MAAM;aACxB;SACF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ;QACrB,CAAC,CAAC,MAAM,sBAAsB,CAAC,aAAa,EAAE,OAAO,CAAC;QACtD,CAAC,CAAC,MAAM,YAAY,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IAE/C,OAAO;QACL,KAAK,EAAE,MAAM;QACb,KAAK,EAAE;YACL,WAAW,EAAE,MAAM,CAAC,MAAM;YAC1B,OAAO,EAAE,CAAC;SACX;KACF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,eAAe;IAC5B,IAAI,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAA,aAAK,EAAC,KAAK,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,CAAC,CAAC;QACxE,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,uBAAuB,CACpC,aAAqB,EACrB,QAAgB,EAChB,OAA8C;IAE9C,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACrF,MAAM,QAAQ,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/E,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAA,aAAK,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC;IAC7D,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAA,aAAK,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEzD,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACjD,MAAM,KAAK,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;QAEvC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,SAAS;QACX,CAAC;QAED,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACxC,MAAM,aAAa,GAAG,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3C,IAAI,aAAa,EAAE,CAAC;gBAClB,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAChC,CAAC,IAAI,CAAC,CAAC;gBACP,SAAS;YACX,CAAC;QACH,CAAC;QAED,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7B,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,WAAW,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;IAEvD,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAED,KAAK,UAAU,sBAAsB,CACnC,aAAqB,EACrB,OAA8C;IAE9C,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3E,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/G,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3E,IAAA,aAAK,EAAC,KAAK,EAAE,WAAW,CAAC;QACzB,IAAA,aAAK,EAAC,KAAK,EAAE,aAAa,CAAC;KAC5B,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC;IAEnD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC;SACtB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,mBAAW,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC;SAC/C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACvC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;SAC9C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;AACpC,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,KAAe,EAAE,OAA8C;IAC/F,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAChE,MAAM,OAAO,GAAa,EAAE,CAAC;IAE7B,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,qBAAW,EAAC,GAAG,CAAC,CAAC;YACjC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC5B,SAAS;gBACX,CAAC;gBACD,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACzC,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;oBACpC,SAAS;gBACX,CAAC;gBACD,IAAI,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACrB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACzB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,gCAAgC;QAClC,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,UAAU,CAAC,IAAc,EAAE,MAAgB;IAClD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAU,CAAC;IACjC,KAAK,MAAM,IAAI,IAAI,IAAI;QAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1C,KAAK,MAAM,IAAI,IAAI,MAAM;QAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC;AAED,SAAS,cAAc,CACrB,KAAe,EACf,QAAgB,EAChB,aAAqB,EACrB,OAA8C;IAE9C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;YAC3B,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QAC7C,IAAI,CAAC,iBAAiB,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,CAAC;YAChD,SAAS;QACX,CAAC;QAED,IAAI,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE,CAAC;YACpC,SAAS;QACX,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,SAAS;QACX,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC1B,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,kBAAkB,CAAC,aAAqB,EAAE,QAAgB;IACjE,MAAM,EAAE,GAAG,IAAA,gBAAM,GAAE,CAAC;IACpB,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;QAC7B,IAAA,gBAAQ,EAAC,QAAQ,EAAE,YAAY,CAAC;QAChC,IAAA,gBAAQ,EAAC,aAAa,EAAE,YAAY,CAAC;KACtC,CAAC,CAAC;IACH,MAAM,YAAY,GAAG,IAAA,gBAAQ,EAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAE1D,KAAK,MAAM,UAAU,IAAI,cAAc,EAAE,CAAC;QACxC,aAAa,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAChC,CAAC;IACD,aAAa,CAAC,EAAE,EAAE,YAAY,CAAC,CAAC;IAEhC,OAAO;QACL,EAAE;QACF,aAAa;KACd,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,EAA6B,EAAE,QAAgB;IACpE,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,IAAA,sBAAY,EAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC/C,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,8BAA8B;IAChC,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,YAAoB,EAAE,OAA8C;IACxF,MAAM,QAAQ,GAAG,IAAA,oBAAY,EAAC,OAAO,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACnE,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACzC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACtC,CAAC;AAED,SAAS,iBAAiB,CAAC,YAAoB,EAAE,aAAqB;IACpE,MAAM,GAAG,GAAG,IAAA,oBAAY,EAAC,aAAa,EAAE,YAAY,CAAC,CAAC;IACtD,OAAO,GAAG,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,YAAY,CAAC,IAAY,EAAE,OAA8C;IAChF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;IAErB,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QAEvB,IAAI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC;YACnC,SAAS;QACX,CAAC;QAED,IAAI,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YACpB,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxB,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAA,qBAAW,EAAC,OAAO,CAAC,CAAC;YACrC,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;gBAC7C,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC7B,SAAS;gBACX,CAAC;gBACD,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,MAAM,CAAC,IAAY;IAC1B,IAAI,CAAC;QACH,OAAO,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -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>;