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
@@ -0,0 +1,105 @@
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
+ import { readFileSync } from 'node:fs';
27
+ import { homedir } from 'node:os';
28
+ import path from 'node:path';
29
+ import { HOOK_LOG_DIR_TAIL, HOOK_LOG_FILE } from './hookLogPath.generated.js';
30
+ /**
31
+ * One record's leading timestamp: `[YYYY-MM-DDTHH:MM:SSZ]`, written by the bash
32
+ * hooks via `date -u +%Y-%m-%dT%H:%M:%SZ`. Equal-width fields make the strings
33
+ * lexicographically comparable, so "newer" is a plain string `>`.
34
+ */
35
+ const RECORD_RE = /^\[(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}Z)\]\s*(.*)$/;
36
+ /** The bootstrap guard writes this when the hook cannot run (`CLAUDE_PLUGIN_ROOT`
37
+ * unset) — the condition the reader reports. */
38
+ const CONDITION_MARKER = 'HOOK NOT RUNNING';
39
+ /** Every hook script writes this on a completed run — the positive "the hook is
40
+ * alive and running" signal that resolves a condition. hook-audit.sh and
41
+ * hook-self-audit.sh write it on exit 0 or 2 (the CLI actually ran); hook-warm.sh
42
+ * and hook-drift-check.sh write it on every path (they never exit non-zero). */
43
+ const SUCCESS_MARKER = 'HOOK RAN';
44
+ /** The hook-log directory, mirroring hook-common.sh's `hook_log_dir()`. */
45
+ export function resolveHookLogDir() {
46
+ const base = process.env.XDG_CACHE_HOME?.trim() || path.join(homedir(), '.cache');
47
+ return path.join(base, HOOK_LOG_DIR_TAIL);
48
+ }
49
+ /** The hook-log file path, mirroring hook-common.sh's `hook_log_file()`. */
50
+ export function resolveHookLogPath() {
51
+ return path.join(resolveHookLogDir(), HOOK_LOG_FILE);
52
+ }
53
+ const STALE_SUFFIX = 'Cached findings may be stale because the hook is not enqueueing changes for audit.';
54
+ /**
55
+ * Read the hook log and report a live "hook not running" condition, if any.
56
+ *
57
+ * "Live" is decided by record order, not a time window: a condition is live
58
+ * when the newest `HOOK NOT RUNNING` record is newer than the newest `HOOK RAN`
59
+ * record — or no `HOOK RAN` record exists at all. A successful hook run since
60
+ * the condition resolves it.
61
+ *
62
+ * Fail-open: an absent, unreadable, or malformed log yields `null` (no notice)
63
+ * and never throws.
64
+ *
65
+ * @returns The live "hook not running" notice, or `null` when the log is
66
+ * absent/unreadable/malformed or the latest `HOOK RAN` record resolves the
67
+ * newest condition.
68
+ */
69
+ export function readHookNotice() {
70
+ let text;
71
+ try {
72
+ text = readFileSync(resolveHookLogPath(), 'utf8');
73
+ }
74
+ catch {
75
+ return null; // absent or unreadable — fail open
76
+ }
77
+ let newestCondition = null;
78
+ let newestSuccess = null;
79
+ for (const line of text.split('\n')) {
80
+ const m = RECORD_RE.exec(line);
81
+ if (!m)
82
+ continue; // malformed line — skip, never throw
83
+ const ts = m[1];
84
+ const message = m[2];
85
+ if (message.includes(CONDITION_MARKER)) {
86
+ if (!newestCondition || ts > newestCondition.ts)
87
+ newestCondition = { ts, message };
88
+ }
89
+ else if (message.includes(SUCCESS_MARKER)) {
90
+ if (!newestSuccess || ts > newestSuccess.ts)
91
+ newestSuccess = { ts, message };
92
+ }
93
+ }
94
+ if (!newestCondition)
95
+ return null;
96
+ // Resolved when a successful run is at least as new as the newest condition —
97
+ // "live" means strictly newer, so equal timestamps resolve.
98
+ if (newestSuccess && newestSuccess.ts >= newestCondition.ts)
99
+ return null;
100
+ return {
101
+ condition: newestCondition.message,
102
+ message: `${newestCondition.message} ${STALE_SUFFIX}`,
103
+ };
104
+ }
105
+ //# sourceMappingURL=hookLog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hookLog.js","sourceRoot":"","sources":["../src/hookLog.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE9E;;;;GAIG;AACH,MAAM,SAAS,GAAG,qDAAqD,CAAC;AAExE;iDACiD;AACjD,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAC5C;;;iFAGiF;AACjF,MAAM,cAAc,GAAG,UAAU,CAAC;AAElC,2EAA2E;AAC3E,MAAM,UAAU,iBAAiB;IAC/B,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,CAAC,CAAC;IAClF,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC;AAC5C,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,EAAE,aAAa,CAAC,CAAC;AACvD,CAAC;AAWD,MAAM,YAAY,GAChB,oFAAoF,CAAC;AAEvF;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,cAAc;IAC5B,IAAI,IAAY,CAAC;IACjB,IAAI,CAAC;QACH,IAAI,GAAG,YAAY,CAAC,kBAAkB,EAAE,EAAE,MAAM,CAAC,CAAC;IACpD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC,CAAC,mCAAmC;IAClD,CAAC;IAED,IAAI,eAAe,GAA2C,IAAI,CAAC;IACnE,IAAI,aAAa,GAA2C,IAAI,CAAC;IAEjE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,CAAC;YAAE,SAAS,CAAC,qCAAqC;QACvD,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAChB,MAAM,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,eAAe,IAAI,EAAE,GAAG,eAAe,CAAC,EAAE;gBAAE,eAAe,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QACrF,CAAC;aAAM,IAAI,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5C,IAAI,CAAC,aAAa,IAAI,EAAE,GAAG,aAAa,CAAC,EAAE;gBAAE,aAAa,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;QAC/E,CAAC;IACH,CAAC;IAED,IAAI,CAAC,eAAe;QAAE,OAAO,IAAI,CAAC;IAClC,8EAA8E;IAC9E,4DAA4D;IAC5D,IAAI,aAAa,IAAI,aAAa,CAAC,EAAE,IAAI,eAAe,CAAC,EAAE;QAAE,OAAO,IAAI,CAAC;IAEzE,OAAO;QACL,SAAS,EAAE,eAAe,CAAC,OAAO;QAClC,OAAO,EAAE,GAAG,eAAe,CAAC,OAAO,IAAI,YAAY,EAAE;KACtD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare const HOOK_LOG_DIR_TAIL: "code-auditor/logs";
2
+ export declare const HOOK_LOG_FILE: "hook.log";
3
+ //# sourceMappingURL=hookLogPath.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hookLogPath.generated.d.ts","sourceRoot":"","sources":["../src/hookLogPath.generated.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,iBAAiB,EAAG,mBAA4B,CAAC;AAC9D,eAAO,MAAM,aAAa,EAAG,UAAmB,CAAC"}
@@ -0,0 +1,8 @@
1
+ // @generated — do not edit. Written by `scripts/write-hook-log-path.mjs`.
2
+ //
3
+ // Single source of truth for the hook-log path, shared by the TS reader
4
+ // (src/hookLog.ts) and the bash writer (plugin/scripts/hook-common.sh via
5
+ // plugin/scripts/hook-log-path.sh). Regenerate with `npm run build:hooklog`.
6
+ export const HOOK_LOG_DIR_TAIL = 'code-auditor/logs';
7
+ export const HOOK_LOG_FILE = 'hook.log';
8
+ //# sourceMappingURL=hookLogPath.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hookLogPath.generated.js","sourceRoot":"","sources":["../src/hookLogPath.generated.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,EAAE;AACF,wEAAwE;AACxE,0EAA0E;AAC1E,6EAA6E;AAC7E,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAA4B,CAAC;AAC9D,MAAM,CAAC,MAAM,aAAa,GAAG,UAAmB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -26,10 +26,6 @@ export declare const version = "0.1.0";
26
26
  * @returns A configured audit runner.
27
27
  */
28
28
  export declare function createProjectAuditRunner(projectType: 'nextjs' | 'react' | 'vue' | 'angular' | 'node' | 'generic', options?: any): Promise<any>;
29
- /**
30
- * List available analyzers
31
- */
32
- export declare function getAvailableAnalyzers(): string[];
33
29
  /**
34
30
  * List available report formats
35
31
  */
@@ -38,7 +34,6 @@ declare const _default: {
38
34
  runAudit: typeof _runAudit;
39
35
  createAuditRunner: typeof _createAuditRunner;
40
36
  createProjectAuditRunner: typeof createProjectAuditRunner;
41
- getAvailableAnalyzers: typeof getAvailableAnalyzers;
42
37
  getAvailableFormats: typeof getAvailableFormats;
43
38
  version: string;
44
39
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlG,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EAGb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,gBAAgB,EAGhB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,SAAS,EAGT,cAAc,EACd,mBAAmB,EAGnB,cAAc,EACd,sBAAsB,EAGtB,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAC;AAQpB,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAGlC,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACxE,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,GAAG,CAAC,CAUd;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,EAAE,CAEhD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;;;;;;;;;AAGD,wBAOE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAG9E,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAGlG,OAAO,EACL,WAAW,EACX,UAAU,EACV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAEL,YAAY,EACZ,kBAAkB,EAClB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,aAAa,EAGb,SAAS,EACT,cAAc,EACd,YAAY,EACZ,gBAAgB,EAGhB,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,SAAS,EAGT,cAAc,EACd,mBAAmB,EAGnB,cAAc,EACd,sBAAsB,EAGtB,QAAQ,EACR,UAAU,EACX,MAAM,YAAY,CAAC;AAQpB,cAAc,8BAA8B,CAAC;AAG7C,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,gBAAgB,EACjB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EAClB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAGlC,eAAO,MAAM,OAAO,UAAU,CAAC;AAE/B;;;;;;GAMG;AACH,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,QAAQ,GAAG,OAAO,GAAG,KAAK,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,EACxE,OAAO,CAAC,EAAE,GAAG,GACZ,OAAO,CAAC,GAAG,CAAC,CAUd;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAE9C;;;;;;;;AAGD,wBAME"}
package/dist/index.js CHANGED
@@ -45,12 +45,6 @@ export async function createProjectAuditRunner(projectType, options) {
45
45
  };
46
46
  return createAuditRunner(mergedOptions);
47
47
  }
48
- /**
49
- * List available analyzers
50
- */
51
- export function getAvailableAnalyzers() {
52
- return ['solid', 'dry', 'security', 'component', 'data-access'];
53
- }
54
48
  /**
55
49
  * List available report formats
56
50
  */
@@ -62,7 +56,6 @@ export default {
62
56
  runAudit: _runAudit,
63
57
  createAuditRunner: _createAuditRunner,
64
58
  createProjectAuditRunner,
65
- getAvailableAnalyzers,
66
59
  getAvailableFormats,
67
60
  version
68
61
  };
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;AAE9E,4BAA4B;AAC5B,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElG,gBAAgB;AAChB,OAAO,EAEL,UAAU,EACV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAsC9B,6DAA6D;AAC7D,+DAA+D;AAC/D,sEAAsE;AACtE,wEAAwE;AAExE,qBAAqB;AACrB,cAAc,8BAA8B,CAAC;AAE7C,oBAAoB;AACpB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EAEpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,qCAAqC,CAAC;AAE7C,YAAY;AACZ,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EAEb,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAwE,EACxE,OAAa;IAEb,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC/D,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG;QACpB,GAAG,eAAe;QAClB,GAAG,OAAO;KACX,CAAC;IAEF,OAAO,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,EAAE,aAAa,CAAC,CAAC;AAClE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,iCAAiC;AACjC,eAAe;IACb,QAAQ,EAAE,SAAS;IACnB,iBAAiB,EAAE,kBAAkB;IACrC,wBAAwB;IACxB,qBAAqB;IACrB,mBAAmB;IACnB,OAAO;CACR,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAiB,MAAM,kBAAkB,CAAC;AAE9E,4BAA4B;AAC5B,OAAO,EAAE,iBAAiB,IAAI,kBAAkB,EAAE,QAAQ,IAAI,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElG,gBAAgB;AAChB,OAAO,EAEL,UAAU,EACV,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAsC9B,6DAA6D;AAC7D,+DAA+D;AAC/D,sEAAsE;AACtE,wEAAwE;AAExE,qBAAqB;AACrB,cAAc,8BAA8B,CAAC;AAE7C,oBAAoB;AACpB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,eAAe,EAChB,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EAEpB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAEnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EAErB,MAAM,qCAAqC,CAAC;AAE7C,YAAY;AACZ,OAAO,EACL,UAAU,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,UAAU,EACX,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EACL,aAAa,EAEb,qBAAqB,EACrB,qBAAqB,EACrB,qBAAqB,EACrB,cAAc,EACf,MAAM,0BAA0B,CAAC;AAElC,UAAU;AACV,MAAM,CAAC,MAAM,OAAO,GAAG,OAAO,CAAC;AAE/B;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,WAAwE,EACxE,OAAa;IAEb,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC/D,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC5D,MAAM,aAAa,GAAG;QACpB,GAAG,eAAe;QAClB,GAAG,OAAO;KACX,CAAC;IAEF,OAAO,iBAAiB,CAAC,aAAa,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC1C,CAAC;AAED,iCAAiC;AACjC,eAAe;IACb,QAAQ,EAAE,SAAS;IACnB,iBAAiB,EAAE,kBAAkB;IACrC,wBAAwB;IACxB,mBAAmB;IACnB,OAAO;CACR,CAAC"}
@@ -10,8 +10,12 @@
10
10
  * The opt-in is a one-time decision recorded here (default OFF), toggled by the
11
11
  * `telemetry` MCP tool. It is *not* a default and *not* a per-invocation flag.
12
12
  */
13
- /** Privacy statement shared by the tool, SKILL, and docs. */
14
- export declare const PRIVACY_MESSAGE = "Data is anonymous, and the ID is generated locally to avoid tracking anything personal.";
13
+ /**
14
+ * Privacy statement shared by the tool, SKILL, and docs. Lists the exact eight
15
+ * fields sent by an opted-in dismissal, matching the docs privacy page so the
16
+ * CLI, MCP tool, and website never disagree about what leaves the machine.
17
+ */
18
+ export declare const PRIVACY_MESSAGE = "Anonymous opt-in feedback: each submission contains the tool version, the rule ID, the urgency level, the dismissal reason exactly as typed, a structural AST signature (grammar node types only, never their contents), a coarse language hint, a timestamp, and an anonymous install ID generated locally on your machine. Source code, identifiers, literals, file paths, and environment details are never sent.";
15
19
  /**
16
20
  * The default ingest endpoint (the operator's service). Shipped so opt-in is a
17
21
  * one-step toggle with a known destination; overridable at enable time and via
@@ -57,4 +61,13 @@ export declare function getTelemetryOptIn(dir?: string): TelemetryOptIn;
57
61
  * @param dir - Optional config directory override (for tests).
58
62
  */
59
63
  export declare function setTelemetryOptIn(optIn: TelemetryOptIn, dir?: string): void;
64
+ /**
65
+ * Whether the user has made an opt-in decision — i.e. a `telemetry.json` exists,
66
+ * regardless of whether it records enabled or disabled. False means the user has
67
+ * never been asked, so the installer/SKILL should offer the choice once.
68
+ *
69
+ * @param dir - Optional config directory override (for tests).
70
+ * @returns True when a telemetry decision has been recorded.
71
+ */
72
+ export declare function hasTelemetryDecision(dir?: string): boolean;
60
73
  //# sourceMappingURL=installConfig.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"installConfig.d.ts","sourceRoot":"","sources":["../src/installConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,6DAA6D;AAC7D,eAAO,MAAM,eAAe,4FAC+D,CAAC;AAE5F;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,qEAC6B,CAAC;AAErE;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAa/D;AAKD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,2DAA2D;AAC3D,wBAAgB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAejD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAa9D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAS3E"}
1
+ {"version":3,"file":"installConfig.d.ts","sourceRoot":"","sources":["../src/installConfig.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH;;;;GAIG;AACH,eAAO,MAAM,eAAe,yZAC4X,CAAC;AAEzZ;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,qEAC6B,CAAC;AAErE;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAa/D;AAKD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,2DAA2D;AAC3D,wBAAgB,SAAS,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAejD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,CAa9D;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAS3E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAE1D"}
@@ -14,8 +14,12 @@ import { readFileSync, writeFileSync, existsSync, mkdirSync } from 'node:fs';
14
14
  import path from 'node:path';
15
15
  import { randomUUID } from 'node:crypto';
16
16
  import { getUserConfigRoot } from './dataPaths.js';
17
- /** Privacy statement shared by the tool, SKILL, and docs. */
18
- export const PRIVACY_MESSAGE = 'Data is anonymous, and the ID is generated locally to avoid tracking anything personal.';
17
+ /**
18
+ * Privacy statement shared by the tool, SKILL, and docs. Lists the exact eight
19
+ * fields sent by an opted-in dismissal, matching the docs privacy page so the
20
+ * CLI, MCP tool, and website never disagree about what leaves the machine.
21
+ */
22
+ export const PRIVACY_MESSAGE = 'Anonymous opt-in feedback: each submission contains the tool version, the rule ID, the urgency level, the dismissal reason exactly as typed, a structural AST signature (grammar node types only, never their contents), a coarse language hint, a timestamp, and an anonymous install ID generated locally on your machine. Source code, identifiers, literals, file paths, and environment details are never sent.';
19
23
  /**
20
24
  * The default ingest endpoint (the operator's service). Shipped so opt-in is a
21
25
  * one-step toggle with a known destination; overridable at enable time and via
@@ -112,4 +116,15 @@ export function setTelemetryOptIn(optIn, dir) {
112
116
  mkdirSync(root, { recursive: true });
113
117
  writeFileSync(filePath, JSON.stringify({ enabled: optIn.enabled === true, endpoint: optIn.endpoint ?? '' }, null, 2) + '\n', { mode: 0o600 });
114
118
  }
119
+ /**
120
+ * Whether the user has made an opt-in decision — i.e. a `telemetry.json` exists,
121
+ * regardless of whether it records enabled or disabled. False means the user has
122
+ * never been asked, so the installer/SKILL should offer the choice once.
123
+ *
124
+ * @param dir - Optional config directory override (for tests).
125
+ * @returns True when a telemetry decision has been recorded.
126
+ */
127
+ export function hasTelemetryDecision(dir) {
128
+ return existsSync(path.join(configDir(dir), TELEMETRY_FILENAME));
129
+ }
115
130
  //# sourceMappingURL=installConfig.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"installConfig.js","sourceRoot":"","sources":["../src/installConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"installConfig.js","sourceRoot":"","sources":["../src/installConfig.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeSitterTypeScriptAdapter.d.ts","sourceRoot":"","sources":["../../../src/languages/typescript/TreeSitterTypeScriptAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TreeSitterTypeScriptAdapter.d.ts","sourceRoot":"","sources":["../../../src/languages/typescript/TreeSitterTypeScriptAdapter.ts"],"names":[],"mappings":"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"}
@@ -1201,10 +1201,16 @@ class TsDynamicStringConstruction extends TsScopeStatic {
1201
1201
  return false;
1202
1202
  }
1203
1203
  if (type === 'binary_expression') {
1204
- // Check for string concatenation: operands include a string literal
1204
+ // String concatenation is a `+` binary expression with a string operand.
1205
+ // Other binary operators (`??`, `||`, `&&`, comparisons, arithmetic) are
1206
+ // NOT string construction — a nullish-coalescing default
1207
+ // (`projectPath ?? '__global__'`) is a value expression, not an
1208
+ // SQL-fragment concatenation, and treating it as one makes a fully
1209
+ // parameterized `.get(query, ...binds)` read as raw interpolation.
1205
1210
  const children = node.children ?? [];
1206
- const hasStringLiteral = children.some(c => (getRawNode(c)).type === 'string');
1207
- return hasStringLiteral;
1211
+ if (!children.some((c) => (getRawNode(c)).type === '+'))
1212
+ return false;
1213
+ return children.some((c) => (getRawNode(c)).type === 'string');
1208
1214
  }
1209
1215
  if (type === 'call_expression') {
1210
1216
  // Check for .concat() calls
@@ -1741,6 +1747,15 @@ class TsSafetyAnalysis extends TsConstantResolution {
1741
1747
  case 'undefined':
1742
1748
  case 'regex':
1743
1749
  return true;
1750
+ case 'update_expression':
1751
+ // `x++` / `++x` / `x--` / `--x` run ToNumeric over the operand, so the
1752
+ // result is always digits, `NaN`, or `Infinity` — never attacker text.
1753
+ // Whatever `x` held (a string operand coerces to `NaN`, a BigInt to
1754
+ // digits), the interpolated output carries no quote, semicolon, or comment
1755
+ // marker, so it cannot escape a SQL string context. That is what makes a
1756
+ // `col = $${paramIndex++}` bind-index counter structural — not the
1757
+ // incidental fact that the value is numeric.
1758
+ return true;
1744
1759
  case 'identifier':
1745
1760
  return this.isSafeIdentifier(node, ctx);
1746
1761
  case 'template_string':