chore: migrate to oxlint and oxfmt

Co-authored-by: Christoph Nakazawa <christoph.pojer@gmail.com>
This commit is contained in:
Peter Steinberger
2026-01-14 14:31:43 +00:00
parent 912ebffc63
commit c379191f80
1480 changed files with 28608 additions and 43547 deletions

View File

@@ -1,14 +1,8 @@
import {
createActionGate,
readStringParam,
} from "../../agents/tools/common.js";
import { createActionGate, readStringParam } from "../../agents/tools/common.js";
import { handleWhatsAppAction } from "../../agents/tools/whatsapp-actions.js";
import { chunkText } from "../../auto-reply/chunk.js";
import { shouldLogVerbose } from "../../globals.js";
import {
DEFAULT_ACCOUNT_ID,
normalizeAccountId,
} from "../../routing/session-key.js";
import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "../../routing/session-key.js";
import { normalizeE164 } from "../../utils.js";
import {
listWhatsAppAccountIds,
@@ -25,10 +19,7 @@ import {
webAuthExists,
} from "../../web/auth-store.js";
import { sendMessageWhatsApp, sendPollWhatsApp } from "../../web/outbound.js";
import {
isWhatsAppGroupJid,
normalizeWhatsAppTarget,
} from "../../whatsapp/normalize.js";
import { isWhatsAppGroupJid, normalizeWhatsAppTarget } from "../../whatsapp/normalize.js";
import { getChatChannelMeta } from "../registry.js";
import { createWhatsAppLoginTool } from "./agent-tools/whatsapp-login.js";
import { resolveWhatsAppGroupRequireMention } from "./group-mentions.js";
@@ -45,8 +36,7 @@ import { resolveWhatsAppHeartbeatRecipients } from "./whatsapp-heartbeat.js";
const meta = getChatChannelMeta("whatsapp");
const escapeRegExp = (value: string) =>
value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
const escapeRegExp = (value: string) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
id: "whatsapp",
@@ -72,8 +62,7 @@ export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
gatewayMethods: ["web.login.start", "web.login.wait"],
config: {
listAccountIds: (cfg) => listWhatsAppAccountIds(cfg),
resolveAccount: (cfg, accountId) =>
resolveWhatsAppAccount({ cfg, accountId }),
resolveAccount: (cfg, accountId) => resolveWhatsAppAccount({ cfg, accountId }),
defaultAccountId: (cfg) => resolveDefaultWhatsAppAccountId(cfg),
setAccountEnabled: ({ cfg, accountId, enabled }) => {
const accountKey = accountId || DEFAULT_ACCOUNT_ID;
@@ -111,8 +100,7 @@ export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
},
};
},
isEnabled: (account, cfg) =>
account.enabled !== false && cfg.web?.enabled !== false,
isEnabled: (account, cfg) => account.enabled !== false && cfg.web?.enabled !== false,
disabledReason: () => "disabled",
isConfigured: async (account) => await webAuthExists(account.authDir),
unconfiguredReason: () => "not linked",
@@ -130,18 +118,13 @@ export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
allowFrom
.map((entry) => String(entry).trim())
.filter((entry): entry is string => Boolean(entry))
.map((entry) =>
entry === "*" ? entry : normalizeWhatsAppTarget(entry),
)
.map((entry) => (entry === "*" ? entry : normalizeWhatsAppTarget(entry)))
.filter((entry): entry is string => Boolean(entry)),
},
security: {
resolveDmPolicy: ({ cfg, accountId, account }) => {
const resolvedAccountId =
accountId ?? account.accountId ?? DEFAULT_ACCOUNT_ID;
const useAccountPath = Boolean(
cfg.channels?.whatsapp?.accounts?.[resolvedAccountId],
);
const resolvedAccountId = accountId ?? account.accountId ?? DEFAULT_ACCOUNT_ID;
const useAccountPath = Boolean(cfg.channels?.whatsapp?.accounts?.[resolvedAccountId]);
const basePath = useAccountPath
? `channels.whatsapp.accounts.${resolvedAccountId}.`
: "channels.whatsapp.";
@@ -244,29 +227,24 @@ export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
supportsAction: ({ action }) => action === "react",
handleAction: async ({ action, params, cfg, accountId }) => {
if (action !== "react") {
throw new Error(
`Action ${action} is not supported for provider ${meta.id}.`,
);
throw new Error(`Action ${action} is not supported for provider ${meta.id}.`);
}
const messageId = readStringParam(params, "messageId", {
required: true,
});
const emoji = readStringParam(params, "emoji", { allowEmpty: true });
const remove =
typeof params.remove === "boolean" ? params.remove : undefined;
const remove = typeof params.remove === "boolean" ? params.remove : undefined;
return await handleWhatsAppAction(
{
action: "react",
chatJid:
readStringParam(params, "chatJid") ??
readStringParam(params, "to", { required: true }),
readStringParam(params, "chatJid") ?? readStringParam(params, "to", { required: true }),
messageId,
emoji,
remove,
participant: readStringParam(params, "participant"),
accountId: accountId ?? undefined,
fromMe:
typeof params.fromMe === "boolean" ? params.fromMe : undefined,
fromMe: typeof params.fromMe === "boolean" ? params.fromMe : undefined,
},
cfg,
);
@@ -279,9 +257,7 @@ export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
pollMaxOptions: 12,
resolveTarget: ({ to, allowFrom, mode }) => {
const trimmed = to?.trim() ?? "";
const allowListRaw = (allowFrom ?? [])
.map((entry) => String(entry).trim())
.filter(Boolean);
const allowListRaw = (allowFrom ?? []).map((entry) => String(entry).trim()).filter(Boolean);
const hasWildcard = allowListRaw.includes("*");
const allowList = allowListRaw
.filter((entry) => entry !== "*")
@@ -291,10 +267,7 @@ export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
if (trimmed) {
const normalizedTo = normalizeWhatsAppTarget(trimmed);
if (!normalizedTo) {
if (
(mode === "implicit" || mode === "heartbeat") &&
allowList.length > 0
) {
if ((mode === "implicit" || mode === "heartbeat") && allowList.length > 0) {
return { ok: true, to: allowList[0] };
}
return {
@@ -356,8 +329,7 @@ export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
},
auth: {
login: async ({ cfg, accountId, runtime, verbose }) => {
const resolvedAccountId =
accountId?.trim() || resolveDefaultWhatsAppAccountId(cfg);
const resolvedAccountId = accountId?.trim() || resolveDefaultWhatsAppAccountId(cfg);
const { loginWeb } = await import("../../web/login.js");
await loginWeb(Boolean(verbose), undefined, runtime, resolvedAccountId);
},
@@ -368,9 +340,7 @@ export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
return { ok: false, reason: "whatsapp-disabled" };
}
const account = resolveWhatsAppAccount({ cfg, accountId });
const authExists = await (deps?.webAuthExists ?? webAuthExists)(
account.authDir,
);
const authExists = await (deps?.webAuthExists ?? webAuthExists)(account.authDir);
if (!authExists) {
return { ok: false, reason: "whatsapp-not-linked" };
}
@@ -382,8 +352,7 @@ export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
}
return { ok: true, reason: "ok" };
},
resolveRecipients: ({ cfg, opts }) =>
resolveWhatsAppHeartbeatRecipients(cfg, opts),
resolveRecipients: ({ cfg, opts }) => resolveWhatsAppHeartbeatRecipients(cfg, opts),
},
status: {
defaultRuntime: {
@@ -407,8 +376,7 @@ export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
? await webAuthExists(authDir)
: false;
const authAgeMs = linked && authDir ? getWebAuthAgeMs(authDir) : null;
const self =
linked && authDir ? readWebSelfId(authDir) : { e164: null, jid: null };
const self = linked && authDir ? readWebSelfId(authDir) : { e164: null, jid: null };
return {
configured: linked,
linked,
@@ -444,8 +412,7 @@ export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
allowFrom: account.allowFrom,
};
},
resolveAccountState: ({ configured }) =>
configured ? "linked" : "not linked",
resolveAccountState: ({ configured }) => (configured ? "linked" : "not linked"),
logSelfId: ({ account, runtime, includeChannelPrefix }) => {
logWebSelfId(account.authDir, runtime, includeChannelPrefix);
},
@@ -466,8 +433,7 @@ export const whatsappPlugin: ChannelPlugin<ResolvedWhatsAppAccount> = {
ctx.runtime,
ctx.abortSignal,
{
statusSink: (next) =>
ctx.setStatus({ accountId: ctx.accountId, ...next }),
statusSink: (next) => ctx.setStatus({ accountId: ctx.accountId, ...next }),
accountId: account.accountId,
},
);