UNPKG

@gguf/claw

Version:

WhatsApp gateway CLI (Baileys web) with Pi RPC agent

54 lines (47 loc) 1.6 kB
import type { ChannelAccountSnapshot, ChannelStatusIssue } from "openclaw/plugin-sdk"; type ZaloAccountStatus = { accountId?: unknown; enabled?: unknown; configured?: unknown; dmPolicy?: unknown; }; const isRecord = (value: unknown): value is Record<string, unknown> => Boolean(value && typeof value === "object"); const asString = (value: unknown): string | undefined => typeof value === "string" ? value : typeof value === "number" ? String(value) : undefined; function readZaloAccountStatus(value: ChannelAccountSnapshot): ZaloAccountStatus | null { if (!isRecord(value)) { return null; } return { accountId: value.accountId, enabled: value.enabled, configured: value.configured, dmPolicy: value.dmPolicy, }; } export function collectZaloStatusIssues(accounts: ChannelAccountSnapshot[]): ChannelStatusIssue[] { const issues: ChannelStatusIssue[] = []; for (const entry of accounts) { const account = readZaloAccountStatus(entry); if (!account) { continue; } const accountId = asString(account.accountId) ?? "default"; const enabled = account.enabled !== false; const configured = account.configured === true; if (!enabled || !configured) { continue; } if (account.dmPolicy === "open") { issues.push({ channel: "zalo", accountId, kind: "config", message: 'Zalo dmPolicy is "open", allowing any user to message the bot without pairing.', fix: 'Set channels.zalo.dmPolicy to "pairing" or "allowlist" to restrict access.', }); } } return issues; }