@kevinrabun/judges 3.5.0 → 3.7.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 (64) hide show
  1. package/README.md +33 -17
  2. package/dist/api.d.ts +17 -0
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +18 -0
  5. package/dist/api.js.map +1 -1
  6. package/dist/calibration.d.ts +58 -0
  7. package/dist/calibration.d.ts.map +1 -0
  8. package/dist/calibration.js +125 -0
  9. package/dist/calibration.js.map +1 -0
  10. package/dist/cli.d.ts.map +1 -1
  11. package/dist/cli.js +265 -4
  12. package/dist/cli.js.map +1 -1
  13. package/dist/commands/benchmark.d.ts +100 -0
  14. package/dist/commands/benchmark.d.ts.map +1 -0
  15. package/dist/commands/benchmark.js +650 -0
  16. package/dist/commands/benchmark.js.map +1 -0
  17. package/dist/commands/config-share.d.ts +49 -0
  18. package/dist/commands/config-share.d.ts.map +1 -0
  19. package/dist/commands/config-share.js +178 -0
  20. package/dist/commands/config-share.js.map +1 -0
  21. package/dist/commands/feedback.d.ts +87 -0
  22. package/dist/commands/feedback.d.ts.map +1 -0
  23. package/dist/commands/feedback.js +320 -0
  24. package/dist/commands/feedback.js.map +1 -0
  25. package/dist/commands/fix.d.ts +21 -0
  26. package/dist/commands/fix.d.ts.map +1 -1
  27. package/dist/commands/fix.js +2 -2
  28. package/dist/commands/fix.js.map +1 -1
  29. package/dist/commands/language-packs.d.ts +43 -0
  30. package/dist/commands/language-packs.d.ts.map +1 -0
  31. package/dist/commands/language-packs.js +151 -0
  32. package/dist/commands/language-packs.js.map +1 -0
  33. package/dist/commands/rule.d.ts +50 -0
  34. package/dist/commands/rule.d.ts.map +1 -0
  35. package/dist/commands/rule.js +202 -0
  36. package/dist/commands/rule.js.map +1 -0
  37. package/dist/commands/smart-output.d.ts +39 -0
  38. package/dist/commands/smart-output.d.ts.map +1 -0
  39. package/dist/commands/smart-output.js +176 -0
  40. package/dist/commands/smart-output.js.map +1 -0
  41. package/dist/comparison.d.ts +68 -0
  42. package/dist/comparison.d.ts.map +1 -0
  43. package/dist/comparison.js +254 -0
  44. package/dist/comparison.js.map +1 -0
  45. package/dist/fingerprint.d.ts +40 -0
  46. package/dist/fingerprint.d.ts.map +1 -0
  47. package/dist/fingerprint.js +180 -0
  48. package/dist/fingerprint.js.map +1 -0
  49. package/dist/fix-history.d.ts +72 -0
  50. package/dist/fix-history.d.ts.map +1 -0
  51. package/dist/fix-history.js +127 -0
  52. package/dist/fix-history.js.map +1 -0
  53. package/dist/formatters/diagnostics.d.ts +82 -0
  54. package/dist/formatters/diagnostics.d.ts.map +1 -0
  55. package/dist/formatters/diagnostics.js +153 -0
  56. package/dist/formatters/diagnostics.js.map +1 -0
  57. package/dist/index.js +7 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/plugins.d.ts +103 -0
  60. package/dist/plugins.d.ts.map +1 -0
  61. package/dist/plugins.js +186 -0
  62. package/dist/plugins.js.map +1 -0
  63. package/package.json +17 -1
  64. package/server.json +2 -2
package/README.md CHANGED
@@ -11,7 +11,7 @@ An MCP (Model Context Protocol) server that provides a panel of **35 specialized
11
11
  [![npm](https://img.shields.io/npm/v/@kevinrabun/judges)](https://www.npmjs.com/package/@kevinrabun/judges)
12
12
  [![npm downloads](https://img.shields.io/npm/dw/@kevinrabun/judges)](https://www.npmjs.com/package/@kevinrabun/judges)
13
13
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
14
- [![Tests](https://img.shields.io/badge/tests-777-brightgreen)](https://github.com/KevinRabun/judges/actions)
14
+ [![Tests](https://img.shields.io/badge/tests-842-brightgreen)](https://github.com/KevinRabun/judges/actions)
15
15
 
16
16
  ---
17
17
 
@@ -32,6 +32,10 @@ AI code generators (Copilot, Cursor, Claude, ChatGPT, etc.) write code fast —
32
32
 
33
33
  **Judges doesn't replace linters** — it covers the dimensions linters don't: authentication strategy, data sovereignty, cost patterns, accessibility, framework-specific anti-patterns, and architectural issues across multiple files.
34
34
 
35
+ <p align="center">
36
+ <img src="docs/terminal-output.svg" alt="Judges — Terminal Output" width="680" />
37
+ </p>
38
+
35
39
  ---
36
40
 
37
41
  ## Quick Start
@@ -964,28 +968,40 @@ Each judge has a corresponding prompt for LLM-powered deep analysis:
964
968
 
965
969
  ## Configuration
966
970
 
967
- All evaluation tools accept an optional `config` parameter for inline configuration. This is the same format as `.judgesrc` / `.judgesrc.json` project files.
971
+ Create a `.judgesrc.json` (or `.judgesrc`) file in your project root to customize evaluation behavior. See [`.judgesrc.example.json`](.judgesrc.example.json) for a copy-paste-ready template, or reference the [JSON Schema](judgesrc.schema.json) for full IDE autocompletion.
968
972
 
969
973
  ```json
970
974
  {
971
- "config": {
972
- "disabledRules": ["COST-*", "I18N-001"],
973
- "disabledJudges": ["accessibility", "ethics-bias"],
974
- "minSeverity": "medium",
975
- "ruleOverrides": {
976
- "SEC-003": { "severity": "critical" },
977
- "DOC-*": { "disabled": true }
978
- }
979
- }
975
+ "$schema": "https://github.com/KevinRabun/judges/blob/main/judgesrc.schema.json",
976
+ "preset": "strict",
977
+ "minSeverity": "medium",
978
+ "disabledRules": ["COST-*", "I18N-001"],
979
+ "disabledJudges": ["accessibility", "ethics-bias"],
980
+ "ruleOverrides": {
981
+ "SEC-003": { "severity": "critical" },
982
+ "DOC-*": { "disabled": true }
983
+ },
984
+ "languages": ["typescript", "python"],
985
+ "format": "text",
986
+ "failOnFindings": false,
987
+ "baseline": ""
980
988
  }
981
989
  ```
982
990
 
983
- | Field | Type | Description |
984
- |-------|------|-------------|
985
- | `disabledRules` | `string[]` | Rule IDs or prefix wildcards to suppress (e.g., `"COST-*"`, `"SEC-003"`) |
986
- | `disabledJudges` | `string[]` | Judge IDs to skip entirely (e.g., `"cost-effectiveness"`) |
987
- | `minSeverity` | `string` | Minimum severity to report: `critical`, `high`, `medium`, `low`, `info` |
988
- | `ruleOverrides` | `object` | Per-rule overrides keyed by rule ID or wildcard `{ disabled?: boolean, severity?: string }` |
991
+ | Field | Type | Default | Description |
992
+ |-------|------|---------|-------------|
993
+ | `$schema` | `string` | | JSON Schema URL for IDE validation |
994
+ | `preset` | `string` | | Named preset: `strict`, `lenient`, `security-only`, `startup`, `compliance`, `performance` |
995
+ | `minSeverity` | `string` | `"info"` | Minimum severity to report: `critical` · `high` · `medium` · `low` · `info` |
996
+ | `disabledRules` | `string[]` | `[]` | Rule IDs or prefix wildcards to suppress (e.g. `"COST-*"`, `"SEC-003"`) |
997
+ | `disabledJudges` | `string[]` | `[]` | Judge IDs to skip entirely (e.g. `"cost-effectiveness"`) |
998
+ | `ruleOverrides` | `object` | `{}` | Per-rule overrides keyed by rule ID or wildcard — `{ disabled?: boolean, severity?: string }` |
999
+ | `languages` | `string[]` | `[]` | Restrict analysis to specific languages (empty = all) |
1000
+ | `format` | `string` | `"text"` | Default output format: `text` · `json` · `sarif` · `markdown` · `html` · `junit` · `codeclimate` |
1001
+ | `failOnFindings` | `boolean` | `false` | Exit code 1 when verdict is `fail` — useful for CI gates |
1002
+ | `baseline` | `string` | `""` | Path to a baseline JSON file — matching findings are suppressed |
1003
+
1004
+ All evaluation tools (CLI and MCP) accept the same configuration fields via `--config <path>` or inline `config` parameter.
989
1005
 
990
1006
  ---
991
1007
 
package/dist/api.d.ts CHANGED
@@ -20,6 +20,23 @@ export { clearProjectCache } from "./evaluators/project.js";
20
20
  export { findingsToSarif, evaluationToSarif, verdictToSarif, validateSarifLog } from "./formatters/sarif.js";
21
21
  export type { SarifValidationError } from "./formatters/sarif.js";
22
22
  export { runCli } from "./cli.js";
23
+ export { registerPlugin, unregisterPlugin, getRegisteredPlugins, getCustomRules, getPluginJudges, evaluateCustomRules, runBeforeHooks, runAfterHooks, clearPlugins, } from "./plugins.js";
24
+ export type { CustomRule, JudgesPlugin, PluginRegistration } from "./plugins.js";
25
+ export { fingerprintCode, fingerprintToFindings } from "./fingerprint.js";
26
+ export type { AiFingerprint, AiSignal } from "./fingerprint.js";
27
+ export { buildCalibrationProfile, calibrateFindings, autoCalibrateFindings } from "./calibration.js";
28
+ export type { CalibrationProfile } from "./calibration.js";
29
+ export { loadFeedbackStore, saveFeedbackStore, computeFeedbackStats, getFpRateByRule } from "./commands/feedback.js";
30
+ export type { FeedbackEntry, FeedbackStore, FeedbackVerdict, FeedbackStats } from "./commands/feedback.js";
31
+ export { loadFixHistory, saveFixHistory, computeFixStats, recordFixAccepted, recordFixRejected, getFixAcceptanceRate, getLowAcceptanceRules, } from "./fix-history.js";
32
+ export type { FixOutcome, FixHistory, FixStats } from "./fix-history.js";
33
+ export { findingToDiagnostic, findingsToDiagnostics, findingsToCodeActions, formatForProblemMatcher, formatAsJsonRpc, } from "./formatters/diagnostics.js";
34
+ export type { Diagnostic, DiagnosticSeverity, Position, Range, CodeAction, PublishDiagnosticsParams, } from "./formatters/diagnostics.js";
35
+ export { compareCapabilities, formatComparisonReport, formatFullComparisonMatrix, TOOL_PROFILES, CAPABILITY_MATRIX, } from "./comparison.js";
36
+ export type { ToolProfile, ToolCapability, ComparisonResult } from "./comparison.js";
37
+ export { getLanguagePack, listLanguagePacks, suggestPack, LANGUAGE_PACKS } from "./commands/language-packs.js";
38
+ export { formatSmartOutput, formatSmartSingleJudge } from "./commands/smart-output.js";
39
+ export type { SmartOutputOptions } from "./commands/smart-output.js";
23
40
  import type { EvaluationOptions } from "./evaluators/index.js";
24
41
  import type { JudgeEvaluation, TribunalVerdict } from "./types.js";
25
42
  /**
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,GACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGpF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGzD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAIxE,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGnG,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAG5D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC7G,YAAY,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAGlE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAKlC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAInE;;;;;;;GAOG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,eAAe,CAEzG;AAED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,eAAe,CAMjB"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
package/dist/api.js CHANGED
@@ -27,6 +27,24 @@ export { clearProjectCache } from "./evaluators/project.js";
27
27
  export { findingsToSarif, evaluationToSarif, verdictToSarif, validateSarifLog } from "./formatters/sarif.js";
28
28
  // ─── CLI ─────────────────────────────────────────────────────────────────────
29
29
  export { runCli } from "./cli.js";
30
+ // ─── Plugin API ──────────────────────────────────────────────────────────────
31
+ export { registerPlugin, unregisterPlugin, getRegisteredPlugins, getCustomRules, getPluginJudges, evaluateCustomRules, runBeforeHooks, runAfterHooks, clearPlugins, } from "./plugins.js";
32
+ // ─── AI Code Fingerprinting ─────────────────────────────────────────────────
33
+ export { fingerprintCode, fingerprintToFindings } from "./fingerprint.js";
34
+ // ─── Confidence Calibration ─────────────────────────────────────────────────
35
+ export { buildCalibrationProfile, calibrateFindings, autoCalibrateFindings } from "./calibration.js";
36
+ // ─── Feedback ────────────────────────────────────────────────────────────────
37
+ export { loadFeedbackStore, saveFeedbackStore, computeFeedbackStats, getFpRateByRule } from "./commands/feedback.js";
38
+ // ─── Fix History / Learning ──────────────────────────────────────────────────
39
+ export { loadFixHistory, saveFixHistory, computeFixStats, recordFixAccepted, recordFixRejected, getFixAcceptanceRate, getLowAcceptanceRules, } from "./fix-history.js";
40
+ // ─── IDE Diagnostics ─────────────────────────────────────────────────────────
41
+ export { findingToDiagnostic, findingsToDiagnostics, findingsToCodeActions, formatForProblemMatcher, formatAsJsonRpc, } from "./formatters/diagnostics.js";
42
+ // ─── Comparison Benchmarks ───────────────────────────────────────────────────
43
+ export { compareCapabilities, formatComparisonReport, formatFullComparisonMatrix, TOOL_PROFILES, CAPABILITY_MATRIX, } from "./comparison.js";
44
+ // ─── Language Packs ──────────────────────────────────────────────────────────
45
+ export { getLanguagePack, listLanguagePacks, suggestPack, LANGUAGE_PACKS } from "./commands/language-packs.js";
46
+ // ─── Smart Output ────────────────────────────────────────────────────────────
47
+ export { formatSmartOutput, formatSmartSingleJudge } from "./commands/smart-output.js";
30
48
  // ─── Convenience Aliases ─────────────────────────────────────────────────────
31
49
  import { evaluateWithTribunal, evaluateWithJudge } from "./evaluators/index.js";
32
50
  import { getJudge } from "./judges/index.js";
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA+BH,gFAAgF;AAChF,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEpF,gFAAgF;AAChF,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEzD,gFAAgF;AAChF,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAExE,gFAAgF;AAEhF,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,EACvB,0BAA0B,EAC1B,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAE/B,+EAA+E;AAC/E,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAEnG,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,gFAAgF;AAChF,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG7G,gFAAgF;AAChF,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,gFAAgF;AAEhF,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAGhF,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;;;;;;GAOG;AACH,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,QAAgB,EAAE,OAA2B;IACtF,OAAO,oBAAoB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AAClE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CACrC,OAAe,EACf,IAAY,EACZ,QAAgB,EAChB,OAA2B;IAE3B,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CAAC,mBAAmB,OAAO,GAAG,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;IACD,OAAO,iBAAiB,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Confidence Calibration System
3
+ *
4
+ * Uses historical feedback data (from `judges feedback`) to dynamically
5
+ * adjust finding confidence scores based on observed false-positive rates.
6
+ *
7
+ * When a rule has a known high FP rate from user feedback, its confidence
8
+ * is reduced proportionally. When a rule has a proven high TP rate, its
9
+ * confidence is boosted.
10
+ */
11
+ import type { Finding } from "./types.js";
12
+ import { type FeedbackStore } from "./commands/feedback.js";
13
+ export interface CalibrationProfile {
14
+ /** Name of the calibration profile */
15
+ name: string;
16
+ /** FP rate lookup by rule ID */
17
+ fpRateByRule: Map<string, number>;
18
+ /** FP rate lookup by rule prefix (judge-level) */
19
+ fpRateByPrefix: Map<string, number>;
20
+ /** Whether calibration is active (has enough data) */
21
+ isActive: boolean;
22
+ /** Total feedback entries used for calibration */
23
+ feedbackCount: number;
24
+ }
25
+ export interface CalibrationOptions {
26
+ /** Path to feedback store file */
27
+ feedbackPath?: string;
28
+ /** Minimum feedback entries for a rule before calibration applies */
29
+ minSamples?: number;
30
+ /** Maximum confidence reduction from calibration (default: 0.3) */
31
+ maxReduction?: number;
32
+ /** Maximum confidence boost from calibration (default: 0.15) */
33
+ maxBoost?: number;
34
+ }
35
+ /**
36
+ * Load a calibration profile from the feedback store.
37
+ */
38
+ export declare function loadCalibrationProfile(options?: CalibrationOptions): CalibrationProfile;
39
+ /**
40
+ * Build a calibration profile from a feedback store.
41
+ */
42
+ export declare function buildCalibrationProfile(store: FeedbackStore, options?: CalibrationOptions): CalibrationProfile;
43
+ /**
44
+ * Apply confidence calibration to a list of findings based on
45
+ * historical feedback data.
46
+ *
47
+ * - High FP rate → confidence is reduced
48
+ * - Low FP rate (high TP rate) → confidence is boosted
49
+ * - Neutral (FP rate ~50%) → no change
50
+ *
51
+ * Calibration threshold: FP rate > 0.5 → reduce, FP rate < 0.2 → boost
52
+ */
53
+ export declare function calibrateFindings(findings: Finding[], profile: CalibrationProfile, options?: CalibrationOptions): Finding[];
54
+ /**
55
+ * Convenience: load feedback, build profile, and calibrate findings in one call.
56
+ */
57
+ export declare function autoCalibrateFindings(findings: Finding[], options?: CalibrationOptions): Finding[];
58
+ //# sourceMappingURL=calibration.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calibration.d.ts","sourceRoot":"","sources":["../src/calibration.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAqB,KAAK,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAI/E,MAAM,WAAW,kBAAkB;IACjC,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,gCAAgC;IAChC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,kDAAkD;IAClD,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACpC,sDAAsD;IACtD,QAAQ,EAAE,OAAO,CAAC;IAClB,kDAAkD;IAClD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,kBAAkB;IACjC,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,mEAAmE;IACnE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAQD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,CAGvF;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,kBAAkB,CAgD9G;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,EAAE,CAsCX;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,EAAE,CAGlG"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Confidence Calibration System
3
+ *
4
+ * Uses historical feedback data (from `judges feedback`) to dynamically
5
+ * adjust finding confidence scores based on observed false-positive rates.
6
+ *
7
+ * When a rule has a known high FP rate from user feedback, its confidence
8
+ * is reduced proportionally. When a rule has a proven high TP rate, its
9
+ * confidence is boosted.
10
+ */
11
+ import { loadFeedbackStore } from "./commands/feedback.js";
12
+ // ─── Calibration Engine ─────────────────────────────────────────────────────
13
+ const DEFAULT_MIN_SAMPLES = 3;
14
+ const DEFAULT_MAX_REDUCTION = 0.3;
15
+ const DEFAULT_MAX_BOOST = 0.15;
16
+ /**
17
+ * Load a calibration profile from the feedback store.
18
+ */
19
+ export function loadCalibrationProfile(options) {
20
+ const store = loadFeedbackStore(options?.feedbackPath);
21
+ return buildCalibrationProfile(store, options);
22
+ }
23
+ /**
24
+ * Build a calibration profile from a feedback store.
25
+ */
26
+ export function buildCalibrationProfile(store, options) {
27
+ const minSamples = options?.minSamples ?? DEFAULT_MIN_SAMPLES;
28
+ const fpRateByRule = new Map();
29
+ const fpRateByPrefix = new Map();
30
+ // Group entries by rule ID
31
+ const byRule = new Map();
32
+ const byPrefix = new Map();
33
+ for (const entry of store.entries) {
34
+ // Per-rule aggregation
35
+ const ruleStats = byRule.get(entry.ruleId) || { tp: 0, fp: 0, total: 0 };
36
+ ruleStats.total++;
37
+ if (entry.verdict === "tp")
38
+ ruleStats.tp++;
39
+ else if (entry.verdict === "fp")
40
+ ruleStats.fp++;
41
+ byRule.set(entry.ruleId, ruleStats);
42
+ // Per-prefix aggregation
43
+ const prefix = entry.ruleId.split("-")[0];
44
+ if (prefix) {
45
+ const prefixStats = byPrefix.get(prefix) || { tp: 0, fp: 0, total: 0 };
46
+ prefixStats.total++;
47
+ if (entry.verdict === "tp")
48
+ prefixStats.tp++;
49
+ else if (entry.verdict === "fp")
50
+ prefixStats.fp++;
51
+ byPrefix.set(prefix, prefixStats);
52
+ }
53
+ }
54
+ // Compute FP rates for rules with enough data
55
+ for (const [ruleId, stats] of byRule) {
56
+ if (stats.total >= minSamples) {
57
+ fpRateByRule.set(ruleId, stats.fp / stats.total);
58
+ }
59
+ }
60
+ for (const [prefix, stats] of byPrefix) {
61
+ if (stats.total >= minSamples) {
62
+ fpRateByPrefix.set(prefix, stats.fp / stats.total);
63
+ }
64
+ }
65
+ return {
66
+ name: "feedback-calibrated",
67
+ fpRateByRule,
68
+ fpRateByPrefix,
69
+ isActive: fpRateByRule.size > 0 || fpRateByPrefix.size > 0,
70
+ feedbackCount: store.entries.length,
71
+ };
72
+ }
73
+ /**
74
+ * Apply confidence calibration to a list of findings based on
75
+ * historical feedback data.
76
+ *
77
+ * - High FP rate → confidence is reduced
78
+ * - Low FP rate (high TP rate) → confidence is boosted
79
+ * - Neutral (FP rate ~50%) → no change
80
+ *
81
+ * Calibration threshold: FP rate > 0.5 → reduce, FP rate < 0.2 → boost
82
+ */
83
+ export function calibrateFindings(findings, profile, options) {
84
+ if (!profile.isActive)
85
+ return findings;
86
+ const maxReduction = options?.maxReduction ?? DEFAULT_MAX_REDUCTION;
87
+ const maxBoost = options?.maxBoost ?? DEFAULT_MAX_BOOST;
88
+ return findings.map((f) => {
89
+ const currentConf = f.confidence ?? 0.5;
90
+ // Look up FP rate: prefer rule-specific, fall back to prefix
91
+ const ruleFpRate = profile.fpRateByRule.get(f.ruleId);
92
+ const prefix = f.ruleId.split("-")[0];
93
+ const prefixFpRate = profile.fpRateByPrefix.get(prefix);
94
+ const fpRate = ruleFpRate ?? prefixFpRate;
95
+ if (fpRate === undefined)
96
+ return f;
97
+ let adjustment = 0;
98
+ if (fpRate > 0.5) {
99
+ // High FP rate: reduce confidence proportionally
100
+ // FP rate 0.5 → 0% reduction, FP rate 1.0 → maxReduction
101
+ adjustment = -maxReduction * ((fpRate - 0.5) / 0.5);
102
+ }
103
+ else if (fpRate < 0.2) {
104
+ // Low FP rate: boost confidence
105
+ // FP rate 0.2 → 0% boost, FP rate 0.0 → maxBoost
106
+ adjustment = maxBoost * ((0.2 - fpRate) / 0.2);
107
+ }
108
+ if (adjustment === 0)
109
+ return f;
110
+ const calibratedConf = Math.max(0.05, Math.min(1.0, currentConf + adjustment));
111
+ return {
112
+ ...f,
113
+ confidence: calibratedConf,
114
+ provenance: f.provenance ? `${f.provenance}, confidence-calibrated` : "confidence-calibrated",
115
+ };
116
+ });
117
+ }
118
+ /**
119
+ * Convenience: load feedback, build profile, and calibrate findings in one call.
120
+ */
121
+ export function autoCalibrateFindings(findings, options) {
122
+ const profile = loadCalibrationProfile(options);
123
+ return calibrateFindings(findings, profile, options);
124
+ }
125
+ //# sourceMappingURL=calibration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calibration.js","sourceRoot":"","sources":["../src/calibration.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;AAibH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoN1D"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AA4gBH,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CA0Z1D"}