import type { AgentDefinition, FleetConfig, ResolvedRole } from '../config.js'; import type { SessionBackendId } from '../config.js'; import type { IsolationConfig } from '../isolation/types.js'; export interface WatchdogConfig { coordinator?: string; enabled?: boolean; interval?: string; watch?: string[]; agent?: { ref: string; } | AgentDefinition; identity?: string; timeout?: string; keep_reports?: number; alert_cooldown?: string; prompt_file?: string; } export interface ResolvedWatchdog { name: string; coordinator: string; enabled: boolean; intervalMs: number; watch: string[]; watchExplicit: boolean; agentDefinition: AgentDefinition; resolvedAgent: ResolvedRole; /** Resolved/read-only runtime facts; never independent authoring fields. */ harness: string; session: SessionBackendId; model?: string; isolation?: IsolationConfig; identity: string; timeoutMs: number; keepReports: number; alertCooldownMs: number; promptFile?: string; sourceFile: string; } export declare const WATCHDOG_DEFAULT_INTERVAL_MS = 600000; export declare const WATCHDOG_MIN_INTERVAL_MS = 60000; export declare const WATCHDOG_DEFAULT_TIMEOUT_MS = 300000; export declare const WATCHDOG_DEFAULT_KEEP_REPORTS = 50; export declare const WATCHDOG_DEFAULT_COOLDOWN_MS = 3600000; export declare function resolveWatchdogs(baseDoc: Record, baseFile: string, roles: ResolvedRole[], vars: Record, agentDefinitions: Record, resolveInline: (name: string, definition: AgentDefinition) => ResolvedRole): ResolvedWatchdog[]; /** * Split `restart`'s argument names into watchdogs (a release, handled * directly) and roles (handed to restartRoles). Watchdog names can't collide * with role names (config validation guarantees dispatch is unambiguous), so * a name matching a configured watchdog is always a release, never a role * restart. Order is preserved within each bucket; unknown names fall through * to roleNames — findRole errors later, same as today. */ export declare function partitionRestartNames(cfg: FleetConfig, names: string[]): { watchdogNames: string[]; roleNames: string[]; };