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.

114 lines (113 loc) 2.34 kB
/** * Plugin Registry System * * Extensible rule system for custom verification logic * * @module plugins/registry */ /** * Plugin context provided to rules */ export interface PluginContext { content: string; prompt?: string; config?: any; metadata?: Record<string, any>; } /** * Plugin result */ export interface PluginResult { findings: Array<{ category: string; severity: string; message: string; metadata?: any; }>; score?: number; metadata?: Record<string, any>; } /** * Plugin function signature */ export type PluginFunction = (context: PluginContext) => PluginResult | Promise<PluginResult>; /** * Plugin definition */ export interface Plugin { id: string; name: string; version: string; description?: string; author?: string; category: 'security' | 'privacy' | 'safety' | 'quality' | 'custom'; enabled: boolean; priority?: number; execute: PluginFunction; } /** * Plugin registry */ export declare class PluginRegistry { private plugins; /** * Register a plugin */ register(plugin: Plugin): void; /** * Validate plugin structure */ private validatePlugin; /** * Unregister a plugin */ unregister(pluginId: string): boolean; /** * Get a plugin */ get(pluginId: string): Plugin | undefined; /** * Get all plugins */ getAll(): Plugin[]; /** * Get enabled plugins */ getEnabled(): Plugin[]; /** * Get plugins by category */ getByCategory(category: Plugin['category']): Plugin[]; /** * Enable a plugin */ enable(pluginId: string): void; /** * Disable a plugin */ disable(pluginId: string): void; /** * Execute all enabled plugins */ executeAll(context: PluginContext): Promise<PluginResult[]>; /** * Execute specific plugins */ execute(pluginIds: string[], context: PluginContext): Promise<PluginResult[]>; /** * Clear all plugins */ clear(): void; /** * Get plugin count */ count(): number; } /** * Get global plugin registry */ export declare function getPluginRegistry(): PluginRegistry; /** * Reset global registry */ export declare function resetPluginRegistry(): void;