🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

对话完成音效 sxl19951101/dsh-done-sound

DeepSeek Harnessv0.1.15
sxl1995110149 天前有提交已提供中文文档扫描:含敏感能力

为对话完成、出错等五种场景分别播放提示音

32.4/100
综合分
5
GitHub 星标
193
npm 周下载
—/5
用户评分

数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-done-sound
npm 源 · dsh-done-sound 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.2 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 49 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-done-sound @ 0.1.15
✓Node 引擎要求 >=18 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/21 14:33:31

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 15 处,展示前 15 条)
  • 读取本地文件
    lib/index.js:804
    const pkg = JSON.parse(readFileSync(pkgPath, "utf8"));
  • 写入本地文件
    lib/index.js:826
    mkdirSync(dirname(file), { recursive: true });
  • 写入本地文件
    lib/index.js:827
    appendFileSync(file, `[${stamp}] [${level}] ${message}
  • 删除本地文件
    lib/index.js:952
    await unlink(audioPath(fileId));
  • 写入本地文件
    lib/index.js:972
    await mkdir(dataDir, { recursive: true });
  • 写入本地文件
    lib/index.js:973
    await writeFile(audioPath(fileId), buffer);
  • 删除本地文件
    lib/index.js:982
    await unlink(audioPath(previous));
  • 读取本地文件
    lib/index.js:1082
    const buffer = await readFile(DEFAULT_AUDIO_PATHS[scene]);
  • 读取本地文件
    lib/index.js:1107
    const buffer = await readFile(audioPath(fileId));
  • 读取本地文件
    lib/index.js:1173
    const buffer = await readFile(datedLogPath());
  • 发起网络请求
    lib/client.js:319
    fetch('/dsh-done-sound/api/log', {
  • 发起网络请求
    lib/client.js:589
    res = await fetch(
  • 发起网络请求
    lib/client.js:709
    fetch('/dsh-done-sound/api/log/export')
  • 请求外部主机registry.npmjs.org
    lib/client.js:798
    fetch('https://registry.npmjs.org/dsh-done-sound/latest')
  • 发起网络请求
    lib/client.js:798
    fetch('https://registry.npmjs.org/dsh-done-sound/latest')
扫描于 2026/11/3(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
涉及外部主机:registry.npmjs.org

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-commands@deepseek-ai/dsh-settings@deepseek-ai/dsh-host-webserver@deepseek-ai/schemastery@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-cordis-client-runner
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 五种场景提示音
  • 出错提示音
v0.1.152026-09-15
· 修复「倒计时结束不发送继续」 根据日志定位到真正根因:DSH 0.1.5-rc.2 把发送会话消息的入口改了。 · 根因 · 插件原来用 connection.api.sessions.prompt(...) 发送「继续」 · rc.2 里这个接口已不存在,正确的发送入口变成 ctx.sessions 服务(sessions.binding(sessionId).session.prompt(...)) · 由于拿到的是 undefined,每次倒计时到点进入发送时都以 prompt-api-unavailable 立即取消循环 → 表现就是「倒计时结束不发送」 · 修复 · 改用 rc.2 正确的 ctx.sessions 发送「继续」,保留旧接口作为兼容回退(新旧 DSH 都能用) · 插件声明加入 sessions 服务依赖 · 简化重试循环:每个重试窗口到点即发送,不再因「看起来在流式输出」而跳过(模型断开时 host 会卡在 running=true,等待它只会让倒计时空转) · 现在的行为 | 触发 | 行为 | |---|---| | 模型报错 / 断开 | 每个重试窗口持续发送「继续」(#1 → #2 → #3…) | | 重试轮以 aborted/blocked/error/max-tokens 结束 | 继续重试 | | 重试轮以 completed 结束 | 停止(会话已恢复) | | 会话等待人工确认 / 切换会话 / 关闭开关 | 停止 | | 手动点「终止重试」 | 停止,倒计时与按钮隐藏 | · 升级 dsh plugin --profile web add dsh-done-sound 升级后重启 dsh web,浏览器按 Ctrl + Shift + R 强制刷新。
v0.1.142026-09-15
· 修复「重试仍然只有一次」 0.1.13 已把自动重连改成持续重试,但真实断线场景下仍可能只重试一次。根因: · 模型断开时,重试的那一轮常以 aborted(连接中断中止)结束 · 旧逻辑把 aborted / blocked 也当成「会话已恢复」→ 停止循环 → 只重试一次 · 本次修复 · 只有 completed 才算恢复:aborted / blocked / error / max-tokens 都会继续重试 · 拖死看门狗:若某次「继续」把会话带入流式状态却迟迟没有新轮次结束(模型已断、卡在 running),超时后强制再发一次,不再无限静默等待 · 诊断日志:重试循环的每个动作都会写入插件日志(retry: 前缀),便于确认停止原因 · 行为总结 | 触发 | 行为 | |---|---| | 模型报错 / 断开 | 每隔设定时间持续发送「继续」 | | 重试轮以 aborted/error/blocked/max-tokens 结束 | 继续重试 | | 重试轮以 completed 结束 | 停止(会话已恢复) | | 会话等待人工确认 | 停止 | | 手动点「终止重试」 | 停止,倒计时与按钮隐藏 | | 会话切换 / 关闭开关 | 停止 | · 升级 dsh plugin --profile web add dsh-done-sound 升级后重启 dsh web(确保加载新客户端包),浏览器按 Ctrl + Shift + R 强制刷新。
v0.1.132026-09-14
· 出错自动重连改为「持续重试」 之前发送一次「继续」后重连就结束了,模型断开时只会重试一轮。现在改成一直重试,直到会话恢复或你手动终止。 · 现在的行为 · 持续重试:每隔设定时间(默认 60 秒,可设 10-300 秒)再发一次「继续」,不再只试一次 · 手动终止:主界面倒计时后面有「终止重试」按钮,点一下立即停止,倒计时和按钮一起隐藏 · 不打断生成:如果某次「继续」把模型救活了(检测到重新开始输出),本轮不会重复发送;等这一轮结束后再判断——正常结束就停止重试,再次报错就继续重试 · 自动停止条件:会话恢复正常、出现等待确认、切换会话,或关闭插件/重连开关 · 进度可见:主界面 chip 显示 自动重连 #3 45s(第几次 + 下次倒计时),设置卡片同步显示 · 自动化测试 新增 test/retry.test.mjs,用 React 桩加载真实客户端包并驱动重试循环,覆盖 17 项断言: · 发送后循环仍然存活(就是这次修的 bug) · 模型一直不恢复时持续发送 · 流式生成期间不刷屏 · 会话恢复 / 等待确认 / 切换会话 / 手动终止各自正确停止 · 重复报错时继续重试 · 升级 dsh plugin --profile web add dsh-done-sound 升级后重启 dsh web,浏览器按 Ctrl + Shift + R 强制刷新。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-done-sound DeepSeek Harness Web GUI 的对话音效插件。不同触发情况可以分别设置音频提醒,并为每种情况提供内置默认音效。 功能 - 五种场景独立配置:正常完成、中断、出错、等待确认、自动重连成功各自使用独立音频,可分别选择、试听和清除。 - 内置默认音效:即使没有上传任何文件,也会使用对应场景的默认音效: - 正常完成:turn-done.wav - 中断:turn-interrupt.wav - 出错:turn-error.wav - 等待确认:turn-pending.wav - 自动重连成功:turn-retry.wav - 音频格式:支持 mp3、wav、ogg、webm、m4a、aac、flac,单个文件最大 10MB。 - 完成检测:根据宿主 turn/end 事件的 reason 判断正常完成、中断、出错和超长截断,避免误触发;每轮只播放一次。 - 触发开关: - 中断时也响:手动停止生成时是否播放,默认关闭。 - 出错时也响:对话以错误结束或超长截断时是否播放,默认开启。 - 等待确认提醒:Agent 等待批准、提问或其他人工确认时是否播放,默认开启。 - 重连成功也响:自动发送「继续」成功后是否播放专属音效,默认开启。 - 出错自动重连:出错后是否自动发送「继续」重试,默认开启。
展开完整文档(README 剩余 1 节)
dsh-done-sound

DeepSeek Harness Web GUI 的对话音效插件。不同触发情况可以分别设置音频提醒,并为每种情况提供内置默认音效。

功能

- 五种场景独立配置:正常完成、中断、出错、等待确认、自动重连成功各自使用独立音频,可分别选择、试听和清除。
- 内置默认音效:即使没有上传任何文件,也会使用对应场景的默认音效:
- 正常完成:turn-done.wav
- 中断:turn-interrupt.wav
- 出错:turn-error.wav
- 等待确认:turn-pending.wav
- 自动重连成功:turn-retry.wav
- 音频格式:支持 mp3、wav、ogg、webm、m4a、aac、flac,单个文件最大 10MB。
- 完成检测:根据宿主 turn/end 事件的 reason 判断正常完成、中断、出错和超长截断,避免误触发;每轮只播放一次。
- 触发开关:
- 中断时也响:手动停止生成时是否播放,默认关闭。
- 出错时也响:对话以错误结束或超长截断时是否播放,默认开启。
- 等待确认提醒:Agent 等待批准、提问或其他人工确认时是否播放,默认开启。
- 重连成功也响:自动发送「继续」成功后是否播放专属音效,默认开启。
- 出错自动重连:出错后是否自动发送「继续」重试,默认开启。
- 自动重连等待时间:可设置 10-300 秒,按 5 秒步进;等待期间显示倒计时,若会话自行恢复则自动取消。
- 全局音量:统一调节五种场景的播放音量。
- 版本检查:设置卡片显示当前版本和更新状态。
- 日志与导出:Host 和 Client 诊断日志保存到 profile 目录,可从设置卡片导出当天日志。

安装

dsh plugin --profile web add dsh-done-sound

本地开发:

dsh plugin --profile web add link:F:\0.AI-CodeProject\DSHProject\0.日常聊天\dsh-done-sound

安装后重启 dsh web,打开设置页即可看到「对话完成音效」卡片。

升级已有安装后,请重启 dsh web 使 Host 端更新生效。旧版本中保存的单个自定义音频会自动作为「正常完成」音保留,不会丢失。

配置位置

设置 → 对话完成音效中会显示五行独立音频配置。每行都可以选择文件、试听或清除当前自定义音频;清除后会恢复该场景的内置默认音效。

自定义音频文件保存在 profile 目录的 .dsh-done-sound/ 中,配置保存在 DSH 设置中。Host 音频路由为:

/dsh-done-sound/audio/

架构

- Host 半区(src/index.js → 构建产物 lib/index.js):dsh-done-sound 设置作用域(ctx.settings)、五场景音频文件存储、webServer 路由与同源 JSON API(/dsh-done-sound/api/status|config|audio|clear)、dsh-done-sound 命令。路由经 ctx.inject(['webServer'], cb) 延迟挂载;构建时由 esbuild 内联 @deepseek-ai/schemastery,产物自包含(link 安装时无需依赖 profile 的模块解析)。
- Client 半区(lib/client.js):settings.section 设置卡片,以 fetch 调用 HTTP API;conversation.session.header.utilities 完成检测器订阅会话状态,按场景选择音效并处理等待确认与自动重连倒计时。

开发

pnpm install # 安装 esbuild
pnpm run build # 打包 src/index.js -> lib/index.js(自带)
pnpm run check # 语法检查两个产物
npm test # Host API 与完成检测测试

修改 Host 源码后重新 pnpm run build;Client 半区直接改 lib/client.js(__ModuleLoader__ 格式即运行时契约,无需打包)。

音效库下载

内置提示音不够用?社区精选音色库(百度网盘,永久有效):

- 链接:https://pan.baidu.com/s/1xnef4xkCy8pkooXMGi2ApQ?pwd=1234
- 提取码:1234

下载解压后,在 设置 → 对话完成音效 → 对应场景 → 选择音频 中选用即可。

License

MIT
预览分享卡片长什么样 ↓sxl19951101/dsh-done-sound
分享 · DeepSeek Harness Hub
sxl19951101/dsh-done-sound

为对话完成、出错等五种场景分别播放提示音

这是你的仓库?认领条目

回到顶部