前言¶
在 DeepSeek Harness(DSH)里给模型带上工作区文件,常见做法是打开输入框的 @ 选择器,在列表里点选路径。文件多、目录深时,要在树和 composer 之间来回切换。右侧栏「文件」标签本来就有完整文件树,若能把某一行直接拖到输入框,并插入与 @ 选文件相同的引用 chip,能少几步操作。dsh-file-drag 是社区维护者 Mr-giraffe1 提交的 Web UI 客户端插件,专门做这件事:按住文件行拖动,松手到输入框即插入引用,不替换官方文件树与附件栏。
这是什么¶
dsh-file-drag(仓库 Mr-giraffe1/dsh-file-drag)归类为 DSH 客户端插件:逻辑全在浏览器端,宿主半边为空 bundle。装上并在插件列表看到「文件拖拽引用」后,在右侧「文件」标签里拖动文件或文件夹行到会话输入框,即可插入 @ 文件引用;与手动 @ 选文件走的是同一类 chip,不是把纯文本硬塞进草稿。
核心功能¶
下面介绍 README 中已说明、且与 package.json 声明一致的能力。
拖拽引用¶
按住文件行拖动超过约 6px 进入拖拽,指针旁出现文件名 chip;拖到输入框上方时输入框出现品牌色描边,松手后插入引用。单击文件行仍打开预览(拖拽结束后的那一次 click 会被吞掉,避免误触)。拖到别处、按 Esc、窗口失焦会取消,不改动草稿。
真实引用通道¶
插入走 DSH 输入框自己的 API:conversation.input.shell(sessionId).addFiles(...),草稿里立刻渲染文件 chip 并自动补空格;必要时还有 insertReference / inputActions.insertText 两级降级。与官方「把系统文件拖进输入框」同一路径。
路径规则¶
路径自动转为相对当前会话工作目录的 @src/a.ts;带空格时使用 @"my file.txt";文件夹生成 @dir/(尾部 / 的文件夹引用)。
问题卡片¶
当输入框被提问卡片(ask_user_question / 计划审批)替换时,拖到卡片上会把 @相对路径 写进当前问题的「自由回答」框;计划审批等没有回答框的卡片会浮层提示,不再静默失效。注意:问题卡片里是纯文本路径(随答案发给模型),不是 DSH 引用 chip。
实现边界¶
插件只在 shell.overlay(拖拽浮层)和 conversation.input.overlay(输入框投放区)注册两个附加组件,不改文件树、不改附件栏、不写别人 DOM。依赖 DSH 内部 DOM 标记与 conversation.input.shell,非版本化契约;未来 DSH 变更可能静默失效,控制台会有 [dsh-file-drag] 告警。仅支持鼠标/触控笔;触摸拖拽未实现。暂不支持从文件预览标签、搜索结果等处拖动。
环境要求¶
- DeepSeek Harness Web GUI(桌面版或浏览器访问
dsh web均可)。 - README 记载的开发验证版本:
0.2.1-rc.3。 - 依赖 DSH 自带的右侧「文件」标签与
@引用能力(默认可用)。 - 插件 package 版本为
1.1.0(见仓库package.json)。
安装与启用¶
这是 DSH bundle 包(宿主半边为空)。安装前请自行阅读仓库源码与 MIT 许可证;插件在 DSH 进程/Web 会话上下文中运行,权限与当前 Harness 一致。
先做:将仓库下载或放到本地目录,记下该目录的绝对路径。
再在 DSH 中作为本地 bundle 安装,任选其一:
- 让 Harness 的 Agent 执行
plugin_manager的install_bundle,target填上述绝对路径;或 - 使用插件管理器的本地安装入口选择该目录。
安装结果应显示 applied,插件列表中出现「文件拖拽引用」。刷新页面(首次安装通常热生效;若仍是旧代码,重启 DSH)。profile 会记录 "dsh-file-drag": "link:<本仓库路径>",本地改 client.js 后刷新即可生效。
资料中未提供 dsh plugin add github:... 一类远程一键命令,请勿凭插件名拼接。
典型用法¶
- 打开右侧栏「文件」标签(桌面版可用
Ctrl+P)。 - 按住一个文件行并拖动。
- 拖到输入框上方松手。
- 输入框获得焦点,出现
@相对路径的文件引用 chip,继续输入或发送。
| 操作 | 结果 |
|---|---|
| 单击文件行 | 打开文件预览 |
| 拖动文件行 → 输入框 | 插入文件引用 |
| 拖动文件夹行 → 输入框 | 插入文件夹引用(尾部 /) |
| 问题卡片显示时拖入 | 写入该问题自由回答框(纯文本路径) |
松手在别处 / Esc / 失焦 |
取消 |
| 会话正在提交、输入框暂不接受 | 不插入,控制台 [dsh-file-drag] 告警 |
卸载:在插件管理器中移除 dsh-file-drag,源码目录不受影响。
适用场景与注意¶
适合经常在「文件」树里定位路径、又要在 composer 里 @ 引用同一文件的 DSH 用户;也适合在 Agent 提问卡片里快速填入路径文本(需接受该场景下为纯文本而非 chip)。
安装前务必核对 GitHub 源码与许可证。插件依赖 DSH 未版本化的内部接口与 DOM 结构,升级 Harness 后若失效,先看浏览器控制台 [dsh-file-drag] 日志。社区目录 skillhub.cn 插件页 与 GitHub 均为第三方信息源,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,目录站是独立社区索引。
结尾¶
dsh-file-drag 把右侧文件树和 composer 的 @ 引用用拖拽连在一起,改动面小、行为与官方引用一致。需要细节、Issue 或本地开发说明时,见仓库 README:https://github.com/Mr-giraffe1/dsh-file-drag;目录入口:https://www.skillhub.cn/plugins/Mr-giraffe1/dsh-file-drag。