vaspera 2.8.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 (303) hide show
  1. package/CHANGELOG.md +55 -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 +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 +431 -18
  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 +244 -0
  302. package/dist/telemetry/usage.js.map +1 -0
  303. package/package.json +1 -1
@@ -0,0 +1,318 @@
1
+ /**
2
+ * Frontier Model Integration Interface
3
+ *
4
+ * Defines the contract for integrating frontier AI models
5
+ * (Mythos, GPT-5.5-Cyber, etc.) into the certification pipeline.
6
+ *
7
+ * These models excel at:
8
+ * - Deep semantic reasoning about code
9
+ * - Discovering novel vulnerability patterns
10
+ * - Understanding complex exploit chains
11
+ * - Finding logic flaws that evade pattern-based detection
12
+ *
13
+ * @module frontier/types
14
+ */
15
+ import type { Severity } from "../certification/types.js";
16
+ /**
17
+ * Capabilities that a frontier model may provide
18
+ */
19
+ export type FrontierCapability = "vulnerability-discovery" | "exploit-chain-analysis" | "logic-flaw-detection" | "memory-safety-analysis" | "authentication-bypass-detection" | "race-condition-detection" | "cryptographic-weakness-analysis" | "data-flow-tracing" | "code-comprehension" | "fix-generation";
20
+ /**
21
+ * Model provider types
22
+ */
23
+ export type FrontierProvider = "anthropic-mythos" | "openai-gpt55-cyber" | "google-gemini-security" | "custom" | "stub";
24
+ /**
25
+ * Analysis depth levels
26
+ */
27
+ export type AnalysisDepth = "shallow" | "standard" | "deep" | "exhaustive";
28
+ /**
29
+ * A file with context for analysis
30
+ */
31
+ export interface FileContext {
32
+ /** Relative file path */
33
+ path: string;
34
+ /** File content */
35
+ content: string;
36
+ /** Detected language */
37
+ language: string;
38
+ /** Direct dependencies (imported modules) */
39
+ dependencies?: string[];
40
+ /** Function call graph if available */
41
+ callGraph?: CallGraphNode[];
42
+ /** Lines of code */
43
+ loc: number;
44
+ /** File hash for caching */
45
+ hash?: string;
46
+ }
47
+ /**
48
+ * Call graph node for inter-procedural analysis
49
+ */
50
+ export interface CallGraphNode {
51
+ /** Function/method name */
52
+ name: string;
53
+ /** File containing the function */
54
+ file: string;
55
+ /** Line number */
56
+ line: number;
57
+ /** Functions this one calls */
58
+ calls: string[];
59
+ /** Functions that call this one */
60
+ calledBy: string[];
61
+ /** Whether this function has side effects */
62
+ hasSideEffects?: boolean;
63
+ /** Whether this function accesses external resources */
64
+ accessesExternal?: boolean;
65
+ }
66
+ /**
67
+ * Request for frontier model analysis
68
+ */
69
+ export interface FrontierAnalysisRequest {
70
+ /** Project root path */
71
+ projectPath: string;
72
+ /** Files to analyze */
73
+ files: FileContext[];
74
+ /** Specific focus areas (e.g., "authentication", "sql handling") */
75
+ focusAreas?: string[];
76
+ /** Analysis depth */
77
+ depth: AnalysisDepth;
78
+ /** Maximum cost in USD (optional budget cap) */
79
+ maxCost?: number;
80
+ /** Timeout in milliseconds */
81
+ timeout?: number;
82
+ /** Prior findings to build upon */
83
+ priorFindings?: Finding[];
84
+ /** Specific vulnerability types to focus on */
85
+ vulnerabilityTypes?: string[];
86
+ /** Custom analysis prompt/instructions */
87
+ customPrompt?: string;
88
+ }
89
+ /**
90
+ * A security finding from frontier analysis
91
+ */
92
+ export interface Finding {
93
+ /** Unique finding ID */
94
+ id: string;
95
+ /** Vulnerability title */
96
+ title: string;
97
+ /** Detailed description */
98
+ description: string;
99
+ /** Severity level */
100
+ severity: Severity;
101
+ /** Confidence (0-100) */
102
+ confidence: number;
103
+ /** Affected file */
104
+ file: string;
105
+ /** Start line */
106
+ startLine: number;
107
+ /** End line */
108
+ endLine: number;
109
+ /** Code snippet */
110
+ codeSnippet?: string;
111
+ /** Vulnerability category */
112
+ category: string;
113
+ /** CWE ID if applicable */
114
+ cweId?: string;
115
+ /** MITRE technique if applicable */
116
+ mitreTechnique?: string;
117
+ /** Suggested fix */
118
+ suggestedFix?: string;
119
+ /** Fix code snippet */
120
+ fixCode?: string;
121
+ /** Explanation of the vulnerability */
122
+ explanation: string;
123
+ /** Attack scenario narrative */
124
+ attackNarrative?: string;
125
+ /** References */
126
+ references?: string[];
127
+ }
128
+ /**
129
+ * An exploit chain discovered by the model
130
+ */
131
+ export interface ExploitChain {
132
+ /** Unique chain ID */
133
+ id: string;
134
+ /** Chain title */
135
+ title: string;
136
+ /** Steps in the exploit chain */
137
+ steps: ExploitStep[];
138
+ /** Overall severity */
139
+ severity: Severity;
140
+ /** Overall confidence */
141
+ confidence: number;
142
+ /** MITRE ATT&CK technique if applicable */
143
+ mitreTechnique?: string;
144
+ /** Narrative description of the attack */
145
+ attackNarrative: string;
146
+ /** Prerequisites for exploitation */
147
+ prerequisites?: string[];
148
+ /** Impact if exploited */
149
+ impact: string;
150
+ /** Remediation steps */
151
+ remediation: string[];
152
+ }
153
+ /**
154
+ * A step in an exploit chain
155
+ */
156
+ export interface ExploitStep {
157
+ /** Step number */
158
+ step: number;
159
+ /** Step description */
160
+ description: string;
161
+ /** File involved */
162
+ file: string;
163
+ /** Line number */
164
+ line: number;
165
+ /** Function/method involved */
166
+ function?: string;
167
+ /** What the attacker does */
168
+ attackerAction: string;
169
+ /** What the system does */
170
+ systemBehavior: string;
171
+ /** Data that flows to next step */
172
+ dataFlow?: string;
173
+ }
174
+ /**
175
+ * Cost report for an analysis
176
+ */
177
+ export interface CostReport {
178
+ /** Input tokens consumed */
179
+ inputTokens: number;
180
+ /** Output tokens generated */
181
+ outputTokens: number;
182
+ /** Total cost in USD */
183
+ totalCost: number;
184
+ /** Model used */
185
+ model: string;
186
+ /** Breakdown by phase if multi-phase */
187
+ breakdown?: {
188
+ phase: string;
189
+ inputTokens: number;
190
+ outputTokens: number;
191
+ cost: number;
192
+ }[];
193
+ }
194
+ /**
195
+ * Cost estimate before running
196
+ */
197
+ export interface CostEstimate {
198
+ /** Minimum expected cost */
199
+ min: number;
200
+ /** Maximum expected cost */
201
+ max: number;
202
+ /** Best estimate */
203
+ estimated: number;
204
+ /** Currency (always USD) */
205
+ currency: "USD";
206
+ /** Factors affecting the estimate */
207
+ factors?: string[];
208
+ }
209
+ /**
210
+ * Result of frontier model analysis
211
+ */
212
+ export interface FrontierAnalysisResult {
213
+ /** Security findings */
214
+ findings: Finding[];
215
+ /** Exploit chains discovered */
216
+ exploitChains: ExploitChain[];
217
+ /** Confidence in the analysis (0-100) */
218
+ confidence: number;
219
+ /** Model(s) used */
220
+ modelUsed: string;
221
+ /** Cost report */
222
+ cost: CostReport;
223
+ /** Reasoning steps (if available) */
224
+ reasoning?: string[];
225
+ /** Analysis duration in milliseconds */
226
+ duration: number;
227
+ /** Files analyzed */
228
+ filesAnalyzed: number;
229
+ /** Lines of code analyzed */
230
+ linesAnalyzed: number;
231
+ /** Warnings or limitations */
232
+ warnings?: string[];
233
+ }
234
+ /**
235
+ * Interface for a frontier model provider
236
+ */
237
+ export interface FrontierModelProvider {
238
+ /** Provider name */
239
+ readonly name: FrontierProvider;
240
+ /** Human-readable display name */
241
+ readonly displayName: string;
242
+ /** Capabilities this provider supports */
243
+ readonly capabilities: FrontierCapability[];
244
+ /**
245
+ * Run security analysis
246
+ */
247
+ analyze(request: FrontierAnalysisRequest): Promise<FrontierAnalysisResult>;
248
+ /**
249
+ * Check if the provider is available
250
+ */
251
+ isAvailable(): Promise<boolean>;
252
+ /**
253
+ * Estimate cost for a request
254
+ */
255
+ estimateCost(request: FrontierAnalysisRequest): Promise<CostEstimate>;
256
+ /**
257
+ * Get provider status/health
258
+ */
259
+ getStatus(): Promise<{
260
+ available: boolean;
261
+ latencyMs?: number;
262
+ error?: string;
263
+ }>;
264
+ }
265
+ /**
266
+ * Result of running multiple models and comparing
267
+ */
268
+ export interface ConsensusResult {
269
+ /** Findings agreed upon by majority */
270
+ consensusFindings: Finding[];
271
+ /** Findings with disagreement */
272
+ disputedFindings: {
273
+ finding: Finding;
274
+ modelAgreement: string[];
275
+ modelDisagreement: string[];
276
+ }[];
277
+ /** Exploit chains with consensus */
278
+ consensusChains: ExploitChain[];
279
+ /** Overall consensus confidence */
280
+ consensusConfidence: number;
281
+ /** Per-model results */
282
+ modelResults: {
283
+ model: string;
284
+ findings: Finding[];
285
+ chains: ExploitChain[];
286
+ confidence: number;
287
+ }[];
288
+ /** Combined cost */
289
+ totalCost: CostReport;
290
+ }
291
+ /**
292
+ * Configuration for frontier model integration
293
+ */
294
+ export interface FrontierConfig {
295
+ /** Enabled providers */
296
+ providers: FrontierProvider[];
297
+ /** Default analysis depth */
298
+ defaultDepth: AnalysisDepth;
299
+ /** Budget per analysis (USD) */
300
+ budgetPerAnalysis: number;
301
+ /** Whether to require consensus */
302
+ requireConsensus: boolean;
303
+ /** Minimum consensus threshold (0-1) */
304
+ consensusThreshold: number;
305
+ /** Cache results for identical files */
306
+ enableCaching: boolean;
307
+ /** Cache TTL in seconds */
308
+ cacheTtlSeconds: number;
309
+ /** API keys (stored securely) */
310
+ apiKeys?: Record<FrontierProvider, string>;
311
+ /** Custom endpoints */
312
+ endpoints?: Record<FrontierProvider, string>;
313
+ }
314
+ /**
315
+ * Default frontier configuration
316
+ */
317
+ export declare const DEFAULT_FRONTIER_CONFIG: FrontierConfig;
318
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/frontier/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAM1D;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,yBAAyB,GACzB,wBAAwB,GACxB,sBAAsB,GACtB,wBAAwB,GACxB,iCAAiC,GACjC,0BAA0B,GAC1B,iCAAiC,GACjC,mBAAmB,GACnB,oBAAoB,GACpB,gBAAgB,CAAC;AAErB;;GAEG;AACH,MAAM,MAAM,gBAAgB,GACxB,kBAAkB,GAClB,oBAAoB,GACpB,wBAAwB,GACxB,QAAQ,GACR,MAAM,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,YAAY,CAAC;AAM3E;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IAEb,mBAAmB;IACnB,OAAO,EAAE,MAAM,CAAC;IAEhB,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IAEjB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAExB,uCAAuC;IACvC,SAAS,CAAC,EAAE,aAAa,EAAE,CAAC;IAE5B,oBAAoB;IACpB,GAAG,EAAE,MAAM,CAAC;IAEZ,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IAEb,mCAAmC;IACnC,IAAI,EAAE,MAAM,CAAC;IAEb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,+BAA+B;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,mCAAmC;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAC;IAEnB,6CAA6C;IAC7C,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,wDAAwD;IACxD,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,wBAAwB;IACxB,WAAW,EAAE,MAAM,CAAC;IAEpB,uBAAuB;IACvB,KAAK,EAAE,WAAW,EAAE,CAAC;IAErB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,qBAAqB;IACrB,KAAK,EAAE,aAAa,CAAC;IAErB,gDAAgD;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,mCAAmC;IACnC,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;IAE1B,+CAA+C;IAC/C,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE9B,0CAA0C;IAC1C,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,OAAO;IACtB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IAEX,0BAA0B;IAC1B,KAAK,EAAE,MAAM,CAAC;IAEd,2BAA2B;IAC3B,WAAW,EAAE,MAAM,CAAC;IAEpB,qBAAqB;IACrB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IAEnB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IAEb,iBAAiB;IACjB,SAAS,EAAE,MAAM,CAAC;IAElB,eAAe;IACf,OAAO,EAAE,MAAM,CAAC;IAEhB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IAEjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,oCAAoC;IACpC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oBAAoB;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,uCAAuC;IACvC,WAAW,EAAE,MAAM,CAAC;IAEpB,gCAAgC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,iBAAiB;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sBAAsB;IACtB,EAAE,EAAE,MAAM,CAAC;IAEX,kBAAkB;IAClB,KAAK,EAAE,MAAM,CAAC;IAEd,iCAAiC;IACjC,KAAK,EAAE,WAAW,EAAE,CAAC;IAErB,uBAAuB;IACvB,QAAQ,EAAE,QAAQ,CAAC;IAEnB,yBAAyB;IACzB,UAAU,EAAE,MAAM,CAAC;IAEnB,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,0CAA0C;IAC1C,eAAe,EAAE,MAAM,CAAC;IAExB,qCAAqC;IACrC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAEzB,0BAA0B;IAC1B,MAAM,EAAE,MAAM,CAAC;IAEf,wBAAwB;IACxB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,uBAAuB;IACvB,WAAW,EAAE,MAAM,CAAC;IAEpB,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IAEb,kBAAkB;IAClB,IAAI,EAAE,MAAM,CAAC;IAEb,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,6BAA6B;IAC7B,cAAc,EAAE,MAAM,CAAC;IAEvB,2BAA2B;IAC3B,cAAc,EAAE,MAAM,CAAC;IAEvB,mCAAmC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IAEpB,8BAA8B;IAC9B,YAAY,EAAE,MAAM,CAAC;IAErB,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;IAElB,iBAAiB;IACjB,KAAK,EAAE,MAAM,CAAC;IAEd,wCAAwC;IACxC,SAAS,CAAC,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,IAAI,EAAE,MAAM,CAAC;KACd,EAAE,CAAC;CACL;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IAEZ,4BAA4B;IAC5B,GAAG,EAAE,MAAM,CAAC;IAEZ,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAElB,4BAA4B;IAC5B,QAAQ,EAAE,KAAK,CAAC;IAEhB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,wBAAwB;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IAEpB,gCAAgC;IAChC,aAAa,EAAE,YAAY,EAAE,CAAC;IAE9B,yCAAyC;IACzC,UAAU,EAAE,MAAM,CAAC;IAEnB,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAElB,kBAAkB;IAClB,IAAI,EAAE,UAAU,CAAC;IAEjB,qCAAqC;IACrC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IAErB,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IAEjB,qBAAqB;IACrB,aAAa,EAAE,MAAM,CAAC;IAEtB,6BAA6B;IAC7B,aAAa,EAAE,MAAM,CAAC;IAEtB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAMD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,oBAAoB;IACpB,QAAQ,CAAC,IAAI,EAAE,gBAAgB,CAAC;IAEhC,kCAAkC;IAClC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,0CAA0C;IAC1C,QAAQ,CAAC,YAAY,EAAE,kBAAkB,EAAE,CAAC;IAE5C;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAAC;IAE3E;;OAEG;IACH,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAEhC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;IAEtE;;OAEG;IACH,SAAS,IAAI,OAAO,CAAC;QACnB,SAAS,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,uCAAuC;IACvC,iBAAiB,EAAE,OAAO,EAAE,CAAC;IAE7B,iCAAiC;IACjC,gBAAgB,EAAE;QAChB,OAAO,EAAE,OAAO,CAAC;QACjB,cAAc,EAAE,MAAM,EAAE,CAAC;QACzB,iBAAiB,EAAE,MAAM,EAAE,CAAC;KAC7B,EAAE,CAAC;IAEJ,oCAAoC;IACpC,eAAe,EAAE,YAAY,EAAE,CAAC;IAEhC,mCAAmC;IACnC,mBAAmB,EAAE,MAAM,CAAC;IAE5B,wBAAwB;IACxB,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,OAAO,EAAE,CAAC;QACpB,MAAM,EAAE,YAAY,EAAE,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;KACpB,EAAE,CAAC;IAEJ,oBAAoB;IACpB,SAAS,EAAE,UAAU,CAAC;CACvB;AAMD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAE9B,6BAA6B;IAC7B,YAAY,EAAE,aAAa,CAAC;IAE5B,gCAAgC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAE1B,mCAAmC;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAE1B,wCAAwC;IACxC,kBAAkB,EAAE,MAAM,CAAC;IAE3B,wCAAwC;IACxC,aAAa,EAAE,OAAO,CAAC;IAEvB,2BAA2B;IAC3B,eAAe,EAAE,MAAM,CAAC;IAExB,iCAAiC;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;IAE3C,uBAAuB;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;CAC9C;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,cAQrC,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Frontier Model Integration Interface
3
+ *
4
+ * Defines the contract for integrating frontier AI models
5
+ * (Mythos, GPT-5.5-Cyber, etc.) into the certification pipeline.
6
+ *
7
+ * These models excel at:
8
+ * - Deep semantic reasoning about code
9
+ * - Discovering novel vulnerability patterns
10
+ * - Understanding complex exploit chains
11
+ * - Finding logic flaws that evade pattern-based detection
12
+ *
13
+ * @module frontier/types
14
+ */
15
+ /**
16
+ * Default frontier configuration
17
+ */
18
+ export const DEFAULT_FRONTIER_CONFIG = {
19
+ providers: ["stub"],
20
+ defaultDepth: "standard",
21
+ budgetPerAnalysis: 10.0, // $10 USD
22
+ requireConsensus: false,
23
+ consensusThreshold: 0.66,
24
+ enableCaching: true,
25
+ cacheTtlSeconds: 3600,
26
+ };
27
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/frontier/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAwbH;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAmB;IACrD,SAAS,EAAE,CAAC,MAAM,CAAC;IACnB,YAAY,EAAE,UAAU;IACxB,iBAAiB,EAAE,IAAI,EAAE,UAAU;IACnC,gBAAgB,EAAE,KAAK;IACvB,kBAAkB,EAAE,IAAI;IACxB,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,IAAI;CACtB,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * History Module
3
+ *
4
+ * Provides certification and scan history tracking with trend analysis.
5
+ *
6
+ * @module history
7
+ */
8
+ export type { HistoryEntryType, BaseHistoryEntry, CertificationStartedEntry, CertificationCompletedEntry, ScanCompletedEntry, FindingSubmittedEntry, FindingFixedEntry, ComplianceReportEntry, ModelRunEntry, HistoryEntry, HistoryQueryOptions, HistoryQueryResult, TrendPeriod, TrendDataPoint, TrendAnalysis, ActorIdentity, IntegrityProof, EntryVerificationResult, IntegrityVerificationResult, } from "./types.js";
9
+ export { HistoryQueryOptionsSchema } from "./types.js";
10
+ export { appendHistoryEntry, queryHistory, calculateTrends, getRecentActivity, formatTrendsAsMarkdown, getHistoryStats, calculateEntryHash, getLastEntryHash, } from "./store.js";
11
+ export type { AppendHistoryOptions } from "./store.js";
12
+ export { verifyEntry, verifyHistoryIntegrity, formatVerificationResultAsMarkdown, getVerificationSummary, } from "./verify.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/history/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,yBAAyB,EACzB,2BAA2B,EAC3B,kBAAkB,EAClB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,aAAa,EAEb,aAAa,EACb,cAAc,EACd,uBAAuB,EACvB,2BAA2B,GAC5B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAGvD,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,eAAe,EAEf,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAGvD,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,kCAAkC,EAClC,sBAAsB,GACvB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * History Module
3
+ *
4
+ * Provides certification and scan history tracking with trend analysis.
5
+ *
6
+ * @module history
7
+ */
8
+ export { HistoryQueryOptionsSchema } from "./types.js";
9
+ // Store functions
10
+ export { appendHistoryEntry, queryHistory, calculateTrends, getRecentActivity, formatTrendsAsMarkdown, getHistoryStats,
11
+ // Hash chain functions
12
+ calculateEntryHash, getLastEntryHash, } from "./store.js";
13
+ // Verification functions
14
+ export { verifyEntry, verifyHistoryIntegrity, formatVerificationResultAsMarkdown, getVerificationSummary, } from "./verify.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/history/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0BH,OAAO,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAEvD,kBAAkB;AAClB,OAAO,EACL,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,sBAAsB,EACtB,eAAe;AACf,uBAAuB;AACvB,kBAAkB,EAClB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAIpB,yBAAyB;AACzB,OAAO,EACL,WAAW,EACX,sBAAsB,EACtB,kCAAkC,EAClC,sBAAsB,GACvB,MAAM,aAAa,CAAC"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * History Store
3
+ *
4
+ * Append-only storage for certification and scan history.
5
+ * Uses JSONL format for efficient streaming reads/writes.
6
+ *
7
+ * @module history/store
8
+ */
9
+ import type { HistoryEntry, HistoryQueryOptions, HistoryQueryResult, TrendPeriod, TrendAnalysis, ActorIdentity } from "./types.js";
10
+ /**
11
+ * Calculate SHA-256 hash of an entry (excluding the integrity field)
12
+ */
13
+ export declare function calculateEntryHash(entry: HistoryEntry): string;
14
+ /**
15
+ * Get the hash of the last entry in the history file
16
+ */
17
+ export declare function getLastEntryHash(projectPath: string): Promise<string>;
18
+ /**
19
+ * Options for appending history entries
20
+ */
21
+ export interface AppendHistoryOptions {
22
+ /** Actor performing this action */
23
+ actor?: ActorIdentity;
24
+ /** Enable integrity proof (hash chain) */
25
+ enableIntegrity?: boolean;
26
+ /** Sign the entry with Sigstore (requires integrity) */
27
+ sign?: boolean;
28
+ }
29
+ /**
30
+ * Append a history entry
31
+ */
32
+ export declare function appendHistoryEntry(projectPath: string, entry: Omit<HistoryEntry, "id" | "timestamp" | "projectPath">, options?: AppendHistoryOptions): Promise<HistoryEntry>;
33
+ /**
34
+ * Query history entries with filtering and pagination
35
+ */
36
+ export declare function queryHistory(projectPath: string, options?: HistoryQueryOptions): Promise<HistoryQueryResult>;
37
+ /**
38
+ * Calculate trends from history data
39
+ */
40
+ export declare function calculateTrends(projectPath: string, options?: {
41
+ period?: TrendPeriod;
42
+ startDate?: string;
43
+ endDate?: string;
44
+ }): Promise<TrendAnalysis>;
45
+ /**
46
+ * Get recent activity summary
47
+ */
48
+ export declare function getRecentActivity(projectPath: string, days?: number): Promise<{
49
+ certifications: number;
50
+ scans: number;
51
+ findings: number;
52
+ fixed: number;
53
+ latestCertification?: {
54
+ id: string;
55
+ score: number;
56
+ level: string;
57
+ timestamp: string;
58
+ };
59
+ }>;
60
+ /**
61
+ * Format trends as markdown
62
+ */
63
+ export declare function formatTrendsAsMarkdown(analysis: TrendAnalysis): string;
64
+ /**
65
+ * Get history file stats
66
+ */
67
+ export declare function getHistoryStats(projectPath: string): Promise<{
68
+ exists: boolean;
69
+ entries: number;
70
+ sizeBytes: number;
71
+ oldestEntry?: string;
72
+ newestEntry?: string;
73
+ }>;
74
+ //# sourceMappingURL=store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/history/store.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,KAAK,EACV,YAAY,EAEZ,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EAEX,aAAa,EAKb,aAAa,EAEd,MAAM,YAAY,CAAC;AASpB;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM,CAK9D;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAsC3E;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,mCAAmC;IACnC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,0CAA0C;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wDAAwD;IACxD,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAkBD;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,GAAG,WAAW,GAAG,aAAa,CAAC,EAC7D,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,YAAY,CAAC,CAyCvB;AAED;;GAEG;AACH,wBAAsB,YAAY,CAChC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC,CAsE7B;AAqED;;GAEG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CACb,GACL,OAAO,CAAC,aAAa,CAAC,CA+GxB;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,WAAW,EAAE,MAAM,EACnB,IAAI,GAAE,MAAU,GACf,OAAO,CAAC;IACT,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,CAAC,EAAE;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH,CAAC,CAyCD;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,aAAa,GAAG,MAAM,CAiCtE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAClE,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC,CAoBD"}