UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

37 lines (36 loc) 2.04 kB
import { c as normalizeOptionalLowercaseString } from "./string-coerce-CIXf7egm.js"; import { a as getPluginRuntimeGatewayRequestScope } from "./gateway-request-scope-BCMYlsDI.js"; import { i as listChannelPlugins, n as getLoadedChannelPlugin, t as getChannelPlugin } from "./registry-Cz6cv4VC.js"; import "./plugins-Cozj1Enf.js"; //#region src/infra/outbound/runtime-visible-channels.ts /** Finds a channel plugin in a registry by id or channel alias. */ function findChannelPluginInRegistry(registry, channel) { if (!registry) return; const normalizedChannel = normalizeOptionalLowercaseString(channel); if (!normalizedChannel) return; for (const entry of registry.channels) { const plugin = entry?.plugin; if (normalizeOptionalLowercaseString(plugin?.id) === normalizedChannel || plugin?.meta?.aliases?.some((alias) => normalizeOptionalLowercaseString(alias) === normalizedChannel)) return plugin; } } /** Resolves a channel plugin visible to this process, including registry handles in scope. */ function getRuntimeVisibleChannelPlugin(channel) { return findChannelPluginInRegistry(getPluginRuntimeGatewayRequestScope()?.pluginRegistry, channel) ?? getLoadedChannelPlugin(channel) ?? getChannelPlugin(channel); } /** Lists channel plugins visible to this process, including registry handles in scope. */ function listRuntimeVisibleChannelPlugins() { const scopedRegistry = getPluginRuntimeGatewayRequestScope()?.pluginRegistry; const plugins = listChannelPlugins(); if (!scopedRegistry) return plugins; const scopedPluginIds = /* @__PURE__ */ new Set(); const scopedPlugins = []; for (const entry of scopedRegistry.channels) { const plugin = entry?.plugin; if (!plugin?.id || scopedPluginIds.has(plugin.id)) continue; scopedPluginIds.add(plugin.id); scopedPlugins.push(plugin); } return [...plugins.filter((plugin) => !scopedPluginIds.has(plugin.id)), ...scopedPlugins]; } //#endregion export { getRuntimeVisibleChannelPlugin as n, listRuntimeVisibleChannelPlugins as r, findChannelPluginInRegistry as t };