code-auditor-mcp 3.4.11 → 3.4.13

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 (254) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/CHANGELOG.md +119 -1
  3. package/dist/analyzers/__verify_self_probe.d.ts +2 -0
  4. package/dist/analyzers/__verify_self_probe.d.ts.map +1 -0
  5. package/dist/analyzers/__verify_self_probe.js +5 -0
  6. package/dist/analyzers/__verify_self_probe.js.map +1 -0
  7. package/dist/analyzers/analyzerUtils.d.ts +34 -1
  8. package/dist/analyzers/analyzerUtils.d.ts.map +1 -1
  9. package/dist/analyzers/analyzerUtils.js +61 -22
  10. package/dist/analyzers/analyzerUtils.js.map +1 -1
  11. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts +18 -23
  12. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
  13. package/dist/analyzers/cross-language/APIContractAnalyzer.js +198 -186
  14. package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
  15. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +78 -55
  16. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  17. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +244 -243
  18. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  19. package/dist/analyzers/cross-language/SchemaValidator.d.ts +27 -37
  20. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  21. package/dist/analyzers/cross-language/SchemaValidator.js +314 -275
  22. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  23. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +17 -46
  24. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
  25. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +620 -523
  26. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  27. package/dist/analyzers/documentationAnalyzer.d.ts +7 -2
  28. package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
  29. package/dist/analyzers/documentationAnalyzer.js +259 -198
  30. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  31. package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -1
  32. package/dist/analyzers/invariantsAnalyzer.js +59 -46
  33. package/dist/analyzers/invariantsAnalyzer.js.map +1 -1
  34. package/dist/analyzers/orm/adapterRegistry.d.ts +10 -0
  35. package/dist/analyzers/orm/adapterRegistry.d.ts.map +1 -1
  36. package/dist/analyzers/orm/adapterRegistry.js +10 -0
  37. package/dist/analyzers/orm/adapterRegistry.js.map +1 -1
  38. package/dist/analyzers/orm/drizzleAdapter.d.ts +22 -0
  39. package/dist/analyzers/orm/drizzleAdapter.d.ts.map +1 -1
  40. package/dist/analyzers/orm/drizzleAdapter.js +42 -44
  41. package/dist/analyzers/orm/drizzleAdapter.js.map +1 -1
  42. package/dist/analyzers/orm/prismaAdapter.d.ts +30 -0
  43. package/dist/analyzers/orm/prismaAdapter.d.ts.map +1 -1
  44. package/dist/analyzers/orm/prismaAdapter.js +30 -0
  45. package/dist/analyzers/orm/prismaAdapter.js.map +1 -1
  46. package/dist/analyzers/provenance.d.ts +72 -2
  47. package/dist/analyzers/provenance.d.ts.map +1 -1
  48. package/dist/analyzers/provenance.js +462 -338
  49. package/dist/analyzers/provenance.js.map +1 -1
  50. package/dist/analyzers/reactAnalyzer.d.ts +11 -0
  51. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  52. package/dist/analyzers/reactAnalyzer.js +188 -125
  53. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  54. package/dist/analyzers/ruleRegistry.d.ts +118 -1
  55. package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
  56. package/dist/analyzers/ruleRegistry.js +1717 -104
  57. package/dist/analyzers/ruleRegistry.js.map +1 -1
  58. package/dist/analyzers/ruleTiming.d.ts +54 -0
  59. package/dist/analyzers/ruleTiming.d.ts.map +1 -0
  60. package/dist/analyzers/ruleTiming.js +71 -0
  61. package/dist/analyzers/ruleTiming.js.map +1 -0
  62. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +13 -0
  63. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
  64. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +362 -283
  65. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
  66. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +26 -68
  67. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  68. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +430 -391
  69. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  70. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +24 -186
  71. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  72. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +1081 -1061
  73. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  74. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +3 -49
  75. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  76. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +414 -340
  77. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  78. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +48 -5
  79. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  80. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +262 -134
  81. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  82. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +23 -212
  83. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  84. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +139 -1518
  85. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  86. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +78 -79
  87. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  88. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +613 -472
  89. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  90. package/dist/analyzers/universal/schema/codeAnalysis.d.ts +307 -0
  91. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -0
  92. package/dist/analyzers/universal/schema/codeAnalysis.js +965 -0
  93. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -0
  94. package/dist/analyzers/universal/schema/config.d.ts +31 -0
  95. package/dist/analyzers/universal/schema/config.d.ts.map +1 -0
  96. package/dist/analyzers/universal/schema/config.js +57 -0
  97. package/dist/analyzers/universal/schema/config.js.map +1 -0
  98. package/dist/analyzers/universal/schema/discovery.d.ts +167 -0
  99. package/dist/analyzers/universal/schema/discovery.d.ts.map +1 -0
  100. package/dist/analyzers/universal/schema/discovery.js +616 -0
  101. package/dist/analyzers/universal/schema/discovery.js.map +1 -0
  102. package/dist/analyzers/universal/schema/jsonSchema.d.ts +27 -0
  103. package/dist/analyzers/universal/schema/jsonSchema.d.ts.map +1 -0
  104. package/dist/analyzers/universal/schema/jsonSchema.js +368 -0
  105. package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -0
  106. package/dist/analyzers/universal/schema/migrations.d.ts +90 -0
  107. package/dist/analyzers/universal/schema/migrations.d.ts.map +1 -0
  108. package/dist/analyzers/universal/schema/migrations.js +238 -0
  109. package/dist/analyzers/universal/schema/migrations.js.map +1 -0
  110. package/dist/analyzers/universal/schema/types.d.ts +131 -0
  111. package/dist/analyzers/universal/schema/types.d.ts.map +1 -0
  112. package/dist/analyzers/universal/schema/types.js +10 -0
  113. package/dist/analyzers/universal/schema/types.js.map +1 -0
  114. package/dist/analyzers/universal/schema/violations.d.ts +44 -0
  115. package/dist/analyzers/universal/schema/violations.d.ts.map +1 -0
  116. package/dist/analyzers/universal/schema/violations.js +54 -0
  117. package/dist/analyzers/universal/schema/violations.js.map +1 -0
  118. package/dist/auditRunner.d.ts.map +1 -1
  119. package/dist/auditRunner.js +101 -39
  120. package/dist/auditRunner.js.map +1 -1
  121. package/dist/cli.js +348 -40
  122. package/dist/cli.js.map +1 -1
  123. package/dist/config/configLoader.d.ts.map +1 -1
  124. package/dist/config/configLoader.js +9 -7
  125. package/dist/config/configLoader.js.map +1 -1
  126. package/dist/config/defaults.d.ts +12 -3
  127. package/dist/config/defaults.d.ts.map +1 -1
  128. package/dist/config/defaults.js +15 -5
  129. package/dist/config/defaults.js.map +1 -1
  130. package/dist/config/effectiveConfig.d.ts +75 -0
  131. package/dist/config/effectiveConfig.d.ts.map +1 -0
  132. package/dist/config/effectiveConfig.js +213 -0
  133. package/dist/config/effectiveConfig.js.map +1 -0
  134. package/dist/config/pathProfiles.d.ts +7 -4
  135. package/dist/config/pathProfiles.d.ts.map +1 -1
  136. package/dist/config/pathProfiles.js +8 -10
  137. package/dist/config/pathProfiles.js.map +1 -1
  138. package/dist/config/thresholdRationales.d.ts +45 -0
  139. package/dist/config/thresholdRationales.d.ts.map +1 -0
  140. package/dist/config/thresholdRationales.js +67 -0
  141. package/dist/config/thresholdRationales.js.map +1 -0
  142. package/dist/conventions/conventionMiner.d.ts.map +1 -1
  143. package/dist/conventions/conventionMiner.js +6 -2
  144. package/dist/conventions/conventionMiner.js.map +1 -1
  145. package/dist/enforcement/diffGate.d.ts +55 -0
  146. package/dist/enforcement/diffGate.d.ts.map +1 -0
  147. package/dist/enforcement/diffGate.js +136 -0
  148. package/dist/enforcement/diffGate.js.map +1 -0
  149. package/dist/enforcement/gate.d.ts +36 -0
  150. package/dist/enforcement/gate.d.ts.map +1 -0
  151. package/dist/enforcement/gate.js +72 -0
  152. package/dist/enforcement/gate.js.map +1 -0
  153. package/dist/enforcement/suppressions.d.ts +41 -0
  154. package/dist/enforcement/suppressions.d.ts.map +1 -0
  155. package/dist/enforcement/suppressions.js +170 -0
  156. package/dist/enforcement/suppressions.js.map +1 -0
  157. package/dist/fingerprint.d.ts.map +1 -1
  158. package/dist/fingerprint.js +4 -1
  159. package/dist/fingerprint.js.map +1 -1
  160. package/dist/grammars/tree-sitter-scss.wasm +0 -0
  161. package/dist/invariants/ruleEngine.d.ts +3 -4
  162. package/dist/invariants/ruleEngine.d.ts.map +1 -1
  163. package/dist/invariants/ruleEngine.js +2 -2
  164. package/dist/invariants/ruleEngine.js.map +1 -1
  165. package/dist/languages/LanguageOrchestrator.d.ts +14 -0
  166. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
  167. package/dist/languages/LanguageOrchestrator.js +93 -55
  168. package/dist/languages/LanguageOrchestrator.js.map +1 -1
  169. package/dist/languages/LanguageRegistry.d.ts +8 -0
  170. package/dist/languages/LanguageRegistry.d.ts.map +1 -1
  171. package/dist/languages/LanguageRegistry.js +8 -0
  172. package/dist/languages/LanguageRegistry.js.map +1 -1
  173. package/dist/languages/RuntimeManager.d.ts +82 -60
  174. package/dist/languages/RuntimeManager.d.ts.map +1 -1
  175. package/dist/languages/RuntimeManager.js +404 -349
  176. package/dist/languages/RuntimeManager.js.map +1 -1
  177. package/dist/languages/UniversalAnalyzer.d.ts +51 -6
  178. package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
  179. package/dist/languages/UniversalAnalyzer.js +127 -88
  180. package/dist/languages/UniversalAnalyzer.js.map +1 -1
  181. package/dist/languages/adapterBridge.d.ts +36 -0
  182. package/dist/languages/adapterBridge.d.ts.map +1 -1
  183. package/dist/languages/adapterBridge.js +89 -35
  184. package/dist/languages/adapterBridge.js.map +1 -1
  185. package/dist/languages/go/GoAdapter.d.ts +66 -23
  186. package/dist/languages/go/GoAdapter.d.ts.map +1 -1
  187. package/dist/languages/go/GoAdapter.js +553 -474
  188. package/dist/languages/go/GoAdapter.js.map +1 -1
  189. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts +38 -9
  190. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts.map +1 -1
  191. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js +111 -74
  192. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
  193. package/dist/languages/tree-sitter/converter.d.ts +18 -0
  194. package/dist/languages/tree-sitter/converter.d.ts.map +1 -1
  195. package/dist/languages/tree-sitter/converter.js +18 -0
  196. package/dist/languages/tree-sitter/converter.js.map +1 -1
  197. package/dist/languages/tree-sitter/parser.d.ts +39 -2
  198. package/dist/languages/tree-sitter/parser.d.ts.map +1 -1
  199. package/dist/languages/tree-sitter/parser.js +95 -12
  200. package/dist/languages/tree-sitter/parser.js.map +1 -1
  201. package/dist/languages/types.d.ts +67 -2
  202. package/dist/languages/types.d.ts.map +1 -1
  203. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +253 -62
  204. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  205. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +1461 -791
  206. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  207. package/dist/mcp-tools/whitelistTools.d.ts +1 -1
  208. package/dist/mcp-tools-shared.d.ts.map +1 -1
  209. package/dist/mcp-tools-shared.js +1 -0
  210. package/dist/mcp-tools-shared.js.map +1 -1
  211. package/dist/mcpAuditJobs.d.ts.map +1 -1
  212. package/dist/mcpAuditJobs.js +1 -0
  213. package/dist/mcpAuditJobs.js.map +1 -1
  214. package/dist/pipeline.d.ts +30 -1
  215. package/dist/pipeline.d.ts.map +1 -1
  216. package/dist/pipeline.js +527 -203
  217. package/dist/pipeline.js.map +1 -1
  218. package/dist/pipelineAdapters.d.ts +5 -12
  219. package/dist/pipelineAdapters.d.ts.map +1 -1
  220. package/dist/pipelineAdapters.js +175 -100
  221. package/dist/pipelineAdapters.js.map +1 -1
  222. package/dist/presets/presets.d.ts +54 -0
  223. package/dist/presets/presets.d.ts.map +1 -0
  224. package/dist/presets/presets.js +181 -0
  225. package/dist/presets/presets.js.map +1 -0
  226. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
  227. package/dist/reporting/sarifReportGenerator.js +0 -2
  228. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  229. package/dist/ruleAliases.d.ts +67 -0
  230. package/dist/ruleAliases.d.ts.map +1 -0
  231. package/dist/ruleAliases.js +79 -0
  232. package/dist/ruleAliases.js.map +1 -0
  233. package/dist/styles/cssAstExtractor.d.ts +20 -5
  234. package/dist/styles/cssAstExtractor.d.ts.map +1 -1
  235. package/dist/styles/cssAstExtractor.js +247 -9
  236. package/dist/styles/cssAstExtractor.js.map +1 -1
  237. package/dist/styles/styleIndexer.js +13 -4
  238. package/dist/styles/styleIndexer.js.map +1 -1
  239. package/dist/styles/tailwindConfigLoader.d.ts +8 -6
  240. package/dist/styles/tailwindConfigLoader.d.ts.map +1 -1
  241. package/dist/styles/tailwindConfigLoader.js +61 -15
  242. package/dist/styles/tailwindConfigLoader.js.map +1 -1
  243. package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
  244. package/dist/styles/tailwindUtilityExpander.js +13 -1
  245. package/dist/styles/tailwindUtilityExpander.js.map +1 -1
  246. package/dist/types.d.ts +201 -1
  247. package/dist/types.d.ts.map +1 -1
  248. package/dist/types.js +8 -0
  249. package/dist/types.js.map +1 -1
  250. package/package.json +7 -4
  251. package/plugin/.claude-plugin/plugin.json +1 -1
  252. package/plugin/hooks/hooks.json +1 -1
  253. package/plugin/scripts/hook-audit.sh +25 -7
  254. package/plugin/skills/code-auditor/SKILL.md +5 -5
@@ -3,7 +3,7 @@
3
3
  * Main orchestrator for running code audits
4
4
  */
5
5
  import { promises as fs } from 'fs';
6
- import { statSync, readFileSync } from 'fs';
6
+ import { readFileSync } from 'fs';
7
7
  import path from 'path';
8
8
  import { fileURLToPath } from 'url';
9
9
  import { execSync } from 'child_process';
@@ -11,21 +11,24 @@ import { randomUUID } from 'node:crypto';
11
11
  import { AuditAbortedError, AuditHandoffError, } from './types.js';
12
12
  import { discoverFiles } from './utils/fileDiscovery.js';
13
13
  import { loadConfig } from './config/configLoader.js';
14
+ import { mergePathProfiles } from './config/defaults.js';
15
+ import { checkThresholdRationales } from './config/thresholdRationales.js';
16
+ import { applyPresets } from './presets/presets.js';
14
17
  import { generateReport } from './reporting/reportGenerator.js';
15
18
  import { extractFunctionsFromFile } from './functionScanner.js';
16
19
  import { isMcpDebugEnabled, logMcpDebug, logMcpInfo } from './mcpDiagnostics.js';
17
20
  import { loadBaseline, matchFindings, hashBaseline } from './baseline.js';
21
+ import { collectSuppressionDirectives, applySuppressions } from './enforcement/suppressions.js';
18
22
  import { computeImpact, LATENCY_BUDGET_MS } from './graph/blastRadius.js';
19
23
  // Import universal analyzers
20
24
  import { initializeLanguages } from './languages/index.js';
21
25
  import { initializeOrmAdapters } from './analyzers/orm/index.js';
22
26
  import { syncStyleIndex } from './styles/styleIndexer.js';
23
- import { hasRules } from './invariants/ruleEngine.js';
24
27
  import { CodeIndexDB } from './codeIndexDB.js';
25
28
  import { writeAuditToLedger, detectRunInput } from './ledger.js';
26
29
  // Pipeline imports (Spec 25 — pipeline replaces hand-rolled analyzer loop)
27
- import { runPipeline, writeIndexFactsToDb, makeVisitorStatus, getFilesProcessed, isVisitorStatus } from './pipeline.js';
28
- import { createSolidVisitor, createDryVisitor, createDataAccessVisitor, createDocumentationVisitor, createFunctionIndexVisitor, createFileSourcesVisitor, createStylesCssVisitor, createReactVisitor, createStylesReducer, createConventionsReducer, createCrossDomainReducer, createInvariantsReducer, createSchemaSqlVisitor, createSchemaCodeVisitor, createSchemaPrismaVisitor, createSchemaJsonVisitor, createSchemaReducer, } from './pipelineAdapters.js';
30
+ import { runPipeline, writeIndexFactsToDb, makeVisitorStatus, getFilesProcessed, isVisitorStatus, buildCoverageReport } from './pipeline.js';
31
+ import { createSolidVisitor, createDryVisitor, createDataAccessVisitor, createDocumentationVisitor, createFunctionIndexVisitor, createStylesCssVisitor, createReactVisitor, createStylesReducer, createConventionsReducer, createCrossDomainReducer, createInvariantsReducer, createSchemaSqlVisitor, createSchemaCodeVisitor, createSchemaPrismaVisitor, createSchemaJsonVisitor, createSchemaReducer, } from './pipelineAdapters.js';
29
32
  // Package version — read once at module load
30
33
  const __auditRunnerDirname = path.dirname(fileURLToPath(import.meta.url));
31
34
  const _pkg = JSON.parse(readFileSync(path.join(__auditRunnerDirname, '..', 'package.json'), 'utf-8'));
@@ -77,6 +80,33 @@ export function createAuditRunner(options = {}) {
77
80
  // No config file — proceed with defaults
78
81
  }
79
82
  const mergedOptions = { ...fileConfig, ...options, ...runOptions };
83
+ // Spec 36 R5 — a threshold change needs a written rationale. Check the
84
+ // user-facing analyzerConfigs layer (project config + inline options)
85
+ // BEFORE presets merge in, so curated presets never trip the guard. Any
86
+ // changed threshold without a rationale is a config error, not a warning.
87
+ const thresholdCheck = checkThresholdRationales(mergedOptions.analyzerConfigs, mergedOptions.rationales);
88
+ if (thresholdCheck.errors.length > 0) {
89
+ const message = [
90
+ 'Configuration error — threshold changes require a rationale (Spec 36 R5):',
91
+ ...thresholdCheck.errors.map((e) => ` - ${e}`),
92
+ ].join('\n');
93
+ throw new Error(message);
94
+ }
95
+ const thresholdChanges = thresholdCheck.changes.map((c) => ({
96
+ key: c.key,
97
+ defaultValue: c.defaultValue,
98
+ effectiveValue: c.effectiveValue,
99
+ }));
100
+ // Resolve shareable presets (Spec 38 R4). Unknown ids are dropped (matching
101
+ // mergePresets semantics); the merged preset layer becomes the base under
102
+ // the project config / run options already present in mergedOptions.
103
+ const presetIds = Array.isArray(mergedOptions.presets) ? mergedOptions.presets : [];
104
+ if (presetIds.length > 0) {
105
+ mergedOptions.analyzerConfigs = applyPresets(presetIds, mergedOptions.analyzerConfigs);
106
+ }
107
+ // Always merge built-in path profiles — corpus audits and projects without
108
+ // .codeauditor.json must still get the built-in scripts-and-tests profile.
109
+ mergedOptions.pathProfiles = mergePathProfiles(mergedOptions.pathProfiles, mergedOptions.builtin);
80
110
  const startTime = Date.now();
81
111
  // ── Scope resolution ─────────────────────────────────────────────
82
112
  const scope = mergedOptions.scope ?? 'all';
@@ -291,6 +321,13 @@ export function createAuditRunner(options = {}) {
291
321
  // Injected into data-access and schema analyzers so they can report
292
322
  // per-file buildProvenanceContext() wall time (hook-latency measurement).
293
323
  const provenanceTiming = { totalMs: 0 };
324
+ let pipelineCoverage;
325
+ let pipelineTableCatalog;
326
+ let pipelineStageTiming;
327
+ let pipelineSkippedFiles;
328
+ let pipelineUnparsedFiles;
329
+ let pipelineInputPresence;
330
+ let pipelineRuleTiming;
294
331
  logMcpInfo('analysis', 'enabled analyzers', {
295
332
  names: enabledAnalyzers,
296
333
  fileCount: files.length,
@@ -348,9 +385,6 @@ export function createAuditRunner(options = {}) {
348
385
  // `functions` table so conventions + cross-domain reducers have data
349
386
  // even on a cold run with no prior index sync.
350
387
  pipelineVisitors.push(createFunctionIndexVisitor());
351
- // file-sources visitor records per-file source code so Stage 3 reducers
352
- // can access it without calling readFileSync().
353
- pipelineVisitors.push(createFileSourcesVisitor());
354
388
  // styles-css visitor — AST-extracts .css files into style_* tables (Spec 26 Phase 2)
355
389
  if (enabledAnalyzers.includes('styles'))
356
390
  pipelineVisitors.push(createStylesCssVisitor());
@@ -432,6 +466,13 @@ export function createAuditRunner(options = {}) {
432
466
  dbCallMethods: scConfig.dbCallMethods,
433
467
  dbBindingNames: scConfig.dbBindingNames ?? ['env.DB'],
434
468
  fileGateGlobs: scConfig.fileGateGlobs,
469
+ // Declarative ORM table-source registry (Spec 29 R2). Defaults to the
470
+ // Drizzle builders in the visitor when unset; presets (drizzle, typeorm,
471
+ // knex) supply their own, and it must not be dropped before the visitor.
472
+ tableSources: scConfig.tableSources,
473
+ // Provenance context knobs that the visitor reads via buildProvenanceContext.
474
+ dbWrapperNames: scConfig.dbWrapperNames,
475
+ detection: scConfig.detection,
435
476
  // External schema references — the pipeline reducer gates unknown-table
436
477
  // detection on these being non-empty (fail-open law: no external
437
478
  // authority means the rule cannot accuse).
@@ -479,13 +520,9 @@ export function createAuditRunner(options = {}) {
479
520
  });
480
521
  }
481
522
  try {
482
- // Build a source provider from the file-sources infrastructure
483
- // visitor fact avoids readFileSync inside the pipeline.
484
- const fileSources = ctx?.allFacts.get('file-sources');
485
- const getSource = fileSources
486
- ? (filePath) => fileSources[filePath]
487
- : undefined;
488
- auditIndex.mineAllConventions(root, getSource);
523
+ // Convention mining reads source on demand via readFileSync
524
+ // (mineImportForm/mineExportShape have an internal fallback).
525
+ auditIndex.mineAllConventions(root);
489
526
  }
490
527
  catch (err) {
491
528
  logMcpInfo('analysis', 'convention mining failed (non-fatal)', {
@@ -531,6 +568,18 @@ export function createAuditRunner(options = {}) {
531
568
  });
532
569
  }
533
570
  }
571
+ // Spec 27 — build per-rule coverage from final analyzer results
572
+ // (computed AFTER react finalization so cross-component checks are included).
573
+ // Spec 33 Item 14 — thread the pipeline's input-presence snapshot so
574
+ // zero-violation rules promote from `unassessed` to `clean`/`notApplicable`.
575
+ pipelineCoverage = buildCoverageReport(analyzerResults, pipelineConfig, pipelineResult.metadata?.inputPresence);
576
+ // Spec 29: extract table catalog from pipeline metadata for audit report
577
+ pipelineTableCatalog = pipelineResult.metadata?.tableCatalog;
578
+ pipelineStageTiming = pipelineResult.metadata?.stageTiming;
579
+ pipelineSkippedFiles = pipelineResult.metadata?.skippedFiles;
580
+ pipelineUnparsedFiles = pipelineResult.metadata?.unparsedFiles;
581
+ pipelineInputPresence = pipelineResult.metadata?.inputPresence;
582
+ pipelineRuleTiming = pipelineResult.metadata?.ruleTiming;
534
583
  }
535
584
  catch (error) {
536
585
  if (error instanceof AuditAbortedError || error instanceof AuditHandoffError) {
@@ -641,6 +690,31 @@ export function createAuditRunner(options = {}) {
641
690
  known: classified.known.length,
642
691
  });
643
692
  }
693
+ // ── Spec 36 R7 — suppression decay ──────────────────────────────────
694
+ // Inline `code-audit-disable-*` directives suppress a finding only while
695
+ // it fires, carry a required reason, and are themselves an error when
696
+ // unnecessary or reasonless. Computed here (not in the gate) so the
697
+ // suppressed/unnecessary/reasonless triage is reported, never silent.
698
+ let suppressionMetadata;
699
+ {
700
+ const directives = collectSuppressionDirectives(files);
701
+ if (directives.length > 0) {
702
+ const allViolations = Object.values(orderedAnalyzerResults).flatMap((r) => r.violations);
703
+ const applied = applySuppressions(allViolations, directives);
704
+ suppressionMetadata = {
705
+ total: directives.length,
706
+ suppressed: applied.suppressed.length,
707
+ unnecessary: applied.unnecessary,
708
+ reasonless: applied.reasonless,
709
+ };
710
+ logMcpInfo('suppressions', 'suppression triage complete', {
711
+ total: directives.length,
712
+ suppressed: applied.suppressed.length,
713
+ unnecessary: applied.unnecessary.length,
714
+ reasonless: applied.reasonless.length,
715
+ });
716
+ }
717
+ }
644
718
  // ── Spec 13 R2 — Hotspot scoring & finding reordering ──────────────
645
719
  // Attach hotspot scores to violations and reorder within severity tiers.
646
720
  // Falls back gracefully when no churn/hotspot data exists.
@@ -808,12 +882,22 @@ export function createAuditRunner(options = {}) {
808
882
  auditDuration: Date.now() - startTime,
809
883
  filesAnalyzed: files.length,
810
884
  analyzersRun: enabledAnalyzers,
885
+ ...(isScoped && { analyzedFiles: files }),
811
886
  configUsed: mergedOptions,
812
887
  scope: scopeResultType,
813
888
  provenanceResolutionMs: provenanceTiming.totalMs,
814
889
  ...(blastRadius && { blastRadius }),
815
890
  ...(zeroFilesDiagnostics.length > 0 && { diagnostics: zeroFilesDiagnostics }),
816
891
  ...(baselineMetadata && { baseline: baselineMetadata }),
892
+ ...(pipelineCoverage && { coverage: pipelineCoverage }),
893
+ ...(pipelineTableCatalog && { tableCatalog: pipelineTableCatalog }),
894
+ ...(pipelineStageTiming && { stageTiming: pipelineStageTiming }),
895
+ ...(thresholdChanges.length > 0 && { thresholdChanges }),
896
+ ...(pipelineSkippedFiles && pipelineSkippedFiles.length > 0 && { skippedFiles: pipelineSkippedFiles }),
897
+ ...(pipelineUnparsedFiles && pipelineUnparsedFiles.length > 0 && { unparsedFiles: pipelineUnparsedFiles }),
898
+ ...(pipelineInputPresence && { inputPresence: pipelineInputPresence }),
899
+ ...(pipelineRuleTiming && { ruleTiming: pipelineRuleTiming }),
900
+ ...(suppressionMetadata && { suppressions: suppressionMetadata }),
817
901
  ...(collectedFunctions.length > 0 && {
818
902
  collectedFunctions,
819
903
  fileToFunctionsMap: Object.fromEntries(fileToFunctionsMap)
@@ -963,40 +1047,18 @@ async function resolveFilesScope(options, scopeFiles) {
963
1047
  }
964
1048
  return [...result].sort();
965
1049
  }
966
- /**
967
- * Check whether a .codeauditor.json at the given directory has invariant rules.
968
- */
969
- function hasInvariantRules(projectDir) {
970
- try {
971
- const rulesPath = path.join(projectDir, '.codeauditor.json');
972
- if (!statSync(rulesPath).isFile())
973
- return false;
974
- const raw = readFileSync(rulesPath, 'utf-8');
975
- const parsed = JSON.parse(raw);
976
- return Array.isArray(parsed.rules) && parsed.rules.length > 0;
977
- }
978
- catch {
979
- return false;
980
- }
981
- }
982
1050
  /**
983
1051
  * Get list of enabled analyzers
984
1052
  */
985
1053
  function getEnabledAnalyzers(options, registry) {
986
- const projectDir = options.projectRoot || process.cwd();
987
1054
  // Explicit array (including empty = run no analyzers, e.g. index-only harness)
988
1055
  if (options.enabledAnalyzers !== undefined) {
989
- // Auto-disable invariants when no rules are configured (Spec 05 R3.1)
990
- if (options.enabledAnalyzers.includes('invariants') && !hasRules(options) && !hasInvariantRules(projectDir)) {
991
- return options.enabledAnalyzers.filter(a => a !== 'invariants');
992
- }
1056
+ // invariants auto-disables at runtime inside the pipeline reducer when no
1057
+ // rules are configured it stays in the list so coverage can report its
1058
+ // rules as notApplicable (Spec 27 criterion 5).
993
1059
  return options.enabledAnalyzers;
994
1060
  }
995
1061
  const allAnalyzers = Object.keys(registry);
996
- // Auto-disable invariants when no rules are configured (Spec 05 R3.1)
997
- if (!hasRules(options) && !hasInvariantRules(projectDir)) {
998
- return allAnalyzers.filter(a => a !== 'invariants');
999
- }
1000
1062
  return allAnalyzers;
1001
1063
  }
1002
1064
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"auditRunner.js","sourceRoot":"","sources":["../src/auditRunner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auditRunner.js","sourceRoot":"","sources":["../src/auditRunner.ts"],"names":[],"mappings":"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"}