@openclaw/crabline 0.1.0 → 0.1.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/README.md +39 -1
- package/dist/src/cli/program.js +53 -11
- package/dist/src/cli/program.js.map +1 -1
- package/dist/src/fake-servers/http.d.ts +30 -0
- package/dist/src/fake-servers/http.js +130 -0
- package/dist/src/fake-servers/http.js.map +1 -0
- package/dist/src/fake-servers/index.d.ts +15 -6
- package/dist/src/fake-servers/index.js +11 -5
- package/dist/src/fake-servers/index.js.map +1 -1
- package/dist/src/fake-servers/telegram.js +3 -20
- package/dist/src/fake-servers/telegram.js.map +1 -1
- package/dist/src/fake-servers/whatsapp.d.ts +95 -0
- package/dist/src/fake-servers/whatsapp.js +464 -0
- package/dist/src/fake-servers/whatsapp.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/openclaw/bridges/telegram.d.ts +1 -0
- package/dist/src/openclaw/bridges/telegram.js +137 -0
- package/dist/src/openclaw/bridges/telegram.js.map +1 -0
- package/dist/src/openclaw/bridges/whatsapp.d.ts +1 -0
- package/dist/src/openclaw/bridges/whatsapp.js +114 -0
- package/dist/src/openclaw/bridges/whatsapp.js.map +1 -0
- package/dist/src/openclaw/shared.d.ts +125 -0
- package/dist/src/openclaw/shared.js +78 -0
- package/dist/src/openclaw/shared.js.map +1 -0
- package/dist/src/openclaw.d.ts +3 -76
- package/dist/src/openclaw.js +29 -196
- package/dist/src/openclaw.js.map +1 -1
- package/docs/channel-setup.md +47 -1
- package/package.json +1 -1
package/dist/src/openclaw.js
CHANGED
|
@@ -1,78 +1,21 @@
|
|
|
1
1
|
import { CRABLINE_FAKE_PROVIDER_CHANNELS, isCrablineFakeProviderChannel, startCrablineFakeProviderServer, } from "./fake-servers/index.js";
|
|
2
|
+
import { TELEGRAM_OPENCLAW_CRABLINE_PROVIDER_BRIDGE } from "./openclaw/bridges/telegram.js";
|
|
3
|
+
import { WHATSAPP_OPENCLAW_CRABLINE_PROVIDER_BRIDGE } from "./openclaw/bridges/whatsapp.js";
|
|
4
|
+
import { OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH, OPENCLAW_CRABLINE_CHANNEL_SMOKE_PATH, OPENCLAW_CRABLINE_DEFAULT_CHANNEL, OPENCLAW_CRABLINE_MANIFEST_PATH, parseQaTarget, } from "./openclaw/shared.js";
|
|
2
5
|
import fs from "node:fs/promises";
|
|
3
6
|
import path from "node:path";
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
if (typeof value === "number" || typeof value === "bigint") {
|
|
17
|
-
return String(value);
|
|
18
|
-
}
|
|
19
|
-
return undefined;
|
|
20
|
-
}
|
|
21
|
-
function isRecord(value) {
|
|
22
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
23
|
-
}
|
|
24
|
-
function readInteger(value) {
|
|
25
|
-
const stringValue = readString(value);
|
|
26
|
-
if (!stringValue || !/^-?\d+$/u.test(stringValue)) {
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
|
29
|
-
return Number(stringValue);
|
|
30
|
-
}
|
|
31
|
-
function parseQaTarget(target) {
|
|
32
|
-
const trimmed = target.trim();
|
|
33
|
-
if (trimmed.startsWith("thread:")) {
|
|
34
|
-
const rest = trimmed.slice("thread:".length);
|
|
35
|
-
const slash = rest.indexOf("/");
|
|
36
|
-
if (slash > 0) {
|
|
37
|
-
return { kind: "group", id: rest.slice(0, slash), threadId: rest.slice(slash + 1) };
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
if (trimmed.startsWith("channel:")) {
|
|
41
|
-
return { kind: "group", id: trimmed.slice("channel:".length) };
|
|
42
|
-
}
|
|
43
|
-
if (trimmed.startsWith("group:")) {
|
|
44
|
-
return { kind: "group", id: trimmed.slice("group:".length) };
|
|
45
|
-
}
|
|
46
|
-
if (trimmed.startsWith("dm:")) {
|
|
47
|
-
return { kind: "direct", id: trimmed.slice("dm:".length) };
|
|
48
|
-
}
|
|
49
|
-
return { kind: "direct", id: trimmed };
|
|
50
|
-
}
|
|
51
|
-
function normalizeTelegramChatId(kind, id) {
|
|
52
|
-
return /^-?\d+$/u.test(id.trim())
|
|
53
|
-
? id.trim()
|
|
54
|
-
: kind === "group"
|
|
55
|
-
? TELEGRAM_GROUP_CHAT_ID
|
|
56
|
-
: TELEGRAM_DIRECT_CHAT_ID;
|
|
57
|
-
}
|
|
58
|
-
function telegramTargetKey(chatId, threadId) {
|
|
59
|
-
return threadId === undefined ? chatId : `${chatId}:topic:${threadId}`;
|
|
60
|
-
}
|
|
61
|
-
function qaTargetForInbound(input) {
|
|
62
|
-
const prefix = input.conversation.kind === "direct"
|
|
63
|
-
? "dm"
|
|
64
|
-
: input.conversation.kind === "channel"
|
|
65
|
-
? "channel"
|
|
66
|
-
: "group";
|
|
67
|
-
return input.threadId
|
|
68
|
-
? `thread:${input.conversation.id}/${input.threadId}`
|
|
69
|
-
: `${prefix}:${input.conversation.id}`;
|
|
70
|
-
}
|
|
71
|
-
function requireTelegramManifest(manifest) {
|
|
72
|
-
if (manifest.provider !== "telegram") {
|
|
73
|
-
throw new Error(`Unsupported OpenClaw fake provider binding: ${String(manifest.provider)}`);
|
|
74
|
-
}
|
|
75
|
-
return manifest;
|
|
7
|
+
export { OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH, OPENCLAW_CRABLINE_CHANNEL_SMOKE_PATH, OPENCLAW_CRABLINE_DEFAULT_CHANNEL, OPENCLAW_CRABLINE_MANIFEST_PATH, };
|
|
8
|
+
const OPENCLAW_CRABLINE_PROVIDER_BRIDGES = {
|
|
9
|
+
telegram: TELEGRAM_OPENCLAW_CRABLINE_PROVIDER_BRIDGE,
|
|
10
|
+
whatsapp: WHATSAPP_OPENCLAW_CRABLINE_PROVIDER_BRIDGE,
|
|
11
|
+
};
|
|
12
|
+
const OPENCLAW_CRABLINE_PROVIDER_BRIDGE_LIST = Object.values(OPENCLAW_CRABLINE_PROVIDER_BRIDGES);
|
|
13
|
+
function createOpenClawCrablineProviderAdapter(manifest) {
|
|
14
|
+
const bridge = OPENCLAW_CRABLINE_PROVIDER_BRIDGE_LIST.find((candidate) => candidate.provider === manifest.provider);
|
|
15
|
+
if (bridge) {
|
|
16
|
+
return bridge.createAdapterFromManifest(manifest);
|
|
17
|
+
}
|
|
18
|
+
throw new Error("Unsupported OpenClaw fake provider binding.");
|
|
76
19
|
}
|
|
77
20
|
export function resolveOpenClawCrablineChannel(input) {
|
|
78
21
|
const channel = input?.trim().toLowerCase() || OPENCLAW_CRABLINE_DEFAULT_CHANNEL;
|
|
@@ -90,152 +33,42 @@ export function resolveOpenClawCrablineChannelDriverSelection(params) {
|
|
|
90
33
|
};
|
|
91
34
|
}
|
|
92
35
|
export async function probeOpenClawCrablineFakeProvider(manifest) {
|
|
93
|
-
|
|
94
|
-
throw new Error(`OpenClaw Crabline fake-provider smoke does not support ${String(manifest.provider)}.`);
|
|
95
|
-
}
|
|
96
|
-
const response = await fetch(`${manifest.endpoints.apiRoot}/bot${manifest.botToken}/getMe`);
|
|
97
|
-
if (!response.ok) {
|
|
98
|
-
throw new Error(`Crabline Telegram getMe probe failed with HTTP ${response.status}.`);
|
|
99
|
-
}
|
|
100
|
-
return await response.json();
|
|
36
|
+
return await createOpenClawCrablineProviderAdapter(manifest).probe();
|
|
101
37
|
}
|
|
102
38
|
export function createOpenClawCrablineFakeProviderBinding(manifest) {
|
|
103
|
-
|
|
104
|
-
return {
|
|
105
|
-
accountId: TELEGRAM_ACCOUNT_ID,
|
|
106
|
-
channel: "telegram",
|
|
107
|
-
createChannelDriverSmokeEnv: (env) => ({
|
|
108
|
-
...env,
|
|
109
|
-
TELEGRAM_BOT_TOKEN: telegram.botToken,
|
|
110
|
-
}),
|
|
111
|
-
createGatewayConfig: (openclawConfig = {}) => {
|
|
112
|
-
const channels = isRecord(openclawConfig.channels) ? openclawConfig.channels : {};
|
|
113
|
-
const telegramConfig = isRecord(channels.telegram) ? channels.telegram : {};
|
|
114
|
-
const groups = isRecord(telegramConfig.groups) ? telegramConfig.groups : {};
|
|
115
|
-
const defaultGroup = isRecord(groups["*"]) ? groups["*"] : {};
|
|
116
|
-
const messages = isRecord(openclawConfig.messages) ? openclawConfig.messages : {};
|
|
117
|
-
const groupChat = isRecord(messages.groupChat) ? messages.groupChat : {};
|
|
118
|
-
return {
|
|
119
|
-
...openclawConfig,
|
|
120
|
-
channels: {
|
|
121
|
-
...channels,
|
|
122
|
-
telegram: {
|
|
123
|
-
...telegramConfig,
|
|
124
|
-
enabled: true,
|
|
125
|
-
botToken: telegram.botToken,
|
|
126
|
-
apiRoot: telegram.endpoints.apiRoot,
|
|
127
|
-
dmPolicy: "open",
|
|
128
|
-
groupPolicy: "open",
|
|
129
|
-
allowFrom: ["*"],
|
|
130
|
-
groupAllowFrom: ["*"],
|
|
131
|
-
groups: {
|
|
132
|
-
...groups,
|
|
133
|
-
"*": {
|
|
134
|
-
...defaultGroup,
|
|
135
|
-
requireMention: false,
|
|
136
|
-
},
|
|
137
|
-
},
|
|
138
|
-
},
|
|
139
|
-
},
|
|
140
|
-
messages: {
|
|
141
|
-
...messages,
|
|
142
|
-
groupChat: {
|
|
143
|
-
...groupChat,
|
|
144
|
-
mentionPatterns: ["\\b@?openclaw\\b"],
|
|
145
|
-
visibleReplies: "automatic",
|
|
146
|
-
},
|
|
147
|
-
},
|
|
148
|
-
};
|
|
149
|
-
},
|
|
150
|
-
requiredPluginIds: ["telegram"],
|
|
151
|
-
};
|
|
39
|
+
return createOpenClawCrablineProviderAdapter(manifest).createBinding();
|
|
152
40
|
}
|
|
153
41
|
export function createOpenClawCrablineAgentDelivery(params) {
|
|
154
|
-
|
|
155
|
-
const parsed = parseQaTarget(params.target);
|
|
156
|
-
const chatId = normalizeTelegramChatId(parsed.kind, parsed.id);
|
|
157
|
-
const threadId = readInteger(parsed.threadId);
|
|
158
|
-
const to = telegramTargetKey(chatId, threadId);
|
|
159
|
-
return {
|
|
160
|
-
channel: "telegram",
|
|
161
|
-
to,
|
|
162
|
-
replyChannel: "telegram",
|
|
163
|
-
replyTo: to,
|
|
164
|
-
};
|
|
42
|
+
return createOpenClawCrablineProviderAdapter(params.manifest).createAgentDelivery(parseQaTarget(params.target));
|
|
165
43
|
}
|
|
166
44
|
export function createOpenClawCrablineInbound(params) {
|
|
167
|
-
|
|
168
|
-
const kind = params.input.conversation.kind === "direct" ? "direct" : "group";
|
|
169
|
-
const chatId = normalizeTelegramChatId(kind, params.input.conversation.id);
|
|
170
|
-
const threadId = readInteger(params.input.threadId);
|
|
171
|
-
return {
|
|
172
|
-
providerBody: {
|
|
173
|
-
chatId,
|
|
174
|
-
fromId: readInteger(params.input.senderId) ?? TELEGRAM_DEFAULT_SENDER_ID,
|
|
175
|
-
fromName: params.input.senderName ?? params.input.senderId,
|
|
176
|
-
...(threadId !== undefined ? { messageThreadId: threadId } : {}),
|
|
177
|
-
text: params.input.text,
|
|
178
|
-
},
|
|
179
|
-
providerTargetKey: telegramTargetKey(chatId, threadId),
|
|
180
|
-
qaTarget: qaTargetForInbound(params.input),
|
|
181
|
-
stateConversation: {
|
|
182
|
-
id: chatId,
|
|
183
|
-
kind: kind === "group" ? "group" : "direct",
|
|
184
|
-
},
|
|
185
|
-
...(threadId !== undefined ? { threadId: String(threadId) } : {}),
|
|
186
|
-
};
|
|
45
|
+
return createOpenClawCrablineProviderAdapter(params.manifest).createInbound(params.input);
|
|
187
46
|
}
|
|
188
47
|
export function createOpenClawCrablineOutboundFromRecorderEvent(params) {
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
!event.path.endsWith("/sendMessage") ||
|
|
194
|
-
!event.body ||
|
|
195
|
-
typeof event.body !== "object") {
|
|
196
|
-
return null;
|
|
197
|
-
}
|
|
198
|
-
const chatId = readString(event.body.chat_id);
|
|
199
|
-
const text = typeof event.body.text === "string" && event.body.text.trim() ? event.body.text : undefined;
|
|
200
|
-
if (!chatId || !text) {
|
|
201
|
-
return null;
|
|
202
|
-
}
|
|
203
|
-
const threadId = readInteger(event.body.message_thread_id);
|
|
204
|
-
const providerTargetKey = telegramTargetKey(chatId, threadId);
|
|
205
|
-
return {
|
|
206
|
-
accountId: TELEGRAM_ACCOUNT_ID,
|
|
207
|
-
senderId: "openclaw",
|
|
208
|
-
senderName: "OpenClaw QA",
|
|
209
|
-
text,
|
|
210
|
-
to: params.targetByProviderTarget.get(providerTargetKey) ??
|
|
211
|
-
(threadId === undefined ? chatId : providerTargetKey),
|
|
212
|
-
};
|
|
48
|
+
return createOpenClawCrablineProviderAdapter(params.manifest).createOutboundFromRecorderEvent({
|
|
49
|
+
event: params.event,
|
|
50
|
+
targetByProviderTarget: params.targetByProviderTarget,
|
|
51
|
+
});
|
|
213
52
|
}
|
|
214
53
|
export async function startOpenClawCrablineAdapter(params) {
|
|
215
54
|
const server = await startCrablineFakeProviderServer({
|
|
216
55
|
channel: params.channel,
|
|
217
56
|
recorderPath: params.recorderPath,
|
|
218
57
|
});
|
|
219
|
-
const
|
|
58
|
+
const providerAdapter = createOpenClawCrablineProviderAdapter(server.manifest);
|
|
59
|
+
const binding = providerAdapter.createBinding();
|
|
220
60
|
return {
|
|
221
61
|
...binding,
|
|
222
62
|
close: server.close,
|
|
223
63
|
createGatewayConfig: (openclawConfig = params.openclawConfig ?? {}) => binding.createGatewayConfig(openclawConfig),
|
|
224
|
-
createAgentDelivery: ({ target }) =>
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
}),
|
|
228
|
-
createInbound: ({ input }) => createOpenClawCrablineInbound({
|
|
229
|
-
input,
|
|
230
|
-
manifest: server.manifest,
|
|
231
|
-
}),
|
|
232
|
-
createOutboundFromRecorderEvent: ({ event, targetByProviderTarget }) => createOpenClawCrablineOutboundFromRecorderEvent({
|
|
64
|
+
createAgentDelivery: ({ target }) => providerAdapter.createAgentDelivery(parseQaTarget(target)),
|
|
65
|
+
createInbound: ({ input }) => providerAdapter.createInbound(input),
|
|
66
|
+
createOutboundFromRecorderEvent: ({ event, targetByProviderTarget }) => providerAdapter.createOutboundFromRecorderEvent({
|
|
233
67
|
event,
|
|
234
|
-
manifest: server.manifest,
|
|
235
68
|
targetByProviderTarget,
|
|
236
69
|
}),
|
|
237
70
|
manifest: server.manifest,
|
|
238
|
-
probe: () =>
|
|
71
|
+
probe: () => providerAdapter.probe(),
|
|
239
72
|
};
|
|
240
73
|
}
|
|
241
74
|
export async function runOpenClawCrablineChannelDriverSmoke(params) {
|
package/dist/src/openclaw.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../src/openclaw.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../src/openclaw.ts"],"names":[],"mappings":"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"}
|
package/docs/channel-setup.md
CHANGED
|
@@ -76,7 +76,7 @@ Fake provider servers sit below OpenClaw's normal channel adapters. QA starts th
|
|
|
76
76
|
server, writes the emitted runtime manifest into OpenClaw config/env, and then
|
|
77
77
|
OpenClaw talks to the local fake provider instead of the public provider.
|
|
78
78
|
|
|
79
|
-
Telegram
|
|
79
|
+
Telegram:
|
|
80
80
|
|
|
81
81
|
```bash
|
|
82
82
|
crabline --json serve telegram --ready-file .crabline/telegram-server.json
|
|
@@ -107,6 +107,50 @@ The admin ingress accepts JSON like:
|
|
|
107
107
|
OpenClaw consumes that message through Telegram `getUpdates`; outbound adapter
|
|
108
108
|
sends are recorded through Telegram `sendMessage`.
|
|
109
109
|
|
|
110
|
+
WhatsApp:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
crabline --json serve whatsapp --ready-file .crabline/whatsapp-server.json
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Manifest fields:
|
|
117
|
+
|
|
118
|
+
- `endpoints.apiRoot`: Crabline WhatsApp fake provider API root
|
|
119
|
+
- `accessToken`: bearer token for fake provider requests
|
|
120
|
+
- `adminToken`: value for the `X-Crabline-Admin-Token` header on admin ingress
|
|
121
|
+
- `selfJid`: fake authenticated WhatsApp user JID
|
|
122
|
+
- `endpoints.adminInboundUrl`: authenticated admin ingress for test user
|
|
123
|
+
messages; subscribed Baileys mock sockets receive them as `messages.upsert`
|
|
124
|
+
- `endpoints.messagesUrl`: text send endpoint used by the Baileys-shaped mock
|
|
125
|
+
- `endpoints.presenceUrl`: presence endpoint used by `sendPresenceUpdate`
|
|
126
|
+
- `recorderPath`: JSONL provider traffic recorder
|
|
127
|
+
|
|
128
|
+
Use the started server's `createBaileysMockSocket()` when a test needs a
|
|
129
|
+
Baileys-style `sendMessage()` / `sendPresenceUpdate()` surface backed by the
|
|
130
|
+
same fake provider server. The admin token is generated randomly unless
|
|
131
|
+
`--admin-token <token>` is provided.
|
|
132
|
+
|
|
133
|
+
OpenClaw bridge callers should post injected user messages with the
|
|
134
|
+
`providerUrl`, `providerHeaders`, and `providerBody` returned by
|
|
135
|
+
`createOpenClawCrablineInbound()`. For WhatsApp, inbound `messages.upsert`
|
|
136
|
+
delivery is an in-process Baileys mock socket behavior: create the fake server
|
|
137
|
+
and Baileys mock socket in the same Node process when testing listener-driven
|
|
138
|
+
inbound delivery. If the socket is created outside the started server, pass the
|
|
139
|
+
same `WhatsAppBaileysMockRegistry` to the server and socket helper.
|
|
140
|
+
|
|
141
|
+
The admin ingress accepts JSON like:
|
|
142
|
+
|
|
143
|
+
```json
|
|
144
|
+
{
|
|
145
|
+
"chatJid": "120363001234567890@g.us",
|
|
146
|
+
"senderJid": "15551234567@s.whatsapp.net",
|
|
147
|
+
"text": "user nonce-123"
|
|
148
|
+
}
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
Outbound text sends and composing presence are recorded through the fake
|
|
152
|
+
provider messages and presence endpoints.
|
|
153
|
+
|
|
110
154
|
## Webhook Payload
|
|
111
155
|
|
|
112
156
|
Mock webhooks accept provider-native event payloads where Crabline has a built-in
|
|
@@ -145,6 +189,8 @@ as `telegram:`, `discord:`, or `slack:`.
|
|
|
145
189
|
- Slack threads: `1700000000.000100`
|
|
146
190
|
- Telegram chats: `-1001234567890` or `@channelusername`
|
|
147
191
|
- Telegram topics: `42`
|
|
192
|
+
- WhatsApp users: `15551234567@s.whatsapp.net`
|
|
193
|
+
- WhatsApp groups: `120363001234567890@g.us`
|
|
148
194
|
- Discord channels and threads: Discord snowflake ids such as
|
|
149
195
|
`123456789012345678`
|
|
150
196
|
- Google Chat spaces: `spaces/AAAABbbbCCC`
|