dsh-multi-chat 0.4.1 → 0.4.2

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 (2) hide show
  1. package/README.md +18 -21
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -1,8 +1,8 @@
1
- # 🧱 DSH 多窗口墙 · Multi-Window Wall
1
+ # 💬 dsh-multi-chat —— 多对话,一屏驾驭
2
2
 
3
- > **一个浏览器,并排盯住你所有的 AI 任务。** 让 DSH 从「一次一个对话」变成「一屏全景驾驶舱」,还能用手机躺着看进度。
3
+ > **在 DeepSeek Harness 里同时开 N 个对话,并排盯住每一个 Agent 的实时进度,还能用手机躺着看。** 一个浏览器,从「一次一个对话」升级成「全景多对话驾驶舱」。
4
4
 
5
- 给 [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness) 官方 Web 界面装上一个**多窗口墙**:在一张网格里同时显示 N 个正在运行的 DSH 实例(每个实例独立跑一个任务),所有 Agent 的实时进度、对话、输出**一眼尽收**,不用在无数标签页/窗口之间切来切去。
5
+ 给 [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness) 官方 Web 界面装上一面**多窗口墙**:在一张网格里同时显示 N 个正在运行的 DSH 对话实例(每个实例独立跑一个任务),所有 Agent 的实时进度、对话、输出**一眼尽收**,不用在无数标签页/窗口之间切来切去。
6
6
 
7
7
  ## ✨ 它能做什么
8
8
 
@@ -10,11 +10,11 @@
10
10
  |------|------|
11
11
  | 📺 **多窗口墙** | 侧边栏一键进入,右侧对话区原位变成窗口网格,一个端口一格,并排看全部任务 |
12
12
  | 🔍 **自动发现** | 扫描端口区间自动发现正在运行的 DSH 实例,也可手动管理 |
13
- | ➕ **一键新建窗口** | 墙内直接启动全新 DSH 实例,凑成你的多任务矩阵 |
14
- | 📱 **手机访问** | 点「手机访问」自动起一个**带口令认证的局域网网关**,手机扫码/输入口令即可看进度 |
13
+ | ➕ **一键新建窗口** | 墙内直接启动全新 DSH 实例,凑成你的多对话矩阵 |
14
+ | 📱 **手机访问** | 点「手机访问」自动起一个**内置带口令认证的局域网网关**,手机打开 URL、输入口令即可看进度 |
15
15
  | 🛑 **窗口控制** | 单窗口放大、刷新、新标签页打开、关闭实例、列数切换(自动/1/2/3/4/6)|
16
16
 
17
- > **多任务 = 多端口。** 启动 N 个 `dsh web --port <n>`,每个实例独立跑一个任务;在任意一个实例里打开多窗口墙,即可并排看到全部。
17
+ > **多对话 = 多端口。** 启动 N 个 `dsh web --port <n>`,每个实例独立跑一个对话/任务;在任意一个实例里打开多窗口墙,即可并排看到全部。
18
18
 
19
19
  ## 🚀 30 秒上手
20
20
 
@@ -30,7 +30,7 @@ npx dsh-multi-chat start --ports 3080,3081,3082
30
30
 
31
31
  ## 为什么这样做
32
32
 
33
- - **不改动任何官方逻辑**:插件只注册两个**增量列表槽位**(`conversation.view` 视图环条目、`sidebar.footer.action` 侧边栏快捷入口)和只读 JSON 探活路由(`/multi/api/ports`、`/multi/api/status`、`/multi/api/stop`)。不替换任何既有槽位、不改写任何行、不触碰会话/代理/工具等核心逻辑。
33
+ - **不改动任何官方逻辑**:插件只注册两个**增量列表槽位**(`conversation.view` 视图环条目、`sidebar.footer.action` 侧边栏快捷入口)和五个只读 JSON 路由(`/multi/api/ports`、`/multi/api/status`、`/multi/api/stop`、`/multi/api/create`、`/multi/api/link`)。不替换任何既有槽位、不改写任何行、不触碰会话/代理/工具等核心逻辑。
34
34
  - **界面就是官方界面**:墙是官方视图环的一个视图,渲染在对话主面板内(不是弹层),主题、字号、图标、控件全部走官方 `--dsw-*` token 与官方 primitives(Button/Input/Menu/StateDot)。
35
35
  - **递归防护**:墙永远不嵌入自身端口;被嵌入页面带 `?multi-wall=embed` 标记,不注册任何墙界面,杜绝「墙中墙」无限递归。
36
36
  - **最小改动**:新增一个 client 插件包 + 一个 patch 行。
@@ -78,26 +78,23 @@ dsh plugin --profile web add <tarball> # 装进 profile
78
78
  3. 墙视图内:自动发现实例(自动排除自身端口)、列数切换(自动/1/2/3/4/6,默认横向铺满)、点标题放大、⟳ 单独刷新、↗ 新标签页打开、✕ 从视图移除、全部刷新、实时在线状态点。布局保存在 localStorage。
79
79
  4. 退出墙:点工具栏**右上角的「退出」按钮**,一键切回对话视图。
80
80
 
81
- ## 手机 / 远程访问(认证网关)
81
+ ## 手机 / 远程访问(内置认证网关)
82
82
 
83
- 官方 `dsh web` 出于安全**刻意禁止 `--host 0.0.0.0`**(会向网络暴露远程代码执行)。因此跨设备访问的正确姿势是:实例保持仅本机回环,在实例前挂一个**带令牌认证的网关**,由网关对外监听 `0.0.0.0`。
83
+ 官方 `dsh web` 出于安全**刻意禁止 `--host 0.0.0.0`**(会向网络暴露远程代码执行)。本插件内置了一个**带令牌认证的内联网关**:点工具栏「手机访问」按钮,它会**自动**为本实例启动一个网关(监听 `0.0.0.0`,反向代理到 `127.0.0.1:<本实例端口>`),并返回局域网 URL + 登录口令。
84
84
 
85
- ```bash
86
- # 一个实例 + 一个认证网关(手机在同一内网时打开 http://<局域网IP>:8443 登录)
87
- node scripts/gateway.mjs --target 127.0.0.1:3080 --listen 0.0.0.0:8443 --token <口令>
88
-
89
- # 加密:提供证书即走 HTTPS(跨公网必须,否则用 VPN)
90
- node scripts/gateway.mjs --target 127.0.0.1:3080 --listen 0.0.0.0:8443 --token <口令> --tls-cert cert.pem --tls-key key.pem
85
+ ```text
86
+ 点击「手机访问」→ 得到:
87
+ 手机在同一网络时可用:http://10.105.7.204:9477 口令:2efb23eade16
91
88
  ```
92
89
 
93
- 网关的安全模型:HMAC 签名的 HttpOnly/SameSite 会话 Cookie(默认 12h)、`Authorization: Bearer` 与 `?token=` 供脚本使用、按 IP 限流登录失败;所有代理请求把 Host/Origin 重写为回环目标,官方 `/api` 浏览器信任栅栏(DNS-rebinding 防线)因此判定为本地请求,无需重启加 `--trusted-host`;WebSocket 升级与 SSE 流原样透传。
90
+ 手机打开该 URL、输入口令即可进入完整 DSH 界面。网关的安全模型:
94
91
 
95
- `start-multi.ps1` 也能一键带网关启动:
92
+ - HMAC 签名的 HttpOnly/SameSite 会话 Cookie(默认 12h),`?token=` 供脚本快捷使用,按 IP 限流登录失败
93
+ - 所有代理请求把 Host/Origin 重写为回环目标,官方 `/api` 浏览器信任栅栏(DNS-rebinding 防线)判定为本地请求,无需重启加 `--trusted-host`
94
+ - WebSocket 升级与 SSE 流原样透传
95
+ - 目标端口撞上 Windows 排除段或已占用时,自动回退到 OS 分配的空闲端口
96
96
 
97
- ```powershell
98
- .\scripts\start-multi.ps1 -Ports "3080,3081" -Remote -Token "my-secret"
99
- # 或自签名加密:-TlsCert cert.pem -TlsKey key.pem
100
- ```
97
+ > 也有独立的 `scripts/gateway.mjs`(带可选 TLS)供进阶场景手动使用。
101
98
 
102
99
  ## 分发与安装
103
100
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-multi-chat",
3
- "version": "0.4.1",
3
+ "version": "0.4.2",
4
4
  "description": "DSH 多对话:在官方 DeepSeek Harness Web 界面里并排运行和监控多个对话实例(多窗口墙),并内置带口令认证的手机访问网关。npx dsh-multi-chat install|start|stop",
5
5
  "license": "MIT",
6
6
  "type": "module",