openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
26 lines (25 loc) • 1.23 kB
JavaScript
import { d as resolveEffectivePluginActivationState } from "./config-state-BkU1frVq.js";
import { n as hasExplicitChannelConfig } from "./channel-presence-policy-_eDSlojg.js";
//#region src/plugins/channel-startup-policy.ts
/** Shares configured-channel eligibility between startup and manifest schema selection. */
function canStartConfiguredChannelPlugin(params) {
const { id, origin, channelIds, config, pluginsConfig, activationSource } = params;
if (!pluginsConfig.enabled || pluginsConfig.deny.includes(id) || pluginsConfig.entries[id]?.enabled === false) return false;
const explicitBundledChannelConfig = origin === "bundled" && (channelIds ?? []).some((channelId) => hasExplicitChannelConfig({
config: activationSource.rootConfig ?? config,
channelId
}));
if (pluginsConfig.allow.length > 0 && !pluginsConfig.allow.includes(id) && !explicitBundledChannelConfig) return false;
if (origin === "bundled") return true;
const activationState = resolveEffectivePluginActivationState({
id,
origin,
channelIds,
config: pluginsConfig,
rootConfig: config,
activationSource
});
return activationState.enabled && activationState.explicitlyEnabled;
}
//#endregion
export { canStartConfiguredChannelPlugin as t };