openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
113 lines (112 loc) • 4.41 kB
JavaScript
import { h as withBundledPluginEnablementCompat } from "./installed-plugin-index-wrDsjyMD.js";
import { l as normalizePluginsConfig, n as createPluginActivationSource } from "./config-state-BkU1frVq.js";
import { n as getCurrentPluginMetadataSnapshot } from "./current-plugin-metadata-snapshot-CmSX4G3W.js";
import { t as applyPluginAutoEnable } from "./plugin-auto-enable-Tv_C18cS.js";
//#region src/plugins/activation-context.ts
function withActivatedPluginIds(params) {
if (params.pluginIds.length === 0) return params.config;
const originalAllow = params.config?.plugins?.allow ?? [];
const originalAllowSet = originalAllow.length > 0 ? new Set(originalAllow) : void 0;
const allow = new Set(originalAllow);
const entries = { ...params.config?.plugins?.entries };
for (const pluginId of params.pluginIds) {
const normalized = pluginId.trim();
if (!normalized) continue;
if (originalAllowSet && !originalAllowSet.has(normalized)) continue;
allow.add(normalized);
const existingEntry = entries[normalized];
entries[normalized] = {
...existingEntry,
enabled: existingEntry?.enabled !== false || params.overrideExplicitDisable === true
};
}
const forcePluginsEnabled = params.overrideGlobalDisable === true && params.config?.plugins?.enabled === false;
return {
...params.config,
plugins: {
...params.config?.plugins,
...forcePluginsEnabled ? { enabled: true } : {},
...allow.size > 0 ? { allow: [...allow] } : {},
entries
}
};
}
function applyPluginAutoEnableForActivation(params) {
const currentSnapshot = params.manifestRegistry ? void 0 : getCurrentPluginMetadataSnapshot({
config: params.config,
env: params.env,
workspaceDir: params.workspaceDir,
allowWorkspaceScopedSnapshot: true
});
const defaultDiscoverySnapshot = !params.manifestRegistry && normalizePluginsConfig(params.config.plugins).loadPaths.length === 0 ? getCurrentPluginMetadataSnapshot({
env: params.env,
workspaceDir: params.workspaceDir,
allowWorkspaceScopedSnapshot: true,
requireDefaultDiscoveryContext: true
}) : void 0;
const currentManifestRegistry = params.manifestRegistry ?? currentSnapshot?.manifestRegistry ?? defaultDiscoverySnapshot?.manifestRegistry;
return applyPluginAutoEnable({
config: params.config,
env: params.env,
manifestRegistry: currentManifestRegistry,
discovery: params.discovery ?? currentSnapshot?.discovery ?? defaultDiscoverySnapshot?.discovery
});
}
function resolvePluginActivationInputs(params) {
const env = params.env ?? process.env;
const rawConfig = params.rawConfig ?? params.resolvedConfig;
let resolvedConfig = params.resolvedConfig ?? params.rawConfig;
let autoEnabledReasons = params.autoEnabledReasons;
if (params.applyAutoEnable && rawConfig !== void 0) {
const autoEnabled = applyPluginAutoEnableForActivation({
config: rawConfig,
env,
workspaceDir: params.workspaceDir,
discovery: params.discovery,
manifestRegistry: params.manifestRegistry
});
resolvedConfig = autoEnabled.config;
autoEnabledReasons = autoEnabled.autoEnabledReasons;
}
return {
rawConfig,
config: resolvedConfig,
normalized: normalizePluginsConfig(resolvedConfig?.plugins),
activationSourceConfig: rawConfig,
activationSource: createPluginActivationSource({ config: rawConfig }),
autoEnabledReasons: autoEnabledReasons ?? {}
};
}
function resolveBundledCompatActivationInputs(params) {
const env = params.env ?? process.env;
const snapshot = resolvePluginActivationInputs({
rawConfig: params.rawConfig,
resolvedConfig: params.resolvedConfig,
autoEnabledReasons: params.autoEnabledReasons,
env,
workspaceDir: params.workspaceDir,
applyAutoEnable: params.applyAutoEnable,
discovery: params.discovery,
manifestRegistry: params.manifestRegistry
});
const bundledPluginIds = params.resolveBundledPluginIds({
config: snapshot.config,
workspaceDir: params.workspaceDir,
env,
onlyPluginIds: params.onlyPluginIds,
...params.manifestRegistry ? { manifestRegistry: params.manifestRegistry } : {}
});
const config = withBundledPluginEnablementCompat({
config: snapshot.config,
pluginIds: bundledPluginIds,
env,
...params.activation ? { activation: params.activation } : {}
});
return {
...snapshot,
config,
normalized: normalizePluginsConfig(config?.plugins)
};
}
//#endregion
export { withActivatedPluginIds as n, resolveBundledCompatActivationInputs as t };