/** * Pattern Decryption Service with LLM Context Protection * * Part of Issue #1321 Phase 2: Memory Security Architecture * * PURPOSE: * Provides secure access to decrypt patterns while preventing * decryption in LLM request contexts. All decryption attempts * are audited for security monitoring. * * SECURITY: * - Prevents decryption in LLM contexts (blocks pattern leaks to LLM) * - Requires explicit authorization * - Audits all decryption attempts * - Uses ContextTracker to detect execution context * * REFACTOR NOTE: * Converted from static class to instance-based for DI architecture compatibility. * PatternDecryptor now requires PatternEncryptor and ContextTracker dependencies * to be injected via constructor for proper DI lifecycle management. * * @module PatternDecryptor */ import { PatternEncryptor } from './PatternEncryptor.js'; import { ContextTracker } from './ContextTracker.js'; import type { SanitizedPattern } from '../validation/BackgroundValidator.js'; /** * Decryption attempt metadata for audit logging */ export interface DecryptionAttempt { /** Pattern reference ID */ patternRef: string; /** Whether decryption was successful */ success: boolean; /** Timestamp of the attempt */ timestamp: number; /** Execution context type */ contextType: string; /** Request ID for correlation */ requestId?: string; /** Reason for denial (if unsuccessful) */ denialReason?: string; /** Error message (if failed) */ error?: string; } /** * PatternDecryptor service * * Provides controlled access to decrypt encrypted patterns with * LLM context protection and audit logging. * * DI-COMPATIBLE: Instance-based service for dependency injection. */ export declare class PatternDecryptor { private readonly encryptor; private readonly contextTracker; private readonly auditLog; /** * Create a new PatternDecryptor instance * * @param encryptor - PatternEncryptor instance for decryption operations * @param contextTracker - ContextTracker instance for LLM context detection */ constructor(encryptor: PatternEncryptor, contextTracker: ContextTracker); /** * Decrypt a sanitized pattern with security checks * * This method: * 1. Checks if in LLM context (denies if true) * 2. Validates pattern structure * 3. Audits the decryption attempt * 4. Decrypts the pattern using PatternEncryptor * * @param pattern - Sanitized pattern to decrypt * @returns Decrypted pattern text * @throws Error if decryption is not allowed or fails */ decryptPattern(pattern: SanitizedPattern): string; /** * Get decryption audit log * * @param limit - Maximum number of attempts to return * @returns Array of recent decryption attempts */ getAuditLog(limit?: number): DecryptionAttempt[]; /** * Clear the audit log (useful for testing) */ clearAuditLog(): void; /** * Dispose of the decryptor and clean up resources * Implements cleanup for proper DI lifecycle management */ dispose(): Promise; } //# sourceMappingURL=PatternDecryptor.d.ts.map