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.bundles 與 dsh.bundle.patch
  • pnpm 在 PATH 中
  • Node 版本滿足 >=20

依賴方面,dependencies 包括 @deepseek-ai/schemastery,peerDependencies 包括 @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 值退化爲事件默認值
  • workspaces、debounceMs、全局 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 檢索
羽毛球分组比赛记分
小程序二维码

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

小夜