dsh-plugin-verified-search
f0909172434
Verified current-source search workflow for DeepSeek Harness
PROJECT TOPICS
PROJECT README
给 DeepSeek Harness 的纯文本 Agent 装上一个「文件浏览器」。 一个右下角的浮动文件树,加一个与「对话」「轨迹」平级的预览页签——浏览工作区目录、预览文本和图片, 还能把文件直接拖进消息框(自动插入文件路径),无需切出对话。
纯文本模型(如 DeepSeek)没法直接「看」文件。这个插件把文件浏览和预览收进 Harness 界面里:
read 等工具读取,不用手动敲路径cwd,切换工作区立即刷新需要 DeepSeek Harness 的 Web profile 和 pnpm:
# 1. 克隆仓库
git clone https://github.com/cxzrdxy/dsh-file-explorer.git
cd dsh-file-explorer
# 2. 安装到 web profile(本地路径)
dsh plugin --profile web add file:.
重启 Web profile 即可。包内已提交编译好的 lib/,从 checkout 安装不需要消费端构建。
使用:
| 类型 | 扩展名 | 大小上限 |
|---|---|---|
| 📄 文本 | .txt .md .markdown .json .js .ts .tsx .jsx .css .html .htm .yml .yaml .xml .csv .log .py .c .cpp .h .cs .java .go .rs .sh .ps1 .sql .ini .cfg .toml .bat .cmd |
512 KB |
| 🖼️ 图片 | .png .jpg .jpeg .gif .webp .bmp .svg .ico |
8 MB |
| ⚠️ 其他 | 二进制文件 → 显示大小提示,不预览内容 | — |
超出大小上限的文件会显示「文件过大」提示,不会被读取。
单一 bundle 包,node half + browser half 同包(参照 @dsh-external/dsh-vision-toolkit):
| 半 | 文件 | 作用 |
|---|---|---|
| node half | lib/index.js / src/index.ts |
同源文件 API(list/read/workspace)+ HTTP 路由 /_dsh/file-explorer/api |
| browser half | lib/client.js / src/client/* |
文件树(shell.overlay)+ 预览页签(conversation.view)+ 消息框拖放目标(conversation.input.overlay) |
文件树与预览页签通过 src/client/filePreviewStore.ts 模块级单例共享「当前预览文件」;
拖放目标 src/client/FileDropZone.tsx 经 ui-conversation 标准套件提供的 inputActions.setDraft
把拖入的文件路径写入消息草稿(路径经自定义 DataTransfer MIME application/x-dsh-file-path 传递)。
源码随包提交,但 client bundle 的编译依赖 DSH 源码树(packages/client/tsdown.client.ts 的 clientBundle() 预设,以及 @deepseek-ai/dsh-client-* 的 workspace 类型)。要重新构建:
src/ 放回一个 DeepSeek Harness checkout(host 半放 packages/host/、client 半放 packages/client/ui-file-explorer/)pnpm install + tsc -b + tsdown bundlelib/client.js、lib/index.js 覆盖回本包ui-conversation 内部的 view store,当前 DSH 架构未对外暴露该能力File 对象不含 path)MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。