DeepSeek Harness Hub
← 返回列表

回合结束提示音falling-ts/dsh-web-ding

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
未验证

Browser-only 'ding' on agent end; works on…

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/17 · 已提供中文文档

Browser-only 'ding' on agent end; works on servers.浏览器专属"叮":回合结束时响起,服务器部署也生效

综合分
30.6
GitHub 分
30.6
用户评分
★ Stars
1
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add falling-ts/dsh-web-ding
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/18(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-settings
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

dsh-web-ding

一个 DSH Cordis 插件,在 agent 完成(运行至空闲)的瞬间,在浏览器中播放一声 “ding”。该声音完全由前端 JavaScript(Web Audio API)合成——Node/Host 端从不播放音频,也不使用 Windows/系统通知。

它按照 dsh-force-compact 的架构构建:一个纯监听器的 Host 半部分 + 一个浏览器客户端半部分,通过官方的 settings/document-updated 镜像通道连接。

它的作用

| 层 | 发生的事情 |
|-------|--------------|
| Host(index.js + src/) | 监听 agent/status 的空闲转换(所有回合完成,包括子 agent,在下一次人类回合之前;从未运行过的全新空闲会话,以及重复的空闲 tick,都保持静默)。将 { phase:'done', at, sessionId } 发布到 falling-ts-web-ding 设置命名空间中。从不发出音频,从不调用操作系统。 |
| 浏览器(web/client.js) | 通过 settingsScope 实时镜像该命名空间。在收到严格更新的 done 信号时,它使用 Web Audio API 合成一声短促的 ding(三个正弦振荡器 + 指数衰减包络),并通过标签页播放——同时,在右下角弹出一个 Win11 风格的通知。点击该通知会滑出一个通知抽屉,列出每一条回合结束消息(保存在浏览器 localStorage 中,上限为 100,按信号 at 去重),每条消息可单独删除,并有一个全部清除按钮。一切都停留在前端:没有后端音频,没有操作系统通知。 |

安装

dsh plugin --profile web add github:falling-ts/dsh-web-ding

要求 web 应用附带客户端 bundle(package.json 中的 dsh.client 声明会自动完成这一点)。

配置(falling-ts-web-ding 命名空间,$DSH_HOME/settings.yaml)

两个独立的块,每个都有自己的开关和自己的音调:

块 1 — 弹出用户选择(question popup ding) — 当 harness 在浏览器中弹出用户问题选择器时播放。检测是在客户端基于 DOM 进行的(QuestionComposer 的 [data-question-key] 锚点):Host 半部分看不到问题框架,因此这个块完全在浏览器端。

| 字段 | 类型 | 默认值 | 含义 |
|-------|------|---------|---------|
| questionEnabled | boolean | true | 问题弹出 ding 的开关。 |
| questionVolume | number 0..1 | 0.7 | Web Audio 播放增益。 |
| questionFreq | number 80..4000 | 880 | ding 的基频(Hz)。 |
| questionDecayMs | number 100..4000 | 900 | 音调衰减时长(ms)。 |

块 2 — 回合结束(turn-end ding) — 经典的 agent/status 空闲转换音调。Host 观察 agent/status;在空闲转换时(所有回合完成,包括子 agent,在下一次人类回合之前;从未运行过的全新会话和重复的空闲 tick 都保持静默)它发布 done 信号。

| 字段 | 类型 | 默认值 | 含义 |
|-------|------|---------|---------|
| turnEndEnabled | boolean | true | 回合结束提示音的开关(关闭时 Host 跳过发布)。 |
| turnEndVolume | number 0..1 | 0.7 | Web Audio 播放增益。 |
| turnEndFreq | number 80..4000 | 880 | 提示音的基频(Hz)。 |
| turnEndDecayMs | number 100..4000 | 900 | 音调衰减时长(ms)。 |

除了铃声之外,每次回合结束还会在右下角弹出一个 toast(Win11 风格,
6 秒后自动消失)。点击它会打开右侧通知抽屉:最近 100 条回合结束消息
保存在浏览器的 localStorage 中(键为 falling-ts-web-ding.notify.v1),
每一行都可以单独删除,还有一个“全部删除”按钮可清空全部。消息
日志仅存在于前端——Host 从不读取或写入它。

你也可以从 设置 → 提示音配置 面板调整这两个区块,
每个区块都有自己的开关和自己的“试听”(预览)按钮。

浏览器自动播放策略

浏览器会阻止音频,直到用户进行手势操作。客户端会在首次指针/键盘交互时
(以及点击预览按钮时)预热 AudioContext,因此:与页面交互一次
(或按下试听),你就能在每个 agent 回合结束时听到提示音。
后台标签页中的音频上下文可能会被浏览器自身挂起——请保持标签页可见
以便听到音调。

开发

mount as a dev overlay (plain JS, no build step)
dsh web --patch $(pwd)/cordis.patch.yml   # if supported by your CLI
or install from a local path
dsh plugin --profile web add /path/to/dsh-web-ding

有关该插件自身的规则,请参阅 AGENTS.md(纯 Host 监听器、无后端
音频、无操作系统通知、仅通过获准的设置镜像通道与浏览器通信)。

截图

设置页面:提示音配置 区块,两个区块各带有自己的开关和音调

设置页面:提示音配置 区块——“弹出用户选择”和“回合结束”两个区块,
每个都有自己的开关、音量、频率和衰减时长,全部可实时编辑,
无需重启,每个都有一个 试听(预览)按钮用于预热浏览器
AudioContext。

许可证

MIT

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

同作者(falling-ts)的其他插件

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群