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