fix: add provider account metadata

This commit is contained in:
Peter Steinberger
2026-01-08 11:02:48 +00:00
parent fd04bdb9cf
commit e7b3cc3d3d
2 changed files with 23 additions and 1 deletions

View File

@@ -10,6 +10,7 @@ export type ResolvedIMessageAccount = {
enabled: boolean; enabled: boolean;
name?: string; name?: string;
config: IMessageAccountConfig; config: IMessageAccountConfig;
configured: boolean;
}; };
function listConfiguredAccountIds(cfg: ClawdbotConfig): string[] { function listConfiguredAccountIds(cfg: ClawdbotConfig): string[] {
@@ -57,11 +58,26 @@ export function resolveIMessageAccount(params: {
const baseEnabled = params.cfg.imessage?.enabled !== false; const baseEnabled = params.cfg.imessage?.enabled !== false;
const merged = mergeIMessageAccountConfig(params.cfg, accountId); const merged = mergeIMessageAccountConfig(params.cfg, accountId);
const accountEnabled = merged.enabled !== false; 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 { return {
accountId, accountId,
enabled: baseEnabled && accountEnabled, enabled: baseEnabled && accountEnabled,
name: merged.name?.trim() || undefined, name: merged.name?.trim() || undefined,
config: merged, config: merged,
configured,
}; };
} }

View File

@@ -3,7 +3,11 @@ import path from "node:path";
import type { ClawdbotConfig } from "../config/config.js"; import type { ClawdbotConfig } from "../config/config.js";
import { resolveOAuthDir } from "../config/paths.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 { DEFAULT_ACCOUNT_ID } from "../routing/session-key.js";
import { resolveUserPath } from "../utils.js"; import { resolveUserPath } from "../utils.js";
@@ -18,6 +22,7 @@ export type ResolvedWhatsAppAccount = {
allowFrom?: string[]; allowFrom?: string[];
groupAllowFrom?: string[]; groupAllowFrom?: string[];
groupPolicy?: GroupPolicy; groupPolicy?: GroupPolicy;
dmPolicy?: DmPolicy;
textChunkLimit?: number; textChunkLimit?: number;
groups?: WhatsAppAccountConfig["groups"]; groups?: WhatsAppAccountConfig["groups"];
}; };
@@ -113,6 +118,7 @@ export function resolveWhatsAppAccount(params: {
groupAllowFrom: groupAllowFrom:
accountCfg?.groupAllowFrom ?? params.cfg.whatsapp?.groupAllowFrom, accountCfg?.groupAllowFrom ?? params.cfg.whatsapp?.groupAllowFrom,
groupPolicy: accountCfg?.groupPolicy ?? params.cfg.whatsapp?.groupPolicy, groupPolicy: accountCfg?.groupPolicy ?? params.cfg.whatsapp?.groupPolicy,
dmPolicy: accountCfg?.dmPolicy ?? params.cfg.whatsapp?.dmPolicy,
textChunkLimit: textChunkLimit:
accountCfg?.textChunkLimit ?? params.cfg.whatsapp?.textChunkLimit, accountCfg?.textChunkLimit ?? params.cfg.whatsapp?.textChunkLimit,
groups: accountCfg?.groups ?? params.cfg.whatsapp?.groups, groups: accountCfg?.groups ?? params.cfg.whatsapp?.groups,