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.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +99 -0
- package/README.md +5 -5
- package/dist/analyzers/applicability.d.ts +19 -5
- package/dist/analyzers/applicability.d.ts.map +1 -1
- package/dist/analyzers/applicability.js +36 -24
- package/dist/analyzers/applicability.js.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/cross-language/APIContractAnalyzer.js +23 -2
- package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +52 -9
- package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js +228 -55
- package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.d.ts +19 -12
- package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
- package/dist/analyzers/cross-language/SchemaValidator.js +78 -111
- package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +0 -6
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +85 -73
- package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
- package/dist/analyzers/documentationAnalyzer.js +5 -5
- package/dist/analyzers/documentationAnalyzer.js.map +1 -1
- package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/invariantsAnalyzer.js +1 -0
- package/dist/analyzers/invariantsAnalyzer.js.map +1 -1
- package/dist/analyzers/provenance.d.ts +7 -9
- package/dist/analyzers/provenance.d.ts.map +1 -1
- package/dist/analyzers/provenance.js +88 -124
- package/dist/analyzers/provenance.js.map +1 -1
- package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/reactAnalyzer.js +120 -21
- package/dist/analyzers/reactAnalyzer.js.map +1 -1
- package/dist/analyzers/ruleRegistry.d.ts +35 -12
- package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
- package/dist/analyzers/ruleRegistry.js +66 -108
- package/dist/analyzers/ruleRegistry.js.map +1 -1
- package/dist/analyzers/ruleTiming.d.ts +2 -2
- package/dist/analyzers/ruleTiming.js +2 -2
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +60 -24
- package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js +5 -2
- package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +82 -71
- package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +2 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +23 -12
- package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +11 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +60 -22
- package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +5 -2
- package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -3
- package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js +258 -87
- package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/codeAnalysis.js +7 -1
- package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
- package/dist/analyzers/universal/schema/discovery.d.ts +29 -1
- package/dist/analyzers/universal/schema/discovery.d.ts.map +1 -1
- package/dist/analyzers/universal/schema/discovery.js +76 -21
- package/dist/analyzers/universal/schema/discovery.js.map +1 -1
- package/dist/analyzers/universal/schema/jsonSchema.js +7 -11
- package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
- package/dist/auditRouter.d.ts +41 -0
- package/dist/auditRouter.d.ts.map +1 -0
- package/dist/auditRouter.js +185 -0
- package/dist/auditRouter.js.map +1 -0
- package/dist/auditRunner.d.ts.map +1 -1
- package/dist/auditRunner.js +93 -84
- package/dist/auditRunner.js.map +1 -1
- package/dist/cli.js +306 -95
- package/dist/cli.js.map +1 -1
- package/dist/codeIndexDB.d.ts.map +1 -1
- package/dist/codeIndexDB.js +41 -7
- package/dist/codeIndexDB.js.map +1 -1
- package/dist/componentScanner.d.ts.map +1 -1
- package/dist/componentScanner.js +2 -1
- package/dist/componentScanner.js.map +1 -1
- package/dist/config/configLoader.d.ts +9 -0
- package/dist/config/configLoader.d.ts.map +1 -1
- package/dist/config/configLoader.js +45 -2
- package/dist/config/configLoader.js.map +1 -1
- package/dist/config/defaults.d.ts +8 -1
- package/dist/config/defaults.d.ts.map +1 -1
- package/dist/config/defaults.js +19 -3
- package/dist/config/defaults.js.map +1 -1
- package/dist/dataPaths.js +18 -1
- package/dist/dataPaths.js.map +1 -1
- package/dist/enforcement/gate.d.ts +14 -19
- package/dist/enforcement/gate.d.ts.map +1 -1
- package/dist/enforcement/gate.js +27 -45
- package/dist/enforcement/gate.js.map +1 -1
- package/dist/functionScanner.d.ts.map +1 -1
- package/dist/functionScanner.js +1 -17
- package/dist/functionScanner.js.map +1 -1
- package/dist/invariants/ruleEngine.d.ts +8 -0
- package/dist/invariants/ruleEngine.d.ts.map +1 -1
- package/dist/invariants/ruleEngine.js +35 -16
- package/dist/invariants/ruleEngine.js.map +1 -1
- package/dist/languages/LanguageOrchestrator.d.ts +9 -10
- package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
- package/dist/languages/LanguageOrchestrator.js +135 -101
- package/dist/languages/LanguageOrchestrator.js.map +1 -1
- package/dist/languages/RuntimeManager.d.ts +28 -1
- package/dist/languages/RuntimeManager.d.ts.map +1 -1
- package/dist/languages/RuntimeManager.js +158 -47
- package/dist/languages/RuntimeManager.js.map +1 -1
- package/dist/languages/go/GoAdapter.d.ts +2 -0
- package/dist/languages/go/GoAdapter.d.ts.map +1 -1
- package/dist/languages/go/GoAdapter.js +15 -22
- package/dist/languages/go/GoAdapter.js.map +1 -1
- package/dist/languages/go/analyzer +0 -0
- package/dist/languages/go/analyzer-src/analyzer.go +510 -0
- package/dist/languages/go/analyzer-src/go.mod +3 -0
- package/dist/languages/go/analyzer-src/indexer.go +268 -0
- package/dist/languages/go/analyzer-src/parser.go +461 -0
- package/dist/languages/go/analyzer-src/solid.go +395 -0
- package/dist/languages/go/analyzer-src/testconventions.go +25 -0
- package/dist/languages/go/analyzer-src/types.go +148 -0
- package/dist/languages/go/go.mod +7 -0
- package/dist/languages/go/main.go +203 -0
- package/dist/languages/testConventions.d.ts +35 -0
- package/dist/languages/testConventions.d.ts.map +1 -0
- package/dist/languages/testConventions.js +51 -0
- package/dist/languages/testConventions.js.map +1 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +3 -0
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +25 -18
- package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
- package/dist/mcp-tools/whitelistTools.d.ts +1 -1
- package/dist/mcp-tools-shared.d.ts +0 -3
- package/dist/mcp-tools-shared.d.ts.map +1 -1
- package/dist/mcp-tools-shared.js +8 -117
- package/dist/mcp-tools-shared.js.map +1 -1
- package/dist/mcp.js +3 -1
- package/dist/mcp.js.map +1 -1
- package/dist/mcpAuditJobs.d.ts.map +1 -1
- package/dist/mcpAuditJobs.js +13 -0
- package/dist/mcpAuditJobs.js.map +1 -1
- package/dist/nextFile.d.ts +21 -0
- package/dist/nextFile.d.ts.map +1 -0
- package/dist/nextFile.js +51 -0
- package/dist/nextFile.js.map +1 -0
- package/dist/nextFileIncremental.d.ts +141 -0
- package/dist/nextFileIncremental.d.ts.map +1 -0
- package/dist/nextFileIncremental.js +314 -0
- package/dist/nextFileIncremental.js.map +1 -0
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +43 -3
- package/dist/pipeline.js.map +1 -1
- package/dist/pipelineAdapters.d.ts +17 -0
- package/dist/pipelineAdapters.d.ts.map +1 -1
- package/dist/pipelineAdapters.js +791 -40
- package/dist/pipelineAdapters.js.map +1 -1
- package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
- package/dist/reporting/jsonReportGenerator.js +11 -30
- package/dist/reporting/jsonReportGenerator.js.map +1 -1
- package/dist/styles/styleExtractor.js +2 -2
- package/dist/styles/styleExtractor.js.map +1 -1
- package/dist/styles/styleIndexer.d.ts +7 -0
- package/dist/styles/styleIndexer.d.ts.map +1 -1
- package/dist/styles/styleIndexer.js +51 -67
- package/dist/styles/styleIndexer.js.map +1 -1
- package/dist/styles/types.d.ts +3 -2
- package/dist/styles/types.d.ts.map +1 -1
- package/dist/types/crossLanguage.d.ts +1 -0
- package/dist/types/crossLanguage.d.ts.map +1 -1
- package/dist/types.d.ts +43 -34
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/fileDiscovery.d.ts +9 -0
- package/dist/utils/fileDiscovery.d.ts.map +1 -1
- package/dist/utils/fileDiscovery.js +18 -0
- package/dist/utils/fileDiscovery.js.map +1 -1
- package/package.json +16 -6
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/README.md +11 -9
- package/plugin/hooks/hooks.json +4 -0
- package/plugin/scripts/hook-audit.sh +20 -30
- package/plugin/scripts/hook-common.sh +63 -0
- package/plugin/scripts/hook-self-audit.sh +99 -0
- package/plugin/skills/code-auditor/SKILL-RULE-KINDS.md +55 -9
- 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.
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
20
|
-
* exist, styles/undefined-class
|
|
21
|
-
*
|
|
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
|
-
* @
|
|
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
|
|
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
|
|
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
|
-
* @
|
|
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
|
|
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
|
|
45
|
-
*
|
|
46
|
-
* notApplicable
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
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
|
|
1
|
+
{"version":3,"file":"applicability.js","sourceRoot":"","sources":["../../src/analyzers/applicability.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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
|
-
|
|
43
|
-
|
|
44
|
-
*
|
|
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):
|
|
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
|
|
1
|
+
{"version":3,"file":"DependencyGraphBuilder.d.ts","sourceRoot":"","sources":["../../../src/analyzers/cross-language/DependencyGraphBuilder.ts"],"names":[],"mappings":"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"}
|