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(DSH)Web 插件:点击聊天中的 Think 思考行时,会在右上角额外弹出一个浮动窗口,把该思考步骤的英文实时同步翻译成中文。
等待思考内容… → 翻译中… → 同步中… → 已同步查看原文 / 只看翻译(底部对照区)、关闭;翻译失败时显示错误并给出重试本插件是一个 DSH 双面(dual-face)插件包:宿主半在 Node 进程注册翻译路由,浏览器半注入浮动窗口 UI。安装到你的 web profile 即可永久生效(每次启动自动加载)。
DSH_HOME/profiles/web/node_modules/
└── dsh-think-translate/ ← 把本仓库(除 .git/README 外)拷到这里
├── package.json
└── lib/
├── index.js ← 宿主半(注册 POST /think-translate)
└── client.js ← 浏览器半(浮动窗口 + 点击拦截)
Windows 下 DSH_HOME 默认为 C:\Users\<你>\.dsh。
编辑 DSH_HOME/profiles/web/cordis.patch.yml(顶层是一个 YAML 数组),追加:
- insert:
- id: think-translator
name: dsh-think-translate
补丁层被 DSH 热监视:保存后插件行立即挂载;客户端 bundle 会出现在启动清单里。
刷新浏览器页面即可(若浏览器半未出现,重启一次 dsh web 再刷新)。
Think 行点击 (浏览器半, document 级捕获 [data-variant="think"])
│
▼
浮动窗口每 500ms 轮询该行的思考文本(展开后的正文/折叠时的摘要)
│ 文字稳定约 1s 后发起翻译
▼
POST /think-translate ──► 宿主半(webServer 精确路由)
{ text, mode, context } │
▲ ▼
│ llm.stream(当前模型, system 提示词=翻译引擎)
│ │
└──── { ok, text } ◄─────┘
mode: "delta"):流式期间只翻译新增片段,带上前后文尾巴保证连贯,省 tokenmode: "full"):首次翻译、增量拼接超过一次后的最终润色、以及原文非前缀增长时的兜底| 路径 | 方法 | 说明 |
|---|---|---|
/think-translate |
POST | 请求体 { "text": string, "mode": "full" \| "delta", "context"?: { previousEnglishTail, previousChineseTail } },返回 { "ok": true, "text": "…" } 或 { "ok": false, "error": "…" } |
├── lib/
│ ├── index.js # 宿主半:webServer 路由 + llm 翻译(缓存/队列/限长)
│ └── client.js # 浏览器半:shell.overlay 窗口 + Think 行点击拦截 + 轮询同步
├── tests/
│ └── smoke-test.mjs # 宿主半冒烟测试(node tests/smoke-test.mjs)
├── package.json # dsh.client 声明 + exports["./client"]
└── README.md
node tests/smoke-test.mjs
覆盖:路由注册恰好一次且存活到卸载、请求→响应 JSON、llm 调用参数形状、缓存命中、非 POST 405、卸载时注销路由。
dsh web(补丁 YAML 本身是热生效的)。MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。