UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

45 lines (44 loc) 2.5 kB
import { c as isRecord } from "./record-coerce-DItp3I4t.js"; import { c as normalizeOptionalLowercaseString } from "./string-coerce-CIXf7egm.js"; import "./utils-P__uGsPB.js"; import { t as isChannelConfigMetadataKey } from "./config-metadata-aX1D2IMg.js"; import { i as listPotentialConfiguredChannelPresenceSignals, n as listExplicitlyDisabledChannelIdsForConfig, t as hasMeaningfulChannelConfig } from "./config-presence-Cd62ZvYR.js"; //#region src/commands/doctor/shared/configured-channel-ids.ts function includesConfigEntry(value, policy) { if (policy === "raw") return true; if (policy === "enabled") return !isRecord(value) || value.enabled !== false; const meaningful = hasMeaningfulChannelConfig(value); return policy === "meaningful" ? meaningful : isRecord(value) && value.enabled === true || meaningful; } /** Lists configured channel ids while leaving caller-specific activation policy at the caller. */ function listDoctorConfiguredChannelIds(config, options) { const root = isRecord(config) ? config : {}; const cfg = root; if (options.skipWhenPluginsDisabled && isRecord(root.plugins) && root.plugins.enabled === false) return []; const disabledIds = options.excludeExplicitlyDisabled ? new Set(listExplicitlyDisabledChannelIdsForConfig(cfg)) : null; const ids = /* @__PURE__ */ new Set(); const add = (rawChannelId) => { const channelId = rawChannelId.trim(); const normalized = normalizeOptionalLowercaseString(channelId); if (!channelId || isChannelConfigMetadataKey(channelId) || normalized && disabledIds?.has(normalized)) return; ids.add(channelId); }; const channels = isRecord(root.channels) ? root.channels : null; if (channels) { for (const [channelId, entry] of Object.entries(channels)) if (includesConfigEntry(entry, options.configEntryPolicy)) add(channelId); } if (options.env) for (const signal of listPotentialConfiguredChannelPresenceSignals(cfg, options.env, { channelIds: options.candidateChannelIds, includePersistedAuthState: false })) { if (signal.source !== "env") continue; const channelId = options.mapEnvironmentChannelId?.(signal.channelId) ?? signal.channelId; if (options.environmentChannelIsConfigured?.(channelId) === false) continue; add(channelId); } const result = [...ids]; if (options.sort === "locale") return result.toSorted((left, right) => left.localeCompare(right)); return options.sort === "codepoint" ? result.toSorted() : result; } //#endregion export { listDoctorConfiguredChannelIds as t };