import { listAgentIds, resolveAgentWorkspaceDir } from "../../../agents/agent-scope.js"; import { createDefaultDeps } from "../../../cli/deps.js"; import { runBootOnce } from "../../../gateway/boot.js"; import { createSubsystemLogger } from "../../../logging/subsystem.js"; import type { HookHandler } from "../../hooks.js"; import { isGatewayStartupEvent } from "../../internal-hooks.js"; const log = createSubsystemLogger("hooks/boot-md"); const runBootChecklist: HookHandler = async (event) => { if (!isGatewayStartupEvent(event)) { return; } if (!event.context.cfg) { return; } const cfg = event.context.cfg; const deps = event.context.deps ?? createDefaultDeps(); const agentIds = listAgentIds(cfg); for (const agentId of agentIds) { const workspaceDir = resolveAgentWorkspaceDir(cfg, agentId); const result = await runBootOnce({ cfg, deps, workspaceDir, agentId }); if (result.status === "failed") { log.warn("boot-md failed for agent startup run", { agentId, workspaceDir, reason: result.reason, }); continue; } if (result.status === "skipped") { log.debug("boot-md skipped for agent startup run", { agentId, workspaceDir, reason: result.reason, }); } } }; export default runBootChecklist;