traffic-light:DeepSeek Harness 会话状态信号灯

在使用 DeepSeek Harness 进行智能体开发时,需要实时感知当前会话是否正在运行或是否出现错误。现有的 Web UI 可能无法直接提供这种直观反馈。traffic-light 插件通过在聊天输入框区域增加一个三色信号灯,提供即时的状态可视化。

这是一个 DeepSeek Harness Web UI 插件,由 aliuguofa 维护。它位于 conversation.composer.dock 插槽,显示红、黄、绿三色信号灯,反映会话状态。点击可查看详情。这是一个纯 UI 插件,宿主半为空 apply()。

核心功能

该插件主要包含以下能力:

  1. 三色状态指示:在聊天输入框区域显示红、黄、绿三色信号灯。信号灯会根据当前会话状态自动切换颜色。
  2. 实时状态反映:绿灯表示会话空闲(就绪);黄灯表示助手正在思考或调用工具(生成中);红灯表示出错或中断。
  3. 详情面板:点击信号灯会弹出详情面板,显示状态说明、错误文本与排查提示(出错时),以及实时吞吐量(生成中时)。
  4. 数据源可靠:无轮询,无猜测。所有信号均来自 DSH 客户端会话快照与官方 projection。
  5. 无障碍与国际化:支持 ARIA 属性和键盘交互,支持中英文 i18n。
  6. 可定制性:支持自定义位置顺序、灯色样式与文案。

安装与启用

将插件目录作为 npm 包加入当前 DSH profile:

dsh plugin --profile desktop add ./traffic-light

安装完成后刷新 Web GUI,信号灯会自动出现在输入框区域。

状态判定逻辑

插件依赖 DSH 框架注入的 useSession 和 useProjection hooks。状态判定逻辑如下:

  • 绿灯:running === false 且无错误。
  • 黄灯:running === true。
  • 红灯:promptError !== null 或 openState === "error"。

优先级为:出错(红) > 生成中(黄) > 就绪(绿)。

自定义配置

修改位置顺序

插件默认插入到输入框停靠区(conversation.composer.dock)的特定位置。若需调整顺序,需编辑 lib/client.js 中的 slots.register,修改 order 值(数值越大越靠后)。

修改灯色样式

编辑 .tl-lamp-on.tl-* 相关的 CSS 规则,修改 background 或 box-shadow 属性。

修改文案

编辑 lib/client.js 顶部的 zh / en 字典对象。

兼容性与依赖

  • 依赖环境:DSH Desktop 0.1.1-rc.1。
  • 依赖接口:conversation.composer.dock 插槽、会话快照字段(running / promptError / openState / openError / composerPhase)、liveTokenUsage projection。
  • 运行权限:仅读取官方稳定字段,不写入任何设置,不发起网络请求。
  • 健壮性:当框架未注入必要 hooks 时,插件会安全降级渲染,不会破坏输入框功能。

文件结构

插件采用自包含模式,文件结构如下:

traffic-light/
├── package.json          # 声明 dsh.bundle + dsh.client
├── cordis.patch.yml      # Profile 层挂载配置
├── lib/
│   ├── index.js          # 宿主半:空 apply()
│   └── client.js         # 浏览器半:组件逻辑、状态判定、i18n、CSS
├── LICENSE
└── README.md

插件遵循 MIT 许可证。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜