dsh-dock 0.19.0 → 0.21.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.md +21 -20
- package/client.js +1426 -931
- package/features/animation/view.jsx +26 -12
- package/features/balance/view.js +8 -6
- package/features/mobile/host.js +18 -311
- package/features/mobile/view.js +295 -480
- package/features/mobile-relay/host.js +3 -4
- package/features/mobile-relay/view.jsx +1 -2
- package/features/notify/host.js +52 -16
- package/features/notify/view.jsx +884 -377
- package/features/runstate/host.js +1 -11
- package/features/runstate/view.jsx +32 -15
- package/features/tokenlog/view.jsx +8 -3
- package/index.js +1 -1
- package/package.json +2 -2
- package/screenshots/dock-notify.png +0 -0
- package/src/client.jsx +36 -6
- package/src/host-core.js +8 -1
- package/src/shared.js +86 -0
- package/src/task-track.js +87 -0
package/README.md
CHANGED
|
@@ -21,14 +21,14 @@
|
|
|
21
21
|
| **模型提供商** | 管理自定义模型 Provider 本身:新增 / 编辑 / 删除(OpenAI 兼容、Anthropic Messages 等)、API Key 写入本机凭据库、拉取上游 `{baseURL}/models` 列表;排版同官方模型管理页。**独立功能,可单独停用**——停用后写配置与出站拉取的路由一并关闭 |
|
|
22
22
|
| **模型余额** | 展示所有模型 Provider 账户余额(5 分钟自动刷新);内置「DeepSeek 账号」官网余额(走宿主登录态,充值/赠送分列,不是 API Key 余额接口) |
|
|
23
23
|
| **任务动画** | 19 种任务运行动画(含星际远征、星云潮汐、曲速航道、量子雷达、星座网络、深海脉动、神经电路等),速度随任务活动联动,配置全部持久化 |
|
|
24
|
-
| **任务通知** | 任务完成 / 异常 / 需确认 /
|
|
25
|
-
| **运行状态** | 任务运行状态一览:进行中任务的阶段 / 耗时 / 回合 / 步骤 / 工具 / Token
|
|
24
|
+
| **任务通知** | 任务完成 / 异常 / 需确认 / 需回答 / 卡住通知(设置页支持「服务端配置 / 本机配置」总开关 + 事件×渠道勾选矩阵):页内卡片(总开关 + 完成/异常/需确认/卡住各自独立开关 + 卡片口径简洁/适中/详细三挡;卡住卡写明主/子任务、停滞时长与最后动作,恢复自动收、主任务在等子任务时不误报;**停在原地等人(等批准 / 等回答)一律不算卡住**,等回答单独弹「任务需要你回答」卡)、6 种提示音、浏览器系统通知、语音播报(**服务端总开关 + 本机开关两层**:服务端管全实例、本机开关存当前浏览器,两者都开才播报;完成/停止/需授权/需回答/卡住 × 简洁/适中/详细三挡 × 音色可选)、钉钉/飞书群机器人推送(宿主直发,浏览器关着也能推,消息口径可调);与动画互相独立、各自启停 |
|
|
25
|
+
| **运行状态** | 任务运行状态一览:进行中任务的阶段 / 耗时 / 回合 / 步骤 / 工具 / Token、等人介入提醒(等批准的工具与说明 / 等回答的问题,分别打「等待确认」「等待回答」标签)与最近完成记录(只读,与动画/通知共用同一份宿主侧追踪) |
|
|
26
26
|
| **语音朗读** | 把会话回复读出来(浏览器 Web Speech API 语音合成,不消耗 token、不经过服务器):每条已完成回复下方一个 🔊 喇叭——点一下读这条、播放中再点暂停、继续就地续读(不重头),另有重新朗读/停止;也可开「自动朗读」,任务结束时直接读最后一条回复。音色/语速/音调/音量可调,Markdown 自动清洗(代码块、表格、思考过程不念),支持「只读前 N 句 / 字数上限」 |
|
|
27
27
|
|
|
28
28
|
| **趣味游戏** | 任务等待时消磨时间的十款小游戏(五子棋、中国象棋、俄罗斯方块、推箱子、贪吃蛇、打砖块、极速赛车、坦克大战、星际躲避、反应堆解谜);浮动窗口可拖动/缩放/最小化,不遮挡会话,靠屏幕侧边隐藏 |
|
|
29
29
|
| **图片理解代理** | 图片识别等(visionproxy);原图候选默认折叠展示,图片能力以你的声明为准 |
|
|
30
|
-
| **远程访问** | 账号密码登录的远程入口:网关监听 `0.0.0.0` 独立端口,手机/平板/局域网设备访问同一实例,会话与任务进度实时一致;主实例保持仅监听 `127.0.0.1`,结构上不存在绕开登录的直连路径;LAN 非安全上下文自动补 crypto.randomUUID
|
|
31
|
-
| **手机适配** |
|
|
30
|
+
| **远程访问** | 账号密码登录的远程入口:网关监听 `0.0.0.0` 独立端口,手机/平板/局域网设备访问同一实例,会话与任务进度实时一致;主实例保持仅监听 `127.0.0.1`,结构上不存在绕开登录的直连路径;LAN 非安全上下文自动补 crypto.randomUUID。 |
|
|
31
|
+
| **手机适配** | 手机/窄屏体验优化(**默认关闭,需要时在功能坞开启**;关闭后零残留、不干扰原生排版):输入框 16px 防 iOS 聚焦整页缩放、原生侧栏开关触控热区扩到 44×44、代码块横向滚动、会话输入行的余额/用量 chip 收起;旧版 DSH(<768 仍是「左导航 + 右内容」两栏弹层 / 静态图标轨道)自动兜底成单列 / 浮层抽屉。样式与行为在挂载时注入、关闭即移除,不改 `index.html` 与 `viewport` meta。 |
|
|
32
32
|
| **心跳监视 / 主题信息** | 示例功能(纯 Client) |
|
|
33
33
|
|
|
34
34
|
**会话区随身小控件**:启用后,在会话输入区工具行(模型选择器左侧)显示——
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
|
|
41
41
|
## 界面
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
「功能坞」现在是**侧栏一级面板图标**(与「插件」「服务台」并列):点击打开功能坞面板页。可用侧栏「更多」菜单里的 Pin 把它固定在侧栏顶部,或取消固定收进「更多」——位置随你。会话输入区的余额/用量小控件点击仍会弹出浮层面板。
|
|
44
44
|
|
|
45
45
|

|
|
46
46
|
|
|
@@ -121,7 +121,7 @@ dsh plugin --profile web add dsh-dock # 换回 npm 版
|
|
|
121
121
|
每个功能有独立开关,两个入口:
|
|
122
122
|
|
|
123
123
|
- **弹窗页脚**:进入某个功能页,页脚显示「已启用(点击停用)/ 已停用(点击启用)」
|
|
124
|
-
-
|
|
124
|
+
- **设置页**:账号菜单 → 设置 → 功能坞,每个模块卡片上有开关
|
|
125
125
|
|
|
126
126
|
停用某功能后,其菜单项、首页卡片、会话区小控件一并隐藏。
|
|
127
127
|
|
|
@@ -182,19 +182,23 @@ dsh plugin --profile web add dsh-dock # 换回 npm 版
|
|
|
182
182
|
- 桌面伙伴:**CSS 3D 立体**的具象人物坐在紧凑双工位前,任务活动越密集动作越快;**流级实时同步任务阶段**——模型思考时微抬头、单手托下巴,正文输出/写代码时低头键入右侧工位,查资料时转头扫视左侧屏幕;整卡可拖到屏幕任意位置(位置持久化),右下角手柄 / 面板滑块可缩放大小(85%~220%,自动保存)
|
|
183
183
|
- 星际远征 / 星云潮汐 / 曲速航道 / 量子雷达 / 星座网络 / 数据萤火 / 深海脉动 / 棱镜光谱 / 神经电路 / 引力涟漪 / 灵感天灯:从星系远征到电路脉冲的十一种氛围场景(星际远征完成时货运舰会归航停泊在输入框上方)
|
|
184
184
|
2. 任务结束动效自动消失,完成瞬间一缕流光掠过;功能坞面板打开时环境动效自动隐藏避免重叠
|
|
185
|
-
3. 任务运行状态(进行中 /
|
|
185
|
+
3. 任务运行状态(进行中 / 等人介入(等批准或等回答) / 最近完成)见左侧「运行状态」菜单,结束与需确认提醒见「任务通知」
|
|
186
186
|
4. 配置(动画开关 / 动画模式 / 桌面伙伴大小)经宿主 settings 持久化,重启 dsh 后自动恢复
|
|
187
187
|
|
|
188
188
|
**任务通知**(从「任务动画」拆出,独立菜单项与开关)
|
|
189
189
|
|
|
190
|
-

|
|
191
191
|
|
|
192
192
|
1. 打开功能坞 → 任务通知:
|
|
193
|
-
-
|
|
194
|
-
-
|
|
195
|
-
-
|
|
196
|
-
|
|
197
|
-
|
|
193
|
+
- **配置来源**(顶部总开关):**服务端配置**(默认,存宿主 `settings`,所有浏览器/设备共享)或**本机配置**(只存当前浏览器 `localStorage`,自己一套开关、不影响别人;可一键从服务端复制)。群机器人推送与语音服务端总开关始终由服务端执行/控制,本机模式下不可修改。
|
|
194
|
+
- **按事件提醒**(默认页签):事件 × 渠道矩阵——纵向是**完成 / 异常 / 需确认·需回答 / 卡住**,横向是**页内卡片 / 提示音 / 系统通知 / 语音播报 / 钉钉 / 飞书**;勾选即「该事件用该渠道提醒」。「—」表示该渠道不支持此事件(提示音与系统通知没有卡住,群机器人只在任务结束推送)。每个渠道的总开关、正文口径与详细参数在「按渠道设置」页签。
|
|
195
|
+
- **按渠道设置**:
|
|
196
|
+
- **页内卡片**:总开关 + 正文口径三挡(简洁 / 适中 / 详细);结束卡常驻到「看过」、点卡直达会话、≥3 张自动叠放收纳。
|
|
197
|
+
- **提示音**:总开关 + 6 种 WebAudio 合成音效可选、可单独试听。
|
|
198
|
+
- **系统通知**:总开关 + 浏览器授权状态;仅页面在后台时推送。
|
|
199
|
+
- **语音播报**:服务端总开关 + 本机开关(两者都开才播报)+ 播报口径三挡 + 语速/音量/音色/语言/试听;播报事件在上方矩阵的「语音播报」列勾选。
|
|
200
|
+
- **群机器人**:钉钉 / 飞书推送(任务结束由宿主直发,浏览器关着也能推);各自可填 Webhook、发送测试消息,并选择**消息口径**(简洁 / 适中 / 详细);推送事件在「按事件提醒」的钉钉/飞书列勾选(仅完成 / 异常)。
|
|
201
|
+
- **语音播报细节**(可选,默认关):任务**完成 / 停止 / 需要授权 / 需要回答 / 卡住**时用浏览器语音(Web Speech API)说一句话——口径**三挡**:**简洁**=一句话(「任务完成」;卡住则报「主任务(或子任务)·标题 卡住了」,一听就知道卡在哪),**适中**=点名任务(结束带原因与耗时、需授权带要批准的场景、卡住带停滞时长),**详细**=全量(结束带回合统计与回复摘要、需授权带工具名、需回答带问题正文、卡住带最后动作);可调语速/音量/音色/语言并试听(音色下拉与【语音朗读】同款:读本机音色表、中文在前分组,换设备选中的音色不存在时自动按语言回落)。与【语音朗读】共用本机声音但两套开关互不依赖;播报是打断式的(正在朗读正文时任务信先来);「卡住」= 编程阶段长时间没有任何动静时报一次,**主任务与子任务会话分别判定、分别播报**(会话头 `origin`/`delegationDepth` 判归属;恢复后再卡可再报;**等批准、等回答的会话都不算卡住**——前者由「需要授权」负责、后者由「需要回答」负责;主任务有子任务在跑时不算卡住,交给子任务判定;**有在飞的工具调用、正在压缩上下文也不算卡住**,那是在干活,判据统一在 `src/shared.js` 的 `taskStalled`,两条通知路径共用一份)
|
|
198
202
|
2. 通知与动画**互不依赖**:停用「任务动画」后通知照常工作,反之亦然(动画 / 通知 / 运行状态共用同一份宿主侧任务追踪,只有一份开销)
|
|
199
203
|
3. 群机器人推送的事件筛选跟随「完成 / 异常通知」开关;通知配置经宿主 settings 持久化,重启后恢复;升级会自动把旧版存在「任务动画」里的通知配置迁移过来
|
|
200
204
|
|
|
@@ -204,10 +208,10 @@ dsh plugin --profile web add dsh-dock # 换回 npm 版
|
|
|
204
208
|
|
|
205
209
|
1. 打开功能坞 → 运行状态:
|
|
206
210
|
- **进行中任务**:任务标题 + 阶段标签(思考中 / 输出中 / 编写代码 / 查资料)、模型(Provider)、已运行时长、回合 / 步骤 / 工具次数、输入↧输出↥ Token
|
|
207
|
-
-
|
|
211
|
+
- **等人介入**:顶部横幅提示「N 项等你介入」,并分别点名「M 项等批准、K 项等你回答」;对应任务打「等待确认」标签(工具等你批准,任务停在原地)或「等待回答」标签(会话提问等你选答案),并列出等待的工具与说明 / 问题与标题
|
|
208
212
|
- **最近完成**:最多 10 条,含结束原因(完成 / 出错 / 已中止 / 受阻 / 达输出上限 / 中断)、耗时、Token 与结束时间
|
|
209
213
|
2. 面板打开时自动刷新(有任务 2 秒、空闲 8 秒、出错 15 秒),也可手动「刷新」;本模块没有常驻浮层,关掉面板即零开销
|
|
210
|
-
3. 本页只读、**不写任何配置**:数据来自宿主侧会话级任务追踪(与动画 / 通知共用一份);动效在「任务动画」,结束 /
|
|
214
|
+
3. 本页只读、**不写任何配置**:数据来自宿主侧会话级任务追踪(与动画 / 通知共用一份);动效在「任务动画」,结束 / 需确认 / 需回答提醒在「任务通知」
|
|
211
215
|
|
|
212
216
|
**语音朗读**
|
|
213
217
|
|
|
@@ -256,15 +260,12 @@ dsh plugin --profile web add dsh-dock # 换回 npm 版
|
|
|
256
260
|
- **重启自动拉起**:开启状态与端口会被记住,重启 `dsh web` 后插件加载时网关按上次端口自动重新监听,不必进面板再点一次;账号密码同样保持。历史升级中若账号等配置滞留在 `~/.dsh/settings.yaml.imported`(dsh 升级改名旧配置时官方导入 dsh-dock 段失败),下次启动会一次性自动恢复——现网已有改动的段不会被覆盖。
|
|
257
261
|
- **异地组网**:Tailscale/ZeroTier 等虚拟组网内直接用组网 IP 访问同一入口,效果与局域网相同。
|
|
258
262
|
- 旧版「服务器模式(0.0.0.0)」与「扫码令牌接力」已被此方案取代:前者把无认证的 DSH 裸露给局域网,后者双实例任务状态不同步。开启远程访问时会自动清理旧的 0.0.0.0 webserver 补丁行(提示重启后回到仅本机)。
|
|
259
|
-
2.
|
|
260
|
-
- **左上角汉堡菜单**:点「三条横线」展开左侧会话抽屉(不占页面空间,底部不再有常驻栏)。插件 / 设置 / 运行状态等入口本来就在抽屉里(原生侧栏),展开即可达;**任务等待你确认时汉堡右上角出现红色脉冲角标**(进行中为蓝色计数),一眼可见不用翻页。标题会为汉堡留出宽度(会话页头、插件页头、自动化任务页头都会内缩,标题与汉堡保持 8px 间隔),不会被压住。
|
|
263
|
+
2. **手机端接力体验(远程访问自带)**(页面排版/抽屉/设置弹层由【手机适配】模块负责,见上表):
|
|
261
264
|
- **PWA 添加到主屏幕**:网关自带 manifest 与图标(品牌渐变 + 白色气泡,零依赖生成),手机浏览器「添加到主屏幕」后像 App 一样全屏打开,无地址栏;未登录也能先装,打开后自然进登录页。
|
|
262
265
|
- **断线提示**:换网 / 锁屏久置导致连接中断时,页面顶部出现「连接已断开,正在重连…」胶囊,恢复后自动消失(连续 2 次探测失败才提示,不闪报)。
|
|
263
|
-
- **软键盘适配**:键盘弹出时汉堡菜单自动让位,不再挤占键盘上方空间。
|
|
264
|
-
- 会话入口统一在左上角汉堡菜单(底部 Tab 栏、左缘浮动抽屉把手与浮动侧栏按钮均已移除,避免占用/遮挡内容)。
|
|
265
266
|
- 面板「远程访问」页与首页总揽会显示当前**在线设备数**;登录页支持密码明文切换。
|
|
266
267
|
|
|
267
|
-
**不开「远程访问」的直连形态**:也可以不经网关、自行经 patch 层把主实例绑 `0.0.0.0` 直连(安全自担,浏览器表层没有登录认证)。这种形态下「远程访问」功能可以整个停用,dsh-dock
|
|
268
|
+
**不开「远程访问」的直连形态**:也可以不经网关、自行经 patch 层把主实例绑 `0.0.0.0` 直连(安全自担,浏览器表层没有登录认证)。这种形态下「远程访问」功能可以整个停用,dsh-dock 仍兜住与功能开关无关的一件事:**非回环浏览器的「预览版说明」自动确认**(dsh 对远程浏览器的确认不持久化,每次刷新都会重弹;插件级注入,回环地址不介入、保留原生的一次性持久确认)。
|
|
268
269
|
|
|
269
270
|
**趣味游戏**
|
|
270
271
|
|