@openclaw/whatsapp 2026.8.1-beta.3 → 2026.8.1
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/{accounts-BX2fZUyR.js → accounts-CeKQbu_s.js} +9 -26
- package/dist/{action-runtime-pM-ExU0l.js → action-runtime-YA_Yvunu.js} +2 -2
- package/dist/action-runtime-api.js +1 -1
- package/dist/action-runtime.runtime.js +1 -1
- package/dist/{call-tool-api.js → agent-tools-api.js} +11 -4
- package/dist/{agent-tools-login-BjRpD-JQ.js → agent-tools-login-B-2qZPzc.js} +12 -3
- package/dist/api.js +6 -6
- package/dist/{approval-handler.runtime-CkMMvUjk.js → approval-handler.runtime-C7jZ8rsD.js} +3 -3
- package/dist/{approval-reactions-Jyr1JaAK.js → approval-reactions-rpaNVHzZ.js} +2 -2
- package/dist/{channel-DRMYRfZ8.js → channel-Dx09AAmX.js} +10 -12
- package/dist/channel-plugin-api.js +1 -1
- package/dist/{channel-react-action-CstrR0CT.js → channel-react-action-n9a8Hk5i.js} +3 -3
- package/dist/{channel.runtime-X3JC2gaq.js → channel.runtime-D_PjmeMT.js} +3 -3
- package/dist/{channel.setup-DhBBhbQv.js → channel.setup-CRJQiWbh.js} +1 -1
- package/dist/{directory-config-P7_3U73Z.js → directory-config-Ci8Jjsw4.js} +1 -1
- package/dist/directory-contract-api.js +1 -1
- package/dist/{group-session-key-DmFc_Cqi.js → group-session-key-CH9jJIVQ.js} +1 -1
- package/dist/index.js +4 -4
- package/dist/light-runtime-api.js +1 -1
- package/dist/{login-BkpKpndm.js → login-1u5WcfTn.js} +1 -1
- package/dist/{login-qr-1dpv6jjT.js → login-qr-B_1sr0hk.js} +35 -14
- package/dist/login-qr-runtime.js +1 -1
- package/dist/{monitor-IzwQKizW.js → monitor-CySzv38g.js} +115 -108
- package/dist/{question-reactions-D3eAeB0i.js → question-reactions-B9D6MHXZ.js} +1 -1
- package/dist/runtime-api.js +6 -6
- package/dist/{send-CwvTU4RI.js → send-C3S-NqyO.js} +2 -2
- package/dist/{send-api-obOSm2cC.js → send-api-C-FFC1p_.js} +3 -3
- package/dist/{setup-finalize-n4K2I2gJ.js → setup-finalize-CRzMpx84.js} +4 -4
- package/dist/setup-plugin-api.js +1 -1
- package/dist/{setup-surface-Cwn3zyxK.js → setup-surface-ym4doiv3.js} +2 -2
- package/dist/{shared-wg42NKFB.js → shared-D3B14d45.js} +3 -3
- package/node_modules/baileys/lib/Defaults/index.js +1 -1
- package/node_modules/baileys/lib/Socket/business.d.ts.map +1 -1
- package/node_modules/baileys/lib/Socket/chats.d.ts +1 -0
- package/node_modules/baileys/lib/Socket/chats.d.ts.map +1 -1
- package/node_modules/baileys/lib/Socket/chats.js +10 -5
- package/node_modules/baileys/lib/Socket/chats.js.map +1 -1
- package/node_modules/baileys/lib/Socket/communities.d.ts.map +1 -1
- package/node_modules/baileys/lib/Socket/groups.d.ts.map +1 -1
- package/node_modules/baileys/lib/Socket/index.d.ts.map +1 -1
- package/node_modules/baileys/lib/Socket/messages-recv.d.ts.map +1 -1
- package/node_modules/baileys/lib/Socket/messages-send.d.ts.map +1 -1
- package/node_modules/baileys/lib/Socket/newsletter.d.ts.map +1 -1
- package/node_modules/baileys/lib/Socket/socket.d.ts.map +1 -1
- package/node_modules/baileys/lib/Socket/socket.js +3 -0
- package/node_modules/baileys/lib/Socket/socket.js.map +1 -1
- package/node_modules/baileys/lib/Types/index.d.ts +1 -0
- package/node_modules/baileys/lib/Types/index.d.ts.map +1 -1
- package/node_modules/baileys/lib/Types/index.js.map +1 -1
- package/node_modules/baileys/lib/Utils/browser-utils.d.ts.map +1 -1
- package/node_modules/baileys/lib/Utils/browser-utils.js +1 -0
- package/node_modules/baileys/lib/Utils/browser-utils.js.map +1 -1
- package/node_modules/baileys/lib/Utils/generics.d.ts +1 -0
- package/node_modules/baileys/lib/Utils/generics.d.ts.map +1 -1
- package/node_modules/baileys/lib/Utils/generics.js +1 -1
- package/node_modules/baileys/lib/Utils/generics.js.map +1 -1
- package/node_modules/baileys/lib/Utils/tc-token-utils.d.ts.map +1 -1
- package/node_modules/baileys/lib/Utils/tc-token-utils.js +3 -2
- package/node_modules/baileys/lib/Utils/tc-token-utils.js.map +1 -1
- package/node_modules/baileys/lib/Utils/validate-connection.d.ts.map +1 -1
- package/node_modules/baileys/lib/Utils/validate-connection.js +9 -2
- package/node_modules/baileys/lib/Utils/validate-connection.js.map +1 -1
- package/node_modules/baileys/node_modules/content-type/README.md +2 -0
- package/node_modules/baileys/node_modules/content-type/dist/index.d.ts +20 -0
- package/node_modules/baileys/node_modules/content-type/dist/index.js +20 -14
- package/node_modules/baileys/node_modules/content-type/dist/index.js.map +1 -1
- package/node_modules/baileys/node_modules/content-type/package.json +1 -1
- package/node_modules/baileys/node_modules/file-type/package.json +1 -1
- package/node_modules/baileys/node_modules/file-type/readme.md +3 -0
- package/node_modules/baileys/node_modules/file-type/source/detectors/zip.js +6 -1
- package/node_modules/baileys/node_modules/file-type/source/index.d.ts +3 -0
- package/node_modules/baileys/node_modules/file-type/source/index.js +25 -13
- package/node_modules/baileys/node_modules/music-metadata/LICENSE.txt +9 -9
- package/node_modules/baileys/node_modules/music-metadata/README.md +878 -878
- package/node_modules/baileys/node_modules/music-metadata/lib/ParseError.d.ts +1 -1
- package/node_modules/baileys/node_modules/music-metadata/lib/ParseError.js +1 -1
- package/node_modules/baileys/node_modules/music-metadata/lib/asf/AsfObject.d.ts +1 -4
- package/node_modules/baileys/node_modules/music-metadata/lib/asf/AsfObject.js +66 -30
- package/node_modules/baileys/node_modules/music-metadata/lib/asf/AsfParser.d.ts +5 -1
- package/node_modules/baileys/node_modules/music-metadata/lib/asf/AsfParser.js +94 -25
- package/node_modules/baileys/node_modules/music-metadata/lib/dsf/DsfChunk.js +2 -2
- package/node_modules/baileys/node_modules/music-metadata/lib/dsf/DsfParser.js +38 -13
- package/node_modules/baileys/node_modules/music-metadata/lib/mp4/AtomToken.js +2 -1
- package/node_modules/baileys/node_modules/music-metadata/lib/mp4/MP4Parser.js +34 -7
- package/node_modules/baileys/node_modules/music-metadata/lib/ogg/speex/SpeexStream.d.ts +7 -0
- package/node_modules/baileys/node_modules/music-metadata/lib/ogg/speex/SpeexStream.js +13 -0
- package/node_modules/baileys/node_modules/music-metadata/lib/riff/RiffChunk.js +1 -1
- package/node_modules/baileys/node_modules/music-metadata/package.json +156 -156
- package/node_modules/baileys/node_modules/protobufjs/README.md +61 -84
- package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.js +66 -45
- package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
- package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
- package/node_modules/baileys/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
- package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.js +47 -40
- package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
- package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
- package/node_modules/baileys/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
- package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.js +92 -68
- package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.js.map +1 -1
- package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.min.js +3 -3
- package/node_modules/baileys/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
- package/node_modules/baileys/node_modules/protobufjs/ext/descriptor.js +26 -10
- package/node_modules/baileys/node_modules/protobufjs/index.d.ts +3 -0
- package/node_modules/baileys/node_modules/protobufjs/package.json +1 -1
- package/node_modules/baileys/node_modules/protobufjs/src/converter.js +5 -1
- package/node_modules/baileys/node_modules/protobufjs/src/enum.js +5 -2
- package/node_modules/baileys/node_modules/protobufjs/src/field.js +6 -1
- package/node_modules/baileys/node_modules/protobufjs/src/parse.js +26 -23
- package/node_modules/baileys/node_modules/protobufjs/src/reader.js +36 -9
- package/node_modules/baileys/node_modules/protobufjs/src/util/codegen.js +3 -1
- package/node_modules/baileys/node_modules/protobufjs/src/util/utf8.js +2 -28
- package/node_modules/baileys/node_modules/protobufjs/src/writer.js +7 -1
- package/node_modules/baileys/package.json +1 -1
- package/node_modules/typebox/build/format/date.d.mts +1 -1
- package/node_modules/typebox/build/format/date.mjs +1 -1
- package/node_modules/typebox/build/format/date_time.d.mts +2 -2
- package/node_modules/typebox/build/format/date_time.mjs +3 -3
- package/node_modules/typebox/build/format/email.d.mts +1 -1
- package/node_modules/typebox/build/format/email.mjs +2 -2
- package/node_modules/typebox/build/format/hostname.mjs +2 -10
- package/node_modules/typebox/build/format/idn_email.d.mts +1 -1
- package/node_modules/typebox/build/format/idn_email.mjs +3 -3
- package/node_modules/typebox/build/format/idn_hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idn_hostname.mjs +3 -11
- package/node_modules/typebox/build/format/idna/format/bidi.d.mts +3 -0
- package/node_modules/typebox/build/format/idna/format/bidi.mjs +98 -0
- package/node_modules/typebox/build/format/idna/format/puny.d.mts +3 -0
- package/node_modules/typebox/build/format/idna/format/puny.mjs +144 -0
- package/node_modules/typebox/build/format/idna/hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/hostname.mjs +16 -0
- package/node_modules/typebox/build/format/idna/idn-hostname.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/idn-hostname.mjs +23 -0
- package/node_modules/typebox/build/format/idna/index.d.mts +2 -0
- package/node_modules/typebox/build/format/idna/index.mjs +2 -0
- package/node_modules/typebox/build/format/idna/label/ascii.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/ascii.mjs +9 -0
- package/node_modules/typebox/build/format/idna/label/puny.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/puny.mjs +28 -0
- package/node_modules/typebox/build/format/idna/label/unicode.d.mts +1 -0
- package/node_modules/typebox/build/format/idna/label/unicode.mjs +106 -0
- package/node_modules/typebox/build/format/idna/pattern/pattern.d.mts +30 -0
- package/node_modules/typebox/build/format/idna/pattern/pattern.mjs +70 -0
- package/node_modules/typebox/build/format/ipv4.d.mts +0 -1
- package/node_modules/typebox/build/format/ipv4.mjs +2 -32
- package/node_modules/typebox/build/format/ipv6.mjs +2 -61
- package/node_modules/typebox/build/format/iri.d.mts +2 -2
- package/node_modules/typebox/build/format/iri.mjs +26 -8
- package/node_modules/typebox/build/format/iri_reference.d.mts +2 -2
- package/node_modules/typebox/build/format/iri_reference.mjs +9 -55
- package/node_modules/typebox/build/format/regex.d.mts +1 -2
- package/node_modules/typebox/build/format/regex.mjs +2 -6
- package/node_modules/typebox/build/format/time.d.mts +2 -2
- package/node_modules/typebox/build/format/time.mjs +19 -14
- package/node_modules/typebox/build/format/uri.d.mts +1 -1
- package/node_modules/typebox/build/format/uri.mjs +3 -130
- package/node_modules/typebox/build/format/uri_reference.d.mts +1 -1
- package/node_modules/typebox/build/format/uri_reference.mjs +2 -3
- package/node_modules/typebox/build/format/uri_template.d.mts +2 -3
- package/node_modules/typebox/build/format/uri_template.mjs +4 -5
- package/node_modules/typebox/build/format/url.d.mts +3 -3
- package/node_modules/typebox/build/format/url.mjs +4 -5
- package/node_modules/typebox/build/guard/emit.d.mts +3 -1
- package/node_modules/typebox/build/guard/emit.mjs +12 -5
- package/node_modules/typebox/build/guard/guard.d.mts +8 -2
- package/node_modules/typebox/build/guard/guard.mjs +25 -4
- package/node_modules/typebox/build/guard/string.d.mts +2 -2
- package/node_modules/typebox/build/guard/string.mjs +7 -7
- package/node_modules/typebox/build/schema/engine/_context.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/_functions.mjs +1 -2
- package/node_modules/typebox/build/schema/engine/_regexp.d.mts +2 -0
- package/node_modules/typebox/build/schema/engine/_regexp.mjs +4 -0
- package/node_modules/typebox/build/schema/engine/_stack.mjs +12 -13
- package/node_modules/typebox/build/schema/engine/additionalItems.mjs +17 -7
- package/node_modules/typebox/build/schema/engine/additionalProperties.mjs +4 -3
- package/node_modules/typebox/build/schema/engine/contains.mjs +18 -6
- package/node_modules/typebox/build/schema/engine/enum.mjs +1 -1
- package/node_modules/typebox/build/schema/engine/items.mjs +26 -6
- package/node_modules/typebox/build/schema/engine/maxContains.mjs +3 -3
- package/node_modules/typebox/build/schema/engine/minContains.mjs +14 -4
- package/node_modules/typebox/build/schema/engine/not.mjs +4 -2
- package/node_modules/typebox/build/schema/engine/oneOf.mjs +7 -6
- package/node_modules/typebox/build/schema/engine/pattern.mjs +3 -2
- package/node_modules/typebox/build/schema/engine/patternProperties.mjs +4 -3
- package/node_modules/typebox/build/schema/engine/ref.mjs +1 -7
- package/node_modules/typebox/build/schema/engine/schema.mjs +13 -4
- package/node_modules/typebox/build/schema/engine/type.mjs +1 -1
- package/node_modules/typebox/build/schema/resolve/resolve.d.mts +4 -1
- package/node_modules/typebox/build/schema/resolve/resolve.mjs +202 -1
- package/node_modules/typebox/build/schema/static/propertyNames.d.mts +5 -0
- package/node_modules/typebox/build/schema/static/propertyNames.mjs +3 -0
- package/node_modules/typebox/build/schema/static/schema.d.mts +3 -0
- package/node_modules/typebox/build/schema/types/index.d.mts +0 -2
- package/node_modules/typebox/build/schema/types/index.mjs +0 -2
- package/node_modules/typebox/build/system/memory/clone.mjs +14 -11
- package/node_modules/typebox/build/system/memory/discard.mjs +6 -5
- package/node_modules/typebox/build/system/settings/settings.d.mts +9 -0
- package/node_modules/typebox/build/system/settings/settings.mjs +2 -0
- package/node_modules/typebox/build/type/engine/call/distribute_arguments.d.mts +6 -1
- package/node_modules/typebox/build/type/engine/call/distribute_arguments.mjs +16 -3
- package/node_modules/typebox/build/type/engine/call/instantiate.mjs +34 -4
- package/node_modules/typebox/build/type/engine/evaluate/broaden.d.mts +5 -5
- package/node_modules/typebox/build/type/engine/evaluate/broaden.mjs +20 -26
- package/node_modules/typebox/build/type/engine/evaluate/compare.d.mts +6 -10
- package/node_modules/typebox/build/type/engine/evaluate/compare.mjs +9 -13
- package/node_modules/typebox/build/type/engine/evaluate/composite.d.mts +7 -4
- package/node_modules/typebox/build/type/engine/evaluate/composite.mjs +12 -19
- package/node_modules/typebox/build/type/engine/evaluate/distribute.d.mts +4 -20
- package/node_modules/typebox/build/type/engine/evaluate/distribute.mjs +8 -20
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.d.mts +4 -4
- package/node_modules/typebox/build/type/engine/evaluate/evaluate.mjs +11 -8
- package/node_modules/typebox/build/type/engine/evaluate/flatten.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/evaluate/flatten.mjs +3 -4
- package/node_modules/typebox/build/type/engine/evaluate/narrow.d.mts +17 -2
- package/node_modules/typebox/build/type/engine/evaluate/narrow.mjs +26 -6
- package/node_modules/typebox/build/type/engine/exclude/operation.mjs +3 -4
- package/node_modules/typebox/build/type/engine/extract/operation.d.mts +1 -1
- package/node_modules/typebox/build/type/engine/extract/operation.mjs +3 -4
- package/node_modules/typebox/build/type/engine/priority/priority.d.mts +2 -2
- package/node_modules/typebox/build/type/engine/priority/priority.mjs +3 -4
- package/node_modules/typebox/build/type/script/mapping.d.mts +32 -29
- package/node_modules/typebox/build/type/script/mapping.mjs +18 -25
- package/node_modules/typebox/build/type/script/parser.d.mts +19 -25
- package/node_modules/typebox/build/type/script/parser.mjs +27 -23
- package/node_modules/typebox/build/value/errors/errors.d.mts +2 -2
- package/node_modules/typebox/build/value/errors/errors.mjs +1 -1
- package/node_modules/typebox/package.json +27 -27
- package/node_modules/typebox/readme.md +79 -82
- package/openclaw.plugin.json +2 -1
- package/package.json +6 -6
- package/node_modules/typebox/build/format/_idna.d.mts +0 -2
- package/node_modules/typebox/build/format/_idna.mjs +0 -246
- package/node_modules/typebox/build/format/_puny.d.mts +0 -1
- package/node_modules/typebox/build/format/_puny.mjs +0 -77
- package/node_modules/typebox/build/schema/resolve/ref.d.mts +0 -3
- package/node_modules/typebox/build/schema/resolve/ref.mjs +0 -146
- package/node_modules/typebox/build/schema/types/contentEncoding.d.mts +0 -9
- package/node_modules/typebox/build/schema/types/contentEncoding.mjs +0 -13
- package/node_modules/typebox/build/schema/types/contentMediaType.d.mts +0 -9
- package/node_modules/typebox/build/schema/types/contentMediaType.mjs +0 -13
|
@@ -2,7 +2,7 @@ import { n as listConfiguredAccountIds, r as resolveDefaultWhatsAppAccountId, t
|
|
|
2
2
|
import { n as hasWebCredsRegularFileSync, r as hasWebCredsSync } from "./creds-files-W6B3EMZ8.js";
|
|
3
3
|
import fs from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
5
|
-
import { DEFAULT_ACCOUNT_ID,
|
|
5
|
+
import { DEFAULT_ACCOUNT_ID, normalizeAccountId, resolveAccountEntry, resolveMergedAccountConfig, resolveUserPath } from "openclaw/plugin-sdk/account-core";
|
|
6
6
|
import { resolveOAuthDir } from "openclaw/plugin-sdk/state-paths";
|
|
7
7
|
import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
8
8
|
//#region extensions/whatsapp/src/account-config.ts
|
|
@@ -12,36 +12,19 @@ function resolveWhatsAppDefaultAccountSharedConfig(cfg) {
|
|
|
12
12
|
const { enabled: _ignoredEnabled, name: _ignoredName, authDir: _ignoredAuthDir, selfChatMode: _ignoredSelfChatMode, ...sharedDefaults } = defaultAccount;
|
|
13
13
|
return sharedDefaults;
|
|
14
14
|
}
|
|
15
|
-
function resolveWhatsAppAccountConfigForTest(cfg, accountId) {
|
|
16
|
-
return resolveAccountEntry(cfg.channels?.whatsapp?.accounts, accountId);
|
|
17
|
-
}
|
|
18
|
-
function resolveMergedNamedWhatsAppAccountConfig(params) {
|
|
19
|
-
const rootCfg = params.cfg.channels?.whatsapp;
|
|
20
|
-
const accountConfig = resolveWhatsAppAccountConfigForTest(params.cfg, params.accountId);
|
|
21
|
-
return {
|
|
22
|
-
...mergeAccountConfig({
|
|
23
|
-
channelConfig: rootCfg,
|
|
24
|
-
accountConfig: void 0,
|
|
25
|
-
omitKeys: ["defaultAccount"]
|
|
26
|
-
}),
|
|
27
|
-
...resolveWhatsAppDefaultAccountSharedConfig(params.cfg),
|
|
28
|
-
...accountConfig
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
15
|
function resolveMergedWhatsAppAccountConfig(params) {
|
|
32
16
|
const rootCfg = params.cfg.channels?.whatsapp;
|
|
33
17
|
const accountId = params.accountId?.trim() || rootCfg?.defaultAccount || DEFAULT_ACCOUNT_ID;
|
|
34
|
-
const base = resolveMergedAccountConfig({
|
|
35
|
-
channelConfig: rootCfg,
|
|
36
|
-
accounts: rootCfg?.accounts,
|
|
37
|
-
accountId,
|
|
38
|
-
omitKeys: ["defaultAccount"]
|
|
39
|
-
});
|
|
40
18
|
return {
|
|
41
19
|
accountId,
|
|
42
|
-
...
|
|
43
|
-
|
|
44
|
-
|
|
20
|
+
...resolveMergedAccountConfig({
|
|
21
|
+
channelConfig: {
|
|
22
|
+
...rootCfg,
|
|
23
|
+
...accountId === DEFAULT_ACCOUNT_ID ? void 0 : resolveWhatsAppDefaultAccountSharedConfig(params.cfg)
|
|
24
|
+
},
|
|
25
|
+
accounts: rootCfg?.accounts,
|
|
26
|
+
accountId,
|
|
27
|
+
omitKeys: ["defaultAccount"]
|
|
45
28
|
})
|
|
46
29
|
};
|
|
47
30
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as resolveWhatsAppAccount } from "./accounts-
|
|
1
|
+
import { a as resolveWhatsAppAccount } from "./accounts-CeKQbu_s.js";
|
|
2
2
|
import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-1GqbT1uX.js";
|
|
3
|
-
import { r as sendReactionWhatsApp, v as resolveWhatsAppReactionLevel } from "./send-
|
|
3
|
+
import { r as sendReactionWhatsApp, v as resolveWhatsAppReactionLevel } from "./send-C3S-NqyO.js";
|
|
4
4
|
import { ToolAuthorizationError, createActionGate, jsonResult, readReactionParams, readStringParam } from "openclaw/plugin-sdk/channel-actions";
|
|
5
5
|
//#region extensions/whatsapp/src/action-runtime-target-auth.ts
|
|
6
6
|
function resolveAuthorizedWhatsAppOutboundTarget(params) {
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as handleWhatsAppAction } from "./action-runtime-
|
|
1
|
+
import { t as handleWhatsAppAction } from "./action-runtime-YA_Yvunu.js";
|
|
2
2
|
export { handleWhatsAppAction };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as handleWhatsAppAction } from "./action-runtime-
|
|
1
|
+
import { t as handleWhatsAppAction } from "./action-runtime-YA_Yvunu.js";
|
|
2
2
|
export { handleWhatsAppAction };
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
import { a as resolveWhatsAppAccount } from "./accounts-
|
|
1
|
+
import { a as resolveWhatsAppAccount } from "./accounts-CeKQbu_s.js";
|
|
2
2
|
import { r as getWhatsAppConnectionController } from "./connection-controller-runtime-context-DG0tuYuw.js";
|
|
3
3
|
import { s as resolveJidToE164 } from "./targets-runtime-TMk0lGuy.js";
|
|
4
|
+
import { n as registerWhatsAppLoginTool } from "./agent-tools-login-B-2qZPzc.js";
|
|
4
5
|
import { createActionGate, stringEnum } from "openclaw/plugin-sdk/channel-actions";
|
|
5
6
|
import path from "node:path";
|
|
6
7
|
import { resolveOAuthDir } from "openclaw/plugin-sdk/state-paths";
|
|
7
8
|
import { normalizeE164 } from "openclaw/plugin-sdk/account-resolution";
|
|
8
|
-
import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
9
|
-
import { Type } from "typebox";
|
|
10
9
|
import fs from "node:fs/promises";
|
|
10
|
+
import { normalizeAccountId } from "openclaw/plugin-sdk/account-id";
|
|
11
11
|
import { mulawToPcm } from "openclaw/plugin-sdk/realtime-voice";
|
|
12
12
|
import { detectBinary } from "openclaw/plugin-sdk/setup-tools";
|
|
13
13
|
import { resolvePreferredOpenClawTmpDir } from "openclaw/plugin-sdk/temp-path";
|
|
14
14
|
import { jsonResult as jsonResult$1 } from "openclaw/plugin-sdk/tool-results";
|
|
15
|
+
import { Type } from "typebox";
|
|
15
16
|
//#region extensions/whatsapp/src/agent-tools-call.ts
|
|
16
17
|
const MEOWCALLER_COMMAND = "meowcaller";
|
|
17
18
|
const SESSION_DATABASE = "wa-voip.db";
|
|
@@ -222,4 +223,10 @@ function registerWhatsAppCallTool(api) {
|
|
|
222
223
|
api.registerTool((context) => createWhatsAppCallTool(api, context), { name: "whatsapp_call" });
|
|
223
224
|
}
|
|
224
225
|
//#endregion
|
|
225
|
-
|
|
226
|
+
//#region extensions/whatsapp/agent-tools-api.ts
|
|
227
|
+
function registerWhatsAppAgentTools(api) {
|
|
228
|
+
registerWhatsAppCallTool(api);
|
|
229
|
+
registerWhatsAppLoginTool(api);
|
|
230
|
+
}
|
|
231
|
+
//#endregion
|
|
232
|
+
export { registerWhatsAppAgentTools };
|
|
@@ -8,7 +8,8 @@ const QR_DATA_URL_MAX_LENGTH = 16384;
|
|
|
8
8
|
function readLoginStringPreservingWhitespace(value) {
|
|
9
9
|
return hasNonEmptyString(value) ? value : void 0;
|
|
10
10
|
}
|
|
11
|
-
function createWhatsAppLoginTool() {
|
|
11
|
+
function createWhatsAppLoginTool(context) {
|
|
12
|
+
if (context.senderIsOwner !== true) return null;
|
|
12
13
|
return {
|
|
13
14
|
label: "WhatsApp Login",
|
|
14
15
|
name: "whatsapp_login",
|
|
@@ -23,7 +24,10 @@ function createWhatsAppLoginTool() {
|
|
|
23
24
|
pattern: "^data:image/png;base64,.+$"
|
|
24
25
|
}))
|
|
25
26
|
}),
|
|
26
|
-
execute: async (_toolCallId, args) => {
|
|
27
|
+
execute: async (_toolCallId, args, signal) => {
|
|
28
|
+
const beforeCredentialPersistence = async () => {
|
|
29
|
+
if (!signal || signal.aborted) throw new Error("WhatsApp login authority is no longer active.");
|
|
30
|
+
};
|
|
27
31
|
const renderQrReply = (params) => {
|
|
28
32
|
return {
|
|
29
33
|
content: [{
|
|
@@ -64,9 +68,11 @@ function createWhatsAppLoginTool() {
|
|
|
64
68
|
details: { connected: result.connected }
|
|
65
69
|
};
|
|
66
70
|
}
|
|
71
|
+
await beforeCredentialPersistence();
|
|
67
72
|
const result = await startWebLoginWithQr({
|
|
68
73
|
accountId,
|
|
69
74
|
timeoutMs,
|
|
75
|
+
beforeCredentialPersistence,
|
|
70
76
|
force: typeof args.force === "boolean" ? args.force : false
|
|
71
77
|
});
|
|
72
78
|
if (!result.qrDataUrl) return {
|
|
@@ -84,5 +90,8 @@ function createWhatsAppLoginTool() {
|
|
|
84
90
|
}
|
|
85
91
|
};
|
|
86
92
|
}
|
|
93
|
+
function registerWhatsAppLoginTool(api) {
|
|
94
|
+
api.registerTool((context) => createWhatsAppLoginTool(context), { name: "whatsapp_login" });
|
|
95
|
+
}
|
|
87
96
|
//#endregion
|
|
88
|
-
export { createWhatsAppLoginTool as t };
|
|
97
|
+
export { registerWhatsAppLoginTool as n, createWhatsAppLoginTool as t };
|
package/dist/api.js
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { a as resolveWhatsAppAccount, i as listWhatsAppAuthDirs, n as hasAnyWhatsAppAuth, o as resolveWhatsAppAuthDir, r as listEnabledWhatsAppAccounts, s as resolveWhatsAppMediaMaxBytes, t as DEFAULT_WHATSAPP_MEDIA_MAX_MB } from "./accounts-
|
|
1
|
+
import { a as resolveWhatsAppAccount, i as listWhatsAppAuthDirs, n as hasAnyWhatsAppAuth, o as resolveWhatsAppAuthDir, r as listEnabledWhatsAppAccounts, s as resolveWhatsAppMediaMaxBytes, t as DEFAULT_WHATSAPP_MEDIA_MAX_MB } from "./accounts-CeKQbu_s.js";
|
|
2
2
|
import { r as resolveDefaultWhatsAppAccountId, t as listAccountIds } from "./account-ids-CB5SOWjc.js";
|
|
3
3
|
import { a as normalizeWhatsAppAllowFromEntries, c as normalizeWhatsAppTarget, i as looksLikeWhatsAppTargetId, r as isWhatsAppUserTarget, s as normalizeWhatsAppMessagingTarget, t as isWhatsAppGroupJid } from "./normalize-target-CugRyONv.js";
|
|
4
4
|
import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-1GqbT1uX.js";
|
|
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 "./targets-runtime-TMk0lGuy.js";
|
|
6
6
|
import { n as resolveUserPath, t as normalizeE164 } from "./text-runtime-CaKLhowd.js";
|
|
7
|
-
import { n as WHATSAPP_LEGACY_OUTBOUND_SEND_DEP_KEYS, t as whatsappPlugin } from "./channel-
|
|
8
|
-
import { a as resolveWhatsAppGroupRequireMention, o as resolveWhatsAppGroupToolPolicy } from "./shared-
|
|
7
|
+
import { n as WHATSAPP_LEGACY_OUTBOUND_SEND_DEP_KEYS, t as whatsappPlugin } from "./channel-Dx09AAmX.js";
|
|
8
|
+
import { a as resolveWhatsAppGroupRequireMention, o as resolveWhatsAppGroupToolPolicy } from "./shared-D3B14d45.js";
|
|
9
9
|
import { t as whatsappCommandPolicy } from "./command-policy-BIOSHySD.js";
|
|
10
|
-
import { t as whatsappSetupPlugin } from "./channel.setup-
|
|
10
|
+
import { t as whatsappSetupPlugin } from "./channel.setup-CRJQiWbh.js";
|
|
11
11
|
import { t as DEFAULT_WEB_MEDIA_BYTES } from "./constants-HU41RHGI.js";
|
|
12
12
|
import { a as waitForWaConnection, o as DEFAULT_WHATSAPP_SOCKET_TIMING, r as createWaSocket, s as createWhatsAppSocketOperationTimeoutAdapter } from "./socket-close-2T0_jZTN.js";
|
|
13
13
|
import { n as getStatusCode, t as formatError } from "./session-errors-JuazczrA.js";
|
|
14
|
-
import { n as listWhatsAppDirectoryGroupsFromConfig, r as listWhatsAppDirectoryPeersFromConfig } from "./directory-config-
|
|
15
|
-
import { _ as resolveInboundMediaMimetype, c as extractContextInfo, m as findMessageSection, o as describeReplyContext, p as extractText, t as createWebSendApi, u as extractLocationData } from "./send-api-
|
|
14
|
+
import { n as listWhatsAppDirectoryGroupsFromConfig, r as listWhatsAppDirectoryPeersFromConfig } from "./directory-config-Ci8Jjsw4.js";
|
|
15
|
+
import { _ as resolveInboundMediaMimetype, c as extractContextInfo, m as findMessageSection, o as describeReplyContext, p as extractText, t as createWebSendApi, u as extractLocationData } from "./send-api-C-FFC1p_.js";
|
|
16
16
|
import { asBoolean, isRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
|
|
17
17
|
import { formatLocationText } from "openclaw/plugin-sdk/channel-inbound";
|
|
18
18
|
//#region extensions/whatsapp/src/qa-driver.runtime.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import "./accounts-
|
|
1
|
+
import "./accounts-CeKQbu_s.js";
|
|
2
2
|
import { r as resolveDefaultWhatsAppAccountId } from "./account-ids-CB5SOWjc.js";
|
|
3
3
|
import { s as normalizeWhatsAppMessagingTarget } from "./normalize-target-CugRyONv.js";
|
|
4
|
-
import { i as sendTypingWhatsApp, t as sendMessageWhatsApp } from "./send-
|
|
4
|
+
import { i as sendTypingWhatsApp, t as sendMessageWhatsApp } from "./send-C3S-NqyO.js";
|
|
5
5
|
import { i as getWhatsAppRuntime } from "./runtime-BLlToOi6.js";
|
|
6
6
|
import "./normalize-C7Hkc_vE.js";
|
|
7
|
-
import { i as unregisterWhatsAppApprovalReactionTarget, r as registerWhatsAppApprovalReactionTarget } from "./approval-reactions-
|
|
7
|
+
import { i as unregisterWhatsAppApprovalReactionTarget, r as registerWhatsAppApprovalReactionTarget } from "./approval-reactions-rpaNVHzZ.js";
|
|
8
8
|
import { createSubsystemLogger } from "openclaw/plugin-sdk/runtime-env";
|
|
9
9
|
import { DEFAULT_ACCOUNT_ID } from "openclaw/plugin-sdk/account-id";
|
|
10
10
|
import { buildApprovalReactionPendingContent } from "openclaw/plugin-sdk/approval-reaction-runtime";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
|
-
import { a as resolveWhatsAppAccount } from "./accounts-
|
|
2
|
+
import { a as resolveWhatsAppAccount } from "./accounts-CeKQbu_s.js";
|
|
3
3
|
import { n as getOptionalWhatsAppRuntime } from "./runtime-BLlToOi6.js";
|
|
4
|
-
import { c as getWhatsAppApprovalApprovers, l as whatsappApprovalAuth } from "./group-session-key-
|
|
4
|
+
import { c as getWhatsAppApprovalApprovers, l as whatsappApprovalAuth } from "./group-session-key-CH9jJIVQ.js";
|
|
5
5
|
import { isApprovalNotFoundError } from "openclaw/plugin-sdk/error-runtime";
|
|
6
6
|
import { createLazyRuntimeSurface } from "openclaw/plugin-sdk/lazy-runtime";
|
|
7
7
|
import { approvalReactionDecisionSetsMatch, buildApprovalReactionDeliveredBindingMarker, createApprovalReactionTargetStore, listApprovalReactionBindings, readApprovalReactionDecisionList, readApprovalReactionDeliveredBinding, readApprovalReactionPresentationBinding, resolveTypedApprovalReactionTarget } from "openclaw/plugin-sdk/approval-reaction-runtime";
|
|
@@ -1,15 +1,14 @@
|
|
|
1
|
-
import { a as resolveWhatsAppAccount } from "./accounts-
|
|
1
|
+
import { a as resolveWhatsAppAccount } from "./accounts-CeKQbu_s.js";
|
|
2
2
|
import { r as resolveDefaultWhatsAppAccountId, t as listAccountIds } from "./account-ids-CB5SOWjc.js";
|
|
3
3
|
import { c as normalizeWhatsAppTarget, i as looksLikeWhatsAppTargetId, n as isWhatsAppNewsletterJid, o as normalizeWhatsAppAllowFromEntry, s as normalizeWhatsAppMessagingTarget, t as isWhatsAppGroupJid } from "./normalize-target-CugRyONv.js";
|
|
4
4
|
import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-1GqbT1uX.js";
|
|
5
|
-
import { c as normalizeWhatsAppPayloadTextPreservingIndentation, i as sendTypingWhatsApp, n as sendPollWhatsApp, o as normalizeWhatsAppOutboundPayload, s as normalizeWhatsAppPayloadText, t as sendMessageWhatsApp, v as resolveWhatsAppReactionLevel } from "./send-
|
|
5
|
+
import { c as normalizeWhatsAppPayloadTextPreservingIndentation, i as sendTypingWhatsApp, n as sendPollWhatsApp, o as normalizeWhatsAppOutboundPayload, s as normalizeWhatsAppPayloadText, t as sendMessageWhatsApp, v as resolveWhatsAppReactionLevel } from "./send-C3S-NqyO.js";
|
|
6
6
|
import { i as getWhatsAppRuntime } from "./runtime-BLlToOi6.js";
|
|
7
7
|
import "./normalize-C7Hkc_vE.js";
|
|
8
8
|
import { c as toWhatsappJid } from "./targets-runtime-TMk0lGuy.js";
|
|
9
9
|
import "./text-runtime-CaKLhowd.js";
|
|
10
|
-
import { t as
|
|
11
|
-
import { c as
|
|
12
|
-
import { a as resolveWhatsAppGroupRequireMention, c as loadWhatsAppChannelRuntime, i as whatsappSetupContract, l as readWhatsAppAccountLinkState, n as whatsappSetupWizardProxy, o as resolveWhatsAppGroupToolPolicy, s as formatWhatsAppConfigAllowFromEntries, t as createWhatsAppPluginBase } from "./shared-wg42NKFB.js";
|
|
10
|
+
import { c as getWhatsAppApprovalApprovers, l as whatsappApprovalAuth, s as lookupInboundMessageMetaForTarget, t as resolveWhatsAppGroupSessionKey } from "./group-session-key-CH9jJIVQ.js";
|
|
11
|
+
import { a as resolveWhatsAppGroupRequireMention, c as loadWhatsAppChannelRuntime, i as whatsappSetupContract, l as readWhatsAppAccountLinkState, n as whatsappSetupWizardProxy, o as resolveWhatsAppGroupToolPolicy, s as formatWhatsAppConfigAllowFromEntries, t as createWhatsAppPluginBase } from "./shared-D3B14d45.js";
|
|
13
12
|
import { t as whatsappCommandPolicy } from "./command-policy-BIOSHySD.js";
|
|
14
13
|
import { f as readWebAuthExistsForDecision, n as WHATSAPP_AUTH_UNSTABLE_CODE } from "./auth-store-CtpBqH5S.js";
|
|
15
14
|
import { createActionGate as createActionGate$1 } from "openclaw/plugin-sdk/channel-actions";
|
|
@@ -22,9 +21,9 @@ import { chunkText } from "openclaw/plugin-sdk/reply-chunking";
|
|
|
22
21
|
import { createMessageReceiptFromOutboundResults, defineChannelMessageAdapter, resolveOutboundSendDep } from "openclaw/plugin-sdk/channel-outbound";
|
|
23
22
|
import { sendTextMediaPayload } from "openclaw/plugin-sdk/reply-payload";
|
|
24
23
|
import { DEFAULT_ACCOUNT_ID as DEFAULT_ACCOUNT_ID$1 } from "openclaw/plugin-sdk/account-id";
|
|
24
|
+
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
25
25
|
import { buildDmGroupAccountAllowlistAdapter } from "openclaw/plugin-sdk/allowlist-config-edit";
|
|
26
26
|
import { createChatChannelPlugin } from "openclaw/plugin-sdk/channel-core";
|
|
27
|
-
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
28
27
|
import { createApproverRestrictedNativeApprovalCapabilityFromForwardingRoutes } from "openclaw/plugin-sdk/approval-delivery-runtime";
|
|
29
28
|
import { createLazyChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
|
|
30
29
|
import { buildApprovalReactionPromptPayloadForRequest } from "openclaw/plugin-sdk/approval-reaction-runtime";
|
|
@@ -80,7 +79,7 @@ const whatsappApproval = createApproverRestrictedNativeApprovalCapabilityFromFor
|
|
|
80
79
|
approvalKind,
|
|
81
80
|
request
|
|
82
81
|
}),
|
|
83
|
-
load: async () => (await import("./approval-handler.runtime-
|
|
82
|
+
load: async () => (await import("./approval-handler.runtime-C7jZ8rsD.js")).whatsappApprovalNativeRuntime
|
|
84
83
|
})
|
|
85
84
|
});
|
|
86
85
|
function buildWhatsAppPendingPayload(params, approvalKind) {
|
|
@@ -260,8 +259,8 @@ function createWhatsAppOutboundBase({ chunker, sendMessageWhatsApp, sendPollWhat
|
|
|
260
259
|
}
|
|
261
260
|
//#endregion
|
|
262
261
|
//#region extensions/whatsapp/src/channel-outbound.ts
|
|
263
|
-
const loadWhatsAppApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-
|
|
264
|
-
const loadWhatsAppQuestionReactionsModule = createLazyRuntimeModule(() => import("./question-reactions-
|
|
262
|
+
const loadWhatsAppApprovalReactionsModule = createLazyRuntimeModule(() => import("./approval-reactions-rpaNVHzZ.js").then((n) => n.t));
|
|
263
|
+
const loadWhatsAppQuestionReactionsModule = createLazyRuntimeModule(() => import("./question-reactions-B9D6MHXZ.js").then((n) => n.n));
|
|
265
264
|
function normalizeWhatsAppChannelPayloadText(text) {
|
|
266
265
|
return normalizeWhatsAppPayloadTextPreservingIndentation(text);
|
|
267
266
|
}
|
|
@@ -525,8 +524,8 @@ function collectWhatsAppStatusIssues(accounts) {
|
|
|
525
524
|
}
|
|
526
525
|
//#endregion
|
|
527
526
|
//#region extensions/whatsapp/src/channel.ts
|
|
528
|
-
const loadWhatsAppDirectoryConfig = createLazyRuntimeModule(() => import("./directory-config-
|
|
529
|
-
const loadWhatsAppChannelReactAction = createLazyRuntimeModule(() => import("./channel-react-action-
|
|
527
|
+
const loadWhatsAppDirectoryConfig = createLazyRuntimeModule(() => import("./directory-config-Ci8Jjsw4.js").then((n) => n.t));
|
|
528
|
+
const loadWhatsAppChannelReactAction = createLazyRuntimeModule(() => import("./channel-react-action-n9a8Hk5i.js"));
|
|
530
529
|
function resolveWhatsAppTargetInfo(raw) {
|
|
531
530
|
const normalized = normalizeWhatsAppTarget(raw);
|
|
532
531
|
if (!normalized) return null;
|
|
@@ -563,7 +562,6 @@ const whatsappPlugin = createChatChannelPlugin({
|
|
|
563
562
|
isConfigured: (account) => Boolean(account.authDir),
|
|
564
563
|
isLinked: async (account) => await readWhatsAppAccountLinkState(account.authDir)
|
|
565
564
|
}),
|
|
566
|
-
agentTools: () => [createWhatsAppLoginTool()],
|
|
567
565
|
allowlist: buildDmGroupAccountAllowlistAdapter({
|
|
568
566
|
channelId: "whatsapp",
|
|
569
567
|
resolveAccount: resolveWhatsAppAccount,
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as whatsappPlugin } from "./channel-
|
|
1
|
+
import { t as whatsappPlugin } from "./channel-Dx09AAmX.js";
|
|
2
2
|
export { whatsappPlugin };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as resolveWhatsAppAccount, s as resolveWhatsAppMediaMaxBytes } from "./accounts-
|
|
1
|
+
import { a as resolveWhatsAppAccount, s as resolveWhatsAppMediaMaxBytes } from "./accounts-CeKQbu_s.js";
|
|
2
2
|
import { c as normalizeWhatsAppTarget, t as isWhatsAppGroupJid } from "./normalize-target-CugRyONv.js";
|
|
3
|
-
import { r as resolveAuthorizedWhatsAppOutboundTarget, t as handleWhatsAppAction } from "./action-runtime-
|
|
4
|
-
import { a as sendWhatsAppUploadFile } from "./send-
|
|
3
|
+
import { r as resolveAuthorizedWhatsAppOutboundTarget, t as handleWhatsAppAction } from "./action-runtime-YA_Yvunu.js";
|
|
4
|
+
import { a as sendWhatsAppUploadFile } from "./send-C3S-NqyO.js";
|
|
5
5
|
import "./normalize-C7Hkc_vE.js";
|
|
6
6
|
import { jsonResult, readStringOrNumberParam, readStringParam as readStringParam$1, resolveReactionMessageId } from "openclaw/plugin-sdk/channel-actions";
|
|
7
7
|
import { canonicalizeBase64, estimateBase64DecodedBytes } from "openclaw/plugin-sdk/media-runtime";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { startWebLoginWithQr as startWebLoginWithQr$1, waitForWebLogin as waitForWebLogin$1 } from "./login-qr-runtime.js";
|
|
2
2
|
import { c as logoutWeb$1, d as readWebAuthExistsBestEffort$1, f as readWebAuthExistsForDecision$1, g as readWebSelfId$1, h as readWebAuthState$1, m as readWebAuthSnapshotBestEffort$1, o as getWebAuthAgeMs$1, p as readWebAuthSnapshot$1, s as logWebSelfId$1, x as webAuthExists$1 } from "./auth-store-CtpBqH5S.js";
|
|
3
3
|
import { t as getActiveWebListener$1 } from "./active-listener-BEjWsCNM.js";
|
|
4
|
-
import { t as monitorWebChannel$1 } from "./monitor-
|
|
5
|
-
import { t as loginWeb$1 } from "./login-
|
|
6
|
-
import { whatsappSetupWizard as whatsappSetupWizard$1 } from "./setup-surface-
|
|
4
|
+
import { t as monitorWebChannel$1 } from "./monitor-CySzv38g.js";
|
|
5
|
+
import { t as loginWeb$1 } from "./login-1u5WcfTn.js";
|
|
6
|
+
import { whatsappSetupWizard as whatsappSetupWizard$1 } from "./setup-surface-ym4doiv3.js";
|
|
7
7
|
//#region extensions/whatsapp/src/channel.runtime.ts
|
|
8
8
|
function getActiveWebListener(...args) {
|
|
9
9
|
return getActiveWebListener$1(...args);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as resolveWhatsAppGroupRequireMention, i as whatsappSetupContract, l as readWhatsAppAccountLinkState, n as whatsappSetupWizardProxy, o as resolveWhatsAppGroupToolPolicy, t as createWhatsAppPluginBase } from "./shared-
|
|
1
|
+
import { a as resolveWhatsAppGroupRequireMention, i as whatsappSetupContract, l as readWhatsAppAccountLinkState, n as whatsappSetupWizardProxy, o as resolveWhatsAppGroupToolPolicy, t as createWhatsAppPluginBase } from "./shared-D3B14d45.js";
|
|
2
2
|
//#region extensions/whatsapp/src/channel.setup.ts
|
|
3
3
|
const whatsappSetupPlugin = { ...createWhatsAppPluginBase({
|
|
4
4
|
groups: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
|
-
import { c as resolveMergedWhatsAppAccountConfig, o as resolveWhatsAppAuthDir } from "./accounts-
|
|
2
|
+
import { c as resolveMergedWhatsAppAccountConfig, o as resolveWhatsAppAuthDir } from "./accounts-CeKQbu_s.js";
|
|
3
3
|
import { c as normalizeWhatsAppTarget, t as isWhatsAppGroupJid } from "./normalize-target-CugRyONv.js";
|
|
4
4
|
import { i as hasPendingWhatsAppConnectionOwner, r as getWhatsAppConnectionController } from "./connection-controller-runtime-context-DG0tuYuw.js";
|
|
5
5
|
import "./normalize-C7Hkc_vE.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as listWhatsAppDirectoryGroupsFromConfig, r as listWhatsAppDirectoryPeersFromConfig } from "./directory-config-
|
|
1
|
+
import { n as listWhatsAppDirectoryGroupsFromConfig, r as listWhatsAppDirectoryPeersFromConfig } from "./directory-config-Ci8Jjsw4.js";
|
|
2
2
|
//#region extensions/whatsapp/directory-contract-api.ts
|
|
3
3
|
const whatsappDirectoryContractPlugin = {
|
|
4
4
|
id: "whatsapp",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as resolveWhatsAppAccount } from "./accounts-
|
|
1
|
+
import { a as resolveWhatsAppAccount } from "./accounts-CeKQbu_s.js";
|
|
2
2
|
import { c as normalizeWhatsAppTarget } from "./normalize-target-CugRyONv.js";
|
|
3
3
|
import "./normalize-C7Hkc_vE.js";
|
|
4
4
|
import { r as jidToE164 } from "./targets-runtime-TMk0lGuy.js";
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { defineBundledChannelEntry, loadBundledEntryExportSync } from "openclaw/plugin-sdk/channel-entry-contract";
|
|
2
2
|
//#region extensions/whatsapp/index.ts
|
|
3
|
-
function
|
|
3
|
+
function registerWhatsAppAgentTools(api) {
|
|
4
4
|
loadBundledEntryExportSync(import.meta.url, {
|
|
5
|
-
specifier: "./
|
|
6
|
-
exportName: "
|
|
5
|
+
specifier: "./agent-tools-api.js",
|
|
6
|
+
exportName: "registerWhatsAppAgentTools"
|
|
7
7
|
})(api);
|
|
8
8
|
}
|
|
9
9
|
var whatsapp_default = defineBundledChannelEntry({
|
|
@@ -19,7 +19,7 @@ var whatsapp_default = defineBundledChannelEntry({
|
|
|
19
19
|
specifier: "./runtime-setter-api.js",
|
|
20
20
|
exportName: "setWhatsAppRuntime"
|
|
21
21
|
},
|
|
22
|
-
registerFull:
|
|
22
|
+
registerFull: registerWhatsAppAgentTools
|
|
23
23
|
});
|
|
24
24
|
//#endregion
|
|
25
25
|
export { whatsapp_default as default };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as createWhatsAppLoginTool } from "./agent-tools-login-
|
|
1
|
+
import { t as createWhatsAppLoginTool } from "./agent-tools-login-B-2qZPzc.js";
|
|
2
2
|
import { c as logoutWeb, g as readWebSelfId, l as pickWebChannel, o as getWebAuthAgeMs, s as logWebSelfId, t as WA_WEB_AUTH_DIR, x as webAuthExists, y as resolveDefaultWebAuthDir } from "./auth-store-CtpBqH5S.js";
|
|
3
3
|
import { t as getActiveWebListener } from "./active-listener-BEjWsCNM.js";
|
|
4
4
|
import { n as getStatusCode, t as formatError } from "./session-errors-JuazczrA.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-D7D4PA-g.js";
|
|
2
|
-
import { a as resolveWhatsAppAccount } from "./accounts-
|
|
2
|
+
import { a as resolveWhatsAppAccount } from "./accounts-CeKQbu_s.js";
|
|
3
3
|
import { b as restoreCredsFromBackupIfNeeded } from "./auth-store-CtpBqH5S.js";
|
|
4
4
|
import { f as renderQrTerminal, r as createWaSocket, u as resolveWhatsAppSocketTiming } from "./socket-close-2T0_jZTN.js";
|
|
5
5
|
import { a as closeWaSocketSoon, o as waitForWhatsAppLoginResult } from "./connection-controller-CIYuBJrs.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as resolveWhatsAppAccount } from "./accounts-
|
|
1
|
+
import { a as resolveWhatsAppAccount } from "./accounts-CeKQbu_s.js";
|
|
2
2
|
import { c as logoutWeb, f as readWebAuthExistsForDecision, g as readWebSelfId, n as WHATSAPP_AUTH_UNSTABLE_CODE } from "./auth-store-CtpBqH5S.js";
|
|
3
3
|
import { t as getActiveWebListener } from "./active-listener-BEjWsCNM.js";
|
|
4
4
|
import { r as createWaSocket, u as resolveWhatsAppSocketTiming } from "./socket-close-2T0_jZTN.js";
|
|
@@ -28,8 +28,8 @@ function closeSocket(sock) {
|
|
|
28
28
|
async function resetActiveLogin(accountId, reason) {
|
|
29
29
|
const login = activeLogins.get(accountId);
|
|
30
30
|
if (login) {
|
|
31
|
-
closeSocket(login.sock);
|
|
32
31
|
activeLogins.delete(accountId);
|
|
32
|
+
closeSocket(login.sock);
|
|
33
33
|
}
|
|
34
34
|
if (reason) logInfo(reason);
|
|
35
35
|
}
|
|
@@ -94,6 +94,7 @@ function attachLoginWaiter(accountId, login) {
|
|
|
94
94
|
verbose: login.verbose,
|
|
95
95
|
runtime: login.runtime,
|
|
96
96
|
socketTiming: login.socketTiming,
|
|
97
|
+
beforeCredentialPersistence: login.beforeCredentialPersistence,
|
|
97
98
|
onQr: (qr) => {
|
|
98
99
|
const current = activeLogins.get(accountId);
|
|
99
100
|
if (!current || current.id !== login.id) return;
|
|
@@ -203,7 +204,8 @@ async function startWebLoginWithQr(opts = {}) {
|
|
|
203
204
|
if (!await logoutWeb({
|
|
204
205
|
authDir: account.authDir,
|
|
205
206
|
isLegacyAuthDir: account.isLegacyAuthDir,
|
|
206
|
-
runtime
|
|
207
|
+
runtime,
|
|
208
|
+
beforeCredentialPersistence: opts.beforeCredentialPersistence
|
|
207
209
|
})) return { message: "WhatsApp login failed: existing auth could not be cleared. Remove or fix the configured WhatsApp auth directory, then retry login." };
|
|
208
210
|
} catch (err) {
|
|
209
211
|
return { message: `WhatsApp login failed: ${formatError(err)}` };
|
|
@@ -226,10 +228,20 @@ async function startWebLoginWithQr(opts = {}) {
|
|
|
226
228
|
let sock;
|
|
227
229
|
let pendingQr = null;
|
|
228
230
|
const loginId = randomUUID();
|
|
231
|
+
const operationOwner = {};
|
|
232
|
+
const beforeCredentialPersistence = async () => {
|
|
233
|
+
const login = operationOwner.current;
|
|
234
|
+
if (!login) {
|
|
235
|
+
await opts.beforeCredentialPersistence?.();
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
if (activeLogins.get(account.accountId) !== login || !isLoginFresh(login)) throw new Error("WhatsApp login is no longer active.");
|
|
239
|
+
};
|
|
229
240
|
try {
|
|
230
241
|
sock = await createWaSocket(false, Boolean(opts.verbose), {
|
|
231
242
|
authDir: account.authDir,
|
|
232
243
|
...socketTiming,
|
|
244
|
+
beforeCredentialPersistence,
|
|
233
245
|
onQr: (qr) => {
|
|
234
246
|
pendingQr = qr;
|
|
235
247
|
const current = activeLogins.get(account.accountId);
|
|
@@ -256,7 +268,7 @@ async function startWebLoginWithQr(opts = {}) {
|
|
|
256
268
|
await resetActiveLogin(account.accountId);
|
|
257
269
|
return { message: `Failed to start WhatsApp login: ${String(err)}` };
|
|
258
270
|
}
|
|
259
|
-
const
|
|
271
|
+
const nextLogin = {
|
|
260
272
|
accountId: account.accountId,
|
|
261
273
|
authDir: account.authDir,
|
|
262
274
|
isLegacyAuthDir: account.isLegacyAuthDir,
|
|
@@ -271,23 +283,32 @@ async function startWebLoginWithQr(opts = {}) {
|
|
|
271
283
|
qrRenderPromise: null,
|
|
272
284
|
verbose: Boolean(opts.verbose),
|
|
273
285
|
runtime,
|
|
274
|
-
socketTiming
|
|
286
|
+
socketTiming,
|
|
287
|
+
beforeCredentialPersistence
|
|
275
288
|
};
|
|
276
|
-
|
|
277
|
-
|
|
289
|
+
try {
|
|
290
|
+
await opts.beforeCredentialPersistence?.();
|
|
291
|
+
} catch (err) {
|
|
292
|
+
clearTimeout(qrTimer);
|
|
293
|
+
closeSocket(sock);
|
|
294
|
+
return { message: `Failed to start WhatsApp login: ${String(err)}` };
|
|
295
|
+
}
|
|
296
|
+
operationOwner.current = nextLogin;
|
|
297
|
+
resetQrUpdateSignal(nextLogin);
|
|
298
|
+
activeLogins.set(account.accountId, nextLogin);
|
|
278
299
|
if (pendingQr) {
|
|
279
|
-
const qrVersion = updateLoginQrState(
|
|
300
|
+
const qrVersion = updateLoginQrState(nextLogin, pendingQr);
|
|
280
301
|
renderLatestQrDataUrlInBackground({
|
|
281
302
|
accountId: account.accountId,
|
|
282
|
-
loginId:
|
|
303
|
+
loginId: nextLogin.id,
|
|
283
304
|
qr: pendingQr,
|
|
284
305
|
qrVersion
|
|
285
306
|
});
|
|
286
307
|
}
|
|
287
|
-
attachLoginWaiter(account.accountId,
|
|
308
|
+
attachLoginWaiter(account.accountId, nextLogin);
|
|
288
309
|
const loginStartResult = await waitForQrOrRecoveredLogin({
|
|
289
310
|
accountId: account.accountId,
|
|
290
|
-
login,
|
|
311
|
+
login: nextLogin,
|
|
291
312
|
qrPromise
|
|
292
313
|
});
|
|
293
314
|
clearTimeout(qrTimer);
|
|
@@ -304,8 +325,8 @@ async function startWebLoginWithQr(opts = {}) {
|
|
|
304
325
|
await resetActiveLogin(account.accountId);
|
|
305
326
|
return { message: loginStartResult.message };
|
|
306
327
|
}
|
|
307
|
-
const qr =
|
|
308
|
-
const qrVersion =
|
|
328
|
+
const qr = nextLogin.qr ?? loginStartResult.qr;
|
|
329
|
+
const qrVersion = nextLogin.qrVersion;
|
|
309
330
|
if (qrVersion === 0) {
|
|
310
331
|
await resetActiveLogin(account.accountId);
|
|
311
332
|
return { message: "Failed to capture the active WhatsApp QR. Ask me to generate a new one." };
|
|
@@ -314,7 +335,7 @@ async function startWebLoginWithQr(opts = {}) {
|
|
|
314
335
|
try {
|
|
315
336
|
qrDataUrl = await ensureQrDataUrl({
|
|
316
337
|
accountId: account.accountId,
|
|
317
|
-
loginId:
|
|
338
|
+
loginId: nextLogin.id,
|
|
318
339
|
qr,
|
|
319
340
|
qrVersion
|
|
320
341
|
});
|
package/dist/login-qr-runtime.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
|
|
2
2
|
//#region extensions/whatsapp/login-qr-runtime.ts
|
|
3
|
-
const loadLoginQrModule = createLazyRuntimeModule(() => import("./login-qr-
|
|
3
|
+
const loadLoginQrModule = createLazyRuntimeModule(() => import("./login-qr-B_1sr0hk.js"));
|
|
4
4
|
async function startWebLoginWithQr(...args) {
|
|
5
5
|
const { startWebLoginWithQr: startWebLoginWithQrLocal } = await loadLoginQrModule();
|
|
6
6
|
return await startWebLoginWithQrLocal(...args);
|