@openclaw/whatsapp 2026.10.5-beta.4 → 2026.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/.setup/audio-preflight.runtime-DOv4YzLh.mjs +1 -0
  2. package/dist/.setup/{channel-DcHw3Up2.mjs → channel-DjBm_r3f.mjs} +1 -1
  3. package/dist/.setup/{channel.runtime-DTj-wkEP.mjs → channel.runtime-EBjI_3fz.mjs} +2 -2
  4. package/dist/.setup/{channel.setup-BJWEyQlF.mjs → channel.setup-B9HtOvuH.mjs} +1 -1
  5. package/dist/.setup/legacy-session-surface-api-BwP_Pgmu.mjs +1 -0
  6. package/dist/.setup/{monitor-CmXEQad9.mjs → monitor-DoUaWcPF.mjs} +4 -3
  7. package/dist/.setup/reply-resolver.runtime-Byxo9w3l.mjs +1 -0
  8. package/dist/.setup/{setup-finalize-DSiP_-wa.mjs → setup-finalize-Cd5JX7fD.mjs} +1 -1
  9. package/dist/.setup/setup-plugin-api-cq01XJ-u.mjs +2 -0
  10. package/dist/.setup/{setup-surface-C_flQyHy.mjs → setup-surface-Bx1YGjai.mjs} +1 -1
  11. package/dist/.setup/{shared-SqcOkt51.mjs → shared-C-Sc9ylU.mjs} +2 -2
  12. package/dist/action-runtime-api.js +1 -2
  13. package/dist/action-runtime.runtime.js +1 -2
  14. package/dist/api.js +3 -3
  15. package/dist/channel-config-api.js +1 -2
  16. package/dist/channel-plugin-api.js +1 -2
  17. package/dist/login-qr-api.js +1 -2
  18. package/dist/runtime-api.js +1 -1
  19. package/dist/runtime-setter-api.js +1 -2
  20. package/dist/security-contract-api.js +1 -2
  21. package/dist/setup-entry.js +2 -2
  22. package/dist/setup-plugin-api.js +1 -2
  23. package/package.json +4 -4
  24. package/dist/.setup/audio-preflight.runtime-Dg8oZgre.mjs +0 -2
  25. package/dist/.setup/legacy-session-surface-api-B2szjq4r.mjs +0 -2
  26. package/dist/.setup/reply-resolver.runtime-Ded8D58Y.mjs +0 -2
  27. package/dist/.setup/setup-plugin-api-8WdNCjRW.mjs +0 -3
@@ -0,0 +1 @@
1
+ export { transcribeFirstAudio } from "openclaw/plugin-sdk/media-runtime";
@@ -6,7 +6,7 @@ import { i as sendTypingWhatsApp, n as sendPollWhatsApp, o as normalizeWhatsAppO
6
6
  import { i as getWhatsAppRuntime } from "./runtime-BLlToOi6.mjs";
7
7
  import { c as toWhatsappJid } from "./targets-runtime-D5ryyPxh.mjs";
8
8
  import { c as whatsappApprovalAuth, o as lookupInboundMessageMetaForTarget, s as getWhatsAppApprovalApprovers, t as resolveWhatsAppGroupSessionKey } from "./group-session-key-BbTPosdy.mjs";
9
- import { a as loadWhatsAppChannelRuntime, t as createWhatsAppPluginBase } from "./shared-SqcOkt51.mjs";
9
+ import { a as loadWhatsAppChannelRuntime, t as createWhatsAppPluginBase } from "./shared-C-Sc9ylU.mjs";
10
10
  import { t as whatsappCommandPolicy } from "./command-policy-BIOSHySD.mjs";
11
11
  import { d as readWebAuthExistsForDecision, n as WHATSAPP_AUTH_UNSTABLE_CODE } from "./auth-store-DOBi5BPe.mjs";
12
12
  import { createActionGate } from "openclaw/plugin-sdk/channel-actions";
@@ -1,9 +1,9 @@
1
1
  import { startWebLoginWithQr, waitForWebLogin } from "../login-qr-runtime.js";
2
2
  import { b as webAuthExists, c as logoutWeb, d as readWebAuthExistsForDecision, f as readWebAuthSnapshot, h as readWebSelfId, m as readWebAuthState, o as getWebAuthAgeMs, p as readWebAuthSnapshotBestEffort, s as logWebSelfId, u as readWebAuthExistsBestEffort } from "./auth-store-DOBi5BPe.mjs";
3
3
  import { t as getActiveWebListener } from "./active-listener-CDjoX9QR.mjs";
4
- import { t as monitorWebChannel } from "./monitor-CmXEQad9.mjs";
4
+ import { t as monitorWebChannel } from "./monitor-DoUaWcPF.mjs";
5
5
  import { t as loginWeb } from "./login-DUx5JYuW.mjs";
6
- import { whatsappSetupWizard as whatsappSetupWizard$1 } from "./setup-surface-C_flQyHy.mjs";
6
+ import { whatsappSetupWizard as whatsappSetupWizard$1 } from "./setup-surface-Bx1YGjai.mjs";
7
7
  //#region extensions/whatsapp/src/channel.runtime.ts
8
8
  const whatsappSetupWizard = { ...whatsappSetupWizard$1 };
9
9
  //#endregion
@@ -1,4 +1,4 @@
1
- import { t as createWhatsAppPluginBase } from "./shared-SqcOkt51.mjs";
1
+ import { t as createWhatsAppPluginBase } from "./shared-C-Sc9ylU.mjs";
2
2
  //#region extensions/whatsapp/src/channel.setup.ts
3
3
  const whatsappSetupPlugin = createWhatsAppPluginBase();
4
4
  //#endregion
@@ -0,0 +1 @@
1
+ export { whatsappLegacySessionSurface } from "../legacy-session-surface-api.js";
@@ -28,7 +28,7 @@ import { buildChannelInboundEventContext, createChannelPartialDeliveryError, fil
28
28
  import { getAgentScopedMediaLocalRoots } from "openclaw/plugin-sdk/media-runtime";
29
29
  import { isReasoningReplyPayload, resolveSendableOutboundReplyParts, resolveTextChunksWithFallback, sendMediaWithLeadingCaption } from "openclaw/plugin-sdk/reply-payload";
30
30
  import { normalizeE164, normalizeE164 as normalizeE164$1, normalizeE164 as normalizeE164$2, truncateUtf16Safe } from "openclaw/plugin-sdk/text-utility-runtime";
31
- import { DisconnectReason, downloadMediaMessage, isHostedLidUser, isHostedPnUser, isJidGroup, isJidGroup as isJidGroup$1, jidDecode, jidEncode, jidNormalizedUser, normalizeMessageContent as normalizeMessageContent$1 } from "baileys";
31
+ import { DisconnectReason, WAMessageStubType, downloadMediaMessage, isHostedLidUser, isHostedPnUser, isJidGroup, isJidGroup as isJidGroup$1, jidDecode, jidEncode, jidNormalizedUser, normalizeMessageContent as normalizeMessageContent$1 } from "baileys";
32
32
  import { pruneMapToMaxSize } from "openclaw/plugin-sdk/collection-runtime";
33
33
  import { DEFAULT_MAIN_KEY, buildAgentMainSessionKey, buildAgentSessionKey, buildGroupHistoryKey, deriveLastRoutePolicy, resolveAgentRoute, resolveInboundLastRouteSessionKey } from "openclaw/plugin-sdk/routing";
34
34
  import { asDateTimestampMs, parseStrictFiniteNumber, resolveExpiresAtMsFromDurationMs, resolvePromptHistoryLimit } from "openclaw/plugin-sdk/number-runtime";
@@ -1384,6 +1384,7 @@ function createWhatsAppMessageDeliveryCoordinator(options) {
1384
1384
  const handleMessagesUpsert = async (upsert) => {
1385
1385
  if (upsert.type !== "notify" && upsert.type !== "append") return;
1386
1386
  for (const msg of upsert.messages ?? []) {
1387
+ if (!msg.message && msg.messageStubType === WAMessageStubType.CIPHERTEXT) continue;
1387
1388
  rememberBaileysMessage(msg.key?.remoteJid, msg.key?.id, msg.message);
1388
1389
  const receiveOrder = nextReceiveOrder++;
1389
1390
  let approvalReactionResolved = false;
@@ -2149,7 +2150,7 @@ function hasWhatsAppAudioBody(msg) {
2149
2150
  return (msg.payload.media?.kind === "audio" || msg.payload.media?.type?.startsWith("audio/") === true) && !msg.payload.body.trim();
2150
2151
  }
2151
2152
  async function transcribeWhatsAppAudioMessage(cfg, msg, accountId) {
2152
- const { transcribeFirstAudio } = await import("./audio-preflight.runtime-Dg8oZgre.mjs");
2153
+ const { transcribeFirstAudio } = await import("./audio-preflight.runtime-DOv4YzLh.mjs");
2153
2154
  const media = msg.payload.media;
2154
2155
  const conversationId = msg.admission.conversation.id;
2155
2156
  return await transcribeFirstAudio({
@@ -3950,7 +3951,7 @@ function isRetryableAuthUnstableError(error) {
3950
3951
  const DEFAULT_TRANSPORT_TIMEOUT_MS = 3e5;
3951
3952
  const WHATSAPP_RECONNECT_CATCH_UP_MAX_MS = 12e5;
3952
3953
  async function monitorWebChannel(verbose, listenerFactory = attachWebInboxToSocket, keepAlive = true, replyResolver, runtime = defaultRuntime, abortSignal, tuning = {}) {
3953
- const activeReplyResolver = replyResolver ?? (await import("./reply-resolver.runtime-Ded8D58Y.mjs")).getReplyFromConfig;
3954
+ const activeReplyResolver = replyResolver ?? (await import("./reply-resolver.runtime-Byxo9w3l.mjs")).getReplyFromConfig;
3954
3955
  const runId = newConnectionId();
3955
3956
  const replyLogger = getChildLogger$1({
3956
3957
  module: "web-auto-reply",
@@ -0,0 +1 @@
1
+ export { getReplyFromConfig } from "openclaw/plugin-sdk/reply-runtime";
@@ -2,7 +2,7 @@ import { a as resolveWhatsAppAccount, o as resolveWhatsAppAuthDir } from "./acco
2
2
  import { r as resolveDefaultWhatsAppAccountId } from "./account-ids-CB5SOWjc.mjs";
3
3
  import { n as hasWebCredsSync } from "./creds-files-B8WcOAmE.mjs";
4
4
  import { a as normalizeWhatsAppAllowFromEntries, o as normalizeWhatsAppAllowFromEntry } from "./normalize-target-D67Kc3g6.mjs";
5
- import { n as whatsappSetupAdapter } from "./shared-SqcOkt51.mjs";
5
+ import { n as whatsappSetupAdapter } from "./shared-C-Sc9ylU.mjs";
6
6
  import { formatCliCommand, formatDocsLink } from "openclaw/plugin-sdk/setup-tools";
7
7
  import { DEFAULT_ACCOUNT_ID, createSetupTranslator, splitSetupEntries } from "openclaw/plugin-sdk/setup";
8
8
  //#region extensions/whatsapp/src/setup-finalize.ts
@@ -0,0 +1,2 @@
1
+ export { t as whatsappSetupPlugin } from "./channel.setup-B9HtOvuH.mjs";
2
+ import "../setup-plugin-api.js";
@@ -36,7 +36,7 @@ const whatsappSetupWizard = {
36
36
  },
37
37
  resolveShouldPromptAccountIds: ({ shouldPromptAccountIds }) => shouldPromptAccountIds,
38
38
  credentials: [],
39
- finalize: async (params) => await (await import("./setup-finalize-DSiP_-wa.mjs")).finalizeWhatsAppSetup(params),
39
+ finalize: async (params) => await (await import("./setup-finalize-Cd5JX7fD.mjs")).finalizeWhatsAppSetup(params),
40
40
  disable: (cfg) => setSetupChannelEnabled(cfg, channel, false),
41
41
  onAccountRecorded: (accountId, options) => {
42
42
  options?.onAccountId?.(channel, accountId);
@@ -27,7 +27,7 @@ async function readWhatsAppAccountLinkState(authDir) {
27
27
  }
28
28
  const loadWhatsAppChannelRuntime = createLazyRuntimeModule(async () => {
29
29
  await loadWhatsAppAuthStore();
30
- return await import("./channel.runtime-DTj-wkEP.mjs");
30
+ return await import("./channel.runtime-EBjI_3fz.mjs");
31
31
  });
32
32
  //#endregion
33
33
  //#region extensions/whatsapp/src/group-policy.ts
@@ -132,7 +132,7 @@ const whatsappResolveDmPolicy = createScopedDmSecurityResolver({
132
132
  });
133
133
  const whatsappSetupWizardProxy = createDelegatedSetupWizardProxy({
134
134
  channel: WHATSAPP_CHANNEL,
135
- loadWizard: async () => (await import("./setup-surface-C_flQyHy.mjs")).whatsappSetupWizard,
135
+ loadWizard: async () => (await import("./setup-surface-Bx1YGjai.mjs")).whatsappSetupWizard,
136
136
  status: {
137
137
  configuredLabel: "linked",
138
138
  unconfiguredLabel: "not linked",
@@ -1,2 +1 @@
1
- import { t as handleWhatsAppAction } from "./.setup/action-runtime-DUSkWTiZ.mjs";
2
- export { handleWhatsAppAction };
1
+ export { t as handleWhatsAppAction } from "./.setup/action-runtime-DUSkWTiZ.mjs";
@@ -1,2 +1 @@
1
- import { t as handleWhatsAppAction } from "./.setup/action-runtime-DUSkWTiZ.mjs";
2
- export { handleWhatsAppAction };
1
+ export { t as handleWhatsAppAction } from "./.setup/action-runtime-DUSkWTiZ.mjs";
package/dist/api.js CHANGED
@@ -3,10 +3,10 @@ import { r as resolveDefaultWhatsAppAccountId, t as listAccountIds } from "./.se
3
3
  import { a as normalizeWhatsAppAllowFromEntries, c as normalizeWhatsAppTarget, i as looksLikeWhatsAppTargetId, r as isWhatsAppUserTarget, s as normalizeWhatsAppMessagingTarget, t as isWhatsAppGroupJid } from "./.setup/normalize-target-D67Kc3g6.mjs";
4
4
  import { t as resolveWhatsAppOutboundTarget } from "./.setup/resolve-outbound-target-qikGL4r0.mjs";
5
5
  import { c as toWhatsappJid, i as markdownToWhatsApp, l as toWhatsappJidWithLid, n as isSelfChatMode, r as jidToE164, s as resolveJidToE164, t as assertWebChannel } from "./.setup/targets-runtime-D5ryyPxh.mjs";
6
- import { n as WHATSAPP_LEGACY_OUTBOUND_SEND_DEP_KEYS, t as whatsappPlugin } from "./.setup/channel-DcHw3Up2.mjs";
7
- import { i as resolveWhatsAppGroupToolPolicy, r as resolveWhatsAppGroupRequireMention } from "./.setup/shared-SqcOkt51.mjs";
6
+ import { n as WHATSAPP_LEGACY_OUTBOUND_SEND_DEP_KEYS, t as whatsappPlugin } from "./.setup/channel-DjBm_r3f.mjs";
7
+ import { i as resolveWhatsAppGroupToolPolicy, r as resolveWhatsAppGroupRequireMention } from "./.setup/shared-C-Sc9ylU.mjs";
8
8
  import { t as whatsappCommandPolicy } from "./.setup/command-policy-BIOSHySD.mjs";
9
- import { t as whatsappSetupPlugin } from "./.setup/channel.setup-BJWEyQlF.mjs";
9
+ import { t as whatsappSetupPlugin } from "./.setup/channel.setup-B9HtOvuH.mjs";
10
10
  import { t as DEFAULT_WEB_MEDIA_BYTES } from "./.setup/constants-C7m81BNe.mjs";
11
11
  import { d as DEFAULT_WHATSAPP_SOCKET_TIMING, f as createWhatsAppSocketOperationTimeoutAdapter, i as waitForWaConnection, r as createWaSocket } from "./.setup/socket-close-C9OU9mVN.mjs";
12
12
  import { n as getStatusCode, t as formatError } from "./.setup/session-errors-B8UcAnZN.mjs";
@@ -1,2 +1 @@
1
- import { t as WhatsAppChannelConfigSchema } from "./.setup/config-schema-BYA6e_Ii.mjs";
2
- export { WhatsAppChannelConfigSchema };
1
+ export { t as WhatsAppChannelConfigSchema } from "./.setup/config-schema-BYA6e_Ii.mjs";
@@ -1,2 +1 @@
1
- import { t as whatsappPlugin } from "./.setup/channel-DcHw3Up2.mjs";
2
- export { whatsappPlugin };
1
+ export { t as whatsappPlugin } from "./.setup/channel-DjBm_r3f.mjs";
@@ -1,2 +1 @@
1
- import { startWebLoginWithQr, waitForWebLogin } from "./login-qr-runtime.js";
2
- export { startWebLoginWithQr, waitForWebLogin };
1
+ export { startWebLoginWithQr, waitForWebLogin } from "./login-qr-runtime.js";
@@ -10,7 +10,7 @@ import { n as resolveWebAccountId, t as getActiveWebListener } from "./.setup/ac
10
10
  import { i as waitForWaConnection, r as createWaSocket, s as newConnectionId } from "./.setup/socket-close-C9OU9mVN.mjs";
11
11
  import { n as getStatusCode, t as formatError } from "./.setup/session-errors-B8UcAnZN.mjs";
12
12
  import { p as extractText, s as extractContactContext, u as extractLocationData } from "./.setup/send-api-COzRvqXx.mjs";
13
- import { a as loadWebMediaRaw, c as monitorWebInbox, i as loadWebMedia, l as resetWebInboundDedupe, n as LocalMediaAccessError, o as optimizeImageToJpeg, r as getDefaultLocalRoots, s as optimizeImageToPng, t as monitorWebChannel } from "./.setup/monitor-CmXEQad9.mjs";
13
+ import { a as loadWebMediaRaw, c as monitorWebInbox, i as loadWebMedia, l as resetWebInboundDedupe, n as LocalMediaAccessError, o as optimizeImageToJpeg, r as getDefaultLocalRoots, s as optimizeImageToPng, t as monitorWebChannel } from "./.setup/monitor-DoUaWcPF.mjs";
14
14
  import { t as loginWeb } from "./.setup/login-DUx5JYuW.mjs";
15
15
  import { HEARTBEAT_PROMPT, HEARTBEAT_TOKEN, SILENT_REPLY_TOKEN, stripHeartbeatToken } from "openclaw/plugin-sdk/reply-runtime";
16
16
  export { DEFAULT_WEB_MEDIA_BYTES, HEARTBEAT_PROMPT, HEARTBEAT_TOKEN, LocalMediaAccessError, SILENT_REPLY_TOKEN, WA_WEB_AUTH_DIR, WHATSAPP_AUTH_UNSTABLE_CODE, WhatsAppAuthUnstableError, createWaSocket, createWhatsAppLoginTool, extractContactContext, extractLocationData, extractText, formatError, formatWhatsAppWebAuthStatusState, getActiveWebListener, getDefaultLocalRoots, getStatusCode, getWebAuthAgeMs, handleWhatsAppAction, hasWebCredsSync, loadWebMedia, loadWebMediaRaw, logWebSelfId, loginWeb, logoutWeb, monitorWebChannel, monitorWebInbox, newConnectionId, optimizeImageToJpeg, optimizeImageToPng, pickWebChannel, readWebCredsJsonRawSync as readCredsJsonRaw, readWebAuthExistsBestEffort, readWebAuthExistsForDecision, readWebAuthSnapshot, readWebAuthSnapshotBestEffort, readWebAuthState, readWebSelfId, readWebSelfIdentity, readWebSelfIdentityForDecision, resetWebInboundDedupe, resolveDefaultWebAuthDir, resolveWebAccountId, resolveWebCredsBackupPath, resolveWebCredsPath, restoreCredsFromBackupIfNeeded, sendMessageWhatsApp, sendPollWhatsApp, sendReactionWhatsApp, sendTypingWhatsApp, setWhatsAppRuntime, startWebLoginWithQr, stripHeartbeatToken, waitForCredsSaveQueue, waitForCredsSaveQueueWithTimeout, waitForWaConnection, waitForWebLogin, webAuthExists, whatsAppActionRuntime, writeCredsJsonAtomically };
@@ -1,2 +1 @@
1
- import { a as setWhatsAppRuntime } from "./.setup/runtime-BLlToOi6.mjs";
2
- export { setWhatsAppRuntime };
1
+ export { a as setWhatsAppRuntime } from "./.setup/runtime-BLlToOi6.mjs";
@@ -1,2 +1 @@
1
- import { n as unsupportedSecretRefSurfacePatterns, t as collectUnsupportedSecretRefConfigCandidates } from "./.setup/security-contract-nAzD945y.mjs";
2
- export { collectUnsupportedSecretRefConfigCandidates, unsupportedSecretRefSurfacePatterns };
1
+ export { t as collectUnsupportedSecretRefConfigCandidates, n as unsupportedSecretRefSurfacePatterns } from "./.setup/security-contract-nAzD945y.mjs";
@@ -5,11 +5,11 @@ var setup_entry_default = defineBundledChannelSetupEntry({
5
5
  importMetaUrl: import.meta.url,
6
6
  features: { legacySessionSurfaces: true },
7
7
  plugin: {
8
- specifier: fileURLToPath(new URL(".setup/setup-plugin-api-8WdNCjRW.mjs", import.meta.url).href),
8
+ specifier: fileURLToPath(new URL(".setup/setup-plugin-api-cq01XJ-u.mjs", import.meta.url).href),
9
9
  exportName: "whatsappSetupPlugin"
10
10
  },
11
11
  legacySessionSurface: {
12
- specifier: fileURLToPath(new URL(".setup/legacy-session-surface-api-B2szjq4r.mjs", import.meta.url).href),
12
+ specifier: fileURLToPath(new URL(".setup/legacy-session-surface-api-BwP_Pgmu.mjs", import.meta.url).href),
13
13
  exportName: "whatsappLegacySessionSurface"
14
14
  }
15
15
  });
@@ -1,2 +1 @@
1
- import { t as whatsappSetupPlugin } from "./.setup/channel.setup-BJWEyQlF.mjs";
2
- export { whatsappSetupPlugin };
1
+ export { t as whatsappSetupPlugin } from "./.setup/channel.setup-B9HtOvuH.mjs";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openclaw/whatsapp",
3
- "version": "2026.10.5-beta.4",
3
+ "version": "2026.10.5",
4
4
  "description": "OpenClaw WhatsApp channel plugin for WhatsApp Web chats.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -13,7 +13,7 @@
13
13
  "typebox": "1.3.34"
14
14
  },
15
15
  "peerDependencies": {
16
- "openclaw": ">=2026.10.5-beta.4"
16
+ "openclaw": ">=2026.10.5"
17
17
  },
18
18
  "peerDependenciesMeta": {
19
19
  "openclaw": {
@@ -65,11 +65,11 @@
65
65
  "minHostVersion": ">=2026.4.25"
66
66
  },
67
67
  "compat": {
68
- "pluginApi": ">=2026.10.5-beta.4"
68
+ "pluginApi": ">=2026.10.5"
69
69
  },
70
70
  "build": {
71
71
  "bundledDist": false,
72
- "openclawVersion": "2026.10.5-beta.4"
72
+ "openclawVersion": "2026.10.5"
73
73
  },
74
74
  "release": {
75
75
  "publishToClawHub": true,
@@ -1,2 +0,0 @@
1
- import { transcribeFirstAudio } from "openclaw/plugin-sdk/media-runtime";
2
- export { transcribeFirstAudio };
@@ -1,2 +0,0 @@
1
- import { whatsappLegacySessionSurface } from "../legacy-session-surface-api.js";
2
- export { whatsappLegacySessionSurface };
@@ -1,2 +0,0 @@
1
- import { getReplyFromConfig } from "openclaw/plugin-sdk/reply-runtime";
2
- export { getReplyFromConfig };
@@ -1,3 +0,0 @@
1
- import { t as whatsappSetupPlugin } from "./channel.setup-BJWEyQlF.mjs";
2
- import "../setup-plugin-api.js";
3
- export { whatsappSetupPlugin };