projscan 3.8.0 → 4.0.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/README.md CHANGED
@@ -9,9 +9,9 @@
9
9
 
10
10
  **Agent-first code intelligence.** An MCP server that lets AI coding agents (Claude Code, Codex, Cursor, Gemini, Windsurf, Cline, Continue, Zed — any MCP-aware client) query your codebase — with a CLI for humans and a local plugin layer for team-specific policy and reporting.
11
11
 
12
- [AI Agent Quick Start](#ai-agent-integration-mcp) · [CLI Quick Start](#quick-start) · [Commands](#commands) · [Full Guide](https://github.com/abhiyoheswaran1/projscan/blob/v3.8.0/docs/GUIDE.md) · [Roadmap](https://github.com/abhiyoheswaran1/projscan/blob/v3.8.0/docs/ROADMAP.md)
12
+ [AI Agent Quick Start](#ai-agent-integration-mcp) · [CLI Quick Start](#quick-start) · [Commands](#commands) · [Full Guide](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/GUIDE.md) · [Roadmap](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/ROADMAP.md)
13
13
 
14
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/projscan-reporter-plugin.png" alt="projscan reporter plugin running in a macOS-style terminal window with a team health summary" width="700">
14
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/projscan-reporter-plugin.png" alt="projscan reporter plugin running in a macOS-style terminal window with a team health summary" width="700">
15
15
 
16
16
  </div>
17
17
 
@@ -33,7 +33,7 @@ The local plugin platform lets teams add project-specific findings and render `d
33
33
  npx projscan
34
34
  ```
35
35
 
36
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/projscan-reporter-plugin.gif" alt="projscan doctor rendered through a local reporter plugin in a macOS-style terminal window" width="700">
36
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/projscan-reporter-plugin.gif" alt="projscan doctor rendered through a local reporter plugin in a macOS-style terminal window" width="700">
37
37
 
38
38
  Run `projscan doctor` for a focused health check:
39
39
 
@@ -41,7 +41,7 @@ Run `projscan doctor` for a focused health check:
41
41
  npx projscan doctor
42
42
  ```
43
43
 
44
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/npx%20projscan%20doctor.gif" alt="npx projscan doctor" width="700">
44
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20doctor.gif" alt="npx projscan doctor" width="700">
45
45
 
46
46
  ## Install
47
47
 
@@ -94,9 +94,9 @@ npm run test:trust-smoke
94
94
 
95
95
  The full command catalog is below. Most users should start with the five-command path above instead of scanning the catalog.
96
96
 
97
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/npx%20projscan%20--help.gif" alt="npx projscan --help" width="700">
97
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20--help.gif" alt="npx projscan --help" width="700">
98
98
 
99
- For a comprehensive walkthrough, see the **[Full Guide](https://github.com/abhiyoheswaran1/projscan/blob/v3.8.0/docs/GUIDE.md)**.
99
+ For a comprehensive walkthrough, see the **[Full Guide](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/GUIDE.md)**.
100
100
 
101
101
  ## Repo Understanding
102
102
 
@@ -149,7 +149,6 @@ The report includes file/symbol-backed `claims`, `readFirst` files, entrypoints,
149
149
  | `projscan fix` | Auto-fix issues (ESLint, Prettier, Vitest, .editorconfig) |
150
150
  | `projscan ci` | CI health gate - SARIF output, `--changed-only` PR-diff mode, exits 1 if score below threshold |
151
151
  | `projscan diff` | Compare current health **and hotspot trends** against a baseline |
152
- | `projscan explain <file>` | Explain a file's purpose, imports, exports, and issues |
153
152
  | `projscan diagram` | ASCII architecture diagram of your project |
154
153
  | `projscan structure` | Directory tree with file counts |
155
154
  | `projscan dependencies` | Dependency analysis - counts, risks, recommendations |
@@ -177,31 +176,25 @@ projscan --help
177
176
  <details>
178
177
  <summary><strong>projscan structure</strong> - Directory tree with file counts</summary>
179
178
 
180
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/npx%20projscan%20structure.gif" alt="npx projscan structure" width="700">
179
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20structure.gif" alt="npx projscan structure" width="700">
181
180
  </details>
182
181
 
183
182
  <details>
184
183
  <summary><strong>projscan diagram</strong> - Architecture visualization</summary>
185
184
 
186
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/npx%20projscan%20diagram.gif" alt="npx projscan diagram" width="700">
185
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20diagram.gif" alt="npx projscan diagram" width="700">
187
186
  </details>
188
187
 
189
188
  <details>
190
189
  <summary><strong>projscan dependencies</strong> - Dependency analysis</summary>
191
190
 
192
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/npx%20projscan%20dependencies.gif" alt="npx projscan dependencies" width="700">
193
- </details>
194
-
195
- <details>
196
- <summary><strong>projscan explain</strong> - File explanation</summary>
197
-
198
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/npx%20projscan%20explain.gif" alt="npx projscan explain" width="700">
191
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20dependencies.gif" alt="npx projscan dependencies" width="700">
199
192
  </details>
200
193
 
201
194
  <details>
202
195
  <summary><strong>projscan badge</strong> - Health badge generation</summary>
203
196
 
204
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/npx%20projscan%20badge.gif" alt="npx projscan badge" width="700">
197
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20badge.gif" alt="npx projscan badge" width="700">
205
198
  </details>
206
199
 
207
200
  ### Output Formats
@@ -223,7 +216,7 @@ Run `projscan help` for the generated command-by-command support matrix.
223
216
 
224
217
  projscan can load local plugins from `.projscan-plugins/` when `PROJSCAN_PLUGINS_PREVIEW=1` is set. The environment flag is kept for explicit local-code opt-in. Analyzer plugins emit normal projscan issues; reporter plugins render supported CLI commands with team-specific output.
225
218
 
226
- **2.0 upgrade notes:** migrating from 1.x or authoring plugins? Start with the [2.0 Migration Guide](https://github.com/abhiyoheswaran1/projscan/blob/v3.8.0/docs/2.0-MIGRATION.md), then use [Plugin Authoring](https://github.com/abhiyoheswaran1/projscan/blob/v3.8.0/docs/PLUGIN-AUTHORING.md), the [Plugin Gallery](https://github.com/abhiyoheswaran1/projscan/blob/v3.8.0/docs/PLUGIN-GALLERY.md), and the [manifest schema](https://github.com/abhiyoheswaran1/projscan/blob/v3.8.0/docs/plugin.schema.json) as the stable contract.
219
+ **2.0 upgrade notes:** migrating from 1.x or authoring plugins? Start with the [2.0 Migration Guide](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/2.0-MIGRATION.md), then use [Plugin Authoring](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/PLUGIN-AUTHORING.md), the [Plugin Gallery](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/PLUGIN-GALLERY.md), and the [manifest schema](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/plugin.schema.json) as the stable contract.
227
220
 
228
221
  ```bash
229
222
  projscan plugin list
@@ -234,9 +227,9 @@ PROJSCAN_PLUGINS_PREVIEW=1 projscan doctor --reporter team-radar
234
227
  PROJSCAN_PLUGINS_PREVIEW=1 projscan ci --reporter team-radar --min-score 80
235
228
  ```
236
229
 
237
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/projscan-reporter-plugin.gif" alt="projscan local reporter plugin rendering a team health report" width="700">
230
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/projscan-reporter-plugin.gif" alt="projscan local reporter plugin rendering a team health report" width="700">
238
231
 
239
- Reporter plugins are intentionally CLI-only. MCP tools keep returning structured JSON-compatible payloads so agents can reason over stable data, while humans can get a polished local report for their team. Custom presentation, team-branded summaries, and white-label reports belong in reporter plugins rather than new core HTML theming flags. See [Plugin Authoring](https://github.com/abhiyoheswaran1/projscan/blob/v3.8.0/docs/PLUGIN-AUTHORING.md) for manifest shape, `render(context)`, validation, and the trust model.
232
+ Reporter plugins are intentionally CLI-only. MCP tools keep returning structured JSON-compatible payloads so agents can reason over stable data, while humans can get a polished local report for their team. Custom presentation, team-branded summaries, and white-label reports belong in reporter plugins rather than new core HTML theming flags. See [Plugin Authoring](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/PLUGIN-AUTHORING.md) for manifest shape, `render(context)`, validation, and the trust model.
240
233
 
241
234
  ### Options
242
235
 
@@ -291,7 +284,7 @@ Python repos now get the same treatment JS/TS has had since 0.6:
291
284
  - **Python-aware analyzers.** Missing pytest / ruff / black config. Deprecated packages (nose, simplejson, pycrypto). Unused `pyproject.toml` / `requirements.txt` deps. Missing lockfile.
292
285
  - **Code search.** BM25 and semantic modes work on `.py` files out of the box.
293
286
  - **Hotspots + dead code.** Same scoring as JS/TS, with `__init__.py` and pytest test-file conventions understood.
294
- - **MCP tools work unchanged.** `projscan_graph`, `projscan_search`, `projscan_doctor`, `projscan_hotspots`, etc. all accept Python projects. Agents can ask "which files import `pkg.core`?" and get an answer in milliseconds.
287
+ - **MCP tools work unchanged.** `projscan_semantic_graph`, `projscan_search`, `projscan_doctor`, `projscan_hotspots`, etc. all accept Python projects. Agents can ask "which files import `pkg.core`?" and get an answer in milliseconds.
295
288
 
296
289
  `projscan_upgrade` remains Node-only for now - a Python equivalent (reading pip / poetry metadata) is on the roadmap.
297
290
 
@@ -401,7 +394,7 @@ If you read projscan's [Socket report](https://socket.dev/npm/package/projscan),
401
394
  ### Audit it yourself
402
395
 
403
396
  - **Source is open** at [github.com/abhiyoheswaran1/projscan](https://github.com/abhiyoheswaran1/projscan). The npm tarball matches the `dist/` produced by `npm run build` at the matching tag.
404
- - **Public API surface is locked** by `scripts/check-stability.mjs`, which runs in CI on every PR and fails on any rename or removal of an MCP tool, CLI command, or exit code. See [`docs/STABILITY.md`](https://github.com/abhiyoheswaran1/projscan/blob/v3.8.0/docs/STABILITY.md).
397
+ - **Public API surface is locked** by `scripts/check-stability.mjs`, which runs in CI on every PR and fails on any rename or removal of an MCP tool, CLI command, or exit code. See [`docs/STABILITY.md`](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/STABILITY.md).
405
398
  - **Run it offline:** `npm install -g projscan` followed by anything except `audit` and `--mode semantic` works without network.
406
399
  - **Drop privilege further:** in CI, run projscan in a sandbox that disallows network egress; everything except `audit` will pass.
407
400
 
@@ -452,7 +445,7 @@ projscan ci --changed-only # Gate only on this PR's diff
452
445
  projscan ci --format sarif > projscan.sarif # SARIF for Code Scanning
453
446
  ```
454
447
 
455
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/npx%20projscan%20ci%20--min-score%2070.gif" alt="npx projscan ci --min-score 70" width="700">
448
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20ci%20--min-score%2070.gif" alt="npx projscan ci --min-score 70" width="700">
456
449
 
457
450
  ### GitHub Action (recommended)
458
451
 
@@ -529,7 +522,7 @@ Fields:
529
522
  - `hotspots.limit` / `hotspots.since` - defaults for the `hotspots` command
530
523
  - `monorepo.importPolicy` - cross-package import allow/deny rules in monorepos *(0.14+)*
531
524
 
532
- See [`docs/GUIDE.md` → Configuration](https://github.com/abhiyoheswaran1/projscan/blob/v3.8.0/docs/GUIDE.md#configuration-projscanrc) for the full reference (field types, validation behavior, embedding config in `package.json`, monorepo `importPolicy` semantics).
525
+ See [`docs/GUIDE.md` → Configuration](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/GUIDE.md#configuration-projscanrc) for the full reference (field types, validation behavior, embedding config in `package.json`, monorepo `importPolicy` semantics).
533
526
 
534
527
  ## Tracking Health Over Time
535
528
 
@@ -542,7 +535,7 @@ projscan diff # Compare against baseline
542
535
  projscan diff --format markdown # Markdown diff for PRs
543
536
  ```
544
537
 
545
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/npx%20projscan%20diff%20--save-baseline.gif" alt="npx projscan diff --save-baseline" width="700">
538
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/npx%20projscan%20diff%20--save-baseline.gif" alt="npx projscan diff --save-baseline" width="700">
546
539
 
547
540
  ## Hotspots - Where to Fix First
548
541
 
@@ -631,7 +624,7 @@ Coverage is also automatically joined into `projscan hotspots` when one of those
631
624
 
632
625
  **This is the primary way to use projscan.** `projscan mcp` starts an [MCP](https://modelcontextprotocol.io) server over stdio so AI coding agents can query your codebase with real structural accuracy - not regex, not grep.
633
626
 
634
- <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v3.8.0/docs/projscan-agent-demo.gif" alt="projscan answering two agent questions: what breaks if I rename buildCodeGraph (impact analysis with definitions, direct callers, transitive reach), and where should I fix first (ranked hotspots with cyclomatic complexity)" width="700">
627
+ <img src="https://raw.githubusercontent.com/abhiyoheswaran1/projscan/v4.0.0/docs/projscan-agent-demo.gif" alt="projscan answering two agent questions: what breaks if I rename buildCodeGraph (impact analysis with definitions, direct callers, transitive reach), and where should I fix first (ranked hotspots with cyclomatic complexity)" width="700">
635
628
 
636
629
  Two questions an agent asks; structural answers in milliseconds. *"What breaks if I rename `buildCodeGraph`?"* → 31 direct callers, 97 files reachable. *"Where should I fix first?"* → ranked hotspots with AST cyclomatic complexity, churn, and ownership signals.
637
630
 
@@ -653,7 +646,7 @@ command = "npx"
653
646
  args = ["-y", "projscan", "mcp"]
654
647
  ```
655
648
 
656
- Restart `codex` and the tool surface (`projscan_graph`, `projscan_review`, …) appears alongside Codex's built-ins.
649
+ Restart `codex` and the tool surface (`projscan_semantic_graph`, `projscan_review`, …) appears alongside Codex's built-ins.
657
650
 
658
651
  ### Gemini CLI (Google)
659
652
 
@@ -758,7 +751,7 @@ Capability is advertised under `experimental.fileChanged` on `initialize` so cli
758
751
 
759
752
  ### What agents can ask
760
753
 
761
- - *"Who imports `src/auth/jwt.ts`?"* → `projscan_graph { file, direction: "importers" }`
754
+ - *"Who imports `src/auth/jwt.ts`?"* → `projscan_semantic_graph { query: { direction: "importers", file: "src/auth/jwt.ts" } }`
762
755
  - *"Give me the whole agent-safe graph contract."* → `projscan_semantic_graph`
763
756
  - *"Did this wrapper connect a source reader to a dangerous sink?"* → `projscan_dataflow`
764
757
  - *"Where is `runAudit` defined?"* → `projscan_search { query: "runAudit", scope: "symbols" }`
@@ -777,13 +770,12 @@ Capability is advertised under `experimental.fileChanged` on `initialize` so cli
777
770
  - *"How do I plan the next six product lines?"* → `projscan_release_train`
778
771
  - *"How do I wire projscan into this MCP client?"* → `projscan_adoption { action: "mcp_config", client: "codex" }`
779
772
 
780
- ### The 47 MCP tools
773
+ ### The 45 MCP tools
781
774
 
782
775
  **Structural (0.6.0 / 0.11 / 0.13 / 0.14 / 0.15 - agent-native):**
783
776
  - **`projscan_start`** *(3.0.4)* - first-60-seconds repo orientation. Composes setup diagnostics, `firstTenMinutes`, workflow recipes, workplan, quality scorecard, top risks, adoption gaps, next commands, and optional handoff payload.
784
777
  - **`projscan_understand`** *(3.4)* - cited repo-comprehension report with `map`, `flow`, `contracts`, `change`, and `verify` views, read-first files, unknowns, change readiness, verification tiers, and exact next commands.
785
- - **`projscan_graph`** - query the AST-based code graph. Directions: `imports`, `exports`, `importers`, `symbol_defs`, `package_importers`. Millisecond responses on a warm cache.
786
- - **`projscan_semantic_graph`** *(3.0)* - stable v3 semantic graph contract with file, function, package, and symbol nodes plus `defines`, `imports`, `imports_package`, `exports`, and `calls` edges.
778
+ - **`projscan_semantic_graph`** *(3.0; query mode 4.0)* - the code graph, two ways. With no `query`: the stable v3 semantic graph contract (file, function, package, and symbol nodes plus `defines`, `imports`, `imports_package`, `exports`, and `calls` edges). With `query: { direction, file?, symbol? }`: one cheap targeted lookup — `imports`, `exports`, `importers`, `symbol_defs`, `package_importers` with millisecond responses on a warm cache. (Subsumes the former `projscan_graph`, removed in 4.0.)
787
779
  - **`projscan_dataflow`** *(3.0)* - focused direct, propagated, and bridge source-to-sink dataflow risks. Next.js and Express request sources are framework-aware, DB/write sinks are receiver-sensitive, and defaults suppress test-file paths, broad readFile/writeFile noise, JavaScript RegExp.exec false positives, and generated-code anxiety; opt into broader scans with `include_tests` / `include_broad_file_io` / `include_generated` or the matching CLI flags.
788
780
  - **`projscan_search`** - fast search across `symbols` (exported names), `files` (path substring), or `content` (source substring with line + excerpt). Sub-file mode (`sub_file: true`) embeds per-function for sharper semantic results *(0.15)*.
789
781
  - **`projscan_coupling`** *(0.11)* - per-file fan-in / fan-out / instability + circular-import cycles (Tarjan SCC). Filter by `direction: cycles_only | high_fan_in | high_fan_out`.
@@ -811,8 +803,7 @@ Capability is advertised under `experimental.fileChanged` on `initialize` so cli
811
803
  - `projscan_analyze` - full project report
812
804
  - `projscan_doctor` - health score + issues (now includes `cycle-detected-N` for circular imports as of 0.13)
813
805
  - `projscan_hotspots` - risk-ranked files (churn × **AST cyclomatic complexity** × issues × ownership × coverage; falls back to LOC for non-AST languages). Pass `view: "functions"` *(0.13)* for top-N risky individual functions.
814
- - `projscan_file` - per-file risk + ownership + related issues + CC + fan-in/fan-out + per-function CC table *(0.13)*
815
- - `projscan_explain` - per-file purpose, imports, exports, smells
806
+ - `projscan_file` - per-file purpose, imports, exports, smells + risk + ownership + related issues + CC + fan-in/fan-out + per-function CC table *(0.13)*
816
807
  - `projscan_structure` - directory tree
817
808
  - `projscan_coverage` - scariest untested files (coverage × hotspots)
818
809
 
@@ -836,7 +827,7 @@ Capability is advertised under `experimental.fileChanged` on `initialize` so cli
836
827
  - **`projscan_apply_fix`** *(1.6)* - mechanically execute the safe fix templates. Default is dry-run; pass `confirm: true` to write. Atomic writes, per-apply rollback record at `.projscan-cache/rollbacks/<id>.json`. Reverse with `action: "rollback", rollback_id: ...`. Six templates supported at this release: `unused-dependency-*`, `missing-test-framework`, `missing-eslint`, `missing-prettier`, `missing-editorconfig`, `missing-readme`.
837
828
  - **`projscan_taint`** *(1.6)* - source-to-sink reachability over the per-function call graph. Built-in defaults cover common JS / Python sources (`process.env`, `req.body`, etc.) and sinks (`exec`, `eval`, `db.query`, etc.). Project-specific names go in `.projscanrc.json` `taint`. `projscan_review` automatically diffs taint flows between base and head and **blocks any PR that introduces a new flow**. In 3.0.2, review surfaces hardened `newDataflowRisks`, compact `graphEvidence`, and graph-readiness gates for safer handoff.
838
829
 
839
- Analyzer plugins can optionally read graph/dataflow context through `check(rootPath, files, context)` while staying on manifest schema v1. The packaged `graph-context` example shows `context.getSemanticGraph()` and `context.getDataflow()` in a real analyzer. For analyzer and reporter plugin authoring, manifest validation, `--reporter <name>`, and the trust model, see [Plugin Authoring](https://github.com/abhiyoheswaran1/projscan/blob/v3.8.0/docs/PLUGIN-AUTHORING.md).
830
+ Analyzer plugins can optionally read graph/dataflow context through `check(rootPath, files, context)` while staying on manifest schema v1. The packaged `graph-context` example shows `context.getSemanticGraph()` and `context.getDataflow()` in a real analyzer. For analyzer and reporter plugin authoring, manifest validation, `--reporter <name>`, and the trust model, see [Plugin Authoring](https://github.com/abhiyoheswaran1/projscan/blob/v4.0.0/docs/PLUGIN-AUTHORING.md).
840
831
 
841
832
  ### Context-window budgeting
842
833
 
package/dist/cli/index.js CHANGED
@@ -6,7 +6,6 @@ import { registerCi } from './commands/ci.js';
6
6
  import { registerDiff } from './commands/diff.js';
7
7
  import { registerFix } from './commands/fix.js';
8
8
  import { registerFile } from './commands/file.js';
9
- import { registerExplain } from './commands/explain.js';
10
9
  import { registerDiagram } from './commands/diagram.js';
11
10
  import { registerStructure } from './commands/structure.js';
12
11
  import { registerDependencies } from './commands/dependencies.js';
@@ -64,7 +63,6 @@ registerCi();
64
63
  registerDiff();
65
64
  registerFix();
66
65
  registerFile();
67
- registerExplain();
68
66
  registerDiagram();
69
67
  registerStructure();
70
68
  registerDependencies();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
@@ -86,7 +86,7 @@ const TEMPLATES = [
86
86
  why: 'High dependency counts compound supply-chain risk and slow installs. Beyond ~50 prod deps, projects rarely need every one - some are dead, some are duplicates, some have native replacements.',
87
87
  where: [{ file: 'package.json' }],
88
88
  instruction: 'Run `projscan_dependencies` to see the full list, then `projscan_outdated` and `projscan_audit` for surface area. ' +
89
- 'For each dep that looks suspicious, run `projscan_graph { direction: "package_importers", target: "<name>" }` to see what (if anything) actually uses it. ' +
89
+ 'For each dep that looks suspicious, run `projscan_semantic_graph { query: { direction: "package_importers", symbol: "<name>" } }` to see what (if anything) actually uses it. ' +
90
90
  'Drop the ones with zero importers; consider native replacements for shimming-shaped deps (e.g. `lodash/get` → optional chaining).',
91
91
  }),
92
92
  },
@@ -102,7 +102,7 @@ const TEMPLATES = [
102
102
  headline: i.title,
103
103
  why: i.description,
104
104
  where: i.locations ?? [{ file: 'package.json' }],
105
- instruction: `Audit "${name}": call \`projscan_graph { direction: "package_importers", target: "${name}" }\` to see who imports it. ` +
105
+ instruction: `Audit "${name}": call \`projscan_semantic_graph { query: { direction: "package_importers", symbol: "${name}" } }\` to see who imports it. ` +
106
106
  `If it can be replaced with a lighter/native alternative, plan that migration; if it must stay, pin to an exact version (drop the \`^\` / \`>=\`) and document the choice.`,
107
107
  };
108
108
  },
@@ -151,7 +151,7 @@ const TEMPLATES = [
151
151
  headline: i.title,
152
152
  why: 'Catch-all directories (utils/helpers/lib/shared) are the project graveyard. Every file under one is implicitly "miscellaneous", which means changes touching it also rarely have a clear owner.',
153
153
  where: i.locations ?? [],
154
- instruction: 'Group the files under the flagged directory by domain (e.g. `auth/`, `format/`, `validation/`) using `projscan_graph` to see which symbols are imported together. ' +
154
+ instruction: 'Group the files under the flagged directory by domain (e.g. `auth/`, `format/`, `validation/`) using `projscan_semantic_graph` to see which symbols are imported together. ' +
155
155
  'Move them into domain-named subdirectories. Update imports - your editor\'s rename-and-update should handle the bulk; finish with a `projscan analyze` to verify no leftover imports broke.',
156
156
  }),
157
157
  },
@@ -165,7 +165,7 @@ const TEMPLATES = [
165
165
  why: "An export with zero importers either (a) was orphaned by a refactor and is genuinely dead, or (b) is part of the project's public API and projscan can't see who consumes it. " +
166
166
  'Either case deserves resolution: cleanup or an explicit "public" annotation.',
167
167
  where: i.locations ?? [],
168
- instruction: 'For each flagged file: confirm with `projscan_graph { direction: "importers", target: "<file>" }`. ' +
168
+ instruction: 'For each flagged file: confirm with `projscan_semantic_graph { query: { direction: "importers", file: "<file>" } }`. ' +
169
169
  'If the result is genuinely empty AND this isn\'t package.json#main / #exports, delete the file (or just the unused exports). ' +
170
170
  'If it IS public surface (entry point, re-exported), add it to package.json#exports or list the file in .projscanrc `disableRules: ["dead-code"]`.',
171
171
  }),
@@ -497,7 +497,7 @@ function staticHeadlineFor(issue) {
497
497
  if (issue.id.startsWith('large-') && issue.id.endsWith('-dir'))
498
498
  return 'Split the directory by domain.';
499
499
  if (issue.id === 'dead-code' || issue.id.startsWith('dead-code-'))
500
- return 'Confirm with `projscan_graph importers` then delete or expose.';
500
+ return 'Confirm with `projscan_semantic_graph { query: { direction: "importers", file: "<file>" } }` then delete or expose.';
501
501
  if (issue.id === 'missing-test-framework' || issue.id === 'missing-python-test-framework')
502
502
  return issue.id.includes('python') ? 'Install pytest + write one smoke test.' : 'Install vitest + write one smoke test.';
503
503
  if (issue.id === 'no-test-files' || issue.id === 'no-python-test-files')
@@ -1 +1 @@
1
- {"version":3,"file":"fixSuggest.js","sourceRoot":"","sources":["../../src/core/fixSuggest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fixSuggest.js","sourceRoot":"","sources":["../../src/core/fixSuggest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Targeted code-graph queries (4.0 consolidation).
3
+ *
4
+ * Extracted from the (removed) `projscan_graph` tool so the capability lives in
5
+ * one tested place and folds into `projscan_semantic_graph` — which previously
6
+ * only dumped the whole graph. This is what makes semantic_graph a true
7
+ * superset of the old graph tool: it answers the same targeted "who imports X",
8
+ * "what does X export", "where is symbol S defined" questions without serializing
9
+ * the entire graph.
10
+ */
11
+ import { type CodeGraph } from './codeGraph.js';
12
+ export type GraphQueryDirection = 'imports' | 'exports' | 'importers' | 'symbol_defs' | 'package_importers';
13
+ export interface GraphQueryInput {
14
+ direction: GraphQueryDirection;
15
+ /** Repo-relative file path (for imports/exports/importers). */
16
+ file?: string;
17
+ /** Symbol or package name (for symbol_defs/package_importers). */
18
+ symbol?: string;
19
+ /** Max entries returned (1–500, default 50). */
20
+ limit?: number;
21
+ }
22
+ /** Run one targeted query against a built code graph. Throws on missing args. */
23
+ export declare function runGraphQuery(graph: CodeGraph, input: GraphQueryInput): Record<string, unknown>;
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Targeted code-graph queries (4.0 consolidation).
3
+ *
4
+ * Extracted from the (removed) `projscan_graph` tool so the capability lives in
5
+ * one tested place and folds into `projscan_semantic_graph` — which previously
6
+ * only dumped the whole graph. This is what makes semantic_graph a true
7
+ * superset of the old graph tool: it answers the same targeted "who imports X",
8
+ * "what does X export", "where is symbol S defined" questions without serializing
9
+ * the entire graph.
10
+ */
11
+ import { filesImportingFile, filesImportingPackage, filesDefiningSymbol, exportsOf, importsOf, } from './codeGraph.js';
12
+ const DEFAULT_LIMIT = 50;
13
+ /** Run one targeted query against a built code graph. Throws on missing args. */
14
+ export function runGraphQuery(graph, input) {
15
+ const { direction, file, symbol } = input;
16
+ const limit = Math.max(1, Math.min(500, typeof input.limit === 'number' ? input.limit : DEFAULT_LIMIT));
17
+ switch (direction) {
18
+ case 'imports': {
19
+ if (!file)
20
+ throw new Error('direction=imports requires a `file` argument (repo-relative path, e.g. "src/auth.ts").');
21
+ return { file, imports: importsOf(graph, file).slice(0, limit) };
22
+ }
23
+ case 'exports': {
24
+ if (!file)
25
+ throw new Error('direction=exports requires a `file` argument (repo-relative path).');
26
+ return { file, exports: exportsOf(graph, file).slice(0, limit) };
27
+ }
28
+ case 'importers': {
29
+ if (!file)
30
+ throw new Error('direction=importers requires a `file` argument (repo-relative path).');
31
+ return { file, importers: filesImportingFile(graph, file).slice(0, limit) };
32
+ }
33
+ case 'symbol_defs': {
34
+ if (!symbol)
35
+ throw new Error('direction=symbol_defs requires a `symbol` argument (the exported name, e.g. "authenticate").');
36
+ return { symbol, definedIn: filesDefiningSymbol(graph, symbol).slice(0, limit) };
37
+ }
38
+ case 'package_importers': {
39
+ const pkg = symbol ?? file;
40
+ if (!pkg)
41
+ throw new Error('direction=package_importers requires a `symbol` (or `file`) arg (the npm package name, e.g. "chalk").');
42
+ return { package: pkg, importers: filesImportingPackage(graph, pkg).slice(0, limit) };
43
+ }
44
+ default:
45
+ throw new Error(`unknown direction "${String(direction)}". Valid: imports, exports, importers, symbol_defs, package_importers.`);
46
+ }
47
+ }
48
+ //# sourceMappingURL=graphQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphQuery.js","sourceRoot":"","sources":["../../src/core/graphQuery.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,mBAAmB,EACnB,SAAS,EACT,SAAS,GAEV,MAAM,gBAAgB,CAAC;AAmBxB,MAAM,aAAa,GAAG,EAAE,CAAC;AAEzB,iFAAiF;AACjF,MAAM,UAAU,aAAa,CAAC,KAAgB,EAAE,KAAsB;IACpE,MAAM,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;IAExG,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;YACrH,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACnE,CAAC;QACD,KAAK,SAAS,CAAC,CAAC,CAAC;YACf,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAC;YACjG,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACnE,CAAC;QACD,KAAK,WAAW,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;YACnG,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAC9E,CAAC;QACD,KAAK,aAAa,CAAC,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM;gBAAE,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;YAC7H,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,mBAAmB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACnF,CAAC;QACD,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,GAAG,GAAG,MAAM,IAAI,IAAI,CAAC;YAC3B,IAAI,CAAC,GAAG;gBAAE,MAAM,IAAI,KAAK,CAAC,uGAAuG,CAAC,CAAC;YACnI,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,qBAAqB,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QACxF,CAAC;QACD;YACE,MAAM,IAAI,KAAK,CAAC,sBAAsB,MAAM,CAAC,SAAS,CAAC,wEAAwE,CAAC,CAAC;IACrI,CAAC;AACH,CAAC"}
@@ -347,12 +347,10 @@ const STATIC_EXPECTED_TOKENS = {
347
347
  projscan_audit: 1500,
348
348
  projscan_upgrade: 1000,
349
349
  projscan_search: 2500,
350
- projscan_graph: 4500,
351
350
  projscan_semantic_graph: 6000,
352
351
  projscan_dataflow: 3500,
353
352
  projscan_structure: 3000,
354
353
  projscan_analyze: 3500,
355
- projscan_explain: 1500,
356
354
  projscan_explain_issue: 800,
357
355
  projscan_fix_suggest: 800,
358
356
  projscan_apply_fix: 1500,
@@ -1 +1 @@
1
- {"version":3,"file":"costSummary.js","sourceRoot":"","sources":["../../../src/mcp/tools/costSummary.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"costSummary.js","sourceRoot":"","sources":["../../../src/mcp/tools/costSummary.ts"],"names":[],"mappings":"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"}
@@ -1,20 +1,36 @@
1
1
  import { scanRepository } from '../../core/repositoryScanner.js';
2
2
  import { buildCodeGraph } from '../../core/codeGraph.js';
3
3
  import { buildSemanticGraph } from '../../core/semanticGraph.js';
4
+ import { runGraphQuery } from '../../core/graphQuery.js';
4
5
  import { loadCachedGraph, saveCachedGraph } from '../../core/indexCache.js';
5
6
  export const semanticGraphTool = {
6
7
  name: 'projscan_semantic_graph',
7
- description: 'Return the stable v3 semantic graph: file/function/package/symbol nodes plus imports, exports, defines, and calls edges. Use when an agent needs one normalized graph contract instead of several targeted graph queries.',
8
+ description: 'The code graph, two ways. With no `query`: returns the stable v3 semantic graph (file/function/package/symbol nodes plus imports, exports, defines, and calls edges). With `query`: answers one cheap, targeted question instead of serializing the whole graph — who imports a file, what a file imports/exports, where a symbol is defined, or which files import a package. (The targeted mode subsumes the former projscan_graph tool, removed in 4.0.)',
8
9
  inputSchema: {
9
10
  type: 'object',
10
11
  properties: {
12
+ query: {
13
+ type: 'object',
14
+ description: 'Optional. Ask one targeted question instead of returning the whole graph.',
15
+ properties: {
16
+ direction: {
17
+ type: 'string',
18
+ enum: ['imports', 'exports', 'importers', 'symbol_defs', 'package_importers'],
19
+ description: '"imports" (what the file imports), "exports" (what the file exports), "importers" (who imports the file), "symbol_defs" (files defining the symbol), "package_importers" (files importing a package by name).',
20
+ },
21
+ file: { type: 'string', description: 'Repo-relative file path (for imports/exports/importers).' },
22
+ symbol: { type: 'string', description: 'Symbol or package name (for symbol_defs/package_importers).' },
23
+ limit: { type: 'number', description: 'Max entries returned (default 50, max 500).' },
24
+ },
25
+ required: ['direction'],
26
+ },
11
27
  max_nodes: {
12
28
  type: 'number',
13
- description: 'Maximum graph nodes to return. Default 10000.',
29
+ description: 'Full-graph mode only. Maximum graph nodes to return. Default 10000.',
14
30
  },
15
31
  max_edges: {
16
32
  type: 'number',
17
- description: 'Maximum graph edges to return. Default 25000.',
33
+ description: 'Full-graph mode only. Maximum graph edges to return. Default 25000.',
18
34
  },
19
35
  max_tokens: {
20
36
  type: 'number',
@@ -27,6 +43,15 @@ export const semanticGraphTool = {
27
43
  const cached = await loadCachedGraph(rootPath);
28
44
  const graph = await buildCodeGraph(rootPath, scan.files, cached);
29
45
  await saveCachedGraph(rootPath, graph);
46
+ const query = args.query;
47
+ if (query && typeof query.direction === 'string') {
48
+ return runGraphQuery(graph, {
49
+ direction: query.direction,
50
+ file: typeof query.file === 'string' ? query.file : undefined,
51
+ symbol: typeof query.symbol === 'string' ? query.symbol : undefined,
52
+ limit: typeof query.limit === 'number' ? query.limit : undefined,
53
+ });
54
+ }
30
55
  return buildSemanticGraph(graph, {
31
56
  maxNodes: typeof args.max_nodes === 'number' && Number.isFinite(args.max_nodes)
32
57
  ? args.max_nodes
@@ -1 +1 @@
1
- {"version":3,"file":"semanticGraph.js","sourceRoot":"","sources":["../../../src/mcp/tools/semanticGraph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAG5E,MAAM,CAAC,MAAM,iBAAiB,GAAY;IACxC,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACT,2NAA2N;IAC7N,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+CAA+C;aAC7D;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+CAA+C;aAC7D;YACD,UAAU,EAAE;gBACV,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,+CAA+C;aAC7D;SACF;KACF;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,MAAM,cAAc,CAAC,QAAQ,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAC;QAC/C,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACjE,MAAM,eAAe,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACvC,OAAO,kBAAkB,CAAC,KAAK,EAAE;YAC/B,QAAQ,EACN,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;gBACnE,CAAC,CAAC,IAAI,CAAC,SAAS;gBAChB,CAAC,CAAC,SAAS;YACf,QAAQ,EACN,OAAO,IAAI,CAAC,SAAS,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;gBACnE,CAAC,CAAC,IAAI,CAAC,SAAS;gBAChB,CAAC,CAAC,SAAS;SAChB,CAAC,CAAC;IACL,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"semanticGraph.js","sourceRoot":"","sources":["../../../src/mcp/tools/semanticGraph.ts"],"names":[],"mappings":"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"}
package/dist/mcp/tools.js CHANGED
@@ -11,7 +11,6 @@
11
11
  import { analyzeTool } from './tools/analyze.js';
12
12
  import { doctorTool } from './tools/doctor.js';
13
13
  import { hotspotsTool } from './tools/hotspots.js';
14
- import { explainTool } from './tools/explain.js';
15
14
  import { fileTool } from './tools/file.js';
16
15
  import { structureTool } from './tools/structure.js';
17
16
  import { dependenciesTool } from './tools/dependencies.js';
@@ -19,7 +18,6 @@ import { outdatedTool } from './tools/outdated.js';
19
18
  import { auditTool } from './tools/audit.js';
20
19
  import { upgradeTool } from './tools/upgrade.js';
21
20
  import { coverageTool } from './tools/coverage.js';
22
- import { graphTool } from './tools/graph.js';
23
21
  import { semanticGraphTool } from './tools/semanticGraph.js';
24
22
  import { couplingTool } from './tools/coupling.js';
25
23
  import { workspacesTool } from './tools/workspaces.js';
@@ -60,7 +58,6 @@ const tools = [
60
58
  analyzeTool,
61
59
  doctorTool,
62
60
  hotspotsTool,
63
- explainTool,
64
61
  fileTool,
65
62
  structureTool,
66
63
  dependenciesTool,
@@ -68,7 +65,6 @@ const tools = [
68
65
  auditTool,
69
66
  upgradeTool,
70
67
  coverageTool,
71
- graphTool,
72
68
  semanticGraphTool,
73
69
  couplingTool,
74
70
  workspacesTool,
@@ -1 +1 @@
1
- {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tools.js","sourceRoot":"","sources":["../../src/mcp/tools.ts"],"names":[],"mappings":"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"}
@@ -1,23 +1,23 @@
1
1
  {
2
2
  "bomFormat": "CycloneDX",
3
3
  "specVersion": "1.5",
4
- "serialNumber": "urn:uuid:6b78bfe2-a5f6-4787-a657-a217e74615bd",
4
+ "serialNumber": "urn:uuid:89f8c0f1-482c-4e76-b7b6-64830539ffdc",
5
5
  "version": 1,
6
6
  "metadata": {
7
- "timestamp": "2026-06-05T16:37:35.349Z",
7
+ "timestamp": "2026-06-05T19:19:59.691Z",
8
8
  "tools": [
9
9
  {
10
10
  "vendor": "projscan",
11
11
  "name": "projscan-sbom-generator",
12
- "version": "3.8.0"
12
+ "version": "4.0.0"
13
13
  }
14
14
  ],
15
15
  "component": {
16
16
  "type": "application",
17
- "bom-ref": "pkg:npm/projscan@3.8.0",
17
+ "bom-ref": "pkg:npm/projscan@4.0.0",
18
18
  "name": "projscan",
19
- "version": "3.8.0",
20
- "purl": "pkg:npm/projscan@3.8.0"
19
+ "version": "4.0.0",
20
+ "purl": "pkg:npm/projscan@4.0.0"
21
21
  }
22
22
  },
23
23
  "components": [
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "projscan",
3
- "version": "3.8.0",
3
+ "version": "4.0.0",
4
4
  "mcpProtocolVersion": "2025-03-26",
5
- "generatedAt": "2026-06-05T16:37:40.687Z",
6
- "toolCount": 47,
5
+ "generatedAt": "2026-06-05T19:20:05.305Z",
6
+ "toolCount": 45,
7
7
  "tools": [
8
8
  {
9
9
  "name": "projscan_analyze",
@@ -76,22 +76,6 @@
76
76
  }
77
77
  }
78
78
  },
79
- {
80
- "name": "projscan_explain",
81
- "description": "[DEPRECATED since 3.8.0, removed in 4.0 — use projscan_file] Explain a single file: purpose, imports, exports, and potential issues. Useful for understanding unfamiliar code before editing.",
82
- "inputSchema": {
83
- "type": "object",
84
- "properties": {
85
- "file": {
86
- "type": "string",
87
- "description": "Path to the file relative to the project root."
88
- }
89
- },
90
- "required": [
91
- "file"
92
- ]
93
- }
94
- },
95
79
  {
96
80
  "name": "projscan_file",
97
81
  "description": "Drill into a single file: purpose, imports, exports, churn/risk/ownership, related health issues, AST cyclomatic complexity, coupling (fan-in / fan-out), and per-function CC ranked by complexity. Use this after projscan_hotspots when deciding how to approach a specific risky file.",
@@ -226,57 +210,50 @@
226
210
  }
227
211
  },
228
212
  {
229
- "name": "projscan_graph",
230
- "description": "[DEPRECATED since 3.8.0, removed in 4.0 use projscan_semantic_graph] Query the AST-based code graph directly. Returns imports, exports, importers, or symbol definitions for a file or symbol. Agents should prefer this over analyze/doctor/explain for targeted structural questions - it is much cheaper and more accurate.",
213
+ "name": "projscan_semantic_graph",
214
+ "description": "The code graph, two ways. With no `query`: returns the stable v3 semantic graph (file/function/package/symbol nodes plus imports, exports, defines, and calls edges). With `query`: answers one cheap, targeted question instead of serializing the whole graph — who imports a file, what a file imports/exports, where a symbol is defined, or which files import a package. (The targeted mode subsumes the former projscan_graph tool, removed in 4.0.)",
231
215
  "inputSchema": {
232
216
  "type": "object",
233
217
  "properties": {
234
- "file": {
235
- "type": "string",
236
- "description": "File path (relative to project root) to query."
237
- },
238
- "symbol": {
239
- "type": "string",
240
- "description": "Symbol name to query (e.g. a function or class). Use instead of `file` to find where a symbol is defined."
241
- },
242
- "direction": {
243
- "type": "string",
244
- "description": "What to return: \"imports\" (what the file imports), \"exports\" (what the file exports), \"importers\" (who imports the file), \"symbol_defs\" (files defining the symbol), \"package_importers\" (files importing a package by name).",
245
- "enum": [
246
- "imports",
247
- "exports",
248
- "importers",
249
- "symbol_defs",
250
- "package_importers"
218
+ "query": {
219
+ "type": "object",
220
+ "description": "Optional. Ask one targeted question instead of returning the whole graph.",
221
+ "properties": {
222
+ "direction": {
223
+ "type": "string",
224
+ "enum": [
225
+ "imports",
226
+ "exports",
227
+ "importers",
228
+ "symbol_defs",
229
+ "package_importers"
230
+ ],
231
+ "description": "\"imports\" (what the file imports), \"exports\" (what the file exports), \"importers\" (who imports the file), \"symbol_defs\" (files defining the symbol), \"package_importers\" (files importing a package by name)."
232
+ },
233
+ "file": {
234
+ "type": "string",
235
+ "description": "Repo-relative file path (for imports/exports/importers)."
236
+ },
237
+ "symbol": {
238
+ "type": "string",
239
+ "description": "Symbol or package name (for symbol_defs/package_importers)."
240
+ },
241
+ "limit": {
242
+ "type": "number",
243
+ "description": "Max entries returned (default 50, max 500)."
244
+ }
245
+ },
246
+ "required": [
247
+ "direction"
251
248
  ]
252
249
  },
253
- "limit": {
254
- "type": "number",
255
- "description": "Max entries returned (default 50)."
256
- },
257
- "max_tokens": {
258
- "type": "number",
259
- "description": "Cap the response to roughly this many tokens."
260
- }
261
- },
262
- "required": [
263
- "direction"
264
- ]
265
- }
266
- },
267
- {
268
- "name": "projscan_semantic_graph",
269
- "description": "Return the stable v3 semantic graph: file/function/package/symbol nodes plus imports, exports, defines, and calls edges. Use when an agent needs one normalized graph contract instead of several targeted graph queries.",
270
- "inputSchema": {
271
- "type": "object",
272
- "properties": {
273
250
  "max_nodes": {
274
251
  "type": "number",
275
- "description": "Maximum graph nodes to return. Default 10000."
252
+ "description": "Full-graph mode only. Maximum graph nodes to return. Default 10000."
276
253
  },
277
254
  "max_edges": {
278
255
  "type": "number",
279
- "description": "Maximum graph edges to return. Default 25000."
256
+ "description": "Full-graph mode only. Maximum graph edges to return. Default 25000."
280
257
  },
281
258
  "max_tokens": {
282
259
  "type": "number",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "projscan",
3
3
  "mcpName": "io.github.abhiyoheswaran1/projscan",
4
- "version": "3.8.0",
4
+ "version": "4.0.0",
5
5
  "description": "Agent-first code intelligence. MCP server (2025-03-26) with AST parsing for JavaScript, TypeScript, Python, Go, Java, Ruby, Rust, PHP, C#, Kotlin, Swift, and C++; repo understanding maps (projscan_understand), stable v3 semantic graph (projscan_semantic_graph), dataflow risk engine with bridge-helper detection (projscan_dataflow), code graph, file + per-function AST cyclomatic complexity, per-function fan-in + fan-out, coupling + cycle detection, structural PR diff with HTML reporter, coverage report with HTML reporter, intent-grounded one-call PR review (projscan_review with optional `intent` arg, new taint flows, contract changes, and newDataflowRisks) and long-running PR-watch mode with structured per-bucket deltas (projscan_review_watch), first-60-seconds workflow orientation (projscan_start), agent workplans (projscan_workplan), bug-hunt queues (projscan_bug_hunt), product-line planning (projscan_release_train), evidence packs (projscan_evidence_pack), regression planning (projscan_regression_plan), agent briefs (projscan_agent_brief), quality scorecards (projscan_quality_scorecard), and preflight with supply-chain IOC evidence, rule-driven fix suggestions + mechanical apply layer with rollback (projscan_apply_fix, projscan_fix_suggest, projscan_explain_issue), source-to-sink taint analysis (projscan_taint) with truncation reporting, transitive blast-radius analysis with cross-repo mode (projscan_impact for files and symbols), cross-repo workspace registration + intelligence (projscan_workspace_graph), per-function semantic search chunks (sub-file embeddings), per-rule confidence + severity drift + cost-summary analytics with live streaming (projscan_cost_summary), stable local analyzer + reporter plugin API (projscan_plugin, CLI --reporter, opt-in via PROJSCAN_PLUGINS_PREVIEW=1), monorepo workspace awareness with cross-package import policy + per-package dependencies / outdated / audit, BM25 + optional semantic search, cursor pagination, progress notifications, context-budgeted output, and a stable-surface CI guard. CLI on the side.",
6
6
  "type": "module",
7
7
  "main": "./dist/index.js",
@@ -1 +0,0 @@
1
- export declare function registerExplain(): void;
@@ -1,48 +0,0 @@
1
- import chalk from 'chalk';
2
- import path from 'node:path';
3
- import { program, setupLogLevel, maybeCompactBanner, analyzeFile, assertFormatSupported } from '../_shared.js';
4
- import { reportExplanation } from '../../reporters/consoleReporter.js';
5
- import { reportExplanationJson } from '../../reporters/jsonReporter.js';
6
- import { reportExplanationMarkdown } from '../../reporters/markdownReporter.js';
7
- import { formatCliDeprecationNotice } from '../../core/deprecations.js';
8
- export function registerExplain() {
9
- program
10
- .command('explain <file>')
11
- .description('Explain a file - its purpose, dependencies, and exports')
12
- .action(async (filePath) => {
13
- setupLogLevel();
14
- maybeCompactBanner();
15
- console.error(chalk.yellow(formatCliDeprecationNotice('explain', {
16
- since: '3.8.0',
17
- replacedBy: 'projscan file',
18
- note: 'projscan file is a strict superset (adds churn, risk, ownership, and related health).',
19
- })));
20
- const format = assertFormatSupported('explain');
21
- const absolutePath = path.resolve(filePath);
22
- try {
23
- const explanation = await analyzeFile(absolutePath);
24
- switch (format) {
25
- case 'json':
26
- reportExplanationJson(explanation);
27
- break;
28
- case 'markdown':
29
- reportExplanationMarkdown(explanation);
30
- break;
31
- default:
32
- reportExplanation(explanation);
33
- }
34
- }
35
- catch (error) {
36
- const message = error instanceof Error ? error.message : String(error);
37
- if (error.code === 'ENOENT' || /not found/i.test(message)) {
38
- console.error(chalk.red(`File not found: ${filePath}`));
39
- console.error(chalk.dim(` Tip: paths are repo-relative. Run \`projscan structure\` to see the file tree.`));
40
- }
41
- else {
42
- console.error(chalk.red(message));
43
- }
44
- process.exit(1);
45
- }
46
- });
47
- }
48
- //# sourceMappingURL=explain.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"explain.js","sourceRoot":"","sources":["../../../src/cli/commands/explain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAC/G,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAExE,MAAM,UAAU,eAAe;IAC7B,OAAO;SACJ,OAAO,CAAC,gBAAgB,CAAC;SACzB,WAAW,CAAC,yDAAyD,CAAC;SACtE,MAAM,CAAC,KAAK,EAAE,QAAgB,EAAE,EAAE;QACjC,aAAa,EAAE,CAAC;QAChB,kBAAkB,EAAE,CAAC;QACrB,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,MAAM,CACV,0BAA0B,CAAC,SAAS,EAAE;YACpC,KAAK,EAAE,OAAO;YACd,UAAU,EAAE,eAAe;YAC3B,IAAI,EAAE,uFAAuF;SAC9F,CAAC,CACH,CACF,CAAC;QACF,MAAM,MAAM,GAAG,qBAAqB,CAAC,SAAS,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5C,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,CAAC;YAEpD,QAAQ,MAAM,EAAE,CAAC;gBACf,KAAK,MAAM;oBACT,qBAAqB,CAAC,WAAW,CAAC,CAAC;oBACnC,MAAM;gBACR,KAAK,UAAU;oBACb,yBAAyB,CAAC,WAAW,CAAC,CAAC;oBACvC,MAAM;gBACR;oBACE,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,IAAK,KAA+B,CAAC,IAAI,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrF,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACxD,OAAO,CAAC,KAAK,CACX,KAAK,CAAC,GAAG,CAAC,kFAAkF,CAAC,CAC9F,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC"}
@@ -1,2 +0,0 @@
1
- import { type McpTool } from './_shared.js';
2
- export declare const explainTool: McpTool;
@@ -1,34 +0,0 @@
1
- import path from 'node:path';
2
- import { explainFile } from './_shared.js';
3
- export const explainTool = {
4
- name: 'projscan_explain',
5
- deprecated: {
6
- since: '3.8.0',
7
- replacedBy: 'projscan_file',
8
- note: 'projscan_file is a strict superset (same purpose/imports/exports plus churn, risk, ownership, and related health).',
9
- },
10
- description: 'Explain a single file: purpose, imports, exports, and potential issues. Useful for understanding unfamiliar code before editing.',
11
- inputSchema: {
12
- type: 'object',
13
- properties: {
14
- file: {
15
- type: 'string',
16
- description: 'Path to the file relative to the project root.',
17
- },
18
- },
19
- required: ['file'],
20
- },
21
- handler: async (args, rootPath) => {
22
- const rel = typeof args.file === 'string' ? args.file : '';
23
- if (!rel) {
24
- throw new Error('file argument is required: pass a repo-relative path (e.g. "src/auth.ts").');
25
- }
26
- const absolutePath = path.resolve(rootPath, rel);
27
- const resolvedRoot = path.resolve(rootPath);
28
- if (!absolutePath.startsWith(resolvedRoot + path.sep) && absolutePath !== resolvedRoot) {
29
- throw new Error(`file must be inside the project root (got "${rel}"; absolute or "../" paths are rejected for security).`);
30
- }
31
- return await explainFile(absolutePath, rootPath);
32
- },
33
- };
34
- //# sourceMappingURL=explain.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"explain.js","sourceRoot":"","sources":["../../../src/mcp/tools/explain.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,WAAW,EAAgB,MAAM,cAAc,CAAC;AAEzD,MAAM,CAAC,MAAM,WAAW,GAAY;IAClC,IAAI,EAAE,kBAAkB;IACxB,UAAU,EAAE;QACV,KAAK,EAAE,OAAO;QACd,UAAU,EAAE,eAAe;QAC3B,IAAI,EAAE,oHAAoH;KAC3H;IACD,WAAW,EACT,kIAAkI;IACpI,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE;YACV,IAAI,EAAE;gBACJ,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,gDAAgD;aAC9D;SACF;QACD,QAAQ,EAAE,CAAC,MAAM,CAAC;KACnB;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;QAChC,MAAM,GAAG,GAAG,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CACb,4EAA4E,CAC7E,CAAC;QACJ,CAAC;QACD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC5C,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,YAAY,KAAK,YAAY,EAAE,CAAC;YACvF,MAAM,IAAI,KAAK,CACb,8CAA8C,GAAG,wDAAwD,CAC1G,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,WAAW,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACnD,CAAC;CACF,CAAC"}
@@ -1,2 +0,0 @@
1
- import type { McpTool } from './_shared.js';
2
- export declare const graphTool: McpTool;
@@ -1,79 +0,0 @@
1
- import { scanRepository } from '../../core/repositoryScanner.js';
2
- import { buildCodeGraph, filesImportingFile, filesImportingPackage, filesDefiningSymbol, exportsOf, importsOf, } from '../../core/codeGraph.js';
3
- import { loadCachedGraph, saveCachedGraph } from '../../core/indexCache.js';
4
- export const graphTool = {
5
- name: 'projscan_graph',
6
- deprecated: {
7
- since: '3.8.0',
8
- replacedBy: 'projscan_semantic_graph',
9
- note: 'projscan_semantic_graph is the stable v3 successor (same nodes/edges with a versioned, supported contract).',
10
- },
11
- description: 'Query the AST-based code graph directly. Returns imports, exports, importers, or symbol definitions for a file or symbol. Agents should prefer this over analyze/doctor/explain for targeted structural questions - it is much cheaper and more accurate.',
12
- inputSchema: {
13
- type: 'object',
14
- properties: {
15
- file: {
16
- type: 'string',
17
- description: 'File path (relative to project root) to query.',
18
- },
19
- symbol: {
20
- type: 'string',
21
- description: 'Symbol name to query (e.g. a function or class). Use instead of `file` to find where a symbol is defined.',
22
- },
23
- direction: {
24
- type: 'string',
25
- description: 'What to return: "imports" (what the file imports), "exports" (what the file exports), "importers" (who imports the file), "symbol_defs" (files defining the symbol), "package_importers" (files importing a package by name).',
26
- enum: ['imports', 'exports', 'importers', 'symbol_defs', 'package_importers'],
27
- },
28
- limit: { type: 'number', description: 'Max entries returned (default 50).' },
29
- max_tokens: { type: 'number', description: 'Cap the response to roughly this many tokens.' },
30
- },
31
- required: ['direction'],
32
- },
33
- handler: async (args, rootPath) => {
34
- const scan = await scanRepository(rootPath);
35
- const cached = await loadCachedGraph(rootPath);
36
- const graph = await buildCodeGraph(rootPath, scan.files, cached);
37
- await saveCachedGraph(rootPath, graph);
38
- const direction = String(args.direction);
39
- const file = typeof args.file === 'string' ? args.file : undefined;
40
- const symbol = typeof args.symbol === 'string' ? args.symbol : undefined;
41
- const limit = Math.max(1, Math.min(500, typeof args.limit === 'number' ? args.limit : 50));
42
- switch (direction) {
43
- case 'imports': {
44
- if (!file) {
45
- throw new Error('direction=imports requires a `file` argument (repo-relative path, e.g. "src/auth.ts").');
46
- }
47
- return { file, imports: importsOf(graph, file).slice(0, limit) };
48
- }
49
- case 'exports': {
50
- if (!file) {
51
- throw new Error('direction=exports requires a `file` argument (repo-relative path).');
52
- }
53
- return { file, exports: exportsOf(graph, file).slice(0, limit) };
54
- }
55
- case 'importers': {
56
- if (!file) {
57
- throw new Error('direction=importers requires a `file` argument (repo-relative path).');
58
- }
59
- return { file, importers: filesImportingFile(graph, file).slice(0, limit) };
60
- }
61
- case 'symbol_defs': {
62
- if (!symbol) {
63
- throw new Error('direction=symbol_defs requires a `symbol` argument (the exported name to look up, e.g. "authenticate").');
64
- }
65
- return { symbol, definedIn: filesDefiningSymbol(graph, symbol).slice(0, limit) };
66
- }
67
- case 'package_importers': {
68
- const pkg = symbol ?? file;
69
- if (!pkg) {
70
- throw new Error('direction=package_importers requires either `symbol` or `file` arg (the npm package name, e.g. "chalk").');
71
- }
72
- return { package: pkg, importers: filesImportingPackage(graph, pkg).slice(0, limit) };
73
- }
74
- default:
75
- throw new Error(`unknown direction "${direction}". Valid: imports, exports, importers, symbol_defs, package_importers.`);
76
- }
77
- },
78
- };
79
- //# sourceMappingURL=graph.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"graph.js","sourceRoot":"","sources":["../../../src/mcp/tools/graph.ts"],"names":[],"mappings":"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"}