/** * Host-only `monitors` configuration. * * Monitors are a STREAMING class of the background process-job substrate: they * reuse its protected private-state root, its registration proof, its sandbox * protection, and its origin binding, and therefore require * `processJobs.enabled`. What they do not share is capacity — a persistent watch * that held an ordinary background slot would starve real background work — so * every limit below is counted independently of `processJobs.*`. */ export declare const MONITORS_DEFAULTS: Readonly<{ enabled: false; maxActive: 8; maxActivePerConversation: 2; /** Ceiling for a timed monitor; `timeout_ms` may lower it, never raise it. */ maxRuntimeMs: number; /** Ceiling for a `persistent: true` monitor. */ persistentMaxRuntimeMs: number; /** Stdout lines produced within this window are delivered as one batch. */ coalesceMs: 200; maxWakeIntervalMs: 300000; maxBatchLines: 200; maxBatchBytes: number; maxLineBytes: number; maxChainDepth: 4; rateLimit: Readonly<{ windowMs: 1000; maxLinesPerWindow: 200; sustainedWindows: 5; }>; }>; export declare const MONITORS_CAPS: Readonly<{ maxActive: 32; maxActivePerConversation: 8; maxRuntimeMs: number; persistentMaxRuntimeMs: number; coalesceMs: 5000; maxWakeIntervalMs: 300000; maxBatchLines: 2000; maxBatchBytes: number; maxLineBytes: number; maxChainDepth: 64; rateLimit: Readonly<{ windowMs: 60000; maxLinesPerWindow: 20000; sustainedWindows: 60; }>; }>; /** Terminal monitors retained only until their single final wake settles. */ export declare const MONITORS_MAX_TERMINAL_RECORDS = 32; export interface MonitorsRateLimitSettings { readonly windowMs: number; readonly maxLinesPerWindow: number; readonly sustainedWindows: number; } export interface MonitorsSettings { readonly configured: boolean; readonly enabled: boolean; readonly maxActive: number; readonly maxActivePerConversation: number; readonly maxRuntimeMs: number; readonly persistentMaxRuntimeMs: number; readonly coalesceMs: number; readonly maxWakeIntervalMs: number; readonly maxBatchLines: number; readonly maxBatchBytes: number; readonly maxLineBytes: number; readonly maxChainDepth: number; readonly rateLimit: MonitorsRateLimitSettings; } /** Load the host-only monitor block, failing closed on every unknown key. */ export declare function loadMonitorsSettings(input: { readonly configPath: string; }): Promise; /** Parse one already-loaded config object; unknown keys fail closed. */ export declare function parseMonitorsSettings(raw: unknown): MonitorsSettings; //# sourceMappingURL=monitors-config.d.ts.map