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

77 lines • 3.13 kB
/** * ═══════════════════════════════════════════════════════════════════════════ * Audit Trail — Privacy Guard (middleware) * ═══════════════════════════════════════════════════════════════════════════ * * Intercepte chaque flux de RP pour appliquer les contrôles d'audit. * Appelé par les runners, le bridge et les outils de stockage. * * Comportement : * 1. Si OVERMIND_AUDIT_ENABLED=false → pass-through (zero overhead, v3.8) * 2. Détection de la base légale (interne vs tiers) * 3. Validation du consentement si tiers (art. 8) * 4. Détection de RP dans le texte (email, NAS, téléphone, etc.) * 5. Pseudonymisation / anonymisation si requis (art. 23.1) * 6. Log du transfert si runner LLM externe (art. 21) * 7. Calcul de la rétention (art. 35.2) */ import { type AuditContext, type LegalBasis, type TransferRegion, type TransferMechanism } from './types.js'; export interface GuardResult { /** Le traitement peut continuer */ allowed: boolean; /** Raison du refus si allowed = false */ reason?: string; /** Contexte audit enrichi (avec legalBasis résolu, consentRef si validé) */ context: AuditContext; /** Texte sanitizé (si PII détectés et filter activé) */ sanitizedPrompt?: string; /** RP détectés dans le prompt */ piiDetected: boolean; /** Types de RP détectés */ piiTypes: string[]; /** Timestamp d'expiration de rétention */ retentionExpiresAt: number; } /** * Enregistre un accès dans access_log. */ export declare function logAccess(params: { dataSubjectId: string | null; accessedBy: string; action: 'read' | 'write' | 'delete' | 'transfer'; resourceType: string; resourceId: string; purpose?: string; }): Promise<void>; /** * Enregistre un transfert de RP hors Québec dans transfer_log (art. 21). */ export declare function logTransfer(params: { dataSubjectId: string | null; destination: string; destinationRegion: TransferRegion; legalMechanism: TransferMechanism; dataType: string; }): Promise<void>; export interface GuardOptions { prompt: string; dataSubjectId?: string; purpose?: string; /** Provider LLM visé (pour vérifier si transfert hors QC) */ provider?: string; /** Forcer la base légale (sinon auto-détection) */ legalBasisOverride?: LegalBasis; /** Sanitiser le prompt avant envoi au LLM */ sanitize?: boolean; } /** * Applique les contrôles d'audit sur une requête. * * @returns GuardResult — allowed=false si la requête doit être bloquée */ export declare function auditGuard(opts: GuardOptions): Promise<GuardResult>; /** * Helper : pseudonymise un identifiant pour stockage en DB. */ export declare function pseudonymizeSubject(rawId: string): string; //# sourceMappingURL=guard.d.ts.map