import type { OrchestratorConfig } from "./config"; import type { ManagedAgentReport, RelayClient } from "./relay"; import { recoverExistingSessions } from "./spawn"; interface ManagedAgentControl { setManagedAgents(agents: ManagedAgentReport[]): void; } export async function recoverManagedAgents( config: OrchestratorConfig, control: ManagedAgentControl, relay: Pick, recover: (config: OrchestratorConfig) => Promise = recoverExistingSessions, ): Promise { const recovered = await recover(config); if (recovered.length > 0) { console.error(`[orchestrator] Recovered ${recovered.length} existing session(s)`); } control.setManagedAgents(recovered); await relay.updateManagedAgents(recovered); return recovered; }