dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
给 DeepSeek Harness 的桌面通知插件:把审批请求 / 任务完成 / 出错等事件发成操作系统桌面通知,通知正文注明工作区 + 项目,点击通知可直接跳转到 Web GUI 里对应的会话(显示该会话的讨论内容)。
跨平台:
| 平台 | 通知方式 | 点击跳转 |
|---|---|---|
| Windows | PowerShell toast | ✅ 原生(点击整条通知或「打开项目」按钮) |
| macOS | terminal-notifier,缺失时退回 osascript |
✅ 装了 terminal-notifier 时;否则正文附链接 |
| Linux | notify-send |
⚠️ 正文附链接,notify-send 不支持点击打开 URL |
仓库:https://github.com/TerricSH/dsh-notify
dsh-notify/
├── package.json # 包元数据 + dsh.client 清单(注册 Client 半边)
├── lib/
│ ├── index.js # Host 插件:监听事件 + 发通知 + 生成深链 URL
│ └── client.js # Client 插件:读 cookie 并打开对应会话
├── cordis.patch.example.yml
└── README.md
lib/index.js)是 host 平面插件:它监听进程级事件
(approval/request、agent/status、agent/error)并读 webServer 端口。lib/client.js)通过 package.json 里的 dsh.client 清单
注册进 Web 客户端,负责深链跳转。npm publish # 发布 @terricsh/dsh-notify 到 npm
git push origin main # 源码托管到 GitHub
发布
@terricsh/dsh-notify前,需先在 npm 上拥有@terricsh这个 scope (npm org create terricsh或直接npm adduser后用该 scope 发布即可)。
两种安装方式二选一。装好后,当代理产生以下事件时会弹系统通知,点击通知 即可定位到 Web GUI 中对应会话(显示该会话的讨论内容):
装进 web profile:
dsh plugin --profile web add @terricsh/dsh-notify
加 host 引用行(见 cordis.patch.example.yml),编辑
$DSH_HOME/profiles/web/cordis.patch.yml(默认是 []):
- insert:
- id: notify-desktop
name: '@terricsh/dsh-notify'
也可放到 home 级 $DSH_HOME/cordis.patch.yml(对所有 profile 生效)。
重启:
dsh web
把本仓库目录链进 profile 的 node_modules。Windows(PowerShell):
New-Item -ItemType Directory -Force "$env:DSH_HOME\profiles\web\node_modules\@terricsh"
New-Item -ItemType Junction `
-Path "$env:DSH_HOME\profiles\web\node_modules\@terricsh\dsh-notify" `
-Target "E:\dsh\dsh-notify" # 改成你的仓库绝对路径
macOS / Linux 用 ln -s 建软链接到对应位置即可。
同样编辑 cordis.patch.yml 加上面的 insert 行。
重启 dsh web。
cordis.patch.yml(host patch),不要加进某个 agent 预设的
agent.cordis.yml。dsh.client 清单会被 web 插件表扫描并打进前端 bundle;
若改动 lib/client.js 后页面没变化,需要重建 Web 产物(或运行 dev:web
观察器)。<base>/open-session?session=<id>,Host 路由
写入一个 120 秒短 cookie 后 302 跳回 /(复用/重载已有标签页),Client
半边读 cookie 后 sessions.open(id) 并清除 cookie。动态插件(cordis_define) |
本 npm 包 |
|---|---|
code.host / code.client 字符串 |
lib/index.js / lib/client.js 真实模块 |
harness.handle + host.call 深链握手 |
重定向路由写短 cookie,Client 读 cookie |
/open-session 重定向路由(302 回 /) |
保留,用 cookie 传会话 ID |
| 临时、重启即失 | 落盘、可发布、可持久安装 |
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。