dsh-soundscape
DSH 本机音效插件:监听 Agent 状态与工具生命周期,通过常驻
PowerShell System.Windows.Media.MediaPlayer 播放思考、工具和错误提示音。
当前能力
agent/status 进入 running 时循环思考音,回到 idle 时停止并播放结束音。
- 工具开始、完成和失败音可独立开关;同工具调用有节流保护。
- 工具音会打断思考循环,按 WAV 实际时长结束后自动恢复。
- 12 种零素材内置 PCM WAV;用户可在
assets/sounds/ 放入
<工具名>.wav 或 <工具名>.mp3 覆盖。
- MP3 由
mpg123-decoder 在 Node 进程内转换并缓存为 WAV。
- DSH 设置页提供开关、音量、思考音、工具映射、试听、重新扫描和打开音效目录。
- 配置写入采用临时文件替换,插件卸载时停止定时器并终止播放进程。
配置与解析顺序
配置保存在 assets/config.json。工具音按以下顺序解析:
assets/sounds/<工具名>.wav
- 已扫描转换的
assets/sounds/<工具名>.mp3
config.tools.<工具名>
- 工具分类音
config.tools.default
映射值支持 builtin:<名称>、file:<文件名> 和 none。MP3 转换缓存由
插件管理,不应手工写入配置。
本地 API
静态 hybrid bundle 使用 DSH 已验证的 webServer.register 同源接口:
GET/POST /api/dsh-soundscape/config
GET /api/dsh-soundscape/sounds
POST /api/dsh-soundscape/play-test
POST /api/dsh-soundscape/rescan
POST /api/dsh-soundscape/open-sounds-folder
这些接口只由本机 DSH 页面调用。设计草案中的 harness.handle/host.call
属于动态 Cordis runner,不是此静态 bundle 的运行时 API。
验证
npm install --ignore-scripts --legacy-peer-deps
npm run verify
verify 包含全部源码语法检查、Node 单元测试和宿主 mock smoke。
当前已在真实 DSH 中验证:热重载 active、5 条本地 API、设置页完整挂载、
保存立即生效、12 个内置音效清单、MediaPlayer 守护进程 DAEMON READY
及 PLAYED 回执。实际扬声器听感、最终代码完整重启、真实自定义文件命中
和卸载净验证仍需人工验收,不能仅凭日志推断通过。