code-auditor-mcp 4.1.0 → 5.0.1

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 (1086) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +374 -0
  3. package/README.md +4 -4
  4. package/configs/hhra-compat.json +0 -8
  5. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts +1 -1
  6. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.d.ts.map +1 -1
  7. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js +7 -1
  8. package/dist/__tests__/fixtures/spec-52/item-03-exec-in-loop.js.map +1 -1
  9. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts +2 -8
  10. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +1 -1
  11. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js +4 -4
  12. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.js.map +1 -1
  13. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts +1 -1
  14. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.d.ts.map +1 -1
  15. package/dist/__tests__/fixtures/spec-52/item-06-chained-prepare-run-in-loop.js.map +1 -1
  16. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts +2 -2
  17. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.d.ts.map +1 -1
  18. package/dist/__tests__/fixtures/spec-52/item-07-chained-prepare-bind-first-in-loop.js.map +1 -1
  19. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts +1 -1
  20. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.d.ts.map +1 -1
  21. package/dist/__tests__/fixtures/spec-52/item-10-promise-all-map-of-eager-all-in-loop.js.map +1 -1
  22. package/dist/analyzers/applicability.d.ts +42 -0
  23. package/dist/analyzers/applicability.d.ts.map +1 -1
  24. package/dist/analyzers/applicability.js +74 -0
  25. package/dist/analyzers/applicability.js.map +1 -1
  26. package/dist/analyzers/cross-language/APIContractAnalyzer.js +18 -24
  27. package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
  28. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +30 -23
  29. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  30. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +113 -76
  31. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  32. package/dist/analyzers/cross-language/SchemaValidator.d.ts +2 -0
  33. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  34. package/dist/analyzers/cross-language/SchemaValidator.js +8 -3
  35. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  36. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
  37. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +210 -148
  38. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  39. package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
  40. package/dist/analyzers/documentationAnalyzer.js +23 -28
  41. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  42. package/dist/analyzers/handleIdentification.d.ts +356 -0
  43. package/dist/analyzers/handleIdentification.d.ts.map +1 -0
  44. package/dist/analyzers/handleIdentification.js +424 -0
  45. package/dist/analyzers/handleIdentification.js.map +1 -0
  46. package/dist/analyzers/manifestStaleness.d.ts +64 -0
  47. package/dist/analyzers/manifestStaleness.d.ts.map +1 -0
  48. package/dist/analyzers/manifestStaleness.js +115 -0
  49. package/dist/analyzers/manifestStaleness.js.map +1 -0
  50. package/dist/analyzers/orgFilterTiers.d.ts +73 -1
  51. package/dist/analyzers/orgFilterTiers.d.ts.map +1 -1
  52. package/dist/analyzers/orgFilterTiers.js +166 -1
  53. package/dist/analyzers/orgFilterTiers.js.map +1 -1
  54. package/dist/analyzers/provenance.d.ts +251 -57
  55. package/dist/analyzers/provenance.d.ts.map +1 -1
  56. package/dist/analyzers/provenance.js +1109 -429
  57. package/dist/analyzers/provenance.js.map +1 -1
  58. package/dist/analyzers/reactAnalyzer.d.ts +2 -0
  59. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  60. package/dist/analyzers/reactAnalyzer.js +2 -0
  61. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  62. package/dist/analyzers/receiverResolution.d.ts +183 -0
  63. package/dist/analyzers/receiverResolution.d.ts.map +1 -0
  64. package/dist/analyzers/receiverResolution.js +540 -0
  65. package/dist/analyzers/receiverResolution.js.map +1 -0
  66. package/dist/analyzers/receiverRoot.d.ts +328 -0
  67. package/dist/analyzers/receiverRoot.d.ts.map +1 -0
  68. package/dist/analyzers/receiverRoot.js +990 -0
  69. package/dist/analyzers/receiverRoot.js.map +1 -0
  70. package/dist/analyzers/ruleRegistry.d.ts +12 -68
  71. package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
  72. package/dist/analyzers/ruleRegistry.js +32 -342
  73. package/dist/analyzers/ruleRegistry.js.map +1 -1
  74. package/dist/analyzers/ruleTiming.d.ts +10 -0
  75. package/dist/analyzers/ruleTiming.d.ts.map +1 -1
  76. package/dist/analyzers/ruleTiming.js +20 -0
  77. package/dist/analyzers/ruleTiming.js.map +1 -1
  78. package/dist/analyzers/sqlLiteral.d.ts +76 -0
  79. package/dist/analyzers/sqlLiteral.d.ts.map +1 -0
  80. package/dist/analyzers/sqlLiteral.js +419 -0
  81. package/dist/analyzers/sqlLiteral.js.map +1 -0
  82. package/dist/analyzers/tsEcosystem.d.ts +115 -0
  83. package/dist/analyzers/tsEcosystem.d.ts.map +1 -0
  84. package/dist/analyzers/tsEcosystem.js +231 -0
  85. package/dist/analyzers/tsEcosystem.js.map +1 -0
  86. package/dist/analyzers/tsExpressionDescriptor.d.ts +156 -0
  87. package/dist/analyzers/tsExpressionDescriptor.d.ts.map +1 -0
  88. package/dist/analyzers/tsExpressionDescriptor.js +374 -0
  89. package/dist/analyzers/tsExpressionDescriptor.js.map +1 -0
  90. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +6 -0
  91. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
  92. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +107 -44
  93. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
  94. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +1 -12
  95. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  96. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +24 -101
  97. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  98. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +287 -49
  99. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  100. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +2130 -512
  101. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  102. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  103. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +2 -18
  104. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  105. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +0 -33
  106. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  107. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +20 -143
  108. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  109. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +4 -3
  110. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  111. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +36 -13
  112. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  113. package/dist/analyzers/universal/UniversalSecretsAnalyzer.d.ts.map +1 -1
  114. package/dist/analyzers/universal/UniversalSecretsAnalyzer.js +6 -0
  115. package/dist/analyzers/universal/UniversalSecretsAnalyzer.js.map +1 -1
  116. package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts +15 -0
  117. package/dist/analyzers/universal/UniversalSecurityAnalyzer.d.ts.map +1 -1
  118. package/dist/analyzers/universal/UniversalSecurityAnalyzer.js +25 -0
  119. package/dist/analyzers/universal/UniversalSecurityAnalyzer.js.map +1 -1
  120. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +21 -32
  121. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  122. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +166 -196
  123. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  124. package/dist/analyzers/universal/functionConcerns.d.ts +3 -0
  125. package/dist/analyzers/universal/functionConcerns.d.ts.map +1 -1
  126. package/dist/analyzers/universal/functionConcerns.js +4 -1
  127. package/dist/analyzers/universal/functionConcerns.js.map +1 -1
  128. package/dist/analyzers/universal/schema/codeAnalysis.d.ts +310 -69
  129. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
  130. package/dist/analyzers/universal/schema/codeAnalysis.js +709 -383
  131. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  132. package/dist/analyzers/universal/schema/config.d.ts +3 -14
  133. package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
  134. package/dist/analyzers/universal/schema/config.js +3 -16
  135. package/dist/analyzers/universal/schema/config.js.map +1 -1
  136. package/dist/analyzers/universal/schema/discovery.d.ts +22 -1
  137. package/dist/analyzers/universal/schema/discovery.d.ts.map +1 -1
  138. package/dist/analyzers/universal/schema/discovery.js +36 -20
  139. package/dist/analyzers/universal/schema/discovery.js.map +1 -1
  140. package/dist/analyzers/universal/schema/jsonSchema.d.ts.map +1 -1
  141. package/dist/analyzers/universal/schema/jsonSchema.js +13 -3
  142. package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
  143. package/dist/analyzers/universal/schema/migrations.d.ts +187 -27
  144. package/dist/analyzers/universal/schema/migrations.d.ts.map +1 -1
  145. package/dist/analyzers/universal/schema/migrations.js +443 -186
  146. package/dist/analyzers/universal/schema/migrations.js.map +1 -1
  147. package/dist/analyzers/universal/schema/types.d.ts +17 -3
  148. package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
  149. package/dist/analyzers/universal/schema/violations.js +1 -1
  150. package/dist/analyzers/universal/schema/violations.js.map +1 -1
  151. package/dist/analyzers/universal/styleScale.d.ts +52 -0
  152. package/dist/analyzers/universal/styleScale.d.ts.map +1 -0
  153. package/dist/analyzers/universal/styleScale.js +95 -0
  154. package/dist/analyzers/universal/styleScale.js.map +1 -0
  155. package/dist/applyDataDirEnv.js +1 -1
  156. package/dist/applyDataDirEnv.js.map +1 -1
  157. package/dist/auditRouter.d.ts +26 -30
  158. package/dist/auditRouter.d.ts.map +1 -1
  159. package/dist/auditRouter.js +373 -143
  160. package/dist/auditRouter.js.map +1 -1
  161. package/dist/auditRunner.d.ts +64 -1
  162. package/dist/auditRunner.d.ts.map +1 -1
  163. package/dist/auditRunner.js +1537 -1051
  164. package/dist/auditRunner.js.map +1 -1
  165. package/dist/baseline.d.ts +30 -3
  166. package/dist/baseline.d.ts.map +1 -1
  167. package/dist/baseline.js +70 -9
  168. package/dist/baseline.js.map +1 -1
  169. package/dist/cli.js +997 -812
  170. package/dist/cli.js.map +1 -1
  171. package/dist/codeIndex/analyzerConfig.d.ts +60 -0
  172. package/dist/codeIndex/analyzerConfig.d.ts.map +1 -0
  173. package/dist/codeIndex/analyzerConfig.js +98 -0
  174. package/dist/codeIndex/analyzerConfig.js.map +1 -0
  175. package/dist/codeIndex/auditResults.d.ts +39 -0
  176. package/dist/codeIndex/auditResults.d.ts.map +1 -0
  177. package/dist/codeIndex/auditResults.js +99 -0
  178. package/dist/codeIndex/auditResults.js.map +1 -0
  179. package/dist/codeIndex/codeMap.d.ts +59 -0
  180. package/dist/codeIndex/codeMap.d.ts.map +1 -0
  181. package/dist/codeIndex/codeMap.js +72 -0
  182. package/dist/codeIndex/codeMap.js.map +1 -0
  183. package/dist/codeIndex/conventions.d.ts +33 -0
  184. package/dist/codeIndex/conventions.d.ts.map +1 -0
  185. package/dist/codeIndex/conventions.js +84 -0
  186. package/dist/codeIndex/conventions.js.map +1 -0
  187. package/dist/codeIndex/coverage.d.ts +78 -0
  188. package/dist/codeIndex/coverage.d.ts.map +1 -0
  189. package/dist/codeIndex/coverage.js +164 -0
  190. package/dist/codeIndex/coverage.js.map +1 -0
  191. package/dist/codeIndex/dependencyGraph.d.ts +97 -0
  192. package/dist/codeIndex/dependencyGraph.d.ts.map +1 -0
  193. package/dist/codeIndex/dependencyGraph.js +241 -0
  194. package/dist/codeIndex/dependencyGraph.js.map +1 -0
  195. package/dist/codeIndex/functionIndex.d.ts +111 -0
  196. package/dist/codeIndex/functionIndex.d.ts.map +1 -0
  197. package/dist/codeIndex/functionIndex.js +306 -0
  198. package/dist/codeIndex/functionIndex.js.map +1 -0
  199. package/dist/codeIndex/inferredReceivers.d.ts +32 -0
  200. package/dist/codeIndex/inferredReceivers.d.ts.map +1 -0
  201. package/dist/codeIndex/inferredReceivers.js +41 -0
  202. package/dist/codeIndex/inferredReceivers.js.map +1 -0
  203. package/dist/codeIndex/meta.d.ts +30 -0
  204. package/dist/codeIndex/meta.d.ts.map +1 -0
  205. package/dist/codeIndex/meta.js +37 -0
  206. package/dist/codeIndex/meta.js.map +1 -0
  207. package/dist/codeIndex/migrations.d.ts +96 -0
  208. package/dist/codeIndex/migrations.d.ts.map +1 -0
  209. package/dist/codeIndex/migrations.js +1302 -0
  210. package/dist/codeIndex/migrations.js.map +1 -0
  211. package/dist/codeIndex/projectTasks.d.ts +54 -0
  212. package/dist/codeIndex/projectTasks.d.ts.map +1 -0
  213. package/dist/codeIndex/projectTasks.js +81 -0
  214. package/dist/codeIndex/projectTasks.js.map +1 -0
  215. package/dist/codeIndex/provenance.d.ts +47 -0
  216. package/dist/codeIndex/provenance.d.ts.map +1 -0
  217. package/dist/codeIndex/provenance.js +48 -0
  218. package/dist/codeIndex/provenance.js.map +1 -0
  219. package/dist/codeIndex/rawSql.d.ts +54 -0
  220. package/dist/codeIndex/rawSql.d.ts.map +1 -0
  221. package/dist/codeIndex/rawSql.js +71 -0
  222. package/dist/codeIndex/rawSql.js.map +1 -0
  223. package/dist/codeIndex/schema.d.ts +99 -0
  224. package/dist/codeIndex/schema.d.ts.map +1 -0
  225. package/dist/codeIndex/schema.js +174 -0
  226. package/dist/codeIndex/schema.js.map +1 -0
  227. package/dist/codeIndex/search.d.ts +40 -0
  228. package/dist/codeIndex/search.d.ts.map +1 -0
  229. package/dist/codeIndex/search.js +316 -0
  230. package/dist/codeIndex/search.js.map +1 -0
  231. package/dist/codeIndex/shared.d.ts +27 -0
  232. package/dist/codeIndex/shared.d.ts.map +1 -0
  233. package/dist/codeIndex/shared.js +46 -0
  234. package/dist/codeIndex/shared.js.map +1 -0
  235. package/dist/codeIndex/sqliteCollection.d.ts +81 -0
  236. package/dist/codeIndex/sqliteCollection.d.ts.map +1 -0
  237. package/dist/codeIndex/sqliteCollection.js +250 -0
  238. package/dist/codeIndex/sqliteCollection.js.map +1 -0
  239. package/dist/codeIndex/whitelist.d.ts +59 -0
  240. package/dist/codeIndex/whitelist.d.ts.map +1 -0
  241. package/dist/codeIndex/whitelist.js +188 -0
  242. package/dist/codeIndex/whitelist.js.map +1 -0
  243. package/dist/codeIndexDB.d.ts +130 -277
  244. package/dist/codeIndexDB.d.ts.map +1 -1
  245. package/dist/codeIndexDB.js +364 -2748
  246. package/dist/codeIndexDB.js.map +1 -1
  247. package/dist/codeIndexService.d.ts +87 -12
  248. package/dist/codeIndexService.d.ts.map +1 -1
  249. package/dist/codeIndexService.js +110 -34
  250. package/dist/codeIndexService.js.map +1 -1
  251. package/dist/componentScanner.d.ts +35 -0
  252. package/dist/componentScanner.d.ts.map +1 -1
  253. package/dist/componentScanner.js +114 -80
  254. package/dist/componentScanner.js.map +1 -1
  255. package/dist/config/configGeneratePath.d.ts +4 -0
  256. package/dist/config/configGeneratePath.d.ts.map +1 -1
  257. package/dist/config/configGeneratePath.js +4 -0
  258. package/dist/config/configGeneratePath.js.map +1 -1
  259. package/dist/config/configLoader.d.ts +16 -1
  260. package/dist/config/configLoader.d.ts.map +1 -1
  261. package/dist/config/configLoader.js +26 -23
  262. package/dist/config/configLoader.js.map +1 -1
  263. package/dist/config/defaults.d.ts +11 -7
  264. package/dist/config/defaults.d.ts.map +1 -1
  265. package/dist/config/defaults.js +21 -20
  266. package/dist/config/defaults.js.map +1 -1
  267. package/dist/config/effectiveConfig.d.ts +17 -2
  268. package/dist/config/effectiveConfig.d.ts.map +1 -1
  269. package/dist/config/effectiveConfig.js +32 -25
  270. package/dist/config/effectiveConfig.js.map +1 -1
  271. package/dist/config/lintConfigReader.d.ts +6 -0
  272. package/dist/config/lintConfigReader.d.ts.map +1 -1
  273. package/dist/config/lintConfigReader.js +6 -0
  274. package/dist/config/lintConfigReader.js.map +1 -1
  275. package/dist/config/staticObjectExtract.d.ts +4 -0
  276. package/dist/config/staticObjectExtract.d.ts.map +1 -1
  277. package/dist/config/staticObjectExtract.js +7 -3
  278. package/dist/config/staticObjectExtract.js.map +1 -1
  279. package/dist/config/thresholdRationales.d.ts +2 -0
  280. package/dist/config/thresholdRationales.d.ts.map +1 -1
  281. package/dist/config/thresholdRationales.js +5 -2
  282. package/dist/config/thresholdRationales.js.map +1 -1
  283. package/dist/constants.d.ts +1 -1
  284. package/dist/constants.d.ts.map +1 -1
  285. package/dist/constants.js +10 -5
  286. package/dist/constants.js.map +1 -1
  287. package/dist/conventions/conventionMiner.d.ts +105 -2
  288. package/dist/conventions/conventionMiner.d.ts.map +1 -1
  289. package/dist/conventions/conventionMiner.js +334 -259
  290. package/dist/conventions/conventionMiner.js.map +1 -1
  291. package/dist/coverage/coverageService.js +4 -4
  292. package/dist/coverage/coverageService.js.map +1 -1
  293. package/dist/daemon/args.d.ts +3 -0
  294. package/dist/daemon/args.d.ts.map +1 -1
  295. package/dist/daemon/args.js +3 -0
  296. package/dist/daemon/args.js.map +1 -1
  297. package/dist/daemon/core.d.ts +33 -27
  298. package/dist/daemon/core.d.ts.map +1 -1
  299. package/dist/daemon/core.js +198 -162
  300. package/dist/daemon/core.js.map +1 -1
  301. package/dist/daemon/lspServer.d.ts +8 -0
  302. package/dist/daemon/lspServer.d.ts.map +1 -1
  303. package/dist/daemon/lspServer.js +8 -0
  304. package/dist/daemon/lspServer.js.map +1 -1
  305. package/dist/daemon/main.d.ts +2 -0
  306. package/dist/daemon/main.d.ts.map +1 -1
  307. package/dist/daemon/main.js +2 -0
  308. package/dist/daemon/main.js.map +1 -1
  309. package/dist/daemon/resolve.d.ts +22 -7
  310. package/dist/daemon/resolve.d.ts.map +1 -1
  311. package/dist/daemon/resolve.js +29 -8
  312. package/dist/daemon/resolve.js.map +1 -1
  313. package/dist/daemon/socketClient.d.ts +10 -1
  314. package/dist/daemon/socketClient.d.ts.map +1 -1
  315. package/dist/daemon/socketClient.js +10 -1
  316. package/dist/daemon/socketClient.js.map +1 -1
  317. package/dist/daemon/socketServer.d.ts +13 -0
  318. package/dist/daemon/socketServer.d.ts.map +1 -1
  319. package/dist/daemon/socketServer.js +13 -0
  320. package/dist/daemon/socketServer.js.map +1 -1
  321. package/dist/dataPaths.d.ts +27 -8
  322. package/dist/dataPaths.d.ts.map +1 -1
  323. package/dist/dataPaths.js +28 -44
  324. package/dist/dataPaths.js.map +1 -1
  325. package/dist/dismissals.d.ts +22 -1
  326. package/dist/dismissals.d.ts.map +1 -1
  327. package/dist/dismissals.js +22 -1
  328. package/dist/dismissals.js.map +1 -1
  329. package/dist/enforcement/gate.d.ts +1 -0
  330. package/dist/enforcement/gate.d.ts.map +1 -1
  331. package/dist/enforcement/gate.js +1 -0
  332. package/dist/enforcement/gate.js.map +1 -1
  333. package/dist/fingerprint.d.ts +6 -0
  334. package/dist/fingerprint.d.ts.map +1 -1
  335. package/dist/fingerprint.js +46 -1
  336. package/dist/fingerprint.js.map +1 -1
  337. package/dist/functionScanner.d.ts +30 -1
  338. package/dist/functionScanner.d.ts.map +1 -1
  339. package/dist/functionScanner.js +258 -256
  340. package/dist/functionScanner.js.map +1 -1
  341. package/dist/generators/AWSQConfigGenerator.d.ts +23 -0
  342. package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -1
  343. package/dist/generators/AWSQConfigGenerator.js +23 -0
  344. package/dist/generators/AWSQConfigGenerator.js.map +1 -1
  345. package/dist/generators/BaseConfigGenerator.d.ts +7 -0
  346. package/dist/generators/BaseConfigGenerator.d.ts.map +1 -1
  347. package/dist/generators/BaseConfigGenerator.js +7 -0
  348. package/dist/generators/BaseConfigGenerator.js.map +1 -1
  349. package/dist/generators/ClaudeConfigGenerator.d.ts +23 -0
  350. package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -1
  351. package/dist/generators/ClaudeConfigGenerator.js +23 -0
  352. package/dist/generators/ClaudeConfigGenerator.js.map +1 -1
  353. package/dist/generators/ClineConfigGenerator.d.ts +23 -0
  354. package/dist/generators/ClineConfigGenerator.d.ts.map +1 -1
  355. package/dist/generators/ClineConfigGenerator.js +23 -0
  356. package/dist/generators/ClineConfigGenerator.js.map +1 -1
  357. package/dist/generators/CodeiumConfigGenerator.d.ts +23 -0
  358. package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -1
  359. package/dist/generators/CodeiumConfigGenerator.js +23 -0
  360. package/dist/generators/CodeiumConfigGenerator.js.map +1 -1
  361. package/dist/generators/CodexConfigGenerator.d.ts +23 -0
  362. package/dist/generators/CodexConfigGenerator.d.ts.map +1 -1
  363. package/dist/generators/CodexConfigGenerator.js +23 -0
  364. package/dist/generators/CodexConfigGenerator.js.map +1 -1
  365. package/dist/generators/ConfigGeneratorFactory.d.ts +9 -0
  366. package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
  367. package/dist/generators/ConfigGeneratorFactory.js +9 -0
  368. package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
  369. package/dist/generators/ContinueConfigGenerator.d.ts +23 -0
  370. package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -1
  371. package/dist/generators/ContinueConfigGenerator.js +23 -0
  372. package/dist/generators/ContinueConfigGenerator.js.map +1 -1
  373. package/dist/generators/CopilotConfigGenerator.d.ts +23 -0
  374. package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -1
  375. package/dist/generators/CopilotConfigGenerator.js +23 -0
  376. package/dist/generators/CopilotConfigGenerator.js.map +1 -1
  377. package/dist/generators/CursorConfigGenerator.d.ts +23 -0
  378. package/dist/generators/CursorConfigGenerator.d.ts.map +1 -1
  379. package/dist/generators/CursorConfigGenerator.js +23 -0
  380. package/dist/generators/CursorConfigGenerator.js.map +1 -1
  381. package/dist/generators/GeminiConfigGenerator.d.ts +23 -0
  382. package/dist/generators/GeminiConfigGenerator.d.ts.map +1 -1
  383. package/dist/generators/GeminiConfigGenerator.js +23 -0
  384. package/dist/generators/GeminiConfigGenerator.js.map +1 -1
  385. package/dist/generators/VSCodeConfigGenerator.d.ts +23 -0
  386. package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -1
  387. package/dist/generators/VSCodeConfigGenerator.js +23 -0
  388. package/dist/generators/VSCodeConfigGenerator.js.map +1 -1
  389. package/dist/generators/ZCodeConfigGenerator.d.ts +23 -0
  390. package/dist/generators/ZCodeConfigGenerator.d.ts.map +1 -1
  391. package/dist/generators/ZCodeConfigGenerator.js +23 -0
  392. package/dist/generators/ZCodeConfigGenerator.js.map +1 -1
  393. package/dist/graph/blastRadius.d.ts.map +1 -1
  394. package/dist/graph/blastRadius.js +12 -7
  395. package/dist/graph/blastRadius.js.map +1 -1
  396. package/dist/graph/callGraph.d.ts +31 -0
  397. package/dist/graph/callGraph.d.ts.map +1 -1
  398. package/dist/graph/callGraph.js +62 -32
  399. package/dist/graph/callGraph.js.map +1 -1
  400. package/dist/graph/importClassification.d.ts +28 -0
  401. package/dist/graph/importClassification.d.ts.map +1 -1
  402. package/dist/graph/importClassification.js +57 -0
  403. package/dist/graph/importClassification.js.map +1 -1
  404. package/dist/graph/importGraph.d.ts +38 -0
  405. package/dist/graph/importGraph.d.ts.map +1 -1
  406. package/dist/graph/importGraph.js +38 -0
  407. package/dist/graph/importGraph.js.map +1 -1
  408. package/dist/graph/outputFormatter.d.ts +12 -4
  409. package/dist/graph/outputFormatter.d.ts.map +1 -1
  410. package/dist/graph/outputFormatter.js +12 -62
  411. package/dist/graph/outputFormatter.js.map +1 -1
  412. package/dist/hooks/codex.d.ts +8 -1
  413. package/dist/hooks/codex.d.ts.map +1 -1
  414. package/dist/hooks/codex.js +7 -0
  415. package/dist/hooks/codex.js.map +1 -1
  416. package/dist/hooks/core.d.ts +6 -0
  417. package/dist/hooks/core.d.ts.map +1 -1
  418. package/dist/hooks/core.js +6 -1
  419. package/dist/hooks/core.js.map +1 -1
  420. package/dist/hooks/cursor.d.ts +11 -1
  421. package/dist/hooks/cursor.d.ts.map +1 -1
  422. package/dist/hooks/cursor.js +10 -0
  423. package/dist/hooks/cursor.js.map +1 -1
  424. package/dist/index.d.ts +4 -0
  425. package/dist/index.d.ts.map +1 -1
  426. package/dist/index.js +4 -0
  427. package/dist/index.js.map +1 -1
  428. package/dist/installConfig.d.ts +23 -5
  429. package/dist/installConfig.d.ts.map +1 -1
  430. package/dist/installConfig.js +23 -5
  431. package/dist/installConfig.js.map +1 -1
  432. package/dist/installer.d.ts +6 -0
  433. package/dist/installer.d.ts.map +1 -1
  434. package/dist/installer.js +6 -0
  435. package/dist/installer.js.map +1 -1
  436. package/dist/invariants/ruleEngine.d.ts +3 -0
  437. package/dist/invariants/ruleEngine.d.ts.map +1 -1
  438. package/dist/invariants/ruleEngine.js +156 -119
  439. package/dist/invariants/ruleEngine.js.map +1 -1
  440. package/dist/invariants/ruleValidator.d.ts +3 -0
  441. package/dist/invariants/ruleValidator.d.ts.map +1 -1
  442. package/dist/invariants/ruleValidator.js +185 -178
  443. package/dist/invariants/ruleValidator.js.map +1 -1
  444. package/dist/languages/LanguageOrchestrator.d.ts +4 -1
  445. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
  446. package/dist/languages/LanguageOrchestrator.js +8 -19
  447. package/dist/languages/LanguageOrchestrator.js.map +1 -1
  448. package/dist/languages/RuntimeManager.d.ts +8 -0
  449. package/dist/languages/RuntimeManager.d.ts.map +1 -1
  450. package/dist/languages/RuntimeManager.js +55 -5
  451. package/dist/languages/RuntimeManager.js.map +1 -1
  452. package/dist/languages/UniversalAnalyzer.js +1 -1
  453. package/dist/languages/UniversalAnalyzer.js.map +1 -1
  454. package/dist/languages/adapterBridge.d.ts +4 -0
  455. package/dist/languages/adapterBridge.d.ts.map +1 -1
  456. package/dist/languages/adapterBridge.js +37 -3
  457. package/dist/languages/adapterBridge.js.map +1 -1
  458. package/dist/languages/go/GoAdapter.d.ts.map +1 -1
  459. package/dist/languages/go/GoAdapter.js +11 -14
  460. package/dist/languages/go/GoAdapter.js.map +1 -1
  461. package/dist/languages/go/analyzer-darwin-amd64 +0 -0
  462. package/dist/languages/go/analyzer-darwin-arm64 +0 -0
  463. package/dist/languages/go/analyzer-linux-amd64 +0 -0
  464. package/dist/languages/go/analyzer-linux-arm64 +0 -0
  465. package/dist/languages/go/analyzer-src/analyzer.go +2 -0
  466. package/dist/languages/go/analyzer-src/dataaccess.go +388 -0
  467. package/dist/languages/go/analyzer-src/types.go +8 -0
  468. package/dist/languages/go/analyzer-windows-amd64.exe +0 -0
  469. package/dist/languages/go/database-packages.json +8 -0
  470. package/dist/languages/go/goResolution.d.ts +229 -0
  471. package/dist/languages/go/goResolution.d.ts.map +1 -0
  472. package/dist/languages/go/goResolution.js +799 -0
  473. package/dist/languages/go/goResolution.js.map +1 -0
  474. package/dist/languages/go/stdlib-packages.json +353 -0
  475. package/dist/languages/go/tenantInputs.d.ts +37 -0
  476. package/dist/languages/go/tenantInputs.d.ts.map +1 -0
  477. package/dist/languages/go/tenantInputs.js +121 -0
  478. package/dist/languages/go/tenantInputs.js.map +1 -0
  479. package/dist/languages/index.d.ts +1 -0
  480. package/dist/languages/index.d.ts.map +1 -1
  481. package/dist/languages/index.js +5 -0
  482. package/dist/languages/index.js.map +1 -1
  483. package/dist/languages/json/JsonAdapter.d.ts +177 -0
  484. package/dist/languages/json/JsonAdapter.d.ts.map +1 -0
  485. package/dist/languages/json/JsonAdapter.js +531 -0
  486. package/dist/languages/json/JsonAdapter.js.map +1 -0
  487. package/dist/languages/locationIndex.d.ts +41 -0
  488. package/dist/languages/locationIndex.d.ts.map +1 -0
  489. package/dist/languages/locationIndex.js +42 -0
  490. package/dist/languages/locationIndex.js.map +1 -0
  491. package/dist/languages/sql/dialectDetection.d.ts +57 -0
  492. package/dist/languages/sql/dialectDetection.d.ts.map +1 -0
  493. package/dist/languages/sql/dialectDetection.js +135 -0
  494. package/dist/languages/sql/dialectDetection.js.map +1 -0
  495. package/dist/languages/sql/sqlAst.d.ts +494 -0
  496. package/dist/languages/sql/sqlAst.d.ts.map +1 -0
  497. package/dist/languages/sql/sqlAst.js +1817 -0
  498. package/dist/languages/sql/sqlAst.js.map +1 -0
  499. package/dist/languages/testConventions.d.ts +12 -1
  500. package/dist/languages/testConventions.d.ts.map +1 -1
  501. package/dist/languages/testConventions.js +13 -1
  502. package/dist/languages/testConventions.js.map +1 -1
  503. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +1 -1
  504. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
  505. package/dist/languages/tree-sitter/converter.js +2 -2
  506. package/dist/languages/tree-sitter/converter.js.map +1 -1
  507. package/dist/languages/tree-sitter/parser.d.ts +3 -4
  508. package/dist/languages/tree-sitter/parser.d.ts.map +1 -1
  509. package/dist/languages/tree-sitter/parser.js +10 -4
  510. package/dist/languages/tree-sitter/parser.js.map +1 -1
  511. package/dist/languages/tree-sitter/rawNode.d.ts +3 -0
  512. package/dist/languages/tree-sitter/rawNode.d.ts.map +1 -1
  513. package/dist/languages/tree-sitter/rawNode.js +3 -0
  514. package/dist/languages/tree-sitter/rawNode.js.map +1 -1
  515. package/dist/languages/types.d.ts +7 -0
  516. package/dist/languages/types.d.ts.map +1 -1
  517. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +36 -0
  518. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  519. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +168 -45
  520. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  521. package/dist/languages/typescript/database-packages.json +19 -0
  522. package/dist/ledger.d.ts +118 -2
  523. package/dist/ledger.d.ts.map +1 -1
  524. package/dist/ledger.js +167 -45
  525. package/dist/ledger.js.map +1 -1
  526. package/dist/legacyIndexNotice.d.ts +32 -0
  527. package/dist/legacyIndexNotice.d.ts.map +1 -0
  528. package/dist/legacyIndexNotice.js +89 -0
  529. package/dist/legacyIndexNotice.js.map +1 -0
  530. package/dist/mcp-tools/discoveryQueries.d.ts +55 -0
  531. package/dist/mcp-tools/discoveryQueries.d.ts.map +1 -0
  532. package/dist/mcp-tools/discoveryQueries.js +157 -0
  533. package/dist/mcp-tools/discoveryQueries.js.map +1 -0
  534. package/dist/mcp-tools/projectTasks.d.ts +9 -123
  535. package/dist/mcp-tools/projectTasks.d.ts.map +1 -1
  536. package/dist/mcp-tools/projectTasks.js +180 -170
  537. package/dist/mcp-tools/projectTasks.js.map +1 -1
  538. package/dist/mcp-tools/whitelistTools.d.ts +20 -0
  539. package/dist/mcp-tools/whitelistTools.d.ts.map +1 -1
  540. package/dist/mcp-tools/whitelistTools.js +20 -0
  541. package/dist/mcp-tools/whitelistTools.js.map +1 -1
  542. package/dist/mcp-tools/workflowGuide.d.ts +9 -0
  543. package/dist/mcp-tools/workflowGuide.d.ts.map +1 -1
  544. package/dist/mcp-tools/workflowGuide.js +13 -5
  545. package/dist/mcp-tools/workflowGuide.js.map +1 -1
  546. package/dist/mcp-tools-shared.d.ts +78 -0
  547. package/dist/mcp-tools-shared.d.ts.map +1 -1
  548. package/dist/mcp-tools-shared.js +203 -340
  549. package/dist/mcp-tools-shared.js.map +1 -1
  550. package/dist/mcp-ui-simple.d.ts +2 -0
  551. package/dist/mcp-ui-simple.d.ts.map +1 -1
  552. package/dist/mcp-ui-simple.js +12 -5
  553. package/dist/mcp-ui-simple.js.map +1 -1
  554. package/dist/mcp.d.ts +6 -0
  555. package/dist/mcp.d.ts.map +1 -1
  556. package/dist/mcp.js +832 -851
  557. package/dist/mcp.js.map +1 -1
  558. package/dist/mcpAuditJobs.d.ts +29 -33
  559. package/dist/mcpAuditJobs.d.ts.map +1 -1
  560. package/dist/mcpAuditJobs.js +102 -791
  561. package/dist/mcpAuditJobs.js.map +1 -1
  562. package/dist/mcpAutoIndex.d.ts +5 -0
  563. package/dist/mcpAutoIndex.d.ts.map +1 -1
  564. package/dist/mcpAutoIndex.js +7 -2
  565. package/dist/mcpAutoIndex.js.map +1 -1
  566. package/dist/mcpDiagnostics.d.ts +7 -0
  567. package/dist/mcpDiagnostics.d.ts.map +1 -1
  568. package/dist/mcpDiagnostics.js +34 -9
  569. package/dist/mcpDiagnostics.js.map +1 -1
  570. package/dist/mcpToolErrors.d.ts +16 -0
  571. package/dist/mcpToolErrors.d.ts.map +1 -1
  572. package/dist/mcpToolErrors.js +16 -0
  573. package/dist/mcpToolErrors.js.map +1 -1
  574. package/dist/nextFile.d.ts +6 -0
  575. package/dist/nextFile.d.ts.map +1 -1
  576. package/dist/nextFile.js +6 -0
  577. package/dist/nextFile.js.map +1 -1
  578. package/dist/nextFileIncremental.d.ts +44 -4
  579. package/dist/nextFileIncremental.d.ts.map +1 -1
  580. package/dist/nextFileIncremental.js +47 -7
  581. package/dist/nextFileIncremental.js.map +1 -1
  582. package/dist/phase/batchFunctions.d.ts +38 -0
  583. package/dist/phase/batchFunctions.d.ts.map +1 -0
  584. package/dist/phase/batchFunctions.js +64 -0
  585. package/dist/phase/batchFunctions.js.map +1 -0
  586. package/dist/phase/checks.d.ts +39 -0
  587. package/dist/phase/checks.d.ts.map +1 -0
  588. package/dist/phase/checks.js +48 -0
  589. package/dist/phase/checks.js.map +1 -0
  590. package/dist/phase/codeBlocks.d.ts +25 -0
  591. package/dist/phase/codeBlocks.d.ts.map +1 -0
  592. package/dist/phase/codeBlocks.js +268 -0
  593. package/dist/phase/codeBlocks.js.map +1 -0
  594. package/dist/phase/colorMath.d.ts +41 -0
  595. package/dist/phase/colorMath.d.ts.map +1 -0
  596. package/dist/phase/colorMath.js +109 -0
  597. package/dist/phase/colorMath.js.map +1 -0
  598. package/dist/phase/config.d.ts +29 -0
  599. package/dist/phase/config.d.ts.map +1 -0
  600. package/dist/phase/config.js +54 -0
  601. package/dist/phase/config.js.map +1 -0
  602. package/dist/phase/consumed.d.ts +47 -0
  603. package/dist/phase/consumed.d.ts.map +1 -0
  604. package/dist/phase/consumed.js +22 -0
  605. package/dist/phase/consumed.js.map +1 -0
  606. package/dist/phase/conventionMining.d.ts +59 -0
  607. package/dist/phase/conventionMining.d.ts.map +1 -0
  608. package/dist/phase/conventionMining.js +152 -0
  609. package/dist/phase/conventionMining.js.map +1 -0
  610. package/dist/phase/coverage.d.ts +65 -0
  611. package/dist/phase/coverage.d.ts.map +1 -0
  612. package/dist/phase/coverage.js +121 -0
  613. package/dist/phase/coverage.js.map +1 -0
  614. package/dist/phase/dag.d.ts +49 -0
  615. package/dist/phase/dag.d.ts.map +1 -0
  616. package/dist/phase/dag.js +120 -0
  617. package/dist/phase/dag.js.map +1 -0
  618. package/dist/phase/dataAccessCalls.d.ts +33 -0
  619. package/dist/phase/dataAccessCalls.d.ts.map +1 -0
  620. package/dist/phase/dataAccessCalls.js +42 -0
  621. package/dist/phase/dataAccessCalls.js.map +1 -0
  622. package/dist/phase/dataAccessCallsCandidates.d.ts +25 -0
  623. package/dist/phase/dataAccessCallsCandidates.d.ts.map +1 -0
  624. package/dist/phase/dataAccessCallsCandidates.js +27 -0
  625. package/dist/phase/dataAccessCallsCandidates.js.map +1 -0
  626. package/dist/phase/dynamicSql.d.ts +18 -0
  627. package/dist/phase/dynamicSql.d.ts.map +1 -0
  628. package/dist/phase/dynamicSql.js +20 -0
  629. package/dist/phase/dynamicSql.js.map +1 -0
  630. package/dist/phase/exportForm.d.ts +23 -0
  631. package/dist/phase/exportForm.d.ts.map +1 -0
  632. package/dist/phase/exportForm.js +29 -0
  633. package/dist/phase/exportForm.js.map +1 -0
  634. package/dist/phase/exportSymbols.d.ts +21 -0
  635. package/dist/phase/exportSymbols.d.ts.map +1 -0
  636. package/dist/phase/exportSymbols.js +28 -0
  637. package/dist/phase/exportSymbols.js.map +1 -0
  638. package/dist/phase/fileHeader.d.ts +15 -0
  639. package/dist/phase/fileHeader.d.ts.map +1 -0
  640. package/dist/phase/fileHeader.js +33 -0
  641. package/dist/phase/fileHeader.js.map +1 -0
  642. package/dist/phase/fileImports.d.ts +39 -0
  643. package/dist/phase/fileImports.d.ts.map +1 -0
  644. package/dist/phase/fileImports.js +138 -0
  645. package/dist/phase/fileImports.js.map +1 -0
  646. package/dist/phase/fileSymbols.d.ts +25 -0
  647. package/dist/phase/fileSymbols.d.ts.map +1 -0
  648. package/dist/phase/fileSymbols.js +302 -0
  649. package/dist/phase/fileSymbols.js.map +1 -0
  650. package/dist/phase/functionBodies.d.ts +28 -0
  651. package/dist/phase/functionBodies.d.ts.map +1 -0
  652. package/dist/phase/functionBodies.js +67 -0
  653. package/dist/phase/functionBodies.js.map +1 -0
  654. package/dist/phase/functionIndex.d.ts +28 -0
  655. package/dist/phase/functionIndex.d.ts.map +1 -0
  656. package/dist/phase/functionIndex.js +152 -0
  657. package/dist/phase/functionIndex.js.map +1 -0
  658. package/dist/phase/goFunctionAnalysis.d.ts +47 -0
  659. package/dist/phase/goFunctionAnalysis.d.ts.map +1 -0
  660. package/dist/phase/goFunctionAnalysis.js +291 -0
  661. package/dist/phase/goFunctionAnalysis.js.map +1 -0
  662. package/dist/phase/goFunctions.d.ts +38 -0
  663. package/dist/phase/goFunctions.d.ts.map +1 -0
  664. package/dist/phase/goFunctions.js +154 -0
  665. package/dist/phase/goFunctions.js.map +1 -0
  666. package/dist/phase/goImports.d.ts +29 -0
  667. package/dist/phase/goImports.d.ts.map +1 -0
  668. package/dist/phase/goImports.js +68 -0
  669. package/dist/phase/goImports.js.map +1 -0
  670. package/dist/phase/goPackageBindings.d.ts +22 -0
  671. package/dist/phase/goPackageBindings.d.ts.map +1 -0
  672. package/dist/phase/goPackageBindings.js +30 -0
  673. package/dist/phase/goPackageBindings.js.map +1 -0
  674. package/dist/phase/goSwitches.d.ts +28 -0
  675. package/dist/phase/goSwitches.d.ts.map +1 -0
  676. package/dist/phase/goSwitches.js +52 -0
  677. package/dist/phase/goSwitches.js.map +1 -0
  678. package/dist/phase/importForm.d.ts +20 -0
  679. package/dist/phase/importForm.d.ts.map +1 -0
  680. package/dist/phase/importForm.js +27 -0
  681. package/dist/phase/importForm.js.map +1 -0
  682. package/dist/phase/importSpecifiers.d.ts +20 -0
  683. package/dist/phase/importSpecifiers.d.ts.map +1 -0
  684. package/dist/phase/importSpecifiers.js +30 -0
  685. package/dist/phase/importSpecifiers.js.map +1 -0
  686. package/dist/phase/imports.d.ts +18 -0
  687. package/dist/phase/imports.d.ts.map +1 -0
  688. package/dist/phase/imports.js +25 -0
  689. package/dist/phase/imports.js.map +1 -0
  690. package/dist/phase/jsonDocument.d.ts +26 -0
  691. package/dist/phase/jsonDocument.d.ts.map +1 -0
  692. package/dist/phase/jsonDocument.js +36 -0
  693. package/dist/phase/jsonDocument.js.map +1 -0
  694. package/dist/phase/localBinding.d.ts +33 -0
  695. package/dist/phase/localBinding.d.ts.map +1 -0
  696. package/dist/phase/localBinding.js +208 -0
  697. package/dist/phase/localBinding.js.map +1 -0
  698. package/dist/phase/loopQueries.d.ts +31 -0
  699. package/dist/phase/loopQueries.d.ts.map +1 -0
  700. package/dist/phase/loopQueries.js +44 -0
  701. package/dist/phase/loopQueries.js.map +1 -0
  702. package/dist/phase/loopQueryCandidates.d.ts +26 -0
  703. package/dist/phase/loopQueryCandidates.d.ts.map +1 -0
  704. package/dist/phase/loopQueryCandidates.js +28 -0
  705. package/dist/phase/loopQueryCandidates.js.map +1 -0
  706. package/dist/phase/oracles.d.ts +216 -0
  707. package/dist/phase/oracles.d.ts.map +1 -0
  708. package/dist/phase/oracles.js +484 -0
  709. package/dist/phase/oracles.js.map +1 -0
  710. package/dist/phase/phaseModel.d.ts +190 -0
  711. package/dist/phase/phaseModel.d.ts.map +1 -0
  712. package/dist/phase/phaseModel.js +468 -0
  713. package/dist/phase/phaseModel.js.map +1 -0
  714. package/dist/phase/producers.d.ts +450 -0
  715. package/dist/phase/producers.d.ts.map +1 -0
  716. package/dist/phase/producers.js +1027 -0
  717. package/dist/phase/producers.js.map +1 -0
  718. package/dist/phase/querySiteCandidates.d.ts +27 -0
  719. package/dist/phase/querySiteCandidates.d.ts.map +1 -0
  720. package/dist/phase/querySiteCandidates.js +66 -0
  721. package/dist/phase/querySiteCandidates.js.map +1 -0
  722. package/dist/phase/querySites.d.ts +30 -0
  723. package/dist/phase/querySites.d.ts.map +1 -0
  724. package/dist/phase/querySites.js +93 -0
  725. package/dist/phase/querySites.js.map +1 -0
  726. package/dist/phase/reachability.d.ts +61 -0
  727. package/dist/phase/reachability.d.ts.map +1 -0
  728. package/dist/phase/reachability.js +104 -0
  729. package/dist/phase/reachability.js.map +1 -0
  730. package/dist/phase/reactComponents.d.ts +33 -0
  731. package/dist/phase/reactComponents.d.ts.map +1 -0
  732. package/dist/phase/reactComponents.js +47 -0
  733. package/dist/phase/reactComponents.js.map +1 -0
  734. package/dist/phase/receiverActivity.d.ts +35 -0
  735. package/dist/phase/receiverActivity.d.ts.map +1 -0
  736. package/dist/phase/receiverActivity.js +66 -0
  737. package/dist/phase/receiverActivity.js.map +1 -0
  738. package/dist/phase/receiverConsumers.d.ts +200 -0
  739. package/dist/phase/receiverConsumers.d.ts.map +1 -0
  740. package/dist/phase/receiverConsumers.js +1025 -0
  741. package/dist/phase/receiverConsumers.js.map +1 -0
  742. package/dist/phase/receiverProvenance.d.ts +97 -0
  743. package/dist/phase/receiverProvenance.d.ts.map +1 -0
  744. package/dist/phase/receiverProvenance.js +337 -0
  745. package/dist/phase/receiverProvenance.js.map +1 -0
  746. package/dist/phase/routing.d.ts +47 -0
  747. package/dist/phase/routing.d.ts.map +1 -0
  748. package/dist/phase/routing.js +62 -0
  749. package/dist/phase/routing.js.map +1 -0
  750. package/dist/phase/rules/conventions.d.ts +61 -0
  751. package/dist/phase/rules/conventions.d.ts.map +1 -0
  752. package/dist/phase/rules/conventions.js +403 -0
  753. package/dist/phase/rules/conventions.js.map +1 -0
  754. package/dist/phase/rules/crossDomain.d.ts +102 -0
  755. package/dist/phase/rules/crossDomain.d.ts.map +1 -0
  756. package/dist/phase/rules/crossDomain.js +918 -0
  757. package/dist/phase/rules/crossDomain.js.map +1 -0
  758. package/dist/phase/rules/dataAccess.d.ts +62 -0
  759. package/dist/phase/rules/dataAccess.d.ts.map +1 -0
  760. package/dist/phase/rules/dataAccess.js +480 -0
  761. package/dist/phase/rules/dataAccess.js.map +1 -0
  762. package/dist/phase/rules/dependencyGraph.d.ts +44 -0
  763. package/dist/phase/rules/dependencyGraph.d.ts.map +1 -0
  764. package/dist/phase/rules/dependencyGraph.js +260 -0
  765. package/dist/phase/rules/dependencyGraph.js.map +1 -0
  766. package/dist/phase/rules/documentation.d.ts +45 -0
  767. package/dist/phase/rules/documentation.d.ts.map +1 -0
  768. package/dist/phase/rules/documentation.js +340 -0
  769. package/dist/phase/rules/documentation.js.map +1 -0
  770. package/dist/phase/rules/dry.d.ts +109 -0
  771. package/dist/phase/rules/dry.d.ts.map +1 -0
  772. package/dist/phase/rules/dry.js +803 -0
  773. package/dist/phase/rules/dry.js.map +1 -0
  774. package/dist/phase/rules/fileDocumentation.d.ts +36 -0
  775. package/dist/phase/rules/fileDocumentation.d.ts.map +1 -0
  776. package/dist/phase/rules/fileDocumentation.js +134 -0
  777. package/dist/phase/rules/fileDocumentation.js.map +1 -0
  778. package/dist/phase/rules/functionBodies.d.ts +33 -0
  779. package/dist/phase/rules/functionBodies.d.ts.map +1 -0
  780. package/dist/phase/rules/functionBodies.js +71 -0
  781. package/dist/phase/rules/functionBodies.js.map +1 -0
  782. package/dist/phase/rules/goRules.d.ts +49 -0
  783. package/dist/phase/rules/goRules.d.ts.map +1 -0
  784. package/dist/phase/rules/goRules.js +209 -0
  785. package/dist/phase/rules/goRules.js.map +1 -0
  786. package/dist/phase/rules/querySites.d.ts +29 -0
  787. package/dist/phase/rules/querySites.d.ts.map +1 -0
  788. package/dist/phase/rules/querySites.js +94 -0
  789. package/dist/phase/rules/querySites.js.map +1 -0
  790. package/dist/phase/rules/react.d.ts +38 -0
  791. package/dist/phase/rules/react.d.ts.map +1 -0
  792. package/dist/phase/rules/react.js +202 -0
  793. package/dist/phase/rules/react.js.map +1 -0
  794. package/dist/phase/rules/registry.d.ts +170 -0
  795. package/dist/phase/rules/registry.d.ts.map +1 -0
  796. package/dist/phase/rules/registry.js +103 -0
  797. package/dist/phase/rules/registry.js.map +1 -0
  798. package/dist/phase/rules/schema.d.ts +79 -0
  799. package/dist/phase/rules/schema.d.ts.map +1 -0
  800. package/dist/phase/rules/schema.js +273 -0
  801. package/dist/phase/rules/schema.js.map +1 -0
  802. package/dist/phase/rules/schemaJson.d.ts +32 -0
  803. package/dist/phase/rules/schemaJson.d.ts.map +1 -0
  804. package/dist/phase/rules/schemaJson.js +81 -0
  805. package/dist/phase/rules/schemaJson.js.map +1 -0
  806. package/dist/phase/rules/schemaValidator.d.ts +38 -0
  807. package/dist/phase/rules/schemaValidator.d.ts.map +1 -0
  808. package/dist/phase/rules/schemaValidator.js +107 -0
  809. package/dist/phase/rules/schemaValidator.js.map +1 -0
  810. package/dist/phase/rules/secrets.d.ts +34 -0
  811. package/dist/phase/rules/secrets.d.ts.map +1 -0
  812. package/dist/phase/rules/secrets.js +208 -0
  813. package/dist/phase/rules/secrets.js.map +1 -0
  814. package/dist/phase/rules/security.d.ts +30 -0
  815. package/dist/phase/rules/security.d.ts.map +1 -0
  816. package/dist/phase/rules/security.js +85 -0
  817. package/dist/phase/rules/security.js.map +1 -0
  818. package/dist/phase/rules/securityDefects.d.ts +37 -0
  819. package/dist/phase/rules/securityDefects.d.ts.map +1 -0
  820. package/dist/phase/rules/securityDefects.js +167 -0
  821. package/dist/phase/rules/securityDefects.js.map +1 -0
  822. package/dist/phase/rules/solid.d.ts +61 -0
  823. package/dist/phase/rules/solid.d.ts.map +1 -0
  824. package/dist/phase/rules/solid.js +562 -0
  825. package/dist/phase/rules/solid.js.map +1 -0
  826. package/dist/phase/rules/styles.d.ts +77 -0
  827. package/dist/phase/rules/styles.d.ts.map +1 -0
  828. package/dist/phase/rules/styles.js +868 -0
  829. package/dist/phase/rules/styles.js.map +1 -0
  830. package/dist/phase/rules/unreferencedModule.d.ts +26 -0
  831. package/dist/phase/rules/unreferencedModule.d.ts.map +1 -0
  832. package/dist/phase/rules/unreferencedModule.js +61 -0
  833. package/dist/phase/rules/unreferencedModule.js.map +1 -0
  834. package/dist/phase/runner.d.ts +549 -0
  835. package/dist/phase/runner.d.ts.map +1 -0
  836. package/dist/phase/runner.js +1098 -0
  837. package/dist/phase/runner.js.map +1 -0
  838. package/dist/phase/schemaCode.d.ts +34 -0
  839. package/dist/phase/schemaCode.d.ts.map +1 -0
  840. package/dist/phase/schemaCode.js +53 -0
  841. package/dist/phase/schemaCode.js.map +1 -0
  842. package/dist/phase/schemaObjects.d.ts +37 -0
  843. package/dist/phase/schemaObjects.d.ts.map +1 -0
  844. package/dist/phase/schemaObjects.js +139 -0
  845. package/dist/phase/schemaObjects.js.map +1 -0
  846. package/dist/phase/schemaUsage.d.ts +30 -0
  847. package/dist/phase/schemaUsage.d.ts.map +1 -0
  848. package/dist/phase/schemaUsage.js +99 -0
  849. package/dist/phase/schemaUsage.js.map +1 -0
  850. package/dist/phase/schemaUsageCandidates.d.ts +32 -0
  851. package/dist/phase/schemaUsageCandidates.d.ts.map +1 -0
  852. package/dist/phase/schemaUsageCandidates.js +165 -0
  853. package/dist/phase/schemaUsageCandidates.js.map +1 -0
  854. package/dist/phase/schemaValidations.d.ts +34 -0
  855. package/dist/phase/schemaValidations.d.ts.map +1 -0
  856. package/dist/phase/schemaValidations.js +53 -0
  857. package/dist/phase/schemaValidations.js.map +1 -0
  858. package/dist/phase/secretCandidates.d.ts +28 -0
  859. package/dist/phase/secretCandidates.d.ts.map +1 -0
  860. package/dist/phase/secretCandidates.js +132 -0
  861. package/dist/phase/secretCandidates.js.map +1 -0
  862. package/dist/phase/securityCandidates.d.ts +29 -0
  863. package/dist/phase/securityCandidates.d.ts.map +1 -0
  864. package/dist/phase/securityCandidates.js +469 -0
  865. package/dist/phase/securityCandidates.js.map +1 -0
  866. package/dist/phase/seeded-defects.d.ts +18 -0
  867. package/dist/phase/seeded-defects.d.ts.map +1 -0
  868. package/dist/phase/seeded-defects.js +61 -0
  869. package/dist/phase/seeded-defects.js.map +1 -0
  870. package/dist/phase/stringLiterals.d.ts +24 -0
  871. package/dist/phase/stringLiterals.d.ts.map +1 -0
  872. package/dist/phase/stringLiterals.js +35 -0
  873. package/dist/phase/stringLiterals.js.map +1 -0
  874. package/dist/phase/stylesCss.d.ts +25 -0
  875. package/dist/phase/stylesCss.d.ts.map +1 -0
  876. package/dist/phase/stylesCss.js +34 -0
  877. package/dist/phase/stylesCss.js.map +1 -0
  878. package/dist/phase/stylesMarkup.d.ts +31 -0
  879. package/dist/phase/stylesMarkup.d.ts.map +1 -0
  880. package/dist/phase/stylesMarkup.js +48 -0
  881. package/dist/phase/stylesMarkup.js.map +1 -0
  882. package/dist/phase/stylesSource.d.ts +36 -0
  883. package/dist/phase/stylesSource.d.ts.map +1 -0
  884. package/dist/phase/stylesSource.js +50 -0
  885. package/dist/phase/stylesSource.js.map +1 -0
  886. package/dist/phase/typeDeclarations.d.ts +33 -0
  887. package/dist/phase/typeDeclarations.d.ts.map +1 -0
  888. package/dist/phase/typeDeclarations.js +76 -0
  889. package/dist/phase/typeDeclarations.js.map +1 -0
  890. package/dist/phase/types.d.ts +2191 -0
  891. package/dist/phase/types.d.ts.map +1 -0
  892. package/dist/phase/types.js +27 -0
  893. package/dist/phase/types.js.map +1 -0
  894. package/dist/phase/withinFileProvenance.d.ts +50 -0
  895. package/dist/phase/withinFileProvenance.d.ts.map +1 -0
  896. package/dist/phase/withinFileProvenance.js +112 -0
  897. package/dist/phase/withinFileProvenance.js.map +1 -0
  898. package/dist/pipeline.d.ts +37 -30
  899. package/dist/pipeline.d.ts.map +1 -1
  900. package/dist/pipeline.js +131 -326
  901. package/dist/pipeline.js.map +1 -1
  902. package/dist/pipelineAdapters.d.ts +104 -21
  903. package/dist/pipelineAdapters.d.ts.map +1 -1
  904. package/dist/pipelineAdapters.js +1145 -988
  905. package/dist/pipelineAdapters.js.map +1 -1
  906. package/dist/pipelineTypes.d.ts +21 -0
  907. package/dist/pipelineTypes.d.ts.map +1 -1
  908. package/dist/pipelineTypes.js +21 -10
  909. package/dist/pipelineTypes.js.map +1 -1
  910. package/dist/presets/presets.d.ts +9 -2
  911. package/dist/presets/presets.d.ts.map +1 -1
  912. package/dist/presets/presets.js +15 -26
  913. package/dist/presets/presets.js.map +1 -1
  914. package/dist/reporting/csvReportGenerator.d.ts +14 -3
  915. package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
  916. package/dist/reporting/csvReportGenerator.js +14 -3
  917. package/dist/reporting/csvReportGenerator.js.map +1 -1
  918. package/dist/reporting/htmlReportGenerator.d.ts +5 -1
  919. package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
  920. package/dist/reporting/htmlReportGenerator.js +5 -1
  921. package/dist/reporting/htmlReportGenerator.js.map +1 -1
  922. package/dist/reporting/jsonReportGenerator.d.ts +9 -2
  923. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  924. package/dist/reporting/jsonReportGenerator.js +19 -5
  925. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  926. package/dist/reporting/reportGenerator.d.ts +9 -2
  927. package/dist/reporting/reportGenerator.d.ts.map +1 -1
  928. package/dist/reporting/reportGenerator.js +9 -2
  929. package/dist/reporting/reportGenerator.js.map +1 -1
  930. package/dist/reporting/sarifReportGenerator.d.ts +14 -0
  931. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
  932. package/dist/reporting/sarifReportGenerator.js +14 -0
  933. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  934. package/dist/reporting/sizeDistribution.d.ts +19 -2
  935. package/dist/reporting/sizeDistribution.d.ts.map +1 -1
  936. package/dist/reporting/sizeDistribution.js +23 -5
  937. package/dist/reporting/sizeDistribution.js.map +1 -1
  938. package/dist/ruleAliases.d.ts +6 -8
  939. package/dist/ruleAliases.d.ts.map +1 -1
  940. package/dist/ruleAliases.js +29 -4
  941. package/dist/ruleAliases.js.map +1 -1
  942. package/dist/search/QueryParser.d.ts +1 -0
  943. package/dist/search/QueryParser.d.ts.map +1 -1
  944. package/dist/search/QueryParser.js +32 -91
  945. package/dist/search/QueryParser.js.map +1 -1
  946. package/dist/services/CodeMapGenerator.d.ts +19 -20
  947. package/dist/services/CodeMapGenerator.d.ts.map +1 -1
  948. package/dist/services/CodeMapGenerator.js +214 -194
  949. package/dist/services/CodeMapGenerator.js.map +1 -1
  950. package/dist/services/ProjectTaskRepository.d.ts +65 -3
  951. package/dist/services/ProjectTaskRepository.d.ts.map +1 -1
  952. package/dist/services/ProjectTaskRepository.js +94 -25
  953. package/dist/services/ProjectTaskRepository.js.map +1 -1
  954. package/dist/services/auditJobService.d.ts +17 -1
  955. package/dist/services/auditJobService.d.ts.map +1 -1
  956. package/dist/services/auditJobService.js +16 -0
  957. package/dist/services/auditJobService.js.map +1 -1
  958. package/dist/services/fileAccounting.d.ts +43 -5
  959. package/dist/services/fileAccounting.d.ts.map +1 -1
  960. package/dist/services/fileAccounting.js +48 -9
  961. package/dist/services/fileAccounting.js.map +1 -1
  962. package/dist/services/projectTaskHelpers.d.ts +45 -0
  963. package/dist/services/projectTaskHelpers.d.ts.map +1 -1
  964. package/dist/services/projectTaskHelpers.js +45 -0
  965. package/dist/services/projectTaskHelpers.js.map +1 -1
  966. package/dist/services/whitelistService.d.ts +40 -5
  967. package/dist/services/whitelistService.d.ts.map +1 -1
  968. package/dist/services/whitelistService.js +87 -46
  969. package/dist/services/whitelistService.js.map +1 -1
  970. package/dist/sqlite/betterSqlite3.d.ts +35 -1
  971. package/dist/sqlite/betterSqlite3.d.ts.map +1 -1
  972. package/dist/sqlite/betterSqlite3.js +35 -1
  973. package/dist/sqlite/betterSqlite3.js.map +1 -1
  974. package/dist/sqlite/driver.d.ts +23 -0
  975. package/dist/sqlite/driver.d.ts.map +1 -1
  976. package/dist/sqlite/driver.js +23 -0
  977. package/dist/sqlite/driver.js.map +1 -1
  978. package/dist/sqlite/nodeSqlite.d.ts +35 -1
  979. package/dist/sqlite/nodeSqlite.d.ts.map +1 -1
  980. package/dist/sqlite/nodeSqlite.js +35 -1
  981. package/dist/sqlite/nodeSqlite.js.map +1 -1
  982. package/dist/structuralSignature.d.ts +9 -0
  983. package/dist/structuralSignature.d.ts.map +1 -1
  984. package/dist/structuralSignature.js +9 -0
  985. package/dist/structuralSignature.js.map +1 -1
  986. package/dist/styles/cssAstExtractor.d.ts +15 -0
  987. package/dist/styles/cssAstExtractor.d.ts.map +1 -1
  988. package/dist/styles/cssAstExtractor.js +15 -0
  989. package/dist/styles/cssAstExtractor.js.map +1 -1
  990. package/dist/styles/normalizer.d.ts +6 -0
  991. package/dist/styles/normalizer.d.ts.map +1 -1
  992. package/dist/styles/normalizer.js +6 -0
  993. package/dist/styles/normalizer.js.map +1 -1
  994. package/dist/styles/styleExtractor.d.ts +29 -2
  995. package/dist/styles/styleExtractor.d.ts.map +1 -1
  996. package/dist/styles/styleExtractor.js +67 -48
  997. package/dist/styles/styleExtractor.js.map +1 -1
  998. package/dist/styles/styleIndexer.d.ts +8 -0
  999. package/dist/styles/styleIndexer.d.ts.map +1 -1
  1000. package/dist/styles/styleIndexer.js +135 -138
  1001. package/dist/styles/styleIndexer.js.map +1 -1
  1002. package/dist/styles/tailwindConfigLoader.d.ts +12 -0
  1003. package/dist/styles/tailwindConfigLoader.d.ts.map +1 -1
  1004. package/dist/styles/tailwindConfigLoader.js +12 -0
  1005. package/dist/styles/tailwindConfigLoader.js.map +1 -1
  1006. package/dist/styles/tailwindExpander.d.ts +3 -0
  1007. package/dist/styles/tailwindExpander.d.ts.map +1 -1
  1008. package/dist/styles/tailwindExpander.js +8 -4
  1009. package/dist/styles/tailwindExpander.js.map +1 -1
  1010. package/dist/styles/tailwindProbe.d.ts +9 -0
  1011. package/dist/styles/tailwindProbe.d.ts.map +1 -1
  1012. package/dist/styles/tailwindProbe.js +181 -166
  1013. package/dist/styles/tailwindProbe.js.map +1 -1
  1014. package/dist/styles/tailwindUtilityExpander.d.ts +13 -0
  1015. package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
  1016. package/dist/styles/tailwindUtilityExpander.js +13 -0
  1017. package/dist/styles/tailwindUtilityExpander.js.map +1 -1
  1018. package/dist/symbols.d.ts +13 -11
  1019. package/dist/symbols.d.ts.map +1 -1
  1020. package/dist/symbols.js +14 -21
  1021. package/dist/symbols.js.map +1 -1
  1022. package/dist/telemetry.d.ts +31 -3
  1023. package/dist/telemetry.d.ts.map +1 -1
  1024. package/dist/telemetry.js +31 -3
  1025. package/dist/telemetry.js.map +1 -1
  1026. package/dist/tool-registry.d.ts +37 -1
  1027. package/dist/tool-registry.d.ts.map +1 -1
  1028. package/dist/tool-registry.js +37 -1
  1029. package/dist/tool-registry.js.map +1 -1
  1030. package/dist/types.d.ts +106 -92
  1031. package/dist/types.d.ts.map +1 -1
  1032. package/dist/types.js +7 -16
  1033. package/dist/types.js.map +1 -1
  1034. package/dist/ui/InteractivePrompts.d.ts +12 -0
  1035. package/dist/ui/InteractivePrompts.d.ts.map +1 -1
  1036. package/dist/ui/InteractivePrompts.js +12 -0
  1037. package/dist/ui/InteractivePrompts.js.map +1 -1
  1038. package/dist/utils/astParser.d.ts +15 -0
  1039. package/dist/utils/astParser.d.ts.map +1 -1
  1040. package/dist/utils/astParser.js +15 -0
  1041. package/dist/utils/astParser.js.map +1 -1
  1042. package/dist/utils/astUtils.d.ts +60 -0
  1043. package/dist/utils/astUtils.d.ts.map +1 -1
  1044. package/dist/utils/astUtils.js +350 -362
  1045. package/dist/utils/astUtils.js.map +1 -1
  1046. package/dist/utils/contentHash.d.ts +22 -0
  1047. package/dist/utils/contentHash.d.ts.map +1 -0
  1048. package/dist/utils/contentHash.js +26 -0
  1049. package/dist/utils/contentHash.js.map +1 -0
  1050. package/dist/utils/dependencyExtractor.d.ts +28 -0
  1051. package/dist/utils/dependencyExtractor.d.ts.map +1 -1
  1052. package/dist/utils/dependencyExtractor.js +28 -1
  1053. package/dist/utils/dependencyExtractor.js.map +1 -1
  1054. package/dist/utils/errorMessage.d.ts +10 -0
  1055. package/dist/utils/errorMessage.d.ts.map +1 -0
  1056. package/dist/utils/errorMessage.js +12 -0
  1057. package/dist/utils/errorMessage.js.map +1 -0
  1058. package/dist/utils/fileDiscovery.d.ts +61 -2
  1059. package/dist/utils/fileDiscovery.d.ts.map +1 -1
  1060. package/dist/utils/fileDiscovery.js +131 -23
  1061. package/dist/utils/fileDiscovery.js.map +1 -1
  1062. package/dist/utils/reactDetection.d.ts +34 -5
  1063. package/dist/utils/reactDetection.d.ts.map +1 -1
  1064. package/dist/utils/reactDetection.js +73 -52
  1065. package/dist/utils/reactDetection.js.map +1 -1
  1066. package/dist/version.generated.d.ts +1 -1
  1067. package/dist/version.generated.js +1 -1
  1068. package/dist/workers/auditWorker.js +7 -3
  1069. package/dist/workers/auditWorker.js.map +1 -1
  1070. package/examples/.auditrc.example.json +0 -8
  1071. package/examples/.auditrc.json +0 -11
  1072. package/examples/.code-auditor.json +0 -2
  1073. package/examples/nextjs.auditrc.json +0 -8
  1074. package/examples/node-api.auditrc.json +0 -7
  1075. package/examples/react.auditrc.json +0 -6
  1076. package/examples/tolerant-solid.auditrc.json +0 -5
  1077. package/package.json +14 -8
  1078. package/plugin/.claude-plugin/manifest.json +16 -0
  1079. package/plugin/.claude-plugin/plugin.json +1 -1
  1080. package/plugin/hooks/hooks.json +6 -2
  1081. package/plugin/scripts/hook-audit.sh +41 -14
  1082. package/plugin/scripts/hook-common.sh +50 -5
  1083. package/plugin/scripts/hook-drift-check.sh +72 -0
  1084. package/plugin/scripts/hook-self-audit.sh +17 -12
  1085. package/plugin/skills/code-auditor/SKILL.md +1 -1
  1086. package/server.json +2 -2
@@ -1,8 +1,5 @@
1
1
  import path from 'node:path';
2
- import { promises as fs } from 'node:fs';
3
- import { fork } from 'node:child_process';
4
- import { randomUUID } from 'node:crypto';
5
- import { cpus, hostname } from 'node:os';
2
+ import { hostname } from 'node:os';
6
3
  import { fileURLToPath } from 'node:url';
7
4
  import { CodeIndexDB } from './codeIndexDB.js';
8
5
  import { CodeMapGenerator } from './services/CodeMapGenerator.js';
@@ -13,38 +10,8 @@ import { detectRunInput, evaluateStaleRunning, hashFileSet, markRunsFailed, patc
13
10
  import { PACKAGE_VERSION } from './constants.js';
14
11
  import { mcpDebugStderr } from './mcpDiagnostics.js';
15
12
  import { findFiles } from './utils/fileDiscovery.js';
16
- import { makeVisitorStatus, getFilesProcessed, violationMatchesRule } from './pipeline.js';
17
- import { RULE_REGISTRY } from './analyzers/ruleRegistry.js';
13
+ import { runAudit } from './auditRunner.js';
18
14
  import chalk from 'chalk';
19
- const SOURCE_FOLDERS = ['app', 'src'];
20
- // Cross-file reducers run once over the FULL scope, never inside partition
21
- // shards. A shard sees only its partition's files and (worse) reads shared
22
- // index tables that other shards are still writing, so any reducer that reads
23
- // accumulated state must be global. The set is every reducer/derived-reducer
24
- // in the pipeline stage model:
25
- // dry — cross-file duplicate detection over the function index
26
- // data-access — per-file, but kept global so its coverage/status is a single
27
- // full-scope row (harmless to shard, but global is uniform)
28
- // schema — schema_usage reducers (unknown-table, JSON validation)
29
- // styles — reads style_declarations/tokens/class_usage written by the
30
- // styles-css visitor + syncStyleIndex (same analyzer gate)
31
- // conventions — reads function_calls/conventions via updateDependencyGraph +
32
- // mineAllConventions (same analyzer gate)
33
- // invariants — call-constraint/module-boundary need the full file list
34
- // cross-domain— reads schema_usage/indexed_functions/graph_cache (stage 4)
35
- const GLOBAL_ONLY_ANALYZERS = new Set([
36
- 'dry',
37
- 'data-access',
38
- 'data-access-org-filter',
39
- 'schema',
40
- 'styles',
41
- 'conventions',
42
- 'invariants',
43
- 'cross-domain',
44
- ]);
45
- const RETRYABLE_ERROR_PATTERNS = [/timed out/i, /timeout/i, /econnreset/i, /eagain/i, /emfile/i];
46
- /** Hard cap so pathological configs cannot fork unbounded processes. */
47
- const MAX_AUDIT_WORKERS = 8;
48
15
  const DEFAULT_JOB_TIMEOUT_MS = 30 * 60 * 1000;
49
16
  const ABSOLUTE_MAX_JOB_TIMEOUT_MS = 4 * 60 * 60 * 1000;
50
17
  const MIN_JOB_TIMEOUT_MS = 60 * 1000;
@@ -151,14 +118,10 @@ async function acquireLease(db, projectRoot, jobId) {
151
118
  await new Promise((resolve) => setTimeout(resolve, Math.max(250, Math.floor(ttl / 4))));
152
119
  }
153
120
  }
154
- function resolveWorkerEntrypoint() {
155
- const current = fileURLToPath(import.meta.url);
156
- const ext = path.extname(current);
157
- const dir = path.dirname(current);
158
- const filename = ext === '.ts' ? 'auditWorker.ts' : 'auditWorker.js';
159
- return path.join(dir, 'workers', filename);
160
- }
161
- /** Entrypoint for the detached CLI runner (Spec 41 `--detach`). */
121
+ /**
122
+ * Entrypoint for the detached CLI runner (Spec 41 `--detach`).
123
+ * @returns The path to the detached runner entrypoint.
124
+ */
162
125
  export function resolveJobRunnerEntrypoint() {
163
126
  const current = fileURLToPath(import.meta.url);
164
127
  const ext = path.extname(current);
@@ -166,349 +129,6 @@ export function resolveJobRunnerEntrypoint() {
166
129
  const filename = ext === '.ts' ? 'auditJobRunner.ts' : 'auditJobRunner.js';
167
130
  return path.join(dir, 'workers', filename);
168
131
  }
169
- function asSerializableConfig(options) {
170
- return {
171
- projectRoot: options.projectRoot || process.cwd(),
172
- includePaths: options.includePaths,
173
- excludePaths: options.excludePaths,
174
- fileExtensions: options.fileExtensions,
175
- minSeverity: options.minSeverity,
176
- enabledAnalyzers: options.enabledAnalyzers,
177
- indexFunctions: options.indexFunctions,
178
- analyzerConfigs: options.analyzerConfigs,
179
- analyzerConcurrency: options.analyzerConcurrency,
180
- explicitFiles: options.explicitFiles,
181
- maxFilesPerRun: options.maxFilesPerRun,
182
- shardSoftBudgetMs: options.shardSoftBudgetMs,
183
- };
184
- }
185
- function isRetryableShardError(error) {
186
- return RETRYABLE_ERROR_PATTERNS.some((p) => p.test(error));
187
- }
188
- async function runShardTasksWithWorkerPool(getDb, jobId, tasks, options) {
189
- if (tasks.length === 0)
190
- return [];
191
- const queue = [...tasks];
192
- const completedResults = [];
193
- const pending = new Map();
194
- const workers = new Set();
195
- let runningShards = 0;
196
- let retryCount = 0;
197
- let aborted = false;
198
- let settled = false;
199
- const spawnCount = Math.max(1, Math.min(options.maxWorkers, tasks.length));
200
- const workerEntry = resolveWorkerEntrypoint();
201
- const cleanupWorker = (worker) => {
202
- workers.delete(worker);
203
- try {
204
- worker.removeAllListeners();
205
- }
206
- catch {
207
- // ignore
208
- }
209
- try {
210
- if (worker.connected)
211
- worker.disconnect();
212
- }
213
- catch {
214
- // ignore
215
- }
216
- const safeKill = (signal) => {
217
- try {
218
- if (signal)
219
- worker.kill(signal);
220
- else
221
- worker.kill();
222
- }
223
- catch {
224
- // ignore
225
- }
226
- };
227
- if (!worker.killed) {
228
- safeKill('SIGTERM');
229
- setTimeout(() => {
230
- if (!worker.killed) {
231
- safeKill('SIGKILL');
232
- safeKill();
233
- }
234
- }, 750);
235
- }
236
- };
237
- const post = (worker, message) => {
238
- try {
239
- if (worker.connected && !worker.killed) {
240
- worker.send(message);
241
- }
242
- }
243
- catch (e) {
244
- mcpDebugStderr(chalk.yellow('[WARN]'), 'Failed to send to audit worker (IPC):', e);
245
- }
246
- };
247
- const disposeAllWorkers = () => {
248
- for (const [rid, { worker, timer }] of [...pending.entries()]) {
249
- clearTimeout(timer);
250
- post(worker, { kind: 'cancel-request', requestId: rid });
251
- }
252
- pending.clear();
253
- for (const w of [...workers]) {
254
- cleanupWorker(w);
255
- }
256
- workers.clear();
257
- };
258
- return await new Promise((resolve, reject) => {
259
- const finish = (ok, value) => {
260
- if (settled)
261
- return;
262
- settled = true;
263
- if (options.signal) {
264
- options.signal.removeEventListener('abort', onAbort);
265
- }
266
- disposeAllWorkers();
267
- if (ok)
268
- resolve(value);
269
- else
270
- reject(value);
271
- };
272
- const onAbort = () => {
273
- if (aborted)
274
- return;
275
- aborted = true;
276
- const reason = options.signal?.reason;
277
- const msg = reason instanceof Error
278
- ? reason.message
279
- : typeof reason === 'string'
280
- ? reason
281
- : 'Audit job was cancelled or exceeded the maximum duration';
282
- finish(false, new Error(msg));
283
- };
284
- if (options.signal?.aborted) {
285
- onAbort();
286
- return;
287
- }
288
- options.signal?.addEventListener('abort', onAbort, { once: true });
289
- const progressTotal = () => Math.max(tasks.length, completedResults.length + queue.length + runningShards);
290
- const maybeDispatch = () => {
291
- if (aborted || settled)
292
- return;
293
- if (queue.length === 0 && runningShards === 0 && pending.size === 0) {
294
- finish(true, completedResults);
295
- return;
296
- }
297
- for (const worker of [...workers]) {
298
- const hasAssigned = [...pending.values()].some((p) => p.worker === worker);
299
- if (hasAssigned)
300
- continue;
301
- const next = queue.shift();
302
- if (!next)
303
- continue;
304
- runningShards++;
305
- const requestId = randomUUID();
306
- const timer = setTimeout(() => {
307
- if (settled || aborted)
308
- return;
309
- const entry = pending.get(requestId);
310
- if (!entry)
311
- return;
312
- clearTimeout(entry.timer);
313
- pending.delete(requestId);
314
- runningShards--;
315
- const timedOutWorker = entry.worker;
316
- post(timedOutWorker, { kind: 'cancel-request', requestId });
317
- cleanupWorker(timedOutWorker);
318
- if (!spawnOneWorker()) {
319
- aborted = true;
320
- finish(false, new Error(`Shard '${next.shardId}' timed out after ${options.shardTimeoutMs}ms and a replacement worker could not be started.`));
321
- return;
322
- }
323
- const msg = `Shard '${next.shardId}' timed out after ${options.shardTimeoutMs}ms`;
324
- if (next.attempts < options.maxRetries) {
325
- next.attempts += 1;
326
- retryCount++;
327
- setTimeout(() => {
328
- queue.push(next);
329
- setAuditJobProgress(getDb(), jobId, {
330
- phase: 'analysis',
331
- message: `Retrying shard ${next.shardId} (${next.attempts}/${options.maxRetries}) after worker recycle`,
332
- current: completedResults.length,
333
- total: progressTotal(),
334
- });
335
- maybeDispatch();
336
- }, options.retryBackoffMs * next.attempts);
337
- maybeDispatch();
338
- return;
339
- }
340
- aborted = true;
341
- finish(false, new Error(`${msg}. Retries exhausted (${options.maxRetries}).`));
342
- }, options.shardTimeoutMs);
343
- pending.set(requestId, { worker, task: next, timer });
344
- post(worker, {
345
- kind: 'run-audit-shard',
346
- requestId,
347
- shardId: next.shardId,
348
- config: next.config,
349
- });
350
- }
351
- };
352
- const workerEndHandled = new WeakSet();
353
- const handleWorkerProcessEnd = (proc, code, signal, procErr) => {
354
- if (settled || aborted)
355
- return;
356
- if (workerEndHandled.has(proc))
357
- return;
358
- workerEndHandled.add(proc);
359
- const wasTracked = workers.has(proc);
360
- if (wasTracked) {
361
- workers.delete(proc);
362
- }
363
- try {
364
- proc.removeAllListeners();
365
- }
366
- catch {
367
- // ignore
368
- }
369
- const detail = procErr
370
- ? `Worker process error: ${procErr.message}`
371
- : `Worker exited (code=${code}, signal=${signal ?? 'none'})`;
372
- const orphaned = [...pending.entries()].find(([, v]) => v.worker === proc);
373
- if (orphaned) {
374
- clearTimeout(orphaned[1].timer);
375
- pending.delete(orphaned[0]);
376
- runningShards--;
377
- if (!spawnOneWorker()) {
378
- aborted = true;
379
- finish(false, new Error(`${detail}; could not spawn replacement worker`));
380
- return;
381
- }
382
- const task = orphaned[1].task;
383
- if (task.attempts < options.maxRetries) {
384
- task.attempts += 1;
385
- retryCount++;
386
- setTimeout(() => {
387
- queue.push(task);
388
- maybeDispatch();
389
- }, options.retryBackoffMs * task.attempts);
390
- maybeDispatch();
391
- return;
392
- }
393
- aborted = true;
394
- finish(false, new Error(`${detail} while running shard '${task.shardId}'`));
395
- return;
396
- }
397
- if (wasTracked && (code !== 0 || signal || procErr)) {
398
- if (!spawnOneWorker()) {
399
- mcpDebugStderr(chalk.yellow('[WARN]'), 'Could not replenish audit worker after unexpected exit');
400
- }
401
- else {
402
- maybeDispatch();
403
- }
404
- }
405
- };
406
- const handleWorkerMessage = (worker, raw) => {
407
- if (aborted || settled)
408
- return;
409
- const message = raw;
410
- if (!message || typeof message !== 'object' || !('kind' in message))
411
- return;
412
- if (message.kind === 'worker-progress') {
413
- const entry = pending.get(message.requestId);
414
- if (!entry)
415
- return;
416
- const overallCurrent = completedResults.length +
417
- Math.min(1, (message.progress.current ?? 0) / Math.max(1, message.progress.total ?? 1));
418
- setAuditJobProgress(getDb(), jobId, {
419
- phase: message.progress.phase ?? 'analysis',
420
- message: `${message.shardId}: ${message.progress.message ?? 'running'} (retries=${retryCount})`,
421
- current: Math.floor(overallCurrent),
422
- total: progressTotal(),
423
- });
424
- return;
425
- }
426
- if (message.kind === 'worker-handoff') {
427
- const entry = pending.get(message.requestId);
428
- if (!entry)
429
- return;
430
- clearTimeout(entry.timer);
431
- pending.delete(message.requestId);
432
- runningShards--;
433
- completedResults.push(message.partialResult);
434
- queue.push({
435
- shardId: `${entry.task.shardId}>cont`,
436
- attempts: 0,
437
- config: message.continuation,
438
- });
439
- setAuditJobProgress(getDb(), jobId, {
440
- phase: 'analysis',
441
- message: `Chunk done for ${entry.task.shardId}; queued ${message.remainingFiles.length} remaining file(s) (retries=${retryCount})`,
442
- current: completedResults.length,
443
- total: progressTotal(),
444
- });
445
- maybeDispatch();
446
- return;
447
- }
448
- if (message.kind === 'worker-result' || message.kind === 'worker-error') {
449
- const entry = pending.get(message.requestId);
450
- if (!entry)
451
- return;
452
- clearTimeout(entry.timer);
453
- pending.delete(message.requestId);
454
- runningShards--;
455
- if (message.kind === 'worker-result') {
456
- completedResults.push(message.result);
457
- setAuditJobProgress(getDb(), jobId, {
458
- phase: 'analysis',
459
- message: `Completed shard ${entry.task.shardId} (${completedResults.length} chunk(s), retries=${retryCount})`,
460
- current: completedResults.length,
461
- total: progressTotal(),
462
- });
463
- maybeDispatch();
464
- return;
465
- }
466
- const errText = message.error || `Shard '${entry.task.shardId}' failed`;
467
- if (entry.task.attempts < options.maxRetries && isRetryableShardError(errText)) {
468
- entry.task.attempts += 1;
469
- retryCount++;
470
- setTimeout(() => {
471
- queue.push(entry.task);
472
- maybeDispatch();
473
- }, options.retryBackoffMs * entry.task.attempts);
474
- maybeDispatch();
475
- return;
476
- }
477
- aborted = true;
478
- finish(false, new Error(`${errText}${message.stack ? `\n${message.stack}` : ''}`));
479
- }
480
- };
481
- const spawnOneWorker = () => {
482
- try {
483
- const proc = fork(workerEntry, [], {
484
- stdio: ['ignore', 'ignore', 'ignore', 'ipc'],
485
- });
486
- workers.add(proc);
487
- proc.on('message', (msg) => handleWorkerMessage(proc, msg));
488
- proc.on('error', (err) => {
489
- mcpDebugStderr(chalk.yellow('[WARN]'), 'Audit worker process error:', err);
490
- handleWorkerProcessEnd(proc, null, null, err instanceof Error ? err : new Error(String(err)));
491
- });
492
- proc.on('exit', (code, signal) => {
493
- handleWorkerProcessEnd(proc, code, signal);
494
- });
495
- return true;
496
- }
497
- catch (e) {
498
- mcpDebugStderr(chalk.red('[ERROR]'), 'fork() failed for audit worker:', e);
499
- return false;
500
- }
501
- };
502
- for (let i = 0; i < spawnCount; i++) {
503
- if (!spawnOneWorker()) {
504
- aborted = true;
505
- finish(false, new Error('Failed to start audit worker processes'));
506
- return;
507
- }
508
- }
509
- maybeDispatch();
510
- });
511
- }
512
132
  function getAllViolations(result) {
513
133
  const violations = [];
514
134
  for (const [analyzerName, analyzerResult] of Object.entries(result.analyzerResults ?? {})) {
@@ -530,277 +150,12 @@ function calculateHealthScore(result) {
530
150
  let score = 100 - (weightedViolations / filesAnalyzed) * 2;
531
151
  return Math.max(0, Math.round(Math.min(100, score)));
532
152
  }
533
- function summarizeAnalyzerResults(analyzerResults, filesAnalyzed) {
534
- let totalViolations = 0;
535
- let criticalIssues = 0;
536
- let severe = 0;
537
- let high = 0;
538
- const violationsByCategory = {};
539
- for (const [analyzer, result] of Object.entries(analyzerResults)) {
540
- for (const violation of result.violations) {
541
- totalViolations++;
542
- if (violation.severity === 'critical')
543
- criticalIssues++;
544
- else if (violation.severity === 'severe')
545
- severe++;
546
- else
547
- high++;
548
- const category = violation.rule;
549
- violationsByCategory[category] = (violationsByCategory[category] || 0) + 1;
550
- }
551
- }
552
- // Compute top issues from violationsByCategory
553
- const topIssues = Object.entries(violationsByCategory)
554
- .sort(([, a], [, b]) => b - a)
555
- .slice(0, 5)
556
- .map(([type, count]) => ({ type, count }));
557
- return {
558
- totalFiles: filesAnalyzed,
559
- totalViolations,
560
- criticalIssues,
561
- severe,
562
- high,
563
- violationsByCategory,
564
- topIssues,
565
- };
566
- }
567
- function mergeAnalyzerResult(base, next) {
568
- if (!base)
569
- return { ...next, violations: [...next.violations], errors: [...(next.errors || [])] };
570
- const dedupeKey = (v) => `${v.file ?? ''}:${v.line ?? ''}:${v.column ?? ''}:${v.rule ?? ''}:${v.message ?? ''}:${v.severity ?? ''}`;
571
- const seen = new Set(base.violations.map(dedupeKey));
572
- const mergedViolations = [...base.violations];
573
- for (const v of next.violations) {
574
- const key = dedupeKey(v);
575
- if (!seen.has(key)) {
576
- seen.add(key);
577
- mergedViolations.push(v);
578
- }
579
- }
580
- const baseFP = getFilesProcessed(base.status);
581
- const nextFP = getFilesProcessed(next.status);
582
- return {
583
- ...base,
584
- violations: mergedViolations,
585
- status: makeVisitorStatus(baseFP + nextFP),
586
- executionTime: (base.executionTime || 0) + (next.executionTime || 0),
587
- errors: [...(base.errors || []), ...(next.errors || [])],
588
- };
589
- }
590
153
  /**
591
- * Merge per-shard coverage rows into the project-wide coverage a synchronous
592
- * (non-sharded) run would have produced. Every shard's `buildCoverageReport`
593
- * iterates the full rule registry and emits, for rules whose analyzer that
594
- * shard did not run, a placeholder `notApplicable` row with reason
595
- * `analyzer "<name>" not in results`. Those placeholders are filtered out so a
596
- * rule's real state comes only from the shards that actually ran its analyzer.
597
- *
598
- * Precedence across the remaining rows: `fired` wins (its count re-derived from
599
- * the merged deduped violations — never the summed per-shard counts, which
600
- * over-count DB-based analyzers that emit full-project findings in every
601
- * shard), then `clean` (ran somewhere with input present and found nothing)
602
- * over `unassessed`, over `notApplicable` (only when every shard that ran the
603
- * rule reported no input). Global-only analyzers (GLOBAL_ONLY_ANALYZERS) run
604
- * in a single shard over the full scope, so their rows — including Spec 39
605
- * applicability predicates like `missing-org-filter` — pass through untouched.
154
+ * Queue an audit job and return its id immediately; the audit runs in the background.
155
+ * @param args - The tool arguments (path, scope, severities, etc.).
156
+ * @param defaults - Default severity and code-map flags.
157
+ * @returns The queued job id, status, and path.
606
158
  */
607
- function mergeCoverage(results, ordered) {
608
- const rows = results.flatMap((r) => r.metadata?.coverage ?? []);
609
- if (rows.length === 0)
610
- return undefined;
611
- const byRule = new Map();
612
- for (const row of rows) {
613
- const key = JSON.stringify([row.analyzer, row.ruleId]);
614
- const group = byRule.get(key);
615
- if (group)
616
- group.push(row);
617
- else
618
- byRule.set(key, [row]);
619
- }
620
- const merged = [];
621
- for (const [key, group] of byRule) {
622
- const [analyzer, ruleId] = JSON.parse(key);
623
- // Rows from shards that did not run this analyzer are placeholders, not a
624
- // real state. Prefer the shards that ran it; fall back to placeholders only
625
- // if the analyzer ran nowhere (then the placeholder's reason is truthful).
626
- const real = group.filter((r) => r.reason !== `analyzer "${analyzer}" not in results`);
627
- const src = real.length > 0 ? real : group;
628
- const fired = src.filter((r) => r.state === 'fired');
629
- if (fired.length > 0) {
630
- // Derive the fired count from the merged (deduped) violations, exactly as
631
- // the synchronous path's buildCoverageReport does. Summing per-shard
632
- // counts would over-count if a DB-based analyzer ever ran in multiple
633
- // shards (it no longer does — reducers are global-only), but deduping
634
- // from the merged set stays correct regardless and keeps coverage.count
635
- // in agreement with the ledger findings count.
636
- const field = RULE_REGISTRY[ruleId]?.field;
637
- const dedupedCount = (ordered[analyzer]?.violations ?? []).filter((v) => violationMatchesRule(v, ruleId, field)).length;
638
- merged.push({
639
- ruleId,
640
- analyzer,
641
- state: 'fired',
642
- count: dedupedCount,
643
- });
644
- continue;
645
- }
646
- const clean = src.find((r) => r.state === 'clean');
647
- if (clean) {
648
- merged.push({ ruleId, analyzer, state: 'clean', count: 0 });
649
- continue;
650
- }
651
- // Spec 44 bucket 2 — a `cannot-fire` rule is broken in the tool (same verdict
652
- // every shard), so it outranks a per-shard `unassessed`/`notApplicable`.
653
- const cannotFire = src.find((r) => r.state === 'cannot-fire');
654
- if (cannotFire) {
655
- merged.push({
656
- ruleId,
657
- analyzer,
658
- state: 'cannot-fire',
659
- count: 0,
660
- reason: cannotFire.reason,
661
- });
662
- continue;
663
- }
664
- const unassessed = src.find((r) => r.state === 'unassessed');
665
- if (unassessed) {
666
- merged.push({ ruleId, analyzer, state: 'unassessed', count: 0 });
667
- continue;
668
- }
669
- const notApplicable = src.find((r) => r.state === 'notApplicable');
670
- if (notApplicable) {
671
- merged.push({
672
- ruleId,
673
- analyzer,
674
- state: 'notApplicable',
675
- count: 0,
676
- reason: notApplicable.reason,
677
- });
678
- continue;
679
- }
680
- merged.push({ ruleId, analyzer, state: src[0].state, count: src[0].count, reason: src[0].reason });
681
- }
682
- return merged;
683
- }
684
- function mergeAuditResults(results, orderedAnalyzers) {
685
- const analyzerResults = {};
686
- const fileToFunctionsMap = {};
687
- const collectedFunctions = [];
688
- const recommendations = [];
689
- const skippedFiles = [];
690
- const unparsedFiles = [];
691
- const diagnostics = [];
692
- let filesAnalyzed = 0;
693
- let auditDuration = 0;
694
- let provenanceResolutionMs = 0;
695
- let tableCatalog;
696
- for (const result of results) {
697
- for (const [analyzerName, analyzerResult] of Object.entries(result.analyzerResults || {})) {
698
- analyzerResults[analyzerName] = mergeAnalyzerResult(analyzerResults[analyzerName], analyzerResult);
699
- }
700
- for (const [fp, funcs] of Object.entries(result.metadata?.fileToFunctionsMap || {})) {
701
- fileToFunctionsMap[fp] = funcs;
702
- }
703
- if (result.metadata?.collectedFunctions) {
704
- collectedFunctions.push(...result.metadata.collectedFunctions);
705
- }
706
- if (result.metadata?.skippedFiles)
707
- skippedFiles.push(...result.metadata.skippedFiles);
708
- if (result.metadata?.unparsedFiles)
709
- unparsedFiles.push(...result.metadata.unparsedFiles);
710
- if (result.metadata?.diagnostics)
711
- diagnostics.push(...result.metadata.diagnostics);
712
- // tableCatalog is produced by the schema analyzer, which is global-only and
713
- // therefore runs in a single shard over the full scope — first non-undefined
714
- // is the whole catalog, never a fragment.
715
- if (result.metadata?.tableCatalog && tableCatalog === undefined) {
716
- tableCatalog = result.metadata.tableCatalog;
717
- }
718
- filesAnalyzed += result.metadata?.filesAnalyzed || 0;
719
- auditDuration += result.metadata?.auditDuration || 0;
720
- provenanceResolutionMs += result.metadata?.provenanceResolutionMs || 0;
721
- if (result.recommendations?.length)
722
- recommendations.push(...result.recommendations);
723
- }
724
- const ordered = {};
725
- for (const name of orderedAnalyzers) {
726
- if (analyzerResults[name])
727
- ordered[name] = analyzerResults[name];
728
- }
729
- const coverage = mergeCoverage(results, ordered);
730
- return {
731
- timestamp: new Date(),
732
- summary: summarizeAnalyzerResults(ordered, filesAnalyzed),
733
- analyzerResults: ordered,
734
- recommendations,
735
- metadata: {
736
- auditDuration,
737
- filesAnalyzed,
738
- analyzersRun: orderedAnalyzers,
739
- provenanceResolutionMs,
740
- ...(collectedFunctions.length > 0 && { collectedFunctions }),
741
- ...(Object.keys(fileToFunctionsMap).length > 0 && { fileToFunctionsMap }),
742
- ...(coverage !== undefined && { coverage }),
743
- ...(tableCatalog !== undefined && { tableCatalog }),
744
- ...(skippedFiles.length > 0 && { skippedFiles }),
745
- ...(unparsedFiles.length > 0 && { unparsedFiles }),
746
- ...(diagnostics.length > 0 && { diagnostics }),
747
- },
748
- };
749
- }
750
- export async function derivePartitionPlan(args, projectRoot, isFile, enabledAnalyzers) {
751
- const strategy = (args.partitionStrategy || 'auto');
752
- if (isFile || strategy === 'none') {
753
- return { mode: 'none', partitionPaths: [], globalAnalyzers: enabledAnalyzers, shardedAnalyzers: [] };
754
- }
755
- const allFiles = await findFiles(projectRoot);
756
- const threshold = Math.max(1, Number(args.partitionThresholdFiles) || 250);
757
- if (strategy === 'auto' && allFiles.length < threshold) {
758
- return { mode: 'none', partitionPaths: [], globalAnalyzers: enabledAnalyzers, shardedAnalyzers: [] };
759
- }
760
- const byTop = new Map();
761
- for (const file of allFiles) {
762
- const rel = path.relative(projectRoot, file);
763
- if (!rel || rel.startsWith('..'))
764
- continue;
765
- const seg = rel.split(path.sep)[0];
766
- byTop.set(seg, (byTop.get(seg) || 0) + 1);
767
- }
768
- const preferred = SOURCE_FOLDERS.filter((name) => byTop.has(name));
769
- const others = [...byTop.entries()]
770
- .filter(([name]) => !preferred.includes(name))
771
- .sort((a, b) => b[1] - a[1])
772
- .map(([name]) => name);
773
- const maxPartitions = Math.max(1, Number(args.maxPartitions) || 4);
774
- let selected = [...preferred, ...others].slice(0, maxPartitions);
775
- if (selected.length < 2 && preferred.length > 0) {
776
- const focus = preferred[0];
777
- const focusDir = path.join(projectRoot, focus);
778
- try {
779
- const entries = await fs.readdir(focusDir, { withFileTypes: true });
780
- const subdirs = entries
781
- .filter((e) => e.isDirectory())
782
- .map((e) => path.join(focus, e.name))
783
- .slice(0, maxPartitions);
784
- if (subdirs.length >= 2) {
785
- selected = subdirs;
786
- }
787
- }
788
- catch {
789
- // Ignore fallback partitioning errors
790
- }
791
- }
792
- const shardedAnalyzers = enabledAnalyzers.filter((a) => !GLOBAL_ONLY_ANALYZERS.has(a));
793
- const globalAnalyzers = enabledAnalyzers.filter((a) => GLOBAL_ONLY_ANALYZERS.has(a));
794
- if (selected.length < 2 || shardedAnalyzers.length === 0) {
795
- return { mode: 'none', partitionPaths: [], globalAnalyzers: enabledAnalyzers, shardedAnalyzers: [] };
796
- }
797
- return {
798
- mode: 'top-level',
799
- partitionPaths: selected.map((seg) => path.join(projectRoot, seg)),
800
- globalAnalyzers,
801
- shardedAnalyzers,
802
- };
803
- }
804
159
  export async function startAuditJob(args, defaults) {
805
160
  const auditPath = path.resolve(args.path || process.cwd());
806
161
  const { isFile } = await assertAuditPathExists(auditPath);
@@ -829,6 +184,13 @@ export async function startAuditJob(args, defaults) {
829
184
  path: auditPath,
830
185
  };
831
186
  }
187
+ /**
188
+ * Run a queued audit job end-to-end: lease, audit, index, code map, and persist.
189
+ * @param jobId - The job id to run under.
190
+ * @param args - The tool arguments for the audit.
191
+ * @param defaults - Default severity and code-map flags.
192
+ * @returns A promise that resolves once the job completes or fails.
193
+ */
832
194
  export async function runAuditJob(jobId, args, defaults) {
833
195
  let jobTimer;
834
196
  let heartbeat;
@@ -881,33 +243,17 @@ export async function runAuditJob(jobId, args, defaults) {
881
243
  ac.abort();
882
244
  }
883
245
  }, jobTimeoutMs);
884
- const storedConfigs = await db.getAllAnalyzerConfigs(auditPath);
246
+ const storedConfigs = await db.analyzerConfig.getAllAnalyzerConfigs(auditPath);
885
247
  const analyzerConfigs = {
886
248
  ...storedConfigs,
887
249
  ...(args.analyzerConfigs || {}),
888
250
  };
889
- const enabledAnalyzers = args.analyzers || defaults.defaultAnalyzers;
890
- const maxWorkers = Math.max(1, Math.min(MAX_AUDIT_WORKERS, Number(args.workerCount) || Math.max(1, Math.min(4, cpus().length - 1 || 1)), Number(args.maxPartitions) || 4));
891
- const maxRetries = Math.max(0, Number(args.maxRetries) || 1);
892
- const shardTimeoutMs = Math.max(5_000, Number(args.shardTimeoutMs) || 180_000);
893
- const retryBackoffMs = Math.max(100, Number(args.retryBackoffMs) || 500);
894
- const maxFilesPerRun = typeof args.maxFilesPerRun === 'number' && args.maxFilesPerRun > 0
895
- ? Math.floor(args.maxFilesPerRun)
896
- : undefined;
897
- const shardSoftBudgetMs = typeof args.shardSoftBudgetMs === 'number' && args.shardSoftBudgetMs > 0
898
- ? Math.max(1_000, Math.floor(args.shardSoftBudgetMs))
899
- : undefined;
900
251
  const baseOptions = {
901
252
  projectRoot,
902
- enabledAnalyzers,
903
253
  minSeverity: (args.minSeverity || defaults.defaultMinSeverity),
904
254
  verbose: false,
905
255
  indexFunctions,
906
- analyzerConcurrency: typeof args.analyzerConcurrency === 'number'
907
- ? Math.max(1, Math.floor(args.analyzerConcurrency))
908
- : undefined,
909
- ...(maxFilesPerRun !== undefined && { maxFilesPerRun }),
910
- ...(shardSoftBudgetMs !== undefined && { shardSoftBudgetMs }),
256
+ abortSignal: ac.signal,
911
257
  ...(isFile && { includePaths: [auditPath] }),
912
258
  ...(Object.keys(analyzerConfigs).length > 0 && { analyzerConfigs }),
913
259
  ...(args.scope && args.scope !== 'all' && { scope: args.scope }),
@@ -920,7 +266,6 @@ export async function runAuditJob(jobId, args, defaults) {
920
266
  });
921
267
  },
922
268
  };
923
- const plan = await derivePartitionPlan(args, projectRoot, isFile, enabledAnalyzers);
924
269
  // Spec 41 R3 — provenance: capture an aggregate content hash + per-file
925
270
  // manifest so `result`/`status` can report staleness cheaply.
926
271
  const fileHash = hashFileSet(await findFiles(projectRoot), projectRoot);
@@ -929,129 +274,25 @@ export async function runAuditJob(jobId, args, defaults) {
929
274
  filesCount: fileHash.filesCount,
930
275
  fileManifestJson: JSON.stringify(fileHash.manifest),
931
276
  });
932
- const partitionTasks = [];
933
- const globalTasks = [];
934
- if (plan.mode === 'none') {
935
- partitionTasks.push({
936
- shardId: 'full-scope',
937
- attempts: 0,
938
- config: asSerializableConfig(baseOptions),
939
- });
940
- }
941
- else {
942
- setAuditJobProgress(getJobDb(), jobId, {
943
- phase: 'partitioning',
944
- message: `Planning ${plan.partitionPaths.length} shard(s) + ${plan.globalAnalyzers.length > 0 ? 'global' : 'no-global'} analyzers`,
945
- });
946
- if (plan.globalAnalyzers.length > 0) {
947
- globalTasks.push({
948
- shardId: 'global-analyzers',
949
- attempts: 0,
950
- config: asSerializableConfig({
951
- ...baseOptions,
952
- enabledAnalyzers: plan.globalAnalyzers,
953
- includePaths: undefined,
954
- }),
955
- });
956
- }
957
- for (const partitionPath of plan.partitionPaths) {
958
- partitionTasks.push({
959
- shardId: `shard:${path.basename(partitionPath)}`,
960
- attempts: 0,
961
- config: asSerializableConfig({
962
- ...baseOptions,
963
- enabledAnalyzers: plan.shardedAnalyzers,
964
- includePaths: [`${partitionPath}/**/*`],
965
- }),
966
- });
967
- }
968
- }
969
- const totalTasks = partitionTasks.length + globalTasks.length;
970
277
  setAuditJobProgress(getJobDb(), jobId, {
971
278
  phase: 'analysis',
972
- message: `Running ${totalTasks} shard task(s) with ${maxWorkers} worker(s)`,
279
+ message: 'Running audit',
973
280
  current: 0,
974
- total: totalTasks,
281
+ total: 1,
975
282
  });
976
- const poolOptions = {
977
- maxWorkers,
978
- maxRetries,
979
- shardTimeoutMs,
980
- retryBackoffMs,
981
- signal: ac.signal,
982
- };
983
- // Partition shards run first; the global-analyzers shard is scheduled only
984
- // after every partition shard has completed. The global shard's full-scope
985
- // reducers (conventions, cross-domain, styles) read cross-file index tables
986
- // (`functions`, `function_calls`, `style_*`) that the always-on function-index
987
- // visitor writes from *every* shard. Running it concurrently — even pushed
988
- // "first" — left a `functions`-table write/read race in principle. Serializing
989
- // it after the partitions closes that last multi-writer window structurally.
990
- const resultParts = [];
991
- resultParts.push(...(await runShardTasksWithWorkerPool(getJobDb, jobId, partitionTasks, poolOptions)));
992
- if (globalTasks.length > 0) {
993
- resultParts.push(...(await runShardTasksWithWorkerPool(getJobDb, jobId, globalTasks, poolOptions)));
994
- }
283
+ const auditResult = await runAudit(baseOptions);
995
284
  if (ac.signal.aborted) {
996
285
  throw ac.signal.reason instanceof Error
997
286
  ? ac.signal.reason
998
287
  : new Error(String(ac.signal.reason || 'Audit job was cancelled or timed out'));
999
288
  }
1000
- const auditResult = resultParts.length === 1 ? resultParts[0] : mergeAuditResults(resultParts, enabledAnalyzers);
1001
289
  let indexingResult = null;
1002
290
  if (indexFunctions && auditResult.metadata.fileToFunctionsMap) {
1003
- if (ac.signal.aborted) {
1004
- throw ac.signal.reason instanceof Error
1005
- ? ac.signal.reason
1006
- : new Error(String(ac.signal.reason || 'Audit job was cancelled during indexing'));
1007
- }
1008
- // Batch all per-file upserts into a single transaction (Amendment B2).
1009
- const entries = Object.entries(auditResult.metadata.fileToFunctionsMap).map(([filePath, functions]) => ({ filePath, currentFunctions: functions }));
1010
- const syncStats = await db.syncFileIndexBatch(entries);
1011
- indexingResult = {
1012
- success: true,
1013
- registered: syncStats.added + syncStats.updated,
1014
- failed: 0,
1015
- syncStats,
1016
- };
291
+ indexingResult = await indexJobFunctions(auditResult, db, ac.signal);
1017
292
  }
1018
293
  let codeMapResult = null;
1019
294
  if (generateCodeMap && indexingResult && indexingResult.success) {
1020
- if (ac.signal.aborted) {
1021
- throw ac.signal.reason instanceof Error
1022
- ? ac.signal.reason
1023
- : new Error(String(ac.signal.reason || 'Audit job was cancelled before code map generation'));
1024
- }
1025
- try {
1026
- const mapGenerator = new CodeMapGenerator();
1027
- const files = Object.keys(auditResult.metadata.fileToFunctionsMap || {});
1028
- let documentation = undefined;
1029
- if (files.length > 0) {
1030
- const docResult = await analyzeDocumentation(files);
1031
- documentation = docResult.metrics;
1032
- }
1033
- const paginatedResult = await mapGenerator.generatePaginatedCodeMap(isFile ? path.dirname(auditPath) : auditPath, {
1034
- includeComplexity: true,
1035
- includeDocumentation: !!documentation,
1036
- includeDependencies: true,
1037
- includeUsage: false,
1038
- groupByDirectory: true,
1039
- maxDepth: 10,
1040
- showUnusedImports: true,
1041
- minComplexity: 7,
1042
- });
1043
- codeMapResult = {
1044
- success: true,
1045
- mapId: paginatedResult.mapId,
1046
- summary: paginatedResult.summary,
1047
- quickPreview: paginatedResult.quickPreview,
1048
- sections: paginatedResult.summary.sectionsAvailable,
1049
- documentationCoverage: documentation?.coverageScore,
1050
- };
1051
- }
1052
- catch (e) {
1053
- mcpDebugStderr(chalk.yellow('[WARN]'), 'Code map generation failed in background audit:', e);
1054
- }
295
+ codeMapResult = await generateJobCodeMap(auditResult, isFile, auditPath, ac.signal);
1055
296
  }
1056
297
  const projectRootForStore = projectRoot;
1057
298
  const persisted = {
@@ -1059,7 +300,7 @@ export async function runAuditJob(jobId, args, defaults) {
1059
300
  ...(indexingResult && { functionIndexing: indexingResult }),
1060
301
  ...(codeMapResult && { codeMap: codeMapResult }),
1061
302
  };
1062
- const resultId = await db.storeAuditResults(persisted, projectRootForStore);
303
+ const resultId = await db.auditResults.storeAuditResults(persisted, projectRootForStore);
1063
304
  // Spec 41 R2 — converge on the one ledger write path: attach findings +
1064
305
  // coverage to the pre-existing run, then close the lifecycle.
1065
306
  const runInput = detectRunInput('audit.start', 'mcp', args.scope || 'all', projectRoot, PACKAGE_VERSION);
@@ -1106,6 +347,73 @@ export async function runAuditJob(jobId, args, defaults) {
1106
347
  }
1107
348
  }
1108
349
  }
350
+ /**
351
+ * Batch the per-file function index upserts into a single transaction.
352
+ */
353
+ async function indexJobFunctions(auditResult, db, signal) {
354
+ if (signal.aborted) {
355
+ throw signal.reason instanceof Error
356
+ ? signal.reason
357
+ : new Error(String(signal.reason || 'Audit job was cancelled during indexing'));
358
+ }
359
+ // Batch all per-file upserts into a single transaction (Amendment B2).
360
+ const entries = Object.entries(auditResult.metadata.fileToFunctionsMap || {}).map(([filePath, functions]) => ({ filePath, currentFunctions: functions }));
361
+ const syncStats = await db.syncFileIndexBatch(entries);
362
+ return {
363
+ success: true,
364
+ registered: syncStats.added + syncStats.updated,
365
+ failed: 0,
366
+ syncStats,
367
+ };
368
+ }
369
+ /**
370
+ * Generate a paginated code map for a completed audit job. Returns `null` when
371
+ * code map generation fails (best-effort — the audit still completes) and
372
+ * throws if the job was cancelled before generation ran.
373
+ */
374
+ async function generateJobCodeMap(auditResult, isFile, auditPath, signal) {
375
+ if (signal.aborted) {
376
+ throw signal.reason instanceof Error
377
+ ? signal.reason
378
+ : new Error(String(signal.reason || 'Audit job was cancelled before code map generation'));
379
+ }
380
+ try {
381
+ const mapGenerator = new CodeMapGenerator();
382
+ const files = Object.keys(auditResult.metadata.fileToFunctionsMap || {});
383
+ let documentation = undefined;
384
+ if (files.length > 0) {
385
+ const docResult = await analyzeDocumentation(files);
386
+ documentation = docResult.metrics;
387
+ }
388
+ const paginatedResult = await mapGenerator.generatePaginatedCodeMap(isFile ? path.dirname(auditPath) : auditPath, {
389
+ includeComplexity: true,
390
+ includeDocumentation: !!documentation,
391
+ includeDependencies: true,
392
+ includeUsage: false,
393
+ groupByDirectory: true,
394
+ maxDepth: 10,
395
+ showUnusedImports: true,
396
+ minComplexity: 7,
397
+ });
398
+ return {
399
+ success: true,
400
+ mapId: paginatedResult.mapId,
401
+ summary: paginatedResult.summary,
402
+ quickPreview: paginatedResult.quickPreview,
403
+ sections: paginatedResult.summary.sectionsAvailable,
404
+ documentationCoverage: documentation?.coverageScore,
405
+ };
406
+ }
407
+ catch (e) {
408
+ mcpDebugStderr(chalk.yellow('[WARN]'), 'Code map generation failed in background audit:', e);
409
+ return null;
410
+ }
411
+ }
412
+ /**
413
+ * Read the current status of an audit job.
414
+ * @param jobId - The job id to look up.
415
+ * @returns The job status record.
416
+ */
1109
417
  export async function getAuditJobStatus(jobId) {
1110
418
  // Resolve the same DB the writer opened: startAuditJob/runAuditJob set the
1111
419
  // singleton to the project-scoped DB, so read from the current singleton's
@@ -1133,6 +441,8 @@ export async function getAuditJobStatus(jobId) {
1133
441
  }
1134
442
  /**
1135
443
  * Returns audit results as a SARIF 2.1.0 JSON string (Spec 06 R1.1 — MCP surface).
444
+ * @param args - The tool arguments carrying the resultId/auditId to fetch.
445
+ * @returns The SARIF report as a JSON string.
1136
446
  */
1137
447
  export async function getAuditResultsAsSarif(args) {
1138
448
  const resultId = args.resultId || args.auditId;
@@ -1143,7 +453,7 @@ export async function getAuditResultsAsSarif(args) {
1143
453
  }
1144
454
  const db = CodeIndexDB.getInstance(undefined, CodeIndexDB.currentProject);
1145
455
  await db.initialize();
1146
- const stored = await db.getAuditResults(resultId);
456
+ const stored = await db.auditResults.getAuditResults(resultId);
1147
457
  if (!stored) {
1148
458
  throw new ContextualError(`Audit result not found or expired: ${resultId}`, {
1149
459
  resultId,
@@ -1181,6 +491,11 @@ export async function getAuditResultsAsSarif(args) {
1181
491
  ...readVersionControlProvenance(projectRoot),
1182
492
  });
1183
493
  }
494
+ /**
495
+ * Return one page of audit results with a pagination summary.
496
+ * @param args - The tool arguments (resultId, limit, offset).
497
+ * @returns The paginated violations and summary.
498
+ */
1184
499
  export async function getAuditResultsPage(args) {
1185
500
  const resultId = args.resultId || args.auditId;
1186
501
  if (!resultId) {
@@ -1192,7 +507,7 @@ export async function getAuditResultsPage(args) {
1192
507
  const offset = Math.max(0, Number(args.offset) || 0);
1193
508
  const db = CodeIndexDB.getInstance(undefined, CodeIndexDB.currentProject);
1194
509
  await db.initialize();
1195
- const auditResult = await db.getAuditResults(resultId);
510
+ const auditResult = await db.auditResults.getAuditResults(resultId);
1196
511
  if (!auditResult) {
1197
512
  throw new ContextualError(`Audit result not found or expired: ${resultId}`, {
1198
513
  resultId,
@@ -1227,9 +542,5 @@ export async function getAuditResultsPage(args) {
1227
542
  ...(auditResult.codeMap && { codeMap: auditResult.codeMap }),
1228
543
  };
1229
544
  }
1230
- export const __testables = {
1231
- isRetryableShardError,
1232
- mergeAnalyzerResult,
1233
- mergeCoverage,
1234
- };
545
+ export const __testables = {};
1235
546
  //# sourceMappingURL=mcpAuditJobs.js.map