mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-12 09:41:11 +00:00
66 lines
2.3 KiB
TypeScript
66 lines
2.3 KiB
TypeScript
import { normalizeOptionalString } from "../shared/string-coerce.js";
|
|
|
|
export const DEFAULT_PLUGIN_DISCOVERY_CACHE_MS = 1000;
|
|
export const DEFAULT_PLUGIN_MANIFEST_CACHE_MS = 1000;
|
|
|
|
export function shouldUsePluginSnapshotCache(env: NodeJS.ProcessEnv): boolean {
|
|
if (normalizeOptionalString(env.OPENCLAW_DISABLE_PLUGIN_DISCOVERY_CACHE)) {
|
|
return false;
|
|
}
|
|
if (normalizeOptionalString(env.OPENCLAW_DISABLE_PLUGIN_MANIFEST_CACHE)) {
|
|
return false;
|
|
}
|
|
const discoveryCacheMs = normalizeOptionalString(env.OPENCLAW_PLUGIN_DISCOVERY_CACHE_MS);
|
|
if (discoveryCacheMs === "0") {
|
|
return false;
|
|
}
|
|
const manifestCacheMs = normalizeOptionalString(env.OPENCLAW_PLUGIN_MANIFEST_CACHE_MS);
|
|
if (manifestCacheMs === "0") {
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
export function resolvePluginCacheMs(rawValue: string | undefined, defaultMs: number): number {
|
|
const raw = normalizeOptionalString(rawValue);
|
|
if (raw === "" || raw === "0") {
|
|
return 0;
|
|
}
|
|
if (!raw) {
|
|
return defaultMs;
|
|
}
|
|
const parsed = Number.parseInt(raw, 10);
|
|
if (!Number.isFinite(parsed)) {
|
|
return defaultMs;
|
|
}
|
|
return Math.max(0, parsed);
|
|
}
|
|
|
|
export function resolvePluginSnapshotCacheTtlMs(env: NodeJS.ProcessEnv): number {
|
|
const discoveryCacheMs = resolvePluginCacheMs(
|
|
env.OPENCLAW_PLUGIN_DISCOVERY_CACHE_MS,
|
|
DEFAULT_PLUGIN_DISCOVERY_CACHE_MS,
|
|
);
|
|
const manifestCacheMs = resolvePluginCacheMs(
|
|
env.OPENCLAW_PLUGIN_MANIFEST_CACHE_MS,
|
|
DEFAULT_PLUGIN_MANIFEST_CACHE_MS,
|
|
);
|
|
return Math.min(discoveryCacheMs, manifestCacheMs);
|
|
}
|
|
|
|
export function buildPluginSnapshotCacheEnvKey(env: NodeJS.ProcessEnv): string {
|
|
return JSON.stringify({
|
|
OPENCLAW_BUNDLED_PLUGINS_DIR: env.OPENCLAW_BUNDLED_PLUGINS_DIR ?? "",
|
|
OPENCLAW_DISABLE_PLUGIN_DISCOVERY_CACHE: env.OPENCLAW_DISABLE_PLUGIN_DISCOVERY_CACHE ?? "",
|
|
OPENCLAW_DISABLE_PLUGIN_MANIFEST_CACHE: env.OPENCLAW_DISABLE_PLUGIN_MANIFEST_CACHE ?? "",
|
|
OPENCLAW_PLUGIN_DISCOVERY_CACHE_MS: env.OPENCLAW_PLUGIN_DISCOVERY_CACHE_MS ?? "",
|
|
OPENCLAW_PLUGIN_MANIFEST_CACHE_MS: env.OPENCLAW_PLUGIN_MANIFEST_CACHE_MS ?? "",
|
|
OPENCLAW_HOME: env.OPENCLAW_HOME ?? "",
|
|
OPENCLAW_STATE_DIR: env.OPENCLAW_STATE_DIR ?? "",
|
|
OPENCLAW_CONFIG_PATH: env.OPENCLAW_CONFIG_PATH ?? "",
|
|
HOME: env.HOME ?? "",
|
|
USERPROFILE: env.USERPROFILE ?? "",
|
|
VITEST: env.VITEST ?? "",
|
|
});
|
|
}
|