UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

50 lines (49 loc) 2.02 kB
import { _ as uniqueStrings } from "./string-normalization-WNUDCpXX.js"; import { i as loadPluginMetadataSnapshot } from "./plugin-metadata-snapshot-Ctk9Oarq.js"; //#region src/secrets/channel-env-vars.ts /** Discovers plugin-declared environment variable names for channel credential setup. */ function appendUniqueEnvVarCandidates(target, channelId, keys) { const normalizedChannelId = channelId.trim(); if (!normalizedChannelId || keys.length === 0) return; const bucket = target[normalizedChannelId] ??= []; const seen = new Set(bucket); for (const key of keys) { const normalizedKey = key.trim(); if (!normalizedKey || seen.has(normalizedKey)) continue; seen.add(normalizedKey); bucket.push(normalizedKey); } } /** * Resolves plugin-declared channel environment variable names keyed by channel id. * The result is deterministic so env-shell docs and prompt snapshots stay stable. */ function resolveChannelEnvVars(params) { const snapshot = loadPluginMetadataSnapshot({ config: params?.config ?? {}, workspaceDir: params?.workspaceDir, env: params?.env ?? process.env }); const candidates = {}; for (const plugin of snapshot.plugins) { if (!plugin.channelEnvVars) continue; for (const [channelId, keys] of Object.entries(plugin.channelEnvVars).toSorted(([left], [right]) => left.localeCompare(right))) appendUniqueEnvVarCandidates(candidates, channelId, keys); } return candidates; } /** * Returns the declared env var names for one channel id. */ function getChannelEnvVars(channelId, params) { const channelEnvVars = resolveChannelEnvVars(params); const envVars = Object.hasOwn(channelEnvVars, channelId) ? channelEnvVars[channelId] : void 0; return Array.isArray(envVars) ? [...envVars] : []; } /** * Lists every known channel env var name across installed plugin metadata. */ function listKnownChannelEnvVarNames(params) { return uniqueStrings(Object.values(resolveChannelEnvVars(params)).flat()); } //#endregion export { listKnownChannelEnvVarNames as n, getChannelEnvVars as t };