前言¶
在 DSH 裏做 web 插件時,任務狀態和按鈕操作通常只能靠界面視覺反饋來確認。dsh-plugin-uisfx 是一個 dsh plugin,用來把 uisfx 的 semantic UI sound effects 接入 DeepSeek Harness。它由 XanthanL 維護,採用 MIT 許可,核心目標比較集中:按場景播放語義化音效,並在設置頁裏試聽和調整。
這是什麼¶
dsh-plugin-uisfx 可以理解爲 DSH web 場景下的一層聲音反饋插件。它不內置音頻文件,而是嵌入 uisfx 0.4.0 Web Audio synthesis runtime,用合成音頻的方式提供 UI 音效。
它面向的是 DSH 插件生態裏“一切皆插件”的使用方式:你不需要修改 DSH 主界面,也可以給任務狀態和按鈕點擊補充聲音提示。
核心功能¶
下面幾項是已覈實的能力。
- Global sound pack:提供 12 個 uisfx packs,可整體切換音效風格。
- Scenario mapping:提供 11 個 scenario,每個 scenario 映射到一個 cue,並帶有默認配置。
- Instant preview:在設置的每個 scenario 旁邊提供 Preview 按鈕。
- Task feedback:覆蓋當前會話的 Start / success / failure / pending 狀態。
- Button feedback:自動識別 send / delete / toggle / link / primary / normal 等按鈕類型。
- Persistence:設置寫入 Host
settings.yaml,namespace 爲dsh-plugin-uisfx。 - Service API:提供
ctx.uisfx,供第三方 dsh 插件調用。
安裝與啓用¶
先確認運行環境。該插件要求 dsh 0.1.0-rc.6,並且 package.json 聲明 node >=20。
在 DSH web profile 下添加插件:
dsh plugin --profile web add dsh-plugin-uisfx
如果要固定到某個版本,可使用示例命令:
dsh plugin --profile web add dsh-plugin-uisfx@0.1.0
安裝後進入:
Settings → Sound Effects
在這裏可以調整 volume、選擇 pack,並試聽 scenario。
注意:插件會寫入 Host settings.yaml 的 dsh-plugin-uisfx namespace。由於插件代碼運行在當前 DSH 進程可訪問的環境中,擁有當前 dsh 進程相應權限,安裝前建議先查看源碼和許可證。該插件許可證爲 MIT;其嵌入的 uisfx runtime 也是 MIT,copyright Yuki Capital。
典型用法¶
設置頁適合做手動試聽。對於其他 dsh 插件,可以通過 ctx.uisfx 調用 service API:
ctx.uisfx.play('task.success')
ctx.uisfx.playCue('achievement')
ctx.uisfx.preview('success')
ctx.uisfx.setPack('studio')
ctx.uisfx.setVolume(0.5)
這些調用分別用於:
- 播放一個 scenario 對應的聲音,例如
task.success。 - 播放一個 cue,例如
achievement。 - 試聽某個 cue,例如
success。 - 切換全局 sound pack,例如
studio。 - 調整 volume,例如
0.5。
適用場景與注意¶
適合以下情況:
- 你使用 DSH web,希望任務開始、成功、失敗、待處理時有聲音提示。
- 你希望按鈕點擊有輕量反饋,而不是完全依賴視覺變化。
- 你正在開發其他 dsh 插件,並想複用同一套
ctx.uisfx聲音 API。
使用前需要注意:
- 只覆蓋當前會話的 task sounds。
- 瀏覽器可能阻止 autoplay:需要在頁面上點擊一次。
- 它嵌入的是 uisfx 0.4.0 Web Audio synthesis runtime,不攜帶音頻文件。
- 安裝前請確認你信任該插件源碼,因爲插件會以當前 DSH 進程權限運行。
參考鏈接¶
GitHub:
https://github.com/XanthanL/dsh-plugin-uisfx
插件目錄頁(獨立站點,不等同於官方應用商店):