dsh-notify-ar:Windows 可操作 Toast 通知(阿拉伯语优先)

前言

在 DeepSeek Harness(DSH)里跑智能体时,人往往不在主窗口前:任务结束、需要点「继续」,或沙箱弹出权限请求,都要切回应用才能操作。社区里已有 dsh-notify 一类通知插件,但 README 与维护者说明指出,其实现使用 activationType="background",Toast 上的按钮往往只显示、不触发有效动作,且文案在代码里写死为中文。dsh-notify-ar 面向 Windows 桌面,提供带按钮的 Toast:在应用仍运行(含最小化)时,可直接同意/拒绝权限、继续、停止或打开 DSH,并支持阿拉伯语/英语与 RTL。维护者为 qusaykhadour,插件分类为客户端;社区目录见 SkillHub,源码与说明见 GitHub。

这是什么

dsh-notify-ar 是 DSH 的 Cordis 插件(npm 包名 dsh-notify-ar,当前资料中版本为 0.1.1),在 Windows 上通过原生 Toast 把会话状态与权限决策推到系统通知中心。默认语言跟随 DSH 应用语言,也可在配置里指定 auto / ar / en。通知使用独立应用身份 Qusay.DshNotifyAr,不与 PowerShell 通知共用同一 AUMID 存储。

核心功能

下面按通知类型说明按钮与效果(与仓库 README 表格一致)。

场景 按钮 效果
权限请求 同意(موافق / Approve) 授予权限,无需打开主窗口
任务结束 继续 智能体从停点继续
任务进行中 停止 结束当前轮次(队列保留)
任意 打开应用 将 DSH 窗口带到前台

其他已核实能力:

  • 双语界面与 RTL 布局。
  • 每次通知携带 128-bit 随机 nonce,单次有效;重放或伪造点击会被拒绝;允许的动作白名单为 approve、reject、continue、stop、open。
  • 权限相关 Toast 仅在智能体显式请求 sandbox_permissions 且附带 justification 时出现;普通拒绝由沙箱直接处理,不会额外弹窗询问。

安装与启用

插件通过 DSH desktop profile 安装;安装后需执行一次 setup,并重启 DSH。官方命令如下(来自 GitHub README):

dsh plugin --profile desktop add dsh-notify-ar
node "$env:USERPROFILE\.dsh\profiles\desktop\node_modules\dsh-notify-ar\scripts\setup.mjs"

setup.mjs 会做三件事:用本机 csc.exe 编译 click-gateway.exe(不额外下载安装包);通过「开始」菜单快捷方式注册 AUMID;注册 dshnar:// 协议并指向该 exe。文档说明:Windows 无法以 powershell.exe 或 cmd.exe 作为 Toast 激活目标,按钮会显示但无响应,因此需要真实可执行文件作为点击网关。

运行环境(来自 package.json):Node >= 22.5;peer 依赖 @deepseek-ai/cordis ^4.0.1。许可证为 MIT。

配置项

配置通过 profile 下的 cordis.patch.yml 注入,示例字段如下:

- id: dsh-plugin-notify-ar
  name: dsh-notify-ar
  config:
    locale: auto          # auto | ar | en
    enabled: true
    rootsOnly: true       # 仅根会话,不含子智能体
    notifyApproval: true  # 权限类通知与按钮
    cooldownMs: 10000     # 同一会话两次通知的最小间隔(毫秒)
    aumid: Qusay.DshNotifyAr

按需在 DSH 桌面 profile 中调整 locale、rootsOnly、notifyApproval 与 cooldownMs 即可。

典型用法与自测

日常无需单独 CLI:启用插件并完成 setup、重启 DSH 后,在 Windows 通知中心处理 Toast 即可。维护者在仓库中提供了本地验证脚本(开发或排查时可参考):

cd Projects\notify-ar\plugin
node scripts/test-toast.mjs          # 构建 XML 与阿拉伯语展示
node scripts/test-pipeline.mjs       # 完整点击链路与安全(9 项测试)
node scripts/test-approval.mjs       # 审批逻辑(26 项测试)
node scripts/test-approval-wire.mjs  # 审批端到端
node scripts/smoke.mjs --action continue   # 真实 Toast 并等待点击

路径 Projects\notify-ar\plugin 为 README 中的开发目录示例;从 npm 安装的用户以 node_modules\dsh-notify-ar\scripts\ 下同名脚本为准。

适用场景与限制

适合:主要在 Windows 上使用 DSH 桌面版、希望离开主窗口仍能继续/停止任务或在通知里处理沙箱权限的用户;需要阿拉伯语优先或英阿双语 Toast 的场景。

务必知晓的限制(README「边界」一节):

  1. 按钮在 DSH 进程仍在运行(含最小化)时才能直接驱动智能体;若应用已退出,按钮会改为打开应用。
  2. Windows 每个 Toast 仅保留 一个有效动作:首次点击后通知消失,因此「一个决策一条通知」。
  3. 安装 setup 需写注册表等操作,DSH 沙箱内权限不足,应在具备相应权限的环境中完成安装。
  4. 点击网关通过 JSONL 文件传递事件,理论上本机其他进程也可写入;插件依赖 nonce 一次性校验与动作白名单作为实际防护。

DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。安装前请自行查阅 源码与 LICENSE,确认插件在 当前 DSH 进程权限 下运行时的行为是否符合你的安全策略。

小结

dsh-notify-ar 把 Windows Toast 做成可操作的远程控制台:继续、停止、开窗口、批权限,并针对 RTL 与阿英双语做了优先支持。若你受限于「只能看通知、还要回应用点一下」的体验,可按官方命令安装 desktop profile 插件并运行 setup.mjs。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye