mirror of https://github.com/openclaw/openclaw.git
50 lines
1.5 KiB
TypeScript
50 lines
1.5 KiB
TypeScript
import type { OpenClawConfig } from "./types.js";
|
|
|
|
export type RuntimeConfigSnapshotRefreshParams = {
|
|
sourceConfig: OpenClawConfig;
|
|
};
|
|
|
|
export type RuntimeConfigSnapshotRefreshHandler = {
|
|
refresh: (params: RuntimeConfigSnapshotRefreshParams) => boolean | Promise<boolean>;
|
|
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;
|
|
}
|