dsh-multi-chat 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/LICENSE +21 -0
- package/README.md +163 -0
- package/bin/dsh-multi-chat.mjs +417 -0
- package/package.json +45 -0
- package/patches/multi-wall.yml +10 -0
- package/plugin/dsh-client-ui-multi-wall/README.md +45 -0
- package/plugin/dsh-client-ui-multi-wall/lib/client.js +755 -0
- package/plugin/dsh-client-ui-multi-wall/lib/index.js +790 -0
- package/plugin/dsh-client-ui-multi-wall/lib/invariant.js +27 -0
- package/plugin/dsh-client-ui-multi-wall/lib/types/client/WallToggle.d.ts +10 -0
- package/plugin/dsh-client-ui-multi-wall/lib/types/client/WallView.d.ts +16 -0
- package/plugin/dsh-client-ui-multi-wall/lib/types/client/index.d.ts +39 -0
- package/plugin/dsh-client-ui-multi-wall/lib/types/client/locales.d.ts +94 -0
- package/plugin/dsh-client-ui-multi-wall/lib/types/client/store.d.ts +27 -0
- package/plugin/dsh-client-ui-multi-wall/lib/types/client/wall-injected.d.ts +53 -0
- package/plugin/dsh-client-ui-multi-wall/lib/types/index.d.ts +67 -0
- package/plugin/dsh-client-ui-multi-wall/lib/types/invariant.d.ts +17 -0
- package/plugin/dsh-client-ui-multi-wall/package.json +84 -0
- package/scripts/gateway-hidden.vbs +35 -0
- package/scripts/gateway-start.ps1 +21 -0
- package/scripts/gateway-stop.ps1 +34 -0
- package/scripts/gateway.mjs +511 -0
- package/scripts/install-plugin.ps1 +65 -0
- package/scripts/start-multi.ps1 +180 -0
- package/scripts/stop-multi.ps1 +42 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# @deepseek-ai/dsh-client-ui-multi-wall
|
|
2
|
+
|
|
3
|
+
多窗口墙(Multi-Window Wall):在官方 DSH Web 界面内显示所有正在运行的 DSH 实例。
|
|
4
|
+
|
|
5
|
+
- **作为官方「视图环」的一个视图**(`conversation.view` 列表槽位,纯增量):点击入口后,右侧对话区**原位替换**为多窗口墙——一个窗口对应一个端口(`127.0.0.1:<port>`),每个窗口就是原版 DSH Web UI(iframe 嵌入),所有任务的进度同时可见,无需切换任务栏标签。
|
|
6
|
+
- **侧边栏底部**新增「多窗口墙」快捷入口(`sidebar.footer.action` 列表槽位,纯增量),点击后跳到墙视图;对话区头部也会出现「多窗口墙」标签页,可直接点击切换。
|
|
7
|
+
- 支持自动发现(扫描端口区间)、**新建窗口(启动全新 DSH 实例)**、列数切换(自动/1/2/3/4/6,默认横向铺满)、单窗口放大、单独/全部刷新、新标签页打开、实时在线状态点。
|
|
8
|
+
- **退出**:工具栏右上角的 **✕ 退出**按钮,一键切回对话视图(等价于点击头部的「对话」标签页)。
|
|
9
|
+
- **手机/远程访问**:工具栏「手机访问」按钮会自动为本实例启动一个**带令牌认证的内联网关**(无需外部命令),返回局域网 URL + 登录口令;手机打开 URL、输入口令即可进入。
|
|
10
|
+
- **递归防护**:墙永远不会嵌入自身端口;被嵌入的页面携带 `?multi-wall=embed` 标记,不注册任何墙界面,从根上杜绝「墙中墙」。
|
|
11
|
+
- **可关闭自身实例**:当前实例也显示在墙上(便于监控),其「关闭实例」按钮同样可用——两次确认后终止本端口服务(页面会断开)。
|
|
12
|
+
|
|
13
|
+
## 不改动任何官方逻辑
|
|
14
|
+
|
|
15
|
+
本插件只做两件事:
|
|
16
|
+
|
|
17
|
+
1. **node half**:在 `webServer` 上注册五个只读 JSON 路由 `/multi/api/ports`(自动发现存活 DSH 实例,自动排除自身端口)、`/multi/api/status`(指定端口探活)、`/multi/api/stop`(关闭指定实例)、`/multi/api/create`(启动全新 DSH 实例,失败时回传子进程 stderr 等真实原因)、`/multi/api/link`(手机/远程访问链接)。
|
|
18
|
+
2. **browser half**:注册两个**增量列表槽位**(`conversation.view`、`sidebar.footer.action`),把墙作为官方视图环的一个视图渲染。
|
|
19
|
+
|
|
20
|
+
不替换任何既有槽位、不改写任何行(row)、不触碰会话/代理/工具等核心逻辑。墙视图激活时,通过一条纯 CSS `:has()` 规则隐藏对话区底部的输入框与统计条(`[data-composer-seat]`),把整列高度让给墙;切回对话视图后输入框自动恢复。退出按钮通过点击官方视图环的第一个标签页(对话,order 0)来切换,复用官方 `actions.setView` 通道,不直接读取对话 store。
|
|
21
|
+
|
|
22
|
+
## 配置(可选)
|
|
23
|
+
|
|
24
|
+
```yaml
|
|
25
|
+
# 覆盖自动发现区间或固定端口列表(默认扫描 3070–3110)
|
|
26
|
+
- id: ui-multi-wall
|
|
27
|
+
name: '@deepseek-ai/dsh-client-ui-multi-wall'
|
|
28
|
+
config:
|
|
29
|
+
scanFrom: 3070
|
|
30
|
+
scanTo: 3110
|
|
31
|
+
ports: [] # 设置后不再自动扫描
|
|
32
|
+
publicUrl: '' # 可选:固定对外网关地址(设置则 /multi/api/link 直接返回它)
|
|
33
|
+
gatewayPort: 0 # 内联网关端口;0(默认)= 实例端口 + 5000,撞段时自动回退 OS 分配
|
|
34
|
+
gatewayToken: '' # 内联网关登录口令;空(默认)= 每次随机生成
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
## Model Experience
|
|
38
|
+
|
|
39
|
+
本插件不向模型请求注入任何内容,不改变模型可见输入,无 token/KV-cache 影响。
|
|
40
|
+
|
|
41
|
+
## Known Limitations and Deferred Work
|
|
42
|
+
|
|
43
|
+
- 墙视图依赖各实例 `127.0.0.1:<port>` 可直接访问;若某实例绑定到其它 host,请在外部自行配置。
|
|
44
|
+
- 探活只检查 index 是否含 `__DSH_BOOT__` 标记;非 DSH 服务同端口会误报为「未发现」。
|
|
45
|
+
- 墙视图是会话作用域的视图环条目:需要至少一个活跃会话,视图区才会渲染墙。
|