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