UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

45 lines (44 loc) 2.09 kB
import { n as normalizeAccountId } from "./account-id-Df9e41E6.js"; import { i as createResolvedDirectoryEntriesLister } from "./directory-config-helpers-DEDTHx2P.js"; import { a as mergeDiscordAccountConfig, c as resolveDiscordAccountAllowFrom, o as resolveDefaultDiscordAccountId } from "./accounts-BI_6uJlY.js"; //#region extensions/discord/src/directory-config.ts function resolveDiscordDirectoryConfigAccount(cfg, accountId) { const resolvedAccountId = normalizeAccountId(accountId ?? resolveDefaultDiscordAccountId(cfg)); const config = mergeDiscordAccountConfig(cfg, resolvedAccountId); return { accountId: resolvedAccountId, config, allowFrom: resolveDiscordAccountAllowFrom({ cfg, accountId: resolvedAccountId }) ?? [], dm: config.dm }; } const listDiscordDirectoryPeersFromConfig = createResolvedDirectoryEntriesLister({ kind: "user", resolveAccount: (cfg, accountId) => resolveDiscordDirectoryConfigAccount(cfg, accountId), resolveSources: (account) => { const guildUsers = Object.values(account.config.guilds ?? {}).flatMap((guild) => (guild.users ?? []).concat(Object.values(guild.channels ?? {}).flatMap((channel) => channel.users ?? []))); return [ account.allowFrom, Object.keys(account.config.dms ?? {}), guildUsers ]; }, normalizeId: (raw) => { const cleaned = (raw.match(/^<@!?(\d+)>$/)?.[1] ?? raw).replace(/^(discord|user):/i, "").trim(); return /^\d+$/.test(cleaned) ? `user:${cleaned}` : null; } }); const listDiscordDirectoryGroupsFromConfig = createResolvedDirectoryEntriesLister({ kind: "group", resolveAccount: (cfg, accountId) => resolveDiscordDirectoryConfigAccount(cfg, accountId), resolveSources: (account) => Object.values(account.config.guilds ?? {}).map((guild) => Object.keys(guild.channels ?? {})), normalizeId: (raw) => { const cleaned = (raw.match(/^<#(\d+)>$/)?.[1] ?? raw).replace(/^(discord|channel|group):/i, "").trim(); return /^\d+$/.test(cleaned) ? `channel:${cleaned}` : null; } }); //#endregion export { listDiscordDirectoryPeersFromConfig as n, listDiscordDirectoryGroupsFromConfig as t };