openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
42 lines (41 loc) • 1.92 kB
JavaScript
import { o as asRecord } from "./record-coerce-TIsquoVR.mjs";
import { t as formatErrorMessage } from "./errors-BSdPMFao.mjs";
import { r as assertConfigWriteAllowedInCurrentMode } from "./config-write-guard-BXUoQ8wS.mjs";
import { t as ManagedPluginLifecycleError } from "./management-lifecycle-error-ySeX1uI2.mjs";
import { c as readConfigFileSnapshot, u as readConfigFileSnapshotForWrite } from "./io.runtime-FunTy0y1.mjs";
import "./config-B-SAEPyK.mjs";
import { i as selectInstallMutationWriteOptions, r as resolveInstallConfigMutationPreflights } from "./install-config-mutation-CAMgpehu.mjs";
//#region src/plugins/management-config.ts
function readValidSourceConfig(snapshot) {
if (!snapshot.valid) throw new ManagedPluginLifecycleError("Config invalid; run `openclaw doctor --fix` before managing plugins.");
return snapshot.sourceConfig;
}
async function readPluginRuntimeConfig() {
return readValidSourceConfig(await readConfigFileSnapshot({
observe: false,
isolateEnv: true
}));
}
async function readPluginMutationSnapshot(env, beforePersistentApply) {
try {
assertConfigWriteAllowedInCurrentMode({ env });
} catch (error) {
throw new ManagedPluginLifecycleError(formatErrorMessage(error), { cause: error });
}
const { snapshot, writeOptions } = await readConfigFileSnapshotForWrite();
const config = readValidSourceConfig(snapshot);
const mutationWriteOptions = selectInstallMutationWriteOptions(writeOptions, beforePersistentApply);
const { pluginMutation } = resolveInstallConfigMutationPreflights({
parsed: asRecord(snapshot.parsed),
snapshotPath: snapshot.path,
writeOptions: mutationWriteOptions
});
if (pluginMutation.mode === "blocked") throw new ManagedPluginLifecycleError(pluginMutation.reason);
return {
config,
baseHash: snapshot.hash,
writeOptions: mutationWriteOptions
};
}
//#endregion
export { readPluginRuntimeConfig as n, readPluginMutationSnapshot as t };