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