vaspera 2.8.0 → 2.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (303) hide show
  1. package/CHANGELOG.md +109 -7
  2. package/README.md +111 -7
  3. package/dist/__tests__/agents/adversary/tactics/api.test.d.ts +5 -0
  4. package/dist/__tests__/agents/adversary/tactics/api.test.d.ts.map +1 -0
  5. package/dist/__tests__/agents/adversary/tactics/api.test.js +369 -0
  6. package/dist/__tests__/agents/adversary/tactics/api.test.js.map +1 -0
  7. package/dist/__tests__/agents/adversary/tactics/llm.test.d.ts +5 -0
  8. package/dist/__tests__/agents/adversary/tactics/llm.test.d.ts.map +1 -0
  9. package/dist/__tests__/agents/adversary/tactics/llm.test.js +409 -0
  10. package/dist/__tests__/agents/adversary/tactics/llm.test.js.map +1 -0
  11. package/dist/__tests__/agents/adversary/tactics/registry.test.d.ts +7 -0
  12. package/dist/__tests__/agents/adversary/tactics/registry.test.d.ts.map +1 -0
  13. package/dist/__tests__/agents/adversary/tactics/registry.test.js +74 -0
  14. package/dist/__tests__/agents/adversary/tactics/registry.test.js.map +1 -0
  15. package/dist/__tests__/agents/adversary/tactics/web-app.test.d.ts +7 -0
  16. package/dist/__tests__/agents/adversary/tactics/web-app.test.d.ts.map +1 -0
  17. package/dist/__tests__/agents/adversary/tactics/web-app.test.js +374 -0
  18. package/dist/__tests__/agents/adversary/tactics/web-app.test.js.map +1 -0
  19. package/dist/__tests__/compliance-bundle.test.d.ts +9 -0
  20. package/dist/__tests__/compliance-bundle.test.d.ts.map +1 -0
  21. package/dist/__tests__/compliance-bundle.test.js +344 -0
  22. package/dist/__tests__/compliance-bundle.test.js.map +1 -0
  23. package/dist/__tests__/healthcare-compliance.test.d.ts +9 -0
  24. package/dist/__tests__/healthcare-compliance.test.d.ts.map +1 -0
  25. package/dist/__tests__/healthcare-compliance.test.js +233 -0
  26. package/dist/__tests__/healthcare-compliance.test.js.map +1 -0
  27. package/dist/action/diff-mode.d.ts +124 -8
  28. package/dist/action/diff-mode.d.ts.map +1 -1
  29. package/dist/action/diff-mode.js +384 -65
  30. package/dist/action/diff-mode.js.map +1 -1
  31. package/dist/action/diff-mode.test.js +3 -3
  32. package/dist/action/diff-mode.test.js.map +1 -1
  33. package/dist/action/pr-comment.test.js +1 -0
  34. package/dist/action/pr-comment.test.js.map +1 -1
  35. package/dist/action/sarif-upload.test.js +1 -0
  36. package/dist/action/sarif-upload.test.js.map +1 -1
  37. package/dist/agents/adversary/config.d.ts +25 -4
  38. package/dist/agents/adversary/config.d.ts.map +1 -1
  39. package/dist/agents/adversary/config.js +38 -8
  40. package/dist/agents/adversary/config.js.map +1 -1
  41. package/dist/agents/adversary/index.d.ts +7 -0
  42. package/dist/agents/adversary/index.d.ts.map +1 -1
  43. package/dist/agents/adversary/index.js +83 -1
  44. package/dist/agents/adversary/index.js.map +1 -1
  45. package/dist/agents/adversary/reporting/compliance-mapper.d.ts +108 -0
  46. package/dist/agents/adversary/reporting/compliance-mapper.d.ts.map +1 -0
  47. package/dist/agents/adversary/reporting/compliance-mapper.js +391 -0
  48. package/dist/agents/adversary/reporting/compliance-mapper.js.map +1 -0
  49. package/dist/agents/adversary/reporting/index.d.ts +10 -0
  50. package/dist/agents/adversary/reporting/index.d.ts.map +1 -0
  51. package/dist/agents/adversary/reporting/index.js +10 -0
  52. package/dist/agents/adversary/reporting/index.js.map +1 -0
  53. package/dist/agents/adversary/reporting/poc-generator.d.ts +44 -0
  54. package/dist/agents/adversary/reporting/poc-generator.d.ts.map +1 -0
  55. package/dist/agents/adversary/reporting/poc-generator.js +308 -0
  56. package/dist/agents/adversary/reporting/poc-generator.js.map +1 -0
  57. package/dist/agents/adversary/tactics/api.d.ts +13 -0
  58. package/dist/agents/adversary/tactics/api.d.ts.map +1 -0
  59. package/dist/agents/adversary/tactics/api.js +815 -0
  60. package/dist/agents/adversary/tactics/api.js.map +1 -0
  61. package/dist/agents/adversary/tactics/auth.d.ts +13 -0
  62. package/dist/agents/adversary/tactics/auth.d.ts.map +1 -0
  63. package/dist/agents/adversary/tactics/auth.js +676 -0
  64. package/dist/agents/adversary/tactics/auth.js.map +1 -0
  65. package/dist/agents/adversary/tactics/index.d.ts +129 -0
  66. package/dist/agents/adversary/tactics/index.d.ts.map +1 -0
  67. package/dist/agents/adversary/tactics/index.js +199 -0
  68. package/dist/agents/adversary/tactics/index.js.map +1 -0
  69. package/dist/agents/adversary/tactics/infra.d.ts +13 -0
  70. package/dist/agents/adversary/tactics/infra.d.ts.map +1 -0
  71. package/dist/agents/adversary/tactics/infra.js +827 -0
  72. package/dist/agents/adversary/tactics/infra.js.map +1 -0
  73. package/dist/agents/adversary/tactics/injection.d.ts +12 -0
  74. package/dist/agents/adversary/tactics/injection.d.ts.map +1 -0
  75. package/dist/agents/adversary/tactics/injection.js +549 -0
  76. package/dist/agents/adversary/tactics/injection.js.map +1 -0
  77. package/dist/agents/adversary/tactics/llm.d.ts +13 -0
  78. package/dist/agents/adversary/tactics/llm.d.ts.map +1 -0
  79. package/dist/agents/adversary/tactics/llm.js +767 -0
  80. package/dist/agents/adversary/tactics/llm.js.map +1 -0
  81. package/dist/agents/adversary/tactics/web-app.d.ts +13 -0
  82. package/dist/agents/adversary/tactics/web-app.d.ts.map +1 -0
  83. package/dist/agents/adversary/tactics/web-app.js +717 -0
  84. package/dist/agents/adversary/tactics/web-app.js.map +1 -0
  85. package/dist/agents/adversary/types.d.ts +66 -10
  86. package/dist/agents/adversary/types.d.ts.map +1 -1
  87. package/dist/agents/zero-day-hunter.d.ts +1 -1
  88. package/dist/agents/zero-day-hunter.d.ts.map +1 -1
  89. package/dist/analysis/data-flow.d.ts +154 -0
  90. package/dist/analysis/data-flow.d.ts.map +1 -0
  91. package/dist/analysis/data-flow.js +393 -0
  92. package/dist/analysis/data-flow.js.map +1 -0
  93. package/dist/analysis/index.d.ts +9 -0
  94. package/dist/analysis/index.d.ts.map +1 -0
  95. package/dist/analysis/index.js +9 -0
  96. package/dist/analysis/index.js.map +1 -0
  97. package/dist/badge-service/index.d.ts +144 -0
  98. package/dist/badge-service/index.d.ts.map +1 -0
  99. package/dist/badge-service/index.js +206 -0
  100. package/dist/badge-service/index.js.map +1 -0
  101. package/dist/certification/types.d.ts +1 -1
  102. package/dist/certification/types.d.ts.map +1 -1
  103. package/dist/certification/types.js.map +1 -1
  104. package/dist/commands/certification/certify.d.ts.map +1 -1
  105. package/dist/commands/certification/certify.js +18 -4
  106. package/dist/commands/certification/certify.js.map +1 -1
  107. package/dist/compliance/attestation.d.ts +39 -0
  108. package/dist/compliance/attestation.d.ts.map +1 -0
  109. package/dist/compliance/attestation.js +364 -0
  110. package/dist/compliance/attestation.js.map +1 -0
  111. package/dist/compliance/cfr42-part2.d.ts +42 -0
  112. package/dist/compliance/cfr42-part2.d.ts.map +1 -0
  113. package/dist/compliance/cfr42-part2.js +408 -0
  114. package/dist/compliance/cfr42-part2.js.map +1 -0
  115. package/dist/compliance/compliance-bundle.d.ts +100 -0
  116. package/dist/compliance/compliance-bundle.d.ts.map +1 -0
  117. package/dist/compliance/compliance-bundle.js +210 -0
  118. package/dist/compliance/compliance-bundle.js.map +1 -0
  119. package/dist/compliance/healthcare-bundle.d.ts +68 -0
  120. package/dist/compliance/healthcare-bundle.d.ts.map +1 -0
  121. package/dist/compliance/healthcare-bundle.js +104 -0
  122. package/dist/compliance/healthcare-bundle.js.map +1 -0
  123. package/dist/compliance/hipaa.d.ts.map +1 -1
  124. package/dist/compliance/hipaa.js +14 -11
  125. package/dist/compliance/hipaa.js.map +1 -1
  126. package/dist/compliance/index.d.ts +10 -2
  127. package/dist/compliance/index.d.ts.map +1 -1
  128. package/dist/compliance/index.js +9 -3
  129. package/dist/compliance/index.js.map +1 -1
  130. package/dist/compliance/mapper.d.ts.map +1 -1
  131. package/dist/compliance/mapper.js +3 -17
  132. package/dist/compliance/mapper.js.map +1 -1
  133. package/dist/compliance/nist-800-53.d.ts +22 -6
  134. package/dist/compliance/nist-800-53.d.ts.map +1 -1
  135. package/dist/compliance/nist-800-53.js +264 -272
  136. package/dist/compliance/nist-800-53.js.map +1 -1
  137. package/dist/compliance/report.d.ts +31 -2
  138. package/dist/compliance/report.d.ts.map +1 -1
  139. package/dist/compliance/report.js +255 -4
  140. package/dist/compliance/report.js.map +1 -1
  141. package/dist/compliance/types.d.ts +1 -1
  142. package/dist/compliance/types.d.ts.map +1 -1
  143. package/dist/config/flags.d.ts +12 -12
  144. package/dist/cost/index.d.ts +1 -1
  145. package/dist/cost/index.d.ts.map +1 -1
  146. package/dist/cost/index.js +1 -1
  147. package/dist/cost/index.js.map +1 -1
  148. package/dist/cost/tracker.d.ts +64 -0
  149. package/dist/cost/tracker.d.ts.map +1 -1
  150. package/dist/cost/tracker.js +165 -0
  151. package/dist/cost/tracker.js.map +1 -1
  152. package/dist/eval/fixtures/healthcare/audit-gaps.d.ts +28 -0
  153. package/dist/eval/fixtures/healthcare/audit-gaps.d.ts.map +1 -0
  154. package/dist/eval/fixtures/healthcare/audit-gaps.js +90 -0
  155. package/dist/eval/fixtures/healthcare/audit-gaps.js.map +1 -0
  156. package/dist/eval/fixtures/healthcare/consent-bypass.d.ts +31 -0
  157. package/dist/eval/fixtures/healthcare/consent-bypass.d.ts.map +1 -0
  158. package/dist/eval/fixtures/healthcare/consent-bypass.js +61 -0
  159. package/dist/eval/fixtures/healthcare/consent-bypass.js.map +1 -0
  160. package/dist/eval/fixtures/healthcare/phi-in-logs.d.ts +24 -0
  161. package/dist/eval/fixtures/healthcare/phi-in-logs.d.ts.map +1 -0
  162. package/dist/eval/fixtures/healthcare/phi-in-logs.js +41 -0
  163. package/dist/eval/fixtures/healthcare/phi-in-logs.js.map +1 -0
  164. package/dist/evidence/collector.d.ts +21 -0
  165. package/dist/evidence/collector.d.ts.map +1 -0
  166. package/dist/evidence/collector.js +340 -0
  167. package/dist/evidence/collector.js.map +1 -0
  168. package/dist/evidence/index.d.ts +11 -0
  169. package/dist/evidence/index.d.ts.map +1 -0
  170. package/dist/evidence/index.js +12 -0
  171. package/dist/evidence/index.js.map +1 -0
  172. package/dist/evidence/store.d.ts +39 -0
  173. package/dist/evidence/store.d.ts.map +1 -0
  174. package/dist/evidence/store.js +173 -0
  175. package/dist/evidence/store.js.map +1 -0
  176. package/dist/evidence/types.d.ts +175 -0
  177. package/dist/evidence/types.d.ts.map +1 -0
  178. package/dist/evidence/types.js +9 -0
  179. package/dist/evidence/types.js.map +1 -0
  180. package/dist/exporters/checkmarx.d.ts +18 -0
  181. package/dist/exporters/checkmarx.d.ts.map +1 -0
  182. package/dist/exporters/checkmarx.js +203 -0
  183. package/dist/exporters/checkmarx.js.map +1 -0
  184. package/dist/exporters/index.d.ts +22 -0
  185. package/dist/exporters/index.d.ts.map +1 -0
  186. package/dist/exporters/index.js +41 -0
  187. package/dist/exporters/index.js.map +1 -0
  188. package/dist/exporters/snyk.d.ts +18 -0
  189. package/dist/exporters/snyk.d.ts.map +1 -0
  190. package/dist/exporters/snyk.js +119 -0
  191. package/dist/exporters/snyk.js.map +1 -0
  192. package/dist/exporters/sonarqube.d.ts +18 -0
  193. package/dist/exporters/sonarqube.d.ts.map +1 -0
  194. package/dist/exporters/sonarqube.js +125 -0
  195. package/dist/exporters/sonarqube.js.map +1 -0
  196. package/dist/exporters/types.d.ts +190 -0
  197. package/dist/exporters/types.d.ts.map +1 -0
  198. package/dist/exporters/types.js +9 -0
  199. package/dist/exporters/types.js.map +1 -0
  200. package/dist/frontier/index.d.ts +12 -0
  201. package/dist/frontier/index.d.ts.map +1 -0
  202. package/dist/frontier/index.js +12 -0
  203. package/dist/frontier/index.js.map +1 -0
  204. package/dist/frontier/orchestrator.d.ts +73 -0
  205. package/dist/frontier/orchestrator.d.ts.map +1 -0
  206. package/dist/frontier/orchestrator.js +312 -0
  207. package/dist/frontier/orchestrator.js.map +1 -0
  208. package/dist/frontier/providers/stub.d.ts +32 -0
  209. package/dist/frontier/providers/stub.d.ts.map +1 -0
  210. package/dist/frontier/providers/stub.js +66 -0
  211. package/dist/frontier/providers/stub.js.map +1 -0
  212. package/dist/frontier/types.d.ts +318 -0
  213. package/dist/frontier/types.d.ts.map +1 -0
  214. package/dist/frontier/types.js +27 -0
  215. package/dist/frontier/types.js.map +1 -0
  216. package/dist/history/index.d.ts +13 -0
  217. package/dist/history/index.d.ts.map +1 -0
  218. package/dist/history/index.js +15 -0
  219. package/dist/history/index.js.map +1 -0
  220. package/dist/history/store.d.ts +74 -0
  221. package/dist/history/store.d.ts.map +1 -0
  222. package/dist/history/store.js +399 -0
  223. package/dist/history/store.js.map +1 -0
  224. package/dist/history/types.d.ts +282 -0
  225. package/dist/history/types.d.ts.map +1 -0
  226. package/dist/history/types.js +41 -0
  227. package/dist/history/types.js.map +1 -0
  228. package/dist/history/verify.d.ts +44 -0
  229. package/dist/history/verify.d.ts.map +1 -0
  230. package/dist/history/verify.js +230 -0
  231. package/dist/history/verify.js.map +1 -0
  232. package/dist/index.d.ts.map +1 -1
  233. package/dist/index.js +515 -19
  234. package/dist/index.js.map +1 -1
  235. package/dist/multimodel/index.d.ts +1 -0
  236. package/dist/multimodel/index.d.ts.map +1 -1
  237. package/dist/multimodel/index.js +2 -0
  238. package/dist/multimodel/index.js.map +1 -1
  239. package/dist/multimodel/leaderboard.d.ts +116 -0
  240. package/dist/multimodel/leaderboard.d.ts.map +1 -0
  241. package/dist/multimodel/leaderboard.js +262 -0
  242. package/dist/multimodel/leaderboard.js.map +1 -0
  243. package/dist/observability/otel.d.ts.map +1 -1
  244. package/dist/observability/otel.js +1 -3
  245. package/dist/observability/otel.js.map +1 -1
  246. package/dist/plugins/loader.js +1 -1
  247. package/dist/plugins/loader.js.map +1 -1
  248. package/dist/scanners/agent/agent-chain-analysis.d.ts +152 -0
  249. package/dist/scanners/agent/agent-chain-analysis.d.ts.map +1 -0
  250. package/dist/scanners/agent/agent-chain-analysis.js +438 -0
  251. package/dist/scanners/agent/agent-chain-analysis.js.map +1 -0
  252. package/dist/scanners/agent/payloads/index.d.ts +2 -1
  253. package/dist/scanners/agent/payloads/index.d.ts.map +1 -1
  254. package/dist/scanners/agent/payloads/index.js +25 -6
  255. package/dist/scanners/agent/payloads/index.js.map +1 -1
  256. package/dist/scanners/agent/prompt-injection-fuzzer.d.ts.map +1 -1
  257. package/dist/scanners/agent/prompt-injection-fuzzer.js +14 -0
  258. package/dist/scanners/agent/prompt-injection-fuzzer.js.map +1 -1
  259. package/dist/scanners/agent/types.d.ts +5 -5
  260. package/dist/scanners/agent/types.d.ts.map +1 -1
  261. package/dist/scanners/agent/types.js.map +1 -1
  262. package/dist/scanners/cache.d.ts +156 -0
  263. package/dist/scanners/cache.d.ts.map +1 -0
  264. package/dist/scanners/cache.js +462 -0
  265. package/dist/scanners/cache.js.map +1 -0
  266. package/dist/scanners/dependencies.js +4 -4
  267. package/dist/scanners/dependencies.js.map +1 -1
  268. package/dist/scanners/gosec.d.ts.map +1 -1
  269. package/dist/scanners/gosec.js +47 -9
  270. package/dist/scanners/gosec.js.map +1 -1
  271. package/dist/scanners/healthcare.d.ts +29 -0
  272. package/dist/scanners/healthcare.d.ts.map +1 -0
  273. package/dist/scanners/healthcare.js +526 -0
  274. package/dist/scanners/healthcare.js.map +1 -0
  275. package/dist/scanners/index.d.ts +1 -0
  276. package/dist/scanners/index.d.ts.map +1 -1
  277. package/dist/scanners/index.js +33 -0
  278. package/dist/scanners/index.js.map +1 -1
  279. package/dist/scanners/index.test.js +6 -6
  280. package/dist/scanners/index.test.js.map +1 -1
  281. package/dist/scanners/secrets.js +4 -4
  282. package/dist/scanners/secrets.js.map +1 -1
  283. package/dist/scanners/semgrep.js +5 -5
  284. package/dist/scanners/semgrep.js.map +1 -1
  285. package/dist/scanners/types.d.ts +1 -1
  286. package/dist/scanners/types.d.ts.map +1 -1
  287. package/dist/scanners/types.js +1 -0
  288. package/dist/scanners/types.js.map +1 -1
  289. package/dist/scanners/typescript.test.js +1 -1
  290. package/dist/scanners/typescript.test.js.map +1 -1
  291. package/dist/telemetry/index.d.ts +10 -0
  292. package/dist/telemetry/index.d.ts.map +1 -0
  293. package/dist/telemetry/index.js +10 -0
  294. package/dist/telemetry/index.js.map +1 -0
  295. package/dist/telemetry/registry.d.ts +178 -0
  296. package/dist/telemetry/registry.d.ts.map +1 -0
  297. package/dist/telemetry/registry.js +297 -0
  298. package/dist/telemetry/registry.js.map +1 -0
  299. package/dist/telemetry/usage.d.ts +197 -0
  300. package/dist/telemetry/usage.d.ts.map +1 -0
  301. package/dist/telemetry/usage.js +252 -0
  302. package/dist/telemetry/usage.js.map +1 -0
  303. package/package.json +2 -6
package/CHANGELOG.md CHANGED
@@ -1,15 +1,90 @@
1
1
  # Changelog
2
2
 
3
+ ## 2.9.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#30](https://github.com/RCOLKITT/hardening-mcp/pull/30) [`8110af7`](https://github.com/RCOLKITT/hardening-mcp/commit/8110af76da720332e43f296b7357987e7edec533) Thanks [@RCOLKITT](https://github.com/RCOLKITT)! - ## Telemetry Integration
8
+
9
+ - Wired up telemetry tracking to certification tools (`certification_scan`, `agent_cert_scan`, `certification_finalize`)
10
+ - Added scan registry for persistent analytics storage
11
+ - Telemetry is opt-in via `VASPERA_TELEMETRY_ENABLED` environment variable
12
+ - Privacy-respecting: repo URL, org name, and email require explicit opt-in
13
+ - Backend API endpoint for receiving telemetry events with rate limiting
14
+
3
15
  All notable changes to this project will be documented in this file.
4
16
 
5
17
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
18
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
19
 
20
+ ## [2.9.0] - 2026-05-01
21
+
22
+ ### Added
23
+
24
+ #### Optimization Plan Modules
25
+
26
+ ##### Corpus Expansion (P0)
27
+
28
+ - 7 new payload categories bringing total from 220 to 430+ payloads
29
+ - `multi-turn.json` - 30 payloads for context-building attacks across turns
30
+ - `context-manipulation.json` - 30 payloads for conversation history attacks
31
+ - `output-redirection.json` - 30 payloads for forcing specific outputs
32
+ - `token-smuggling.json` - 30 payloads exploiting tokenization boundaries
33
+ - `mcp-attacks.json` - 30 payloads for MCP protocol-specific vectors
34
+ - `tool-chaining.json` - 30 payloads for tool composition exploits
35
+ - `privilege-escalation.json` - 30 payloads for read→write escalation
36
+ - Updated corpus sizes: quick=100, standard=400, thorough=800, exhaustive=1500
37
+
38
+ ##### Usage Telemetry (P0)
39
+
40
+ - `src/telemetry/usage.ts` - Event tracking with privacy controls
41
+ - `src/telemetry/registry.ts` - Persistent scan registry for analytics
42
+ - Opt-in telemetry for repo URL, org name, user email
43
+ - Analytics methods for dashboard and case study candidates
44
+
45
+ ##### Badge Service (P0)
46
+
47
+ - `src/badge-service/index.ts` - HTTP handlers for badge serving
48
+ - Badge verification endpoint with Sigstore bundle support
49
+ - `generateBadgeEmbedCode()` for markdown/HTML embedding
50
+ - CertificationStorage interface with memory implementation
51
+
52
+ ##### Frontier Model Interface (P1)
53
+
54
+ - `src/frontier/types.ts` - Interfaces for Mythos/GPT-5.5-Cyber integration
55
+ - `src/frontier/orchestrator.ts` - Multi-model orchestration with consensus
56
+ - `src/frontier/providers/stub.ts` - Test provider placeholder
57
+ - FrontierModelProvider interface with capabilities, cost estimation
58
+ - ExploitChain and ConsensusResult types
59
+
60
+ ##### Data Flow Analysis (P1)
61
+
62
+ - `src/analysis/data-flow.ts` - Source→sink tracking for JS/TS/Python
63
+ - Pattern-based detection of user input sources (req.body, event.body, etc.)
64
+ - Dangerous sink detection (SQL, command exec, eval, file write)
65
+ - Risky flow identification (untrusted source → sensitive sink without sanitizer)
66
+ - LLM context formatting for focused analysis
67
+
68
+ ##### Agent Chain Analysis (P2)
69
+
70
+ - `src/scanners/agent/agent-chain-analysis.ts` - Multi-hop attack paths
71
+ - Trust boundary modeling between agents and MCP servers
72
+ - AgentGraph construction from MCP server configs
73
+ - Attack path detection with severity calculation
74
+ - Mermaid diagram generation for visualization
75
+
76
+ ### Changed
77
+
78
+ - Extended PayloadCategory type with 7 new categories
79
+ - Updated FuzzerOptions corpus type to include "exhaustive"
80
+ - Increased test count from 2,332 to 2,484 across 104 test files
81
+
8
82
  ## [2.8.0] - 2026-04-29
9
83
 
10
84
  ### Added
11
85
 
12
86
  #### Agent Batch Submit Tool
87
+
13
88
  - New `agent_batch_submit` tool for submitting findings from subagent JSON output
14
89
  - Solves MCP permission issues when certification agents run as subagents
15
90
  - Accepts array of findings and optional summary in one call
@@ -18,6 +93,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
18
93
  ### Fixed
19
94
 
20
95
  #### CI/CD Improvements
96
+
21
97
  - Lazy Stripe initialization to allow builds without `STRIPE_SECRET_KEY`
22
98
  - Fixed TypeScript test timeout for CI environments
23
99
  - Synced package-lock.json for CI compatibility
@@ -27,6 +103,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
27
103
  ### Added
28
104
 
29
105
  #### Plan Enforcement
106
+
30
107
  - New plan-limits system for free/pro/enterprise tiers
31
108
  - Certification monthly limits enforced at API level
32
109
  - Agent count limits based on subscription plan
@@ -35,19 +112,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
35
112
 
36
113
  #### Plan Limits
37
114
 
38
- | Limit | Free | Pro | Enterprise |
39
- |-------|------|-----|------------|
40
- | Certifications/month | 3 | 50 | Unlimited |
41
- | Projects | 2 | 20 | Unlimited |
42
- | Agents | 3 | 7 | All |
43
- | Frameworks | SOC2 | SOC2, HIPAA, NIST | All |
44
- | Red team | ❌ | ❌ | ✓ |
115
+ | Limit | Free | Pro | Enterprise |
116
+ | -------------------- | ---- | ----------------- | ---------- |
117
+ | Certifications/month | 3 | 50 | Unlimited |
118
+ | Projects | 2 | 20 | Unlimited |
119
+ | Agents | 3 | 7 | All |
120
+ | Frameworks | SOC2 | SOC2, HIPAA, NIST | All |
121
+ | Red team | ❌ | ❌ | ✓ |
45
122
 
46
123
  ## [2.6.0] - 2026-04-26
47
124
 
48
125
  ### Added
49
126
 
50
127
  #### Test Coverage
128
+
51
129
  - 147 new tests across 5 test files
52
130
  - `agent-integrity.test.ts` - Consensus analysis and outlier detection
53
131
  - `agent-privacy.test.ts` - PII detection with Luhn validation
@@ -56,12 +134,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
56
134
  - `flags.test.ts` - Feature flags and config loading
57
135
 
58
136
  #### Feature Flags System
137
+
59
138
  - New `.vaspera/config.yaml` configuration format
60
139
  - Per-agent weights and model selection
61
140
  - Per-scanner timeouts and custom rules
62
141
  - Feature toggles for multiModel, costTracking, autofix, etc.
63
142
 
64
143
  #### Plugin System
144
+
65
145
  - Scanner plugin architecture with manifest schema
66
146
  - Local plugins from `.vaspera/plugins/`
67
147
  - npm plugins from `vaspera-scanner-*` packages
@@ -72,6 +152,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
72
152
  ### Added
73
153
 
74
154
  #### Mythos-Class Security Scanners
155
+
75
156
  - New `binary-analysis` scanner for native module security
76
157
  - Detects Node.js native addons, shared libraries, Rust FFI, Go CGO
77
158
  - Checks RELRO, NX, PIE, CANARY protections via checksec
@@ -89,6 +170,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
89
170
  - Java: check-then-act and synchronized patterns
90
171
 
91
172
  #### Semantic AI Agents
173
+
92
174
  - New `zero-day-hunter` agent for novel vulnerability discovery
93
175
  - AI-powered semantic code analysis beyond pattern matching
94
176
  - Discovers logic flaws, auth bypasses, cryptographic weaknesses
@@ -105,17 +187,20 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
105
187
  - Severity escalation calculation (medium + medium = critical)
106
188
 
107
189
  #### New MCP Tools
190
+
108
191
  - `certification_scan_binary` - Scan compiled code and native modules
109
192
  - `certification_analyze_chains` - Analyze findings for exploitable chains
110
193
  - `certification_semantic_analysis` - Run AI-powered semantic analysis
111
194
 
112
195
  #### Compliance Enhancements
196
+
113
197
  - Added MITRE ATT&CK technique mapping for AI/ML systems
114
198
  - New CWE mappings for memory safety vulnerabilities
115
199
  - New CWE mappings for race condition vulnerabilities
116
200
  - OWASP LLM Top 10 integration
117
201
 
118
202
  ### Changed
203
+
119
204
  - Updated scanner count from 9 to 13+ scanners
120
205
  - Updated agent count from 4 to 7+ agents
121
206
  - Updated frontend marketing pages with Mythos-class capabilities
@@ -126,6 +211,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
126
211
  ### Added
127
212
 
128
213
  #### Cost Tracking
214
+
129
215
  - New `cost_track` tool to start tracking costs for a certification
130
216
  - New `cost_estimate` tool to estimate costs before running
131
217
  - New `cost_status` tool to get current cost status
@@ -136,6 +222,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
136
222
  - Budget limits with automatic warnings and abort capability
137
223
 
138
224
  #### Multi-Model Consensus
225
+
139
226
  - New `multimodel_record` tool to record findings from model runs
140
227
  - New `multimodel_consensus` tool to calculate inter-model agreement
141
228
  - New `multimodel_disagreements` tool to identify model disagreements
@@ -148,6 +235,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
148
235
  - Disagreement detection by type (existence, severity, location, description)
149
236
 
150
237
  #### Compliance Mapping
238
+
151
239
  - New `compliance_report` tool for single-framework reports
152
240
  - New `compliance_multi_report` tool for multi-framework reports
153
241
  - New `compliance_controls` tool to list framework controls
@@ -157,6 +245,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
157
245
  - Finding-to-control mapping by category
158
246
 
159
247
  #### SBOM & Provenance
248
+
160
249
  - New `sbom_generate` tool for CycloneDX SBOM generation
161
250
  - New `sbom_provenance` tool for SLSA provenance attestation
162
251
  - New `sbom_sign` tool for Sigstore signing
@@ -165,6 +254,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
165
254
  - Build attestation with SLSA Level 2 support
166
255
 
167
256
  #### Documentation
257
+
168
258
  - New `docs/` folder with feature documentation
169
259
  - Cost tracking guide (`docs/cost-tracking.md`)
170
260
  - Multi-model consensus guide (`docs/multi-model.md`)
@@ -173,11 +263,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
173
263
  - Example workflows (`docs/examples/`)
174
264
 
175
265
  ### Changed
266
+
176
267
  - Updated MCP tool count from 36 to 52
177
268
  - Updated package description to highlight enterprise features
178
269
  - README now includes v2.0.0 features section
179
270
 
180
271
  ### Fixed
272
+
181
273
  - Finding type now uses `description` consistently (removed legacy `title`)
182
274
  - Multi-model consensus correctly handles partial model agreement
183
275
  - Cost calculation uses accurate per-model pricing
@@ -187,58 +279,68 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
187
279
  ### Added
188
280
 
189
281
  #### Deterministic Scanners
282
+
190
283
  - Semgrep integration for OWASP Top 10
191
284
  - gitleaks integration for secrets detection
192
285
  - npm audit integration for CVE detection
193
286
  - TypeScript analysis for type safety
194
287
 
195
288
  #### GitHub Action
289
+
196
290
  - `action.yml` for CI/CD integration
197
291
  - Diff-mode scanning for PRs
198
292
  - PR comment formatting
199
293
  - SARIF upload to GitHub Code Scanning
200
294
 
201
295
  #### Evaluation Harness
296
+
202
297
  - Test fixtures for scanner accuracy
203
298
  - Precision, recall, F1 metrics
204
299
  - Stability testing across runs
205
300
  - Target thresholds for publication
206
301
 
207
302
  #### Custom Rules
303
+
208
304
  - `rules_load` for custom rule loading
209
305
  - `rules_templates` for built-in templates
210
306
  - `rules_generate_config` for config generation
211
307
  - `rules_check_file` for file checking
212
308
 
213
309
  ### Changed
310
+
214
311
  - Scanner findings now have confidence: 100
215
312
  - LLM agents reference scanner findings by ID
216
313
 
217
314
  ## [1.0.2] - 2023-12-15
218
315
 
219
316
  ### Added
317
+
220
318
  - Cross-verification system between agents
221
319
  - Consensus scoring with certification levels
222
320
  - SARIF export for GitHub integration
223
321
 
224
322
  ### Fixed
323
+
225
324
  - Evidence validation for LLM findings
226
325
  - Finding deduplication logic
227
326
 
228
327
  ## [1.0.1] - 2023-12-01
229
328
 
230
329
  ### Added
330
+
231
331
  - File hash-based caching
232
332
  - Agent finding submission tools
233
333
  - Basic certification workflow
234
334
 
235
335
  ### Fixed
336
+
236
337
  - Project discovery on macOS
237
338
  - Command installation paths
238
339
 
239
340
  ## [1.0.0] - 2023-11-15
240
341
 
241
342
  ### Added
343
+
242
344
  - Initial release
243
345
  - 6 certification agents (security, reliability, typesafety, performance, quality, redteam)
244
346
  - Hardening command installation
package/README.md CHANGED
@@ -2,14 +2,84 @@
2
2
 
3
3
  Enterprise-grade security certification for codebases **and AI agent systems** with deterministic scanners, LLM-powered analysis, and signed attestations.
4
4
 
5
- ![npm version](https://img.shields.io/npm/v/vaspera-hardening-mcp-server)
5
+ ![npm version](https://img.shields.io/npm/v/vaspera)
6
6
  ![License](https://img.shields.io/badge/License-MIT-green)
7
- ![Tools](https://img.shields.io/badge/MCP_Tools-68+-purple)
7
+ ![Tools](https://img.shields.io/badge/MCP_Tools-68-purple)
8
8
  ![AI Frameworks](https://img.shields.io/badge/AI_Frameworks-5-blue)
9
9
  ![Scanners](https://img.shields.io/badge/Scanners-12-orange)
10
10
 
11
11
  ---
12
12
 
13
+ ## What's New in v2.9.0
14
+
15
+ ### Universal Audit-Defensible Compliance Reports
16
+ All 13 compliance frameworks now support audit-defensible report generation:
17
+
18
+ | Feature | Description |
19
+ |---------|-------------|
20
+ | **Evidence Bundle** | Cryptographically signed artifacts with Sigstore |
21
+ | **Audit Trail Verification** | Hash-chained integrity verification |
22
+ | **Attestation Section** | Framework-specific methodology and scope limitations |
23
+
24
+ **Supported Frameworks:**
25
+ - **Traditional:** SOC2, ISO27001, PCI-DSS, HIPAA, 42-CFR-PART-2, GDPR, NIST-800-53, CIS
26
+ - **AI/ML:** OWASP-LLM, NIST-AI-RMF, MITRE-ATLAS, EU-AI-ACT, ISO-42001
27
+
28
+ **New Tool Parameters:**
29
+ ```json
30
+ {
31
+ "collect_evidence": true,
32
+ "verify_audit_trail": true,
33
+ "store_evidence": true,
34
+ "include_attestation": true
35
+ }
36
+ ```
37
+
38
+ ### Healthcare Compliance Bundle
39
+ Unified HIPAA + 42 CFR Part 2 assessment for healthcare organizations:
40
+ - Single-command assessment for both frameworks
41
+ - Cross-reference between HIPAA and SUD confidentiality requirements
42
+ - Combined evidence bundle for audit defensibility
43
+
44
+ ### 42 CFR Part 2 Framework
45
+ New compliance framework for Substance Use Disorder (SUD) patient record confidentiality:
46
+ - 15 controls across consent, disclosure, and security categories
47
+ - Cross-mapping to HIPAA Security Rule
48
+ - Healthcare-specific attestation content
49
+
50
+ ---
51
+
52
+ ## What's New in v2.8.0
53
+
54
+ ### Agent Batch Submit Tool
55
+ New tool for submitting findings from subagent JSON output:
56
+ - **`agent_batch_submit`** - Submit all findings in one call when agents run as subagents
57
+ - Fixes MCP permission issues when certification agents don't have direct tool access
58
+ - Updated certification orchestration docs
59
+
60
+ ### CI/CD Improvements
61
+ - Lazy Stripe initialization for builds without env vars
62
+ - TypeScript test timeout fixes for CI environments
63
+
64
+ ---
65
+
66
+ ## What's New in v2.7.0
67
+
68
+ ### Plan Enforcement
69
+ - Plan limits for free/pro/enterprise tiers
70
+ - Certification monthly limits enforced at API level
71
+ - Agent count limits based on subscription plan
72
+ - Compliance framework access gating
73
+
74
+ | Limit | Free | Pro | Enterprise |
75
+ |-------|------|-----|------------|
76
+ | Certifications/month | 3 | 50 | Unlimited |
77
+ | Projects | 2 | 20 | Unlimited |
78
+ | Agents | 3 | 7 | All |
79
+ | Frameworks | SOC2 | SOC2, HIPAA, NIST | All |
80
+
81
+ ---
82
+
13
83
  ## What's New in v2.5.0
14
84
 
15
85
  ### Mythos-Class Security Scanners 🔬
@@ -231,8 +301,16 @@ Measure scanner accuracy with labeled test fixtures:
231
301
  ### Installation
232
302
 
233
303
  ```bash
234
- npm install vaspera-hardening-mcp-server
235
- # or
304
+ # npm
305
+ npm install vaspera
306
+
307
+ # pnpm (use -w flag for workspace root)
308
+ pnpm install -w vaspera
309
+
310
+ # yarn
311
+ yarn add vaspera
312
+
313
+ # From source
236
314
  git clone https://github.com/RCOLKITT/hardening-mcp.git
237
315
  cd hardening-mcp
238
316
  npm install && npm run build
@@ -356,13 +434,14 @@ Edit `~/Library/Application Support/Claude/claude_desktop_config.json`:
356
434
  | `consensus_models` | List model configurations |
357
435
  | `consensus_clear` | Clear recorded results |
358
436
 
359
- ### Compliance Mapping (v2.0.0)
437
+ ### Compliance Mapping (v2.0.0, enhanced v2.9.0)
360
438
 
361
439
  | Tool | Description |
362
440
  |------|-------------|
363
- | `compliance_report` | Generate compliance report for a framework |
364
- | `compliance_multi_report` | Generate report for multiple frameworks |
441
+ | `compliance_report` | Generate compliance report for a framework (audit-defensible) |
442
+ | `compliance_multi_report` | Generate report for multiple frameworks (audit-defensible) |
365
443
  | `compliance_controls` | List controls for a framework |
444
+ | `healthcare_compliance` | Unified HIPAA + 42 CFR Part 2 assessment (v2.9.0) |
366
445
 
367
446
  ### SBOM & Provenance (v2.0.0)
368
447
 
@@ -613,6 +692,31 @@ You: "Generate GDPR compliance report"
613
692
  → Returns control status with gap analysis
614
693
  ```
615
694
 
695
+ ### Audit-Defensible Compliance Report (v2.9.0)
696
+
697
+ ```
698
+ You: "Generate audit-defensible SOC 2 report"
699
+ → Claude calls compliance_report with:
700
+ - framework: "SOC2"
701
+ - collect_evidence: true
702
+ - verify_audit_trail: true
703
+ - include_attestation: true
704
+ → Collects cryptographically signed evidence bundle
705
+ → Verifies hash-chain integrity of audit trail
706
+ → Generates report with attestation methodology
707
+ → Returns audit-ready documentation
708
+ ```
709
+
710
+ ### Healthcare Compliance Assessment (v2.9.0)
711
+
712
+ ```
713
+ You: "Run healthcare compliance assessment"
714
+ → Claude calls healthcare_compliance
715
+ → Assesses both HIPAA and 42 CFR Part 2 frameworks
716
+ → Generates unified report with cross-references
717
+ → Collects evidence bundle for audit defensibility
718
+ ```
719
+
616
720
  ### Sigstore Signing (v2.1.1)
617
721
 
618
722
  ```
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Tests for API Security Tactics Module
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=api.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.test.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/agents/adversary/tactics/api.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}