dsh-sound:DSH Web UI 的事件声音提醒插件

前言

DSH 的 Web UI 插件可以扩展界面行为。dsh-sound 解决的是提醒问题:任务结束、需要审批、需要回答、计划审查、目标受阻或后台失败时,用声音提示开发者,而不是只依赖界面状态变化。

这是什么

dsh-sound 是一个 DeepSeek Harness(DSH)插件,面向 Web UI,由 AI-Galaxy-GPU 维护,许可证为 MIT。它的作用是:在任务结束或需要人工关注时播放可自定义声音,让开发者不必一直盯着 Web UI 窗口。

核心功能

六类独立事件

dsh-sound 覆盖六类事件:

  1. turn end / background task completed
  2. approval request
  3. user question
  4. plan review
  5. goal blocked
  6. background / loop failure

每类事件都有独立声音和独立音量,音量范围为 0–100%

声音来源

每类事件可以选择:

  • 内置合成声音:Ding / Chime / Bell / Complete / Success
  • 静音
  • 本地文件:MP3/WAV

本地音乐文件保存在 IndexedDB,库名为 dsh-sound-audio,不占用 localStorage 配额。

设置面板

打开:

Settings → 声音通知 / Sound Notification

设置面板包含:

  • 总开关
  • 六类事件行
  • 音量滑块
  • 声音选择
  • 本地文件选择/替换
  • 配置导出/导入

多标签页与事件回退

多个标签页打开时,同一事件只响铃一次,使用 BroadcastChannel 做 tie-break。

当事件流不可用或帧解包失败时,插件会回退到 snapshot diffing。

安装与启用

安装条件

安装前需要满足:

  • DSH 版本支持 bundle-plugin,包含 dsh.profile.bundlesdsh.bundle.patch
  • pnpm 在 PATH 中
  • Node 版本满足 >=20

依赖方面,dependencies 包括 @deepseek-ai/schemasterypeerDependencies 包括 @deepseek-ai/cordis

Web profile 安装

执行:

dsh plugin --profile web add dsh-sound

然后打开 Settings → 声音通知 / Sound Notification,选择事件声音、音量或本地文件。

其他 profile

其他 profile 使用相同方式:

dsh plugin --profile <name> add dsh-sound

不使用 pnpm 的手动安装

如果没有 pnpm,可以手动安装:

  1. 将该包及其运行时依赖复制到:
$DSH_HOME/profiles/web/node_modules/
  1. 在:
$DSH_HOME/profiles/web/package.json

dsh.profile.bundles 中加入 "dsh-sound"

  1. 重启:
dsh web

典型用法

配置每类事件

在设置面板中,为每个事件选择声音、调整音量,或选择本地文件。

导出和导入配置

使用设置面板导出完整配置为 JSON,也可以从 JSON 文件恢复配置。这样可以在浏览器或机器间迁移配置。

本地开发验证

可以运行:

npm test
npm run check

npm test 运行测试;npm run check 做语法检查。

配置与迁移

浏览器端配置保存在 localStorage,key 为:

dsh-sound:config

每次读取都会做清洗并补默认值。

配置项包括:

enabled
quietCurrent

以及六类事件声音字段、六类事件音量字段和:

localFiles

0.2.0 迁移会自动升级旧配置:

  • defaultSound 变为 completionSound
  • voice/TTS 值退化为事件默认值
  • workspacesdebounceMs、全局 volume 和 voice 设置会被移除

rc.6 中,settings API allowlist 不向浏览器暴露第三方 namespace,因此当前客户端不依赖 settingsScope

适用场景与注意

适合在 DSH Web UI 中运行任务、审批、提问等流程,并希望用声音降低盯屏成本的开发者。

注意:

  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证。
  • 内置合成声音不需要音频文件;本地文件会写入 IndexedDB。
  • 多标签页场景依赖 BroadcastChannel tie-break。
  • 本地开发时,profile 的 pnpm 使用 nodeLinker: hoisted,会把 file: 依赖复制进 node_modules;修改本地 checkout 后,需要重新执行 update,或用 symlink 替换复制目录。

结尾

dsh-sound 把 DSH Web UI 中的完成、审批、提问、计划审查、目标受阻和失败事件映射成可配置声音提醒,适合作为本地开发时保持注意力的轻量插件。

  • GitHub:https://github.com/AI-Galaxy-GPU/dsh-sound
  • 社区目录:可按 dsh-sound 检索
羽毛球分组比赛记分
小程序二维码

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

小夜