@openclaw/whatsapp 2026.5.10-beta.3 → 2026.5.10-beta.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.
- package/dist/api.js +3 -3
- package/dist/{channel-yfTKmDAy.js → channel-D8JseTzy.js} +1 -1
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel.runtime-U2LumvwN.js → channel.runtime-BHVFPFlu.js} +1 -1
- package/dist/{channel.setup-k1Ro0czO.js → channel.setup-BuK8IaLl.js} +1 -1
- package/dist/{monitor-DcfFBU0V.js → monitor-BUZiKfTw.js} +93 -38
- package/dist/runtime-api.js +1 -1
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{shared-CcuxfjaQ.js → shared-Ihk-Sj__.js} +1 -1
- package/package.json +4 -4
package/dist/api.js
CHANGED
|
@@ -5,12 +5,12 @@ import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-BK
|
|
|
5
5
|
import "./reaction-level-2m9sWGCw.js";
|
|
6
6
|
import { c as assertWebChannel, d as markdownToWhatsApp, f as resolveJidToE164, l as isSelfChatMode, m as toWhatsappJidWithLid, n as normalizeE164, p as toWhatsappJid, r as resolveUserPath, u as jidToE164 } from "./text-runtime-CMxQczvs.js";
|
|
7
7
|
import "./send-DBfXQDd4.js";
|
|
8
|
-
import { t as whatsappPlugin } from "./channel-
|
|
8
|
+
import { t as whatsappPlugin } from "./channel-D8JseTzy.js";
|
|
9
9
|
import { n as WHATSAPP_LEGACY_OUTBOUND_SEND_DEP_KEYS } from "./outbound-base-BgtywpNm.js";
|
|
10
10
|
import { t as whatsappCommandPolicy } from "./command-policy-O8sRnqUV.js";
|
|
11
|
-
import { a as resolveWhatsAppGroupToolPolicy, i as resolveWhatsAppGroupRequireMention, o as resolveWhatsAppGroupIntroHint } from "./shared-
|
|
11
|
+
import { a as resolveWhatsAppGroupToolPolicy, i as resolveWhatsAppGroupRequireMention, o as resolveWhatsAppGroupIntroHint } from "./shared-Ihk-Sj__.js";
|
|
12
12
|
import "./config-schema-Dmo66Ubb.js";
|
|
13
|
-
import { t as whatsappSetupPlugin } from "./channel.setup-
|
|
13
|
+
import { t as whatsappSetupPlugin } from "./channel.setup-BuK8IaLl.js";
|
|
14
14
|
import { t as DEFAULT_WEB_MEDIA_BYTES } from "./constants-DLGCIbfl.js";
|
|
15
15
|
import { n as listWhatsAppDirectoryGroupsFromConfig, r as listWhatsAppDirectoryPeersFromConfig } from "./directory-config-CE74HYlw.js";
|
|
16
16
|
import { t as __testing } from "./access-control-BEpPB-Jx.js";
|
|
@@ -10,7 +10,7 @@ import { t as createWhatsAppLoginTool } from "./agent-tools-login-DpRxLNRB.js";
|
|
|
10
10
|
import { t as createWhatsAppOutboundBase } from "./outbound-base-BgtywpNm.js";
|
|
11
11
|
import { t as getWhatsAppRuntime } from "./runtime-6fZ67abR.js";
|
|
12
12
|
import { t as whatsappCommandPolicy } from "./command-policy-O8sRnqUV.js";
|
|
13
|
-
import { a as resolveWhatsAppGroupToolPolicy, c as formatWhatsAppConfigAllowFromEntries, i as resolveWhatsAppGroupRequireMention, n as loadWhatsAppChannelRuntime, o as resolveWhatsAppGroupIntroHint, r as whatsappSetupWizardProxy, s as resolveWhatsAppMentionStripRegexes, t as createWhatsAppPluginBase } from "./shared-
|
|
13
|
+
import { a as resolveWhatsAppGroupToolPolicy, c as formatWhatsAppConfigAllowFromEntries, i as resolveWhatsAppGroupRequireMention, n as loadWhatsAppChannelRuntime, o as resolveWhatsAppGroupIntroHint, r as whatsappSetupWizardProxy, s as resolveWhatsAppMentionStripRegexes, t as createWhatsAppPluginBase } from "./shared-Ihk-Sj__.js";
|
|
14
14
|
import { d as readWebAuthExistsForDecision, n as WHATSAPP_AUTH_UNSTABLE_CODE } from "./auth-store-_ScMvp7r.js";
|
|
15
15
|
import { t as whatsappSetupAdapter } from "./setup-core-DZKvpzbH.js";
|
|
16
16
|
import { t as detectWhatsAppLegacyStateMigrations } from "./state-migrations-Bm0S67yH.js";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as whatsappPlugin } from "./channel-
|
|
1
|
+
import { t as whatsappPlugin } from "./channel-D8JseTzy.js";
|
|
2
2
|
export { whatsappPlugin };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { startWebLoginWithQr as startWebLoginWithQr$1, waitForWebLogin as waitForWebLogin$1 } from "./login-qr-runtime.js";
|
|
2
2
|
import { a as getWebAuthAgeMs$1, b as webAuthExists$1, d as readWebAuthExistsForDecision$1, f as readWebAuthSnapshot$1, h as readWebSelfId$1, m as readWebAuthState$1, o as logWebSelfId$1, p as readWebAuthSnapshotBestEffort$1, s as logoutWeb$1, u as readWebAuthExistsBestEffort$1 } from "./auth-store-_ScMvp7r.js";
|
|
3
3
|
import { t as getActiveWebListener$1 } from "./active-listener-DTbKS-j-.js";
|
|
4
|
-
import { t as monitorWebChannel$1 } from "./monitor-
|
|
4
|
+
import { t as monitorWebChannel$1 } from "./monitor-BUZiKfTw.js";
|
|
5
5
|
import { t as loginWeb$1 } from "./login-eiyCwLI5.js";
|
|
6
6
|
import { whatsappSetupWizard as whatsappSetupWizard$1 } from "./setup-surface-DJAu-uxi.js";
|
|
7
7
|
//#region extensions/whatsapp/src/channel.runtime.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as resolveWhatsAppGroupToolPolicy, i as resolveWhatsAppGroupRequireMention, o as resolveWhatsAppGroupIntroHint, r as whatsappSetupWizardProxy, t as createWhatsAppPluginBase } from "./shared-
|
|
1
|
+
import { a as resolveWhatsAppGroupToolPolicy, i as resolveWhatsAppGroupRequireMention, o as resolveWhatsAppGroupIntroHint, r as whatsappSetupWizardProxy, t as createWhatsAppPluginBase } from "./shared-Ihk-Sj__.js";
|
|
2
2
|
import { m as readWebAuthState } from "./auth-store-_ScMvp7r.js";
|
|
3
3
|
import { t as whatsappSetupAdapter } from "./setup-core-DZKvpzbH.js";
|
|
4
4
|
import { t as detectWhatsAppLegacyStateMigrations } from "./state-migrations-Bm0S67yH.js";
|
|
@@ -482,7 +482,7 @@ async function attachWebInboxToSocket(options) {
|
|
|
482
482
|
}
|
|
483
483
|
const messageTimestampMs = msg.messageTimestamp ? Number(msg.messageTimestamp) * 1e3 : void 0;
|
|
484
484
|
const access = await checkInboundAccessControl({
|
|
485
|
-
cfg: options.cfg,
|
|
485
|
+
cfg: options.loadConfig?.() ?? options.cfg,
|
|
486
486
|
accountId: options.accountId,
|
|
487
487
|
from,
|
|
488
488
|
selfE164: self.e164 ?? null,
|
|
@@ -2261,9 +2261,9 @@ async function processMessage(params) {
|
|
|
2261
2261
|
//#endregion
|
|
2262
2262
|
//#region extensions/whatsapp/src/auto-reply/monitor/on-message.ts
|
|
2263
2263
|
function createWebOnMessageHandler(params) {
|
|
2264
|
-
const processForRoute = async (msg, route, groupHistoryKey, opts) => {
|
|
2264
|
+
const processForRoute = async (cfg, msg, route, groupHistoryKey, opts) => {
|
|
2265
2265
|
const processParams = {
|
|
2266
|
-
cfg
|
|
2266
|
+
cfg,
|
|
2267
2267
|
msg,
|
|
2268
2268
|
route,
|
|
2269
2269
|
groupHistoryKey,
|
|
@@ -2288,10 +2288,11 @@ function createWebOnMessageHandler(params) {
|
|
|
2288
2288
|
return processMessage(processParams);
|
|
2289
2289
|
};
|
|
2290
2290
|
return async (msg) => {
|
|
2291
|
+
const cfg = params.loadConfig?.() ?? params.cfg;
|
|
2291
2292
|
const conversationId = msg.conversationId ?? msg.from;
|
|
2292
2293
|
const peerId = resolvePeerId(msg);
|
|
2293
2294
|
const baseRoute = resolveAgentRoute({
|
|
2294
|
-
cfg
|
|
2295
|
+
cfg,
|
|
2295
2296
|
channel: "whatsapp",
|
|
2296
2297
|
accountId: msg.accountId,
|
|
2297
2298
|
peer: {
|
|
@@ -2306,6 +2307,11 @@ function createWebOnMessageHandler(params) {
|
|
|
2306
2307
|
peerKind: "group",
|
|
2307
2308
|
peerId
|
|
2308
2309
|
}) : route.sessionKey;
|
|
2310
|
+
const account = resolveWhatsAppAccount({
|
|
2311
|
+
cfg,
|
|
2312
|
+
accountId: route.accountId ?? msg.accountId ?? params.account.accountId
|
|
2313
|
+
});
|
|
2314
|
+
const baseMentionConfig = buildMentionConfig(cfg);
|
|
2309
2315
|
if (msg.from === msg.to) logVerbose(`📱 Same-phone mode detected (from === to: ${msg.from})`);
|
|
2310
2316
|
if (params.echoTracker.has(msg.body)) {
|
|
2311
2317
|
logVerbose("Skipping auto-reply: detected echo (message matches recently sent text)");
|
|
@@ -2320,7 +2326,7 @@ function createWebOnMessageHandler(params) {
|
|
|
2320
2326
|
const runAudioPreflightOnce = async () => {
|
|
2321
2327
|
if (preflightAudioTranscript !== void 0 || !canRunEarlyAudioPreflight || !hasAudioBody || !msg.mediaPath) return;
|
|
2322
2328
|
ackReaction = await maybeSendAckReaction({
|
|
2323
|
-
cfg
|
|
2329
|
+
cfg,
|
|
2324
2330
|
msg,
|
|
2325
2331
|
agentId: route.agentId,
|
|
2326
2332
|
sessionKey: route.sessionKey,
|
|
@@ -2345,7 +2351,7 @@ function createWebOnMessageHandler(params) {
|
|
|
2345
2351
|
OriginatingTo: conversationId,
|
|
2346
2352
|
AccountId: route.accountId
|
|
2347
2353
|
},
|
|
2348
|
-
cfg
|
|
2354
|
+
cfg
|
|
2349
2355
|
}) ?? null;
|
|
2350
2356
|
} catch {
|
|
2351
2357
|
preflightAudioTranscript = null;
|
|
@@ -2370,7 +2376,7 @@ function createWebOnMessageHandler(params) {
|
|
|
2370
2376
|
OriginatingTo: conversationId
|
|
2371
2377
|
};
|
|
2372
2378
|
updateLastRouteInBackground({
|
|
2373
|
-
cfg
|
|
2379
|
+
cfg,
|
|
2374
2380
|
backgroundTasks: params.backgroundTasks,
|
|
2375
2381
|
storeAgentId: route.agentId,
|
|
2376
2382
|
sessionKey: route.sessionKey,
|
|
@@ -2381,16 +2387,16 @@ function createWebOnMessageHandler(params) {
|
|
|
2381
2387
|
warn: params.replyLogger.warn.bind(params.replyLogger)
|
|
2382
2388
|
});
|
|
2383
2389
|
let gating = await applyGroupGating({
|
|
2384
|
-
cfg
|
|
2390
|
+
cfg,
|
|
2385
2391
|
msg,
|
|
2386
2392
|
deferMissingMention: hasAudioBody && Boolean(msg.mediaPath),
|
|
2387
2393
|
conversationId,
|
|
2388
2394
|
groupHistoryKey,
|
|
2389
2395
|
agentId: route.agentId,
|
|
2390
2396
|
sessionKey: route.sessionKey,
|
|
2391
|
-
baseMentionConfig
|
|
2392
|
-
authDir:
|
|
2393
|
-
selfChatMode:
|
|
2397
|
+
baseMentionConfig,
|
|
2398
|
+
authDir: account.authDir,
|
|
2399
|
+
selfChatMode: account.selfChatMode,
|
|
2394
2400
|
groupHistories: params.groupHistories,
|
|
2395
2401
|
groupHistoryLimit: params.groupHistoryLimit,
|
|
2396
2402
|
groupMemberNames: params.groupMemberNames,
|
|
@@ -2400,16 +2406,16 @@ function createWebOnMessageHandler(params) {
|
|
|
2400
2406
|
if (!gating.shouldProcess && "needsMentionText" in gating && gating.needsMentionText === true) {
|
|
2401
2407
|
await runAudioPreflightOnce();
|
|
2402
2408
|
gating = await applyGroupGating({
|
|
2403
|
-
cfg
|
|
2409
|
+
cfg,
|
|
2404
2410
|
msg,
|
|
2405
2411
|
...typeof preflightAudioTranscript === "string" ? { mentionText: preflightAudioTranscript } : {},
|
|
2406
2412
|
conversationId,
|
|
2407
2413
|
groupHistoryKey,
|
|
2408
2414
|
agentId: route.agentId,
|
|
2409
2415
|
sessionKey: route.sessionKey,
|
|
2410
|
-
baseMentionConfig
|
|
2411
|
-
authDir:
|
|
2412
|
-
selfChatMode:
|
|
2416
|
+
baseMentionConfig,
|
|
2417
|
+
authDir: account.authDir,
|
|
2418
|
+
selfChatMode: account.selfChatMode,
|
|
2413
2419
|
groupHistories: params.groupHistories,
|
|
2414
2420
|
groupHistoryLimit: params.groupHistoryLimit,
|
|
2415
2421
|
groupMemberNames: params.groupMemberNames,
|
|
@@ -2430,7 +2436,7 @@ function createWebOnMessageHandler(params) {
|
|
|
2430
2436
|
}
|
|
2431
2437
|
await runAudioPreflightOnce();
|
|
2432
2438
|
if (await maybeBroadcastMessage({
|
|
2433
|
-
cfg
|
|
2439
|
+
cfg,
|
|
2434
2440
|
msg,
|
|
2435
2441
|
peerId,
|
|
2436
2442
|
route,
|
|
@@ -2439,9 +2445,9 @@ function createWebOnMessageHandler(params) {
|
|
|
2439
2445
|
...preflightAudioTranscript !== void 0 ? { preflightAudioTranscript } : {},
|
|
2440
2446
|
...ackAlreadySent && msg.chatType !== "group" ? { ackAlreadySent: true } : {},
|
|
2441
2447
|
...ackReaction && msg.chatType !== "group" ? { ackReaction } : {},
|
|
2442
|
-
processMessage: (m, r, k, opts) => processForRoute(m, r, k, opts)
|
|
2448
|
+
processMessage: (m, r, k, opts) => processForRoute(cfg, m, r, k, opts)
|
|
2443
2449
|
})) return;
|
|
2444
|
-
await processForRoute(msg, route, groupHistoryKey, {
|
|
2450
|
+
await processForRoute(cfg, msg, route, groupHistoryKey, {
|
|
2445
2451
|
...preflightAudioTranscript !== void 0 ? { preflightAudioTranscript } : {},
|
|
2446
2452
|
...ackAlreadySent ? { ackAlreadySent: true } : {},
|
|
2447
2453
|
...ackReaction ? { ackReaction } : {}
|
|
@@ -2458,6 +2464,34 @@ function loadReplyResolverRuntime() {
|
|
|
2458
2464
|
replyResolverRuntimePromise ??= import("./reply-resolver.runtime-rIVWohXr.js");
|
|
2459
2465
|
return replyResolverRuntimePromise;
|
|
2460
2466
|
}
|
|
2467
|
+
function resolveWebMonitorConfigSnapshot(params) {
|
|
2468
|
+
const account = resolveWhatsAppAccount({
|
|
2469
|
+
cfg: params.cfg,
|
|
2470
|
+
accountId: params.accountId
|
|
2471
|
+
});
|
|
2472
|
+
return {
|
|
2473
|
+
cfg: {
|
|
2474
|
+
...params.cfg,
|
|
2475
|
+
channels: {
|
|
2476
|
+
...params.cfg.channels,
|
|
2477
|
+
whatsapp: {
|
|
2478
|
+
...params.cfg.channels?.whatsapp,
|
|
2479
|
+
ackReaction: account.ackReaction,
|
|
2480
|
+
messagePrefix: account.messagePrefix,
|
|
2481
|
+
allowFrom: account.allowFrom,
|
|
2482
|
+
groupAllowFrom: account.groupAllowFrom,
|
|
2483
|
+
groupPolicy: account.groupPolicy,
|
|
2484
|
+
textChunkLimit: account.textChunkLimit,
|
|
2485
|
+
chunkMode: account.chunkMode,
|
|
2486
|
+
mediaMaxMb: account.mediaMaxMb,
|
|
2487
|
+
blockStreaming: account.blockStreaming,
|
|
2488
|
+
groups: account.groups
|
|
2489
|
+
}
|
|
2490
|
+
}
|
|
2491
|
+
},
|
|
2492
|
+
account
|
|
2493
|
+
};
|
|
2494
|
+
}
|
|
2461
2495
|
function normalizeReconnectAccountId(accountId) {
|
|
2462
2496
|
return (accountId ?? "").trim() || "default";
|
|
2463
2497
|
}
|
|
@@ -2522,29 +2556,14 @@ async function monitorWebChannel(verbose, listenerFactory = attachWebInboxToSock
|
|
|
2522
2556
|
statusController.emit();
|
|
2523
2557
|
const baseCfg = getRuntimeConfig$1();
|
|
2524
2558
|
const sourceCfg = getRuntimeConfigSourceSnapshot();
|
|
2525
|
-
const account =
|
|
2559
|
+
const { cfg, account } = resolveWebMonitorConfigSnapshot({
|
|
2526
2560
|
cfg: baseCfg,
|
|
2527
2561
|
accountId: tuning.accountId
|
|
2528
2562
|
});
|
|
2529
|
-
const
|
|
2530
|
-
|
|
2531
|
-
|
|
2532
|
-
|
|
2533
|
-
whatsapp: {
|
|
2534
|
-
...baseCfg.channels?.whatsapp,
|
|
2535
|
-
ackReaction: account.ackReaction,
|
|
2536
|
-
messagePrefix: account.messagePrefix,
|
|
2537
|
-
allowFrom: account.allowFrom,
|
|
2538
|
-
groupAllowFrom: account.groupAllowFrom,
|
|
2539
|
-
groupPolicy: account.groupPolicy,
|
|
2540
|
-
textChunkLimit: account.textChunkLimit,
|
|
2541
|
-
chunkMode: account.chunkMode,
|
|
2542
|
-
mediaMaxMb: account.mediaMaxMb,
|
|
2543
|
-
blockStreaming: account.blockStreaming,
|
|
2544
|
-
groups: account.groups
|
|
2545
|
-
}
|
|
2546
|
-
}
|
|
2547
|
-
};
|
|
2563
|
+
const loadCurrentMonitorConfig = () => resolveWebMonitorConfigSnapshot({
|
|
2564
|
+
cfg: getRuntimeConfig$1(),
|
|
2565
|
+
accountId: account.accountId
|
|
2566
|
+
}).cfg;
|
|
2548
2567
|
const maxMediaBytes = resolveWhatsAppMediaMaxBytes(account);
|
|
2549
2568
|
const heartbeatSeconds = resolveHeartbeatSeconds(cfg, tuning.heartbeatSeconds);
|
|
2550
2569
|
const reconnectPolicy = resolveReconnectPolicy(cfg, tuning.reconnect);
|
|
@@ -2611,6 +2630,7 @@ async function monitorWebChannel(verbose, listenerFactory = attachWebInboxToSock
|
|
|
2611
2630
|
createListener: async ({ sock, connection }) => {
|
|
2612
2631
|
const onMessage = createWebOnMessageHandler({
|
|
2613
2632
|
cfg,
|
|
2633
|
+
loadConfig: loadCurrentMonitorConfig,
|
|
2614
2634
|
verbose,
|
|
2615
2635
|
connectionId,
|
|
2616
2636
|
maxMediaBytes,
|
|
@@ -2626,6 +2646,7 @@ async function monitorWebChannel(verbose, listenerFactory = attachWebInboxToSock
|
|
|
2626
2646
|
});
|
|
2627
2647
|
return await (listenerFactory ?? attachWebInboxToSocket)({
|
|
2628
2648
|
cfg,
|
|
2649
|
+
loadConfig: loadCurrentMonitorConfig,
|
|
2629
2650
|
verbose,
|
|
2630
2651
|
accountId: account.accountId,
|
|
2631
2652
|
authDir: account.authDir,
|
|
@@ -2686,6 +2707,40 @@ async function monitorWebChannel(verbose, listenerFactory = attachWebInboxToSock
|
|
|
2686
2707
|
}
|
|
2687
2708
|
});
|
|
2688
2709
|
} catch (error) {
|
|
2710
|
+
if (getStatusCode(error) === 428) {
|
|
2711
|
+
const retryDecision = controller.consumeReconnectAttempt();
|
|
2712
|
+
statusController.noteReconnectAttempts(retryDecision.reconnectAttempts);
|
|
2713
|
+
statusController.noteClose({
|
|
2714
|
+
statusCode: 428,
|
|
2715
|
+
error: formatError(error),
|
|
2716
|
+
reconnectAttempts: retryDecision.reconnectAttempts,
|
|
2717
|
+
healthState: retryDecision.healthState
|
|
2718
|
+
});
|
|
2719
|
+
if (retryDecision.action === "stop") {
|
|
2720
|
+
reconnectLogger.warn({
|
|
2721
|
+
connectionId,
|
|
2722
|
+
status: 428,
|
|
2723
|
+
reconnectAttempts: retryDecision.reconnectAttempts,
|
|
2724
|
+
maxAttempts: reconnectPolicy.maxAttempts
|
|
2725
|
+
}, "web reconnect: 428 during opening; max attempts reached");
|
|
2726
|
+
runtime.error(`WhatsApp Web connection closed during setup (status 428) after ${retryDecision.reconnectAttempts}/${reconnectPolicy.maxAttempts} attempts. Relink with \`${formatCliCommand("openclaw channels login --channel whatsapp")}\` if the issue persists.`);
|
|
2727
|
+
await controller.shutdown();
|
|
2728
|
+
break;
|
|
2729
|
+
}
|
|
2730
|
+
reconnectLogger.info({
|
|
2731
|
+
connectionId,
|
|
2732
|
+
status: 428,
|
|
2733
|
+
reconnectAttempts: retryDecision.reconnectAttempts,
|
|
2734
|
+
delayMs: retryDecision.delayMs
|
|
2735
|
+
}, "web reconnect: 428 during opening; retrying");
|
|
2736
|
+
runtime.error(`WhatsApp Web connection closed during setup (status 428). Retry ${retryDecision.reconnectAttempts}/${reconnectPolicy.maxAttempts || "∞"} in ${formatDurationPrecise(retryDecision.delayMs ?? 0)}.`);
|
|
2737
|
+
try {
|
|
2738
|
+
await controller.waitBeforeRetry(retryDecision.delayMs ?? 0);
|
|
2739
|
+
} catch {
|
|
2740
|
+
break;
|
|
2741
|
+
}
|
|
2742
|
+
continue;
|
|
2743
|
+
}
|
|
2689
2744
|
if (!isRetryableAuthUnstableError(error)) throw error;
|
|
2690
2745
|
const retryDecision = controller.consumeReconnectAttempt();
|
|
2691
2746
|
statusController.noteReconnectAttempts(retryDecision.reconnectAttempts);
|
package/dist/runtime-api.js
CHANGED
|
@@ -10,7 +10,7 @@ import { t as DEFAULT_WEB_MEDIA_BYTES } from "./constants-DLGCIbfl.js";
|
|
|
10
10
|
import { c as extractContactContext, d as extractMediaPlaceholder, p as extractText, u as extractLocationData } from "./send-api-DD93aPIQ.js";
|
|
11
11
|
import { n as newConnectionId, r as waitForWaConnection, t as createWaSocket } from "./session-CVCKPoQN.js";
|
|
12
12
|
import { n as resolveWebAccountId, t as getActiveWebListener } from "./active-listener-DTbKS-j-.js";
|
|
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 "./monitor-
|
|
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 "./monitor-BUZiKfTw.js";
|
|
14
14
|
import { t as loginWeb } from "./login-eiyCwLI5.js";
|
|
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, extractMediaPlaceholder, extractText, formatError, formatWhatsAppWebAuthStatusState, getActiveWebListener, getDefaultLocalRoots, getStatusCode, getWebAuthAgeMs, handleWhatsAppAction, hasWebCredsSync, loadWebMedia, loadWebMediaRaw, logWebSelfId, loginWeb, logoutWeb, monitorWebChannel, monitorWebInbox, newConnectionId, optimizeImageToJpeg, optimizeImageToPng, pickWebChannel, 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 };
|
package/dist/setup-plugin-api.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as whatsappSetupPlugin } from "./channel.setup-
|
|
1
|
+
import { t as whatsappSetupPlugin } from "./channel.setup-BuK8IaLl.js";
|
|
2
2
|
export { whatsappSetupPlugin };
|
|
@@ -124,7 +124,7 @@ function resolveWhatsAppConfigPath(params) {
|
|
|
124
124
|
return `${resolveWhatsAppGroupScopeBasePath(params)}.${params.field}`;
|
|
125
125
|
}
|
|
126
126
|
async function loadWhatsAppChannelRuntime() {
|
|
127
|
-
return await import("./channel.runtime-
|
|
127
|
+
return await import("./channel.runtime-BHVFPFlu.js");
|
|
128
128
|
}
|
|
129
129
|
async function loadWhatsAppSetupSurface() {
|
|
130
130
|
return await import("./setup-surface-DJAu-uxi.js");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/whatsapp",
|
|
3
|
-
"version": "2026.5.10-beta.
|
|
3
|
+
"version": "2026.5.10-beta.5",
|
|
4
4
|
"description": "OpenClaw WhatsApp channel plugin",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"openclaw": "workspace:*"
|
|
20
20
|
},
|
|
21
21
|
"peerDependencies": {
|
|
22
|
-
"openclaw": ">=2026.5.10-beta.
|
|
22
|
+
"openclaw": ">=2026.5.10-beta.5"
|
|
23
23
|
},
|
|
24
24
|
"peerDependenciesMeta": {
|
|
25
25
|
"openclaw": {
|
|
@@ -61,10 +61,10 @@
|
|
|
61
61
|
"minHostVersion": ">=2026.4.25"
|
|
62
62
|
},
|
|
63
63
|
"compat": {
|
|
64
|
-
"pluginApi": ">=2026.5.10-beta.
|
|
64
|
+
"pluginApi": ">=2026.5.10-beta.5"
|
|
65
65
|
},
|
|
66
66
|
"build": {
|
|
67
|
-
"openclawVersion": "2026.5.10-beta.
|
|
67
|
+
"openclawVersion": "2026.5.10-beta.5"
|
|
68
68
|
},
|
|
69
69
|
"release": {
|
|
70
70
|
"publishToClawHub": true,
|