agent-security-scanner-mcp 4.0.0 → 4.1.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 +47 -58
- package/code-review-agent/README.md +25 -4
- package/code-review-agent/TODO.md +1 -1
- package/code-review-agent/bin/cr-agent.ts +7 -1
- package/code-review-agent/dist/bin/cr-agent.js +7 -1
- package/code-review-agent/dist/bin/cr-agent.js.map +1 -1
- package/code-review-agent/dist/src/analyzer/engine.d.ts +5 -0
- package/code-review-agent/dist/src/analyzer/engine.d.ts.map +1 -1
- package/code-review-agent/dist/src/analyzer/engine.js +30 -3
- package/code-review-agent/dist/src/analyzer/engine.js.map +1 -1
- package/code-review-agent/dist/src/analyzer/postprocess.d.ts +15 -0
- package/code-review-agent/dist/src/analyzer/postprocess.d.ts.map +1 -0
- package/code-review-agent/dist/src/analyzer/postprocess.js +275 -0
- package/code-review-agent/dist/src/analyzer/postprocess.js.map +1 -0
- package/code-review-agent/dist/src/analyzer/semantic.d.ts +5 -1
- package/code-review-agent/dist/src/analyzer/semantic.d.ts.map +1 -1
- package/code-review-agent/dist/src/analyzer/semantic.js +80 -20
- package/code-review-agent/dist/src/analyzer/semantic.js.map +1 -1
- package/code-review-agent/dist/src/context/assembler.d.ts +8 -2
- package/code-review-agent/dist/src/context/assembler.d.ts.map +1 -1
- package/code-review-agent/dist/src/context/assembler.js +33 -1
- package/code-review-agent/dist/src/context/assembler.js.map +1 -1
- package/code-review-agent/dist/src/context/file.d.ts.map +1 -1
- package/code-review-agent/dist/src/context/file.js +11 -23
- package/code-review-agent/dist/src/context/file.js.map +1 -1
- package/code-review-agent/dist/src/context/security-summary.d.ts +19 -0
- package/code-review-agent/dist/src/context/security-summary.d.ts.map +1 -0
- package/code-review-agent/dist/src/context/security-summary.js +199 -0
- package/code-review-agent/dist/src/context/security-summary.js.map +1 -0
- package/code-review-agent/dist/src/graph/dependency.d.ts.map +1 -1
- package/code-review-agent/dist/src/graph/dependency.js +8 -1
- package/code-review-agent/dist/src/graph/dependency.js.map +1 -1
- package/code-review-agent/dist/src/graph/resolver.d.ts.map +1 -1
- package/code-review-agent/dist/src/graph/resolver.js +14 -5
- package/code-review-agent/dist/src/graph/resolver.js.map +1 -1
- package/code-review-agent/dist/src/index.d.ts +4 -1
- package/code-review-agent/dist/src/index.d.ts.map +1 -1
- package/code-review-agent/dist/src/index.js +2 -0
- package/code-review-agent/dist/src/index.js.map +1 -1
- package/code-review-agent/dist/src/types/config.d.ts +3 -0
- package/code-review-agent/dist/src/types/config.d.ts.map +1 -1
- package/code-review-agent/dist/src/types/config.js +9 -0
- package/code-review-agent/dist/src/types/config.js.map +1 -1
- package/code-review-agent/src/analyzer/engine.ts +36 -2
- package/code-review-agent/src/analyzer/postprocess.ts +311 -0
- package/code-review-agent/src/analyzer/semantic.ts +87 -18
- package/code-review-agent/src/context/assembler.ts +44 -2
- package/code-review-agent/src/context/file.ts +13 -18
- package/code-review-agent/src/context/security-summary.ts +225 -0
- package/code-review-agent/src/graph/dependency.ts +8 -1
- package/code-review-agent/src/graph/resolver.ts +14 -5
- package/code-review-agent/src/index.ts +4 -0
- package/code-review-agent/src/types/config.ts +16 -0
- package/code-review-agent/tests/analyzer/engine.test.ts +5 -0
- package/code-review-agent/tests/analyzer/postprocess.test.ts +450 -0
- package/code-review-agent/tests/analyzer/prompt-routing.test.ts +137 -0
- package/code-review-agent/tests/config-mode.test.ts +71 -0
- package/code-review-agent/tests/context/file.test.ts +16 -1
- package/code-review-agent/tests/context/security-summary.test.ts +181 -0
- package/code-review-agent/tests/fixtures/guarded-agent/router.py +6 -0
- package/code-review-agent/tests/fixtures/guarded-agent/tools/executor.py +10 -0
- package/code-review-agent/tests/fixtures/guarded-agent/tools/guard.py +4 -0
- package/code-review-agent/tests/fixtures/guarded-agent/vuln-tool.py +6 -0
- package/code-review-agent/tests/graph/dependency.test.ts +76 -0
- package/index.js +18 -18
- package/openclaw.plugin.json +1 -1
- package/package.json +3 -2
- package/scripts/postinstall.js +43 -4
- package/server.json +1 -1
- package/src/cli/init-hooks.js +3 -3
- package/src/cli/init.js +1 -1
package/README.md
CHANGED
|
@@ -2,20 +2,18 @@
|
|
|
2
2
|
|
|
3
3
|
<img src="./prooflayer-logo.png" alt="ProofLayer Logo" width="400"/>
|
|
4
4
|
|
|
5
|
-
#
|
|
5
|
+
# agent-security-scanner-mcp
|
|
6
6
|
|
|
7
7
|
**Security scanner for AI coding agents and autonomous assistants**
|
|
8
8
|
|
|
9
9
|
Scans code for vulnerabilities, detects hallucinated packages, blocks prompt injection, and provides LLM-powered semantic code review — via MCP (Claude Code, Cursor, Windsurf, Cline) or CLI (OpenClaw, CI/CD).
|
|
10
10
|
|
|
11
|
-
[](https://www.npmjs.com/package/agent-security-scanner-mcp)
|
|
12
|
+
[](https://www.npmjs.com/package/agent-security-scanner-mcp)
|
|
13
13
|
[](https://opensource.org/licenses/MIT)
|
|
14
14
|
[](benchmarks/RESULTS.md)
|
|
15
15
|
[](https://github.com/sinewaveai/agent-security-scanner-mcp/actions/workflows/test.yml)
|
|
16
16
|
|
|
17
|
-
> **Package renamed:** Previously `agent-security-scanner-mcp`. The old name still works for backwards compatibility.
|
|
18
|
-
|
|
19
17
|
</div>
|
|
20
18
|
|
|
21
19
|
---
|
|
@@ -47,10 +45,10 @@ npm install -g @prooflayer/security-scanner
|
|
|
47
45
|
### 🔬 Full Version (Advanced)
|
|
48
46
|
**Enterprise-grade scanner** with AST analysis, taint tracking, cross-file analysis, and LLM-powered semantic review
|
|
49
47
|
|
|
50
|
-
[](https://www.npmjs.com/package/agent-security-scanner-mcp)
|
|
51
49
|
|
|
52
50
|
```bash
|
|
53
|
-
npm install -g
|
|
51
|
+
npm install -g agent-security-scanner-mcp
|
|
54
52
|
```
|
|
55
53
|
|
|
56
54
|
- 🧬 **AST + Taint Analysis** - deep code understanding
|
|
@@ -65,6 +63,8 @@ Continue reading below for full version documentation →
|
|
|
65
63
|
|
|
66
64
|
---
|
|
67
65
|
|
|
66
|
+
> **New in v4.0.0:** LLM-powered semantic code review agent with intent profiling — understands what your project is supposed to do and flags patterns that violate that intent. Same `eval()` call = safe in a build tool, dangerous in an e-commerce app. Supports Claude CLI (no API key needed!), Anthropic, and OpenAI. [See code-review-agent](#-llm-powered-code-review-agent-new-in-v400).
|
|
67
|
+
>
|
|
68
68
|
> **New in v3.11.0:** ClawHub ecosystem security scanning — scanned all 16,532 ClawHub skills and found 46% have critical vulnerabilities. New `scan-clawhub` CLI for batch scanning, 40+ prompt injection patterns, jailbreak detection (DAN mode, dev mode), data exfiltration checks. [See ClawHub Security Dashboard](https://www.proof-layer.com/dashboard).
|
|
69
69
|
>
|
|
70
70
|
> **Also in v3.10.0:** ClawProof OpenClaw plugin — 6-layer deep skill scanner (`scan_skill`) with ClawHavoc malware signatures (27 rules, 121 patterns covering reverse shells, crypto miners, info stealers, C2 beacons, and OpenClaw-specific attacks), package supply chain verification, and rug pull detection.
|
|
@@ -91,14 +91,12 @@ Continue reading below for full version documentation →
|
|
|
91
91
|
## Quick Start
|
|
92
92
|
|
|
93
93
|
```bash
|
|
94
|
-
npx
|
|
94
|
+
npx agent-security-scanner-mcp init claude-code
|
|
95
95
|
```
|
|
96
96
|
|
|
97
97
|
Restart your client after running init. That's it — the scanner is active.
|
|
98
98
|
|
|
99
99
|
> **Other clients:** Replace `claude-code` with `cursor`, `claude-desktop`, `windsurf`, `cline`, `kilo-code`, `opencode`, or `cody`. Run with no argument for interactive client selection.
|
|
100
|
-
>
|
|
101
|
-
> **Note:** `npx agent-security-scanner-mcp` still works for backwards compatibility.
|
|
102
100
|
|
|
103
101
|
## Recommended Workflows
|
|
104
102
|
|
|
@@ -189,19 +187,20 @@ Same code, different verdicts based on what the project is supposed to do:
|
|
|
189
187
|
|
|
190
188
|
### Quick Start
|
|
191
189
|
|
|
190
|
+
After installing `agent-security-scanner-mcp`, the `cr-agent` CLI is automatically available:
|
|
191
|
+
|
|
192
192
|
```bash
|
|
193
|
-
|
|
194
|
-
npm install
|
|
195
|
-
npm run build
|
|
193
|
+
# Install the package (cr-agent is included)
|
|
194
|
+
npm install -g agent-security-scanner-mcp
|
|
196
195
|
|
|
197
196
|
# Analyze a project (no API key needed with claude-cli!)
|
|
198
|
-
npx
|
|
197
|
+
npx cr-agent analyze ./path/to/project -p claude-cli --verbose
|
|
199
198
|
|
|
200
199
|
# View intent profile only
|
|
201
|
-
npx
|
|
200
|
+
npx cr-agent intent ./path/to/project -p claude-cli
|
|
202
201
|
|
|
203
202
|
# Output as SARIF for GitHub Code Scanning
|
|
204
|
-
npx
|
|
203
|
+
npx cr-agent analyze ./path/to/project -f sarif -p claude-cli
|
|
205
204
|
```
|
|
206
205
|
|
|
207
206
|
### LLM Providers
|
|
@@ -843,17 +842,15 @@ Scan an entire project or directory for security vulnerabilities with aggregated
|
|
|
843
842
|
### Install
|
|
844
843
|
|
|
845
844
|
```bash
|
|
846
|
-
npm install -g
|
|
845
|
+
npm install -g agent-security-scanner-mcp
|
|
847
846
|
```
|
|
848
847
|
|
|
849
848
|
Or use directly with `npx` — no install required:
|
|
850
849
|
|
|
851
850
|
```bash
|
|
852
|
-
npx
|
|
851
|
+
npx agent-security-scanner-mcp
|
|
853
852
|
```
|
|
854
853
|
|
|
855
|
-
> **Backwards compatibility:** The old package name `agent-security-scanner-mcp` continues to work.
|
|
856
|
-
|
|
857
854
|
### Prerequisites
|
|
858
855
|
|
|
859
856
|
- **Node.js >= 18.0.0** (required)
|
|
@@ -865,16 +862,16 @@ npx prooflayer-agent-security
|
|
|
865
862
|
|
|
866
863
|
| Client | Command |
|
|
867
864
|
|--------|---------|
|
|
868
|
-
| Claude Code | `npx
|
|
869
|
-
| Claude Desktop | `npx
|
|
870
|
-
| Cursor | `npx
|
|
871
|
-
| Windsurf | `npx
|
|
872
|
-
| Cline | `npx
|
|
873
|
-
| Kilo Code | `npx
|
|
874
|
-
| OpenCode | `npx
|
|
875
|
-
| Cody | `npx
|
|
876
|
-
| **OpenClaw** | `npx
|
|
877
|
-
| Interactive | `npx
|
|
865
|
+
| Claude Code | `npx agent-security-scanner-mcp init claude-code` |
|
|
866
|
+
| Claude Desktop | `npx agent-security-scanner-mcp init claude-desktop` |
|
|
867
|
+
| Cursor | `npx agent-security-scanner-mcp init cursor` |
|
|
868
|
+
| Windsurf | `npx agent-security-scanner-mcp init windsurf` |
|
|
869
|
+
| Cline | `npx agent-security-scanner-mcp init cline` |
|
|
870
|
+
| Kilo Code | `npx agent-security-scanner-mcp init kilo-code` |
|
|
871
|
+
| OpenCode | `npx agent-security-scanner-mcp init opencode` |
|
|
872
|
+
| Cody | `npx agent-security-scanner-mcp init cody` |
|
|
873
|
+
| **OpenClaw** | `npx agent-security-scanner-mcp init openclaw` |
|
|
874
|
+
| Interactive | `npx agent-security-scanner-mcp init` |
|
|
878
875
|
|
|
879
876
|
The `init` command auto-detects your OS, locates the config file, creates a backup, and adds the MCP server entry. **Restart your client after running init.**
|
|
880
877
|
|
|
@@ -896,7 +893,7 @@ Add to your MCP client config:
|
|
|
896
893
|
"mcpServers": {
|
|
897
894
|
"security-scanner": {
|
|
898
895
|
"command": "npx",
|
|
899
|
-
"args": ["-y", "
|
|
896
|
+
"args": ["-y", "agent-security-scanner-mcp"]
|
|
900
897
|
}
|
|
901
898
|
}
|
|
902
899
|
}
|
|
@@ -913,8 +910,8 @@ Add to your MCP client config:
|
|
|
913
910
|
### Diagnostics
|
|
914
911
|
|
|
915
912
|
```bash
|
|
916
|
-
npx
|
|
917
|
-
npx
|
|
913
|
+
npx agent-security-scanner-mcp doctor # Check setup health
|
|
914
|
+
npx agent-security-scanner-mcp doctor --fix # Auto-fix trivial issues
|
|
918
915
|
```
|
|
919
916
|
|
|
920
917
|
Checks Node.js version, Python availability, analyzer engine status, and scans all client configs.
|
|
@@ -924,7 +921,7 @@ Checks Node.js version, Python availability, analyzer engine status, and scans a
|
|
|
924
921
|
## Try It Out
|
|
925
922
|
|
|
926
923
|
```bash
|
|
927
|
-
npx
|
|
924
|
+
npx agent-security-scanner-mcp demo --lang js
|
|
928
925
|
```
|
|
929
926
|
|
|
930
927
|
Creates a small file with 3 intentional vulnerabilities, runs the scanner, shows findings with CWE/OWASP references, and asks if you want to keep the file for testing.
|
|
@@ -939,28 +936,28 @@ Use the scanner directly from command line (for scripts, CI/CD, or OpenClaw):
|
|
|
939
936
|
|
|
940
937
|
```bash
|
|
941
938
|
# Scan a prompt for injection attacks
|
|
942
|
-
npx
|
|
939
|
+
npx agent-security-scanner-mcp scan-prompt "ignore previous instructions"
|
|
943
940
|
|
|
944
941
|
# Scan a file for vulnerabilities
|
|
945
|
-
npx
|
|
942
|
+
npx agent-security-scanner-mcp scan-security ./app.py --verbosity minimal
|
|
946
943
|
|
|
947
944
|
# Scan git diff (changed files only)
|
|
948
|
-
npx
|
|
945
|
+
npx agent-security-scanner-mcp scan-diff --base main --target HEAD
|
|
949
946
|
|
|
950
947
|
# Scan entire project with grading
|
|
951
|
-
npx
|
|
948
|
+
npx agent-security-scanner-mcp scan-project ./src
|
|
952
949
|
|
|
953
950
|
# Check if a package is legitimate
|
|
954
|
-
npx
|
|
951
|
+
npx agent-security-scanner-mcp check-package flask pypi
|
|
955
952
|
|
|
956
953
|
# Scan file imports for hallucinated packages
|
|
957
|
-
npx
|
|
954
|
+
npx agent-security-scanner-mcp scan-packages ./requirements.txt pypi
|
|
958
955
|
|
|
959
956
|
# Install Claude Code hooks for automatic scanning
|
|
960
|
-
npx
|
|
957
|
+
npx agent-security-scanner-mcp init-hooks
|
|
961
958
|
|
|
962
959
|
# LLM-powered semantic code review (new in v4.0.0)
|
|
963
|
-
|
|
960
|
+
npx cr-agent analyze ./path/to/project -p claude-cli --verbose
|
|
964
961
|
```
|
|
965
962
|
|
|
966
963
|
**Exit codes:** `0` = safe, `1` = issues found. Use in scripts to block risky operations.
|
|
@@ -1016,7 +1013,7 @@ Automatically scan files after every edit with Claude Code hooks integration.
|
|
|
1016
1013
|
### Install Hooks
|
|
1017
1014
|
|
|
1018
1015
|
```bash
|
|
1019
|
-
npx
|
|
1016
|
+
npx agent-security-scanner-mcp init-hooks
|
|
1020
1017
|
```
|
|
1021
1018
|
|
|
1022
1019
|
This installs a `post-tool-use` hook that triggers security scanning after `Write`, `Edit`, or `MultiEdit` operations.
|
|
@@ -1024,7 +1021,7 @@ This installs a `post-tool-use` hook that triggers security scanning after `Writ
|
|
|
1024
1021
|
### With Prompt Guard
|
|
1025
1022
|
|
|
1026
1023
|
```bash
|
|
1027
|
-
npx
|
|
1024
|
+
npx agent-security-scanner-mcp init-hooks --with-prompt-guard
|
|
1028
1025
|
```
|
|
1029
1026
|
|
|
1030
1027
|
Adds a `PreToolUse` hook that scans prompts for injection attacks before executing tools.
|
|
@@ -1039,7 +1036,7 @@ The command adds hooks to `~/.claude/settings.json`:
|
|
|
1039
1036
|
"post-tool-use": [
|
|
1040
1037
|
{
|
|
1041
1038
|
"matcher": "Write|Edit|MultiEdit",
|
|
1042
|
-
"command": "npx
|
|
1039
|
+
"command": "npx agent-security-scanner-mcp scan-security \"$TOOL_INPUT_file_path\" --verbosity minimal"
|
|
1043
1040
|
}
|
|
1044
1041
|
]
|
|
1045
1042
|
}
|
|
@@ -1061,7 +1058,7 @@ The command adds hooks to `~/.claude/settings.json`:
|
|
|
1061
1058
|
### Install
|
|
1062
1059
|
|
|
1063
1060
|
```bash
|
|
1064
|
-
npx
|
|
1061
|
+
npx agent-security-scanner-mcp init openclaw
|
|
1065
1062
|
```
|
|
1066
1063
|
|
|
1067
1064
|
This installs a skill to `~/.openclaw/workspace/skills/security-scanner/`.
|
|
@@ -1160,7 +1157,7 @@ AI coding agents introduce attack surfaces that traditional security tools weren
|
|
|
1160
1157
|
| Property | Value |
|
|
1161
1158
|
|----------|-------|
|
|
1162
1159
|
| **Transport** | stdio |
|
|
1163
|
-
| **Package** | `
|
|
1160
|
+
| **Package** | `agent-security-scanner-mcp` (npm) |
|
|
1164
1161
|
| **Tools** | 12 |
|
|
1165
1162
|
| **Languages** | 12 |
|
|
1166
1163
|
| **Ecosystems** | 7 |
|
|
@@ -1243,11 +1240,10 @@ All MCP tools support a `verbosity` parameter to minimize context window consump
|
|
|
1243
1240
|
|
|
1244
1241
|
## Changelog
|
|
1245
1242
|
|
|
1246
|
-
### v4.0.0 (2026-03-
|
|
1243
|
+
### v4.0.0 (2026-03-21) - LLM-Powered Code Review Agent
|
|
1247
1244
|
|
|
1248
|
-
**🚀 Major Release:
|
|
1245
|
+
**🚀 Major Release: LLM-Powered Semantic Code Review**
|
|
1249
1246
|
|
|
1250
|
-
- **Package Rename:** `agent-security-scanner-mcp` → `prooflayer-agent-security` (old name still works for backwards compatibility)
|
|
1251
1247
|
- **LLM-Powered Code Review Agent:** New `code-review-agent/` module for semantic security analysis
|
|
1252
1248
|
- **Intent Profiling:** Understands project purpose to reduce false positives
|
|
1253
1249
|
- **3 LLM Providers:** Anthropic, OpenAI, Claude CLI (no API key needed!)
|
|
@@ -1367,20 +1363,13 @@ All MCP tools support a `verbosity` parameter to minimize context window consump
|
|
|
1367
1363
|
### Default Package
|
|
1368
1364
|
|
|
1369
1365
|
```bash
|
|
1370
|
-
npm install -g
|
|
1366
|
+
npm install -g agent-security-scanner-mcp
|
|
1371
1367
|
```
|
|
1372
1368
|
|
|
1373
1369
|
Includes:
|
|
1374
1370
|
- **All 7 ecosystems** — npm, PyPI, RubyGems, crates.io, pub.dev, CPAN, raku.land (4.3M+ packages total)
|
|
1375
1371
|
- **LLM-powered code review agent** — semantic security analysis with intent profiling
|
|
1376
1372
|
|
|
1377
|
-
### Legacy Package Name
|
|
1378
|
-
|
|
1379
|
-
The old package name continues to work for backwards compatibility:
|
|
1380
|
-
|
|
1381
|
-
```bash
|
|
1382
|
-
npm install -g agent-security-scanner-mcp
|
|
1383
|
-
```
|
|
1384
1373
|
|
|
1385
1374
|
---
|
|
1386
1375
|
|
|
@@ -23,14 +23,20 @@ npm run build
|
|
|
23
23
|
### Analyze a project
|
|
24
24
|
|
|
25
25
|
```bash
|
|
26
|
-
# Text output (default)
|
|
26
|
+
# Text output (default — review mode)
|
|
27
27
|
npx tsx bin/cr-agent.ts analyze ./path/to/project
|
|
28
28
|
|
|
29
|
+
# Security-only mode — focused on exploitable vulnerabilities
|
|
30
|
+
npx tsx bin/cr-agent.ts analyze ./path/to/project --mode security
|
|
31
|
+
|
|
32
|
+
# Shorthand for security mode
|
|
33
|
+
npx tsx bin/cr-agent.ts analyze ./path/to/project --security-only
|
|
34
|
+
|
|
29
35
|
# JSON output
|
|
30
36
|
npx tsx bin/cr-agent.ts analyze ./path/to/project --format json
|
|
31
37
|
|
|
32
|
-
# SARIF output
|
|
33
|
-
npx tsx bin/cr-agent.ts analyze ./path/to/project --format sarif
|
|
38
|
+
# SARIF output (recommended with --mode security for CI)
|
|
39
|
+
npx tsx bin/cr-agent.ts analyze ./path/to/project --format sarif --mode security
|
|
34
40
|
|
|
35
41
|
# Custom confidence threshold
|
|
36
42
|
npx tsx bin/cr-agent.ts analyze ./path/to/project --confidence 0.8
|
|
@@ -39,6 +45,17 @@ npx tsx bin/cr-agent.ts analyze ./path/to/project --confidence 0.8
|
|
|
39
45
|
npx tsx bin/cr-agent.ts analyze ./path/to/project --provider openai
|
|
40
46
|
```
|
|
41
47
|
|
|
48
|
+
### Analysis modes
|
|
49
|
+
|
|
50
|
+
| Mode | Description |
|
|
51
|
+
|------|-------------|
|
|
52
|
+
| `review` (default) | Broad semantic review: logic bugs, security, race conditions, null refs, boundary issues, unhandled exceptions |
|
|
53
|
+
| `security` | Focused security scanner: exploitable vulnerabilities only, sink-localized findings, carrier suppression, CWE mapping |
|
|
54
|
+
|
|
55
|
+
**Review mode** is best for human code review workflows where you want to catch all types of real bugs.
|
|
56
|
+
|
|
57
|
+
**Security mode** is best for CI pipelines, SARIF integrations, and security-focused audits where you want clean, actionable vulnerability reports without generic code quality noise.
|
|
58
|
+
|
|
42
59
|
### View intent profile
|
|
43
60
|
|
|
44
61
|
```bash
|
|
@@ -64,6 +81,7 @@ Or create a `.cr-agent.json` in your project root:
|
|
|
64
81
|
|
|
65
82
|
```json
|
|
66
83
|
{
|
|
84
|
+
"mode": "review",
|
|
67
85
|
"provider": "anthropic",
|
|
68
86
|
"model": "claude-sonnet-4-20250514",
|
|
69
87
|
"triageModel": "claude-haiku-4-5-20251001",
|
|
@@ -78,6 +96,8 @@ Or create a `.cr-agent.json` in your project root:
|
|
|
78
96
|
|
|
79
97
|
| Flag | Description | Default |
|
|
80
98
|
|------|-------------|---------|
|
|
99
|
+
| `--mode` | Analysis mode (`review` or `security`) | `review` |
|
|
100
|
+
| `--security-only` | Shorthand for `--mode security` | — |
|
|
81
101
|
| `-p, --provider` | LLM provider (`anthropic` or `openai`) | `anthropic` |
|
|
82
102
|
| `-m, --model` | Analysis model | `claude-sonnet-4-20250514` / `gpt-4o` |
|
|
83
103
|
| `--triage-model` | Triage model | `claude-haiku-4-5-20251001` / `gpt-4o-mini` |
|
|
@@ -92,7 +112,8 @@ Or create a `.cr-agent.json` in your project root:
|
|
|
92
112
|
```
|
|
93
113
|
Pipeline: discover files → build dependency graph → profile intent
|
|
94
114
|
→ triage (parallel, cheap model) → analyze (parallel, analysis model)
|
|
95
|
-
→ dedup → filter
|
|
115
|
+
→ dedup → mode-aware post-filter → carrier suppression (security mode)
|
|
116
|
+
→ filter by confidence → sort by severity → output
|
|
96
117
|
```
|
|
97
118
|
|
|
98
119
|
### Components
|
|
@@ -134,7 +134,7 @@ Stop analysis when estimated cost reaches a configurable threshold (e.g., `--max
|
|
|
134
134
|
|
|
135
135
|
### MCP server integration
|
|
136
136
|
|
|
137
|
-
Expose cr-agent as an MCP tool in the parent
|
|
137
|
+
Expose cr-agent as an MCP tool in the parent agent-security-scanner-mcp server, so AI coding assistants can invoke semantic code review alongside the existing rules-based scanner.
|
|
138
138
|
|
|
139
139
|
### SARIF upload
|
|
140
140
|
|
|
@@ -13,7 +13,7 @@ import { ModelRouter } from '../src/llm/router.js';
|
|
|
13
13
|
import { DependencyGraphBuilder } from '../src/graph/dependency.js';
|
|
14
14
|
import { buildProjectContext } from '../src/context/project.js';
|
|
15
15
|
import { loadConfig, resolveOptions } from '../src/types/config.js';
|
|
16
|
-
import type { AnalysisOptions } from '../src/types/config.js';
|
|
16
|
+
import type { AnalysisOptions, AnalysisMode } from '../src/types/config.js';
|
|
17
17
|
import type { AnalysisResult, Finding } from '../src/index.js';
|
|
18
18
|
|
|
19
19
|
const program = new Command();
|
|
@@ -27,6 +27,8 @@ program
|
|
|
27
27
|
.command('analyze')
|
|
28
28
|
.description('Analyze a file or directory for bugs and vulnerabilities')
|
|
29
29
|
.argument('<target>', 'File or directory to analyze')
|
|
30
|
+
.option('--mode <mode>', 'Analysis mode (review|security)')
|
|
31
|
+
.option('--security-only', 'Shorthand for --mode security')
|
|
30
32
|
.option('-p, --provider <provider>', 'LLM provider (anthropic|openai|claude-cli)')
|
|
31
33
|
.option('-m, --model <model>', 'Model to use for analysis')
|
|
32
34
|
.option('--triage-model <model>', 'Model to use for triage')
|
|
@@ -43,8 +45,12 @@ program
|
|
|
43
45
|
? resolvedTarget
|
|
44
46
|
: findProjectRoot(resolvedTarget);
|
|
45
47
|
const config = loadConfig(targetProjectRoot);
|
|
48
|
+
const mode: AnalysisMode | undefined = flags.securityOnly
|
|
49
|
+
? 'security'
|
|
50
|
+
: (flags.mode as AnalysisMode | undefined);
|
|
46
51
|
const options = resolveOptions(
|
|
47
52
|
{
|
|
53
|
+
mode,
|
|
48
54
|
provider: flags.provider as AnalysisOptions['provider'] | undefined,
|
|
49
55
|
model: flags.model as string | undefined,
|
|
50
56
|
triageModel: flags.triageModel as string | undefined,
|
|
@@ -20,6 +20,8 @@ program
|
|
|
20
20
|
.command('analyze')
|
|
21
21
|
.description('Analyze a file or directory for bugs and vulnerabilities')
|
|
22
22
|
.argument('<target>', 'File or directory to analyze')
|
|
23
|
+
.option('--mode <mode>', 'Analysis mode (review|security)')
|
|
24
|
+
.option('--security-only', 'Shorthand for --mode security')
|
|
23
25
|
.option('-p, --provider <provider>', 'LLM provider (anthropic|openai|claude-cli)')
|
|
24
26
|
.option('-m, --model <model>', 'Model to use for analysis')
|
|
25
27
|
.option('--triage-model <model>', 'Model to use for triage')
|
|
@@ -36,7 +38,11 @@ program
|
|
|
36
38
|
? resolvedTarget
|
|
37
39
|
: findProjectRoot(resolvedTarget);
|
|
38
40
|
const config = loadConfig(targetProjectRoot);
|
|
41
|
+
const mode = flags.securityOnly
|
|
42
|
+
? 'security'
|
|
43
|
+
: flags.mode;
|
|
39
44
|
const options = resolveOptions({
|
|
45
|
+
mode,
|
|
40
46
|
provider: flags.provider,
|
|
41
47
|
model: flags.model,
|
|
42
48
|
triageModel: flags.triageModel,
|
|
@@ -251,7 +257,7 @@ function toSarif(result) {
|
|
|
251
257
|
driver: {
|
|
252
258
|
name: 'cr-agent',
|
|
253
259
|
version: '0.1.0',
|
|
254
|
-
informationUri: 'https://github.com/
|
|
260
|
+
informationUri: 'https://github.com/sinewaveai/agent-security-scanner-mcp',
|
|
255
261
|
rules: result.findings.map((f, i) => ({
|
|
256
262
|
id: `CR${String(i + 1).padStart(3, '0')}`,
|
|
257
263
|
name: f.title.replace(/\s+/g, ''),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cr-agent.js","sourceRoot":"","sources":["../../bin/cr-agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cr-agent.js","sourceRoot":"","sources":["../../bin/cr-agent.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,11 @@ export declare class AnalysisEngine {
|
|
|
9
9
|
analyze(targetPath: string): Promise<AnalysisResult>;
|
|
10
10
|
private discoverFiles;
|
|
11
11
|
private dedup;
|
|
12
|
+
/**
|
|
13
|
+
* Generate a dedup signature that's more precise than just category.
|
|
14
|
+
* Priority: CWE (most specific) > normalized title > category fallback.
|
|
15
|
+
*/
|
|
16
|
+
private dedupSignature;
|
|
12
17
|
private mergeOverlapping;
|
|
13
18
|
private countBySeverity;
|
|
14
19
|
private runParallel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/analyzer/engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/analyzer/engine.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,cAAc,EAGf,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAwB1D,MAAM,MAAM,gBAAgB,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAEvE,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,UAAU,CAAmB;gBAEzB,OAAO,EAAE,eAAe,EAAE,UAAU,CAAC,EAAE,gBAAgB;IAM7D,OAAO,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAoN1D,OAAO,CAAC,aAAa;IAsCrB,OAAO,CAAC,KAAK;IAoBb;;;OAGG;IACH,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,gBAAgB;IAuCxB,OAAO,CAAC,eAAe;YAQT,WAAW;CAwB1B"}
|
|
@@ -6,6 +6,7 @@ import { SemanticAnalyzer } from './semantic.js';
|
|
|
6
6
|
import { buildProjectContext } from '../context/project.js';
|
|
7
7
|
import { buildFileContext } from '../context/file.js';
|
|
8
8
|
import { DependencyGraphBuilder } from '../graph/dependency.js';
|
|
9
|
+
import { postFilterFindings, suppressCarrierFindings } from './postprocess.js';
|
|
9
10
|
const CODE_EXTENSIONS = new Set([
|
|
10
11
|
'.js', '.mjs', '.cjs', '.jsx',
|
|
11
12
|
'.ts', '.tsx',
|
|
@@ -64,7 +65,7 @@ export class AnalysisEngine {
|
|
|
64
65
|
const graph = graphBuilder.build(targetFiles.map((f) => path.relative(projectRoot, f)));
|
|
65
66
|
this.onProgress('graph', `Graph: ${graph.nodes.size} node(s)`);
|
|
66
67
|
// Create analyzer
|
|
67
|
-
const analyzer = new SemanticAnalyzer(this.router.getAnalysisProvider(), this.router.getTriageProvider());
|
|
68
|
+
const analyzer = new SemanticAnalyzer(this.router.getAnalysisProvider(), this.router.getTriageProvider(), this.options.mode, projectRoot, graph);
|
|
68
69
|
// Triage files in parallel
|
|
69
70
|
this.onProgress('triage', `Triaging ${targetFiles.length} file(s)...`);
|
|
70
71
|
let triageCount = 0;
|
|
@@ -153,6 +154,13 @@ export class AnalysisEngine {
|
|
|
153
154
|
// Dedup
|
|
154
155
|
this.onProgress('finalize', `Deduplicating ${allFindings.length} raw finding(s)`);
|
|
155
156
|
allFindings = this.dedup(allFindings);
|
|
157
|
+
// Mode-aware post-filtering
|
|
158
|
+
const beforePostFilter = allFindings.length;
|
|
159
|
+
allFindings = postFilterFindings(allFindings, this.options.mode);
|
|
160
|
+
if (this.options.mode === 'security') {
|
|
161
|
+
allFindings = suppressCarrierFindings(allFindings);
|
|
162
|
+
this.onProgress('finalize', `Security filter: ${beforePostFilter} → ${allFindings.length}`);
|
|
163
|
+
}
|
|
156
164
|
// Filter by confidence
|
|
157
165
|
const beforeFilter = allFindings.length;
|
|
158
166
|
allFindings = allFindings.filter((f) => f.confidence >= this.options.confidenceThreshold);
|
|
@@ -220,21 +228,39 @@ export class AnalysisEngine {
|
|
|
220
228
|
return files;
|
|
221
229
|
}
|
|
222
230
|
dedup(findings) {
|
|
231
|
+
// Phase 1: group by file + rich signature (CWE > normalized title > category)
|
|
223
232
|
const groups = new Map();
|
|
224
233
|
for (const finding of findings) {
|
|
225
|
-
const key = `${finding.location.file}:${finding
|
|
234
|
+
const key = `${finding.location.file}:${this.dedupSignature(finding)}`;
|
|
226
235
|
const group = groups.get(key) ?? [];
|
|
227
236
|
group.push(finding);
|
|
228
237
|
groups.set(key, group);
|
|
229
238
|
}
|
|
230
239
|
const result = [];
|
|
231
240
|
for (const group of groups.values()) {
|
|
232
|
-
// Merge overlapping line ranges, keep highest confidence
|
|
233
241
|
const merged = this.mergeOverlapping(group);
|
|
234
242
|
result.push(...merged);
|
|
235
243
|
}
|
|
236
244
|
return result;
|
|
237
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Generate a dedup signature that's more precise than just category.
|
|
248
|
+
* Priority: CWE (most specific) > normalized title > category fallback.
|
|
249
|
+
*/
|
|
250
|
+
dedupSignature(finding) {
|
|
251
|
+
if (finding.cwe) {
|
|
252
|
+
return `cwe:${finding.cwe.toLowerCase()}`;
|
|
253
|
+
}
|
|
254
|
+
// Normalize the title: lowercase, strip numbers/punctuation, collapse whitespace
|
|
255
|
+
const normalized = finding.title
|
|
256
|
+
.toLowerCase()
|
|
257
|
+
.replace(/\b(line|col|at)\s*\d+/g, '')
|
|
258
|
+
.replace(/[^a-z0-9\s]/g, '')
|
|
259
|
+
.replace(/\s+/g, ' ')
|
|
260
|
+
.trim();
|
|
261
|
+
// Use first 60 chars of normalized title + category for grouping
|
|
262
|
+
return `${finding.category}:${normalized.slice(0, 60)}`;
|
|
263
|
+
}
|
|
238
264
|
mergeOverlapping(findings) {
|
|
239
265
|
if (findings.length <= 1)
|
|
240
266
|
return findings;
|
|
@@ -285,6 +311,7 @@ export class AnalysisEngine {
|
|
|
285
311
|
let index = 0;
|
|
286
312
|
const runNext = async () => {
|
|
287
313
|
while (index < items.length) {
|
|
314
|
+
// Safe: index++ between awaits is non-concurrent in single-threaded JS
|
|
288
315
|
const currentIndex = index++;
|
|
289
316
|
results[currentIndex] = await fn(items[currentIndex]);
|
|
290
317
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/analyzer/engine.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/analyzer/engine.ts"],"names":[],"mappings":"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"}
|