@kevinrabun/judges 3.49.0 → 3.51.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 (70) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/cli.d.ts.map +1 -1
  3. package/dist/cli.js +112 -0
  4. package/dist/cli.js.map +1 -1
  5. package/dist/commands/ai-gate.d.ts +8 -0
  6. package/dist/commands/ai-gate.d.ts.map +1 -0
  7. package/dist/commands/ai-gate.js +213 -0
  8. package/dist/commands/ai-gate.js.map +1 -0
  9. package/dist/commands/ai-output-compare.d.ts +9 -0
  10. package/dist/commands/ai-output-compare.d.ts.map +1 -0
  11. package/dist/commands/ai-output-compare.js +203 -0
  12. package/dist/commands/ai-output-compare.js.map +1 -0
  13. package/dist/commands/ai-pattern-trend.d.ts +9 -0
  14. package/dist/commands/ai-pattern-trend.d.ts.map +1 -0
  15. package/dist/commands/ai-pattern-trend.js +224 -0
  16. package/dist/commands/ai-pattern-trend.js.map +1 -0
  17. package/dist/commands/api-audit.d.ts +9 -0
  18. package/dist/commands/api-audit.d.ts.map +1 -0
  19. package/dist/commands/api-audit.js +360 -0
  20. package/dist/commands/api-audit.js.map +1 -0
  21. package/dist/commands/arch-audit.d.ts +9 -0
  22. package/dist/commands/arch-audit.d.ts.map +1 -0
  23. package/dist/commands/arch-audit.js +284 -0
  24. package/dist/commands/arch-audit.js.map +1 -0
  25. package/dist/commands/clarity-score.d.ts +9 -0
  26. package/dist/commands/clarity-score.d.ts.map +1 -0
  27. package/dist/commands/clarity-score.js +261 -0
  28. package/dist/commands/clarity-score.js.map +1 -0
  29. package/dist/commands/compliance-map.d.ts +9 -0
  30. package/dist/commands/compliance-map.d.ts.map +1 -0
  31. package/dist/commands/compliance-map.js +375 -0
  32. package/dist/commands/compliance-map.js.map +1 -0
  33. package/dist/commands/exec-report.d.ts +9 -0
  34. package/dist/commands/exec-report.d.ts.map +1 -0
  35. package/dist/commands/exec-report.js +272 -0
  36. package/dist/commands/exec-report.js.map +1 -0
  37. package/dist/commands/guided-tour.d.ts +9 -0
  38. package/dist/commands/guided-tour.d.ts.map +1 -0
  39. package/dist/commands/guided-tour.js +288 -0
  40. package/dist/commands/guided-tour.js.map +1 -0
  41. package/dist/commands/hallucination-score.d.ts +9 -0
  42. package/dist/commands/hallucination-score.d.ts.map +1 -0
  43. package/dist/commands/hallucination-score.js +317 -0
  44. package/dist/commands/hallucination-score.js.map +1 -0
  45. package/dist/commands/iac-lint.d.ts +8 -0
  46. package/dist/commands/iac-lint.d.ts.map +1 -0
  47. package/dist/commands/iac-lint.js +313 -0
  48. package/dist/commands/iac-lint.js.map +1 -0
  49. package/dist/commands/perf-compare.d.ts +9 -0
  50. package/dist/commands/perf-compare.d.ts.map +1 -0
  51. package/dist/commands/perf-compare.js +246 -0
  52. package/dist/commands/perf-compare.js.map +1 -0
  53. package/dist/commands/pii-scan.d.ts +8 -0
  54. package/dist/commands/pii-scan.d.ts.map +1 -0
  55. package/dist/commands/pii-scan.js +300 -0
  56. package/dist/commands/pii-scan.js.map +1 -0
  57. package/dist/commands/secret-scan.d.ts +8 -0
  58. package/dist/commands/secret-scan.d.ts.map +1 -0
  59. package/dist/commands/secret-scan.js +245 -0
  60. package/dist/commands/secret-scan.js.map +1 -0
  61. package/dist/commands/test-suggest.d.ts +9 -0
  62. package/dist/commands/test-suggest.d.ts.map +1 -0
  63. package/dist/commands/test-suggest.js +248 -0
  64. package/dist/commands/test-suggest.js.map +1 -0
  65. package/dist/commands/vendor-lock-detect.d.ts +8 -0
  66. package/dist/commands/vendor-lock-detect.d.ts.map +1 -0
  67. package/dist/commands/vendor-lock-detect.js +289 -0
  68. package/dist/commands/vendor-lock-detect.js.map +1 -0
  69. package/package.json +1 -1
  70. package/server.json +2 -2
@@ -0,0 +1,375 @@
1
+ /**
2
+ * Compliance map — map findings to multiple compliance frameworks
3
+ * (HIPAA, SOC2, PCI-DSS, ISO 27001, NIST 800-53).
4
+ *
5
+ * Produces a unified cross-walk matrix with gap analysis.
6
+ * All analysis local — no data leaves the machine.
7
+ */
8
+ import { existsSync, readFileSync, mkdirSync, writeFileSync } from "fs";
9
+ import { join } from "path";
10
+ // ─── Frameworks ─────────────────────────────────────────────────────────────
11
+ const FRAMEWORKS = [
12
+ {
13
+ id: "hipaa",
14
+ name: "HIPAA",
15
+ controls: [
16
+ {
17
+ id: "164.312(a)(1)",
18
+ title: "Access Control",
19
+ description: "Implement technical policies for electronic information systems access",
20
+ },
21
+ {
22
+ id: "164.312(a)(2)(iv)",
23
+ title: "Encryption and Decryption",
24
+ description: "Implement encryption mechanism for ePHI",
25
+ },
26
+ {
27
+ id: "164.312(c)(1)",
28
+ title: "Integrity",
29
+ description: "Implement policies to protect ePHI from improper alteration",
30
+ },
31
+ {
32
+ id: "164.312(d)",
33
+ title: "Authentication",
34
+ description: "Implement procedures to verify person or entity seeking access",
35
+ },
36
+ {
37
+ id: "164.312(e)(1)",
38
+ title: "Transmission Security",
39
+ description: "Implement technical security measures for electronic transmission",
40
+ },
41
+ {
42
+ id: "164.308(a)(1)(ii)(D)",
43
+ title: "Information System Activity Review",
44
+ description: "Implement procedures for regular review of records",
45
+ },
46
+ ],
47
+ },
48
+ {
49
+ id: "soc2",
50
+ name: "SOC 2",
51
+ controls: [
52
+ { id: "CC6.1", title: "Logical Access Security", description: "Logical access security over information assets" },
53
+ { id: "CC6.3", title: "Role-Based Access", description: "Role-based access and least privilege" },
54
+ { id: "CC6.6", title: "System Boundaries", description: "Security measures at system boundaries" },
55
+ { id: "CC6.7", title: "Data Transmission", description: "Restrict transmission of data to authorized parties" },
56
+ { id: "CC7.2", title: "System Monitoring", description: "Monitor system components for anomalies" },
57
+ { id: "CC8.1", title: "Change Management", description: "Changes to infrastructure and software are authorized" },
58
+ ],
59
+ },
60
+ {
61
+ id: "pci-dss",
62
+ name: "PCI-DSS v4.0",
63
+ controls: [
64
+ { id: "Req-2.2.1", title: "System Hardening", description: "Primary function configuration standards" },
65
+ { id: "Req-3.4", title: "PAN Protection", description: "Render PAN unreadable anywhere it's stored" },
66
+ { id: "Req-4.2.1", title: "Strong Cryptography", description: "Strong cryptography for PAN transmission" },
67
+ { id: "Req-6.2.4", title: "Secure Coding", description: "Software engineering techniques prevent attacks" },
68
+ {
69
+ id: "Req-6.3.1",
70
+ title: "Vulnerability Management",
71
+ description: "Security vulnerabilities identified and managed",
72
+ },
73
+ { id: "Req-8.3.1", title: "Authentication", description: "Strong authentication for user access" },
74
+ { id: "Req-10.2.1", title: "Audit Logs", description: "Logging mechanisms enabled" },
75
+ ],
76
+ },
77
+ {
78
+ id: "iso27001",
79
+ name: "ISO 27001:2022",
80
+ controls: [
81
+ { id: "A.5.15", title: "Access Control", description: "Rules for access control based on business requirements" },
82
+ {
83
+ id: "A.8.3",
84
+ title: "Information Access Restriction",
85
+ description: "Access to information restricted per access control policy",
86
+ },
87
+ {
88
+ id: "A.8.9",
89
+ title: "Configuration Management",
90
+ description: "Configurations including security configurations managed",
91
+ },
92
+ { id: "A.8.12", title: "Data Leakage Prevention", description: "Measures applied to prevent data leakage" },
93
+ { id: "A.8.24", title: "Cryptography", description: "Rules for effective use of cryptography" },
94
+ { id: "A.8.25", title: "Secure Development", description: "Rules for secure development of software" },
95
+ { id: "A.8.28", title: "Secure Coding", description: "Secure coding principles applied to development" },
96
+ ],
97
+ },
98
+ {
99
+ id: "nist800-53",
100
+ name: "NIST 800-53 Rev 5",
101
+ controls: [
102
+ { id: "AC-3", title: "Access Enforcement", description: "Enforce approved authorizations for access" },
103
+ { id: "AC-6", title: "Least Privilege", description: "Employ principle of least privilege" },
104
+ { id: "AU-2", title: "Event Logging", description: "Identify events requiring logging" },
105
+ { id: "IA-5", title: "Authenticator Management", description: "Manage information system authenticators" },
106
+ { id: "SC-8", title: "Transmission Confidentiality", description: "Protect transmitted information" },
107
+ { id: "SC-13", title: "Cryptographic Protection", description: "Implement cryptographic mechanisms" },
108
+ { id: "SI-10", title: "Information Input Validation", description: "Check validity of information inputs" },
109
+ { id: "SA-11", title: "Developer Testing", description: "Require system developer to create test plan" },
110
+ ],
111
+ },
112
+ ];
113
+ // ─── Rule-to-control mappings ───────────────────────────────────────────────
114
+ const RULE_MAPPINGS = [
115
+ {
116
+ rulePattern: /sql[-_]?inject|inject|xss|command[-_]?inject|input[-_]?valid/i,
117
+ frameworks: {
118
+ hipaa: ["164.312(c)(1)"],
119
+ soc2: ["CC6.6"],
120
+ "pci-dss": ["Req-6.2.4"],
121
+ iso27001: ["A.8.28"],
122
+ "nist800-53": ["SI-10"],
123
+ },
124
+ },
125
+ {
126
+ rulePattern: /crypt|encrypt|hash|tls|ssl|cert/i,
127
+ frameworks: {
128
+ hipaa: ["164.312(a)(2)(iv)", "164.312(e)(1)"],
129
+ soc2: ["CC6.7"],
130
+ "pci-dss": ["Req-4.2.1"],
131
+ iso27001: ["A.8.24"],
132
+ "nist800-53": ["SC-8", "SC-13"],
133
+ },
134
+ },
135
+ {
136
+ rulePattern: /auth|login|session|token|credential|password/i,
137
+ frameworks: {
138
+ hipaa: ["164.312(d)"],
139
+ soc2: ["CC6.1"],
140
+ "pci-dss": ["Req-8.3.1"],
141
+ iso27001: ["A.5.15"],
142
+ "nist800-53": ["IA-5", "AC-3"],
143
+ },
144
+ },
145
+ {
146
+ rulePattern: /access[-_]?control|privilege|rbac|permission|author/i,
147
+ frameworks: {
148
+ hipaa: ["164.312(a)(1)"],
149
+ soc2: ["CC6.3"],
150
+ "pci-dss": ["Req-8.3.1"],
151
+ iso27001: ["A.8.3"],
152
+ "nist800-53": ["AC-3", "AC-6"],
153
+ },
154
+ },
155
+ {
156
+ rulePattern: /log|audit|monitor|trace/i,
157
+ frameworks: {
158
+ hipaa: ["164.308(a)(1)(ii)(D)"],
159
+ soc2: ["CC7.2"],
160
+ "pci-dss": ["Req-10.2.1"],
161
+ iso27001: ["A.8.9"],
162
+ "nist800-53": ["AU-2"],
163
+ },
164
+ },
165
+ {
166
+ rulePattern: /secret|leak|expos|sensitive|pii|pan|credit[-_]?card/i,
167
+ frameworks: {
168
+ hipaa: ["164.312(a)(2)(iv)"],
169
+ soc2: ["CC6.7"],
170
+ "pci-dss": ["Req-3.4"],
171
+ iso27001: ["A.8.12"],
172
+ "nist800-53": ["SC-13"],
173
+ },
174
+ },
175
+ {
176
+ rulePattern: /config|harden|secure[-_]?default|misconfigur/i,
177
+ frameworks: {
178
+ soc2: ["CC8.1"],
179
+ "pci-dss": ["Req-2.2.1"],
180
+ iso27001: ["A.8.9"],
181
+ "nist800-53": ["SA-11"],
182
+ },
183
+ },
184
+ {
185
+ rulePattern: /vuln|cve|dependency|outdated|package/i,
186
+ frameworks: {
187
+ "pci-dss": ["Req-6.3.1"],
188
+ iso27001: ["A.8.25"],
189
+ "nist800-53": ["SA-11"],
190
+ },
191
+ },
192
+ ];
193
+ function loadFindings(inputPath) {
194
+ const content = readFileSync(inputPath, "utf-8");
195
+ const data = JSON.parse(content);
196
+ // SARIF format
197
+ if (data.$schema?.includes("sarif") || data.runs) {
198
+ const findings = [];
199
+ for (const run of data.runs || []) {
200
+ for (const result of run.results || []) {
201
+ const r = result;
202
+ findings.push({
203
+ ruleId: r.ruleId || "unknown",
204
+ title: r.message?.text || r.ruleId || "Unknown",
205
+ severity: r.level === "error" ? "high" : r.level === "warning" ? "medium" : "low",
206
+ });
207
+ }
208
+ }
209
+ return findings;
210
+ }
211
+ // Judges tribunal output
212
+ if (data.findings) {
213
+ return data.findings.map((f) => ({
214
+ ruleId: f.ruleId || "unknown",
215
+ title: f.title || f.ruleId || "Unknown",
216
+ severity: f.severity || "medium",
217
+ }));
218
+ }
219
+ // Array of findings
220
+ if (Array.isArray(data)) {
221
+ return data.map((f) => ({
222
+ ruleId: f.ruleId || "unknown",
223
+ title: f.title || "Unknown",
224
+ severity: f.severity || "medium",
225
+ }));
226
+ }
227
+ return [];
228
+ }
229
+ function mapToFrameworks(findings) {
230
+ return findings.map((f) => {
231
+ const frameworks = {};
232
+ const combined = `${f.ruleId} ${f.title}`;
233
+ for (const mapping of RULE_MAPPINGS) {
234
+ if (mapping.rulePattern.test(combined)) {
235
+ for (const [fwId, controls] of Object.entries(mapping.frameworks)) {
236
+ if (!frameworks[fwId])
237
+ frameworks[fwId] = [];
238
+ for (const c of controls) {
239
+ if (!frameworks[fwId].includes(c))
240
+ frameworks[fwId].push(c);
241
+ }
242
+ }
243
+ }
244
+ }
245
+ return { ruleId: f.ruleId, title: f.title, severity: f.severity, frameworks };
246
+ });
247
+ }
248
+ // ─── CLI ────────────────────────────────────────────────────────────────────
249
+ export function runComplianceMap(argv) {
250
+ if (argv.includes("--help") || argv.includes("-h")) {
251
+ console.log(`
252
+ judges compliance-map — Map findings to compliance frameworks
253
+
254
+ Usage:
255
+ judges compliance-map <findings.json>
256
+ judges compliance-map report.sarif.json --frameworks hipaa,pci-dss
257
+ judges compliance-map findings.json --format json --output compliance.json
258
+
259
+ Options:
260
+ --frameworks <list> Filter frameworks (comma-separated: hipaa,soc2,pci-dss,iso27001,nist800-53)
261
+ --list-frameworks List all supported frameworks and controls
262
+ --gap-analysis Show which controls have no matching findings
263
+ --format json JSON output
264
+ --output <file> Write report to file
265
+ --help, -h Show this help
266
+
267
+ Supported Frameworks: ${FRAMEWORKS.map((f) => f.id).join(", ")}
268
+ `);
269
+ return;
270
+ }
271
+ const format = argv.find((_a, i) => argv[i - 1] === "--format") || "text";
272
+ const outputFile = argv.find((_a, i) => argv[i - 1] === "--output");
273
+ if (argv.includes("--list-frameworks")) {
274
+ if (format === "json") {
275
+ console.log(JSON.stringify(FRAMEWORKS, null, 2));
276
+ }
277
+ else {
278
+ for (const fw of FRAMEWORKS) {
279
+ console.log(`\n ${fw.name} (${fw.id})`);
280
+ console.log(" ──────────────────────────");
281
+ for (const c of fw.controls) {
282
+ console.log(` ${c.id.padEnd(20)} ${c.title}`);
283
+ }
284
+ }
285
+ console.log("");
286
+ }
287
+ return;
288
+ }
289
+ const inputFile = argv.find((a) => !a.startsWith("--") && !argv[argv.indexOf(a) - 1]?.startsWith("--"));
290
+ if (!inputFile || !existsSync(inputFile)) {
291
+ console.error(" Please provide a valid findings file (JSON or SARIF)");
292
+ return;
293
+ }
294
+ const fwFilter = argv.find((_a, i) => argv[i - 1] === "--frameworks");
295
+ const showGaps = argv.includes("--gap-analysis");
296
+ let findings;
297
+ try {
298
+ findings = loadFindings(inputFile);
299
+ }
300
+ catch (err) {
301
+ console.error(` Failed to parse findings: ${err instanceof Error ? err.message : String(err)}`);
302
+ return;
303
+ }
304
+ const mapped = mapToFrameworks(findings);
305
+ let activeFrameworks = FRAMEWORKS;
306
+ if (fwFilter) {
307
+ const allowed = fwFilter.split(",");
308
+ activeFrameworks = FRAMEWORKS.filter((f) => allowed.includes(f.id));
309
+ }
310
+ // Build coverage matrix
311
+ const coverage = {};
312
+ for (const fw of activeFrameworks)
313
+ coverage[fw.id] = new Set();
314
+ for (const m of mapped) {
315
+ for (const [fwId, controls] of Object.entries(m.frameworks)) {
316
+ if (!coverage[fwId])
317
+ continue;
318
+ for (const c of controls)
319
+ coverage[fwId].add(c);
320
+ }
321
+ }
322
+ const report = {
323
+ findings: mapped,
324
+ coverage: Object.fromEntries(activeFrameworks.map((fw) => [
325
+ fw.id,
326
+ {
327
+ name: fw.name,
328
+ totalControls: fw.controls.length,
329
+ coveredControls: coverage[fw.id].size,
330
+ coveragePercent: fw.controls.length > 0 ? Math.round((coverage[fw.id].size / fw.controls.length) * 100) : 0,
331
+ covered: [...coverage[fw.id]],
332
+ gaps: fw.controls.filter((c) => !coverage[fw.id].has(c.id)).map((c) => c.id),
333
+ },
334
+ ])),
335
+ totalFindings: findings.length,
336
+ mappedFindings: mapped.filter((m) => Object.keys(m.frameworks).length > 0).length,
337
+ timestamp: new Date().toISOString(),
338
+ };
339
+ if (outputFile) {
340
+ const dir = join(".", ".judges-compliance");
341
+ if (!existsSync(dir))
342
+ mkdirSync(dir, { recursive: true });
343
+ writeFileSync(join(dir, outputFile), JSON.stringify(report, null, 2));
344
+ console.log(` Report saved to .judges-compliance/${outputFile}`);
345
+ }
346
+ if (format === "json") {
347
+ console.log(JSON.stringify(report, null, 2));
348
+ }
349
+ else {
350
+ console.log(`\n Compliance Mapping — ${findings.length} findings`);
351
+ console.log(` Mapped: ${report.mappedFindings} | Unmapped: ${findings.length - report.mappedFindings}\n ──────────────────────────`);
352
+ for (const fw of activeFrameworks) {
353
+ const cov = report.coverage[fw.id];
354
+ const bar = "█".repeat(Math.round(cov.coveragePercent / 5)) + "░".repeat(20 - Math.round(cov.coveragePercent / 5));
355
+ console.log(`\n ${fw.name.padEnd(20)} ${bar} ${cov.coveragePercent}% (${cov.coveredControls}/${cov.totalControls})`);
356
+ if (showGaps && cov.gaps.length > 0) {
357
+ console.log(` Gaps: ${cov.gaps.join(", ")}`);
358
+ }
359
+ }
360
+ // Cross-walk table
361
+ console.log("\n Cross-Walk Matrix:");
362
+ console.log(" " + "Finding".padEnd(40) + activeFrameworks.map((f) => f.id.padEnd(12)).join(""));
363
+ console.log(" " + "─".repeat(40 + activeFrameworks.length * 12));
364
+ for (const m of mapped.slice(0, 20)) {
365
+ const cols = activeFrameworks
366
+ .map((f) => (m.frameworks[f.id]?.length ? `✓ (${m.frameworks[f.id].length})`.padEnd(12) : "—".padEnd(12)))
367
+ .join("");
368
+ console.log(" " + m.ruleId.substring(0, 38).padEnd(40) + cols);
369
+ }
370
+ if (mapped.length > 20)
371
+ console.log(` ... and ${mapped.length - 20} more findings`);
372
+ console.log("");
373
+ }
374
+ }
375
+ //# sourceMappingURL=compliance-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compliance-map.js","sourceRoot":"","sources":["../../src/commands/compliance-map.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Exec report — executive security dashboard.
3
+ * Generates non-technical HTML report with risk posture summary,
4
+ * recurring issue trends, severity distribution, and remediation guidance.
5
+ *
6
+ * All data local.
7
+ */
8
+ export declare function runExecReport(argv: string[]): void;
9
+ //# sourceMappingURL=exec-report.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exec-report.d.ts","sourceRoot":"","sources":["../../src/commands/exec-report.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyPH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAuElD"}