UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

95 lines (94 loc) 4.77 kB
import { c as normalizeOptionalLowercaseString } from "./string-coerce-CIXf7egm.js"; import { l as normalizePluginsConfig } from "./config-state-BkU1frVq.js"; import { l as hasNonEmptyPluginIdScope } from "./current-plugin-metadata-snapshot-CmSX4G3W.js"; import { l as resolveConfiguredChannelPluginIds } from "./channel-presence-policy-_eDSlojg.js"; import { C as collectConfiguredMemoryEmbeddingProviderIds } from "./gateway-startup-plugin-config-Bq9ZdScF.js"; import { n as withActivatedPluginIds } from "./activation-context-CigELUUd.js"; import { o as loadOpenClawPlugins } from "./loader-DPiOPJjR.js"; import { r as resolveChannelPluginIds } from "./gateway-startup-plugin-ids-D2iVoeEm.js"; import { t as createInstalledPluginIndexScopeLookup } from "./installed-plugin-index-scope-lookup-zFavZQ1h.js"; import "./channel-plugin-ids-DIyH-LxI.js"; import { n as buildPluginRuntimeLoadOptionsFromValues } from "./load-context-BdeWeJHL.js"; import { t as resolvePluginRuntimeLoadContext } from "./load-context.resolve-O967gh1f.js"; import { t as resolveEffectivePluginIds } from "./effective-plugin-ids-C8jx2RTW.js"; //#region src/plugins/runtime/runtime-registry-loader.ts const CORE_SANDBOX_BACKEND_IDS = /* @__PURE__ */ new Set([ "docker", "podman", "ssh" ]); function resolveMemoryPluginIds(context) { const configuredProviderIds = [...collectConfiguredMemoryEmbeddingProviderIds(context.activationSourceConfig)]; const pluginIds = /* @__PURE__ */ new Set(); if (context.metadataSnapshot) createInstalledPluginIndexScopeLookup(context.metadataSnapshot.index).addProviderContributionOwners(pluginIds, configuredProviderIds); else for (const providerId of configuredProviderIds) pluginIds.add(providerId); const memoryPluginId = normalizePluginsConfig(context.config.plugins).slots.memory?.trim(); if (memoryPluginId) pluginIds.add(memoryPluginId); return [...pluginIds].toSorted(); } function resolveSandboxBackendPluginIds(context, persistedBackendIds = []) { if (!context.metadataSnapshot) return []; const agents = context.activationSourceConfig.agents; const configuredBackendIds = [ agents?.defaults?.sandbox?.backend, ...Object.values(agents?.entries ?? {}).map((agent) => agent.sandbox?.backend), ...(agents?.list ?? []).map((agent) => agent.sandbox?.backend), ...persistedBackendIds ]; const lookup = createInstalledPluginIndexScopeLookup(context.metadataSnapshot.index); const pluginIds = /* @__PURE__ */ new Set(); for (const backendId of configuredBackendIds) { const normalizedBackendId = normalizeOptionalLowercaseString(backendId); if (!normalizedBackendId || CORE_SANDBOX_BACKEND_IDS.has(normalizedBackendId) || !lookup.hasInstalledPluginIds([normalizedBackendId])) continue; pluginIds.add(lookup.normalizePluginId(normalizedBackendId)); } return [...pluginIds].toSorted(); } function resolveScopePluginIds(params) { if (params.scope === "configured-channels") return resolveConfiguredChannelPluginIds({ config: params.context.config, activationSourceConfig: params.context.activationSourceConfig, workspaceDir: params.context.workspaceDir, env: params.context.env }); if (params.scope === "channels") return resolveChannelPluginIds({ config: params.context.config, workspaceDir: params.context.workspaceDir, env: params.context.env }); if (params.scope === "memory") return resolveMemoryPluginIds(params.context); if (params.scope === "sandbox-backends") return resolveSandboxBackendPluginIds(params.context, params.persistedSandboxBackendIds); return resolveEffectivePluginIds({ config: params.context.rawConfig, workspaceDir: params.context.workspaceDir, env: params.context.env }); } function ensurePluginRegistryLoaded(options) { const scope = options?.scope ?? "all"; const context = resolvePluginRuntimeLoadContext(options); const pluginIds = resolveScopePluginIds({ scope, context, persistedSandboxBackendIds: options?.persistedSandboxBackendIds }); const activateConfigured = scope === "configured-channels" && pluginIds.length > 0; const config = activateConfigured ? withActivatedPluginIds({ config: context.config, pluginIds }) ?? context.config : context.config; const activationSourceConfig = activateConfigured ? withActivatedPluginIds({ config: context.activationSourceConfig, pluginIds }) ?? context.activationSourceConfig : context.activationSourceConfig; loadOpenClawPlugins(buildPluginRuntimeLoadOptionsFromValues({ ...context, config, activationSourceConfig }, { throwOnLoadError: true, ...scope === "configured-channels" || scope === "memory" || scope === "sandbox-backends" || scope === "all" || hasNonEmptyPluginIdScope(pluginIds) ? { onlyPluginIds: pluginIds } : {} })); } //#endregion export { ensurePluginRegistryLoaded };