UNPKG

openclaw

Version:

Multi-channel AI gateway with extensible messaging integrations

88 lines (87 loc) • 4.42 kB
import { l as normalizeOptionalString } from "./string-coerce-1VuiLaaR.mjs"; import { t as createSubsystemLogger } from "./subsystem-4NzR43uz.mjs"; import { n as normalizeAccountId, r as normalizeOptionalAccountId } from "./account-id-ifCOO7_9.mjs"; import "./string-coerce-runtime-BbIJhy7G.mjs"; import "./runtime-env-CySdLHPX.mjs"; import { t as createAccountActionGate } from "./account-action-gate-Dn1I-Ez4.mjs"; import { t as resolveAccountWithDefaultFallback } from "./account-core-B7vrlPUK.mjs"; import { n as formatSetExplicitDefaultInstruction } from "./default-account-warnings-CK3UKJwX.mjs"; import "./routing-DvCc0aVb.mjs"; import { a as mergeTelegramAccountConfig, i as resolveDefaultTelegramAccountSelection, n as listTelegramAccountIds, o as resolveTelegramAccountConfig } from "./account-selection-B6bGjjlD.mjs"; import { n as resolveTelegramToken } from "./token-_ZrwaHip.mjs"; //#region extensions/telegram/src/accounts.ts const log = createSubsystemLogger("telegram/accounts"); let emittedMissingDefaultWarn = false; function resolveDefaultTelegramAccountId(cfg) { const selection = resolveDefaultTelegramAccountSelection(cfg); if (selection.shouldWarnMissingDefault && !emittedMissingDefaultWarn) { emittedMissingDefaultWarn = true; log.warn(`channels.telegram: accounts.default is missing; falling back to "${selection.accountId}". ${formatSetExplicitDefaultInstruction("telegram")} to avoid routing surprises in multi-account setups.`); } return selection.accountId; } function createTelegramActionGate(params) { const accountId = params.accountId ?? resolveDefaultTelegramAccountId(params.cfg); return createAccountActionGate({ baseActions: params.cfg.channels?.telegram?.actions, accountActions: resolveTelegramAccountConfig(params.cfg, accountId)?.actions }); } function resolveTelegramMediaRuntimeOptions(params) { const normalizedAccountId = normalizeOptionalAccountId(params.accountId); const accountCfg = normalizedAccountId ? mergeTelegramAccountConfig(params.cfg, normalizedAccountId) : params.cfg.channels?.telegram; return { token: params.token, transport: params.transport, apiRoot: accountCfg?.apiRoot, trustedLocalFileRoots: accountCfg?.trustedLocalFileRoots, dangerouslyAllowPrivateNetwork: accountCfg?.network?.dangerouslyAllowPrivateNetwork }; } function resolveTelegramPollActionGateState(isActionEnabled) { const sendMessageEnabled = isActionEnabled("sendMessage"); const pollEnabled = isActionEnabled("poll"); return { sendMessageEnabled, pollEnabled, enabled: sendMessageEnabled && pollEnabled }; } function resolveTelegramAccountFallback(params, resolvePrimary) { return resolveAccountWithDefaultFallback({ accountId: params.accountId ?? resolveDefaultTelegramAccountId(params.cfg), normalizeAccountId, resolvePrimary, hasCredential: (account) => account.tokenSource !== "none", resolveDefaultAccountId: () => resolveDefaultTelegramAccountId(params.cfg) }); } function resolveTelegramAccount(params) { const baseEnabled = params.cfg.channels?.telegram?.enabled !== false; const resolve = (accountId) => { const merged = mergeTelegramAccountConfig(params.cfg, accountId); const accountEnabled = merged.enabled !== false; const enabled = baseEnabled && accountEnabled; const tokenResolution = resolveTelegramToken(params.cfg, { accountId }); return { accountId, enabled, name: normalizeOptionalString(merged.name), token: tokenResolution.token, tokenSource: tokenResolution.source, tokenStatus: tokenResolution.credentialDiagnostics?.length ? "configured_unavailable" : tokenResolution.token ? "available" : "missing", ...tokenResolution.credentialDiagnostics ? { credentialDiagnostics: tokenResolution.credentialDiagnostics } : {}, config: merged }; }; return resolveTelegramAccountFallback(params, resolve); } function listEnabledTelegramAccounts(cfg) { if (!(cfg.channels?.telegram?.enabled !== false)) return []; return listTelegramAccountIds(cfg).filter((accountId) => mergeTelegramAccountConfig(cfg, accountId).enabled !== false).map((accountId) => resolveTelegramAccount({ cfg, accountId })); } //#endregion export { resolveTelegramAccountFallback as a, resolveTelegramAccount as i, listEnabledTelegramAccounts as n, resolveTelegramMediaRuntimeOptions as o, resolveDefaultTelegramAccountId as r, resolveTelegramPollActionGateState as s, createTelegramActionGate as t };