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

59 lines • 2.3 kB
/** * ═══════════════════════════════════════════════════════════════════════════ * Audit Trail — Capture au niveau du Bridge * ═══════════════════════════════════════════════════════════════════════════ * * Pseudonymise les externalKeys (Discord userId, phone, Telegram id) * en data_subject_id audit et propage le contexte au runner. * * Appelé par OverBridgeServer avant l'auto-dispatch vers agent.run. */ import { pseudonymize } from './anonymize.js'; import { isAuditEnabled, isInternalSubject } from './types.js'; /** * Map des providers webhook vers les sources audit. */ const PROVIDER_TO_SOURCE = { discord: 'discord', telegram: 'telegram', voipms: 'voipms', twilio: 'twilio', generic: 'generic', }; /** * Capture et pseudonymise l'identité d'un utilisateur bridge. * * @param externalKey Clé externe brute (userId Discord, phone, etc.) * @param provider Provider webhook source * @returns BridgeCaptureResult avec dataSubjectId pseudonymisé */ export function captureBridgeSubject(externalKey, provider) { const source = PROVIDER_TO_SOURCE[provider] || 'generic'; const dataSubjectId = pseudonymize(externalKey); const isInternal = isInternalSubject(dataSubjectId); const legalBasis = isInternal ? 'legitimate_interest' : 'consent'; return { dataSubjectId, legalBasis, source, isInternal, }; } /** * Propage le data_subject_id au contexte d'exécution via variable d'environnement. * Le runner_hook.ts lit OVERMIND_CURRENT_SUBJECT_ID pour le passer au guard. * * Note : cette approche est safe car le bridge est mono-request par spawn. */ export function propagateSubjectContext(result) { if (!isAuditEnabled()) return; process.env.OVERMIND_CURRENT_SUBJECT_ID = result.dataSubjectId; } /** * Nettoie le contexte après exécution. */ export function clearSubjectContext() { delete process.env.OVERMIND_CURRENT_SUBJECT_ID; } //# sourceMappingURL=bridge_capture.js.map