@wenbin_wb/dsh-bridge 2.2.5 → 2.2.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.
- package/README.en.md +278 -0
- package/README.md +143 -142
- package/client/client.js +244 -67
- package/client/index.js +222 -64
- package/lib/bridge-rpc-constants.js +1 -0
- package/lib/bridge-rpc.js +5 -0
- package/lib/index.js +49 -8
- package/lib/platform/conversation-bridge.js +120 -70
- package/lib/wechat/node.js +1 -1
- package/package.json +2 -2
- package/README.zh-CN.md +0 -277
package/README.md
CHANGED
|
@@ -1,27 +1,28 @@
|
|
|
1
1
|
# dsh-bridge
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
简体中文 | [English](README.en.md)
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
7
|
-
>
|
|
7
|
+
> DeepSeek Harness 多通道远程访问插件
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
手机扫个码,人不在电脑前也能继续用 DeepSeek Harness。躺在沙发上、出差在外、跨网访问——都不用守着电脑,也不用自己搭公网服务器,扫码就能在手机/平板或任意设备上接着干。
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
把你本地的 DeepSeek Harness 无缝延伸到手机、平板、公网、甚至微信 / QQ。无论你在哪,都能通过扫码、网页或 IM 机器人,随时调用你的 AI 助手。
|
|
12
12
|
|
|
13
13
|
---
|
|
14
14
|
|
|
15
|
-
##
|
|
15
|
+
## 功能特性
|
|
16
16
|
|
|
17
|
-
-
|
|
18
|
-
- **Cloudflare
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
- **QQ Bot
|
|
22
|
-
- **IM
|
|
23
|
-
-
|
|
24
|
-
-
|
|
17
|
+
- **局域网访问**:手机/平板扫码,同一 Wi-Fi 直接访问,躺着也能在手机上接着聊
|
|
18
|
+
- **Cloudflare 隧道**:一键暴露公网地址,随时随地连接,出差在外、不在家也能接着干,无需自建公网服务器
|
|
19
|
+
- **自建隧道**:连接自己的隧道服务器,获得固定域名([搭建教程](docs/custom-tunnel.md))
|
|
20
|
+
- **微信 Bot(ClawBot / iLink)**:扫码登录微信个人号后,直接在微信里对话、控制 DeepSeek Harness 的 agent。**支持多工作区选择、会话跨重启持久化、按工作区分组查看、媒体(图片/文件/语音)收发、权限审批**——走腾讯官方 iLink Bot API,无需公网([使用说明](docs/wechat-usage.md))
|
|
21
|
+
- **QQ Bot(OpenAPI v2)**:接入 QQ 机器人,私聊/群聊接收消息,发送 Markdown、按钮键盘和富媒体。**完整事件覆盖(C2C / GROUP_AT_MESSAGE_CREATE)、Token 自动刷新、断线重连、消息去重**——走腾讯官方 QQ Bot OpenAPI v2([使用说明](docs/qq-usage.md))
|
|
22
|
+
- **IM 官方品牌矢量图标**:微信、QQ、飞书、Telegram 官方矢量图标与状态展示,直接在聊天软件里呼唤你的 Agent
|
|
23
|
+
- **极速版本检查与一键升级**:国内高速镜像(npmmirror)优先 + 官方源毫秒级双通道检查,检测到新版本支持**界面一键直接升级**,无需手动打开终端
|
|
24
|
+
- **深色模式深度适配**:完美适配 DeepSeek Harness 设计系统明暗主题切换,二维码自带白底安全垫,暗光下手机扫码 100% 极速识别
|
|
25
|
+
- **安全提示**:URL 和二维码带访问警告,防止误分享
|
|
25
26
|
|
|
26
27
|

|
|
27
28
|

|
|
@@ -30,248 +31,248 @@ Seamlessly extend your local DeepSeek Harness to mobile phones, tablets, public
|
|
|
30
31
|
|
|
31
32
|
---
|
|
32
33
|
|
|
33
|
-
##
|
|
34
|
+
## 开发路线图
|
|
34
35
|
|
|
35
|
-
|
|
|
36
|
-
|
|
37
|
-
|
|
|
38
|
-
|
|
|
39
|
-
| **QQ Bot** | QQ
|
|
40
|
-
|
|
|
41
|
-
| **
|
|
42
|
-
| **
|
|
36
|
+
| 目标 | 说明 | 状态 |
|
|
37
|
+
|------|------|------|
|
|
38
|
+
| **平台抽象层** | 平台无关的核心(会话/审批/命令/digest)跨 IM 渠道复用 | ✅ **已完成**(v2.0.0) |
|
|
39
|
+
| **微信** | 在微信里直接与你的 Agent 对话 | ✅ 已支持(多工作区 / 会话持久化 / 媒体 / 审批) |
|
|
40
|
+
| **QQ Bot** | 接入 QQ 机器人,群聊/私聊唤起 Agent | ✅ **已完成**(v2.1.0)— Markdown / 按钮 / 富媒体 |
|
|
41
|
+
| **飞书** | 飞书消息/机器人集成,办公场景直接调用 | 规划中 |
|
|
42
|
+
| **Telegram** | 适合自托管与海外的 IM 渠道 | 规划中 |
|
|
43
|
+
| **OpenClaw** | 与 OpenClaw 生态打通 | 规划中 |
|
|
43
44
|
|
|
44
45
|
---
|
|
45
46
|
|
|
46
|
-
##
|
|
47
|
+
## 环境要求
|
|
47
48
|
|
|
48
|
-
|
|
49
|
+
安装插件前,请先确保:
|
|
49
50
|
|
|
50
|
-
1. **Node.js ≥ 22** (DSH
|
|
51
|
-
2. **dsh CLI
|
|
51
|
+
1. **Node.js ≥ 22** (DSH 要求 `^22.19.0` 或 `≥ 24.0.0`)
|
|
52
|
+
2. **dsh CLI 可用** — 能在终端直接运行 `dsh` 命令
|
|
52
53
|
|
|
53
54
|
```bash
|
|
54
|
-
#
|
|
55
|
-
node -v #
|
|
55
|
+
# 检查 Node 版本
|
|
56
|
+
node -v # 应显示 v22.19+ 或 v24+
|
|
56
57
|
|
|
57
|
-
#
|
|
58
|
+
# 检查 dsh 是否可用
|
|
58
59
|
dsh --version
|
|
59
60
|
```
|
|
60
61
|
|
|
61
|
-
|
|
62
|
+
如果 `dsh` 命令提示"无法识别/找不到",先安装 DSH:
|
|
62
63
|
|
|
63
64
|
```bash
|
|
64
65
|
npm install -g @deepseek-ai/dsh
|
|
65
66
|
```
|
|
66
67
|
|
|
67
|
-
>
|
|
68
|
+
> 若没有全局安装的权限,也可以用 `npx` 方式:
|
|
68
69
|
> ```bash
|
|
69
70
|
> npx --yes @deepseek-ai/dsh plugin --profile web add @wenbin_wb/dsh-bridge
|
|
70
71
|
> ```
|
|
71
72
|
|
|
72
73
|
---
|
|
73
74
|
|
|
74
|
-
##
|
|
75
|
+
## 安装
|
|
75
76
|
|
|
76
|
-
###
|
|
77
|
+
### 从 npm 安装(推荐)
|
|
77
78
|
|
|
78
79
|
```bash
|
|
79
|
-
#
|
|
80
|
+
# 安装最新版
|
|
80
81
|
dsh plugin --profile web add @wenbin_wb/dsh-bridge
|
|
81
82
|
|
|
82
|
-
#
|
|
83
|
-
dsh plugin --profile web add @wenbin_wb/dsh-bridge@2.2.
|
|
83
|
+
# 或指定版本(如 2.2.6)
|
|
84
|
+
dsh plugin --profile web add @wenbin_wb/dsh-bridge@2.2.6
|
|
84
85
|
```
|
|
85
86
|
|
|
86
|
-
> 💡
|
|
87
|
+
> 💡 **没有全局安装权限?** 使用 `npx` 方式:
|
|
87
88
|
> ```bash
|
|
88
89
|
> npx --yes @deepseek-ai/dsh plugin --profile web add @wenbin_wb/dsh-bridge
|
|
89
90
|
> ```
|
|
90
91
|
|
|
91
|
-
###
|
|
92
|
+
### 从源码安装
|
|
92
93
|
|
|
93
94
|
```bash
|
|
94
95
|
git clone https://github.com/wenbin-wb/dsh-bridge.git
|
|
95
96
|
dsh plugin --profile web add ./dsh-bridge
|
|
96
97
|
```
|
|
97
98
|
|
|
98
|
-
|
|
99
|
+
安装完成后重启 DSH,在设置页找到「远程访问」即可使用。
|
|
99
100
|
|
|
100
|
-
###
|
|
101
|
+
### 升级到最新版
|
|
101
102
|
|
|
102
103
|
```bash
|
|
103
|
-
#
|
|
104
|
-
dsh plugin --profile web add @wenbin_wb/dsh-bridge@latest
|
|
104
|
+
# 方式一:在设置页「远程访问」中点击「🚀 一键升级到 vX.X.X」(推荐,全自动)
|
|
105
105
|
|
|
106
|
-
#
|
|
106
|
+
# 方式二:终端强制安装最新版
|
|
107
|
+
dsh plugin --profile web add @wenbin_wb/dsh-bridge@latest
|
|
107
108
|
```
|
|
108
109
|
|
|
109
|
-
>
|
|
110
|
+
> **注意**:`update --latest` 可能因已安装依赖的版本约束而无法升级到最新版。用上面的 `add @latest` 命令即可强制安装最新版(无需知道具体版本号)。
|
|
110
111
|
|
|
111
|
-
####
|
|
112
|
+
#### 升级后仍是旧版本?(pnpm 11 新版本过滤)
|
|
112
113
|
|
|
113
|
-
|
|
114
|
+
如果你刚发布后立即升级,`add @latest` 可能仍然装到旧版本。这是 **pnpm 11 的供应链安全机制 `minimumReleaseAge`**(默认过滤发布不足 24 小时的新版本)导致的,不是插件问题。
|
|
114
115
|
|
|
115
|
-
|
|
116
|
+
**解决方法**(任选其一):
|
|
116
117
|
|
|
117
|
-
1.
|
|
118
|
-
2.
|
|
119
|
-
3.
|
|
118
|
+
1. **直接在 DSH Web 设置页的「远程访问」点击「一键升级」**(自动带具体版本号安装,即刻生效)
|
|
119
|
+
2. **在 profile 的 `pnpm-workspace.yaml` 添加 `minimumReleaseAge: 0`**,然后重新 `pnpm install`(一劳永逸)
|
|
120
|
+
3. **等待 24 小时**:发布满 1 天后保护自动解除
|
|
120
121
|
|
|
121
|
-
|
|
122
|
+
升级完成后重启 DSH,并在浏览器**硬刷新**(Windows: `Ctrl+Shift+R`,macOS: `Cmd+Shift+R`)清除缓存,然后确认设置页显示最新版本号。
|
|
122
123
|
|
|
123
124
|
---
|
|
124
125
|
|
|
125
|
-
##
|
|
126
|
+
## 使用
|
|
126
127
|
|
|
127
|
-
###
|
|
128
|
+
### 局域网访问
|
|
128
129
|
|
|
129
|
-
|
|
130
|
+
插件启动后自动开启,无需任何配置。打开设置页「远程访问」,用手机扫描二维码即可访问。
|
|
130
131
|
|
|
131
|
-

|
|
132
133
|
|
|
133
|
-
### Cloudflare
|
|
134
|
+
### Cloudflare 隧道
|
|
134
135
|
|
|
135
|
-
1.
|
|
136
|
-
2.
|
|
137
|
-
3.
|
|
138
|
-
4. URL
|
|
136
|
+
1. 点击「Cloudflare 隧道」卡片中的「开启」按钮
|
|
137
|
+
2. 首次使用会自动从 GitHub 下载 cloudflared(约 30MB)
|
|
138
|
+
3. 下载完成后自动启动,几秒内显示公网 URL 和二维码
|
|
139
|
+
4. 每次重启后 URL 会变化;点「重置链接」可主动获取新 URL
|
|
139
140
|
|
|
140
|
-
###
|
|
141
|
+
### 自建隧道
|
|
141
142
|
|
|
142
|
-
|
|
143
|
+
需要一台有公网 IP 的服务器。详细搭建步骤见 [自建隧道教程](docs/custom-tunnel.md)。
|
|
143
144
|
|
|
144
|
-
1.
|
|
145
|
-
2.
|
|
146
|
-
3.
|
|
145
|
+
1. 按教程在服务器上部署隧道服务端
|
|
146
|
+
2. 在「自建隧道」卡片中填写 WebSocket 地址(`wss://...`)和访问令牌
|
|
147
|
+
3. 点「保存配置」后点「开启」
|
|
147
148
|
|
|
148
|
-
|
|
149
|
+
配置自动持久化,重启后无需重新填写。
|
|
149
150
|
|
|
150
|
-
###
|
|
151
|
+
### 微信 Bot(ClawBot / iLink)
|
|
151
152
|
|
|
152
|
-
|
|
153
|
+
基于腾讯官方开放的微信 ClawBot 插件功能(底层 iLink Bot API),扫码登录微信个人号后,即可在微信里直接与你的 DeepSeek Harness agent 对话、控制和审批,全程走腾讯官方服务器,无需公网与隧道。
|
|
153
154
|
|
|
154
|
-

|
|
155
156
|
|
|
156
|
-
|
|
157
|
+
**功能亮点**
|
|
157
158
|
|
|
158
|
-
- 🗂️
|
|
159
|
-
- 💾
|
|
160
|
-
- 🏷️
|
|
161
|
-
- 🖼️
|
|
162
|
-
- 📝
|
|
163
|
-
- 🔔
|
|
159
|
+
- 🗂️ **多工作区**:`/workspaces` 查看工作区,`@N` 或 `@路径` 指定项目目录新建会话
|
|
160
|
+
- 💾 **会话持久化**:重启 DSH 后会话不丢失,直接续聊
|
|
161
|
+
- 🏷️ **会话标题**:`/sessions` 按工作区分组、显示每个会话的标题,一眼可辨
|
|
162
|
+
- 🖼️ **媒体收发**:支持图片/文件/语音(自动转文字)双向传输
|
|
163
|
+
- 📝 **审批问答**:敏感操作在微信里审批,超时自动拒绝
|
|
164
|
+
- 🔔 **状态推送**:任务进行中心跳进度 + "正在输入"指示,长回复自动分条
|
|
164
165
|
|
|
165
|
-
|
|
166
|
+
**使用步骤**
|
|
166
167
|
|
|
167
|
-
1.
|
|
168
|
-
2.
|
|
169
|
-
3.
|
|
170
|
-
4.
|
|
168
|
+
1. 打开设置页「远程访问」→「IM 机器人」→ 选中「微信」
|
|
169
|
+
2. 点「扫码登录」,用微信扫二维码并按提示确认
|
|
170
|
+
3. 登录成功后,**向该微信 Bot 发送第一条消息即自动完成白名单授权**(一步到位)
|
|
171
|
+
4. 之后就可以在微信里下命令了
|
|
171
172
|
|
|
172
|
-
|
|
173
|
+
**微信里的命令**(完整说明见 [微信 Bot 使用说明](docs/wechat-usage.md))
|
|
173
174
|
|
|
174
|
-
|
|
|
175
|
-
|
|
176
|
-
| *(
|
|
177
|
-
| `/sessions
|
|
178
|
-
| `/use N
|
|
179
|
-
| `/workspaces` |
|
|
180
|
-
| `/new
|
|
181
|
-
| `/new
|
|
182
|
-
| `/stop` |
|
|
183
|
-
| `/end` |
|
|
184
|
-
| `/status` |
|
|
185
|
-
| `/yes` `/no
|
|
186
|
-
| `/start` |
|
|
187
|
-
| `/help` |
|
|
175
|
+
| 命令 | 说明 |
|
|
176
|
+
|------|------|
|
|
177
|
+
| *(普通文本)* | 发给当前活动 agent |
|
|
178
|
+
| `/sessions`(或 `/list`) | 列出会话(按工作区分组,带标题) |
|
|
179
|
+
| `/use N`(或 `/resume N`) | 切换到会话 N |
|
|
180
|
+
| `/workspaces` | 列出可用工作区 |
|
|
181
|
+
| `/new <提示词>` | 新建会话并开始(当前工作区) |
|
|
182
|
+
| `/new <提示词> @N`(或 `@路径`) | 在指定工作区新建会话 |
|
|
183
|
+
| `/stop` | 停止当前任务 |
|
|
184
|
+
| `/end` | 结束当前会话 |
|
|
185
|
+
| `/status` | 查看 agent 状态与会话摘要 |
|
|
186
|
+
| `/yes` `/no`(或 `1`/`2`) | 回应权限审批请求 |
|
|
187
|
+
| `/start` | 首次扫码后自动开始一个会话 |
|
|
188
|
+
| `/help` | 查看全部命令 |
|
|
188
189
|
|
|
189
|
-
|
|
190
|
+
**安全说明**
|
|
190
191
|
|
|
191
|
-
-
|
|
192
|
-
-
|
|
193
|
-
-
|
|
194
|
-
-
|
|
192
|
+
- 强制白名单:仅白名单内的微信用户能驱动 agent,其他人发的消息会被忽略、绝不喂给模型
|
|
193
|
+
- 审批默认拒绝:权限请求在规定时间(默认 10 分钟)内未回复 `/yes` 则自动拒绝
|
|
194
|
+
- 凭证存于 DSH 凭证服务,不落配置明文
|
|
195
|
+
- 同一微信账号同一时间只允许一个 Bot 轮询(iLink 独占锁);若同时使用 hermes-agent / OpenClaw 会互相 403。**请使用专用微信账号**承载 Bot
|
|
195
196
|
|
|
196
|
-
>
|
|
197
|
+
> 声明:iLink 为腾讯官方开放通道,仍需遵守《微信 ClawBot 功能使用条款》,腾讯保留内容过滤和限速的权利。不建议用于核心业务。
|
|
197
198
|
|
|
198
199
|
---
|
|
199
200
|
|
|
200
|
-
|
|
201
|
+
### QQ Bot(OpenAPI v2)
|
|
201
202
|
|
|
202
|
-
|
|
203
|
+
接入 QQ 官方机器人,支持单聊/群聊(群聊需 @机器人)、流式输出、Markdown 渲染、消息按钮、富媒体消息(图片/文件)。走腾讯官方 QQ Bot OpenAPI v2,WebSocket 实时推送,Token 自动刷新,断线自动重连。
|
|
203
204
|
|
|
204
|
-

|
|
205
206
|
|
|
206
|
-

|
|
207
208
|
|
|
208
|
-
|
|
209
|
+
**功能亮点**
|
|
209
210
|
|
|
210
|
-
- 💬
|
|
211
|
-
- 📝
|
|
212
|
-
- 🎯
|
|
213
|
-
- 🖼️
|
|
214
|
-
- 🔄
|
|
215
|
-
- ✅
|
|
211
|
+
- 💬 **单聊 + 群聊**:私聊直接对话,群聊 @机器人 触发(首次 @自动授权该群)
|
|
212
|
+
- 📝 **流式 Markdown**:实时流式输出,代码高亮、表格、列表完整渲染
|
|
213
|
+
- 🎯 **消息按钮**:/end 等命令触发快捷按钮(新建会话/列表/帮助),需最新版 QQ 客户端
|
|
214
|
+
- 🖼️ **富媒体**:图片/文件双向传输
|
|
215
|
+
- 🔄 **会话管理**:多会话切换、持久化、按工作区分组
|
|
216
|
+
- ✅ **自动授权**:单聊首次发消息、群聊首次 @机器人 自动加白名单
|
|
216
217
|
|
|
217
|
-
|
|
218
|
+
**使用步骤**
|
|
218
219
|
|
|
219
|
-
1.
|
|
220
|
-
2.
|
|
221
|
-
3.
|
|
222
|
-
4.
|
|
223
|
-
5.
|
|
220
|
+
1. 前往 [QQ 开放平台](https://q.qq.com) 创建机器人应用,获取 AppID 和 ClientSecret
|
|
221
|
+
2. 打开设置页「远程访问」→「IM 机器人」→ 选中「QQ」
|
|
222
|
+
3. 填入 AppID 和 ClientSecret,点「保存配置」后自动连接
|
|
223
|
+
4. **单聊**:添加机器人好友,发送第一条消息自动完成授权
|
|
224
|
+
5. **群聊**:将机器人拉入群,@机器人 发送消息(首次 @自动授权该群)
|
|
224
225
|
|
|
225
|
-
**
|
|
226
|
+
**QQ 里的命令**(完整说明见 [QQ Bot 使用说明](docs/qq-usage.md))
|
|
226
227
|
|
|
227
|
-
|
|
|
228
|
-
|
|
229
|
-
| *(
|
|
230
|
-
| `/new
|
|
231
|
-
| `/sessions
|
|
232
|
-
| `/use N
|
|
233
|
-
| `/end` |
|
|
234
|
-
| `/stop` |
|
|
235
|
-
| `/status` |
|
|
236
|
-
| `/workspaces` |
|
|
237
|
-
| `/help` |
|
|
228
|
+
| 命令 | 说明 |
|
|
229
|
+
|------|------|
|
|
230
|
+
| *(普通文本)* | 发给当前活动 agent |
|
|
231
|
+
| `/new <提示词>` | 新建会话并开始 |
|
|
232
|
+
| `/sessions`(或 `/list`) | 列出会话(按工作区分组) |
|
|
233
|
+
| `/use N`(或 `/resume N`) | 切换到/恢复会话 N |
|
|
234
|
+
| `/end` | 结束当前会话(触发快捷按钮) |
|
|
235
|
+
| `/stop` | 停止当前任务 |
|
|
236
|
+
| `/status` | 查看 agent 状态 |
|
|
237
|
+
| `/workspaces` | 列出可用工作区 |
|
|
238
|
+
| `/help` | 查看全部命令 |
|
|
238
239
|
|
|
239
|
-
|
|
240
|
+
**重要提示**
|
|
240
241
|
|
|
241
|
-
-
|
|
242
|
-
- API
|
|
243
|
-
-
|
|
242
|
+
- **自定义菜单 / 指令面板 / 消息按钮需要最新版 QQ 客户端**(2026-08-12 新功能,手机版优先支持)
|
|
243
|
+
- API 配置成功但客户端不显示是正常现象——更新 QQ 到最新版再试,或等官方灰度全量开放
|
|
244
|
+
- 纯文字命令(如 `/new` `/sessions` `/help`)在任何版本都完全可用
|
|
244
245
|
|
|
245
246
|
---
|
|
246
247
|
|
|
247
|
-
##
|
|
248
|
+
## 可选配置
|
|
248
249
|
|
|
249
|
-
|
|
250
|
+
插件开箱即用,无需配置。如需修改代理端口,在 cordis.yml 中添加:
|
|
250
251
|
|
|
251
252
|
```yaml
|
|
252
253
|
- name: '@wenbin_wb/dsh-bridge'
|
|
253
254
|
config:
|
|
254
|
-
port: 3082 #
|
|
255
|
+
port: 3082 # 默认 3082
|
|
255
256
|
```
|
|
256
257
|
|
|
257
258
|
---
|
|
258
259
|
|
|
259
|
-
##
|
|
260
|
+
## 开发
|
|
260
261
|
|
|
261
262
|
```bash
|
|
262
263
|
git clone https://github.com/wenbin-wb/dsh-bridge.git
|
|
263
264
|
cd dsh-bridge
|
|
264
265
|
npm install
|
|
265
266
|
|
|
266
|
-
#
|
|
267
|
+
# 修改 client/index.js 后重新构建
|
|
267
268
|
npm run build:client
|
|
268
269
|
|
|
269
|
-
#
|
|
270
|
+
# 安装到 web profile 并重启 DSH
|
|
270
271
|
dsh plugin --profile web add .
|
|
271
272
|
```
|
|
272
273
|
|
|
273
274
|
---
|
|
274
275
|
|
|
275
|
-
##
|
|
276
|
+
## 许可证
|
|
276
277
|
|
|
277
278
|
MIT © [wenbin-wb](https://github.com/wenbin-wb)
|