@kevinrabun/judges 3.22.1 → 3.23.2
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 +59 -0
- package/dist/api.d.ts +18 -5
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +15 -3
- package/dist/api.js.map +1 -1
- package/dist/ast/structural-parser.js +25 -0
- package/dist/ast/structural-parser.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +54 -36
- package/dist/cli.js.map +1 -1
- package/dist/commands/auto-detect.d.ts +62 -0
- package/dist/commands/auto-detect.d.ts.map +1 -0
- package/dist/commands/auto-detect.js +329 -0
- package/dist/commands/auto-detect.js.map +1 -0
- package/dist/commands/baseline.d.ts +46 -0
- package/dist/commands/baseline.d.ts.map +1 -1
- package/dist/commands/baseline.js +290 -27
- package/dist/commands/baseline.js.map +1 -1
- package/dist/commands/benchmark.d.ts +21 -3
- package/dist/commands/benchmark.d.ts.map +1 -1
- package/dist/commands/benchmark.js +365 -6
- package/dist/commands/benchmark.js.map +1 -1
- package/dist/commands/coverage.d.ts +41 -0
- package/dist/commands/coverage.d.ts.map +1 -0
- package/dist/commands/coverage.js +184 -0
- package/dist/commands/coverage.js.map +1 -0
- package/dist/commands/doctor.d.ts +56 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +363 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/feedback.d.ts +42 -0
- package/dist/commands/feedback.d.ts.map +1 -1
- package/dist/commands/feedback.js +129 -0
- package/dist/commands/feedback.js.map +1 -1
- package/dist/commands/rule-metrics.d.ts +44 -0
- package/dist/commands/rule-metrics.d.ts.map +1 -0
- package/dist/commands/rule-metrics.js +114 -0
- package/dist/commands/rule-metrics.js.map +1 -0
- package/dist/commands/rule.d.ts +65 -0
- package/dist/commands/rule.d.ts.map +1 -1
- package/dist/commands/rule.js +94 -0
- package/dist/commands/rule.js.map +1 -1
- package/dist/commands/snapshot.d.ts +81 -0
- package/dist/commands/snapshot.d.ts.map +1 -0
- package/dist/commands/snapshot.js +189 -0
- package/dist/commands/snapshot.js.map +1 -0
- package/dist/config.d.ts +35 -3
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +187 -2
- package/dist/config.js.map +1 -1
- package/dist/dedup.d.ts +35 -0
- package/dist/dedup.d.ts.map +1 -1
- package/dist/dedup.js +96 -0
- package/dist/dedup.js.map +1 -1
- package/dist/evaluators/cost-effectiveness.d.ts.map +1 -1
- package/dist/evaluators/cost-effectiveness.js +8 -5
- package/dist/evaluators/cost-effectiveness.js.map +1 -1
- package/dist/evaluators/data-sovereignty.d.ts.map +1 -1
- package/dist/evaluators/data-sovereignty.js +16 -0
- package/dist/evaluators/data-sovereignty.js.map +1 -1
- package/dist/evaluators/documentation.d.ts.map +1 -1
- package/dist/evaluators/documentation.js +14 -1
- package/dist/evaluators/documentation.js.map +1 -1
- package/dist/evaluators/index.d.ts +22 -2
- package/dist/evaluators/index.d.ts.map +1 -1
- package/dist/evaluators/index.js +144 -52
- package/dist/evaluators/index.js.map +1 -1
- package/dist/evaluators/maintainability.d.ts.map +1 -1
- package/dist/evaluators/maintainability.js +11 -4
- package/dist/evaluators/maintainability.js.map +1 -1
- package/dist/evaluators/performance.d.ts.map +1 -1
- package/dist/evaluators/performance.js +8 -4
- package/dist/evaluators/performance.js.map +1 -1
- package/dist/evaluators/software-practices.js +3 -3
- package/dist/evaluators/software-practices.js.map +1 -1
- package/dist/language-patterns.js +1 -1
- package/dist/language-patterns.js.map +1 -1
- package/dist/patches/index.d.ts.map +1 -1
- package/dist/patches/index.js +426 -0
- package/dist/patches/index.js.map +1 -1
- package/dist/types.d.ts +43 -0
- package/dist/types.d.ts.map +1 -1
- package/judgesrc.schema.json +5 -0
- package/package.json +1 -1
- package/server.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,65 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to **@kevinrabun/judges** are documented here.
|
|
4
4
|
|
|
5
|
+
## [3.23.2] — 2026-03-04
|
|
6
|
+
|
|
7
|
+
### Fixed — False Positive Reductions (9 categories)
|
|
8
|
+
- **COST-001 / PERF-001: Sequential Python loops no longer flagged as nested** — Fixed indent-stack algorithm to pop loop scopes on all code lines (not just loop lines), so that `try/except`, `if`, and `with` blocks correctly close preceding loop scopes. Sequential loops inside try/except blocks are no longer misidentified as O(n²).
|
|
9
|
+
- **SWDEV-001-post / MAINT-001-post: Nesting depth threshold raised to 5+ levels** — Changed deep-nesting threshold from 16 spaces (4 levels) to 20 spaces (5 levels), matching `structural-parser.ts`. Python patterns like `async def → try/except → for → if` naturally need 4 levels and should not be flagged.
|
|
10
|
+
- **SWDEV-002-post: `except Exception:` no longer flagged as bare except** — Removed `except Exception:` from `GENERIC_CATCH.python` pattern. `except Exception:` correctly excludes `BaseException` subclasses (KeyboardInterrupt, SystemExit) and is the recommended Python pattern for facade layers.
|
|
11
|
+
- **SOV-001: Docstring body lines no longer trigger sovereignty findings** — Added multi-line Python string tracking (`"""`/`'''`) to the data-sovereignty export keyword scanner. Keywords like "export", "report", "analytics" inside module docstrings are no longer mistaken for real data export paths.
|
|
12
|
+
- **DOC-001: Multi-line Python function signatures now detected** — Extended docstring lookahead to walk past multi-line function signatures (parameters spanning multiple lines) before searching for body docstrings. Previously, functions with signatures spanning 5+ lines would be falsely flagged as undocumented.
|
|
13
|
+
- **MAINT-002-post: Format template strings excluded from duplicate detection** — Duplicate string detection now skips strings containing format placeholders (`{}`, `%s`, `${}`), and strings that are purely whitespace. Template strings repeated in different contexts are no longer flagged.
|
|
14
|
+
- **STRUCT-006: `TYPE_CHECKING` imports excluded from weak type detection** — `detectWeakTypes()` now skips lines containing `TYPE_CHECKING` and all lines inside `if TYPE_CHECKING:` blocks in Python. Static-analysis-only imports are no longer flagged as weak/dynamic types.
|
|
15
|
+
|
|
16
|
+
### Tests
|
|
17
|
+
- 14 new tests covering all 9 FP categories (both positive and negative cases)
|
|
18
|
+
- 1020 judges tests passing, 689 subsystems tests passing (1709 total)
|
|
19
|
+
|
|
20
|
+
## [3.23.1] — 2026-03-04
|
|
21
|
+
|
|
22
|
+
### Fixed
|
|
23
|
+
- **TypeScript type errors** — Fixed 5 compilation errors that caused CI failure on v3.23.0:
|
|
24
|
+
- `doctor.ts`: Referenced non-existent `judges` and `threshold` properties on `JudgesConfig`; now uses `disabledJudges` and `minSeverity`
|
|
25
|
+
- `rule-metrics.ts`: Imported `JudgeDefinition` from `evaluators/index.js` which didn't re-export it; now imports from `types.js`
|
|
26
|
+
- `snapshot.ts`: `Record<Severity, number>` missing `info` key; added `info: 0` initializer
|
|
27
|
+
- `dedup.ts`: Referenced non-existent `filePath` property on `Finding` type in `findingDiffKey()`
|
|
28
|
+
- **Test fix** — Updated finding-diff test that relied on invalid `Finding.filePath` property to use the `diffFindings()` `filePath` parameter instead
|
|
29
|
+
|
|
30
|
+
### Tests
|
|
31
|
+
- 1006 judges tests passing, 689 subsystems tests passing (1695 total)
|
|
32
|
+
|
|
33
|
+
## [3.23.0] — 2026-03-05
|
|
34
|
+
|
|
35
|
+
### Added — P0: Trust & Accuracy Foundation
|
|
36
|
+
- **Hard/subtle benchmark cases** — 13 new benchmark cases targeting subtle vulnerabilities (prototype pollution, timing attacks, ReDoS, SSRF through URL parsing, null-byte injection, etc.) with `DifficultyResult` interface and strict metrics; `--save` CLI flag for benchmark persistence
|
|
37
|
+
- **Autofix patch expansion** — 33 new patch rules (71→104 total): 25 single-line rules covering CSRF, prototype pollution, ReDoS, path traversal, insecure cookies, etc; 8 multi-line patch rules for complex fixes; 27 new patch tests
|
|
38
|
+
- **V2 baseline with fingerprinting** — Complete `baseline.ts` rewrite (142→~510 lines) with V2 format: per-file fingerprinted findings, `baselineVersion: 2`, `fingerprintBaseline()` with line-context hashing, `diffBaseline()` showing new/fixed/carried findings with severity summaries; 17 new tests
|
|
39
|
+
|
|
40
|
+
### Added — P1: Developer Experience & Adoption
|
|
41
|
+
- **Sample report generation** — `examples/generate-reports.ts` script producing Markdown, JSON, and SARIF reports; 3 sample reports in `reports/`
|
|
42
|
+
- **PR comment dedup & Check Runs** — Enhanced `action.yml` with deterministic comment fingerprinting to prevent duplicate PR comments, Check Runs API integration via `@octokit/rest`; 6 new tests
|
|
43
|
+
- **Plugin loading infrastructure** — `loadPluginJudges()`, `validatePluginSpecifiers()`, `isValidJudgeDefinition()` in config.ts; `JudgesConfig` expanded with `preset`, `failOnFindings`, `baseline`, `format`, `plugins` fields; `mergeConfigs()` and `resolveJudgeSet()` plugin-aware; 30 new tests
|
|
44
|
+
- **Suppression audit trail** — Full suppression rewrite with `judges-ignore-block`/`judges-end-block` block scope, reason capture, `applyInlineSuppressionsWithAudit()` returning `SuppressionResult` with `SuppressionRecord[]` audit trail; 14 new tests
|
|
45
|
+
- **Team feedback aggregation** — `contributor` field on `FeedbackEntry`, `TeamFeedbackStats`/`RuleTeamStats` interfaces, `mergeFeedbackStores()`, `computeTeamFeedbackStats()`, `formatTeamStatsOutput()`; 16 new tests
|
|
46
|
+
|
|
47
|
+
### Added — P2: Depth & Precision
|
|
48
|
+
- **Rule test assertion framework** — `RuleTestCase`/`RuleTestResult`/`RuleTestSuiteResult` types, `runRuleTests()`, `validateRuleTestSuite()`, `formatRuleTestResults()` in rule.ts; 13 new tests
|
|
49
|
+
- **Calibration pipeline integration** — `calibrate?: boolean | CalibrationOptions` on `EvaluationOptions`, wired `loadCalibrationProfile()` and `calibrateFindings()` into `evaluateWithTribunal()`; 5 new tests
|
|
50
|
+
- **Finding diff between runs** — `FindingDiff` interface, `findingDiffKey()`, `diffFindings()` (classifies new/fixed/recurring), `formatFindingDiff()` in dedup.ts; 11 new tests
|
|
51
|
+
- **`judges doctor` command** — Full diagnostic healthcheck: 7 checks (Node version, config file, judges loaded, plugins, feedback store, baseline file, presets), `runDoctorChecks()` runner, `formatDoctorReport()` formatter, `--json` CLI support; 12 new tests
|
|
52
|
+
|
|
53
|
+
### Added — P3: Ecosystem & Integration
|
|
54
|
+
- **Language coverage report** — `detectFileLanguage()`, `computeLanguageCoverage()`, `formatCoverageReport()` in coverage.ts; covers 16 languages with judge availability mapping; 11 new tests
|
|
55
|
+
- **Finding snapshot & trend tracking** — `SnapshotStore` with versioned persistence, `recordSnapshot()` from findings, `computeTrend()` with improving/stable/regressing detection (10% threshold comparing recent vs early runs), `formatTrendReport()` with delta history; 12 new tests
|
|
56
|
+
- **Rule hit metrics** — `computeRuleHitMetrics()` tracking active/silent rules, severity breakdown per rule, noisy-rule ranking with percentages, `findJudgeForRule()` prefix matching, `formatRuleHitReport()`; 11 new tests
|
|
57
|
+
- **Project auto-detection for init wizard** — `detectLanguages()`, `detectFrameworksFromFiles()` (package.json + requirements.txt + file indicators), `classifyProjectType()` (9 project types), `detectCI()`, `detectMonorepo()`, `recommendPreset()` with confidence scoring, `formatProjectSummary()`, `formatRecommendation()`; 22 new tests
|
|
58
|
+
|
|
59
|
+
### Tests
|
|
60
|
+
- 1982 tests passing (0 failures)
|
|
61
|
+
- 689 subsystem tests (up from 610), 45 new tests this release
|
|
62
|
+
- New test sections: Finding Diff (§27), Doctor Diagnostics (§28), Language Coverage (§29), Finding Snapshot & Trend (§30), Rule Hit Metrics (§31), Project Auto-Detection (§32)
|
|
63
|
+
|
|
5
64
|
## [3.22.1] — 2026-03-04
|
|
6
65
|
|
|
7
66
|
### Fixed
|
package/dist/api.d.ts
CHANGED
|
@@ -8,11 +8,12 @@
|
|
|
8
8
|
* const result = evaluateCode("const x = eval(input);", "typescript");
|
|
9
9
|
* ```
|
|
10
10
|
*/
|
|
11
|
-
export type { Severity, Verdict, Finding, Patch, LangFamily, JudgesConfig, RuleOverride, ProjectFile, ProjectVerdict, DiffVerdict, DependencyEntry, DependencyVerdict, JudgeEvaluation, TribunalVerdict, JudgeDefinition, EvaluationContextV2, EvidenceBundleV2, SpecializedFindingV2, TribunalVerdictV2, MustFixGateOptions, MustFixGateResult, AppBuilderWorkflowResult, PlainLanguageFinding, WorkflowTask, PolicyProfile, } from "./types.js";
|
|
11
|
+
export type { Severity, Verdict, Finding, Patch, LangFamily, JudgesConfig, RuleOverride, ProjectFile, ProjectVerdict, DiffVerdict, DependencyEntry, DependencyVerdict, JudgeEvaluation, TribunalVerdict, JudgeDefinition, EvaluationContextV2, EvidenceBundleV2, SpecializedFindingV2, TribunalVerdictV2, MustFixGateOptions, MustFixGateResult, AppBuilderWorkflowResult, PlainLanguageFinding, WorkflowTask, PolicyProfile, SuppressionRecord, SuppressionResult, } from "./types.js";
|
|
12
12
|
export { JudgesError, ConfigError, EvaluationError, ParseError } from "./errors.js";
|
|
13
|
-
export { parseConfig, defaultConfig, mergeConfigs, discoverCascadingConfigs, loadCascadingConfig } from "./config.js";
|
|
13
|
+
export { parseConfig, defaultConfig, mergeConfigs, discoverCascadingConfigs, loadCascadingConfig, loadPluginJudges, validatePluginSpecifiers, isValidJudgeDefinition, } from "./config.js";
|
|
14
14
|
export { JUDGES, getJudge, getJudgeSummaries } from "./judges/index.js";
|
|
15
|
-
export { evaluateWithJudge, evaluateWithTribunal, evaluateProject, evaluateDiff, analyzeDependencies, enrichWithPatches, crossEvaluatorDedup, applyInlineSuppressions, runAppBuilderWorkflow, formatVerdictAsMarkdown, formatEvaluationAsMarkdown, clearEvaluationCaches, } from "./evaluators/index.js";
|
|
15
|
+
export { evaluateWithJudge, evaluateWithTribunal, evaluateProject, evaluateDiff, analyzeDependencies, enrichWithPatches, crossEvaluatorDedup, diffFindings, formatFindingDiff, applyInlineSuppressions, applyInlineSuppressionsWithAudit, runAppBuilderWorkflow, formatVerdictAsMarkdown, formatEvaluationAsMarkdown, clearEvaluationCaches, } from "./evaluators/index.js";
|
|
16
|
+
export type { FindingDiff } from "./evaluators/index.js";
|
|
16
17
|
export { evaluateCodeV2, evaluateProjectV2, getSupportedPolicyProfiles } from "./evaluators/v2.js";
|
|
17
18
|
export { analyzeCrossFileTaint } from "./ast/cross-file-taint.js";
|
|
18
19
|
export { buildSingleJudgeDeepReviewSection, buildTribunalDeepReviewSection, buildSimplifiedDeepReviewSection, isContentPolicyRefusal, DEEP_REVIEW_PROMPT_INTRO, DEEP_REVIEW_IDENTITY, } from "./tools/deep-review.js";
|
|
@@ -29,10 +30,12 @@ export { fingerprintCode, fingerprintToFindings } from "./fingerprint.js";
|
|
|
29
30
|
export type { AiFingerprint, AiSignal } from "./fingerprint.js";
|
|
30
31
|
export { buildCalibrationProfile, calibrateFindings, autoCalibrateFindings } from "./calibration.js";
|
|
31
32
|
export type { CalibrationProfile } from "./calibration.js";
|
|
32
|
-
export { loadFeedbackStore, saveFeedbackStore, computeFeedbackStats, getFpRateByRule } from "./commands/feedback.js";
|
|
33
|
-
export type { FeedbackEntry, FeedbackStore, FeedbackVerdict, FeedbackStats } from "./commands/feedback.js";
|
|
33
|
+
export { loadFeedbackStore, saveFeedbackStore, computeFeedbackStats, getFpRateByRule, mergeFeedbackStores, computeTeamFeedbackStats, formatTeamStatsOutput, } from "./commands/feedback.js";
|
|
34
|
+
export type { FeedbackEntry, FeedbackStore, FeedbackVerdict, FeedbackStats, TeamFeedbackStats, RuleTeamStats, } from "./commands/feedback.js";
|
|
34
35
|
export { loadFixHistory, saveFixHistory, computeFixStats, recordFixAccepted, recordFixRejected, getFixAcceptanceRate, getLowAcceptanceRules, } from "./fix-history.js";
|
|
35
36
|
export type { FixOutcome, FixHistory, FixStats } from "./fix-history.js";
|
|
37
|
+
export { testRule, runRuleTests, validateRuleTestSuite, formatRuleTestResults, deserializeRule, } from "./commands/rule.js";
|
|
38
|
+
export type { RuleTestCase, RuleTestResult, RuleTestSuiteResult } from "./commands/rule.js";
|
|
36
39
|
export { findingToDiagnostic, findingsToDiagnostics, findingsToCodeActions, formatForProblemMatcher, formatAsJsonRpc, } from "./formatters/diagnostics.js";
|
|
37
40
|
export type { Diagnostic, DiagnosticSeverity, Position, Range, CodeAction, PublishDiagnosticsParams, } from "./formatters/diagnostics.js";
|
|
38
41
|
export { compareCapabilities, formatComparisonReport, formatFullComparisonMatrix, TOOL_PROFILES, CAPABILITY_MATRIX, } from "./comparison.js";
|
|
@@ -40,6 +43,16 @@ export type { ToolProfile, ToolCapability, ComparisonResult } from "./comparison
|
|
|
40
43
|
export { runBenchmarkSuite, benchmarkGate, formatBenchmarkReport } from "./commands/benchmark.js";
|
|
41
44
|
export type { BenchmarkResult, BenchmarkGateOptions, BenchmarkGateResult } from "./commands/benchmark.js";
|
|
42
45
|
export { getLanguagePack, listLanguagePacks, suggestPack, LANGUAGE_PACKS } from "./commands/language-packs.js";
|
|
46
|
+
export { runDoctorChecks, formatDoctorReport, checkNodeVersion, checkConfigFile, checkJudgesLoaded, checkPlugins, checkFeedbackStore, checkBaselineFile, checkPresets, } from "./commands/doctor.js";
|
|
47
|
+
export type { DoctorCheck, DoctorReport, CheckStatus } from "./commands/doctor.js";
|
|
48
|
+
export { computeLanguageCoverage, formatCoverageReport, detectFileLanguage } from "./commands/coverage.js";
|
|
49
|
+
export type { LanguageCoverageReport, LanguageCoverageEntry } from "./commands/coverage.js";
|
|
50
|
+
export { createSnapshotStore, loadSnapshotStore, saveSnapshotStore, recordSnapshot, computeTrend, formatTrendReport, } from "./commands/snapshot.js";
|
|
51
|
+
export type { FindingSnapshot, SnapshotStore, TrendPoint, TrendReport } from "./commands/snapshot.js";
|
|
52
|
+
export { findJudgeForRule, computeRuleHitMetrics, formatRuleHitReport } from "./commands/rule-metrics.js";
|
|
53
|
+
export type { RuleHitEntry, RuleHitMetrics } from "./commands/rule-metrics.js";
|
|
54
|
+
export { detectLanguages, detectFrameworksFromFiles, classifyProjectType, detectCI, detectMonorepo, detectProjectSignals, recommendPreset, formatProjectSummary, formatRecommendation, } from "./commands/auto-detect.js";
|
|
55
|
+
export type { ProjectSignals, ProjectType, PresetRecommendation } from "./commands/auto-detect.js";
|
|
43
56
|
export { formatSmartOutput, formatSmartSingleJudge } from "./commands/smart-output.js";
|
|
44
57
|
export type { SmartOutputOptions } from "./commands/smart-output.js";
|
|
45
58
|
import type { EvaluationOptions } from "./evaluators/index.js";
|
package/dist/api.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,YAAY,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,KAAK,EACL,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,cAAc,EACd,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,gBAAgB,EAChB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,YAAY,EACZ,aAAa,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
package/dist/api.js
CHANGED
|
@@ -11,11 +11,11 @@
|
|
|
11
11
|
// ─── Errors ──────────────────────────────────────────────────────────────────
|
|
12
12
|
export { JudgesError, ConfigError, EvaluationError, ParseError } from "./errors.js";
|
|
13
13
|
// ─── Config ──────────────────────────────────────────────────────────────────
|
|
14
|
-
export { parseConfig, defaultConfig, mergeConfigs, discoverCascadingConfigs, loadCascadingConfig } from "./config.js";
|
|
14
|
+
export { parseConfig, defaultConfig, mergeConfigs, discoverCascadingConfigs, loadCascadingConfig, loadPluginJudges, validatePluginSpecifiers, isValidJudgeDefinition, } from "./config.js";
|
|
15
15
|
// ─── Judge Registry ──────────────────────────────────────────────────────────
|
|
16
16
|
export { JUDGES, getJudge, getJudgeSummaries } from "./judges/index.js";
|
|
17
17
|
// ─── Core Evaluation Functions ───────────────────────────────────────────────
|
|
18
|
-
export { evaluateWithJudge, evaluateWithTribunal, evaluateProject, evaluateDiff, analyzeDependencies, enrichWithPatches, crossEvaluatorDedup, applyInlineSuppressions, runAppBuilderWorkflow, formatVerdictAsMarkdown, formatEvaluationAsMarkdown, clearEvaluationCaches, } from "./evaluators/index.js";
|
|
18
|
+
export { evaluateWithJudge, evaluateWithTribunal, evaluateProject, evaluateDiff, analyzeDependencies, enrichWithPatches, crossEvaluatorDedup, diffFindings, formatFindingDiff, applyInlineSuppressions, applyInlineSuppressionsWithAudit, runAppBuilderWorkflow, formatVerdictAsMarkdown, formatEvaluationAsMarkdown, clearEvaluationCaches, } from "./evaluators/index.js";
|
|
19
19
|
// ─── V2 Policy-Aware API ────────────────────────────────────────────────────
|
|
20
20
|
export { evaluateCodeV2, evaluateProjectV2, getSupportedPolicyProfiles } from "./evaluators/v2.js";
|
|
21
21
|
// ─── Cross-File Taint Analysis ───────────────────────────────────────────────
|
|
@@ -39,9 +39,11 @@ export { fingerprintCode, fingerprintToFindings } from "./fingerprint.js";
|
|
|
39
39
|
// ─── Confidence Calibration ─────────────────────────────────────────────────
|
|
40
40
|
export { buildCalibrationProfile, calibrateFindings, autoCalibrateFindings } from "./calibration.js";
|
|
41
41
|
// ─── Feedback ────────────────────────────────────────────────────────────────
|
|
42
|
-
export { loadFeedbackStore, saveFeedbackStore, computeFeedbackStats, getFpRateByRule } from "./commands/feedback.js";
|
|
42
|
+
export { loadFeedbackStore, saveFeedbackStore, computeFeedbackStats, getFpRateByRule, mergeFeedbackStores, computeTeamFeedbackStats, formatTeamStatsOutput, } from "./commands/feedback.js";
|
|
43
43
|
// ─── Fix History / Learning ──────────────────────────────────────────────────
|
|
44
44
|
export { loadFixHistory, saveFixHistory, computeFixStats, recordFixAccepted, recordFixRejected, getFixAcceptanceRate, getLowAcceptanceRules, } from "./fix-history.js";
|
|
45
|
+
// ─── Custom Rule Testing ────────────────────────────────────────────────────
|
|
46
|
+
export { testRule, runRuleTests, validateRuleTestSuite, formatRuleTestResults, deserializeRule, } from "./commands/rule.js";
|
|
45
47
|
// ─── IDE Diagnostics ─────────────────────────────────────────────────────────
|
|
46
48
|
export { findingToDiagnostic, findingsToDiagnostics, findingsToCodeActions, formatForProblemMatcher, formatAsJsonRpc, } from "./formatters/diagnostics.js";
|
|
47
49
|
// ─── Comparison Benchmarks ───────────────────────────────────────────────────
|
|
@@ -50,6 +52,16 @@ export { compareCapabilities, formatComparisonReport, formatFullComparisonMatrix
|
|
|
50
52
|
export { runBenchmarkSuite, benchmarkGate, formatBenchmarkReport } from "./commands/benchmark.js";
|
|
51
53
|
// ─── Language Packs ──────────────────────────────────────────────────────────
|
|
52
54
|
export { getLanguagePack, listLanguagePacks, suggestPack, LANGUAGE_PACKS } from "./commands/language-packs.js";
|
|
55
|
+
// ─── Doctor Diagnostics ──────────────────────────────────────────────────
|
|
56
|
+
export { runDoctorChecks, formatDoctorReport, checkNodeVersion, checkConfigFile, checkJudgesLoaded, checkPlugins, checkFeedbackStore, checkBaselineFile, checkPresets, } from "./commands/doctor.js";
|
|
57
|
+
// ─── Language Coverage ──────────────────────────────────────────────────────
|
|
58
|
+
export { computeLanguageCoverage, formatCoverageReport, detectFileLanguage } from "./commands/coverage.js";
|
|
59
|
+
// ─── Finding Snapshots & Trends ─────────────────────────────────────────────
|
|
60
|
+
export { createSnapshotStore, loadSnapshotStore, saveSnapshotStore, recordSnapshot, computeTrend, formatTrendReport, } from "./commands/snapshot.js";
|
|
61
|
+
// ─── Rule Hit Metrics ───────────────────────────────────────────────────────
|
|
62
|
+
export { findJudgeForRule, computeRuleHitMetrics, formatRuleHitReport } from "./commands/rule-metrics.js";
|
|
63
|
+
// ─── Project Auto-Detection ─────────────────────────────────────────────────
|
|
64
|
+
export { detectLanguages, detectFrameworksFromFiles, classifyProjectType, detectCI, detectMonorepo, detectProjectSignals, recommendPreset, formatProjectSummary, formatRecommendation, } from "./commands/auto-detect.js";
|
|
53
65
|
// ─── Smart Output ────────────────────────────────────────────────────────────
|
|
54
66
|
export { formatSmartOutput, formatSmartSingleJudge } from "./commands/smart-output.js";
|
|
55
67
|
// ─── Convenience Aliases ─────────────────────────────────────────────────────
|
package/dist/api.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;
|
|
1
|
+
{"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
|
|
@@ -474,10 +474,35 @@ function detectWeakTypes(lines, language) {
|
|
|
474
474
|
const pattern = patterns[language];
|
|
475
475
|
if (!pattern)
|
|
476
476
|
return weakLines;
|
|
477
|
+
// Python: track `if TYPE_CHECKING:` blocks so that imports guarded by
|
|
478
|
+
// TYPE_CHECKING (used for static analysis only) are not flagged.
|
|
479
|
+
let inTypeCheckingBlock = false;
|
|
480
|
+
let typeCheckingIndent = -1;
|
|
477
481
|
for (let i = 0; i < lines.length; i++) {
|
|
478
482
|
const trimmed = lines[i].trim();
|
|
479
483
|
if (trimmed.startsWith("//") || trimmed.startsWith("#") || trimmed.startsWith("/*"))
|
|
480
484
|
continue;
|
|
485
|
+
if (language === "python") {
|
|
486
|
+
// Skip TYPE_CHECKING imports and lines referencing TYPE_CHECKING
|
|
487
|
+
if (/\bTYPE_CHECKING\b/.test(trimmed)) {
|
|
488
|
+
// Detect start of `if TYPE_CHECKING:` block
|
|
489
|
+
if (/^if\s+TYPE_CHECKING\s*:/.test(trimmed)) {
|
|
490
|
+
inTypeCheckingBlock = true;
|
|
491
|
+
typeCheckingIndent = (lines[i].match(/^(\s*)/)?.[1] ?? "").length;
|
|
492
|
+
}
|
|
493
|
+
continue;
|
|
494
|
+
}
|
|
495
|
+
// Skip lines inside an `if TYPE_CHECKING:` block
|
|
496
|
+
if (inTypeCheckingBlock) {
|
|
497
|
+
const currentIndent = (lines[i].match(/^(\s*)/)?.[1] ?? "").length;
|
|
498
|
+
if (trimmed.length > 0 && currentIndent <= typeCheckingIndent) {
|
|
499
|
+
inTypeCheckingBlock = false;
|
|
500
|
+
}
|
|
501
|
+
else {
|
|
502
|
+
continue;
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
}
|
|
481
506
|
if (pattern.test(lines[i])) {
|
|
482
507
|
weakLines.push(i + 1);
|
|
483
508
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"structural-parser.js","sourceRoot":"","sources":["../../src/ast/structural-parser.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"structural-parser.js","sourceRoot":"","sources":["../../src/ast/structural-parser.ts"],"names":[],"mappings":"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"}
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;GAmBG;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAuWH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAcnD;AAED,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAQzE;AAiBD,UAAU,cAAc;IACtB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,MAAM,EAAE,CAiBnF;AA+LD,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA2a1D"}
|
package/dist/cli.js
CHANGED
|
@@ -32,7 +32,7 @@ import { runReport } from "./commands/report.js";
|
|
|
32
32
|
import { runHook } from "./commands/hook.js";
|
|
33
33
|
import { runDiff } from "./commands/diff.js";
|
|
34
34
|
import { runDeps } from "./commands/deps.js";
|
|
35
|
-
import { runBaseline } from "./commands/baseline.js";
|
|
35
|
+
import { runBaseline, loadBaselineData, isBaselined } from "./commands/baseline.js";
|
|
36
36
|
import { runCompletions } from "./commands/completions.js";
|
|
37
37
|
import { runDocs } from "./commands/docs.js";
|
|
38
38
|
import { generateGitLabCi, generateAzurePipelines, generateBitbucketPipelines } from "./commands/ci-templates.js";
|
|
@@ -44,6 +44,7 @@ import { runBenchmark } from "./commands/benchmark.js";
|
|
|
44
44
|
import { runRule } from "./commands/rule.js";
|
|
45
45
|
import { runPack } from "./commands/language-packs.js";
|
|
46
46
|
import { runConfig } from "./commands/config-share.js";
|
|
47
|
+
import { runDoctor } from "./commands/doctor.js";
|
|
47
48
|
import { formatComparisonReport, formatFullComparisonMatrix, TOOL_PROFILES } from "./comparison.js";
|
|
48
49
|
// ─── Language Detection from Extension ──────────────────────────────────────
|
|
49
50
|
const EXT_TO_LANG = {
|
|
@@ -207,6 +208,7 @@ USAGE:
|
|
|
207
208
|
judges hook install Install pre-commit git hook
|
|
208
209
|
judges diff Evaluate only changed lines from a diff
|
|
209
210
|
judges deps [dir] Analyze dependencies for supply-chain risks
|
|
211
|
+
judges doctor Run diagnostic healthcheck
|
|
210
212
|
judges baseline create <file> Create a findings baseline
|
|
211
213
|
judges ci-templates <provider> Generate CI pipeline template
|
|
212
214
|
judges completions <shell> Generate shell completions
|
|
@@ -612,6 +614,11 @@ export async function runCli(argv) {
|
|
|
612
614
|
runDeps(argv);
|
|
613
615
|
return;
|
|
614
616
|
}
|
|
617
|
+
// ─── Doctor Command ──────────────────────────────────────────────────
|
|
618
|
+
if (args.command === "doctor") {
|
|
619
|
+
runDoctor(argv);
|
|
620
|
+
return;
|
|
621
|
+
}
|
|
615
622
|
// ─── Baseline Command ────────────────────────────────────────────────
|
|
616
623
|
if (args.command === "baseline") {
|
|
617
624
|
runBaseline(argv);
|
|
@@ -685,9 +692,9 @@ export async function runCli(argv) {
|
|
|
685
692
|
// Load config from file or preset
|
|
686
693
|
const evalConfig = loadEvalConfig(args);
|
|
687
694
|
// Load baseline if specified (from CLI flag — config doesn't carry baseline)
|
|
688
|
-
let
|
|
695
|
+
let loadedBaseline;
|
|
689
696
|
if (args.baseline) {
|
|
690
|
-
|
|
697
|
+
loadedBaseline = loadBaselineData(args.baseline);
|
|
691
698
|
}
|
|
692
699
|
// Build evaluation options from config
|
|
693
700
|
const evalOptions = evalConfig ? { config: evalConfig } : undefined;
|
|
@@ -725,11 +732,11 @@ export async function runCli(argv) {
|
|
|
725
732
|
const fileLang = args.language || detectLanguage(filePath) || "typescript";
|
|
726
733
|
const verdict = evaluateWithTribunal(fileCode, fileLang, undefined, evalOptions);
|
|
727
734
|
// Apply baseline suppression
|
|
728
|
-
if (
|
|
735
|
+
if (loadedBaseline) {
|
|
729
736
|
for (const evaluation of verdict.evaluations) {
|
|
730
|
-
evaluation.findings = evaluation.findings.filter((f) => !
|
|
737
|
+
evaluation.findings = evaluation.findings.filter((f) => !isBaselined(f, loadedBaseline, fileCode, relPath));
|
|
731
738
|
}
|
|
732
|
-
verdict.findings = verdict.findings.filter((f) => !
|
|
739
|
+
verdict.findings = verdict.findings.filter((f) => !isBaselined(f, loadedBaseline, fileCode, relPath));
|
|
733
740
|
}
|
|
734
741
|
const fileFindings = verdict.evaluations.reduce((s, e) => s + e.findings.length, 0);
|
|
735
742
|
totalFindings += fileFindings;
|
|
@@ -794,8 +801,8 @@ export async function runCli(argv) {
|
|
|
794
801
|
}
|
|
795
802
|
const evaluation = evaluateWithJudge(judge, code, language);
|
|
796
803
|
// Apply baseline suppression
|
|
797
|
-
if (
|
|
798
|
-
evaluation.findings = evaluation.findings.filter((f) => !
|
|
804
|
+
if (loadedBaseline) {
|
|
805
|
+
evaluation.findings = evaluation.findings.filter((f) => !isBaselined(f, loadedBaseline, code));
|
|
799
806
|
}
|
|
800
807
|
// Apply min-severity filter from config
|
|
801
808
|
if (evalConfig?.minSeverity) {
|
|
@@ -866,11 +873,11 @@ export async function runCli(argv) {
|
|
|
866
873
|
// Full tribunal mode
|
|
867
874
|
const verdict = evaluateWithTribunal(code, language, undefined, evalOptions);
|
|
868
875
|
// Apply baseline suppression
|
|
869
|
-
if (
|
|
876
|
+
if (loadedBaseline) {
|
|
870
877
|
for (const evaluation of verdict.evaluations) {
|
|
871
|
-
evaluation.findings = evaluation.findings.filter((f) => !
|
|
878
|
+
evaluation.findings = evaluation.findings.filter((f) => !isBaselined(f, loadedBaseline, code));
|
|
872
879
|
}
|
|
873
|
-
verdict.findings = verdict.findings.filter((f) => !
|
|
880
|
+
verdict.findings = verdict.findings.filter((f) => !isBaselined(f, loadedBaseline, code));
|
|
874
881
|
}
|
|
875
882
|
// Apply min-severity filter from config
|
|
876
883
|
if (evalConfig?.minSeverity) {
|
|
@@ -940,30 +947,8 @@ export async function runCli(argv) {
|
|
|
940
947
|
process.exit(1);
|
|
941
948
|
}
|
|
942
949
|
// ─── Baseline Support ───────────────────────────────────────────────────────
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
return `${f.ruleId}::${line}::${f.title}`;
|
|
946
|
-
}
|
|
947
|
-
function loadBaseline(baselinePath) {
|
|
948
|
-
const abs = resolve(baselinePath);
|
|
949
|
-
if (!existsSync(abs)) {
|
|
950
|
-
return new Set();
|
|
951
|
-
}
|
|
952
|
-
try {
|
|
953
|
-
const data = JSON.parse(readFileSync(abs, "utf-8"));
|
|
954
|
-
const keys = new Set();
|
|
955
|
-
if (Array.isArray(data.findings)) {
|
|
956
|
-
for (const f of data.findings) {
|
|
957
|
-
keys.add(baselineKey(f));
|
|
958
|
-
}
|
|
959
|
-
}
|
|
960
|
-
return keys;
|
|
961
|
-
}
|
|
962
|
-
catch {
|
|
963
|
-
console.error(`Warning: Could not parse baseline file: ${baselinePath}`);
|
|
964
|
-
return new Set();
|
|
965
|
-
}
|
|
966
|
-
}
|
|
950
|
+
// Baseline loading and matching is now handled by src/commands/baseline.ts
|
|
951
|
+
// Exports: loadBaselineData, isBaselined, LoadedBaseline
|
|
967
952
|
// ─── Summary Line Output ───────────────────────────────────────────────────
|
|
968
953
|
function printSummaryLine(verdict, score, findings) {
|
|
969
954
|
const icon = verdict === "pass" ? "✅" : verdict === "warning" ? "⚠️" : "❌";
|
|
@@ -972,7 +957,7 @@ function printSummaryLine(verdict, score, findings) {
|
|
|
972
957
|
// ─── Config / Preset Loader ────────────────────────────────────────────────
|
|
973
958
|
function loadEvalConfig(args) {
|
|
974
959
|
let config;
|
|
975
|
-
// 1. Load from preset (supports comma-separated composition: "security-only,performance")
|
|
960
|
+
// 1. Load from CLI --preset (supports comma-separated composition: "security-only,performance")
|
|
976
961
|
if (args.preset) {
|
|
977
962
|
const presetNames = args.preset.split(",").map((n) => n.trim());
|
|
978
963
|
if (presetNames.length === 1) {
|
|
@@ -1024,6 +1009,39 @@ function loadEvalConfig(args) {
|
|
|
1024
1009
|
}
|
|
1025
1010
|
}
|
|
1026
1011
|
}
|
|
1012
|
+
// 4. Apply config.preset if no CLI --preset was given
|
|
1013
|
+
if (config?.preset && !args.preset) {
|
|
1014
|
+
const presetNames = config.preset.split(",").map((n) => n.trim());
|
|
1015
|
+
let presetConfig;
|
|
1016
|
+
if (presetNames.length === 1) {
|
|
1017
|
+
const preset = getPreset(presetNames[0]);
|
|
1018
|
+
if (preset)
|
|
1019
|
+
presetConfig = { ...preset.config };
|
|
1020
|
+
}
|
|
1021
|
+
else {
|
|
1022
|
+
const composed = composePresets(presetNames);
|
|
1023
|
+
if (composed)
|
|
1024
|
+
presetConfig = { ...composed.config };
|
|
1025
|
+
}
|
|
1026
|
+
if (presetConfig) {
|
|
1027
|
+
// Preset is the base; config file properties override it
|
|
1028
|
+
const { preset: _p, ...rest } = config;
|
|
1029
|
+
config = { ...presetConfig, ...rest };
|
|
1030
|
+
}
|
|
1031
|
+
}
|
|
1032
|
+
// 5. Apply config-based defaults to CLI args (CLI flags always win)
|
|
1033
|
+
if (config) {
|
|
1034
|
+
if (config.failOnFindings && !args.failOnFindings) {
|
|
1035
|
+
args.failOnFindings = true;
|
|
1036
|
+
}
|
|
1037
|
+
if (config.baseline && !args.baseline) {
|
|
1038
|
+
args.baseline = config.baseline;
|
|
1039
|
+
}
|
|
1040
|
+
if (config.format && args.format === "text") {
|
|
1041
|
+
// Only apply config format if CLI didn't explicitly set one
|
|
1042
|
+
args.format = config.format;
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1027
1045
|
return config;
|
|
1028
1046
|
}
|
|
1029
1047
|
// ─── Severity Filter ────────────────────────────────────────────────────────
|