refactor: rename clawdbot to moltbot with legacy compat

This commit is contained in:
Peter Steinberger
2026-01-27 12:19:58 +00:00
parent 83460df96f
commit 6d16a658e5
1839 changed files with 11250 additions and 11199 deletions

View File

@@ -3,47 +3,47 @@
## 2026.1.23
### Changes
- Version alignment with core Clawdbot release numbers.
- Version alignment with core Moltbot release numbers.
## 2026.1.22
### Changes
- Version alignment with core Clawdbot release numbers.
- Version alignment with core Moltbot release numbers.
## 2026.1.21
### Changes
- Version alignment with core Clawdbot release numbers.
- Version alignment with core Moltbot release numbers.
## 2026.1.20
### Changes
- Version alignment with core Clawdbot release numbers.
- Version alignment with core Moltbot release numbers.
## 2026.1.17-1
### Changes
- Version alignment with core Clawdbot release numbers.
- Version alignment with core Moltbot release numbers.
## 2026.1.17
### Changes
- Version alignment with core Clawdbot release numbers.
- Version alignment with core Moltbot release numbers.
## 2026.1.16
### Changes
- Version alignment with core Clawdbot release numbers.
- Version alignment with core Moltbot release numbers.
## 2026.1.15
### Changes
- Version alignment with core Clawdbot release numbers.
- Version alignment with core Moltbot release numbers.
## 2026.1.14
### Changes
- Version alignment with core Clawdbot release numbers.
- Version alignment with core Moltbot release numbers.
## 0.1.0

View File

@@ -1,4 +1,4 @@
import type { ClawdbotPluginApi } from "clawdbot/plugin-sdk";
import type { MoltbotPluginApi } from "clawdbot/plugin-sdk";
import { emptyPluginConfigSchema } from "clawdbot/plugin-sdk";
import { zaloDock, zaloPlugin } from "./src/channel.js";
@@ -10,7 +10,7 @@ const plugin = {
name: "Zalo",
description: "Zalo channel plugin (Bot API)",
configSchema: emptyPluginConfigSchema(),
register(api: ClawdbotPluginApi) {
register(api: MoltbotPluginApi) {
setZaloRuntime(api.runtime);
api.registerChannel({ plugin: zaloPlugin, dock: zaloDock });
api.registerHttpHandler(handleZaloWebhookRequest);

View File

@@ -2,8 +2,8 @@
"name": "@moltbot/zalo",
"version": "2026.1.26",
"type": "module",
"description": "Clawdbot Zalo channel plugin",
"clawdbot": {
"description": "Moltbot Zalo channel plugin",
"moltbot": {
"extensions": [
"./index.ts"
],
@@ -27,7 +27,7 @@
}
},
"dependencies": {
"clawdbot": "workspace:*",
"moltbot": "workspace:*",
"undici": "7.19.0"
}
}

View File

@@ -1,22 +1,22 @@
import type { ClawdbotConfig } from "clawdbot/plugin-sdk";
import type { MoltbotConfig } from "clawdbot/plugin-sdk";
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "clawdbot/plugin-sdk";
import type { ResolvedZaloAccount, ZaloAccountConfig, ZaloConfig } from "./types.js";
import { resolveZaloToken } from "./token.js";
function listConfiguredAccountIds(cfg: ClawdbotConfig): string[] {
function listConfiguredAccountIds(cfg: MoltbotConfig): string[] {
const accounts = (cfg.channels?.zalo as ZaloConfig | undefined)?.accounts;
if (!accounts || typeof accounts !== "object") return [];
return Object.keys(accounts).filter(Boolean);
}
export function listZaloAccountIds(cfg: ClawdbotConfig): string[] {
export function listZaloAccountIds(cfg: MoltbotConfig): string[] {
const ids = listConfiguredAccountIds(cfg);
if (ids.length === 0) return [DEFAULT_ACCOUNT_ID];
return ids.sort((a, b) => a.localeCompare(b));
}
export function resolveDefaultZaloAccountId(cfg: ClawdbotConfig): string {
export function resolveDefaultZaloAccountId(cfg: MoltbotConfig): string {
const zaloConfig = cfg.channels?.zalo as ZaloConfig | undefined;
if (zaloConfig?.defaultAccount?.trim()) return zaloConfig.defaultAccount.trim();
const ids = listZaloAccountIds(cfg);
@@ -25,7 +25,7 @@ export function resolveDefaultZaloAccountId(cfg: ClawdbotConfig): string {
}
function resolveAccountConfig(
cfg: ClawdbotConfig,
cfg: MoltbotConfig,
accountId: string,
): ZaloAccountConfig | undefined {
const accounts = (cfg.channels?.zalo as ZaloConfig | undefined)?.accounts;
@@ -33,7 +33,7 @@ function resolveAccountConfig(
return accounts[accountId] as ZaloAccountConfig | undefined;
}
function mergeZaloAccountConfig(cfg: ClawdbotConfig, accountId: string): ZaloAccountConfig {
function mergeZaloAccountConfig(cfg: MoltbotConfig, accountId: string): ZaloAccountConfig {
const raw = (cfg.channels?.zalo ?? {}) as ZaloConfig;
const { accounts: _ignored, defaultAccount: _ignored2, ...base } = raw;
const account = resolveAccountConfig(cfg, accountId) ?? {};
@@ -41,7 +41,7 @@ function mergeZaloAccountConfig(cfg: ClawdbotConfig, accountId: string): ZaloAcc
}
export function resolveZaloAccount(params: {
cfg: ClawdbotConfig;
cfg: MoltbotConfig;
accountId?: string | null;
}): ResolvedZaloAccount {
const accountId = normalizeAccountId(params.accountId);
@@ -64,7 +64,7 @@ export function resolveZaloAccount(params: {
};
}
export function listEnabledZaloAccounts(cfg: ClawdbotConfig): ResolvedZaloAccount[] {
export function listEnabledZaloAccounts(cfg: MoltbotConfig): ResolvedZaloAccount[] {
return listZaloAccountIds(cfg)
.map((accountId) => resolveZaloAccount({ cfg, accountId }))
.filter((account) => account.enabled);

View File

@@ -1,7 +1,7 @@
import type {
ChannelMessageActionAdapter,
ChannelMessageActionName,
ClawdbotConfig,
MoltbotConfig,
} from "clawdbot/plugin-sdk";
import { jsonResult, readStringParam } from "clawdbot/plugin-sdk";
@@ -10,7 +10,7 @@ import { sendMessageZalo } from "./send.js";
const providerId = "zalo";
function listEnabledAccounts(cfg: ClawdbotConfig) {
function listEnabledAccounts(cfg: MoltbotConfig) {
return listEnabledZaloAccounts(cfg).filter(
(account) => account.enabled && account.tokenSource !== "none",
);
@@ -18,7 +18,7 @@ function listEnabledAccounts(cfg: ClawdbotConfig) {
export const zaloMessageActions: ChannelMessageActionAdapter = {
listActions: ({ cfg }) => {
const accounts = listEnabledAccounts(cfg as ClawdbotConfig);
const accounts = listEnabledAccounts(cfg as MoltbotConfig);
if (accounts.length === 0) return [];
const actions = new Set<ChannelMessageActionName>(["send"]);
return Array.from(actions);
@@ -44,7 +44,7 @@ export const zaloMessageActions: ChannelMessageActionAdapter = {
const result = await sendMessageZalo(to ?? "", content ?? "", {
accountId: accountId ?? undefined,
mediaUrl: mediaUrl ?? undefined,
cfg: cfg as ClawdbotConfig,
cfg: cfg as MoltbotConfig,
});
if (!result.ok) {

View File

@@ -1,6 +1,6 @@
import { describe, expect, it } from "vitest";
import type { ClawdbotConfig } from "clawdbot/plugin-sdk";
import type { MoltbotConfig } from "clawdbot/plugin-sdk";
import { zaloPlugin } from "./channel.js";
@@ -12,7 +12,7 @@ describe("zalo directory", () => {
allowFrom: ["zalo:123", "zl:234", "345"],
},
},
} as unknown as ClawdbotConfig;
} as unknown as MoltbotConfig;
expect(zaloPlugin.directory).toBeTruthy();
expect(zaloPlugin.directory?.listPeers).toBeTruthy();

View File

@@ -2,7 +2,7 @@ import type {
ChannelAccountSnapshot,
ChannelDock,
ChannelPlugin,
ClawdbotConfig,
MoltbotConfig,
} from "clawdbot/plugin-sdk";
import {
applyAccountNameToChannelSection,
@@ -53,7 +53,7 @@ export const zaloDock: ChannelDock = {
outbound: { textChunkLimit: 2000 },
config: {
resolveAllowFrom: ({ cfg, accountId }) =>
(resolveZaloAccount({ cfg: cfg as ClawdbotConfig, accountId }).config.allowFrom ?? []).map(
(resolveZaloAccount({ cfg: cfg as MoltbotConfig, accountId }).config.allowFrom ?? []).map(
(entry) => String(entry),
),
formatAllowFrom: ({ allowFrom }) =>
@@ -87,12 +87,12 @@ export const zaloPlugin: ChannelPlugin<ResolvedZaloAccount> = {
reload: { configPrefixes: ["channels.zalo"] },
configSchema: buildChannelConfigSchema(ZaloConfigSchema),
config: {
listAccountIds: (cfg) => listZaloAccountIds(cfg as ClawdbotConfig),
resolveAccount: (cfg, accountId) => resolveZaloAccount({ cfg: cfg as ClawdbotConfig, accountId }),
defaultAccountId: (cfg) => resolveDefaultZaloAccountId(cfg as ClawdbotConfig),
listAccountIds: (cfg) => listZaloAccountIds(cfg as MoltbotConfig),
resolveAccount: (cfg, accountId) => resolveZaloAccount({ cfg: cfg as MoltbotConfig, accountId }),
defaultAccountId: (cfg) => resolveDefaultZaloAccountId(cfg as MoltbotConfig),
setAccountEnabled: ({ cfg, accountId, enabled }) =>
setAccountEnabledInConfigSection({
cfg: cfg as ClawdbotConfig,
cfg: cfg as MoltbotConfig,
sectionKey: "zalo",
accountId,
enabled,
@@ -100,7 +100,7 @@ export const zaloPlugin: ChannelPlugin<ResolvedZaloAccount> = {
}),
deleteAccount: ({ cfg, accountId }) =>
deleteAccountFromConfigSection({
cfg: cfg as ClawdbotConfig,
cfg: cfg as MoltbotConfig,
sectionKey: "zalo",
accountId,
clearBaseFields: ["botToken", "tokenFile", "name"],
@@ -114,7 +114,7 @@ export const zaloPlugin: ChannelPlugin<ResolvedZaloAccount> = {
tokenSource: account.tokenSource,
}),
resolveAllowFrom: ({ cfg, accountId }) =>
(resolveZaloAccount({ cfg: cfg as ClawdbotConfig, accountId }).config.allowFrom ?? []).map(
(resolveZaloAccount({ cfg: cfg as MoltbotConfig, accountId }).config.allowFrom ?? []).map(
(entry) => String(entry),
),
formatAllowFrom: ({ allowFrom }) =>
@@ -128,7 +128,7 @@ export const zaloPlugin: ChannelPlugin<ResolvedZaloAccount> = {
resolveDmPolicy: ({ cfg, accountId, account }) => {
const resolvedAccountId = accountId ?? account.accountId ?? DEFAULT_ACCOUNT_ID;
const useAccountPath = Boolean(
(cfg as ClawdbotConfig).channels?.zalo?.accounts?.[resolvedAccountId],
(cfg as MoltbotConfig).channels?.zalo?.accounts?.[resolvedAccountId],
);
const basePath = useAccountPath
? `channels.zalo.accounts.${resolvedAccountId}.`
@@ -164,7 +164,7 @@ export const zaloPlugin: ChannelPlugin<ResolvedZaloAccount> = {
directory: {
self: async () => null,
listPeers: async ({ cfg, accountId, query, limit }) => {
const account = resolveZaloAccount({ cfg: cfg as ClawdbotConfig, accountId });
const account = resolveZaloAccount({ cfg: cfg as MoltbotConfig, accountId });
const q = query?.trim().toLowerCase() || "";
const peers = Array.from(
new Set(
@@ -185,7 +185,7 @@ export const zaloPlugin: ChannelPlugin<ResolvedZaloAccount> = {
resolveAccountId: ({ accountId }) => normalizeAccountId(accountId),
applyAccountName: ({ cfg, accountId, name }) =>
applyAccountNameToChannelSection({
cfg: cfg as ClawdbotConfig,
cfg: cfg as MoltbotConfig,
channelKey: "zalo",
accountId,
name,
@@ -201,7 +201,7 @@ export const zaloPlugin: ChannelPlugin<ResolvedZaloAccount> = {
},
applyAccountConfig: ({ cfg, accountId, input }) => {
const namedConfig = applyAccountNameToChannelSection({
cfg: cfg as ClawdbotConfig,
cfg: cfg as MoltbotConfig,
channelKey: "zalo",
accountId,
name: input.name,
@@ -230,7 +230,7 @@ export const zaloPlugin: ChannelPlugin<ResolvedZaloAccount> = {
: {}),
},
},
} as ClawdbotConfig;
} as MoltbotConfig;
}
return {
...next,
@@ -253,14 +253,14 @@ export const zaloPlugin: ChannelPlugin<ResolvedZaloAccount> = {
},
},
},
} as ClawdbotConfig;
} as MoltbotConfig;
},
},
pairing: {
idLabel: "zaloUserId",
normalizeAllowEntry: (entry) => entry.replace(/^(zalo|zl):/i, ""),
notifyApproval: async ({ cfg, id }) => {
const account = resolveZaloAccount({ cfg: cfg as ClawdbotConfig });
const account = resolveZaloAccount({ cfg: cfg as MoltbotConfig });
if (!account.token) throw new Error("Zalo token not configured");
await sendMessageZalo(id, PAIRING_APPROVED_MESSAGE, { token: account.token });
},
@@ -293,7 +293,7 @@ export const zaloPlugin: ChannelPlugin<ResolvedZaloAccount> = {
sendText: async ({ to, text, accountId, cfg }) => {
const result = await sendMessageZalo(to, text, {
accountId: accountId ?? undefined,
cfg: cfg as ClawdbotConfig,
cfg: cfg as MoltbotConfig,
});
return {
channel: "zalo",
@@ -306,7 +306,7 @@ export const zaloPlugin: ChannelPlugin<ResolvedZaloAccount> = {
const result = await sendMessageZalo(to, text, {
accountId: accountId ?? undefined,
mediaUrl,
cfg: cfg as ClawdbotConfig,
cfg: cfg as MoltbotConfig,
});
return {
channel: "zalo",
@@ -379,7 +379,7 @@ export const zaloPlugin: ChannelPlugin<ResolvedZaloAccount> = {
return monitorZaloProvider({
token,
account,
config: ctx.cfg as ClawdbotConfig,
config: ctx.cfg as MoltbotConfig,
runtime: ctx.runtime,
abortSignal: ctx.abortSignal,
useWebhook: Boolean(account.config.webhookUrl),

View File

@@ -1,6 +1,6 @@
import type { IncomingMessage, ServerResponse } from "node:http";
import type { ClawdbotConfig, MarkdownTableMode } from "clawdbot/plugin-sdk";
import type { MoltbotConfig, MarkdownTableMode } from "clawdbot/plugin-sdk";
import type { ResolvedZaloAccount } from "./accounts.js";
import {
@@ -25,7 +25,7 @@ export type ZaloRuntimeEnv = {
export type ZaloMonitorOptions = {
token: string;
account: ResolvedZaloAccount;
config: ClawdbotConfig;
config: MoltbotConfig;
runtime: ZaloRuntimeEnv;
abortSignal: AbortSignal;
useWebhook?: boolean;
@@ -94,7 +94,7 @@ async function readJsonBody(req: IncomingMessage, maxBytes: number) {
type WebhookTarget = {
token: string;
account: ResolvedZaloAccount;
config: ClawdbotConfig;
config: MoltbotConfig;
runtime: ZaloRuntimeEnv;
core: ZaloCoreRuntime;
secret: string;
@@ -217,7 +217,7 @@ export async function handleZaloWebhookRequest(
function startPollingLoop(params: {
token: string;
account: ResolvedZaloAccount;
config: ClawdbotConfig;
config: MoltbotConfig;
runtime: ZaloRuntimeEnv;
core: ZaloCoreRuntime;
abortSignal: AbortSignal;
@@ -280,7 +280,7 @@ async function processUpdate(
update: ZaloUpdate,
token: string,
account: ResolvedZaloAccount,
config: ClawdbotConfig,
config: MoltbotConfig,
runtime: ZaloRuntimeEnv,
core: ZaloCoreRuntime,
mediaMaxMb: number,
@@ -331,7 +331,7 @@ async function handleTextMessage(
message: ZaloMessage,
token: string,
account: ResolvedZaloAccount,
config: ClawdbotConfig,
config: MoltbotConfig,
runtime: ZaloRuntimeEnv,
core: ZaloCoreRuntime,
statusSink?: (patch: { lastInboundAt?: number; lastOutboundAt?: number }) => void,
@@ -359,7 +359,7 @@ async function handleImageMessage(
message: ZaloMessage,
token: string,
account: ResolvedZaloAccount,
config: ClawdbotConfig,
config: MoltbotConfig,
runtime: ZaloRuntimeEnv,
core: ZaloCoreRuntime,
mediaMaxMb: number,
@@ -407,7 +407,7 @@ async function processMessageWithPipeline(params: {
message: ZaloMessage;
token: string;
account: ResolvedZaloAccount;
config: ClawdbotConfig;
config: MoltbotConfig;
runtime: ZaloRuntimeEnv;
core: ZaloCoreRuntime;
text?: string;
@@ -616,7 +616,7 @@ async function deliverZaloReply(params: {
chatId: string;
runtime: ZaloRuntimeEnv;
core: ZaloCoreRuntime;
config: ClawdbotConfig;
config: MoltbotConfig;
accountId?: string;
statusSink?: (patch: { lastInboundAt?: number; lastOutboundAt?: number }) => void;
fetcher?: ZaloFetch;

View File

@@ -3,7 +3,7 @@ import type { AddressInfo } from "node:net";
import { describe, expect, it } from "vitest";
import type { ClawdbotConfig, PluginRuntime } from "clawdbot/plugin-sdk";
import type { MoltbotConfig, PluginRuntime } from "clawdbot/plugin-sdk";
import type { ResolvedZaloAccount } from "./types.js";
import { handleZaloWebhookRequest, registerZaloWebhookTarget } from "./monitor.js";
@@ -37,7 +37,7 @@ describe("handleZaloWebhookRequest", () => {
const unregister = registerZaloWebhookTarget({
token: "tok",
account,
config: {} as ClawdbotConfig,
config: {} as MoltbotConfig,
runtime: {},
core,
secret: "secret",

View File

@@ -1,7 +1,7 @@
import type {
ChannelOnboardingAdapter,
ChannelOnboardingDmPolicy,
ClawdbotConfig,
MoltbotConfig,
WizardPrompter,
} from "clawdbot/plugin-sdk";
import {
@@ -22,7 +22,7 @@ const channel = "zalo" as const;
type UpdateMode = "polling" | "webhook";
function setZaloDmPolicy(
cfg: ClawdbotConfig,
cfg: MoltbotConfig,
dmPolicy: "pairing" | "allowlist" | "open" | "disabled",
) {
const allowFrom = dmPolicy === "open" ? addWildcardAllowFrom(cfg.channels?.zalo?.allowFrom) : undefined;
@@ -36,17 +36,17 @@ function setZaloDmPolicy(
...(allowFrom ? { allowFrom } : {}),
},
},
} as ClawdbotConfig;
} as MoltbotConfig;
}
function setZaloUpdateMode(
cfg: ClawdbotConfig,
cfg: MoltbotConfig,
accountId: string,
mode: UpdateMode,
webhookUrl?: string,
webhookSecret?: string,
webhookPath?: string,
): ClawdbotConfig {
): MoltbotConfig {
const isDefault = accountId === DEFAULT_ACCOUNT_ID;
if (mode === "polling") {
if (isDefault) {
@@ -62,7 +62,7 @@ function setZaloUpdateMode(
...cfg.channels,
zalo: rest,
},
} as ClawdbotConfig;
} as MoltbotConfig;
}
const accounts = { ...(cfg.channels?.zalo?.accounts ?? {}) } as Record<
string,
@@ -85,7 +85,7 @@ function setZaloUpdateMode(
accounts,
},
},
} as ClawdbotConfig;
} as MoltbotConfig;
}
if (isDefault) {
@@ -100,7 +100,7 @@ function setZaloUpdateMode(
webhookPath,
},
},
} as ClawdbotConfig;
} as MoltbotConfig;
}
const accounts = { ...(cfg.channels?.zalo?.accounts ?? {}) } as Record<
@@ -122,7 +122,7 @@ function setZaloUpdateMode(
accounts,
},
},
} as ClawdbotConfig;
} as MoltbotConfig;
}
async function noteZaloTokenHelp(prompter: WizardPrompter): Promise<void> {
@@ -139,10 +139,10 @@ async function noteZaloTokenHelp(prompter: WizardPrompter): Promise<void> {
}
async function promptZaloAllowFrom(params: {
cfg: ClawdbotConfig;
cfg: MoltbotConfig;
prompter: WizardPrompter;
accountId: string;
}): Promise<ClawdbotConfig> {
}): Promise<MoltbotConfig> {
const { cfg, prompter, accountId } = params;
const resolved = resolveZaloAccount({ cfg, accountId });
const existingAllowFrom = resolved.config.allowFrom ?? [];
@@ -176,7 +176,7 @@ async function promptZaloAllowFrom(params: {
allowFrom: unique,
},
},
} as ClawdbotConfig;
} as MoltbotConfig;
}
return {
@@ -197,7 +197,7 @@ async function promptZaloAllowFrom(params: {
},
},
},
} as ClawdbotConfig;
} as MoltbotConfig;
}
const dmPolicy: ChannelOnboardingDmPolicy = {
@@ -206,14 +206,14 @@ const dmPolicy: ChannelOnboardingDmPolicy = {
policyKey: "channels.zalo.dmPolicy",
allowFromKey: "channels.zalo.allowFrom",
getCurrent: (cfg) => (cfg.channels?.zalo?.dmPolicy ?? "pairing") as "pairing",
setPolicy: (cfg, policy) => setZaloDmPolicy(cfg as ClawdbotConfig, policy),
setPolicy: (cfg, policy) => setZaloDmPolicy(cfg as MoltbotConfig, policy),
promptAllowFrom: async ({ cfg, prompter, accountId }) => {
const id =
accountId && normalizeAccountId(accountId)
? normalizeAccountId(accountId) ?? DEFAULT_ACCOUNT_ID
: resolveDefaultZaloAccountId(cfg as ClawdbotConfig);
: resolveDefaultZaloAccountId(cfg as MoltbotConfig);
return promptZaloAllowFrom({
cfg: cfg as ClawdbotConfig,
cfg: cfg as MoltbotConfig,
prompter,
accountId: id,
});
@@ -224,8 +224,8 @@ export const zaloOnboardingAdapter: ChannelOnboardingAdapter = {
channel,
dmPolicy,
getStatus: async ({ cfg }) => {
const configured = listZaloAccountIds(cfg as ClawdbotConfig).some((accountId) =>
Boolean(resolveZaloAccount({ cfg: cfg as ClawdbotConfig, accountId }).token),
const configured = listZaloAccountIds(cfg as MoltbotConfig).some((accountId) =>
Boolean(resolveZaloAccount({ cfg: cfg as MoltbotConfig, accountId }).token),
);
return {
channel,
@@ -237,13 +237,13 @@ export const zaloOnboardingAdapter: ChannelOnboardingAdapter = {
},
configure: async ({ cfg, prompter, accountOverrides, shouldPromptAccountIds, forceAllowFrom }) => {
const zaloOverride = accountOverrides.zalo?.trim();
const defaultZaloAccountId = resolveDefaultZaloAccountId(cfg as ClawdbotConfig);
const defaultZaloAccountId = resolveDefaultZaloAccountId(cfg as MoltbotConfig);
let zaloAccountId = zaloOverride
? normalizeAccountId(zaloOverride)
: defaultZaloAccountId;
if (shouldPromptAccountIds && !zaloOverride) {
zaloAccountId = await promptAccountId({
cfg: cfg as ClawdbotConfig,
cfg: cfg as MoltbotConfig,
prompter,
label: "Zalo",
currentId: zaloAccountId,
@@ -252,7 +252,7 @@ export const zaloOnboardingAdapter: ChannelOnboardingAdapter = {
});
}
let next = cfg as ClawdbotConfig;
let next = cfg as MoltbotConfig;
const resolvedAccount = resolveZaloAccount({ cfg: next, accountId: zaloAccountId });
const accountConfigured = Boolean(resolvedAccount.token);
const allowEnv = zaloAccountId === DEFAULT_ACCOUNT_ID;
@@ -280,7 +280,7 @@ export const zaloOnboardingAdapter: ChannelOnboardingAdapter = {
enabled: true,
},
},
} as ClawdbotConfig;
} as MoltbotConfig;
} else {
token = String(
await prompter.text({
@@ -323,7 +323,7 @@ export const zaloOnboardingAdapter: ChannelOnboardingAdapter = {
botToken: token,
},
},
} as ClawdbotConfig;
} as MoltbotConfig;
} else {
next = {
...next,
@@ -342,7 +342,7 @@ export const zaloOnboardingAdapter: ChannelOnboardingAdapter = {
},
},
},
} as ClawdbotConfig;
} as MoltbotConfig;
}
}

View File

@@ -1,4 +1,4 @@
import type { ClawdbotConfig } from "clawdbot/plugin-sdk";
import type { MoltbotConfig } from "clawdbot/plugin-sdk";
import type { ZaloFetch } from "./api.js";
import { sendMessage, sendPhoto } from "./api.js";
@@ -9,7 +9,7 @@ import { resolveZaloToken } from "./token.js";
export type ZaloSendOptions = {
token?: string;
accountId?: string;
cfg?: ClawdbotConfig;
cfg?: MoltbotConfig;
mediaUrl?: string;
caption?: string;
verbose?: boolean;