UNPKG

llmverify

Version:

AI Output Verification Toolkit — Local-first LLM safety, hallucination detection, PII redaction, prompt injection defense, and runtime monitoring. Zero telemetry. OWASP LLM Top 10 aligned.

120 lines (119 loc) 2.67 kB
/** * Audit Trail System * * Compliance-ready audit logging for verification operations * * @module logging/audit */ /** * Audit entry structure */ export interface AuditEntry { timestamp: string; requestId: string; operation: 'verify' | 'classify' | 'check-input' | 'check-pii' | 'plugin-execute'; input: { contentLength: number; contentHash: string; hasPrompt: boolean; }; output: { riskLevel: string; findingsCount: number; blocked: boolean; }; metadata: { version: string; duration: number; enginesUsed: string[]; configTier: string; }; user?: { id?: string; ip?: string; }; } /** * Audit configuration */ export interface AuditConfig { enabled: boolean; auditDir?: string; includeContentHash?: boolean; includeUserInfo?: boolean; maxFileSize?: number; maxFiles?: number; } /** * Audit logger class */ export declare class AuditLogger { private config; constructor(config?: Partial<AuditConfig>); /** * Ensure audit directory exists */ private ensureAuditDirectory; /** * Get audit file path */ private getAuditFilePath; /** * Generate content hash */ private hashContent; /** * Write audit entry */ log(entry: Omit<AuditEntry, 'timestamp'>): void; /** * Log verification operation */ logVerification(params: { requestId: string; content: string; prompt?: string; riskLevel: string; findingsCount: number; blocked: boolean; duration: number; enginesUsed: string[]; configTier: string; userId?: string; userIp?: string; }): void; /** * Rotate audit files */ private rotateIfNeeded; /** * Clean up old audit files */ private cleanupOldAudits; /** * Read audit entries */ readAudit(date?: string): AuditEntry[]; /** * Get audit statistics */ getStats(date?: string): { totalOperations: number; byOperation: Record<string, number>; blockedCount: number; avgDuration: number; riskDistribution: Record<string, number>; }; /** * Export audit trail for compliance */ exportAuditTrail(startDate: string, endDate: string, outputPath: string): void; } /** * Get global audit logger */ export declare function getAuditLogger(config?: Partial<AuditConfig>): AuditLogger; /** * Set global audit logger */ export declare function setAuditLogger(logger: AuditLogger): void;