import type { OpenClawConfig } from "./types.js"; export type RuntimeConfigSnapshotRefreshParams = { sourceConfig: OpenClawConfig; }; export type RuntimeConfigSnapshotRefreshHandler = { refresh: (params: RuntimeConfigSnapshotRefreshParams) => boolean | Promise; clearOnRefreshFailure?: () => void; }; let runtimeConfigSnapshot: OpenClawConfig | null = null; let runtimeConfigSourceSnapshot: OpenClawConfig | null = null; let runtimeConfigSnapshotRefreshHandler: RuntimeConfigSnapshotRefreshHandler | null = null; export function setRuntimeConfigSnapshot( config: OpenClawConfig, sourceConfig?: OpenClawConfig, ): void { runtimeConfigSnapshot = config; runtimeConfigSourceSnapshot = sourceConfig ?? null; } export function resetConfigRuntimeState(): void { runtimeConfigSnapshot = null; runtimeConfigSourceSnapshot = null; } export function clearRuntimeConfigSnapshot(): void { resetConfigRuntimeState(); } export function getRuntimeConfigSnapshot(): OpenClawConfig | null { return runtimeConfigSnapshot; } export function getRuntimeConfigSourceSnapshot(): OpenClawConfig | null { return runtimeConfigSourceSnapshot; } export function setRuntimeConfigSnapshotRefreshHandler( refreshHandler: RuntimeConfigSnapshotRefreshHandler | null, ): void { runtimeConfigSnapshotRefreshHandler = refreshHandler; } export function getRuntimeConfigSnapshotRefreshHandler(): RuntimeConfigSnapshotRefreshHandler | null { return runtimeConfigSnapshotRefreshHandler; }