@blamejs/exceptd-skills 0.13.125 → 0.14.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/AGENTS.md +2 -2
- package/CHANGELOG.md +24 -0
- package/README.md +12 -9
- package/bin/exceptd.js +142 -35
- package/data/_indexes/_meta.json +9 -9
- package/data/_indexes/activity-feed.json +2 -2
- package/data/_indexes/catalog-summaries.json +2 -2
- package/data/_indexes/chains.json +375 -0
- package/data/atlas-ttps.json +2 -1
- package/data/attack-techniques.json +4 -2
- package/data/cve-catalog.json +104 -0
- package/data/cwe-catalog.json +4 -2
- package/data/framework-control-gaps.json +18 -9
- package/data/playbooks/citation-hygiene.json +820 -0
- package/data/zeroday-lessons.json +50 -0
- package/lib/collectors/cicd-pipeline-compromise.js +10 -1
- package/lib/collectors/citation-hygiene.js +465 -0
- package/lib/collectors/containers.js +12 -7
- package/lib/collectors/crypto-codebase.js +11 -5
- package/lib/collectors/library-author.js +82 -10
- package/lib/collectors/scan-excludes.js +85 -0
- package/lib/collectors/secrets.js +10 -6
- package/lib/flag-suggest.js +2 -2
- package/lib/refresh-external.js +15 -0
- package/manifest.json +44 -44
- package/package.json +1 -1
- package/sbom.cdx.json +91 -46
- package/scripts/check-agents-md-collectors.js +8 -0
package/sbom.cdx.json
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
{
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.6",
|
|
4
|
-
"serialNumber": "urn:uuid:
|
|
4
|
+
"serialNumber": "urn:uuid:e3ca9b8d-0dcb-458e-9513-53419884794d",
|
|
5
5
|
"version": 1,
|
|
6
6
|
"metadata": {
|
|
7
|
-
"timestamp": "
|
|
7
|
+
"timestamp": "2147-02-08T17:02:05.000Z",
|
|
8
8
|
"tools": [
|
|
9
9
|
{
|
|
10
10
|
"vendor": "blamejs",
|
|
11
11
|
"name": "scripts/refresh-sbom.js",
|
|
12
|
-
"version": "0.
|
|
12
|
+
"version": "0.14.0"
|
|
13
13
|
}
|
|
14
14
|
],
|
|
15
15
|
"component": {
|
|
16
|
-
"bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.
|
|
16
|
+
"bom-ref": "pkg:npm/@blamejs/exceptd-skills@0.14.0",
|
|
17
17
|
"type": "application",
|
|
18
18
|
"name": "@blamejs/exceptd-skills",
|
|
19
|
-
"version": "0.
|
|
19
|
+
"version": "0.14.0",
|
|
20
20
|
"description": "AI security skills grounded in mid-2026 threat reality, not stale framework documentation. 42 skills, 11 catalogs (406 CVEs / 171 CWEs / 805 ATT&CK + ICS / 170 ATLAS / 468 D3FEND / 7476 RFCs), 35 jurisdictions, 10-class catalog gap detector + budget gate, real XML parser + canonical-form diff + content-pattern regression detection, Ed25519-signed.",
|
|
21
21
|
"licenses": [
|
|
22
22
|
{
|
|
@@ -25,17 +25,17 @@
|
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
],
|
|
28
|
-
"purl": "pkg:npm/%40blamejs/exceptd-skills@0.
|
|
28
|
+
"purl": "pkg:npm/%40blamejs/exceptd-skills@0.14.0",
|
|
29
29
|
"hashes": [
|
|
30
30
|
{
|
|
31
31
|
"alg": "SHA-256",
|
|
32
|
-
"content": "
|
|
32
|
+
"content": "fadc220cc3f43c70787648fe3eeb50937544d6b05a78ecfa01044c58274f7f8f"
|
|
33
33
|
}
|
|
34
34
|
],
|
|
35
35
|
"externalReferences": [
|
|
36
36
|
{
|
|
37
37
|
"type": "distribution",
|
|
38
|
-
"url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.
|
|
38
|
+
"url": "https://www.npmjs.com/package/@blamejs/exceptd-skills/v/0.14.0"
|
|
39
39
|
},
|
|
40
40
|
{
|
|
41
41
|
"type": "vcs",
|
|
@@ -86,11 +86,11 @@
|
|
|
86
86
|
"hashes": [
|
|
87
87
|
{
|
|
88
88
|
"alg": "SHA-256",
|
|
89
|
-
"content": "
|
|
89
|
+
"content": "f8127c93b31da00f68c6a16ca376667621ac9ae98c815c51c594850080f79e93"
|
|
90
90
|
},
|
|
91
91
|
{
|
|
92
92
|
"alg": "SHA3-512",
|
|
93
|
-
"content": "
|
|
93
|
+
"content": "2c891b4c8b1acaf7162559b8be555e24059f94389d522c6fa47ad9d9f65bdcec2ca8f5d92125d94fc04140d9c42fb08728446e83e869d7cef111e50cfed6081d"
|
|
94
94
|
}
|
|
95
95
|
]
|
|
96
96
|
},
|
|
@@ -116,11 +116,11 @@
|
|
|
116
116
|
"hashes": [
|
|
117
117
|
{
|
|
118
118
|
"alg": "SHA-256",
|
|
119
|
-
"content": "
|
|
119
|
+
"content": "273a8c5d2376e0be3a9b02544054606ffd34a4f280f8acb45645cf1ffccfbf6c"
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
122
|
"alg": "SHA3-512",
|
|
123
|
-
"content": "
|
|
123
|
+
"content": "f063967f3a70ab0d8e002711a662138d782f23f62382d60405e67b80e5d0aedebc9848fef823858862336fdee735b373e513451007f285a281657be9a831e2ff"
|
|
124
124
|
}
|
|
125
125
|
]
|
|
126
126
|
},
|
|
@@ -176,11 +176,11 @@
|
|
|
176
176
|
"hashes": [
|
|
177
177
|
{
|
|
178
178
|
"alg": "SHA-256",
|
|
179
|
-
"content": "
|
|
179
|
+
"content": "558e6bdf1bd8a2544ec284364bd3a3624d76f283adfc44239ebfb7112b3f0616"
|
|
180
180
|
},
|
|
181
181
|
{
|
|
182
182
|
"alg": "SHA3-512",
|
|
183
|
-
"content": "
|
|
183
|
+
"content": "998b0057136a850b704ada958051b4a1c103a4d8906e368c9798ec3939316975c00ba76522793a3a96a605860a56e6e7980de15714453f51f205b0719f654a40"
|
|
184
184
|
}
|
|
185
185
|
]
|
|
186
186
|
},
|
|
@@ -281,11 +281,11 @@
|
|
|
281
281
|
"hashes": [
|
|
282
282
|
{
|
|
283
283
|
"alg": "SHA-256",
|
|
284
|
-
"content": "
|
|
284
|
+
"content": "8035064e2c044d92b4bc08206e36519cf7e9041b39dbd09b2807ea33c8852b95"
|
|
285
285
|
},
|
|
286
286
|
{
|
|
287
287
|
"alg": "SHA3-512",
|
|
288
|
-
"content": "
|
|
288
|
+
"content": "2e0b5f43d9882e3c0f2c759e0aea8c192071cdd7387bd939abb6a366c2d7d44342743539e11bf195059de4f9b012f4f558fcb3e17e23ca48e6ea02358b99228d"
|
|
289
289
|
}
|
|
290
290
|
]
|
|
291
291
|
},
|
|
@@ -296,11 +296,11 @@
|
|
|
296
296
|
"hashes": [
|
|
297
297
|
{
|
|
298
298
|
"alg": "SHA-256",
|
|
299
|
-
"content": "
|
|
299
|
+
"content": "d24bc02859d40ccf1615db75cca68c077585904e41e0d8f6de448121e9b1abb0"
|
|
300
300
|
},
|
|
301
301
|
{
|
|
302
302
|
"alg": "SHA3-512",
|
|
303
|
-
"content": "
|
|
303
|
+
"content": "6db41d4401ee0dba53e78fc443abfb0fa65486979fdd88fab36dafa7d71267bf47da5e918e6fa0f855b1a90a6eafc459c8c73e90836a07cb4c74c06352f12944"
|
|
304
304
|
}
|
|
305
305
|
]
|
|
306
306
|
},
|
|
@@ -311,11 +311,11 @@
|
|
|
311
311
|
"hashes": [
|
|
312
312
|
{
|
|
313
313
|
"alg": "SHA-256",
|
|
314
|
-
"content": "
|
|
314
|
+
"content": "fa193f0d2d248176a8beddb641e9fe56ba4faa9e15dc253ff876dbf0c5d58a77"
|
|
315
315
|
},
|
|
316
316
|
{
|
|
317
317
|
"alg": "SHA3-512",
|
|
318
|
-
"content": "
|
|
318
|
+
"content": "9460a2e38df704f69058d2a3d306c32d175bcb4ee2aa5955eedda56df489944c666da6e23004d2658092597b5535d5d01142a6b953914a01d242c6784dac1d04"
|
|
319
319
|
}
|
|
320
320
|
]
|
|
321
321
|
},
|
|
@@ -326,11 +326,11 @@
|
|
|
326
326
|
"hashes": [
|
|
327
327
|
{
|
|
328
328
|
"alg": "SHA-256",
|
|
329
|
-
"content": "
|
|
329
|
+
"content": "3d451dda7ac0c7d57a4075ae4bafd3148c6184b35dc1bc59d8b81d1f2641e430"
|
|
330
330
|
},
|
|
331
331
|
{
|
|
332
332
|
"alg": "SHA3-512",
|
|
333
|
-
"content": "
|
|
333
|
+
"content": "dc380fbea328169dd713bdc0fef7d47ab74cb923bcb1481e3148f78316fb2be67feefc04d151dc3bbe904f51a2b7397008be70e0bcaed7b510b11e5db64a466d"
|
|
334
334
|
}
|
|
335
335
|
]
|
|
336
336
|
},
|
|
@@ -341,11 +341,11 @@
|
|
|
341
341
|
"hashes": [
|
|
342
342
|
{
|
|
343
343
|
"alg": "SHA-256",
|
|
344
|
-
"content": "
|
|
344
|
+
"content": "0b82f1ba29024720dcafb66aaa6c7b59b535badd28dbac8a5c08737c5f25e9a9"
|
|
345
345
|
},
|
|
346
346
|
{
|
|
347
347
|
"alg": "SHA3-512",
|
|
348
|
-
"content": "
|
|
348
|
+
"content": "8e443a1c8a5ca46fe1c5dfcdd76b43952a85ad949670f98b2ae0c6ec06a3bb3aee958d5437201671bec642daf654e26d3741ad3f3f633d1a1c4a2afbe72456ff"
|
|
349
349
|
}
|
|
350
350
|
]
|
|
351
351
|
},
|
|
@@ -401,11 +401,11 @@
|
|
|
401
401
|
"hashes": [
|
|
402
402
|
{
|
|
403
403
|
"alg": "SHA-256",
|
|
404
|
-
"content": "
|
|
404
|
+
"content": "46094ad9b9584f454daddd28f4c5d27faf0ea0510daafd38fb60bf9d30f6a305"
|
|
405
405
|
},
|
|
406
406
|
{
|
|
407
407
|
"alg": "SHA3-512",
|
|
408
|
-
"content": "
|
|
408
|
+
"content": "c06ddd5710a2ed081c48b0ca4204e993541430764527f82b44a357eaab35a3a0dd0255178928f2240672148a9d9e8b5d3fb3ddd1184092b0cab19bf5581e9d91"
|
|
409
409
|
}
|
|
410
410
|
]
|
|
411
411
|
},
|
|
@@ -469,6 +469,21 @@
|
|
|
469
469
|
}
|
|
470
470
|
]
|
|
471
471
|
},
|
|
472
|
+
{
|
|
473
|
+
"bom-ref": "file:data/playbooks/citation-hygiene.json",
|
|
474
|
+
"type": "file",
|
|
475
|
+
"name": "data/playbooks/citation-hygiene.json",
|
|
476
|
+
"hashes": [
|
|
477
|
+
{
|
|
478
|
+
"alg": "SHA-256",
|
|
479
|
+
"content": "d639f607ee338698f96684c7e432d6f3037031c4817f8077ea2497e79a099dac"
|
|
480
|
+
},
|
|
481
|
+
{
|
|
482
|
+
"alg": "SHA3-512",
|
|
483
|
+
"content": "ef7b5111aa07d3386f5fa7d71c6434d06667c707c6a0143097de80825ab81db7cc1fb03b3439bbfcbefb2d5c553ed7ec317cf23b02cb20490f5f6cf26598d9ac"
|
|
484
|
+
}
|
|
485
|
+
]
|
|
486
|
+
},
|
|
472
487
|
{
|
|
473
488
|
"bom-ref": "file:data/playbooks/cloud-iam-incident.json",
|
|
474
489
|
"type": "file",
|
|
@@ -791,11 +806,11 @@
|
|
|
791
806
|
"hashes": [
|
|
792
807
|
{
|
|
793
808
|
"alg": "SHA-256",
|
|
794
|
-
"content": "
|
|
809
|
+
"content": "258252b9bff1fc11b05b76e10b659c1195971884bd44c92af5fefe17a5ca9512"
|
|
795
810
|
},
|
|
796
811
|
{
|
|
797
812
|
"alg": "SHA3-512",
|
|
798
|
-
"content": "
|
|
813
|
+
"content": "9da394fa5ef4c98ddff2dfc1557a0b01b3a2e4260c65eb281aae40579374f7ad41e9e524e8bd62da9a5d5b3cf495be3bbc50c3116a952976b44cd3922b170ef5"
|
|
799
814
|
}
|
|
800
815
|
]
|
|
801
816
|
},
|
|
@@ -896,11 +911,26 @@
|
|
|
896
911
|
"hashes": [
|
|
897
912
|
{
|
|
898
913
|
"alg": "SHA-256",
|
|
899
|
-
"content": "
|
|
914
|
+
"content": "863401bc0695c24ff874651a7c1accf4f64bcce041cb38beccc4f0264d2ca2dc"
|
|
900
915
|
},
|
|
901
916
|
{
|
|
902
917
|
"alg": "SHA3-512",
|
|
903
|
-
"content": "
|
|
918
|
+
"content": "2b522780fb1a08f9cd3485ce2d0b7f1789ee82fbb24ebab96eea3485b17815213bbbaba26d84a24bc522b813069288f27212b575205ebe423e9e5c3c31844643"
|
|
919
|
+
}
|
|
920
|
+
]
|
|
921
|
+
},
|
|
922
|
+
{
|
|
923
|
+
"bom-ref": "file:lib/collectors/citation-hygiene.js",
|
|
924
|
+
"type": "file",
|
|
925
|
+
"name": "lib/collectors/citation-hygiene.js",
|
|
926
|
+
"hashes": [
|
|
927
|
+
{
|
|
928
|
+
"alg": "SHA-256",
|
|
929
|
+
"content": "8968e632e4e77d7e13bce63579cebae448f2fe5aacb11984203891771bcc75f7"
|
|
930
|
+
},
|
|
931
|
+
{
|
|
932
|
+
"alg": "SHA3-512",
|
|
933
|
+
"content": "575dd30aab3a6568d9b4f351df493b64bf740edf6c99e3db0003685f6851e286ac7c6b2bb3d7d94ad05a562d690c2c7a951c7176fbe586a518ecad65fe6f1e91"
|
|
904
934
|
}
|
|
905
935
|
]
|
|
906
936
|
},
|
|
@@ -911,11 +941,11 @@
|
|
|
911
941
|
"hashes": [
|
|
912
942
|
{
|
|
913
943
|
"alg": "SHA-256",
|
|
914
|
-
"content": "
|
|
944
|
+
"content": "262c2f130934dc1b6ebc913022c22416e5831d5a5d6edc561b76c238effce55a"
|
|
915
945
|
},
|
|
916
946
|
{
|
|
917
947
|
"alg": "SHA3-512",
|
|
918
|
-
"content": "
|
|
948
|
+
"content": "cf58367fe3110bce44331acd279984e58a8eab417bd97afe12a48b68064234b3786a843294de17a90ae5c3f81bb60d9663b002bc84d03372e133a243c2fcdd7a"
|
|
919
949
|
}
|
|
920
950
|
]
|
|
921
951
|
},
|
|
@@ -941,11 +971,11 @@
|
|
|
941
971
|
"hashes": [
|
|
942
972
|
{
|
|
943
973
|
"alg": "SHA-256",
|
|
944
|
-
"content": "
|
|
974
|
+
"content": "0a787c60af275a8333087569725a61fdefc0baf2b76076689c2f0a84751b0f95"
|
|
945
975
|
},
|
|
946
976
|
{
|
|
947
977
|
"alg": "SHA3-512",
|
|
948
|
-
"content": "
|
|
978
|
+
"content": "98b61cb38b79aaa556c6b34243fbdd798f1307ecebab09ffdee647f92a7ad388d8110f47ba1e3bff0a01e833c306fb3b9ed243c945e4eb4d448a314bff042571"
|
|
949
979
|
}
|
|
950
980
|
]
|
|
951
981
|
},
|
|
@@ -1001,11 +1031,11 @@
|
|
|
1001
1031
|
"hashes": [
|
|
1002
1032
|
{
|
|
1003
1033
|
"alg": "SHA-256",
|
|
1004
|
-
"content": "
|
|
1034
|
+
"content": "6a40b3d23b3e524064e8fa4499f1a81e28238d08e3c2f91e6c2127ce6809f21a"
|
|
1005
1035
|
},
|
|
1006
1036
|
{
|
|
1007
1037
|
"alg": "SHA3-512",
|
|
1008
|
-
"content": "
|
|
1038
|
+
"content": "b097b4de51845a2f1d88ea8d4d891568f9a76e9b9bdd4d280e962ec84af57c5136a47804d0cd005e4e8fbdd50513d0666409463b5958a03da4520f20f750cfa9"
|
|
1009
1039
|
}
|
|
1010
1040
|
]
|
|
1011
1041
|
},
|
|
@@ -1054,6 +1084,21 @@
|
|
|
1054
1084
|
}
|
|
1055
1085
|
]
|
|
1056
1086
|
},
|
|
1087
|
+
{
|
|
1088
|
+
"bom-ref": "file:lib/collectors/scan-excludes.js",
|
|
1089
|
+
"type": "file",
|
|
1090
|
+
"name": "lib/collectors/scan-excludes.js",
|
|
1091
|
+
"hashes": [
|
|
1092
|
+
{
|
|
1093
|
+
"alg": "SHA-256",
|
|
1094
|
+
"content": "329a31ed657b2fc57b51a5e66e5bed05ada149b48e1c469ae02ed2242794efa9"
|
|
1095
|
+
},
|
|
1096
|
+
{
|
|
1097
|
+
"alg": "SHA3-512",
|
|
1098
|
+
"content": "c5024081f23b7d72c8b5287e2392f840b525bcba855d6a555ab9ed562fb84668eaacc801ae0b420b49439ad83f48dd1f653bcbb1f9aa6cf898c99ecc560a61ff"
|
|
1099
|
+
}
|
|
1100
|
+
]
|
|
1101
|
+
},
|
|
1057
1102
|
{
|
|
1058
1103
|
"bom-ref": "file:lib/collectors/secrets.js",
|
|
1059
1104
|
"type": "file",
|
|
@@ -1061,11 +1106,11 @@
|
|
|
1061
1106
|
"hashes": [
|
|
1062
1107
|
{
|
|
1063
1108
|
"alg": "SHA-256",
|
|
1064
|
-
"content": "
|
|
1109
|
+
"content": "40541ea833836853ab38775d6c840680c36da15a374508acd5710dc7f04a4181"
|
|
1065
1110
|
},
|
|
1066
1111
|
{
|
|
1067
1112
|
"alg": "SHA3-512",
|
|
1068
|
-
"content": "
|
|
1113
|
+
"content": "d63e298bd5c38e5c5a6b55770611df01d1a12ad46863875b2625a5b5dba29fd0d25e492c606d3a6e1bab3b56554555b44d2ef00714fcdded4ed495fb07fab8c4"
|
|
1069
1114
|
}
|
|
1070
1115
|
]
|
|
1071
1116
|
},
|
|
@@ -1151,11 +1196,11 @@
|
|
|
1151
1196
|
"hashes": [
|
|
1152
1197
|
{
|
|
1153
1198
|
"alg": "SHA-256",
|
|
1154
|
-
"content": "
|
|
1199
|
+
"content": "37998843b3fce6b56fd7f18124302ee21335e43174aa445e307c578b0cfcf8ea"
|
|
1155
1200
|
},
|
|
1156
1201
|
{
|
|
1157
1202
|
"alg": "SHA3-512",
|
|
1158
|
-
"content": "
|
|
1203
|
+
"content": "6953bae9370604540ecefb1434d622524e57083ec8afba76cf431f8b41f5a48ee948208667bc2677fcebb301440df74029fa3e075f366ecb915567de25079282"
|
|
1159
1204
|
}
|
|
1160
1205
|
]
|
|
1161
1206
|
},
|
|
@@ -1271,11 +1316,11 @@
|
|
|
1271
1316
|
"hashes": [
|
|
1272
1317
|
{
|
|
1273
1318
|
"alg": "SHA-256",
|
|
1274
|
-
"content": "
|
|
1319
|
+
"content": "15ad90a0ad6522d51f1e76b3ad9f7d6853f0545a9c26b9bd5571ce13273b1a36"
|
|
1275
1320
|
},
|
|
1276
1321
|
{
|
|
1277
1322
|
"alg": "SHA3-512",
|
|
1278
|
-
"content": "
|
|
1323
|
+
"content": "6ac2fed3aae167c69b9d06ead294a7dd6e9848c034ac65319ad1da6f7839dee852b85f36e9ab1e1bef3e63e386139ea092b79228d055d71573142f2f28d2a0cc"
|
|
1279
1324
|
}
|
|
1280
1325
|
]
|
|
1281
1326
|
},
|
|
@@ -1661,11 +1706,11 @@
|
|
|
1661
1706
|
"hashes": [
|
|
1662
1707
|
{
|
|
1663
1708
|
"alg": "SHA-256",
|
|
1664
|
-
"content": "
|
|
1709
|
+
"content": "b6388ed9b3b0e87f6f65d050c2aef4fb3121e2135892e59313ba05b6fa5090e7"
|
|
1665
1710
|
},
|
|
1666
1711
|
{
|
|
1667
1712
|
"alg": "SHA3-512",
|
|
1668
|
-
"content": "
|
|
1713
|
+
"content": "11b015db4bf77151a7236bc4c6651cb8ab65f519cb0252df9fbdfd0e2a5d413bf5e09f7d712016f23dde92076ea952fd4d53a091d4feee71ce72b68079de3558"
|
|
1669
1714
|
}
|
|
1670
1715
|
]
|
|
1671
1716
|
},
|
|
@@ -2066,11 +2111,11 @@
|
|
|
2066
2111
|
"hashes": [
|
|
2067
2112
|
{
|
|
2068
2113
|
"alg": "SHA-256",
|
|
2069
|
-
"content": "
|
|
2114
|
+
"content": "5f7978dd042ae7c80e98610c6f26a9eade31618357c4611926023bba2483f2c4"
|
|
2070
2115
|
},
|
|
2071
2116
|
{
|
|
2072
2117
|
"alg": "SHA3-512",
|
|
2073
|
-
"content": "
|
|
2118
|
+
"content": "bec0430494961404b184d09d8271ebbe7c9145b5782cff7c6f5c0d66e5b68255019179177d00d8f12a201f67353e7c9d3cbf36eb9351b3b3ceb32dba47e56e37"
|
|
2074
2119
|
}
|
|
2075
2120
|
]
|
|
2076
2121
|
},
|
|
@@ -58,6 +58,14 @@ function main() {
|
|
|
58
58
|
try {
|
|
59
59
|
collectorFiles = fs.readdirSync(COLLECTOR_DIR)
|
|
60
60
|
.filter(f => f.endsWith(".js"))
|
|
61
|
+
// A collector is a module exporting a collect() function. Shared
|
|
62
|
+
// helpers under lib/collectors/ (e.g. scan-excludes.js, the directory-
|
|
63
|
+
// walk exclusion policy) are not collectors and must not inflate the
|
|
64
|
+
// count or be required in the AGENTS.md enumeration.
|
|
65
|
+
.filter(f => {
|
|
66
|
+
try { return typeof require(path.join(COLLECTOR_DIR, f)).collect === "function"; }
|
|
67
|
+
catch { return false; }
|
|
68
|
+
})
|
|
61
69
|
.map(f => `lib/collectors/${f}`)
|
|
62
70
|
.sort();
|
|
63
71
|
} catch (e) {
|