diff --git a/src/config/channel-capabilities.ts b/src/config/channel-capabilities.ts index 13c878d8e7b5..1c62309b273b 100644 --- a/src/config/channel-capabilities.ts +++ b/src/config/channel-capabilities.ts @@ -22,30 +22,6 @@ function normalizeCapabilities(capabilities: CapabilitiesConfig | undefined): st return normalized.length > 0 ? normalized : undefined; } -function resolveAccountCapabilities(params: { - cfg?: { accounts?: Record } & { - capabilities?: CapabilitiesConfig; - }; - accountId?: string | null; -}): string[] | undefined { - const cfg = params.cfg; - if (!cfg) { - return undefined; - } - const normalizedAccountId = normalizeAccountId(params.accountId); - - const accounts = cfg.accounts; - if (accounts && typeof accounts === "object") { - const match = resolveAccountEntry(accounts, normalizedAccountId); - if (match) { - // Account capabilities override provider capabilities; empty/object account values fall back. - return normalizeCapabilities(match.capabilities) ?? normalizeCapabilities(cfg.capabilities); - } - } - - return normalizeCapabilities(cfg.capabilities); -} - /** Resolves normalized string capabilities for a channel/account config pair. */ export function resolveChannelCapabilities(params: { cfg?: Partial; @@ -65,8 +41,18 @@ export function resolveChannelCapabilities(params: { capabilities?: CapabilitiesConfig; } | undefined; - return resolveAccountCapabilities({ - cfg: channelConfig, - accountId: params.accountId, - }); + if (!channelConfig) { + return undefined; + } + const normalizedAccountId = normalizeAccountId(params.accountId); + const accounts = channelConfig.accounts; + const accountConfig = + accounts && typeof accounts === "object" + ? resolveAccountEntry(accounts, normalizedAccountId) + : undefined; + // Account capabilities override channel capabilities; empty/object account values fall back. + return ( + normalizeCapabilities(accountConfig?.capabilities) ?? + normalizeCapabilities(channelConfig.capabilities) + ); }