@clear-capabilities/agentic-security-scanner 0.75.0 → 0.77.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.
Files changed (68) hide show
  1. package/CHANGELOG.md +57 -0
  2. package/bin/agentic-security.js +2 -2
  3. package/dist/838.index.js +152 -0
  4. package/dist/{634.index.js → 985.index.js} +21 -144
  5. package/dist/agentic-security.mjs +8 -8
  6. package/dist/agentic-security.mjs.sha256 +1 -1
  7. package/package.json +6 -6
  8. package/src/mcp/tools.js +17 -2
  9. package/src/sca/base-images.json +1 -1
  10. package/bin/.agentic-security/findings.json +0 -1596
  11. package/bin/.agentic-security/last-scan.json +0 -1596
  12. package/bin/.agentic-security/last-scan.json.sig +0 -1
  13. package/bin/.agentic-security/scan-history.json +0 -470
  14. package/bin/.agentic-security/streak.json +0 -25
  15. package/dist/218.index.js +0 -793
  16. package/dist/601.index.js +0 -1038
  17. package/src/.agentic-security/findings.json +0 -80844
  18. package/src/.agentic-security/last-scan.json +0 -80844
  19. package/src/.agentic-security/last-scan.json.sig +0 -1
  20. package/src/.agentic-security/scan-history.json +0 -8408
  21. package/src/.agentic-security/streak.json +0 -26
  22. package/src/dataflow/.agentic-security/findings.json +0 -3487
  23. package/src/dataflow/.agentic-security/last-scan.json +0 -3487
  24. package/src/dataflow/.agentic-security/last-scan.json.sig +0 -1
  25. package/src/dataflow/.agentic-security/scan-history.json +0 -735
  26. package/src/dataflow/.agentic-security/streak.json +0 -24
  27. package/src/integrations/.agentic-security/findings.json +0 -1504
  28. package/src/integrations/.agentic-security/last-scan.json +0 -1504
  29. package/src/integrations/.agentic-security/scan-history.json +0 -40
  30. package/src/integrations/.agentic-security/streak.json +0 -21
  31. package/src/ir/.agentic-security/findings.json +0 -3036
  32. package/src/ir/.agentic-security/last-scan.json +0 -3036
  33. package/src/ir/.agentic-security/last-scan.json.sig +0 -1
  34. package/src/ir/.agentic-security/scan-history.json +0 -364
  35. package/src/ir/.agentic-security/streak.json +0 -23
  36. package/src/llm-validator/.agentic-security/findings.json +0 -1891
  37. package/src/llm-validator/.agentic-security/last-scan.json +0 -1891
  38. package/src/llm-validator/.agentic-security/last-scan.json.sig +0 -1
  39. package/src/llm-validator/.agentic-security/scan-history.json +0 -168
  40. package/src/llm-validator/.agentic-security/streak.json +0 -20
  41. package/src/lsp/.agentic-security/findings.json +0 -28
  42. package/src/lsp/.agentic-security/last-scan.json +0 -28
  43. package/src/lsp/.agentic-security/scan-history.json +0 -79
  44. package/src/lsp/.agentic-security/streak.json +0 -22
  45. package/src/mcp/.agentic-security/findings.json +0 -8358
  46. package/src/mcp/.agentic-security/last-scan.json +0 -8358
  47. package/src/mcp/.agentic-security/last-scan.json.sig +0 -1
  48. package/src/mcp/.agentic-security/scan-history.json +0 -1125
  49. package/src/mcp/.agentic-security/streak.json +0 -22
  50. package/src/posture/.agentic-security/findings.json +0 -51239
  51. package/src/posture/.agentic-security/last-scan.json +0 -51239
  52. package/src/posture/.agentic-security/last-scan.json.sig +0 -1
  53. package/src/posture/.agentic-security/scan-history.json +0 -5557
  54. package/src/posture/.agentic-security/streak.json +0 -24
  55. package/src/report/.agentic-security/findings.json +0 -79
  56. package/src/report/.agentic-security/last-scan.json +0 -79
  57. package/src/report/.agentic-security/last-scan.json.sig +0 -1
  58. package/src/report/.agentic-security/scan-history.json +0 -332
  59. package/src/report/.agentic-security/streak.json +0 -23
  60. package/src/sast/.agentic-security/findings.json +0 -5051
  61. package/src/sast/.agentic-security/last-scan.json +0 -5051
  62. package/src/sast/.agentic-security/last-scan.json.sig +0 -1
  63. package/src/sast/.agentic-security/scan-history.json +0 -788
  64. package/src/sast/.agentic-security/streak.json +0 -23
  65. package/src/sast/bench-shape/.agentic-security/findings.json +0 -28
  66. package/src/sast/bench-shape/.agentic-security/last-scan.json +0 -28
  67. package/src/sast/bench-shape/.agentic-security/scan-history.json +0 -24
  68. package/src/sast/bench-shape/.agentic-security/streak.json +0 -22
@@ -1 +1 @@
1
- 9b8c48466f12498ebcb4bcd80d6975a6c11be18efeb7ff944c6851dd0b2a5a4c agentic-security.mjs
1
+ eb8ec4e943af9857994437dfc4af9886d2b254591dd61da56f061d007403f112 agentic-security.mjs
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clear-capabilities/agentic-security-scanner",
3
- "version": "0.75.0",
3
+ "version": "0.77.0",
4
4
  "description": "Scanner engine for the agentic-security Claude Code plugin \u2014 SAST, SCA (function-level reachability + CISA KEV), secrets, IaC, prompt-injection, MCP/agent-tool audit, auth/authZ deep analysis, attack chains, PoC generation, business logic, toxic-combinations scoring, SBOM, SARIF ingest, pipeline integrity, compliance attestation, and more.",
5
5
  "type": "module",
6
6
  "main": "src/index.js",
@@ -30,13 +30,13 @@
30
30
  "CHANGELOG.md"
31
31
  ],
32
32
  "engines": {
33
- "node": ">=22.0.0"
33
+ "node": ">=24.0.0"
34
34
  },
35
35
  "dependencies": {
36
- "@babel/core": "^7.24.0",
37
- "@babel/preset-react": "^7.24.0",
38
- "@babel/preset-typescript": "^7.24.0",
39
- "fast-glob": "^3.3.2",
36
+ "@babel/core": "^7.29.7",
37
+ "@babel/preset-react": "^7.29.7",
38
+ "@babel/preset-typescript": "^7.29.7",
39
+ "fast-glob": "^3.3.3",
40
40
  "java-parser": "^3.0.1",
41
41
  "js-yaml": "^4.1.1",
42
42
  "safe-regex": "^2.1.1"
package/src/mcp/tools.js CHANGED
@@ -16,11 +16,24 @@ import * as fs from 'node:fs';
16
16
  import * as fsp from 'node:fs/promises';
17
17
  import * as path from 'node:path';
18
18
  import * as crypto from 'node:crypto';
19
- import { runScan } from '../runScan.js';
20
19
  import { applyFix as applyFixHistory } from '../posture/fix-history.js';
21
20
  import { verifyLastScan } from '../posture/integrity.js';
22
21
  import { redactString, redactFinding } from './redact.js';
23
- import { verifyFix as verifyFixCore } from '../posture/fix-verify.js';
22
+
23
+ // Lazy-loaded: these transitively pull in npm packages (fast-glob,
24
+ // @babel/core) that aren't available in the plugin-cache install path
25
+ // (no node_modules). Deferring keeps the MCP server bootable everywhere;
26
+ // the import only runs when a tool that needs them is actually called.
27
+ let _runScan;
28
+ async function getRunScan() {
29
+ if (!_runScan) _runScan = (await import('../runScan.js')).runScan;
30
+ return _runScan;
31
+ }
32
+ let _verifyFixCore;
33
+ async function getVerifyFixCore() {
34
+ if (!_verifyFixCore) _verifyFixCore = (await import('../posture/fix-verify.js')).verifyFix;
35
+ return _verifyFixCore;
36
+ }
24
37
 
25
38
  const MAX_FILES_PER_SCAN = 1024;
26
39
  const MAX_FILE_BYTES = 500_000;
@@ -315,6 +328,7 @@ export const scan_diff = {
315
328
  fileContents[rel] = content;
316
329
  }
317
330
 
331
+ const runScan = await getRunScan();
318
332
  const result = await runScan(sessionRoot, { network: false, fileContents });
319
333
  const wantSet = new Set(Object.keys(fileContents));
320
334
  const sevRank = { info: 0, low: 1, medium: 2, high: 3, critical: 4 };
@@ -588,6 +602,7 @@ export const verify_fix = {
588
602
  confined[relPath] = String(content);
589
603
  }
590
604
  try {
605
+ const verifyFixCore = await getVerifyFixCore();
591
606
  const r = await verifyFixCore({
592
607
  scanRoot: ctx.sessionRoot,
593
608
  originalFindingStableId: stable_id,
@@ -32,7 +32,7 @@
32
32
  "14": { "sev": "critical", "eol": "2023-04-30", "message": "Node.js 14 reached EOL on 2023-04-30." },
33
33
  "16": { "sev": "high", "eol": "2023-09-11", "message": "Node.js 16 reached EOL on 2023-09-11." },
34
34
  "18": { "sev": "low", "eol": "2025-04-30", "message": "Node.js 18 enters EOL on 2025-04-30." },
35
- "latest": { "sev": "low", "eol": null, "message": "node:latest is a floating tag — pin to an LTS (e.g. node:22-alpine)." }
35
+ "latest": { "sev": "low", "eol": null, "message": "node:latest is a floating tag — pin to an LTS (e.g. node:24-alpine)." }
36
36
  },
37
37
  "python": {
38
38
  "2": { "sev": "critical", "eol": "2020-01-01", "message": "Python 2 reached EOL on 2020-01-01. Migrate to Python 3." },