code-auditor-mcp 3.4.18 → 3.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +99 -0
  3. package/README.md +5 -5
  4. package/dist/analyzers/applicability.d.ts +19 -5
  5. package/dist/analyzers/applicability.d.ts.map +1 -1
  6. package/dist/analyzers/applicability.js +36 -24
  7. package/dist/analyzers/applicability.js.map +1 -1
  8. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
  9. package/dist/analyzers/cross-language/APIContractAnalyzer.js +23 -2
  10. package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
  11. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +52 -9
  12. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  13. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +228 -55
  14. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  15. package/dist/analyzers/cross-language/SchemaValidator.d.ts +19 -12
  16. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  17. package/dist/analyzers/cross-language/SchemaValidator.js +78 -111
  18. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  19. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +0 -6
  20. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
  21. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +85 -73
  22. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  23. package/dist/analyzers/documentationAnalyzer.js +5 -5
  24. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  25. package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -1
  26. package/dist/analyzers/invariantsAnalyzer.js +1 -0
  27. package/dist/analyzers/invariantsAnalyzer.js.map +1 -1
  28. package/dist/analyzers/provenance.d.ts +7 -9
  29. package/dist/analyzers/provenance.d.ts.map +1 -1
  30. package/dist/analyzers/provenance.js +88 -124
  31. package/dist/analyzers/provenance.js.map +1 -1
  32. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  33. package/dist/analyzers/reactAnalyzer.js +120 -21
  34. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  35. package/dist/analyzers/ruleRegistry.d.ts +35 -12
  36. package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
  37. package/dist/analyzers/ruleRegistry.js +66 -108
  38. package/dist/analyzers/ruleRegistry.js.map +1 -1
  39. package/dist/analyzers/ruleTiming.d.ts +2 -2
  40. package/dist/analyzers/ruleTiming.js +2 -2
  41. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
  42. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +60 -24
  43. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
  44. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  45. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +5 -2
  46. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  47. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  48. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +82 -71
  49. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  50. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +2 -1
  51. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  52. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +23 -12
  53. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  54. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +11 -1
  55. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  56. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +60 -22
  57. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  58. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  59. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +5 -2
  60. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  61. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -3
  62. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  63. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +258 -87
  64. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  65. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
  66. package/dist/analyzers/universal/schema/codeAnalysis.js +7 -1
  67. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  68. package/dist/analyzers/universal/schema/discovery.d.ts +29 -1
  69. package/dist/analyzers/universal/schema/discovery.d.ts.map +1 -1
  70. package/dist/analyzers/universal/schema/discovery.js +76 -21
  71. package/dist/analyzers/universal/schema/discovery.js.map +1 -1
  72. package/dist/analyzers/universal/schema/jsonSchema.js +7 -11
  73. package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
  74. package/dist/auditRouter.d.ts +41 -0
  75. package/dist/auditRouter.d.ts.map +1 -0
  76. package/dist/auditRouter.js +185 -0
  77. package/dist/auditRouter.js.map +1 -0
  78. package/dist/auditRunner.d.ts.map +1 -1
  79. package/dist/auditRunner.js +93 -84
  80. package/dist/auditRunner.js.map +1 -1
  81. package/dist/cli.js +306 -95
  82. package/dist/cli.js.map +1 -1
  83. package/dist/codeIndexDB.d.ts.map +1 -1
  84. package/dist/codeIndexDB.js +41 -7
  85. package/dist/codeIndexDB.js.map +1 -1
  86. package/dist/componentScanner.d.ts.map +1 -1
  87. package/dist/componentScanner.js +2 -1
  88. package/dist/componentScanner.js.map +1 -1
  89. package/dist/config/configLoader.d.ts +9 -0
  90. package/dist/config/configLoader.d.ts.map +1 -1
  91. package/dist/config/configLoader.js +45 -2
  92. package/dist/config/configLoader.js.map +1 -1
  93. package/dist/config/defaults.d.ts +8 -1
  94. package/dist/config/defaults.d.ts.map +1 -1
  95. package/dist/config/defaults.js +19 -3
  96. package/dist/config/defaults.js.map +1 -1
  97. package/dist/dataPaths.js +18 -1
  98. package/dist/dataPaths.js.map +1 -1
  99. package/dist/enforcement/gate.d.ts +14 -19
  100. package/dist/enforcement/gate.d.ts.map +1 -1
  101. package/dist/enforcement/gate.js +27 -45
  102. package/dist/enforcement/gate.js.map +1 -1
  103. package/dist/functionScanner.d.ts.map +1 -1
  104. package/dist/functionScanner.js +1 -17
  105. package/dist/functionScanner.js.map +1 -1
  106. package/dist/invariants/ruleEngine.d.ts +8 -0
  107. package/dist/invariants/ruleEngine.d.ts.map +1 -1
  108. package/dist/invariants/ruleEngine.js +35 -16
  109. package/dist/invariants/ruleEngine.js.map +1 -1
  110. package/dist/languages/LanguageOrchestrator.d.ts +9 -10
  111. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
  112. package/dist/languages/LanguageOrchestrator.js +135 -101
  113. package/dist/languages/LanguageOrchestrator.js.map +1 -1
  114. package/dist/languages/RuntimeManager.d.ts +28 -1
  115. package/dist/languages/RuntimeManager.d.ts.map +1 -1
  116. package/dist/languages/RuntimeManager.js +158 -47
  117. package/dist/languages/RuntimeManager.js.map +1 -1
  118. package/dist/languages/go/GoAdapter.d.ts +2 -0
  119. package/dist/languages/go/GoAdapter.d.ts.map +1 -1
  120. package/dist/languages/go/GoAdapter.js +15 -22
  121. package/dist/languages/go/GoAdapter.js.map +1 -1
  122. package/dist/languages/go/analyzer +0 -0
  123. package/dist/languages/go/analyzer-src/analyzer.go +510 -0
  124. package/dist/languages/go/analyzer-src/go.mod +3 -0
  125. package/dist/languages/go/analyzer-src/indexer.go +268 -0
  126. package/dist/languages/go/analyzer-src/parser.go +461 -0
  127. package/dist/languages/go/analyzer-src/solid.go +395 -0
  128. package/dist/languages/go/analyzer-src/testconventions.go +25 -0
  129. package/dist/languages/go/analyzer-src/types.go +148 -0
  130. package/dist/languages/go/go.mod +7 -0
  131. package/dist/languages/go/main.go +203 -0
  132. package/dist/languages/testConventions.d.ts +35 -0
  133. package/dist/languages/testConventions.d.ts.map +1 -0
  134. package/dist/languages/testConventions.js +51 -0
  135. package/dist/languages/testConventions.js.map +1 -0
  136. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +3 -0
  137. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  138. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +25 -18
  139. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  140. package/dist/mcp-tools/whitelistTools.d.ts +1 -1
  141. package/dist/mcp-tools-shared.d.ts +0 -3
  142. package/dist/mcp-tools-shared.d.ts.map +1 -1
  143. package/dist/mcp-tools-shared.js +8 -117
  144. package/dist/mcp-tools-shared.js.map +1 -1
  145. package/dist/mcp.js +3 -1
  146. package/dist/mcp.js.map +1 -1
  147. package/dist/mcpAuditJobs.d.ts.map +1 -1
  148. package/dist/mcpAuditJobs.js +13 -0
  149. package/dist/mcpAuditJobs.js.map +1 -1
  150. package/dist/nextFile.d.ts +21 -0
  151. package/dist/nextFile.d.ts.map +1 -0
  152. package/dist/nextFile.js +51 -0
  153. package/dist/nextFile.js.map +1 -0
  154. package/dist/nextFileIncremental.d.ts +141 -0
  155. package/dist/nextFileIncremental.d.ts.map +1 -0
  156. package/dist/nextFileIncremental.js +314 -0
  157. package/dist/nextFileIncremental.js.map +1 -0
  158. package/dist/pipeline.d.ts.map +1 -1
  159. package/dist/pipeline.js +43 -3
  160. package/dist/pipeline.js.map +1 -1
  161. package/dist/pipelineAdapters.d.ts +17 -0
  162. package/dist/pipelineAdapters.d.ts.map +1 -1
  163. package/dist/pipelineAdapters.js +791 -40
  164. package/dist/pipelineAdapters.js.map +1 -1
  165. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  166. package/dist/reporting/jsonReportGenerator.js +11 -30
  167. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  168. package/dist/styles/styleExtractor.js +2 -2
  169. package/dist/styles/styleExtractor.js.map +1 -1
  170. package/dist/styles/styleIndexer.d.ts +7 -0
  171. package/dist/styles/styleIndexer.d.ts.map +1 -1
  172. package/dist/styles/styleIndexer.js +51 -67
  173. package/dist/styles/styleIndexer.js.map +1 -1
  174. package/dist/styles/types.d.ts +3 -2
  175. package/dist/styles/types.d.ts.map +1 -1
  176. package/dist/types/crossLanguage.d.ts +1 -0
  177. package/dist/types/crossLanguage.d.ts.map +1 -1
  178. package/dist/types.d.ts +43 -34
  179. package/dist/types.d.ts.map +1 -1
  180. package/dist/types.js.map +1 -1
  181. package/dist/utils/fileDiscovery.d.ts +9 -0
  182. package/dist/utils/fileDiscovery.d.ts.map +1 -1
  183. package/dist/utils/fileDiscovery.js +18 -0
  184. package/dist/utils/fileDiscovery.js.map +1 -1
  185. package/package.json +16 -6
  186. package/plugin/.claude-plugin/plugin.json +1 -1
  187. package/plugin/README.md +11 -9
  188. package/plugin/hooks/hooks.json +4 -0
  189. package/plugin/scripts/hook-audit.sh +20 -30
  190. package/plugin/scripts/hook-common.sh +63 -0
  191. package/plugin/scripts/hook-self-audit.sh +99 -0
  192. package/plugin/skills/code-auditor/SKILL-RULE-KINDS.md +55 -9
  193. package/plugin/skills/code-auditor/SKILL.md +22 -23
@@ -10,7 +10,7 @@
10
10
  "name": "code-auditor",
11
11
  "source": "./plugin",
12
12
  "description": "Diff-scoped code quality auditing on every edit. Indexes your codebase, enforces invariants, and feeds violations back to the agent so fixes happen inline.",
13
- "version": "3.4.18",
13
+ "version": "3.6.0",
14
14
  "author": {
15
15
  "name": "Ben Hammond"
16
16
  },
package/CHANGELOG.md CHANGED
@@ -2,6 +2,105 @@
2
2
 
3
3
  All notable changes to the Code Auditor MCP project.
4
4
 
5
+ ## [3.6.0] — 2026-09-05
6
+
7
+ ### Enforcement — Spec 45 reverts the unauthorized narrowings
8
+ The R6 survey found ten enforcement/gating/reporting narrowings written into
9
+ specs 36–42 without agreement. Spec 45 reverts them all. Corpus baselines are
10
+ unchanged — the finding set is identical across all six corpora.
11
+
12
+ - **Every rule gates (R1)** — the per-rule `gating` opt-in is removed; a finding
13
+ gates regardless of which rule produced it, with no requirement that the rule
14
+ name a resolution first.
15
+ - **Severity-scoped gate (R2)** — severity returns to the gating decision; the
16
+ gate blocks `critical` and `warning`, recording a resolution gap rather than
17
+ dropping the finding to non-blocking.
18
+ - **No decaying suppressions (R3)** — the decaying-suppression mechanism is
19
+ removed (it was never built).
20
+ - **Enforcement is not diff-scoped (R4)** — the gate compares against the full
21
+ finding set, not only the lines the current edit touched.
22
+ - **`styles/undefined-class` reports on unread stylesheets (R5)** — a
23
+ `.sass`/`.less`/`.styl` stylesheet no longer silences the rule with
24
+ `notApplicable`; the finding still fires and carries the unread source as
25
+ `details.incompleteDefinitions`, so "undefined" reads as "not defined in any
26
+ *read* stylesheet".
27
+
28
+ ### Amendment A
29
+ - **A1** — a slow rule is optimized, never dropped from the gate (Spec 38 R3's
30
+ "removed from the gating set" is struck). The budget is reported, never
31
+ silently widened.
32
+ - **A2** — counts are emitted in agent-facing output: per analyzer, per rule,
33
+ per severity, and the before/after gating figure (Spec 36 R3's "no bare
34
+ counts" is struck).
35
+
36
+ ## [3.5.0] — 2026-09-05
37
+
38
+ ### Rule authenticity — the dishonest rules now do what they claim
39
+ The authenticity audit found four rules whose predicates matched a name or a
40
+ doc-comment proxy instead of the thing their message claimed. All four are
41
+ reimplemented against the real AST:
42
+
43
+ - **Go `solid/liskov-substitution`** — walks method bodies for `panic()` calls
44
+ instead of matching "panic" in the name.
45
+ - **Go `errors/error-handling`** — an errcheck-style walk: an `err` assigned from
46
+ a call and never checked/returned/passed/ignored is a dropped error (bare
47
+ returns in named-`err` functions count as a check).
48
+ - **Go `goroutines/concurrency`** — a `go` statement with no sync primitive or
49
+ channel handoff, instead of matching "go"/"async"/"concurrent" in the name.
50
+ - **TS `data-access/missing-org-filter`** — derives tenant-scoped tables from the
51
+ schema catalog; the hardcoded English `fallbackOrgTables` list is deleted.
52
+
53
+ ### Cannot-fire reporting
54
+ Ten rules that can never fire (their extractor never populates the field they
55
+ read) now emit an explicit `cannot-fire` diagnostic naming the missing extractor
56
+ and field, distinct from `notApplicable` — a standing record of a broken rule,
57
+ not a per-project "nothing to see here."
58
+
59
+ ### Crude / overclaim rule cleanup
60
+ - Reworded seven messages that asserted more than the predicate computed.
61
+ - Renamed crude size-proxies (`single-responsibility`, `interface-segregation`,
62
+ `dependency-inversion`, `complex-query`, `unfiltered-query`, documentation
63
+ length checks, …) to claim only what is measured.
64
+ - `schema/table-naming-convention` replaced its uppercase-proxy with an explicit
65
+ `/^[a-z][a-z0-9_]*$/` conformance check.
66
+ - `styles/token-bypass` now fires on non-color tokens (the `valueType !== 'color'`
67
+ gate is removed), so length/spacing token bypasses are caught.
68
+ - `dependency-graph` (circular-dependency, tight-coupling, hub-nodes, …) renders
69
+ the cycle/node data it already computed instead of flattening to "Found N".
70
+
71
+ ### Decide — built the tractable ones, cut the rest
72
+ `solid/liskov-substitution` (TS), `react/accessibility`, `react/performance`, and
73
+ `schema-validator/missing-field` are built against real inputs; the cohesion/
74
+ dataflow-dependent rules are cut or kept-as-renamed.
75
+
76
+ ### Near-miss executor
77
+ Every declared near-miss sample now runs through its real analyzer and asserts
78
+ zero findings (28 wired); the remaining 66 are classified per-rule with the
79
+ precise missing input and `it.skip`ped, so the gap is visible rather than faked.
80
+
81
+ ### Go routing fix
82
+ The Go-subprocess routing decision no longer counts a `.go` file buried in a
83
+ dependency's `node_modules` as a source file — a pure-TS project with such a
84
+ dependency is no longer misrouted through the Go analyzer (which dropped every
85
+ non-Go analyzer).
86
+
87
+ ### Self-audit remediation — `verify:self` to zero
88
+ The 30 pre-existing `critical`+`warning` findings in `src/analyzers/` +
89
+ `src/languages/` are remediated honestly — duplicated logic collapsed into shared
90
+ helpers (`resolveReceiverText`, `enqueueCallNeighbors`, `filterByFilePatterns`,
91
+ `collectPatternTables`, `pushExportedSpec`, `resolveDeclaration`, …) and the
92
+ missing `@param`/`@returns` docs added — not via severity/threshold calibration.
93
+ `verify:close` now passes end-to-end, including `verify:self` at zero scoped
94
+ blocking findings.
95
+
96
+ ### Edit-time self-audit hook
97
+ A new PostToolUse hook (`plugin/scripts/hook-self-audit.sh`) runs the same
98
+ self-audit scope over edited `src/analyzers/` + `src/languages/` files and blocks
99
+ the edit (exit 2) on any blocking finding, so self-audit findings fail at edit
100
+ time instead of recurring to the release gate. The shipped CLI gains a
101
+ `self-audit` command, and the hook resolves the plugin's own bundled CLI rather
102
+ than a stale PATH binary.
103
+
5
104
  ## [3.4.18] — 2026-09-03
6
105
 
7
106
  ### Index relocation
package/README.md CHANGED
@@ -28,11 +28,11 @@ The hook auto-installs the auditor on first use via npx.
28
28
 
29
29
  ## Prompt examples
30
30
 
31
- **"Index the codebase and run a full audit. Create tasks from any violations."**
31
+ **"Index the codebase and run a full audit, then walk the violations file-by-file with `code-audit next-file`."**
32
32
 
33
33
  **"Create a `.codeauditor.json` that bans lodash imports and prevents `src/languages/` from importing anything in `src/analyzers/`."**
34
34
 
35
- **"Run a full code audit and create tasks from the violations."**
35
+ **"Run a full audit, fix the highest-priority file, and repeat `code-audit next-file` until the tree is clean."**
36
36
 
37
37
  **"Sync the code index and audit only what changed vs main."**
38
38
 
@@ -44,7 +44,7 @@ The hook auto-installs the auditor on first use via npx.
44
44
 
45
45
  ## Rule kinds
46
46
 
47
- Five kinds. The agent writes them to `.codeauditor.json`. Bad configs fail the audit, not silently.
47
+ Seven kinds. The agent writes them to `.codeauditor.json`. Bad configs fail the audit, not silently.
48
48
 
49
49
  | Kind | What it blocks |
50
50
  |------|---------------|
@@ -69,7 +69,7 @@ One skill, one CLI, one MCP server. Every agent gets the same audit engine — t
69
69
  | VS Code / Copilot | `code-audit install --agent agents` | No | Yes | 2026-07-19 |
70
70
  | Other SKILL.md tools | `code-audit install --agent agents` | No | Yes | 2026-07-19 |
71
71
 
72
- Hook behavior: **Blocking** means violations at or above `--fail-on` severity prevent the edit from landing (the agent sees the violation and fixes inline). **Advisory** means violations are reported through the strongest available feedback channel but the edit has already occurred. Cursor's `afterFileEdit` hook is fire-and-forget with no output consumption. MCP is available everywhere for shell-less use.
72
+ Hook behavior: **Blocking** means the diff-scoped `changed` gate is tripped — an invariant rule that declares `gating: true` (a binary, per-rule flag, independent of severity) blocks the edit from landing (the agent sees the violation and fixes inline). **Advisory** means violations are reported through the strongest available feedback channel but the edit has already occurred. Cursor's `afterFileEdit` hook is fire-and-forget with no output consumption. MCP is available everywhere for shell-less use.
73
73
 
74
74
  ## Findings: Deterministic vs Advisory
75
75
 
@@ -116,7 +116,7 @@ The `sql-injection-risk` rule is **disabled by default** (`off`) after recalibra
116
116
  }
117
117
  ```
118
118
 
119
- With `sql-injection-risk: critical` and `code-audit changed --fail-on critical`, your agent's hook will block edits that introduce AST-level SQL injection patterns.
119
+ With `sql-injection-risk: critical` (and the rule marked `gating`), your agent's hook will block edits that introduce AST-level SQL injection patterns.
120
120
 
121
121
  ## Style Intelligence
122
122
 
@@ -4,6 +4,9 @@
4
4
  * A rule's applicability is a predicate over its declared inputs, evaluated
5
5
  * before the rule runs. A rule whose predicate is false reports `notApplicable`
6
6
  * with a reason naming the absent input — not silence, and not zero findings.
7
+ * A rule that is structurally unreachable (its predicate reads a field no
8
+ * extractor populates) reports `cannot-fire` instead, distinct from a per-corpus
9
+ * `notApplicable`.
7
10
  *
8
11
  * This module is intentionally free of analyzer imports: pipeline.ts imports it
9
12
  * statically, and the analyzer classes pull in pipeline.js (via
@@ -14,11 +17,21 @@
14
17
  export interface RuleApplicability {
15
18
  applicable: boolean;
16
19
  reason?: string;
20
+ /**
21
+ * Discriminates a rule that is *inapplicable to this corpus* (`notApplicable`,
22
+ * the default) from one that is *broken in the tool* (`cannot-fire`). A
23
+ * `cannot-fire` rule has no emission site — the extractor its predicate reads
24
+ * never populates the field — so it reports the same verdict on every project,
25
+ * not just this one. Defaults to `notApplicable` when omitted.
26
+ */
27
+ kind?: 'notApplicable' | 'cannot-fire';
17
28
  }
18
29
  /**
19
- * A stylesheet source the style indexer could not read (Spec 42 R2). When any
20
- * exist, styles/undefined-class must not assert a class is undefined because it
21
- * may be defined in one of these files.
30
+ * A stylesheet source the style indexer could not read (Spec 45 R5). When any
31
+ * exist, `styles/undefined-class` still fires the class has no matching
32
+ * definition in any *read* stylesheet but each finding carries this list as
33
+ * `details.incompleteDefinitions` so "undefined" reads as "not defined in any
34
+ * read stylesheet", not as a definitive assertion about the whole project.
22
35
  */
23
36
  export interface UnreadStyleSourceInfo {
24
37
  filePath: string;
@@ -35,7 +48,8 @@ export interface UnreadStyleSourceInfo {
35
48
  * @param ruleId The registry rule id.
36
49
  * @param dataAccessConfig The namespaced data-access config (may be undefined).
37
50
  * @param ddlColumns Aggregated DDL-declared columns from the schema reducer.
38
- * @param unreadStyleSources Stylesheets the indexer could not read (Spec 42 R2).
51
+ * @returns The rule's applicability verdict, or null when the rule declares no
52
+ * applicability predicate and runs unconditionally.
39
53
  */
40
- export declare function evaluateRuleApplicability(ruleId: string, dataAccessConfig: Record<string, unknown> | undefined, ddlColumns: string[] | undefined, unreadStyleSources?: UnreadStyleSourceInfo[]): RuleApplicability | null;
54
+ export declare function evaluateRuleApplicability(ruleId: string, dataAccessConfig: Record<string, unknown> | undefined, ddlColumns: string[] | undefined): RuleApplicability | null;
41
55
  //# sourceMappingURL=applicability.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"applicability.d.ts","sourceRoot":"","sources":["../../src/analyzers/applicability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAUD;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACrD,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,EAChC,kBAAkB,CAAC,EAAE,qBAAqB,EAAE,GAC3C,iBAAiB,GAAG,IAAI,CAQ1B"}
1
+ {"version":3,"file":"applicability.d.ts","sourceRoot":"","sources":["../../src/analyzers/applicability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,eAAe,GAAG,aAAa,CAAC;CACxC;AAUD;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACrD,UAAU,EAAE,MAAM,EAAE,GAAG,SAAS,GAC/B,iBAAiB,GAAG,IAAI,CAS1B"}
@@ -4,6 +4,9 @@
4
4
  * A rule's applicability is a predicate over its declared inputs, evaluated
5
5
  * before the rule runs. A rule whose predicate is false reports `notApplicable`
6
6
  * with a reason naming the absent input — not silence, and not zero findings.
7
+ * A rule that is structurally unreachable (its predicate reads a field no
8
+ * extractor populates) reports `cannot-fire` instead, distinct from a per-corpus
9
+ * `notApplicable`.
7
10
  *
8
11
  * This module is intentionally free of analyzer imports: pipeline.ts imports it
9
12
  * statically, and the analyzer classes pull in pipeline.js (via
@@ -29,38 +32,47 @@ const DEFAULT_ORG_FILTER_COLUMNS = ['org_id', 'tenant_id', 'organization_id', 'w
29
32
  * @param ruleId The registry rule id.
30
33
  * @param dataAccessConfig The namespaced data-access config (may be undefined).
31
34
  * @param ddlColumns Aggregated DDL-declared columns from the schema reducer.
32
- * @param unreadStyleSources Stylesheets the indexer could not read (Spec 42 R2).
35
+ * @returns The rule's applicability verdict, or null when the rule declares no
36
+ * applicability predicate and runs unconditionally.
33
37
  */
34
- export function evaluateRuleApplicability(ruleId, dataAccessConfig, ddlColumns, unreadStyleSources) {
35
- if (ruleId === 'styles/undefined-class') {
36
- return evaluateUndefinedClassApplicability(unreadStyleSources);
37
- }
38
+ export function evaluateRuleApplicability(ruleId, dataAccessConfig, ddlColumns) {
38
39
  if (ruleId === 'missing-org-filter') {
39
40
  return evaluateMissingOrgFilterApplicability(dataAccessConfig, ddlColumns);
40
41
  }
42
+ const cannotFireReason = CANNOT_FIRE_RULES.get(ruleId);
43
+ if (cannotFireReason !== undefined) {
44
+ return { applicable: false, reason: cannotFireReason, kind: 'cannot-fire' };
45
+ }
41
46
  return null;
42
47
  }
43
48
  /**
44
- * Spec 42 R2whole-run scope: if any stylesheet went unread, a class this
45
- * detector would otherwise flag undefined may in fact be defined there. Report
46
- * notApplicable naming what was unread rather than assert undefined.
49
+ * Spec 44 bucket 2 rules that are structurally unreachable: their predicate
50
+ * reads a field no extractor populates (or they are a legacy alias with no
51
+ * emission site). Unlike `notApplicable` ("this corpus has no input for me"),
52
+ * a `cannot-fire` rule reports the same verdict on every project — it is a
53
+ * standing finding about the analyzer, so it stays visible rather than folding
54
+ * into a per-project "nothing to see here".
55
+ *
56
+ * Each reason names the specific extractor and the specific field (or absence
57
+ * of an emission site) so a reader can tell *why* it cannot fire. Remove an id
58
+ * here when its extraction begins emitting it.
47
59
  */
48
- function evaluateUndefinedClassApplicability(unreadStyleSources) {
49
- if (unreadStyleSources && unreadStyleSources.length > 0) {
50
- // Surface the per-source reason (which encodes the offending extension for
51
- // the Spec 43 R5 fallthrough, or the unsupported dialect for Spec 42 R2)
52
- // rather than only the file path, so a "loud" fallthrough stays loud end to
53
- // end instead of being collapsed back to a bare path list.
54
- const names = unreadStyleSources
55
- .map((s) => (s.reason ? `${s.filePath} (${s.reason})` : s.filePath))
56
- .join(', ');
57
- return {
58
- applicable: false,
59
- reason: `stylesheets were not read: ${names}`,
60
- };
61
- }
62
- return null;
63
- }
60
+ const CANNOT_FIRE_RULES = new Map([
61
+ // api-contract reads response/auth metadata that extractEndpoints /
62
+ // extractAPICalls never populate, or has no emission site at all.
63
+ ['api-type-mismatch', 'cannot fire extractEndpoints/extractAPICalls never populate responseSchema/expectedResponseType/deprecated, the fields this rule reads'],
64
+ ['missing-endpoint', 'cannot fire gated: extractMethodFrom*/extractPathFromGo derive method and URL from function names (name proxy), so any finding is fabricated'],
65
+ ['api-extra-field', 'cannot fire no emission site: the analyzer has no code that produces this rule'],
66
+ ['api-missing-field', 'cannot fire — no emission site: the analyzer has no code that produces this rule'],
67
+ ['method-mismatch', 'cannot fire gated: extractMethodFrom* derives the verb from function names (name proxy), so any finding is fabricated'],
68
+ ['auth-mismatch', 'cannot fire — extractEndpoints never sets `authentication`, the field this rule reads'],
69
+ // schema — file errors are routed to state.errors, never a file-error violation.
70
+ ['file-error', 'cannot fire — schema file errors are routed to state.errors, never emitted as a `file-error` violation'],
71
+ // schema-validator legacy alias or reads constraints/version the extractor never assigns.
72
+ ['field-mismatch', 'cannot fire — legacy alias: the validator emits `schema-field-mismatch`, never `field-mismatch`'],
73
+ ['constraint-mismatch', 'cannot fire — extractSchemas never assigns `constraints` on fields, the input this rule reads'],
74
+ ['version-mismatch', 'cannot fire — extractSchemas never assigns `version` on schemas, the input this rule reads'],
75
+ ]);
64
76
  /**
65
77
  * Spec 39/42 R3 — `missing-org-filter` is applicable when the project declares a
66
78
  * tenant-scoping column in one of three places: configured tenant tables by name,
@@ -1 +1 @@
1
- {"version":3,"file":"applicability.js","sourceRoot":"","sources":["../../src/analyzers/applicability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAOH;;;;;GAKG;AACH,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;AAY9F;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAc,EACd,gBAAqD,EACrD,UAAgC,EAChC,kBAA4C;IAE5C,IAAI,MAAM,KAAK,wBAAwB,EAAE,CAAC;QACxC,OAAO,mCAAmC,CAAC,kBAAkB,CAAC,CAAC;IACjE,CAAC;IACD,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;QACpC,OAAO,qCAAqC,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,mCAAmC,CAC1C,kBAA4C;IAE5C,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxD,2EAA2E;QAC3E,yEAAyE;QACzE,4EAA4E;QAC5E,2DAA2D;QAC3D,MAAM,KAAK,GAAG,kBAAkB;aAC7B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;aACnE,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,OAAO;YACL,UAAU,EAAE,KAAK;YACjB,MAAM,EAAE,8BAA8B,KAAK,EAAE;SAC9C,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,qCAAqC,CAC5C,gBAAqD,EACrD,UAAgC;IAEhC,0EAA0E;IAC1E,MAAM,eAAe,GAAc,gBAAgB,EAAE,eAAwC,IAAI,EAAE,CAAC;IACpG,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAE5D,MAAM,gBAAgB,GACnB,gBAAgB,EAAE,gBAAyC,IAAI,0BAA0B,CAAC;IAC7F,MAAM,OAAO,GACV,gBAAgB,EAAE,OAAe,IAAI,EAAE,CAAC;IAE3C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEpF,kFAAkF;IAClF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACxC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACzC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBACzD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oFAAoF;IACpF,IAAI,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,iDAAiD;KAC1D,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"applicability.js","sourceRoot":"","sources":["../../src/analyzers/applicability.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAeH;;;;;GAKG;AACH,MAAM,0BAA0B,GAAG,CAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;AAc9F;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,yBAAyB,CACvC,MAAc,EACd,gBAAqD,EACrD,UAAgC;IAEhC,IAAI,MAAM,KAAK,oBAAoB,EAAE,CAAC;QACpC,OAAO,qCAAqC,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IAC7E,CAAC;IACD,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvD,IAAI,gBAAgB,KAAK,SAAS,EAAE,CAAC;QACnC,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;IAC9E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,iBAAiB,GAAgC,IAAI,GAAG,CAAC;IAC7D,sEAAsE;IACtE,kEAAkE;IAClE,CAAC,mBAAmB,EAAE,0IAA0I,CAAC;IACjK,CAAC,kBAAkB,EAAE,gJAAgJ,CAAC;IACtK,CAAC,iBAAiB,EAAE,kFAAkF,CAAC;IACvG,CAAC,mBAAmB,EAAE,kFAAkF,CAAC;IACzG,CAAC,iBAAiB,EAAE,yHAAyH,CAAC;IAC9I,CAAC,eAAe,EAAE,uFAAuF,CAAC;IAE1G,iFAAiF;IACjF,CAAC,YAAY,EAAE,wGAAwG,CAAC;IAExH,4FAA4F;IAC5F,CAAC,gBAAgB,EAAE,iGAAiG,CAAC;IACrH,CAAC,qBAAqB,EAAE,+FAA+F,CAAC;IACxH,CAAC,kBAAkB,EAAE,4FAA4F,CAAC;CACnH,CAAC,CAAC;AAEH;;;;GAIG;AACH,SAAS,qCAAqC,CAC5C,gBAAqD,EACrD,UAAgC;IAEhC,0EAA0E;IAC1E,MAAM,eAAe,GAAc,gBAAgB,EAAE,eAAwC,IAAI,EAAE,CAAC;IACpG,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAE5D,MAAM,gBAAgB,GACnB,gBAAgB,EAAE,gBAAyC,IAAI,0BAA0B,CAAC;IAC7F,MAAM,OAAO,GACV,gBAAgB,EAAE,OAAe,IAAI,EAAE,CAAC;IAE3C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEpF,kFAAkF;IAClF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;YACxC,KAAK,MAAM,MAAM,IAAI,KAAK,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACzC,IAAI,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;oBACzD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;gBAC9B,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,oFAAoF;IACpF,IAAI,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC;QACxE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IAC9B,CAAC;IAED,OAAO;QACL,UAAU,EAAE,KAAK;QACjB,MAAM,EAAE,iDAAiD;KAC1D,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"APIContractAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/cross-language/APIContractAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA+B,UAAU,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,IAAI,EAAE,mBAAmB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,eAAe,CAAC;IAC/H,YAAY,EAAE,mBAAmB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,eAAe,CAAC;IACvI,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,KAAK,CAAiB;IAE9B;;;;;OAKG;IACG,gBAAgB,CACpB,SAAS,EAAE,WAAW,EAAE,EACxB,KAAK,EAAE,OAAO,EAAE,GACf,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAmB9B;IAED;;OAEG;YACW,kBAAkB;IA6BhC;;OAEG;YACW,oBAAoB;IA2ClC;;OAEG;YACW,oBAAoB;IA6BlC;;OAEG;YACW,sBAAsB;IA+BpC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACH,OAAO,CAAC,UAAU;IA6BlB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkCjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAM9B;AAMD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE,CAwB/D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAkB1D"}
1
+ {"version":3,"file":"APIContractAnalyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/cross-language/APIContractAnalyzer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAA+B,UAAU,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACpG,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE3C,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,cAAc,CAAC,EAAE,UAAU,CAAC;IAC5B,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAClD,IAAI,EAAE,mBAAmB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,eAAe,CAAC;IAC/H,YAAY,EAAE,mBAAmB,GAAG,kBAAkB,GAAG,iBAAiB,GAAG,mBAAmB,GAAG,iBAAiB,GAAG,eAAe,CAAC;IACvI,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,KAAK,CAAiB;IAE9B;;;;;OAKG;IACG,gBAAgB,CACpB,SAAS,EAAE,WAAW,EAAE,EACxB,KAAK,EAAE,OAAO,EAAE,GACf,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAmB9B;IAED;;OAEG;YACW,kBAAkB;IA6BhC;;OAEG;YACW,oBAAoB;IA2ClC;;OAEG;YACW,oBAAoB;IA6BlC;;OAEG;YACW,sBAAsB;IA+BpC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAa5B;;OAEG;IACH,OAAO,CAAC,UAAU;IA6BlB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAkCjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAM9B;AAwBD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE,CAwB/D;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CAkB1D"}
@@ -158,9 +158,12 @@ export class APIContractAnalyzer {
158
158
  * Find matching endpoint for an API call
159
159
  */
160
160
  findMatchingEndpoint(call) {
161
+ // Match on path only. HTTP method is validated separately in
162
+ // validateMatchedPairs so a path hit with the wrong verb surfaces as
163
+ // method-mismatch — matching on method here would make that check dead,
164
+ // since every matched pair would then already have equal methods.
161
165
  for (const endpoint of this.endpoints) {
162
- if (this.pathsMatch(endpoint.path, call.url) &&
163
- endpoint.method === call.method.toUpperCase()) {
166
+ if (this.pathsMatch(endpoint.path, call.url)) {
164
167
  return endpoint;
165
168
  }
166
169
  }
@@ -233,6 +236,24 @@ export class APIContractAnalyzer {
233
236
  // ---------------------------------------------------------------------------
234
237
  // Endpoint/call extraction (pure functions — no analyzer state)
235
238
  // ---------------------------------------------------------------------------
239
+ //
240
+ // UNREACHABLE RULES: four of the six api-contract rules never fire with the
241
+ // extraction below. `api-type-mismatch` and `auth-mismatch` require
242
+ // `responseSchema`/`authentication` on the endpoint; `api-extra-field` /
243
+ // `api-missing-field` and the deprecated check require
244
+ // `responseSchema`/`expectedResponseType`/`deprecated`. None of those fields
245
+ // are populated by extractEndpoints/extractAPICalls (the "would extract … in
246
+ // real implementation" stubs below). These dead rules are a follow-up
247
+ // requiring real endpoint/call extraction, not a threshold fix — do not read
248
+ // their zero count as "clean"; they are structurally unreachable.
249
+ //
250
+ // FABRICATED RULES: the remaining two, `missing-endpoint` and `method-mismatch`,
251
+ // DO fire, but on fabricated data. `extractMethodFrom*`/`extractPathFromGo`
252
+ // derive method and URL/path from the entity NAME (`getJson` → `GET /api/getjson`),
253
+ // so `missing-endpoint` flags every name-matched function and `method-mismatch`
254
+ // compares two name-derived strings. Both report `notApplicable` via
255
+ // applicability.ts (FABRICATED_API_CONTRACT_RULES) until real endpoint/call
256
+ // extraction exists — do not read their counts as real API-contract findings.
236
257
  /**
237
258
  * Extract API endpoints from code entities
238
259
  * @param entities
@@ -1 +1 @@
1
- {"version":3,"file":"APIContractAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/cross-language/APIContractAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"APIContractAnalyzer.js","sourceRoot":"","sources":["../../../src/analyzers/cross-language/APIContractAnalyzer.ts"],"names":[],"mappings":"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"}
@@ -37,11 +37,24 @@ declare class DependencyGraphBuilderCore {
37
37
  */
38
38
  protected buildAdjacencyListFromReferences(references: CrossReference[]): Map<string, string[]>;
39
39
  /**
40
- * Calculate maximum depth from a node
41
- */
42
- protected calculateMaxDepth(nodeId: string, adjList: Map<string, string[]>): number;
43
- /**
44
- * Count strongly connected components (simplified)
40
+ * Calculate maximum depth from a node.
41
+ *
42
+ * Bounded longest-path estimate: capped at `maxDepth` and memoized across the
43
+ * whole metrics computation via the shared `depthCache`, so a corpus with many
44
+ * entities sharing one dependency subtree is O(V+E) rather than re-exploring
45
+ * the subtree once per source node. The result feeds only the cosmetic
46
+ * health-score `maxDepth > 15` penalty, so a capped estimate is sufficient.
47
+ */
48
+ protected calculateMaxDepth(nodeId: string, adjList: Map<string, string[]>, depthCache: Map<string, number>): number;
49
+ /**
50
+ * Count strongly connected components using Tarjan's algorithm.
51
+ *
52
+ * The previous implementation returned `Math.ceil(nodes.length / 10)` — a
53
+ * fabricated number with no relationship to the graph. That value surfaced in
54
+ * `graph.metrics.stronglyConnectedComponents` as if it were measured. This
55
+ * runs Tarjan over the same adjacency list `detectCycles` uses so the count
56
+ * is real: singleton nodes are their own component, and each cycle of k nodes
57
+ * is one component.
45
58
  */
46
59
  protected countStronglyConnectedComponents(nodes: DependencyNode[], edges: DependencyEdge[]): number;
47
60
  /**
@@ -52,13 +65,29 @@ declare class DependencyGraphBuilderCore {
52
65
  coupling: number;
53
66
  }[];
54
67
  /**
55
- * Find hub nodes with too many dependencies
68
+ * Find hub nodes with too many dependencies.
69
+ *
70
+ * Returns each hub together with its out-degree so the reducer can render the
71
+ * degree in the finding — the previous signature dropped it, forcing the
72
+ * message to read "Found N hub nodes" with no way to see which node or how
73
+ * dependent it was.
56
74
  */
57
- protected findHubNodes(graph: DependencyGraph): DependencyNode[];
75
+ protected findHubNodes(graph: DependencyGraph): Array<{
76
+ node: DependencyNode;
77
+ outDegree: number;
78
+ }>;
58
79
  /**
59
- * Find orphaned nodes with no dependencies
80
+ * Find orphaned nodes with no dependencies.
81
+ *
82
+ * A node is only genuinely orphaned when all three hold: it has no edges in
83
+ * the graph, it is not exported (an exported entity is an entry point called
84
+ * from outside the graph — a different fact than "nothing calls it"), and
85
+ * nothing in the corpus calls anything by its name. The last guard matters
86
+ * because the reference resolver drops ambiguous edges: a bare call name that
87
+ * collides with many entities is treated as "unknown", not "absent", so the
88
+ * dropped edge must not become evidence that the target is unreferenced.
60
89
  */
61
- protected findOrphanedNodes(graph: DependencyGraph): DependencyNode[];
90
+ protected findOrphanedNodes(graph: DependencyGraph, referencedNames: Set<string>): DependencyNode[];
62
91
  /**
63
92
  * Calculate overall health score
64
93
  */
@@ -132,6 +161,16 @@ export declare class DependencyGraphBuilder extends DependencyGraphBuilderTraver
132
161
  issues: DependencyIssue[];
133
162
  suggestions: DependencySuggestion[];
134
163
  }>;
164
+ /** Record the circular-dependency check (cycles rendered node-by-node). */
165
+ private recordCycleCheck;
166
+ /** Record the tight-coupling check (clusters rendered with their coupling %). */
167
+ private recordClusterCheck;
168
+ /** Record the hub-node check. */
169
+ private recordHubCheck;
170
+ /** Collect bare callee names referenced anywhere in the corpus (for orphan detection). */
171
+ private collectReferencedNames;
172
+ /** Record the orphaned-node check. */
173
+ private recordOrphanCheck;
135
174
  /** Push an issue+suggestion pair when `count` is non-zero. */
136
175
  private recordCheck;
137
176
  }
@@ -141,12 +180,16 @@ export interface DependencyIssue {
141
180
  description: string;
142
181
  affectedNodes: string[];
143
182
  impact: 'high' | 'medium' | 'low';
183
+ /** Structured resolution data (cycle paths, cluster coupling, hub degrees, orphan names). */
184
+ details?: Record<string, unknown>;
144
185
  }
145
186
  export interface DependencySuggestion {
146
187
  type: 'break-cycles' | 'reduce-coupling' | 'split-responsibilities' | 'review-orphans';
147
188
  priority: 'high' | 'medium' | 'low';
148
189
  description: string;
149
190
  implementation: string;
191
+ /** Node ids this suggestion applies to, for downstream resolution. */
192
+ affectedNodes?: string[];
150
193
  }
151
194
  export {};
152
195
  //# sourceMappingURL=DependencyGraphBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DependencyGraphBuilder.d.ts","sourceRoot":"","sources":["../../../src/analyzers/cross-language/DependencyGraphBuilder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACf,MAAM,8BAA8B,CAAC;AAEtC,MAAM,WAAW,mBAAmB;IAClC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAMD,cAAM,0BAA0B;IAC9B,SAAS,CAAC,QAAQ,EAAE,mBAAmB,EAAE,CAAM;IAC/C,SAAS,CAAC,UAAU,EAAE,cAAc,EAAE,CAAM;IAC5C,SAAS,CAAC,OAAO,EAAE,mBAAmB,CAAC;IAEvC,YAAY,OAAO,GAAE,mBAAwB,EAS5C;IAED;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,UAAU,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,cAAc,EAAE,CAY7F;IAED;;OAEG;IACH,SAAS,CAAC,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAmBjE;IAED;;OAEG;IACH,SAAS,CAAC,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAqB3E;IAED;;OAEG;IACH,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAW3E;IAED;;OAEG;IACH,SAAS,CAAC,gCAAgC,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAW9F;IAED;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,MAAM,CAkBlF;IAED;;OAEG;IACH,SAAS,CAAC,gCAAgC,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,MAAM,CAGnG;IAED;;OAEG;IACH,SAAS,CAAC,0BAA0B,CAAC,KAAK,EAAE,eAAe,GAAG;QAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,EAAE,CA2BpG;IAED;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,EAAE,CAY/D;IAED;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,KAAK,EAAE,eAAe,GAAG,cAAc,EAAE,CASpE;IAED;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,MAAM,CA2BxF;IAED;;OAEG;IACH,SAAS,CAAC,uBAAuB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,MAAM,CAQ9D;IAED;;OAEG;IACH,SAAS,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAS9C;CACF;AAMD,cAAM,+BAAgC,SAAQ,0BAA0B;IACtE;;OAEG;IACH,SAAS,CAAC,cAAc,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,EAAE,CAkB/E;IAED;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,mBAAmB,EAAE,GAAG,cAAc,EAAE,CAUvE;IAED;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAK9D;IAED;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,eAAe,EAAE,CAsC1F;IAED;;OAEG;IACH,SAAS,CAAC,gBAAgB,CACxB,KAAK,EAAE,cAAc,EAAE,EACvB,KAAK,EAAE,cAAc,EAAE,EACvB,MAAM,EAAE,eAAe,EAAE,GACxB,iBAAiB,CAcnB;IAED;;OAEG;IACH,SAAS,CAAC,qBAAqB,CAC7B,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,UAAU,EAAE,cAAc,EAAE,EAC5B,QAAQ,EAAE,MAAM,GACf,mBAAmB,EAAE,CAuBvB;IAED;;OAEG;IACH,SAAS,CAAC,sBAAsB,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,CAM9D;CACF;AAMD;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,+BAA+B;IACzE;;;;;OAKG;IACG,UAAU,CACd,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,UAAU,EAAE,cAAc,EAAE,GAC3B,OAAO,CAAC,eAAe,CAAC,CAgC1B;IAED;;;;;;;OAOG;IACG,aAAa,CACjB,eAAe,EAAE,MAAM,EAAE,EACzB,QAAQ,EAAE,mBAAmB,EAAE,EAC/B,UAAU,EAAE,cAAc,EAAE,EAC5B,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,eAAe,CAAC,CAS1B;IAED;;;;OAIG;IACG,uBAAuB,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO,CAAC;QAC7D,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,eAAe,EAAE,CAAC;QAC1B,WAAW,EAAE,oBAAoB,EAAE,CAAC;KACrC,CAAC,CA4CD;IAED,8DAA8D;IAC9D,OAAO,CAAC,WAAW;CAgBpB;AAID,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,qBAAqB,GAAG,gBAAgB,GAAG,WAAW,GAAG,gBAAgB,CAAC;IAChF,QAAQ,EAAE,UAAU,GAAG,SAAS,GAAG,YAAY,CAAC;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;CACnC;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,cAAc,GAAG,iBAAiB,GAAG,wBAAwB,GAAG,gBAAgB,CAAC;IACvF,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB"}
1
+ {"version":3,"file":"DependencyGraphBuilder.d.ts","sourceRoot":"","sources":["../../../src/analyzers/cross-language/DependencyGraphBuilder.ts"],"names":[],"mappings":"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"}