coverme-scanner 1.5.1 → 1.5.2

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.
@@ -60,6 +60,18 @@ cat .coverme/runtime.json 2>/dev/null || echo "NO_RUNTIME_CONFIG"
60
60
 
61
61
  Launch ALL agents IN PARALLEL using the Task tool with `run_in_background: true`.
62
62
 
63
+ **CRITICAL FOR CONTEXT MANAGEMENT**: Each agent MUST return ONLY a compact JSON array of findings.
64
+ - NO explanatory text before or after the JSON
65
+ - NO tool output summaries
66
+ - ONLY the final JSON array
67
+ - Keep descriptions short (max 100 chars)
68
+ - If no findings, return: `[]`
69
+
70
+ Example agent output format:
71
+ ```json
72
+ [{"id":"SEC-001","title":"SQL Injection","severity":"critical","file":"src/db.ts","line":45,"description":"User input concatenated into query","recommendation":"Use parameterized queries"}]
73
+ ```
74
+
63
75
  ### Agent 1: Security Core Scanner (SEC)
64
76
  ```
65
77
  Scan for OWASP Top 10 and common vulnerabilities:
@@ -109,7 +121,8 @@ DATABASE-SPECIFIC DANGEROUS FUNCTIONS:
109
121
  - MongoDB: $where with user input, mapReduce with user functions
110
122
  - Redis: EVAL/EVALSHA with user input, CONFIG, DEBUG commands
111
123
 
112
- Output JSON: [{id: "SEC-XXX", title, severity, category, file, line, code, description, impact, recommendation, cwe, confidence, fixOwner, fixType, dread: {damage, reproducibility, exploitability, affectedUsers, discoverability, score}}]
124
+ RETURN ONLY THIS JSON (no other text):
125
+ [{"id":"SEC-001","title":"...","severity":"critical|high|medium|low","file":"path","line":N,"description":"max 100 chars","recommendation":"max 100 chars"}]
113
126
  ```
114
127
 
115
128
  ### Agent 2: Auth & Session Scanner (AUTH)
@@ -154,7 +167,7 @@ TIMING ATTACKS:
154
167
  - Non-constant-time string comparison for tokens/secrets
155
168
  - Early return on auth failure leaking valid usernames
156
169
 
157
- Output JSON: [{id: "AUTH-XXX", ...full format with DREAD}]
170
+ RETURN ONLY JSON: [{"id":"AUTH-001","title":"...","severity":"...","file":"...","line":N,"description":"...","recommendation":"..."}]
158
171
  ```
159
172
 
160
173
  ### Agent 3: API Security Scanner (API)
@@ -191,7 +204,7 @@ WEBHOOKS:
191
204
  - SSRF via webhook URLs
192
205
  - No webhook replay protection
193
206
 
194
- Output JSON: [{id: "API-XXX", ...full format with DREAD}]
207
+ RETURN ONLY JSON: [{"id":"API-001","title":"...","severity":"...","file":"...","line":N,"description":"...","recommendation":"..."}]
195
208
  ```
196
209
 
197
210
  ### Agent 4: Infrastructure Scanner (INFRA)
@@ -230,7 +243,7 @@ DEPENDENCY SECURITY (HIGH if missing):
230
243
  - Dependabot/Renovate configuration
231
244
  - SBOM generation
232
245
 
233
- Output JSON: [{id: "INFRA-XXX", ...full format with DREAD}]
246
+ RETURN ONLY JSON: [{"id":"INFRA-001","title":"...","severity":"...","file":"...","line":N,"description":"...","recommendation":"..."}]
234
247
  ```
235
248
 
236
249
  ### Agent 5: Data & Privacy Scanner (DATA)
@@ -261,7 +274,7 @@ SECRETS:
261
274
  - Secrets in environment files committed
262
275
  - .env files not in .gitignore
263
276
 
264
- Output JSON: [{id: "DATA-XXX", ...full format with DREAD}]
277
+ RETURN ONLY JSON: [{"id":"DATA-001","title":"...","severity":"...","file":"...","line":N,"description":"...","recommendation":"..."}]
265
278
  ```
266
279
 
267
280
  ### Agent 6: AI/LLM Security Scanner (AI)
@@ -289,7 +302,7 @@ SUPPLY CHAIN:
289
302
  - CDN imports without Subresource Integrity (SRI)
290
303
  - Unpinned AI model versions
291
304
 
292
- Output JSON: [{id: "AI-XXX", ...full format with DREAD}]
305
+ RETURN ONLY JSON (no other text): []
293
306
  ```
294
307
 
295
308
  ### Agent 7: Performance & DoS Scanner (PERF)
@@ -319,7 +332,7 @@ DANGEROUS DATABASE OPERATIONS IN HOT PATHS:
319
332
  - MongoDB find() without limit
320
333
  - SQL SELECT without LIMIT
321
334
 
322
- Output JSON: [{id: "PERF-XXX", ...full format with DREAD}]
335
+ RETURN ONLY JSON (no other text): []
323
336
  ```
324
337
 
325
338
  ### Agent 8: Business Logic Scanner (BIZ)
@@ -343,7 +356,7 @@ FINANCIAL:
343
356
  - Negative amount bypass
344
357
  - Discount stacking exploits
345
358
 
346
- Output JSON: [{id: "BIZ-XXX", ...full format with DREAD}]
359
+ RETURN ONLY JSON (no other text): []
347
360
  ```
348
361
 
349
362
  ### Agent 9: Code Quality Scanner (QUAL)
@@ -374,7 +387,7 @@ DEAD CODE WITH SECURITY IMPLICATIONS:
374
387
  - Old/commented code that has BETTER security than current code
375
388
  - Deprecated functions with security controls not ported
376
389
 
377
- Output JSON: [{id: "QUAL-XXX", ...full format with DREAD}]
390
+ RETURN ONLY JSON (no other text): []
378
391
  ```
379
392
 
380
393
  ### Agent 10: Testing & Reliability Scanner (TEST)
@@ -399,7 +412,7 @@ RELIABILITY:
399
412
  - No circuit breakers for external calls
400
413
  - Missing retry logic with backoff
401
414
 
402
- Output JSON: [{id: "TEST-XXX", ...full format with DREAD}]
415
+ RETURN ONLY JSON (no other text): []
403
416
  ```
404
417
 
405
418
  ### Agent 11: Redis & Cache Security Scanner (REDIS)
@@ -433,7 +446,7 @@ RACE CONDITIONS:
433
446
  - Missing WATCH/MULTI/EXEC for transactions
434
447
  - INCR + EXPIRE not atomic
435
448
 
436
- Output JSON: [{id: "REDIS-XXX", ...full format with DREAD}]
449
+ RETURN ONLY JSON (no other text): []
437
450
  ```
438
451
 
439
452
  ### Agent 12: Resilience & Fallback Scanner (RESIL)
@@ -465,7 +478,7 @@ HEALTH CHECKS:
465
478
  - Health check that calls external dependencies
466
479
  - No distinction between liveness and readiness
467
480
 
468
- Output JSON: [{id: "RESIL-XXX", ...full format with DREAD}]
481
+ RETURN ONLY JSON (no other text): []
469
482
  ```
470
483
 
471
484
  ### Agent 13: PII & Sensitive Data Scanner (PII)
@@ -501,7 +514,7 @@ SENSITIVE DATA TYPES TO FIND:
501
514
  - Health/medical information
502
515
  - Authentication credentials
503
516
 
504
- Output JSON: [{id: "PII-XXX", ...full format with DREAD}]
517
+ RETURN ONLY JSON (no other text): []
505
518
  ```
506
519
 
507
520
  ### Agent 14: Dead Code & Unused Scanner (DEAD)
@@ -529,7 +542,7 @@ SECURITY IMPLICATIONS:
529
542
  - Unused auth middleware (was security removed?)
530
543
  - Dead validation code (security regression?)
531
544
 
532
- Output JSON: [{id: "DEAD-XXX", ...full format with DREAD}]
545
+ RETURN ONLY JSON (no other text): []
533
546
  ```
534
547
 
535
548
  ### Agent 15: Database Security Scanner (DB)
@@ -572,7 +585,7 @@ ORM SPECIFIC:
572
585
  - TypeORM repository.query() with string concat - VULNERABLE
573
586
  - Mongoose User.find({ username: req.body.username }) - operator injection
574
587
 
575
- Output JSON: [{id: "DB-XXX", ...full format with DREAD}]
588
+ RETURN ONLY JSON (no other text): []
576
589
  ```
577
590
 
578
591
  ### Agent 16: Network & Architecture Scanner (ARCH)
@@ -596,7 +609,7 @@ KUBERNETES/INFRASTRUCTURE:
596
609
  - LoadBalancer exposing internal services
597
610
  - Pod-to-pod communication without restrictions
598
611
 
599
- Output JSON: [{id: "ARCH-XXX", ...full format with notCodeFix: true if devops/architect}]
612
+ RETURN ONLY JSON (no other text): []
600
613
  ```
601
614
 
602
615
  ### Agent 17: Design Decision Detector (DESIGN)
@@ -676,7 +689,7 @@ ENCLAVE REGISTRATION:
676
689
  - IP-based trust without cryptographic verification
677
690
  - Enclave secrets transmitted without encryption
678
691
 
679
- Output JSON: [{id: "ENC-XXX", ...full format with DREAD}]
692
+ RETURN ONLY JSON (no other text): []
680
693
  ```
681
694
 
682
695
  ### Agent 20: Executive Summary Generator (EXEC)
@@ -770,7 +783,7 @@ STEP 3: Compare and Generate Findings
770
783
  | ReadOnlyRootFilesystem not enforced | HIGH |
771
784
  | Unexpected ports exposed | MEDIUM |
772
785
 
773
- Output JSON: [{id: "RUNTIME-XXX", expected: {...}, actual: {...}, ...full format}]
786
+ RETURN ONLY JSON (no other text): []
774
787
  ```
775
788
 
776
789
  ---
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coverme-scanner",
3
- "version": "1.5.1",
3
+ "version": "1.5.2",
4
4
  "description": "AI-powered code scanner with multi-agent verification for Claude Code. One command scans everything.",
5
5
  "main": "dist/index.js",
6
6
  "files": [