vaspera 2.5.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 (712) hide show
  1. package/CHANGELOG.md +184 -0
  2. package/LICENSE +21 -0
  3. package/README.md +809 -0
  4. package/dist/__tests__/integration/certification-flow.test.d.ts +5 -0
  5. package/dist/__tests__/integration/certification-flow.test.d.ts.map +1 -0
  6. package/dist/__tests__/integration/certification-flow.test.js +245 -0
  7. package/dist/__tests__/integration/certification-flow.test.js.map +1 -0
  8. package/dist/__tests__/integration/commands.test.d.ts +5 -0
  9. package/dist/__tests__/integration/commands.test.d.ts.map +1 -0
  10. package/dist/__tests__/integration/commands.test.js +93 -0
  11. package/dist/__tests__/integration/commands.test.js.map +1 -0
  12. package/dist/action/diff-mode.d.ts +34 -0
  13. package/dist/action/diff-mode.d.ts.map +1 -0
  14. package/dist/action/diff-mode.js +201 -0
  15. package/dist/action/diff-mode.js.map +1 -0
  16. package/dist/action/diff-mode.test.d.ts +5 -0
  17. package/dist/action/diff-mode.test.d.ts.map +1 -0
  18. package/dist/action/diff-mode.test.js +162 -0
  19. package/dist/action/diff-mode.test.js.map +1 -0
  20. package/dist/action/index.d.ts +10 -0
  21. package/dist/action/index.d.ts.map +1 -0
  22. package/dist/action/index.js +231 -0
  23. package/dist/action/index.js.map +1 -0
  24. package/dist/action/pr-comment.d.ts +30 -0
  25. package/dist/action/pr-comment.d.ts.map +1 -0
  26. package/dist/action/pr-comment.js +301 -0
  27. package/dist/action/pr-comment.js.map +1 -0
  28. package/dist/action/pr-comment.test.d.ts +5 -0
  29. package/dist/action/pr-comment.test.d.ts.map +1 -0
  30. package/dist/action/pr-comment.test.js +189 -0
  31. package/dist/action/pr-comment.test.js.map +1 -0
  32. package/dist/action/sarif-upload.d.ts +104 -0
  33. package/dist/action/sarif-upload.d.ts.map +1 -0
  34. package/dist/action/sarif-upload.js +188 -0
  35. package/dist/action/sarif-upload.js.map +1 -0
  36. package/dist/action/sarif-upload.test.d.ts +5 -0
  37. package/dist/action/sarif-upload.test.d.ts.map +1 -0
  38. package/dist/action/sarif-upload.test.js +206 -0
  39. package/dist/action/sarif-upload.test.js.map +1 -0
  40. package/dist/action/types.d.ts +104 -0
  41. package/dist/action/types.d.ts.map +1 -0
  42. package/dist/action/types.js +33 -0
  43. package/dist/action/types.js.map +1 -0
  44. package/dist/action/types.test.d.ts +5 -0
  45. package/dist/action/types.test.d.ts.map +1 -0
  46. package/dist/action/types.test.js +79 -0
  47. package/dist/action/types.test.js.map +1 -0
  48. package/dist/agents/agent-integrity.d.ts +111 -0
  49. package/dist/agents/agent-integrity.d.ts.map +1 -0
  50. package/dist/agents/agent-integrity.js +308 -0
  51. package/dist/agents/agent-integrity.js.map +1 -0
  52. package/dist/agents/agent-privacy.d.ts +68 -0
  53. package/dist/agents/agent-privacy.d.ts.map +1 -0
  54. package/dist/agents/agent-privacy.js +345 -0
  55. package/dist/agents/agent-privacy.js.map +1 -0
  56. package/dist/agents/exploit-chain.d.ts +64 -0
  57. package/dist/agents/exploit-chain.d.ts.map +1 -0
  58. package/dist/agents/exploit-chain.js +477 -0
  59. package/dist/agents/exploit-chain.js.map +1 -0
  60. package/dist/agents/exploit-chain.test.d.ts +5 -0
  61. package/dist/agents/exploit-chain.test.d.ts.map +1 -0
  62. package/dist/agents/exploit-chain.test.js +455 -0
  63. package/dist/agents/exploit-chain.test.js.map +1 -0
  64. package/dist/agents/index.d.ts +14 -0
  65. package/dist/agents/index.d.ts.map +1 -0
  66. package/dist/agents/index.js +19 -0
  67. package/dist/agents/index.js.map +1 -0
  68. package/dist/agents/logic-flaw-detector.d.ts +55 -0
  69. package/dist/agents/logic-flaw-detector.d.ts.map +1 -0
  70. package/dist/agents/logic-flaw-detector.js +454 -0
  71. package/dist/agents/logic-flaw-detector.js.map +1 -0
  72. package/dist/agents/zero-day-hunter.d.ts +69 -0
  73. package/dist/agents/zero-day-hunter.d.ts.map +1 -0
  74. package/dist/agents/zero-day-hunter.js +591 -0
  75. package/dist/agents/zero-day-hunter.js.map +1 -0
  76. package/dist/certification/artifacts.d.ts +21 -0
  77. package/dist/certification/artifacts.d.ts.map +1 -0
  78. package/dist/certification/artifacts.js +275 -0
  79. package/dist/certification/artifacts.js.map +1 -0
  80. package/dist/certification/autofix.d.ts +122 -0
  81. package/dist/certification/autofix.d.ts.map +1 -0
  82. package/dist/certification/autofix.js +476 -0
  83. package/dist/certification/autofix.js.map +1 -0
  84. package/dist/certification/badge.d.ts +56 -0
  85. package/dist/certification/badge.d.ts.map +1 -0
  86. package/dist/certification/badge.js +155 -0
  87. package/dist/certification/badge.js.map +1 -0
  88. package/dist/certification/cache.d.ts +121 -0
  89. package/dist/certification/cache.d.ts.map +1 -0
  90. package/dist/certification/cache.js +275 -0
  91. package/dist/certification/cache.js.map +1 -0
  92. package/dist/certification/cache.test.d.ts +5 -0
  93. package/dist/certification/cache.test.d.ts.map +1 -0
  94. package/dist/certification/cache.test.js +270 -0
  95. package/dist/certification/cache.test.js.map +1 -0
  96. package/dist/certification/consensus.d.ts +105 -0
  97. package/dist/certification/consensus.d.ts.map +1 -0
  98. package/dist/certification/consensus.js +353 -0
  99. package/dist/certification/consensus.js.map +1 -0
  100. package/dist/certification/consensus.test.d.ts +5 -0
  101. package/dist/certification/consensus.test.d.ts.map +1 -0
  102. package/dist/certification/consensus.test.js +342 -0
  103. package/dist/certification/consensus.test.js.map +1 -0
  104. package/dist/certification/index.d.ts +14 -0
  105. package/dist/certification/index.d.ts.map +1 -0
  106. package/dist/certification/index.js +14 -0
  107. package/dist/certification/index.js.map +1 -0
  108. package/dist/certification/rules.d.ts +89 -0
  109. package/dist/certification/rules.d.ts.map +1 -0
  110. package/dist/certification/rules.js +317 -0
  111. package/dist/certification/rules.js.map +1 -0
  112. package/dist/certification/sarif.d.ts +107 -0
  113. package/dist/certification/sarif.d.ts.map +1 -0
  114. package/dist/certification/sarif.js +191 -0
  115. package/dist/certification/sarif.js.map +1 -0
  116. package/dist/certification/store.d.ts +255 -0
  117. package/dist/certification/store.d.ts.map +1 -0
  118. package/dist/certification/store.js +835 -0
  119. package/dist/certification/store.js.map +1 -0
  120. package/dist/certification/store.test.d.ts +5 -0
  121. package/dist/certification/store.test.d.ts.map +1 -0
  122. package/dist/certification/store.test.js +468 -0
  123. package/dist/certification/store.test.js.map +1 -0
  124. package/dist/certification/summary.d.ts +72 -0
  125. package/dist/certification/summary.d.ts.map +1 -0
  126. package/dist/certification/summary.js +296 -0
  127. package/dist/certification/summary.js.map +1 -0
  128. package/dist/certification/types.d.ts +138 -0
  129. package/dist/certification/types.d.ts.map +1 -0
  130. package/dist/certification/types.js +34 -0
  131. package/dist/certification/types.js.map +1 -0
  132. package/dist/commands/audits/api-check.d.ts +3 -0
  133. package/dist/commands/audits/api-check.d.ts.map +1 -0
  134. package/dist/commands/audits/api-check.js +71 -0
  135. package/dist/commands/audits/api-check.js.map +1 -0
  136. package/dist/commands/audits/deadcode.d.ts +3 -0
  137. package/dist/commands/audits/deadcode.d.ts.map +1 -0
  138. package/dist/commands/audits/deadcode.js +63 -0
  139. package/dist/commands/audits/deadcode.js.map +1 -0
  140. package/dist/commands/audits/deps.d.ts +3 -0
  141. package/dist/commands/audits/deps.d.ts.map +1 -0
  142. package/dist/commands/audits/deps.js +56 -0
  143. package/dist/commands/audits/deps.js.map +1 -0
  144. package/dist/commands/audits/errors.d.ts +3 -0
  145. package/dist/commands/audits/errors.d.ts.map +1 -0
  146. package/dist/commands/audits/errors.js +65 -0
  147. package/dist/commands/audits/errors.js.map +1 -0
  148. package/dist/commands/audits/index.d.ts +3 -0
  149. package/dist/commands/audits/index.d.ts.map +1 -0
  150. package/dist/commands/audits/index.js +15 -0
  151. package/dist/commands/audits/index.js.map +1 -0
  152. package/dist/commands/audits/perf.d.ts +3 -0
  153. package/dist/commands/audits/perf.d.ts.map +1 -0
  154. package/dist/commands/audits/perf.js +85 -0
  155. package/dist/commands/audits/perf.js.map +1 -0
  156. package/dist/commands/audits/secrets.d.ts +3 -0
  157. package/dist/commands/audits/secrets.d.ts.map +1 -0
  158. package/dist/commands/audits/secrets.js +71 -0
  159. package/dist/commands/audits/secrets.js.map +1 -0
  160. package/dist/commands/certification/certify.d.ts +3 -0
  161. package/dist/commands/certification/certify.d.ts.map +1 -0
  162. package/dist/commands/certification/certify.js +108 -0
  163. package/dist/commands/certification/certify.js.map +1 -0
  164. package/dist/commands/certification/index.d.ts +3 -0
  165. package/dist/commands/certification/index.d.ts.map +1 -0
  166. package/dist/commands/certification/index.js +17 -0
  167. package/dist/commands/certification/index.js.map +1 -0
  168. package/dist/commands/certification/performance.d.ts +3 -0
  169. package/dist/commands/certification/performance.d.ts.map +1 -0
  170. package/dist/commands/certification/performance.js +89 -0
  171. package/dist/commands/certification/performance.js.map +1 -0
  172. package/dist/commands/certification/quality.d.ts +3 -0
  173. package/dist/commands/certification/quality.d.ts.map +1 -0
  174. package/dist/commands/certification/quality.js +92 -0
  175. package/dist/commands/certification/quality.js.map +1 -0
  176. package/dist/commands/certification/redteam.d.ts +3 -0
  177. package/dist/commands/certification/redteam.d.ts.map +1 -0
  178. package/dist/commands/certification/redteam.js +114 -0
  179. package/dist/commands/certification/redteam.js.map +1 -0
  180. package/dist/commands/certification/reliability.d.ts +3 -0
  181. package/dist/commands/certification/reliability.d.ts.map +1 -0
  182. package/dist/commands/certification/reliability.js +93 -0
  183. package/dist/commands/certification/reliability.js.map +1 -0
  184. package/dist/commands/certification/security.d.ts +3 -0
  185. package/dist/commands/certification/security.d.ts.map +1 -0
  186. package/dist/commands/certification/security.js +90 -0
  187. package/dist/commands/certification/security.js.map +1 -0
  188. package/dist/commands/certification/typesafety.d.ts +3 -0
  189. package/dist/commands/certification/typesafety.d.ts.map +1 -0
  190. package/dist/commands/certification/typesafety.js +87 -0
  191. package/dist/commands/certification/typesafety.js.map +1 -0
  192. package/dist/commands/core/add-tests.d.ts +3 -0
  193. package/dist/commands/core/add-tests.d.ts.map +1 -0
  194. package/dist/commands/core/add-tests.js +29 -0
  195. package/dist/commands/core/add-tests.js.map +1 -0
  196. package/dist/commands/core/audit.d.ts +3 -0
  197. package/dist/commands/core/audit.d.ts.map +1 -0
  198. package/dist/commands/core/audit.js +64 -0
  199. package/dist/commands/core/audit.js.map +1 -0
  200. package/dist/commands/core/fix-critical.d.ts +3 -0
  201. package/dist/commands/core/fix-critical.d.ts.map +1 -0
  202. package/dist/commands/core/fix-critical.js +22 -0
  203. package/dist/commands/core/fix-critical.js.map +1 -0
  204. package/dist/commands/core/fix-high.d.ts +3 -0
  205. package/dist/commands/core/fix-high.d.ts.map +1 -0
  206. package/dist/commands/core/fix-high.js +32 -0
  207. package/dist/commands/core/fix-high.js.map +1 -0
  208. package/dist/commands/core/fix-medium.d.ts +3 -0
  209. package/dist/commands/core/fix-medium.d.ts.map +1 -0
  210. package/dist/commands/core/fix-medium.js +29 -0
  211. package/dist/commands/core/fix-medium.js.map +1 -0
  212. package/dist/commands/core/fix-rls.d.ts +3 -0
  213. package/dist/commands/core/fix-rls.d.ts.map +1 -0
  214. package/dist/commands/core/fix-rls.js +17 -0
  215. package/dist/commands/core/fix-rls.js.map +1 -0
  216. package/dist/commands/core/harden.d.ts +3 -0
  217. package/dist/commands/core/harden.d.ts.map +1 -0
  218. package/dist/commands/core/harden.js +19 -0
  219. package/dist/commands/core/harden.js.map +1 -0
  220. package/dist/commands/core/index.d.ts +3 -0
  221. package/dist/commands/core/index.d.ts.map +1 -0
  222. package/dist/commands/core/index.js +21 -0
  223. package/dist/commands/core/index.js.map +1 -0
  224. package/dist/commands/core/preflight.d.ts +3 -0
  225. package/dist/commands/core/preflight.d.ts.map +1 -0
  226. package/dist/commands/core/preflight.js +50 -0
  227. package/dist/commands/core/preflight.js.map +1 -0
  228. package/dist/commands/core/verify.d.ts +3 -0
  229. package/dist/commands/core/verify.d.ts.map +1 -0
  230. package/dist/commands/core/verify.js +32 -0
  231. package/dist/commands/core/verify.js.map +1 -0
  232. package/dist/commands/index.d.ts +28 -0
  233. package/dist/commands/index.d.ts.map +1 -0
  234. package/dist/commands/index.js +37 -0
  235. package/dist/commands/index.js.map +1 -0
  236. package/dist/commands/types.d.ts +9 -0
  237. package/dist/commands/types.d.ts.map +1 -0
  238. package/dist/commands/types.js +5 -0
  239. package/dist/commands/types.js.map +1 -0
  240. package/dist/compliance/cis.d.ts +29 -0
  241. package/dist/compliance/cis.d.ts.map +1 -0
  242. package/dist/compliance/cis.js +316 -0
  243. package/dist/compliance/cis.js.map +1 -0
  244. package/dist/compliance/frameworks/eu-ai-act.d.ts +55 -0
  245. package/dist/compliance/frameworks/eu-ai-act.d.ts.map +1 -0
  246. package/dist/compliance/frameworks/eu-ai-act.js +621 -0
  247. package/dist/compliance/frameworks/eu-ai-act.js.map +1 -0
  248. package/dist/compliance/frameworks/index.d.ts +67 -0
  249. package/dist/compliance/frameworks/index.d.ts.map +1 -0
  250. package/dist/compliance/frameworks/index.js +97 -0
  251. package/dist/compliance/frameworks/index.js.map +1 -0
  252. package/dist/compliance/frameworks/iso-42001.d.ts +59 -0
  253. package/dist/compliance/frameworks/iso-42001.d.ts.map +1 -0
  254. package/dist/compliance/frameworks/iso-42001.js +719 -0
  255. package/dist/compliance/frameworks/iso-42001.js.map +1 -0
  256. package/dist/compliance/frameworks/mitre-atlas.d.ts +58 -0
  257. package/dist/compliance/frameworks/mitre-atlas.d.ts.map +1 -0
  258. package/dist/compliance/frameworks/mitre-atlas.js +686 -0
  259. package/dist/compliance/frameworks/mitre-atlas.js.map +1 -0
  260. package/dist/compliance/frameworks/nist-ai-rmf.d.ts +51 -0
  261. package/dist/compliance/frameworks/nist-ai-rmf.d.ts.map +1 -0
  262. package/dist/compliance/frameworks/nist-ai-rmf.js +677 -0
  263. package/dist/compliance/frameworks/nist-ai-rmf.js.map +1 -0
  264. package/dist/compliance/frameworks/owasp-llm.d.ts +58 -0
  265. package/dist/compliance/frameworks/owasp-llm.d.ts.map +1 -0
  266. package/dist/compliance/frameworks/owasp-llm.js +399 -0
  267. package/dist/compliance/frameworks/owasp-llm.js.map +1 -0
  268. package/dist/compliance/gdpr.d.ts +34 -0
  269. package/dist/compliance/gdpr.d.ts.map +1 -0
  270. package/dist/compliance/gdpr.js +319 -0
  271. package/dist/compliance/gdpr.js.map +1 -0
  272. package/dist/compliance/hipaa.d.ts +29 -0
  273. package/dist/compliance/hipaa.d.ts.map +1 -0
  274. package/dist/compliance/hipaa.js +205 -0
  275. package/dist/compliance/hipaa.js.map +1 -0
  276. package/dist/compliance/index.d.ts +18 -0
  277. package/dist/compliance/index.d.ts.map +1 -0
  278. package/dist/compliance/index.js +26 -0
  279. package/dist/compliance/index.js.map +1 -0
  280. package/dist/compliance/iso27001.d.ts +30 -0
  281. package/dist/compliance/iso27001.d.ts.map +1 -0
  282. package/dist/compliance/iso27001.js +332 -0
  283. package/dist/compliance/iso27001.js.map +1 -0
  284. package/dist/compliance/mapper.d.ts +42 -0
  285. package/dist/compliance/mapper.d.ts.map +1 -0
  286. package/dist/compliance/mapper.js +269 -0
  287. package/dist/compliance/mapper.js.map +1 -0
  288. package/dist/compliance/mapper.test.d.ts +5 -0
  289. package/dist/compliance/mapper.test.d.ts.map +1 -0
  290. package/dist/compliance/mapper.test.js +360 -0
  291. package/dist/compliance/mapper.test.js.map +1 -0
  292. package/dist/compliance/pci-dss.d.ts +29 -0
  293. package/dist/compliance/pci-dss.d.ts.map +1 -0
  294. package/dist/compliance/pci-dss.js +247 -0
  295. package/dist/compliance/pci-dss.js.map +1 -0
  296. package/dist/compliance/report.d.ts +25 -0
  297. package/dist/compliance/report.d.ts.map +1 -0
  298. package/dist/compliance/report.js +254 -0
  299. package/dist/compliance/report.js.map +1 -0
  300. package/dist/compliance/report.test.d.ts +5 -0
  301. package/dist/compliance/report.test.d.ts.map +1 -0
  302. package/dist/compliance/report.test.js +128 -0
  303. package/dist/compliance/report.test.js.map +1 -0
  304. package/dist/compliance/soc2.d.ts +30 -0
  305. package/dist/compliance/soc2.d.ts.map +1 -0
  306. package/dist/compliance/soc2.js +262 -0
  307. package/dist/compliance/soc2.js.map +1 -0
  308. package/dist/compliance/soc2.test.d.ts +5 -0
  309. package/dist/compliance/soc2.test.d.ts.map +1 -0
  310. package/dist/compliance/soc2.test.js +86 -0
  311. package/dist/compliance/soc2.test.js.map +1 -0
  312. package/dist/compliance/types.d.ts +125 -0
  313. package/dist/compliance/types.d.ts.map +1 -0
  314. package/dist/compliance/types.js +10 -0
  315. package/dist/compliance/types.js.map +1 -0
  316. package/dist/config/flags.d.ts +456 -0
  317. package/dist/config/flags.d.ts.map +1 -0
  318. package/dist/config/flags.js +464 -0
  319. package/dist/config/flags.js.map +1 -0
  320. package/dist/config/index.d.ts +10 -0
  321. package/dist/config/index.d.ts.map +1 -0
  322. package/dist/config/index.js +10 -0
  323. package/dist/config/index.js.map +1 -0
  324. package/dist/config/severity-overrides.d.ts +209 -0
  325. package/dist/config/severity-overrides.d.ts.map +1 -0
  326. package/dist/config/severity-overrides.js +380 -0
  327. package/dist/config/severity-overrides.js.map +1 -0
  328. package/dist/cost/index.d.ts +11 -0
  329. package/dist/cost/index.d.ts.map +1 -0
  330. package/dist/cost/index.js +12 -0
  331. package/dist/cost/index.js.map +1 -0
  332. package/dist/cost/pricing.d.ts +57 -0
  333. package/dist/cost/pricing.d.ts.map +1 -0
  334. package/dist/cost/pricing.js +196 -0
  335. package/dist/cost/pricing.js.map +1 -0
  336. package/dist/cost/pricing.test.d.ts +5 -0
  337. package/dist/cost/pricing.test.d.ts.map +1 -0
  338. package/dist/cost/pricing.test.js +195 -0
  339. package/dist/cost/pricing.test.js.map +1 -0
  340. package/dist/cost/tracker.d.ts +100 -0
  341. package/dist/cost/tracker.d.ts.map +1 -0
  342. package/dist/cost/tracker.js +366 -0
  343. package/dist/cost/tracker.js.map +1 -0
  344. package/dist/cost/tracker.test.d.ts +5 -0
  345. package/dist/cost/tracker.test.d.ts.map +1 -0
  346. package/dist/cost/tracker.test.js +360 -0
  347. package/dist/cost/tracker.test.js.map +1 -0
  348. package/dist/cost/types.d.ts +135 -0
  349. package/dist/cost/types.d.ts.map +1 -0
  350. package/dist/cost/types.js +9 -0
  351. package/dist/cost/types.js.map +1 -0
  352. package/dist/enterprise/auth/oidc.d.ts +231 -0
  353. package/dist/enterprise/auth/oidc.d.ts.map +1 -0
  354. package/dist/enterprise/auth/oidc.js +372 -0
  355. package/dist/enterprise/auth/oidc.js.map +1 -0
  356. package/dist/enterprise/auth/oidc.test.d.ts +5 -0
  357. package/dist/enterprise/auth/oidc.test.d.ts.map +1 -0
  358. package/dist/enterprise/auth/oidc.test.js +435 -0
  359. package/dist/enterprise/auth/oidc.test.js.map +1 -0
  360. package/dist/enterprise/index.d.ts +14 -0
  361. package/dist/enterprise/index.d.ts.map +1 -0
  362. package/dist/enterprise/index.js +19 -0
  363. package/dist/enterprise/index.js.map +1 -0
  364. package/dist/enterprise/integrations/chat.d.ts +205 -0
  365. package/dist/enterprise/integrations/chat.d.ts.map +1 -0
  366. package/dist/enterprise/integrations/chat.js +624 -0
  367. package/dist/enterprise/integrations/chat.js.map +1 -0
  368. package/dist/enterprise/integrations/chat.test.d.ts +5 -0
  369. package/dist/enterprise/integrations/chat.test.d.ts.map +1 -0
  370. package/dist/enterprise/integrations/chat.test.js +557 -0
  371. package/dist/enterprise/integrations/chat.test.js.map +1 -0
  372. package/dist/enterprise/integrations/ticketing.d.ts +257 -0
  373. package/dist/enterprise/integrations/ticketing.d.ts.map +1 -0
  374. package/dist/enterprise/integrations/ticketing.js +548 -0
  375. package/dist/enterprise/integrations/ticketing.js.map +1 -0
  376. package/dist/enterprise/integrations/ticketing.test.d.ts +5 -0
  377. package/dist/enterprise/integrations/ticketing.test.d.ts.map +1 -0
  378. package/dist/enterprise/integrations/ticketing.test.js +693 -0
  379. package/dist/enterprise/integrations/ticketing.test.js.map +1 -0
  380. package/dist/enterprise/policy/opa.d.ts +194 -0
  381. package/dist/enterprise/policy/opa.d.ts.map +1 -0
  382. package/dist/enterprise/policy/opa.js +385 -0
  383. package/dist/enterprise/policy/opa.js.map +1 -0
  384. package/dist/enterprise/policy/opa.test.d.ts +5 -0
  385. package/dist/enterprise/policy/opa.test.d.ts.map +1 -0
  386. package/dist/enterprise/policy/opa.test.js +702 -0
  387. package/dist/enterprise/policy/opa.test.js.map +1 -0
  388. package/dist/enterprise/signing/kms.d.ts +211 -0
  389. package/dist/enterprise/signing/kms.d.ts.map +1 -0
  390. package/dist/enterprise/signing/kms.js +480 -0
  391. package/dist/enterprise/signing/kms.js.map +1 -0
  392. package/dist/enterprise/signing/kms.test.d.ts +5 -0
  393. package/dist/enterprise/signing/kms.test.d.ts.map +1 -0
  394. package/dist/enterprise/signing/kms.test.js +511 -0
  395. package/dist/enterprise/signing/kms.test.js.map +1 -0
  396. package/dist/eval/fixtures.d.ts +58 -0
  397. package/dist/eval/fixtures.d.ts.map +1 -0
  398. package/dist/eval/fixtures.js +571 -0
  399. package/dist/eval/fixtures.js.map +1 -0
  400. package/dist/eval/fixtures.test.d.ts +5 -0
  401. package/dist/eval/fixtures.test.d.ts.map +1 -0
  402. package/dist/eval/fixtures.test.js +193 -0
  403. package/dist/eval/fixtures.test.js.map +1 -0
  404. package/dist/eval/harness.d.ts +30 -0
  405. package/dist/eval/harness.d.ts.map +1 -0
  406. package/dist/eval/harness.js +221 -0
  407. package/dist/eval/harness.js.map +1 -0
  408. package/dist/eval/harness.test.d.ts +5 -0
  409. package/dist/eval/harness.test.d.ts.map +1 -0
  410. package/dist/eval/harness.test.js +314 -0
  411. package/dist/eval/harness.test.js.map +1 -0
  412. package/dist/eval/index.d.ts +15 -0
  413. package/dist/eval/index.d.ts.map +1 -0
  414. package/dist/eval/index.js +18 -0
  415. package/dist/eval/index.js.map +1 -0
  416. package/dist/eval/metrics.d.ts +56 -0
  417. package/dist/eval/metrics.d.ts.map +1 -0
  418. package/dist/eval/metrics.js +298 -0
  419. package/dist/eval/metrics.js.map +1 -0
  420. package/dist/eval/metrics.test.d.ts +5 -0
  421. package/dist/eval/metrics.test.d.ts.map +1 -0
  422. package/dist/eval/metrics.test.js +426 -0
  423. package/dist/eval/metrics.test.js.map +1 -0
  424. package/dist/eval/report.d.ts +30 -0
  425. package/dist/eval/report.d.ts.map +1 -0
  426. package/dist/eval/report.js +333 -0
  427. package/dist/eval/report.js.map +1 -0
  428. package/dist/eval/report.test.d.ts +5 -0
  429. package/dist/eval/report.test.d.ts.map +1 -0
  430. package/dist/eval/report.test.js +275 -0
  431. package/dist/eval/report.test.js.map +1 -0
  432. package/dist/eval/types.d.ts +234 -0
  433. package/dist/eval/types.d.ts.map +1 -0
  434. package/dist/eval/types.js +27 -0
  435. package/dist/eval/types.js.map +1 -0
  436. package/dist/http-server.d.ts +3 -0
  437. package/dist/http-server.d.ts.map +1 -0
  438. package/dist/http-server.js +127 -0
  439. package/dist/http-server.js.map +1 -0
  440. package/dist/index.d.ts +33 -0
  441. package/dist/index.d.ts.map +1 -0
  442. package/dist/index.js +4120 -0
  443. package/dist/index.js.map +1 -0
  444. package/dist/logger.d.ts +46 -0
  445. package/dist/logger.d.ts.map +1 -0
  446. package/dist/logger.js +131 -0
  447. package/dist/logger.js.map +1 -0
  448. package/dist/multimodel/consensus.d.ts +49 -0
  449. package/dist/multimodel/consensus.d.ts.map +1 -0
  450. package/dist/multimodel/consensus.js +454 -0
  451. package/dist/multimodel/consensus.js.map +1 -0
  452. package/dist/multimodel/consensus.test.d.ts +5 -0
  453. package/dist/multimodel/consensus.test.d.ts.map +1 -0
  454. package/dist/multimodel/consensus.test.js +415 -0
  455. package/dist/multimodel/consensus.test.js.map +1 -0
  456. package/dist/multimodel/index.d.ts +13 -0
  457. package/dist/multimodel/index.d.ts.map +1 -0
  458. package/dist/multimodel/index.js +14 -0
  459. package/dist/multimodel/index.js.map +1 -0
  460. package/dist/multimodel/runner.d.ts +95 -0
  461. package/dist/multimodel/runner.d.ts.map +1 -0
  462. package/dist/multimodel/runner.js +312 -0
  463. package/dist/multimodel/runner.js.map +1 -0
  464. package/dist/multimodel/runner.test.d.ts +5 -0
  465. package/dist/multimodel/runner.test.d.ts.map +1 -0
  466. package/dist/multimodel/runner.test.js +224 -0
  467. package/dist/multimodel/runner.test.js.map +1 -0
  468. package/dist/multimodel/types.d.ts +202 -0
  469. package/dist/multimodel/types.d.ts.map +1 -0
  470. package/dist/multimodel/types.js +10 -0
  471. package/dist/multimodel/types.js.map +1 -0
  472. package/dist/observability/index.d.ts +9 -0
  473. package/dist/observability/index.d.ts.map +1 -0
  474. package/dist/observability/index.js +9 -0
  475. package/dist/observability/index.js.map +1 -0
  476. package/dist/observability/otel.d.ts +102 -0
  477. package/dist/observability/otel.d.ts.map +1 -0
  478. package/dist/observability/otel.js +284 -0
  479. package/dist/observability/otel.js.map +1 -0
  480. package/dist/plugins/index.d.ts +10 -0
  481. package/dist/plugins/index.d.ts.map +1 -0
  482. package/dist/plugins/index.js +10 -0
  483. package/dist/plugins/index.js.map +1 -0
  484. package/dist/plugins/loader.d.ts +78 -0
  485. package/dist/plugins/loader.d.ts.map +1 -0
  486. package/dist/plugins/loader.js +470 -0
  487. package/dist/plugins/loader.js.map +1 -0
  488. package/dist/plugins/types.d.ts +304 -0
  489. package/dist/plugins/types.d.ts.map +1 -0
  490. package/dist/plugins/types.js +100 -0
  491. package/dist/plugins/types.js.map +1 -0
  492. package/dist/sbom/cyclonedx.d.ts +30 -0
  493. package/dist/sbom/cyclonedx.d.ts.map +1 -0
  494. package/dist/sbom/cyclonedx.js +392 -0
  495. package/dist/sbom/cyclonedx.js.map +1 -0
  496. package/dist/sbom/cyclonedx.test.d.ts +5 -0
  497. package/dist/sbom/cyclonedx.test.d.ts.map +1 -0
  498. package/dist/sbom/cyclonedx.test.js +244 -0
  499. package/dist/sbom/cyclonedx.test.js.map +1 -0
  500. package/dist/sbom/index.d.ts +13 -0
  501. package/dist/sbom/index.d.ts.map +1 -0
  502. package/dist/sbom/index.js +15 -0
  503. package/dist/sbom/index.js.map +1 -0
  504. package/dist/sbom/provenance.d.ts +37 -0
  505. package/dist/sbom/provenance.d.ts.map +1 -0
  506. package/dist/sbom/provenance.js +268 -0
  507. package/dist/sbom/provenance.js.map +1 -0
  508. package/dist/sbom/provenance.test.d.ts +5 -0
  509. package/dist/sbom/provenance.test.d.ts.map +1 -0
  510. package/dist/sbom/provenance.test.js +189 -0
  511. package/dist/sbom/provenance.test.js.map +1 -0
  512. package/dist/sbom/signing.d.ts +87 -0
  513. package/dist/sbom/signing.d.ts.map +1 -0
  514. package/dist/sbom/signing.js +354 -0
  515. package/dist/sbom/signing.js.map +1 -0
  516. package/dist/sbom/signing.test.d.ts +5 -0
  517. package/dist/sbom/signing.test.d.ts.map +1 -0
  518. package/dist/sbom/signing.test.js +170 -0
  519. package/dist/sbom/signing.test.js.map +1 -0
  520. package/dist/sbom/types.d.ts +384 -0
  521. package/dist/sbom/types.d.ts.map +1 -0
  522. package/dist/sbom/types.js +17 -0
  523. package/dist/sbom/types.js.map +1 -0
  524. package/dist/scanners/agent/credential-scope-audit.d.ts +40 -0
  525. package/dist/scanners/agent/credential-scope-audit.d.ts.map +1 -0
  526. package/dist/scanners/agent/credential-scope-audit.js +404 -0
  527. package/dist/scanners/agent/credential-scope-audit.js.map +1 -0
  528. package/dist/scanners/agent/exfil-path-graph.d.ts +50 -0
  529. package/dist/scanners/agent/exfil-path-graph.d.ts.map +1 -0
  530. package/dist/scanners/agent/exfil-path-graph.js +764 -0
  531. package/dist/scanners/agent/exfil-path-graph.js.map +1 -0
  532. package/dist/scanners/agent/index.d.ts +43 -0
  533. package/dist/scanners/agent/index.d.ts.map +1 -0
  534. package/dist/scanners/agent/index.js +616 -0
  535. package/dist/scanners/agent/index.js.map +1 -0
  536. package/dist/scanners/agent/manifest-audit.d.ts +43 -0
  537. package/dist/scanners/agent/manifest-audit.d.ts.map +1 -0
  538. package/dist/scanners/agent/manifest-audit.js +403 -0
  539. package/dist/scanners/agent/manifest-audit.js.map +1 -0
  540. package/dist/scanners/agent/payloads/index.d.ts +44 -0
  541. package/dist/scanners/agent/payloads/index.d.ts.map +1 -0
  542. package/dist/scanners/agent/payloads/index.js +184 -0
  543. package/dist/scanners/agent/payloads/index.js.map +1 -0
  544. package/dist/scanners/agent/permission-minimiser.d.ts +48 -0
  545. package/dist/scanners/agent/permission-minimiser.d.ts.map +1 -0
  546. package/dist/scanners/agent/permission-minimiser.js +551 -0
  547. package/dist/scanners/agent/permission-minimiser.js.map +1 -0
  548. package/dist/scanners/agent/prompt-injection-fuzzer.d.ts +39 -0
  549. package/dist/scanners/agent/prompt-injection-fuzzer.d.ts.map +1 -0
  550. package/dist/scanners/agent/prompt-injection-fuzzer.js +720 -0
  551. package/dist/scanners/agent/prompt-injection-fuzzer.js.map +1 -0
  552. package/dist/scanners/agent/sandbox-audit.d.ts +44 -0
  553. package/dist/scanners/agent/sandbox-audit.d.ts.map +1 -0
  554. package/dist/scanners/agent/sandbox-audit.js +425 -0
  555. package/dist/scanners/agent/sandbox-audit.js.map +1 -0
  556. package/dist/scanners/agent/supply-chain-mcp.d.ts +53 -0
  557. package/dist/scanners/agent/supply-chain-mcp.d.ts.map +1 -0
  558. package/dist/scanners/agent/supply-chain-mcp.js +479 -0
  559. package/dist/scanners/agent/supply-chain-mcp.js.map +1 -0
  560. package/dist/scanners/agent/tool-description-drift.d.ts +62 -0
  561. package/dist/scanners/agent/tool-description-drift.d.ts.map +1 -0
  562. package/dist/scanners/agent/tool-description-drift.js +365 -0
  563. package/dist/scanners/agent/tool-description-drift.js.map +1 -0
  564. package/dist/scanners/agent/types.d.ts +840 -0
  565. package/dist/scanners/agent/types.d.ts.map +1 -0
  566. package/dist/scanners/agent/types.js +149 -0
  567. package/dist/scanners/agent/types.js.map +1 -0
  568. package/dist/scanners/bandit.d.ts +25 -0
  569. package/dist/scanners/bandit.d.ts.map +1 -0
  570. package/dist/scanners/bandit.js +129 -0
  571. package/dist/scanners/bandit.js.map +1 -0
  572. package/dist/scanners/binary-analysis.d.ts +41 -0
  573. package/dist/scanners/binary-analysis.d.ts.map +1 -0
  574. package/dist/scanners/binary-analysis.js +587 -0
  575. package/dist/scanners/binary-analysis.js.map +1 -0
  576. package/dist/scanners/binary-analysis.test.d.ts +5 -0
  577. package/dist/scanners/binary-analysis.test.d.ts.map +1 -0
  578. package/dist/scanners/binary-analysis.test.js +291 -0
  579. package/dist/scanners/binary-analysis.test.js.map +1 -0
  580. package/dist/scanners/brakeman.d.ts +30 -0
  581. package/dist/scanners/brakeman.d.ts.map +1 -0
  582. package/dist/scanners/brakeman.js +271 -0
  583. package/dist/scanners/brakeman.js.map +1 -0
  584. package/dist/scanners/dependencies.d.ts +22 -0
  585. package/dist/scanners/dependencies.d.ts.map +1 -0
  586. package/dist/scanners/dependencies.js +202 -0
  587. package/dist/scanners/dependencies.js.map +1 -0
  588. package/dist/scanners/dependencies.test.d.ts +5 -0
  589. package/dist/scanners/dependencies.test.d.ts.map +1 -0
  590. package/dist/scanners/dependencies.test.js +185 -0
  591. package/dist/scanners/dependencies.test.js.map +1 -0
  592. package/dist/scanners/eslint.d.ts +25 -0
  593. package/dist/scanners/eslint.d.ts.map +1 -0
  594. package/dist/scanners/eslint.js +220 -0
  595. package/dist/scanners/eslint.js.map +1 -0
  596. package/dist/scanners/gosec.d.ts +25 -0
  597. package/dist/scanners/gosec.d.ts.map +1 -0
  598. package/dist/scanners/gosec.js +128 -0
  599. package/dist/scanners/gosec.js.map +1 -0
  600. package/dist/scanners/index.d.ts +128 -0
  601. package/dist/scanners/index.d.ts.map +1 -0
  602. package/dist/scanners/index.js +811 -0
  603. package/dist/scanners/index.js.map +1 -0
  604. package/dist/scanners/index.test.d.ts +5 -0
  605. package/dist/scanners/index.test.d.ts.map +1 -0
  606. package/dist/scanners/index.test.js +424 -0
  607. package/dist/scanners/index.test.js.map +1 -0
  608. package/dist/scanners/memory-safety.d.ts +44 -0
  609. package/dist/scanners/memory-safety.d.ts.map +1 -0
  610. package/dist/scanners/memory-safety.js +571 -0
  611. package/dist/scanners/memory-safety.js.map +1 -0
  612. package/dist/scanners/memory-safety.test.d.ts +5 -0
  613. package/dist/scanners/memory-safety.test.d.ts.map +1 -0
  614. package/dist/scanners/memory-safety.test.js +321 -0
  615. package/dist/scanners/memory-safety.test.js.map +1 -0
  616. package/dist/scanners/race-condition.d.ts +25 -0
  617. package/dist/scanners/race-condition.d.ts.map +1 -0
  618. package/dist/scanners/race-condition.js +443 -0
  619. package/dist/scanners/race-condition.js.map +1 -0
  620. package/dist/scanners/race-condition.test.d.ts +5 -0
  621. package/dist/scanners/race-condition.test.d.ts.map +1 -0
  622. package/dist/scanners/race-condition.test.js +428 -0
  623. package/dist/scanners/race-condition.test.js.map +1 -0
  624. package/dist/scanners/secrets.d.ts +25 -0
  625. package/dist/scanners/secrets.d.ts.map +1 -0
  626. package/dist/scanners/secrets.js +367 -0
  627. package/dist/scanners/secrets.js.map +1 -0
  628. package/dist/scanners/secrets.test.d.ts +5 -0
  629. package/dist/scanners/secrets.test.d.ts.map +1 -0
  630. package/dist/scanners/secrets.test.js +160 -0
  631. package/dist/scanners/secrets.test.js.map +1 -0
  632. package/dist/scanners/semgrep.d.ts +33 -0
  633. package/dist/scanners/semgrep.d.ts.map +1 -0
  634. package/dist/scanners/semgrep.js +350 -0
  635. package/dist/scanners/semgrep.js.map +1 -0
  636. package/dist/scanners/semgrep.test.d.ts +8 -0
  637. package/dist/scanners/semgrep.test.d.ts.map +1 -0
  638. package/dist/scanners/semgrep.test.js +254 -0
  639. package/dist/scanners/semgrep.test.js.map +1 -0
  640. package/dist/scanners/trivy.d.ts +26 -0
  641. package/dist/scanners/trivy.d.ts.map +1 -0
  642. package/dist/scanners/trivy.js +187 -0
  643. package/dist/scanners/trivy.js.map +1 -0
  644. package/dist/scanners/types.d.ts +210 -0
  645. package/dist/scanners/types.d.ts.map +1 -0
  646. package/dist/scanners/types.js +106 -0
  647. package/dist/scanners/types.js.map +1 -0
  648. package/dist/scanners/types.test.d.ts +5 -0
  649. package/dist/scanners/types.test.d.ts.map +1 -0
  650. package/dist/scanners/types.test.js +103 -0
  651. package/dist/scanners/types.test.js.map +1 -0
  652. package/dist/scanners/typescript.d.ts +32 -0
  653. package/dist/scanners/typescript.d.ts.map +1 -0
  654. package/dist/scanners/typescript.js +300 -0
  655. package/dist/scanners/typescript.js.map +1 -0
  656. package/dist/scanners/typescript.test.d.ts +5 -0
  657. package/dist/scanners/typescript.test.d.ts.map +1 -0
  658. package/dist/scanners/typescript.test.js +296 -0
  659. package/dist/scanners/typescript.test.js.map +1 -0
  660. package/dist/transcripts/index.d.ts +13 -0
  661. package/dist/transcripts/index.d.ts.map +1 -0
  662. package/dist/transcripts/index.js +17 -0
  663. package/dist/transcripts/index.js.map +1 -0
  664. package/dist/transcripts/logger.d.ts +190 -0
  665. package/dist/transcripts/logger.d.ts.map +1 -0
  666. package/dist/transcripts/logger.js +385 -0
  667. package/dist/transcripts/logger.js.map +1 -0
  668. package/dist/transcripts/logger.test.d.ts +5 -0
  669. package/dist/transcripts/logger.test.d.ts.map +1 -0
  670. package/dist/transcripts/logger.test.js +227 -0
  671. package/dist/transcripts/logger.test.js.map +1 -0
  672. package/dist/transcripts/redaction.d.ts +125 -0
  673. package/dist/transcripts/redaction.d.ts.map +1 -0
  674. package/dist/transcripts/redaction.js +416 -0
  675. package/dist/transcripts/redaction.js.map +1 -0
  676. package/dist/transcripts/redaction.test.d.ts +5 -0
  677. package/dist/transcripts/redaction.test.d.ts.map +1 -0
  678. package/dist/transcripts/redaction.test.js +267 -0
  679. package/dist/transcripts/redaction.test.js.map +1 -0
  680. package/dist/transcripts/signing.d.ts +108 -0
  681. package/dist/transcripts/signing.d.ts.map +1 -0
  682. package/dist/transcripts/signing.js +173 -0
  683. package/dist/transcripts/signing.js.map +1 -0
  684. package/dist/transcripts/verifier.d.ts +133 -0
  685. package/dist/transcripts/verifier.d.ts.map +1 -0
  686. package/dist/transcripts/verifier.js +489 -0
  687. package/dist/transcripts/verifier.js.map +1 -0
  688. package/dist/transcripts/verifier.test.d.ts +5 -0
  689. package/dist/transcripts/verifier.test.d.ts.map +1 -0
  690. package/dist/transcripts/verifier.test.js +330 -0
  691. package/dist/transcripts/verifier.test.js.map +1 -0
  692. package/dist/util/concurrency.d.ts +221 -0
  693. package/dist/util/concurrency.d.ts.map +1 -0
  694. package/dist/util/concurrency.js +339 -0
  695. package/dist/util/concurrency.js.map +1 -0
  696. package/dist/util/index.d.ts +12 -0
  697. package/dist/util/index.d.ts.map +1 -0
  698. package/dist/util/index.js +12 -0
  699. package/dist/util/index.js.map +1 -0
  700. package/dist/util/json.d.ts +63 -0
  701. package/dist/util/json.d.ts.map +1 -0
  702. package/dist/util/json.js +134 -0
  703. package/dist/util/json.js.map +1 -0
  704. package/dist/util/paths.d.ts +56 -0
  705. package/dist/util/paths.d.ts.map +1 -0
  706. package/dist/util/paths.js +128 -0
  707. package/dist/util/paths.js.map +1 -0
  708. package/dist/util/retry.d.ts +185 -0
  709. package/dist/util/retry.d.ts.map +1 -0
  710. package/dist/util/retry.js +338 -0
  711. package/dist/util/retry.js.map +1 -0
  712. package/package.json +79 -0
@@ -0,0 +1,353 @@
1
+ /**
2
+ * Enterprise Certification System - Consensus Algorithm
3
+ *
4
+ * This module implements the weighted multi-agent consensus algorithm for
5
+ * calculating certification scores and levels. It handles:
6
+ * - Individual agent score calculation with severity penalties
7
+ * - Cross-verification multipliers (confirmed findings penalized more, disputed less)
8
+ * - Weighted aggregation across all agents
9
+ * - Certification level determination based on thresholds and critical findings
10
+ *
11
+ * @module certification/consensus
12
+ */
13
+ import { AGENT_WEIGHTS, SEVERITY_PENALTIES, CERTIFICATION_THRESHOLDS, } from "./types.js";
14
+ /**
15
+ * Calculate the verification multiplier for a finding based on cross-verification results.
16
+ *
17
+ * The multiplier adjusts the severity penalty:
18
+ * - More confirmations from other agents = higher multiplier (max 1.6x for 3+ confirmations)
19
+ * - More disputes = lower multiplier (min 0.2x if heavily disputed)
20
+ * - No verifications or balanced = 1.0x (no adjustment)
21
+ *
22
+ * @param finding - The finding to calculate multiplier for
23
+ * @returns Multiplier value between 0.2 and 1.6
24
+ * @internal
25
+ */
26
+ function calculateVerificationMultiplier(finding) {
27
+ if (finding.verifications.length === 0)
28
+ return 1.0;
29
+ const confirmations = finding.verifications.filter((v) => v.verdict === "confirmed").length;
30
+ const disputes = finding.verifications.filter((v) => v.verdict === "disputed").length;
31
+ const net = confirmations - disputes;
32
+ // More confirmations = higher multiplier (max 1.6x for 3+ confirmations)
33
+ if (net > 0)
34
+ return Math.min(1.6, 1 + net * 0.2);
35
+ // More disputes = lower multiplier (min 0.2x if heavily disputed)
36
+ if (net < 0)
37
+ return Math.max(0.2, 1 + net * 0.3);
38
+ return 1.0;
39
+ }
40
+ /**
41
+ * Minimum findings expected per agent for a thorough audit.
42
+ * Agents reporting zero findings are flagged as potentially incomplete.
43
+ * @internal
44
+ */
45
+ const MIN_EXPECTED_FINDINGS = 1;
46
+ /**
47
+ * Calculate an individual agent's score based on its findings.
48
+ *
49
+ * Score starts at 100 and is reduced by severity penalties:
50
+ * - Critical: -25 points
51
+ * - High: -10 points
52
+ * - Medium: -3 points
53
+ * - Low: -1 point
54
+ * - Info: 0 points
55
+ *
56
+ * Each penalty is multiplied by:
57
+ * - Finding confidence (0-100 normalized to 0-1)
58
+ * - Cross-verification multiplier (0.2-1.6)
59
+ *
60
+ * Zero findings results in low confidence (50) as it may indicate incomplete audit.
61
+ *
62
+ * @param findings - Array of findings from an agent
63
+ * @returns Object with score (0-100) and confidence (0-100)
64
+ * @internal
65
+ */
66
+ function calculateAgentScore(findings) {
67
+ let score = 100;
68
+ let totalConfidence = 0;
69
+ let findingCount = 0;
70
+ for (const finding of findings) {
71
+ // Get base penalty for severity
72
+ const basePenalty = SEVERITY_PENALTIES[finding.severity];
73
+ // Adjust by confidence (0-100 normalized to 0-1)
74
+ const confidenceMultiplier = finding.confidence / 100;
75
+ // Adjust by cross-verification
76
+ const verificationMultiplier = calculateVerificationMultiplier(finding);
77
+ // Calculate final penalty
78
+ const penalty = basePenalty * confidenceMultiplier * verificationMultiplier;
79
+ score -= penalty;
80
+ totalConfidence += finding.confidence;
81
+ findingCount++;
82
+ }
83
+ // Clamp score to 0-100
84
+ score = Math.max(0, Math.min(100, score));
85
+ // Zero findings is suspicious - reduce confidence significantly
86
+ // A thorough audit should find at least informational items
87
+ if (findingCount < MIN_EXPECTED_FINDINGS) {
88
+ // Low confidence in a "perfect" audit
89
+ return { score, confidence: 50 };
90
+ }
91
+ // Average confidence
92
+ const avgConfidence = totalConfidence / findingCount;
93
+ return { score, confidence: avgConfidence };
94
+ }
95
+ /**
96
+ * Count findings by severity across all agents
97
+ */
98
+ function countFindingsBySeverity(certification) {
99
+ const counts = {
100
+ critical: 0,
101
+ high: 0,
102
+ medium: 0,
103
+ low: 0,
104
+ info: 0,
105
+ };
106
+ for (const agentFindings of Object.values(certification.agents)) {
107
+ if (agentFindings) {
108
+ for (const finding of agentFindings.findings) {
109
+ counts[finding.severity]++;
110
+ }
111
+ }
112
+ }
113
+ return counts;
114
+ }
115
+ /**
116
+ * Calculate cross-verification rate
117
+ */
118
+ function calculateCrossVerificationRate(certification) {
119
+ let totalFindings = 0;
120
+ let verifiedFindings = 0;
121
+ for (const agentFindings of Object.values(certification.agents)) {
122
+ if (agentFindings) {
123
+ for (const finding of agentFindings.findings) {
124
+ totalFindings++;
125
+ if (finding.verifications.length > 0) {
126
+ verifiedFindings++;
127
+ }
128
+ }
129
+ }
130
+ }
131
+ return totalFindings > 0 ? verifiedFindings / totalFindings : 1.0;
132
+ }
133
+ /**
134
+ * Determine certification level from score
135
+ */
136
+ function determineCertificationLevel(score, bySeverity) {
137
+ // Critical findings = BLOCKED regardless of score
138
+ if (bySeverity.critical > 0) {
139
+ return "BLOCKED";
140
+ }
141
+ // Multiple high findings with low score = BLOCKED
142
+ if (bySeverity.high >= 3 && score < 50) {
143
+ return "BLOCKED";
144
+ }
145
+ // Score-based thresholds
146
+ if (score >= CERTIFICATION_THRESHOLDS.CERTIFIED) {
147
+ // Certified also requires no high severity issues
148
+ if (bySeverity.high === 0) {
149
+ return "CERTIFIED";
150
+ }
151
+ return "APPROVED";
152
+ }
153
+ if (score >= CERTIFICATION_THRESHOLDS.APPROVED) {
154
+ return "APPROVED";
155
+ }
156
+ if (score >= CERTIFICATION_THRESHOLDS.REVIEW_REQUIRED) {
157
+ return "REVIEW_REQUIRED";
158
+ }
159
+ return "BLOCKED";
160
+ }
161
+ /**
162
+ * Calculate the consensus result for a certification across all agents.
163
+ *
164
+ * This is the main scoring function that:
165
+ * 1. Calculates individual scores for each completed agent
166
+ * 2. Applies agent weights (Security 30%, Reliability 25%, TypeSafety 15%,
167
+ * Performance 15%, Quality 10%, RedTeam 5%)
168
+ * 3. Computes weighted overall score
169
+ * 4. Counts findings by severity
170
+ * 5. Calculates cross-verification rate
171
+ * 6. Determines certification level based on score and critical findings
172
+ *
173
+ * @param certification - The full certification data including all agent findings
174
+ * @returns ConsensusResult with overall score, level, and detailed metrics
175
+ *
176
+ * @example
177
+ * ```typescript
178
+ * const certification = await getCertification(projectPath, certId);
179
+ * const consensus = calculateConsensus(certification);
180
+ * console.log(`Score: ${consensus.overall_score}/100`);
181
+ * console.log(`Level: ${consensus.certification_level}`);
182
+ * ```
183
+ */
184
+ export function calculateConsensus(certification) {
185
+ const agentScores = {};
186
+ const agentConfidences = {};
187
+ let weightedScore = 0;
188
+ let totalWeight = 0;
189
+ let totalFindings = 0;
190
+ // Calculate scores for each agent
191
+ const allAgents = ["security", "reliability", "typesafety", "performance", "quality", "redteam"];
192
+ for (const agent of allAgents) {
193
+ const agentFindings = certification.agents[agent];
194
+ if (agentFindings && agentFindings.status === "completed") {
195
+ const { score, confidence } = calculateAgentScore(agentFindings.findings);
196
+ agentScores[agent] = score;
197
+ agentConfidences[agent] = confidence;
198
+ // Weighted contribution to overall score
199
+ // Factor in confidence - low confidence agents contribute less
200
+ const weight = AGENT_WEIGHTS[agent];
201
+ const confidenceMultiplier = confidence / 100;
202
+ weightedScore += score * weight * confidenceMultiplier;
203
+ totalWeight += weight * confidenceMultiplier;
204
+ totalFindings += agentFindings.findings.length;
205
+ }
206
+ }
207
+ // Normalize weighted score
208
+ const overallScore = totalWeight > 0 ? Math.round(weightedScore / totalWeight) : 0;
209
+ // Count findings by severity
210
+ const bySeverity = countFindingsBySeverity(certification);
211
+ // Calculate cross-verification rate
212
+ const crossVerificationRate = calculateCrossVerificationRate(certification);
213
+ // Count red team challenges
214
+ const redTeamChallengesTotal = certification.red_team_challenges.length;
215
+ const redTeamChallengesAccepted = certification.red_team_challenges.filter((c) => c.resolution?.accepted).length;
216
+ // Determine certification level
217
+ const certificationLevel = determineCertificationLevel(overallScore, bySeverity);
218
+ return {
219
+ overall_score: overallScore,
220
+ certification_level: certificationLevel,
221
+ agent_scores: agentScores,
222
+ agent_confidences: agentConfidences,
223
+ total_findings: totalFindings,
224
+ by_severity: bySeverity,
225
+ cross_verification_rate: crossVerificationRate,
226
+ red_team_challenges_accepted: redTeamChallengesAccepted,
227
+ red_team_challenges_total: redTeamChallengesTotal,
228
+ calculated_at: new Date().toISOString(),
229
+ };
230
+ }
231
+ /**
232
+ * Check if a certification is ready to be finalized.
233
+ *
234
+ * A certification can be finalized when:
235
+ * - All requested agents have completed their audits
236
+ * - All critical findings have been cross-verified by at least one other agent
237
+ *
238
+ * Additionally, this function returns warnings for suspicious conditions:
239
+ * - Agents reporting zero findings (may indicate incomplete audit)
240
+ * - Total findings across all agents is zero (certification may not be trustworthy)
241
+ *
242
+ * @param certification - The certification to check
243
+ * @returns Object containing:
244
+ * - ready: boolean indicating if certification can be finalized
245
+ * - missing: array of blocking issues that prevent finalization
246
+ * - warnings: array of non-blocking concerns to review
247
+ *
248
+ * @example
249
+ * ```typescript
250
+ * const { ready, missing, warnings } = canFinalize(certification);
251
+ * if (!ready) {
252
+ * console.log('Cannot finalize:', missing);
253
+ * }
254
+ * if (warnings.length > 0) {
255
+ * console.log('Warnings:', warnings);
256
+ * }
257
+ * ```
258
+ */
259
+ export function canFinalize(certification) {
260
+ const missing = [];
261
+ const warnings = [];
262
+ const requested = certification.metadata.agents_requested;
263
+ const completed = certification.metadata.agents_completed;
264
+ // Check all requested agents completed
265
+ for (const agent of requested) {
266
+ if (!completed.includes(agent)) {
267
+ missing.push(`Agent ${agent} not completed`);
268
+ }
269
+ }
270
+ // Check critical findings are cross-verified
271
+ for (const agentFindings of Object.values(certification.agents)) {
272
+ if (agentFindings) {
273
+ for (const finding of agentFindings.findings) {
274
+ if (finding.severity === "critical" && finding.verifications.length === 0) {
275
+ missing.push(`Critical finding ${finding.id} not cross-verified`);
276
+ }
277
+ }
278
+ }
279
+ }
280
+ // Warn about empty audits (suspicious)
281
+ for (const agent of requested) {
282
+ const agentFindings = certification.agents[agent];
283
+ if (agentFindings && agentFindings.findings.length === 0) {
284
+ warnings.push(`Agent ${agent} reported zero findings - audit may be incomplete`);
285
+ }
286
+ }
287
+ // Warn if total findings are suspiciously low
288
+ const totalFindings = Object.values(certification.agents).reduce((sum, a) => sum + (a?.findings.length ?? 0), 0);
289
+ if (totalFindings === 0) {
290
+ warnings.push("No findings across all agents - certification may not be trustworthy");
291
+ }
292
+ return {
293
+ ready: missing.length === 0,
294
+ missing,
295
+ warnings,
296
+ };
297
+ }
298
+ /**
299
+ * Generate a human-readable summary of a certification consensus result.
300
+ *
301
+ * The summary includes:
302
+ * - Certification level with color-coded emoji indicator
303
+ * - Overall score out of 100
304
+ * - Breakdown of findings by severity
305
+ * - Cross-verification rate as percentage
306
+ * - Red team challenge statistics
307
+ *
308
+ * Level indicators:
309
+ * - 🟢 CERTIFIED (90-100)
310
+ * - 🟡 APPROVED (70-89)
311
+ * - 🟠 REVIEW_REQUIRED (40-69)
312
+ * - 🔴 BLOCKED (0-39)
313
+ *
314
+ * @param consensus - The consensus result to summarize
315
+ * @returns Multi-line string formatted for display
316
+ *
317
+ * @example
318
+ * ```typescript
319
+ * const consensus = calculateConsensus(certification);
320
+ * console.log(getCertificationSummary(consensus));
321
+ * // Output:
322
+ * // 🟡 APPROVED
323
+ * // Score: 85/100
324
+ * //
325
+ * // Findings: 15
326
+ * // Critical: 0
327
+ * // High: 2
328
+ * // ...
329
+ * ```
330
+ */
331
+ export function getCertificationSummary(consensus) {
332
+ const levelEmoji = {
333
+ CERTIFIED: "🟢",
334
+ APPROVED: "🟡",
335
+ REVIEW_REQUIRED: "🟠",
336
+ BLOCKED: "🔴",
337
+ };
338
+ const lines = [
339
+ `${levelEmoji[consensus.certification_level]} ${consensus.certification_level}`,
340
+ `Score: ${consensus.overall_score}/100`,
341
+ ``,
342
+ `Findings: ${consensus.total_findings}`,
343
+ ` Critical: ${consensus.by_severity.critical}`,
344
+ ` High: ${consensus.by_severity.high}`,
345
+ ` Medium: ${consensus.by_severity.medium}`,
346
+ ` Low: ${consensus.by_severity.low}`,
347
+ ``,
348
+ `Cross-verification: ${Math.round(consensus.cross_verification_rate * 100)}%`,
349
+ `Red team: ${consensus.red_team_challenges_accepted}/${consensus.red_team_challenges_total} challenges accepted`,
350
+ ];
351
+ return lines.join("\n");
352
+ }
353
+ //# sourceMappingURL=consensus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consensus.js","sourceRoot":"","sources":["../../src/certification/consensus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Unit tests for Enterprise Certification Consensus Algorithm
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=consensus.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"consensus.test.d.ts","sourceRoot":"","sources":["../../src/certification/consensus.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}