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.
- package/CHANGELOG.md +55 -0
- 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 +431 -18
- 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 +244 -0
- package/dist/telemetry/usage.js.map +1 -0
- 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":"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"}
|
|
@@ -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"}
|