@openclaw/crabline 0.1.6 → 0.1.7

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.
Files changed (41) hide show
  1. package/README.md +70 -2
  2. package/dist/src/cli/program.js +49 -4
  3. package/dist/src/cli/program.js.map +1 -1
  4. package/dist/src/index.d.ts +6 -0
  5. package/dist/src/index.js +3 -0
  6. package/dist/src/index.js.map +1 -1
  7. package/dist/src/openclaw/bridges/matrix.d.ts +1 -0
  8. package/dist/src/openclaw/bridges/matrix.js +134 -0
  9. package/dist/src/openclaw/bridges/matrix.js.map +1 -0
  10. package/dist/src/openclaw/bridges/mattermost.d.ts +1 -0
  11. package/dist/src/openclaw/bridges/mattermost.js +116 -0
  12. package/dist/src/openclaw/bridges/mattermost.js.map +1 -0
  13. package/dist/src/openclaw/bridges/signal.d.ts +1 -0
  14. package/dist/src/openclaw/bridges/signal.js +112 -0
  15. package/dist/src/openclaw/bridges/signal.js.map +1 -0
  16. package/dist/src/openclaw/bridges/telegram.js +11 -0
  17. package/dist/src/openclaw/bridges/telegram.js.map +1 -1
  18. package/dist/src/openclaw/shared.d.ts +3 -0
  19. package/dist/src/openclaw/shared.js.map +1 -1
  20. package/dist/src/openclaw.js +6 -0
  21. package/dist/src/openclaw.js.map +1 -1
  22. package/dist/src/providers/catalog.js +1 -1
  23. package/dist/src/providers/catalog.js.map +1 -1
  24. package/dist/src/servers/http.js +1 -1
  25. package/dist/src/servers/http.js.map +1 -1
  26. package/dist/src/servers/index.d.ts +22 -4
  27. package/dist/src/servers/index.js +20 -1
  28. package/dist/src/servers/index.js.map +1 -1
  29. package/dist/src/servers/matrix.d.ts +37 -0
  30. package/dist/src/servers/matrix.js +387 -0
  31. package/dist/src/servers/matrix.js.map +1 -0
  32. package/dist/src/servers/mattermost.d.ts +33 -0
  33. package/dist/src/servers/mattermost.js +361 -0
  34. package/dist/src/servers/mattermost.js.map +1 -0
  35. package/dist/src/servers/signal.d.ts +27 -0
  36. package/dist/src/servers/signal.js +201 -0
  37. package/dist/src/servers/signal.js.map +1 -0
  38. package/dist/src/servers/telegram.js +8 -0
  39. package/dist/src/servers/telegram.js.map +1 -1
  40. package/docs/channel-setup.md +90 -3
  41. package/package.json +5 -4
package/README.md CHANGED
@@ -15,8 +15,8 @@ provider APIs that OpenClaw live adapters can target during deterministic QA.
15
15
  `whatsapp`, and `zalo`
16
16
  - a `script` bridge for channels that are still exercised by external commands
17
17
  - per-provider local webhook endpoints for inbound events
18
- - local provider servers for live-adapter smoke tests, starting with Slack,
19
- Telegram, and WhatsApp
18
+ - local provider servers for live-adapter smoke tests for Mattermost, Matrix,
19
+ Signal, Slack, Telegram, and WhatsApp
20
20
  - JSONL recorder files for deterministic wait/watch behavior
21
21
  - nonce-based `send`, `roundtrip`, `agent`, `probe`, `run`, `watch`, and
22
22
  `doctor` commands
@@ -125,6 +125,52 @@ commands for `probe`, `send`, `waitForInbound`, or `watch`.
125
125
  preferred Smoke CI path because OpenClaw still uses its normal channel adapter,
126
126
  but the provider endpoint is local and deterministic.
127
127
 
128
+ Mattermost:
129
+
130
+ ```bash
131
+ crabline --json serve mattermost --ready-file .crabline/mattermost-server.json
132
+ ```
133
+
134
+ The JSON manifest contains:
135
+
136
+ - `baseUrl`: OpenClaw `channels.mattermost.baseUrl` / `MATTERMOST_URL`
137
+ - `botToken`: OpenClaw `channels.mattermost.botToken` / `MATTERMOST_BOT_TOKEN`
138
+ - `endpoints.websocketUrl`: native Mattermost WebSocket endpoint
139
+ - `adminToken`: send this as the `X-Crabline-Admin-Token` header when posting
140
+ test user messages
141
+ - `endpoints.adminInboundUrl`: authenticated POST endpoint for inbound messages
142
+ - `recorderPath`: JSONL file of local provider API/admin traffic
143
+
144
+ The server implements a Mattermost API subset for text DM and channel
145
+ roundtrips, including REST authentication/status codes, WebSocket
146
+ authentication and `hello`, sequenced events, typing, and post
147
+ create/edit/delete events. Admin ingress is only the test control plane;
148
+ injected messages are delivered to clients as native `posted` events.
149
+
150
+ Matrix:
151
+
152
+ ```bash
153
+ crabline --json serve matrix --ready-file .crabline/matrix-server.json
154
+ ```
155
+
156
+ The JSON manifest contains:
157
+
158
+ - `baseUrl`: OpenClaw `channels.matrix.homeserver`
159
+ - `accessToken`: OpenClaw `channels.matrix.accessToken`
160
+ - `botUserId`: OpenClaw `channels.matrix.userId`
161
+ - `endpoints.clientApiRoot`: Matrix Client-Server API root
162
+ - `adminToken`: send this as the `X-Crabline-Admin-Token` header when posting
163
+ test user messages
164
+ - `endpoints.adminInboundUrl`: authenticated POST control endpoint for inbound
165
+ messages
166
+ - `recorderPath`: JSONL file of local provider API/admin traffic
167
+
168
+ The server implements an unencrypted Matrix Client-Server API subset including
169
+ `whoami`, filters, push rules, joined rooms and members, room state, `/sync`,
170
+ room event sends, typing, and read receipts. Admin ingress is only the test
171
+ control plane; injected messages are delivered to clients as native
172
+ `m.room.message` events through `/sync`.
173
+
128
174
  Slack:
129
175
 
130
176
  ```bash
@@ -149,6 +195,28 @@ provided. Implemented Slack Web API endpoints include `auth.test`,
149
195
  `chat.postMessage`, `conversations.open`, `conversations.info`,
150
196
  `conversations.history`, and `conversations.replies`.
151
197
 
198
+ Signal:
199
+
200
+ ```bash
201
+ crabline --json serve signal --ready-file .crabline/signal-server.json
202
+ ```
203
+
204
+ The JSON manifest contains:
205
+
206
+ - `endpoints.apiRoot`: `signal-cli daemon --http`-compatible API root
207
+ - `account`: mock Signal account served by the daemon
208
+ - `adminToken`: send this as the `X-Crabline-Admin-Token` header when posting
209
+ test user messages
210
+ - `endpoints.adminInboundUrl`: authenticated POST endpoint for inbound messages
211
+ - `endpoints.eventsUrl`: `signal-cli` SSE receive endpoint
212
+ - `endpoints.rpcUrl`: `signal-cli` JSON-RPC endpoint
213
+ - `recorderPath`: JSONL file of local provider API/admin traffic
214
+
215
+ The server implements the HTTP surface exposed by `signal-cli daemon --http`:
216
+ `check`, `events`, and the JSON-RPC methods needed for text sends, typing,
217
+ receipts, and reactions. Admin ingress injects text-only receive events. It does
218
+ not replace the `signal-cli` client or pretend to be Signal's public service.
219
+
152
220
  Telegram:
153
221
 
154
222
  ```bash
@@ -8,6 +8,25 @@ import { computeExitCode, runFixtureCommand, runSuite } from "../core/run.js";
8
8
  import { CrablineError, ensureErrorMessage } from "../core/errors.js";
9
9
  import { isCrablineServerChannel, startCrablineServer, } from "../servers/index.js";
10
10
  const SERVE_PARAM_FACTORIES = {
11
+ mattermost: (shared, commandOptions) => ({
12
+ ...shared,
13
+ adminToken: commandOptions.adminToken,
14
+ botToken: commandOptions.botToken,
15
+ botUsername: commandOptions.botUsername,
16
+ channel: "mattermost",
17
+ }),
18
+ matrix: (shared, commandOptions) => ({
19
+ ...shared,
20
+ accessToken: commandOptions.accessToken,
21
+ adminToken: commandOptions.adminToken,
22
+ channel: "matrix",
23
+ }),
24
+ signal: (shared, commandOptions) => ({
25
+ ...shared,
26
+ account: commandOptions.account,
27
+ adminToken: commandOptions.adminToken,
28
+ channel: "signal",
29
+ }),
11
30
  slack: (shared, commandOptions) => ({
12
31
  ...shared,
13
32
  adminToken: commandOptions.adminToken,
@@ -175,9 +194,10 @@ export function createProgram(setExitCode = (code) => {
175
194
  .option("--host <host>", "Bind host", "127.0.0.1")
176
195
  .option("--port <port>", "Bind port", "0")
177
196
  .option("--admin-token <token>", "Admin token for inbound test messages")
178
- .option("--access-token <token>", "WhatsApp access token")
179
- .option("--bot-token <token>", "Telegram or Slack bot token")
180
- .option("--bot-username <username>", "Telegram bot username", "crabline_bot")
197
+ .option("--account <number>", "Signal account number")
198
+ .option("--access-token <token>", "Matrix or WhatsApp access token")
199
+ .option("--bot-token <token>", "Mattermost, Telegram, or Slack bot token")
200
+ .option("--bot-username <username>", "Mattermost or Telegram bot username", "crabline_bot")
181
201
  .option("--recorder <path>", "JSONL recorder path")
182
202
  .option("--ready-file <path>", "Write the server runtime manifest to this path")
183
203
  .option("--self-jid <jid>", "WhatsApp self JID")
@@ -245,7 +265,7 @@ function waitForShutdown(close) {
245
265
  function renderServeText(manifest) {
246
266
  const lines = [
247
267
  `${manifest.provider} local server ready`,
248
- ` apiRoot: ${manifest.endpoints.apiRoot}`,
268
+ ` apiRoot: ${manifest.provider === "matrix" ? manifest.endpoints.clientApiRoot : manifest.endpoints.apiRoot}`,
249
269
  ` inbound: ${manifest.endpoints.adminInboundUrl}`,
250
270
  ` recorder: ${manifest.recorderPath}`,
251
271
  ];
@@ -259,6 +279,31 @@ function renderServeText(manifest) {
259
279
  return lines.join("\n");
260
280
  }
261
281
  function renderServeProviderFields(manifest) {
282
+ if (manifest.provider === "mattermost") {
283
+ return [
284
+ ` adminToken: ${manifest.adminToken}`,
285
+ ` botToken: ${manifest.botToken}`,
286
+ ` websocket: ${manifest.endpoints.websocketUrl}`,
287
+ ];
288
+ }
289
+ if (manifest.provider === "matrix") {
290
+ return [
291
+ ` adminToken: ${manifest.adminToken}`,
292
+ ` accessToken: ${manifest.accessToken}`,
293
+ ` botUserId: ${manifest.botUserId}`,
294
+ ` sync: ${manifest.endpoints.syncUrl}`,
295
+ ];
296
+ }
297
+ if (manifest.provider === "signal") {
298
+ return [` adminToken: ${manifest.adminToken}`, ` account: ${manifest.account}`];
299
+ }
300
+ if (manifest.provider === "slack") {
301
+ return [
302
+ ` adminToken: ${manifest.adminToken}`,
303
+ ` botToken: ${manifest.botToken}`,
304
+ ` signingSecret: ${manifest.signingSecret}`,
305
+ ];
306
+ }
262
307
  if (manifest.provider === "telegram") {
263
308
  return [` adminToken: ${manifest.adminToken}`, ` botToken: ${manifest.botToken}`];
264
309
  }
@@ -1 +1 @@
1
- {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/cli/program.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"program.js","sourceRoot":"","sources":["../../../src/cli/program.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  export { resolveTelegramAdapterConfig } from "./providers/builtin/telegram.js";
2
2
  export { resolveWhatsAppAdapterConfig } from "./providers/builtin/whatsapp.js";
3
+ export { startMattermostServer } from "./servers/mattermost.js";
4
+ export { startMatrixServer } from "./servers/matrix.js";
5
+ export { startSignalServer } from "./servers/signal.js";
3
6
  export { startSlackServer, startSlackServer as startSlackFakeServer } from "./servers/slack.js";
4
7
  export { startTelegramServer, startTelegramServer as startTelegramFakeServer, } from "./servers/telegram.js";
5
8
  export { startWhatsAppServer, startWhatsAppServer as startWhatsAppFakeServer, } from "./servers/whatsapp.js";
@@ -12,6 +15,9 @@ export type { CatalogEntry } from "./providers/catalog.js";
12
15
  export type { Registry } from "./providers/registry.js";
13
16
  export type { BuiltinAdapterId, FixtureDefinition, FixtureMode, ManifestDefinition, ProviderConfig, ProviderPlatform, } from "./config/schema.js";
14
17
  export type { InboundEnvelope, NormalizedTarget, ProbeResult, ProviderAdapter, ProviderContext, ProviderSupportStatus, SendContext, SendResult, WaitContext, WatchContext, } from "./providers/types.js";
18
+ export type { MattermostServerManifest, StartedMattermostServer, StartMattermostServerParams, } from "./servers/mattermost.js";
19
+ export type { MatrixServerManifest, StartedMatrixServer, StartMatrixServerParams, } from "./servers/matrix.js";
20
+ export type { SignalServerManifest, StartedSignalServer, StartSignalServerParams, } from "./servers/signal.js";
15
21
  export type { SlackServerManifest as SlackFakeServerManifest, SlackServerManifest, StartedSlackServer as StartedSlackFakeServer, StartedSlackServer, StartSlackServerParams as StartSlackFakeServerParams, StartSlackServerParams, } from "./servers/slack.js";
16
22
  export type { StartedTelegramServer as StartedTelegramFakeServer, StartedTelegramServer, StartTelegramServerParams as StartTelegramFakeServerParams, StartTelegramServerParams, TelegramServerManifest as TelegramFakeServerManifest, TelegramServerManifest, } from "./servers/telegram.js";
17
23
  export type { StartedWhatsAppServer as StartedWhatsAppFakeServer, StartedWhatsAppServer, StartWhatsAppServerParams as StartWhatsAppFakeServerParams, StartWhatsAppServerParams, WhatsAppBaileysMessage, WhatsAppServerManifest as WhatsAppFakeServerManifest, WhatsAppServerManifest, } from "./servers/whatsapp.js";
package/dist/src/index.js CHANGED
@@ -1,5 +1,8 @@
1
1
  export { resolveTelegramAdapterConfig } from "./providers/builtin/telegram.js";
2
2
  export { resolveWhatsAppAdapterConfig } from "./providers/builtin/whatsapp.js";
3
+ export { startMattermostServer } from "./servers/mattermost.js";
4
+ export { startMatrixServer } from "./servers/matrix.js";
5
+ export { startSignalServer } from "./servers/signal.js";
3
6
  export { startSlackServer, startSlackServer as startSlackFakeServer } from "./servers/slack.js";
4
7
  export { startTelegramServer, startTelegramServer as startTelegramFakeServer, } from "./servers/telegram.js";
5
8
  export { startWhatsAppServer, startWhatsAppServer as startWhatsAppFakeServer, } from "./servers/whatsapp.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,mBAAmB,IAAI,uBAAuB,GAC/C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,IAAI,uBAAuB,GAC/C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,wBAAwB,IAAI,+BAA+B,EAC3D,uBAAuB,EACvB,uBAAuB,IAAI,6BAA6B,EACxD,mBAAmB,EACnB,mBAAmB,IAAI,+BAA+B,GACvD,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mCAAmC,EACnC,wCAAwC,EACxC,qCAAqC,IAAI,yCAAyC,EAClF,qCAAqC,EACrC,6BAA6B,EAC7B,+CAA+C,EAC/C,gDAAgD,EAChD,oCAAoC,EACpC,iCAAiC,EACjC,+BAA+B,EAC/B,6BAA6B,IAAI,iCAAiC,EAClE,6BAA6B,EAC7B,8BAA8B,EAC9B,6CAA6C,EAC7C,qCAAqC,EACrC,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAC/E,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,IAAI,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAChG,OAAO,EACL,mBAAmB,EACnB,mBAAmB,IAAI,uBAAuB,GAC/C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,mBAAmB,EACnB,mBAAmB,IAAI,uBAAuB,GAC/C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,wBAAwB,EACxB,wBAAwB,IAAI,+BAA+B,EAC3D,uBAAuB,EACvB,uBAAuB,IAAI,6BAA6B,EACxD,mBAAmB,EACnB,mBAAmB,IAAI,+BAA+B,GACvD,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,mCAAmC,EACnC,wCAAwC,EACxC,qCAAqC,IAAI,yCAAyC,EAClF,qCAAqC,EACrC,6BAA6B,EAC7B,+CAA+C,EAC/C,gDAAgD,EAChD,oCAAoC,EACpC,iCAAiC,EACjC,+BAA+B,EAC/B,6BAA6B,IAAI,iCAAiC,EAClE,6BAA6B,EAC7B,8BAA8B,EAC9B,6CAA6C,EAC7C,qCAAqC,EACrC,4BAA4B,GAC7B,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EACd,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const MATRIX_OPENCLAW_CRABLINE_PROVIDER_BRIDGE: import("../shared.js").OpenClawCrablineProviderBridge<import("../../index.js").MatrixServerManifest>;
@@ -0,0 +1,134 @@
1
+ import { createAdminInboundRequest, createOpenClawCrablineProviderBridge, DEFAULT_ACCOUNT_ID, isRecord, qaTargetForInbound, readString, } from "../shared.js";
2
+ function matrixRoomId(value) {
3
+ const trimmed = value.trim();
4
+ if (!trimmed.startsWith("!") || !trimmed.includes(":")) {
5
+ throw new Error("Matrix targets must be native room IDs.");
6
+ }
7
+ return trimmed;
8
+ }
9
+ function targetKey(roomId, threadId) {
10
+ return threadId ? `${roomId}:thread:${threadId}` : roomId;
11
+ }
12
+ function eventThreadId(content) {
13
+ const relation = isRecord(content["m.relates_to"]) ? content["m.relates_to"] : undefined;
14
+ return relation?.rel_type === "m.thread" ? readString(relation.event_id) : undefined;
15
+ }
16
+ export const MATRIX_OPENCLAW_CRABLINE_PROVIDER_BRIDGE = createOpenClawCrablineProviderBridge({
17
+ provider: "matrix",
18
+ createAdapter(matrix) {
19
+ return {
20
+ async probe() {
21
+ const response = await fetch(`${matrix.endpoints.clientApiRoot}/account/whoami`, {
22
+ headers: { authorization: `Bearer ${matrix.accessToken}` },
23
+ });
24
+ if (!response.ok) {
25
+ throw new Error(`Crabline Matrix probe failed with HTTP ${response.status}.`);
26
+ }
27
+ return await response.json();
28
+ },
29
+ createBinding() {
30
+ return {
31
+ accountId: DEFAULT_ACCOUNT_ID,
32
+ channel: "matrix",
33
+ createChannelDriverSmokeEnv: (env) => ({ ...env, ...matrix.env }),
34
+ createGatewayConfig: (openclawConfig = {}) => {
35
+ const channels = isRecord(openclawConfig.channels) ? openclawConfig.channels : {};
36
+ const matrixConfig = isRecord(channels.matrix) ? channels.matrix : {};
37
+ const dmConfig = isRecord(matrixConfig.dm) ? matrixConfig.dm : {};
38
+ return {
39
+ ...openclawConfig,
40
+ channels: {
41
+ ...channels,
42
+ matrix: {
43
+ ...matrixConfig,
44
+ accessToken: matrix.accessToken,
45
+ blockStreaming: false,
46
+ dm: {
47
+ ...dmConfig,
48
+ allowFrom: ["*"],
49
+ policy: "open",
50
+ },
51
+ enabled: true,
52
+ encryption: false,
53
+ groupAllowFrom: ["*"],
54
+ groupPolicy: "open",
55
+ homeserver: matrix.baseUrl,
56
+ network: { dangerouslyAllowPrivateNetwork: true },
57
+ streaming: "off",
58
+ userId: matrix.botUserId,
59
+ },
60
+ },
61
+ };
62
+ },
63
+ requiredPluginIds: ["matrix"],
64
+ };
65
+ },
66
+ createAgentDelivery(parsed) {
67
+ if (parsed.threadId) {
68
+ throw new Error("Matrix thread targets require OpenClaw QA thread forwarding.");
69
+ }
70
+ const roomId = matrixRoomId(parsed.id);
71
+ const to = `room:${roomId}`;
72
+ return {
73
+ channel: "matrix",
74
+ replyChannel: "matrix",
75
+ replyTo: to,
76
+ to,
77
+ };
78
+ },
79
+ createInbound(input) {
80
+ const roomId = matrixRoomId(input.conversation.id);
81
+ const threadId = input.threadId?.trim() || undefined;
82
+ const direct = input.conversation.kind === "direct";
83
+ return {
84
+ ...createAdminInboundRequest(matrix),
85
+ providerBody: {
86
+ roomId,
87
+ direct,
88
+ senderId: input.senderId,
89
+ ...(input.senderName ? { senderName: input.senderName } : {}),
90
+ text: input.text,
91
+ ...(threadId ? { threadId } : {}),
92
+ },
93
+ providerTargetKey: targetKey(roomId, threadId),
94
+ qaTarget: qaTargetForInbound(input),
95
+ stateConversation: {
96
+ id: input.conversation.id,
97
+ kind: direct ? "direct" : "group",
98
+ },
99
+ ...(threadId ? { threadId } : {}),
100
+ };
101
+ },
102
+ createOutboundFromRecorderEvent({ event, targetByProviderTarget }) {
103
+ if (!isRecord(event) ||
104
+ event.type !== "api" ||
105
+ event.method !== "PUT" ||
106
+ !isRecord(event.body)) {
107
+ return null;
108
+ }
109
+ const match = /^\/_matrix\/client\/(?:v3|r0)\/rooms\/([^/]+)\/send\/([^/]+)\/[^/]+$/u.exec(readString(event.path) ?? "");
110
+ if (!match) {
111
+ return null;
112
+ }
113
+ const roomId = decodeURIComponent(match[1]);
114
+ const eventType = decodeURIComponent(match[2]);
115
+ if (eventType !== "m.room.message") {
116
+ return null;
117
+ }
118
+ const text = readString(event.body.body);
119
+ if (!text) {
120
+ return null;
121
+ }
122
+ const threadId = eventThreadId(event.body);
123
+ return {
124
+ accountId: DEFAULT_ACCOUNT_ID,
125
+ senderId: matrix.botUserId,
126
+ senderName: "OpenClaw QA",
127
+ text,
128
+ to: targetByProviderTarget.get(targetKey(roomId, threadId)) ?? roomId,
129
+ };
130
+ },
131
+ };
132
+ },
133
+ });
134
+ //# sourceMappingURL=matrix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"matrix.js","sourceRoot":"","sources":["../../../../src/openclaw/bridges/matrix.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const MATTERMOST_OPENCLAW_CRABLINE_PROVIDER_BRIDGE: import("../shared.js").OpenClawCrablineProviderBridge<import("../../servers/mattermost.js").MattermostServerManifest>;
@@ -0,0 +1,116 @@
1
+ import { createAdminInboundRequest, createOpenClawCrablineProviderBridge, DEFAULT_ACCOUNT_ID, isRecord, qaTargetForInbound, readString, } from "../shared.js";
2
+ import { mattermostId } from "../../servers/mattermost.js";
3
+ function nativeId(value) {
4
+ const trimmed = value.trim();
5
+ if (!trimmed) {
6
+ throw new Error("Mattermost target is required.");
7
+ }
8
+ return /^[a-z0-9]{26}$/u.test(trimmed) ? trimmed : mattermostId(trimmed);
9
+ }
10
+ function directChannelId(botUserId, userId) {
11
+ return mattermostId(`dm:${[botUserId, userId].sort().join(":")}`);
12
+ }
13
+ function targetKey(channelId, rootId) {
14
+ return rootId ? `${channelId}:thread:${rootId}` : channelId;
15
+ }
16
+ export const MATTERMOST_OPENCLAW_CRABLINE_PROVIDER_BRIDGE = createOpenClawCrablineProviderBridge({
17
+ provider: "mattermost",
18
+ createAdapter(mattermost) {
19
+ return {
20
+ async probe() {
21
+ const response = await fetch(`${mattermost.endpoints.apiRoot}/users/me`, {
22
+ headers: { authorization: `Bearer ${mattermost.botToken}` },
23
+ });
24
+ if (!response.ok) {
25
+ throw new Error(`Crabline Mattermost probe failed with HTTP ${response.status}.`);
26
+ }
27
+ return await response.json();
28
+ },
29
+ createBinding() {
30
+ return {
31
+ accountId: DEFAULT_ACCOUNT_ID,
32
+ channel: "mattermost",
33
+ createChannelDriverSmokeEnv: (env) => ({ ...env, ...mattermost.env }),
34
+ createGatewayConfig: (openclawConfig = {}) => {
35
+ const channels = isRecord(openclawConfig.channels) ? openclawConfig.channels : {};
36
+ const mattermostConfig = isRecord(channels.mattermost) ? channels.mattermost : {};
37
+ return {
38
+ ...openclawConfig,
39
+ channels: {
40
+ ...channels,
41
+ mattermost: {
42
+ ...mattermostConfig,
43
+ allowFrom: ["*"],
44
+ baseUrl: mattermost.baseUrl,
45
+ botToken: mattermost.botToken,
46
+ chatmode: "onmessage",
47
+ dmPolicy: "open",
48
+ enabled: true,
49
+ groupAllowFrom: ["*"],
50
+ groupPolicy: "open",
51
+ network: { dangerouslyAllowPrivateNetwork: true },
52
+ streaming: "off",
53
+ },
54
+ },
55
+ };
56
+ },
57
+ requiredPluginIds: ["mattermost"],
58
+ };
59
+ },
60
+ createAgentDelivery(parsed) {
61
+ if (parsed.threadId) {
62
+ throw new Error("Mattermost thread targets require OpenClaw QA thread forwarding.");
63
+ }
64
+ const id = nativeId(parsed.id);
65
+ const to = parsed.kind === "direct" ? `user:${id}` : `channel:${id}`;
66
+ return { channel: "mattermost", replyChannel: "mattermost", replyTo: to, to };
67
+ },
68
+ createInbound(input) {
69
+ const kind = input.conversation.kind === "direct" ? "direct" : "group";
70
+ const senderId = nativeId(input.senderId);
71
+ const channelId = kind === "direct"
72
+ ? directChannelId(mattermost.botUserId, senderId)
73
+ : nativeId(input.conversation.id);
74
+ const rootId = input.threadId ? nativeId(input.threadId) : undefined;
75
+ return {
76
+ ...createAdminInboundRequest(mattermost),
77
+ providerBody: {
78
+ channelId,
79
+ channelType: kind === "direct" ? "D" : "O",
80
+ ...(rootId ? { rootId } : {}),
81
+ senderId,
82
+ ...(input.senderName ? { senderName: input.senderName } : {}),
83
+ text: input.text,
84
+ },
85
+ providerTargetKey: targetKey(channelId, rootId),
86
+ qaTarget: qaTargetForInbound(input),
87
+ stateConversation: { id: input.conversation.id, kind },
88
+ ...(input.threadId ? { threadId: input.threadId } : {}),
89
+ };
90
+ },
91
+ createOutboundFromRecorderEvent({ event, targetByProviderTarget }) {
92
+ if (!isRecord(event) ||
93
+ event.type !== "api" ||
94
+ event.method !== "POST" ||
95
+ event.path !== "/api/v4/posts" ||
96
+ !isRecord(event.body)) {
97
+ return null;
98
+ }
99
+ const channelId = readString(event.body.channel_id);
100
+ const rootId = readString(event.body.root_id);
101
+ const text = readString(event.body.message);
102
+ if (!channelId || !text) {
103
+ return null;
104
+ }
105
+ return {
106
+ accountId: DEFAULT_ACCOUNT_ID,
107
+ senderId: mattermost.botUserId,
108
+ senderName: "OpenClaw QA",
109
+ text,
110
+ to: targetByProviderTarget.get(targetKey(channelId, rootId)) ?? channelId,
111
+ };
112
+ },
113
+ };
114
+ },
115
+ });
116
+ //# sourceMappingURL=mattermost.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mattermost.js","sourceRoot":"","sources":["../../../../src/openclaw/bridges/mattermost.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare const SIGNAL_OPENCLAW_CRABLINE_PROVIDER_BRIDGE: import("../shared.js").OpenClawCrablineProviderBridge<import("../../index.js").SignalServerManifest>;