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.

140 lines (139 loc) 3.09 kB
/** * Baseline Drift Storage and Calibration * * Tracks baseline metrics and detects drift over time * * @module baseline/storage */ /** * Baseline metrics */ export interface BaselineMetrics { version: string; createdAt: string; updatedAt: string; sampleCount: number; metrics: { averageLatency: number; averageContentLength: number; averageRiskScore: number; riskDistribution: { low: number; moderate: number; high: number; critical: number; }; engineScores: { hallucination?: number; consistency?: number; csm6?: number; }; }; } /** * Drift record */ export interface DriftRecord { timestamp: string; metric: string; baseline: number; current: number; drift: number; driftPercent: number; severity: 'minor' | 'moderate' | 'significant'; } /** * Baseline configuration */ export interface BaselineConfig { baselineDir?: string; driftThreshold?: number; maxDriftHistory?: number; autoCalibrate?: boolean; } /** * Baseline storage class */ export declare class BaselineStorage { private config; private baselineFile; private driftFile; constructor(config?: Partial<BaselineConfig>); /** * Ensure baseline directory exists */ private ensureDirectory; /** * Load baseline metrics */ loadBaseline(): BaselineMetrics | null; /** * Save baseline metrics */ saveBaseline(baseline: BaselineMetrics): void; /** * Update baseline with new sample */ updateBaseline(sample: { latency: number; contentLength: number; riskScore: number; riskLevel: string; engineScores?: { hallucination?: number; consistency?: number; csm6?: number; }; }): BaselineMetrics; /** * Check for drift */ checkDrift(current: { latency?: number; contentLength?: number; riskScore?: number; }): DriftRecord[]; /** * Get drift severity */ private getDriftSeverity; /** * Record drift history */ private recordDrifts; /** * Trim drift history to max size */ private trimDriftHistory; /** * Read drift history */ readDriftHistory(limit?: number): DriftRecord[]; /** * Reset baseline */ resetBaseline(): void; /** * Get baseline statistics */ getStatistics(): { hasBaseline: boolean; sampleCount: number; createdAt?: string; updatedAt?: string; driftRecordCount: number; recentDrifts: DriftRecord[]; }; /** * Calibrate baseline (reset and start fresh) */ calibrate(): void; } /** * Get global baseline storage */ export declare function getBaselineStorage(config?: Partial<BaselineConfig>): BaselineStorage; /** * Reset global baseline storage */ export declare function resetBaselineStorage(): void;