UNPKG

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
/** * ═══════════════════════════════════════════════════════════════════════════ * 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