deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
任务完成/出错、后台任务结束、Agent 被阻塞等你处理(审批/提问/计划审阅)时,在浏览器和 Windows 系统弹出通知提醒(右下角 toast)。包含两个插件,共用一个开关:
| 插件 | 功能 | 默认状态 |
|---|---|---|
dsh-notify |
任务完成/出错、阻塞(审批/提问/计划审阅)、后台任务结束时弹窗(统一开关) | 开(浏览器 + 系统双通道) |
dsh-notify-jobs |
后台任务监听独立包(可选;安装后主包自动让位,共用同一开关) | 跟随统一开关 |
统一开关三档:关 → 浏览器 → 浏览器 + 系统。设置入口:设置 → 通用(「桌面通知」行)。
Windows.UI.Notifications 弹出原生 toast(使用 powershell.exe 的 AppUserModelID),无需安装任何额外模块;即使浏览器拦截了站点通知,双通道模式下系统通知照常弹出。backgroundOnly: false);如需只在离开页面时提醒,参考"常见问题"改回 backgroundOnly: true。packages/
dsh-notify/ # 主插件(宿主端 + 浏览器端)
package.json # dsh.client 声明(platform: web, exports ./client)
lib/index.js # 宿主端:POST /dsh-notify/native 原生 Windows toast 接口
lib/client.js # 浏览器端:监听 + 通知 + 设置页两行开关
dsh-notify-jobs/ # 后台任务通知独立包(可选;安装后主包会自动让位)
package.json
lib/index.js # 宿主端占位(无行为)
lib/client.js # 浏览器端:后台任务监听 + 设置页开关
cordis.patch.yml # 注册配置(两个 insert 段)
README.md
说明:
dsh-notify的 client.js 内置了后台任务通知(带hasStandaloneJobs探测守卫)。当dsh-notify-jobs独立包同时被加载时,主包会自动跳过自己的后台任务部分,避免重复注册——两种形态功能完全一致,可二选一。
把 packages/dsh-notify(及可选的 packages/dsh-notify-jobs)复制到 <DSH_HOME>/profiles/web/packages/。
先把它们镜像到 <DSH_HOME>/profiles/node_modules/(同名目录,直接复制)。
然后把 cordis.patch.yml 里的 insert 段合并进 <DSH_HOME>/profiles/web/cordis.patch.yml:
- insert:
- id: notify
name: dsh-notify
- insert:
- id: notify-jobs
name: dsh-notify-jobs # 可选,只装主包时省略这一段
⚠️ 顺序很重要:务必先镜像、后改 patch 文件。运行中的 dsh web 会热加载 patch——如果注册时镜像还不存在,热加载链会卡死,之后只能重启 dsh web 生效。稳妥做法:装完直接重启 dsh web。
刷新浏览器页面(F5)。
打开 设置 → 通用,把开关调到想要的档位;首次选择开启档位会请求浏览器通知权限并立即弹一条测试通知。
# 原生弹窗接口探测
Invoke-RestMethod http://127.0.0.1:3080/dsh-notify/native
# → {"available":true,"platform":"win32"}
# 直接弹一条 Windows toast 测试
$body = @{ title = '测试'; body = '通知功能已就绪' } | ConvertTo-Json -Compress
Invoke-RestMethod http://127.0.0.1:3080/dsh-notify/native -Method Post -ContentType 'application/json' -Body $body
# → {"ok":true}
dsh web 进程(接口仅限本机回环访问)。exports["./client"] 指向浏览器 bundle,package.json 的 dsh.client 声明 platform: "web"——被加载器扫描后自动进入页面插件图。packages/dsh-notify 目录执行 npm publish(先 npm login);dsh-notify-jobs 同理。本仓库已移除 "private": true 并填好 repository 字段,可直接发布;如果发布时提示包名已被占用,改成作用域名(如 @你的用户名/dsh-notify)即可。localStorage.setItem('dsh-notify.settings.v3', JSON.stringify({mode:2, backgroundOnly:true})),刷新页面。默认 backgroundOnly:false(总是提醒)。profiles/node_modules/)里的副本才是被加载的版本;改完 packages/ 要重新镜像,再刷新一次页面(F5)——插件是浏览器端代码,页面不刷新不会加载。MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。