fix: add provider account metadata
This commit is contained in:
@@ -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,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
Reference in New Issue
Block a user