UNPKG

@nullplatform/llm-gateway-sdk

Version:
45 lines 1.46 kB
import { IRequestContext } from './context.js'; import { IConfigurableExtension } from "./extension"; export interface IPluginConfig { name: string; type: string; enabled: boolean; priority?: number; config?: any; conditions?: { paths?: Array<string | RegExp>; methods?: Array<string | RegExp>; headers?: Record<string, string | RegExp>; user_ids?: Array<string | RegExp>; models?: Array<string | RegExp>; }; } export interface IPluginExecution { pluginName: string; result: IPluginResult; executionTime: number; } export interface IPluginPhaseExecution { finalResult: IPluginResult; totalExecutionTime: number; executions: Array<IPluginExecution>; } export interface IPlugin extends IConfigurableExtension { beforeModel?(llmRequest: IRequestContext): Promise<IPluginResult>; onModelError?(llmRequest: IRequestContext): Promise<IPluginResult>; afterModel?(llmRequest: IRequestContext): Promise<IPluginResult>; afterChunk?(llmRequest: IRequestContext): Promise<IPluginResult>; detachedAfterResponse?(llmRequest: IRequestContext): Promise<void>; } export interface IPluginResult { success: boolean; pluginName?: string; status?: number; context?: IRequestContext; error?: Error; reevaluateRequest?: boolean; skipRemaining?: boolean; terminate?: boolean; emitChunk?: boolean; } //# sourceMappingURL=plugin.d.ts.map