From e7b3cc3d3d97861c67301f35647ba8e7b981d675 Mon Sep 17 00:00:00 2001 From: Peter Steinberger Date: Thu, 8 Jan 2026 11:02:48 +0000 Subject: [PATCH] fix: add provider account metadata --- src/imessage/accounts.ts | 16 ++++++++++++++++ src/web/accounts.ts | 8 +++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/imessage/accounts.ts b/src/imessage/accounts.ts index b2adcdaf7..164afd2bc 100644 --- a/src/imessage/accounts.ts +++ b/src/imessage/accounts.ts @@ -10,6 +10,7 @@ export type ResolvedIMessageAccount = { enabled: boolean; name?: string; config: IMessageAccountConfig; + configured: boolean; }; function listConfiguredAccountIds(cfg: ClawdbotConfig): string[] { @@ -57,11 +58,26 @@ export function resolveIMessageAccount(params: { const baseEnabled = params.cfg.imessage?.enabled !== false; const merged = mergeIMessageAccountConfig(params.cfg, accountId); const accountEnabled = merged.enabled !== false; + const configured = Boolean( + merged.cliPath?.trim() || + merged.dbPath?.trim() || + merged.service || + merged.region?.trim() || + (merged.allowFrom && merged.allowFrom.length > 0) || + (merged.groupAllowFrom && merged.groupAllowFrom.length > 0) || + merged.dmPolicy || + merged.groupPolicy || + typeof merged.includeAttachments === "boolean" || + typeof merged.mediaMaxMb === "number" || + typeof merged.textChunkLimit === "number" || + (merged.groups && Object.keys(merged.groups).length > 0), + ); return { accountId, enabled: baseEnabled && accountEnabled, name: merged.name?.trim() || undefined, config: merged, + configured, }; } diff --git a/src/web/accounts.ts b/src/web/accounts.ts index e96dba12a..b1f045e6f 100644 --- a/src/web/accounts.ts +++ b/src/web/accounts.ts @@ -3,7 +3,11 @@ import path from "node:path"; import type { ClawdbotConfig } from "../config/config.js"; import { resolveOAuthDir } from "../config/paths.js"; -import type { GroupPolicy, WhatsAppAccountConfig } from "../config/types.js"; +import type { + DmPolicy, + GroupPolicy, + WhatsAppAccountConfig, +} from "../config/types.js"; import { DEFAULT_ACCOUNT_ID } from "../routing/session-key.js"; import { resolveUserPath } from "../utils.js"; @@ -18,6 +22,7 @@ export type ResolvedWhatsAppAccount = { allowFrom?: string[]; groupAllowFrom?: string[]; groupPolicy?: GroupPolicy; + dmPolicy?: DmPolicy; textChunkLimit?: number; groups?: WhatsAppAccountConfig["groups"]; }; @@ -113,6 +118,7 @@ export function resolveWhatsAppAccount(params: { groupAllowFrom: accountCfg?.groupAllowFrom ?? params.cfg.whatsapp?.groupAllowFrom, groupPolicy: accountCfg?.groupPolicy ?? params.cfg.whatsapp?.groupPolicy, + dmPolicy: accountCfg?.dmPolicy ?? params.cfg.whatsapp?.dmPolicy, textChunkLimit: accountCfg?.textChunkLimit ?? params.cfg.whatsapp?.textChunkLimit, groups: accountCfg?.groups ?? params.cfg.whatsapp?.groups,