import type { OpenClawConfig } from "../config/types.openclaw.js" ;
import { resolveRuntimePluginRegistry } from "./loader.js" ;
import { getMemoryRuntime } from "./memory-state.js" ;
import {
buildPluginRuntimeLoadOptions,
resolvePluginRuntimeLoadContext,
} from "./runtime/load-context.js" ;
function ensureMemoryRuntime(cfg?: OpenClawConfig) {
const current = getMemoryRuntime();
if (current || !cfg) {
return current;
}
resolveRuntimePluginRegistry(
buildPluginRuntimeLoadOptions(resolvePluginRuntimeLoadContext({ config: cfg })),
);
return getMemoryRuntime();
}
export async function getActiveMemorySearchManager(params: {
cfg: OpenClawConfig;
agentId: string;
purpose?: "default" | "status" ;
}) {
const runtime = ensureMemoryRuntime(params.cfg);
if (!runtime) {
return { manager: null , error: "memory plugin unavailable" };
}
return await runtime.getMemorySearchManager(params);
}
export function resolveActiveMemoryBackendConfig(params: { cfg: OpenClawConfig; agentId: string }) {
return ensureMemoryRuntime(params.cfg)?.resolveMemoryBackendConfig(params) ?? null ;
}
export async function closeActiveMemorySearchManagers(cfg?: OpenClawConfig): Promise<void > {
void cfg;
const runtime = getMemoryRuntime();
await runtime?.closeAllMemorySearchManagers?.();
}
Messung V0.5 in Prozent C=100 H=100 G=100
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-10)
¤
*© Formatika GbR, Deutschland