@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.
@@ -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,2 @@
1
+ export * from "./checkpoint.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export * from "./checkpoint.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/compliance/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export * from "./verification.js";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -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,2 @@
1
+ export * from "./verification.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/handoff/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC"}