@openclaw/crabline 0.1.0 → 0.1.3
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 +68 -1
- package/dist/src/cli/program.js +62 -12
- 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 +21 -6
- package/dist/src/fake-servers/index.js +19 -5
- package/dist/src/fake-servers/index.js.map +1 -1
- package/dist/src/fake-servers/slack.d.ts +34 -0
- package/dist/src/fake-servers/slack.js +445 -0
- package/dist/src/fake-servers/slack.js.map +1 -0
- 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-socket-factory.d.ts +34 -0
- package/dist/src/fake-servers/whatsapp-socket-factory.js +225 -0
- package/dist/src/fake-servers/whatsapp-socket-factory.js.map +1 -0
- package/dist/src/fake-servers/whatsapp.d.ts +96 -0
- package/dist/src/fake-servers/whatsapp.js +474 -0
- package/dist/src/fake-servers/whatsapp.js.map +1 -0
- package/dist/src/index.d.ts +6 -0
- package/dist/src/index.js +3 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/openclaw/bridges/slack.d.ts +1 -0
- package/dist/src/openclaw/bridges/slack.js +150 -0
- package/dist/src/openclaw/bridges/slack.js.map +1 -0
- 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 +115 -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 +31 -196
- package/dist/src/openclaw.js.map +1 -1
- package/dist/src/providers/builtin/native-local-mock.d.ts +2 -5
- package/dist/src/providers/builtin/native-local-mock.js.map +1 -1
- package/dist/src/providers/builtin/slack.js +1 -10
- package/dist/src/providers/builtin/slack.js.map +1 -1
- package/dist/src/providers/native-ids.d.ts +5 -0
- package/dist/src/providers/native-ids.js +2 -0
- package/dist/src/providers/native-ids.js.map +1 -0
- package/dist/src/providers/slack-ids.d.ts +6 -0
- package/dist/src/providers/slack-ids.js +24 -0
- package/dist/src/providers/slack-ids.js.map +1 -0
- package/docs/channel-setup.md +82 -1
- package/package.json +5 -1
package/dist/src/openclaw.d.ts
CHANGED
|
@@ -1,80 +1,7 @@
|
|
|
1
1
|
import { type CrablineFakeProviderChannel, type CrablineFakeProviderManifest } from "./fake-servers/index.js";
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
export
|
|
5
|
-
export declare const OPENCLAW_CRABLINE_DEFAULT_CHANNEL = "telegram";
|
|
6
|
-
export type OpenClawCrablineChannelDriverSelection = {
|
|
7
|
-
channel: CrablineFakeProviderChannel;
|
|
8
|
-
channelDriver: "crabline";
|
|
9
|
-
capabilityMatrixPath: typeof OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH;
|
|
10
|
-
smokeArtifactPath: typeof OPENCLAW_CRABLINE_CHANNEL_SMOKE_PATH;
|
|
11
|
-
};
|
|
12
|
-
export type OpenClawCrablineChannelDriverSmokeResult = {
|
|
13
|
-
capabilityReport: unknown;
|
|
14
|
-
manifestPath: string;
|
|
15
|
-
smoke: unknown;
|
|
16
|
-
};
|
|
17
|
-
export type OpenClawCrablineConversation = {
|
|
18
|
-
id: string;
|
|
19
|
-
kind: "direct" | "group";
|
|
20
|
-
};
|
|
21
|
-
export type OpenClawCrablineGatewayBinding = {
|
|
22
|
-
accountId: string;
|
|
23
|
-
channel: string;
|
|
24
|
-
createChannelDriverSmokeEnv(env: NodeJS.ProcessEnv): NodeJS.ProcessEnv;
|
|
25
|
-
createGatewayConfig(openclawConfig?: Record<string, unknown>): Record<string, unknown>;
|
|
26
|
-
requiredPluginIds: string[];
|
|
27
|
-
};
|
|
28
|
-
export type OpenClawCrablineAgentDelivery = {
|
|
29
|
-
channel: string;
|
|
30
|
-
replyChannel: string;
|
|
31
|
-
replyTo: string;
|
|
32
|
-
to: string;
|
|
33
|
-
};
|
|
34
|
-
export type OpenClawCrablineInboundInput = {
|
|
35
|
-
conversation: {
|
|
36
|
-
id: string;
|
|
37
|
-
kind: string;
|
|
38
|
-
};
|
|
39
|
-
senderId: string;
|
|
40
|
-
senderName?: string | undefined;
|
|
41
|
-
text: string;
|
|
42
|
-
threadId?: string | undefined;
|
|
43
|
-
};
|
|
44
|
-
export type OpenClawCrablineInbound = {
|
|
45
|
-
providerBody: Record<string, unknown>;
|
|
46
|
-
providerTargetKey: string;
|
|
47
|
-
qaTarget: string;
|
|
48
|
-
stateConversation: OpenClawCrablineConversation;
|
|
49
|
-
threadId?: string | undefined;
|
|
50
|
-
};
|
|
51
|
-
export type OpenClawCrablineOutboundMessage = {
|
|
52
|
-
accountId: string;
|
|
53
|
-
senderId: string;
|
|
54
|
-
senderName: string;
|
|
55
|
-
text: string;
|
|
56
|
-
to: string;
|
|
57
|
-
};
|
|
58
|
-
export type StartOpenClawCrablineAdapterParams = {
|
|
59
|
-
channel: CrablineFakeProviderChannel;
|
|
60
|
-
openclawConfig?: Record<string, unknown> | undefined;
|
|
61
|
-
recorderPath?: string | undefined;
|
|
62
|
-
};
|
|
63
|
-
export type StartedOpenClawCrablineAdapter = OpenClawCrablineGatewayBinding & {
|
|
64
|
-
close(): Promise<void>;
|
|
65
|
-
createAgentDelivery(params: {
|
|
66
|
-
target: string;
|
|
67
|
-
}): OpenClawCrablineAgentDelivery;
|
|
68
|
-
createInbound(params: {
|
|
69
|
-
input: OpenClawCrablineInboundInput;
|
|
70
|
-
}): OpenClawCrablineInbound;
|
|
71
|
-
createOutboundFromRecorderEvent(params: {
|
|
72
|
-
event: unknown;
|
|
73
|
-
targetByProviderTarget: ReadonlyMap<string, string>;
|
|
74
|
-
}): OpenClawCrablineOutboundMessage | null;
|
|
75
|
-
manifest: CrablineFakeProviderManifest;
|
|
76
|
-
probe(): Promise<unknown>;
|
|
77
|
-
};
|
|
2
|
+
import { OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH, OPENCLAW_CRABLINE_CHANNEL_SMOKE_PATH, OPENCLAW_CRABLINE_DEFAULT_CHANNEL, OPENCLAW_CRABLINE_MANIFEST_PATH, type OpenClawCrablineAgentDelivery, type OpenClawCrablineChannelDriverSelection, type OpenClawCrablineChannelDriverSmokeResult, type OpenClawCrablineGatewayBinding, type OpenClawCrablineInbound, type OpenClawCrablineInboundInput, type OpenClawCrablineOutboundMessage, type StartedOpenClawCrablineAdapter, type StartOpenClawCrablineAdapterParams } from "./openclaw/shared.js";
|
|
3
|
+
export { OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH, OPENCLAW_CRABLINE_CHANNEL_SMOKE_PATH, OPENCLAW_CRABLINE_DEFAULT_CHANNEL, OPENCLAW_CRABLINE_MANIFEST_PATH, };
|
|
4
|
+
export type { OpenClawCrablineAgentDelivery, OpenClawCrablineChannelDriverSelection, OpenClawCrablineChannelDriverSmokeResult, OpenClawCrablineConversation, OpenClawCrablineGatewayBinding, OpenClawCrablineInbound, OpenClawCrablineInboundInput, OpenClawCrablineOutboundMessage, StartedOpenClawCrablineAdapter, StartOpenClawCrablineAdapterParams, } from "./openclaw/shared.js";
|
|
78
5
|
export declare function resolveOpenClawCrablineChannel(input?: string | null): CrablineFakeProviderChannel;
|
|
79
6
|
export declare function resolveOpenClawCrablineChannelDriverSelection(params: {
|
|
80
7
|
channel?: string | null;
|
package/dist/src/openclaw.js
CHANGED
|
@@ -1,78 +1,23 @@
|
|
|
1
1
|
import { CRABLINE_FAKE_PROVIDER_CHANNELS, isCrablineFakeProviderChannel, startCrablineFakeProviderServer, } from "./fake-servers/index.js";
|
|
2
|
+
import { SLACK_OPENCLAW_CRABLINE_PROVIDER_BRIDGE } from "./openclaw/bridges/slack.js";
|
|
3
|
+
import { TELEGRAM_OPENCLAW_CRABLINE_PROVIDER_BRIDGE } from "./openclaw/bridges/telegram.js";
|
|
4
|
+
import { WHATSAPP_OPENCLAW_CRABLINE_PROVIDER_BRIDGE } from "./openclaw/bridges/whatsapp.js";
|
|
5
|
+
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
6
|
import fs from "node:fs/promises";
|
|
3
7
|
import path from "node:path";
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
if (
|
|
14
|
-
return
|
|
15
|
-
}
|
|
16
|
-
|
|
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;
|
|
8
|
+
export { OPENCLAW_CRABLINE_CHANNEL_CAPABILITY_MATRIX_PATH, OPENCLAW_CRABLINE_CHANNEL_SMOKE_PATH, OPENCLAW_CRABLINE_DEFAULT_CHANNEL, OPENCLAW_CRABLINE_MANIFEST_PATH, };
|
|
9
|
+
const OPENCLAW_CRABLINE_PROVIDER_BRIDGES = {
|
|
10
|
+
slack: SLACK_OPENCLAW_CRABLINE_PROVIDER_BRIDGE,
|
|
11
|
+
telegram: TELEGRAM_OPENCLAW_CRABLINE_PROVIDER_BRIDGE,
|
|
12
|
+
whatsapp: WHATSAPP_OPENCLAW_CRABLINE_PROVIDER_BRIDGE,
|
|
13
|
+
};
|
|
14
|
+
const OPENCLAW_CRABLINE_PROVIDER_BRIDGE_LIST = Object.values(OPENCLAW_CRABLINE_PROVIDER_BRIDGES);
|
|
15
|
+
function createOpenClawCrablineProviderAdapter(manifest) {
|
|
16
|
+
const bridge = OPENCLAW_CRABLINE_PROVIDER_BRIDGE_LIST.find((candidate) => candidate.provider === manifest.provider);
|
|
17
|
+
if (bridge) {
|
|
18
|
+
return bridge.createAdapterFromManifest(manifest);
|
|
19
|
+
}
|
|
20
|
+
throw new Error("Unsupported OpenClaw fake provider binding.");
|
|
76
21
|
}
|
|
77
22
|
export function resolveOpenClawCrablineChannel(input) {
|
|
78
23
|
const channel = input?.trim().toLowerCase() || OPENCLAW_CRABLINE_DEFAULT_CHANNEL;
|
|
@@ -90,152 +35,42 @@ export function resolveOpenClawCrablineChannelDriverSelection(params) {
|
|
|
90
35
|
};
|
|
91
36
|
}
|
|
92
37
|
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();
|
|
38
|
+
return await createOpenClawCrablineProviderAdapter(manifest).probe();
|
|
101
39
|
}
|
|
102
40
|
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
|
-
};
|
|
41
|
+
return createOpenClawCrablineProviderAdapter(manifest).createBinding();
|
|
152
42
|
}
|
|
153
43
|
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
|
-
};
|
|
44
|
+
return createOpenClawCrablineProviderAdapter(params.manifest).createAgentDelivery(parseQaTarget(params.target));
|
|
165
45
|
}
|
|
166
46
|
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
|
-
};
|
|
47
|
+
return createOpenClawCrablineProviderAdapter(params.manifest).createInbound(params.input);
|
|
187
48
|
}
|
|
188
49
|
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
|
-
};
|
|
50
|
+
return createOpenClawCrablineProviderAdapter(params.manifest).createOutboundFromRecorderEvent({
|
|
51
|
+
event: params.event,
|
|
52
|
+
targetByProviderTarget: params.targetByProviderTarget,
|
|
53
|
+
});
|
|
213
54
|
}
|
|
214
55
|
export async function startOpenClawCrablineAdapter(params) {
|
|
215
56
|
const server = await startCrablineFakeProviderServer({
|
|
216
57
|
channel: params.channel,
|
|
217
58
|
recorderPath: params.recorderPath,
|
|
218
59
|
});
|
|
219
|
-
const
|
|
60
|
+
const providerAdapter = createOpenClawCrablineProviderAdapter(server.manifest);
|
|
61
|
+
const binding = providerAdapter.createBinding();
|
|
220
62
|
return {
|
|
221
63
|
...binding,
|
|
222
64
|
close: server.close,
|
|
223
65
|
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({
|
|
66
|
+
createAgentDelivery: ({ target }) => providerAdapter.createAgentDelivery(parseQaTarget(target)),
|
|
67
|
+
createInbound: ({ input }) => providerAdapter.createInbound(input),
|
|
68
|
+
createOutboundFromRecorderEvent: ({ event, targetByProviderTarget }) => providerAdapter.createOutboundFromRecorderEvent({
|
|
233
69
|
event,
|
|
234
|
-
manifest: server.manifest,
|
|
235
70
|
targetByProviderTarget,
|
|
236
71
|
}),
|
|
237
72
|
manifest: server.manifest,
|
|
238
|
-
probe: () =>
|
|
73
|
+
probe: () => providerAdapter.probe(),
|
|
239
74
|
};
|
|
240
75
|
}
|
|
241
76
|
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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"}
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
import type { LocalMockTargetCodec } from "../local-mock.js";
|
|
2
|
+
import type { NativeIdRule } from "../native-ids.js";
|
|
2
3
|
import type { InboundEnvelope } from "../types.js";
|
|
3
|
-
export type NativeIdRule
|
|
4
|
-
example: string;
|
|
5
|
-
name: string;
|
|
6
|
-
pattern: RegExp;
|
|
7
|
-
};
|
|
4
|
+
export type { NativeIdRule } from "../native-ids.js";
|
|
8
5
|
export declare function isRecord(value: unknown): value is Record<string, unknown>;
|
|
9
6
|
export declare function optionalRecord(value: Record<string, unknown>, key: string): Record<string, unknown> | undefined;
|
|
10
7
|
export declare function optionalString(value: Record<string, unknown>, key: string): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native-local-mock.js","sourceRoot":"","sources":["../../../../src/providers/builtin/native-local-mock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"native-local-mock.js","sourceRoot":"","sources":["../../../../src/providers/builtin/native-local-mock.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,16 +2,7 @@ import path from "node:path";
|
|
|
2
2
|
import { CrablineError } from "../../core/errors.js";
|
|
3
3
|
import { LocalMockProviderAdapter } from "../local-mock.js";
|
|
4
4
|
import { genericMockPayloadWithNativeThread, isRecord, requireNativeInboundId, } from "./native-local-mock.js";
|
|
5
|
-
|
|
6
|
-
example: "C1234567890",
|
|
7
|
-
name: "Slack conversation id",
|
|
8
|
-
pattern: /^[CDG][A-Z0-9]{2,}$/u,
|
|
9
|
-
};
|
|
10
|
-
const SLACK_TS_RULE = {
|
|
11
|
-
example: "1700000000.000100",
|
|
12
|
-
name: "Slack timestamp",
|
|
13
|
-
pattern: /^\d{10}\.\d{6}$/u,
|
|
14
|
-
};
|
|
5
|
+
import { SLACK_CHANNEL_ID_RULE, SLACK_TS_RULE } from "../slack-ids.js";
|
|
15
6
|
function requireSlackChannelId(value, label) {
|
|
16
7
|
if (!SLACK_CHANNEL_ID_RULE.pattern.test(value)) {
|
|
17
8
|
throw new CrablineError(`Slack ${label} must be a native Slack conversation id such as C1234567890, G1234567890, or D1234567890.`, { kind: "config" });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../../src/providers/builtin/slack.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAErD,OAAO,EAAE,wBAAwB,EAA6B,MAAM,kBAAkB,CAAC;AAOvF,OAAO,EACL,kCAAkC,EAClC,QAAQ,EACR,sBAAsB,
|
|
1
|
+
{"version":3,"file":"slack.js","sourceRoot":"","sources":["../../../../src/providers/builtin/slack.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-ids.js","sourceRoot":"","sources":["../../../src/providers/native-ids.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { NativeIdRule } from "./native-ids.js";
|
|
2
|
+
export declare const SLACK_CHANNEL_ID_RULE: NativeIdRule;
|
|
3
|
+
export declare const SLACK_SEND_TARGET_ID_RULE: NativeIdRule;
|
|
4
|
+
export declare const SLACK_USER_ID_RULE: NativeIdRule;
|
|
5
|
+
export declare const SLACK_TS_RULE: NativeIdRule;
|
|
6
|
+
export declare function slackTargetKey(channel: string, threadTs?: string): string;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const SLACK_CHANNEL_ID_RULE = {
|
|
2
|
+
example: "C1234567890",
|
|
3
|
+
name: "Slack conversation id",
|
|
4
|
+
pattern: /^[CDG][A-Z0-9]{2,}$/u,
|
|
5
|
+
};
|
|
6
|
+
export const SLACK_SEND_TARGET_ID_RULE = {
|
|
7
|
+
example: "C1234567890",
|
|
8
|
+
name: "Slack conversation or user id",
|
|
9
|
+
pattern: /^[CDGUW][A-Z0-9]{2,}$/u,
|
|
10
|
+
};
|
|
11
|
+
export const SLACK_USER_ID_RULE = {
|
|
12
|
+
example: "U1234567890",
|
|
13
|
+
name: "Slack user id",
|
|
14
|
+
pattern: /^[UW][A-Z0-9]{2,}$/u,
|
|
15
|
+
};
|
|
16
|
+
export const SLACK_TS_RULE = {
|
|
17
|
+
example: "1700000000.000100",
|
|
18
|
+
name: "Slack timestamp",
|
|
19
|
+
pattern: /^\d{10}\.\d{6}$/u,
|
|
20
|
+
};
|
|
21
|
+
export function slackTargetKey(channel, threadTs) {
|
|
22
|
+
return threadTs ? `${channel}:thread:${threadTs}` : channel;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=slack-ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack-ids.js","sourceRoot":"","sources":["../../../src/providers/slack-ids.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,qBAAqB,GAAiB;IACjD,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,uBAAuB;IAC7B,OAAO,EAAE,sBAAsB;CAChC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAiB;IACrD,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,+BAA+B;IACrC,OAAO,EAAE,wBAAwB;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAiB;IAC9C,OAAO,EAAE,aAAa;IACtB,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,qBAAqB;CAC/B,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAiB;IACzC,OAAO,EAAE,mBAAmB;IAC5B,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,kBAAkB;CAC5B,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,QAAiB;IAC/D,OAAO,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,WAAW,QAAQ,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;AAC9D,CAAC"}
|
package/docs/channel-setup.md
CHANGED
|
@@ -76,7 +76,37 @@ 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
|
-
|
|
79
|
+
Slack:
|
|
80
|
+
|
|
81
|
+
```bash
|
|
82
|
+
crabline --json serve slack --ready-file .crabline/slack-server.json
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
Manifest fields:
|
|
86
|
+
|
|
87
|
+
- `endpoints.apiRoot`: OpenClaw Slack Web API root / `SLACK_API_URL`
|
|
88
|
+
- `botToken`: OpenClaw `channels.slack.botToken`
|
|
89
|
+
- `signingSecret`: OpenClaw `channels.slack.signingSecret`
|
|
90
|
+
- `adminToken`: value for the `X-Crabline-Admin-Token` header on admin ingress
|
|
91
|
+
- `endpoints.adminInboundUrl`: authenticated admin ingress for test user messages
|
|
92
|
+
- `endpoints.eventsUrl`: local Slack Events API endpoint
|
|
93
|
+
- `recorderPath`: JSONL provider traffic recorder
|
|
94
|
+
|
|
95
|
+
The admin ingress accepts JSON like:
|
|
96
|
+
|
|
97
|
+
```json
|
|
98
|
+
{
|
|
99
|
+
"channel": "C1234567890",
|
|
100
|
+
"threadTs": "1700000000.000100",
|
|
101
|
+
"user": "U1234567890",
|
|
102
|
+
"text": "user nonce-123"
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
OpenClaw consumes that message through Slack Events API shape; outbound adapter
|
|
107
|
+
sends are recorded through Slack `chat.postMessage`.
|
|
108
|
+
|
|
109
|
+
Telegram:
|
|
80
110
|
|
|
81
111
|
```bash
|
|
82
112
|
crabline --json serve telegram --ready-file .crabline/telegram-server.json
|
|
@@ -107,6 +137,55 @@ The admin ingress accepts JSON like:
|
|
|
107
137
|
OpenClaw consumes that message through Telegram `getUpdates`; outbound adapter
|
|
108
138
|
sends are recorded through Telegram `sendMessage`.
|
|
109
139
|
|
|
140
|
+
WhatsApp:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
crabline --json serve whatsapp --ready-file .crabline/whatsapp-server.json
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
Manifest fields:
|
|
147
|
+
|
|
148
|
+
- `endpoints.apiRoot`: Crabline WhatsApp fake provider API root
|
|
149
|
+
- `accessToken`: bearer token for fake provider requests
|
|
150
|
+
- `adminToken`: value for the `X-Crabline-Admin-Token` header on admin ingress
|
|
151
|
+
- `selfJid`: fake authenticated WhatsApp user JID
|
|
152
|
+
- `env.CRABLINE_WHATSAPP_ACCESS_TOKEN`: access token for the runtime socket
|
|
153
|
+
factory
|
|
154
|
+
- `env.CRABLINE_WHATSAPP_API_ROOT`: API root for the runtime socket factory
|
|
155
|
+
- `env.CRABLINE_WHATSAPP_RECORDER_PATH`: recorder file followed by the runtime
|
|
156
|
+
socket factory for cross-process inbound delivery
|
|
157
|
+
- `env.CRABLINE_WHATSAPP_SELF_JID`: fake authenticated WhatsApp user JID for
|
|
158
|
+
the runtime socket factory
|
|
159
|
+
- `endpoints.adminInboundUrl`: authenticated admin ingress for test user
|
|
160
|
+
messages; subscribed Baileys mock sockets receive them as `messages.upsert`
|
|
161
|
+
- `endpoints.messagesUrl`: text send endpoint used by the Baileys-shaped mock
|
|
162
|
+
- `endpoints.presenceUrl`: presence endpoint used by `sendPresenceUpdate`
|
|
163
|
+
- `recorderPath`: JSONL provider traffic recorder
|
|
164
|
+
|
|
165
|
+
Use the package subpath `@openclaw/crabline/whatsapp-socket-factory` when a
|
|
166
|
+
runtime needs a Baileys-style module with `createWhatsAppSocket()`. The module
|
|
167
|
+
reads the `CRABLINE_WHATSAPP_*` env vars emitted by the manifest, sends outbound
|
|
168
|
+
traffic to the fake provider API, and follows the recorder for inbound
|
|
169
|
+
`messages.upsert` events. The admin token is generated randomly unless
|
|
170
|
+
`--admin-token <token>` is provided.
|
|
171
|
+
|
|
172
|
+
OpenClaw bridge callers should post injected user messages with the
|
|
173
|
+
`providerUrl`, `providerHeaders`, and `providerBody` returned by
|
|
174
|
+
`createOpenClawCrablineInbound()`. For direct in-process tests, the started fake
|
|
175
|
+
server also exposes `createBaileysMockSocket()`.
|
|
176
|
+
The admin ingress accepts JSON like:
|
|
177
|
+
|
|
178
|
+
```json
|
|
179
|
+
{
|
|
180
|
+
"chatJid": "120363001234567890@g.us",
|
|
181
|
+
"senderJid": "15551234567@s.whatsapp.net",
|
|
182
|
+
"text": "user nonce-123"
|
|
183
|
+
}
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
Outbound text sends and composing presence are recorded through the fake
|
|
187
|
+
provider messages and presence endpoints.
|
|
188
|
+
|
|
110
189
|
## Webhook Payload
|
|
111
190
|
|
|
112
191
|
Mock webhooks accept provider-native event payloads where Crabline has a built-in
|
|
@@ -145,6 +224,8 @@ as `telegram:`, `discord:`, or `slack:`.
|
|
|
145
224
|
- Slack threads: `1700000000.000100`
|
|
146
225
|
- Telegram chats: `-1001234567890` or `@channelusername`
|
|
147
226
|
- Telegram topics: `42`
|
|
227
|
+
- WhatsApp users: `15551234567@s.whatsapp.net`
|
|
228
|
+
- WhatsApp groups: `120363001234567890@g.us`
|
|
148
229
|
- Discord channels and threads: Discord snowflake ids such as
|
|
149
230
|
`123456789012345678`
|
|
150
231
|
- Google Chat spaces: `spaces/AAAABbbbCCC`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openclaw/crabline",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
4
|
"description": "Standalone CLI for deterministic messaging provider E2E tests",
|
|
5
5
|
"homepage": "https://github.com/openclaw/crabline#readme",
|
|
6
6
|
"bugs": {
|
|
@@ -27,6 +27,10 @@
|
|
|
27
27
|
".": {
|
|
28
28
|
"types": "./dist/src/index.d.ts",
|
|
29
29
|
"import": "./dist/src/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./whatsapp-socket-factory": {
|
|
32
|
+
"types": "./dist/src/fake-servers/whatsapp-socket-factory.d.ts",
|
|
33
|
+
"import": "./dist/src/fake-servers/whatsapp-socket-factory.js"
|
|
30
34
|
}
|
|
31
35
|
},
|
|
32
36
|
"scripts": {
|