UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

30 lines (29 loc) 1.38 kB
//#region src/infra/heartbeat-visibility.ts const DEFAULT_VISIBILITY = { showOk: false, showAlerts: true, useIndicator: true }; /** Resolves heartbeat visibility for a channel, applying account > channel > defaults precedence. */ function resolveHeartbeatVisibility(params) { const { cfg, channel, accountId } = params; if (channel === "webchat") { const channelDefaults = cfg.channels?.defaults?.heartbeatVisibility; return { showOk: channelDefaults?.showOk ?? DEFAULT_VISIBILITY.showOk, showAlerts: channelDefaults?.showAlerts ?? DEFAULT_VISIBILITY.showAlerts, useIndicator: channelDefaults?.useIndicator ?? DEFAULT_VISIBILITY.useIndicator }; } const channelDefaults = cfg.channels?.defaults?.heartbeatVisibility; const channelCfg = cfg.channels?.[channel]; const perChannel = channelCfg?.heartbeatVisibility; const perAccount = (accountId ? channelCfg?.accounts?.[accountId] : void 0)?.heartbeatVisibility; return { showOk: perAccount?.showOk ?? perChannel?.showOk ?? channelDefaults?.showOk ?? DEFAULT_VISIBILITY.showOk, showAlerts: perAccount?.showAlerts ?? perChannel?.showAlerts ?? channelDefaults?.showAlerts ?? DEFAULT_VISIBILITY.showAlerts, useIndicator: perAccount?.useIndicator ?? perChannel?.useIndicator ?? channelDefaults?.useIndicator ?? DEFAULT_VISIBILITY.useIndicator }; } //#endregion export { resolveHeartbeatVisibility as t };