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
package/README.md ADDED
@@ -0,0 +1,809 @@
1
+ # Vaspera Hardening MCP Server
2
+
3
+ Enterprise-grade security certification for codebases **and AI agent systems** with deterministic scanners, LLM-powered analysis, and signed attestations.
4
+
5
+ ![npm version](https://img.shields.io/npm/v/vaspera-hardening-mcp-server)
6
+ ![License](https://img.shields.io/badge/License-MIT-green)
7
+ ![Tools](https://img.shields.io/badge/MCP_Tools-68+-purple)
8
+ ![AI Frameworks](https://img.shields.io/badge/AI_Frameworks-5-blue)
9
+ ![Scanners](https://img.shields.io/badge/Scanners-12-orange)
10
+
11
+ ---
12
+
13
+ ## What's New in v2.5.0
14
+
15
+ ### Mythos-Class Security Scanners 🔬
16
+ Three new deep-analysis scanners for low-level security vulnerabilities:
17
+
18
+ | Scanner | Focus | Detection |
19
+ |---------|-------|-----------|
20
+ | **binary-analysis** | Native modules, FFI | Missing RELRO/NX/PIE/CANARY, dangerous imports |
21
+ | **memory-safety** | C/C++/Rust memory bugs | Buffer overflow, use-after-free, double-free |
22
+ | **race-condition** | Concurrency bugs | TOCTOU, data races, lock issues |
23
+
24
+ **Binary Analysis** detects:
25
+ - Node.js native addons (binding.gyp, *.node)
26
+ - Shared libraries without stack protection
27
+ - Rust FFI boundaries and Go CGO usage
28
+ - Disabled FORTIFY_SOURCE
29
+
30
+ **Memory Safety** detects:
31
+ - Dangerous C functions: `strcpy`, `sprintf`, `gets`, `strcat`
32
+ - Buffer overflows (CWE-120, CWE-787)
33
+ - Use-after-free (CWE-416), double-free (CWE-415)
34
+ - Rust `unsafe` blocks with `transmute`
35
+
36
+ **Race Conditions** detects:
37
+ - TOCTOU (time-of-check-time-of-use) patterns
38
+ - Go goroutine data races
39
+ - Python threading with shared state
40
+ - Java check-then-act anti-patterns
41
+
42
+ ### Semantic AI Agents 🧠
43
+ Three new AI-powered agents for deep code analysis:
44
+
45
+ | Agent | Focus | Capability |
46
+ |-------|-------|------------|
47
+ | **zero-day-hunter** | Novel vulnerabilities | Logic flaws, auth bypasses, crypto weaknesses |
48
+ | **logic-flaw-detector** | Business logic bugs | State inconsistencies, trust boundary issues |
49
+ | **exploit-chain** | Attack paths | Chains multiple findings into attack scenarios |
50
+
51
+ **Exploit Chain Analyzer** automatically:
52
+ - Chains vulnerabilities: Info disclosure → RCE, SSRF → Internal API
53
+ - Calculates severity escalation (medium + medium = critical)
54
+ - Maps to MITRE ATT&CK techniques
55
+ - Generates attack scenario narratives
56
+
57
+ ### New MCP Tools
58
+ ```
59
+ certification_scan_binary # Scan native modules and binaries
60
+ certification_semantic_analysis # AI-powered code analysis
61
+ certification_analyze_chains # Analyze finding chains
62
+ ```
63
+
64
+ ---
65
+
66
+ ## What's New in v2.3.0
67
+
68
+ ### Agent & MCP Security Certification 🤖
69
+ First-mover capability for certifying AI agent systems and MCP servers:
70
+
71
+ - **Prompt Injection Fuzzer** - 200+ payloads to test tool inputs for injection vulnerabilities
72
+ - **Exfiltration Path Analysis** - Graph-based detection of secret→network data flow paths
73
+ - **Tool Description Drift** - Detect silent changes to MCP tool definitions (rug-pull detection)
74
+ - **Permission Minimizer** - Analyze traces to recommend least-privilege permissions
75
+ - **Sandbox Audit** - Verify tools don't escape declared execution boundaries
76
+ - **Credential Scope Audit** - Flag over-scoped tokens (GitHub PATs, AWS IAM, etc.)
77
+
78
+ ### AI Compliance Frameworks 📋
79
+ Five new AI-specific compliance frameworks:
80
+
81
+ | Framework | Controls | Use Case |
82
+ |-----------|----------|----------|
83
+ | **OWASP LLM Top 10** | 10 | AI application security |
84
+ | **NIST AI RMF** | 33 | Federal AI governance |
85
+ | **MITRE ATLAS** | 34 | AI threat modeling |
86
+ | **EU AI Act** | 33 | European AI regulation |
87
+ | **ISO/IEC 42001** | 38 | AI management systems |
88
+
89
+ ### Signed Transcripts & Attestations ✍️
90
+ Tamper-evident audit trails for AI agent sessions:
91
+
92
+ - **Merkle Chain Integrity** - Cryptographically linked entries for tamper detection
93
+ - **Sigstore Signing** - Keyless signatures via Fulcio + Rekor transparency log
94
+ - **in-toto Provenance** - SLSA-compatible attestation statements
95
+ - **PII Redaction** - 12+ detection patterns (SSN, credit cards, API keys, JWTs)
96
+
97
+ ### Enterprise Integrations 🏢
98
+ Production-ready integrations for large deployments:
99
+
100
+ - **OIDC SSO** - Okta, Auth0, Azure AD, Google with SCIM provisioning
101
+ - **OPA Policy Engine** - Rego policy evaluation for certification gates
102
+ - **Ticketing** - Jira, ServiceNow, Linear automatic issue creation
103
+ - **Chat Notifications** - Slack, Teams, Discord with rich certification cards
104
+ - **KMS Signing** - AWS KMS, GCP KMS, HashiCorp Vault for air-gapped deployments
105
+
106
+ ---
107
+
108
+ ## What's New in v2.1.0
109
+
110
+ ### Auto-Detect Languages
111
+ Automatically detect project languages and enable appropriate scanners:
112
+ - **certification_detect_languages** - Detect JS, Python, Go, Ruby, Java, Docker, Terraform
113
+ - **auto_detect mode** - Pass `auto_detect: true` to `certification_scan`
114
+ - **Smart scanner selection** - Enables Bandit for Python, Gosec for Go, Brakeman for Ruby, etc.
115
+
116
+ ### Brakeman Scanner (Ruby on Rails)
117
+ Complete Ruby security scanning with Brakeman:
118
+ - **SQL injection** - ActiveRecord query analysis
119
+ - **XSS** - Cross-site scripting in views
120
+ - **CSRF** - Cross-site request forgery detection
121
+ - **Mass assignment** - Dangerous model updates
122
+ - **Remote code execution** - eval, system, backticks
123
+ - **CWE mappings** - All findings mapped to CWE identifiers
124
+
125
+ ### GDPR Compliance Framework
126
+ Full GDPR compliance mapping with 30+ controls:
127
+ - **Principles (Art. 5)** - Lawfulness, purpose limitation, data minimization
128
+ - **Data Protection by Design (Art. 25)** - Privacy by default
129
+ - **Security of Processing (Art. 32)** - Encryption, integrity, availability
130
+ - **Breach Notification (Art. 33-34)** - Incident response requirements
131
+ - **Control mapping** - Automatic finding-to-control linking
132
+
133
+ ---
134
+
135
+ ## What's New in v2.0.1
136
+
137
+ ### Batch Auto-Fix
138
+ - **autofix_batch** - Apply all safe fixes at once with dry-run support
139
+ - **16 fix patterns** - IDOR, rate limiting, CSRF, cookies, SQL injection, XSS, and more
140
+
141
+ ### Scanner Install Helper
142
+ - **certification_install_scanners** - Platform-specific install commands
143
+ - **run_install option** - Execute installation with confirmation
144
+ - **macOS/Linux/Windows** - Automatic platform detection
145
+
146
+ ### SBOM Improvements
147
+ - **output_file** - Write SBOM directly to file
148
+
149
+ ---
150
+
151
+ ## What's New in v2.0.0
152
+
153
+ ### Cost Tracking
154
+ Track and control LLM API costs across certifications:
155
+ - **Token counting** - Track input/output tokens per model
156
+ - **Budget limits** - Set cost budgets with automatic abort
157
+ - **Cost estimation** - Estimate costs before running
158
+ - **13 models supported** - Claude, GPT-4, Gemini pricing
159
+
160
+ ### Consensus Aggregation
161
+ Aggregate findings from multiple runs for higher confidence:
162
+ - **Record findings** - From external agent runs (Claude, GPT, Gemini, etc.)
163
+ - **Disagreement detection** - Flag when runs produce conflicting results
164
+ - **Fleiss' kappa reliability** - Statistical inter-rater agreement
165
+ - **Weighted consensus** - Configurable weights per source
166
+
167
+ *Note: These tools aggregate results from external runs. They do not call LLM APIs directly.*
168
+
169
+ ### Compliance Mapping
170
+ Map findings to enterprise compliance frameworks:
171
+ - **SOC 2 Type II** - All Trust Service Criteria
172
+ - **ISO 27001** - Annex A controls
173
+ - **PCI-DSS v4.0** - Payment card security
174
+ - **HIPAA** - Healthcare data protection
175
+ - **GDPR** - EU data protection (v2.1.0)
176
+ - **CIS Controls** - Security best practices
177
+ - **Control status** - Compliant/At-Risk/Non-Compliant
178
+ - **Gap analysis** - Identify missing controls
179
+
180
+ ### SBOM & Provenance
181
+ Software Bill of Materials and supply chain security:
182
+ - **CycloneDX SBOM** - Dependency inventory
183
+ - **SLSA Provenance** - Build attestation
184
+ - **Sigstore signing** - Real cryptographic signing via Fulcio + Rekor
185
+
186
+ *Signing requires OIDC identity (GitHub Actions, GitLab CI, or SIGSTORE_ID_TOKEN).*
187
+
188
+ ---
189
+
190
+ ## Features
191
+
192
+ ### Deterministic Scanner Backbone
193
+ Ground every finding in verifiable evidence with industry-standard scanners:
194
+ - **Semgrep** - OWASP Top 10, custom rules
195
+ - **gitleaks** - Secrets detection
196
+ - **npm audit** - Dependency vulnerabilities
197
+ - **TypeScript** - Type safety analysis
198
+ - **ESLint** - Code quality and security rules
199
+ - **Bandit** - Python security analysis
200
+ - **Gosec** - Go security checker
201
+ - **Brakeman** - Ruby on Rails security (v2.1.0)
202
+ - **Trivy** - Container/IaC vulnerability scanning
203
+ - **binary-analysis** - Native module security (v2.5.0)
204
+ - **memory-safety** - C/C++/Rust memory bugs (v2.5.0)
205
+ - **race-condition** - Concurrency vulnerabilities (v2.5.0)
206
+
207
+ ### Enterprise Certification
208
+ Multi-agent validation with cross-verification:
209
+ - 9 specialized agents: security, reliability, typesafety, performance, quality, redteam, zero-day-hunter, logic-flaw-detector, exploit-chain (v2.5.0)
210
+ - Cross-verification between agents for high-confidence findings
211
+ - Consensus scoring with certification levels
212
+ - Exploit chain analysis for attack path mapping (v2.5.0)
213
+
214
+ ### GitHub Action Integration
215
+ CI/CD integration with PR comments and Sigstore signing:
216
+ - **Security certification workflow** - Auto-detect languages, run scanners, generate reports
217
+ - **Sigstore signing** - OIDC-based signing with Fulcio + Rekor (requires `id-token: write`)
218
+ - **Automatic PR comments** - Findings summary on pull requests
219
+ - **SARIF upload** - GitHub Security tab integration
220
+
221
+ See [.github/workflows/certify.yml](.github/workflows/certify.yml) for example.
222
+
223
+ ### Evaluation Harness
224
+ Measure scanner accuracy with labeled test fixtures:
225
+ - Precision, recall, F1 score metrics
226
+ - Stability testing across multiple runs
227
+ - Target thresholds for publication
228
+
229
+ ## Quick Start
230
+
231
+ ### Installation
232
+
233
+ ```bash
234
+ npm install vaspera-hardening-mcp-server
235
+ # or
236
+ git clone https://github.com/RCOLKITT/hardening-mcp.git
237
+ cd hardening-mcp
238
+ npm install && npm run build
239
+ ```
240
+
241
+ ### Add to Claude Desktop
242
+
243
+ Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
244
+
245
+ ```json
246
+ {
247
+ "mcpServers": {
248
+ "vaspera-hardening": {
249
+ "command": "node",
250
+ "args": ["/path/to/vaspera-hardening-mcp/dist/index.js"],
251
+ "env": {
252
+ "VASPERA_PROJECTS_DIR": "/path/to/your/projects"
253
+ }
254
+ }
255
+ }
256
+ }
257
+ ```
258
+
259
+ ## MCP Tools
260
+
261
+ ### Hardening Commands
262
+
263
+ | Tool | Description |
264
+ |------|-------------|
265
+ | `hardening_list_projects` | Discover all projects in workspace |
266
+ | `hardening_install` | Install hardening commands into a project |
267
+ | `hardening_install_all` | Install commands into all projects |
268
+ | `hardening_get_command` | Get a specific command prompt |
269
+ | `hardening_read_audit` | Read AUDIT.md from a project |
270
+ | `hardening_read_report` | Read HARDENING-REPORT.md |
271
+ | `hardening_dashboard` | Portfolio-wide readiness dashboard |
272
+ | `hardening_list_commands` | List available commands |
273
+
274
+ ### Enterprise Certification
275
+
276
+ | Tool | Description |
277
+ |------|-------------|
278
+ | `certification_start` | Initialize enterprise certification |
279
+ | `certification_scan` | Run deterministic scanners (supports `auto_detect`) |
280
+ | `certification_detect_languages` | Auto-detect project languages for scanner selection |
281
+ | `certification_scanners_available` | Check scanner availability |
282
+ | `certification_install_scanners` | Get install commands for missing scanners |
283
+ | `certification_status` | Get certification progress |
284
+ | `certification_consensus` | Calculate consensus score |
285
+ | `certification_finalize` | Generate certification artifacts |
286
+ | `certification_dashboard` | Portfolio certification view |
287
+
288
+ ### Mythos-Class Scanners (v2.5.0)
289
+
290
+ | Tool | Description |
291
+ |------|-------------|
292
+ | `certification_scan_binary` | Scan compiled code and native modules |
293
+ | `certification_semantic_analysis` | AI-powered semantic code analysis |
294
+ | `certification_analyze_chains` | Analyze findings for exploitable attack chains |
295
+
296
+ ### Agent Tools
297
+
298
+ | Tool | Description |
299
+ |------|-------------|
300
+ | `agent_submit_finding` | Submit a finding from an agent |
301
+ | `agent_complete` | Mark agent run as complete |
302
+ | `agent_cross_verify` | Cross-verify another agent's finding |
303
+ | `redteam_challenge` | Challenge an area marked clean |
304
+
305
+ ### Utilities
306
+
307
+ | Tool | Description |
308
+ |------|-------------|
309
+ | `certification_cross_verify` | Batch cross-verify critical findings |
310
+ | `certification_summary` | Progressive disclosure summary |
311
+ | `certification_filter` | Filter findings by criteria |
312
+ | `certification_export_sarif` | Export to SARIF format |
313
+ | `autofix_preview` | Preview auto-fix for a finding |
314
+ | `autofix_apply` | Apply auto-fix |
315
+ | `autofix_batch` | Batch apply all safe fixes |
316
+ | `autofix_list_patterns` | List available fix patterns |
317
+
318
+ ### Custom Rules
319
+
320
+ | Tool | Description |
321
+ |------|-------------|
322
+ | `rules_load` | Load custom rules from config |
323
+ | `rules_templates` | List built-in rule templates |
324
+ | `rules_generate_config` | Generate sample rules config |
325
+ | `rules_check_file` | Check file against custom rules |
326
+
327
+ ### Evaluation
328
+
329
+ | Tool | Description |
330
+ |------|-------------|
331
+ | `certification_eval` | Run evaluation against test fixtures |
332
+ | `certification_eval_fixtures` | Get fixture statistics |
333
+
334
+ ### Cost Tracking (v2.0.0)
335
+
336
+ | Tool | Description |
337
+ |------|-------------|
338
+ | `cost_track` | Start tracking costs for a certification |
339
+ | `cost_estimate` | Estimate cost before running |
340
+ | `cost_status` | Get current cost status |
341
+ | `cost_report` | Generate cost report |
342
+ | `cost_budget` | Set/update budget limits |
343
+ | `cost_models` | List supported models and pricing |
344
+
345
+ ### Consensus Aggregation (v2.0.0)
346
+
347
+ *These tools aggregate findings from external runs - they do NOT call LLM APIs.*
348
+
349
+ | Tool | Description |
350
+ |------|-------------|
351
+ | `consensus_record` | Record findings from an external agent run |
352
+ | `consensus_calculate` | Calculate consensus with Fleiss' kappa |
353
+ | `consensus_disagreements` | Get disagreements between runs |
354
+ | `consensus_merged` | Get deduplicated findings after consensus |
355
+ | `consensus_summary` | Generate consensus summary |
356
+ | `consensus_models` | List model configurations |
357
+ | `consensus_clear` | Clear recorded results |
358
+
359
+ ### Compliance Mapping (v2.0.0)
360
+
361
+ | Tool | Description |
362
+ |------|-------------|
363
+ | `compliance_report` | Generate compliance report for a framework |
364
+ | `compliance_multi_report` | Generate report for multiple frameworks |
365
+ | `compliance_controls` | List controls for a framework |
366
+
367
+ ### SBOM & Provenance (v2.0.0)
368
+
369
+ | Tool | Description |
370
+ |------|-------------|
371
+ | `sbom_generate` | Generate CycloneDX SBOM |
372
+ | `sbom_provenance` | Generate SLSA provenance attestation |
373
+ | `sbom_sign` | Sign content with Sigstore (requires OIDC) |
374
+ | `sbom_verify_provenance` | Verify provenance attestation |
375
+
376
+ ### Agent & MCP Security (v2.3.0)
377
+
378
+ | Tool | Description |
379
+ |------|-------------|
380
+ | `agent_cert_scan` | Full agent-system certification against MCP server |
381
+ | `agent_cert_fuzz` | Quick prompt injection fuzzing (CI-friendly, <60s) |
382
+ | `agent_cert_attest` | Generate Sigstore-signed attestation bundle |
383
+ | `agent_cert_verify` | Verify attestation against live MCP server |
384
+ | `agent_cert_watch` | Continuous monitoring with drift detection |
385
+ | `agent_scanners_available` | Check agent scanner availability |
386
+
387
+ **Agent Scanners:**
388
+ - `manifest-audit` - Parse MCP manifest, flag security issues
389
+ - `tool-description-drift` - Detect silent tool definition changes
390
+ - `prompt-injection-fuzzer` - Fuzz inputs with 200+ payloads
391
+ - `exfil-path-graph` - Build secret→network data flow graph
392
+ - `permission-minimiser` - Recommend tightened permissions from traces
393
+ - `supply-chain-mcp` - SBOM + CVE scan for MCP dependencies
394
+ - `sandbox-audit` - Verify tools stay within declared boundaries
395
+ - `credential-scope-audit` - Flag over-scoped tokens
396
+
397
+ ### AI Compliance Frameworks (v2.3.0)
398
+
399
+ | Tool | Description |
400
+ |------|-------------|
401
+ | `compliance_report` | Generate report (now supports AI frameworks) |
402
+
403
+ **Supported AI Frameworks:**
404
+ - `OWASP-LLM` - OWASP LLM Top 10 (10 controls)
405
+ - `NIST-AI-RMF` - NIST AI Risk Management Framework (33 controls)
406
+ - `MITRE-ATLAS` - ATLAS adversarial ML techniques (34 techniques)
407
+ - `EU-AI-ACT` - European AI Act compliance (33 controls)
408
+ - `ISO-42001` - ISO/IEC 42001 AI management (38 controls)
409
+
410
+ ### Transcripts & Attestations (v2.3.0)
411
+
412
+ *Programmatic API - not exposed as MCP tools:*
413
+
414
+ ```typescript
415
+ import {
416
+ TranscriptLogger,
417
+ signTranscript,
418
+ verifyTranscriptBundle,
419
+ redactPII
420
+ } from "vaspera-hardening-mcp-server/transcripts";
421
+
422
+ // Create logger with Merkle chain
423
+ const logger = new TranscriptLogger("session-123");
424
+ logger.logPrompt("User prompt here");
425
+ logger.logToolCall("tool_name", "input data");
426
+ logger.logToolResult("tool_name", "output data");
427
+
428
+ // Generate signed transcript
429
+ const transcript = logger.generateSignedTranscript();
430
+ const bundle = await signTranscript(transcript, logger.getChain());
431
+
432
+ // Verify integrity
433
+ const result = await verifyTranscriptBundle(bundle, logger.getChain());
434
+ console.log(result.valid); // true
435
+
436
+ // Redact PII before logging
437
+ const { redacted, redactions } = redactPII("Contact: john@example.com");
438
+ // redacted = "Contact: [REDACTED:EMAIL]"
439
+ ```
440
+
441
+ ### Enterprise Integrations (v2.3.0)
442
+
443
+ *Programmatic API - not exposed as MCP tools:*
444
+
445
+ ```typescript
446
+ import {
447
+ createOIDCClient,
448
+ createTicketingClient,
449
+ createChatClient,
450
+ createOPAClient,
451
+ createKMSClient
452
+ } from "vaspera-hardening-mcp-server/enterprise";
453
+
454
+ // OIDC SSO
455
+ const oidc = createOIDCClient({
456
+ provider: "okta",
457
+ clientId: "...",
458
+ clientSecret: "...",
459
+ issuerUrl: "https://company.okta.com",
460
+ redirectUri: "https://app.example.com/callback",
461
+ });
462
+ const { url } = await oidc.getAuthorizationUrl();
463
+
464
+ // Ticketing
465
+ const jira = createTicketingClient({
466
+ platform: "jira",
467
+ baseUrl: "https://company.atlassian.net",
468
+ apiToken: "...",
469
+ email: "...",
470
+ isCloud: true,
471
+ });
472
+ const ticket = await jira.createTicket({
473
+ title: "[CRITICAL] SQL Injection in auth.ts",
474
+ description: "...",
475
+ findings: certificationFindings,
476
+ });
477
+
478
+ // Chat notifications
479
+ const slack = createChatClient({
480
+ platform: "slack",
481
+ webhookUrl: "https://hooks.slack.com/...",
482
+ });
483
+ await slack.sendNotification({
484
+ certificationId: "cert-123",
485
+ target: "myapp",
486
+ status: "completed",
487
+ score: 87,
488
+ findings: { total: 12, critical: 0, high: 2, medium: 5, low: 5, info: 0 },
489
+ });
490
+
491
+ // OPA Policy
492
+ const opa = createOPAClient({
493
+ mode: "local",
494
+ bundlePath: "./policies/certification.json",
495
+ });
496
+ const policyResult = await opa.evaluate({ certification: {...} });
497
+
498
+ // KMS Signing (air-gapped alternative to Sigstore)
499
+ const kms = createKMSClient({
500
+ provider: "vault",
501
+ keyId: "signing-key",
502
+ vault: { address: "https://vault.example.com", token: "..." },
503
+ });
504
+ const signed = await kms.sign(certificationJson);
505
+ ```
506
+
507
+ ## Typical Workflows
508
+
509
+ ### Run Security Scan
510
+
511
+ ```
512
+ You: "Scan this project for security issues"
513
+ → Claude calls certification_scan
514
+ → Returns findings from Semgrep, gitleaks, npm audit, TypeScript
515
+ ```
516
+
517
+ ### Full Enterprise Certification
518
+
519
+ ```
520
+ You: "Start enterprise certification for this project"
521
+ → Claude calls certification_start
522
+ → Claude calls certification_scan (deterministic pre-pass)
523
+ → Claude runs each agent (security, reliability, typesafety, etc.)
524
+ → Claude calls certification_cross_verify (batch verify critical findings)
525
+ → Claude calls certification_consensus
526
+ → Claude calls certification_finalize
527
+ → Generates CERTIFICATION.md and CERTIFICATION.json
528
+ ```
529
+
530
+ ### Evaluate Scanner Accuracy
531
+
532
+ ```
533
+ You: "Run the evaluation harness to test scanner accuracy"
534
+ → Claude calls certification_eval
535
+ → Returns precision, recall, F1 scores against labeled fixtures
536
+ ```
537
+
538
+ ### Cost-Controlled Certification (v2.0.0)
539
+
540
+ ```
541
+ You: "Run certification with a $5 budget limit"
542
+ → Claude calls cost_track with budget: 5.00
543
+ → Claude runs agents, tracking costs in real-time
544
+ → If budget exceeded, certification pauses
545
+ → Claude calls cost_report for final breakdown
546
+ ```
547
+
548
+ ### Consensus Aggregation (v2.0.0)
549
+
550
+ ```
551
+ You: "Calculate consensus from my security agent runs"
552
+ → User runs security agent via different MCP clients or APIs
553
+ → User calls consensus_record for each run's findings
554
+ → Claude calls consensus_calculate for agreement metrics
555
+ → Claude calls consensus_disagreements for disputed findings
556
+ ```
557
+
558
+ *Note: Consensus tools aggregate external results. Run agents separately.*
559
+
560
+ ### Compliance Report (v2.0.0)
561
+
562
+ ```
563
+ You: "Generate SOC 2 compliance report from certification"
564
+ → Claude calls compliance_report with framework: "SOC2"
565
+ → Returns control-by-control status with findings mapped
566
+ → Identifies at-risk controls and gaps
567
+ ```
568
+
569
+ ### Generate SBOM (v2.0.0)
570
+
571
+ ```
572
+ You: "Generate an SBOM for this project"
573
+ → Claude calls sbom_generate
574
+ → Returns CycloneDX SBOM with all dependencies
575
+ → Claude calls sbom_provenance for build attestation
576
+ ```
577
+
578
+ ### Install Missing Scanners (v2.0.1)
579
+
580
+ ```
581
+ You: "What scanners are missing and how do I install them?"
582
+ → Claude calls certification_install_scanners
583
+ → Returns platform-specific install commands for each scanner
584
+ → Claude calls with run_install: true to execute installation
585
+ ```
586
+
587
+ ### Batch Auto-Fix (v2.0.1)
588
+
589
+ ```
590
+ You: "Apply all safe fixes to the certification findings"
591
+ → Claude calls autofix_batch with dry_run: true (preview)
592
+ → Shows what would be changed
593
+ → Claude calls autofix_batch with dry_run: false (apply)
594
+ → Reports fixes applied by pattern and file
595
+ ```
596
+
597
+ ### Auto-Detect and Scan (v2.1.0)
598
+
599
+ ```
600
+ You: "Scan this project with auto-detection"
601
+ → Claude calls certification_scan with auto_detect: true
602
+ → Detects Python, JavaScript, Go files
603
+ → Automatically enables Bandit, npm-audit, Gosec
604
+ → Returns unified findings from all relevant scanners
605
+ ```
606
+
607
+ ### GDPR Compliance Report (v2.1.0)
608
+
609
+ ```
610
+ You: "Generate GDPR compliance report"
611
+ → Claude calls compliance_report with framework: "GDPR"
612
+ → Maps findings to GDPR articles (Art. 5, 25, 32, etc.)
613
+ → Returns control status with gap analysis
614
+ ```
615
+
616
+ ### Sigstore Signing (v2.1.1)
617
+
618
+ ```
619
+ You: "Sign the SBOM with Sigstore"
620
+ → Claude calls sbom_sign with the SBOM content
621
+ → Gets OIDC token from GitHub Actions / GitLab CI
622
+ → Obtains certificate from Fulcio
623
+ → Records signature in Rekor transparency log
624
+ → Returns signed bundle with log index
625
+ ```
626
+
627
+ *Requires CI environment with OIDC (GitHub Actions: `permissions: id-token: write`)*
628
+
629
+ ### Agent Security Certification (v2.3.0)
630
+
631
+ ```
632
+ You: "Certify this MCP server for prompt injection vulnerabilities"
633
+ → Claude calls agent_cert_scan with target and scanners
634
+ → Runs manifest-audit, prompt-injection-fuzzer, exfil-path-graph
635
+ → Returns findings with severity and remediation
636
+ → Claude calls agent_cert_attest to generate signed bundle
637
+ ```
638
+
639
+ ### Quick Prompt Injection Fuzz (v2.3.0)
640
+
641
+ ```
642
+ You: "Quick fuzz test on this MCP server - CI mode"
643
+ → Claude calls agent_cert_fuzz with corpus: "quick"
644
+ → Runs 50 high-priority payloads in <60 seconds
645
+ → Returns pass/fail for each tool with behavior change detection
646
+ ```
647
+
648
+ ### AI Compliance Report (v2.3.0)
649
+
650
+ ```
651
+ You: "Generate OWASP LLM Top 10 compliance report"
652
+ → Claude calls compliance_report with framework: "OWASP-LLM"
653
+ → Maps findings to LLM01-LLM10 controls
654
+ → Returns control status with gap analysis
655
+ → Identifies prompt injection, sensitive disclosure, excessive agency risks
656
+ ```
657
+
658
+ ### Binary & Memory Safety Scan (v2.5.0)
659
+
660
+ ```
661
+ You: "Scan native modules for security issues"
662
+ → Claude calls certification_scan_binary
663
+ → Detects binding.gyp, *.node, Rust FFI, Go CGO
664
+ → Checks RELRO, NX, PIE, CANARY protections
665
+ → Reports missing stack protections and dangerous imports
666
+ ```
667
+
668
+ ### Exploit Chain Analysis (v2.5.0)
669
+
670
+ ```
671
+ You: "Analyze findings for attack chains"
672
+ → Claude calls certification_analyze_chains
673
+ → Chains SSRF → internal API access
674
+ → Chains XSS → session hijacking
675
+ → Calculates escalated severity (medium + medium = critical)
676
+ → Maps to MITRE ATT&CK techniques
677
+ ```
678
+
679
+ ### Create Tickets from Findings (v2.3.0)
680
+
681
+ ```typescript
682
+ // Programmatic - create Jira tickets for critical/high findings
683
+ const jira = createTicketingClient({ platform: "jira", ... });
684
+ const result = await jira.createTicketsForFindings(findings, {
685
+ project: "SEC",
686
+ groupByCategory: true,
687
+ minSeverity: "high",
688
+ });
689
+ console.log(`Created ${result.created.length} tickets`);
690
+ ```
691
+
692
+ ## Architecture
693
+
694
+ ```
695
+ ┌─────────────────────────────────────────────────────────────────────────────────────────┐
696
+ │ Codebase Scanner Layer │
697
+ ├─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬─────────┬────────┤
698
+ │ Semgrep │npm audit│gitleaks │ tsc │ ESLint │ Bandit │ Gosec │Brakeman │ Trivy │
699
+ │ (OWASP) │ (CVEs) │(secrets)│ (types) │ (lint) │ (Python)│ (Go) │ (Ruby) │ (IaC) │
700
+ └────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴────┬────┴───┬────┘
701
+ │ │ │ │ │ │ │ │ │
702
+ └─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴─────────┴────────┘
703
+
704
+ ┌─────────────────────────────────────────────┼─────────────────────────────────────────┐
705
+ │ Mythos-Class Scanner Layer (v2.5.0) │
706
+ ├─────────────────────┬─────────────────────┬─┴───────────────────┬─────────────────────┤
707
+ │ Binary Analysis │ Memory Safety │ Race Condition │ Exploit Chain │
708
+ │ (native modules) │ (C/C++/Rust bugs) │ (concurrency) │ (attack paths) │
709
+ └──────────┬──────────┴──────────┬──────────┴──────────┬──────────┴──────────┬──────────┘
710
+ │ │ │ │
711
+ └─────────────────────┴─────────────────────┴─────────────────────┘
712
+
713
+ ┌─────────────────────────────────────────────┼─────────────────────────────────────────┐
714
+ │ Agent Scanner Layer (v2.3.0) │
715
+ ├──────────────┬──────────────┬──────────────┬┴─────────────┬──────────────┬────────────┤
716
+ │ Manifest │ Tool Drift │ Prompt │ Exfil Path │ Permission │ Credential │
717
+ │ Audit │ Detection │ Injection │ Graph │ Minimizer │ Scope │
718
+ │ │ │ Fuzzer │ │ │ Audit │
719
+ └──────┬───────┴──────┬───────┴──────┬───────┴──────┬───────┴──────┬───────┴─────┬──────┘
720
+ │ │ │ │ │ │
721
+ └──────────────┴──────────────┴──────────────┴──────────────┴─────────────┘
722
+
723
+ ┌─────────▼─────────┐
724
+ │ Finding Aggregator │
725
+ │ (confidence: 100) │
726
+ └─────────┬─────────┘
727
+
728
+ ┌───────────────────┴───────────────────┐
729
+ ▼ ▼
730
+ ┌─────────────────┐ ┌─────────────────┐
731
+ │ Compliance │ │ LLM Agents │
732
+ │ Mapper │◄────────────────────│ (triage/enrich) │
733
+ │ (10 frameworks) │ │ + Privacy Agent │
734
+ └────────┬────────┘ │ + Integrity │
735
+ │ └─────────────────┘
736
+
737
+ ┌─────────────────┐
738
+ │ Transcript │
739
+ │ Logger │──► Merkle Chain ──► Sigstore Signing
740
+ │ + PII Redaction │
741
+ └────────┬────────┘
742
+
743
+
744
+ ┌─────────────────┐
745
+ │ Enterprise │──► OIDC SSO, OPA Policy, Ticketing, Chat
746
+ │ Integrations │
747
+ └─────────────────┘
748
+ ```
749
+
750
+ ## Evidence Validation
751
+
752
+ Non-deterministic findings are validated to prevent hallucinations:
753
+ - Requires evidence (code snippet) for all LLM findings
754
+ - Validates evidence matches actual file content
755
+ - Deterministic scanner findings (confidence: 100) bypass validation
756
+
757
+ ## Evaluation Metrics
758
+
759
+ Target metrics for scanner accuracy:
760
+
761
+ | Metric | Target | Description |
762
+ |--------|--------|-------------|
763
+ | Precision | >90% | Low false positives |
764
+ | Recall | >85% | Catches real issues |
765
+ | Stability | >95% | Consistent across runs |
766
+ | Agreement | >85% | Cross-agent confirmation |
767
+
768
+ ## GitHub Action
769
+
770
+ ```yaml
771
+ - uses: RCOLKITT/vaspera-hardening-action@v1
772
+ with:
773
+ mode: 'diff' # scan | certify | diff
774
+ fail-on: 'critical' # critical | high | medium | none
775
+ upload-sarif: true
776
+ comment-on-pr: true
777
+ anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }} # Optional for LLM features
778
+ ```
779
+
780
+ ## Environment Variables
781
+
782
+ | Variable | Default | Description |
783
+ |----------|---------|-------------|
784
+ | `VASPERA_PROJECTS_DIR` | `~/Documents/GitHub` | Base directory to scan |
785
+ | `ANTHROPIC_API_KEY` | - | API key for LLM features (optional) |
786
+ | `SIGSTORE_ID_TOKEN` | - | OIDC token for Sigstore signing |
787
+ | `ACTIONS_ID_TOKEN_REQUEST_TOKEN` | - | GitHub Actions OIDC (auto-set) |
788
+ | `VASPERA_OPA_BUNDLE` | - | Path to OPA policy bundle |
789
+ | `VASPERA_OPA_SERVER` | - | OPA server URL for remote evaluation |
790
+ | `VASPERA_TRANSCRIPT_DIR` | `.vaspera/transcripts` | Transcript storage directory |
791
+
792
+ ### Enterprise Environment Variables
793
+
794
+ | Variable | Description |
795
+ |----------|-------------|
796
+ | `VASPERA_OIDC_ISSUER` | OIDC issuer URL (Okta, Auth0, Azure AD) |
797
+ | `VASPERA_OIDC_CLIENT_ID` | OIDC client ID |
798
+ | `VASPERA_OIDC_CLIENT_SECRET` | OIDC client secret |
799
+ | `VASPERA_JIRA_URL` | Jira instance URL |
800
+ | `VASPERA_JIRA_TOKEN` | Jira API token |
801
+ | `VASPERA_SLACK_WEBHOOK` | Slack webhook URL |
802
+ | `VASPERA_TEAMS_WEBHOOK` | Microsoft Teams webhook URL |
803
+ | `VASPERA_AWS_KMS_KEY` | AWS KMS key ARN for signing |
804
+ | `VASPERA_VAULT_ADDR` | HashiCorp Vault address |
805
+ | `VASPERA_VAULT_TOKEN` | HashiCorp Vault token |
806
+
807
+ ## License
808
+
809
+ MIT