/** * Daemon verdict IPC — SERVER side (runs inside the resident daemon). * * The resident-agent pattern real endpoint products use: one resident process; * per-event interceptors are thin clients that ask it over local IPC. The * daemon is already resident with config, credentials, bundle, and snapshot * warm in memory, so a spawned hook becomes a THIN CLIENT that forwards * `{args, stdin}` over a named pipe (Windows) / Unix domain socket and prints * the verdict the daemon computed in single-digit milliseconds. * * The client half lives in `verdictIpcClient.ts` — a Node-builtins-only leaf * shared with the slim hook entry (`hookSlim.ts`), whose module graph must * stay tiny because it loads on every IDE hook event. This file re-exports * the client API so existing imports keep working. */ export { VERDICT_IPC_PROTOCOL_VERSION, VerdictRequest, VerdictResponse, VerdictClientResult, requestDaemonVerdict, verdictPipePath, verdictTokenFile, } from './verdictIpcClient'; export interface VerdictServerHandle { close(): void; } export type VerdictEvaluator = (args: Record, stdin: string) => Promise<{ stdout: string; stderr: string; exitCode: number; }>; /** * Start the verdict server inside the daemon. Returns undefined when the * endpoint cannot be created (another daemon holds the pipe, filesystem * error) — the daemon keeps running; hooks simply evaluate locally. */ export declare function startVerdictServer(evaluate: VerdictEvaluator, log: (line: string) => void): VerdictServerHandle | undefined;