refactor!: rename chat providers to channels

This commit is contained in:
Peter Steinberger
2026-01-13 06:16:43 +00:00
parent 0cd632ba84
commit 90342a4f3a
393 changed files with 8004 additions and 6737 deletions

View File

@@ -1,52 +1,52 @@
import { normalizeAccountId } from "../routing/session-key.js";
import type { ClawdbotConfig } from "./config.js";
export type GroupPolicyProvider = "whatsapp" | "telegram" | "imessage";
export type GroupPolicyChannel = "whatsapp" | "telegram" | "imessage";
export type ProviderGroupConfig = {
export type ChannelGroupConfig = {
requireMention?: boolean;
};
export type ProviderGroupPolicy = {
export type ChannelGroupPolicy = {
allowlistEnabled: boolean;
allowed: boolean;
groupConfig?: ProviderGroupConfig;
defaultConfig?: ProviderGroupConfig;
groupConfig?: ChannelGroupConfig;
defaultConfig?: ChannelGroupConfig;
};
type ProviderGroups = Record<string, ProviderGroupConfig>;
type ChannelGroups = Record<string, ChannelGroupConfig>;
function resolveProviderGroups(
function resolveChannelGroups(
cfg: ClawdbotConfig,
provider: GroupPolicyProvider,
channel: GroupPolicyChannel,
accountId?: string | null,
): ProviderGroups | undefined {
): ChannelGroups | undefined {
const normalizedAccountId = normalizeAccountId(accountId);
const providerConfig = (cfg as Record<string, unknown>)[provider] as
const channelConfig = cfg.channels?.[channel] as
| {
accounts?: Record<string, { groups?: ProviderGroups }>;
groups?: ProviderGroups;
accounts?: Record<string, { groups?: ChannelGroups }>;
groups?: ChannelGroups;
}
| undefined;
if (!providerConfig) return undefined;
if (!channelConfig) return undefined;
const accountGroups =
providerConfig.accounts?.[normalizedAccountId]?.groups ??
providerConfig.accounts?.[
Object.keys(providerConfig.accounts ?? {}).find(
channelConfig.accounts?.[normalizedAccountId]?.groups ??
channelConfig.accounts?.[
Object.keys(channelConfig.accounts ?? {}).find(
(key) => key.toLowerCase() === normalizedAccountId.toLowerCase(),
) ?? ""
]?.groups;
return accountGroups ?? providerConfig.groups;
return accountGroups ?? channelConfig.groups;
}
export function resolveProviderGroupPolicy(params: {
export function resolveChannelGroupPolicy(params: {
cfg: ClawdbotConfig;
provider: GroupPolicyProvider;
channel: GroupPolicyChannel;
groupId?: string | null;
accountId?: string | null;
}): ProviderGroupPolicy {
const { cfg, provider } = params;
const groups = resolveProviderGroups(cfg, provider, params.accountId);
}): ChannelGroupPolicy {
const { cfg, channel } = params;
const groups = resolveChannelGroups(cfg, channel, params.accountId);
const allowlistEnabled = Boolean(groups && Object.keys(groups).length > 0);
const normalizedId = params.groupId?.trim();
const groupConfig = normalizedId && groups ? groups[normalizedId] : undefined;
@@ -67,16 +67,16 @@ export function resolveProviderGroupPolicy(params: {
};
}
export function resolveProviderGroupRequireMention(params: {
export function resolveChannelGroupRequireMention(params: {
cfg: ClawdbotConfig;
provider: GroupPolicyProvider;
channel: GroupPolicyChannel;
groupId?: string | null;
accountId?: string | null;
requireMentionOverride?: boolean;
overrideOrder?: "before-config" | "after-config";
}): boolean {
const { requireMentionOverride, overrideOrder = "after-config" } = params;
const { groupConfig, defaultConfig } = resolveProviderGroupPolicy(params);
const { groupConfig, defaultConfig } = resolveChannelGroupPolicy(params);
const configMention =
typeof groupConfig?.requireMention === "boolean"
? groupConfig.requireMention