potterlee369-prog/dsh-sound-notifier

potterlee369-prog★ 0TypeScript最后同步: 2026-08-19

在 GitHub 打开

dsh任务完成或结束时,播放音效。

README 摘要

dsh-sound-notifier DSH Web 插件: 任务完成时在浏览器中播放音效提示 ,并且 区分"自然完成"与"中途中断"两种音效 ; 当弹出需要用户选择的选项时也会播放提示音 。会话一轮任务结束(agent 从运行转为空闲)的瞬间,页面会播放对应提示音——即使你正切在别的标签页也能听到。 本项目依赖 DSH Web 宿主环境的插件运行时,不能脱离宿主单独运行。 - 自然完成 vs 中断 :任务正常收尾播放"完成提示音"(默认清脆铃声);被用户停止、模型请求出错、输出截断等中断播放"中断提示音"(默认短促提示音)。 - 用户选择提醒 : ask user question 弹出选项、计划审批(plan review)等需要用户选择/确认的弹窗出现时,播放独立的"选择提示音"(默认叮咚)。权限审批弹窗默认关闭,可在设置中开启。 - 四种内置提示音 :清脆铃声、叮咚、成功和弦、短促提示音。全部用 Web Audio API 实时合成,零音频资源文件;完成音、中断音与选择提示音可各自独立选择。 - 设置面板 :在 设置 → 音效提示 中可开关提示、分别选择音效并 行内试听 、调节音量。 - 多标签去重 :同一完成/中断/选择提示事件即使开了多个 dsh 标签页也只响一声(BroadcastChannel 抢占协议)。 - 子任务控制 :默认只在主会话完成时提醒,可开启"包含子任务"让子代理完成也响。 工作原理 - 完成检测 :订阅客户端 sessions.list 状态存储,跟踪每个会话 running: true → false 边沿——与侧边栏的完成状态使用同一条宿主状态流,信号权威可靠。首次观测只记录状态(页面加载时已完成的会话不会补响)。 - 完成/中断分类 :当前选中(打开中)的会话有实时事件窗口( Session.events ,与状态帧同一条有序连接),边沿时刻读取最后一个 turn/end 的 reason.kind 分类: reason.kind 含义 音效 completed 自然完成 完成提示音 aborted 用户点击停止 中断提示音 error 模型请求出错 中断提示音 max-tokens 输出达到上限被截断 中断提示音 blocked 输入被拒绝(预步否决) 中断提示音 interrupted 日志中断(崩溃恢复) 中断提示音 - 后台会话 (未选中、无事件窗口)无法读到 reason,统一按自然完成播放。 - 选择检测 :订阅客户端 sessions.list 状态存储,跟踪每个会话 pendingInteraction 从无到有的边沿—— question 和 plan-review 对应 ask user question /计划审批弹窗,播放"选择提示音"; approval 权限审批默认不提醒,可手动开启。首次观…

在 GitHub 查看完整 README →
工具/开发deepseekdeepseek-harnessdshdsh-plugindsh-plugin-marketdsh-pluginsagent

分类