@openclaw/crabline 0.1.16 → 0.1.18
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/README.md +8 -0
- package/dist/src/openclaw/bridges/whatsapp.js +21 -1
- package/dist/src/openclaw/bridges/whatsapp.js.map +1 -1
- package/dist/src/openclaw/private-file.js +87 -30
- package/dist/src/openclaw/private-file.js.map +1 -1
- package/dist/src/openclaw/shared.d.ts +9 -0
- package/dist/src/openclaw/shared.js +2 -1
- package/dist/src/openclaw/shared.js.map +1 -1
- package/dist/src/platform/process-owned-lock.d.ts +5 -2
- package/dist/src/platform/process-owned-lock.js +20 -10
- package/dist/src/platform/process-owned-lock.js.map +1 -1
- package/dist/src/servers/discord.js +25 -35
- package/dist/src/servers/discord.js.map +1 -1
- package/dist/src/servers/http.d.ts +3 -0
- package/dist/src/servers/http.js +15 -0
- package/dist/src/servers/http.js.map +1 -1
- package/dist/src/servers/matrix.js +8 -8
- package/dist/src/servers/matrix.js.map +1 -1
- package/dist/src/servers/mattermost.js +7 -10
- package/dist/src/servers/mattermost.js.map +1 -1
- package/dist/src/servers/recorder.d.ts +16 -6
- package/dist/src/servers/recorder.js +52 -12
- package/dist/src/servers/recorder.js.map +1 -1
- package/dist/src/servers/signal.js +8 -8
- package/dist/src/servers/signal.js.map +1 -1
- package/dist/src/servers/slack.js +8 -8
- package/dist/src/servers/slack.js.map +1 -1
- package/dist/src/servers/telegram.d.ts +2 -2
- package/dist/src/servers/telegram.js +8 -8
- package/dist/src/servers/telegram.js.map +1 -1
- package/dist/src/servers/whatsapp-baileys-websocket.d.ts +15 -0
- package/dist/src/servers/whatsapp-baileys-websocket.js +32 -2
- package/dist/src/servers/whatsapp-baileys-websocket.js.map +1 -1
- package/dist/src/servers/whatsapp.js +189 -29
- package/dist/src/servers/whatsapp.js.map +1 -1
- package/dist/src/servers/zalo.js +8 -7
- package/dist/src/servers/zalo.js.map +1 -1
- package/docs/channel-setup.md +65 -1
- package/package.json +12 -12
|
@@ -49,11 +49,26 @@ export type WhatsAppBaileysInboundMessage = {
|
|
|
49
49
|
remoteJid: string;
|
|
50
50
|
};
|
|
51
51
|
message: {
|
|
52
|
+
audioMessage?: never;
|
|
52
53
|
conversation: string;
|
|
54
|
+
} | {
|
|
55
|
+
audioMessage: WhatsAppBaileysAudioMessage;
|
|
56
|
+
conversation?: never;
|
|
53
57
|
};
|
|
54
58
|
messageTimestamp: number;
|
|
55
59
|
pushName?: string | undefined;
|
|
56
60
|
};
|
|
61
|
+
export type WhatsAppBaileysAudioMessage = {
|
|
62
|
+
fileEncSha256: Buffer;
|
|
63
|
+
fileLength: number;
|
|
64
|
+
fileSha256: Buffer;
|
|
65
|
+
mediaKey: Buffer;
|
|
66
|
+
mediaKeyTimestamp: number;
|
|
67
|
+
mimetype: string;
|
|
68
|
+
ptt: boolean;
|
|
69
|
+
seconds?: number | undefined;
|
|
70
|
+
url: string;
|
|
71
|
+
};
|
|
57
72
|
export declare function resolveMaxPendingWhatsAppInboundMessages(value: number | undefined): number;
|
|
58
73
|
export type MockSignalBundle = {
|
|
59
74
|
identityKey: KeyPair;
|
|
@@ -953,7 +953,7 @@ class WhatsAppBaileysWebSocketSession {
|
|
|
953
953
|
}
|
|
954
954
|
}
|
|
955
955
|
async #handleNode(node) {
|
|
956
|
-
await this.#recordNode(node);
|
|
956
|
+
await awaitWithAbort(this.#recordNode(node), this.#acceptanceAbort.signal);
|
|
957
957
|
if (node.tag === "iq") {
|
|
958
958
|
await this.#sendNode(this.#createIqResult(node));
|
|
959
959
|
return;
|
|
@@ -1787,7 +1787,7 @@ function createInboundMessageNode(message) {
|
|
|
1787
1787
|
content: [
|
|
1788
1788
|
{
|
|
1789
1789
|
attrs: {},
|
|
1790
|
-
content:
|
|
1790
|
+
content: encodePlaintextInboundMessage(message.message),
|
|
1791
1791
|
tag: "plaintext",
|
|
1792
1792
|
},
|
|
1793
1793
|
],
|
|
@@ -1814,6 +1814,36 @@ function encodePlaintextConversationMessage(text) {
|
|
|
1814
1814
|
const textBytes = Buffer.from(text, "utf8");
|
|
1815
1815
|
return Buffer.from([0x0a, ...encodeVarint(textBytes.byteLength), ...textBytes]);
|
|
1816
1816
|
}
|
|
1817
|
+
function encodePlaintextInboundMessage(message) {
|
|
1818
|
+
if (message.audioMessage) {
|
|
1819
|
+
return encodePlaintextAudioMessage(message.audioMessage);
|
|
1820
|
+
}
|
|
1821
|
+
return encodePlaintextConversationMessage(message.conversation);
|
|
1822
|
+
}
|
|
1823
|
+
function encodePlaintextAudioMessage(audio) {
|
|
1824
|
+
const fields = [
|
|
1825
|
+
encodeLengthDelimitedProtobufField(1, Buffer.from(audio.url, "utf8")),
|
|
1826
|
+
encodeLengthDelimitedProtobufField(2, Buffer.from(audio.mimetype, "utf8")),
|
|
1827
|
+
encodeLengthDelimitedProtobufField(3, audio.fileSha256),
|
|
1828
|
+
encodeVarintProtobufField(4, audio.fileLength),
|
|
1829
|
+
...(audio.seconds === undefined ? [] : [encodeVarintProtobufField(5, audio.seconds)]),
|
|
1830
|
+
encodeVarintProtobufField(6, audio.ptt ? 1 : 0),
|
|
1831
|
+
encodeLengthDelimitedProtobufField(7, audio.mediaKey),
|
|
1832
|
+
encodeLengthDelimitedProtobufField(8, audio.fileEncSha256),
|
|
1833
|
+
encodeVarintProtobufField(10, audio.mediaKeyTimestamp),
|
|
1834
|
+
];
|
|
1835
|
+
return encodeLengthDelimitedProtobufField(8, Buffer.concat(fields));
|
|
1836
|
+
}
|
|
1837
|
+
function encodeLengthDelimitedProtobufField(fieldNumber, value) {
|
|
1838
|
+
return Buffer.concat([
|
|
1839
|
+
Buffer.from(encodeVarint((fieldNumber << 3) | 2)),
|
|
1840
|
+
Buffer.from(encodeVarint(value.byteLength)),
|
|
1841
|
+
Buffer.from(value),
|
|
1842
|
+
]);
|
|
1843
|
+
}
|
|
1844
|
+
function encodeVarintProtobufField(fieldNumber, value) {
|
|
1845
|
+
return Buffer.from([...encodeVarint(fieldNumber << 3), ...encodeVarint(value)]);
|
|
1846
|
+
}
|
|
1817
1847
|
function encodeVarint(value) {
|
|
1818
1848
|
const bytes = [];
|
|
1819
1849
|
let remaining = value;
|