vaspera 2.7.0 → 2.9.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 (321) hide show
  1. package/CHANGELOG.md +72 -0
  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 +113 -0
  38. package/dist/agents/adversary/config.d.ts.map +1 -0
  39. package/dist/agents/adversary/config.js +391 -0
  40. package/dist/agents/adversary/config.js.map +1 -0
  41. package/dist/agents/adversary/index.d.ts +41 -0
  42. package/dist/agents/adversary/index.d.ts.map +1 -0
  43. package/dist/agents/adversary/index.js +838 -0
  44. package/dist/agents/adversary/index.js.map +1 -0
  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 +407 -0
  86. package/dist/agents/adversary/types.d.ts.map +1 -0
  87. package/dist/agents/adversary/types.js +12 -0
  88. package/dist/agents/adversary/types.js.map +1 -0
  89. package/dist/agents/index.d.ts +1 -0
  90. package/dist/agents/index.d.ts.map +1 -1
  91. package/dist/agents/index.js +2 -0
  92. package/dist/agents/index.js.map +1 -1
  93. package/dist/agents/zero-day-hunter.d.ts +1 -1
  94. package/dist/agents/zero-day-hunter.d.ts.map +1 -1
  95. package/dist/analysis/data-flow.d.ts +154 -0
  96. package/dist/analysis/data-flow.d.ts.map +1 -0
  97. package/dist/analysis/data-flow.js +393 -0
  98. package/dist/analysis/data-flow.js.map +1 -0
  99. package/dist/analysis/index.d.ts +9 -0
  100. package/dist/analysis/index.d.ts.map +1 -0
  101. package/dist/analysis/index.js +9 -0
  102. package/dist/analysis/index.js.map +1 -0
  103. package/dist/badge-service/index.d.ts +144 -0
  104. package/dist/badge-service/index.d.ts.map +1 -0
  105. package/dist/badge-service/index.js +206 -0
  106. package/dist/badge-service/index.js.map +1 -0
  107. package/dist/certification/consensus.test.js +2 -0
  108. package/dist/certification/consensus.test.js.map +1 -1
  109. package/dist/certification/store.d.ts.map +1 -1
  110. package/dist/certification/store.js +4 -0
  111. package/dist/certification/store.js.map +1 -1
  112. package/dist/certification/types.d.ts +3 -3
  113. package/dist/certification/types.d.ts.map +1 -1
  114. package/dist/certification/types.js +2 -0
  115. package/dist/certification/types.js.map +1 -1
  116. package/dist/commands/certification/certify.d.ts.map +1 -1
  117. package/dist/commands/certification/certify.js +18 -4
  118. package/dist/commands/certification/certify.js.map +1 -1
  119. package/dist/compliance/attestation.d.ts +39 -0
  120. package/dist/compliance/attestation.d.ts.map +1 -0
  121. package/dist/compliance/attestation.js +364 -0
  122. package/dist/compliance/attestation.js.map +1 -0
  123. package/dist/compliance/cfr42-part2.d.ts +42 -0
  124. package/dist/compliance/cfr42-part2.d.ts.map +1 -0
  125. package/dist/compliance/cfr42-part2.js +408 -0
  126. package/dist/compliance/cfr42-part2.js.map +1 -0
  127. package/dist/compliance/compliance-bundle.d.ts +100 -0
  128. package/dist/compliance/compliance-bundle.d.ts.map +1 -0
  129. package/dist/compliance/compliance-bundle.js +210 -0
  130. package/dist/compliance/compliance-bundle.js.map +1 -0
  131. package/dist/compliance/healthcare-bundle.d.ts +68 -0
  132. package/dist/compliance/healthcare-bundle.d.ts.map +1 -0
  133. package/dist/compliance/healthcare-bundle.js +104 -0
  134. package/dist/compliance/healthcare-bundle.js.map +1 -0
  135. package/dist/compliance/hipaa.d.ts.map +1 -1
  136. package/dist/compliance/hipaa.js +14 -11
  137. package/dist/compliance/hipaa.js.map +1 -1
  138. package/dist/compliance/index.d.ts +10 -2
  139. package/dist/compliance/index.d.ts.map +1 -1
  140. package/dist/compliance/index.js +9 -3
  141. package/dist/compliance/index.js.map +1 -1
  142. package/dist/compliance/mapper.d.ts.map +1 -1
  143. package/dist/compliance/mapper.js +3 -17
  144. package/dist/compliance/mapper.js.map +1 -1
  145. package/dist/compliance/nist-800-53.d.ts +22 -6
  146. package/dist/compliance/nist-800-53.d.ts.map +1 -1
  147. package/dist/compliance/nist-800-53.js +264 -272
  148. package/dist/compliance/nist-800-53.js.map +1 -1
  149. package/dist/compliance/report.d.ts +31 -2
  150. package/dist/compliance/report.d.ts.map +1 -1
  151. package/dist/compliance/report.js +255 -4
  152. package/dist/compliance/report.js.map +1 -1
  153. package/dist/compliance/types.d.ts +1 -1
  154. package/dist/compliance/types.d.ts.map +1 -1
  155. package/dist/config/flags.d.ts +12 -12
  156. package/dist/cost/index.d.ts +1 -1
  157. package/dist/cost/index.d.ts.map +1 -1
  158. package/dist/cost/index.js +1 -1
  159. package/dist/cost/index.js.map +1 -1
  160. package/dist/cost/tracker.d.ts +64 -0
  161. package/dist/cost/tracker.d.ts.map +1 -1
  162. package/dist/cost/tracker.js +165 -0
  163. package/dist/cost/tracker.js.map +1 -1
  164. package/dist/eval/fixtures/healthcare/audit-gaps.d.ts +28 -0
  165. package/dist/eval/fixtures/healthcare/audit-gaps.d.ts.map +1 -0
  166. package/dist/eval/fixtures/healthcare/audit-gaps.js +90 -0
  167. package/dist/eval/fixtures/healthcare/audit-gaps.js.map +1 -0
  168. package/dist/eval/fixtures/healthcare/consent-bypass.d.ts +31 -0
  169. package/dist/eval/fixtures/healthcare/consent-bypass.d.ts.map +1 -0
  170. package/dist/eval/fixtures/healthcare/consent-bypass.js +61 -0
  171. package/dist/eval/fixtures/healthcare/consent-bypass.js.map +1 -0
  172. package/dist/eval/fixtures/healthcare/phi-in-logs.d.ts +24 -0
  173. package/dist/eval/fixtures/healthcare/phi-in-logs.d.ts.map +1 -0
  174. package/dist/eval/fixtures/healthcare/phi-in-logs.js +41 -0
  175. package/dist/eval/fixtures/healthcare/phi-in-logs.js.map +1 -0
  176. package/dist/evidence/collector.d.ts +21 -0
  177. package/dist/evidence/collector.d.ts.map +1 -0
  178. package/dist/evidence/collector.js +340 -0
  179. package/dist/evidence/collector.js.map +1 -0
  180. package/dist/evidence/index.d.ts +11 -0
  181. package/dist/evidence/index.d.ts.map +1 -0
  182. package/dist/evidence/index.js +12 -0
  183. package/dist/evidence/index.js.map +1 -0
  184. package/dist/evidence/store.d.ts +39 -0
  185. package/dist/evidence/store.d.ts.map +1 -0
  186. package/dist/evidence/store.js +173 -0
  187. package/dist/evidence/store.js.map +1 -0
  188. package/dist/evidence/types.d.ts +175 -0
  189. package/dist/evidence/types.d.ts.map +1 -0
  190. package/dist/evidence/types.js +9 -0
  191. package/dist/evidence/types.js.map +1 -0
  192. package/dist/exporters/checkmarx.d.ts +18 -0
  193. package/dist/exporters/checkmarx.d.ts.map +1 -0
  194. package/dist/exporters/checkmarx.js +203 -0
  195. package/dist/exporters/checkmarx.js.map +1 -0
  196. package/dist/exporters/index.d.ts +22 -0
  197. package/dist/exporters/index.d.ts.map +1 -0
  198. package/dist/exporters/index.js +41 -0
  199. package/dist/exporters/index.js.map +1 -0
  200. package/dist/exporters/snyk.d.ts +18 -0
  201. package/dist/exporters/snyk.d.ts.map +1 -0
  202. package/dist/exporters/snyk.js +119 -0
  203. package/dist/exporters/snyk.js.map +1 -0
  204. package/dist/exporters/sonarqube.d.ts +18 -0
  205. package/dist/exporters/sonarqube.d.ts.map +1 -0
  206. package/dist/exporters/sonarqube.js +125 -0
  207. package/dist/exporters/sonarqube.js.map +1 -0
  208. package/dist/exporters/types.d.ts +190 -0
  209. package/dist/exporters/types.d.ts.map +1 -0
  210. package/dist/exporters/types.js +9 -0
  211. package/dist/exporters/types.js.map +1 -0
  212. package/dist/frontier/index.d.ts +12 -0
  213. package/dist/frontier/index.d.ts.map +1 -0
  214. package/dist/frontier/index.js +12 -0
  215. package/dist/frontier/index.js.map +1 -0
  216. package/dist/frontier/orchestrator.d.ts +73 -0
  217. package/dist/frontier/orchestrator.d.ts.map +1 -0
  218. package/dist/frontier/orchestrator.js +312 -0
  219. package/dist/frontier/orchestrator.js.map +1 -0
  220. package/dist/frontier/providers/stub.d.ts +32 -0
  221. package/dist/frontier/providers/stub.d.ts.map +1 -0
  222. package/dist/frontier/providers/stub.js +66 -0
  223. package/dist/frontier/providers/stub.js.map +1 -0
  224. package/dist/frontier/types.d.ts +318 -0
  225. package/dist/frontier/types.d.ts.map +1 -0
  226. package/dist/frontier/types.js +27 -0
  227. package/dist/frontier/types.js.map +1 -0
  228. package/dist/history/index.d.ts +13 -0
  229. package/dist/history/index.d.ts.map +1 -0
  230. package/dist/history/index.js +15 -0
  231. package/dist/history/index.js.map +1 -0
  232. package/dist/history/store.d.ts +74 -0
  233. package/dist/history/store.d.ts.map +1 -0
  234. package/dist/history/store.js +399 -0
  235. package/dist/history/store.js.map +1 -0
  236. package/dist/history/types.d.ts +282 -0
  237. package/dist/history/types.d.ts.map +1 -0
  238. package/dist/history/types.js +41 -0
  239. package/dist/history/types.js.map +1 -0
  240. package/dist/history/verify.d.ts +44 -0
  241. package/dist/history/verify.d.ts.map +1 -0
  242. package/dist/history/verify.js +230 -0
  243. package/dist/history/verify.js.map +1 -0
  244. package/dist/index.d.ts.map +1 -1
  245. package/dist/index.js +431 -18
  246. package/dist/index.js.map +1 -1
  247. package/dist/multimodel/index.d.ts +1 -0
  248. package/dist/multimodel/index.d.ts.map +1 -1
  249. package/dist/multimodel/index.js +2 -0
  250. package/dist/multimodel/index.js.map +1 -1
  251. package/dist/multimodel/leaderboard.d.ts +116 -0
  252. package/dist/multimodel/leaderboard.d.ts.map +1 -0
  253. package/dist/multimodel/leaderboard.js +262 -0
  254. package/dist/multimodel/leaderboard.js.map +1 -0
  255. package/dist/observability/otel.d.ts.map +1 -1
  256. package/dist/observability/otel.js +1 -3
  257. package/dist/observability/otel.js.map +1 -1
  258. package/dist/plugins/loader.js +1 -1
  259. package/dist/plugins/loader.js.map +1 -1
  260. package/dist/sbom/provenance.test.js +2 -2
  261. package/dist/sbom/provenance.test.js.map +1 -1
  262. package/dist/scanners/agent/agent-chain-analysis.d.ts +152 -0
  263. package/dist/scanners/agent/agent-chain-analysis.d.ts.map +1 -0
  264. package/dist/scanners/agent/agent-chain-analysis.js +438 -0
  265. package/dist/scanners/agent/agent-chain-analysis.js.map +1 -0
  266. package/dist/scanners/agent/manifest-audit.d.ts.map +1 -1
  267. package/dist/scanners/agent/manifest-audit.js +30 -18
  268. package/dist/scanners/agent/manifest-audit.js.map +1 -1
  269. package/dist/scanners/agent/payloads/index.d.ts +2 -1
  270. package/dist/scanners/agent/payloads/index.d.ts.map +1 -1
  271. package/dist/scanners/agent/payloads/index.js +25 -6
  272. package/dist/scanners/agent/payloads/index.js.map +1 -1
  273. package/dist/scanners/agent/prompt-injection-fuzzer.d.ts.map +1 -1
  274. package/dist/scanners/agent/prompt-injection-fuzzer.js +14 -0
  275. package/dist/scanners/agent/prompt-injection-fuzzer.js.map +1 -1
  276. package/dist/scanners/agent/types.d.ts +5 -5
  277. package/dist/scanners/agent/types.d.ts.map +1 -1
  278. package/dist/scanners/agent/types.js.map +1 -1
  279. package/dist/scanners/cache.d.ts +156 -0
  280. package/dist/scanners/cache.d.ts.map +1 -0
  281. package/dist/scanners/cache.js +462 -0
  282. package/dist/scanners/cache.js.map +1 -0
  283. package/dist/scanners/dependencies.d.ts.map +1 -1
  284. package/dist/scanners/dependencies.js +5 -6
  285. package/dist/scanners/dependencies.js.map +1 -1
  286. package/dist/scanners/gosec.d.ts.map +1 -1
  287. package/dist/scanners/gosec.js +47 -9
  288. package/dist/scanners/gosec.js.map +1 -1
  289. package/dist/scanners/healthcare.d.ts +29 -0
  290. package/dist/scanners/healthcare.d.ts.map +1 -0
  291. package/dist/scanners/healthcare.js +526 -0
  292. package/dist/scanners/healthcare.js.map +1 -0
  293. package/dist/scanners/index.d.ts +1 -0
  294. package/dist/scanners/index.d.ts.map +1 -1
  295. package/dist/scanners/index.js +33 -0
  296. package/dist/scanners/index.js.map +1 -1
  297. package/dist/scanners/index.test.js +6 -6
  298. package/dist/scanners/index.test.js.map +1 -1
  299. package/dist/scanners/secrets.js +4 -4
  300. package/dist/scanners/secrets.js.map +1 -1
  301. package/dist/scanners/semgrep.js +5 -5
  302. package/dist/scanners/semgrep.js.map +1 -1
  303. package/dist/scanners/types.d.ts +1 -1
  304. package/dist/scanners/types.d.ts.map +1 -1
  305. package/dist/scanners/types.js +1 -0
  306. package/dist/scanners/types.js.map +1 -1
  307. package/dist/scanners/typescript.test.js +1 -1
  308. package/dist/scanners/typescript.test.js.map +1 -1
  309. package/dist/telemetry/index.d.ts +10 -0
  310. package/dist/telemetry/index.d.ts.map +1 -0
  311. package/dist/telemetry/index.js +10 -0
  312. package/dist/telemetry/index.js.map +1 -0
  313. package/dist/telemetry/registry.d.ts +178 -0
  314. package/dist/telemetry/registry.d.ts.map +1 -0
  315. package/dist/telemetry/registry.js +297 -0
  316. package/dist/telemetry/registry.js.map +1 -0
  317. package/dist/telemetry/usage.d.ts +197 -0
  318. package/dist/telemetry/usage.d.ts.map +1 -0
  319. package/dist/telemetry/usage.js +244 -0
  320. package/dist/telemetry/usage.js.map +1 -0
  321. package/package.json +11 -2
@@ -0,0 +1,18 @@
1
+ /**
2
+ * SonarQube Exporter
3
+ *
4
+ * Exports findings to SonarQube Generic Issue Import Format.
5
+ *
6
+ * @module exporters/sonarqube
7
+ */
8
+ import type { Certification } from "../certification/types.js";
9
+ import type { ExportOptions, ExportResult, Exporter } from "./types.js";
10
+ /**
11
+ * Export certification to SonarQube format
12
+ */
13
+ export declare function exportToSonarQube(certification: Certification, options?: ExportOptions): Promise<ExportResult>;
14
+ /**
15
+ * SonarQube exporter instance
16
+ */
17
+ export declare const sonarqubeExporter: Exporter;
18
+ //# sourceMappingURL=sonarqube.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonarqube.d.ts","sourceRoot":"","sources":["../../src/exporters/sonarqube.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,aAAa,EAAqB,MAAM,2BAA2B,CAAC;AAClF,OAAO,KAAK,EACV,aAAa,EACb,YAAY,EACZ,QAAQ,EAGT,MAAM,YAAY,CAAC;AAqFpB;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,aAAa,EAC5B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAG/B,CAAC"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * SonarQube Exporter
3
+ *
4
+ * Exports findings to SonarQube Generic Issue Import Format.
5
+ *
6
+ * @module exporters/sonarqube
7
+ */
8
+ import { writeFile } from "fs/promises";
9
+ /**
10
+ * Map Vaspera severity to SonarQube severity
11
+ */
12
+ const SEVERITY_MAP = {
13
+ critical: "BLOCKER",
14
+ high: "CRITICAL",
15
+ medium: "MAJOR",
16
+ low: "MINOR",
17
+ info: "INFO",
18
+ };
19
+ /**
20
+ * Map category to SonarQube issue type
21
+ */
22
+ function categoryToType(category) {
23
+ const securityCategories = [
24
+ "injection",
25
+ "xss",
26
+ "authentication",
27
+ "authorization",
28
+ "cryptography",
29
+ "secrets",
30
+ "api-security",
31
+ ];
32
+ if (securityCategories.some((c) => category.toLowerCase().includes(c))) {
33
+ return "VULNERABILITY";
34
+ }
35
+ const bugCategories = ["error-handling", "null-safety", "type-safety", "memory"];
36
+ if (bugCategories.some((c) => category.toLowerCase().includes(c))) {
37
+ return "BUG";
38
+ }
39
+ return "CODE_SMELL";
40
+ }
41
+ /**
42
+ * Estimate effort to fix in minutes based on severity
43
+ */
44
+ function estimateEffort(severity) {
45
+ switch (severity) {
46
+ case "critical":
47
+ return 120;
48
+ case "high":
49
+ return 60;
50
+ case "medium":
51
+ return 30;
52
+ case "low":
53
+ return 15;
54
+ case "info":
55
+ return 5;
56
+ }
57
+ }
58
+ /**
59
+ * Convert a finding to SonarQube issue
60
+ */
61
+ function findingToIssue(finding, projectRoot) {
62
+ let filePath = finding.file || "unknown";
63
+ if (projectRoot && filePath.startsWith(projectRoot)) {
64
+ filePath = filePath.slice(projectRoot.length).replace(/^\//, "");
65
+ }
66
+ return {
67
+ engineId: "vaspera",
68
+ ruleId: finding.scanner_rule_id || `vaspera-${finding.category}`,
69
+ primaryLocation: {
70
+ message: finding.description,
71
+ filePath,
72
+ textRange: finding.line
73
+ ? {
74
+ startLine: finding.line,
75
+ endLine: finding.line,
76
+ }
77
+ : undefined,
78
+ },
79
+ type: categoryToType(finding.category),
80
+ severity: SEVERITY_MAP[finding.severity],
81
+ effortMinutes: estimateEffort(finding.severity),
82
+ };
83
+ }
84
+ /**
85
+ * Export certification to SonarQube format
86
+ */
87
+ export async function exportToSonarQube(certification, options = {}) {
88
+ const { outputPath, minSeverity = "info", projectRoot, includeResolved = false } = options;
89
+ const severityOrder = ["critical", "high", "medium", "low", "info"];
90
+ const minIndex = severityOrder.indexOf(minSeverity);
91
+ // Collect all findings
92
+ const allFindings = [];
93
+ for (const [, agentData] of Object.entries(certification.agents)) {
94
+ if (agentData?.findings) {
95
+ allFindings.push(...agentData.findings);
96
+ }
97
+ }
98
+ // Filter by severity
99
+ const filteredFindings = allFindings.filter((f) => {
100
+ const sevIndex = severityOrder.indexOf(f.severity);
101
+ return sevIndex <= minIndex;
102
+ });
103
+ // Convert to SonarQube format
104
+ const issues = filteredFindings.map((f) => findingToIssue(f, projectRoot));
105
+ const report = { issues };
106
+ const content = JSON.stringify(report, null, 2);
107
+ // Write to file if path provided
108
+ if (outputPath) {
109
+ await writeFile(outputPath, content, "utf-8");
110
+ }
111
+ return {
112
+ format: "sonarqube",
113
+ outputPath,
114
+ findingsExported: issues.length,
115
+ content,
116
+ };
117
+ }
118
+ /**
119
+ * SonarQube exporter instance
120
+ */
121
+ export const sonarqubeExporter = {
122
+ format: "sonarqube",
123
+ export: exportToSonarQube,
124
+ };
125
+ //# sourceMappingURL=sonarqube.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sonarqube.js","sourceRoot":"","sources":["../../src/exporters/sonarqube.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,190 @@
1
+ /**
2
+ * Exporter Types
3
+ *
4
+ * Defines types for exporting findings to various security tool formats.
5
+ *
6
+ * @module exporters/types
7
+ */
8
+ import type { Certification, Severity } from "../certification/types.js";
9
+ /**
10
+ * Supported export formats
11
+ */
12
+ export type ExportFormat = "sarif" | "sonarqube" | "snyk" | "checkmarx";
13
+ /**
14
+ * Export options
15
+ */
16
+ export interface ExportOptions {
17
+ /** Output file path */
18
+ outputPath?: string;
19
+ /** Include resolved/fixed findings */
20
+ includeResolved?: boolean;
21
+ /** Minimum severity to include */
22
+ minSeverity?: Severity;
23
+ /** Project root path for relative file paths */
24
+ projectRoot?: string;
25
+ /** Additional metadata */
26
+ metadata?: Record<string, unknown>;
27
+ }
28
+ /**
29
+ * Export result
30
+ */
31
+ export interface ExportResult {
32
+ format: ExportFormat;
33
+ outputPath?: string;
34
+ findingsExported: number;
35
+ content: string;
36
+ }
37
+ /**
38
+ * Exporter interface
39
+ */
40
+ export interface Exporter {
41
+ format: ExportFormat;
42
+ export(certification: Certification, options?: ExportOptions): Promise<ExportResult>;
43
+ }
44
+ /**
45
+ * SonarQube Generic Issue Import Format
46
+ * https://docs.sonarqube.org/latest/analyzing-source-code/importing-external-issues/generic-issue-import-format/
47
+ */
48
+ export interface SonarQubeReport {
49
+ issues: SonarQubeIssue[];
50
+ }
51
+ export interface SonarQubeIssue {
52
+ /** Engine ID (e.g., "vaspera") */
53
+ engineId: string;
54
+ /** Rule ID */
55
+ ruleId: string;
56
+ /** Primary location */
57
+ primaryLocation: {
58
+ message: string;
59
+ filePath: string;
60
+ textRange?: {
61
+ startLine: number;
62
+ endLine?: number;
63
+ startColumn?: number;
64
+ endColumn?: number;
65
+ };
66
+ };
67
+ /** Issue type */
68
+ type: "BUG" | "VULNERABILITY" | "CODE_SMELL";
69
+ /** Severity */
70
+ severity: "BLOCKER" | "CRITICAL" | "MAJOR" | "MINOR" | "INFO";
71
+ /** Effort to fix (in minutes) */
72
+ effortMinutes?: number;
73
+ /** Secondary locations */
74
+ secondaryLocations?: Array<{
75
+ message: string;
76
+ filePath: string;
77
+ textRange?: {
78
+ startLine: number;
79
+ endLine?: number;
80
+ };
81
+ }>;
82
+ }
83
+ /**
84
+ * Snyk JSON Output Format
85
+ * https://docs.snyk.io/snyk-cli/commands/test
86
+ */
87
+ export interface SnykReport {
88
+ ok: boolean;
89
+ vulnerabilities: SnykVulnerability[];
90
+ dependencyCount: number;
91
+ org: string;
92
+ policy: string;
93
+ isPrivate: boolean;
94
+ licensesPolicy: Record<string, unknown>;
95
+ packageManager: string;
96
+ projectName: string;
97
+ summary: string;
98
+ filesystemPolicy: boolean;
99
+ filtered?: {
100
+ ignore: unknown[];
101
+ patch: unknown[];
102
+ };
103
+ }
104
+ export interface SnykVulnerability {
105
+ /** Vulnerability ID */
106
+ id: string;
107
+ /** Title */
108
+ title: string;
109
+ /** Description */
110
+ description: string;
111
+ /** Severity */
112
+ severity: "critical" | "high" | "medium" | "low";
113
+ /** CVSS score */
114
+ cvssScore?: number;
115
+ /** CVE IDs */
116
+ identifiers?: {
117
+ CVE?: string[];
118
+ CWE?: string[];
119
+ };
120
+ /** Affected package */
121
+ packageName?: string;
122
+ /** Affected version */
123
+ version?: string;
124
+ /** Fixed in version */
125
+ fixedIn?: string[];
126
+ /** File paths */
127
+ from?: string[];
128
+ /** Upgrade path */
129
+ upgradePath?: string[];
130
+ /** Exploit maturity */
131
+ exploit?: string;
132
+ /** Is patchable */
133
+ isPatchable?: boolean;
134
+ /** Is upgradeable */
135
+ isUpgradable?: boolean;
136
+ /** Publication time */
137
+ publicationTime?: string;
138
+ /** Disclosure time */
139
+ disclosureTime?: string;
140
+ /** SEMVER vulnerable */
141
+ semver?: {
142
+ vulnerable: string[];
143
+ };
144
+ }
145
+ /**
146
+ * Checkmarx XML Report Format (simplified)
147
+ * Based on Checkmarx CxSAST report structure
148
+ */
149
+ export interface CheckmarxReport {
150
+ projectName: string;
151
+ projectId: string;
152
+ scanId: string;
153
+ scanDate: string;
154
+ scanStatus: string;
155
+ resultsCount: number;
156
+ results: CheckmarxResult[];
157
+ }
158
+ export interface CheckmarxResult {
159
+ /** Query ID */
160
+ queryId: string;
161
+ /** Query name */
162
+ queryName: string;
163
+ /** Query group (category) */
164
+ queryGroup: string;
165
+ /** CWE ID */
166
+ cweId?: string;
167
+ /** Severity */
168
+ severity: "High" | "Medium" | "Low" | "Information";
169
+ /** Result state */
170
+ state: "To Verify" | "Not Exploitable" | "Confirmed" | "Urgent";
171
+ /** Source file */
172
+ sourceFile: string;
173
+ /** Source line */
174
+ sourceLine: number;
175
+ /** Source object */
176
+ sourceObject: string;
177
+ /** Destination file */
178
+ destFile?: string;
179
+ /** Destination line */
180
+ destLine?: number;
181
+ /** Destination object */
182
+ destObject?: string;
183
+ /** Result hash */
184
+ resultHash: string;
185
+ /** Detection date */
186
+ detectionDate: string;
187
+ /** Comment */
188
+ comment?: string;
189
+ }
190
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/exporters/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Exporter Types
3
+ *
4
+ * Defines types for exporting findings to various security tool formats.
5
+ *
6
+ * @module exporters/types
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/exporters/types.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Frontier Model Integration
3
+ *
4
+ * Provides interfaces and orchestration for integrating frontier AI models
5
+ * (Mythos, GPT-5.5-Cyber, etc.) into the certification pipeline.
6
+ *
7
+ * @module frontier
8
+ */
9
+ export * from "./types.js";
10
+ export * from "./orchestrator.js";
11
+ export { StubFrontierProvider, createStubProvider } from "./providers/stub.js";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/frontier/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Frontier Model Integration
3
+ *
4
+ * Provides interfaces and orchestration for integrating frontier AI models
5
+ * (Mythos, GPT-5.5-Cyber, etc.) into the certification pipeline.
6
+ *
7
+ * @module frontier
8
+ */
9
+ export * from "./types.js";
10
+ export * from "./orchestrator.js";
11
+ export { StubFrontierProvider, createStubProvider } from "./providers/stub.js";
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/frontier/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,mBAAmB,CAAC;AAClC,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC"}
@@ -0,0 +1,73 @@
1
+ /**
2
+ * Frontier Model Orchestrator
3
+ *
4
+ * Manages multiple frontier model providers, handles fallback,
5
+ * and implements consensus across models for high-confidence results.
6
+ *
7
+ * @module frontier/orchestrator
8
+ */
9
+ import type { FrontierProvider, FrontierModelProvider, FrontierAnalysisRequest, FrontierAnalysisResult, ConsensusResult, FrontierConfig, CostEstimate } from "./types.js";
10
+ /**
11
+ * Orchestrates frontier model analysis across multiple providers
12
+ */
13
+ export declare class FrontierOrchestrator {
14
+ private providers;
15
+ private config;
16
+ constructor(config?: Partial<FrontierConfig>);
17
+ /**
18
+ * Register a model provider
19
+ */
20
+ registerProvider(provider: FrontierModelProvider): void;
21
+ /**
22
+ * Get a registered provider
23
+ */
24
+ getProvider(name: FrontierProvider): FrontierModelProvider | undefined;
25
+ /**
26
+ * List all registered providers
27
+ */
28
+ listProviders(): FrontierProvider[];
29
+ /**
30
+ * Check availability of all providers
31
+ */
32
+ checkAvailability(): Promise<Record<FrontierProvider, {
33
+ available: boolean;
34
+ error?: string;
35
+ }>>;
36
+ /**
37
+ * Run analysis with a single provider
38
+ */
39
+ runWithProvider(request: FrontierAnalysisRequest, providerName: FrontierProvider): Promise<FrontierAnalysisResult>;
40
+ /**
41
+ * Run analysis with fallback through multiple providers
42
+ */
43
+ runWithFallback(request: FrontierAnalysisRequest, providerNames: FrontierProvider[]): Promise<FrontierAnalysisResult>;
44
+ /**
45
+ * Run analysis with multiple providers for consensus
46
+ */
47
+ runWithConsensus(request: FrontierAnalysisRequest, providerNames: FrontierProvider[]): Promise<ConsensusResult>;
48
+ /**
49
+ * Calculate consensus across model results
50
+ */
51
+ private calculateConsensus;
52
+ /**
53
+ * Estimate cost for an analysis across providers
54
+ */
55
+ estimateCost(request: FrontierAnalysisRequest, providerNames?: FrontierProvider[]): Promise<Record<FrontierProvider, CostEstimate>>;
56
+ /**
57
+ * Get the default provider order based on config
58
+ */
59
+ getDefaultProviderOrder(): FrontierProvider[];
60
+ /**
61
+ * Run analysis with default configuration
62
+ */
63
+ run(request: FrontierAnalysisRequest): Promise<FrontierAnalysisResult | ConsensusResult>;
64
+ }
65
+ /**
66
+ * Get the singleton orchestrator instance
67
+ */
68
+ export declare function getFrontierOrchestrator(config?: Partial<FrontierConfig>): FrontierOrchestrator;
69
+ /**
70
+ * Reset the singleton (for testing)
71
+ */
72
+ export declare function resetFrontierOrchestrator(): void;
73
+ //# sourceMappingURL=orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/frontier/orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EACV,gBAAgB,EAChB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,eAAe,EAIf,cAAc,EACd,YAAY,EACb,MAAM,YAAY,CAAC;AAQpB;;GAEG;AACH,qBAAa,oBAAoB;IAC/B,OAAO,CAAC,SAAS,CAA2D;IAC5E,OAAO,CAAC,MAAM,CAAiB;gBAEnB,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM;IAIhD;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAKvD;;OAEG;IACH,WAAW,CAAC,IAAI,EAAE,gBAAgB,GAAG,qBAAqB,GAAG,SAAS;IAItE;;OAEG;IACH,aAAa,IAAI,gBAAgB,EAAE;IAInC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAChC,MAAM,CAAC,gBAAgB,EAAE;QAAE,SAAS,EAAE,OAAO,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CACjE;IAqBD;;OAEG;IACG,eAAe,CACnB,OAAO,EAAE,uBAAuB,EAChC,YAAY,EAAE,gBAAgB,GAC7B,OAAO,CAAC,sBAAsB,CAAC;IAgClC;;OAEG;IACG,eAAe,CACnB,OAAO,EAAE,uBAAuB,EAChC,aAAa,EAAE,gBAAgB,EAAE,GAChC,OAAO,CAAC,sBAAsB,CAAC;IA4BlC;;OAEG;IACG,gBAAgB,CACpB,OAAO,EAAE,uBAAuB,EAChC,aAAa,EAAE,gBAAgB,EAAE,GAChC,OAAO,CAAC,eAAe,CAAC;IA2C3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuI1B;;OAEG;IACG,YAAY,CAChB,OAAO,EAAE,uBAAuB,EAChC,aAAa,CAAC,EAAE,gBAAgB,EAAE,GACjC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IA6BlD;;OAEG;IACH,uBAAuB,IAAI,gBAAgB,EAAE;IAI7C;;OAEG;IACG,GAAG,CACP,OAAO,EAAE,uBAAuB,GAC/B,OAAO,CAAC,sBAAsB,GAAG,eAAe,CAAC;CAarD;AAQD;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,GAC/B,oBAAoB,CAKtB;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD"}