UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

123 lines (122 loc) 4.76 kB
import { r as asNullableRecord } from "./record-coerce-DItp3I4t.js"; import "./session-key-BnWWjqNc.js"; import "./account-id-CETVCrTz.js"; import { a as resolveChannelDmAllowFrom, o as resolveChannelDmPolicy } from "./dm-access-DF6nqjVk.js"; import "./setup-helpers-DpWE8O4k.js"; import { N as splitSetupEntries, O as resolveSetupAccountId, b as patchChannelConfigForAccount, t as addWildcardAllowFrom, w as promptResolvedAllowFrom } from "./setup-wizard-helpers-DYc3t3kF.js"; import "./setup-credential-7-0D5aTk.js"; import "./clack-prompter-BSpWH_ak.js"; //#region src/channels/plugins/setup-wizard-legacy-compat.ts function resolveLegacyChannelConfig(cfg, channel) { return asNullableRecord(cfg.channels?.[channel]) ?? {}; } function resolveLegacyChannelAccount(cfg, channel, accountId) { const channelConfig = resolveLegacyChannelConfig(cfg, channel); return asNullableRecord(asNullableRecord(channelConfig.accounts)?.[accountId]); } function patchLegacyChannelConfig(params) { const channelConfig = resolveLegacyChannelConfig(params.cfg, params.channel); const dmConfig = asNullableRecord(channelConfig.dm) ?? {}; return { ...params.cfg, channels: { ...params.cfg.channels, [params.channel]: { ...channelConfig, ...params.patch, dm: { ...dmConfig, enabled: typeof dmConfig.enabled === "boolean" ? dmConfig.enabled : true } } } }; } function setLegacyChannelDmPolicy(params) { const channelConfig = resolveLegacyChannelConfig(params.cfg, params.channel); const existingAllowFrom = resolveChannelDmAllowFrom({ account: channelConfig }); const allowFrom = params.dmPolicy === "open" ? addWildcardAllowFrom(existingAllowFrom) : void 0; return patchLegacyChannelConfig({ cfg: params.cfg, channel: params.channel, patch: { dmPolicy: params.dmPolicy, ...allowFrom ? { allowFrom } : {} } }); } /** @deprecated Compatibility for plugins published before setup policy became plugin-owned. */ function createLegacyCompatChannelDmPolicy(params) { return { label: params.label, channel: params.channel, policyKey: `channels.${params.channel}.dmPolicy`, allowFromKey: `channels.${params.channel}.allowFrom`, resolveConfigKeys: (_cfg, accountId) => accountId && accountId !== "default" ? { policyKey: `channels.${params.channel}.accounts.${accountId}.dmPolicy`, allowFromKey: `channels.${params.channel}.accounts.${accountId}.allowFrom` } : { policyKey: `channels.${params.channel}.dmPolicy`, allowFromKey: `channels.${params.channel}.allowFrom` }, getCurrent: (cfg, accountId) => { const channelConfig = resolveLegacyChannelConfig(cfg, params.channel); const accountConfig = accountId && accountId !== "default" ? resolveLegacyChannelAccount(cfg, params.channel, accountId) : void 0; return resolveChannelDmPolicy({ account: accountConfig, parent: channelConfig, defaultPolicy: "pairing" }) ?? "pairing"; }, setPolicy: (cfg, policy, accountId) => accountId && accountId !== "default" ? patchChannelConfigForAccount({ cfg, channel: params.channel, accountId, patch: { dmPolicy: policy, ...policy === "open" ? { allowFrom: addWildcardAllowFrom(resolveChannelDmAllowFrom({ account: resolveLegacyChannelAccount(cfg, params.channel, accountId), parent: resolveLegacyChannelConfig(cfg, params.channel) })) } : {} } }) : setLegacyChannelDmPolicy({ cfg, channel: params.channel, dmPolicy: policy }), ...params.promptAllowFrom ? { promptAllowFrom: params.promptAllowFrom } : {} }; } /** @deprecated Compatibility for plugins published before setup allowlists became plugin-owned. */ async function promptLegacyChannelAllowFromForAccount(params) { const accountId = resolveSetupAccountId({ accountId: params.accountId, defaultAccountId: params.defaultAccountId }); const account = params.resolveAccount(params.cfg, accountId); await params.prompter.note(params.noteLines.join("\n"), params.noteTitle); const allowFrom = await promptResolvedAllowFrom({ prompter: params.prompter, existing: params.resolveExisting(account, params.cfg), token: params.resolveToken(account), message: params.message, placeholder: params.placeholder, label: params.noteTitle, parseInputs: splitSetupEntries, parseId: params.parseId, invalidWithoutTokenNote: params.invalidWithoutTokenNote, resolveEntries: params.resolveEntries }); return accountId !== "default" ? patchChannelConfigForAccount({ cfg: params.cfg, channel: params.channel, accountId, patch: { allowFrom } }) : patchLegacyChannelConfig({ cfg: params.cfg, channel: params.channel, patch: { allowFrom } }); } //#endregion export { promptLegacyChannelAllowFromForAccount as n, createLegacyCompatChannelDmPolicy as t };