DeepSeek Harness(DSH)在終端運行時,開發者容易忽略任務結束或等待確認的時刻。這個插件通過瀏覽器端的 FM 合成技術,在任務完成(高音)和需要確認(低音)時播放兩種截然不同的音效,無需依賴任何音頻文件。
它是 Charlestam218 維護的一個客戶端插件,遵循 MIT 協議。核心價值在於提供非侵入式的狀態反饋,避免因視線離開終端而漏掉關鍵信息。
核心功能¶
插件主要提供以下能力:
- 雙音效區分:任務完成時播放高亢的 E6→B6 雙音(清亮有餘音),需要確認時播放低沉的 A3→E3 單音(短促有推進感)。兩個音效刻意放在不同音區,靠音高區分。
- 純合成,無依賴:音效在瀏覽器端用純 JS 按 FM 合成公式逐採樣渲染,不依賴任何音頻文件、網絡請求或宿主路由。
- Windows 任務欄徽標:在 DSH 任務欄按鈕上顯示紅點數字,數量爲“需要確認” + “已完成未讀”的會話數。僅在 Windows 平臺實現。
- 兼容性降級:支持 Web Audio API;若上下文被瀏覽器掛起,自動退回
<audio>+ WAV Blob 降級方案。
安裝與啓用¶
安裝插件需將包放入 profile 的 node_modules 並寫入配置。
Web Profile 安裝:
dsh plugin --profile web add link:<本包絕對路徑>
link: 是軟鏈安裝,修改源碼後會通過 HMR 熱重載自動生效。若使用 file: 則爲拷貝安裝。安裝後若未生效,重啓 DSH 客戶端(Web 端需重啓並按 Ctrl+R)。
典型用法¶
安裝完成後,插件會在瀏覽器控制台暴露 dshSoundAlert 對象。
測試與診斷¶
- 依次測試:
dshSoundAlert.test()
- 單獨測試:
dshSoundAlert.test('done') // 只響完成音
dshSoundAlert.test('confirm') // 只響確認音
- 查看狀態:
dshSoundAlert.state() // { enabled, volume, audio: 'running', watched, sessions, done, confirm, lastPath, lastError }
- 查看診斷歷史:
dshSoundAlert.diag() // 最近的狀態變化與發聲歷史
狀態存儲與排查¶
不打開 DevTools 也能查看狀態,數據保存在 localStorage:
| 鍵 / 文件 | 含義 |
|---|---|
localStorage dsh-sound-alert:boot |
客戶端半區運行狀態(版本、掛載時間) |
localStorage dsh-sound-alert:diag |
心跳快照:當前會話、最近發聲記錄、audio 狀態 |
localStorage dsh-sound-alert:plays |
各音效播放次數與最後一次的類型 |
$DSH_HOME/.dsh-sound-alert.log |
宿主半區加載/卸載日誌 |
開關與音量控制¶
dshSoundAlert.off() // 靜音
dshSoundAlert.on() // 恢復
dshSoundAlert.toggle() // 切換
dshSoundAlert.setVolume(0.7) // 設置音量 (0~1)
適用場景與注意¶
- 多窗口限制:多窗口會各自播放聲音,各自判定狀態。
- 頁面未打開不響:頁面未打開時不會響,這是界面提示而非系統通知。如需離開窗口也提醒,需配合系統通知類工具。
- 依賴關係:插件依賴 DSH 客戶端的服務名
sessions與uiSession.sessionStatus。若 DSH 內部服務變更,插件會靜默失效。 - 配置生效:配置更改需重啓或熱重載。
開發與維護¶
音效配方在 lib/client.js 頂部的 RECIPES 中,使用 FM 合成參數(頻率、調製比、衰減等)定義。修改後保存即可觸發熱重載。
插件遵循 MIT 許可證,源碼託管於 GitHub。