agent-security-scanner-mcp 4.0.1 → 4.1.1
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 +198 -1
- package/code-review-agent/README.md +25 -4
- package/code-review-agent/bin/cr-agent.ts +7 -1
- package/code-review-agent/dist/bin/cr-agent.js +6 -0
- 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/llm/claude-cli.d.ts.map +1 -1
- package/code-review-agent/dist/src/llm/claude-cli.js +2 -1
- package/code-review-agent/dist/src/llm/claude-cli.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/llm/claude-cli.ts +2 -1
- 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 +139 -0
- package/openclaw.plugin.json +21 -1
- package/package.json +1 -1
- package/src/lib/cyclonedx.js +113 -0
- package/src/lib/lockfile-parsers.js +671 -0
- package/src/lib/osv-client.js +254 -0
- package/src/lib/purl.js +90 -0
- package/src/lib/sbom-component.js +88 -0
- package/src/tools/sbom-diff.js +199 -0
- package/src/tools/sbom-generate.js +116 -0
- package/src/tools/sbom-hallucinations.js +117 -0
- package/src/tools/sbom-report.js +271 -0
- package/src/tools/sbom-vulnerabilities.js +121 -0
package/README.md
CHANGED
|
@@ -63,6 +63,8 @@ Continue reading below for full version documentation →
|
|
|
63
63
|
|
|
64
64
|
---
|
|
65
65
|
|
|
66
|
+
> **New in v4.1.0:** SBOM generation and dependency vulnerability analysis — generates CycloneDX v1.5 SBOMs, scans against OSV.dev for CVEs, detects hallucinated packages, compares baselines, and generates HTML audit reports. Supports 8 lock file formats and 7 manifest formats across npm, Python, Go, Rust, Ruby, and Java ecosystems. [See SBOM Tools](#-sbom--supply-chain-analysis-new-in-v410).
|
|
67
|
+
>
|
|
66
68
|
> **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
69
|
>
|
|
68
70
|
> **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).
|
|
@@ -87,6 +89,11 @@ Continue reading below for full version documentation →
|
|
|
87
89
|
| `scan_skill` | Deep security scan of an OpenClaw skill: prompt injection, AST+taint code analysis, ClawHavoc malware signatures, supply chain, rug pull. Returns A-F grade | Before installing any OpenClaw skill |
|
|
88
90
|
| `scanner_health` | Check plugin health: engine status, daemon status, package data availability | Diagnostics and plugin status |
|
|
89
91
|
| `list_security_rules` | List available security rules and fix templates | To check rule coverage for a language |
|
|
92
|
+
| `sbom_generate` | Generate CycloneDX v1.5 SBOM for a project (8 lock file formats, 7 manifest formats) | Before releases, for compliance audits |
|
|
93
|
+
| `sbom_scan_vulnerabilities` | Cross-reference SBOM against OSV.dev for CVEs with severity filtering | After generating SBOM, for security audits |
|
|
94
|
+
| `sbom_check_hallucinations` | Verify all SBOM packages exist in official registries | Before deploying, to catch AI-invented packages |
|
|
95
|
+
| `sbom_diff` | Compare current SBOM against baseline, detect added/removed/changed packages | In CI/CD to track dependency drift |
|
|
96
|
+
| `sbom_export_report` | Generate HTML or JSON audit report from SBOM with vulnerability data | For PCI-DSS compliance, security reviews |
|
|
90
97
|
|
|
91
98
|
## Quick Start
|
|
92
99
|
|
|
@@ -243,6 +250,180 @@ npx cr-agent analyze ./path/to/project -f sarif -p claude-cli
|
|
|
243
250
|
|
|
244
251
|
---
|
|
245
252
|
|
|
253
|
+
## 📦 SBOM / Supply Chain Analysis (New in v4.1.0)
|
|
254
|
+
|
|
255
|
+
Generate Software Bill of Materials (SBOM) and analyze dependencies for vulnerabilities across your entire supply chain.
|
|
256
|
+
|
|
257
|
+
### Quick Start
|
|
258
|
+
|
|
259
|
+
```bash
|
|
260
|
+
# Generate SBOM for current project
|
|
261
|
+
npx agent-security-scanner-mcp sbom-generate .
|
|
262
|
+
|
|
263
|
+
# Scan for vulnerabilities against OSV.dev
|
|
264
|
+
npx agent-security-scanner-mcp sbom-vulnerabilities .
|
|
265
|
+
|
|
266
|
+
# Check for hallucinated packages
|
|
267
|
+
npx agent-security-scanner-mcp sbom-check-hallucinations .
|
|
268
|
+
|
|
269
|
+
# Compare against baseline (CI/CD)
|
|
270
|
+
npx agent-security-scanner-mcp sbom-diff . --save-baseline # First run
|
|
271
|
+
npx agent-security-scanner-mcp sbom-diff . # Subsequent runs
|
|
272
|
+
|
|
273
|
+
# Generate HTML audit report
|
|
274
|
+
npx agent-security-scanner-mcp sbom-report . --format html
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
### Supported Ecosystems
|
|
278
|
+
|
|
279
|
+
| Ecosystem | Lock Files | Manifests | CLI Fallback |
|
|
280
|
+
|-----------|------------|-----------|--------------|
|
|
281
|
+
| **npm** | package-lock.json (v2/v3), yarn.lock (classic/berry), pnpm-lock.yaml | package.json | `npm ls`, `pnpm list` |
|
|
282
|
+
| **Python** | poetry.lock, Pipfile.lock | requirements.txt, pyproject.toml | — |
|
|
283
|
+
| **Go** | go.sum | go.mod | `go list` |
|
|
284
|
+
| **Rust** | Cargo.lock | — | `cargo metadata` |
|
|
285
|
+
| **Ruby** | Gemfile.lock | Gemfile | — |
|
|
286
|
+
| **Java** | — | pom.xml, build.gradle | `mvn dependency:tree` |
|
|
287
|
+
|
|
288
|
+
### SBOM Tools
|
|
289
|
+
|
|
290
|
+
#### `sbom_generate`
|
|
291
|
+
|
|
292
|
+
Generate a CycloneDX v1.5 SBOM for a project. Discovers all dependencies (direct + transitive) from lock files and manifests.
|
|
293
|
+
|
|
294
|
+
```json
|
|
295
|
+
// Input
|
|
296
|
+
{ "directory_path": "./my-project", "verbosity": "compact" }
|
|
297
|
+
|
|
298
|
+
// Output
|
|
299
|
+
{
|
|
300
|
+
"total_components": 212,
|
|
301
|
+
"direct": 20,
|
|
302
|
+
"dev": 91,
|
|
303
|
+
"ecosystems": ["npm", "pypi"],
|
|
304
|
+
"components": [
|
|
305
|
+
{ "name": "express", "version": "4.18.2", "ecosystem": "npm", "isDirect": true }
|
|
306
|
+
]
|
|
307
|
+
}
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
#### `sbom_scan_vulnerabilities`
|
|
311
|
+
|
|
312
|
+
Cross-reference SBOM components against OSV.dev vulnerability database. Returns CVE IDs, CVSS scores, severity, and fix recommendations.
|
|
313
|
+
|
|
314
|
+
```json
|
|
315
|
+
// Input
|
|
316
|
+
{ "directory_path": "./my-project", "severity_threshold": "medium" }
|
|
317
|
+
|
|
318
|
+
// Output
|
|
319
|
+
{
|
|
320
|
+
"total_vulnerabilities": 3,
|
|
321
|
+
"by_severity": { "critical": 1, "high": 1, "medium": 1 },
|
|
322
|
+
"vulnerabilities": [
|
|
323
|
+
{
|
|
324
|
+
"id": "GHSA-xxxx-yyyy-zzzz",
|
|
325
|
+
"package": "lodash",
|
|
326
|
+
"severity": "critical",
|
|
327
|
+
"cvss": 9.8,
|
|
328
|
+
"fixed_version": "4.17.21"
|
|
329
|
+
}
|
|
330
|
+
]
|
|
331
|
+
}
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
#### `sbom_check_hallucinations`
|
|
335
|
+
|
|
336
|
+
Check all packages in an SBOM against official registries to detect AI-invented package names.
|
|
337
|
+
|
|
338
|
+
```json
|
|
339
|
+
// Input
|
|
340
|
+
{ "directory_path": "./my-project" }
|
|
341
|
+
|
|
342
|
+
// Output
|
|
343
|
+
{
|
|
344
|
+
"total_checked": 212,
|
|
345
|
+
"hallucinated_count": 1,
|
|
346
|
+
"unsupported_ecosystems": ["go", "java"],
|
|
347
|
+
"hallucinated": [
|
|
348
|
+
{ "name": "react-async-utils-helper", "ecosystem": "npm" }
|
|
349
|
+
]
|
|
350
|
+
}
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
#### `sbom_diff`
|
|
354
|
+
|
|
355
|
+
Compare current project SBOM against a stored baseline. Detects added, removed, and version-changed packages.
|
|
356
|
+
|
|
357
|
+
```json
|
|
358
|
+
// Input (first run)
|
|
359
|
+
{ "directory_path": "./my-project", "save_baseline": true }
|
|
360
|
+
|
|
361
|
+
// Output
|
|
362
|
+
{ "message": "Baseline saved to .scanner/sbom-baseline.json" }
|
|
363
|
+
|
|
364
|
+
// Input (subsequent runs)
|
|
365
|
+
{ "directory_path": "./my-project" }
|
|
366
|
+
|
|
367
|
+
// Output
|
|
368
|
+
{
|
|
369
|
+
"added": [{ "name": "lodash", "version": "4.17.21", "ecosystem": "npm" }],
|
|
370
|
+
"removed": [],
|
|
371
|
+
"changed": [{ "name": "express", "from": "4.17.1", "to": "4.18.2" }]
|
|
372
|
+
}
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
#### `sbom_export_report`
|
|
376
|
+
|
|
377
|
+
Generate an HTML or JSON audit report from SBOM data, optionally enriched with vulnerability scan results.
|
|
378
|
+
|
|
379
|
+
```json
|
|
380
|
+
// Input
|
|
381
|
+
{
|
|
382
|
+
"directory_path": "./my-project",
|
|
383
|
+
"format": "html",
|
|
384
|
+
"include_vulnerabilities": true,
|
|
385
|
+
"output_path": "./sbom-report.html"
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
// Output
|
|
389
|
+
{
|
|
390
|
+
"report_path": "./sbom-report.html",
|
|
391
|
+
"components": 212,
|
|
392
|
+
"vulnerabilities": 3
|
|
393
|
+
}
|
|
394
|
+
```
|
|
395
|
+
|
|
396
|
+
### CLI Commands
|
|
397
|
+
|
|
398
|
+
```bash
|
|
399
|
+
# Generate SBOM
|
|
400
|
+
sbom-generate <dir> [--save] [--output <path>] [--verbosity minimal|compact|full]
|
|
401
|
+
|
|
402
|
+
# Scan vulnerabilities
|
|
403
|
+
sbom-vulnerabilities <dir> [--sbom-path <path>] [--verbosity minimal|compact|full]
|
|
404
|
+
|
|
405
|
+
# Check hallucinations
|
|
406
|
+
sbom-check-hallucinations <dir> [--verbosity minimal|compact|full]
|
|
407
|
+
|
|
408
|
+
# Compare baseline
|
|
409
|
+
sbom-diff <dir> [--save-baseline] [--baseline-path <path>] [--verbosity minimal|compact|full]
|
|
410
|
+
|
|
411
|
+
# Generate report
|
|
412
|
+
sbom-report <dir> [--format html|json] [--output <path>] [--no-vulnerabilities]
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
### Features
|
|
416
|
+
|
|
417
|
+
- **CycloneDX v1.5 JSON** — Industry-standard SBOM format
|
|
418
|
+
- **OSV.dev Integration** — Real-time vulnerability data with 24-hour local cache
|
|
419
|
+
- **Multi-Ecosystem** — Single scan discovers dependencies across all package managers
|
|
420
|
+
- **Direct vs Transitive** — Distinguishes direct dependencies from transitive ones
|
|
421
|
+
- **Dev Dependencies** — Optionally include/exclude development dependencies
|
|
422
|
+
- **Baseline Comparison** — Track dependency drift over time
|
|
423
|
+
- **HTML Reports** — Visual dashboard with severity charts for compliance audits
|
|
424
|
+
|
|
425
|
+
---
|
|
426
|
+
|
|
246
427
|
## Tool Reference
|
|
247
428
|
|
|
248
429
|
### `scan_security`
|
|
@@ -1158,7 +1339,7 @@ AI coding agents introduce attack surfaces that traditional security tools weren
|
|
|
1158
1339
|
|----------|-------|
|
|
1159
1340
|
| **Transport** | stdio |
|
|
1160
1341
|
| **Package** | `agent-security-scanner-mcp` (npm) |
|
|
1161
|
-
| **Tools** |
|
|
1342
|
+
| **Tools** | 17 |
|
|
1162
1343
|
| **Languages** | 12 |
|
|
1163
1344
|
| **Ecosystems** | 7 |
|
|
1164
1345
|
| **Auth** | None required |
|
|
@@ -1240,6 +1421,22 @@ All MCP tools support a `verbosity` parameter to minimize context window consump
|
|
|
1240
1421
|
|
|
1241
1422
|
## Changelog
|
|
1242
1423
|
|
|
1424
|
+
### v4.1.0 (2026-03-27) - SBOM Generation & Vulnerability Analysis
|
|
1425
|
+
|
|
1426
|
+
**🚀 New Feature: Software Bill of Materials (SBOM)**
|
|
1427
|
+
|
|
1428
|
+
- **5 New MCP Tools:** `sbom_generate`, `sbom_scan_vulnerabilities`, `sbom_check_hallucinations`, `sbom_diff`, `sbom_export_report`
|
|
1429
|
+
- **CycloneDX v1.5:** Industry-standard SBOM format output
|
|
1430
|
+
- **8 Lock File Parsers:** package-lock.json (v2/v3), yarn.lock (classic/berry), pnpm-lock.yaml, poetry.lock, Pipfile.lock, Cargo.lock, go.sum, Gemfile.lock
|
|
1431
|
+
- **7 Manifest Parsers:** package.json, requirements.txt, pyproject.toml, go.mod, Gemfile, pom.xml, build.gradle
|
|
1432
|
+
- **CLI Fallbacks:** npm ls, pnpm list, cargo metadata, go list, mvn dependency:tree
|
|
1433
|
+
- **OSV.dev Integration:** Real-time vulnerability database with 24-hour local cache
|
|
1434
|
+
- **Baseline Comparison:** Track dependency drift with save/compare workflow
|
|
1435
|
+
- **HTML Reports:** Visual dashboard with severity charts for compliance
|
|
1436
|
+
- **86 New Tests:** Comprehensive coverage across all SBOM features
|
|
1437
|
+
|
|
1438
|
+
---
|
|
1439
|
+
|
|
1243
1440
|
### v4.0.0 (2026-03-21) - LLM-Powered Code Review Agent
|
|
1244
1441
|
|
|
1245
1442
|
**🚀 Major Release: LLM-Powered Semantic Code Review**
|
|
@@ -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
|
|
@@ -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,
|
|
@@ -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":";AAEA,0EAA0E;AAC1E,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC;AAEtC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAIpE,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,wCAAwC,CAAC;KACrD,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,0DAA0D,CAAC;KACvE,QAAQ,CAAC,UAAU,EAAE,8BAA8B,CAAC;KACpD,MAAM,CAAC,eAAe,EAAE,iCAAiC,CAAC;KAC1D,MAAM,CAAC,iBAAiB,EAAE,+BAA+B,CAAC;KAC1D,MAAM,CAAC,2BAA2B,EAAE,4CAA4C,CAAC;KACjF,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;KAC1D,MAAM,CAAC,wBAAwB,EAAE,yBAAyB,CAAC;KAC3D,MAAM,CAAC,8BAA8B,EAAE,4BAA4B,EAAE,UAAU,CAAC;KAChF,MAAM,CAAC,uBAAuB,EAAE,iCAAiC,CAAC;KAClE,MAAM,CAAC,eAAe,EAAE,gBAAgB,CAAC;KACzC,MAAM,CAAC,yBAAyB,EAAE,qBAAqB,CAAC;KACxD,MAAM,CAAC,uBAAuB,EAAE,mBAAmB,EAAE,QAAQ,CAAC;KAC9D,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,KAA8B,EAAE,EAAE;IAC/D,IAAI,CAAC;QACH,4CAA4C;QAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,iBAAiB,GAAG,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE;YACjE,CAAC,CAAC,cAAc;YAChB,CAAC,CAAC,eAAe,CAAC,cAAc,CAAC,CAAC;QACpC,MAAM,MAAM,GAAG,UAAU,CAAC,iBAAiB,CAAC,CAAC;QAC7C,MAAM,IAAI,GAA6B,KAAK,CAAC,YAAY;YACvD,CAAC,CAAC,UAAU;YACZ,CAAC,CAAE,KAAK,CAAC,IAAiC,CAAC;QAC7C,MAAM,OAAO,GAAG,cAAc,CAC5B;YACE,IAAI;YACJ,QAAQ,EAAE,KAAK,CAAC,QAAmD;YACnE,KAAK,EAAE,KAAK,CAAC,KAA2B;YACxC,WAAW,EAAE,KAAK,CAAC,WAAiC;YACpD,mBAAmB,EAAE,KAAK,CAAC,UAAgC;YAC3D,MAAM,EAAG,KAAK,CAAC,MAAoC,IAAI,MAAM;YAC7D,OAAO,EAAE,KAAK,CAAC,OAA8B;YAC7C,OAAO,EAAE,KAAK,CAAC,OAA+B;YAC9C,gBAAgB,EAAE,KAAK,CAAC,WAAiC;YACzD,WAAW,EAAE,iBAAiB;SAC/B,EACD,MAAM,CACP,CAAC;QAEF,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC;QAC/C,IAAI,QAAQ,GAAG,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YACzE,MAAM,KAAK,GAA2B;gBACpC,QAAQ,EAAE,gBAAgB;gBAC1B,OAAO,EAAG,gBAAgB;gBAC1B,MAAM,EAAI,gBAAgB;gBAC1B,KAAK,EAAK,gBAAgB;gBAC1B,MAAM,EAAI,gBAAgB;gBAC1B,OAAO,EAAG,gBAAgB;gBAC1B,QAAQ,EAAE,gBAAgB;gBAC1B,IAAI,EAAM,YAAY;aACvB,CAAC;YACF,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC;YACzC,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;gBACtB,mDAAmD;gBACnD,IAAI,QAAQ;oBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACzC,QAAQ,GAAG,IAAI,CAAC;gBAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;YAC/D,CAAC;iBAAM,CAAC;gBACN,8DAA8D;gBAC9D,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,MAAM,IAAI,EAAE,EAAE,CAAC,CAAC;YACtE,CAAC;YACD,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACf,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE5C,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC/C,CAAC;aAAM,IAAI,OAAO,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;YACtC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACxD,CAAC;aAAM,CAAC;YACN,eAAe,CAAC,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACxG,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,iDAAiD;QACjD,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,MAAM,QAAQ,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QAClD,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,uCAAuC,CAAC;KACpD,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;KACtC,MAAM,CAAC,2BAA2B,EAAE,4CAA4C,CAAC;KACjF,MAAM,CAAC,qBAAqB,EAAE,cAAc,CAAC;KAC7C,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,KAA8B,EAAE,EAAE;IAC5D,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;QAC/B,MAAM,OAAO,GAAG,cAAc,CAC5B;YACE,QAAQ,EAAE,KAAK,CAAC,QAAmD;YACnE,KAAK,EAAE,KAAK,CAAC,KAA2B;YACxC,WAAW,EAAE,GAAG;SACjB,EACD,MAAM,CACP,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,OAAO,CAAC,CAAC;QACxC,MAAM,QAAQ,GAAG,IAAI,cAAc,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;QAClE,MAAM,cAAc,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAEtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAC7D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,CAAC;QAClD,KAAK,MAAM,CAAC,IAAI,MAAM,CAAC,mBAAmB,EAAE,CAAC;YAC3C,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7D,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;QACvE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yCAAyC,CAAC;KACtD,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;KACtC,MAAM,CAAC,CAAC,GAAW,EAAE,EAAE;IACtB,MAAM,OAAO,GAAG,IAAI,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAEhD,mEAAmE;IACnE,MAAM,SAAS,GAAG,yEAAyE,CAAC;IAC5F,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACvG,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,MAAM,SAAS,GAAG,CAAC,CAAS,EAAE,EAAE;QAC9B,IAAI,UAAsC,CAAC;QAC3C,IAAI,CAAC;YAAC,UAAU,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO;QAAC,CAAC;QAClF,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YACvE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;YACtC,IAAI,KAAK,CAAC,WAAW,EAAE;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC;iBACpC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC;IACF,SAAS,CAAC,GAAG,CAAC,CAAC;IAEf,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAE/E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,uBAAuB,KAAK,CAAC,KAAK,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC;IAC5E,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,4BAA4B;AAE5B,SAAS,eAAe,CAAC,MAAsB,EAAE,OAAgB;IAC/D,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,GAAG,MAAM,CAAC;IAElD,IAAI,aAAa,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,GAAG,CAAC,cAAc,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,aAAa,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;QACrD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAC;IAC1E,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,MAAM,eAAe,CAAC,CAAC,CAAC;QAC7D,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,YAAY,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,YAAY,EAAE,CAAC,CAAC;IACtD,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,CAAC,aAAa,EAAE,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,eAAe,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACpE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,YAAY,CAAC,CAAU,EAAE,OAAgB;IAChD,MAAM,cAAc,GAA0C;QAC5D,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;QAChC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI;QACpB,MAAM,EAAE,KAAK,CAAC,MAAM;QACpB,GAAG,EAAE,KAAK,CAAC,IAAI;QACf,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;IAEF,MAAM,OAAO,GAAG,cAAc,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC;IAC1D,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,SAAS,GACb,CAAC,CAAC,eAAe,KAAK,iBAAiB,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC;QACxE,CAAC,CAAC,eAAe,KAAK,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACxE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAExB,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;IACnC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,KAAK,SAAS,iBAAiB,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC;IAC7I,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEvE,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;QAC3D,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAED,SAAS,eAAe,CAAC,QAAgB;IACvC,MAAM,OAAO,GAAG,CAAC,cAAc,EAAE,gBAAgB,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,EAAE,gBAAgB,CAAC,CAAC;IACzH,IAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,OAAO,GAAG,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACjC,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;YAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;YAAC,OAAO,IAAI,CAAC;QAAC,CAAC;QAAC,MAAM,CAAC;YAAC,OAAO,KAAK,CAAC;QAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1G,OAAO,GAAG,CAAC;QACb,CAAC;QACD,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC9C,CAAC;AAED,SAAS,OAAO,CAAC,MAAsB;IACrC,OAAO;QACL,OAAO,EAAE,sGAAsG;QAC/G,OAAO,EAAE,OAAO;QAChB,IAAI,EAAE;YACJ;gBACE,IAAI,EAAE;oBACJ,MAAM,EAAE;wBACN,IAAI,EAAE,UAAU;wBAChB,OAAO,EAAE,OAAO;wBAChB,cAAc,EAAE,0DAA0D;wBAC1E,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;4BACpC,EAAE,EAAE,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;4BACzC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;4BACjC,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,EAAE;4BACnC,eAAe,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE;4BACtC,oBAAoB,EAAE;gCACpB,KAAK,EAAE,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;oCAC9D,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;6BACpD;4BACD,UAAU,EAAE;gCACV,QAAQ,EAAE,CAAC,CAAC,QAAQ;gCACpB,eAAe,EAAE,CAAC,CAAC,eAAe;6BACnC;yBACF,CAAC,CAAC;qBACJ;iBACF;gBACD,OAAO,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;oBACtC,MAAM,EAAE,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;oBAC7C,KAAK,EAAE,CAAC,CAAC,QAAQ,KAAK,UAAU,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;wBAC9D,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM;oBACnD,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,SAAS,EAAE;oBAC9B,SAAS,EAAE;wBACT;4BACE,gBAAgB,EAAE;gCAChB,gBAAgB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE;gCAC1C,MAAM,EAAE;oCACN,SAAS,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS;oCAC/B,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,OAAO;iCAC5B;6BACF;yBACF;qBACF;oBACD,UAAU,EAAE;wBACV,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,eAAe,EAAE,CAAC,CAAC,eAAe;wBAClC,eAAe,EAAE,CAAC,CAAC,eAAe;wBAClC,GAAG,EAAE,CAAC,CAAC,GAAG;wBACV,KAAK,EAAE,CAAC,CAAC,KAAK;qBACf;iBACF,CAAC,CAAC;aACJ;SACF;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -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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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Finding } from '../types/findings.js';
|
|
2
|
+
import type { AnalysisMode } from '../types/config.js';
|
|
3
|
+
/**
|
|
4
|
+
* Apply mode-aware post-filtering to findings.
|
|
5
|
+
* In review mode, returns findings unchanged.
|
|
6
|
+
* In security mode, drops non-security findings and suppresses weak evidence.
|
|
7
|
+
*/
|
|
8
|
+
export declare function postFilterFindings(findings: Finding[], mode: AnalysisMode): Finding[];
|
|
9
|
+
/**
|
|
10
|
+
* Suppress carrier findings when a sink-localized equivalent exists.
|
|
11
|
+
* A carrier finding describes data flowing through a file, while the sink
|
|
12
|
+
* finding describes the actual dangerous operation in a downstream file.
|
|
13
|
+
*/
|
|
14
|
+
export declare function suppressCarrierFindings(findings: Finding[]): Finding[];
|
|
15
|
+
//# sourceMappingURL=postprocess.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"postprocess.d.ts","sourceRoot":"","sources":["../../../src/analyzer/postprocess.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAY,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AA8CvD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,OAAO,EAAE,EACnB,IAAI,EAAE,YAAY,GACjB,OAAO,EAAE,CAMX;AAmID;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,CAuFtE"}
|