openclaw-rocketchat 0.3.12 → 0.4.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/README.en.md CHANGED
@@ -635,41 +635,103 @@ openclaw rocketchat uninstall
635
635
 
636
636
  All commands are **interactive** — no flags to memorize, just follow the prompts.
637
637
 
638
- ## Config Example
638
+ ## Configuration Reference
639
639
 
640
- All config is written automatically by CLI commands into `openclaw.json` you don't need to edit it manually:
640
+ All config is written automatically by CLI commands into `~/.openclaw/openclaw.json`. You normally don't need to edit it manually, but understanding the structure helps with troubleshooting and advanced customization.
641
+
642
+ ### channels.rocketchat — Channel Config
643
+
644
+ | Parameter | Type | Description |
645
+ |-----------|------|-------------|
646
+ | `enabled` | `boolean` | Enable/disable the Rocket.Chat channel |
647
+ | `serverUrl` | `string` | Rocket.Chat server URL, e.g. `"https://123-45-67-89.sslip.io"` |
648
+ | `accounts` | `object` | Bot accounts. Key is the account ID |
649
+ | `accounts.<id>.botUsername` | `string` | Bot's username in RC |
650
+ | `accounts.<id>.botDisplayName` | `string` | Bot's display name |
651
+ | `groups` | `object` | Group config (optional). Key is group name |
652
+ | `groups.<name>.bots` | `string[]` | Bots in this group |
653
+ | `groups.<name>.requireMention` | `boolean` | Whether bot requires @mention to respond in groups |
654
+
655
+ ### bindings — Agent Bindings
656
+
657
+ The `bindings` array maps bot accounts to Agents:
658
+
659
+ | Parameter | Type | Description |
660
+ |-----------|------|-------------|
661
+ | `agentId` | `string` | The Agent ID to bind to (e.g. `"main"`) |
662
+ | `match.channel` | `string` | Always `"rocketchat"` |
663
+ | `match.accountId` | `string` | Matches a key in `accounts` |
664
+
665
+ ### plugins.entries — Plugin State
666
+
667
+ | Parameter | Type | Description |
668
+ |-----------|------|-------------|
669
+ | `openclaw-rocketchat.enabled` | `boolean` | Whether the plugin is enabled |
670
+
671
+ ### Full Config Example
641
672
 
642
673
  ```json5
643
674
  {
644
- // Agents are managed by openclaw agents add (plugin doesn't touch these)
645
- agents: {
646
- list: [
647
- { id: "main", default: true },
648
- { id: "work", name: "Work Helper" },
649
- ],
675
+ // Agents managed by openclaw agents add
676
+ "agents": {
677
+ "list": [
678
+ { "id": "main", "default": true },
679
+ { "id": "work", "name": "Work Helper" }
680
+ ]
650
681
  },
651
682
 
652
- // Everything below is written automatically by plugin CLI commands
653
- bindings: [
654
- { agentId: "main", match: { channel: "rocketchat", accountId: "molty" } },
655
- { agentId: "work", match: { channel: "rocketchat", accountId: "work-claw" } },
683
+ // Bot Agent bindings (written by add-bot)
684
+ "bindings": [
685
+ { "agentId": "main", "match": { "channel": "rocketchat", "accountId": "molty" } },
686
+ { "agentId": "work", "match": { "channel": "rocketchat", "accountId": "work-claw" } }
656
687
  ],
657
- channels: {
658
- rocketchat: {
659
- enabled: true,
660
- serverUrl: "https://123-45-67-89.sslip.io",
661
- accounts: {
662
- molty: { botUsername: "molty", botDisplayName: "Lobster" },
663
- "work-claw": { botUsername: "work-claw", botDisplayName: "Work Helper" },
664
- },
665
- groups: {
666
- "AI Squad": { requireMention: false, bots: ["molty", "work-claw"] },
688
+
689
+ // Rocket.Chat channel config (written by setup / add-bot)
690
+ "channels": {
691
+ "rocketchat": {
692
+ "enabled": true,
693
+ "serverUrl": "https://123-45-67-89.sslip.io",
694
+ "accounts": {
695
+ "molty": { "botUsername": "molty", "botDisplayName": "Lobster" },
696
+ "work-claw": { "botUsername": "work-claw", "botDisplayName": "Work Helper" }
667
697
  },
668
- },
698
+ "groups": {
699
+ "AI Squad": { "requireMention": false, "bots": ["molty", "work-claw"] }
700
+ }
701
+ }
669
702
  },
703
+
704
+ // Plugin state
705
+ "plugins": {
706
+ "entries": {
707
+ "openclaw-rocketchat": { "enabled": true }
708
+ }
709
+ }
670
710
  }
671
711
  ```
672
712
 
713
+ ### Manual Editing
714
+
715
+ If auto-configuration has issues, edit `~/.openclaw/openclaw.json` directly:
716
+
717
+ ```bash
718
+ # Edit config
719
+ vi ~/.openclaw/openclaw.json
720
+
721
+ # Restart gateway to apply changes
722
+ openclaw gateway restart
723
+ ```
724
+
725
+ **Common manual edits:**
726
+
727
+ - **Change server URL**: Edit `channels.rocketchat.serverUrl`
728
+ - **Disable/enable channel**: Edit `channels.rocketchat.enabled`
729
+ - **Rebind bot to different Agent**: Edit `bindings` array, change `agentId`
730
+ - **Remove a bot**: Delete entries from both `accounts` and `bindings`
731
+ - **Toggle @mention requirement**: Edit `groups.<name>.requireMention`
732
+
733
+ > **Note**: Bot credentials (passwords, tokens) are stored in `~/.openclaw/credentials/`, separate from `openclaw.json`. If you reinstall a bot, clean up the credentials directory as well.
734
+
673
735
  ## Architecture
674
736
 
675
737
  ### Mode A: Co-located
package/README.md CHANGED
@@ -635,41 +635,103 @@ openclaw rocketchat uninstall
635
635
 
636
636
  所有命令都是**交互式**的——不需要记参数,按提示输入即可。
637
637
 
638
- ## 配置示例
638
+ ## 配置参数详解
639
639
 
640
- 所有配置由 CLI 命令自动写入 `openclaw.json`,你不需要手动编辑:
640
+ 所有配置由 CLI 命令自动写入 `~/.openclaw/openclaw.json`。通常你不需要手动编辑,但了解配置结构有助于排查问题和高级自定义。
641
+
642
+ ### channels.rocketchat — 频道配置
643
+
644
+ | 参数 | 类型 | 说明 |
645
+ |------|------|------|
646
+ | `enabled` | `boolean` | 是否启用 Rocket.Chat 频道。`true` 启用,`false` 禁用 |
647
+ | `serverUrl` | `string` | Rocket.Chat 服务器地址,如 `"https://123-45-67-89.sslip.io"`。Gateway 通过此地址连接 RC |
648
+ | `accounts` | `object` | 机器人账号列表,key 为账号 ID |
649
+ | `accounts.<id>.botUsername` | `string` | 机器人在 RC 中的用户名 |
650
+ | `accounts.<id>.botDisplayName` | `string` | 机器人显示昵称 |
651
+ | `groups` | `object` | 群组配置(可选),key 为群组名 |
652
+ | `groups.<name>.bots` | `string[]` | 群组中的机器人列表 |
653
+ | `groups.<name>.requireMention` | `boolean` | 群组中是否需要 @提及 机器人才回复 |
654
+
655
+ ### bindings — Agent 绑定
656
+
657
+ `bindings` 数组将机器人账号绑定到 Agent:
658
+
659
+ | 参数 | 类型 | 说明 |
660
+ |------|------|------|
661
+ | `agentId` | `string` | 绑定的 Agent ID(如 `"main"`) |
662
+ | `match.channel` | `string` | 固定为 `"rocketchat"` |
663
+ | `match.accountId` | `string` | 对应 `accounts` 中的 key |
664
+
665
+ ### plugins.entries — 插件状态
666
+
667
+ | 参数 | 类型 | 说明 |
668
+ |------|------|------|
669
+ | `openclaw-rocketchat.enabled` | `boolean` | 插件是否启用 |
670
+
671
+ ### 完整配置示例
641
672
 
642
673
  ```json5
643
674
  {
644
- // Agent 由 openclaw agents add 管理(插件不干预)
645
- agents: {
646
- list: [
647
- { id: "main", default: true },
648
- { id: "work", name: "工作助手" },
649
- ],
675
+ // Agent 由 openclaw agents add 管理
676
+ "agents": {
677
+ "list": [
678
+ { "id": "main", "default": true },
679
+ { "id": "work", "name": "工作助手" }
680
+ ]
650
681
  },
651
682
 
652
- // 以下由插件 CLI 命令自动写入
653
- bindings: [
654
- { agentId: "main", match: { channel: "rocketchat", accountId: "molty" } },
655
- { agentId: "work", match: { channel: "rocketchat", accountId: "work-claw" } },
683
+ // 机器人 Agent 绑定(由 add-bot 自动写入)
684
+ "bindings": [
685
+ { "agentId": "main", "match": { "channel": "rocketchat", "accountId": "molty" } },
686
+ { "agentId": "work", "match": { "channel": "rocketchat", "accountId": "work-claw" } }
656
687
  ],
657
- channels: {
658
- rocketchat: {
659
- enabled: true,
660
- serverUrl: "https://123-45-67-89.sslip.io",
661
- accounts: {
662
- molty: { botUsername: "molty", botDisplayName: "小龙虾" },
663
- "work-claw": { botUsername: "work-claw", botDisplayName: "工作助手" },
664
- },
665
- groups: {
666
- "AI全能群": { requireMention: false, bots: ["molty", "work-claw"] },
688
+
689
+ // Rocket.Chat 频道配置(由 setup / add-bot 自动写入)
690
+ "channels": {
691
+ "rocketchat": {
692
+ "enabled": true,
693
+ "serverUrl": "https://123-45-67-89.sslip.io",
694
+ "accounts": {
695
+ "molty": { "botUsername": "molty", "botDisplayName": "小龙虾" },
696
+ "work-claw": { "botUsername": "work-claw", "botDisplayName": "工作助手" }
667
697
  },
668
- },
698
+ "groups": {
699
+ "AI全能群": { "requireMention": false, "bots": ["molty", "work-claw"] }
700
+ }
701
+ }
669
702
  },
703
+
704
+ // 插件状态
705
+ "plugins": {
706
+ "entries": {
707
+ "openclaw-rocketchat": { "enabled": true }
708
+ }
709
+ }
670
710
  }
671
711
  ```
672
712
 
713
+ ### 手动修改配置
714
+
715
+ 如果自动配置出现问题,可以直接编辑 `~/.openclaw/openclaw.json`:
716
+
717
+ ```bash
718
+ # 编辑配置
719
+ vi ~/.openclaw/openclaw.json
720
+
721
+ # 修改后重启 gateway 生效
722
+ openclaw gateway restart
723
+ ```
724
+
725
+ **常见手动修改场景:**
726
+
727
+ - **更换服务器地址**:修改 `channels.rocketchat.serverUrl`
728
+ - **禁用/启用频道**:修改 `channels.rocketchat.enabled`
729
+ - **修改机器人绑定的 Agent**:修改 `bindings` 数组中对应条目的 `agentId`
730
+ - **删除机器人**:从 `accounts` 和 `bindings` 中删除对应条目
731
+ - **修改群组的 @提及 规则**:修改 `groups.<name>.requireMention`
732
+
733
+ > **注意**: 机器人的凭据(密码、token)存储在 `~/.openclaw/credentials/` 目录下,与 `openclaw.json` 分离。如果重装机器人,需要同时清理凭据文件。
734
+
673
735
  ## 架构
674
736
 
675
737
  ### 方式 A:同机部署
@@ -0,0 +1,42 @@
1
+ /**
2
+ * OpenClaw 内部模块的动态引用
3
+ * 通过 process.argv[1](gateway 入口脚本)推算模块路径
4
+ */
5
+ export interface OpenClawInternals {
6
+ /** 分发入站消息到 Agent */
7
+ dispatchInboundMessage: (params: {
8
+ ctx: Record<string, unknown>;
9
+ cfg: Record<string, unknown>;
10
+ dispatcher: unknown;
11
+ replyOptions?: Record<string, unknown>;
12
+ }) => Promise<unknown>;
13
+ /** 创建回复分发器 */
14
+ createReplyDispatcher: (options: {
15
+ deliver: (payload: {
16
+ text?: string;
17
+ mediaUrl?: string;
18
+ mediaUrls?: string[];
19
+ }, info: {
20
+ kind: string;
21
+ }) => void | Promise<void>;
22
+ onError?: (err: unknown) => void;
23
+ }) => unknown;
24
+ /** 创建回复前缀选项(可选) */
25
+ createReplyPrefixOptions?: (params: {
26
+ cfg: Record<string, unknown>;
27
+ agentId?: string;
28
+ channel?: string;
29
+ }) => Record<string, unknown>;
30
+ /** 加载配置 */
31
+ loadConfig: () => Record<string, unknown>;
32
+ }
33
+ /**
34
+ * 从 Gateway 进程中动态加载 OpenClaw 核心模块
35
+ *
36
+ * 原理:
37
+ * - Gateway 的入口脚本通常是 dist/cli/index.js(或类似路径)
38
+ * - 从入口脚本路径可以推算 OpenClaw 的 dist/ 根目录
39
+ * - 然后按相对路径导入所需模块
40
+ */
41
+ export declare function loadOpenClawInternals(): Promise<OpenClawInternals | null>;
42
+ //# sourceMappingURL=openclaw-internals.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw-internals.d.ts","sourceRoot":"","sources":["../../src/gateway/openclaw-internals.ts"],"names":[],"mappings":"AASA;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,oBAAoB;IACpB,sBAAsB,EAAE,CAAC,MAAM,EAAE;QAC/B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7B,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACxC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAEvB,cAAc;IACd,qBAAqB,EAAE,CAAC,OAAO,EAAE;QAC/B,OAAO,EAAE,CACP,OAAO,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAC;YAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;YAAC,SAAS,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,EACnE,IAAI,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,KACnB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC1B,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;KAClC,KAAK,OAAO,CAAC;IAEd,mBAAmB;IACnB,wBAAwB,CAAC,EAAE,CAAC,MAAM,EAAE;QAClC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9B,WAAW;IACX,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAKD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA8D/E"}
@@ -0,0 +1,70 @@
1
+ // ============================================================
2
+ // 动态导入 OpenClaw 核心模块
3
+ // 插件运行在 Gateway 进程内,可以访问 OpenClaw 的内部模块
4
+ // 用于入站消息分发(dispatchInboundMessage)
5
+ // ============================================================
6
+ import { dirname, resolve } from "node:path";
7
+ import { pathToFileURL } from "node:url";
8
+ /** 缓存:加载一次就够了 */
9
+ let cached = null;
10
+ /**
11
+ * 从 Gateway 进程中动态加载 OpenClaw 核心模块
12
+ *
13
+ * 原理:
14
+ * - Gateway 的入口脚本通常是 dist/cli/index.js(或类似路径)
15
+ * - 从入口脚本路径可以推算 OpenClaw 的 dist/ 根目录
16
+ * - 然后按相对路径导入所需模块
17
+ */
18
+ export async function loadOpenClawInternals() {
19
+ if (cached)
20
+ return cached;
21
+ const mainScript = process.argv[1];
22
+ if (!mainScript)
23
+ return null;
24
+ try {
25
+ // 入口脚本: dist/cli/index.js 或 dist/cli/program/index.js
26
+ // 向上遍历找到 dist/ 目录(包含 auto-reply/、config/ 等子目录)
27
+ let distDir = dirname(mainScript);
28
+ // 最多向上走 5 层来找到包含 auto-reply 的目录
29
+ for (let i = 0; i < 5; i++) {
30
+ const testPath = resolve(distDir, "auto-reply", "dispatch.js");
31
+ try {
32
+ const url = pathToFileURL(testPath).href;
33
+ await import(url);
34
+ // 找到了!
35
+ break;
36
+ }
37
+ catch {
38
+ distDir = dirname(distDir);
39
+ }
40
+ }
41
+ const importModule = async (relativePath) => {
42
+ const fullPath = resolve(distDir, relativePath);
43
+ const url = pathToFileURL(fullPath).href;
44
+ return await import(url);
45
+ };
46
+ const dispatchMod = await importModule("auto-reply/dispatch.js");
47
+ const replyDispatcherMod = await importModule("auto-reply/reply/reply-dispatcher.js");
48
+ const configMod = await importModule("config/config.js");
49
+ let replyPrefixMod = null;
50
+ try {
51
+ replyPrefixMod = (await importModule("channels/reply-prefix.js"));
52
+ }
53
+ catch {
54
+ // reply-prefix 是可选的
55
+ }
56
+ cached = {
57
+ dispatchInboundMessage: dispatchMod.dispatchInboundMessage,
58
+ createReplyDispatcher: replyDispatcherMod.createReplyDispatcher,
59
+ createReplyPrefixOptions: replyPrefixMod?.createReplyPrefixOptions,
60
+ loadConfig: configMod.loadConfig,
61
+ };
62
+ return cached;
63
+ }
64
+ catch (err) {
65
+ // 无法加载内部模块 — 可能是 OpenClaw 版本变化或目录结构不同
66
+ console.error(`[RC] 无法加载 OpenClaw 内部模块: ${err.message}`);
67
+ return null;
68
+ }
69
+ }
70
+ //# sourceMappingURL=openclaw-internals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openclaw-internals.js","sourceRoot":"","sources":["../../src/gateway/openclaw-internals.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,qBAAqB;AACrB,wCAAwC;AACxC,mCAAmC;AACnC,+DAA+D;AAE/D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAmCzC,iBAAiB;AACjB,IAAI,MAAM,GAA6B,IAAI,CAAC;AAE5C;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB;IACzC,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC;IAE1B,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACnC,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IAE7B,IAAI,CAAC;QACH,sDAAsD;QACtD,+CAA+C;QAC/C,IAAI,OAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;QAElC,gCAAgC;QAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;YAC/D,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;gBACzC,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;gBAClB,OAAO;gBACP,MAAM;YACR,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,EAAE,YAAoB,EAAE,EAAE;YAClD,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YAChD,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC;YACzC,OAAO,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEF,MAAM,WAAW,GAAG,MAAM,YAAY,CAAC,wBAAwB,CAAC,CAAC;QACjE,MAAM,kBAAkB,GAAG,MAAM,YAAY,CAC3C,sCAAsC,CACvC,CAAC;QACF,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAEzD,IAAI,cAAc,GAAmC,IAAI,CAAC;QAC1D,IAAI,CAAC;YACH,cAAc,GAAG,CAAC,MAAM,YAAY,CAClC,0BAA0B,CAC3B,CAA4B,CAAC;QAChC,CAAC;QAAC,MAAM,CAAC;YACP,oBAAoB;QACtB,CAAC;QAED,MAAM,GAAG;YACP,sBAAsB,EAAE,WAAW,CAAC,sBAAsB;YAC1D,qBAAqB,EAAE,kBAAkB,CAAC,qBAAqB;YAC/D,wBAAwB,EAAE,cAAc,EAAE,wBAE7B;YACb,UAAU,EAAE,SAAS,CAAC,UAAU;SACjC,CAAC;QAEF,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,sCAAsC;QACtC,OAAO,CAAC,KAAK,CACX,4BAA6B,GAAa,CAAC,OAAO,EAAE,CACrD,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA0CA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA4M/C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA0CA;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAqO/C"}
package/dist/index.js CHANGED
@@ -79,8 +79,33 @@ export default function register(api) {
79
79
  return cfg?.accounts?.[accountId] || null;
80
80
  },
81
81
  },
82
+ messaging: {
83
+ targetResolver: {
84
+ hint: "Use a Rocket.Chat room ID (24-char hex), or prefix with # for channels, @ for users.",
85
+ /**
86
+ * Rocket.Chat 的 target 是 MongoDB ObjectId(24 位十六进制字符串)
87
+ * 默认的 looksLikeTargetId 无法识别这种格式,导致 "Unknown target" 错误
88
+ */
89
+ looksLikeId: (raw, _normalized) => {
90
+ const trimmed = raw.trim();
91
+ // MongoDB ObjectId: 24-char hex string
92
+ if (/^[a-f0-9]{17,24}$/i.test(trimmed)) {
93
+ return true;
94
+ }
95
+ // Prefixed forms: channel:xxx, group:xxx, user:xxx
96
+ if (/^(channel|group|user):/i.test(trimmed)) {
97
+ return true;
98
+ }
99
+ // @username or #channel
100
+ if (/^[@#]/.test(trimmed)) {
101
+ return true;
102
+ }
103
+ return false;
104
+ },
105
+ },
106
+ },
82
107
  outbound: {
83
- deliveryMode: "direct",
108
+ deliveryMode: "gateway",
84
109
  /**
85
110
  * Agent 回复 → 发送到 Rocket.Chat
86
111
  */
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"bot-manager.d.ts","sourceRoot":"","sources":["../../src/service/bot-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,oBAAoB,CAAC;AAapE,KAAK,sBAAsB,GAAG,CAC5B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;AAEV,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAAoC;IAChD,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,MAAM,CAAgE;gBAG5E,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE;IASxE,aAAa;IACb,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAQhD,iBAAiB;IACX,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAuDhB,aAAa;IACP,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvE,gBAAgB;IACV,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAShB,gBAAgB;IACV,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAShB,sBAAsB;IACtB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAIpE,mBAAmB;IACnB,gBAAgB,IAAI,MAAM,EAAE;IAM5B,wBAAwB;IACxB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAInD,cAAc;IACd,aAAa,IAAI,IAAI;IAgBrB,OAAO,CAAC,qBAAqB;CA0B9B"}
1
+ {"version":3,"file":"bot-manager.d.ts","sourceRoot":"","sources":["../../src/service/bot-manager.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,KAAK,EAAE,SAAS,EAAkB,MAAM,oBAAoB,CAAC;AAapE,KAAK,sBAAsB,GAAG,CAC5B,OAAO,EAAE,SAAS,EAClB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,KACZ,IAAI,CAAC;AAEV,qBAAa,UAAU;IACrB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,IAAI,CAAoC;IAChD,OAAO,CAAC,cAAc,CAAuC;IAC7D,OAAO,CAAC,MAAM,CAAgE;gBAG5E,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE;IASxE,aAAa;IACb,SAAS,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAQhD,iBAAiB;IACX,MAAM,CACV,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,EACf,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,IAAI,CAAC;IAuDhB,aAAa;IACP,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqBvE,gBAAgB;IACV,WAAW,CACf,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC;IAShB,gBAAgB;IACV,UAAU,CACd,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAShB,sBAAsB;IACtB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAIpE,mBAAmB;IACnB,gBAAgB,IAAI,MAAM,EAAE;IAM5B,wBAAwB;IACxB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAInD,cAAc;IACd,aAAa,IAAI,IAAI;IAgBrB,OAAO,CAAC,qBAAqB;CA+B9B"}
@@ -139,6 +139,10 @@ export class BotManager {
139
139
  if (msg.u?.username === botUsername) {
140
140
  return;
141
141
  }
142
+ // 忽略所有已注册机器人发的消息(防止群组中机器人互相触发)
143
+ if (this.bots.has(msg.u?.username)) {
144
+ return;
145
+ }
142
146
  // 忽略系统消息
143
147
  if (msg.t) {
144
148
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"bot-manager.js","sourceRoot":"","sources":["../../src/service/bot-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bot-manager.js","sourceRoot":"","sources":["../../src/service/bot-manager.ts"],"names":[],"mappings":"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"}
@@ -15,6 +15,7 @@ export declare class ChannelService {
15
15
  private botManager;
16
16
  private messageHandler;
17
17
  private adminClient;
18
+ private internals;
18
19
  private logger;
19
20
  private running;
20
21
  constructor(options: ChannelServiceOptions);
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/service/channel.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAKtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEnF,UAAU,qBAAqB;IAC7B,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACxE;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,MAAM,CAAgE;IAC9E,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,qBAAqB;IAa1C,WAAW;IACL,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA4D5B,WAAW;IACX,IAAI,IAAI,IAAI;IAQZ,gCAAgC;IAChC,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C,oBAAoB;IACpB,aAAa,IAAI,UAAU,GAAG,IAAI;YAQpB,WAAW;IAsCzB,kBAAkB;YACJ,eAAe;YAoBf,YAAY;CA4B3B"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/service/channel.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAOtD,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAEnF,UAAU,qBAAqB;IAC7B,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACxE;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,QAAQ,CAAoB;IACpC,OAAO,CAAC,UAAU,CAA2B;IAC7C,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,MAAM,CAAgE;IAC9E,OAAO,CAAC,OAAO,CAAS;gBAEZ,OAAO,EAAE,qBAAqB;IAa1C,WAAW;IACL,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IA6E5B,WAAW;IACX,IAAI,IAAI,IAAI;IAQZ,gCAAgC;IAChC,iBAAiB,IAAI,cAAc,GAAG,IAAI;IAI1C,oBAAoB;IACpB,aAAa,IAAI,UAAU,GAAG,IAAI;YAQpB,WAAW;IAsCzB,kBAAkB;YACJ,eAAe;YAoBf,YAAY;CAmC3B"}
@@ -6,12 +6,14 @@ import { RocketChatRestClient } from "../rc-api/rest-client.js";
6
6
  import { BotManager } from "./bot-manager.js";
7
7
  import { MessageHandler } from "./message-handler.js";
8
8
  import { loadAdminCredentials, loadBotCredentials, } from "../config/credentials.js";
9
+ import { loadOpenClawInternals } from "../gateway/openclaw-internals.js";
9
10
  export class ChannelService {
10
11
  config;
11
12
  bindings;
12
13
  botManager = null;
13
14
  messageHandler = null;
14
15
  adminClient = null;
16
+ internals = null;
15
17
  logger;
16
18
  running = false;
17
19
  constructor(options) {
@@ -54,21 +56,35 @@ export class ChannelService {
54
56
  this.logger.error(`无法连接 Rocket.Chat: ${err.message}`);
55
57
  return;
56
58
  }
57
- // 2. 初始化 BotManager
59
+ // 2. 加载 OpenClaw 内部模块(用于入站消息分发)
60
+ try {
61
+ this.internals = await loadOpenClawInternals();
62
+ if (this.internals) {
63
+ this.logger.info("OpenClaw 内部模块已加载(进程内直连模式)");
64
+ }
65
+ else {
66
+ this.logger.error("无法加载 OpenClaw 内部模块,入站消息将无法路由到 Agent");
67
+ }
68
+ }
69
+ catch (err) {
70
+ this.logger.error(`加载 OpenClaw 内部模块失败: ${err.message}`);
71
+ }
72
+ // 3. 初始化 BotManager
58
73
  this.botManager = new BotManager(this.config.serverUrl, this.logger);
59
- // 3. 初始化 MessageHandler
74
+ // 4. 初始化 MessageHandler
60
75
  this.messageHandler = new MessageHandler({
61
76
  botManager: this.botManager,
62
77
  config: this.config,
63
78
  logger: this.logger,
79
+ internals: this.internals,
64
80
  });
65
- // 4. 设置消息回调
81
+ // 5. 设置消息回调
66
82
  this.botManager.onMessage((msg, roomId, botUsername, agentId) => {
67
83
  this.messageHandler.handleInbound(msg, roomId, botUsername, agentId);
68
84
  });
69
- // 5. 连接所有机器人
85
+ // 6. 连接所有机器人
70
86
  await this.connectBots();
71
- // 6. 确保所有群组存在并订阅
87
+ // 7. 确保所有群组存在并订阅
72
88
  await this.ensureGroups();
73
89
  this.running = true;
74
90
  this.logger.info("Rocket.Chat 频道服务已启动");
@@ -139,6 +155,12 @@ export class ChannelService {
139
155
  // 检查群组是否存在
140
156
  const groupInfo = await this.adminClient.getGroupInfo(undefined, groupName);
141
157
  if (groupInfo) {
158
+ // 注册群组房间信息到 MessageHandler(用于区分 DM/群组 + @提及过滤)
159
+ this.messageHandler?.registerGroupRoom(groupInfo._id, {
160
+ groupName,
161
+ requireMention: groupConfig.requireMention ?? false,
162
+ bots: groupConfig.bots || [],
163
+ });
142
164
  // 群组存在,为其中的每个机器人订阅消息
143
165
  for (const botUsername of groupConfig.bots || []) {
144
166
  await this.botManager.subscribeRoom(botUsername, groupInfo._id);
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/service/channel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/service/channel.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,12 @@
1
1
  import type { RcMessage, RocketchatChannelConfig } from "../rc-api/types.js";
2
2
  import type { BotManager } from "./bot-manager.js";
3
+ import type { OpenClawInternals } from "../gateway/openclaw-internals.js";
4
+ /** 群组房间信息(由 ChannelService 注册) */
5
+ interface GroupRoomInfo {
6
+ groupName: string;
7
+ requireMention: boolean;
8
+ bots: string[];
9
+ }
3
10
  interface MessageHandlerOptions {
4
11
  botManager: BotManager;
5
12
  config: Partial<RocketchatChannelConfig>;
@@ -7,13 +14,18 @@ interface MessageHandlerOptions {
7
14
  info: (msg: string) => void;
8
15
  error: (msg: string) => void;
9
16
  };
17
+ /** OpenClaw 内部模块引用(用于入站消息分发) */
18
+ internals?: OpenClawInternals | null;
10
19
  }
11
20
  export declare class MessageHandler {
12
21
  private botManager;
13
22
  private config;
14
23
  private logger;
24
+ private internals;
15
25
  /** 正在处理中的消息 ID 集合(防止并发重复处理) */
16
26
  private processingMessages;
27
+ /** 群组房间映射:roomId → GroupRoomInfo(用于区分 DM 和群组) */
28
+ private groupRooms;
17
29
  constructor(options: MessageHandlerOptions);
18
30
  /**
19
31
  * 处理入站消息
@@ -26,15 +38,34 @@ export declare class MessageHandler {
26
38
  */
27
39
  handleOutbound(text: string, botUsername: string, roomId: string): Promise<void>;
28
40
  /**
29
- * 判断机器人是否应该响应该消息
30
- * - DM 消息:始终响应
31
- * - 群组消息:根据 requireMention 规则判断
41
+ * 将消息分发到 OpenClaw Agent
42
+ *
43
+ * 使用 dispatchInboundMessage(进程内直接调用)
44
+ * 需要 OpenClaw 内部模块可用(在 Gateway 进程内运行时自动加载)
32
45
  */
33
- private shouldRespond;
46
+ private dispatchToAgent;
47
+ /**
48
+ * 通过 OpenClaw 内部 API 分发入站消息(首选方式)
49
+ *
50
+ * 构造 MsgContext → dispatchInboundMessage → Agent 处理
51
+ * Agent 回复通过 dispatcher 的 deliver 回调直接发送到 RC
52
+ */
53
+ private dispatchViaInternals;
34
54
  /**
35
- * 通过 openclaw CLI 将消息发送给 Agent
55
+ * 注册群组房间(由 ChannelService.ensureGroups 调用)
56
+ * 用于区分 DM 和群组,以及获取群组的 requireMention 配置
36
57
  */
37
- private sendToOpenClaw;
58
+ registerGroupRoom(roomId: string, info: GroupRoomInfo): void;
59
+ /**
60
+ * 判断机器人是否应该响应该消息
61
+ *
62
+ * DM 消息:始终响应(roomId 不在 groupRooms 中)
63
+ * 群组消息:
64
+ * 1. 过滤广播提及(@here / @all / @everyone)—— 仅广播提及时不响应
65
+ * 2. 如果群组配置了 requireMention,只有直接 @机器人 才响应
66
+ * 3. 如果未配置 requireMention,除了广播提及外都响应
67
+ */
68
+ private shouldRespond;
38
69
  /**
39
70
  * 将长文本分块
40
71
  * 尽量按段落或代码块边界分割
@@ -1 +1 @@
1
- {"version":3,"file":"message-handler.d.ts","sourceRoot":"","sources":["../../src/service/message-handler.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAOnD,UAAU,qBAAqB;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;CACxE;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,MAAM,CAAgE;IAC9E,+BAA+B;IAC/B,OAAO,CAAC,kBAAkB,CAAqB;gBAEnC,OAAO,EAAE,qBAAqB;IAa1C;;;OAGG;IACG,aAAa,CACjB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IA2EhB;;;OAGG;IACG,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAsBrB;;OAEG;YACW,cAAc;IAgE5B;;;OAGG;IACH,OAAO,CAAC,SAAS;CAyClB"}
1
+ {"version":3,"file":"message-handler.d.ts","sourceRoot":"","sources":["../../src/service/message-handler.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAQ1E,kCAAkC;AAClC,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,UAAU,qBAAqB;IAC7B,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,OAAO,CAAC,uBAAuB,CAAC,CAAC;IACzC,MAAM,CAAC,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;QAAC,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IACvE,gCAAgC;IAChC,SAAS,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACtC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,MAAM,CAAmC;IACjD,OAAO,CAAC,MAAM,CAAgE;IAC9E,OAAO,CAAC,SAAS,CAA2B;IAC5C,+BAA+B;IAC/B,OAAO,CAAC,kBAAkB,CAAqB;IAC/C,iDAAiD;IACjD,OAAO,CAAC,UAAU,CAAoC;gBAE1C,OAAO,EAAE,qBAAqB;IAc1C;;;OAGG;IACG,aAAa,CACjB,GAAG,EAAE,SAAS,EACd,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC;IA4EhB;;;OAGG;IACG,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;;OAKG;YACW,eAAe;IAwB7B;;;;;OAKG;YACW,oBAAoB;IA4GlC;;;OAGG;IACH,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,GAAG,IAAI;IAQ5D;;;;;;;;OAQG;IACH,OAAO,CAAC,aAAa;IA2CrB;;;OAGG;IACH,OAAO,CAAC,SAAS;CAyClB"}
@@ -1,22 +1,25 @@
1
1
  // ============================================================
2
2
  // 消息桥接:RC 消息 <-> OpenClaw Agent
3
- // 入站:接收 RC 消息 → 路由到 Agent
3
+ // 入站:接收 RC 消息 → dispatchInboundMessage Agent 处理 → 回调回复
4
4
  // 出站:Agent 回复 → 格式化 → 发回 RC
5
5
  // ============================================================
6
- import { execFile } from "node:child_process";
7
- import { promisify } from "node:util";
8
- const execFileAsync = promisify(execFile);
9
6
  /** 长文本分块大小(Rocket.Chat 单条消息建议不超过 4000 字符) */
10
7
  const MAX_MESSAGE_LENGTH = 4000;
8
+ /** Rocket.Chat 广播提及用户名:@here / @all / @everyone 不应触发机器人响应 */
9
+ const BROADCAST_MENTION_USERNAMES = new Set(["here", "all", "everyone"]);
11
10
  export class MessageHandler {
12
11
  botManager;
13
12
  config;
14
13
  logger;
14
+ internals;
15
15
  /** 正在处理中的消息 ID 集合(防止并发重复处理) */
16
16
  processingMessages = new Set();
17
+ /** 群组房间映射:roomId → GroupRoomInfo(用于区分 DM 和群组) */
18
+ groupRooms = new Map();
17
19
  constructor(options) {
18
20
  this.botManager = options.botManager;
19
21
  this.config = options.config;
22
+ this.internals = options.internals || null;
20
23
  this.logger = options.logger || {
21
24
  info: (msg) => console.log(`[RC MessageHandler] ${msg}`),
22
25
  error: (msg) => console.error(`[RC MessageHandler] ${msg}`),
@@ -35,9 +38,9 @@ export class MessageHandler {
35
38
  if (this.processingMessages.has(msgKey))
36
39
  return;
37
40
  this.processingMessages.add(msgKey);
38
- // 处理完成后清理(30 秒超时兜底)
41
+ // 处理完成后清理(60 秒超时兜底)
39
42
  const cleanup = () => this.processingMessages.delete(msgKey);
40
- setTimeout(cleanup, 30000);
43
+ setTimeout(cleanup, 60000);
41
44
  // 检查 @提及 规则(群组消息)
42
45
  if (!this.shouldRespond(msg, botUsername, roomId)) {
43
46
  cleanup();
@@ -62,14 +65,13 @@ export class MessageHandler {
62
65
  if (!text.trim()) {
63
66
  return;
64
67
  }
65
- // 通过 openclaw message send CLI 发送给 Agent
66
68
  this.logger.info(`入站: ${msg.u.username} -> ${botUsername} (Agent: ${agentId}): ${text.slice(0, 100)}...`);
67
69
  try {
68
- await this.sendToOpenClaw(text, botUsername, msg.u.username, roomId);
70
+ await this.dispatchToAgent(text, botUsername, msg.u.username, roomId, agentId, msg._id);
69
71
  }
70
72
  catch (err) {
71
73
  const errMsg = err.message || "";
72
- this.logger.error(`发送到 OpenClaw 失败: ${errMsg}`);
74
+ this.logger.error(`分发到 Agent 失败: ${errMsg}`);
73
75
  // 如果 Agent 不存在或绑定丢失,回复用户一条友好提示
74
76
  if (errMsg.includes("agent") ||
75
77
  errMsg.includes("not found") ||
@@ -105,80 +107,156 @@ export class MessageHandler {
105
107
  }
106
108
  }
107
109
  // ----------------------------------------------------------
108
- // 内部:消息路由
110
+ // 内部:入站消息分发
109
111
  // ----------------------------------------------------------
110
112
  /**
111
- * 判断机器人是否应该响应该消息
112
- * - DM 消息:始终响应
113
- * - 群组消息:根据 requireMention 规则判断
113
+ * 将消息分发到 OpenClaw Agent
114
+ *
115
+ * 使用 dispatchInboundMessage(进程内直接调用)
116
+ * 需要 OpenClaw 内部模块可用(在 Gateway 进程内运行时自动加载)
114
117
  */
115
- shouldRespond(msg, botUsername, roomId) {
116
- // 检查是否在群组中且需要 @提及
117
- const groups = this.config.groups || {};
118
- for (const [, groupConfig] of Object.entries(groups)) {
119
- if (groupConfig.bots?.includes(botUsername) && groupConfig.requireMention) {
120
- // 需要 @提及 才响应
121
- const isMentioned = msg.mentions?.some((m) => m.username === botUsername);
122
- if (!isMentioned) {
123
- return false;
124
- }
125
- }
118
+ async dispatchToAgent(text, botUsername, senderId, roomId, agentId, messageId) {
119
+ if (this.internals) {
120
+ await this.dispatchViaInternals(text, botUsername, senderId, roomId, agentId, messageId);
121
+ }
122
+ else {
123
+ this.logger.error("OpenClaw 内部模块不可用,入站消息无法分发到 Agent");
126
124
  }
127
- return true;
128
125
  }
129
126
  /**
130
- * 通过 openclaw CLI 将消息发送给 Agent
127
+ * 通过 OpenClaw 内部 API 分发入站消息(首选方式)
128
+ *
129
+ * 构造 MsgContext → dispatchInboundMessage → Agent 处理
130
+ * Agent 回复通过 dispatcher 的 deliver 回调直接发送到 RC
131
131
  */
132
- async sendToOpenClaw(text, accountId, senderId, roomId) {
133
- // 基本校验:确保标识符不为空、不包含控制字符
134
- if (!accountId || !senderId || !roomId) {
135
- this.logger.error("sendToOpenClaw: 缺少必要的标识符参数");
136
- return;
132
+ async dispatchViaInternals(text, botUsername, senderId, roomId, agentId, messageId) {
133
+ const internals = this.internals;
134
+ // 加载最新配置
135
+ let cfg;
136
+ try {
137
+ cfg = internals.loadConfig();
137
138
  }
138
- // execFileAsync 不走 shell,参数不会被 shell 解析,注入风险极低
139
- const args = [
140
- "message",
141
- "send",
142
- "--channel",
143
- "rocketchat",
144
- "--account",
145
- accountId,
146
- "--target",
147
- roomId,
148
- "-m",
149
- text,
150
- ];
151
- // 尝试传递 sender 信息(如果 CLI 版本不支持 --from,忽略即可)
152
- if (senderId) {
153
- args.push("--from", senderId);
139
+ catch {
140
+ // 如果 loadConfig 失败,尝试用空配置
141
+ cfg = {};
154
142
  }
155
- try {
156
- await execFileAsync("openclaw", args, { timeout: 30000 });
143
+ // 判断是 DM 还是群组
144
+ const groupInfo = this.groupRooms.get(roomId);
145
+ const isGroup = !!groupInfo;
146
+ const chatType = isGroup ? "group" : "direct";
147
+ // 构造 session key(格式参考 Telegram/Discord 等核心频道)
148
+ const sessionKey = isGroup
149
+ ? `agent:${agentId}:rocketchat:group:${botUsername}:${roomId}`
150
+ : `agent:${agentId}:rocketchat:dm:${botUsername}:${roomId}`;
151
+ // 构造 MsgContext(OpenClaw 入站消息上下文)
152
+ const ctx = {
153
+ Body: text,
154
+ BodyForAgent: text,
155
+ RawBody: text,
156
+ CommandBody: text,
157
+ BodyForCommands: text,
158
+ From: isGroup
159
+ ? `rocketchat:group:${roomId}:${senderId}`
160
+ : `rocketchat:${senderId}`,
161
+ To: isGroup
162
+ ? `rocketchat:group:${roomId}`
163
+ : `rocketchat:dm:${botUsername}`,
164
+ SessionKey: sessionKey,
165
+ AccountId: botUsername,
166
+ Provider: "rocketchat",
167
+ Surface: "rocketchat",
168
+ OriginatingChannel: "rocketchat",
169
+ OriginatingTo: roomId,
170
+ ChatType: chatType,
171
+ CommandAuthorized: true,
172
+ MessageSid: messageId,
173
+ SenderId: senderId,
174
+ SenderName: senderId,
175
+ SenderUsername: senderId,
176
+ };
177
+ // 群组消息额外字段
178
+ if (isGroup && groupInfo) {
179
+ ctx.GroupSubject = groupInfo.groupName;
157
180
  }
158
- catch (err) {
159
- const msg = err.message || "";
160
- // 如果是 --from 不支持,降级为不传 sender 重试
161
- if (msg.includes("unknown option") && msg.includes("--from")) {
162
- this.logger.info("CLI 不支持 --from,降级重试(不含 sender)");
163
- await execFileAsync("openclaw", [
164
- "message",
165
- "send",
166
- "--channel",
167
- "rocketchat",
168
- "--account",
169
- accountId,
170
- "--target",
171
- roomId,
172
- "-m",
173
- text,
174
- ], { timeout: 30000 });
175
- }
176
- else {
177
- throw err;
178
- }
181
+ // 创建 reply dispatcher —— Agent 回复通过 deliver 回调直接发到 RC
182
+ const replyParts = [];
183
+ const dispatcher = internals.createReplyDispatcher({
184
+ deliver: async (payload, info) => {
185
+ const replyText = payload.text?.trim() ?? "";
186
+ if (!replyText)
187
+ return;
188
+ replyParts.push(replyText);
189
+ // 实时发送每个回复块到 RC(而不是等全部完成再发)
190
+ if (info.kind === "final" || info.kind === "block") {
191
+ try {
192
+ await this.handleOutbound(replyText, botUsername, roomId);
193
+ }
194
+ catch (err) {
195
+ this.logger.error(`回复发送失败: ${err.message}`);
196
+ }
197
+ }
198
+ },
199
+ onError: (err) => {
200
+ this.logger.error(`Agent 处理错误: ${err instanceof Error ? err.message : String(err)}`);
201
+ },
202
+ });
203
+ // 分发入站消息 → Agent 处理 → 回复通过 deliver 回调发送
204
+ await internals.dispatchInboundMessage({
205
+ ctx,
206
+ cfg,
207
+ dispatcher,
208
+ });
209
+ // 如果 Agent 没有通过 dispatcher 回复(例如命令处理后无输出),
210
+ // replyParts 为空也是正常的
211
+ if (replyParts.length === 0) {
212
+ this.logger.info(`Agent 处理完成,无回复内容(可能是命令或空响应)`);
179
213
  }
180
214
  }
181
215
  // ----------------------------------------------------------
216
+ // 群组房间注册
217
+ // ----------------------------------------------------------
218
+ /**
219
+ * 注册群组房间(由 ChannelService.ensureGroups 调用)
220
+ * 用于区分 DM 和群组,以及获取群组的 requireMention 配置
221
+ */
222
+ registerGroupRoom(roomId, info) {
223
+ this.groupRooms.set(roomId, info);
224
+ }
225
+ // ----------------------------------------------------------
226
+ // 内部:@提及 判断
227
+ // ----------------------------------------------------------
228
+ /**
229
+ * 判断机器人是否应该响应该消息
230
+ *
231
+ * DM 消息:始终响应(roomId 不在 groupRooms 中)
232
+ * 群组消息:
233
+ * 1. 过滤广播提及(@here / @all / @everyone)—— 仅广播提及时不响应
234
+ * 2. 如果群组配置了 requireMention,只有直接 @机器人 才响应
235
+ * 3. 如果未配置 requireMention,除了广播提及外都响应
236
+ */
237
+ shouldRespond(msg, botUsername, roomId) {
238
+ const groupInfo = this.groupRooms.get(roomId);
239
+ // DM 消息:始终响应
240
+ if (!groupInfo) {
241
+ return true;
242
+ }
243
+ // ---- 群组消息逻辑 ----
244
+ const mentions = msg.mentions || [];
245
+ // 检查机器人是否被直接 @提及(排除广播提及)
246
+ const isBotMentioned = mentions.some((m) => m.username === botUsername);
247
+ // 检查消息是否包含广播提及(@here / @all / @everyone)
248
+ const hasBroadcastMention = mentions.some((m) => BROADCAST_MENTION_USERNAMES.has(m.username));
249
+ // 如果消息只有广播提及、没有直接 @机器人 → 不响应
250
+ if (hasBroadcastMention && !isBotMentioned) {
251
+ return false;
252
+ }
253
+ // 如果群组要求 @提及 才响应
254
+ if (groupInfo.requireMention && !isBotMentioned) {
255
+ return false;
256
+ }
257
+ return true;
258
+ }
259
+ // ----------------------------------------------------------
182
260
  // 工具
183
261
  // ----------------------------------------------------------
184
262
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../src/service/message-handler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message-handler.js","sourceRoot":"","sources":["../../src/service/message-handler.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-rocketchat",
3
- "version": "0.3.12",
3
+ "version": "0.4.0",
4
4
  "description": "Rocket.Chat channel plugin for OpenClaw — connect via mobile app, ideal for China mainland users",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",