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

声音提示 anne43983959/dsh-audio-cue

DeepSeek Harness
anne4398395933 天前有提交已提供中文文档扫描:含敏感能力

审批询问与回合结束时播放声音提醒

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add anne43983959/dsh-audio-cue
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么[目录]—
dsh 原生插件 · other
暂无时间戳·判据 →
装得上吗[实装验证]✓
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
数据截至 2026/11/04·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 33 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

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

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

可执行外部命令读写/删除本地文件
查看扫描证据(共 4 处,展示前 4 条)
  • 读取本地文件
    lib/index.js:59
    const PLAYERS = [PS7, PS5].filter((p) => existsSync(p));
  • 执行外部命令来自配置/变量
    lib/index.js:88
    const child = spawn(
  • 读取本地文件
    lib/index.js:116
    if (!existsSync(file)) { log("asset missing: " + file); return; }
  • 读取本地文件
    lib/index.js:250
    log("players=" + JSON.stringify(PLAYERS) + " | assets: approval=" + existsSync(ASSETS.approval) + " turnEnd=" + existsSync(ASSETS.turnEnd));
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 审批询问声音提醒
  • 回合结束声音提醒

DSH 宿主插件:审批询问与一轮对话结束时播放声音提示(含两次实测事故复盘)

README

由 DeepSeek 最新模型翻译生成
dsh-audio-cue DSH(DeepSeek Harness)宿主插件:审批询问与一轮对话结束时播放声音提示。 纯宿主半、零外部依赖;不注册工具、不注册服务、不碰任何现有文件。 从 GitHub 安装(0.2.x / 0.1.7 线需要 --config.store-dir,见下方说明) dsh plugin --profile web add github:anne43983959/dsh-audio-cue 装完重启对应实例生效 —— 宿主模块与客户端 bundle 都在启动时装载。 它监听什么 | # | 事件 | 派发方式 | 作用 | | ① | approval/request | waterfall | 审批询问音 —— 订阅者必须放行 next(),否则会否决整条审批链 | | ② | session/event → event.type === "turn/end" | emit | 回合结束主路径(拿得到 session,可挡掉子代理收工那一声) | | ③ | agent/turn-stopping | serial | 回合结束兜底:延迟 2 s,且只在主路径没送来 turn/end 时才出声 |
展开完整文档(README 剩余 1 节)
dsh-audio-cue

DSH(DeepSeek Harness)宿主插件:审批询问与一轮对话结束时播放声音提示。
纯宿主半、零外部依赖;不注册工具、不注册服务、不碰任何现有文件。

从 GitHub 安装(0.2.x / 0.1.7 线需要 --config.store-dir,见下方说明)
dsh plugin --profile web add github:anne43983959/dsh-audio-cue

装完重启对应实例生效 —— 宿主模块与客户端 bundle 都在启动时装载。

它监听什么

| # | 事件 | 派发方式 | 作用 |
| ① | approval/request | waterfall | 审批询问音 —— 订阅者必须放行 next(),否则会否决整条审批链 |
| ② | session/event → event.type === "turn/end" | emit | 回合结束主路径(拿得到 session,可挡掉子代理收工那一声) |
| ③ | agent/turn-stopping | serial | 回合结束兜底:延迟 2 s,且只在主路径没送来 turn/end 时才出声 |
| ④ | tools/execute → ask_user_question | waterfall | 提问音 —— 同样必须放行 next() |

为什么回合结束要挂两条:② 能按 session.header.origin === "subagent" 过滤子代理,但走 scope carrier;③ 首参是字符串所以没有 scope 过滤、必然可达,却拿不到 agent 身份。于是 ② 当主路径、③ 当兜底 —— 兜底先看「这段时间主路径有没有送来 turn/end」,送到了就不出声。

这份代码里有两次实测事故,改之前请先读

事故一:watcher 弄死了审批链(v0.1.0)

approval/request 是 cordis 的 waterfall 事件:

// dsh-user-approval/lib/index.js:176
ctx.waterfall(scopeTarget(req.agent, req.agent), "approval/request", req, () => Promise.resolve("unavailable"))

而 waterfall 的语义是「listener 最外层先跑;不调用 next() 即否决整条链,含内置行为」(cordis/lib/index.js:311-325)。初版的 listener 签名只有 (payload),next 被丢掉、返回 undefined,于是:

观察者不调 next() ⇒ 返回 undefined ⇒ OUTCOMES 归一化成 "unavailable" ⇒ dsh-sandbox 抛 "sandbox escalation requires approval, but no approval channel is available"

后果:提权被拒、审批面板永不出现、整条 GUI 审批通道形同虚设 —— 而插件日志里一行错都没有。
实测:本插件在册时两次提权 outcome=unavailable;摘除后同样的调用立刻 allowed-once ×2。

同一个文件里 turn/end 与 approval/asked 也挂错了 —— 它们是 session.append 的日志记录类型,不是总线事件,ctx.on("turn/end") 永远收不到。

事故二:从来就没响过(v0.1.0 → v0.1.2)

初版 play() 用 detached: true + powershell 5.1 在宿主进程里 spawn 播放。它确实被调用过(否则不会截断审批瀑布),但从未出过声,而且失败被 try/catch 吞干净。

v0.1.1 试图修事件源,却只写了失败路径的日志 —— 结果下一轮排查把「没有失败日志」误读成「play() 从未被调用」,白白多绕一轮。

v0.1.2 同时改两处后出声:去掉 detached、播放器换成 pwsh 7 绝对路径(失败自动回退 powershell 5.1),并把成功路径也写进日志。
⚠️ 两处是同时改的,没做单变量对照;任何一处改回去都要重测。

完整时间线见 CHANGELOG.md。

配置

配置写在 profile 的 bundle patch 层(本插件自带的 cordis.patch.yml,或 profile 的 cordis.patch.yml 覆盖):

| 键 | 默认 | 说明 |
| enabled | true | 总开关 |
| approval | true | 审批询问响 |
| ask | true | 提问(ask_user_question)响,与审批同一声 |
| turnEnd | true | 一轮结束响 |
| ignoreSubagents | true | 子代理会话的回合结束不响 |
| fallbackTurnStopping | true | 回合结束兜底路径开关 |
| fallbackDelayMs | 2000 | 兜底延迟(毫秒) |
| selfTest | false | 自检音:装载后自动播一声,仅用于排查「宿主进程能不能出声」 |
| selfTestMs | 2500 | 自检音延迟(毫秒) |

怎么读日志

实例日志里所有行都以 [dsh-audio-cue] 开头:

| 日志行 | 含义 |
| v0.1.3 已加载… + players=[…] | assets: approval=true turnEnd=true | 插件在册、播放器与素材就位 |
| play >> session/event:turn/end | 回合结束声已触发(正常每轮一行) |
| play >> approval/request | 审批声已触发 |
| spawn failed (…): <原因> | 播放器起不来(ENOENT / EPERM …) |
| player exit=<非0> / fallback -> … | 第一个播放器失败,已自动换另一个 |
| subagent turn/end skipped | 子代理会话被挡掉(正常) |
| turn-stopping fallback skipped(…) | 主路径活着,兜底按设计让位(正常) |
| event agent/turn-stopping → 兜底出声 | 主路径不可达,兜底补了一声 |

安装(三种方式)

① GitHub(推荐)
dsh plugin --profile web add github:anne43983959/dsh-audio-cue

② 本地源码(开发用)
dsh plugin --profile web add link:<本仓库绝对路径>

③ 0.1.7 线 / 0.2.x 若报 ERR_PNPM_UNEXPECTED_STORE 带上该 profile 的 pnpm store 目录(值取 node_modules\.modules.yaml 的 storeDir)
dsh plugin --profile web add github:anne43983959/dsh-audio-cue --config.store-dir="<storeDir>"

注意 --profile 必须写在 plugin 之后。 卸载 / 回滚:dsh plugin --profile web remove dsh-audio-cue。

自检

node scripts/smoke.mjs

离线跑,不出声:断言四条事件源都在位,且每一处 waterfall 订阅都放行了 next()。改完代码务必跑一次。

素材

| 用途 | 文件 | 大小 | 音色 |
| 审批 | assets/approval.wav | 418,322 B | clean UI confirmation chime(2.37 s) |
| 回合结束 | assets/turn-end.wav | 302,250 B | glassy bright crisp short ascending |

两段均为 44.1 kHz / 16-bit / 立体声 WAV,取自 BudgetPixel 免费音效库(原始 URL 见 git 历史)。换素材只需替换 assets/ 下的同名文件,重启实例生效。

兼容

- dsh.compatibility.runtime: >=0.1.1-rc.1 <0.3.0
- 用到的四个事件名在 DSH 0.1.5 / 0.1.7 / 0.2.0 三代内核里都存在(agent/turn-stopping 在 0.2.0-rc.2 上核实过;换版本请先 grep 一次再信任)。
- 纯宿主半,没有客户端 bundle —— 不受客户端模块 id / 座位契约变化影响。

License

MIT
预览分享卡片长什么样 ↓anne43983959/dsh-audio-cue
分享 · DeepSeek Harness Hub
anne43983959/dsh-audio-cue

审批询问与回合结束时播放声音提醒

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部