openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
52 lines (51 loc) • 2.6 kB
JavaScript
import { d as resolveEffectivePluginActivationState } from "./config-state-BkU1frVq.js";
import { t as isPluginEnabledByDefaultForPlatform } from "./default-enablement-CEIbpabL.js";
import { s as createPluginIdScopeSet } from "./current-plugin-metadata-snapshot-CmSX4G3W.js";
import { o as loadManifestContractSnapshot } from "./manifest-contract-eligibility-BbV7X6pV.js";
import { t as resolveBundledCompatActivationInputs } from "./activation-context-CigELUUd.js";
//#region src/plugins/bundled-manifest-contract-plugins.ts
/** Lists bundled plugin ids with a non-empty contract contribution in a manifest snapshot. */
function listBundledManifestContractPluginIds(params) {
const onlyPluginIdSet = createPluginIdScopeSet(params.onlyPluginIds);
return params.plugins.filter((plugin) => plugin.origin === "bundled" && (!onlyPluginIdSet || onlyPluginIdSet.has(plugin.id)) && (plugin.contracts?.[params.contract]?.length ?? 0) > 0).map((plugin) => plugin.id).toSorted((left, right) => left.localeCompare(right));
}
/** Applies config activation and compatibility rules before returning bundled contract owners. */
function resolveEnabledBundledManifestContractPlugins(params) {
if (params.config?.plugins?.enabled === false) return [];
let manifestRecords = params.manifestRecords;
const loadManifestRecords = () => {
manifestRecords ??= loadManifestContractSnapshot({
config: params.config,
workspaceDir: params.workspaceDir,
env: params.env
}).plugins;
return manifestRecords;
};
const activation = resolveBundledCompatActivationInputs({
rawConfig: params.config,
env: params.env,
workspaceDir: params.workspaceDir,
onlyPluginIds: params.onlyPluginIds,
applyAutoEnable: true,
resolveBundledPluginIds: (compatParams) => listBundledManifestContractPluginIds({
plugins: loadManifestRecords(),
contract: params.contract,
onlyPluginIds: compatParams.onlyPluginIds
})
});
const onlyPluginIdSet = createPluginIdScopeSet(params.onlyPluginIds);
return loadManifestRecords().filter((plugin) => {
if (plugin.origin !== "bundled" || onlyPluginIdSet && !onlyPluginIdSet.has(plugin.id) || (plugin.contracts?.[params.contract]?.length ?? 0) === 0) return false;
return resolveEffectivePluginActivationState({
id: plugin.id,
origin: plugin.origin,
channelIds: plugin.channels,
config: activation.normalized,
rootConfig: activation.config,
enabledByDefault: isPluginEnabledByDefaultForPlatform(plugin),
activationSource: activation.activationSource
}).enabled;
});
}
//#endregion
export { resolveEnabledBundledManifestContractPlugins as t };