dsh-web-traffic-light
Đã xác minhdsh-web-traffic-light · v0.1.1 · MIT · Giao diện web
Photorealistic traffic-light status widget for the DSH Web GUI, docked to the right edge: red = agent working, amber = waiting for you, green = idle/done.
Cài đặt
dsh plugin add dsh-web-traffic-light Xác nhận layer đã áp bằng dsh --profile default --dump-config — xem hướng dẫn cài plugin.
Mã nguồn
Phát hành lên npm mà không có repository công khai. Hãy kiểm tra nội dung package trước khi cài.
Thẻ
Tác giả
Readme
dsh-web-traffic-light
一个写给 DeepSeek Harness Web GUI 的写实风红绿灯状态挂件,贴在界面右缘中央。
一眼看清 agent 在干活、在等你,还是已经完事。
灯语
| 灯 | 含义 | 动效 |
|---|---|---|
| 🟡 黄 | 任意顶层会话等你处理(批准 / 计划确认 / 回答提问) | 闪烁 |
| 🔴 红 | 任意顶层会话正在工作 | 呼吸辉光 |
| 🟢 绿(亮) | 已完成待查看(与侧栏 done 提醒同源) | 常亮 + 光晕 |
| 🟢 绿(暗) | 全部空闲 | 常亮 |
优先级:黄 > 红 > 亮绿 > 暗绿。子代理会话不直接驱动灯(与侧栏口径一致)。
- 悬停灯体:弹出会话清单(标题 + 状态),只显示最近活跃的 5 个会话(按更新时间倒序),其余折叠为一行计数;点击任意行跳转到该会话。灯的颜色仍由全部会话聚合决定。
- 点击灯体 / 侧边小钮:贴边收起 / 展开(localStorage 持久化)。
- 金属壳体、遮光罩投影、菲涅尔环纹、三色溢光、螺栓支架臂;尊重
prefers-reduced-motion。
安装
要求:DSH >= 0.1.1-rc.1(dsh --version 可查),已使用 web profile。
方式一:npm(推荐)
已发布 npm,一行装上:
dsh plugin --profile web add dsh-web-traffic-light@latest
# 离线分享场景:dsh plugin --profile web add ./dsh-web-traffic-light-0.1.1.tgz
dsh web
插件自带 bundle patch,会自动把 roster 行插入 profile;下次启动即生效,无需任何手工配置。刷新(或新开)Web GUI,右缘出现信号灯。
方式二:源码目录(免打包)
解压 zip 后:
dsh plugin --profile web add link:<解压目录的绝对路径>
dsh web
方式三:纯手工(不经过 dsh plugin)
把目录放进 %DSH_HOME%/profiles/web/node_modules/dsh-web-traffic-light/,并在 %DSH_HOME%/profiles/web/cordis.patch.yml 里加一行:
- insert:
- id: dsh-web-traffic-light
name: dsh-web-traffic-light
保存即热加载(launcher 的 patch watcher),刷新页面出灯。适合开发调试。
卸载
dsh plugin --profile web remove dsh-web-traffic-light
方式三安装的:删除 patch 行(热卸载)+ 删除包目录。
原理速览
纯客户端插件,无构建步骤(零依赖,不需要 pnpm/tsdown):
index.js— 宿主半,仅占位(cordis 对象插件)。client.js— 浏览器半,window.__ModuleLoader__.load包裹的工厂脚本,只require('react')(DSH shell 静态表供给)。挂载进官方shell.overlay插槽(浮层 list 槽:附加式、点击透明层,组件自选恢复指针事件)。- 状态来自客户端 runtime 的
sessions.list:running/pendingInteraction('approval' | 'plan-review' | 'question')/completed,与侧栏灯点同一事实源;不轮询、不开额外路由、无遥测。 - 开发期改动
client.js:@deepseek-ai/dsh-client-hmr500ms stat 轮询自动热替换组件,无需刷新。
已知边界
- 读的是浏览器 runtime 的会话列表:GUI 未打开时灯自然不在(它是 Web UI 挂件,不是桌面应用)。
- 多标签页各自渲染一盏(状态一致,互不干扰)。
dsh web的 GUI 主题皮肤(Skin Center)若全局覆写[class*="dsh-tl"]才会互相影响——正常皮肤不会。
更新记录
- 0.1.1 悬停清单只显示最近活跃的 5 个会话(更新时间倒序),其余折叠为「还有 N 个更早的会话未显示」;灯色聚合口径不变(仍看全部会话)。
- 0.1.0 首次发布。
License
MIT