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.
- package/CHANGELOG.md +109 -7
- package/README.md +111 -7
- package/dist/__tests__/agents/adversary/tactics/api.test.d.ts +5 -0
- package/dist/__tests__/agents/adversary/tactics/api.test.d.ts.map +1 -0
- package/dist/__tests__/agents/adversary/tactics/api.test.js +369 -0
- package/dist/__tests__/agents/adversary/tactics/api.test.js.map +1 -0
- package/dist/__tests__/agents/adversary/tactics/llm.test.d.ts +5 -0
- package/dist/__tests__/agents/adversary/tactics/llm.test.d.ts.map +1 -0
- package/dist/__tests__/agents/adversary/tactics/llm.test.js +409 -0
- package/dist/__tests__/agents/adversary/tactics/llm.test.js.map +1 -0
- package/dist/__tests__/agents/adversary/tactics/registry.test.d.ts +7 -0
- package/dist/__tests__/agents/adversary/tactics/registry.test.d.ts.map +1 -0
- package/dist/__tests__/agents/adversary/tactics/registry.test.js +74 -0
- package/dist/__tests__/agents/adversary/tactics/registry.test.js.map +1 -0
- package/dist/__tests__/agents/adversary/tactics/web-app.test.d.ts +7 -0
- package/dist/__tests__/agents/adversary/tactics/web-app.test.d.ts.map +1 -0
- package/dist/__tests__/agents/adversary/tactics/web-app.test.js +374 -0
- package/dist/__tests__/agents/adversary/tactics/web-app.test.js.map +1 -0
- package/dist/__tests__/compliance-bundle.test.d.ts +9 -0
- package/dist/__tests__/compliance-bundle.test.d.ts.map +1 -0
- package/dist/__tests__/compliance-bundle.test.js +344 -0
- package/dist/__tests__/compliance-bundle.test.js.map +1 -0
- package/dist/__tests__/healthcare-compliance.test.d.ts +9 -0
- package/dist/__tests__/healthcare-compliance.test.d.ts.map +1 -0
- package/dist/__tests__/healthcare-compliance.test.js +233 -0
- package/dist/__tests__/healthcare-compliance.test.js.map +1 -0
- package/dist/action/diff-mode.d.ts +124 -8
- package/dist/action/diff-mode.d.ts.map +1 -1
- package/dist/action/diff-mode.js +384 -65
- package/dist/action/diff-mode.js.map +1 -1
- package/dist/action/diff-mode.test.js +3 -3
- package/dist/action/diff-mode.test.js.map +1 -1
- package/dist/action/pr-comment.test.js +1 -0
- package/dist/action/pr-comment.test.js.map +1 -1
- package/dist/action/sarif-upload.test.js +1 -0
- package/dist/action/sarif-upload.test.js.map +1 -1
- package/dist/agents/adversary/config.d.ts +25 -4
- package/dist/agents/adversary/config.d.ts.map +1 -1
- package/dist/agents/adversary/config.js +38 -8
- package/dist/agents/adversary/config.js.map +1 -1
- package/dist/agents/adversary/index.d.ts +7 -0
- package/dist/agents/adversary/index.d.ts.map +1 -1
- package/dist/agents/adversary/index.js +83 -1
- package/dist/agents/adversary/index.js.map +1 -1
- package/dist/agents/adversary/reporting/compliance-mapper.d.ts +108 -0
- package/dist/agents/adversary/reporting/compliance-mapper.d.ts.map +1 -0
- package/dist/agents/adversary/reporting/compliance-mapper.js +391 -0
- package/dist/agents/adversary/reporting/compliance-mapper.js.map +1 -0
- package/dist/agents/adversary/reporting/index.d.ts +10 -0
- package/dist/agents/adversary/reporting/index.d.ts.map +1 -0
- package/dist/agents/adversary/reporting/index.js +10 -0
- package/dist/agents/adversary/reporting/index.js.map +1 -0
- package/dist/agents/adversary/reporting/poc-generator.d.ts +44 -0
- package/dist/agents/adversary/reporting/poc-generator.d.ts.map +1 -0
- package/dist/agents/adversary/reporting/poc-generator.js +308 -0
- package/dist/agents/adversary/reporting/poc-generator.js.map +1 -0
- package/dist/agents/adversary/tactics/api.d.ts +13 -0
- package/dist/agents/adversary/tactics/api.d.ts.map +1 -0
- package/dist/agents/adversary/tactics/api.js +815 -0
- package/dist/agents/adversary/tactics/api.js.map +1 -0
- package/dist/agents/adversary/tactics/auth.d.ts +13 -0
- package/dist/agents/adversary/tactics/auth.d.ts.map +1 -0
- package/dist/agents/adversary/tactics/auth.js +676 -0
- package/dist/agents/adversary/tactics/auth.js.map +1 -0
- package/dist/agents/adversary/tactics/index.d.ts +129 -0
- package/dist/agents/adversary/tactics/index.d.ts.map +1 -0
- package/dist/agents/adversary/tactics/index.js +199 -0
- package/dist/agents/adversary/tactics/index.js.map +1 -0
- package/dist/agents/adversary/tactics/infra.d.ts +13 -0
- package/dist/agents/adversary/tactics/infra.d.ts.map +1 -0
- package/dist/agents/adversary/tactics/infra.js +827 -0
- package/dist/agents/adversary/tactics/infra.js.map +1 -0
- package/dist/agents/adversary/tactics/injection.d.ts +12 -0
- package/dist/agents/adversary/tactics/injection.d.ts.map +1 -0
- package/dist/agents/adversary/tactics/injection.js +549 -0
- package/dist/agents/adversary/tactics/injection.js.map +1 -0
- package/dist/agents/adversary/tactics/llm.d.ts +13 -0
- package/dist/agents/adversary/tactics/llm.d.ts.map +1 -0
- package/dist/agents/adversary/tactics/llm.js +767 -0
- package/dist/agents/adversary/tactics/llm.js.map +1 -0
- package/dist/agents/adversary/tactics/web-app.d.ts +13 -0
- package/dist/agents/adversary/tactics/web-app.d.ts.map +1 -0
- package/dist/agents/adversary/tactics/web-app.js +717 -0
- package/dist/agents/adversary/tactics/web-app.js.map +1 -0
- package/dist/agents/adversary/types.d.ts +66 -10
- package/dist/agents/adversary/types.d.ts.map +1 -1
- package/dist/agents/zero-day-hunter.d.ts +1 -1
- package/dist/agents/zero-day-hunter.d.ts.map +1 -1
- package/dist/analysis/data-flow.d.ts +154 -0
- package/dist/analysis/data-flow.d.ts.map +1 -0
- package/dist/analysis/data-flow.js +393 -0
- package/dist/analysis/data-flow.js.map +1 -0
- package/dist/analysis/index.d.ts +9 -0
- package/dist/analysis/index.d.ts.map +1 -0
- package/dist/analysis/index.js +9 -0
- package/dist/analysis/index.js.map +1 -0
- package/dist/badge-service/index.d.ts +144 -0
- package/dist/badge-service/index.d.ts.map +1 -0
- package/dist/badge-service/index.js +206 -0
- package/dist/badge-service/index.js.map +1 -0
- package/dist/certification/types.d.ts +1 -1
- package/dist/certification/types.d.ts.map +1 -1
- package/dist/certification/types.js.map +1 -1
- package/dist/commands/certification/certify.d.ts.map +1 -1
- package/dist/commands/certification/certify.js +18 -4
- package/dist/commands/certification/certify.js.map +1 -1
- package/dist/compliance/attestation.d.ts +39 -0
- package/dist/compliance/attestation.d.ts.map +1 -0
- package/dist/compliance/attestation.js +364 -0
- package/dist/compliance/attestation.js.map +1 -0
- package/dist/compliance/cfr42-part2.d.ts +42 -0
- package/dist/compliance/cfr42-part2.d.ts.map +1 -0
- package/dist/compliance/cfr42-part2.js +408 -0
- package/dist/compliance/cfr42-part2.js.map +1 -0
- package/dist/compliance/compliance-bundle.d.ts +100 -0
- package/dist/compliance/compliance-bundle.d.ts.map +1 -0
- package/dist/compliance/compliance-bundle.js +210 -0
- package/dist/compliance/compliance-bundle.js.map +1 -0
- package/dist/compliance/healthcare-bundle.d.ts +68 -0
- package/dist/compliance/healthcare-bundle.d.ts.map +1 -0
- package/dist/compliance/healthcare-bundle.js +104 -0
- package/dist/compliance/healthcare-bundle.js.map +1 -0
- package/dist/compliance/hipaa.d.ts.map +1 -1
- package/dist/compliance/hipaa.js +14 -11
- package/dist/compliance/hipaa.js.map +1 -1
- package/dist/compliance/index.d.ts +10 -2
- package/dist/compliance/index.d.ts.map +1 -1
- package/dist/compliance/index.js +9 -3
- package/dist/compliance/index.js.map +1 -1
- package/dist/compliance/mapper.d.ts.map +1 -1
- package/dist/compliance/mapper.js +3 -17
- package/dist/compliance/mapper.js.map +1 -1
- package/dist/compliance/nist-800-53.d.ts +22 -6
- package/dist/compliance/nist-800-53.d.ts.map +1 -1
- package/dist/compliance/nist-800-53.js +264 -272
- package/dist/compliance/nist-800-53.js.map +1 -1
- package/dist/compliance/report.d.ts +31 -2
- package/dist/compliance/report.d.ts.map +1 -1
- package/dist/compliance/report.js +255 -4
- package/dist/compliance/report.js.map +1 -1
- package/dist/compliance/types.d.ts +1 -1
- package/dist/compliance/types.d.ts.map +1 -1
- package/dist/config/flags.d.ts +12 -12
- package/dist/cost/index.d.ts +1 -1
- package/dist/cost/index.d.ts.map +1 -1
- package/dist/cost/index.js +1 -1
- package/dist/cost/index.js.map +1 -1
- package/dist/cost/tracker.d.ts +64 -0
- package/dist/cost/tracker.d.ts.map +1 -1
- package/dist/cost/tracker.js +165 -0
- package/dist/cost/tracker.js.map +1 -1
- package/dist/eval/fixtures/healthcare/audit-gaps.d.ts +28 -0
- package/dist/eval/fixtures/healthcare/audit-gaps.d.ts.map +1 -0
- package/dist/eval/fixtures/healthcare/audit-gaps.js +90 -0
- package/dist/eval/fixtures/healthcare/audit-gaps.js.map +1 -0
- package/dist/eval/fixtures/healthcare/consent-bypass.d.ts +31 -0
- package/dist/eval/fixtures/healthcare/consent-bypass.d.ts.map +1 -0
- package/dist/eval/fixtures/healthcare/consent-bypass.js +61 -0
- package/dist/eval/fixtures/healthcare/consent-bypass.js.map +1 -0
- package/dist/eval/fixtures/healthcare/phi-in-logs.d.ts +24 -0
- package/dist/eval/fixtures/healthcare/phi-in-logs.d.ts.map +1 -0
- package/dist/eval/fixtures/healthcare/phi-in-logs.js +41 -0
- package/dist/eval/fixtures/healthcare/phi-in-logs.js.map +1 -0
- package/dist/evidence/collector.d.ts +21 -0
- package/dist/evidence/collector.d.ts.map +1 -0
- package/dist/evidence/collector.js +340 -0
- package/dist/evidence/collector.js.map +1 -0
- package/dist/evidence/index.d.ts +11 -0
- package/dist/evidence/index.d.ts.map +1 -0
- package/dist/evidence/index.js +12 -0
- package/dist/evidence/index.js.map +1 -0
- package/dist/evidence/store.d.ts +39 -0
- package/dist/evidence/store.d.ts.map +1 -0
- package/dist/evidence/store.js +173 -0
- package/dist/evidence/store.js.map +1 -0
- package/dist/evidence/types.d.ts +175 -0
- package/dist/evidence/types.d.ts.map +1 -0
- package/dist/evidence/types.js +9 -0
- package/dist/evidence/types.js.map +1 -0
- package/dist/exporters/checkmarx.d.ts +18 -0
- package/dist/exporters/checkmarx.d.ts.map +1 -0
- package/dist/exporters/checkmarx.js +203 -0
- package/dist/exporters/checkmarx.js.map +1 -0
- package/dist/exporters/index.d.ts +22 -0
- package/dist/exporters/index.d.ts.map +1 -0
- package/dist/exporters/index.js +41 -0
- package/dist/exporters/index.js.map +1 -0
- package/dist/exporters/snyk.d.ts +18 -0
- package/dist/exporters/snyk.d.ts.map +1 -0
- package/dist/exporters/snyk.js +119 -0
- package/dist/exporters/snyk.js.map +1 -0
- package/dist/exporters/sonarqube.d.ts +18 -0
- package/dist/exporters/sonarqube.d.ts.map +1 -0
- package/dist/exporters/sonarqube.js +125 -0
- package/dist/exporters/sonarqube.js.map +1 -0
- package/dist/exporters/types.d.ts +190 -0
- package/dist/exporters/types.d.ts.map +1 -0
- package/dist/exporters/types.js +9 -0
- package/dist/exporters/types.js.map +1 -0
- package/dist/frontier/index.d.ts +12 -0
- package/dist/frontier/index.d.ts.map +1 -0
- package/dist/frontier/index.js +12 -0
- package/dist/frontier/index.js.map +1 -0
- package/dist/frontier/orchestrator.d.ts +73 -0
- package/dist/frontier/orchestrator.d.ts.map +1 -0
- package/dist/frontier/orchestrator.js +312 -0
- package/dist/frontier/orchestrator.js.map +1 -0
- package/dist/frontier/providers/stub.d.ts +32 -0
- package/dist/frontier/providers/stub.d.ts.map +1 -0
- package/dist/frontier/providers/stub.js +66 -0
- package/dist/frontier/providers/stub.js.map +1 -0
- package/dist/frontier/types.d.ts +318 -0
- package/dist/frontier/types.d.ts.map +1 -0
- package/dist/frontier/types.js +27 -0
- package/dist/frontier/types.js.map +1 -0
- package/dist/history/index.d.ts +13 -0
- package/dist/history/index.d.ts.map +1 -0
- package/dist/history/index.js +15 -0
- package/dist/history/index.js.map +1 -0
- package/dist/history/store.d.ts +74 -0
- package/dist/history/store.d.ts.map +1 -0
- package/dist/history/store.js +399 -0
- package/dist/history/store.js.map +1 -0
- package/dist/history/types.d.ts +282 -0
- package/dist/history/types.d.ts.map +1 -0
- package/dist/history/types.js +41 -0
- package/dist/history/types.js.map +1 -0
- package/dist/history/verify.d.ts +44 -0
- package/dist/history/verify.d.ts.map +1 -0
- package/dist/history/verify.js +230 -0
- package/dist/history/verify.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +515 -19
- package/dist/index.js.map +1 -1
- package/dist/multimodel/index.d.ts +1 -0
- package/dist/multimodel/index.d.ts.map +1 -1
- package/dist/multimodel/index.js +2 -0
- package/dist/multimodel/index.js.map +1 -1
- package/dist/multimodel/leaderboard.d.ts +116 -0
- package/dist/multimodel/leaderboard.d.ts.map +1 -0
- package/dist/multimodel/leaderboard.js +262 -0
- package/dist/multimodel/leaderboard.js.map +1 -0
- package/dist/observability/otel.d.ts.map +1 -1
- package/dist/observability/otel.js +1 -3
- package/dist/observability/otel.js.map +1 -1
- package/dist/plugins/loader.js +1 -1
- package/dist/plugins/loader.js.map +1 -1
- package/dist/scanners/agent/agent-chain-analysis.d.ts +152 -0
- package/dist/scanners/agent/agent-chain-analysis.d.ts.map +1 -0
- package/dist/scanners/agent/agent-chain-analysis.js +438 -0
- package/dist/scanners/agent/agent-chain-analysis.js.map +1 -0
- package/dist/scanners/agent/payloads/index.d.ts +2 -1
- package/dist/scanners/agent/payloads/index.d.ts.map +1 -1
- package/dist/scanners/agent/payloads/index.js +25 -6
- package/dist/scanners/agent/payloads/index.js.map +1 -1
- package/dist/scanners/agent/prompt-injection-fuzzer.d.ts.map +1 -1
- package/dist/scanners/agent/prompt-injection-fuzzer.js +14 -0
- package/dist/scanners/agent/prompt-injection-fuzzer.js.map +1 -1
- package/dist/scanners/agent/types.d.ts +5 -5
- package/dist/scanners/agent/types.d.ts.map +1 -1
- package/dist/scanners/agent/types.js.map +1 -1
- package/dist/scanners/cache.d.ts +156 -0
- package/dist/scanners/cache.d.ts.map +1 -0
- package/dist/scanners/cache.js +462 -0
- package/dist/scanners/cache.js.map +1 -0
- package/dist/scanners/dependencies.js +4 -4
- package/dist/scanners/dependencies.js.map +1 -1
- package/dist/scanners/gosec.d.ts.map +1 -1
- package/dist/scanners/gosec.js +47 -9
- package/dist/scanners/gosec.js.map +1 -1
- package/dist/scanners/healthcare.d.ts +29 -0
- package/dist/scanners/healthcare.d.ts.map +1 -0
- package/dist/scanners/healthcare.js +526 -0
- package/dist/scanners/healthcare.js.map +1 -0
- package/dist/scanners/index.d.ts +1 -0
- package/dist/scanners/index.d.ts.map +1 -1
- package/dist/scanners/index.js +33 -0
- package/dist/scanners/index.js.map +1 -1
- package/dist/scanners/index.test.js +6 -6
- package/dist/scanners/index.test.js.map +1 -1
- package/dist/scanners/secrets.js +4 -4
- package/dist/scanners/secrets.js.map +1 -1
- package/dist/scanners/semgrep.js +5 -5
- package/dist/scanners/semgrep.js.map +1 -1
- package/dist/scanners/types.d.ts +1 -1
- package/dist/scanners/types.d.ts.map +1 -1
- package/dist/scanners/types.js +1 -0
- package/dist/scanners/types.js.map +1 -1
- package/dist/scanners/typescript.test.js +1 -1
- package/dist/scanners/typescript.test.js.map +1 -1
- package/dist/telemetry/index.d.ts +10 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +10 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/telemetry/registry.d.ts +178 -0
- package/dist/telemetry/registry.d.ts.map +1 -0
- package/dist/telemetry/registry.js +297 -0
- package/dist/telemetry/registry.js.map +1 -0
- package/dist/telemetry/usage.d.ts +197 -0
- package/dist/telemetry/usage.d.ts.map +1 -0
- package/dist/telemetry/usage.js +252 -0
- package/dist/telemetry/usage.js.map +1 -0
- 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
|
|
39
|
-
|
|
40
|
-
| Certifications/month | 3
|
|
41
|
-
| Projects
|
|
42
|
-
| Agents
|
|
43
|
-
| Frameworks
|
|
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
|
-

|
|
6
6
|

|
|
7
|
-

|
|
8
8
|

|
|
9
9
|

|
|
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
|
|
235
|
-
|
|
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 @@
|
|
|
1
|
+
{"version":3,"file":"api.test.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/agents/adversary/tactics/api.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|