UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

194 lines (193 loc) 7.1 kB
import { n as createPluginActivationSource, s as normalizePluginsConfig } from "./config-state-CikNNz7T.js"; import { r as getCurrentPluginMetadataSnapshot } from "./current-plugin-metadata-snapshot-CfA_n2Nc.js"; import { n as withBundledPluginVitestCompat, t as withBundledPluginEnablementCompat } from "./bundled-compat-DLBZcHgM.js"; import { t as applyPluginAutoEnable } from "./plugin-auto-enable-pAtqig-B.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 applyPluginCompatibilityOverrides(params) { const enablementCompat = params.compat?.enablementPluginIds?.length ? withBundledPluginEnablementCompat({ config: params.config, pluginIds: params.compat.enablementPluginIds }) : params.config; return params.compat?.vitestPluginIds?.length ? withBundledPluginVitestCompat({ config: enablementCompat, pluginIds: params.compat.vitestPluginIds, env: params.env }) : enablementCompat; } function shouldResolveBundledCompatPluginIds(params) { return params.compatMode.enablement === "always" || params.compatMode.vitest === true; } function createBundledPluginCompatConfig(params) { return { enablementPluginIds: params.compatMode.enablement === "always" ? params.compatPluginIds : void 0, vitestPluginIds: params.compatMode.vitest ? params.compatPluginIds : void 0 }; } function applyPluginAutoEnableForActivation(params) { const currentSnapshot = getCurrentPluginMetadataSnapshot({ config: params.config, env: params.env, workspaceDir: params.workspaceDir, allowWorkspaceScopedSnapshot: true }); const defaultDiscoverySnapshot = normalizePluginsConfig(params.config.plugins).loadPaths.length === 0 ? getCurrentPluginMetadataSnapshot({ env: params.env, workspaceDir: params.workspaceDir, allowWorkspaceScopedSnapshot: true, requireDefaultDiscoveryContext: true }) : void 0; const currentManifestRegistry = currentSnapshot?.manifestRegistry ?? defaultDiscoverySnapshot?.manifestRegistry; return applyPluginAutoEnable({ config: params.config, env: params.env, manifestRegistry: currentManifestRegistry, discovery: params.discovery }); } function resolvePluginActivationSnapshot(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 }); resolvedConfig = autoEnabled.config; autoEnabledReasons = autoEnabled.autoEnabledReasons; } return { rawConfig, config: resolvedConfig, normalized: normalizePluginsConfig(resolvedConfig?.plugins), activationSourceConfig: rawConfig, activationSource: createPluginActivationSource({ config: rawConfig }), autoEnabledReasons: autoEnabledReasons ?? {} }; } function resolvePluginActivationInputs(params) { const env = params.env ?? process.env; const snapshot = resolvePluginActivationSnapshot({ rawConfig: params.rawConfig, resolvedConfig: params.resolvedConfig, autoEnabledReasons: params.autoEnabledReasons, env, workspaceDir: params.workspaceDir, applyAutoEnable: params.applyAutoEnable, discovery: params.discovery }); const config = applyPluginCompatibilityOverrides({ config: snapshot.config, compat: params.compat, env }); return { rawConfig: snapshot.rawConfig, config, normalized: normalizePluginsConfig(config?.plugins), activationSourceConfig: snapshot.activationSourceConfig, activationSource: snapshot.activationSource, autoEnabledReasons: snapshot.autoEnabledReasons }; } function resolveBundledPluginCompatibleActivationInputs(params) { const snapshot = resolvePluginActivationSnapshot({ rawConfig: params.rawConfig, resolvedConfig: params.resolvedConfig, autoEnabledReasons: params.autoEnabledReasons, env: params.env, workspaceDir: params.workspaceDir, applyAutoEnable: params.applyAutoEnable, discovery: params.discovery }); const compatPluginIds = shouldResolveBundledCompatPluginIds({ compatMode: params.compatMode }) ? params.resolveCompatPluginIds({ config: snapshot.config, workspaceDir: params.workspaceDir, env: params.env, onlyPluginIds: params.onlyPluginIds }) : []; return { ...resolvePluginActivationInputs({ rawConfig: snapshot.rawConfig, resolvedConfig: snapshot.config, autoEnabledReasons: snapshot.autoEnabledReasons, env: params.env, workspaceDir: params.workspaceDir, compat: createBundledPluginCompatConfig({ compatMode: params.compatMode, compatPluginIds }), discovery: params.discovery }), compatPluginIds }; } function resolveBundledPluginCompatibleLoadValues(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 }); resolvedConfig = autoEnabled.config; autoEnabledReasons = autoEnabled.autoEnabledReasons; } const compatPluginIds = shouldResolveBundledCompatPluginIds({ compatMode: params.compatMode }) ? params.resolveCompatPluginIds({ config: resolvedConfig, workspaceDir: params.workspaceDir, env, onlyPluginIds: params.onlyPluginIds }) : []; return { rawConfig, config: applyPluginCompatibilityOverrides({ config: resolvedConfig, compat: createBundledPluginCompatConfig({ compatMode: params.compatMode, compatPluginIds }), env }), activationSourceConfig: rawConfig, autoEnabledReasons, compatPluginIds }; } //#endregion export { resolveBundledPluginCompatibleLoadValues as n, withActivatedPluginIds as r, resolveBundledPluginCompatibleActivationInputs as t };