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
DSH(DeepSeek Harness)Web GUI 插件:在输入框里用 @(或 /file 命令)模糊搜索
会话工作区(cwd)下的文件路径,pick 后插入 @相对路径 引用随消息发出。
Agent 自带本地文件工具,按路径自行读取或操作(查、改、测试、移动)——
不把文件内容灌进上下文(引用自读语义,与内容注入型插件不同)。
@ 内联触发(推荐):
@ 即弹出工作区浅层条目菜单(开头或空格后输入 @ 触发,
与 TUI 惯例一致);继续输入路径片段(如 @src/butt)自然过滤;@file(空格结束);目录补全为
@dir/——确认空目录才补空格结束,有子内容(或未确认)则不加空格,
光标停在斜杠后继续输入子路径浏览;想提前结束目录浏览,手动输一个
空格即可(token 遇空白断开)。/file 命令(@ 触发异常的备用入口):
/file 后直接接路径片段(如 /fileAGENTS,无空格——harness 的
trigger 检测在 token 含空格时失效);@相对路径。示例:请修复 @src/main.go 里的空指针 → agent 按 src/main.go 定位并操作。
@路径 引用
(📁/📄 图标 + 去重),× 精确删除该引用(引用自读语义下点击打开由 agent
按路径自行完成);LICENSE/Makefile)在被
引用时由管线高亮装饰,与其他引用(技能/命令)同视觉;含 .// 的路径
引用受管线 token 语法([@/][\w-]+)限制不参与装饰(官方机制,如实降级);@ 也弹出工作区顶层条目(BFS 遍历天然浅层
优先),无需先想路径片段;@ 时几乎零延迟弹菜单(命中服务端 30s 缓存),无 1.5s 首查等待;@dir/
尾斜杠引用;目录按"是否有子内容"决定补全后是否自动加空格(空目录加,
有子内容不加、允许继续浏览);~/.dsh/storages/file-mention/<hash>.json)+ 1.5s 预算部分返回| 变量 | 默认 | 说明 |
|---|---|---|
FILE_MENTION_ALLOWED_ROOTS |
不启用 | 逗号分隔的允许搜索根目录(绝对路径)。设置后才启用白名单,白名单外的 root 返回 400;不设置则放行(与 host.listDirectory 的浏览暴露面一致) |
FILE_MENTION_IGNORE_DIRS |
内置剪枝表 | 追加剪枝目录 basename,逗号分隔 |
FILE_MENTION_MAX_FILES |
600000 |
单次遍历收集文件数上限 |
dsh plugin --profile web add github:Seryta/dsh-file-mention
安装后重启 dsh web 并刷新页面。纯手写 JS,零构建、零第三方依赖。
| 项目 | 发送时行为 | 本插件的取舍 |
|---|---|---|
| dsh-at-file | 内容注入(host 在 pre-step 读文件并注入 <file> 内容) |
本插件只插路径引用、agent 用工具自读:省 token、agent 可操作文件、host 不读文件内容;代价是模型需自行决定读哪些文件 |
| dsh-wikilink | [[wikilink]] 笔记内容注入 |
场景不同(笔记 vs 文件路径) |
GET /plugins/dsh-file-mention/api/search?root=&q=&limit= 仅暴露
路径列表(不读内容),与现有目录选择器的信息暴露面一致。MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。