code-auditor-mcp 5.0.2 → 5.2.0

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 (336) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +184 -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 +0 -5
  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/UniversalDataAccessAnalyzer.d.ts +32 -15
  27. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  28. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +189 -115
  29. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  30. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +0 -2
  31. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  32. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +0 -5
  33. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  34. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -10
  35. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  36. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +7 -49
  37. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  38. package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
  39. package/dist/analyzers/universal/schema/config.js +0 -2
  40. package/dist/analyzers/universal/schema/config.js.map +1 -1
  41. package/dist/analyzers/universal/schema/types.d.ts +0 -2
  42. package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
  43. package/dist/analyzers/vendorSurfaces.d.ts +126 -0
  44. package/dist/analyzers/vendorSurfaces.d.ts.map +1 -0
  45. package/dist/analyzers/vendorSurfaces.js +580 -0
  46. package/dist/analyzers/vendorSurfaces.js.map +1 -0
  47. package/dist/auditRunner.d.ts.map +1 -1
  48. package/dist/auditRunner.js +136 -142
  49. package/dist/auditRunner.js.map +1 -1
  50. package/dist/churn/churnExtractor.d.ts +0 -1
  51. package/dist/churn/churnExtractor.d.ts.map +1 -1
  52. package/dist/churn/churnExtractor.js +2 -4
  53. package/dist/churn/churnExtractor.js.map +1 -1
  54. package/dist/cli.d.ts +1 -1
  55. package/dist/cli.d.ts.map +1 -1
  56. package/dist/cli.js +195 -26
  57. package/dist/cli.js.map +1 -1
  58. package/dist/codeIndex/migrations.d.ts.map +1 -1
  59. package/dist/codeIndex/migrations.js +4 -3
  60. package/dist/codeIndex/migrations.js.map +1 -1
  61. package/dist/codeIndexDB.d.ts +11 -2
  62. package/dist/codeIndexDB.d.ts.map +1 -1
  63. package/dist/codeIndexDB.js +27 -2
  64. package/dist/codeIndexDB.js.map +1 -1
  65. package/dist/config/configLoader.d.ts +60 -7
  66. package/dist/config/configLoader.d.ts.map +1 -1
  67. package/dist/config/configLoader.js +252 -60
  68. package/dist/config/configLoader.js.map +1 -1
  69. package/dist/config/defaults.d.ts +77 -18
  70. package/dist/config/defaults.d.ts.map +1 -1
  71. package/dist/config/defaults.js +105 -43
  72. package/dist/config/defaults.js.map +1 -1
  73. package/dist/constants.d.ts +2 -1
  74. package/dist/constants.d.ts.map +1 -1
  75. package/dist/constants.js +4 -0
  76. package/dist/constants.js.map +1 -1
  77. package/dist/daemon/main.d.ts +0 -1
  78. package/dist/daemon/main.d.ts.map +1 -1
  79. package/dist/daemon/main.js +11 -4
  80. package/dist/daemon/main.js.map +1 -1
  81. package/dist/dataPaths.d.ts +17 -11
  82. package/dist/dataPaths.d.ts.map +1 -1
  83. package/dist/dataPaths.js +51 -16
  84. package/dist/dataPaths.js.map +1 -1
  85. package/dist/hookLog.d.ts +54 -0
  86. package/dist/hookLog.d.ts.map +1 -0
  87. package/dist/hookLog.js +105 -0
  88. package/dist/hookLog.js.map +1 -0
  89. package/dist/hookLogPath.generated.d.ts +3 -0
  90. package/dist/hookLogPath.generated.d.ts.map +1 -0
  91. package/dist/hookLogPath.generated.js +8 -0
  92. package/dist/hookLogPath.generated.js.map +1 -0
  93. package/dist/index.d.ts +0 -5
  94. package/dist/index.d.ts.map +1 -1
  95. package/dist/index.js +0 -7
  96. package/dist/index.js.map +1 -1
  97. package/dist/installConfig.d.ts +15 -2
  98. package/dist/installConfig.d.ts.map +1 -1
  99. package/dist/installConfig.js +17 -2
  100. package/dist/installConfig.js.map +1 -1
  101. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  102. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +18 -3
  103. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  104. package/dist/mcp-tools/workflowGuide.js +8 -8
  105. package/dist/mcp-tools/workflowGuide.js.map +1 -1
  106. package/dist/mcp-tools-shared.d.ts.map +1 -1
  107. package/dist/mcp-tools-shared.js +5 -2
  108. package/dist/mcp-tools-shared.js.map +1 -1
  109. package/dist/mcp-ui-simple.d.ts +5 -0
  110. package/dist/mcp-ui-simple.d.ts.map +1 -1
  111. package/dist/mcp-ui-simple.js +9 -2
  112. package/dist/mcp-ui-simple.js.map +1 -1
  113. package/dist/mcp.d.ts +0 -1
  114. package/dist/mcp.d.ts.map +1 -1
  115. package/dist/mcp.js +36 -33
  116. package/dist/mcp.js.map +1 -1
  117. package/dist/mcpAuditJobs.d.ts +10 -0
  118. package/dist/mcpAuditJobs.d.ts.map +1 -1
  119. package/dist/mcpAuditJobs.js +10 -1
  120. package/dist/mcpAuditJobs.js.map +1 -1
  121. package/dist/mcpAutoIndex.d.ts.map +1 -1
  122. package/dist/mcpAutoIndex.js +2 -1
  123. package/dist/mcpAutoIndex.js.map +1 -1
  124. package/dist/phase/colorMath.d.ts +18 -5
  125. package/dist/phase/colorMath.d.ts.map +1 -1
  126. package/dist/phase/colorMath.js +88 -5
  127. package/dist/phase/colorMath.js.map +1 -1
  128. package/dist/phase/dataAccessCallsCandidates.js +1 -1
  129. package/dist/phase/dataAccessCallsCandidates.js.map +1 -1
  130. package/dist/phase/goFunctionAnalysis.d.ts +2 -2
  131. package/dist/phase/goFunctionAnalysis.js +2 -2
  132. package/dist/phase/goFunctions.d.ts +2 -2
  133. package/dist/phase/goFunctions.js +2 -2
  134. package/dist/phase/goImports.d.ts +2 -2
  135. package/dist/phase/goImports.js +2 -2
  136. package/dist/phase/goSwitches.d.ts +2 -2
  137. package/dist/phase/goSwitches.js +2 -2
  138. package/dist/phase/loopQueryCandidates.js +1 -1
  139. package/dist/phase/loopQueryCandidates.js.map +1 -1
  140. package/dist/phase/phaseModel.d.ts +37 -8
  141. package/dist/phase/phaseModel.d.ts.map +1 -1
  142. package/dist/phase/phaseModel.js +33 -8
  143. package/dist/phase/phaseModel.js.map +1 -1
  144. package/dist/phase/producers.d.ts.map +1 -1
  145. package/dist/phase/producers.js +24 -17
  146. package/dist/phase/producers.js.map +1 -1
  147. package/dist/phase/reachability.d.ts +44 -1
  148. package/dist/phase/reachability.d.ts.map +1 -1
  149. package/dist/phase/reachability.js +79 -0
  150. package/dist/phase/reachability.js.map +1 -1
  151. package/dist/phase/rules/crossDomain.d.ts.map +1 -1
  152. package/dist/phase/rules/crossDomain.js +16 -6
  153. package/dist/phase/rules/crossDomain.js.map +1 -1
  154. package/dist/phase/rules/dry.d.ts.map +1 -1
  155. package/dist/phase/rules/dry.js +0 -1
  156. package/dist/phase/rules/dry.js.map +1 -1
  157. package/dist/phase/rules/goRules.d.ts +2 -2
  158. package/dist/phase/rules/goRules.js +2 -2
  159. package/dist/phase/rules/secrets.d.ts +22 -8
  160. package/dist/phase/rules/secrets.d.ts.map +1 -1
  161. package/dist/phase/rules/secrets.js +48 -67
  162. package/dist/phase/rules/secrets.js.map +1 -1
  163. package/dist/phase/rules/styles.d.ts +23 -9
  164. package/dist/phase/rules/styles.d.ts.map +1 -1
  165. package/dist/phase/rules/styles.js +47 -15
  166. package/dist/phase/rules/styles.js.map +1 -1
  167. package/dist/phase/rules/unreferencedModule.d.ts.map +1 -1
  168. package/dist/phase/rules/unreferencedModule.js +16 -5
  169. package/dist/phase/rules/unreferencedModule.js.map +1 -1
  170. package/dist/phase/runner.d.ts +16 -7
  171. package/dist/phase/runner.d.ts.map +1 -1
  172. package/dist/phase/runner.js +32 -20
  173. package/dist/phase/runner.js.map +1 -1
  174. package/dist/phase/stylesCss.d.ts.map +1 -1
  175. package/dist/phase/stylesCss.js +4 -0
  176. package/dist/phase/stylesCss.js.map +1 -1
  177. package/dist/phase/stylesMarkup.d.ts.map +1 -1
  178. package/dist/phase/stylesMarkup.js +4 -0
  179. package/dist/phase/stylesMarkup.js.map +1 -1
  180. package/dist/phase/stylesSource.d.ts.map +1 -1
  181. package/dist/phase/stylesSource.js +6 -0
  182. package/dist/phase/stylesSource.js.map +1 -1
  183. package/dist/phase/testProgram.d.ts +57 -0
  184. package/dist/phase/testProgram.d.ts.map +1 -0
  185. package/dist/phase/testProgram.js +244 -0
  186. package/dist/phase/testProgram.js.map +1 -0
  187. package/dist/phase/typeDeclarations.d.ts +2 -2
  188. package/dist/phase/typeDeclarations.js +2 -2
  189. package/dist/phase/types.d.ts +46 -0
  190. package/dist/phase/types.d.ts.map +1 -1
  191. package/dist/pipelineAdapters.d.ts +1 -171
  192. package/dist/pipelineAdapters.d.ts.map +1 -1
  193. package/dist/pipelineAdapters.js +47 -1281
  194. package/dist/pipelineAdapters.js.map +1 -1
  195. package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
  196. package/dist/reporting/csvReportGenerator.js +0 -6
  197. package/dist/reporting/csvReportGenerator.js.map +1 -1
  198. package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
  199. package/dist/reporting/htmlReportGenerator.js +0 -4
  200. package/dist/reporting/htmlReportGenerator.js.map +1 -1
  201. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  202. package/dist/reporting/jsonReportGenerator.js +0 -1
  203. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  204. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
  205. package/dist/reporting/sarifReportGenerator.js +0 -7
  206. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  207. package/dist/sqlite/driver.d.ts +17 -1
  208. package/dist/sqlite/driver.d.ts.map +1 -1
  209. package/dist/sqlite/driver.js +28 -5
  210. package/dist/sqlite/driver.js.map +1 -1
  211. package/dist/styles/cssInJsHarvest.d.ts +36 -0
  212. package/dist/styles/cssInJsHarvest.d.ts.map +1 -0
  213. package/dist/styles/cssInJsHarvest.js +78 -0
  214. package/dist/styles/cssInJsHarvest.js.map +1 -0
  215. package/dist/styles/definedClasses.d.ts +95 -0
  216. package/dist/styles/definedClasses.d.ts.map +1 -0
  217. package/dist/styles/definedClasses.js +129 -0
  218. package/dist/styles/definedClasses.js.map +1 -0
  219. package/dist/styles/markupStyleHarvest.d.ts +33 -0
  220. package/dist/styles/markupStyleHarvest.d.ts.map +1 -0
  221. package/dist/styles/markupStyleHarvest.js +73 -0
  222. package/dist/styles/markupStyleHarvest.js.map +1 -0
  223. package/dist/styles/styleExtractor.d.ts +37 -0
  224. package/dist/styles/styleExtractor.d.ts.map +1 -1
  225. package/dist/styles/styleExtractor.js +89 -33
  226. package/dist/styles/styleExtractor.js.map +1 -1
  227. package/dist/styles/styleIndexer.d.ts.map +1 -1
  228. package/dist/styles/styleIndexer.js +11 -10
  229. package/dist/styles/styleIndexer.js.map +1 -1
  230. package/dist/styles/tailwindExpander.d.ts.map +1 -1
  231. package/dist/styles/tailwindExpander.js +31 -10
  232. package/dist/styles/tailwindExpander.js.map +1 -1
  233. package/dist/telemetry.d.ts +67 -1
  234. package/dist/telemetry.d.ts.map +1 -1
  235. package/dist/telemetry.js +100 -20
  236. package/dist/telemetry.js.map +1 -1
  237. package/dist/types/crossLanguage.d.ts +1 -0
  238. package/dist/types/crossLanguage.d.ts.map +1 -1
  239. package/dist/types.d.ts +23 -56
  240. package/dist/types.d.ts.map +1 -1
  241. package/dist/types.js +4 -4
  242. package/dist/types.js.map +1 -1
  243. package/dist/version.generated.d.ts +1 -1
  244. package/dist/version.generated.js +1 -1
  245. package/examples/.auditrc.example.json +7 -22
  246. package/examples/.auditrc.json +12 -155
  247. package/examples/.code-auditor.json +8 -51
  248. package/examples/nextjs.auditrc.json +7 -34
  249. package/examples/node-api.auditrc.json +6 -46
  250. package/examples/react.auditrc.json +8 -25
  251. package/examples/tolerant-solid.auditrc.json +12 -44
  252. package/package.json +6 -5
  253. package/plugin/.claude-plugin/manifest.json +10 -9
  254. package/plugin/.claude-plugin/plugin.json +1 -1
  255. package/plugin/hooks/hooks.json +4 -4
  256. package/plugin/scripts/hook-audit.sh +9 -0
  257. package/plugin/scripts/hook-common.sh +8 -2
  258. package/plugin/scripts/hook-drift-check.sh +10 -1
  259. package/plugin/scripts/hook-log-path.sh +7 -0
  260. package/plugin/scripts/hook-self-audit.sh +9 -0
  261. package/plugin/scripts/hook-warm.sh +17 -11
  262. package/plugin/skills/code-auditor/SKILL.md +26 -3
  263. package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts +0 -6
  264. package/dist/__tests__/fixtures/spec-20/scripts/tool.d.ts.map +0 -1
  265. package/dist/__tests__/fixtures/spec-20/scripts/tool.js +0 -12
  266. package/dist/__tests__/fixtures/spec-20/scripts/tool.js.map +0 -1
  267. package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts +0 -7
  268. package/dist/__tests__/fixtures/spec-20/src/demo-module.d.ts.map +0 -1
  269. package/dist/__tests__/fixtures/spec-20/src/demo-module.js +0 -13
  270. package/dist/__tests__/fixtures/spec-20/src/demo-module.js.map +0 -1
  271. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts +0 -14
  272. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.d.ts.map +0 -1
  273. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js +0 -16
  274. package/dist/__tests__/fixtures/spec-52/item-01-prepare-in-loop.js.map +0 -1
  275. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts +0 -15
  276. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.d.ts.map +0 -1
  277. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js +0 -17
  278. package/dist/__tests__/fixtures/spec-52/item-02-prepare-bind-accumulate-batch.js.map +0 -1
  279. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts +0 -14
  280. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts.map +0 -1
  281. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js +0 -19
  282. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js.map +0 -1
  283. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts +0 -18
  284. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +0 -1
  285. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js +0 -19
  286. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js.map +0 -1
  287. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts +0 -19
  288. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts.map +0 -1
  289. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js +0 -19
  290. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.js.map +0 -1
  291. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts +0 -17
  292. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts.map +0 -1
  293. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js +0 -19
  294. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js.map +0 -1
  295. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts +0 -25
  296. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts.map +0 -1
  297. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js +0 -21
  298. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js.map +0 -1
  299. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts +0 -15
  300. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.d.ts.map +0 -1
  301. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js +0 -19
  302. package/dist/__tests__/fixtures/spec-52/item-08-promise-all-of-statements-in-loop.js.map +0 -1
  303. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts +0 -14
  304. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.d.ts.map +0 -1
  305. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js +0 -14
  306. package/dist/__tests__/fixtures/spec-52/item-09-promise-all-map-of-statements-in-loop.js.map +0 -1
  307. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts +0 -15
  308. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts.map +0 -1
  309. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js +0 -16
  310. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js.map +0 -1
  311. package/dist/languages/go/analyzer-darwin-amd64 +0 -0
  312. package/dist/languages/go/analyzer-darwin-arm64 +0 -0
  313. package/dist/languages/go/analyzer-linux-amd64 +0 -0
  314. package/dist/languages/go/analyzer-linux-arm64 +0 -0
  315. package/dist/languages/go/analyzer-src/analyzer.go +0 -643
  316. package/dist/languages/go/analyzer-src/dataaccess.go +0 -388
  317. package/dist/languages/go/analyzer-src/go.mod +0 -3
  318. package/dist/languages/go/analyzer-src/indexer.go +0 -268
  319. package/dist/languages/go/analyzer-src/parser.go +0 -461
  320. package/dist/languages/go/analyzer-src/solid.go +0 -311
  321. package/dist/languages/go/analyzer-src/testconventions.go +0 -25
  322. package/dist/languages/go/analyzer-src/types.go +0 -156
  323. package/dist/languages/go/analyzer-windows-amd64.exe +0 -0
  324. package/dist/languages/go/go.mod +0 -7
  325. package/dist/languages/go/main.go +0 -203
  326. package/dist/native/ast-grep-napi.darwin-arm64.node +0 -0
  327. package/dist/native/ast-grep-napi.darwin-x64.node +0 -0
  328. package/dist/native/ast-grep-napi.linux-arm64-gnu.node +0 -0
  329. package/dist/native/ast-grep-napi.linux-arm64-musl.node +0 -0
  330. package/dist/native/ast-grep-napi.linux-x64-gnu.node +0 -0
  331. package/dist/native/ast-grep-napi.linux-x64-musl.node +0 -0
  332. package/dist/native/ast-grep-napi.win32-x64-msvc.node +0 -0
  333. package/dist/native-bootstrap.d.ts +0 -15
  334. package/dist/native-bootstrap.d.ts.map +0 -1
  335. package/dist/native-bootstrap.js +0 -75
  336. package/dist/native-bootstrap.js.map +0 -1
@@ -24,22 +24,23 @@ export function getDefaultConfig() {
24
24
  '**/*.test.{ts,tsx,js,jsx}',
25
25
  '**/*.spec.{ts,tsx,js,jsx}'
26
26
  ],
27
- // Note: no `outputFormats`/`outputDirectory` default. Reports are written
28
- // only to an explicit CLI `--output` path (or stdout); a config default here
29
- // would advertise a key that `print-config` then shows and the loader then
30
- // refuses/ignores. See configLoader.ts `output-directory-refused`.
27
+ // Note: no `outputDirectory` default. Reports are written only to an explicit
28
+ // CLI `--output` path (or stdout); a config default here would advertise a key
29
+ // that `print-config` then shows and the loader then refuses. See
30
+ // configLoader.ts `output-directory-refused`.
31
31
  minSeverity: 'high',
32
- failOnCritical: false,
33
- showProgress: true,
34
- thresholds: {
35
- maxCritical: 0,
36
- maxSevere: 100,
37
- minHealthScore: 75
38
- },
32
+ // Spec 11 sweep follow-up — the health-score floor, single-sourced to
33
+ // DEFAULT_HEALTH_SCORE_THRESHOLD (referenced, not re-declared). The removed
34
+ // `maxSevere`/`maxCritical`/`maxHigh` siblings are gone for good.
35
+ thresholds: { minHealthScore: DEFAULT_HEALTH_SCORE_THRESHOLD },
39
36
  // Spec 54 R3 — severity is urgency, not permission. There is no
40
37
  // `severityOverrides` and no `gateSeverities`: every rule is assigned on the
41
38
  // urgency axis (critical/severe/high) and every finding blocks. Per-rule
42
39
  // severity tuning disappeared with the old vocabulary.
40
+ // Spec 13 R1 — churn lookback window. The single default lives in
41
+ // DEFAULT_CHURN_CONFIG above; referencing it here (not re-declaring) is what
42
+ // keeps `loadConfig` and `print-config` honest about the effective value.
43
+ churn: DEFAULT_CHURN_CONFIG,
43
44
  // Spec 50 R5 — daemon lifecycle. Never auto-start (a background process the
44
45
  // user did not ask for); idle-exit after 5 minutes so it does not linger.
45
46
  daemon: {
@@ -91,31 +92,110 @@ export function getProjectTypeDefaults(projectType) {
91
92
  export function getEnvironmentDefaults(env) {
92
93
  switch (env) {
93
94
  case 'ci':
94
- return {
95
- failOnCritical: true,
96
- showProgress: false
97
- };
95
+ return {};
98
96
  case 'development':
99
97
  return {
100
- showProgress: true,
101
98
  minSeverity: 'high'
102
99
  };
103
100
  case 'production':
104
101
  return {
105
- minSeverity: 'severe',
106
- failOnCritical: true
102
+ minSeverity: 'severe'
107
103
  };
108
104
  default:
109
105
  return {};
110
106
  }
111
107
  }
108
+ /**
109
+ * The value-drift colour threshold — the single source of truth for the
110
+ * `styles.colorDeltaE` config key (Spec 70 colour directive, item 2). The phase
111
+ * rule (`src/phase/rules/styles.ts`) and the legacy analyzer
112
+ * (`src/analyzers/universal/UniversalStylesAnalyzer.ts`) both read this symbol;
113
+ * the literal must not be re-declared elsewhere.
114
+ *
115
+ * `1.0` is the CIEDE2000 (ΔE00) just-noticeable difference. The CIEDE2000
116
+ * formula (Sharma, Wu & Dalal 2005, "The CIEDE2000 color-difference formula:
117
+ * Implementation notes, supplementary test data, and mathematical observations",
118
+ * Color Research & Application 30(1):21–30, doi:10.1002/col.20070; standardised
119
+ * as CIE 142-2001 / ISO/CIE 11664-6) is normalised so ΔE00 = 1.0 is the
120
+ * threshold of human perception: pairs with ΔE00 < 1.0 are perceptually
121
+ * indistinguishable ("near-identical") — exactly the drift the rule flags. The
122
+ * metric changed ΔE76 → ΔE00 in Spec 70 colour directive item 4; the prior ΔE76
123
+ * default of 2.5 was "JND-adjacent" to the ~2.3 ΔE76 JND with no written
124
+ * citation and does not transfer, because the ΔE00 JND is 1.0, not 2.3.
125
+ */
126
+ export const DEFAULT_COLOR_DELTA_E = 1.0;
127
+ /**
128
+ * The validator-package vocabulary — the single source of truth for which npm
129
+ * packages mark an imported identifier as validator-provenanced. Consumed by
130
+ * three sites (Spec 21 R4 / R3 cross-domain validator-bypass):
131
+ * - `buildProvenanceContext` (`src/analyzers/provenance.ts`) — the
132
+ * `validatorProvenanced` map the schema/data-access analyzers and the
133
+ * CLI `map` command read;
134
+ * - the migrated `cross-domain/no-validator-reachable` rule
135
+ * (`src/phase/rules/crossDomain.ts`);
136
+ * - the legacy `CrossDomainAnalyzer` (kept for the Spec 68 parity guard).
137
+ *
138
+ * This replaced the hand-maintained `VALIDATOR_PACKAGES` `ReadonlySet` that
139
+ * lived in `provenance.ts` and did the job of the deleted `validatorPackageList`
140
+ * config key. The list must not be re-declared elsewhere: consumers read the
141
+ * config key and fall back to this symbol (the `DEFAULT_COLOR_DELTA_E` pattern).
142
+ */
143
+ export const DEFAULT_VALIDATOR_PACKAGES = [
144
+ 'zod',
145
+ 'joi',
146
+ 'ajv',
147
+ 'valibot',
148
+ 'yup',
149
+ 'superstruct',
150
+ 'arktype',
151
+ '@sinclair/typebox',
152
+ 'class-validator',
153
+ ];
154
+ /**
155
+ * The git-churn lookback window — the single source of truth for the top-level
156
+ * `churn` config key (Spec 13 R1). The churn extractor
157
+ * (`src/churn/churnExtractor.ts`) reads `churnWindowMonths` from here instead of
158
+ * hardcoding `12`; the two extraction call sites (`deepSync` in
159
+ * `src/codeIndexDB.ts` and the CLI `hotspots` command in `src/cli.ts`) read the
160
+ * configured `churn` key and fall back to this symbol (the `DEFAULT_COLOR_DELTA_E`
161
+ * pattern). The literal must not be re-declared elsewhere.
162
+ *
163
+ * `12` months is the window `git log --since` scans for file/function churn.
164
+ */
165
+ export const DEFAULT_CHURN_CONFIG = {
166
+ churnWindowMonths: 12,
167
+ };
168
+ /**
169
+ * The health-score pass/fail floor — the single source of truth for the
170
+ * `audit.health` (`mcp.ts`) and `audit_health` (`mcp-tools-shared.ts`) MCP
171
+ * tools' `threshold` parameter default. `calculateHealthScore` returns a 0-100
172
+ * score; below this floor a codebase reports `needs-attention`. Read by both
173
+ * tool-definition `default` fields and both handler fallbacks; the literal must
174
+ * not be re-declared elsewhere (the `DEFAULT_COLOR_DELTA_E` pattern).
175
+ *
176
+ * `70` is the cut below which `audit.health` reports `needs-attention`.
177
+ */
178
+ export const DEFAULT_HEALTH_SCORE_THRESHOLD = 70;
179
+ /**
180
+ * Resolve the health-score floor for one call. Precedence: the MCP `threshold`
181
+ * argument, then the configured `thresholds.minHealthScore` (read from
182
+ * `.codeauditor.json` by `loadMinHealthScore`), then the single default above.
183
+ * This is the one place the fallback is computed, so both MCP surfaces move
184
+ * together when the default changes. The `||` (not `??`) mirrors the historical
185
+ * fallback: a `0` threshold (always-pass) was — and remains — indistinguishable
186
+ * from "unset".
187
+ *
188
+ * @param args the MCP tool arguments carrying an optional `threshold` override
189
+ * @param configMin the configured `thresholds.minHealthScore` floor (if any)
190
+ * @returns the resolved floor, never below the single default above
191
+ */
192
+ export function resolveHealthThreshold(args, configMin) {
193
+ return args?.threshold || configMin || DEFAULT_HEALTH_SCORE_THRESHOLD;
194
+ }
112
195
  /**
113
196
  * Default analyzer configurations
114
197
  */
115
198
  export const DEFAULT_ANALYZER_CONFIGS = {
116
- // Spec-17 R5: maxComplexity (old heuristic) deprecated; use maxMethodComplexity
117
- // and classAggregateComplexity for true cyclomatic complexity.
118
- //
119
199
  // AUTHORITATIVE source is DEFAULT_SOLID_CONFIG (UniversalSOLIDAnalyzer.ts) —
120
200
  // the pipeline and `--print-config` resolve from there (RUNTIME_DEFAULT_CONFIGS),
121
201
  // NOT from this copy. This namespace is exported from the library (`src/index.ts`)
@@ -126,8 +206,6 @@ export const DEFAULT_ANALYZER_CONFIGS = {
126
206
  maxMethodsPerClass: 20,
127
207
  maxLinesPerMethod: 200,
128
208
  maxParametersPerMethod: 6,
129
- maxImportsPerFile: 5, // Spec 11 R3 sweep: 20 → 5 (precision-first)
130
- maxComplexity: 10, // DEPRECATED — old heuristic
131
209
  maxInterfaceMembers: 25,
132
210
  // R5.1: Per-method cyclomatic complexity threshold (true McCC)
133
211
  maxMethodComplexity: 50,
@@ -165,22 +243,9 @@ export const DEFAULT_ANALYZER_CONFIGS = {
165
243
  divergence: {
166
244
  divergenceThreshold: 0.05,
167
245
  divergenceRuns: 2,
168
- minPairSimilarity: 0.5,
169
246
  },
170
247
  },
171
248
  dataAccess: {
172
- databasePatterns: {
173
- postgres: ['pg', 'postgres', 'postgresql'],
174
- mysql: ['mysql', 'mysql2'],
175
- mongodb: ['mongodb', 'mongoose']
176
- },
177
- securityPatterns: {
178
- parameterizedQueries: ['?', '$1', ':param'],
179
- },
180
- performanceThresholds: {
181
- maxJoins: 5,
182
- warnOnSelectStar: true
183
- },
184
249
  // Spec 21 R3: shared detection mode — provenance-primary with name-fallback
185
250
  detection: {
186
251
  mode: 'hybrid',
@@ -230,7 +295,6 @@ export const DEFAULT_ANALYZER_CONFIGS = {
230
295
  enableTableUsageTracking: true,
231
296
  checkMissingReferences: true,
232
297
  checkNamingConventions: true,
233
- detectUnusedTables: false,
234
298
  validateQueryPatterns: true,
235
299
  reportUnresolvedQueries: true,
236
300
  maxQueriesPerFunction: 1, // Spec 11 R3 sweep: 5 → 1 (precision-first)
@@ -243,11 +307,6 @@ export const DEFAULT_ANALYZER_CONFIGS = {
243
307
  detection: {
244
308
  mode: 'hybrid',
245
309
  },
246
- // Spec 21 R4: validator package list for provenanced validator detection
247
- validatorPackageList: [
248
- 'zod', 'joi', 'ajv', 'valibot', 'yup', 'superstruct', 'arktype',
249
- '@sinclair/typebox', 'class-validator',
250
- ],
251
310
  // Spec 29: Declarative table-source registry — Tier 2 (ORM detection).
252
311
  // Adding an ORM becomes a config entry, not code.
253
312
  tableSources: [
@@ -258,7 +317,7 @@ export const DEFAULT_ANALYZER_CONFIGS = {
258
317
  },
259
318
  // Spec 10 R3: style intelligence analyzer defaults
260
319
  styles: {
261
- colorDeltaE: 2.5,
320
+ colorDeltaE: DEFAULT_COLOR_DELTA_E,
262
321
  scaleProperties: [
263
322
  'margin', 'margin-top', 'margin-right', 'margin-bottom', 'margin-left',
264
323
  'padding', 'padding-top', 'padding-right', 'padding-bottom', 'padding-left',
@@ -294,6 +353,9 @@ export const DEFAULT_ANALYZER_CONFIGS = {
294
353
  },
295
354
  validatorBypass: {
296
355
  validators: [],
356
+ // The package vocabulary for provenanced-validator detection (Spec 21 R4).
357
+ // Overridable via `analyzerConfigs["cross-domain"].validatorBypass.validatorPackageList`.
358
+ validatorPackageList: DEFAULT_VALIDATOR_PACKAGES,
297
359
  modeShare: 0.8,
298
360
  minCorpus: 20,
299
361
  depth: 3,
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/config/defaults.ts"],"names":[],"mappings":"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"}
@@ -9,9 +9,10 @@
9
9
  * version of whatever package.json sits next to it on disk (the defect where a
10
10
  * pre-3.9.4 binary announced itself as 3.9.9).
11
11
  */
12
- export declare const PACKAGE_VERSION = "5.0.2";
12
+ export declare const PACKAGE_VERSION = "5.2.0";
13
13
  export declare const DEFAULT_PORT = 11437;
14
14
  export declare const DEFAULT_SERVER_URL = "http://localhost:11437";
15
15
  export declare const MCP_SERVER_NAME = "code-index";
16
+ export declare const DEFAULT_RULE_REQUEST_BASE_URL = "https://www.codeauditormcp.com";
16
17
  export declare const IS_DEV_MODE: boolean;
17
18
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,UAAU,CAAC;AAKvC,eAAO,MAAM,YAAY,QAAQ,CAAC;AAGlC,eAAO,MAAM,kBAAkB,2BAAqC,CAAC;AAGrE,eAAO,MAAM,eAAe,eAAe,CAAC;AAW5C,eAAO,MAAM,WAAW,SAAiC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,UAAU,CAAC;AAKvC,eAAO,MAAM,YAAY,QAAQ,CAAC;AAGlC,eAAO,MAAM,kBAAkB,2BAAqC,CAAC;AAGrE,eAAO,MAAM,eAAe,eAAe,CAAC;AAK5C,eAAO,MAAM,6BAA6B,mCAAmC,CAAC;AAW9E,eAAO,MAAM,WAAW,SAAiC,CAAC"}
package/dist/constants.js CHANGED
@@ -19,6 +19,10 @@ export const DEFAULT_PORT = 11437;
19
19
  export const DEFAULT_SERVER_URL = `http://localhost:${DEFAULT_PORT}`;
20
20
  // MCP server name
21
21
  export const MCP_SERVER_NAME = 'code-index';
22
+ // Base URL of the docs site's HTTP tool API (`/api/tools/<name>`), used by the
23
+ // `code-audit request-rule` subcommand. A default, not a contract — overridable
24
+ // with `--endpoint`.
25
+ export const DEFAULT_RULE_REQUEST_BASE_URL = 'https://www.codeauditormcp.com';
22
26
  // Development mode detection.
23
27
  //
24
28
  // Opt-in via an explicit `--dev` flag only. It must NOT key off `NODE_ENV` or
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;AAEvC,uCAAuC;AACvC,iEAAiE;AACjE,wGAAwG;AACxG,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAElC,qBAAqB;AACrB,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,YAAY,EAAE,CAAC;AAErE,kBAAkB;AAClB,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAE5C,8BAA8B;AAC9B,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,yEAAyE;AACzE,8EAA8E;AAC9E,gFAAgF;AAChF,sFAAsF;AACtF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AAEjD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,OAAO,CAAC;AAEvC,uCAAuC;AACvC,iEAAiE;AACjE,wGAAwG;AACxG,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,CAAC;AAElC,qBAAqB;AACrB,MAAM,CAAC,MAAM,kBAAkB,GAAG,oBAAoB,YAAY,EAAE,CAAC;AAErE,kBAAkB;AAClB,MAAM,CAAC,MAAM,eAAe,GAAG,YAAY,CAAC;AAE5C,+EAA+E;AAC/E,gFAAgF;AAChF,qBAAqB;AACrB,MAAM,CAAC,MAAM,6BAA6B,GAAG,gCAAgC,CAAC;AAE9E,8BAA8B;AAC9B,EAAE;AACF,8EAA8E;AAC9E,gFAAgF;AAChF,yEAAyE;AACzE,8EAA8E;AAC9E,gFAAgF;AAChF,sFAAsF;AACtF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC"}
@@ -15,7 +15,6 @@
15
15
  * --foreground log state transitions to stderr instead of running silent
16
16
  * --lsp also serve the LSP face over stdio
17
17
  */
18
- import '../native-bootstrap.js';
19
18
  export interface DaemonRunOptions {
20
19
  projectRoot: string;
21
20
  configName?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/daemon/main.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,wBAAwB,CAAC;AAgBhC,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2ElF"}
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/daemon/main.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;GAeG;AA2BH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6EAA6E;IAC7E,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA0ElF"}
@@ -15,7 +15,6 @@
15
15
  * --foreground log state transitions to stderr instead of running silent
16
16
  * --lsp also serve the LSP face over stdio
17
17
  */
18
- import '../native-bootstrap.js';
19
18
  import path from 'node:path';
20
19
  import { fileURLToPath } from 'node:url';
21
20
  import { realpathSync } from 'node:fs';
@@ -28,6 +27,16 @@ import { findConfigFileUp, loadConfig } from '../config/configLoader.js';
28
27
  import { PACKAGE_VERSION } from '../constants.js';
29
28
  import { parseArgs, USAGE } from './args.js';
30
29
  const DEFAULT_IDLE_TIMEOUT_MS = 5 * 60 * 1000;
30
+ /**
31
+ * The `CODE_AUDITOR_DAEMON_IDLE_MS` override, or `undefined` when unset/invalid.
32
+ * Single read site — the idle-timeout resolution consumes this; a value that is
33
+ * not a positive finite number is treated as "not set" and falls through to the
34
+ * config/default chain.
35
+ */
36
+ function daemonIdleMsFromEnv() {
37
+ const envMs = Number(process.env.CODE_AUDITOR_DAEMON_IDLE_MS);
38
+ return Number.isFinite(envMs) && envMs > 0 ? envMs : undefined;
39
+ }
31
40
  /**
32
41
  * Run the daemon in-process, blocking until a signal / idle timeout / socket
33
42
  * `shutdown` request. Shared by the detached entry (`main.ts`'s own `main`) and
@@ -55,9 +64,7 @@ export async function runDaemonForeground(options) {
55
64
  // Idle timeout resolution: CLI arg → env → config → default.
56
65
  let idleTimeoutMs = options.idleTimeoutMs;
57
66
  if (idleTimeoutMs === undefined || !Number.isFinite(idleTimeoutMs) || idleTimeoutMs <= 0) {
58
- const envMs = Number(process.env.CODE_AUDITOR_DAEMON_IDLE_MS);
59
- if (Number.isFinite(envMs) && envMs > 0)
60
- idleTimeoutMs = envMs;
67
+ idleTimeoutMs = daemonIdleMsFromEnv();
61
68
  }
62
69
  if (idleTimeoutMs === undefined || !Number.isFinite(idleTimeoutMs) || idleTimeoutMs <= 0) {
63
70
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/daemon/main.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/daemon/main.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,10 @@
1
+ /**
2
+ * The `CODE_AUDITOR_DATA_DIR` override, trimmed and normalized to `undefined`
3
+ * when unset/blank. Single read site — the path resolver and the two display
4
+ * surfaces (MCP startup + auto-index log) all consume this, so they can never
5
+ * disagree on whether a data dir was configured.
6
+ */
7
+ export declare function dataDirEnv(): string | undefined;
1
8
  /**
2
9
  * Default on-disk path for the code index database.
3
10
  *
@@ -56,17 +63,6 @@ export declare function resolveDaemonLogPath(projectRoot: string): string;
56
63
  * `options.output || process.cwd()` default, wearing a different hat.
57
64
  */
58
65
  export declare function resolveMcpDevLogPath(): string;
59
- /**
60
- * Cache directory for a rebuilt Go analyzer binary. A rebuild — needed when the
61
- * running platform has no shipped prebuilt binary — lands here, never in
62
- * `dist/languages/go`, so the shipped tree stays read-only (npm/pnpm store, CI
63
- * caches, container layers) and the shipped artifact is never overwritten. The
64
- * binary filename is platform-qualified (`analyzer-<goos>-<goarch>`), so a single
65
- * flat dir holds every platform without collision; the OS cache root is
66
- * gitignored by convention and wiped by clean installs, which is exactly the
67
- * lifecycle a derived binary should have.
68
- */
69
- export declare function resolveGoAnalyzerCacheDir(): string;
70
66
  /**
71
67
  * OS-specific per-user config root for persistent, user-scoped state (the anonymous
72
68
  * install ID and the telemetry opt-in). Deliberately NOT the cache root above: the
@@ -77,6 +73,16 @@ export declare function resolveGoAnalyzerCacheDir(): string;
77
73
  * @returns The OS-specific per-user config directory for persistent user-scoped state.
78
74
  */
79
75
  export declare function getUserConfigRoot(): string;
76
+ /**
77
+ * Discover the project root for a starting directory by walking up until a
78
+ * marker (`PROJECT_ROOT_MARKERS`) is found. Returns the resolved start directory
79
+ * when no marker is found — the caller then hashes whatever it was given, which
80
+ * is the correct fallback for a bare directory with no project identity.
81
+ *
82
+ * @param startDir - Directory to begin the upward search from.
83
+ * @returns The nearest ancestor carrying a project marker, or the resolved start.
84
+ */
85
+ export declare function discoverProjectRoot(startDir: string): string;
80
86
  /** Stable per-project identifier used to scope cache/data paths. */
81
87
  export declare function projectHash(root: string): string;
82
88
  //# sourceMappingURL=dataPaths.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataPaths.d.ts","sourceRoot":"","sources":["../src/dataPaths.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAWtE;AAED,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGnE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,CAElD;AAkBD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAa1C;AAmBD,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD"}
1
+ {"version":3,"file":"dataPaths.d.ts","sourceRoot":"","sources":["../src/dataPaths.ts"],"names":[],"mappings":"AAKA;;;;;GAKG;AACH,wBAAgB,UAAU,IAAI,MAAM,GAAG,SAAS,CAG/C;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,yBAAyB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CActE;AAED,2FAA2F;AAC3F,wBAAgB,uBAAuB,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAEpE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGnE;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAkBD;;;;;;;;GAQG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAa1C;AA8BD;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAe5D;AAED,oEAAoE;AACpE,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD"}
package/dist/dataPaths.js CHANGED
@@ -2,6 +2,16 @@ import path from 'node:path';
2
2
  import fs from 'node:fs';
3
3
  import os from 'node:os';
4
4
  import { createHash } from 'node:crypto';
5
+ /**
6
+ * The `CODE_AUDITOR_DATA_DIR` override, trimmed and normalized to `undefined`
7
+ * when unset/blank. Single read site — the path resolver and the two display
8
+ * surfaces (MCP startup + auto-index log) all consume this, so they can never
9
+ * disagree on whether a data dir was configured.
10
+ */
11
+ export function dataDirEnv() {
12
+ const raw = process.env.CODE_AUDITOR_DATA_DIR?.trim();
13
+ return raw ? raw : undefined;
14
+ }
5
15
  /**
6
16
  * Default on-disk path for the code index database.
7
17
  *
@@ -27,14 +37,17 @@ import { createHash } from 'node:crypto';
27
37
  * @returns The on-disk path to the index database.
28
38
  */
29
39
  export function resolvePersistedIndexPath(projectRoot) {
30
- const raw = process.env.CODE_AUDITOR_DATA_DIR?.trim();
40
+ const raw = dataDirEnv();
31
41
  if (raw) {
32
42
  if (projectRoot) {
33
- return path.join(path.resolve(raw), 'projects', projectHash(projectRoot), 'index.db');
43
+ return path.join(path.resolve(raw), 'projects', projectHash(discoverProjectRoot(projectRoot)), 'index.db');
34
44
  }
35
45
  return path.join(path.resolve(raw), 'index.db');
36
46
  }
37
- const root = path.resolve(projectRoot || process.cwd());
47
+ // Key on the project's own identity (its git root / package.json dir), never
48
+ // on where the process happened to start. Two invocations started from
49
+ // different directories inside one project must land on the same DB.
50
+ const root = discoverProjectRoot(projectRoot || process.cwd());
38
51
  return path.join(getFallbackCacheRoot(), 'projects', projectHash(root), 'index.db');
39
52
  }
40
53
  /** Directory that contains `index.db`. Optionally accepts projectRoot for scoped paths. */
@@ -80,19 +93,6 @@ export function resolveDaemonLogPath(projectRoot) {
80
93
  export function resolveMcpDevLogPath() {
81
94
  return path.join(getFallbackCacheRoot(), 'logs', 'mcp-server.log');
82
95
  }
83
- /**
84
- * Cache directory for a rebuilt Go analyzer binary. A rebuild — needed when the
85
- * running platform has no shipped prebuilt binary — lands here, never in
86
- * `dist/languages/go`, so the shipped tree stays read-only (npm/pnpm store, CI
87
- * caches, container layers) and the shipped artifact is never overwritten. The
88
- * binary filename is platform-qualified (`analyzer-<goos>-<goarch>`), so a single
89
- * flat dir holds every platform without collision; the OS cache root is
90
- * gitignored by convention and wiped by clean installs, which is exactly the
91
- * lifecycle a derived binary should have.
92
- */
93
- export function resolveGoAnalyzerCacheDir() {
94
- return path.join(getFallbackCacheRoot(), 'go-analyzer');
95
- }
96
96
  /** OS-specific cache root (gitignored by convention, wiped by clean installs). */
97
97
  function getFallbackCacheRoot() {
98
98
  const xdg = process.env.XDG_CACHE_HOME?.trim();
@@ -148,6 +148,41 @@ function resolveRealPath(p) {
148
148
  return path.resolve(p);
149
149
  }
150
150
  }
151
+ /**
152
+ * Project-identity markers: a directory that contains any of these is treated
153
+ * as a project root. Walked upward from the process start (or the `-p` path) so
154
+ * the cache key reflects *what* is being audited, not *where* the process was
155
+ * started — two invocations from different directories inside one project must
156
+ * land on the same database.
157
+ *
158
+ * `.git` may be a file (git worktree / submodule) or a directory.
159
+ */
160
+ const PROJECT_ROOT_MARKERS = ['.git', 'package.json', 'go.mod'];
161
+ /**
162
+ * Discover the project root for a starting directory by walking up until a
163
+ * marker (`PROJECT_ROOT_MARKERS`) is found. Returns the resolved start directory
164
+ * when no marker is found — the caller then hashes whatever it was given, which
165
+ * is the correct fallback for a bare directory with no project identity.
166
+ *
167
+ * @param startDir - Directory to begin the upward search from.
168
+ * @returns The nearest ancestor carrying a project marker, or the resolved start.
169
+ */
170
+ export function discoverProjectRoot(startDir) {
171
+ let current = resolveRealPath(startDir);
172
+ for (;;) {
173
+ for (const marker of PROJECT_ROOT_MARKERS) {
174
+ if (fs.existsSync(path.join(current, marker))) {
175
+ return current;
176
+ }
177
+ }
178
+ const parent = path.dirname(current);
179
+ if (parent === current) {
180
+ // Reached the filesystem root with no marker — fall back to the start dir.
181
+ return resolveRealPath(startDir);
182
+ }
183
+ current = parent;
184
+ }
185
+ }
151
186
  /** Stable per-project identifier used to scope cache/data paths. */
152
187
  export function projectHash(root) {
153
188
  return createHash('sha256').update(resolveRealPath(root)).digest('hex').substring(0, 16);
@@ -1 +1 @@
1
- {"version":3,"file":"dataPaths.js","sourceRoot":"","sources":["../src/dataPaths.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataPaths.js","sourceRoot":"","sources":["../src/dataPaths.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Hook-log reader — the read half of the hook's write-only diagnostic log.
3
+ *
4
+ * The PostToolUse/SessionStart hooks (`plugin/scripts/hook-*.sh`) and the
5
+ * bootstrap guard in `plugin/hooks/hooks.json` write status records to the hook
6
+ * log that `hook_log_dir()`/`hook_log_file()` in hook-common.sh compute. Until
7
+ * this module existed, nothing read that log — a hook that stopped enqueueing
8
+ * (e.g. `CLAUDE_PLUGIN_ROOT` unset) was invisible to the explicit audit, the
9
+ * exact silent-disable the 4.1.0 guard was removed to escape. This module is
10
+ * the single shared reader both the CLI and MCP audit entry points call, so a
11
+ * live "hook not running" condition surfaces as a top-level notice rather than
12
+ * vanishing into a write-only log.
13
+ *
14
+ * The path here is deliberately NOT `getFallbackCacheRoot()`: that resolves to
15
+ * `~/Library/Caches/code-auditor` on macOS, while the bash hooks always use the
16
+ * Linux-style `${XDG_CACHE_HOME:-$HOME/.cache}` convention regardless of
17
+ * platform. The writer and reader must agree, so the tail and file name are
18
+ * single-sourced: `HOOK_LOG_DIR_TAIL`/`HOOK_LOG_FILE` are imported from
19
+ * `hookLogPath.generated.ts`, which `scripts/write-hook-log-path.mjs` generates
20
+ * from the same source as `plugin/scripts/hook-log-path.sh` (the file the bash
21
+ * writer sources) — the two languages can never drift.
22
+ *
23
+ * Contract (fail-open): an absent, unreadable, or malformed log yields no
24
+ * notice and never throws — the reader must not change the audit exit code.
25
+ */
26
+ /** The hook-log directory, mirroring hook-common.sh's `hook_log_dir()`. */
27
+ export declare function resolveHookLogDir(): string;
28
+ /** The hook-log file path, mirroring hook-common.sh's `hook_log_file()`. */
29
+ export declare function resolveHookLogPath(): string;
30
+ /** A live "hook not running" condition, when one is unresolved. */
31
+ export interface HookNotice {
32
+ /** The newest unresolved condition record's message, verbatim. */
33
+ condition: string;
34
+ /** The full user-facing notice: the condition plus the stale-findings
35
+ * consequence, so the CLI and MCP share one wording. */
36
+ message: string;
37
+ }
38
+ /**
39
+ * Read the hook log and report a live "hook not running" condition, if any.
40
+ *
41
+ * "Live" is decided by record order, not a time window: a condition is live
42
+ * when the newest `HOOK NOT RUNNING` record is newer than the newest `HOOK RAN`
43
+ * record — or no `HOOK RAN` record exists at all. A successful hook run since
44
+ * the condition resolves it.
45
+ *
46
+ * Fail-open: an absent, unreadable, or malformed log yields `null` (no notice)
47
+ * and never throws.
48
+ *
49
+ * @returns The live "hook not running" notice, or `null` when the log is
50
+ * absent/unreadable/malformed or the latest `HOOK RAN` record resolves the
51
+ * newest condition.
52
+ */
53
+ export declare function readHookNotice(): HookNotice | null;
54
+ //# sourceMappingURL=hookLog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hookLog.d.ts","sourceRoot":"","sources":["../src/hookLog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAuBH,2EAA2E;AAC3E,wBAAgB,iBAAiB,IAAI,MAAM,CAG1C;AAED,4EAA4E;AAC5E,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C;AAED,mEAAmE;AACnE,MAAM,WAAW,UAAU;IACzB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB;6DACyD;IACzD,OAAO,EAAE,MAAM,CAAC;CACjB;AAKD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,IAAI,UAAU,GAAG,IAAI,CAgClD"}