@openclaw/crabline 0.1.11 → 0.1.13
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 +137 -23
- package/dist/src/bin/crabline.js +3 -1
- package/dist/src/bin/crabline.js.map +1 -1
- package/dist/src/cli/program.d.ts +5 -1
- package/dist/src/cli/program.js +281 -52
- package/dist/src/cli/program.js.map +1 -1
- package/dist/src/config/load.js +39 -3
- package/dist/src/config/load.js.map +1 -1
- package/dist/src/config/schema.d.ts +20 -0
- package/dist/src/config/schema.js +163 -35
- package/dist/src/config/schema.js.map +1 -1
- package/dist/src/core/errors.d.ts +1 -0
- package/dist/src/core/errors.js +6 -3
- package/dist/src/core/errors.js.map +1 -1
- package/dist/src/core/http-path.d.ts +1 -0
- package/dist/src/core/http-path.js +14 -0
- package/dist/src/core/http-path.js.map +1 -0
- package/dist/src/core/matcher.d.ts +3 -1
- package/dist/src/core/matcher.js +58 -2
- package/dist/src/core/matcher.js.map +1 -1
- package/dist/src/core/nonces.d.ts +2 -0
- package/dist/src/core/nonces.js +11 -1
- package/dist/src/core/nonces.js.map +1 -1
- package/dist/src/core/reporters.d.ts +5 -0
- package/dist/src/core/reporters.js +26 -2
- package/dist/src/core/reporters.js.map +1 -1
- package/dist/src/core/run.d.ts +3 -1
- package/dist/src/core/run.js +178 -66
- package/dist/src/core/run.js.map +1 -1
- package/dist/src/index.d.ts +12 -10
- package/dist/src/index.js +6 -5
- package/dist/src/index.js.map +1 -1
- package/dist/src/matrix-ids.d.ts +5 -0
- package/dist/src/matrix-ids.js +83 -0
- package/dist/src/matrix-ids.js.map +1 -0
- package/dist/src/openclaw/artifact-generation.d.ts +7 -6
- package/dist/src/openclaw/artifact-generation.js +385 -41
- package/dist/src/openclaw/artifact-generation.js.map +1 -1
- package/dist/src/openclaw/bridges/discord.d.ts +1 -0
- package/dist/src/openclaw/bridges/discord.js +149 -0
- package/dist/src/openclaw/bridges/discord.js.map +1 -0
- package/dist/src/openclaw/bridges/matrix.js +22 -5
- package/dist/src/openclaw/bridges/matrix.js.map +1 -1
- package/dist/src/openclaw/bridges/mattermost.js +14 -9
- package/dist/src/openclaw/bridges/mattermost.js.map +1 -1
- package/dist/src/openclaw/bridges/probe-response.d.ts +1 -0
- package/dist/src/openclaw/bridges/probe-response.js +5 -0
- package/dist/src/openclaw/bridges/probe-response.js.map +1 -0
- package/dist/src/openclaw/bridges/signal.js +16 -7
- package/dist/src/openclaw/bridges/signal.js.map +1 -1
- package/dist/src/openclaw/bridges/slack.js +117 -24
- package/dist/src/openclaw/bridges/slack.js.map +1 -1
- package/dist/src/openclaw/bridges/telegram.js +46 -20
- package/dist/src/openclaw/bridges/telegram.js.map +1 -1
- package/dist/src/openclaw/bridges/whatsapp.js +33 -17
- package/dist/src/openclaw/bridges/whatsapp.js.map +1 -1
- package/dist/src/openclaw/bridges/zalo.js +9 -4
- package/dist/src/openclaw/bridges/zalo.js.map +1 -1
- package/dist/src/openclaw/outbound-contract.js +3 -0
- package/dist/src/openclaw/outbound-contract.js.map +1 -1
- package/dist/src/openclaw/private-file.d.ts +38 -3
- package/dist/src/openclaw/private-file.js +2008 -87
- package/dist/src/openclaw/private-file.js.map +1 -1
- package/dist/src/openclaw/{smoke-lock.d.ts → provider-readiness-lock.d.ts} +14 -5
- package/dist/src/openclaw/provider-readiness-lock.js +1320 -0
- package/dist/src/openclaw/provider-readiness-lock.js.map +1 -0
- package/dist/src/openclaw/shared.d.ts +10 -17
- package/dist/src/openclaw/shared.js +53 -19
- package/dist/src/openclaw/shared.js.map +1 -1
- package/dist/src/openclaw.d.ts +3 -5
- package/dist/src/openclaw.js +245 -60
- package/dist/src/openclaw.js.map +1 -1
- package/dist/src/platform/process-owned-lock.d.ts +11 -0
- package/dist/src/platform/process-owned-lock.js +1698 -0
- package/dist/src/platform/process-owned-lock.js.map +1 -0
- package/dist/src/platform/recorder-directory.d.ts +1 -0
- package/dist/src/platform/recorder-directory.js +14 -0
- package/dist/src/platform/recorder-directory.js.map +1 -0
- package/dist/src/platform/windows-acl.d.ts +18 -0
- package/dist/src/platform/windows-acl.js +1367 -0
- package/dist/src/platform/windows-acl.js.map +1 -0
- package/dist/src/platform/windows-lock-root.d.ts +13 -0
- package/dist/src/platform/windows-lock-root.js +98 -0
- package/dist/src/platform/windows-lock-root.js.map +1 -0
- package/dist/src/providers/builtin/discord.d.ts +4 -0
- package/dist/src/providers/builtin/discord.js +52 -9
- package/dist/src/providers/builtin/discord.js.map +1 -1
- package/dist/src/providers/builtin/external-webhook-auth.d.ts +1 -0
- package/dist/src/providers/builtin/external-webhook-auth.js +38 -1
- package/dist/src/providers/builtin/external-webhook-auth.js.map +1 -1
- package/dist/src/providers/builtin/feishu.d.ts +1 -0
- package/dist/src/providers/builtin/feishu.js +96 -26
- package/dist/src/providers/builtin/feishu.js.map +1 -1
- package/dist/src/providers/builtin/googlechat.d.ts +1 -0
- package/dist/src/providers/builtin/googlechat.js +95 -26
- package/dist/src/providers/builtin/googlechat.js.map +1 -1
- package/dist/src/providers/builtin/imessage.js +60 -17
- package/dist/src/providers/builtin/imessage.js.map +1 -1
- package/dist/src/providers/builtin/loopback.js +88 -35
- package/dist/src/providers/builtin/loopback.js.map +1 -1
- package/dist/src/providers/builtin/matrix.d.ts +2 -2
- package/dist/src/providers/builtin/matrix.js +78 -21
- package/dist/src/providers/builtin/matrix.js.map +1 -1
- package/dist/src/providers/builtin/mattermost.d.ts +11 -7
- package/dist/src/providers/builtin/mattermost.js +138 -24
- package/dist/src/providers/builtin/mattermost.js.map +1 -1
- package/dist/src/providers/builtin/msteams.d.ts +1 -0
- package/dist/src/providers/builtin/msteams.js +118 -38
- package/dist/src/providers/builtin/msteams.js.map +1 -1
- package/dist/src/providers/builtin/native-local-mock.js +4 -4
- package/dist/src/providers/builtin/native-local-mock.js.map +1 -1
- package/dist/src/providers/builtin/script.js +1057 -146
- package/dist/src/providers/builtin/script.js.map +1 -1
- package/dist/src/providers/builtin/slack.d.ts +8 -1
- package/dist/src/providers/builtin/slack.js +327 -24
- package/dist/src/providers/builtin/slack.js.map +1 -1
- package/dist/src/providers/builtin/telegram.d.ts +1 -1
- package/dist/src/providers/builtin/telegram.js +55 -14
- package/dist/src/providers/builtin/telegram.js.map +1 -1
- package/dist/src/providers/builtin/whatsapp.d.ts +4 -3
- package/dist/src/providers/builtin/whatsapp.js +157 -29
- package/dist/src/providers/builtin/whatsapp.js.map +1 -1
- package/dist/src/providers/builtin/zalo.d.ts +5 -2
- package/dist/src/providers/builtin/zalo.js +31 -7
- package/dist/src/providers/builtin/zalo.js.map +1 -1
- package/dist/src/providers/catalog.d.ts +1 -1
- package/dist/src/providers/catalog.js +1 -1
- package/dist/src/providers/catalog.js.map +1 -1
- package/dist/src/providers/local-mock.d.ts +4 -0
- package/dist/src/providers/local-mock.js +162 -35
- package/dist/src/providers/local-mock.js.map +1 -1
- package/dist/src/providers/native-ids.d.ts +2 -0
- package/dist/src/providers/native-ids.js +3 -0
- package/dist/src/providers/native-ids.js.map +1 -1
- package/dist/src/providers/recorder.d.ts +14 -3
- package/dist/src/providers/recorder.js +521 -41
- package/dist/src/providers/recorder.js.map +1 -1
- package/dist/src/providers/registry.d.ts +1 -0
- package/dist/src/providers/registry.js +65 -20
- package/dist/src/providers/registry.js.map +1 -1
- package/dist/src/providers/signed-jwt.d.ts +6 -1
- package/dist/src/providers/signed-jwt.js +241 -50
- package/dist/src/providers/signed-jwt.js.map +1 -1
- package/dist/src/providers/slack-ids.d.ts +1 -0
- package/dist/src/providers/slack-ids.js +5 -0
- package/dist/src/providers/slack-ids.js.map +1 -1
- package/dist/src/providers/target-normalizers.d.ts +9 -1
- package/dist/src/providers/target-normalizers.js +177 -58
- package/dist/src/providers/target-normalizers.js.map +1 -1
- package/dist/src/providers/webhook-server.d.ts +3 -0
- package/dist/src/providers/webhook-server.js +268 -47
- package/dist/src/providers/webhook-server.js.map +1 -1
- package/dist/src/servers/discord.d.ts +40 -0
- package/dist/src/servers/discord.js +842 -0
- package/dist/src/servers/discord.js.map +1 -0
- package/dist/src/servers/http.d.ts +14 -2
- package/dist/src/servers/http.js +229 -58
- package/dist/src/servers/http.js.map +1 -1
- package/dist/src/servers/index.d.ts +10 -4
- package/dist/src/servers/index.js +4 -0
- package/dist/src/servers/index.js.map +1 -1
- package/dist/src/servers/matrix.d.ts +3 -0
- package/dist/src/servers/matrix.js +268 -110
- package/dist/src/servers/matrix.js.map +1 -1
- package/dist/src/servers/mattermost.d.ts +5 -0
- package/dist/src/servers/mattermost.js +389 -91
- package/dist/src/servers/mattermost.js.map +1 -1
- package/dist/src/servers/recorder.d.ts +11 -0
- package/dist/src/servers/recorder.js +1072 -69
- package/dist/src/servers/recorder.js.map +1 -1
- package/dist/src/servers/signal.d.ts +1 -0
- package/dist/src/servers/signal.js +279 -44
- package/dist/src/servers/signal.js.map +1 -1
- package/dist/src/servers/slack.d.ts +15 -0
- package/dist/src/servers/slack.js +270 -54
- package/dist/src/servers/slack.js.map +1 -1
- package/dist/src/servers/telegram-identity.d.ts +6 -0
- package/dist/src/servers/telegram-identity.js +27 -0
- package/dist/src/servers/telegram-identity.js.map +1 -0
- package/dist/src/servers/telegram.d.ts +17 -6
- package/dist/src/servers/telegram.js +1218 -107
- package/dist/src/servers/telegram.js.map +1 -1
- package/dist/src/servers/webhook-target.d.ts +12 -4
- package/dist/src/servers/webhook-target.js +226 -28
- package/dist/src/servers/webhook-target.js.map +1 -1
- package/dist/src/servers/whatsapp-baileys-websocket.d.ts +60 -1
- package/dist/src/servers/whatsapp-baileys-websocket.js +782 -112
- package/dist/src/servers/whatsapp-baileys-websocket.js.map +1 -1
- package/dist/src/servers/whatsapp-jid.d.ts +1 -0
- package/dist/src/servers/whatsapp-jid.js +9 -5
- package/dist/src/servers/whatsapp-jid.js.map +1 -1
- package/dist/src/servers/whatsapp-wire/binary-node.d.ts +1 -0
- package/dist/src/servers/whatsapp-wire/binary-node.js +37 -13
- package/dist/src/servers/whatsapp-wire/binary-node.js.map +1 -1
- package/dist/src/servers/whatsapp-wire/crypto.d.ts +3 -0
- package/dist/src/servers/whatsapp-wire/crypto.js +23 -8
- package/dist/src/servers/whatsapp-wire/crypto.js.map +1 -1
- package/dist/src/servers/whatsapp-wire/handshake.d.ts +9 -3
- package/dist/src/servers/whatsapp-wire/handshake.js +173 -12
- package/dist/src/servers/whatsapp-wire/handshake.js.map +1 -1
- package/dist/src/servers/whatsapp-wire/signal.js +3 -3
- package/dist/src/servers/whatsapp-wire/signal.js.map +1 -1
- package/dist/src/servers/whatsapp.d.ts +7 -1
- package/dist/src/servers/whatsapp.js +149 -25
- package/dist/src/servers/whatsapp.js.map +1 -1
- package/dist/src/servers/zalo.d.ts +1 -0
- package/dist/src/servers/zalo.js +193 -82
- package/dist/src/servers/zalo.js.map +1 -1
- package/docs/channel-setup.md +251 -64
- package/fixtures/examples/crabline.example.yaml +3 -2
- package/package.json +18 -10
- package/dist/src/openclaw/smoke-lock.js +0 -1004
- package/dist/src/openclaw/smoke-lock.js.map +0 -1
- package/fixtures/examples/openclaw-bridge.yaml +0 -125
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Buffer } from "node:buffer";
|
|
2
2
|
import type { Server } from "node:http";
|
|
3
3
|
import { type KeyPair, type SignedKeyPair } from "./whatsapp-wire/crypto.js";
|
|
4
|
+
import { type BinaryNode } from "./whatsapp-wire/binary-node.js";
|
|
4
5
|
import type { ServerRequestEvent } from "./http.js";
|
|
5
6
|
export declare const MAX_WHATSAPP_NOISE_FRAME_BYTES: number;
|
|
6
7
|
export declare const MAX_WHATSAPP_WEBSOCKET_BUFFERED_BYTES: number;
|
|
@@ -10,7 +11,11 @@ export declare const MAX_WHATSAPP_NOISE_FRAMES_PER_MESSAGE = 1024;
|
|
|
10
11
|
export declare const WHATSAPP_WEBSOCKET_SEND_TIMEOUT_MS = 5000;
|
|
11
12
|
export declare const MAX_WHATSAPP_WEBSOCKET_FRAGMENTS = 1024;
|
|
12
13
|
export declare const MAX_WHATSAPP_SIGNAL_BUNDLES = 1024;
|
|
14
|
+
export declare const MAX_WHATSAPP_SIGNAL_PREKEYS_PER_BUNDLE = 32;
|
|
15
|
+
export declare const MAX_WHATSAPP_SIGNAL_SESSIONS_PER_BUNDLE = 32;
|
|
13
16
|
export declare const MAX_WHATSAPP_WEBSOCKET_CLOSE_REASON_BYTES = 123;
|
|
17
|
+
export declare const WHATSAPP_MESSAGE_ACCEPTANCE_TIMEOUT_MS = 5000;
|
|
18
|
+
export declare const WHATSAPP_SIGNAL_PREKEY_RESERVATION_TTL_MS: number;
|
|
14
19
|
type NodeBuffer = Buffer<ArrayBufferLike>;
|
|
15
20
|
type WhatsAppWebSocketRawData = NodeBuffer | ArrayBuffer | NodeBuffer[];
|
|
16
21
|
type WhatsAppWebSocketSendTarget = {
|
|
@@ -28,6 +33,7 @@ export type WhatsAppBaileysWebSocketServerParams = {
|
|
|
28
33
|
appendEvent(event: ServerRequestEvent): Promise<void>;
|
|
29
34
|
httpServer: Server;
|
|
30
35
|
maxPendingInboundMessages?: number | undefined;
|
|
36
|
+
messageAcceptanceTimeoutMs?: number | undefined;
|
|
31
37
|
path: string;
|
|
32
38
|
selfJid: string;
|
|
33
39
|
};
|
|
@@ -56,12 +62,47 @@ export type MockSignalBundle = {
|
|
|
56
62
|
registrationId: number;
|
|
57
63
|
signedPreKey: SignedKeyPair;
|
|
58
64
|
};
|
|
65
|
+
export type WhatsAppSignalDecryptResult<T> = {
|
|
66
|
+
status: "accepted";
|
|
67
|
+
value: T;
|
|
68
|
+
} | {
|
|
69
|
+
error: unknown;
|
|
70
|
+
status: "decrypt-failed";
|
|
71
|
+
} | {
|
|
72
|
+
status: "unavailable";
|
|
73
|
+
} | {
|
|
74
|
+
status: "rejected";
|
|
75
|
+
};
|
|
76
|
+
export type WhatsAppSignalBundleStoreOptions = {
|
|
77
|
+
maxPreKeysPerBundle?: number | undefined;
|
|
78
|
+
maxSessionsPerBundle?: number | undefined;
|
|
79
|
+
messageAcceptanceTimeoutMs?: number | undefined;
|
|
80
|
+
preKeyReservationTtlMs?: number | undefined;
|
|
81
|
+
};
|
|
82
|
+
type WhatsAppMessageAcceptanceOptions = {
|
|
83
|
+
onTerminalTimeout?: (() => void) | undefined;
|
|
84
|
+
signal?: AbortSignal | undefined;
|
|
85
|
+
terminalDrain?: (() => Promise<"acknowledged" | "persisted" | "retryable">) | undefined;
|
|
86
|
+
timeoutMs?: number | undefined;
|
|
87
|
+
};
|
|
59
88
|
export declare class WhatsAppSignalBundleStore {
|
|
60
89
|
#private;
|
|
61
90
|
private readonly maxBundles;
|
|
62
|
-
|
|
91
|
+
private readonly maxPendingAcknowledgements;
|
|
92
|
+
private readonly maxRecentAcknowledgements;
|
|
93
|
+
private readonly maxPendingAcknowledgementAgeMs;
|
|
94
|
+
private readonly now;
|
|
95
|
+
constructor(maxBundles?: number, maxPendingAcknowledgements?: number, maxRecentAcknowledgements?: number, maxPendingAcknowledgementAgeMs?: number, now?: () => number, options?: WhatsAppSignalBundleStoreOptions);
|
|
63
96
|
get size(): number;
|
|
97
|
+
get lidMappingSize(): number;
|
|
98
|
+
get sessionCount(): number;
|
|
99
|
+
acceptMessageOnce(messageKey: string, operation: (signal: AbortSignal) => Promise<boolean>, options?: WhatsAppMessageAcceptanceOptions): Promise<boolean>;
|
|
100
|
+
markMessageAcknowledged(peerJid: string, messageId: string): void;
|
|
101
|
+
hasPersistedMessage(messageKey: string): boolean;
|
|
102
|
+
clearPersistedMessage(messageKey: string): void;
|
|
103
|
+
releaseMessagePreKeyProtection(messageKey: string): void;
|
|
64
104
|
associateLid(phoneNumberJid: string, lidJid: string): void;
|
|
105
|
+
resolveAssociatedLid(phoneNumberJid: string): string | undefined;
|
|
65
106
|
resolveMany(jids: string[]): MockSignalBundle[];
|
|
66
107
|
decryptDirectMessage(params: {
|
|
67
108
|
ciphertext: Uint8Array;
|
|
@@ -69,6 +110,15 @@ export declare class WhatsAppSignalBundleStore {
|
|
|
69
110
|
remoteJid: string;
|
|
70
111
|
type: "msg" | "pkmsg";
|
|
71
112
|
}): Promise<Buffer | undefined>;
|
|
113
|
+
transactDirectMessage<T>(params: {
|
|
114
|
+
accept(plaintext: Buffer): Promise<T | undefined>;
|
|
115
|
+
ciphertext: Uint8Array;
|
|
116
|
+
messageKey?: string | undefined;
|
|
117
|
+
recipientJid: string;
|
|
118
|
+
remoteJid: string;
|
|
119
|
+
signal?: AbortSignal | undefined;
|
|
120
|
+
type: "msg" | "pkmsg";
|
|
121
|
+
}): Promise<WhatsAppSignalDecryptResult<T>>;
|
|
72
122
|
}
|
|
73
123
|
export declare function createSerializedMessageHandler<T>(processMessage: (message: T) => Promise<void>, onError: (error: unknown) => void, options?: {
|
|
74
124
|
maxPendingBytes?: number | undefined;
|
|
@@ -87,5 +137,14 @@ export declare function resolveWhatsAppWebSocketClose(error: unknown): {
|
|
|
87
137
|
};
|
|
88
138
|
export declare function attachWhatsAppBaileysWebSocketServer(params: WhatsAppBaileysWebSocketServerParams): WhatsAppBaileysWebSocketServer;
|
|
89
139
|
export declare function parseWhatsAppWebSocketUpgradeUrl(requestTarget: string | undefined): URL | undefined;
|
|
140
|
+
export declare function persistAcceptedBaileysMessage(params: {
|
|
141
|
+
acceptanceSignal?: AbortSignal | undefined;
|
|
142
|
+
appendEvent(event: ServerRequestEvent): Promise<void>;
|
|
143
|
+
node: BinaryNode;
|
|
144
|
+
onAcceptanceTimeout?: (() => void) | undefined;
|
|
145
|
+
path: string;
|
|
146
|
+
remoteJid: string;
|
|
147
|
+
signalBundles: WhatsAppSignalBundleStore;
|
|
148
|
+
}): Promise<boolean>;
|
|
90
149
|
export declare function signalBundleIdentityKey(jid: string): string;
|
|
91
150
|
export {};
|