@openclaw/crabline 0.0.0
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/LICENSE +21 -0
- package/README.md +226 -0
- package/dist/src/bin/crabline.d.ts +2 -0
- package/dist/src/bin/crabline.js +7 -0
- package/dist/src/bin/crabline.js.map +1 -0
- package/dist/src/cli/program.d.ts +5 -0
- package/dist/src/cli/program.js +295 -0
- package/dist/src/cli/program.js.map +1 -0
- package/dist/src/config/load.d.ts +6 -0
- package/dist/src/config/load.js +41 -0
- package/dist/src/config/load.js.map +1 -0
- package/dist/src/config/schema.d.ts +1571 -0
- package/dist/src/config/schema.js +528 -0
- package/dist/src/config/schema.js.map +1 -0
- package/dist/src/core/errors.d.ts +12 -0
- package/dist/src/core/errors.js +28 -0
- package/dist/src/core/errors.js.map +1 -0
- package/dist/src/core/exit-codes.d.ts +13 -0
- package/dist/src/core/exit-codes.js +13 -0
- package/dist/src/core/exit-codes.js.map +1 -0
- package/dist/src/core/matcher.d.ts +2 -0
- package/dist/src/core/matcher.js +30 -0
- package/dist/src/core/matcher.js.map +1 -0
- package/dist/src/core/message-template.d.ts +2 -0
- package/dist/src/core/message-template.js +20 -0
- package/dist/src/core/message-template.js.map +1 -0
- package/dist/src/core/nonces.d.ts +2 -0
- package/dist/src/core/nonces.js +11 -0
- package/dist/src/core/nonces.js.map +1 -0
- package/dist/src/core/reporters.d.ts +3 -0
- package/dist/src/core/reporters.js +23 -0
- package/dist/src/core/reporters.js.map +1 -0
- package/dist/src/core/run.d.ts +30 -0
- package/dist/src/core/run.js +240 -0
- package/dist/src/core/run.js.map +1 -0
- package/dist/src/fake-servers/index.d.ts +10 -0
- package/dist/src/fake-servers/index.js +12 -0
- package/dist/src/fake-servers/index.js.map +1 -0
- package/dist/src/fake-servers/telegram.d.ts +29 -0
- package/dist/src/fake-servers/telegram.js +346 -0
- package/dist/src/fake-servers/telegram.js.map +1 -0
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.js +9 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/openclaw.d.ts +102 -0
- package/dist/src/openclaw.js +289 -0
- package/dist/src/openclaw.js.map +1 -0
- package/dist/src/providers/builtin/discord.d.ts +15 -0
- package/dist/src/providers/builtin/discord.js +92 -0
- package/dist/src/providers/builtin/discord.js.map +1 -0
- package/dist/src/providers/builtin/feishu.d.ts +10 -0
- package/dist/src/providers/builtin/feishu.js +95 -0
- package/dist/src/providers/builtin/feishu.js.map +1 -0
- package/dist/src/providers/builtin/googlechat.d.ts +11 -0
- package/dist/src/providers/builtin/googlechat.js +83 -0
- package/dist/src/providers/builtin/googlechat.js.map +1 -0
- package/dist/src/providers/builtin/imessage.d.ts +11 -0
- package/dist/src/providers/builtin/imessage.js +67 -0
- package/dist/src/providers/builtin/imessage.js.map +1 -0
- package/dist/src/providers/builtin/loopback.d.ts +63 -0
- package/dist/src/providers/builtin/loopback.js +174 -0
- package/dist/src/providers/builtin/loopback.js.map +1 -0
- package/dist/src/providers/builtin/matrix.d.ts +21 -0
- package/dist/src/providers/builtin/matrix.js +84 -0
- package/dist/src/providers/builtin/matrix.js.map +1 -0
- package/dist/src/providers/builtin/mattermost.d.ts +11 -0
- package/dist/src/providers/builtin/mattermost.js +67 -0
- package/dist/src/providers/builtin/mattermost.js.map +1 -0
- package/dist/src/providers/builtin/msteams.d.ts +13 -0
- package/dist/src/providers/builtin/msteams.js +72 -0
- package/dist/src/providers/builtin/msteams.js.map +1 -0
- package/dist/src/providers/builtin/native-local-mock.d.ts +48 -0
- package/dist/src/providers/builtin/native-local-mock.js +119 -0
- package/dist/src/providers/builtin/native-local-mock.js.map +1 -0
- package/dist/src/providers/builtin/script.d.ts +39 -0
- package/dist/src/providers/builtin/script.js +206 -0
- package/dist/src/providers/builtin/script.js.map +1 -0
- package/dist/src/providers/builtin/slack.d.ts +6 -0
- package/dist/src/providers/builtin/slack.js +106 -0
- package/dist/src/providers/builtin/slack.js.map +1 -0
- package/dist/src/providers/builtin/telegram.d.ts +21 -0
- package/dist/src/providers/builtin/telegram.js +123 -0
- package/dist/src/providers/builtin/telegram.js.map +1 -0
- package/dist/src/providers/builtin/whatsapp.d.ts +19 -0
- package/dist/src/providers/builtin/whatsapp.js +90 -0
- package/dist/src/providers/builtin/whatsapp.js.map +1 -0
- package/dist/src/providers/builtin/zalo.d.ts +17 -0
- package/dist/src/providers/builtin/zalo.js +70 -0
- package/dist/src/providers/builtin/zalo.js.map +1 -0
- package/dist/src/providers/catalog.d.ts +69 -0
- package/dist/src/providers/catalog.js +95 -0
- package/dist/src/providers/catalog.js.map +1 -0
- package/dist/src/providers/local-mock.d.ts +41 -0
- package/dist/src/providers/local-mock.js +243 -0
- package/dist/src/providers/local-mock.js.map +1 -0
- package/dist/src/providers/recorder.d.ts +19 -0
- package/dist/src/providers/recorder.js +160 -0
- package/dist/src/providers/recorder.js.map +1 -0
- package/dist/src/providers/registry.d.ts +8 -0
- package/dist/src/providers/registry.js +171 -0
- package/dist/src/providers/registry.js.map +1 -0
- package/dist/src/providers/types.d.ts +94 -0
- package/dist/src/providers/types.js +2 -0
- package/dist/src/providers/types.js.map +1 -0
- package/dist/src/providers/webhook-server.d.ts +12 -0
- package/dist/src/providers/webhook-server.js +118 -0
- package/dist/src/providers/webhook-server.js.map +1 -0
- package/docs/channel-setup.md +181 -0
- package/fixtures/examples/crabline.example.yaml +195 -0
- package/fixtures/examples/openclaw-bridge.yaml +125 -0
- package/package.json +64 -0
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
configVersion: 1
|
|
2
|
+
userName: crabline
|
|
3
|
+
|
|
4
|
+
x-openclaw-bridge: &openclaw-bridge
|
|
5
|
+
adapter: script
|
|
6
|
+
env:
|
|
7
|
+
- OPENCLAW_URL
|
|
8
|
+
- OPENCLAW_TOKEN
|
|
9
|
+
script:
|
|
10
|
+
commands:
|
|
11
|
+
probe: node ./scripts/openclaw-bridge-probe.mjs
|
|
12
|
+
send: node ./scripts/openclaw-bridge-send.mjs
|
|
13
|
+
waitForInbound: node ./scripts/openclaw-bridge-wait.mjs
|
|
14
|
+
watch: node ./scripts/openclaw-bridge-watch.mjs
|
|
15
|
+
|
|
16
|
+
providers:
|
|
17
|
+
bluebubbles-openclaw:
|
|
18
|
+
<<: *openclaw-bridge
|
|
19
|
+
platform: bluebubbles
|
|
20
|
+
discord-openclaw:
|
|
21
|
+
<<: *openclaw-bridge
|
|
22
|
+
platform: discord
|
|
23
|
+
feishu-openclaw:
|
|
24
|
+
<<: *openclaw-bridge
|
|
25
|
+
platform: feishu
|
|
26
|
+
googlechat-openclaw:
|
|
27
|
+
<<: *openclaw-bridge
|
|
28
|
+
platform: googlechat
|
|
29
|
+
imessage-openclaw:
|
|
30
|
+
<<: *openclaw-bridge
|
|
31
|
+
platform: imessage
|
|
32
|
+
irc-openclaw:
|
|
33
|
+
<<: *openclaw-bridge
|
|
34
|
+
platform: irc
|
|
35
|
+
line-openclaw:
|
|
36
|
+
<<: *openclaw-bridge
|
|
37
|
+
platform: line
|
|
38
|
+
matrix-openclaw:
|
|
39
|
+
<<: *openclaw-bridge
|
|
40
|
+
platform: matrix
|
|
41
|
+
mattermost-openclaw:
|
|
42
|
+
<<: *openclaw-bridge
|
|
43
|
+
platform: mattermost
|
|
44
|
+
msteams-openclaw:
|
|
45
|
+
<<: *openclaw-bridge
|
|
46
|
+
platform: msteams
|
|
47
|
+
nextcloudtalk-openclaw:
|
|
48
|
+
<<: *openclaw-bridge
|
|
49
|
+
platform: nextcloudtalk
|
|
50
|
+
nostr-openclaw:
|
|
51
|
+
<<: *openclaw-bridge
|
|
52
|
+
platform: nostr
|
|
53
|
+
signal-openclaw:
|
|
54
|
+
<<: *openclaw-bridge
|
|
55
|
+
platform: signal
|
|
56
|
+
slack-openclaw:
|
|
57
|
+
<<: *openclaw-bridge
|
|
58
|
+
platform: slack
|
|
59
|
+
synologychat-openclaw:
|
|
60
|
+
<<: *openclaw-bridge
|
|
61
|
+
platform: synologychat
|
|
62
|
+
telegram-openclaw:
|
|
63
|
+
<<: *openclaw-bridge
|
|
64
|
+
platform: telegram
|
|
65
|
+
tlon-openclaw:
|
|
66
|
+
<<: *openclaw-bridge
|
|
67
|
+
platform: tlon
|
|
68
|
+
twitch-openclaw:
|
|
69
|
+
<<: *openclaw-bridge
|
|
70
|
+
platform: twitch
|
|
71
|
+
webchat-openclaw:
|
|
72
|
+
<<: *openclaw-bridge
|
|
73
|
+
platform: webchat
|
|
74
|
+
whatsapp-openclaw:
|
|
75
|
+
<<: *openclaw-bridge
|
|
76
|
+
platform: whatsapp
|
|
77
|
+
zalo-openclaw:
|
|
78
|
+
<<: *openclaw-bridge
|
|
79
|
+
platform: zalo
|
|
80
|
+
zalouser-openclaw:
|
|
81
|
+
<<: *openclaw-bridge
|
|
82
|
+
platform: zalouser
|
|
83
|
+
|
|
84
|
+
fixtures:
|
|
85
|
+
- id: slack-openclaw-agent
|
|
86
|
+
provider: slack-openclaw
|
|
87
|
+
mode: agent
|
|
88
|
+
target:
|
|
89
|
+
id: REPLACE_ME
|
|
90
|
+
channelId: REPLACE_ME
|
|
91
|
+
inboundMatch:
|
|
92
|
+
author: assistant
|
|
93
|
+
strategy: contains
|
|
94
|
+
nonce: contains
|
|
95
|
+
|
|
96
|
+
- id: discord-openclaw-roundtrip
|
|
97
|
+
provider: discord-openclaw
|
|
98
|
+
mode: roundtrip
|
|
99
|
+
target:
|
|
100
|
+
id: REPLACE_ME
|
|
101
|
+
channelId: REPLACE_ME
|
|
102
|
+
inboundMatch:
|
|
103
|
+
author: assistant
|
|
104
|
+
strategy: contains
|
|
105
|
+
nonce: contains
|
|
106
|
+
|
|
107
|
+
- id: telegram-openclaw-roundtrip
|
|
108
|
+
provider: telegram-openclaw
|
|
109
|
+
mode: roundtrip
|
|
110
|
+
target:
|
|
111
|
+
id: REPLACE_ME # Telegram user id; use a dedicated human/MTProto test account, not another bot
|
|
112
|
+
inboundMatch:
|
|
113
|
+
author: assistant
|
|
114
|
+
strategy: contains
|
|
115
|
+
nonce: contains
|
|
116
|
+
|
|
117
|
+
- id: whatsapp-openclaw-roundtrip
|
|
118
|
+
provider: whatsapp-openclaw
|
|
119
|
+
mode: roundtrip
|
|
120
|
+
target:
|
|
121
|
+
id: REPLACE_ME
|
|
122
|
+
inboundMatch:
|
|
123
|
+
author: assistant
|
|
124
|
+
strategy: contains
|
|
125
|
+
nonce: contains
|
package/package.json
ADDED
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@openclaw/crabline",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"description": "Standalone CLI for deterministic messaging provider E2E tests",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"bin": {
|
|
7
|
+
"crabline": "dist/src/bin/crabline.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"dist/src",
|
|
11
|
+
"README.md",
|
|
12
|
+
"docs/channel-setup.md",
|
|
13
|
+
"fixtures"
|
|
14
|
+
],
|
|
15
|
+
"type": "module",
|
|
16
|
+
"main": "./dist/src/index.js",
|
|
17
|
+
"types": "./dist/src/index.d.ts",
|
|
18
|
+
"exports": {
|
|
19
|
+
".": {
|
|
20
|
+
"types": "./dist/src/index.d.ts",
|
|
21
|
+
"import": "./dist/src/index.js"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"scripts": {
|
|
25
|
+
"prebuild": "rm -rf dist",
|
|
26
|
+
"build": "tsgo -p tsconfig.build.json",
|
|
27
|
+
"clean": "rm -rf dist coverage",
|
|
28
|
+
"dev": "tsx src/bin/crabline.ts",
|
|
29
|
+
"doctor": "tsx src/bin/crabline.ts doctor",
|
|
30
|
+
"fixtures": "tsx src/bin/crabline.ts fixtures",
|
|
31
|
+
"format": "oxfmt --write .",
|
|
32
|
+
"format:check": "oxfmt --check .",
|
|
33
|
+
"lint": "pnpm format:check && pnpm typecheck && oxlint --deny-warnings --allow vitest/require-mock-type-parameters --type-aware --tsconfig tsconfig.test.json src test",
|
|
34
|
+
"prepare": "npm run build",
|
|
35
|
+
"run": "tsx src/bin/crabline.ts run",
|
|
36
|
+
"test": "vitest run",
|
|
37
|
+
"test:coverage": "vitest run --coverage",
|
|
38
|
+
"test:watch": "vitest",
|
|
39
|
+
"typecheck": "tsgo -p tsconfig.test.json",
|
|
40
|
+
"verify": "pnpm lint && pnpm test:coverage",
|
|
41
|
+
"check": "pnpm verify"
|
|
42
|
+
},
|
|
43
|
+
"dependencies": {
|
|
44
|
+
"commander": "^14.0.3",
|
|
45
|
+
"picocolors": "^1.1.1",
|
|
46
|
+
"yaml": "^2.9.0",
|
|
47
|
+
"zod": "^4.4.3"
|
|
48
|
+
},
|
|
49
|
+
"devDependencies": {
|
|
50
|
+
"@types/node": "^25.9.2",
|
|
51
|
+
"@typescript/native-preview": "7.0.0-dev.20260503.1",
|
|
52
|
+
"@vitest/coverage-v8": "^4.1.8",
|
|
53
|
+
"oxfmt": "^0.47.0",
|
|
54
|
+
"oxlint": "^1.69.0",
|
|
55
|
+
"oxlint-tsgolint": "^0.22.1",
|
|
56
|
+
"tsx": "^4.22.4",
|
|
57
|
+
"typescript": "^6.0.3",
|
|
58
|
+
"vitest": "^4.1.8"
|
|
59
|
+
},
|
|
60
|
+
"engines": {
|
|
61
|
+
"node": ">=22"
|
|
62
|
+
},
|
|
63
|
+
"packageManager": "pnpm@10.32.1"
|
|
64
|
+
}
|