@kevinrabun/judges 3.23.8 → 3.23.10
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/CHANGELOG.md +38 -0
- package/dist/ast/structural-parser.js +1 -1
- package/dist/ast/structural-parser.js.map +1 -1
- package/dist/ast/taint-tracker.js +1 -1
- package/dist/ast/taint-tracker.js.map +1 -1
- package/dist/cache.d.ts +25 -3
- package/dist/cache.d.ts.map +1 -1
- package/dist/cache.js +32 -8
- package/dist/cache.js.map +1 -1
- package/dist/commands/fix.js +1 -1
- package/dist/commands/fix.js.map +1 -1
- package/dist/disk-cache.d.ts +25 -5
- package/dist/disk-cache.d.ts.map +1 -1
- package/dist/disk-cache.js +77 -36
- package/dist/disk-cache.js.map +1 -1
- package/dist/errors.d.ts +8 -1
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +11 -4
- package/dist/errors.js.map +1 -1
- package/dist/evaluators/compliance.js +1 -1
- package/dist/evaluators/compliance.js.map +1 -1
- package/dist/evaluators/false-positive-review.d.ts.map +1 -1
- package/dist/evaluators/false-positive-review.js +330 -0
- package/dist/evaluators/false-positive-review.js.map +1 -1
- package/dist/evaluators/framework-safety.js +1 -1
- package/dist/evaluators/framework-safety.js.map +1 -1
- package/dist/evaluators/index.d.ts.map +1 -1
- package/dist/evaluators/index.js +1 -0
- package/dist/evaluators/index.js.map +1 -1
- package/dist/evaluators/shared.d.ts +1 -1
- package/dist/evaluators/shared.d.ts.map +1 -1
- package/dist/evaluators/shared.js +73 -3
- package/dist/evaluators/shared.js.map +1 -1
- package/dist/fix-history.d.ts +24 -1
- package/dist/fix-history.d.ts.map +1 -1
- package/dist/fix-history.js +24 -1
- package/dist/fix-history.js.map +1 -1
- package/dist/tools/deep-review.js +1 -1
- package/dist/tools/deep-review.js.map +1 -1
- package/package.json +3 -1
- package/server.json +2 -2
|
@@ -51,6 +51,18 @@ const PROD_ONLY_RULE_PREFIXES = [
|
|
|
51
51
|
"CACHE-", // caching strategy not relevant to test code
|
|
52
52
|
"DATA-", // data security patterns noise in test assertions
|
|
53
53
|
"API-", // API design not relevant in test code
|
|
54
|
+
"REL-", // reliability patterns not needed in tests
|
|
55
|
+
"CONC-", // concurrency patterns not needed in tests
|
|
56
|
+
"FW-", // framework rules triggered by test fixtures
|
|
57
|
+
"CYBER-", // security rules triggered by intentional test patterns
|
|
58
|
+
"AUTH-", // auth rules triggered by test patterns
|
|
59
|
+
"ERR-", // error handling patterns differ in test code
|
|
60
|
+
"STRUCT-", // structural rules less meaningful in test files
|
|
61
|
+
"DB-", // database rules triggered by test fixtures
|
|
62
|
+
"COMPAT-", // backwards compatibility not relevant in tests
|
|
63
|
+
"CFG-", // configuration management not relevant in tests
|
|
64
|
+
"ETHICS-", // ethics not relevant to test code
|
|
65
|
+
"DEPS-", // dependency health triggered by test fixtures
|
|
54
66
|
];
|
|
55
67
|
/**
|
|
56
68
|
* Rule IDs that target executable code and should NOT fire on configuration
|
|
@@ -89,6 +101,69 @@ const CODE_ONLY_RULE_PREFIXES = [
|
|
|
89
101
|
"DEPS-", // dependency health — package files handled separately
|
|
90
102
|
"AGENT-", // agent instructions — not applicable to data files
|
|
91
103
|
];
|
|
104
|
+
/**
|
|
105
|
+
* Rule IDs targeting application-runtime / cloud-service concerns that
|
|
106
|
+
* do NOT apply to code analysis tools (linters, security scanners,
|
|
107
|
+
* judge definitions, evaluators, formatters, AST analyzers).
|
|
108
|
+
*
|
|
109
|
+
* Analysis tools necessarily contain the very patterns they detect
|
|
110
|
+
* (regex patterns for auth, data export, PII, etc.) and are single-
|
|
111
|
+
* process developer utilities, not production services.
|
|
112
|
+
*/
|
|
113
|
+
const ANALYSIS_TOOL_INAPPLICABLE_RULE_PREFIXES = [
|
|
114
|
+
"SOV-", // data sovereignty — tool doesn't process user data
|
|
115
|
+
"COMP-", // compliance — tool doesn't handle regulated data
|
|
116
|
+
"CYBER-", // web security — tool has no endpoints
|
|
117
|
+
"AUTH-", // authentication — tool has no auth system
|
|
118
|
+
"DATA-", // data security — tool analyzes code, doesn't store data
|
|
119
|
+
"SCALE-", // scalability — single-process tool
|
|
120
|
+
"CLOUD-", // cloud readiness — not a cloud service
|
|
121
|
+
"RATE-", // rate limiting — not a service
|
|
122
|
+
"DB-", // database — no database
|
|
123
|
+
"API-", // API design — not an API service
|
|
124
|
+
"A11Y-", // accessibility — not a UI
|
|
125
|
+
"I18N-", // internationalization — not user-facing
|
|
126
|
+
"UX-", // user experience — not a UI
|
|
127
|
+
"OBS-", // observability — not a production service
|
|
128
|
+
"LOGPRIV-", // logging privacy — no user data
|
|
129
|
+
"AGENT-", // agent instructions — not an AI agent
|
|
130
|
+
"AICS-", // AI code safety — analyzing code, not generating it
|
|
131
|
+
"FW-", // framework rules — analysis tool, not framework consumer
|
|
132
|
+
"CACHE-", // caching strategy — not a service
|
|
133
|
+
"ETHICS-", // ethics/bias — tool doesn't make decisions about people
|
|
134
|
+
"CONC-", // concurrency — single-threaded analysis
|
|
135
|
+
"TEST-", // testing rules — analysis code isn't test code
|
|
136
|
+
"CICD-", // CI/CD infrastructure — not applicable
|
|
137
|
+
"DEPS-", // dependency health — not applicable to analysis patterns
|
|
138
|
+
"COMPAT-", // backwards compat — internal tool
|
|
139
|
+
"CFG-", // config management — analysis tool
|
|
140
|
+
"REL-", // reliability patterns — not a service
|
|
141
|
+
];
|
|
142
|
+
/**
|
|
143
|
+
* Rule IDs targeting cloud-service / web-server concerns that do NOT apply
|
|
144
|
+
* to VS Code extensions (desktop plugins running in the editor process).
|
|
145
|
+
*/
|
|
146
|
+
const VSCODE_EXT_INAPPLICABLE_RULE_PREFIXES = [
|
|
147
|
+
"SOV-", // data sovereignty — desktop app, no cross-border data
|
|
148
|
+
"COMP-", // compliance — extension doesn't handle regulated data
|
|
149
|
+
"SCALE-", // scalability — desktop extension
|
|
150
|
+
"CLOUD-", // cloud readiness — desktop extension
|
|
151
|
+
"RATE-", // rate limiting — desktop extension
|
|
152
|
+
"DB-", // database — extensions use VS Code storage API
|
|
153
|
+
"A11Y-", // accessibility — VS Code handles accessibility
|
|
154
|
+
"I18N-", // internationalization — VS Code handles i18n
|
|
155
|
+
"AGENT-", // agent instructions — not an AI agent
|
|
156
|
+
"CACHE-", // caching — desktop extension
|
|
157
|
+
"API-", // API design — extension API, not REST API
|
|
158
|
+
"OBS-", // observability — desktop extension
|
|
159
|
+
"CONC-", // concurrency — VS Code extension model handles this
|
|
160
|
+
"ETHICS-", // ethics/bias — tool extension, not decision system
|
|
161
|
+
"AICS-", // AI code safety — not generating code
|
|
162
|
+
"CICD-", // CI/CD infrastructure — not applicable
|
|
163
|
+
"COST-", // cost optimization — desktop extension
|
|
164
|
+
"DEPS-", // dependency health — VS Code handles deps
|
|
165
|
+
"TEST-", // testing patterns — not test code
|
|
166
|
+
];
|
|
92
167
|
/**
|
|
93
168
|
* Keywords commonly appearing in identifiers that collide with security
|
|
94
169
|
* terms. Maps the triggering keyword to identifier patterns that neutralise
|
|
@@ -269,6 +344,25 @@ function getFpReason(finding, lines, isIaC, fileCategory) {
|
|
|
269
344
|
return `Production-only rule ${finding.ruleId} does not apply to test files.`;
|
|
270
345
|
}
|
|
271
346
|
}
|
|
347
|
+
// ── 2a. Analysis-tool test files: TEST-* rules fire on code specimens ──
|
|
348
|
+
// Test suites for code analysis tools necessarily embed template-literal
|
|
349
|
+
// code samples in many languages. Pattern-based TEST-* rules (vague
|
|
350
|
+
// names, hardcoded dates, external deps, sleeps, large file size)
|
|
351
|
+
// inevitably match content inside those string specimens rather than
|
|
352
|
+
// genuine test smells.
|
|
353
|
+
if (fileCategory === "test" && finding.ruleId.startsWith("TEST-")) {
|
|
354
|
+
const codeText = lines.join("\n");
|
|
355
|
+
const isAnalysisToolTest = /\b(?:evaluateWith|scoreFindings|evaluateCode|filterFalsePositive|classifyFile|TribunalVerdict|JudgeDefinition|judgePanelEvaluate|evaluateWithTribunal)\b/.test(codeText) ||
|
|
356
|
+
// Also detect tests for tool-routing, MCP tools, judge panels, etc.
|
|
357
|
+
/\b(?:judges?\s*panel|tool[_-]?rout|mcp\s*tool|evaluate_code|analyze_code)\b/i.test(codeText);
|
|
358
|
+
if (isAnalysisToolTest) {
|
|
359
|
+
// Verify file is dominated by template literal code specimens
|
|
360
|
+
const templateLiteralCount = (codeText.match(/`[^`]{50,}/g) || []).length;
|
|
361
|
+
if (templateLiteralCount >= 3) {
|
|
362
|
+
return `TEST-* rule ${finding.ruleId} triggered by patterns inside code specimens (template literal fixtures) in analysis-tool tests — not actual test smell.`;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
}
|
|
272
366
|
// ── 2b. Config/data file gating: code-quality rules on YAML/JSON/config ──
|
|
273
367
|
if (fileCategory === "config") {
|
|
274
368
|
const isCodeOnly = CODE_ONLY_RULE_PREFIXES.some((p) => finding.ruleId.startsWith(p));
|
|
@@ -283,6 +377,242 @@ function getFpReason(finding, lines, isIaC, fileCategory) {
|
|
|
283
377
|
if (finding.isAbsenceBased && fileCategory === "types") {
|
|
284
378
|
return "Absence-based rule does not apply to pure type-definition files — no runtime logic to evaluate.";
|
|
285
379
|
}
|
|
380
|
+
// ── 2d. CLI-tool file gating: server/cloud rules on CLI commands ──
|
|
381
|
+
// CLI tools are short-lived processes that legitimately use process.exit(),
|
|
382
|
+
// console.log for output, synchronous I/O, and in-memory data structures.
|
|
383
|
+
// Scalability, observability infrastructure, structured logging, rate
|
|
384
|
+
// limiting, and cloud-readiness rules are not applicable.
|
|
385
|
+
if (fileCategory === "cli") {
|
|
386
|
+
const CLI_INAPPLICABLE_RULE_PREFIXES = [
|
|
387
|
+
"SCALE-", // CLI doesn't need horizontal scaling
|
|
388
|
+
"RATE-", // CLI doesn't need rate limiting
|
|
389
|
+
"CLOUD-", // CLI is not a cloud service
|
|
390
|
+
"OBS-", // CLI doesn't need observability infrastructure
|
|
391
|
+
"LOGPRIV-", // CLI console output is not production logging
|
|
392
|
+
"A11Y-", // CLI is not a web UI
|
|
393
|
+
"UX-", // CLI is not a web UI
|
|
394
|
+
"I18N-", // CLI diagnostic counters don't need locale formatting
|
|
395
|
+
"CACHE-", // CLI doesn't need caching strategy
|
|
396
|
+
"SOV-", // CLI local tool, no data sovereignty concerns
|
|
397
|
+
"COMP-", // CLI tool, no regulatory compliance concerns
|
|
398
|
+
"AGENT-", // agent instructions not applicable to CLI
|
|
399
|
+
"DATA-", // CLI tool doesn't handle sensitive data at rest
|
|
400
|
+
"DB-", // CLI tool has no database concerns
|
|
401
|
+
"API-", // CLI tool is not an API service
|
|
402
|
+
"CYBER-", // CLI tool has no web endpoints
|
|
403
|
+
"AUTH-", // CLI tool has no auth system
|
|
404
|
+
"CONC-", // CLI is single-process short-lived
|
|
405
|
+
"AICS-", // CLI tool is not generating AI code
|
|
406
|
+
"ETHICS-", // CLI tool doesn't make decisions about people
|
|
407
|
+
"FW-", // CLI tool is not a framework consumer
|
|
408
|
+
"TEST-", // testing patterns not relevant to CLI commands
|
|
409
|
+
"CICD-", // CI/CD infrastructure not applicable
|
|
410
|
+
"DEPS-", // dependency health not applicable
|
|
411
|
+
"COMPAT-", // backwards compatibility not applicable
|
|
412
|
+
"CFG-", // config management patterns differ for CLI
|
|
413
|
+
"REL-", // reliability patterns (circuit breakers) not needed in CLI
|
|
414
|
+
];
|
|
415
|
+
const isCLIInapplicable = CLI_INAPPLICABLE_RULE_PREFIXES.some((p) => finding.ruleId.startsWith(p));
|
|
416
|
+
if (isCLIInapplicable) {
|
|
417
|
+
return `Rule ${finding.ruleId} does not apply to CLI tools — short-lived processes do not need cloud/server infrastructure.`;
|
|
418
|
+
}
|
|
419
|
+
// Suppress "abrupt process termination" findings — process.exit() is
|
|
420
|
+
// the standard way for CLI tools to signal success/failure to the shell.
|
|
421
|
+
const titleLower = finding.title.toLowerCase();
|
|
422
|
+
if (titleLower.includes("process.exit") ||
|
|
423
|
+
titleLower.includes("abrupt") ||
|
|
424
|
+
titleLower.includes("hard process termination") ||
|
|
425
|
+
(titleLower.includes("process") && titleLower.includes("termination"))) {
|
|
426
|
+
return "process.exit() is standard in CLI tools for reporting exit codes to the shell.";
|
|
427
|
+
}
|
|
428
|
+
// Suppress "console instead of structured logger" — console is the
|
|
429
|
+
// correct output interface for CLI tools.
|
|
430
|
+
if (titleLower.includes("console") &&
|
|
431
|
+
(titleLower.includes("logger") || titleLower.includes("logging") || titleLower.includes("structured"))) {
|
|
432
|
+
return "Console output is the correct interface for CLI tools — structured logging is for services.";
|
|
433
|
+
}
|
|
434
|
+
// Suppress "unstructured logging" — same reasoning as above
|
|
435
|
+
if (titleLower.includes("unstructured") && titleLower.includes("log")) {
|
|
436
|
+
return "Console output is the correct interface for CLI tools — structured logging is for services.";
|
|
437
|
+
}
|
|
438
|
+
// Suppress "synchronous / blocking I/O" — CLI tools are single-threaded
|
|
439
|
+
// short-lived processes where sync I/O is idiomatic and often preferred.
|
|
440
|
+
if ((titleLower.includes("synchronous") || titleLower.includes("blocking")) &&
|
|
441
|
+
(titleLower.includes("i/o") ||
|
|
442
|
+
titleLower.includes("io") ||
|
|
443
|
+
titleLower.includes("operation") ||
|
|
444
|
+
titleLower.includes("file"))) {
|
|
445
|
+
return "Synchronous I/O is appropriate for CLI tools — short-lived processes do not need async concurrency.";
|
|
446
|
+
}
|
|
447
|
+
// Suppress "in-memory data store" — CLI tools don't need distributed state
|
|
448
|
+
if (titleLower.includes("in-memory") && (titleLower.includes("store") || titleLower.includes("scale"))) {
|
|
449
|
+
return "In-memory data structures are appropriate for CLI tools — no need for distributed state.";
|
|
450
|
+
}
|
|
451
|
+
// Suppress "numeric values formatted without locale" for CLI counter output
|
|
452
|
+
if (titleLower.includes("locale") && titleLower.includes("numeric")) {
|
|
453
|
+
return "CLI diagnostic counters do not need locale-aware formatting.";
|
|
454
|
+
}
|
|
455
|
+
// Suppress STRUCT deep nesting findings — CLI commands with complex
|
|
456
|
+
// argument handling and output formatting have inherent nesting.
|
|
457
|
+
if (/^STRUCT-/.test(finding.ruleId)) {
|
|
458
|
+
return "CLI command logic has inherent nesting from argument handling and output formatting.";
|
|
459
|
+
}
|
|
460
|
+
// Suppress MAINT findings — CLI tools are self-contained scripts where
|
|
461
|
+
// duplicate strings, magic numbers, and file length are acceptable.
|
|
462
|
+
if (/^MAINT-/.test(finding.ruleId)) {
|
|
463
|
+
return "Maintainability patterns differ for CLI tools — self-contained command scripts have different complexity budgets.";
|
|
464
|
+
}
|
|
465
|
+
// Suppress DOC findings — CLI command functions are documented by their
|
|
466
|
+
// --help output, not JSDoc.
|
|
467
|
+
if (/^DOC-/.test(finding.ruleId)) {
|
|
468
|
+
return "CLI commands are documented through --help output, not JSDoc.";
|
|
469
|
+
}
|
|
470
|
+
// Suppress SWDEV findings about long functions, complexity — CLI commands
|
|
471
|
+
// are often single long functions that handle the entire command flow.
|
|
472
|
+
if (/^SWDEV-/.test(finding.ruleId)) {
|
|
473
|
+
return "CLI command handlers are conventionally single functions covering the full command flow.";
|
|
474
|
+
}
|
|
475
|
+
// Suppress PERF/COST findings — CLI tools run once and exit, performance
|
|
476
|
+
// optimizations target long-running services.
|
|
477
|
+
if (/^(?:PERF|COST)-/.test(finding.ruleId)) {
|
|
478
|
+
return "Performance/cost optimizations target long-running services — CLI tools run once and exit.";
|
|
479
|
+
}
|
|
480
|
+
// Suppress ERR findings — CLI tools use process.exit() for error
|
|
481
|
+
// signaling and console.error for messages.
|
|
482
|
+
if (/^ERR-/.test(finding.ruleId)) {
|
|
483
|
+
return "CLI tools use process.exit() and console.error for error signaling — different pattern from services.";
|
|
484
|
+
}
|
|
485
|
+
// Suppress PORTA (portability) findings — CLI tools may use platform-specific paths
|
|
486
|
+
if (/^PORTA-/.test(finding.ruleId)) {
|
|
487
|
+
return "Portability patterns differ for CLI tools — platform-specific paths are often expected.";
|
|
488
|
+
}
|
|
489
|
+
// Suppress absence-based findings on CLI tools — CLI commands don't need
|
|
490
|
+
// missing server infrastructure (rate limiting, monitoring, etc.)
|
|
491
|
+
if (finding.isAbsenceBased) {
|
|
492
|
+
return "Absence-based infrastructure rules do not apply to CLI commands.";
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
// ── 2e. Analysis-tool file gating ──
|
|
496
|
+
// Code analysis tools (judge definitions, evaluators, linters, formatters,
|
|
497
|
+
// AST analyzers) necessarily contain the very patterns they detect. They
|
|
498
|
+
// are single-process developer utilities, not production web services.
|
|
499
|
+
if (fileCategory === "analysis-tool") {
|
|
500
|
+
const isInapplicable = ANALYSIS_TOOL_INAPPLICABLE_RULE_PREFIXES.some((p) => finding.ruleId.startsWith(p));
|
|
501
|
+
if (isInapplicable) {
|
|
502
|
+
return `Rule ${finding.ruleId} does not apply to code analysis tools — pattern definitions are not application logic.`;
|
|
503
|
+
}
|
|
504
|
+
// Suppress nested-loop/complexity findings — pattern matching requires
|
|
505
|
+
// multi-level traversal and deep branching by design.
|
|
506
|
+
const titleLower2e = finding.title.toLowerCase();
|
|
507
|
+
if (/^(?:PERF|COST|STRUCT)-/.test(finding.ruleId) &&
|
|
508
|
+
(titleLower2e.includes("nested") ||
|
|
509
|
+
titleLower2e.includes("complex") ||
|
|
510
|
+
titleLower2e.includes("depth") ||
|
|
511
|
+
titleLower2e.includes("loop"))) {
|
|
512
|
+
return "Complex iteration and deep nesting are inherent to code analysis — pattern matching requires multi-level traversal.";
|
|
513
|
+
}
|
|
514
|
+
// Suppress STRUCT deep nesting findings specifically
|
|
515
|
+
if (/^STRUCT-/.test(finding.ruleId)) {
|
|
516
|
+
return "Deep code structure is inherent to analysis/evaluator logic — multi-level pattern matching requires extensive branching.";
|
|
517
|
+
}
|
|
518
|
+
// Suppress MAINT findings about duplicate strings, magic numbers, file length —
|
|
519
|
+
// analysis patterns legitimately repeat keywords and use numeric thresholds.
|
|
520
|
+
if (/^MAINT-/.test(finding.ruleId)) {
|
|
521
|
+
return "Maintainability patterns in analysis tools reflect detection rule structure, not extractable constants.";
|
|
522
|
+
}
|
|
523
|
+
// Suppress DOC findings — internal analysis code documentation needs differ
|
|
524
|
+
// from public API documentation requirements.
|
|
525
|
+
if (/^DOC-/.test(finding.ruleId)) {
|
|
526
|
+
return "Documentation rules have reduced applicability on internal analysis pattern code.";
|
|
527
|
+
}
|
|
528
|
+
// Suppress SWDEV/ERR findings about function length, error handling, complexity —
|
|
529
|
+
// evaluation functions are necessarily complex.
|
|
530
|
+
if (/^(?:SWDEV|ERR)-/.test(finding.ruleId)) {
|
|
531
|
+
return "Analysis evaluation functions are necessarily complex — pattern matching requires extensive branching and error tolerance.";
|
|
532
|
+
}
|
|
533
|
+
// Suppress PERF/COST findings — analysis tools process single files, not
|
|
534
|
+
// high-throughput production traffic.
|
|
535
|
+
if (/^(?:PERF|COST)-/.test(finding.ruleId)) {
|
|
536
|
+
return "Performance/cost optimizations target production services — analysis tools process single files.";
|
|
537
|
+
}
|
|
538
|
+
// Suppress PORTA (portability) findings — internal developer tool
|
|
539
|
+
if (/^PORTA-/.test(finding.ruleId)) {
|
|
540
|
+
return "Portability rules do not apply to internal code analysis tools.";
|
|
541
|
+
}
|
|
542
|
+
// Suppress absence-based findings — analysis tools don't need server infrastructure
|
|
543
|
+
if (finding.isAbsenceBased) {
|
|
544
|
+
return "Absence-based infrastructure rules do not apply to code analysis tools.";
|
|
545
|
+
}
|
|
546
|
+
}
|
|
547
|
+
// ── 2f. VS Code extension file gating ──
|
|
548
|
+
// VS Code extensions are desktop plugins running inside the editor process.
|
|
549
|
+
// They use the VS Code API for I/O, diagnostics, and UI — cloud/service
|
|
550
|
+
// rules are not applicable.
|
|
551
|
+
if (fileCategory === "vscode-extension") {
|
|
552
|
+
const isInapplicable = VSCODE_EXT_INAPPLICABLE_RULE_PREFIXES.some((p) => finding.ruleId.startsWith(p));
|
|
553
|
+
if (isInapplicable) {
|
|
554
|
+
return `Rule ${finding.ruleId} does not apply to VS Code extensions — desktop plugin, not a cloud service.`;
|
|
555
|
+
}
|
|
556
|
+
// Suppress absence-based findings — VS Code provides the host infrastructure
|
|
557
|
+
if (finding.isAbsenceBased) {
|
|
558
|
+
return "Absence-based infrastructure rules do not apply to VS Code extensions — the host provides the infrastructure.";
|
|
559
|
+
}
|
|
560
|
+
// Suppress findings about auth endpoints / session management —
|
|
561
|
+
// VS Code extensions authenticate via the VS Code authentication API.
|
|
562
|
+
const titleLower2f = finding.title.toLowerCase();
|
|
563
|
+
if (/^(?:AUTH|CYBER)-/.test(finding.ruleId) &&
|
|
564
|
+
(titleLower2f.includes("endpoint") || titleLower2f.includes("session") || titleLower2f.includes("middleware"))) {
|
|
565
|
+
return "VS Code extensions use the editor's authentication API — no HTTP endpoints or middleware.";
|
|
566
|
+
}
|
|
567
|
+
// Suppress STRUCT/MAINT/DOC/SWDEV/PERF/ERR findings on extension code —
|
|
568
|
+
// extensions have different complexity profiles than web services
|
|
569
|
+
if (/^(?:STRUCT|MAINT|DOC|SWDEV|PERF|ERR|PORTA)-/.test(finding.ruleId)) {
|
|
570
|
+
return "VS Code extension code follows the editor's activation/dispose lifecycle pattern.";
|
|
571
|
+
}
|
|
572
|
+
// Suppress REL/CYBER/AUTH/DATA/FW/LOGPRIV findings on extension code
|
|
573
|
+
if (/^(?:REL|CYBER|AUTH|DATA|FW|LOGPRIV)-/.test(finding.ruleId)) {
|
|
574
|
+
return "VS Code extension code uses the editor's built-in infrastructure for reliability and security.";
|
|
575
|
+
}
|
|
576
|
+
// Suppress UX findings — VS Code extensions use the VS Code UI API
|
|
577
|
+
if (/^UX-/.test(finding.ruleId)) {
|
|
578
|
+
return "VS Code extensions use the editor's built-in UI components.";
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
// ── 2g. Utility module gating ──
|
|
582
|
+
// Utility modules are library code with no HTTP endpoints, no user-facing
|
|
583
|
+
// UI, and no cloud-service responsibilities. Server-infrastructure and
|
|
584
|
+
// cloud-readiness rules do not apply.
|
|
585
|
+
if (fileCategory === "utility") {
|
|
586
|
+
const UTILITY_INAPPLICABLE = [
|
|
587
|
+
"SOV-", // no user data flow
|
|
588
|
+
"COMP-", // no regulated data handling
|
|
589
|
+
"RATE-", // no request rate
|
|
590
|
+
"CLOUD-", // not a cloud service
|
|
591
|
+
"A11Y-", // no UI
|
|
592
|
+
"I18N-", // no user-facing strings
|
|
593
|
+
"UX-", // no user interface
|
|
594
|
+
"OBS-", // no production observability need
|
|
595
|
+
"LOGPRIV-", // no user data logging
|
|
596
|
+
"AGENT-", // not an AI agent
|
|
597
|
+
"AICS-", // not AI code generation
|
|
598
|
+
"ETHICS-", // no user-facing decisions
|
|
599
|
+
"FW-", // framework rules target app code
|
|
600
|
+
"API-", // not an API service
|
|
601
|
+
"DB-", // no database
|
|
602
|
+
"SCALE-", // not a scalable service — CLI utilities use sync I/O legitimately
|
|
603
|
+
"CFG-", // configuration management rules target deployed services
|
|
604
|
+
"COMPAT-", // backwards-compat rules target public APIs, not internal helpers
|
|
605
|
+
"PORTA-", // portability rules target deployed apps, not internal tooling
|
|
606
|
+
];
|
|
607
|
+
const isUtilityInapplicable = UTILITY_INAPPLICABLE.some((p) => finding.ruleId.startsWith(p));
|
|
608
|
+
if (isUtilityInapplicable) {
|
|
609
|
+
return `Rule ${finding.ruleId} does not apply to utility library modules — no cloud/service infrastructure.`;
|
|
610
|
+
}
|
|
611
|
+
// Suppress absence-based findings on utilities
|
|
612
|
+
if (finding.isAbsenceBased) {
|
|
613
|
+
return "Absence-based infrastructure rules do not apply to utility modules.";
|
|
614
|
+
}
|
|
615
|
+
}
|
|
286
616
|
// ── 3. All target lines are comments ──
|
|
287
617
|
if (finding.lineNumbers && finding.lineNumbers.length > 0) {
|
|
288
618
|
const allComments = finding.lineNumbers.every((ln) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"false-positive-review.js","sourceRoot":"","sources":["../../src/evaluators/false-positive-review.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"false-positive-review.js","sourceRoot":"","sources":["../../src/evaluators/false-positive-review.ts"],"names":[],"mappings":"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"}
|
|
@@ -921,7 +921,7 @@ export function analyzeFrameworkSafety(code, language) {
|
|
|
921
921
|
const unsafeTemplateLines = getLineNumbers(code, /template\.HTML\s*\(|\.Funcs\s*\(.*"safe|"noescape"/gm);
|
|
922
922
|
if (unsafeTemplateLines.length > 0) {
|
|
923
923
|
findings.push({
|
|
924
|
-
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`,
|
|
924
|
+
ruleId: `${prefix}-${String(ruleNum++).padStart(3, "0")}`, // eslint-disable-line no-useless-assignment
|
|
925
925
|
severity: "high",
|
|
926
926
|
title: "Go template with unsafe HTML casting — XSS risk",
|
|
927
927
|
description: "template.HTML() casts strings to unescaped HTML, bypassing Go's template auto-escaping. If user input reaches this cast, it's an XSS vulnerability.",
|