@kevinrabun/judges-cli 3.124.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 (1745) hide show
  1. package/README.md +24 -0
  2. package/agents/accessibility.judge.md +44 -0
  3. package/agents/agent-instructions.judge.md +44 -0
  4. package/agents/ai-code-safety.judge.md +55 -0
  5. package/agents/api-contract.judge.md +37 -0
  6. package/agents/api-design.judge.md +55 -0
  7. package/agents/authentication.judge.md +61 -0
  8. package/agents/backwards-compatibility.judge.md +44 -0
  9. package/agents/caching.judge.md +44 -0
  10. package/agents/ci-cd.judge.md +44 -0
  11. package/agents/cloud-readiness.judge.md +51 -0
  12. package/agents/code-structure.judge.md +48 -0
  13. package/agents/compliance.judge.md +47 -0
  14. package/agents/concurrency.judge.md +46 -0
  15. package/agents/configuration-management.judge.md +44 -0
  16. package/agents/cost-effectiveness.judge.md +40 -0
  17. package/agents/cybersecurity.judge.md +61 -0
  18. package/agents/data-security.judge.md +48 -0
  19. package/agents/data-sovereignty.judge.md +58 -0
  20. package/agents/database.judge.md +49 -0
  21. package/agents/dependency-health.judge.md +46 -0
  22. package/agents/documentation.judge.md +53 -0
  23. package/agents/error-handling.judge.md +53 -0
  24. package/agents/ethics-bias.judge.md +46 -0
  25. package/agents/false-positive-review.judge.md +85 -0
  26. package/agents/framework-safety.judge.md +47 -0
  27. package/agents/hallucination-detection.judge.md +46 -0
  28. package/agents/iac-security.judge.md +45 -0
  29. package/agents/intent-alignment.judge.md +44 -0
  30. package/agents/internationalization.judge.md +42 -0
  31. package/agents/logging-privacy.judge.md +44 -0
  32. package/agents/logic-review.judge.md +34 -0
  33. package/agents/maintainability.judge.md +44 -0
  34. package/agents/model-fingerprint.judge.md +31 -0
  35. package/agents/multi-turn-coherence.judge.md +36 -0
  36. package/agents/observability.judge.md +52 -0
  37. package/agents/over-engineering.judge.md +48 -0
  38. package/agents/performance.judge.md +44 -0
  39. package/agents/portability.judge.md +44 -0
  40. package/agents/rate-limiting.judge.md +53 -0
  41. package/agents/reliability.judge.md +55 -0
  42. package/agents/scalability.judge.md +50 -0
  43. package/agents/security.judge.md +62 -0
  44. package/agents/software-practices.judge.md +54 -0
  45. package/agents/testing.judge.md +52 -0
  46. package/agents/ux.judge.md +44 -0
  47. package/bin/judges.js +8 -0
  48. package/dist/a2a-protocol.d.ts +136 -0
  49. package/dist/a2a-protocol.js +218 -0
  50. package/dist/agent-loader.d.ts +107 -0
  51. package/dist/agent-loader.js +260 -0
  52. package/dist/api.d.ts +169 -0
  53. package/dist/api.js +195 -0
  54. package/dist/ast/cross-file-taint.d.ts +42 -0
  55. package/dist/ast/cross-file-taint.js +679 -0
  56. package/dist/ast/index.d.ts +25 -0
  57. package/dist/ast/index.js +148 -0
  58. package/dist/ast/structural-parser.d.ts +2 -0
  59. package/dist/ast/structural-parser.js +756 -0
  60. package/dist/ast/taint-tracker.d.ts +48 -0
  61. package/dist/ast/taint-tracker.js +1033 -0
  62. package/dist/ast/tree-sitter-ast.d.ts +33 -0
  63. package/dist/ast/tree-sitter-ast.js +1164 -0
  64. package/dist/ast/types.d.ts +50 -0
  65. package/dist/ast/types.js +7 -0
  66. package/dist/audit-trail.d.ts +245 -0
  67. package/dist/audit-trail.js +257 -0
  68. package/dist/auto-tune.d.ts +146 -0
  69. package/dist/auto-tune.js +373 -0
  70. package/dist/cache.d.ts +53 -0
  71. package/dist/cache.js +86 -0
  72. package/dist/calibration.d.ts +108 -0
  73. package/dist/calibration.js +219 -0
  74. package/dist/cli-dispatch.d.ts +7 -0
  75. package/dist/cli-dispatch.js +654 -0
  76. package/dist/cli-formatters.d.ts +6 -0
  77. package/dist/cli-formatters.js +186 -0
  78. package/dist/cli-helpers.d.ts +29 -0
  79. package/dist/cli-helpers.js +129 -0
  80. package/dist/cli.d.ts +30 -0
  81. package/dist/cli.js +1487 -0
  82. package/dist/commands/adoption-report.d.ts +7 -0
  83. package/dist/commands/adoption-report.js +218 -0
  84. package/dist/commands/adoption-track.d.ts +4 -0
  85. package/dist/commands/adoption-track.js +246 -0
  86. package/dist/commands/ai-gate.d.ts +7 -0
  87. package/dist/commands/ai-gate.js +212 -0
  88. package/dist/commands/ai-model-trust.d.ts +16 -0
  89. package/dist/commands/ai-model-trust.js +234 -0
  90. package/dist/commands/ai-output-compare.d.ts +8 -0
  91. package/dist/commands/ai-output-compare.js +202 -0
  92. package/dist/commands/ai-pattern-trend.d.ts +8 -0
  93. package/dist/commands/ai-pattern-trend.js +223 -0
  94. package/dist/commands/ai-prompt-audit.d.ts +22 -0
  95. package/dist/commands/ai-prompt-audit.js +254 -0
  96. package/dist/commands/ai-provenance.d.ts +4 -0
  97. package/dist/commands/ai-provenance.js +247 -0
  98. package/dist/commands/api-audit.d.ts +8 -0
  99. package/dist/commands/api-audit.js +359 -0
  100. package/dist/commands/api-misuse.d.ts +4 -0
  101. package/dist/commands/api-misuse.js +260 -0
  102. package/dist/commands/api-versioning-audit.d.ts +5 -0
  103. package/dist/commands/api-versioning-audit.js +233 -0
  104. package/dist/commands/approve-chain.d.ts +7 -0
  105. package/dist/commands/approve-chain.js +234 -0
  106. package/dist/commands/arch-audit.d.ts +8 -0
  107. package/dist/commands/arch-audit.js +283 -0
  108. package/dist/commands/assertion-density.d.ts +4 -0
  109. package/dist/commands/assertion-density.js +263 -0
  110. package/dist/commands/assign-findings.d.ts +36 -0
  111. package/dist/commands/assign-findings.js +177 -0
  112. package/dist/commands/async-safety.d.ts +4 -0
  113. package/dist/commands/async-safety.js +266 -0
  114. package/dist/commands/audit-bundle.d.ts +28 -0
  115. package/dist/commands/audit-bundle.js +234 -0
  116. package/dist/commands/audit-trail.d.ts +17 -0
  117. package/dist/commands/audit-trail.js +154 -0
  118. package/dist/commands/auto-approve.d.ts +4 -0
  119. package/dist/commands/auto-approve.js +188 -0
  120. package/dist/commands/auto-calibrate.d.ts +14 -0
  121. package/dist/commands/auto-calibrate.js +106 -0
  122. package/dist/commands/auto-detect.d.ts +61 -0
  123. package/dist/commands/auto-detect.js +328 -0
  124. package/dist/commands/auto-fix.d.ts +17 -0
  125. package/dist/commands/auto-fix.js +240 -0
  126. package/dist/commands/auto-triage.d.ts +31 -0
  127. package/dist/commands/auto-triage.js +125 -0
  128. package/dist/commands/baseline.d.ts +47 -0
  129. package/dist/commands/baseline.js +353 -0
  130. package/dist/commands/batch-review.d.ts +4 -0
  131. package/dist/commands/batch-review.js +180 -0
  132. package/dist/commands/benchmark-advanced.d.ts +14 -0
  133. package/dist/commands/benchmark-advanced.js +5057 -0
  134. package/dist/commands/benchmark-ai-agents.d.ts +8 -0
  135. package/dist/commands/benchmark-ai-agents.js +4123 -0
  136. package/dist/commands/benchmark-ai-output.d.ts +9 -0
  137. package/dist/commands/benchmark-ai-output.js +365 -0
  138. package/dist/commands/benchmark-compliance-ethics.d.ts +8 -0
  139. package/dist/commands/benchmark-compliance-ethics.js +3060 -0
  140. package/dist/commands/benchmark-expanded-2.d.ts +12 -0
  141. package/dist/commands/benchmark-expanded-2.js +5530 -0
  142. package/dist/commands/benchmark-expanded.d.ts +12 -0
  143. package/dist/commands/benchmark-expanded.js +2599 -0
  144. package/dist/commands/benchmark-infrastructure.d.ts +8 -0
  145. package/dist/commands/benchmark-infrastructure.js +2882 -0
  146. package/dist/commands/benchmark-languages.d.ts +8 -0
  147. package/dist/commands/benchmark-languages.js +1963 -0
  148. package/dist/commands/benchmark-quality-ops.d.ts +8 -0
  149. package/dist/commands/benchmark-quality-ops.js +3415 -0
  150. package/dist/commands/benchmark-security-deep.d.ts +9 -0
  151. package/dist/commands/benchmark-security-deep.js +2335 -0
  152. package/dist/commands/benchmark.d.ts +233 -0
  153. package/dist/commands/benchmark.js +3214 -0
  154. package/dist/commands/blame-review.d.ts +4 -0
  155. package/dist/commands/blame-review.js +266 -0
  156. package/dist/commands/boundary-enforce.d.ts +5 -0
  157. package/dist/commands/boundary-enforce.js +255 -0
  158. package/dist/commands/build-optimize.d.ts +6 -0
  159. package/dist/commands/build-optimize.js +256 -0
  160. package/dist/commands/burndown.d.ts +26 -0
  161. package/dist/commands/burndown.js +179 -0
  162. package/dist/commands/cache-audit.d.ts +4 -0
  163. package/dist/commands/cache-audit.js +219 -0
  164. package/dist/commands/calibration-dashboard.d.ts +1 -0
  165. package/dist/commands/calibration-dashboard.js +294 -0
  166. package/dist/commands/calibration-share.d.ts +30 -0
  167. package/dist/commands/calibration-share.js +182 -0
  168. package/dist/commands/chat-notify.d.ts +8 -0
  169. package/dist/commands/chat-notify.js +258 -0
  170. package/dist/commands/ci-template.d.ts +14 -0
  171. package/dist/commands/ci-template.js +211 -0
  172. package/dist/commands/ci-templates.d.ts +9 -0
  173. package/dist/commands/ci-templates.js +89 -0
  174. package/dist/commands/clarity-score.d.ts +8 -0
  175. package/dist/commands/clarity-score.js +260 -0
  176. package/dist/commands/clone-detect.d.ts +4 -0
  177. package/dist/commands/clone-detect.js +232 -0
  178. package/dist/commands/coach-mode.d.ts +7 -0
  179. package/dist/commands/coach-mode.js +229 -0
  180. package/dist/commands/code-health.d.ts +4 -0
  181. package/dist/commands/code-health.js +195 -0
  182. package/dist/commands/code-owner-suggest.d.ts +16 -0
  183. package/dist/commands/code-owner-suggest.js +214 -0
  184. package/dist/commands/code-similarity.d.ts +8 -0
  185. package/dist/commands/code-similarity.js +231 -0
  186. package/dist/commands/comment-drift.d.ts +4 -0
  187. package/dist/commands/comment-drift.js +228 -0
  188. package/dist/commands/commit-hygiene.d.ts +5 -0
  189. package/dist/commands/commit-hygiene.js +175 -0
  190. package/dist/commands/community-patterns.d.ts +1 -0
  191. package/dist/commands/community-patterns.js +131 -0
  192. package/dist/commands/compare-runs.d.ts +37 -0
  193. package/dist/commands/compare-runs.js +228 -0
  194. package/dist/commands/completion-audit.d.ts +4 -0
  195. package/dist/commands/completion-audit.js +296 -0
  196. package/dist/commands/completions.d.ts +1 -0
  197. package/dist/commands/completions.js +257 -0
  198. package/dist/commands/compliance-map.d.ts +8 -0
  199. package/dist/commands/compliance-map.js +374 -0
  200. package/dist/commands/compliance-report.d.ts +34 -0
  201. package/dist/commands/compliance-report.js +161 -0
  202. package/dist/commands/compliance-weight.d.ts +8 -0
  203. package/dist/commands/compliance-weight.js +272 -0
  204. package/dist/commands/config-drift.d.ts +24 -0
  205. package/dist/commands/config-drift.js +213 -0
  206. package/dist/commands/config-lint.d.ts +4 -0
  207. package/dist/commands/config-lint.js +187 -0
  208. package/dist/commands/config-migrate.d.ts +43 -0
  209. package/dist/commands/config-migrate.js +240 -0
  210. package/dist/commands/config-share.d.ts +95 -0
  211. package/dist/commands/config-share.js +406 -0
  212. package/dist/commands/context-blind.d.ts +4 -0
  213. package/dist/commands/context-blind.js +272 -0
  214. package/dist/commands/context-inject.d.ts +8 -0
  215. package/dist/commands/context-inject.js +211 -0
  216. package/dist/commands/contract-verify.d.ts +4 -0
  217. package/dist/commands/contract-verify.js +316 -0
  218. package/dist/commands/correlate.d.ts +27 -0
  219. package/dist/commands/correlate.js +241 -0
  220. package/dist/commands/cost-forecast.d.ts +18 -0
  221. package/dist/commands/cost-forecast.js +193 -0
  222. package/dist/commands/coverage-map.d.ts +22 -0
  223. package/dist/commands/coverage-map.js +222 -0
  224. package/dist/commands/coverage.d.ts +40 -0
  225. package/dist/commands/coverage.js +147 -0
  226. package/dist/commands/cross-file-consistency.d.ts +4 -0
  227. package/dist/commands/cross-file-consistency.js +254 -0
  228. package/dist/commands/cross-pr-regression.d.ts +8 -0
  229. package/dist/commands/cross-pr-regression.js +297 -0
  230. package/dist/commands/custom-rule.d.ts +4 -0
  231. package/dist/commands/custom-rule.js +210 -0
  232. package/dist/commands/dead-code-detect.d.ts +4 -0
  233. package/dist/commands/dead-code-detect.js +255 -0
  234. package/dist/commands/dedup-report.d.ts +12 -0
  235. package/dist/commands/dedup-report.js +137 -0
  236. package/dist/commands/dep-audit.d.ts +52 -0
  237. package/dist/commands/dep-audit.js +277 -0
  238. package/dist/commands/dep-correlate.d.ts +8 -0
  239. package/dist/commands/dep-correlate.js +207 -0
  240. package/dist/commands/deploy-readiness.d.ts +5 -0
  241. package/dist/commands/deploy-readiness.js +211 -0
  242. package/dist/commands/deprecated.d.ts +47 -0
  243. package/dist/commands/deprecated.js +201 -0
  244. package/dist/commands/deps.d.ts +5 -0
  245. package/dist/commands/deps.js +122 -0
  246. package/dist/commands/design-audit.d.ts +8 -0
  247. package/dist/commands/design-audit.js +301 -0
  248. package/dist/commands/dev-score.d.ts +36 -0
  249. package/dist/commands/dev-score.js +203 -0
  250. package/dist/commands/diff-explain.d.ts +4 -0
  251. package/dist/commands/diff-explain.js +142 -0
  252. package/dist/commands/diff-only.d.ts +33 -0
  253. package/dist/commands/diff-only.js +151 -0
  254. package/dist/commands/diff-review.d.ts +4 -0
  255. package/dist/commands/diff-review.js +190 -0
  256. package/dist/commands/diff.d.ts +6 -0
  257. package/dist/commands/diff.js +449 -0
  258. package/dist/commands/digest.d.ts +19 -0
  259. package/dist/commands/digest.js +221 -0
  260. package/dist/commands/doc-drift.d.ts +8 -0
  261. package/dist/commands/doc-drift.js +258 -0
  262. package/dist/commands/doc-gen.d.ts +7 -0
  263. package/dist/commands/doc-gen.js +208 -0
  264. package/dist/commands/docs.d.ts +1 -0
  265. package/dist/commands/docs.js +156 -0
  266. package/dist/commands/doctor.d.ts +55 -0
  267. package/dist/commands/doctor.js +362 -0
  268. package/dist/commands/encoding-safety.d.ts +4 -0
  269. package/dist/commands/encoding-safety.js +275 -0
  270. package/dist/commands/error-taxonomy.d.ts +5 -0
  271. package/dist/commands/error-taxonomy.js +226 -0
  272. package/dist/commands/error-ux.d.ts +4 -0
  273. package/dist/commands/error-ux.js +252 -0
  274. package/dist/commands/event-leak.d.ts +4 -0
  275. package/dist/commands/event-leak.js +262 -0
  276. package/dist/commands/evidence-chain.d.ts +4 -0
  277. package/dist/commands/evidence-chain.js +309 -0
  278. package/dist/commands/example-leak.d.ts +4 -0
  279. package/dist/commands/example-leak.js +232 -0
  280. package/dist/commands/exception-consistency.d.ts +6 -0
  281. package/dist/commands/exception-consistency.js +192 -0
  282. package/dist/commands/exec-report.d.ts +8 -0
  283. package/dist/commands/exec-report.js +271 -0
  284. package/dist/commands/explain-finding.d.ts +7 -0
  285. package/dist/commands/explain-finding.js +278 -0
  286. package/dist/commands/false-negatives.d.ts +34 -0
  287. package/dist/commands/false-negatives.js +165 -0
  288. package/dist/commands/feedback-rules.d.ts +28 -0
  289. package/dist/commands/feedback-rules.js +173 -0
  290. package/dist/commands/feedback.d.ts +182 -0
  291. package/dist/commands/feedback.js +550 -0
  292. package/dist/commands/finding-age-analysis.d.ts +4 -0
  293. package/dist/commands/finding-age-analysis.js +144 -0
  294. package/dist/commands/finding-age-report.d.ts +4 -0
  295. package/dist/commands/finding-age-report.js +154 -0
  296. package/dist/commands/finding-age-tracker.d.ts +7 -0
  297. package/dist/commands/finding-age-tracker.js +152 -0
  298. package/dist/commands/finding-age.d.ts +4 -0
  299. package/dist/commands/finding-age.js +145 -0
  300. package/dist/commands/finding-ancestry-trace.d.ts +1 -0
  301. package/dist/commands/finding-ancestry-trace.js +69 -0
  302. package/dist/commands/finding-annotation-export.d.ts +1 -0
  303. package/dist/commands/finding-annotation-export.js +97 -0
  304. package/dist/commands/finding-annotation-layer.d.ts +4 -0
  305. package/dist/commands/finding-annotation-layer.js +128 -0
  306. package/dist/commands/finding-auto-categorize.d.ts +1 -0
  307. package/dist/commands/finding-auto-categorize.js +109 -0
  308. package/dist/commands/finding-auto-fix-suggest.d.ts +1 -0
  309. package/dist/commands/finding-auto-fix-suggest.js +76 -0
  310. package/dist/commands/finding-auto-fix.d.ts +4 -0
  311. package/dist/commands/finding-auto-fix.js +188 -0
  312. package/dist/commands/finding-auto-group.d.ts +4 -0
  313. package/dist/commands/finding-auto-group.js +108 -0
  314. package/dist/commands/finding-auto-label.d.ts +4 -0
  315. package/dist/commands/finding-auto-label.js +220 -0
  316. package/dist/commands/finding-auto-priority.d.ts +1 -0
  317. package/dist/commands/finding-auto-priority.js +100 -0
  318. package/dist/commands/finding-auto-suppress.d.ts +4 -0
  319. package/dist/commands/finding-auto-suppress.js +126 -0
  320. package/dist/commands/finding-auto-tag.d.ts +4 -0
  321. package/dist/commands/finding-auto-tag.js +113 -0
  322. package/dist/commands/finding-auto-triage.d.ts +4 -0
  323. package/dist/commands/finding-auto-triage.js +108 -0
  324. package/dist/commands/finding-autofix-preview.d.ts +4 -0
  325. package/dist/commands/finding-autofix-preview.js +86 -0
  326. package/dist/commands/finding-batch-resolve.d.ts +4 -0
  327. package/dist/commands/finding-batch-resolve.js +165 -0
  328. package/dist/commands/finding-batch-suppress.d.ts +4 -0
  329. package/dist/commands/finding-batch-suppress.js +85 -0
  330. package/dist/commands/finding-batch-triage.d.ts +1 -0
  331. package/dist/commands/finding-batch-triage.js +90 -0
  332. package/dist/commands/finding-blast-radius.d.ts +4 -0
  333. package/dist/commands/finding-blast-radius.js +91 -0
  334. package/dist/commands/finding-budget.d.ts +4 -0
  335. package/dist/commands/finding-budget.js +232 -0
  336. package/dist/commands/finding-category-map.d.ts +4 -0
  337. package/dist/commands/finding-category-map.js +103 -0
  338. package/dist/commands/finding-category-stats.d.ts +4 -0
  339. package/dist/commands/finding-category-stats.js +104 -0
  340. package/dist/commands/finding-category.d.ts +4 -0
  341. package/dist/commands/finding-category.js +109 -0
  342. package/dist/commands/finding-change-impact.d.ts +4 -0
  343. package/dist/commands/finding-change-impact.js +107 -0
  344. package/dist/commands/finding-cluster-analysis.d.ts +4 -0
  345. package/dist/commands/finding-cluster-analysis.js +133 -0
  346. package/dist/commands/finding-cluster-group.d.ts +4 -0
  347. package/dist/commands/finding-cluster-group.js +105 -0
  348. package/dist/commands/finding-cluster-summary.d.ts +1 -0
  349. package/dist/commands/finding-cluster-summary.js +85 -0
  350. package/dist/commands/finding-cluster.d.ts +4 -0
  351. package/dist/commands/finding-cluster.js +157 -0
  352. package/dist/commands/finding-code-context.d.ts +4 -0
  353. package/dist/commands/finding-code-context.js +96 -0
  354. package/dist/commands/finding-code-smell.d.ts +4 -0
  355. package/dist/commands/finding-code-smell.js +113 -0
  356. package/dist/commands/finding-compare-runs.d.ts +4 -0
  357. package/dist/commands/finding-compare-runs.js +105 -0
  358. package/dist/commands/finding-compliance-tag.d.ts +1 -0
  359. package/dist/commands/finding-compliance-tag.js +106 -0
  360. package/dist/commands/finding-confidence-boost.d.ts +1 -0
  361. package/dist/commands/finding-confidence-boost.js +88 -0
  362. package/dist/commands/finding-confidence-calibrate.d.ts +4 -0
  363. package/dist/commands/finding-confidence-calibrate.js +111 -0
  364. package/dist/commands/finding-confidence-filter.d.ts +4 -0
  365. package/dist/commands/finding-confidence-filter.js +77 -0
  366. package/dist/commands/finding-contest.d.ts +7 -0
  367. package/dist/commands/finding-contest.js +192 -0
  368. package/dist/commands/finding-context-enrich.d.ts +4 -0
  369. package/dist/commands/finding-context-enrich.js +89 -0
  370. package/dist/commands/finding-context-expand.d.ts +4 -0
  371. package/dist/commands/finding-context-expand.js +102 -0
  372. package/dist/commands/finding-context-link.d.ts +1 -0
  373. package/dist/commands/finding-context-link.js +94 -0
  374. package/dist/commands/finding-context-summary.d.ts +1 -0
  375. package/dist/commands/finding-context-summary.js +85 -0
  376. package/dist/commands/finding-context-window.d.ts +4 -0
  377. package/dist/commands/finding-context-window.js +126 -0
  378. package/dist/commands/finding-context.d.ts +4 -0
  379. package/dist/commands/finding-context.js +140 -0
  380. package/dist/commands/finding-correlate.d.ts +4 -0
  381. package/dist/commands/finding-correlate.js +88 -0
  382. package/dist/commands/finding-correlation-map.d.ts +4 -0
  383. package/dist/commands/finding-correlation-map.js +101 -0
  384. package/dist/commands/finding-correlation.d.ts +4 -0
  385. package/dist/commands/finding-correlation.js +103 -0
  386. package/dist/commands/finding-cross-file-link.d.ts +1 -0
  387. package/dist/commands/finding-cross-file-link.js +101 -0
  388. package/dist/commands/finding-cross-ref.d.ts +4 -0
  389. package/dist/commands/finding-cross-ref.js +98 -0
  390. package/dist/commands/finding-cve-lookup.d.ts +4 -0
  391. package/dist/commands/finding-cve-lookup.js +97 -0
  392. package/dist/commands/finding-cwe-lookup.d.ts +4 -0
  393. package/dist/commands/finding-cwe-lookup.js +148 -0
  394. package/dist/commands/finding-cwe-map.d.ts +4 -0
  395. package/dist/commands/finding-cwe-map.js +133 -0
  396. package/dist/commands/finding-dedup-cross-file.d.ts +4 -0
  397. package/dist/commands/finding-dedup-cross-file.js +95 -0
  398. package/dist/commands/finding-dedup-cross.d.ts +4 -0
  399. package/dist/commands/finding-dedup-cross.js +90 -0
  400. package/dist/commands/finding-dedup-merge.d.ts +1 -0
  401. package/dist/commands/finding-dedup-merge.js +107 -0
  402. package/dist/commands/finding-dedup-report.d.ts +4 -0
  403. package/dist/commands/finding-dedup-report.js +101 -0
  404. package/dist/commands/finding-dedup-smart.d.ts +1 -0
  405. package/dist/commands/finding-dedup-smart.js +109 -0
  406. package/dist/commands/finding-deduplicate.d.ts +4 -0
  407. package/dist/commands/finding-deduplicate.js +141 -0
  408. package/dist/commands/finding-dependency-check.d.ts +4 -0
  409. package/dist/commands/finding-dependency-check.js +119 -0
  410. package/dist/commands/finding-dependency-impact.d.ts +1 -0
  411. package/dist/commands/finding-dependency-impact.js +97 -0
  412. package/dist/commands/finding-dependency-link.d.ts +4 -0
  413. package/dist/commands/finding-dependency-link.js +73 -0
  414. package/dist/commands/finding-dependency-risk.d.ts +4 -0
  415. package/dist/commands/finding-dependency-risk.js +117 -0
  416. package/dist/commands/finding-dependency-tree.d.ts +4 -0
  417. package/dist/commands/finding-dependency-tree.js +116 -0
  418. package/dist/commands/finding-diff-highlight.d.ts +4 -0
  419. package/dist/commands/finding-diff-highlight.js +107 -0
  420. package/dist/commands/finding-dismiss-workflow.d.ts +4 -0
  421. package/dist/commands/finding-dismiss-workflow.js +119 -0
  422. package/dist/commands/finding-duplicate-detect.d.ts +4 -0
  423. package/dist/commands/finding-duplicate-detect.js +113 -0
  424. package/dist/commands/finding-duplicate-rule.d.ts +4 -0
  425. package/dist/commands/finding-duplicate-rule.js +103 -0
  426. package/dist/commands/finding-effort-rank.d.ts +1 -0
  427. package/dist/commands/finding-effort-rank.js +93 -0
  428. package/dist/commands/finding-evidence-chain.d.ts +4 -0
  429. package/dist/commands/finding-evidence-chain.js +147 -0
  430. package/dist/commands/finding-evidence-collect.d.ts +4 -0
  431. package/dist/commands/finding-evidence-collect.js +114 -0
  432. package/dist/commands/finding-explain.d.ts +4 -0
  433. package/dist/commands/finding-explain.js +93 -0
  434. package/dist/commands/finding-export-csv.d.ts +4 -0
  435. package/dist/commands/finding-export-csv.js +78 -0
  436. package/dist/commands/finding-false-neg-check.d.ts +8 -0
  437. package/dist/commands/finding-false-neg-check.js +139 -0
  438. package/dist/commands/finding-false-positive-learn.d.ts +4 -0
  439. package/dist/commands/finding-false-positive-learn.js +85 -0
  440. package/dist/commands/finding-false-positive-log.d.ts +4 -0
  441. package/dist/commands/finding-false-positive-log.js +150 -0
  442. package/dist/commands/finding-false-positive.d.ts +4 -0
  443. package/dist/commands/finding-false-positive.js +134 -0
  444. package/dist/commands/finding-filter-view.d.ts +4 -0
  445. package/dist/commands/finding-filter-view.js +107 -0
  446. package/dist/commands/finding-fix-chain.d.ts +1 -0
  447. package/dist/commands/finding-fix-chain.js +78 -0
  448. package/dist/commands/finding-fix-estimate.d.ts +1 -0
  449. package/dist/commands/finding-fix-estimate.js +95 -0
  450. package/dist/commands/finding-fix-playbook.d.ts +1 -0
  451. package/dist/commands/finding-fix-playbook.js +110 -0
  452. package/dist/commands/finding-fix-priority.d.ts +4 -0
  453. package/dist/commands/finding-fix-priority.js +98 -0
  454. package/dist/commands/finding-fix-rate.d.ts +4 -0
  455. package/dist/commands/finding-fix-rate.js +141 -0
  456. package/dist/commands/finding-fix-suggest.d.ts +4 -0
  457. package/dist/commands/finding-fix-suggest.js +88 -0
  458. package/dist/commands/finding-fix-validation.d.ts +4 -0
  459. package/dist/commands/finding-fix-validation.js +115 -0
  460. package/dist/commands/finding-fix-verify.d.ts +4 -0
  461. package/dist/commands/finding-fix-verify.js +198 -0
  462. package/dist/commands/finding-group-by.d.ts +4 -0
  463. package/dist/commands/finding-group-by.js +86 -0
  464. package/dist/commands/finding-group.d.ts +15 -0
  465. package/dist/commands/finding-group.js +164 -0
  466. package/dist/commands/finding-groupby-file.d.ts +4 -0
  467. package/dist/commands/finding-groupby-file.js +94 -0
  468. package/dist/commands/finding-hotfix-suggest.d.ts +7 -0
  469. package/dist/commands/finding-hotfix-suggest.js +170 -0
  470. package/dist/commands/finding-hotspot-detect.d.ts +1 -0
  471. package/dist/commands/finding-hotspot-detect.js +120 -0
  472. package/dist/commands/finding-hotspot-map.d.ts +4 -0
  473. package/dist/commands/finding-hotspot-map.js +106 -0
  474. package/dist/commands/finding-hotspot.d.ts +4 -0
  475. package/dist/commands/finding-hotspot.js +115 -0
  476. package/dist/commands/finding-impact-radius.d.ts +1 -0
  477. package/dist/commands/finding-impact-radius.js +94 -0
  478. package/dist/commands/finding-impact-rank.d.ts +4 -0
  479. package/dist/commands/finding-impact-rank.js +85 -0
  480. package/dist/commands/finding-impact-score.d.ts +4 -0
  481. package/dist/commands/finding-impact-score.js +123 -0
  482. package/dist/commands/finding-impact.d.ts +4 -0
  483. package/dist/commands/finding-impact.js +135 -0
  484. package/dist/commands/finding-line-blame.d.ts +7 -0
  485. package/dist/commands/finding-line-blame.js +129 -0
  486. package/dist/commands/finding-link-graph.d.ts +4 -0
  487. package/dist/commands/finding-link-graph.js +144 -0
  488. package/dist/commands/finding-link.d.ts +4 -0
  489. package/dist/commands/finding-link.js +128 -0
  490. package/dist/commands/finding-merge-results.d.ts +4 -0
  491. package/dist/commands/finding-merge-results.js +110 -0
  492. package/dist/commands/finding-merge-strategy.d.ts +1 -0
  493. package/dist/commands/finding-merge-strategy.js +84 -0
  494. package/dist/commands/finding-metadata-enrich.d.ts +4 -0
  495. package/dist/commands/finding-metadata-enrich.js +92 -0
  496. package/dist/commands/finding-noise-filter.d.ts +7 -0
  497. package/dist/commands/finding-noise-filter.js +140 -0
  498. package/dist/commands/finding-noise-reduce.d.ts +1 -0
  499. package/dist/commands/finding-noise-reduce.js +81 -0
  500. package/dist/commands/finding-noise-score.d.ts +1 -0
  501. package/dist/commands/finding-noise-score.js +93 -0
  502. package/dist/commands/finding-owner-assign.d.ts +4 -0
  503. package/dist/commands/finding-owner-assign.js +133 -0
  504. package/dist/commands/finding-owner-notify.d.ts +1 -0
  505. package/dist/commands/finding-owner-notify.js +121 -0
  506. package/dist/commands/finding-ownership-assign.d.ts +4 -0
  507. package/dist/commands/finding-ownership-assign.js +101 -0
  508. package/dist/commands/finding-ownership-map.d.ts +4 -0
  509. package/dist/commands/finding-ownership-map.js +118 -0
  510. package/dist/commands/finding-patch-chain.d.ts +1 -0
  511. package/dist/commands/finding-patch-chain.js +90 -0
  512. package/dist/commands/finding-patch-preview.d.ts +4 -0
  513. package/dist/commands/finding-patch-preview.js +103 -0
  514. package/dist/commands/finding-pattern-detect.d.ts +4 -0
  515. package/dist/commands/finding-pattern-detect.js +127 -0
  516. package/dist/commands/finding-pattern-library.d.ts +4 -0
  517. package/dist/commands/finding-pattern-library.js +145 -0
  518. package/dist/commands/finding-pattern-match.d.ts +4 -0
  519. package/dist/commands/finding-pattern-match.js +165 -0
  520. package/dist/commands/finding-prioritize.d.ts +4 -0
  521. package/dist/commands/finding-prioritize.js +119 -0
  522. package/dist/commands/finding-priority-matrix.d.ts +4 -0
  523. package/dist/commands/finding-priority-matrix.js +102 -0
  524. package/dist/commands/finding-priority-queue.d.ts +4 -0
  525. package/dist/commands/finding-priority-queue.js +131 -0
  526. package/dist/commands/finding-priority-rank.d.ts +1 -0
  527. package/dist/commands/finding-priority-rank.js +82 -0
  528. package/dist/commands/finding-quality-gate.d.ts +4 -0
  529. package/dist/commands/finding-quality-gate.js +107 -0
  530. package/dist/commands/finding-rank.d.ts +4 -0
  531. package/dist/commands/finding-rank.js +138 -0
  532. package/dist/commands/finding-reachability-check.d.ts +4 -0
  533. package/dist/commands/finding-reachability-check.js +102 -0
  534. package/dist/commands/finding-reachability.d.ts +4 -0
  535. package/dist/commands/finding-reachability.js +131 -0
  536. package/dist/commands/finding-recurrence-check.d.ts +1 -0
  537. package/dist/commands/finding-recurrence-check.js +103 -0
  538. package/dist/commands/finding-recurrence-detect.d.ts +4 -0
  539. package/dist/commands/finding-recurrence-detect.js +77 -0
  540. package/dist/commands/finding-recurrence.d.ts +4 -0
  541. package/dist/commands/finding-recurrence.js +135 -0
  542. package/dist/commands/finding-regression-check.d.ts +4 -0
  543. package/dist/commands/finding-regression-check.js +112 -0
  544. package/dist/commands/finding-regression-detect.d.ts +1 -0
  545. package/dist/commands/finding-regression-detect.js +86 -0
  546. package/dist/commands/finding-related-rules.d.ts +4 -0
  547. package/dist/commands/finding-related-rules.js +151 -0
  548. package/dist/commands/finding-remediation-cost.d.ts +1 -0
  549. package/dist/commands/finding-remediation-cost.js +79 -0
  550. package/dist/commands/finding-remediation-plan.d.ts +4 -0
  551. package/dist/commands/finding-remediation-plan.js +107 -0
  552. package/dist/commands/finding-reopen-detect.d.ts +1 -0
  553. package/dist/commands/finding-reopen-detect.js +77 -0
  554. package/dist/commands/finding-repeat-detect.d.ts +1 -0
  555. package/dist/commands/finding-repeat-detect.js +92 -0
  556. package/dist/commands/finding-resolution-track.d.ts +4 -0
  557. package/dist/commands/finding-resolution-track.js +150 -0
  558. package/dist/commands/finding-resolution-tracker.d.ts +4 -0
  559. package/dist/commands/finding-resolution-tracker.js +163 -0
  560. package/dist/commands/finding-resolution-workflow.d.ts +1 -0
  561. package/dist/commands/finding-resolution-workflow.js +91 -0
  562. package/dist/commands/finding-resolution.d.ts +4 -0
  563. package/dist/commands/finding-resolution.js +142 -0
  564. package/dist/commands/finding-risk-label.d.ts +1 -0
  565. package/dist/commands/finding-risk-label.js +72 -0
  566. package/dist/commands/finding-risk-matrix.d.ts +4 -0
  567. package/dist/commands/finding-risk-matrix.js +126 -0
  568. package/dist/commands/finding-risk-score.d.ts +4 -0
  569. package/dist/commands/finding-risk-score.js +95 -0
  570. package/dist/commands/finding-root-cause.d.ts +4 -0
  571. package/dist/commands/finding-root-cause.js +184 -0
  572. package/dist/commands/finding-rule-explain.d.ts +4 -0
  573. package/dist/commands/finding-rule-explain.js +140 -0
  574. package/dist/commands/finding-scope-filter.d.ts +1 -0
  575. package/dist/commands/finding-scope-filter.js +77 -0
  576. package/dist/commands/finding-scope-impact.d.ts +1 -0
  577. package/dist/commands/finding-scope-impact.js +83 -0
  578. package/dist/commands/finding-search-index.d.ts +4 -0
  579. package/dist/commands/finding-search-index.js +99 -0
  580. package/dist/commands/finding-security-hotspot.d.ts +4 -0
  581. package/dist/commands/finding-security-hotspot.js +175 -0
  582. package/dist/commands/finding-severity-dist.d.ts +4 -0
  583. package/dist/commands/finding-severity-dist.js +105 -0
  584. package/dist/commands/finding-severity-drift.d.ts +4 -0
  585. package/dist/commands/finding-severity-drift.js +92 -0
  586. package/dist/commands/finding-severity-heatmap.d.ts +4 -0
  587. package/dist/commands/finding-severity-heatmap.js +108 -0
  588. package/dist/commands/finding-severity-histogram.d.ts +4 -0
  589. package/dist/commands/finding-severity-histogram.js +66 -0
  590. package/dist/commands/finding-severity-override.d.ts +4 -0
  591. package/dist/commands/finding-severity-override.js +131 -0
  592. package/dist/commands/finding-severity-rebalance.d.ts +1 -0
  593. package/dist/commands/finding-severity-rebalance.js +108 -0
  594. package/dist/commands/finding-severity-trend.d.ts +4 -0
  595. package/dist/commands/finding-severity-trend.js +127 -0
  596. package/dist/commands/finding-similar-match.d.ts +1 -0
  597. package/dist/commands/finding-similar-match.js +112 -0
  598. package/dist/commands/finding-snippet.d.ts +4 -0
  599. package/dist/commands/finding-snippet.js +102 -0
  600. package/dist/commands/finding-summary-digest.d.ts +7 -0
  601. package/dist/commands/finding-summary-digest.js +145 -0
  602. package/dist/commands/finding-suppress-pattern.d.ts +4 -0
  603. package/dist/commands/finding-suppress-pattern.js +148 -0
  604. package/dist/commands/finding-suppress.d.ts +4 -0
  605. package/dist/commands/finding-suppress.js +164 -0
  606. package/dist/commands/finding-suppression-audit.d.ts +4 -0
  607. package/dist/commands/finding-suppression-audit.js +137 -0
  608. package/dist/commands/finding-suppression-list.d.ts +4 -0
  609. package/dist/commands/finding-suppression-list.js +119 -0
  610. package/dist/commands/finding-suppression-log.d.ts +4 -0
  611. package/dist/commands/finding-suppression-log.js +174 -0
  612. package/dist/commands/finding-time-to-fix.d.ts +1 -0
  613. package/dist/commands/finding-time-to-fix.js +98 -0
  614. package/dist/commands/finding-timeline-view.d.ts +4 -0
  615. package/dist/commands/finding-timeline-view.js +98 -0
  616. package/dist/commands/finding-timeline.d.ts +4 -0
  617. package/dist/commands/finding-timeline.js +143 -0
  618. package/dist/commands/finding-top-offender.d.ts +1 -0
  619. package/dist/commands/finding-top-offender.js +75 -0
  620. package/dist/commands/finding-trace.d.ts +4 -0
  621. package/dist/commands/finding-trace.js +118 -0
  622. package/dist/commands/finding-trend-alert.d.ts +1 -0
  623. package/dist/commands/finding-trend-alert.js +126 -0
  624. package/dist/commands/finding-trend-analysis.d.ts +4 -0
  625. package/dist/commands/finding-trend-analysis.js +95 -0
  626. package/dist/commands/finding-trend-forecast.d.ts +4 -0
  627. package/dist/commands/finding-trend-forecast.js +106 -0
  628. package/dist/commands/finding-trend-report.d.ts +4 -0
  629. package/dist/commands/finding-trend-report.js +107 -0
  630. package/dist/commands/finding-trend.d.ts +4 -0
  631. package/dist/commands/finding-trend.js +118 -0
  632. package/dist/commands/fix-pr.d.ts +22 -0
  633. package/dist/commands/fix-pr.js +286 -0
  634. package/dist/commands/fix-suggest.d.ts +4 -0
  635. package/dist/commands/fix-suggest.js +171 -0
  636. package/dist/commands/fix-verify.d.ts +4 -0
  637. package/dist/commands/fix-verify.js +123 -0
  638. package/dist/commands/fix.d.ts +117 -0
  639. package/dist/commands/fix.js +445 -0
  640. package/dist/commands/focus-area.d.ts +5 -0
  641. package/dist/commands/focus-area.js +192 -0
  642. package/dist/commands/generate.d.ts +7 -0
  643. package/dist/commands/generate.js +403 -0
  644. package/dist/commands/governance.d.ts +31 -0
  645. package/dist/commands/governance.js +202 -0
  646. package/dist/commands/group-findings.d.ts +22 -0
  647. package/dist/commands/group-findings.js +154 -0
  648. package/dist/commands/guided-tour.d.ts +8 -0
  649. package/dist/commands/guided-tour.js +287 -0
  650. package/dist/commands/habit-tracker.d.ts +7 -0
  651. package/dist/commands/habit-tracker.js +194 -0
  652. package/dist/commands/hallucination-detect.d.ts +4 -0
  653. package/dist/commands/hallucination-detect.js +350 -0
  654. package/dist/commands/hallucination-score.d.ts +8 -0
  655. package/dist/commands/hallucination-score.js +316 -0
  656. package/dist/commands/help.d.ts +7 -0
  657. package/dist/commands/help.js +302 -0
  658. package/dist/commands/hook-install.d.ts +21 -0
  659. package/dist/commands/hook-install.js +142 -0
  660. package/dist/commands/hook.d.ts +8 -0
  661. package/dist/commands/hook.js +145 -0
  662. package/dist/commands/iac-lint.d.ts +7 -0
  663. package/dist/commands/iac-lint.js +312 -0
  664. package/dist/commands/idempotency-audit.d.ts +4 -0
  665. package/dist/commands/idempotency-audit.js +222 -0
  666. package/dist/commands/ignore-list.d.ts +18 -0
  667. package/dist/commands/ignore-list.js +152 -0
  668. package/dist/commands/impact-scan.d.ts +8 -0
  669. package/dist/commands/impact-scan.js +281 -0
  670. package/dist/commands/incident-response.d.ts +7 -0
  671. package/dist/commands/incident-response.js +254 -0
  672. package/dist/commands/incremental-review.d.ts +4 -0
  673. package/dist/commands/incremental-review.js +236 -0
  674. package/dist/commands/init.d.ts +10 -0
  675. package/dist/commands/init.js +265 -0
  676. package/dist/commands/input-guard.d.ts +4 -0
  677. package/dist/commands/input-guard.js +255 -0
  678. package/dist/commands/interactive-fix.d.ts +22 -0
  679. package/dist/commands/interactive-fix.js +139 -0
  680. package/dist/commands/judge-author.d.ts +7 -0
  681. package/dist/commands/judge-author.js +260 -0
  682. package/dist/commands/judge-config.d.ts +4 -0
  683. package/dist/commands/judge-config.js +151 -0
  684. package/dist/commands/judge-learn.d.ts +8 -0
  685. package/dist/commands/judge-learn.js +217 -0
  686. package/dist/commands/judge-reputation.d.ts +28 -0
  687. package/dist/commands/judge-reputation.js +198 -0
  688. package/dist/commands/kb.d.ts +40 -0
  689. package/dist/commands/kb.js +228 -0
  690. package/dist/commands/language-packs.d.ts +42 -0
  691. package/dist/commands/language-packs.js +150 -0
  692. package/dist/commands/learn.d.ts +26 -0
  693. package/dist/commands/learn.js +288 -0
  694. package/dist/commands/learning-path.d.ts +8 -0
  695. package/dist/commands/learning-path.js +325 -0
  696. package/dist/commands/license-scan.d.ts +8 -0
  697. package/dist/commands/license-scan.js +183 -0
  698. package/dist/commands/llm-benchmark-optimizer.d.ts +78 -0
  699. package/dist/commands/llm-benchmark-optimizer.js +241 -0
  700. package/dist/commands/llm-benchmark.d.ts +156 -0
  701. package/dist/commands/llm-benchmark.js +670 -0
  702. package/dist/commands/log-quality.d.ts +5 -0
  703. package/dist/commands/log-quality.js +211 -0
  704. package/dist/commands/logic-lint.d.ts +4 -0
  705. package/dist/commands/logic-lint.js +255 -0
  706. package/dist/commands/lsp.d.ts +23 -0
  707. package/dist/commands/lsp.js +285 -0
  708. package/dist/commands/merge-verdict.d.ts +4 -0
  709. package/dist/commands/merge-verdict.js +287 -0
  710. package/dist/commands/metrics-dashboard.d.ts +21 -0
  711. package/dist/commands/metrics-dashboard.js +334 -0
  712. package/dist/commands/metrics.d.ts +57 -0
  713. package/dist/commands/metrics.js +241 -0
  714. package/dist/commands/migration-safety.d.ts +5 -0
  715. package/dist/commands/migration-safety.js +256 -0
  716. package/dist/commands/model-report.d.ts +8 -0
  717. package/dist/commands/model-report.js +194 -0
  718. package/dist/commands/model-risk.d.ts +27 -0
  719. package/dist/commands/model-risk.js +220 -0
  720. package/dist/commands/monorepo.d.ts +37 -0
  721. package/dist/commands/monorepo.js +232 -0
  722. package/dist/commands/multi-lang-review.d.ts +4 -0
  723. package/dist/commands/multi-lang-review.js +230 -0
  724. package/dist/commands/noise-advisor.d.ts +29 -0
  725. package/dist/commands/noise-advisor.js +170 -0
  726. package/dist/commands/notify.d.ts +78 -0
  727. package/dist/commands/notify.js +324 -0
  728. package/dist/commands/null-safety-audit.d.ts +5 -0
  729. package/dist/commands/null-safety-audit.js +221 -0
  730. package/dist/commands/observability-gap.d.ts +5 -0
  731. package/dist/commands/observability-gap.js +211 -0
  732. package/dist/commands/onboard.d.ts +12 -0
  733. package/dist/commands/onboard.js +178 -0
  734. package/dist/commands/org-metrics.d.ts +23 -0
  735. package/dist/commands/org-metrics.js +237 -0
  736. package/dist/commands/org-policy.d.ts +7 -0
  737. package/dist/commands/org-policy.js +207 -0
  738. package/dist/commands/over-abstraction.d.ts +4 -0
  739. package/dist/commands/over-abstraction.js +307 -0
  740. package/dist/commands/override.d.ts +61 -0
  741. package/dist/commands/override.js +268 -0
  742. package/dist/commands/ownership-map.d.ts +5 -0
  743. package/dist/commands/ownership-map.js +217 -0
  744. package/dist/commands/parity.d.ts +30 -0
  745. package/dist/commands/parity.js +212 -0
  746. package/dist/commands/pattern-registry.d.ts +22 -0
  747. package/dist/commands/pattern-registry.js +226 -0
  748. package/dist/commands/perf-compare.d.ts +8 -0
  749. package/dist/commands/perf-compare.js +245 -0
  750. package/dist/commands/perf-hotspot.d.ts +7 -0
  751. package/dist/commands/perf-hotspot.js +273 -0
  752. package/dist/commands/phantom-import.d.ts +4 -0
  753. package/dist/commands/phantom-import.js +260 -0
  754. package/dist/commands/pii-scan.d.ts +7 -0
  755. package/dist/commands/pii-scan.js +299 -0
  756. package/dist/commands/plugin-search.d.ts +39 -0
  757. package/dist/commands/plugin-search.js +327 -0
  758. package/dist/commands/plugins.d.ts +12 -0
  759. package/dist/commands/plugins.js +104 -0
  760. package/dist/commands/policy-audit.d.ts +52 -0
  761. package/dist/commands/policy-audit.js +160 -0
  762. package/dist/commands/pr-quality-gate.d.ts +28 -0
  763. package/dist/commands/pr-quality-gate.js +207 -0
  764. package/dist/commands/pr-summary.d.ts +25 -0
  765. package/dist/commands/pr-summary.js +187 -0
  766. package/dist/commands/predict.d.ts +7 -0
  767. package/dist/commands/predict.js +218 -0
  768. package/dist/commands/privilege-path.d.ts +4 -0
  769. package/dist/commands/privilege-path.js +233 -0
  770. package/dist/commands/profile.d.ts +37 -0
  771. package/dist/commands/profile.js +101 -0
  772. package/dist/commands/prompt-replay.d.ts +7 -0
  773. package/dist/commands/prompt-replay.js +176 -0
  774. package/dist/commands/quality-gate.d.ts +69 -0
  775. package/dist/commands/quality-gate.js +252 -0
  776. package/dist/commands/query.d.ts +19 -0
  777. package/dist/commands/query.js +229 -0
  778. package/dist/commands/quick-check.d.ts +4 -0
  779. package/dist/commands/quick-check.js +173 -0
  780. package/dist/commands/recommend.d.ts +20 -0
  781. package/dist/commands/recommend.js +282 -0
  782. package/dist/commands/refactor-safety.d.ts +8 -0
  783. package/dist/commands/refactor-safety.js +273 -0
  784. package/dist/commands/reg-watch.d.ts +20 -0
  785. package/dist/commands/reg-watch.js +219 -0
  786. package/dist/commands/regression-alert.d.ts +31 -0
  787. package/dist/commands/regression-alert.js +215 -0
  788. package/dist/commands/remediation-lib.d.ts +8 -0
  789. package/dist/commands/remediation-lib.js +265 -0
  790. package/dist/commands/remediation.d.ts +20 -0
  791. package/dist/commands/remediation.js +256 -0
  792. package/dist/commands/report-template.d.ts +16 -0
  793. package/dist/commands/report-template.js +290 -0
  794. package/dist/commands/report.d.ts +12 -0
  795. package/dist/commands/report.js +139 -0
  796. package/dist/commands/resource-cleanup.d.ts +6 -0
  797. package/dist/commands/resource-cleanup.js +235 -0
  798. package/dist/commands/retro.d.ts +22 -0
  799. package/dist/commands/retro.js +211 -0
  800. package/dist/commands/retry-pattern-audit.d.ts +5 -0
  801. package/dist/commands/retry-pattern-audit.js +215 -0
  802. package/dist/commands/review-ab-test.d.ts +4 -0
  803. package/dist/commands/review-ab-test.js +224 -0
  804. package/dist/commands/review-access-log.d.ts +4 -0
  805. package/dist/commands/review-access-log.js +65 -0
  806. package/dist/commands/review-action-item-gen.d.ts +1 -0
  807. package/dist/commands/review-action-item-gen.js +72 -0
  808. package/dist/commands/review-adoption-metrics.d.ts +4 -0
  809. package/dist/commands/review-adoption-metrics.js +95 -0
  810. package/dist/commands/review-adoption-score.d.ts +1 -0
  811. package/dist/commands/review-adoption-score.js +181 -0
  812. package/dist/commands/review-ai-feedback-loop.d.ts +1 -0
  813. package/dist/commands/review-ai-feedback-loop.js +116 -0
  814. package/dist/commands/review-annotate.d.ts +4 -0
  815. package/dist/commands/review-annotate.js +122 -0
  816. package/dist/commands/review-annotation-export.d.ts +4 -0
  817. package/dist/commands/review-annotation-export.js +105 -0
  818. package/dist/commands/review-annotation.d.ts +4 -0
  819. package/dist/commands/review-annotation.js +133 -0
  820. package/dist/commands/review-api-export.d.ts +4 -0
  821. package/dist/commands/review-api-export.js +98 -0
  822. package/dist/commands/review-approval-criteria.d.ts +1 -0
  823. package/dist/commands/review-approval-criteria.js +99 -0
  824. package/dist/commands/review-approval-gate.d.ts +7 -0
  825. package/dist/commands/review-approval-gate.js +190 -0
  826. package/dist/commands/review-approval.d.ts +4 -0
  827. package/dist/commands/review-approval.js +133 -0
  828. package/dist/commands/review-archive-search.d.ts +4 -0
  829. package/dist/commands/review-archive-search.js +70 -0
  830. package/dist/commands/review-archive.d.ts +4 -0
  831. package/dist/commands/review-archive.js +135 -0
  832. package/dist/commands/review-audit-export.d.ts +4 -0
  833. package/dist/commands/review-audit-export.js +93 -0
  834. package/dist/commands/review-audit-log.d.ts +4 -0
  835. package/dist/commands/review-audit-log.js +140 -0
  836. package/dist/commands/review-audit-trail.d.ts +4 -0
  837. package/dist/commands/review-audit-trail.js +96 -0
  838. package/dist/commands/review-auto-merge.d.ts +4 -0
  839. package/dist/commands/review-auto-merge.js +175 -0
  840. package/dist/commands/review-badge.d.ts +4 -0
  841. package/dist/commands/review-badge.js +152 -0
  842. package/dist/commands/review-batch-files.d.ts +4 -0
  843. package/dist/commands/review-batch-files.js +82 -0
  844. package/dist/commands/review-batch-mode.d.ts +4 -0
  845. package/dist/commands/review-batch-mode.js +97 -0
  846. package/dist/commands/review-batch-run.d.ts +4 -0
  847. package/dist/commands/review-batch-run.js +149 -0
  848. package/dist/commands/review-benchmark-self.d.ts +4 -0
  849. package/dist/commands/review-benchmark-self.js +140 -0
  850. package/dist/commands/review-blame-map.d.ts +4 -0
  851. package/dist/commands/review-blame-map.js +100 -0
  852. package/dist/commands/review-branch-compare.d.ts +4 -0
  853. package/dist/commands/review-branch-compare.js +108 -0
  854. package/dist/commands/review-branch-policy.d.ts +4 -0
  855. package/dist/commands/review-branch-policy.js +102 -0
  856. package/dist/commands/review-bulk-action.d.ts +4 -0
  857. package/dist/commands/review-bulk-action.js +109 -0
  858. package/dist/commands/review-bulk-apply.d.ts +4 -0
  859. package/dist/commands/review-bulk-apply.js +102 -0
  860. package/dist/commands/review-cache-clear.d.ts +4 -0
  861. package/dist/commands/review-cache-clear.js +160 -0
  862. package/dist/commands/review-cache-warm.d.ts +4 -0
  863. package/dist/commands/review-cache-warm.js +70 -0
  864. package/dist/commands/review-cache.d.ts +22 -0
  865. package/dist/commands/review-cache.js +134 -0
  866. package/dist/commands/review-changelog-entry.d.ts +7 -0
  867. package/dist/commands/review-changelog-entry.js +109 -0
  868. package/dist/commands/review-changelog-gen.d.ts +4 -0
  869. package/dist/commands/review-changelog-gen.js +117 -0
  870. package/dist/commands/review-changelog-impact.d.ts +1 -0
  871. package/dist/commands/review-changelog-impact.js +89 -0
  872. package/dist/commands/review-checklist.d.ts +4 -0
  873. package/dist/commands/review-checklist.js +144 -0
  874. package/dist/commands/review-checkpoint.d.ts +4 -0
  875. package/dist/commands/review-checkpoint.js +163 -0
  876. package/dist/commands/review-ci-gate.d.ts +4 -0
  877. package/dist/commands/review-ci-gate.js +114 -0
  878. package/dist/commands/review-ci-insight.d.ts +1 -0
  879. package/dist/commands/review-ci-insight.js +100 -0
  880. package/dist/commands/review-ci-integration.d.ts +4 -0
  881. package/dist/commands/review-ci-integration.js +125 -0
  882. package/dist/commands/review-ci-status.d.ts +4 -0
  883. package/dist/commands/review-ci-status.js +200 -0
  884. package/dist/commands/review-cicd-integrate.d.ts +4 -0
  885. package/dist/commands/review-cicd-integrate.js +122 -0
  886. package/dist/commands/review-code-health-score.d.ts +1 -0
  887. package/dist/commands/review-code-health-score.js +100 -0
  888. package/dist/commands/review-code-owner.d.ts +7 -0
  889. package/dist/commands/review-code-owner.js +164 -0
  890. package/dist/commands/review-code-ownership.d.ts +1 -0
  891. package/dist/commands/review-code-ownership.js +88 -0
  892. package/dist/commands/review-comment.d.ts +4 -0
  893. package/dist/commands/review-comment.js +165 -0
  894. package/dist/commands/review-commit-hook.d.ts +7 -0
  895. package/dist/commands/review-commit-hook.js +134 -0
  896. package/dist/commands/review-commit-quality.d.ts +1 -0
  897. package/dist/commands/review-commit-quality.js +94 -0
  898. package/dist/commands/review-comparative.d.ts +4 -0
  899. package/dist/commands/review-comparative.js +149 -0
  900. package/dist/commands/review-compare-version.d.ts +4 -0
  901. package/dist/commands/review-compare-version.js +108 -0
  902. package/dist/commands/review-compare.d.ts +4 -0
  903. package/dist/commands/review-compare.js +200 -0
  904. package/dist/commands/review-compliance-check.d.ts +4 -0
  905. package/dist/commands/review-compliance-check.js +202 -0
  906. package/dist/commands/review-compliance-gate.d.ts +4 -0
  907. package/dist/commands/review-compliance-gate.js +151 -0
  908. package/dist/commands/review-compliance-map.d.ts +4 -0
  909. package/dist/commands/review-compliance-map.js +110 -0
  910. package/dist/commands/review-compliance-report.d.ts +4 -0
  911. package/dist/commands/review-compliance-report.js +127 -0
  912. package/dist/commands/review-confidence-explain.d.ts +1 -0
  913. package/dist/commands/review-confidence-explain.js +99 -0
  914. package/dist/commands/review-config-diff.d.ts +4 -0
  915. package/dist/commands/review-config-diff.js +108 -0
  916. package/dist/commands/review-config-export.d.ts +4 -0
  917. package/dist/commands/review-config-export.js +124 -0
  918. package/dist/commands/review-config-health.d.ts +1 -0
  919. package/dist/commands/review-config-health.js +172 -0
  920. package/dist/commands/review-config-migrate.d.ts +4 -0
  921. package/dist/commands/review-config-migrate.js +123 -0
  922. package/dist/commands/review-config-template.d.ts +4 -0
  923. package/dist/commands/review-config-template.js +112 -0
  924. package/dist/commands/review-config-validate.d.ts +4 -0
  925. package/dist/commands/review-config-validate.js +110 -0
  926. package/dist/commands/review-contract.d.ts +4 -0
  927. package/dist/commands/review-contract.js +199 -0
  928. package/dist/commands/review-coverage-gap.d.ts +4 -0
  929. package/dist/commands/review-coverage-gap.js +120 -0
  930. package/dist/commands/review-coverage-map.d.ts +4 -0
  931. package/dist/commands/review-coverage-map.js +194 -0
  932. package/dist/commands/review-custom-judge-config.d.ts +4 -0
  933. package/dist/commands/review-custom-judge-config.js +103 -0
  934. package/dist/commands/review-custom-judge.d.ts +4 -0
  935. package/dist/commands/review-custom-judge.js +182 -0
  936. package/dist/commands/review-custom-prompt.d.ts +4 -0
  937. package/dist/commands/review-custom-prompt.js +170 -0
  938. package/dist/commands/review-custom-rule.d.ts +4 -0
  939. package/dist/commands/review-custom-rule.js +169 -0
  940. package/dist/commands/review-dashboard-data.d.ts +4 -0
  941. package/dist/commands/review-dashboard-data.js +142 -0
  942. package/dist/commands/review-dashboard.d.ts +4 -0
  943. package/dist/commands/review-dashboard.js +140 -0
  944. package/dist/commands/review-data-retention.d.ts +4 -0
  945. package/dist/commands/review-data-retention.js +119 -0
  946. package/dist/commands/review-dependency-graph.d.ts +4 -0
  947. package/dist/commands/review-dependency-graph.js +94 -0
  948. package/dist/commands/review-dependency-review.d.ts +1 -0
  949. package/dist/commands/review-dependency-review.js +104 -0
  950. package/dist/commands/review-deployment-gate.d.ts +4 -0
  951. package/dist/commands/review-deployment-gate.js +94 -0
  952. package/dist/commands/review-depth.d.ts +4 -0
  953. package/dist/commands/review-depth.js +142 -0
  954. package/dist/commands/review-diff-annotate.d.ts +4 -0
  955. package/dist/commands/review-diff-annotate.js +104 -0
  956. package/dist/commands/review-diff-context.d.ts +4 -0
  957. package/dist/commands/review-diff-context.js +158 -0
  958. package/dist/commands/review-diff-highlight.d.ts +4 -0
  959. package/dist/commands/review-diff-highlight.js +179 -0
  960. package/dist/commands/review-diff-stats.d.ts +4 -0
  961. package/dist/commands/review-diff-stats.js +90 -0
  962. package/dist/commands/review-diff-summary.d.ts +4 -0
  963. package/dist/commands/review-diff-summary.js +154 -0
  964. package/dist/commands/review-digest-gen.d.ts +1 -0
  965. package/dist/commands/review-digest-gen.js +100 -0
  966. package/dist/commands/review-digest.d.ts +4 -0
  967. package/dist/commands/review-digest.js +265 -0
  968. package/dist/commands/review-dry-run.d.ts +4 -0
  969. package/dist/commands/review-dry-run.js +120 -0
  970. package/dist/commands/review-engagement-score.d.ts +1 -0
  971. package/dist/commands/review-engagement-score.js +111 -0
  972. package/dist/commands/review-env-check.d.ts +4 -0
  973. package/dist/commands/review-env-check.js +115 -0
  974. package/dist/commands/review-environment-config.d.ts +4 -0
  975. package/dist/commands/review-environment-config.js +102 -0
  976. package/dist/commands/review-escalation-path.d.ts +1 -0
  977. package/dist/commands/review-escalation-path.js +86 -0
  978. package/dist/commands/review-exclude-vendor.d.ts +4 -0
  979. package/dist/commands/review-exclude-vendor.js +158 -0
  980. package/dist/commands/review-explain.d.ts +5 -0
  981. package/dist/commands/review-explain.js +194 -0
  982. package/dist/commands/review-export-pdf.d.ts +7 -0
  983. package/dist/commands/review-export-pdf.js +131 -0
  984. package/dist/commands/review-export.d.ts +4 -0
  985. package/dist/commands/review-export.js +179 -0
  986. package/dist/commands/review-feedback-loop.d.ts +4 -0
  987. package/dist/commands/review-feedback-loop.js +113 -0
  988. package/dist/commands/review-feedback-summary.d.ts +1 -0
  989. package/dist/commands/review-feedback-summary.js +130 -0
  990. package/dist/commands/review-feedback.d.ts +4 -0
  991. package/dist/commands/review-feedback.js +145 -0
  992. package/dist/commands/review-file-complexity.d.ts +4 -0
  993. package/dist/commands/review-file-complexity.js +137 -0
  994. package/dist/commands/review-file-filter.d.ts +4 -0
  995. package/dist/commands/review-file-filter.js +121 -0
  996. package/dist/commands/review-file-stats.d.ts +4 -0
  997. package/dist/commands/review-file-stats.js +130 -0
  998. package/dist/commands/review-filter.d.ts +4 -0
  999. package/dist/commands/review-filter.js +161 -0
  1000. package/dist/commands/review-finding-link.d.ts +7 -0
  1001. package/dist/commands/review-finding-link.js +115 -0
  1002. package/dist/commands/review-focus-area.d.ts +1 -0
  1003. package/dist/commands/review-focus-area.js +96 -0
  1004. package/dist/commands/review-focus.d.ts +4 -0
  1005. package/dist/commands/review-focus.js +196 -0
  1006. package/dist/commands/review-gate-config.d.ts +4 -0
  1007. package/dist/commands/review-gate-config.js +153 -0
  1008. package/dist/commands/review-gate.d.ts +4 -0
  1009. package/dist/commands/review-gate.js +212 -0
  1010. package/dist/commands/review-goal-track.d.ts +1 -0
  1011. package/dist/commands/review-goal-track.js +123 -0
  1012. package/dist/commands/review-guardrail.d.ts +4 -0
  1013. package/dist/commands/review-guardrail.js +155 -0
  1014. package/dist/commands/review-handoff.d.ts +4 -0
  1015. package/dist/commands/review-handoff.js +208 -0
  1016. package/dist/commands/review-health-check.d.ts +4 -0
  1017. package/dist/commands/review-health-check.js +148 -0
  1018. package/dist/commands/review-health-trend.d.ts +1 -0
  1019. package/dist/commands/review-health-trend.js +107 -0
  1020. package/dist/commands/review-history-compare.d.ts +4 -0
  1021. package/dist/commands/review-history-compare.js +93 -0
  1022. package/dist/commands/review-history-search.d.ts +4 -0
  1023. package/dist/commands/review-history-search.js +214 -0
  1024. package/dist/commands/review-ide-sync.d.ts +4 -0
  1025. package/dist/commands/review-ide-sync.js +91 -0
  1026. package/dist/commands/review-ignore-path.d.ts +4 -0
  1027. package/dist/commands/review-ignore-path.js +147 -0
  1028. package/dist/commands/review-ignore-pattern.d.ts +5 -0
  1029. package/dist/commands/review-ignore-pattern.js +138 -0
  1030. package/dist/commands/review-incident-link.d.ts +4 -0
  1031. package/dist/commands/review-incident-link.js +93 -0
  1032. package/dist/commands/review-incremental.d.ts +4 -0
  1033. package/dist/commands/review-incremental.js +128 -0
  1034. package/dist/commands/review-integration-health.d.ts +4 -0
  1035. package/dist/commands/review-integration-health.js +84 -0
  1036. package/dist/commands/review-integration-test.d.ts +4 -0
  1037. package/dist/commands/review-integration-test.js +145 -0
  1038. package/dist/commands/review-integration.d.ts +4 -0
  1039. package/dist/commands/review-integration.js +236 -0
  1040. package/dist/commands/review-interactive.d.ts +4 -0
  1041. package/dist/commands/review-interactive.js +85 -0
  1042. package/dist/commands/review-knowledge-capture.d.ts +1 -0
  1043. package/dist/commands/review-knowledge-capture.js +94 -0
  1044. package/dist/commands/review-language-profile.d.ts +4 -0
  1045. package/dist/commands/review-language-profile.js +72 -0
  1046. package/dist/commands/review-language-stats.d.ts +4 -0
  1047. package/dist/commands/review-language-stats.js +152 -0
  1048. package/dist/commands/review-lock-file.d.ts +4 -0
  1049. package/dist/commands/review-lock-file.js +153 -0
  1050. package/dist/commands/review-lock.d.ts +4 -0
  1051. package/dist/commands/review-lock.js +107 -0
  1052. package/dist/commands/review-log.d.ts +22 -0
  1053. package/dist/commands/review-log.js +164 -0
  1054. package/dist/commands/review-mentor-suggest.d.ts +1 -0
  1055. package/dist/commands/review-mentor-suggest.js +112 -0
  1056. package/dist/commands/review-merge-check.d.ts +4 -0
  1057. package/dist/commands/review-merge-check.js +101 -0
  1058. package/dist/commands/review-merge-config.d.ts +4 -0
  1059. package/dist/commands/review-merge-config.js +119 -0
  1060. package/dist/commands/review-merge-readiness.d.ts +1 -0
  1061. package/dist/commands/review-merge-readiness.js +90 -0
  1062. package/dist/commands/review-merge-request.d.ts +4 -0
  1063. package/dist/commands/review-merge-request.js +95 -0
  1064. package/dist/commands/review-merge.d.ts +4 -0
  1065. package/dist/commands/review-merge.js +145 -0
  1066. package/dist/commands/review-metric-export.d.ts +4 -0
  1067. package/dist/commands/review-metric-export.js +62 -0
  1068. package/dist/commands/review-milestone.d.ts +4 -0
  1069. package/dist/commands/review-milestone.js +136 -0
  1070. package/dist/commands/review-multi-repo-sync.d.ts +4 -0
  1071. package/dist/commands/review-multi-repo-sync.js +115 -0
  1072. package/dist/commands/review-multi-repo.d.ts +4 -0
  1073. package/dist/commands/review-multi-repo.js +145 -0
  1074. package/dist/commands/review-note.d.ts +4 -0
  1075. package/dist/commands/review-note.js +104 -0
  1076. package/dist/commands/review-notification-config.d.ts +4 -0
  1077. package/dist/commands/review-notification-config.js +122 -0
  1078. package/dist/commands/review-notification-digest.d.ts +4 -0
  1079. package/dist/commands/review-notification-digest.js +64 -0
  1080. package/dist/commands/review-notification.d.ts +4 -0
  1081. package/dist/commands/review-notification.js +126 -0
  1082. package/dist/commands/review-notify.d.ts +4 -0
  1083. package/dist/commands/review-notify.js +143 -0
  1084. package/dist/commands/review-offline.d.ts +4 -0
  1085. package/dist/commands/review-offline.js +125 -0
  1086. package/dist/commands/review-onboard-checklist.d.ts +4 -0
  1087. package/dist/commands/review-onboard-checklist.js +119 -0
  1088. package/dist/commands/review-onboard-wizard.d.ts +4 -0
  1089. package/dist/commands/review-onboard-wizard.js +92 -0
  1090. package/dist/commands/review-onboard.d.ts +4 -0
  1091. package/dist/commands/review-onboard.js +154 -0
  1092. package/dist/commands/review-onboarding-check.d.ts +1 -0
  1093. package/dist/commands/review-onboarding-check.js +93 -0
  1094. package/dist/commands/review-org-dashboard.d.ts +4 -0
  1095. package/dist/commands/review-org-dashboard.js +68 -0
  1096. package/dist/commands/review-output-filter.d.ts +4 -0
  1097. package/dist/commands/review-output-filter.js +112 -0
  1098. package/dist/commands/review-output-format.d.ts +4 -0
  1099. package/dist/commands/review-output-format.js +144 -0
  1100. package/dist/commands/review-output-transform.d.ts +4 -0
  1101. package/dist/commands/review-output-transform.js +119 -0
  1102. package/dist/commands/review-owner.d.ts +4 -0
  1103. package/dist/commands/review-owner.js +129 -0
  1104. package/dist/commands/review-parallel-diff.d.ts +4 -0
  1105. package/dist/commands/review-parallel-diff.js +146 -0
  1106. package/dist/commands/review-parallel-files.d.ts +7 -0
  1107. package/dist/commands/review-parallel-files.js +134 -0
  1108. package/dist/commands/review-parallel-run.d.ts +4 -0
  1109. package/dist/commands/review-parallel-run.js +116 -0
  1110. package/dist/commands/review-parallel.d.ts +4 -0
  1111. package/dist/commands/review-parallel.js +164 -0
  1112. package/dist/commands/review-perf-profile.d.ts +4 -0
  1113. package/dist/commands/review-perf-profile.js +98 -0
  1114. package/dist/commands/review-permission-model.d.ts +4 -0
  1115. package/dist/commands/review-permission-model.js +149 -0
  1116. package/dist/commands/review-pipeline-status.d.ts +4 -0
  1117. package/dist/commands/review-pipeline-status.js +54 -0
  1118. package/dist/commands/review-plugin-config.d.ts +4 -0
  1119. package/dist/commands/review-plugin-config.js +167 -0
  1120. package/dist/commands/review-plugin-list.d.ts +4 -0
  1121. package/dist/commands/review-plugin-list.js +99 -0
  1122. package/dist/commands/review-plugin-manage.d.ts +4 -0
  1123. package/dist/commands/review-plugin-manage.js +137 -0
  1124. package/dist/commands/review-plugin-status.d.ts +4 -0
  1125. package/dist/commands/review-plugin-status.js +53 -0
  1126. package/dist/commands/review-policy-enforce.d.ts +1 -0
  1127. package/dist/commands/review-policy-enforce.js +92 -0
  1128. package/dist/commands/review-policy-engine.d.ts +4 -0
  1129. package/dist/commands/review-policy-engine.js +135 -0
  1130. package/dist/commands/review-pr-comment-gen.d.ts +4 -0
  1131. package/dist/commands/review-pr-comment-gen.js +62 -0
  1132. package/dist/commands/review-pr-comment.d.ts +4 -0
  1133. package/dist/commands/review-pr-comment.js +106 -0
  1134. package/dist/commands/review-pr-label-suggest.d.ts +1 -0
  1135. package/dist/commands/review-pr-label-suggest.js +77 -0
  1136. package/dist/commands/review-pr-size-check.d.ts +1 -0
  1137. package/dist/commands/review-pr-size-check.js +98 -0
  1138. package/dist/commands/review-pr-template.d.ts +4 -0
  1139. package/dist/commands/review-pr-template.js +104 -0
  1140. package/dist/commands/review-preset-save.d.ts +4 -0
  1141. package/dist/commands/review-preset-save.js +159 -0
  1142. package/dist/commands/review-priority.d.ts +4 -0
  1143. package/dist/commands/review-priority.js +157 -0
  1144. package/dist/commands/review-profile.d.ts +4 -0
  1145. package/dist/commands/review-profile.js +168 -0
  1146. package/dist/commands/review-progress-bar.d.ts +4 -0
  1147. package/dist/commands/review-progress-bar.js +157 -0
  1148. package/dist/commands/review-progress-report.d.ts +1 -0
  1149. package/dist/commands/review-progress-report.js +95 -0
  1150. package/dist/commands/review-progress-track.d.ts +4 -0
  1151. package/dist/commands/review-progress-track.js +94 -0
  1152. package/dist/commands/review-quality-baseline.d.ts +1 -0
  1153. package/dist/commands/review-quality-baseline.js +134 -0
  1154. package/dist/commands/review-quality-gate.d.ts +1 -0
  1155. package/dist/commands/review-quality-gate.js +86 -0
  1156. package/dist/commands/review-quality-score.d.ts +4 -0
  1157. package/dist/commands/review-quality-score.js +127 -0
  1158. package/dist/commands/review-quality-trend.d.ts +4 -0
  1159. package/dist/commands/review-quality-trend.js +57 -0
  1160. package/dist/commands/review-queue.d.ts +33 -0
  1161. package/dist/commands/review-queue.js +225 -0
  1162. package/dist/commands/review-quickstart.d.ts +4 -0
  1163. package/dist/commands/review-quickstart.js +107 -0
  1164. package/dist/commands/review-quota-check.d.ts +4 -0
  1165. package/dist/commands/review-quota-check.js +97 -0
  1166. package/dist/commands/review-quota.d.ts +4 -0
  1167. package/dist/commands/review-quota.js +126 -0
  1168. package/dist/commands/review-rate-limit.d.ts +4 -0
  1169. package/dist/commands/review-rate-limit.js +130 -0
  1170. package/dist/commands/review-readiness-check.d.ts +1 -0
  1171. package/dist/commands/review-readiness-check.js +98 -0
  1172. package/dist/commands/review-receipt.d.ts +4 -0
  1173. package/dist/commands/review-receipt.js +220 -0
  1174. package/dist/commands/review-release-gate.d.ts +1 -0
  1175. package/dist/commands/review-release-gate.js +81 -0
  1176. package/dist/commands/review-replay.d.ts +8 -0
  1177. package/dist/commands/review-replay.js +264 -0
  1178. package/dist/commands/review-repo-onboard.d.ts +4 -0
  1179. package/dist/commands/review-repo-onboard.js +114 -0
  1180. package/dist/commands/review-report-archive.d.ts +4 -0
  1181. package/dist/commands/review-report-archive.js +100 -0
  1182. package/dist/commands/review-report-merge.d.ts +4 -0
  1183. package/dist/commands/review-report-merge.js +90 -0
  1184. package/dist/commands/review-report-pdf.d.ts +4 -0
  1185. package/dist/commands/review-report-pdf.js +163 -0
  1186. package/dist/commands/review-report-schedule.d.ts +4 -0
  1187. package/dist/commands/review-report-schedule.js +96 -0
  1188. package/dist/commands/review-retrospective.d.ts +1 -0
  1189. package/dist/commands/review-retrospective.js +118 -0
  1190. package/dist/commands/review-retry.d.ts +4 -0
  1191. package/dist/commands/review-retry.js +91 -0
  1192. package/dist/commands/review-review-cadence.d.ts +1 -0
  1193. package/dist/commands/review-review-cadence.js +85 -0
  1194. package/dist/commands/review-review-comments.d.ts +4 -0
  1195. package/dist/commands/review-review-comments.js +84 -0
  1196. package/dist/commands/review-reviewer-match.d.ts +1 -0
  1197. package/dist/commands/review-reviewer-match.js +108 -0
  1198. package/dist/commands/review-risk-matrix.d.ts +1 -0
  1199. package/dist/commands/review-risk-matrix.js +96 -0
  1200. package/dist/commands/review-risk-score.d.ts +4 -0
  1201. package/dist/commands/review-risk-score.js +156 -0
  1202. package/dist/commands/review-role-assignment.d.ts +4 -0
  1203. package/dist/commands/review-role-assignment.js +98 -0
  1204. package/dist/commands/review-rollback.d.ts +4 -0
  1205. package/dist/commands/review-rollback.js +171 -0
  1206. package/dist/commands/review-rollout-plan.d.ts +4 -0
  1207. package/dist/commands/review-rollout-plan.js +123 -0
  1208. package/dist/commands/review-rule-filter.d.ts +4 -0
  1209. package/dist/commands/review-rule-filter.js +116 -0
  1210. package/dist/commands/review-rule-stats.d.ts +4 -0
  1211. package/dist/commands/review-rule-stats.js +161 -0
  1212. package/dist/commands/review-sandbox.d.ts +4 -0
  1213. package/dist/commands/review-sandbox.js +191 -0
  1214. package/dist/commands/review-schedule.d.ts +4 -0
  1215. package/dist/commands/review-schedule.js +169 -0
  1216. package/dist/commands/review-scope-limit.d.ts +4 -0
  1217. package/dist/commands/review-scope-limit.js +100 -0
  1218. package/dist/commands/review-scope-lock.d.ts +7 -0
  1219. package/dist/commands/review-scope-lock.js +138 -0
  1220. package/dist/commands/review-scope-select.d.ts +4 -0
  1221. package/dist/commands/review-scope-select.js +98 -0
  1222. package/dist/commands/review-scope-suggest.d.ts +1 -0
  1223. package/dist/commands/review-scope-suggest.js +112 -0
  1224. package/dist/commands/review-scope.d.ts +4 -0
  1225. package/dist/commands/review-scope.js +197 -0
  1226. package/dist/commands/review-score-history.d.ts +4 -0
  1227. package/dist/commands/review-score-history.js +137 -0
  1228. package/dist/commands/review-security-posture.d.ts +1 -0
  1229. package/dist/commands/review-security-posture.js +105 -0
  1230. package/dist/commands/review-session-replay.d.ts +4 -0
  1231. package/dist/commands/review-session-replay.js +81 -0
  1232. package/dist/commands/review-session-save.d.ts +4 -0
  1233. package/dist/commands/review-session-save.js +173 -0
  1234. package/dist/commands/review-session.d.ts +4 -0
  1235. package/dist/commands/review-session.js +150 -0
  1236. package/dist/commands/review-skip-list.d.ts +4 -0
  1237. package/dist/commands/review-skip-list.js +135 -0
  1238. package/dist/commands/review-skip-rule.d.ts +4 -0
  1239. package/dist/commands/review-skip-rule.js +105 -0
  1240. package/dist/commands/review-sla-config.d.ts +4 -0
  1241. package/dist/commands/review-sla-config.js +88 -0
  1242. package/dist/commands/review-slack-format.d.ts +4 -0
  1243. package/dist/commands/review-slack-format.js +113 -0
  1244. package/dist/commands/review-snapshot-diff.d.ts +4 -0
  1245. package/dist/commands/review-snapshot-diff.js +100 -0
  1246. package/dist/commands/review-sprint-plan.d.ts +1 -0
  1247. package/dist/commands/review-sprint-plan.js +79 -0
  1248. package/dist/commands/review-stakeholder-notify.d.ts +1 -0
  1249. package/dist/commands/review-stakeholder-notify.js +134 -0
  1250. package/dist/commands/review-stakeholder-report.d.ts +4 -0
  1251. package/dist/commands/review-stakeholder-report.js +75 -0
  1252. package/dist/commands/review-stale-finding-clean.d.ts +1 -0
  1253. package/dist/commands/review-stale-finding-clean.js +81 -0
  1254. package/dist/commands/review-standup.d.ts +4 -0
  1255. package/dist/commands/review-standup.js +95 -0
  1256. package/dist/commands/review-stats.d.ts +4 -0
  1257. package/dist/commands/review-stats.js +175 -0
  1258. package/dist/commands/review-status-badge.d.ts +4 -0
  1259. package/dist/commands/review-status-badge.js +120 -0
  1260. package/dist/commands/review-streak.d.ts +4 -0
  1261. package/dist/commands/review-streak.js +150 -0
  1262. package/dist/commands/review-summary-dashboard.d.ts +4 -0
  1263. package/dist/commands/review-summary-dashboard.js +96 -0
  1264. package/dist/commands/review-summary-email.d.ts +4 -0
  1265. package/dist/commands/review-summary-email.js +102 -0
  1266. package/dist/commands/review-summary.d.ts +4 -0
  1267. package/dist/commands/review-summary.js +174 -0
  1268. package/dist/commands/review-tag-manager.d.ts +4 -0
  1269. package/dist/commands/review-tag-manager.js +128 -0
  1270. package/dist/commands/review-tag.d.ts +4 -0
  1271. package/dist/commands/review-tag.js +136 -0
  1272. package/dist/commands/review-team-analytics.d.ts +1 -0
  1273. package/dist/commands/review-team-analytics.js +94 -0
  1274. package/dist/commands/review-team-assign.d.ts +7 -0
  1275. package/dist/commands/review-team-assign.js +211 -0
  1276. package/dist/commands/review-team-coverage.d.ts +1 -0
  1277. package/dist/commands/review-team-coverage.js +95 -0
  1278. package/dist/commands/review-team-dashboard.d.ts +4 -0
  1279. package/dist/commands/review-team-dashboard.js +98 -0
  1280. package/dist/commands/review-team-rotation.d.ts +1 -0
  1281. package/dist/commands/review-team-rotation.js +99 -0
  1282. package/dist/commands/review-team-skill-map.d.ts +1 -0
  1283. package/dist/commands/review-team-skill-map.js +102 -0
  1284. package/dist/commands/review-team-stats.d.ts +4 -0
  1285. package/dist/commands/review-team-stats.js +97 -0
  1286. package/dist/commands/review-team-summary.d.ts +4 -0
  1287. package/dist/commands/review-team-summary.js +155 -0
  1288. package/dist/commands/review-team-velocity.d.ts +1 -0
  1289. package/dist/commands/review-team-velocity.js +103 -0
  1290. package/dist/commands/review-template-export.d.ts +4 -0
  1291. package/dist/commands/review-template-export.js +146 -0
  1292. package/dist/commands/review-template-library.d.ts +4 -0
  1293. package/dist/commands/review-template-library.js +155 -0
  1294. package/dist/commands/review-template-suggest.d.ts +1 -0
  1295. package/dist/commands/review-template-suggest.js +119 -0
  1296. package/dist/commands/review-template.d.ts +4 -0
  1297. package/dist/commands/review-template.js +212 -0
  1298. package/dist/commands/review-tenant-config.d.ts +4 -0
  1299. package/dist/commands/review-tenant-config.js +116 -0
  1300. package/dist/commands/review-threshold-tune.d.ts +4 -0
  1301. package/dist/commands/review-threshold-tune.js +135 -0
  1302. package/dist/commands/review-timeline.d.ts +4 -0
  1303. package/dist/commands/review-timeline.js +76 -0
  1304. package/dist/commands/review-token-budget.d.ts +4 -0
  1305. package/dist/commands/review-token-budget.js +117 -0
  1306. package/dist/commands/review-velocity-track.d.ts +1 -0
  1307. package/dist/commands/review-velocity-track.js +94 -0
  1308. package/dist/commands/review-watch-mode.d.ts +7 -0
  1309. package/dist/commands/review-watch-mode.js +132 -0
  1310. package/dist/commands/review-webhook-dispatch.d.ts +4 -0
  1311. package/dist/commands/review-webhook-dispatch.js +99 -0
  1312. package/dist/commands/review-webhook-notify.d.ts +4 -0
  1313. package/dist/commands/review-webhook-notify.js +145 -0
  1314. package/dist/commands/review-webhook.d.ts +4 -0
  1315. package/dist/commands/review-webhook.js +140 -0
  1316. package/dist/commands/review-whitelist.d.ts +4 -0
  1317. package/dist/commands/review-whitelist.js +150 -0
  1318. package/dist/commands/review-workflow-suggest.d.ts +1 -0
  1319. package/dist/commands/review-workflow-suggest.js +129 -0
  1320. package/dist/commands/review-workload-balance.d.ts +1 -0
  1321. package/dist/commands/review-workload-balance.js +86 -0
  1322. package/dist/commands/review-workspace-init.d.ts +4 -0
  1323. package/dist/commands/review-workspace-init.js +104 -0
  1324. package/dist/commands/review-workspace-scan.d.ts +4 -0
  1325. package/dist/commands/review-workspace-scan.js +144 -0
  1326. package/dist/commands/review.d.ts +155 -0
  1327. package/dist/commands/review.js +1114 -0
  1328. package/dist/commands/risk-heatmap.d.ts +7 -0
  1329. package/dist/commands/risk-heatmap.js +223 -0
  1330. package/dist/commands/rollback-safety.d.ts +4 -0
  1331. package/dist/commands/rollback-safety.js +191 -0
  1332. package/dist/commands/rule-catalog.d.ts +4 -0
  1333. package/dist/commands/rule-catalog.js +128 -0
  1334. package/dist/commands/rule-metrics.d.ts +43 -0
  1335. package/dist/commands/rule-metrics.js +113 -0
  1336. package/dist/commands/rule-owner.d.ts +30 -0
  1337. package/dist/commands/rule-owner.js +181 -0
  1338. package/dist/commands/rule-share.d.ts +34 -0
  1339. package/dist/commands/rule-share.js +202 -0
  1340. package/dist/commands/rule-test.d.ts +4 -0
  1341. package/dist/commands/rule-test.js +201 -0
  1342. package/dist/commands/rule.d.ts +114 -0
  1343. package/dist/commands/rule.js +295 -0
  1344. package/dist/commands/sbom-export.d.ts +7 -0
  1345. package/dist/commands/sbom-export.js +161 -0
  1346. package/dist/commands/scaffold-plugin.d.ts +15 -0
  1347. package/dist/commands/scaffold-plugin.js +270 -0
  1348. package/dist/commands/secret-age.d.ts +5 -0
  1349. package/dist/commands/secret-age.js +214 -0
  1350. package/dist/commands/secret-scan.d.ts +7 -0
  1351. package/dist/commands/secret-scan.js +244 -0
  1352. package/dist/commands/security-maturity.d.ts +7 -0
  1353. package/dist/commands/security-maturity.js +312 -0
  1354. package/dist/commands/security-theater.d.ts +4 -0
  1355. package/dist/commands/security-theater.js +278 -0
  1356. package/dist/commands/setup-wizard.d.ts +4 -0
  1357. package/dist/commands/setup-wizard.js +174 -0
  1358. package/dist/commands/severity-tune.d.ts +4 -0
  1359. package/dist/commands/severity-tune.js +208 -0
  1360. package/dist/commands/sla-track.d.ts +56 -0
  1361. package/dist/commands/sla-track.js +268 -0
  1362. package/dist/commands/smart-output.d.ts +38 -0
  1363. package/dist/commands/smart-output.js +175 -0
  1364. package/dist/commands/smart-select.d.ts +26 -0
  1365. package/dist/commands/smart-select.js +345 -0
  1366. package/dist/commands/snapshot.d.ts +139 -0
  1367. package/dist/commands/snapshot.js +478 -0
  1368. package/dist/commands/snippet-eval.d.ts +7 -0
  1369. package/dist/commands/snippet-eval.js +223 -0
  1370. package/dist/commands/spec-conform.d.ts +4 -0
  1371. package/dist/commands/spec-conform.js +304 -0
  1372. package/dist/commands/stale-pattern.d.ts +4 -0
  1373. package/dist/commands/stale-pattern.js +293 -0
  1374. package/dist/commands/state-integrity.d.ts +4 -0
  1375. package/dist/commands/state-integrity.js +283 -0
  1376. package/dist/commands/suppress.d.ts +39 -0
  1377. package/dist/commands/suppress.js +203 -0
  1378. package/dist/commands/team-config.d.ts +4 -0
  1379. package/dist/commands/team-config.js +234 -0
  1380. package/dist/commands/team-leaderboard.d.ts +24 -0
  1381. package/dist/commands/team-leaderboard.js +227 -0
  1382. package/dist/commands/team-rules-sync.d.ts +7 -0
  1383. package/dist/commands/team-rules-sync.js +250 -0
  1384. package/dist/commands/team-trust.d.ts +7 -0
  1385. package/dist/commands/team-trust.js +174 -0
  1386. package/dist/commands/test-correlate.d.ts +7 -0
  1387. package/dist/commands/test-correlate.js +221 -0
  1388. package/dist/commands/test-isolation.d.ts +5 -0
  1389. package/dist/commands/test-isolation.js +234 -0
  1390. package/dist/commands/test-quality.d.ts +5 -0
  1391. package/dist/commands/test-quality.js +160 -0
  1392. package/dist/commands/test-suggest.d.ts +8 -0
  1393. package/dist/commands/test-suggest.js +247 -0
  1394. package/dist/commands/ticket-sync.d.ts +25 -0
  1395. package/dist/commands/ticket-sync.js +235 -0
  1396. package/dist/commands/timeout-audit.d.ts +4 -0
  1397. package/dist/commands/timeout-audit.js +210 -0
  1398. package/dist/commands/trace.d.ts +64 -0
  1399. package/dist/commands/trace.js +245 -0
  1400. package/dist/commands/trend-report.d.ts +4 -0
  1401. package/dist/commands/trend-report.js +148 -0
  1402. package/dist/commands/triage.d.ts +15 -0
  1403. package/dist/commands/triage.js +171 -0
  1404. package/dist/commands/trust-adaptive.d.ts +8 -0
  1405. package/dist/commands/trust-adaptive.js +193 -0
  1406. package/dist/commands/trust-ramp.d.ts +29 -0
  1407. package/dist/commands/trust-ramp.js +189 -0
  1408. package/dist/commands/tune.d.ts +24 -0
  1409. package/dist/commands/tune.js +380 -0
  1410. package/dist/commands/type-boundary.d.ts +4 -0
  1411. package/dist/commands/type-boundary.js +235 -0
  1412. package/dist/commands/upload.d.ts +13 -0
  1413. package/dist/commands/upload.js +172 -0
  1414. package/dist/commands/validate-config.d.ts +16 -0
  1415. package/dist/commands/validate-config.js +267 -0
  1416. package/dist/commands/vendor-lock-detect.d.ts +7 -0
  1417. package/dist/commands/vendor-lock-detect.js +288 -0
  1418. package/dist/commands/vote.d.ts +31 -0
  1419. package/dist/commands/vote.js +200 -0
  1420. package/dist/commands/warm-cache.d.ts +30 -0
  1421. package/dist/commands/warm-cache.js +165 -0
  1422. package/dist/commands/watch-judge.d.ts +7 -0
  1423. package/dist/commands/watch-judge.js +179 -0
  1424. package/dist/commands/watch.d.ts +22 -0
  1425. package/dist/commands/watch.js +147 -0
  1426. package/dist/comparison.d.ts +67 -0
  1427. package/dist/comparison.js +253 -0
  1428. package/dist/config.d.ts +108 -0
  1429. package/dist/config.js +694 -0
  1430. package/dist/context/context-snippets.d.ts +15 -0
  1431. package/dist/context/context-snippets.js +36 -0
  1432. package/dist/context/embedding-cache.d.ts +30 -0
  1433. package/dist/context/embedding-cache.js +48 -0
  1434. package/dist/data-adapter.d.ts +123 -0
  1435. package/dist/data-adapter.js +212 -0
  1436. package/dist/dedup.d.ts +105 -0
  1437. package/dist/dedup.js +606 -0
  1438. package/dist/disk-cache.d.ts +59 -0
  1439. package/dist/disk-cache.js +236 -0
  1440. package/dist/errors.d.ts +43 -0
  1441. package/dist/errors.js +63 -0
  1442. package/dist/escalation.d.ts +100 -0
  1443. package/dist/escalation.js +292 -0
  1444. package/dist/evaluation-session.d.ts +74 -0
  1445. package/dist/evaluation-session.js +152 -0
  1446. package/dist/evaluators/accessibility.d.ts +2 -0
  1447. package/dist/evaluators/accessibility.js +559 -0
  1448. package/dist/evaluators/agent-instructions.d.ts +2 -0
  1449. package/dist/evaluators/agent-instructions.js +214 -0
  1450. package/dist/evaluators/ai-code-safety.d.ts +8 -0
  1451. package/dist/evaluators/ai-code-safety.js +410 -0
  1452. package/dist/evaluators/api-contract.d.ts +9 -0
  1453. package/dist/evaluators/api-contract.js +203 -0
  1454. package/dist/evaluators/api-design.d.ts +2 -0
  1455. package/dist/evaluators/api-design.js +260 -0
  1456. package/dist/evaluators/app-builder.d.ts +33 -0
  1457. package/dist/evaluators/app-builder.js +155 -0
  1458. package/dist/evaluators/authentication.d.ts +2 -0
  1459. package/dist/evaluators/authentication.js +455 -0
  1460. package/dist/evaluators/backwards-compatibility.d.ts +2 -0
  1461. package/dist/evaluators/backwards-compatibility.js +168 -0
  1462. package/dist/evaluators/caching.d.ts +2 -0
  1463. package/dist/evaluators/caching.js +171 -0
  1464. package/dist/evaluators/ci-cd.d.ts +2 -0
  1465. package/dist/evaluators/ci-cd.js +218 -0
  1466. package/dist/evaluators/cloud-readiness.d.ts +2 -0
  1467. package/dist/evaluators/cloud-readiness.js +231 -0
  1468. package/dist/evaluators/code-structure.d.ts +21 -0
  1469. package/dist/evaluators/code-structure.js +195 -0
  1470. package/dist/evaluators/compliance.d.ts +2 -0
  1471. package/dist/evaluators/compliance.js +329 -0
  1472. package/dist/evaluators/concurrency.d.ts +2 -0
  1473. package/dist/evaluators/concurrency.js +307 -0
  1474. package/dist/evaluators/configuration-management.d.ts +2 -0
  1475. package/dist/evaluators/configuration-management.js +232 -0
  1476. package/dist/evaluators/cost-effectiveness.d.ts +2 -0
  1477. package/dist/evaluators/cost-effectiveness.js +418 -0
  1478. package/dist/evaluators/cybersecurity.d.ts +2 -0
  1479. package/dist/evaluators/cybersecurity.js +1197 -0
  1480. package/dist/evaluators/data-security.d.ts +2 -0
  1481. package/dist/evaluators/data-security.js +467 -0
  1482. package/dist/evaluators/data-sovereignty.d.ts +2 -0
  1483. package/dist/evaluators/data-sovereignty.js +495 -0
  1484. package/dist/evaluators/database.d.ts +2 -0
  1485. package/dist/evaluators/database.js +240 -0
  1486. package/dist/evaluators/dependencies.d.ts +5 -0
  1487. package/dist/evaluators/dependencies.js +228 -0
  1488. package/dist/evaluators/dependency-health.d.ts +2 -0
  1489. package/dist/evaluators/dependency-health.js +477 -0
  1490. package/dist/evaluators/documentation.d.ts +2 -0
  1491. package/dist/evaluators/documentation.js +432 -0
  1492. package/dist/evaluators/error-handling.d.ts +2 -0
  1493. package/dist/evaluators/error-handling.js +426 -0
  1494. package/dist/evaluators/ethics-bias.d.ts +2 -0
  1495. package/dist/evaluators/ethics-bias.js +263 -0
  1496. package/dist/evaluators/false-positive-review.d.ts +21 -0
  1497. package/dist/evaluators/false-positive-review.js +1246 -0
  1498. package/dist/evaluators/framework-rules.d.ts +58 -0
  1499. package/dist/evaluators/framework-rules.js +291 -0
  1500. package/dist/evaluators/framework-safety.d.ts +12 -0
  1501. package/dist/evaluators/framework-safety.js +1205 -0
  1502. package/dist/evaluators/hallucination-detection.d.ts +2 -0
  1503. package/dist/evaluators/hallucination-detection.js +1250 -0
  1504. package/dist/evaluators/iac-security.d.ts +8 -0
  1505. package/dist/evaluators/iac-security.js +701 -0
  1506. package/dist/evaluators/index.d.ts +167 -0
  1507. package/dist/evaluators/index.js +994 -0
  1508. package/dist/evaluators/intent-alignment.d.ts +18 -0
  1509. package/dist/evaluators/intent-alignment.js +405 -0
  1510. package/dist/evaluators/internationalization.d.ts +2 -0
  1511. package/dist/evaluators/internationalization.js +287 -0
  1512. package/dist/evaluators/judge-selector.d.ts +19 -0
  1513. package/dist/evaluators/judge-selector.js +141 -0
  1514. package/dist/evaluators/logging-privacy.d.ts +2 -0
  1515. package/dist/evaluators/logging-privacy.js +190 -0
  1516. package/dist/evaluators/logic-review.d.ts +2 -0
  1517. package/dist/evaluators/logic-review.js +289 -0
  1518. package/dist/evaluators/maintainability.d.ts +2 -0
  1519. package/dist/evaluators/maintainability.js +430 -0
  1520. package/dist/evaluators/model-fingerprint.d.ts +2 -0
  1521. package/dist/evaluators/model-fingerprint.js +151 -0
  1522. package/dist/evaluators/multi-turn-coherence.d.ts +13 -0
  1523. package/dist/evaluators/multi-turn-coherence.js +149 -0
  1524. package/dist/evaluators/observability.d.ts +2 -0
  1525. package/dist/evaluators/observability.js +238 -0
  1526. package/dist/evaluators/over-engineering.d.ts +2 -0
  1527. package/dist/evaluators/over-engineering.js +160 -0
  1528. package/dist/evaluators/performance.d.ts +2 -0
  1529. package/dist/evaluators/performance.js +649 -0
  1530. package/dist/evaluators/portability.d.ts +2 -0
  1531. package/dist/evaluators/portability.js +254 -0
  1532. package/dist/evaluators/project.d.ts +48 -0
  1533. package/dist/evaluators/project.js +817 -0
  1534. package/dist/evaluators/rate-limiting.d.ts +2 -0
  1535. package/dist/evaluators/rate-limiting.js +193 -0
  1536. package/dist/evaluators/recall-boost.d.ts +27 -0
  1537. package/dist/evaluators/recall-boost.js +409 -0
  1538. package/dist/evaluators/reliability.d.ts +2 -0
  1539. package/dist/evaluators/reliability.js +245 -0
  1540. package/dist/evaluators/scalability.d.ts +2 -0
  1541. package/dist/evaluators/scalability.js +230 -0
  1542. package/dist/evaluators/security.d.ts +12 -0
  1543. package/dist/evaluators/security.js +1013 -0
  1544. package/dist/evaluators/shared.d.ts +219 -0
  1545. package/dist/evaluators/shared.js +1169 -0
  1546. package/dist/evaluators/software-practices.d.ts +2 -0
  1547. package/dist/evaluators/software-practices.js +395 -0
  1548. package/dist/evaluators/suppressions.d.ts +49 -0
  1549. package/dist/evaluators/suppressions.js +185 -0
  1550. package/dist/evaluators/testing.d.ts +2 -0
  1551. package/dist/evaluators/testing.js +348 -0
  1552. package/dist/evaluators/ux.d.ts +2 -0
  1553. package/dist/evaluators/ux.js +309 -0
  1554. package/dist/evaluators/v2.d.ts +26 -0
  1555. package/dist/evaluators/v2.js +354 -0
  1556. package/dist/ext-to-lang.d.ts +16 -0
  1557. package/dist/ext-to-lang.js +60 -0
  1558. package/dist/feedback-loop.d.ts +62 -0
  1559. package/dist/feedback-loop.js +179 -0
  1560. package/dist/finding-lifecycle.d.ts +215 -0
  1561. package/dist/finding-lifecycle.js +547 -0
  1562. package/dist/fingerprint.d.ts +39 -0
  1563. package/dist/fingerprint.js +179 -0
  1564. package/dist/fix-history.d.ts +103 -0
  1565. package/dist/fix-history.js +164 -0
  1566. package/dist/formatters/badge.d.ts +16 -0
  1567. package/dist/formatters/badge.js +78 -0
  1568. package/dist/formatters/codeclimate.d.ts +24 -0
  1569. package/dist/formatters/codeclimate.js +80 -0
  1570. package/dist/formatters/csv.d.ts +16 -0
  1571. package/dist/formatters/csv.js +53 -0
  1572. package/dist/formatters/diagnostics.d.ts +81 -0
  1573. package/dist/formatters/diagnostics.js +152 -0
  1574. package/dist/formatters/github-actions.d.ts +6 -0
  1575. package/dist/formatters/github-actions.js +68 -0
  1576. package/dist/formatters/html.d.ts +12 -0
  1577. package/dist/formatters/html.js +194 -0
  1578. package/dist/formatters/junit.d.ts +6 -0
  1579. package/dist/formatters/junit.js +68 -0
  1580. package/dist/formatters/pdf.d.ts +12 -0
  1581. package/dist/formatters/pdf.js +114 -0
  1582. package/dist/formatters/sarif.d.ts +92 -0
  1583. package/dist/formatters/sarif.js +256 -0
  1584. package/dist/formatters/shared.d.ts +4 -0
  1585. package/dist/formatters/shared.js +29 -0
  1586. package/dist/git-diff.d.ts +62 -0
  1587. package/dist/git-diff.js +282 -0
  1588. package/dist/github-app.d.ts +152 -0
  1589. package/dist/github-app.js +716 -0
  1590. package/dist/import-resolver.d.ts +51 -0
  1591. package/dist/import-resolver.js +213 -0
  1592. package/dist/index.d.ts +4 -0
  1593. package/dist/index.js +38 -0
  1594. package/dist/judge-registry.d.ts +156 -0
  1595. package/dist/judge-registry.js +272 -0
  1596. package/dist/judges/accessibility.d.ts +2 -0
  1597. package/dist/judges/accessibility.js +46 -0
  1598. package/dist/judges/agent-instructions.d.ts +2 -0
  1599. package/dist/judges/agent-instructions.js +46 -0
  1600. package/dist/judges/ai-code-safety.d.ts +2 -0
  1601. package/dist/judges/ai-code-safety.js +57 -0
  1602. package/dist/judges/api-contract.d.ts +2 -0
  1603. package/dist/judges/api-contract.js +40 -0
  1604. package/dist/judges/api-design.d.ts +2 -0
  1605. package/dist/judges/api-design.js +57 -0
  1606. package/dist/judges/authentication.d.ts +2 -0
  1607. package/dist/judges/authentication.js +63 -0
  1608. package/dist/judges/backwards-compatibility.d.ts +2 -0
  1609. package/dist/judges/backwards-compatibility.js +46 -0
  1610. package/dist/judges/caching.d.ts +2 -0
  1611. package/dist/judges/caching.js +46 -0
  1612. package/dist/judges/ci-cd.d.ts +2 -0
  1613. package/dist/judges/ci-cd.js +46 -0
  1614. package/dist/judges/cloud-readiness.d.ts +2 -0
  1615. package/dist/judges/cloud-readiness.js +53 -0
  1616. package/dist/judges/code-structure.d.ts +2 -0
  1617. package/dist/judges/code-structure.js +50 -0
  1618. package/dist/judges/compliance.d.ts +2 -0
  1619. package/dist/judges/compliance.js +49 -0
  1620. package/dist/judges/concurrency.d.ts +2 -0
  1621. package/dist/judges/concurrency.js +48 -0
  1622. package/dist/judges/configuration-management.d.ts +2 -0
  1623. package/dist/judges/configuration-management.js +46 -0
  1624. package/dist/judges/cost-effectiveness.d.ts +2 -0
  1625. package/dist/judges/cost-effectiveness.js +42 -0
  1626. package/dist/judges/cybersecurity.d.ts +2 -0
  1627. package/dist/judges/cybersecurity.js +63 -0
  1628. package/dist/judges/data-security.d.ts +2 -0
  1629. package/dist/judges/data-security.js +50 -0
  1630. package/dist/judges/data-sovereignty.d.ts +2 -0
  1631. package/dist/judges/data-sovereignty.js +60 -0
  1632. package/dist/judges/database.d.ts +2 -0
  1633. package/dist/judges/database.js +51 -0
  1634. package/dist/judges/dependency-health.d.ts +2 -0
  1635. package/dist/judges/dependency-health.js +48 -0
  1636. package/dist/judges/documentation.d.ts +2 -0
  1637. package/dist/judges/documentation.js +55 -0
  1638. package/dist/judges/error-handling.d.ts +2 -0
  1639. package/dist/judges/error-handling.js +55 -0
  1640. package/dist/judges/ethics-bias.d.ts +2 -0
  1641. package/dist/judges/ethics-bias.js +48 -0
  1642. package/dist/judges/false-positive-review.d.ts +2 -0
  1643. package/dist/judges/false-positive-review.js +85 -0
  1644. package/dist/judges/framework-safety.d.ts +2 -0
  1645. package/dist/judges/framework-safety.js +49 -0
  1646. package/dist/judges/hallucination-detection.d.ts +2 -0
  1647. package/dist/judges/hallucination-detection.js +48 -0
  1648. package/dist/judges/iac-security.d.ts +2 -0
  1649. package/dist/judges/iac-security.js +47 -0
  1650. package/dist/judges/index.d.ts +88 -0
  1651. package/dist/judges/index.js +128 -0
  1652. package/dist/judges/intent-alignment.d.ts +2 -0
  1653. package/dist/judges/intent-alignment.js +46 -0
  1654. package/dist/judges/internationalization.d.ts +2 -0
  1655. package/dist/judges/internationalization.js +44 -0
  1656. package/dist/judges/logging-privacy.d.ts +2 -0
  1657. package/dist/judges/logging-privacy.js +46 -0
  1658. package/dist/judges/logic-review.d.ts +2 -0
  1659. package/dist/judges/logic-review.js +36 -0
  1660. package/dist/judges/maintainability.d.ts +2 -0
  1661. package/dist/judges/maintainability.js +46 -0
  1662. package/dist/judges/model-fingerprint.d.ts +2 -0
  1663. package/dist/judges/model-fingerprint.js +35 -0
  1664. package/dist/judges/multi-turn-coherence.d.ts +2 -0
  1665. package/dist/judges/multi-turn-coherence.js +39 -0
  1666. package/dist/judges/observability.d.ts +2 -0
  1667. package/dist/judges/observability.js +54 -0
  1668. package/dist/judges/over-engineering.d.ts +2 -0
  1669. package/dist/judges/over-engineering.js +50 -0
  1670. package/dist/judges/performance.d.ts +2 -0
  1671. package/dist/judges/performance.js +46 -0
  1672. package/dist/judges/portability.d.ts +2 -0
  1673. package/dist/judges/portability.js +46 -0
  1674. package/dist/judges/rate-limiting.d.ts +2 -0
  1675. package/dist/judges/rate-limiting.js +55 -0
  1676. package/dist/judges/reliability.d.ts +2 -0
  1677. package/dist/judges/reliability.js +57 -0
  1678. package/dist/judges/scalability.d.ts +2 -0
  1679. package/dist/judges/scalability.js +52 -0
  1680. package/dist/judges/security.d.ts +2 -0
  1681. package/dist/judges/security.js +64 -0
  1682. package/dist/judges/software-practices.d.ts +2 -0
  1683. package/dist/judges/software-practices.js +56 -0
  1684. package/dist/judges/testing.d.ts +2 -0
  1685. package/dist/judges/testing.js +54 -0
  1686. package/dist/judges/ux.d.ts +2 -0
  1687. package/dist/judges/ux.js +46 -0
  1688. package/dist/language-patterns.d.ts +653 -0
  1689. package/dist/language-patterns.js +851 -0
  1690. package/dist/parallel.d.ts +52 -0
  1691. package/dist/parallel.js +157 -0
  1692. package/dist/patches/apply.d.ts +15 -0
  1693. package/dist/patches/apply.js +37 -0
  1694. package/dist/patches/index.d.ts +9 -0
  1695. package/dist/patches/index.js +2544 -0
  1696. package/dist/plugins.d.ts +59 -0
  1697. package/dist/plugins.js +76 -0
  1698. package/dist/presets.d.ts +35 -0
  1699. package/dist/presets.js +406 -0
  1700. package/dist/probabilistic/llm-response-validator.d.ts +26 -0
  1701. package/dist/probabilistic/llm-response-validator.js +122 -0
  1702. package/dist/reports/public-repo-report.d.ts +42 -0
  1703. package/dist/reports/public-repo-report.js +579 -0
  1704. package/dist/review-conversation.d.ts +87 -0
  1705. package/dist/review-conversation.js +307 -0
  1706. package/dist/sast-integration.d.ts +112 -0
  1707. package/dist/sast-integration.js +215 -0
  1708. package/dist/scoring.d.ts +36 -0
  1709. package/dist/scoring.js +437 -0
  1710. package/dist/security-ids.d.ts +23 -0
  1711. package/dist/security-ids.js +239 -0
  1712. package/dist/skill-loader.d.ts +33 -0
  1713. package/dist/skill-loader.js +167 -0
  1714. package/dist/tools/command-safety.d.ts +13 -0
  1715. package/dist/tools/command-safety.js +95 -0
  1716. package/dist/tools/deep-review.d.ts +38 -0
  1717. package/dist/tools/deep-review.js +302 -0
  1718. package/dist/tools/prompts.d.ts +27 -0
  1719. package/dist/tools/prompts.js +122 -0
  1720. package/dist/tools/register-evaluation.d.ts +6 -0
  1721. package/dist/tools/register-evaluation.js +587 -0
  1722. package/dist/tools/register-fix.d.ts +5 -0
  1723. package/dist/tools/register-fix.js +175 -0
  1724. package/dist/tools/register-resources.d.ts +6 -0
  1725. package/dist/tools/register-resources.js +177 -0
  1726. package/dist/tools/register-review.d.ts +6 -0
  1727. package/dist/tools/register-review.js +564 -0
  1728. package/dist/tools/register-scaffold.d.ts +2 -0
  1729. package/dist/tools/register-scaffold.js +398 -0
  1730. package/dist/tools/register-workflow.d.ts +6 -0
  1731. package/dist/tools/register-workflow.js +1037 -0
  1732. package/dist/tools/register-workspace.d.ts +2 -0
  1733. package/dist/tools/register-workspace.js +214 -0
  1734. package/dist/tools/register.d.ts +6 -0
  1735. package/dist/tools/register.js +21 -0
  1736. package/dist/tools/schemas.d.ts +25 -0
  1737. package/dist/tools/schemas.js +41 -0
  1738. package/dist/tools/validation.d.ts +13 -0
  1739. package/dist/tools/validation.js +77 -0
  1740. package/dist/types.d.ts +898 -0
  1741. package/dist/types.js +1 -0
  1742. package/package.json +54 -0
  1743. package/skills/ai-code-review.skill.md +57 -0
  1744. package/skills/release-gate.skill.md +27 -0
  1745. package/skills/security-review.skill.md +32 -0
package/dist/cli.js ADDED
@@ -0,0 +1,1487 @@
1
+ #!/usr/bin/env node
2
+ // NOTE: keep logic in pure helpers to allow coverage
3
+ /**
4
+ * Judges Panel — CLI Evaluator
5
+ *
6
+ * Evaluate code directly from the command line without MCP setup.
7
+ *
8
+ * Usage:
9
+ * judges eval --file src/app.ts # evaluate a file
10
+ * judges eval --file src/app.ts --language python # explicit language
11
+ * judges eval --file src/app.ts --format sarif # SARIF output
12
+ * judges eval --file src/app.ts --format html # HTML report
13
+ * judges eval --file src/app.ts --judge cybersecurity # single judge
14
+ * judges eval --fail-on-findings src/app.ts # exit 1 on fail
15
+ * cat src/app.ts | judges eval --language typescript # stdin pipe
16
+ * judges init # interactive setup
17
+ * judges fix src/app.ts --apply # auto-fix findings
18
+ * judges watch src/ # watch mode
19
+ * judges report . # project report
20
+ * judges hook install # install pre-commit
21
+ * judges eval --help # show help
22
+ */
23
+ import { readFileSync, existsSync, writeFileSync, readdirSync, statSync } from "fs";
24
+ import { resolve, extname, dirname, join, relative } from "path";
25
+ import { fileURLToPath } from "url";
26
+ import { matchesGlob } from "./cli-helpers.js";
27
+ // Re-export helpers for tests/backward compatibility
28
+ export { globToRegex, matchesGlob } from "./cli-helpers.js";
29
+ import { evaluateWithTribunal, evaluateWithJudge, formatVerdictAsMarkdown, formatEvaluationAsMarkdown, } from "./evaluators/index.js";
30
+ import { runSkill } from "./skill-loader.js";
31
+ import { getJudge, getJudgeSummaries } from "./judges/index.js";
32
+ import { verdictToHtml } from "./formatters/html.js";
33
+ import { verdictToJUnit } from "./formatters/junit.js";
34
+ import { verdictToPdfHtml } from "./formatters/pdf.js";
35
+ import { verdictToCodeClimate } from "./formatters/codeclimate.js";
36
+ import { loadBaselineData, isBaselined } from "./commands/baseline.js";
37
+ import { getPreset, listPresets, composePresets } from "./presets.js";
38
+ import { parseConfig } from "./config.js";
39
+ import { applyPatches } from "./commands/fix.js";
40
+ import { DiskCache } from "./disk-cache.js";
41
+ import { contentHash } from "./cache.js";
42
+ import { formatComparisonReport, formatFullComparisonMatrix, TOOL_PROFILES } from "./comparison.js";
43
+ import { loadOverrideStore, applyOverrides } from "./commands/override.js";
44
+ import { runGit } from "./tools/command-safety.js";
45
+ import { detectLanguageFromPath, SUPPORTED_EXTENSIONS } from "./ext-to-lang.js";
46
+ import { formatTribunalOutput, writeOutputIfSpecified, formatSingleJudgeTextOutput, } from "./cli-formatters.js";
47
+ import { COMMAND_TABLE } from "./cli-dispatch.js";
48
+ // ─── Language Detection ─────────────────────────────────────────────────────
49
+ function detectLanguage(filePath) {
50
+ if (!filePath)
51
+ return undefined;
52
+ return detectLanguageFromPath(filePath);
53
+ }
54
+ function parseCliArgs(argv) {
55
+ const args = {
56
+ command: undefined,
57
+ file: undefined,
58
+ language: undefined,
59
+ format: "text",
60
+ judge: undefined,
61
+ help: false,
62
+ failOnFindings: false,
63
+ baseline: undefined,
64
+ summary: false,
65
+ config: undefined,
66
+ preset: undefined,
67
+ minScore: undefined,
68
+ minSeverity: undefined,
69
+ noColor: false,
70
+ verbose: false,
71
+ quiet: false,
72
+ fix: false,
73
+ exclude: [],
74
+ include: [],
75
+ maxFiles: undefined,
76
+ changedOnly: false,
77
+ stagedOnly: false,
78
+ explain: false,
79
+ sample: false,
80
+ trace: false,
81
+ incremental: false,
82
+ noCache: false,
83
+ output: undefined,
84
+ skill: undefined,
85
+ skillsDir: undefined,
86
+ };
87
+ // First non-flag arg is the command
88
+ let i = 2; // skip node + script
89
+ if (i < argv.length && !argv[i].startsWith("-")) {
90
+ args.command = argv[i];
91
+ i++;
92
+ }
93
+ for (; i < argv.length; i++) {
94
+ let arg = argv[i];
95
+ // Support --flag=value syntax
96
+ let inlineValue;
97
+ if (arg.startsWith("--") && arg.includes("=")) {
98
+ const parts = arg.split(/=(.*)/s);
99
+ arg = parts[0];
100
+ inlineValue = parts[1];
101
+ }
102
+ const nextValue = () => (inlineValue !== undefined ? inlineValue : argv[++i]);
103
+ switch (arg) {
104
+ case "--file":
105
+ case "-f":
106
+ args.file = nextValue();
107
+ break;
108
+ case "--language":
109
+ case "-l":
110
+ args.language = nextValue();
111
+ break;
112
+ case "--format":
113
+ case "-F":
114
+ args.format = nextValue();
115
+ break;
116
+ case "--output":
117
+ case "-o":
118
+ args.output = nextValue();
119
+ break;
120
+ case "--judge":
121
+ case "-j":
122
+ args.judge = argv[++i];
123
+ break;
124
+ case "--skill":
125
+ case "-S":
126
+ args.skill = argv[++i];
127
+ if (!args.command)
128
+ args.command = "skill";
129
+ break;
130
+ case "--skills-dir":
131
+ args.skillsDir = argv[++i];
132
+ break;
133
+ case "--help":
134
+ case "-h":
135
+ args.help = true;
136
+ break;
137
+ case "--fail-on-findings":
138
+ args.failOnFindings = true;
139
+ break;
140
+ case "--baseline":
141
+ case "-b":
142
+ args.baseline = argv[++i];
143
+ break;
144
+ case "--summary":
145
+ args.summary = true;
146
+ break;
147
+ case "--config":
148
+ case "-c":
149
+ args.config = argv[++i];
150
+ break;
151
+ case "--preset":
152
+ case "-p":
153
+ args.preset = argv[++i];
154
+ break;
155
+ case "--min-score":
156
+ args.minScore = parseInt(nextValue(), 10);
157
+ break;
158
+ case "--min-severity":
159
+ args.minSeverity = nextValue();
160
+ break;
161
+ case "--no-color":
162
+ args.noColor = true;
163
+ break;
164
+ case "--verbose":
165
+ args.verbose = true;
166
+ break;
167
+ case "--quiet":
168
+ args.quiet = true;
169
+ break;
170
+ case "--fix":
171
+ args.fix = true;
172
+ break;
173
+ case "--changed-only":
174
+ args.changedOnly = true;
175
+ break;
176
+ case "--staged-only":
177
+ args.stagedOnly = true;
178
+ break;
179
+ case "--explain":
180
+ args.explain = true;
181
+ break;
182
+ case "--exclude":
183
+ case "-x":
184
+ args.exclude.push(argv[++i]);
185
+ break;
186
+ case "--include":
187
+ case "-i":
188
+ args.include.push(argv[++i]);
189
+ break;
190
+ case "--max-files":
191
+ args.maxFiles = parseInt(argv[++i], 10);
192
+ break;
193
+ case "--sample":
194
+ args.sample = true;
195
+ break;
196
+ case "--trace":
197
+ args.trace = true;
198
+ break;
199
+ case "--incremental":
200
+ args.incremental = true;
201
+ break;
202
+ case "--no-cache":
203
+ args.noCache = true;
204
+ break;
205
+ default:
206
+ // Positional skill id support: `judges skill ai-code-review --file src/app.ts`
207
+ if (args.command === "skill" && !arg.startsWith("-") && !args.skill) {
208
+ args.skill = arg;
209
+ break;
210
+ }
211
+ // If it looks like a file path (not a flag), treat as --file
212
+ if (!arg.startsWith("-") && !args.file) {
213
+ args.file = arg;
214
+ }
215
+ break;
216
+ }
217
+ }
218
+ return args;
219
+ }
220
+ // ─── Help Text ──────────────────────────────────────────────────────────────
221
+ function printHelp() {
222
+ const showExperimental = process.env.JUDGES_SHOW_EXPERIMENTAL === "1";
223
+ /**
224
+ * Only show GA/implemented commands by default. Experimental/placeholder
225
+ * commands can be revealed via JUDGES_SHOW_EXPERIMENTAL=1 to avoid
226
+ * over-promising features that aren't wired yet.
227
+ */
228
+ const coreCommands = [
229
+ ["judges eval [options] [file]", "Evaluate code with the full tribunal"],
230
+ ["judges eval --judge <id> [file]", "Evaluate with a single judge"],
231
+ ["judges init", "Interactive project setup wizard"],
232
+ ["judges fix <file> [--apply]", "Preview / apply auto-fixes"],
233
+ ["judges fix-pr <path>", "Create a PR with auto-fix patches"],
234
+ ["judges watch <path>", "Watch files and re-evaluate on save"],
235
+ ["judges lsp", "Start LSP server for editor integration"],
236
+ ["judges report <dir>", "Generate project-level report"],
237
+ ["judges skill <skill-id> [--file <path>]", "Run an agentic skill workflow"],
238
+ ["judges skills", "List available skills"],
239
+ ["judges hook install", "Install pre-commit git hook"],
240
+ ["judges diff", "Evaluate only changed lines from a diff"],
241
+ ["judges deps [dir]", "Analyze dependencies for supply-chain risks"],
242
+ ["judges license-scan", "Dependency license compliance scan"],
243
+ ["judges doctor", "Run diagnostic healthcheck"],
244
+ ["judges baseline create <file>", "Create a findings baseline"],
245
+ ["judges ci-templates <provider>", "Generate CI pipeline template"],
246
+ ["judges completions <shell>", "Generate shell completions"],
247
+ ["judges docs", "Generate rule documentation"],
248
+ ["judges feedback", "Track finding feedback (false positives)"],
249
+ ["judges override", "Manage per-path rule overrides"],
250
+ ["judges benchmark", "Run detection accuracy benchmarks"],
251
+ ["judges config", "Export/import shared team configs"],
252
+ ["judges review", "Post inline review comments on a GitHub PR"],
253
+ ["judges app serve", "Start GitHub App webhook server"],
254
+ ["judges tune", "Auto-tune presets and config"],
255
+ ];
256
+ console.log("\nJudges Panel — CLI Code Evaluator\n");
257
+ console.log("USAGE:\n judges <command> [options]\n");
258
+ console.log("Core commands:");
259
+ for (const [cmd, desc] of coreCommands) {
260
+ console.log(` ${cmd.padEnd(32)} ${desc}`);
261
+ }
262
+ console.log("\nTIP: set JUDGES_SHOW_EXPERIMENTAL=1 to print the full experimental command matrix.\n");
263
+ if (!showExperimental)
264
+ return;
265
+ console.log("Experimental / roadmap commands (may be stubbed):\n");
266
+ const experimentalCommands = [
267
+ ["judges quality-gate", "Evaluate composite quality gate policies"],
268
+ ["judges auto-calibrate", "Auto-tune thresholds from feedback history"],
269
+ ["judges dep-audit", "Correlate dependency vulnerabilities with code findings"],
270
+ ["judges monorepo", "Discover and evaluate monorepo packages"],
271
+ ["judges config-migrate", "Migrate .judgesrc to current schema"],
272
+ ["judges deprecated", "List deprecated rules with migration guidance"],
273
+ ["judges dedup-report", "Cross-run finding deduplication report"],
274
+ ["judges upload", "Upload SARIF results to GitHub Code Scanning"],
275
+ ["judges smart-select", "Show which judges are relevant for a file"],
276
+ ["judges pr-summary", "Post a PR summary comment with verdict"],
277
+ ["judges profile", "Performance profiling for judge evaluations"],
278
+ ["judges group", "Group findings by category, severity, or file"],
279
+ ["judges diff-only", "Evaluate only changed lines in a PR diff"],
280
+ ["judges auto-triage", "Auto-suppress low-confidence findings"],
281
+ ["judges validate-config", "Validate .judgesrc configuration"],
282
+ ["judges coverage-map", "Show which rules apply to which languages"],
283
+ ["judges warm-cache", "Pre-populate eval cache for faster CI"],
284
+ ["judges policy-audit", "Compliance audit trail with policy snapshots"],
285
+ ["judges remediation <rule-id>", "Step-by-step fix guide for a finding"],
286
+ ["judges hook-install", "Install git pre-commit/pre-push hooks"],
287
+ ["judges false-negatives", "Track and report false-negative feedback"],
288
+ ["judges assign", "Assign findings to team members"],
289
+ ["judges ticket-sync", "Create tickets from findings (Jira/Linear/GitHub)"],
290
+ ["judges sla-track", "SLA tracking and violation detection"],
291
+ ["judges regression-alert", "Detect quality regressions between scans"],
292
+ ["judges suppress", "Batch false-positive suppression"],
293
+ ["judges rule-owner", "Map rules to team owners"],
294
+ ["judges noise-advisor", "Analyze rule performance and recommend tuning"],
295
+ ["judges review-queue", "Human review queue for low-confidence findings"],
296
+ ["judges report-template", "Generate reports from templates"],
297
+ ["judges burndown", "Track finding resolution progress"],
298
+ ["judges kb", "Team knowledge base for rule decisions"],
299
+ ["judges recommend", "Analyze project and recommend judges"],
300
+ ["judges vote", "Consensus voting on findings"],
301
+ ["judges query", "Advanced finding search and filter"],
302
+ ["judges judge-reputation", "Per-judge accuracy and FP tracking"],
303
+ ["judges correlate", "Finding correlation and root-cause analysis"],
304
+ ["judges digest", "Periodic finding digest and trend reports"],
305
+ ["judges rule-share", "Export/import custom rule configurations"],
306
+ ["judges explain-finding", "Detailed finding explanation with context"],
307
+ ["judges compare-runs", "Compare evaluation runs side by side"],
308
+ ["judges audit-bundle", "Assemble auditor-ready evidence package"],
309
+ ["judges dev-score", "Developer security growth score"],
310
+ ["judges model-risk", "AI model vulnerability risk profiles"],
311
+ ["judges retro", "Security incident retrospective analysis"],
312
+ ["judges config-drift", "Detect config divergence from baseline"],
313
+ ["judges reg-watch", "Regulatory standard coverage monitor"],
314
+ ["judges learn", "Personalized developer learning paths"],
315
+ ["judges generate", "Secure code template generator"],
316
+ ["judges ai-model-trust", "AI model confidence scoring"],
317
+ ["judges team-rules-sync", "Fast team onboarding with shared rules"],
318
+ ["judges cost-forecast", "Security debt cost projections"],
319
+ ["judges team-leaderboard", "Gamified security review engagement"],
320
+ ["judges code-owner-suggest", "Auto-recommend CODEOWNERS entries"],
321
+ ["judges pr-quality-gate", "Automated PR pass/fail quality gate"],
322
+ ["judges ai-prompt-audit", "Scan for prompt injection risks"],
323
+ ["judges adoption-report", "Team adoption metrics dashboard"],
324
+ ["judges auto-fix", "Automated fix suggestions for findings"],
325
+ ];
326
+ for (const [cmd, desc] of experimentalCommands) {
327
+ console.log(` ${cmd.padEnd(32)} ${desc}`);
328
+ }
329
+ }
330
+ // ─── Read Code Input ────────────────────────────────────────────────────────
331
+ function readCode(filePath) {
332
+ if (filePath) {
333
+ const resolved = resolve(filePath);
334
+ if (!existsSync(resolved)) {
335
+ console.error(`Error: File not found: ${resolved}`);
336
+ process.exit(1);
337
+ }
338
+ return { code: readFileSync(resolved, "utf-8"), resolvedPath: resolved };
339
+ }
340
+ // Try reading from stdin
341
+ if (!process.stdin.isTTY) {
342
+ try {
343
+ const code = readFileSync(0, "utf-8"); // fd 0 = stdin
344
+ return { code, resolvedPath: undefined };
345
+ }
346
+ catch {
347
+ console.error("Error: Could not read from stdin");
348
+ process.exit(1);
349
+ }
350
+ }
351
+ console.error("Error: No file specified and no stdin input detected.");
352
+ console.error("Usage: judges eval --file <path> or cat file | judges eval --language <lang>");
353
+ process.exit(1);
354
+ }
355
+ // Glob helpers moved to cli-helpers.ts for testability
356
+ // ─── Glob / Multi-File Resolution ───────────────────────────────────────────
357
+ const DEFAULT_SKIP_DIRS = new Set([
358
+ "node_modules",
359
+ ".git",
360
+ "dist",
361
+ "build",
362
+ ".next",
363
+ "__pycache__",
364
+ "target",
365
+ "vendor",
366
+ ]);
367
+ // collectFiles moved to cli-helpers for testability; keep export for backward compat
368
+ export function collectFiles(target, options = {}) {
369
+ const resolved = resolve(target);
370
+ if (!existsSync(resolved))
371
+ return [];
372
+ const stat = statSync(resolved);
373
+ if (stat.isFile())
374
+ return [resolved];
375
+ if (stat.isDirectory()) {
376
+ const files = [];
377
+ walkDir(resolved, resolved, files, { ...options, maxFiles: options.sample ? undefined : options.maxFiles });
378
+ if (options.maxFiles && files.length > options.maxFiles) {
379
+ if (options.sample) {
380
+ // Fisher-Yates shuffle then take first N
381
+ for (let i = files.length - 1; i > 0; i--) {
382
+ const j = Math.floor(Math.random() * (i + 1));
383
+ [files[i], files[j]] = [files[j], files[i]];
384
+ }
385
+ }
386
+ return files.slice(0, options.maxFiles);
387
+ }
388
+ return files;
389
+ }
390
+ return [];
391
+ }
392
+ function walkDir(dir, root, results, options) {
393
+ const entries = readdirSync(dir, { withFileTypes: true });
394
+ for (const entry of entries) {
395
+ const fullPath = join(dir, entry.name);
396
+ const relPath = relative(root, fullPath);
397
+ // Skip common non-source directories
398
+ if (entry.isDirectory()) {
399
+ if (DEFAULT_SKIP_DIRS.has(entry.name))
400
+ continue;
401
+ // Check if directory matches an exclude pattern
402
+ if (options.exclude && matchesGlob(relPath + "/", options.exclude))
403
+ continue;
404
+ walkDir(fullPath, root, results, options);
405
+ }
406
+ else if (entry.isFile()) {
407
+ // Apply exclude patterns
408
+ if (options.exclude && matchesGlob(relPath, options.exclude))
409
+ continue;
410
+ // Apply include patterns — if include patterns are specified, ONLY include matching files
411
+ if (options.include && options.include.length > 0) {
412
+ if (!matchesGlob(relPath, options.include))
413
+ continue;
414
+ }
415
+ else {
416
+ // Default: only include files with supported extensions
417
+ const ext = extname(entry.name);
418
+ if (!SUPPORTED_EXTENSIONS.has(ext))
419
+ continue;
420
+ }
421
+ results.push(fullPath);
422
+ // Early exit if we've hit maxFiles
423
+ if (options.maxFiles && results.length >= options.maxFiles)
424
+ return;
425
+ }
426
+ }
427
+ }
428
+ function isDirectory(filePath) {
429
+ try {
430
+ return statSync(resolve(filePath)).isDirectory();
431
+ }
432
+ catch {
433
+ return false;
434
+ }
435
+ }
436
+ // ─── Git Changed Files (for --changed-only) ─────────────────────────────────
437
+ /**
438
+ * Get files changed since the last commit using git diff.
439
+ * Includes staged, unstaged, and untracked files.
440
+ */
441
+ function getGitChangedFiles(cwd) {
442
+ try {
443
+ const resolvedCwd = resolve(cwd);
444
+ // Changed files (staged + unstaged) relative to HEAD
445
+ const diffOutput = runGit(["diff", "--name-only", "HEAD"], { cwd: resolvedCwd });
446
+ // Untracked files
447
+ const untrackedOutput = runGit(["ls-files", "--others", "--exclude-standard"], { cwd: resolvedCwd });
448
+ const files = new Set();
449
+ for (const f of diffOutput.split("\n").filter(Boolean)) {
450
+ files.add(resolve(resolvedCwd, f));
451
+ }
452
+ for (const f of untrackedOutput.split("\n").filter(Boolean)) {
453
+ files.add(resolve(resolvedCwd, f));
454
+ }
455
+ return [...files];
456
+ }
457
+ catch {
458
+ // Not a git repo or git not available — return empty (evaluate nothing)
459
+ return [];
460
+ }
461
+ }
462
+ function getStagedFiles(cwd) {
463
+ try {
464
+ const resolvedCwd = resolve(cwd);
465
+ const output = runGit(["diff", "--cached", "--name-only", "--diff-filter=ACM"], { cwd: resolvedCwd });
466
+ return output
467
+ .split("\n")
468
+ .filter(Boolean)
469
+ .map((f) => resolve(resolvedCwd, f));
470
+ }
471
+ catch {
472
+ return [];
473
+ }
474
+ }
475
+ // ─── List Judges ────────────────────────────────────────────────────────────
476
+ function listJudges() {
477
+ const judges = getJudgeSummaries();
478
+ console.log("");
479
+ console.log(" Available Judges:");
480
+ console.log(" " + "─".repeat(60));
481
+ for (const j of judges) {
482
+ console.log(` ${j.id.padEnd(30)} ${j.name}`);
483
+ }
484
+ console.log("");
485
+ console.log(` Total: ${judges.length} judges`);
486
+ console.log("");
487
+ }
488
+ // ─── Version ────────────────────────────────────────────────────────────────
489
+ function getPackageVersion() {
490
+ try {
491
+ const __filename = fileURLToPath(import.meta.url);
492
+ const __dirname = dirname(__filename);
493
+ const pkgPath = resolve(__dirname, "..", "package.json");
494
+ if (existsSync(pkgPath)) {
495
+ const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
496
+ return pkg.version || "unknown";
497
+ }
498
+ }
499
+ catch {
500
+ // fallback
501
+ }
502
+ return "unknown";
503
+ }
504
+ function printVersion() {
505
+ const version = getPackageVersion();
506
+ console.log(`@kevinrabun/judges v${version}`);
507
+ console.log(`Node.js ${process.version}`);
508
+ console.log(`Platform: ${process.platform} ${process.arch}`);
509
+ }
510
+ // ─── Main CLI Entry Point ───────────────────────────────────────────────────
511
+ export async function runCli(argv) {
512
+ const args = parseCliArgs(argv);
513
+ // ─── Version Command ─────────────────────────────────────────────────
514
+ if (args.command === "version" || args.command === "--version" || argv.includes("--version") || argv.includes("-V")) {
515
+ printVersion();
516
+ return;
517
+ }
518
+ if (args.help || (!args.command && !args.file)) {
519
+ printHelp();
520
+ process.exit(0);
521
+ }
522
+ // ─── Skill Command ─────────────────────────────────────────────────────
523
+ if (args.command === "skills" || args.command === "skills:list") {
524
+ const { listSkills } = await import("./skill-loader.js");
525
+ const skillsDir = args.skillsDir || resolve(fileURLToPath(import.meta.url), "..", "..", "skills");
526
+ const skills = listSkills(skillsDir);
527
+ // Pretty print
528
+ const rows = skills.map((s) => ({
529
+ id: s.id,
530
+ name: s.name,
531
+ tags: (s.tags || []).join(", "),
532
+ agents: s.agents.join(", "),
533
+ description: s.description,
534
+ }));
535
+ console.table(rows);
536
+ return;
537
+ }
538
+ if (args.command === "skill") {
539
+ const skillId = args.skill || args.judge; // allow --skill or --judge alias
540
+ if (!skillId) {
541
+ console.error("Missing skill id. Usage: judges skill <skill-id> --file <path>");
542
+ process.exit(1);
543
+ }
544
+ const code = args.file ? readFileSync(args.file, "utf-8") : readFileSync(0, "utf-8");
545
+ const language = args.language || detectLanguage(args.file);
546
+ if (!language) {
547
+ console.error("Unable to detect language. Provide --language.");
548
+ process.exit(1);
549
+ }
550
+ const verdict = await runSkill(skillId, code, language, { skillsDir: args.skillsDir });
551
+ if (args.format === "json") {
552
+ console.log(JSON.stringify(verdict, null, 2));
553
+ }
554
+ else {
555
+ const markdown = formatVerdictAsMarkdown(verdict);
556
+ console.log(markdown);
557
+ }
558
+ return;
559
+ }
560
+ // ─── Init Command ──────────────────────────────────────────────────────
561
+ if (args.command === "init") {
562
+ const { runInit } = await import("./commands/init.js");
563
+ await runInit(args.file || ".");
564
+ process.exit(0);
565
+ }
566
+ // ─── Watch Command ────────────────────────────────────────────────────
567
+ if (args.command === "watch") {
568
+ const { runWatch } = await import("./commands/watch.js");
569
+ // Allow tests to run without hanging
570
+ if (process.env.JUDGES_TEST_DRY_RUN)
571
+ return;
572
+ runWatch(argv);
573
+ return; // Watch runs indefinitely
574
+ }
575
+ // ─── LSP Command ─────────────────────────────────────────────────────
576
+ if (args.command === "lsp") {
577
+ const { runLsp } = await import("./commands/lsp.js");
578
+ if (process.env.JUDGES_TEST_DRY_RUN)
579
+ return;
580
+ runLsp(argv);
581
+ return; // LSP server runs indefinitely
582
+ }
583
+ // ─── CI Templates Command ────────────────────────────────────────────
584
+ if (args.command === "ci-templates") {
585
+ await runCiTemplates(argv);
586
+ return;
587
+ }
588
+ // ─── Compliance-Report Command ────────────────────────────────────────
589
+ if (args.command === "compliance-report") {
590
+ const { buildComplianceReport, formatComplianceReportText } = await import("./commands/compliance-report.js");
591
+ const target = args.file || ".";
592
+ const code = args.file ? (await import("fs")).readFileSync(args.file, "utf-8") : "";
593
+ let findings = [];
594
+ if (code) {
595
+ const lang = detectLanguage(args.file) || "typescript";
596
+ const result = evaluateWithTribunal(code, lang);
597
+ findings = result.findings;
598
+ }
599
+ const framework = argv.find((a, i) => argv[i - 1] === "--framework") || undefined;
600
+ const report = buildComplianceReport(target, findings, framework);
601
+ if (argv.includes("--json")) {
602
+ console.log(JSON.stringify(report, null, 2));
603
+ }
604
+ else {
605
+ console.log(formatComplianceReportText(report));
606
+ }
607
+ return;
608
+ }
609
+ // ─── App Command (GitHub App) ─────────────────────────────────────
610
+ if (args.command === "app") {
611
+ const { runAppCommand } = await import("./github-app.js");
612
+ runAppCommand(argv.slice(3));
613
+ return;
614
+ }
615
+ // ─── Compare Command ─────────────────────────────────────────────────
616
+ if (args.command === "compare") {
617
+ const toolName = argv[3];
618
+ if (!toolName || toolName === "--help" || toolName === "-h" || toolName === "all") {
619
+ console.log(formatFullComparisonMatrix());
620
+ }
621
+ else {
622
+ const profile = TOOL_PROFILES.find((t) => t.name.toLowerCase() === toolName.toLowerCase());
623
+ if (!profile) {
624
+ console.error(`Unknown tool: ${toolName}`);
625
+ console.error(`Available: ${TOOL_PROFILES.map((t) => t.name).join(", ")}, all`);
626
+ process.exit(1);
627
+ }
628
+ console.log(formatComparisonReport(toolName));
629
+ }
630
+ process.exit(0);
631
+ }
632
+ // ─── Trend Command ───────────────────────────────────────────────────
633
+ if (args.command === "trend") {
634
+ const { loadSnapshotStore, computeTrend, formatTrendReport, formatTrendReportHtml, detectRegressions, formatRegressionAlerts, } = await import("./commands/snapshot.js");
635
+ const snapshotFile = argv.find((a, i) => i >= 3 && !a.startsWith("-") && !["html", "json", "text"].includes(a)) ||
636
+ ".judges-snapshots.json";
637
+ const formatArg = argv.includes("--format") ? argv[argv.indexOf("--format") + 1] : "text";
638
+ const outputArg = argv.includes("--output") ? argv[argv.indexOf("--output") + 1] : undefined;
639
+ const store = loadSnapshotStore(snapshotFile);
640
+ if (store.snapshots.length === 0) {
641
+ console.log("No snapshot data found. Run evaluations with --snapshot to collect trend data.");
642
+ console.log(` Expected file: ${snapshotFile}`);
643
+ }
644
+ else {
645
+ const report = computeTrend(store);
646
+ let output;
647
+ if (formatArg === "html") {
648
+ output = formatTrendReportHtml(report);
649
+ }
650
+ else if (formatArg === "json") {
651
+ output = JSON.stringify(report, null, 2);
652
+ }
653
+ else {
654
+ output = formatTrendReport(report);
655
+ }
656
+ if (outputArg) {
657
+ writeFileSync(outputArg, output, "utf-8");
658
+ console.log(` āœ… Trend report written to ${outputArg}`);
659
+ }
660
+ else {
661
+ console.log(output);
662
+ }
663
+ // Regression alerts
664
+ const regressions = detectRegressions(store);
665
+ if (regressions.length > 0) {
666
+ console.log(formatRegressionAlerts(regressions));
667
+ if (args.failOnFindings && regressions.some((r) => r.severity === "error")) {
668
+ process.exit(1);
669
+ }
670
+ }
671
+ }
672
+ process.exit(0);
673
+ }
674
+ // ─── Command Table Dispatch ─────────────────────────────────────────────────
675
+ const tableEntry = args.command ? COMMAND_TABLE[args.command] : undefined;
676
+ if (tableEntry) {
677
+ const [modulePath, fnName] = tableEntry;
678
+ const mod = await import(modulePath);
679
+ await mod[fnName](argv);
680
+ return;
681
+ }
682
+ // ─── List Command ────────────────────────────────────────────────────
683
+ if (args.command === "list") {
684
+ listJudges();
685
+ process.exit(0);
686
+ }
687
+ // ─── Eval Command ────────────────────────────────────────────────────
688
+ if (args.command === "eval" || args.file) {
689
+ const startTime = Date.now();
690
+ // Resolve output file if provided
691
+ const outputPath = args.output ? resolve(args.output) : undefined;
692
+ // Load config from file or preset
693
+ let evalConfig = loadEvalConfig(args);
694
+ // CLI flag override for min-severity (fallback if not provided via config)
695
+ if (args.minSeverity) {
696
+ evalConfig = evalConfig || {};
697
+ evalConfig.minSeverity = args.minSeverity;
698
+ }
699
+ // Load baseline if specified (from CLI flag — config doesn't carry baseline)
700
+ let loadedBaseline;
701
+ if (args.baseline) {
702
+ loadedBaseline = loadBaselineData(args.baseline);
703
+ }
704
+ // Build evaluation options from config
705
+ const evalOptions = evalConfig ? { config: evalConfig } : undefined;
706
+ // ── Multi-file / directory mode ──────────────────────────────────────
707
+ const target = args.file || ".";
708
+ if (target && isDirectory(target)) {
709
+ // Merge exclude/include from config if not overridden by CLI
710
+ const excludePatterns = args.exclude.length > 0 ? args.exclude : (evalConfig?.exclude ?? []);
711
+ const includePatterns = args.include.length > 0 ? args.include : (evalConfig?.include ?? []);
712
+ const maxFilesLimit = args.maxFiles ?? evalConfig?.maxFiles;
713
+ let files = collectFiles(target, {
714
+ exclude: excludePatterns,
715
+ include: includePatterns,
716
+ maxFiles: maxFilesLimit,
717
+ sample: args.sample,
718
+ });
719
+ // ── --changed-only: scope to git-changed files ──
720
+ if (args.changedOnly) {
721
+ const changedFiles = getGitChangedFiles(target);
722
+ const changedSet = new Set(changedFiles.map((f) => resolve(f)));
723
+ files = files.filter((f) => changedSet.has(resolve(f)));
724
+ }
725
+ // ── --staged-only: scope to git-staged files ──
726
+ if (args.stagedOnly) {
727
+ const stagedFiles = getStagedFiles(target);
728
+ const stagedSet = new Set(stagedFiles.map((f) => resolve(f)));
729
+ files = files.filter((f) => stagedSet.has(resolve(f)));
730
+ }
731
+ if (files.length === 0) {
732
+ console.error(`No supported source files found in: ${target}${args.changedOnly ? " (changed-only)" : ""}`);
733
+ process.exit(1);
734
+ }
735
+ if (!args.quiet) {
736
+ console.log(`\n Scanning ${files.length} file(s) in ${target}…\n`);
737
+ }
738
+ let totalFindings = 0;
739
+ let totalCritical = 0;
740
+ let totalHigh = 0;
741
+ let failCount = 0;
742
+ let totalFixed = 0;
743
+ let totalFixable = 0;
744
+ let cacheHits = 0;
745
+ const fileVerdicts = [];
746
+ // Incremental evaluation: use disk cache to skip unchanged files
747
+ const diskCache = args.noCache ? undefined : new DiskCache();
748
+ for (let idx = 0; idx < files.length; idx++) {
749
+ const filePath = files[idx];
750
+ const relPath = relative(resolve("."), filePath);
751
+ if (!args.quiet) {
752
+ process.stderr.write(` [${idx + 1}/${files.length}] ${relPath}…`);
753
+ }
754
+ const fileCode = readFileSync(filePath, "utf-8");
755
+ const fileLang = args.language || detectLanguage(filePath) || "typescript";
756
+ // Check disk cache for incremental mode (always when cache available)
757
+ const hash = contentHash(fileCode, fileLang);
758
+ let verdict;
759
+ if (diskCache) {
760
+ verdict = diskCache.get(hash);
761
+ }
762
+ if (verdict) {
763
+ cacheHits++;
764
+ }
765
+ else {
766
+ verdict = evaluateWithTribunal(fileCode, fileLang, undefined, evalOptions);
767
+ if (diskCache) {
768
+ diskCache.set(hash, verdict, relPath);
769
+ }
770
+ }
771
+ // Apply baseline suppression
772
+ if (loadedBaseline) {
773
+ for (const evaluation of verdict.evaluations) {
774
+ evaluation.findings = evaluation.findings.filter((f) => !isBaselined(f, loadedBaseline, fileCode, relPath));
775
+ }
776
+ verdict.findings = verdict.findings.filter((f) => !isBaselined(f, loadedBaseline, fileCode, relPath));
777
+ }
778
+ // Apply override suppressions for multi-file mode
779
+ {
780
+ const overrideStore = loadOverrideStore();
781
+ if (overrideStore.overrides.length > 0) {
782
+ for (const evaluation of verdict.evaluations) {
783
+ const result = applyOverrides(evaluation.findings, overrideStore, relPath);
784
+ evaluation.findings = result.active;
785
+ }
786
+ const topResult = applyOverrides(verdict.findings, overrideStore, relPath);
787
+ verdict.findings = topResult.active;
788
+ }
789
+ }
790
+ const fileFindings = verdict.evaluations.reduce((s, e) => s + e.findings.length, 0);
791
+ const fileFixable = verdict.evaluations.reduce((s, e) => s + e.findings.filter((f) => f.patch).length, 0);
792
+ totalFindings += fileFindings;
793
+ totalFixable += fileFixable;
794
+ totalCritical += verdict.criticalCount;
795
+ totalHigh += verdict.highCount;
796
+ if (verdict.overallVerdict === "fail")
797
+ failCount++;
798
+ if (!args.quiet) {
799
+ const icon = verdict.overallVerdict === "pass" ? "āœ…" : verdict.overallVerdict === "warning" ? "āš ļø" : "āŒ";
800
+ const fixSuffix = fileFixable > 0 ? `, ${fileFixable} fixable` : "";
801
+ process.stderr.write(` ${icon} ${verdict.overallScore}/100 (${fileFindings} findings${fixSuffix})\n`);
802
+ }
803
+ // Auto-fix in multi-file mode
804
+ if (args.fix) {
805
+ const allFileFindings = verdict.evaluations.flatMap((e) => e.findings);
806
+ const fixable = allFileFindings
807
+ .filter((f) => f.patch)
808
+ .map((f) => ({
809
+ ruleId: f.ruleId,
810
+ title: f.title,
811
+ severity: f.severity,
812
+ patch: f.patch,
813
+ lineNumbers: f.lineNumbers,
814
+ }));
815
+ if (fixable.length > 0) {
816
+ const patchResult = applyPatches(fileCode, fixable);
817
+ writeFileSync(filePath, patchResult.result, "utf-8");
818
+ totalFixed += patchResult.applied;
819
+ }
820
+ }
821
+ // Collect for merged output
822
+ fileVerdicts.push({ filePath: relPath, verdict });
823
+ }
824
+ const elapsed = Date.now() - startTime;
825
+ // Summary
826
+ console.log("");
827
+ console.log("╔══════════════════════════════════════════════════════════════╗");
828
+ console.log("ā•‘ Judges Panel — Multi-File Summary ā•‘");
829
+ console.log("ā•šā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•ā•");
830
+ console.log("");
831
+ console.log(` Files : ${files.length}`);
832
+ console.log(` Findings : ${totalFindings}${totalFixable > 0 ? ` (${totalFixable} auto-fixable)` : ""}`);
833
+ console.log(` Critical : ${totalCritical}`);
834
+ console.log(` High : ${totalHigh}`);
835
+ console.log(` Failed : ${failCount} file(s)`);
836
+ if (args.fix && totalFixed > 0) {
837
+ console.log(` Fixed : ${totalFixed} patch(es) applied`);
838
+ }
839
+ if (cacheHits > 0) {
840
+ console.log(` Cached : ${cacheHits} file(s) unchanged (skipped re-evaluation)`);
841
+ }
842
+ console.log(` Time : ${elapsed}ms`);
843
+ console.log("");
844
+ // Write merged output when --output is specified
845
+ if (outputPath && fileVerdicts.length > 0) {
846
+ // Merge all per-file verdicts into a single combined verdict
847
+ const allFindings = fileVerdicts.flatMap(({ verdict: v }) => v.findings);
848
+ const allEvaluations = fileVerdicts.flatMap(({ verdict: v }) => v.evaluations);
849
+ const mergedVerdict = {
850
+ overallVerdict: failCount > 0 ? "fail" : totalFindings > 0 ? "warning" : "pass",
851
+ overallScore: fileVerdicts.length > 0
852
+ ? Math.round(fileVerdicts.reduce((s, { verdict: v }) => s + v.overallScore, 0) / fileVerdicts.length)
853
+ : 100,
854
+ summary: `Multi-file scan: ${files.length} files, ${totalFindings} findings`,
855
+ evaluations: allEvaluations,
856
+ findings: allFindings,
857
+ criticalCount: totalCritical,
858
+ highCount: totalHigh,
859
+ timestamp: new Date().toISOString(),
860
+ };
861
+ const out = formatTribunalOutput(mergedVerdict, args.format, target);
862
+ writeOutputIfSpecified(outputPath, out);
863
+ if (!args.quiet)
864
+ console.log(` āœ… Report written to ${args.output}`);
865
+ }
866
+ if (args.failOnFindings && failCount > 0)
867
+ process.exit(1);
868
+ process.exit(0);
869
+ }
870
+ // ── Single-file mode ─────────────────────────────────────────────────
871
+ const { code, resolvedPath } = readCode(args.file);
872
+ const language = args.language || detectLanguage(args.file || resolvedPath) || "typescript";
873
+ if (args.judge) {
874
+ // Single judge mode
875
+ const judge = getJudge(args.judge);
876
+ if (!judge) {
877
+ console.error(`Error: Unknown judge "${args.judge}"`);
878
+ console.error("Run 'judges list' to see available judges.");
879
+ process.exit(1);
880
+ }
881
+ const evaluation = evaluateWithJudge(judge, code, language);
882
+ // Apply baseline suppression
883
+ if (loadedBaseline) {
884
+ evaluation.findings = evaluation.findings.filter((f) => !isBaselined(f, loadedBaseline, code));
885
+ }
886
+ // Apply min-severity filter from config
887
+ if (evalConfig?.minSeverity) {
888
+ evaluation.findings = filterBySeverity(evaluation.findings, evalConfig.minSeverity);
889
+ }
890
+ // Enrich with learning context when --explain is set
891
+ if (args.explain) {
892
+ evaluation.findings = enrichWithExplanations(evaluation.findings);
893
+ }
894
+ const elapsed = Date.now() - startTime;
895
+ if (args.summary) {
896
+ printSummaryLine(evaluation.verdict, evaluation.score, evaluation.findings.length, evaluation.findings.filter((f) => f.patch).length);
897
+ }
898
+ else if (args.format === "json") {
899
+ const json = JSON.stringify(evaluation, null, 2);
900
+ if (outputPath) {
901
+ writeOutputIfSpecified(outputPath, json);
902
+ if (!args.quiet)
903
+ console.log(` āœ… JSON report written to ${args.output}`);
904
+ }
905
+ else {
906
+ console.log(json);
907
+ }
908
+ }
909
+ else if (args.format === "markdown") {
910
+ const md = formatEvaluationAsMarkdown(evaluation);
911
+ if (outputPath) {
912
+ writeOutputIfSpecified(outputPath, md);
913
+ if (!args.quiet)
914
+ console.log(` āœ… Markdown report written to ${args.output}`);
915
+ }
916
+ else {
917
+ console.log(md);
918
+ }
919
+ }
920
+ else if (args.format === "html") {
921
+ // Wrap single evaluation as a tribunal-like verdict for HTML
922
+ const wrappedVerdict = {
923
+ overallVerdict: evaluation.verdict,
924
+ overallScore: evaluation.score,
925
+ summary: evaluation.summary,
926
+ evaluations: [evaluation],
927
+ findings: evaluation.findings,
928
+ criticalCount: evaluation.findings.filter((f) => f.severity === "critical").length,
929
+ highCount: evaluation.findings.filter((f) => f.severity === "high").length,
930
+ timestamp: new Date().toISOString(),
931
+ };
932
+ const html = verdictToHtml(wrappedVerdict, resolvedPath || args.file);
933
+ if (outputPath) {
934
+ writeOutputIfSpecified(outputPath, html);
935
+ if (!args.quiet)
936
+ console.log(` āœ… HTML report written to ${args.output}`);
937
+ }
938
+ else {
939
+ console.log(html);
940
+ }
941
+ }
942
+ else if (args.format === "pdf") {
943
+ const wrappedForPdf = {
944
+ overallVerdict: evaluation.verdict,
945
+ overallScore: evaluation.score,
946
+ summary: evaluation.summary,
947
+ evaluations: [evaluation],
948
+ findings: evaluation.findings,
949
+ criticalCount: evaluation.findings.filter((f) => f.severity === "critical").length,
950
+ highCount: evaluation.findings.filter((f) => f.severity === "high").length,
951
+ timestamp: new Date().toISOString(),
952
+ };
953
+ const pdf = verdictToPdfHtml(wrappedForPdf, resolvedPath || args.file);
954
+ if (outputPath) {
955
+ writeOutputIfSpecified(outputPath, pdf);
956
+ if (!args.quiet)
957
+ console.log(` āœ… PDF (HTML) report written to ${args.output}`);
958
+ }
959
+ else {
960
+ console.log(pdf);
961
+ }
962
+ }
963
+ else {
964
+ const out = formatSingleJudgeTextOutput(evaluation);
965
+ if (outputPath) {
966
+ writeOutputIfSpecified(outputPath, out);
967
+ if (!args.quiet)
968
+ console.log(` āœ… Report written to ${args.output}`);
969
+ }
970
+ else {
971
+ console.log(out);
972
+ }
973
+ }
974
+ if (args.verbose) {
975
+ console.log(` ā± Evaluated in ${elapsed}ms`);
976
+ }
977
+ // Trace output — show pipeline decision trace
978
+ if (args.trace) {
979
+ const { buildEvaluationTrace, formatTraceText } = await import("./commands/trace.js");
980
+ const wrappedForTrace = {
981
+ overallVerdict: evaluation.verdict,
982
+ overallScore: evaluation.score,
983
+ summary: evaluation.summary,
984
+ evaluations: [evaluation],
985
+ findings: evaluation.findings,
986
+ criticalCount: evaluation.findings.filter((f) => f.severity === "critical").length,
987
+ highCount: evaluation.findings.filter((f) => f.severity === "high").length,
988
+ timestamp: new Date().toISOString(),
989
+ };
990
+ const trace = buildEvaluationTrace(wrappedForTrace, resolvedPath || args.file, language);
991
+ if (args.format === "json") {
992
+ console.log(JSON.stringify(trace, null, 2));
993
+ }
994
+ else {
995
+ console.log(formatTraceText(trace));
996
+ }
997
+ }
998
+ // Exit code — fail-on-findings or min-score
999
+ if (args.failOnFindings && evaluation.verdict === "fail")
1000
+ process.exit(1);
1001
+ if (args.minScore !== undefined && evaluation.score < args.minScore) {
1002
+ console.error(`Score ${evaluation.score} is below minimum threshold ${args.minScore}`);
1003
+ process.exit(1);
1004
+ }
1005
+ // Auto-fix if --fix flag is set (single judge mode)
1006
+ if (args.fix && resolvedPath) {
1007
+ const fixable = evaluation.findings
1008
+ .filter((f) => f.patch)
1009
+ .map((f) => ({
1010
+ ruleId: f.ruleId,
1011
+ title: f.title,
1012
+ severity: f.severity,
1013
+ patch: f.patch,
1014
+ lineNumbers: f.lineNumbers,
1015
+ }));
1016
+ if (fixable.length > 0) {
1017
+ const { result, applied, skipped } = applyPatches(code, fixable);
1018
+ writeFileSync(resolvedPath, result, "utf-8");
1019
+ console.log(`\n āœ… Applied ${applied} fix(es) to ${args.file || resolvedPath}`);
1020
+ if (skipped > 0) {
1021
+ console.log(` ā­ Skipped ${skipped} fix(es) (source text changed)`);
1022
+ }
1023
+ }
1024
+ else if (!args.quiet) {
1025
+ console.log("\n No auto-fixable findings.");
1026
+ }
1027
+ }
1028
+ }
1029
+ else {
1030
+ // Full tribunal mode
1031
+ const verdict = evaluateWithTribunal(code, language, undefined, evalOptions);
1032
+ // Apply baseline suppression
1033
+ if (loadedBaseline) {
1034
+ for (const evaluation of verdict.evaluations) {
1035
+ evaluation.findings = evaluation.findings.filter((f) => !isBaselined(f, loadedBaseline, code));
1036
+ }
1037
+ verdict.findings = verdict.findings.filter((f) => !isBaselined(f, loadedBaseline, code));
1038
+ }
1039
+ // Apply min-severity filter from config
1040
+ if (evalConfig?.minSeverity) {
1041
+ for (const evaluation of verdict.evaluations) {
1042
+ evaluation.findings = filterBySeverity(evaluation.findings, evalConfig.minSeverity);
1043
+ }
1044
+ verdict.findings = filterBySeverity(verdict.findings, evalConfig.minSeverity);
1045
+ }
1046
+ // Apply override suppressions
1047
+ {
1048
+ const overrideStore = loadOverrideStore();
1049
+ if (overrideStore.overrides.length > 0) {
1050
+ const fileSrc = resolvedPath || args.file;
1051
+ for (const evaluation of verdict.evaluations) {
1052
+ const result = applyOverrides(evaluation.findings, overrideStore, fileSrc);
1053
+ evaluation.findings = result.active;
1054
+ }
1055
+ const topResult = applyOverrides(verdict.findings, overrideStore, fileSrc);
1056
+ verdict.findings = topResult.active;
1057
+ if (topResult.overridden.length > 0 && !args.quiet) {
1058
+ console.log(` ā„¹ļø ${topResult.overridden.length} finding(s) suppressed by overrides`);
1059
+ }
1060
+ }
1061
+ }
1062
+ // Enrich with learning context when --explain is set
1063
+ if (args.explain) {
1064
+ for (const evaluation of verdict.evaluations) {
1065
+ evaluation.findings = enrichWithExplanations(evaluation.findings);
1066
+ }
1067
+ verdict.findings = enrichWithExplanations(verdict.findings);
1068
+ }
1069
+ const elapsed = Date.now() - startTime;
1070
+ if (args.summary) {
1071
+ const totalFindings = verdict.evaluations.reduce((s, e) => s + e.findings.length, 0);
1072
+ const totalFixable = verdict.evaluations.reduce((s, e) => s + e.findings.filter((f) => f.patch).length, 0);
1073
+ printSummaryLine(verdict.overallVerdict, verdict.overallScore, totalFindings, totalFixable);
1074
+ }
1075
+ else if (args.format === "html") {
1076
+ const html = verdictToHtml(verdict, resolvedPath || args.file);
1077
+ if (outputPath) {
1078
+ writeOutputIfSpecified(outputPath, html);
1079
+ if (!args.quiet)
1080
+ console.log(` āœ… HTML report written to ${args.output}`);
1081
+ }
1082
+ else {
1083
+ console.log(html);
1084
+ }
1085
+ }
1086
+ else if (args.format === "pdf") {
1087
+ const pdf = verdictToPdfHtml(verdict, resolvedPath || args.file);
1088
+ if (outputPath) {
1089
+ writeOutputIfSpecified(outputPath, pdf);
1090
+ if (!args.quiet)
1091
+ console.log(` āœ… PDF (HTML) report written to ${args.output}`);
1092
+ }
1093
+ else {
1094
+ console.log(pdf);
1095
+ }
1096
+ }
1097
+ else if (args.format === "junit") {
1098
+ const junit = verdictToJUnit(verdict, resolvedPath || args.file);
1099
+ if (outputPath) {
1100
+ writeOutputIfSpecified(outputPath, junit);
1101
+ if (!args.quiet)
1102
+ console.log(` āœ… JUnit report written to ${args.output}`);
1103
+ }
1104
+ else {
1105
+ console.log(junit);
1106
+ }
1107
+ }
1108
+ else if (args.format === "codeclimate") {
1109
+ const cc = JSON.stringify(verdictToCodeClimate(verdict, resolvedPath || args.file), null, 2);
1110
+ if (outputPath) {
1111
+ writeOutputIfSpecified(outputPath, cc);
1112
+ if (!args.quiet)
1113
+ console.log(` āœ… CodeClimate report written to ${args.output}`);
1114
+ }
1115
+ else {
1116
+ console.log(cc);
1117
+ }
1118
+ }
1119
+ else {
1120
+ const out = formatTribunalOutput(verdict, args.format, resolvedPath || args.file);
1121
+ if (outputPath) {
1122
+ writeOutputIfSpecified(outputPath, out);
1123
+ if (!args.quiet)
1124
+ console.log(` āœ… Report written to ${args.output}`);
1125
+ }
1126
+ else {
1127
+ console.log(out);
1128
+ }
1129
+ }
1130
+ if (args.verbose) {
1131
+ console.log(` ā± Evaluated in ${elapsed}ms`);
1132
+ console.log(` šŸ“Š ${verdict.evaluations.length} judges, ${verdict.findings.length} total findings`);
1133
+ }
1134
+ // Trace output — show pipeline decision trace
1135
+ if (args.trace) {
1136
+ const { buildEvaluationTrace, formatTraceText } = await import("./commands/trace.js");
1137
+ const trace = buildEvaluationTrace(verdict, resolvedPath || args.file, language);
1138
+ if (args.format === "json") {
1139
+ console.log(JSON.stringify(trace, null, 2));
1140
+ }
1141
+ else {
1142
+ console.log(formatTraceText(trace));
1143
+ }
1144
+ }
1145
+ // Exit code — fail-on-findings or min-score
1146
+ if (args.failOnFindings && verdict.overallVerdict === "fail")
1147
+ process.exit(1);
1148
+ if (args.minScore !== undefined && verdict.overallScore < args.minScore) {
1149
+ console.error(`Score ${verdict.overallScore} is below minimum threshold ${args.minScore}`);
1150
+ process.exit(1);
1151
+ }
1152
+ // Auto-fix if --fix flag is set
1153
+ if (args.fix && resolvedPath) {
1154
+ const allFindings = verdict.evaluations.flatMap((e) => e.findings);
1155
+ const fixable = allFindings
1156
+ .filter((f) => f.patch)
1157
+ .map((f) => ({
1158
+ ruleId: f.ruleId,
1159
+ title: f.title,
1160
+ severity: f.severity,
1161
+ patch: f.patch,
1162
+ lineNumbers: f.lineNumbers,
1163
+ }));
1164
+ if (fixable.length > 0) {
1165
+ const { result, applied, skipped } = applyPatches(code, fixable);
1166
+ writeFileSync(resolvedPath, result, "utf-8");
1167
+ console.log(`\n āœ… Applied ${applied} fix(es) to ${args.file || resolvedPath}`);
1168
+ if (skipped > 0) {
1169
+ console.log(` ā­ Skipped ${skipped} fix(es) (source text changed)`);
1170
+ }
1171
+ }
1172
+ else if (!args.quiet) {
1173
+ console.log("\n No auto-fixable findings.");
1174
+ }
1175
+ }
1176
+ }
1177
+ process.exit(0);
1178
+ }
1179
+ // Unknown command
1180
+ console.error(`Unknown command: ${args.command}`);
1181
+ printHelp();
1182
+ process.exit(1);
1183
+ }
1184
+ // ─── Baseline Support ───────────────────────────────────────────────────────
1185
+ // Baseline loading and matching is now handled by src/commands/baseline.ts
1186
+ // Exports: loadBaselineData, isBaselined, LoadedBaseline
1187
+ // ─── Summary Line Output ───────────────────────────────────────────────────
1188
+ function printSummaryLine(verdict, score, findings, fixable = 0) {
1189
+ const icon = verdict === "pass" ? "āœ…" : verdict === "warning" ? "āš ļø" : "āŒ";
1190
+ const fixSuffix = fixable > 0 ? `, ${fixable} auto-fixable` : "";
1191
+ console.log(`${icon} ${verdict.toUpperCase()} ${score}/100 (${findings} findings${fixSuffix})`);
1192
+ }
1193
+ // ─── Config / Preset Loader ────────────────────────────────────────────────
1194
+ function loadEvalConfig(args) {
1195
+ let config;
1196
+ // 1. Load from CLI --preset (supports comma-separated composition: "security-only,performance")
1197
+ if (args.preset) {
1198
+ const presetNames = args.preset.split(",").map((n) => n.trim());
1199
+ if (presetNames.length === 1) {
1200
+ const preset = getPreset(presetNames[0]);
1201
+ if (!preset) {
1202
+ console.error(`Unknown preset: ${presetNames[0]}`);
1203
+ console.error(`Available: ${listPresets()
1204
+ .map((p) => p.name)
1205
+ .join(", ")}`);
1206
+ process.exit(1);
1207
+ }
1208
+ config = { ...preset.config };
1209
+ }
1210
+ else {
1211
+ // Multi-preset composition
1212
+ const composed = composePresets(presetNames);
1213
+ if (!composed) {
1214
+ console.error(`No valid presets found in: ${args.preset}`);
1215
+ console.error(`Available: ${listPresets()
1216
+ .map((p) => p.name)
1217
+ .join(", ")}`);
1218
+ process.exit(1);
1219
+ }
1220
+ config = { ...composed.config };
1221
+ }
1222
+ }
1223
+ // 2. Load from --config file (overrides preset)
1224
+ if (args.config) {
1225
+ const configPath = resolve(args.config);
1226
+ if (!existsSync(configPath)) {
1227
+ console.error(`Config file not found: ${configPath}`);
1228
+ process.exit(1);
1229
+ }
1230
+ const fileConfig = parseConfig(readFileSync(configPath, "utf-8"));
1231
+ config = config ? { ...config, ...fileConfig } : fileConfig;
1232
+ }
1233
+ // 3. Auto-discover .judgesrc or .judgesrc.json if no explicit config
1234
+ if (!config && !args.config) {
1235
+ for (const name of [".judgesrc", ".judgesrc.json"]) {
1236
+ const p = resolve(name);
1237
+ if (existsSync(p)) {
1238
+ try {
1239
+ config = parseConfig(readFileSync(p, "utf-8"));
1240
+ }
1241
+ catch {
1242
+ // Silently skip invalid auto-discovered configs
1243
+ }
1244
+ break;
1245
+ }
1246
+ }
1247
+ }
1248
+ // 3b. No config found anywhere — apply onboarding preset for first-time users
1249
+ if (!config && !args.config && !args.preset) {
1250
+ const onboarding = getPreset("onboarding");
1251
+ if (onboarding) {
1252
+ config = { ...onboarding.config };
1253
+ console.error("ℹ No .judgesrc found — using onboarding preset (high-severity only). Run 'judges init' for full control.");
1254
+ }
1255
+ }
1256
+ // 4. Apply config.preset if no CLI --preset was given
1257
+ if (config?.preset && !args.preset) {
1258
+ const presetNames = config.preset.split(",").map((n) => n.trim());
1259
+ let presetConfig;
1260
+ if (presetNames.length === 1) {
1261
+ const preset = getPreset(presetNames[0]);
1262
+ if (preset)
1263
+ presetConfig = { ...preset.config };
1264
+ }
1265
+ else {
1266
+ const composed = composePresets(presetNames);
1267
+ if (composed)
1268
+ presetConfig = { ...composed.config };
1269
+ }
1270
+ if (presetConfig) {
1271
+ // Preset is the base; config file properties override it
1272
+ const { preset: _p, ...rest } = config;
1273
+ config = { ...presetConfig, ...rest };
1274
+ }
1275
+ }
1276
+ // 5. Apply config-based defaults to CLI args (CLI flags always win)
1277
+ if (config) {
1278
+ if (config.failOnFindings && !args.failOnFindings) {
1279
+ args.failOnFindings = true;
1280
+ }
1281
+ if (config.baseline && !args.baseline) {
1282
+ args.baseline = config.baseline;
1283
+ }
1284
+ if (config.format && args.format === "text") {
1285
+ // Only apply config format if CLI didn't explicitly set one
1286
+ args.format = config.format;
1287
+ }
1288
+ if (config.failOnScoreBelow !== undefined && args.minScore === undefined) {
1289
+ // Config uses 0-10 scale; CLI --min-score uses 0-100 (matches overallScore)
1290
+ args.minScore = config.failOnScoreBelow * 10;
1291
+ }
1292
+ }
1293
+ return config;
1294
+ }
1295
+ // ─── Explain Mode — Learning Context Enrichment ─────────────────────────────
1296
+ const RULE_PREFIX_CONTEXT = {
1297
+ SEC: {
1298
+ owasp: "A03:2021 Injection",
1299
+ cwe: "CWE-79/CWE-89",
1300
+ learn: "Input validation prevents injection attacks where untrusted data is sent to an interpreter.",
1301
+ },
1302
+ AUTH: {
1303
+ owasp: "A07:2021 Identification and Authentication Failures",
1304
+ cwe: "CWE-287",
1305
+ learn: "Authentication flaws let attackers compromise passwords, keys, or session tokens.",
1306
+ },
1307
+ CRYPTO: {
1308
+ owasp: "A02:2021 Cryptographic Failures",
1309
+ cwe: "CWE-327/CWE-328",
1310
+ learn: "Weak or missing cryptography exposes sensitive data to interception and tampering.",
1311
+ },
1312
+ DATA: {
1313
+ owasp: "A02:2021 Cryptographic Failures",
1314
+ cwe: "CWE-200/CWE-312",
1315
+ learn: "Sensitive data exposure occurs when applications do not adequately protect data at rest or in transit.",
1316
+ },
1317
+ CYBER: {
1318
+ owasp: "A01:2021 Broken Access Control",
1319
+ cwe: "CWE-284",
1320
+ learn: "Access control enforces policy so users cannot act outside their intended permissions.",
1321
+ },
1322
+ INJ: {
1323
+ owasp: "A03:2021 Injection",
1324
+ cwe: "CWE-89/CWE-78",
1325
+ learn: "Injection flaws occur when hostile data is sent to an interpreter as part of a command or query.",
1326
+ },
1327
+ XSS: {
1328
+ owasp: "A03:2021 Injection",
1329
+ cwe: "CWE-79",
1330
+ learn: "Cross-site scripting (XSS) lets attackers inject scripts into web pages viewed by other users.",
1331
+ },
1332
+ SSRF: {
1333
+ owasp: "A10:2021 Server-Side Request Forgery",
1334
+ cwe: "CWE-918",
1335
+ learn: "SSRF lets attackers make the server send requests to unintended locations, potentially accessing internal services.",
1336
+ },
1337
+ PERF: { learn: "Performance issues cause slow response times, high resource usage, or scalability bottlenecks." },
1338
+ A11Y: {
1339
+ learn: "Accessibility ensures applications are usable by people with disabilities, per WCAG 2.1 guidelines.",
1340
+ },
1341
+ DOC: { learn: "Good documentation improves maintainability, onboarding, and reduces defect rates." },
1342
+ TEST: { learn: "Adequate test coverage catches regressions, validates behaviour, and enables safe refactoring." },
1343
+ AICS: {
1344
+ owasp: "OWASP AI Security",
1345
+ learn: "AI code safety rules detect prompt injection, model poisoning, and unsafe AI integration patterns.",
1346
+ },
1347
+ IAC: {
1348
+ learn: "Infrastructure as Code security ensures cloud resources are provisioned with least-privilege, encryption, and audit logging.",
1349
+ },
1350
+ SOV: {
1351
+ learn: "Data sovereignty rules verify data residency, jurisdictional compliance, and cross-border transfer controls.",
1352
+ },
1353
+ COMP: { learn: "Compliance rules enforce regulatory requirements like GDPR, HIPAA, PCI-DSS, and SOC 2." },
1354
+ INTENT: {
1355
+ learn: "Intent alignment detects mismatches between declared purpose (names, comments) and actual implementation.",
1356
+ },
1357
+ DSEC: {
1358
+ learn: "Dependency security rules flag known-vulnerable packages, outdated dependencies, and supply-chain risks.",
1359
+ },
1360
+ MFPR: {
1361
+ learn: "Model fingerprint detection identifies stylistic patterns characteristic of specific AI generators (GPT, Claude, Copilot, Gemini).",
1362
+ },
1363
+ API: {
1364
+ learn: "API contract rules enforce input validation, proper status codes, content-type, rate limiting, and versioning on REST endpoints.",
1365
+ },
1366
+ COH: {
1367
+ learn: "Coherence rules detect contradictory assignments, dead code, duplicate definitions, and other self-inconsistent patterns.",
1368
+ },
1369
+ HALLU: {
1370
+ learn: "Hallucination detection catches fabricated APIs, non-existent imports, and phantom methods commonly generated by AI models.",
1371
+ },
1372
+ };
1373
+ function enrichWithExplanations(findings) {
1374
+ return findings.map((f) => {
1375
+ const prefix = f.ruleId.replace(/-\d+$/, "");
1376
+ const ctx = RULE_PREFIX_CONTEXT[prefix];
1377
+ const parts = [f.description];
1378
+ // Layer 2: evidence-based explanation
1379
+ if (f.confidence !== undefined) {
1380
+ parts.push(`\nšŸŽÆ Confidence: ${Math.round(f.confidence * 100)}%`);
1381
+ }
1382
+ if (f.provenance) {
1383
+ parts.push(`šŸ” Detection: ${f.provenance}`);
1384
+ }
1385
+ if (f.evidenceBasis) {
1386
+ parts.push(`šŸ“Š Evidence: ${f.evidenceBasis}`);
1387
+ }
1388
+ if (f.evidenceChain && f.evidenceChain.steps.length > 0) {
1389
+ parts.push(`\n⚔ Why this matters: ${f.evidenceChain.impactStatement}`);
1390
+ parts.push(" Evidence chain:");
1391
+ for (const step of f.evidenceChain.steps.slice(0, 5)) {
1392
+ const loc = step.line ? ` (L${step.line})` : "";
1393
+ parts.push(` → [${step.source}]${loc} ${step.observation}`);
1394
+ }
1395
+ }
1396
+ // Layer 1: OWASP/CWE reference context
1397
+ if (ctx) {
1398
+ if (ctx.owasp)
1399
+ parts.push(`\nšŸ“š OWASP: ${ctx.owasp}`);
1400
+ if (ctx.cwe)
1401
+ parts.push(`CWE: ${ctx.cwe}`);
1402
+ parts.push(`šŸ’” ${ctx.learn}`);
1403
+ }
1404
+ return {
1405
+ ...f,
1406
+ description: parts.join(" "),
1407
+ reference: f.reference || (ctx ? [ctx.owasp, ctx.cwe].filter(Boolean).join(" / ") : undefined) || f.reference,
1408
+ };
1409
+ });
1410
+ }
1411
+ // ─── Severity Filter ────────────────────────────────────────────────────────
1412
+ const SEVERITY_ORDER = ["critical", "high", "medium", "low", "info"];
1413
+ function filterBySeverity(findings, minSeverity) {
1414
+ const minIndex = SEVERITY_ORDER.indexOf(minSeverity);
1415
+ if (minIndex < 0)
1416
+ return findings;
1417
+ return findings.filter((f) => {
1418
+ const idx = SEVERITY_ORDER.indexOf(f.severity);
1419
+ return idx >= 0 && idx <= minIndex;
1420
+ });
1421
+ }
1422
+ // ─── CI Templates CLI ──────────────────────────────────────────────────────
1423
+ async function runCiTemplates(argv) {
1424
+ const provider = argv[3];
1425
+ if (!provider || provider === "--help" || provider === "-h") {
1426
+ console.log(`
1427
+ Judges Panel — CI Template Generator
1428
+
1429
+ USAGE:
1430
+ `);
1431
+ process.exit(0);
1432
+ }
1433
+ switch (provider) {
1434
+ case "github":
1435
+ console.log(generateGitHubActions());
1436
+ break;
1437
+ case "gitlab":
1438
+ console.log((await import("./commands/ci-templates.js")).generateGitLabCi());
1439
+ break;
1440
+ case "azure":
1441
+ console.log((await import("./commands/ci-templates.js")).generateAzurePipelines());
1442
+ break;
1443
+ case "bitbucket":
1444
+ console.log((await import("./commands/ci-templates.js")).generateBitbucketPipelines());
1445
+ break;
1446
+ default:
1447
+ console.error(`Unknown provider: ${provider}`);
1448
+ console.error("Supported: github, gitlab, azure, bitbucket");
1449
+ process.exit(1);
1450
+ }
1451
+ process.exit(0);
1452
+ }
1453
+ function generateGitHubActions() {
1454
+ return `# .github/workflows/judges.yml
1455
+ name: Judges Panel Code Review
1456
+
1457
+ on:
1458
+ pull_request:
1459
+ branches: [main]
1460
+ push:
1461
+ branches: [main]
1462
+
1463
+ jobs:
1464
+ runs-on: ubuntu-latest
1465
+ steps:
1466
+ - uses: actions/checkout@v4
1467
+
1468
+ - uses: actions/setup-node@v4
1469
+ with:
1470
+ node-version: '22'
1471
+
1472
+ - name: Install Judges
1473
+ run: npm install -g @kevinrabun/judges-cli
1474
+
1475
+ - name: Run Judges Evaluation
1476
+ run: |
1477
+ for file in $(git diff --name-only HEAD~1 -- '*.ts' '*.js' '*.py' '*.go' '*.rs' '*.java' '*.cs'); do
1478
+ judges eval --file "$file" --format sarif --fail-on-findings >> results.sarif || true
1479
+ done
1480
+
1481
+ - name: Upload SARIF
1482
+ if: always()
1483
+ uses: github/codeql-action/upload-sarif@v3
1484
+ with:
1485
+ sarif_file: results.sarif
1486
+ `;
1487
+ }