@weave_protocol/domere 1.0.13 → 1.0.14
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/dist/audit/index.d.ts +2 -0
- package/dist/audit/index.d.ts.map +1 -0
- package/dist/audit/index.js +2 -0
- package/dist/audit/index.js.map +1 -0
- package/dist/audit/replay.d.ts +153 -0
- package/dist/audit/replay.d.ts.map +1 -0
- package/dist/audit/replay.js +328 -0
- package/dist/audit/replay.js.map +1 -0
- package/dist/compliance/checkpoint.d.ts +183 -0
- package/dist/compliance/checkpoint.d.ts.map +1 -0
- package/dist/compliance/checkpoint.js +394 -0
- package/dist/compliance/checkpoint.js.map +1 -0
- package/dist/compliance/index.d.ts +2 -0
- package/dist/compliance/index.d.ts.map +1 -0
- package/dist/compliance/index.js +2 -0
- package/dist/compliance/index.js.map +1 -0
- package/dist/handoff/index.d.ts +2 -0
- package/dist/handoff/index.d.ts.map +1 -0
- package/dist/handoff/index.js +2 -0
- package/dist/handoff/index.js.map +1 -0
- package/dist/handoff/verification.d.ts +115 -0
- package/dist/handoff/verification.d.ts.map +1 -0
- package/dist/handoff/verification.js +285 -0
- package/dist/handoff/verification.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/audit/index.ts +1 -0
- package/src/audit/replay.ts +504 -0
- package/src/compliance/checkpoint.ts +647 -0
- package/src/compliance/index.ts +1 -0
- package/src/handoff/index.ts +1 -0
- package/src/handoff/verification.ts +428 -0
- package/src/index.ts +5 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dōmere - Compliance Checkpoints (SOC2/HIPAA)
|
|
3
|
+
*
|
|
4
|
+
* Automated compliance tracking and reporting for AI systems.
|
|
5
|
+
* Supports SOC2, HIPAA, GDPR, and custom frameworks.
|
|
6
|
+
*/
|
|
7
|
+
export type ComplianceFramework = 'SOC2' | 'HIPAA' | 'GDPR' | 'PCI-DSS' | 'ISO27001' | 'CUSTOM';
|
|
8
|
+
export type SOC2Control = 'CC1.1' | 'CC1.2' | 'CC1.3' | 'CC1.4' | 'CC1.5' | 'CC2.1' | 'CC2.2' | 'CC2.3' | 'CC3.1' | 'CC3.2' | 'CC3.3' | 'CC3.4' | 'CC4.1' | 'CC4.2' | 'CC5.1' | 'CC5.2' | 'CC5.3' | 'CC6.1' | 'CC6.2' | 'CC6.3' | 'CC6.4' | 'CC6.5' | 'CC6.6' | 'CC6.7' | 'CC6.8' | 'CC7.1' | 'CC7.2' | 'CC7.3' | 'CC7.4' | 'CC7.5' | 'CC8.1' | 'CC9.1' | 'CC9.2';
|
|
9
|
+
export type HIPAAControl = 'ACCESS_CONTROL' | 'AUDIT_CONTROLS' | 'INTEGRITY' | 'PERSON_AUTH' | 'TRANSMISSION_SECURITY' | 'PRIVACY_RULE' | 'BREACH_NOTIFICATION' | 'MINIMUM_NECESSARY';
|
|
10
|
+
export interface ComplianceCheckpointRecord {
|
|
11
|
+
id: string;
|
|
12
|
+
thread_id: string;
|
|
13
|
+
timestamp: Date;
|
|
14
|
+
framework: ComplianceFramework;
|
|
15
|
+
control: string;
|
|
16
|
+
control_description: string;
|
|
17
|
+
event_type: 'access' | 'modification' | 'disclosure' | 'deletion' | 'transmission' | 'authentication' | 'authorization' | 'audit';
|
|
18
|
+
event_description: string;
|
|
19
|
+
data_classification: 'public' | 'internal' | 'confidential' | 'restricted' | 'phi' | 'pii';
|
|
20
|
+
data_categories: string[];
|
|
21
|
+
agent_id: string;
|
|
22
|
+
user_id?: string;
|
|
23
|
+
data_subject_id?: string;
|
|
24
|
+
legal_basis?: 'consent' | 'contract' | 'legal_obligation' | 'vital_interests' | 'public_task' | 'legitimate_interests' | 'treatment' | 'payment' | 'operations';
|
|
25
|
+
retention_days?: number;
|
|
26
|
+
retention_policy?: string;
|
|
27
|
+
risk_level: 'low' | 'medium' | 'high' | 'critical';
|
|
28
|
+
mitigations_applied: string[];
|
|
29
|
+
checkpoint_hash: string;
|
|
30
|
+
signed: boolean;
|
|
31
|
+
signature?: string;
|
|
32
|
+
}
|
|
33
|
+
export interface ComplianceViolationRecord {
|
|
34
|
+
id: string;
|
|
35
|
+
checkpoint_id: string;
|
|
36
|
+
thread_id: string;
|
|
37
|
+
timestamp: Date;
|
|
38
|
+
framework: ComplianceFramework;
|
|
39
|
+
control: string;
|
|
40
|
+
violation_type: 'unauthorized_access' | 'data_breach' | 'policy_violation' | 'retention_violation' | 'consent_violation' | 'audit_gap' | 'encryption_failure';
|
|
41
|
+
severity: 'low' | 'medium' | 'high' | 'critical';
|
|
42
|
+
description: string;
|
|
43
|
+
affected_records: number;
|
|
44
|
+
affected_subjects: string[];
|
|
45
|
+
remediation_required: boolean;
|
|
46
|
+
remediation_deadline?: Date;
|
|
47
|
+
remediation_status: 'pending' | 'in_progress' | 'completed' | 'waived';
|
|
48
|
+
remediation_notes?: string;
|
|
49
|
+
}
|
|
50
|
+
export interface ComplianceReportOutput {
|
|
51
|
+
id: string;
|
|
52
|
+
generated_at: Date;
|
|
53
|
+
period_start: Date;
|
|
54
|
+
period_end: Date;
|
|
55
|
+
framework: ComplianceFramework;
|
|
56
|
+
total_checkpoints: number;
|
|
57
|
+
checkpoints_by_control: Record<string, number>;
|
|
58
|
+
checkpoints_by_event_type: Record<string, number>;
|
|
59
|
+
checkpoints_by_risk_level: Record<string, number>;
|
|
60
|
+
total_violations: number;
|
|
61
|
+
violations_by_severity: Record<string, number>;
|
|
62
|
+
open_violations: number;
|
|
63
|
+
remediated_violations: number;
|
|
64
|
+
unique_data_subjects: number;
|
|
65
|
+
data_access_count: number;
|
|
66
|
+
compliance_score: number;
|
|
67
|
+
control_coverage: Record<string, {
|
|
68
|
+
covered: boolean;
|
|
69
|
+
checkpoint_count: number;
|
|
70
|
+
}>;
|
|
71
|
+
attestation?: {
|
|
72
|
+
attester: string;
|
|
73
|
+
attested_at: Date;
|
|
74
|
+
statement: string;
|
|
75
|
+
signature: string;
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
export interface RetentionPolicy {
|
|
79
|
+
name: string;
|
|
80
|
+
data_categories: string[];
|
|
81
|
+
retention_days: number;
|
|
82
|
+
deletion_method: 'soft' | 'hard' | 'anonymize';
|
|
83
|
+
legal_hold_exempt: boolean;
|
|
84
|
+
}
|
|
85
|
+
export declare const SOC2_CONTROLS: Record<SOC2Control, string>;
|
|
86
|
+
export declare const HIPAA_CONTROLS: Record<HIPAAControl, string>;
|
|
87
|
+
export declare class ComplianceManager {
|
|
88
|
+
private checkpoints;
|
|
89
|
+
private violations;
|
|
90
|
+
private retentionPolicies;
|
|
91
|
+
private signingKey;
|
|
92
|
+
constructor(signingKey: string);
|
|
93
|
+
/**
|
|
94
|
+
* Record a compliance checkpoint
|
|
95
|
+
*/
|
|
96
|
+
checkpoint(params: {
|
|
97
|
+
thread_id: string;
|
|
98
|
+
framework: ComplianceFramework;
|
|
99
|
+
control: string;
|
|
100
|
+
event_type: ComplianceCheckpointRecord['event_type'];
|
|
101
|
+
event_description: string;
|
|
102
|
+
data_classification: ComplianceCheckpointRecord['data_classification'];
|
|
103
|
+
data_categories?: string[];
|
|
104
|
+
agent_id: string;
|
|
105
|
+
user_id?: string;
|
|
106
|
+
data_subject_id?: string;
|
|
107
|
+
legal_basis?: ComplianceCheckpointRecord['legal_basis'];
|
|
108
|
+
retention_days?: number;
|
|
109
|
+
risk_level?: ComplianceCheckpointRecord['risk_level'];
|
|
110
|
+
mitigations_applied?: string[];
|
|
111
|
+
sign?: boolean;
|
|
112
|
+
}): Promise<ComplianceCheckpointRecord>;
|
|
113
|
+
/**
|
|
114
|
+
* Record a compliance violation
|
|
115
|
+
*/
|
|
116
|
+
recordViolation(params: {
|
|
117
|
+
checkpoint_id?: string;
|
|
118
|
+
thread_id: string;
|
|
119
|
+
framework: ComplianceFramework;
|
|
120
|
+
control: string;
|
|
121
|
+
violation_type: ComplianceViolationRecord['violation_type'];
|
|
122
|
+
severity: ComplianceViolationRecord['severity'];
|
|
123
|
+
description: string;
|
|
124
|
+
affected_records?: number;
|
|
125
|
+
affected_subjects?: string[];
|
|
126
|
+
remediation_deadline?: Date;
|
|
127
|
+
}): Promise<ComplianceViolationRecord>;
|
|
128
|
+
/**
|
|
129
|
+
* Update remediation status
|
|
130
|
+
*/
|
|
131
|
+
updateRemediation(violationId: string, status: ComplianceViolationRecord['remediation_status'], notes?: string): Promise<ComplianceViolationRecord | null>;
|
|
132
|
+
/**
|
|
133
|
+
* Generate compliance report
|
|
134
|
+
*/
|
|
135
|
+
generateReport(params: {
|
|
136
|
+
framework: ComplianceFramework;
|
|
137
|
+
period_start: Date;
|
|
138
|
+
period_end: Date;
|
|
139
|
+
attester?: string;
|
|
140
|
+
}): Promise<ComplianceReportOutput>;
|
|
141
|
+
/**
|
|
142
|
+
* Get checkpoints for a thread
|
|
143
|
+
*/
|
|
144
|
+
getCheckpoints(threadId: string): Promise<ComplianceCheckpointRecord[]>;
|
|
145
|
+
/**
|
|
146
|
+
* Get violations for a thread
|
|
147
|
+
*/
|
|
148
|
+
getViolations(threadId: string): Promise<ComplianceViolationRecord[]>;
|
|
149
|
+
/**
|
|
150
|
+
* Add retention policy
|
|
151
|
+
*/
|
|
152
|
+
addRetentionPolicy(policy: RetentionPolicy): void;
|
|
153
|
+
/**
|
|
154
|
+
* HIPAA-specific: Log PHI access
|
|
155
|
+
*/
|
|
156
|
+
logPHIAccess(params: {
|
|
157
|
+
thread_id: string;
|
|
158
|
+
agent_id: string;
|
|
159
|
+
patient_id: string;
|
|
160
|
+
access_reason: string;
|
|
161
|
+
data_accessed: string[];
|
|
162
|
+
legal_basis: 'treatment' | 'payment' | 'operations';
|
|
163
|
+
}): Promise<ComplianceCheckpointRecord>;
|
|
164
|
+
/**
|
|
165
|
+
* SOC2-specific: Log access control event
|
|
166
|
+
*/
|
|
167
|
+
logAccessControl(params: {
|
|
168
|
+
thread_id: string;
|
|
169
|
+
agent_id: string;
|
|
170
|
+
user_id?: string;
|
|
171
|
+
resource: string;
|
|
172
|
+
action: 'grant' | 'revoke' | 'modify' | 'review';
|
|
173
|
+
success: boolean;
|
|
174
|
+
}): Promise<ComplianceCheckpointRecord>;
|
|
175
|
+
private initDefaultPolicies;
|
|
176
|
+
private assessRisk;
|
|
177
|
+
private getRetentionDays;
|
|
178
|
+
private checkViolations;
|
|
179
|
+
private computeCheckpointHash;
|
|
180
|
+
private sign;
|
|
181
|
+
}
|
|
182
|
+
export default ComplianceManager;
|
|
183
|
+
//# sourceMappingURL=checkpoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint.d.ts","sourceRoot":"","sources":["../../src/compliance/checkpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,394 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dōmere - Compliance Checkpoints (SOC2/HIPAA)
|
|
3
|
+
*
|
|
4
|
+
* Automated compliance tracking and reporting for AI systems.
|
|
5
|
+
* Supports SOC2, HIPAA, GDPR, and custom frameworks.
|
|
6
|
+
*/
|
|
7
|
+
import * as crypto from 'crypto';
|
|
8
|
+
// =============================================================================
|
|
9
|
+
// SOC2 Control Descriptions
|
|
10
|
+
// =============================================================================
|
|
11
|
+
export const SOC2_CONTROLS = {
|
|
12
|
+
'CC1.1': 'Integrity and Ethical Values',
|
|
13
|
+
'CC1.2': 'Board Independence and Oversight',
|
|
14
|
+
'CC1.3': 'Organizational Structure',
|
|
15
|
+
'CC1.4': 'Commitment to Competence',
|
|
16
|
+
'CC1.5': 'Accountability',
|
|
17
|
+
'CC2.1': 'Information Quality',
|
|
18
|
+
'CC2.2': 'Internal Communication',
|
|
19
|
+
'CC2.3': 'External Communication',
|
|
20
|
+
'CC3.1': 'Risk Assessment Objectives',
|
|
21
|
+
'CC3.2': 'Risk Identification',
|
|
22
|
+
'CC3.3': 'Fraud Risk',
|
|
23
|
+
'CC3.4': 'Change Impact Analysis',
|
|
24
|
+
'CC4.1': 'Monitoring Activities',
|
|
25
|
+
'CC4.2': 'Deficiency Evaluation',
|
|
26
|
+
'CC5.1': 'Control Selection',
|
|
27
|
+
'CC5.2': 'Technology Controls',
|
|
28
|
+
'CC5.3': 'Policy Deployment',
|
|
29
|
+
'CC6.1': 'Logical Access Security',
|
|
30
|
+
'CC6.2': 'Access Provisioning',
|
|
31
|
+
'CC6.3': 'Access Removal',
|
|
32
|
+
'CC6.4': 'Access Review',
|
|
33
|
+
'CC6.5': 'Authentication',
|
|
34
|
+
'CC6.6': 'Access Restrictions',
|
|
35
|
+
'CC6.7': 'Data Transmission Protection',
|
|
36
|
+
'CC6.8': 'Malicious Software Prevention',
|
|
37
|
+
'CC7.1': 'Infrastructure Monitoring',
|
|
38
|
+
'CC7.2': 'Security Event Detection',
|
|
39
|
+
'CC7.3': 'Incident Response',
|
|
40
|
+
'CC7.4': 'Business Continuity',
|
|
41
|
+
'CC7.5': 'Data Recovery',
|
|
42
|
+
'CC8.1': 'Change Management',
|
|
43
|
+
'CC9.1': 'Risk Mitigation',
|
|
44
|
+
'CC9.2': 'Vendor Management',
|
|
45
|
+
};
|
|
46
|
+
export const HIPAA_CONTROLS = {
|
|
47
|
+
'ACCESS_CONTROL': 'Access Control (§164.312(a)(1))',
|
|
48
|
+
'AUDIT_CONTROLS': 'Audit Controls (§164.312(b))',
|
|
49
|
+
'INTEGRITY': 'Integrity Controls (§164.312(c)(1))',
|
|
50
|
+
'PERSON_AUTH': 'Person Authentication (§164.312(d))',
|
|
51
|
+
'TRANSMISSION_SECURITY': 'Transmission Security (§164.312(e)(1))',
|
|
52
|
+
'PRIVACY_RULE': 'Privacy Rule Compliance',
|
|
53
|
+
'BREACH_NOTIFICATION': 'Breach Notification (§164.400-414)',
|
|
54
|
+
'MINIMUM_NECESSARY': 'Minimum Necessary Standard',
|
|
55
|
+
};
|
|
56
|
+
// =============================================================================
|
|
57
|
+
// Compliance Manager
|
|
58
|
+
// =============================================================================
|
|
59
|
+
export class ComplianceManager {
|
|
60
|
+
checkpoints = new Map();
|
|
61
|
+
violations = new Map();
|
|
62
|
+
retentionPolicies = new Map();
|
|
63
|
+
signingKey;
|
|
64
|
+
constructor(signingKey) {
|
|
65
|
+
this.signingKey = crypto.scryptSync(signingKey, 'domere-compliance', 32);
|
|
66
|
+
this.initDefaultPolicies();
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Record a compliance checkpoint
|
|
70
|
+
*/
|
|
71
|
+
async checkpoint(params) {
|
|
72
|
+
const id = `chk_${crypto.randomUUID()}`;
|
|
73
|
+
// Get control description
|
|
74
|
+
let controlDescription = params.control;
|
|
75
|
+
if (params.framework === 'SOC2' && SOC2_CONTROLS[params.control]) {
|
|
76
|
+
controlDescription = SOC2_CONTROLS[params.control];
|
|
77
|
+
}
|
|
78
|
+
else if (params.framework === 'HIPAA' && HIPAA_CONTROLS[params.control]) {
|
|
79
|
+
controlDescription = HIPAA_CONTROLS[params.control];
|
|
80
|
+
}
|
|
81
|
+
// Auto-assess risk if not provided
|
|
82
|
+
const riskLevel = params.risk_level || this.assessRisk(params);
|
|
83
|
+
// Get retention from policy
|
|
84
|
+
const retention = params.retention_days || this.getRetentionDays(params.data_categories || []);
|
|
85
|
+
const checkpoint = {
|
|
86
|
+
id,
|
|
87
|
+
thread_id: params.thread_id,
|
|
88
|
+
timestamp: new Date(),
|
|
89
|
+
framework: params.framework,
|
|
90
|
+
control: params.control,
|
|
91
|
+
control_description: controlDescription,
|
|
92
|
+
event_type: params.event_type,
|
|
93
|
+
event_description: params.event_description,
|
|
94
|
+
data_classification: params.data_classification,
|
|
95
|
+
data_categories: params.data_categories || [],
|
|
96
|
+
agent_id: params.agent_id,
|
|
97
|
+
user_id: params.user_id,
|
|
98
|
+
data_subject_id: params.data_subject_id,
|
|
99
|
+
legal_basis: params.legal_basis,
|
|
100
|
+
retention_days: retention,
|
|
101
|
+
risk_level: riskLevel,
|
|
102
|
+
mitigations_applied: params.mitigations_applied || [],
|
|
103
|
+
checkpoint_hash: '',
|
|
104
|
+
signed: params.sign || false,
|
|
105
|
+
};
|
|
106
|
+
// Compute hash
|
|
107
|
+
checkpoint.checkpoint_hash = this.computeCheckpointHash(checkpoint);
|
|
108
|
+
// Sign if requested
|
|
109
|
+
if (params.sign) {
|
|
110
|
+
checkpoint.signature = this.sign(checkpoint.checkpoint_hash);
|
|
111
|
+
}
|
|
112
|
+
// Store
|
|
113
|
+
this.checkpoints.set(id, checkpoint);
|
|
114
|
+
// Check for violations
|
|
115
|
+
await this.checkViolations(checkpoint);
|
|
116
|
+
return checkpoint;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Record a compliance violation
|
|
120
|
+
*/
|
|
121
|
+
async recordViolation(params) {
|
|
122
|
+
const id = `vio_${crypto.randomUUID()}`;
|
|
123
|
+
const violation = {
|
|
124
|
+
id,
|
|
125
|
+
checkpoint_id: params.checkpoint_id || '',
|
|
126
|
+
thread_id: params.thread_id,
|
|
127
|
+
timestamp: new Date(),
|
|
128
|
+
framework: params.framework,
|
|
129
|
+
control: params.control,
|
|
130
|
+
violation_type: params.violation_type,
|
|
131
|
+
severity: params.severity,
|
|
132
|
+
description: params.description,
|
|
133
|
+
affected_records: params.affected_records || 0,
|
|
134
|
+
affected_subjects: params.affected_subjects || [],
|
|
135
|
+
remediation_required: params.severity !== 'low',
|
|
136
|
+
remediation_deadline: params.remediation_deadline,
|
|
137
|
+
remediation_status: 'pending',
|
|
138
|
+
};
|
|
139
|
+
this.violations.set(id, violation);
|
|
140
|
+
return violation;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Update remediation status
|
|
144
|
+
*/
|
|
145
|
+
async updateRemediation(violationId, status, notes) {
|
|
146
|
+
const violation = this.violations.get(violationId);
|
|
147
|
+
if (!violation)
|
|
148
|
+
return null;
|
|
149
|
+
violation.remediation_status = status;
|
|
150
|
+
if (notes)
|
|
151
|
+
violation.remediation_notes = notes;
|
|
152
|
+
return violation;
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* Generate compliance report
|
|
156
|
+
*/
|
|
157
|
+
async generateReport(params) {
|
|
158
|
+
const id = `rpt_${crypto.randomUUID()}`;
|
|
159
|
+
// Filter checkpoints
|
|
160
|
+
const relevantCheckpoints = Array.from(this.checkpoints.values()).filter(c => c.framework === params.framework &&
|
|
161
|
+
c.timestamp >= params.period_start &&
|
|
162
|
+
c.timestamp <= params.period_end);
|
|
163
|
+
// Filter violations
|
|
164
|
+
const relevantViolations = Array.from(this.violations.values()).filter(v => v.framework === params.framework &&
|
|
165
|
+
v.timestamp >= params.period_start &&
|
|
166
|
+
v.timestamp <= params.period_end);
|
|
167
|
+
// Compute stats
|
|
168
|
+
const checkpointsByControl = {};
|
|
169
|
+
const checkpointsByEventType = {};
|
|
170
|
+
const checkpointsByRiskLevel = {};
|
|
171
|
+
const dataSubjects = new Set();
|
|
172
|
+
let dataAccessCount = 0;
|
|
173
|
+
for (const c of relevantCheckpoints) {
|
|
174
|
+
checkpointsByControl[c.control] = (checkpointsByControl[c.control] || 0) + 1;
|
|
175
|
+
checkpointsByEventType[c.event_type] = (checkpointsByEventType[c.event_type] || 0) + 1;
|
|
176
|
+
checkpointsByRiskLevel[c.risk_level] = (checkpointsByRiskLevel[c.risk_level] || 0) + 1;
|
|
177
|
+
if (c.data_subject_id)
|
|
178
|
+
dataSubjects.add(c.data_subject_id);
|
|
179
|
+
if (c.event_type === 'access')
|
|
180
|
+
dataAccessCount++;
|
|
181
|
+
}
|
|
182
|
+
const violationsBySeverity = {};
|
|
183
|
+
let openViolations = 0;
|
|
184
|
+
let remediatedViolations = 0;
|
|
185
|
+
for (const v of relevantViolations) {
|
|
186
|
+
violationsBySeverity[v.severity] = (violationsBySeverity[v.severity] || 0) + 1;
|
|
187
|
+
if (v.remediation_status === 'pending' || v.remediation_status === 'in_progress') {
|
|
188
|
+
openViolations++;
|
|
189
|
+
}
|
|
190
|
+
else if (v.remediation_status === 'completed') {
|
|
191
|
+
remediatedViolations++;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
// Calculate control coverage
|
|
195
|
+
const controlCoverage = {};
|
|
196
|
+
const controlList = params.framework === 'SOC2' ? Object.keys(SOC2_CONTROLS) :
|
|
197
|
+
params.framework === 'HIPAA' ? Object.keys(HIPAA_CONTROLS) : [];
|
|
198
|
+
for (const control of controlList) {
|
|
199
|
+
const count = checkpointsByControl[control] || 0;
|
|
200
|
+
controlCoverage[control] = { covered: count > 0, checkpoint_count: count };
|
|
201
|
+
}
|
|
202
|
+
// Calculate compliance score
|
|
203
|
+
const coveredControls = Object.values(controlCoverage).filter(c => c.covered).length;
|
|
204
|
+
const totalControls = controlList.length;
|
|
205
|
+
const controlScore = totalControls > 0 ? (coveredControls / totalControls) * 50 : 50;
|
|
206
|
+
const violationPenalty = Math.min(50, relevantViolations.length * 5);
|
|
207
|
+
const complianceScore = Math.max(0, Math.round(controlScore + 50 - violationPenalty));
|
|
208
|
+
const report = {
|
|
209
|
+
id,
|
|
210
|
+
generated_at: new Date(),
|
|
211
|
+
period_start: params.period_start,
|
|
212
|
+
period_end: params.period_end,
|
|
213
|
+
framework: params.framework,
|
|
214
|
+
total_checkpoints: relevantCheckpoints.length,
|
|
215
|
+
checkpoints_by_control: checkpointsByControl,
|
|
216
|
+
checkpoints_by_event_type: checkpointsByEventType,
|
|
217
|
+
checkpoints_by_risk_level: checkpointsByRiskLevel,
|
|
218
|
+
total_violations: relevantViolations.length,
|
|
219
|
+
violations_by_severity: violationsBySeverity,
|
|
220
|
+
open_violations: openViolations,
|
|
221
|
+
remediated_violations: remediatedViolations,
|
|
222
|
+
unique_data_subjects: dataSubjects.size,
|
|
223
|
+
data_access_count: dataAccessCount,
|
|
224
|
+
compliance_score: complianceScore,
|
|
225
|
+
control_coverage: controlCoverage,
|
|
226
|
+
};
|
|
227
|
+
// Add attestation if requested
|
|
228
|
+
if (params.attester) {
|
|
229
|
+
const statement = `I, ${params.attester}, attest that this compliance report accurately reflects the state of the ${params.framework} controls for the period ${params.period_start.toISOString()} to ${params.period_end.toISOString()}.`;
|
|
230
|
+
report.attestation = {
|
|
231
|
+
attester: params.attester,
|
|
232
|
+
attested_at: new Date(),
|
|
233
|
+
statement,
|
|
234
|
+
signature: this.sign(statement),
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
return report;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Get checkpoints for a thread
|
|
241
|
+
*/
|
|
242
|
+
async getCheckpoints(threadId) {
|
|
243
|
+
return Array.from(this.checkpoints.values())
|
|
244
|
+
.filter(c => c.thread_id === threadId)
|
|
245
|
+
.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Get violations for a thread
|
|
249
|
+
*/
|
|
250
|
+
async getViolations(threadId) {
|
|
251
|
+
return Array.from(this.violations.values())
|
|
252
|
+
.filter(v => v.thread_id === threadId)
|
|
253
|
+
.sort((a, b) => a.timestamp.getTime() - b.timestamp.getTime());
|
|
254
|
+
}
|
|
255
|
+
/**
|
|
256
|
+
* Add retention policy
|
|
257
|
+
*/
|
|
258
|
+
addRetentionPolicy(policy) {
|
|
259
|
+
this.retentionPolicies.set(policy.name, policy);
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* HIPAA-specific: Log PHI access
|
|
263
|
+
*/
|
|
264
|
+
async logPHIAccess(params) {
|
|
265
|
+
return this.checkpoint({
|
|
266
|
+
thread_id: params.thread_id,
|
|
267
|
+
framework: 'HIPAA',
|
|
268
|
+
control: 'ACCESS_CONTROL',
|
|
269
|
+
event_type: 'access',
|
|
270
|
+
event_description: `PHI accessed for ${params.access_reason}`,
|
|
271
|
+
data_classification: 'phi',
|
|
272
|
+
data_categories: params.data_accessed,
|
|
273
|
+
agent_id: params.agent_id,
|
|
274
|
+
data_subject_id: params.patient_id,
|
|
275
|
+
legal_basis: params.legal_basis,
|
|
276
|
+
sign: true,
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* SOC2-specific: Log access control event
|
|
281
|
+
*/
|
|
282
|
+
async logAccessControl(params) {
|
|
283
|
+
return this.checkpoint({
|
|
284
|
+
thread_id: params.thread_id,
|
|
285
|
+
framework: 'SOC2',
|
|
286
|
+
control: params.action === 'grant' ? 'CC6.2' :
|
|
287
|
+
params.action === 'revoke' ? 'CC6.3' :
|
|
288
|
+
params.action === 'review' ? 'CC6.4' : 'CC6.1',
|
|
289
|
+
event_type: 'authorization',
|
|
290
|
+
event_description: `Access ${params.action} for ${params.resource}: ${params.success ? 'success' : 'failed'}`,
|
|
291
|
+
data_classification: 'internal',
|
|
292
|
+
agent_id: params.agent_id,
|
|
293
|
+
user_id: params.user_id,
|
|
294
|
+
risk_level: params.success ? 'low' : 'medium',
|
|
295
|
+
sign: true,
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
// ===========================================================================
|
|
299
|
+
// Private Methods
|
|
300
|
+
// ===========================================================================
|
|
301
|
+
initDefaultPolicies() {
|
|
302
|
+
this.addRetentionPolicy({
|
|
303
|
+
name: 'phi_retention',
|
|
304
|
+
data_categories: ['phi', 'medical_records', 'patient_data'],
|
|
305
|
+
retention_days: 2190, // 6 years for HIPAA
|
|
306
|
+
deletion_method: 'hard',
|
|
307
|
+
legal_hold_exempt: false,
|
|
308
|
+
});
|
|
309
|
+
this.addRetentionPolicy({
|
|
310
|
+
name: 'pii_retention',
|
|
311
|
+
data_categories: ['pii', 'personal_data'],
|
|
312
|
+
retention_days: 365,
|
|
313
|
+
deletion_method: 'anonymize',
|
|
314
|
+
legal_hold_exempt: false,
|
|
315
|
+
});
|
|
316
|
+
this.addRetentionPolicy({
|
|
317
|
+
name: 'audit_log_retention',
|
|
318
|
+
data_categories: ['audit_logs', 'access_logs'],
|
|
319
|
+
retention_days: 365, // SOC2 requirement
|
|
320
|
+
deletion_method: 'soft',
|
|
321
|
+
legal_hold_exempt: true,
|
|
322
|
+
});
|
|
323
|
+
}
|
|
324
|
+
assessRisk(params) {
|
|
325
|
+
if (params.data_classification === 'phi' || params.data_classification === 'restricted') {
|
|
326
|
+
if (params.event_type === 'disclosure' || params.event_type === 'transmission') {
|
|
327
|
+
return 'critical';
|
|
328
|
+
}
|
|
329
|
+
return 'high';
|
|
330
|
+
}
|
|
331
|
+
if (params.data_classification === 'pii' || params.data_classification === 'confidential') {
|
|
332
|
+
return 'medium';
|
|
333
|
+
}
|
|
334
|
+
return 'low';
|
|
335
|
+
}
|
|
336
|
+
getRetentionDays(categories) {
|
|
337
|
+
let maxRetention = 90; // Default
|
|
338
|
+
for (const policy of this.retentionPolicies.values()) {
|
|
339
|
+
if (categories.some(c => policy.data_categories.includes(c))) {
|
|
340
|
+
maxRetention = Math.max(maxRetention, policy.retention_days);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
return maxRetention;
|
|
344
|
+
}
|
|
345
|
+
async checkViolations(checkpoint) {
|
|
346
|
+
// Check for missing legal basis on PHI
|
|
347
|
+
if (checkpoint.data_classification === 'phi' && !checkpoint.legal_basis) {
|
|
348
|
+
await this.recordViolation({
|
|
349
|
+
checkpoint_id: checkpoint.id,
|
|
350
|
+
thread_id: checkpoint.thread_id,
|
|
351
|
+
framework: 'HIPAA',
|
|
352
|
+
control: 'MINIMUM_NECESSARY',
|
|
353
|
+
violation_type: 'policy_violation',
|
|
354
|
+
severity: 'high',
|
|
355
|
+
description: 'PHI accessed without documented legal basis',
|
|
356
|
+
affected_records: 1,
|
|
357
|
+
affected_subjects: checkpoint.data_subject_id ? [checkpoint.data_subject_id] : [],
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
// Check for high-risk access without mitigations
|
|
361
|
+
if (checkpoint.risk_level === 'critical' && checkpoint.mitigations_applied.length === 0) {
|
|
362
|
+
await this.recordViolation({
|
|
363
|
+
checkpoint_id: checkpoint.id,
|
|
364
|
+
thread_id: checkpoint.thread_id,
|
|
365
|
+
framework: checkpoint.framework,
|
|
366
|
+
control: checkpoint.control,
|
|
367
|
+
violation_type: 'policy_violation',
|
|
368
|
+
severity: 'medium',
|
|
369
|
+
description: 'Critical risk event without documented mitigations',
|
|
370
|
+
});
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
computeCheckpointHash(checkpoint) {
|
|
374
|
+
const data = [
|
|
375
|
+
checkpoint.id,
|
|
376
|
+
checkpoint.thread_id,
|
|
377
|
+
checkpoint.timestamp.toISOString(),
|
|
378
|
+
checkpoint.framework,
|
|
379
|
+
checkpoint.control,
|
|
380
|
+
checkpoint.event_type,
|
|
381
|
+
checkpoint.event_description,
|
|
382
|
+
checkpoint.data_classification,
|
|
383
|
+
checkpoint.agent_id,
|
|
384
|
+
].join('|');
|
|
385
|
+
return crypto.createHash('sha256').update(data).digest('hex');
|
|
386
|
+
}
|
|
387
|
+
sign(data) {
|
|
388
|
+
const hmac = crypto.createHmac('sha256', this.signingKey);
|
|
389
|
+
hmac.update(data);
|
|
390
|
+
return hmac.digest('hex');
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
export default ComplianceManager;
|
|
394
|
+
//# sourceMappingURL=checkpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkpoint.js","sourceRoot":"","sources":["../../src/compliance/checkpoint.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/compliance/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compliance/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/handoff/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handoff/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}
|