code-auditor-mcp 5.0.2 → 5.3.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 (419) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +326 -3
  3. package/README.md +24 -2
  4. package/configs/hhra-compat.json +12 -118
  5. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  6. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +11 -1
  7. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  8. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
  9. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +57 -52
  10. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  11. package/dist/analyzers/provenance.d.ts +9 -4
  12. package/dist/analyzers/provenance.d.ts.map +1 -1
  13. package/dist/analyzers/provenance.js +8 -25
  14. package/dist/analyzers/provenance.js.map +1 -1
  15. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  16. package/dist/analyzers/reactAnalyzer.js +35 -14
  17. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  18. package/dist/analyzers/ruleRegistry.js +4 -4
  19. package/dist/analyzers/ruleRegistry.js.map +1 -1
  20. package/dist/analyzers/ruleTiming.d.ts +1 -1
  21. package/dist/analyzers/ruleTiming.js +2 -2
  22. package/dist/analyzers/ruleTiming.js.map +1 -1
  23. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
  24. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +22 -26
  25. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
  26. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +0 -2
  27. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  28. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +4 -5
  29. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  30. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +32 -15
  31. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  32. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +189 -115
  33. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  34. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +0 -2
  35. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  36. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +0 -5
  37. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  38. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -10
  39. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  40. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +7 -49
  41. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  42. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
  43. package/dist/analyzers/universal/schema/codeAnalysis.js +51 -3
  44. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  45. package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
  46. package/dist/analyzers/universal/schema/config.js +0 -2
  47. package/dist/analyzers/universal/schema/config.js.map +1 -1
  48. package/dist/analyzers/universal/schema/types.d.ts +0 -2
  49. package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
  50. package/dist/analyzers/vendorSurfaces.d.ts +126 -0
  51. package/dist/analyzers/vendorSurfaces.d.ts.map +1 -0
  52. package/dist/analyzers/vendorSurfaces.js +580 -0
  53. package/dist/analyzers/vendorSurfaces.js.map +1 -0
  54. package/dist/auditRunner.d.ts +9 -1
  55. package/dist/auditRunner.d.ts.map +1 -1
  56. package/dist/auditRunner.js +198 -146
  57. package/dist/auditRunner.js.map +1 -1
  58. package/dist/cacheGc.d.ts +88 -0
  59. package/dist/cacheGc.d.ts.map +1 -0
  60. package/dist/cacheGc.js +196 -0
  61. package/dist/cacheGc.js.map +1 -0
  62. package/dist/churn/churnExtractor.d.ts +0 -1
  63. package/dist/churn/churnExtractor.d.ts.map +1 -1
  64. package/dist/churn/churnExtractor.js +2 -4
  65. package/dist/churn/churnExtractor.js.map +1 -1
  66. package/dist/cli.d.ts +1 -1
  67. package/dist/cli.d.ts.map +1 -1
  68. package/dist/cli.js +260 -47
  69. package/dist/cli.js.map +1 -1
  70. package/dist/codeIndex/migrations.d.ts.map +1 -1
  71. package/dist/codeIndex/migrations.js +4 -3
  72. package/dist/codeIndex/migrations.js.map +1 -1
  73. package/dist/codeIndexDB.d.ts +11 -2
  74. package/dist/codeIndexDB.d.ts.map +1 -1
  75. package/dist/codeIndexDB.js +27 -2
  76. package/dist/codeIndexDB.js.map +1 -1
  77. package/dist/config/configLoader.d.ts +60 -7
  78. package/dist/config/configLoader.d.ts.map +1 -1
  79. package/dist/config/configLoader.js +252 -60
  80. package/dist/config/configLoader.js.map +1 -1
  81. package/dist/config/defaults.d.ts +137 -43
  82. package/dist/config/defaults.d.ts.map +1 -1
  83. package/dist/config/defaults.js +174 -101
  84. package/dist/config/defaults.js.map +1 -1
  85. package/dist/config/effectiveConfig.d.ts +1 -1
  86. package/dist/config/effectiveConfig.d.ts.map +1 -1
  87. package/dist/config/effectiveConfig.js +4 -6
  88. package/dist/config/effectiveConfig.js.map +1 -1
  89. package/dist/config/pathProfiles.d.ts +4 -3
  90. package/dist/config/pathProfiles.d.ts.map +1 -1
  91. package/dist/config/pathProfiles.js +3 -2
  92. package/dist/config/pathProfiles.js.map +1 -1
  93. package/dist/constants.d.ts +2 -1
  94. package/dist/constants.d.ts.map +1 -1
  95. package/dist/constants.js +4 -0
  96. package/dist/constants.js.map +1 -1
  97. package/dist/daemon/main.d.ts +0 -1
  98. package/dist/daemon/main.d.ts.map +1 -1
  99. package/dist/daemon/main.js +11 -4
  100. package/dist/daemon/main.js.map +1 -1
  101. package/dist/dataPaths.d.ts +32 -9
  102. package/dist/dataPaths.d.ts.map +1 -1
  103. package/dist/dataPaths.js +69 -16
  104. package/dist/dataPaths.js.map +1 -1
  105. package/dist/hookLog.d.ts +54 -0
  106. package/dist/hookLog.d.ts.map +1 -0
  107. package/dist/hookLog.js +105 -0
  108. package/dist/hookLog.js.map +1 -0
  109. package/dist/hookLogPath.generated.d.ts +3 -0
  110. package/dist/hookLogPath.generated.d.ts.map +1 -0
  111. package/dist/hookLogPath.generated.js +8 -0
  112. package/dist/hookLogPath.generated.js.map +1 -0
  113. package/dist/index.d.ts +0 -5
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +0 -7
  116. package/dist/index.js.map +1 -1
  117. package/dist/installConfig.d.ts +15 -2
  118. package/dist/installConfig.d.ts.map +1 -1
  119. package/dist/installConfig.js +17 -2
  120. package/dist/installConfig.js.map +1 -1
  121. package/dist/installer.d.ts.map +1 -1
  122. package/dist/installer.js +2 -1
  123. package/dist/installer.js.map +1 -1
  124. package/dist/languages/adapterBridge.d.ts +11 -0
  125. package/dist/languages/adapterBridge.d.ts.map +1 -1
  126. package/dist/languages/adapterBridge.js +11 -0
  127. package/dist/languages/adapterBridge.js.map +1 -1
  128. package/dist/languages/types.d.ts +8 -0
  129. package/dist/languages/types.d.ts.map +1 -1
  130. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +13 -0
  131. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  132. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +135 -18
  133. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  134. package/dist/ledger.d.ts +7 -0
  135. package/dist/ledger.d.ts.map +1 -1
  136. package/dist/ledger.js +7 -0
  137. package/dist/ledger.js.map +1 -1
  138. package/dist/mcp-tools/workflowGuide.js +8 -8
  139. package/dist/mcp-tools/workflowGuide.js.map +1 -1
  140. package/dist/mcp-tools-shared.d.ts.map +1 -1
  141. package/dist/mcp-tools-shared.js +5 -2
  142. package/dist/mcp-tools-shared.js.map +1 -1
  143. package/dist/mcp-ui-simple.d.ts +5 -0
  144. package/dist/mcp-ui-simple.d.ts.map +1 -1
  145. package/dist/mcp-ui-simple.js +9 -2
  146. package/dist/mcp-ui-simple.js.map +1 -1
  147. package/dist/mcp.d.ts +0 -1
  148. package/dist/mcp.d.ts.map +1 -1
  149. package/dist/mcp.js +36 -33
  150. package/dist/mcp.js.map +1 -1
  151. package/dist/mcpAuditJobs.d.ts +10 -0
  152. package/dist/mcpAuditJobs.d.ts.map +1 -1
  153. package/dist/mcpAuditJobs.js +10 -1
  154. package/dist/mcpAuditJobs.js.map +1 -1
  155. package/dist/mcpAutoIndex.d.ts.map +1 -1
  156. package/dist/mcpAutoIndex.js +2 -1
  157. package/dist/mcpAutoIndex.js.map +1 -1
  158. package/dist/mcpDiagnostics.d.ts +2 -0
  159. package/dist/mcpDiagnostics.d.ts.map +1 -1
  160. package/dist/mcpDiagnostics.js +2 -0
  161. package/dist/mcpDiagnostics.js.map +1 -1
  162. package/dist/phase/candidates.d.ts +53 -0
  163. package/dist/phase/candidates.d.ts.map +1 -0
  164. package/dist/phase/candidates.js +67 -0
  165. package/dist/phase/candidates.js.map +1 -0
  166. package/dist/phase/colorMath.d.ts +18 -5
  167. package/dist/phase/colorMath.d.ts.map +1 -1
  168. package/dist/phase/colorMath.js +88 -5
  169. package/dist/phase/colorMath.js.map +1 -1
  170. package/dist/phase/dataAccessCallsCandidates.js +1 -1
  171. package/dist/phase/dataAccessCallsCandidates.js.map +1 -1
  172. package/dist/phase/goFunctionAnalysis.d.ts +2 -2
  173. package/dist/phase/goFunctionAnalysis.js +2 -2
  174. package/dist/phase/goFunctions.d.ts +2 -2
  175. package/dist/phase/goFunctions.js +2 -2
  176. package/dist/phase/goImports.d.ts +2 -2
  177. package/dist/phase/goImports.js +2 -2
  178. package/dist/phase/goSwitches.d.ts +2 -2
  179. package/dist/phase/goSwitches.js +2 -2
  180. package/dist/phase/imports.d.ts.map +1 -1
  181. package/dist/phase/imports.js +1 -0
  182. package/dist/phase/imports.js.map +1 -1
  183. package/dist/phase/loopQueryCandidates.js +1 -1
  184. package/dist/phase/loopQueryCandidates.js.map +1 -1
  185. package/dist/phase/oracles.d.ts +28 -0
  186. package/dist/phase/oracles.d.ts.map +1 -1
  187. package/dist/phase/oracles.js +28 -0
  188. package/dist/phase/oracles.js.map +1 -1
  189. package/dist/phase/phaseModel.d.ts +47 -8
  190. package/dist/phase/phaseModel.d.ts.map +1 -1
  191. package/dist/phase/phaseModel.js +44 -8
  192. package/dist/phase/phaseModel.js.map +1 -1
  193. package/dist/phase/producers.d.ts.map +1 -1
  194. package/dist/phase/producers.js +24 -17
  195. package/dist/phase/producers.js.map +1 -1
  196. package/dist/phase/reachability.d.ts +44 -1
  197. package/dist/phase/reachability.d.ts.map +1 -1
  198. package/dist/phase/reachability.js +79 -0
  199. package/dist/phase/reachability.js.map +1 -1
  200. package/dist/phase/rules/conventions.d.ts.map +1 -1
  201. package/dist/phase/rules/conventions.js +6 -2
  202. package/dist/phase/rules/conventions.js.map +1 -1
  203. package/dist/phase/rules/crossDomain.d.ts.map +1 -1
  204. package/dist/phase/rules/crossDomain.js +16 -6
  205. package/dist/phase/rules/crossDomain.js.map +1 -1
  206. package/dist/phase/rules/dataAccess.d.ts.map +1 -1
  207. package/dist/phase/rules/dataAccess.js +13 -0
  208. package/dist/phase/rules/dataAccess.js.map +1 -1
  209. package/dist/phase/rules/documentation.d.ts.map +1 -1
  210. package/dist/phase/rules/documentation.js +11 -1
  211. package/dist/phase/rules/documentation.js.map +1 -1
  212. package/dist/phase/rules/dry.d.ts +16 -7
  213. package/dist/phase/rules/dry.d.ts.map +1 -1
  214. package/dist/phase/rules/dry.js +51 -32
  215. package/dist/phase/rules/dry.js.map +1 -1
  216. package/dist/phase/rules/goRules.d.ts +2 -2
  217. package/dist/phase/rules/goRules.js +2 -2
  218. package/dist/phase/rules/secrets.d.ts +22 -8
  219. package/dist/phase/rules/secrets.d.ts.map +1 -1
  220. package/dist/phase/rules/secrets.js +75 -69
  221. package/dist/phase/rules/secrets.js.map +1 -1
  222. package/dist/phase/rules/styles.d.ts +23 -9
  223. package/dist/phase/rules/styles.d.ts.map +1 -1
  224. package/dist/phase/rules/styles.js +61 -15
  225. package/dist/phase/rules/styles.js.map +1 -1
  226. package/dist/phase/rules/unreferencedModule.d.ts.map +1 -1
  227. package/dist/phase/rules/unreferencedModule.js +32 -10
  228. package/dist/phase/rules/unreferencedModule.js.map +1 -1
  229. package/dist/phase/runner.d.ts +16 -7
  230. package/dist/phase/runner.d.ts.map +1 -1
  231. package/dist/phase/runner.js +32 -20
  232. package/dist/phase/runner.js.map +1 -1
  233. package/dist/phase/stringLiterals.d.ts.map +1 -1
  234. package/dist/phase/stringLiterals.js +16 -7
  235. package/dist/phase/stringLiterals.js.map +1 -1
  236. package/dist/phase/stylesCss.d.ts.map +1 -1
  237. package/dist/phase/stylesCss.js +4 -0
  238. package/dist/phase/stylesCss.js.map +1 -1
  239. package/dist/phase/stylesMarkup.d.ts.map +1 -1
  240. package/dist/phase/stylesMarkup.js +4 -0
  241. package/dist/phase/stylesMarkup.js.map +1 -1
  242. package/dist/phase/stylesSource.d.ts.map +1 -1
  243. package/dist/phase/stylesSource.js +6 -0
  244. package/dist/phase/stylesSource.js.map +1 -1
  245. package/dist/phase/testProgram.d.ts +57 -0
  246. package/dist/phase/testProgram.d.ts.map +1 -0
  247. package/dist/phase/testProgram.js +244 -0
  248. package/dist/phase/testProgram.js.map +1 -0
  249. package/dist/phase/typeDeclarations.d.ts +2 -2
  250. package/dist/phase/typeDeclarations.js +2 -2
  251. package/dist/phase/types.d.ts +104 -0
  252. package/dist/phase/types.d.ts.map +1 -1
  253. package/dist/pipeline.d.ts +4 -0
  254. package/dist/pipeline.d.ts.map +1 -1
  255. package/dist/pipeline.js +4 -0
  256. package/dist/pipeline.js.map +1 -1
  257. package/dist/pipelineAdapters.d.ts +1 -171
  258. package/dist/pipelineAdapters.d.ts.map +1 -1
  259. package/dist/pipelineAdapters.js +47 -1281
  260. package/dist/pipelineAdapters.js.map +1 -1
  261. package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
  262. package/dist/reporting/csvReportGenerator.js +0 -6
  263. package/dist/reporting/csvReportGenerator.js.map +1 -1
  264. package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
  265. package/dist/reporting/htmlReportGenerator.js +0 -4
  266. package/dist/reporting/htmlReportGenerator.js.map +1 -1
  267. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  268. package/dist/reporting/jsonReportGenerator.js +0 -1
  269. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  270. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
  271. package/dist/reporting/sarifReportGenerator.js +0 -7
  272. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  273. package/dist/services/auditJobService.d.ts +15 -0
  274. package/dist/services/auditJobService.d.ts.map +1 -1
  275. package/dist/services/auditJobService.js +15 -0
  276. package/dist/services/auditJobService.js.map +1 -1
  277. package/dist/services/projectTaskHelpers.d.ts +7 -0
  278. package/dist/services/projectTaskHelpers.d.ts.map +1 -1
  279. package/dist/services/projectTaskHelpers.js +7 -0
  280. package/dist/services/projectTaskHelpers.js.map +1 -1
  281. package/dist/services/whitelistService.d.ts +28 -0
  282. package/dist/services/whitelistService.d.ts.map +1 -1
  283. package/dist/services/whitelistService.js +28 -0
  284. package/dist/services/whitelistService.js.map +1 -1
  285. package/dist/sqlite/driver.d.ts +17 -1
  286. package/dist/sqlite/driver.d.ts.map +1 -1
  287. package/dist/sqlite/driver.js +28 -5
  288. package/dist/sqlite/driver.js.map +1 -1
  289. package/dist/styles/cssInJsHarvest.d.ts +36 -0
  290. package/dist/styles/cssInJsHarvest.d.ts.map +1 -0
  291. package/dist/styles/cssInJsHarvest.js +78 -0
  292. package/dist/styles/cssInJsHarvest.js.map +1 -0
  293. package/dist/styles/definedClasses.d.ts +95 -0
  294. package/dist/styles/definedClasses.d.ts.map +1 -0
  295. package/dist/styles/definedClasses.js +129 -0
  296. package/dist/styles/definedClasses.js.map +1 -0
  297. package/dist/styles/markupStyleHarvest.d.ts +33 -0
  298. package/dist/styles/markupStyleHarvest.d.ts.map +1 -0
  299. package/dist/styles/markupStyleHarvest.js +73 -0
  300. package/dist/styles/markupStyleHarvest.js.map +1 -0
  301. package/dist/styles/styleExtractor.d.ts +37 -0
  302. package/dist/styles/styleExtractor.d.ts.map +1 -1
  303. package/dist/styles/styleExtractor.js +89 -33
  304. package/dist/styles/styleExtractor.js.map +1 -1
  305. package/dist/styles/styleIndexer.d.ts.map +1 -1
  306. package/dist/styles/styleIndexer.js +11 -10
  307. package/dist/styles/styleIndexer.js.map +1 -1
  308. package/dist/styles/tailwindExpander.d.ts.map +1 -1
  309. package/dist/styles/tailwindExpander.js +31 -10
  310. package/dist/styles/tailwindExpander.js.map +1 -1
  311. package/dist/styles/tailwindUtilityExpander.d.ts +4 -0
  312. package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
  313. package/dist/styles/tailwindUtilityExpander.js +4 -0
  314. package/dist/styles/tailwindUtilityExpander.js.map +1 -1
  315. package/dist/telemetry.d.ts +67 -1
  316. package/dist/telemetry.d.ts.map +1 -1
  317. package/dist/telemetry.js +100 -20
  318. package/dist/telemetry.js.map +1 -1
  319. package/dist/types/crossLanguage.d.ts +1 -0
  320. package/dist/types/crossLanguage.d.ts.map +1 -1
  321. package/dist/types.d.ts +73 -56
  322. package/dist/types.d.ts.map +1 -1
  323. package/dist/types.js +4 -4
  324. package/dist/types.js.map +1 -1
  325. package/dist/version.generated.d.ts +1 -1
  326. package/dist/version.generated.js +1 -1
  327. package/examples/.auditrc.example.json +7 -22
  328. package/examples/.auditrc.json +12 -155
  329. package/examples/.code-auditor.json +8 -51
  330. package/examples/nextjs.auditrc.json +7 -34
  331. package/examples/node-api.auditrc.json +6 -46
  332. package/examples/react.auditrc.json +8 -25
  333. package/examples/tolerant-solid.auditrc.json +12 -44
  334. package/package.json +8 -5
  335. package/plugin/.claude-plugin/manifest.json +10 -9
  336. package/plugin/.claude-plugin/plugin.json +1 -1
  337. package/plugin/hooks/hooks.json +4 -4
  338. package/plugin/scripts/hook-audit.sh +25 -10
  339. package/plugin/scripts/hook-common.sh +12 -7
  340. package/plugin/scripts/hook-drift-check.sh +10 -1
  341. package/plugin/scripts/hook-log-path.sh +7 -0
  342. package/plugin/scripts/hook-self-audit.sh +21 -6
  343. package/plugin/scripts/hook-warm.sh +17 -11
  344. package/plugin/skills/code-auditor/SKILL.md +26 -3
  345. package/server.json +2 -2
  346. package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts +0 -6
  347. package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts.map +0 -1
  348. package/dist/__tests__/fixtures/spec-20/scripts/tool.js +0 -12
  349. package/dist/__tests__/fixtures/spec-20/scripts/tool.js.map +0 -1
  350. package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts +0 -7
  351. package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts.map +0 -1
  352. package/dist/__tests__/fixtures/spec-20/src/demo-module.js +0 -13
  353. package/dist/__tests__/fixtures/spec-20/src/demo-module.js.map +0 -1
  354. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts +0 -14
  355. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts.map +0 -1
  356. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js +0 -16
  357. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js.map +0 -1
  358. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts +0 -15
  359. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts.map +0 -1
  360. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js +0 -17
  361. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js.map +0 -1
  362. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts +0 -14
  363. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts.map +0 -1
  364. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js +0 -19
  365. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js.map +0 -1
  366. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts +0 -18
  367. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +0 -1
  368. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js +0 -19
  369. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js.map +0 -1
  370. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts +0 -19
  371. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts.map +0 -1
  372. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js +0 -19
  373. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js.map +0 -1
  374. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts +0 -17
  375. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts.map +0 -1
  376. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js +0 -19
  377. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js.map +0 -1
  378. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts +0 -25
  379. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts.map +0 -1
  380. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js +0 -21
  381. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js.map +0 -1
  382. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts +0 -15
  383. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts.map +0 -1
  384. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js +0 -19
  385. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js.map +0 -1
  386. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts +0 -14
  387. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts.map +0 -1
  388. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js +0 -14
  389. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js.map +0 -1
  390. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts +0 -15
  391. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts.map +0 -1
  392. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js +0 -16
  393. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js.map +0 -1
  394. package/dist/languages/go/analyzer-darwin-amd64 +0 -0
  395. package/dist/languages/go/analyzer-darwin-arm64 +0 -0
  396. package/dist/languages/go/analyzer-linux-amd64 +0 -0
  397. package/dist/languages/go/analyzer-linux-arm64 +0 -0
  398. package/dist/languages/go/analyzer-src/analyzer.go +0 -643
  399. package/dist/languages/go/analyzer-src/dataaccess.go +0 -388
  400. package/dist/languages/go/analyzer-src/go.mod +0 -3
  401. package/dist/languages/go/analyzer-src/indexer.go +0 -268
  402. package/dist/languages/go/analyzer-src/parser.go +0 -461
  403. package/dist/languages/go/analyzer-src/solid.go +0 -311
  404. package/dist/languages/go/analyzer-src/testconventions.go +0 -25
  405. package/dist/languages/go/analyzer-src/types.go +0 -156
  406. package/dist/languages/go/analyzer-windows-amd64.exe +0 -0
  407. package/dist/languages/go/go.mod +0 -7
  408. package/dist/languages/go/main.go +0 -203
  409. package/dist/native/ast-grep-napi.darwin-arm64.node +0 -0
  410. package/dist/native/ast-grep-napi.darwin-x64.node +0 -0
  411. package/dist/native/ast-grep-napi.linux-arm64-gnu.node +0 -0
  412. package/dist/native/ast-grep-napi.linux-arm64-musl.node +0 -0
  413. package/dist/native/ast-grep-napi.linux-x64-gnu.node +0 -0
  414. package/dist/native/ast-grep-napi.linux-x64-musl.node +0 -0
  415. package/dist/native/ast-grep-napi.win32-x64-msvc.node +0 -0
  416. package/dist/native-bootstrap.d.ts +0 -15
  417. package/dist/native-bootstrap.d.ts.map +0 -1
  418. package/dist/native-bootstrap.js +0 -75
  419. package/dist/native-bootstrap.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"mcpDiagnostics.js","sourceRoot":"","sources":["../src/mcpDiagnostics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcpDiagnostics.js","sourceRoot":"","sources":["../src/mcpDiagnostics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Directive H item 2 — the candidate-emission artifact writer.
3
+ *
4
+ * The migrated rules select candidate sites through `ctx.emitCandidate` and
5
+ * the runner carries them out on `result.metadata.candidates`. This module
6
+ * serializes them to the diagnostic artifact that the services/ audit route
7
+ * consumes: per rule, its disposition vocabulary (keys + descriptions read
8
+ * straight from the rule's `dispositions`, never a literal list here) and its
9
+ * candidate sites, each enriched with the source line text at the site's span.
10
+ *
11
+ * The source line is read here — from the CLI's local filesystem — because the
12
+ * consumer (the services/ Worker) is remote and cannot read the audited tree.
13
+ * Nothing in this module (or anywhere under `app/`) reaches a model: it only
14
+ * writes the deterministic pre-classification record.
15
+ */
16
+ import type { AuditResult } from '../types.js';
17
+ export interface CandidatesArtifactSite {
18
+ file: string;
19
+ span: {
20
+ line: number;
21
+ column?: number;
22
+ };
23
+ disposition: string;
24
+ /** The source line text at `span.line`, read from the audited file so the
25
+ * remote audit route has the site's source without filesystem access. */
26
+ source: string;
27
+ }
28
+ export interface CandidatesArtifactRule {
29
+ ruleId: string;
30
+ /** The rule's disposition vocabulary, copied from the rule's own
31
+ * `dispositions` — the audit builds its choice `criteria` keys from these. */
32
+ dispositions: Array<{
33
+ key: string;
34
+ description: string;
35
+ }>;
36
+ sites: CandidatesArtifactSite[];
37
+ }
38
+ export interface CandidatesArtifact {
39
+ schemaVersion: 1;
40
+ generatedAt: string;
41
+ rules: CandidatesArtifactRule[];
42
+ }
43
+ /**
44
+ * Build the candidates artifact from an audit result. Rules that declared
45
+ * `dispositions` but emitted no candidate sites are omitted (the artifact only
46
+ * carries sites the audit will sample). Candidate sites are grouped by rule id;
47
+ * ordering follows first-emission order.
48
+ *
49
+ * @param result - The completed audit result carrying `metadata.candidates`.
50
+ * @returns The serializable candidates artifact (schema version 1).
51
+ */
52
+ export declare function buildCandidatesArtifact(result: AuditResult): Promise<CandidatesArtifact>;
53
+ //# sourceMappingURL=candidates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candidates.d.ts","sourceRoot":"","sources":["../../src/phase/candidates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB;8EAC0E;IAC1E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf;mFAC+E;IAC/E,YAAY,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC1D,KAAK,EAAE,sBAAsB,EAAE,CAAC;CACjC;AAED,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,CAAC,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,sBAAsB,EAAE,CAAC;CACjC;AAYD;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAgC7B"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Directive H item 2 — the candidate-emission artifact writer.
3
+ *
4
+ * The migrated rules select candidate sites through `ctx.emitCandidate` and
5
+ * the runner carries them out on `result.metadata.candidates`. This module
6
+ * serializes them to the diagnostic artifact that the services/ audit route
7
+ * consumes: per rule, its disposition vocabulary (keys + descriptions read
8
+ * straight from the rule's `dispositions`, never a literal list here) and its
9
+ * candidate sites, each enriched with the source line text at the site's span.
10
+ *
11
+ * The source line is read here — from the CLI's local filesystem — because the
12
+ * consumer (the services/ Worker) is remote and cannot read the audited tree.
13
+ * Nothing in this module (or anywhere under `app/`) reaches a model: it only
14
+ * writes the deterministic pre-classification record.
15
+ */
16
+ import { promises as fs } from 'fs';
17
+ import { MIGRATED_RULES } from './rules/registry.js';
18
+ async function readSourceLine(file, line) {
19
+ if (!Number.isInteger(line) || line < 1)
20
+ return '';
21
+ try {
22
+ const content = await fs.readFile(file, 'utf8');
23
+ return content.split('\n')[line - 1] ?? '';
24
+ }
25
+ catch {
26
+ return '';
27
+ }
28
+ }
29
+ /**
30
+ * Build the candidates artifact from an audit result. Rules that declared
31
+ * `dispositions` but emitted no candidate sites are omitted (the artifact only
32
+ * carries sites the audit will sample). Candidate sites are grouped by rule id;
33
+ * ordering follows first-emission order.
34
+ *
35
+ * @param result - The completed audit result carrying `metadata.candidates`.
36
+ * @returns The serializable candidates artifact (schema version 1).
37
+ */
38
+ export async function buildCandidatesArtifact(result) {
39
+ const candidates = result.metadata.candidates ?? [];
40
+ const dispositionsByRule = new Map();
41
+ for (const rule of MIGRATED_RULES) {
42
+ if (rule.dispositions)
43
+ dispositionsByRule.set(rule.id, rule.dispositions);
44
+ }
45
+ const sitesByRule = new Map();
46
+ for (const c of candidates) {
47
+ const list = sitesByRule.get(c.ruleId) ?? [];
48
+ list.push(c);
49
+ sitesByRule.set(c.ruleId, list);
50
+ }
51
+ const rules = [];
52
+ for (const [ruleId, sites] of sitesByRule) {
53
+ const dispositions = dispositionsByRule.get(ruleId) ?? [];
54
+ rules.push({
55
+ ruleId,
56
+ dispositions: dispositions.map((d) => ({ key: d.key, description: d.description })),
57
+ sites: await Promise.all(sites.map(async (s) => ({
58
+ file: s.file,
59
+ span: s.span,
60
+ disposition: s.disposition,
61
+ source: await readSourceLine(s.file, s.span.line),
62
+ }))),
63
+ });
64
+ }
65
+ return { schemaVersion: 1, generatedAt: new Date().toISOString(), rules };
66
+ }
67
+ //# sourceMappingURL=candidates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"candidates.js","sourceRoot":"","sources":["../../src/phase/candidates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA2BrD,KAAK,UAAU,cAAc,CAAC,IAAY,EAAE,IAAY;IACtD,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChD,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAAmB;IAEnB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;IAEpD,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkC,CAAC;IACrE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,YAAY;YAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAC5E,CAAC;IAGD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAuB,CAAC;IACnD,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC7C,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACb,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,KAAK,GAA6B,EAAE,CAAC;IAC3C,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,WAAW,EAAE,CAAC;QAC1C,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAC1D,KAAK,CAAC,IAAI,CAAC;YACT,MAAM;YACN,YAAY,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACnF,KAAK,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC/C,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,WAAW,EAAE,CAAC,CAAC,WAAW;gBAC1B,MAAM,EAAE,MAAM,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;aAClD,CAAC,CAAC,CAAC;SACL,CAAC,CAAC;IACL,CAAC;IAED,OAAO,EAAE,aAAa,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC;AAC5E,CAAC"}
@@ -8,12 +8,13 @@
8
8
  * pure, threshold-independent derivation from the raw declaration value, exactly
9
9
  * the "one level up from raw source text" computation a processor should own.
10
10
  *
11
- * These three functions are the conversion (`parseColorToRGB`, `rgbToLab`) plus
12
- * the ΔE76 distance over Lab (`labDistance`). The `color-values` corpus producer
11
+ * These four functions are the conversion (`parseColorToRGB`, `rgbToLab`) plus
12
+ * two colour-difference metrics over Lab: `labDistance` (CIE76, ΔE76) and
13
+ * `ciede2000` (CIE DE2000, ΔE00). The `color-values` corpus producer
13
14
  * (`producers.ts`) imports the conversion and stores the Lab triple in the fact;
14
- * the rule imports only `labDistance` — the comparison metric its clustering and
15
- * flagging decisions use — so it reads pre-computed Lab and never re-parses a
16
- * color. The rule decides; the processor computes.
15
+ * the rule imports only the distance it clusters with — the comparison metric its
16
+ * clustering and flagging decisions use — so it reads pre-computed Lab and never
17
+ * re-parses a color. The rule decides; the processor computes.
17
18
  */
18
19
  /** A CIELAB Lab triple (L, a, b), D65 reference white. */
19
20
  export type Lab = [number, number, number];
@@ -38,4 +39,16 @@ export declare function parseColorToRGB(raw: string): RGB | null;
38
39
  * @returns The ΔE76 color distance.
39
40
  */
40
41
  export declare function labDistance(a: Lab, b: Lab): number;
42
+ /** ΔE00 — the CIEDE2000 color-difference between two Lab triples.
43
+ *
44
+ * The Sharma/Wu/Dalal (2005) formulation. CIEDE2000 corrects the two known
45
+ * CIE76 (ΔE76) failures — it is more perceptually uniform in the blue/saturated
46
+ * regions and handles chroma/hue asymmetries the plain Euclidean distance
47
+ * mis-ranks — at the cost of a nonlinear, hue- and chroma-weighted term.
48
+ *
49
+ * @param a The first Lab triple.
50
+ * @param b The second Lab triple.
51
+ * @returns The CIEDE2000 color distance (ΔE00).
52
+ */
53
+ export declare function ciede2000(a: Lab, b: Lab): number;
41
54
  //# sourceMappingURL=colorMath.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"colorMath.d.ts","sourceRoot":"","sources":["../../src/phase/colorMath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,0DAA0D;AAC1D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C,+CAA+C;AAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAM3C;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAyB5C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CA6CvD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,CAKlD"}
1
+ {"version":3,"file":"colorMath.d.ts","sourceRoot":"","sources":["../../src/phase/colorMath.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,0DAA0D;AAC1D,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAE3C,+CAA+C;AAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAM3C;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,GAAG,CAyB5C;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CA6CvD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,CAKlD;AAWD;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,GAAG,MAAM,CAyEhD"}
@@ -8,12 +8,13 @@
8
8
  * pure, threshold-independent derivation from the raw declaration value, exactly
9
9
  * the "one level up from raw source text" computation a processor should own.
10
10
  *
11
- * These three functions are the conversion (`parseColorToRGB`, `rgbToLab`) plus
12
- * the ΔE76 distance over Lab (`labDistance`). The `color-values` corpus producer
11
+ * These four functions are the conversion (`parseColorToRGB`, `rgbToLab`) plus
12
+ * two colour-difference metrics over Lab: `labDistance` (CIE76, ΔE76) and
13
+ * `ciede2000` (CIE DE2000, ΔE00). The `color-values` corpus producer
13
14
  * (`producers.ts`) imports the conversion and stores the Lab triple in the fact;
14
- * the rule imports only `labDistance` — the comparison metric its clustering and
15
- * flagging decisions use — so it reads pre-computed Lab and never re-parses a
16
- * color. The rule decides; the processor computes.
15
+ * the rule imports only the distance it clusters with — the comparison metric its
16
+ * clustering and flagging decisions use — so it reads pre-computed Lab and never
17
+ * re-parses a color. The rule decides; the processor computes.
17
18
  */
18
19
  const COLOR_KEYWORDS = new Set([
19
20
  'transparent', 'currentcolor', 'inherit', 'initial', 'unset', 'none',
@@ -106,4 +107,86 @@ export function labDistance(a, b) {
106
107
  const db = a[2] - b[2];
107
108
  return Math.sqrt(dl * dl + da * da + db * db);
108
109
  }
110
+ const DEG2RAD = Math.PI / 180;
111
+ /** CIELAB hue angle in degrees, in [0, 360), from an (a*, b*) pair. */
112
+ function hueAngle(ap, b) {
113
+ if (ap === 0 && b === 0)
114
+ return 0;
115
+ const h = Math.atan2(b, ap) / DEG2RAD;
116
+ return h < 0 ? h + 360 : h;
117
+ }
118
+ /** ΔE00 — the CIEDE2000 color-difference between two Lab triples.
119
+ *
120
+ * The Sharma/Wu/Dalal (2005) formulation. CIEDE2000 corrects the two known
121
+ * CIE76 (ΔE76) failures — it is more perceptually uniform in the blue/saturated
122
+ * regions and handles chroma/hue asymmetries the plain Euclidean distance
123
+ * mis-ranks — at the cost of a nonlinear, hue- and chroma-weighted term.
124
+ *
125
+ * @param a The first Lab triple.
126
+ * @param b The second Lab triple.
127
+ * @returns The CIEDE2000 color distance (ΔE00).
128
+ */
129
+ export function ciede2000(a, b) {
130
+ const [L1, a1, b1] = a;
131
+ const [L2, a2, b2] = b;
132
+ const C1 = Math.sqrt(a1 * a1 + b1 * b1);
133
+ const C2 = Math.sqrt(a2 * a2 + b2 * b2);
134
+ const Cbar = (C1 + C2) / 2;
135
+ const Cbar7 = Cbar ** 7;
136
+ const G = 0.5 * (1 - Math.sqrt(Cbar7 / (Cbar7 + 25 ** 7)));
137
+ const a1p = a1 * (1 + G);
138
+ const a2p = a2 * (1 + G);
139
+ const C1p = Math.sqrt(a1p * a1p + b1 * b1);
140
+ const C2p = Math.sqrt(a2p * a2p + b2 * b2);
141
+ const h1p = hueAngle(a1p, b1);
142
+ const h2p = hueAngle(a2p, b2);
143
+ const dLp = L2 - L1;
144
+ const dCp = C2p - C1p;
145
+ let dhp;
146
+ if (C1p * C2p === 0) {
147
+ dhp = 0;
148
+ }
149
+ else if (Math.abs(h2p - h1p) <= 180) {
150
+ dhp = h2p - h1p;
151
+ }
152
+ else if (h2p - h1p > 180) {
153
+ dhp = h2p - h1p - 360;
154
+ }
155
+ else {
156
+ dhp = h2p - h1p + 360;
157
+ }
158
+ const dHp = 2 * Math.sqrt(C1p * C2p) * Math.sin((dhp / 2) * DEG2RAD);
159
+ const Lbarp = (L1 + L2) / 2;
160
+ const Cbarp = (C1p + C2p) / 2;
161
+ let hbarp;
162
+ if (C1p * C2p === 0) {
163
+ hbarp = h1p + h2p;
164
+ }
165
+ else if (Math.abs(h1p - h2p) <= 180) {
166
+ hbarp = (h1p + h2p) / 2;
167
+ }
168
+ else if (h1p + h2p < 360) {
169
+ hbarp = (h1p + h2p + 360) / 2;
170
+ }
171
+ else {
172
+ hbarp = (h1p + h2p - 360) / 2;
173
+ }
174
+ const T = 1
175
+ - 0.17 * Math.cos((hbarp - 30) * DEG2RAD)
176
+ + 0.24 * Math.cos((2 * hbarp) * DEG2RAD)
177
+ + 0.32 * Math.cos((3 * hbarp + 6) * DEG2RAD)
178
+ - 0.20 * Math.cos((4 * hbarp - 63) * DEG2RAD);
179
+ const dTheta = 30 * Math.exp(-(((hbarp - 275) / 25) ** 2));
180
+ const Cbarp7 = Cbarp ** 7;
181
+ const RC = 2 * Math.sqrt(Cbarp7 / (Cbarp7 + 25 ** 7));
182
+ const LbarpMinus50sq = (Lbarp - 50) * (Lbarp - 50);
183
+ const SL = 1 + (0.015 * LbarpMinus50sq) / Math.sqrt(20 + LbarpMinus50sq);
184
+ const SC = 1 + 0.045 * Cbarp;
185
+ const SH = 1 + 0.015 * Cbarp * T;
186
+ const RT = -Math.sin((2 * dTheta) * DEG2RAD) * RC;
187
+ const dLpSL = dLp / SL;
188
+ const dCpSC = dCp / SC;
189
+ const dHpSH = dHp / SH;
190
+ return Math.sqrt(dLpSL * dLpSL + dCpSC * dCpSC + dHpSH * dHpSH + RT * dCpSC * dHpSH);
191
+ }
109
192
  //# sourceMappingURL=colorMath.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"colorMath.js","sourceRoot":"","sources":["../../src/phase/colorMath.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"colorMath.js","sourceRoot":"","sources":["../../src/phase/colorMath.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,6 @@ import { extractDataAccessCallCandidates as extractAnalyzerCandidates } from '..
22
22
  * producer dedups after re-folding admission)
23
23
  */
24
24
  export function extractDataAccessCallCandidates(file) {
25
- return extractAnalyzerCandidates(file.ast, file.adapter, file.source);
25
+ return extractAnalyzerCandidates(file.ast, file.adapter, file.source, undefined, file.vendorSurfaces);
26
26
  }
27
27
  //# sourceMappingURL=dataAccessCallsCandidates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataAccessCallsCandidates.js","sourceRoot":"","sources":["../../src/phase/dataAccessCallsCandidates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,+BAA+B,IAAI,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAErI;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAAa;IAC3D,OAAO,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"dataAccessCallsCandidates.js","sourceRoot":"","sources":["../../src/phase/dataAccessCallsCandidates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAGH,OAAO,EAAE,+BAA+B,IAAI,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAErI;;;;;GAKG;AACH,MAAM,UAAU,+BAA+B,CAAC,IAAa;IAC3D,OAAO,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACxG,CAAC"}
@@ -2,8 +2,8 @@
2
2
  * Spec 68 §9 — the `error-bindings`, `concurrency-primitives` and
3
3
  * `channel-operations` producers.
4
4
  *
5
- * Re-homes the Go binary's non-SOLID function walks (`runErrorAnalysis`,
6
- * `runGoroutineAnalysis`, `runChannelAnalysis` in `analyzer-src/analyzer.go`) as
5
+ * Re-homes the former Go subprocess's non-SOLID function walks
6
+ * (`runErrorAnalysis`, `runGoroutineAnalysis`, `runChannelAnalysis`) as
7
7
  * plain-data facts. Each walks the tree-sitter Go AST for `function_declaration`
8
8
  * / `method_declaration` nodes and projects the inputs the rule's verdict reads:
9
9
  *
@@ -2,8 +2,8 @@
2
2
  * Spec 68 §9 — the `error-bindings`, `concurrency-primitives` and
3
3
  * `channel-operations` producers.
4
4
  *
5
- * Re-homes the Go binary's non-SOLID function walks (`runErrorAnalysis`,
6
- * `runGoroutineAnalysis`, `runChannelAnalysis` in `analyzer-src/analyzer.go`) as
5
+ * Re-homes the former Go subprocess's non-SOLID function walks
6
+ * (`runErrorAnalysis`, `runGoroutineAnalysis`, `runChannelAnalysis`) as
7
7
  * plain-data facts. Each walks the tree-sitter Go AST for `function_declaration`
8
8
  * / `method_declaration` nodes and projects the inputs the rule's verdict reads:
9
9
  *
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Spec 68 §9 — the `go-functions` producer.
3
3
  *
4
- * Re-homes the Go binary's function extraction (the `Function` payload in
5
- * `analyzer-src/parser.go`) as a plain-data fact. It walks the tree-sitter Go
4
+ * Re-homes the former Go subprocess's function extraction (the `Function`
5
+ * payload) as a plain-data fact. It walks the tree-sitter Go
6
6
  * AST for `function_declaration` / `method_declaration` nodes and projects the
7
7
  * metrics the two size/behaviour rules threshold on:
8
8
  *
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Spec 68 §9 — the `go-functions` producer.
3
3
  *
4
- * Re-homes the Go binary's function extraction (the `Function` payload in
5
- * `analyzer-src/parser.go`) as a plain-data fact. It walks the tree-sitter Go
4
+ * Re-homes the former Go subprocess's function extraction (the `Function`
5
+ * payload) as a plain-data fact. It walks the tree-sitter Go
6
6
  * AST for `function_declaration` / `method_declaration` nodes and projects the
7
7
  * metrics the two size/behaviour rules threshold on:
8
8
  *
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Spec 68 §9 — the Go `imports` producer.
3
3
  *
4
- * Re-homes the Go binary's import extraction (`runImportAnalysis` in
5
- * `analyzer-src/analyzer.go`) as a plain-data fact. It walks the tree-sitter Go
4
+ * Re-homes the former Go subprocess's import extraction (`runImportAnalysis`) as
5
+ * a plain-data fact. It walks the tree-sitter Go
6
6
  * AST for `import_spec` nodes and projects each one's source path and local
7
7
  * name:
8
8
  *
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Spec 68 §9 — the Go `imports` producer.
3
3
  *
4
- * Re-homes the Go binary's import extraction (`runImportAnalysis` in
5
- * `analyzer-src/analyzer.go`) as a plain-data fact. It walks the tree-sitter Go
4
+ * Re-homes the former Go subprocess's import extraction (`runImportAnalysis`) as
5
+ * a plain-data fact. It walks the tree-sitter Go
6
6
  * AST for `import_spec` nodes and projects each one's source path and local
7
7
  * name:
8
8
  *
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Spec 68 §9 — the `go-switches` producer.
3
3
  *
4
- * Re-homes the Go binary's switch-size extraction (the `analyzeSwitchSize` walk
5
- * in `analyzer-src/solid.go`) as a plain-data fact. It walks the tree-sitter Go
4
+ * Re-homes the former Go subprocess's switch-size extraction (the
5
+ * `analyzeSwitchSize` walk) as a plain-data fact. It walks the tree-sitter Go
6
6
  * AST for `expression_switch_statement` / `type_switch_statement` nodes and
7
7
  * projects each one's case-clause count:
8
8
  *
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Spec 68 §9 — the `go-switches` producer.
3
3
  *
4
- * Re-homes the Go binary's switch-size extraction (the `analyzeSwitchSize` walk
5
- * in `analyzer-src/solid.go`) as a plain-data fact. It walks the tree-sitter Go
4
+ * Re-homes the former Go subprocess's switch-size extraction (the
5
+ * `analyzeSwitchSize` walk) as a plain-data fact. It walks the tree-sitter Go
6
6
  * AST for `expression_switch_statement` / `type_switch_statement` nodes and
7
7
  * projects each one's case-clause count:
8
8
  *
@@ -1 +1 @@
1
- {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/phase/imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE,CAQ1D"}
1
+ {"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../src/phase/imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEtD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,UAAU,EAAE,CAS1D"}
@@ -20,6 +20,7 @@ export function extractImports(file) {
20
20
  source: imp.source,
21
21
  line: imp.location.start.line,
22
22
  column: imp.location.start.column,
23
+ isTypeOnly: imp.isTypeOnly,
23
24
  }));
24
25
  }
25
26
  //# sourceMappingURL=imports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/phase/imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;QAC7B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;KAClC,CAAC,CAAC,CAAC;AACN,CAAC"}
1
+ {"version":3,"file":"imports.js","sourceRoot":"","sources":["../../src/phase/imports.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAa;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACpD,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzB,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,IAAI,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI;QAC7B,MAAM,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM;QACjC,UAAU,EAAE,GAAG,CAAC,UAAU;KAC3B,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -23,6 +23,6 @@ import { extractLoopQueryRawCandidates as extractAnalyzerCandidates } from '../a
23
23
  * the corpus producer re-folds both after re-folding the handle verdict)
24
24
  */
25
25
  export function extractLoopQueryRawCandidates(file) {
26
- return extractAnalyzerCandidates(file.ast, file.adapter, file.source);
26
+ return extractAnalyzerCandidates(file.ast, file.adapter, file.source, undefined, file.vendorSurfaces);
27
27
  }
28
28
  //# sourceMappingURL=loopQueryCandidates.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loopQueryCandidates.js","sourceRoot":"","sources":["../../src/phase/loopQueryCandidates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,6BAA6B,IAAI,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAEnI;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAa;IACzD,OAAO,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AACxE,CAAC"}
1
+ {"version":3,"file":"loopQueryCandidates.js","sourceRoot":"","sources":["../../src/phase/loopQueryCandidates.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,6BAA6B,IAAI,yBAAyB,EAAE,MAAM,uDAAuD,CAAC;AAEnI;;;;;GAKG;AACH,MAAM,UAAU,6BAA6B,CAAC,IAAa;IACzD,OAAO,yBAAyB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACxG,CAAC"}
@@ -145,7 +145,21 @@ export declare const countTypeDeclarations: (file: ParsedFile) => number;
145
145
  * @param file - The parsed file to count package-scope bindings for.
146
146
  * @returns The number of package-scope bindings `buildGoFileBindings` would emit. */
147
147
  export declare function countGoPackageBindings(file: ParsedFile): number;
148
+ /**
149
+ * Upper-bound oracle: count ORM-builder (`pgTable`/`mysqlTable`/`sqliteTable`)
150
+ * call sites off the source text — a superset of the producer's emitted bindings.
151
+ *
152
+ * @param file The parsed file to count over.
153
+ * @returns The number of ORM-builder call sites.
154
+ */
148
155
  export declare function countSchemaObjects(file: ParsedFile): number;
156
+ /**
157
+ * Upper-bound oracle: count DDL op-producing statement headers (CREATE/DROP TABLE
158
+ * and `ALTER TABLE … RENAME TO`) — a superset of the producer's emitted ops.
159
+ *
160
+ * @param file The parsed file to count over.
161
+ * @returns The number of DDL op headers.
162
+ */
149
163
  export declare function countDdlOps(file: ParsedFile): number;
150
164
  /** style-declarations (css/scss) — count `declaration` nodes off the CSS AST.
151
165
  * An upper bound, not exact: the producer projects only declarations inside a
@@ -178,7 +192,21 @@ export declare const countDataAccessCalls: (file: ParsedFile) => number;
178
192
  * whose body issues a DB call; this counts every loop. Residual = loops whose
179
193
  * body holds no DB call. */
180
194
  export declare const countLoopQueries: (file: ParsedFile) => number;
195
+ /**
196
+ * Upper-bound oracle: count `query(`/`execute(` call sites off the source text —
197
+ * a superset of the producer's dangerous-SQL candidates.
198
+ *
199
+ * @param file The parsed file to count over.
200
+ * @returns The number of dynamic-SQL call sites.
201
+ */
181
202
  export declare function countDynamicSql(file: ParsedFile): number;
203
+ /**
204
+ * Upper-bound oracle: count member-call sites plus SQL keyword occurrences — two
205
+ * coarse supersets of the producer's located query-site scan.
206
+ *
207
+ * @param file The parsed file to count over.
208
+ * @returns The member-call count plus the SQL-keyword occurrence count.
209
+ */
182
210
  export declare function countQuerySites(file: ParsedFile): number;
183
211
  /** schema-usage — count `call_expression` + `string` + `template_string` nodes.
184
212
  * Every table reference is carried in a string literal, a tagged template, or a
@@ -1 +1 @@
1
- {"version":3,"file":"oracles.d.ts","sourceRoot":"","sources":["../../src/phase/oracles.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oracles.d.ts","sourceRoot":"","sources":["../../src/phase/oracles.ts"],"names":[],"mappings":"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"}
@@ -334,6 +334,13 @@ export function countGoPackageBindings(file) {
334
334
  * re-running the producer's own `ORM_OBJECT_RE` (which would prove 1 = 1 and
335
335
  * measure nothing). */
336
336
  const ORM_BUILDER_CALL_RE = /\b(?:pgTable|mysqlTable|sqliteTable)\s*\(/g;
337
+ /**
338
+ * Upper-bound oracle: count ORM-builder (`pgTable`/`mysqlTable`/`sqliteTable`)
339
+ * call sites off the source text — a superset of the producer's emitted bindings.
340
+ *
341
+ * @param file The parsed file to count over.
342
+ * @returns The number of ORM-builder call sites.
343
+ */
337
344
  export function countSchemaObjects(file) {
338
345
  return [...file.source.matchAll(ORM_BUILDER_CALL_RE)].length;
339
346
  }
@@ -350,6 +357,13 @@ export function countSchemaObjects(file) {
350
357
  * table-rename form; `RENAME COLUMN` is a column change and is excluded by the
351
358
  * same `RENAME TO` guard.) */
352
359
  const DDL_HEADER_RE = /\b(?:CREATE|DROP)\s+(?:VIRTUAL\s+)?TABLE\b|\bALTER\s+TABLE\b[^;]*?\bRENAME\s+TO\b/gi;
360
+ /**
361
+ * Upper-bound oracle: count DDL op-producing statement headers (CREATE/DROP TABLE
362
+ * and `ALTER TABLE … RENAME TO`) — a superset of the producer's emitted ops.
363
+ *
364
+ * @param file The parsed file to count over.
365
+ * @returns The number of DDL op headers.
366
+ */
353
367
  export function countDdlOps(file) {
354
368
  return [...file.source.matchAll(DDL_HEADER_RE)].length;
355
369
  }
@@ -409,6 +423,13 @@ export const countLoopQueries = countNodeTypes([
409
423
  * dangerous candidate is a `query(`/`execute(` call, so this upper-bounds the
410
424
  * candidate count. Residual = safe/parameterized query/execute calls. */
411
425
  const DYNAMIC_SQL_CALL_RE = /\b(?:query|execute)\s*\(/g;
426
+ /**
427
+ * Upper-bound oracle: count `query(`/`execute(` call sites off the source text —
428
+ * a superset of the producer's dangerous-SQL candidates.
429
+ *
430
+ * @param file The parsed file to count over.
431
+ * @returns The number of dynamic-SQL call sites.
432
+ */
412
433
  export function countDynamicSql(file) {
413
434
  return [...file.source.matchAll(DYNAMIC_SQL_CALL_RE)].length;
414
435
  }
@@ -420,6 +441,13 @@ export function countDynamicSql(file) {
420
441
  * Residual = non-DB member calls + SQL keywords inside recognized call bodies
421
442
  * (which the producer strips) + the DB-context gate the producer applies. */
422
443
  const ALL_MEMBER_CALLS_RE = /\.\w+\s*\(/g;
444
+ /**
445
+ * Upper-bound oracle: count member-call sites plus SQL keyword occurrences — two
446
+ * coarse supersets of the producer's located query-site scan.
447
+ *
448
+ * @param file The parsed file to count over.
449
+ * @returns The member-call count plus the SQL-keyword occurrence count.
450
+ */
423
451
  export function countQuerySites(file) {
424
452
  const calls = (file.source.match(ALL_MEMBER_CALLS_RE) || []).length;
425
453
  return calls + countSqlKeywordOccurrences(file.source);