import { listAgentIds } from "../agents/agent-scope.js"; import { resolveMemorySearchConfig } from "../agents/memory-search.js"; import type { OpenClawConfig } from "../config/config.js"; import { getActiveMemorySearchManager, resolveActiveMemoryBackendConfig, } from "../plugins/memory-runtime.js"; export async function startGatewayMemoryBackend(params: { cfg: OpenClawConfig; log: { info?: (msg: string) => void; warn: (msg: string) => void }; }): Promise { const agentIds = listAgentIds(params.cfg); for (const agentId of agentIds) { if (!resolveMemorySearchConfig(params.cfg, agentId)) { continue; } const resolved = resolveActiveMemoryBackendConfig({ cfg: params.cfg, agentId }); if (!resolved) { continue; } if (resolved.backend !== "qmd" || !resolved.qmd) { continue; } const { manager, error } = await getActiveMemorySearchManager({ cfg: params.cfg, agentId }); if (!manager) { params.log.warn( `qmd memory startup initialization failed for agent "${agentId}": ${error ?? "unknown error"}`, ); continue; } params.log.info?.(`qmd memory startup initialization armed for agent "${agentId}"`); } }