From 3bf3ebf5143632680b99fdce0408f44c366aa6ef Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Fri, 13 Mar 2026 17:33:45 +0000 Subject: [PATCH] refactor: share exec approval dm route checks --- src/infra/exec-approval-surface.ts | 33 +++++++++++++++++------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/src/infra/exec-approval-surface.ts b/src/infra/exec-approval-surface.ts index bdefb933379..b20e31850b8 100644 --- a/src/infra/exec-approval-surface.ts +++ b/src/infra/exec-approval-surface.ts @@ -50,8 +50,18 @@ export function resolveExecApprovalInitiatingSurfaceState(params: { return { kind: "unsupported", channel, channelLabel }; } -export function hasConfiguredExecApprovalDmRoute(cfg: OpenClawConfig): boolean { - for (const account of listEnabledDiscordAccounts(cfg)) { +function hasExecApprovalDmRoute( + accounts: Array<{ + config: { + execApprovals?: { + enabled?: boolean; + approvers?: unknown[]; + target?: string; + }; + }; + }>, +): boolean { + for (const account of accounts) { const execApprovals = account.config.execApprovals; if (!execApprovals?.enabled || (execApprovals.approvers?.length ?? 0) === 0) { continue; @@ -61,17 +71,12 @@ export function hasConfiguredExecApprovalDmRoute(cfg: OpenClawConfig): boolean { return true; } } - - for (const account of listEnabledTelegramAccounts(cfg)) { - const execApprovals = account.config.execApprovals; - if (!execApprovals?.enabled || (execApprovals.approvers?.length ?? 0) === 0) { - continue; - } - const target = execApprovals.target ?? "dm"; - if (target === "dm" || target === "both") { - return true; - } - } - return false; } + +export function hasConfiguredExecApprovalDmRoute(cfg: OpenClawConfig): boolean { + return ( + hasExecApprovalDmRoute(listEnabledDiscordAccounts(cfg)) || + hasExecApprovalDmRoute(listEnabledTelegramAccounts(cfg)) + ); +}