← 返回列表
⚠ 装前注意
支持 DSH 版本:0.1.2-rc.1+ 平台
基本兼容但装前注意:未发布到 npm registry,仅可从源码安装 · 最近上游提交 2026/9/12 · 已提供中文文档
综合分
29.1
GitHub 分
29.1
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add sunligh91/dsh-helper未发布到 npm registry,仅可从源码安装,改用 GitHub 源安装
信任档位:已验证本站已于 0 天前真实安装成功
- 是什么
- dsh 原生插件 · other
- 装得上吗
- 本站已真实安装成功(非静态推断)
- 安全吗
- 本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
- 还在维护吗
- 活跃:最近一次提交在 13 天前
档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →
🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查⚠ 装前注意
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✗npm 包dsh-helper(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
未发布到 npm registry,仅可从源码安装
验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/23 05:51:55
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
由 DeepSeek 最新模型翻译生成dsh-helper
npm version npm downloads GitHub stars License: MIT
支持 DSH 版本:0.1.2-rc.1+ 平台
任务通知 设置面板 零构建
🌏 English · 中文
一个 DSH 插件:当 agent 会话完成、异常或需要你确认时弹出 Windows 原生通知,完成时还可附带提示音——长任务可以放手不管,出事的瞬间你会知道。
✨ 功能一览
- 🔔 任务通知 — agent 进入空闲(任务完成)、出错、或即将向你提问时,弹出 Windows 原生 Toast。
- 🔊 完成音效 — 会话完成时播放提示音。随包内置一段合成的双音提示音;音量可调(0–100),也可指定任意本地音频文件(wav / mp3 / wma)。
- ⚙️ 设置面板 — DSH 设置页新增「任务通知 (dsh-helper)」分区:三个通知开关 + 音效控制。
- 🧪 测试按钮 — 一键发送测试通知并按当前设置试听音效,验证本机链路是否正常。
- 🪶 零原生依赖 — 通知走 PowerShell WinRT Toast,无需编译任何二进制。
- 🔁 热重载 — 配置写回 profile 的 cordis.patch.yml,由 DSH 的 patch watcher 自动生效,无需重启。
🚀 安装
前置条件:DSH 0.1.2-rc.1+,且 web profile 已初始化(至少跑过一次 dsh web),Node.js ≥ 20、pnpm ≥ 10。
方式一 — npm registry(推荐)
dsh plugin --profile web add dsh-helper@latest
包内是预构建产物(lib/ 已随包发布),不含任何安装脚本,因此 pnpm 不会要求你授权构建,装完即用。
方式二 — 从 git 仓库安装
dsh plugin --profile web add github:sunligh91/dsh-helper
git 源安装会拉源码并由 pnpm 运行 prepare;pnpm ≥10 在得到显式允许前会拒绝执行,需要把 pnpm 打印的包键写进该 profile 的 pnpm-workspace.yaml:
allowBuilds:
dsh-helper: true
该授权等于「允许此包的代码在安装时于本机执行」。若只想装预构建代码,请用方式一。
方式三 — 从源码安装
git clone https://github.com/sunligh91/dsh-helper.git
cd dsh-helper
链接到你的 web profile
cd ~/.dsh/profiles/web
pnpm add file:/绝对路径/dsh-helper
然后把 "dsh-helper" 加进 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 数组,并硬刷新浏览器(Ctrl/Cmd + Shift + R)。
⚙️ 配置
进入 设置 → 任务通知 (dsh-helper)。
| 配置项 | 默认值 | 说明 |
| --- | --- | --- |
| notifyOnComplete | true | 会话完成时通知(同一会话 60 秒内去重)。 |
| notifyOnError | true | 会话出错时通知。 |
| notifyOnConfirm | true | agent 即将提问时通知。 |
| soundOnComplete | true | 完成通知后播放提示音。 |
| soundVolume | 70 | 提示音音量,0–100。 |
| soundFile | "" | 本地音频文件路径(wav / mp3 / wma)。留空用内置提示音;自定义文件不存在时回退到内置提示音,再回退到 Windows 系统自带提示音。 |
默认值随包附在 cordis.patch.yml;你的改动会写入 ~/.dsh/profiles/web/cordis.patch.yml。
🔌 工作原理
| DSH 事件 | 行为 |
| --- | --- |
| agent/status(idle) | 弹出「任务完成」通知 + 播放提示音 |
| agent/request-error | 弹出「任务异常」通知(纯放行,不做任何拦截或重试) |
| tools/pre-execute(ask_user_question) | 弹出「需要确认」通知 |
| session/event → approval/asked | 弹出「需要授权」通知 |
审批通知监听的是会话审计事件 approval/asked,而不是瀑布事件 approval/request。原因是 cordis 的 waterfall 语义为「不调用 next() 即否决整条链」,任何排在前面并直接返回结果的监听器(例如自动审批门控)都会让后面的监听器永远收不到事件。approval/asked 是决策前写入日志的纯审计事件,不受此影响。
设置路由(/_dsh/dsh-helper/settings)仅监听本机,非 127.0.0.1 / ::1 的请求一律返回 403。
🔄 还需要自动重试? 本插件只做通知,这是有意为之。可搭配专门的重试插件,例如 dsh-task-reliability(它在同一事件上返回 { kind: 'retry' } 触发 DSH 原生重试)。
🛠️ 开发与构建
git clone https://github.com/sunligh91/dsh-helper.git
cd dsh-helper
| 文件 | 作用 |
| --- | --- |
| lib/index.js | 宿主侧 — cordis 插件:事件钩子 + 设置路由 |
| lib/client.js | 客户端侧 — 通过 window.__ModuleLoader__ 注册,无需构建 |
| cordis.patch.yml | 注入 profile 的默认配置 |
两侧都是原生 ES module / UMD,没有打包器,改完刷新即可。
⚠️ 已知限制
- 通知面向 Windows(PowerShell WinRT Toast)。在 macOS/Linux 上插件仍会加载,但通知和音效都是静默空操作。
- 音效走 PowerShell + WPF MediaPlayer;不可用时退回 System.Media.SoundPlayer(仅支持 wav,且音量设置不生效)。
- 若 Windows「专注助手 / 勿扰」开启,通知可能被拦截。
- 投递身份(0.5.0 起自动处理):Windows 要求桌面程序在开始菜单有一条携带 System.AppUserModel.ID 的快捷方式,否则 toast 会被间歇性静默丢弃(尤其当有前台窗口时),表现为「焦点不在本应用就收不到通知」。插件启动时会自动幂等补齐这条快捷方式(%APPDATA%\Microsoft\Windows\Start Menu\Programs\dsh-helper.lnk),无需手动操作、也无需管理员权限。
- 快捷方式若被清理软件删除,下次启动 DSH 会自动重建。
📄 许可证
MIT © sunligh91
📝 更新日志
- 0.5.0 — 修复「焦点不在 DSH 就收不到通知」:Windows 要求桌面程序的开始菜单快捷方式携带 System.AppUserModel.ID,否则 toast 会被间歇性静默丢弃。插件启动时自动幂等补齐该快捷方式(运行时自建,包内不含任何安装脚本,npm 安装无需授权)。另:审批通知改挂 session/event → approval/asked,不再被自动审批门控的瀑布抢答吞掉。
- 0.4.4 — 移除 0.4.3 引入的全局节流(会吞掉并发主会话的完成通知),只保留子 agent 不通知这一条过滤规则。
- 0.4.3 — 修复通知轰炸:任务完成通知不再对子 agent 触发(dsh 并行跑多个子 agent,每个收尾都发一条,通知中心被刷爆——主会话 id 带 session- 前缀,子 agent 是裸 UUID,据此过滤);另加全局节流,60 秒内最多一条完成通知。
- 0.4.2 — 通知顶部改用自有应用标识:AUMID 从借用的 File Explorer GUID 换成 dsh-helper,并在每次发送前幂等写入 HKCU\Software\Classes\AppUserModelId\dsh-helper 的 DisplayName,通知顶部由一串十六进制 GUID 变为 dsh-helper。
- 0.4.1 — 修复通知回退成弹窗的根因:GetTemplateContent 被误调在 ToastNotifier 实例上(该方法属于 ToastNotificationManager 静态类),WinRT toast 从未真正成功过,一直走 WScript 弹窗兜底。现改回正确调用并实测弹出真通知。
- 0.4.0 — 新增「需要授权」通知(钩 approval/request 事件,工具权限审批时提醒);设置面板拆分为三个测试按钮:完成 / 多选一确认 / 权限审批。
- 0.3.2 — 修复确认通知不显示:Windows 会静默丢弃未注册自定义应用 id 的 Toast,现改用文件资源管理器的注册 AUMID 发送;新增 WScript.Shell 弹窗兜底。
- 0.3.1 — 加入临时诊断日志(确认问题解决后移除)。
- 0.3.0 — 新增完成音效(内置合成双音、音量可调、可指定本地文件)。
- 0.2.0 — 移除自动重试,专注通知。
- 0.1.0 — 首个版本:完成 / 异常 / 确认通知。