openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
23 lines (22 loc) • 1.53 kB
JavaScript
import "./config-state-CikNNz7T.js";
//#region src/plugin-sdk/plugin-config-runtime.ts
/** Requires an already-resolved runtime config at plugin runtime boundaries. */
function requireRuntimeConfig(config, context) {
if (config) return config;
throw new Error(`${context} requires a resolved runtime config. Load and resolve config at the command or gateway boundary, then pass cfg through the runtime path.`);
}
/** Reads a plugin's object-shaped `plugins.entries[id].config` block from resolved config. */
function resolvePluginConfigObject(config, pluginId) {
const plugins = config?.plugins && typeof config.plugins === "object" && !Array.isArray(config.plugins) ? config.plugins : void 0;
const entry = (plugins?.entries && typeof plugins.entries === "object" && !Array.isArray(plugins.entries) ? plugins.entries : void 0)?.[pluginId];
if (!entry || typeof entry !== "object" || Array.isArray(entry)) return;
const pluginConfig = entry.config;
return pluginConfig && typeof pluginConfig === "object" && !Array.isArray(pluginConfig) ? pluginConfig : void 0;
}
/** Resolves live plugin config through a loader, falling back to startup config when unavailable. */
function resolveLivePluginConfigObject(runtimeConfigLoader, pluginId, startupPluginConfig) {
if (typeof runtimeConfigLoader !== "function") return startupPluginConfig;
return resolvePluginConfigObject(runtimeConfigLoader(), pluginId);
}
//#endregion
export { resolveLivePluginConfigObject as n, resolvePluginConfigObject as r, requireRuntimeConfig as t };