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