overmind-mcp
Version:
Orchestrateur universel agents IA multi-modeles via MCP. Inclut le protocole 'Custom-Nickname' pour identifier vos agents avec des surnoms originaux (The Chaos Prophet, Shadow Sniper, etc.), l'isolation mémoire (Private Memory Context) et le support pour
130 lines • 5.27 kB
TypeScript
/**
* ═══════════════════════════════════════════════════════════════════════════
* Audit Trail — Types partagés
* ═══════════════════════════════════════════════════════════════════════════
*
* Conformité Audit Trail (Loi 25 QC / AI Act / AI PIA) pour Overmind-MCP.
* Voir docs/PLAN_AUDIT_INTEGRATION.md pour le plan complet.
*/
/** Bases légales au sens de la Loi 25 / AI Act */
export type LegalBasis = 'consent' | 'contract' | 'legitimate_interest' | 'legal_obligation';
/** Catégories de données personnelles */
export type DataCategory = 'agent_runs' | 'knowledge_chunks' | 'discord_messages' | 'api_requests' | 'credentials';
/** Régions de transfert pour les providers LLM */
export type TransferRegion = 'QC' | 'CA' | 'US' | 'EU' | 'CN' | 'OTHER';
/** Mécanismes légaux pour les transferts hors Québec */
export type TransferMechanism = 'standard_contractual_clauses' | 'adequacy' | 'explicit_consent' | 'binding_corporate_rules' | 'unspecified';
/** Niveaux de gravité d'incident (art. 12.1) */
export type IncidentSeverity = 'low' | 'moderate' | 'high';
/** Catégories d'incident */
export type IncidentCategory = 'data_leak' | 'unauthorized_access' | 'breach' | 'retention_violation' | 'transfer_violation' | 'consent_violation';
/**
* Contexte audit propagé à travers chaque outil et runner.
* Obligatoire quand OVERMIND_AUDIT_ENABLED=true.
*/
export interface AuditContext {
/** Identifiant pseudonymisé de la personne (hash SHA-256, jamais l'identité brute) */
dataSubjectId?: string;
/** Base légale du traitement */
legalBasis: LegalBasis;
/** Référence au consentement si legalBasis = 'consent' */
consentRef?: string;
/** Finalité du traitement (art. 4 — doit être légitime et pertinente) */
purpose: string;
/** Anonymiser les RP avant stockage (art. 23.1) */
anonymize?: boolean;
}
/** Enregistrement de consentement (table consent_records) */
export interface ConsentRecord {
id: string;
data_subject_id: string;
purpose: string;
legal_basis: LegalBasis;
granted_at: number;
expires_at: number | null;
withdrawn_at: number | null;
evidence: string | null;
}
/** Sujet de données (table data_subjects) */
export interface DataSubject {
id: string;
display_name: string | null;
source: 'discord' | 'api' | 'manual' | 'bridge';
created_at: number;
metadata: Record<string, unknown> | null;
}
/** Entrée du registre des traitements (table processing_registry) */
export interface ProcessingEntry {
id: string;
name: string;
purpose: string;
legal_basis: LegalBasis;
data_categories: string;
recipients: string;
retention_days: number;
created_at: number;
updated_at: number;
}
/** Journal d'incident (table incident_log) */
export interface IncidentLogEntry {
id: string;
detected_at: number;
severity: IncidentSeverity;
category: IncidentCategory;
description: string | null;
data_subjects_affected: number;
cai_notified: number;
subjects_notified: number;
resolved_at: number | null;
}
/** Journal d'accès (table access_log) */
export interface AccessLogEntry {
id: string;
data_subject_id: string | null;
accessed_by: string;
action: 'read' | 'write' | 'delete' | 'transfer';
resource_type: string;
resource_id: string;
purpose: string | null;
timestamp: number;
}
/** Journal de transfert hors QC (table transfer_log) */
export interface TransferLogEntry {
id: string;
data_subject_id: string | null;
destination: string;
destination_region: TransferRegion;
legal_mechanism: TransferMechanism;
data_type: string;
timestamp: number;
}
/** Politique de rétention (table retention_policies) */
export interface RetentionPolicy {
id: string;
category: string;
retention_days: number;
legal_basis: LegalBasis;
anonymize_after_days: number | null;
active: boolean;
}
/**
* Vérifie si la l'audit trail est activé (master feature flag).
* Si false, tous les guards sont passifs (comportement v3.8).
*/
export declare function isAuditEnabled(): boolean;
/** Lit la rétention par défaut depuis .env (défaut: 30 jours) */
export declare function getDefaultRetentionDays(): number;
/** Lit la durée d'archivage cold storage depuis .env (défaut: 5 ans) */
export declare function getDefaultArchiveYears(): number;
/** Lit la base légale par défaut depuis .env */
export declare function getDefaultLegalBasis(): LegalBasis;
/**
* Allowlist des sujets internes (intérêt légitime suffisant, pas de consentement requis).
* Format .env : OVERMIND_AUDIT_INTERNAL_SUBJECTS=hash1,hash2,hash3
*/
export declare function getInternalSubjects(): Set<string>;
/**
* Détermine si un sujet est interne (intérêt légitime) ou tiers (consentement requis).
*/
export declare function isInternalSubject(dataSubjectId: string): boolean;
//# sourceMappingURL=types.d.ts.map