@clear-capabilities/agentic-security-scanner 0.76.1 → 0.78.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 (108) hide show
  1. package/bin/.agentic-security/findings.json +320 -9
  2. package/bin/.agentic-security/last-scan.json +320 -9
  3. package/bin/.agentic-security/last-scan.json.sig +1 -1
  4. package/bin/.agentic-security/scan-history.json +17 -377
  5. package/bin/.agentic-security/streak.json +11 -16
  6. package/bin/agentic-security.js +33 -2
  7. package/dist/178.index.js +1 -1
  8. package/dist/384.index.js +1 -1
  9. package/dist/637.index.js +1 -1
  10. package/dist/718.index.js +106 -0
  11. package/dist/824.index.js +126 -0
  12. package/dist/838.index.js +1 -1
  13. package/dist/agentic-security.mjs +32 -32
  14. package/dist/agentic-security.mjs.sha256 +1 -1
  15. package/package.json +7 -7
  16. package/src/.agentic-security/findings.json +5731 -3933
  17. package/src/.agentic-security/last-scan.json +5731 -3933
  18. package/src/.agentic-security/last-scan.json.sig +1 -1
  19. package/src/.agentic-security/scan-history.json +2533 -887
  20. package/src/.agentic-security/streak.json +11 -16
  21. package/src/dataflow/.agentic-security/findings.json +52 -24
  22. package/src/dataflow/.agentic-security/last-scan.json +52 -24
  23. package/src/dataflow/.agentic-security/last-scan.json.sig +1 -1
  24. package/src/dataflow/.agentic-security/scan-history.json +101 -134
  25. package/src/dataflow/.agentic-security/streak.json +8 -10
  26. package/src/dataflow/async-sequencing.js +16 -7
  27. package/src/dataflow/builtin-summaries.js +131 -0
  28. package/src/dataflow/catalog.js +107 -0
  29. package/src/dataflow/cross-repo.js +75 -1
  30. package/src/dataflow/engine.js +129 -0
  31. package/src/dataflow/implicit-flow.js +24 -6
  32. package/src/dataflow/stub-aware-filter.js +69 -11
  33. package/src/dataflow/summaries.js +28 -3
  34. package/src/engine-parallel.js +70 -0
  35. package/src/engine.js +165 -15
  36. package/src/ir/.agentic-security/findings.json +757 -16
  37. package/src/ir/.agentic-security/last-scan.json +757 -16
  38. package/src/ir/.agentic-security/last-scan.json.sig +1 -1
  39. package/src/ir/.agentic-security/scan-history.json +545 -138
  40. package/src/ir/.agentic-security/streak.json +11 -13
  41. package/src/ir/index.js +22 -1
  42. package/src/ir/parser-go.js +403 -0
  43. package/src/ir/parser-js.js +2 -0
  44. package/src/ir/parser-php.js +330 -0
  45. package/src/ir/parser-py.helper.py +137 -11
  46. package/src/ir/parser-rb.js +309 -0
  47. package/src/posture/.agentic-security/findings.json +407 -84
  48. package/src/posture/.agentic-security/last-scan.json +407 -84
  49. package/src/posture/.agentic-security/last-scan.json.sig +1 -1
  50. package/src/posture/.agentic-security/scan-history.json +16 -4923
  51. package/src/posture/.agentic-security/streak.json +10 -14
  52. package/src/posture/calibration.js +14 -0
  53. package/src/posture/triage.js +13 -0
  54. package/src/report/.agentic-security/findings.json +6 -5
  55. package/src/report/.agentic-security/last-scan.json +6 -5
  56. package/src/report/.agentic-security/last-scan.json.sig +1 -1
  57. package/src/report/.agentic-security/scan-history.json +3 -300
  58. package/src/report/.agentic-security/streak.json +7 -8
  59. package/src/report/index.js +23 -2
  60. package/src/sast/.agentic-security/findings.json +195 -56
  61. package/src/sast/.agentic-security/last-scan.json +195 -56
  62. package/src/sast/.agentic-security/last-scan.json.sig +1 -1
  63. package/src/sast/.agentic-security/scan-history.json +14 -394
  64. package/src/sast/.agentic-security/streak.json +10 -13
  65. package/src/sast/cache-poisoning.js +77 -0
  66. package/src/sast/comparison-safety.js +73 -0
  67. package/src/sast/db-taint.js +54 -0
  68. package/src/sast/graphql.js +127 -0
  69. package/src/sast/llm-stored-prompt.js +57 -0
  70. package/src/sast/mutation-xss.js +43 -0
  71. package/src/sast/nosql-injection.js +5 -0
  72. package/src/sast/null-byte-injection.js +76 -0
  73. package/src/sast/redos-nfa.js +338 -0
  74. package/src/sast/sensitive-data-logging.js +73 -0
  75. package/src/sast/weak-password-hash.js +77 -0
  76. package/src/sast/weak-randomness.js +100 -0
  77. package/src/sca/.agentic-security/findings.json +502 -11
  78. package/src/sca/.agentic-security/last-scan.json +502 -11
  79. package/src/sca/.agentic-security/last-scan.json.sig +1 -1
  80. package/src/sca/.agentic-security/scan-history.json +19 -1
  81. package/src/sca/.agentic-security/streak.json +6 -6
  82. package/src/sca/llm-function-extract.js +107 -0
  83. package/src/sca/vendor-detect.js +91 -0
  84. package/dist/218.index.js +0 -793
  85. package/dist/601.index.js +0 -1038
  86. package/dist/634.index.js +0 -1892
  87. package/src/integrations/.agentic-security/findings.json +0 -1504
  88. package/src/integrations/.agentic-security/last-scan.json +0 -1504
  89. package/src/integrations/.agentic-security/scan-history.json +0 -40
  90. package/src/integrations/.agentic-security/streak.json +0 -21
  91. package/src/llm-validator/.agentic-security/findings.json +0 -1891
  92. package/src/llm-validator/.agentic-security/last-scan.json +0 -1891
  93. package/src/llm-validator/.agentic-security/last-scan.json.sig +0 -1
  94. package/src/llm-validator/.agentic-security/scan-history.json +0 -168
  95. package/src/llm-validator/.agentic-security/streak.json +0 -20
  96. package/src/lsp/.agentic-security/findings.json +0 -28
  97. package/src/lsp/.agentic-security/last-scan.json +0 -28
  98. package/src/lsp/.agentic-security/scan-history.json +0 -79
  99. package/src/lsp/.agentic-security/streak.json +0 -22
  100. package/src/mcp/.agentic-security/findings.json +0 -8403
  101. package/src/mcp/.agentic-security/last-scan.json +0 -8403
  102. package/src/mcp/.agentic-security/last-scan.json.sig +0 -1
  103. package/src/mcp/.agentic-security/scan-history.json +0 -1182
  104. package/src/mcp/.agentic-security/streak.json +0 -22
  105. package/src/sast/bench-shape/.agentic-security/findings.json +0 -28
  106. package/src/sast/bench-shape/.agentic-security/last-scan.json +0 -28
  107. package/src/sast/bench-shape/.agentic-security/scan-history.json +0 -24
  108. package/src/sast/bench-shape/.agentic-security/streak.json +0 -22
@@ -1,255 +1,6 @@
1
1
  [
2
2
  {
3
- "timestamp": "2026-05-19T18:33:22.830Z",
4
- "label": "scan",
5
- "total": 1,
6
- "critical": 0,
7
- "high": 0,
8
- "medium": 1,
9
- "low": 0,
10
- "kev": 0,
11
- "ids": [
12
- "toctou-fs:agentic-security.js:1105"
13
- ]
14
- },
15
- {
16
- "timestamp": "2026-05-19T18:33:28.315Z",
17
- "label": "scan",
18
- "total": 1,
19
- "critical": 0,
20
- "high": 0,
21
- "medium": 1,
22
- "low": 0,
23
- "kev": 0,
24
- "ids": [
25
- "toctou-fs:agentic-security.js:1105"
26
- ]
27
- },
28
- {
29
- "timestamp": "2026-05-19T22:20:41.048Z",
30
- "label": "scan",
31
- "total": 3,
32
- "critical": 0,
33
- "high": 0,
34
- "medium": 3,
35
- "low": 0,
36
- "kev": 0,
37
- "ids": [
38
- "toctou-fs:agentic-security-consistency.js:44",
39
- "toctou-fs:agentic-security-consistency.js:66",
40
- "toctou-fs:agentic-security.js:1105"
41
- ]
42
- },
43
- {
44
- "timestamp": "2026-05-19T22:27:05.052Z",
45
- "label": "scan",
46
- "total": 4,
47
- "critical": 0,
48
- "high": 0,
49
- "medium": 4,
50
- "low": 0,
51
- "kev": 0,
52
- "ids": [
53
- "toctou-fs:agentic-security-audit.js:53",
54
- "toctou-fs:agentic-security-consistency.js:44",
55
- "toctou-fs:agentic-security-consistency.js:66",
56
- "toctou-fs:agentic-security.js:1105"
57
- ]
58
- },
59
- {
60
- "timestamp": "2026-05-19T22:59:58.518Z",
61
- "label": "scan",
62
- "total": 4,
63
- "critical": 0,
64
- "high": 0,
65
- "medium": 4,
66
- "low": 0,
67
- "kev": 0,
68
- "ids": [
69
- "toctou-fs:agentic-security-audit.js:55",
70
- "toctou-fs:agentic-security-consistency.js:44",
71
- "toctou-fs:agentic-security-consistency.js:66",
72
- "toctou-fs:agentic-security.js:1105"
73
- ]
74
- },
75
- {
76
- "timestamp": "2026-05-19T23:00:22.780Z",
77
- "label": "scan",
78
- "total": 4,
79
- "critical": 0,
80
- "high": 0,
81
- "medium": 4,
82
- "low": 0,
83
- "kev": 0,
84
- "ids": [
85
- "toctou-fs:agentic-security-audit.js:55",
86
- "toctou-fs:agentic-security-consistency.js:44",
87
- "toctou-fs:agentic-security-consistency.js:66",
88
- "toctou-fs:agentic-security.js:1105"
89
- ]
90
- },
91
- {
92
- "timestamp": "2026-05-19T23:44:16.929Z",
93
- "label": "scan",
94
- "total": 4,
95
- "critical": 0,
96
- "high": 0,
97
- "medium": 4,
98
- "low": 0,
99
- "kev": 0,
100
- "ids": [
101
- "toctou-fs:agentic-security-audit.js:55",
102
- "toctou-fs:agentic-security-consistency.js:44",
103
- "toctou-fs:agentic-security-consistency.js:66",
104
- "toctou-fs:agentic-security.js:1105"
105
- ]
106
- },
107
- {
108
- "timestamp": "2026-05-19T23:44:23.410Z",
109
- "label": "scan",
110
- "total": 4,
111
- "critical": 0,
112
- "high": 0,
113
- "medium": 4,
114
- "low": 0,
115
- "kev": 0,
116
- "ids": [
117
- "toctou-fs:agentic-security-audit.js:55",
118
- "toctou-fs:agentic-security-consistency.js:44",
119
- "toctou-fs:agentic-security-consistency.js:66",
120
- "toctou-fs:agentic-security.js:1105"
121
- ]
122
- },
123
- {
124
- "timestamp": "2026-05-20T03:55:11.940Z",
125
- "label": "scan",
126
- "total": 4,
127
- "critical": 0,
128
- "high": 0,
129
- "medium": 4,
130
- "low": 0,
131
- "kev": 0,
132
- "ids": [
133
- "toctou-fs:agentic-security-audit.js:55",
134
- "toctou-fs:agentic-security-consistency.js:44",
135
- "toctou-fs:agentic-security-consistency.js:66",
136
- "toctou-fs:agentic-security.js:1105"
137
- ]
138
- },
139
- {
140
- "timestamp": "2026-05-20T03:55:17.682Z",
141
- "label": "scan",
142
- "total": 4,
143
- "critical": 0,
144
- "high": 0,
145
- "medium": 4,
146
- "low": 0,
147
- "kev": 0,
148
- "ids": [
149
- "toctou-fs:agentic-security-audit.js:55",
150
- "toctou-fs:agentic-security-consistency.js:44",
151
- "toctou-fs:agentic-security-consistency.js:66",
152
- "toctou-fs:agentic-security.js:1105"
153
- ]
154
- },
155
- {
156
- "timestamp": "2026-05-20T04:58:44.060Z",
157
- "label": "scan",
158
- "total": 4,
159
- "critical": 0,
160
- "high": 0,
161
- "medium": 4,
162
- "low": 0,
163
- "kev": 0,
164
- "ids": [
165
- "toctou-fs:agentic-security-audit.js:55",
166
- "toctou-fs:agentic-security-consistency.js:44",
167
- "toctou-fs:agentic-security-consistency.js:66",
168
- "toctou-fs:agentic-security.js:1105"
169
- ]
170
- },
171
- {
172
- "timestamp": "2026-05-20T04:58:56.341Z",
173
- "label": "scan",
174
- "total": 4,
175
- "critical": 0,
176
- "high": 0,
177
- "medium": 4,
178
- "low": 0,
179
- "kev": 0,
180
- "ids": [
181
- "toctou-fs:agentic-security-audit.js:55",
182
- "toctou-fs:agentic-security-consistency.js:44",
183
- "toctou-fs:agentic-security-consistency.js:66",
184
- "toctou-fs:agentic-security.js:1105"
185
- ]
186
- },
187
- {
188
- "timestamp": "2026-05-20T05:13:43.297Z",
189
- "label": "scan",
190
- "total": 4,
191
- "critical": 0,
192
- "high": 0,
193
- "medium": 4,
194
- "low": 0,
195
- "kev": 0,
196
- "ids": [
197
- "toctou-fs:agentic-security-audit.js:55",
198
- "toctou-fs:agentic-security-consistency.js:44",
199
- "toctou-fs:agentic-security-consistency.js:66",
200
- "toctou-fs:agentic-security.js:1105"
201
- ]
202
- },
203
- {
204
- "timestamp": "2026-05-20T05:34:26.018Z",
205
- "label": "scan",
206
- "total": 4,
207
- "critical": 0,
208
- "high": 0,
209
- "medium": 4,
210
- "low": 0,
211
- "kev": 0,
212
- "ids": [
213
- "toctou-fs:agentic-security-audit.js:55",
214
- "toctou-fs:agentic-security-consistency.js:44",
215
- "toctou-fs:agentic-security-consistency.js:66",
216
- "toctou-fs:agentic-security.js:1105"
217
- ]
218
- },
219
- {
220
- "timestamp": "2026-05-20T05:34:33.300Z",
221
- "label": "scan",
222
- "total": 4,
223
- "critical": 0,
224
- "high": 0,
225
- "medium": 4,
226
- "low": 0,
227
- "kev": 0,
228
- "ids": [
229
- "toctou-fs:agentic-security-audit.js:55",
230
- "toctou-fs:agentic-security-consistency.js:44",
231
- "toctou-fs:agentic-security-consistency.js:66",
232
- "toctou-fs:agentic-security.js:1105"
233
- ]
234
- },
235
- {
236
- "timestamp": "2026-05-20T12:41:04.981Z",
237
- "label": "scan",
238
- "total": 4,
239
- "critical": 0,
240
- "high": 0,
241
- "medium": 4,
242
- "low": 0,
243
- "kev": 0,
244
- "ids": [
245
- "toctou-fs:agentic-security-audit.js:55",
246
- "toctou-fs:agentic-security-consistency.js:44",
247
- "toctou-fs:agentic-security-consistency.js:66",
248
- "toctou-fs:agentic-security.js:1105"
249
- ]
250
- },
251
- {
252
- "timestamp": "2026-05-20T12:41:11.169Z",
3
+ "timestamp": "2026-05-26T04:00:10.464Z",
253
4
  "label": "scan",
254
5
  "total": 4,
255
6
  "critical": 0,
@@ -261,11 +12,11 @@
261
12
  "toctou-fs:agentic-security-audit.js:55",
262
13
  "toctou-fs:agentic-security-consistency.js:44",
263
14
  "toctou-fs:agentic-security-consistency.js:66",
264
- "toctou-fs:agentic-security.js:1105"
15
+ "toctou-fs:agentic-security.js:1108"
265
16
  ]
266
17
  },
267
18
  {
268
- "timestamp": "2026-05-20T12:55:32.034Z",
19
+ "timestamp": "2026-05-26T04:00:56.905Z",
269
20
  "label": "scan",
270
21
  "total": 4,
271
22
  "critical": 0,
@@ -277,11 +28,11 @@
277
28
  "toctou-fs:agentic-security-audit.js:55",
278
29
  "toctou-fs:agentic-security-consistency.js:44",
279
30
  "toctou-fs:agentic-security-consistency.js:66",
280
- "toctou-fs:agentic-security.js:1105"
31
+ "toctou-fs:agentic-security.js:1108"
281
32
  ]
282
33
  },
283
34
  {
284
- "timestamp": "2026-05-20T15:38:53.724Z",
35
+ "timestamp": "2026-05-26T04:02:41.681Z",
285
36
  "label": "scan",
286
37
  "total": 4,
287
38
  "critical": 0,
@@ -293,11 +44,11 @@
293
44
  "toctou-fs:agentic-security-audit.js:55",
294
45
  "toctou-fs:agentic-security-consistency.js:44",
295
46
  "toctou-fs:agentic-security-consistency.js:66",
296
- "toctou-fs:agentic-security.js:1105"
47
+ "toctou-fs:agentic-security.js:1108"
297
48
  ]
298
49
  },
299
50
  {
300
- "timestamp": "2026-05-20T16:34:56.575Z",
51
+ "timestamp": "2026-05-27T01:03:34.318Z",
301
52
  "label": "scan",
302
53
  "total": 4,
303
54
  "critical": 0,
@@ -309,11 +60,11 @@
309
60
  "toctou-fs:agentic-security-audit.js:55",
310
61
  "toctou-fs:agentic-security-consistency.js:44",
311
62
  "toctou-fs:agentic-security-consistency.js:66",
312
- "toctou-fs:agentic-security.js:1105"
63
+ "toctou-fs:agentic-security.js:1109"
313
64
  ]
314
65
  },
315
66
  {
316
- "timestamp": "2026-05-20T17:09:07.083Z",
67
+ "timestamp": "2026-05-27T01:05:45.968Z",
317
68
  "label": "scan",
318
69
  "total": 4,
319
70
  "critical": 0,
@@ -325,11 +76,11 @@
325
76
  "toctou-fs:agentic-security-audit.js:55",
326
77
  "toctou-fs:agentic-security-consistency.js:44",
327
78
  "toctou-fs:agentic-security-consistency.js:66",
328
- "toctou-fs:agentic-security.js:1105"
79
+ "toctou-fs:agentic-security.js:1114"
329
80
  ]
330
81
  },
331
82
  {
332
- "timestamp": "2026-05-20T17:16:51.009Z",
83
+ "timestamp": "2026-05-27T11:21:25.101Z",
333
84
  "label": "scan",
334
85
  "total": 4,
335
86
  "critical": 0,
@@ -341,135 +92,24 @@
341
92
  "toctou-fs:agentic-security-audit.js:55",
342
93
  "toctou-fs:agentic-security-consistency.js:44",
343
94
  "toctou-fs:agentic-security-consistency.js:66",
344
- "toctou-fs:agentic-security.js:1105"
95
+ "toctou-fs:agentic-security.js:1116"
345
96
  ]
346
97
  },
347
98
  {
348
- "timestamp": "2026-05-20T17:30:57.470Z",
99
+ "timestamp": "2026-05-27T11:23:11.242Z",
349
100
  "label": "scan",
350
- "total": 4,
101
+ "total": 5,
351
102
  "critical": 0,
352
103
  "high": 0,
353
- "medium": 4,
354
- "low": 0,
355
- "kev": 0,
356
- "ids": [
357
- "toctou-fs:agentic-security-audit.js:55",
358
- "toctou-fs:agentic-security-consistency.js:44",
359
- "toctou-fs:agentic-security-consistency.js:66",
360
- "toctou-fs:agentic-security.js:1105"
361
- ]
362
- },
363
- {
364
- "timestamp": "2026-05-20T19:30:22.196Z",
365
- "label": "scan",
366
- "total": 4,
367
- "critical": 0,
368
- "high": 0,
369
- "medium": 4,
370
- "low": 0,
371
- "kev": 0,
372
- "ids": [
373
- "toctou-fs:agentic-security-audit.js:55",
374
- "toctou-fs:agentic-security-consistency.js:44",
375
- "toctou-fs:agentic-security-consistency.js:66",
376
- "toctou-fs:agentic-security.js:1105"
377
- ]
378
- },
379
- {
380
- "timestamp": "2026-05-20T19:32:44.938Z",
381
- "label": "scan",
382
- "total": 4,
383
- "critical": 0,
384
- "high": 0,
385
- "medium": 4,
386
- "low": 0,
387
- "kev": 0,
388
- "ids": [
389
- "toctou-fs:agentic-security-audit.js:55",
390
- "toctou-fs:agentic-security-consistency.js:44",
391
- "toctou-fs:agentic-security-consistency.js:66",
392
- "toctou-fs:agentic-security.js:1105"
393
- ]
394
- },
395
- {
396
- "timestamp": "2026-05-20T20:02:44.607Z",
397
- "label": "scan",
398
- "total": 4,
399
- "critical": 0,
400
- "high": 0,
401
- "medium": 4,
402
- "low": 0,
403
- "kev": 0,
404
- "ids": [
405
- "toctou-fs:agentic-security-audit.js:55",
406
- "toctou-fs:agentic-security-consistency.js:44",
407
- "toctou-fs:agentic-security-consistency.js:66",
408
- "toctou-fs:agentic-security.js:1105"
409
- ]
410
- },
411
- {
412
- "timestamp": "2026-05-20T21:21:28.677Z",
413
- "label": "scan",
414
- "total": 4,
415
- "critical": 0,
416
- "high": 0,
417
- "medium": 4,
418
- "low": 0,
419
- "kev": 0,
420
- "ids": [
421
- "toctou-fs:agentic-security-audit.js:55",
422
- "toctou-fs:agentic-security-consistency.js:44",
423
- "toctou-fs:agentic-security-consistency.js:66",
424
- "toctou-fs:agentic-security.js:1105"
425
- ]
426
- },
427
- {
428
- "timestamp": "2026-05-20T21:28:34.802Z",
429
- "label": "scan",
430
- "total": 4,
431
- "critical": 0,
432
- "high": 0,
433
- "medium": 4,
434
- "low": 0,
435
- "kev": 0,
436
- "ids": [
437
- "toctou-fs:agentic-security-audit.js:55",
438
- "toctou-fs:agentic-security-consistency.js:44",
439
- "toctou-fs:agentic-security-consistency.js:66",
440
- "toctou-fs:agentic-security.js:1105"
441
- ]
442
- },
443
- {
444
- "timestamp": "2026-05-21T15:57:04.808Z",
445
- "label": "scan",
446
- "total": 4,
447
- "critical": 0,
448
- "high": 0,
449
- "medium": 4,
450
- "low": 0,
451
- "kev": 0,
452
- "ids": [
453
- "toctou-fs:agentic-security-audit.js:55",
454
- "toctou-fs:agentic-security-consistency.js:44",
455
- "toctou-fs:agentic-security-consistency.js:66",
456
- "toctou-fs:agentic-security.js:1105"
457
- ]
458
- },
459
- {
460
- "timestamp": "2026-05-21T16:13:41.128Z",
461
- "label": "scan",
462
- "total": 4,
463
- "critical": 0,
464
- "high": 0,
465
- "medium": 4,
104
+ "medium": 5,
466
105
  "low": 0,
467
106
  "kev": 0,
468
107
  "ids": [
469
108
  "toctou-fs:agentic-security-audit.js:55",
470
109
  "toctou-fs:agentic-security-consistency.js:44",
471
110
  "toctou-fs:agentic-security-consistency.js:66",
472
- "toctou-fs:agentic-security.js:1105"
111
+ "toctou-fs:agentic-security.js:1136",
112
+ "toctou-fs:agentic-security.js:362"
473
113
  ]
474
114
  }
475
115
  ]
@@ -1,25 +1,20 @@
1
1
  {
2
- "firstScanDate": "2026-05-15T12:24:29.316Z",
3
- "lastScanDate": "2026-05-21T16:13:41.148Z",
4
- "totalScans": 123,
5
- "daysCleanCritical": 4,
6
- "lastCleanDate": "2026-05-21",
2
+ "firstScanDate": "2026-05-26T04:00:10.482Z",
3
+ "lastScanDate": "2026-05-27T11:23:11.268Z",
4
+ "totalScans": 7,
5
+ "daysCleanCritical": 2,
6
+ "lastCleanDate": "2026-05-27",
7
7
  "lastCriticalDate": null,
8
8
  "hasEverHadCritical": false,
9
- "bestDaysCleanCritical": 4,
10
- "totalFindingsAtFirstScan": 0,
11
- "totalFindingsAtLastScan": 11,
12
- "totalFixesInferred": 1,
9
+ "bestDaysCleanCritical": 2,
10
+ "totalFindingsAtFirstScan": 11,
11
+ "totalFindingsAtLastScan": 13,
12
+ "totalFixesInferred": 0,
13
13
  "lastGrade": "A-",
14
- "bestGrade": "A+",
14
+ "bestGrade": "A-",
15
15
  "launchCheckPassedAt": null,
16
16
  "achievements": [
17
- "first-fix",
18
- "first-scan",
19
- "grade-a",
20
- "grade-a-plus",
21
- "scan-veteran-100",
22
- "scan-veteran-25"
17
+ "first-scan"
23
18
  ],
24
19
  "previousGrade": "A-"
25
20
  }
@@ -4,6 +4,9 @@
4
4
  import * as fs from 'node:fs';
5
5
  import * as fsp from 'node:fs/promises';
6
6
  import * as path from 'node:path';
7
+ import { createRequire } from 'node:module';
8
+ const __require = createRequire(import.meta.url);
9
+ const PKG_VERSION = __require('../package.json').version;
7
10
  import { signLastScan as _signLastScan, verifyLastScan as _verifyLastScanShared } from '../src/posture/integrity.js';
8
11
  import { runScan } from '../src/runScan.js';
9
12
  import { toJSON, toMarkdown, toSARIF, toSTIX, toCSV, toJUnit, toCLI, toCLIByProfile, toShipVerdict, toProTable, toHTML, toSummary, exitCodeFor, normalizeFindings } from '../src/report/index.js';
@@ -103,6 +106,9 @@ Options:
103
106
  --no-network Skip OSV/registry queries (offline mode)
104
107
  --pr [ref] Diff-aware: scan only files changed since ref (auto-detects PR base)
105
108
  --deterministic Reproducible scan: stable sort, no-network, lockfile-checked
109
+ --incremental Reuse taint summaries from prior scans (speeds up deep mode in CI)
110
+ --set-baseline Save current findings as baseline (suppresses pre-existing issues)
111
+ --since-baseline Only show findings NOT in the saved baseline
106
112
  --no-epss Skip EPSS exploit-prediction enrichment (default: enabled)
107
113
  --no-blast-radius Skip blast-radius / cost framing (default: enabled)
108
114
  --verbose Include fix bodies + taxonomy in CLI output
@@ -137,7 +143,7 @@ function printBanner(args) {
137
143
  BOLD: '\x1b[1m',
138
144
  RESET: '\x1b[0m',
139
145
  } : { FROG:'', DEEP:'', CREAM:'', DIM:'', BOLD:'', RESET:'' };
140
- const v = '0.75.1';
146
+ const v = PKG_VERSION;
141
147
  const compact = !args.flags.full;
142
148
  if (compact) {
143
149
  const lines = [
@@ -314,6 +320,11 @@ async function cmdScan(args) {
314
320
  }
315
321
  }
316
322
 
323
+ // --incremental : reuse taint summaries from prior scans for faster deep mode.
324
+ if (args.flags['incremental'] || process.env.AGENTIC_SECURITY_INCREMENTAL === '1') {
325
+ process.env.AGENTIC_SECURITY_INCREMENTAL = '1';
326
+ }
327
+
317
328
  // --pr [ref] : friendlier alias for --changed-since that auto-detects the PR
318
329
  // base ref (GitHub/GitLab/Buildkite/Bitbucket env vars) when no value is given.
319
330
  let changedSince = args.flags['changed-since'] || null;
@@ -338,6 +349,26 @@ async function cmdScan(args) {
338
349
  if (only === 'secrets') { scan.findings = []; scan.supplyChain = []; }
339
350
  }
340
351
 
352
+ // --set-baseline: save current findings as baseline for future --since-baseline filtering
353
+ const baselinePath = path.join(target || '.', '.agentic-security', 'baseline.json');
354
+ if (args.flags['set-baseline']) {
355
+ const { normalizeFindings } = await import('../src/report/index.js');
356
+ const baselineIds = new Set(normalizeFindings(scan).map(f => f.stableId || f.id));
357
+ fs.mkdirSync(path.dirname(baselinePath), { recursive: true });
358
+ fs.writeFileSync(baselinePath, JSON.stringify({ ids: [...baselineIds], createdAt: new Date().toISOString(), count: baselineIds.size }, null, 2));
359
+ process.stderr.write(`[baseline] saved ${baselineIds.size} findings as baseline\n`);
360
+ }
361
+ // --since-baseline: filter out findings that existed in the saved baseline
362
+ if (args.flags['since-baseline'] && fs.existsSync(baselinePath)) {
363
+ try {
364
+ const baseline = JSON.parse(fs.readFileSync(baselinePath, 'utf8'));
365
+ const baselineSet = new Set(baseline.ids || []);
366
+ const before = scan.findings.length;
367
+ scan.findings = (scan.findings || []).filter(f => !baselineSet.has(f.stableId || f.id));
368
+ process.stderr.write(`[baseline] filtered ${before - scan.findings.length} baseline findings, ${scan.findings.length} new\n`);
369
+ } catch { /* baseline file unreadable, skip */ }
370
+ }
371
+
341
372
  // 0.9.0 Feat-18: --scorecard flag enables OSSF Scorecard enrichment
342
373
  if (args.flags['scorecard']) process.env.AGENTIC_SECURITY_SCORECARD = '1';
343
374
 
@@ -1665,7 +1696,7 @@ async function main() {
1665
1696
  }
1666
1697
  process.exit(0);
1667
1698
  }
1668
- case 'version': console.log('agentic-security 0.75.1 · created by ClearCapabilities.Com'); process.exit(0);
1699
+ case 'version': console.log(`agentic-security ${PKG_VERSION} · created by ClearCapabilities.Com`); process.exit(0);
1669
1700
  case 'banner': { printBanner(args); process.exit(0); }
1670
1701
  case 'harness': process.exit(await cmdHarness(args));
1671
1702
  case 'scan-baseline': process.exit(await cmdScanBaseline(args));
package/dist/178.index.js CHANGED
@@ -13,7 +13,7 @@ export const modules = {
13
13
  /* harmony import */ var node_child_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1421);
14
14
  /* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3024);
15
15
  /* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6760);
16
- /* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3291);
16
+ /* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8636);
17
17
  // Time-travel + counterfactual scanning (v0.68).
18
18
  //
19
19
  // Two new modes that exploit the pure-input shape of runFullScan:
package/dist/384.index.js CHANGED
@@ -8,7 +8,7 @@ export const modules = {
8
8
  /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9
9
  /* harmony export */ scanCredentials: () => (/* reexport safe */ _engine_js__WEBPACK_IMPORTED_MODULE_0__.Sv)
10
10
  /* harmony export */ });
11
- /* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3291);
11
+ /* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8636);
12
12
  // Secrets submodule view of the engine — credential + entropy + TODO scanning.
13
13
 
14
14
 
package/dist/637.index.js CHANGED
@@ -10,7 +10,7 @@ export const modules = {
10
10
  /* harmony export */ renderPrDeltaText: () => (/* binding */ renderPrDeltaText)
11
11
  /* harmony export */ });
12
12
  /* harmony import */ var node_child_process__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1421);
13
- /* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3291);
13
+ /* harmony import */ var _engine_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(8636);
14
14
  // Shadowscan / security-DELTA on PR (v0.72).
15
15
  //
16
16
  // Most SAST PR-comment integrations show absolute counts — "12 findings