dsh-file-beam
dsh-file-beam - DSH plugin: drag files into the web composer, resolve real absolute paths, hidden path injection for the agent (no copy, no path in composer).
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 27, 2026
- Updated
- Aug 27, 2026
Introduction
English · 简体中文
dsh-file-beam
把文件拖入 DSH Web 输入区:解析出文件的真实绝对路径(不复制文件),以附件 chip 登记;发送消息时由 Host 把路径清单隐藏注入给 Agent(UI 只显示一行摘要,输入框内不出现路径文本),Agent 直接读取源文件进行分析。
安装
dsh plugin --profile web add github:bleamayaka/dsh-file-beam
安装完成后重启 DSH Web(dsh web)并刷新浏览器生效。
功能
- 附件 chip 交互:把文件拖到页面任意位置,输入框上方出现文件 chip
- 真实路径解析:浏览器拿不到拖入文件的原始绝对路径(安全模型),因此由 Host 按文件名在 会话工作区 +
~/Downloads、~/Desktop、~/Documents中搜索,返回候选绝对路径(如C:\Users\...\Desktop\报告.docx),你点选正确的那个 - 不复制文件:只登记路径字符串,绝不读取或传输文件内容,Agent 用自己的文件工具直接读源文件
- 隐藏路径注入:选定路径不会写入输入框文本(输入框保持干净);发送消息时,Host 在
agent/pre-step阶段把路径清单作为插件 notice 消息插入请求——模型看到完整路径,UI 只显示一行「📎 文件 N 个」摘要 - 跨工作区可用:搜索基于会话工作区 + 配置目录,无论 Agent 工作区切到哪都能定位
- 唯一匹配自动登记:同名文件只有一个候选时自动登记,无需点击;多个同名文件才显示候选按钮
- 图片走原生流程:纯图片拖拽交给 DSH 原生多模态上传;含非图片文件才走路径引用
- 健壮性:重复 drop 去重、同名去重、连接重建清理、搜索可取消
使用
- 把文件(如
report.docx、data.csv)拖入 DSH Web 页面任意位置 - 输入框上方出现 chip:先显示「搜索路径中…」,随后列出候选路径按钮
- 点选正确路径 → chip 变为「已登记 <文件名>」(可点 × 移除)
- 正常输入你的指令并发送 → 输入框内没有路径文本,但 Agent 会收到隐藏的路径清单消息,直接读取源文件分析
配置(可选)
# 在 profile 的 cordis.patch.yml 中覆盖:
- id: dsh-file-beam
config:
searchDirs: ["~/Downloads", "~/Desktop", "~/Documents"] # 额外搜索目录
workspaceDepth: 10 # 工作区搜索深度
searchDirsDepth: 3 # 额外目录搜索深度
maxResults: 20 # 候选上限
结构
lib/index.js— Host half:路径搜索、会话登记(attach/detach/pending)、agent/pre-step隐藏注入lib/client.js— Browser half:拖拽捕获、dock chip(conversation.input.dockslot)、候选选择cordis.patch.yml— bundle 层声明(insert 自身)
官方社区
本插件属于 DeepSeek Harness 生态,欢迎到官方社区交流、反馈问题或分享使用体验:
- DeepSeek Harness GitHub Discussions — 官方讨论区:反馈、提问、插件分享
- DeepSeek Harness Discord — 官方 Discord 社区
- 本仓库已携带
dsh-plugintopic,可在 GitHub 上被检索发现
借鉴与致谢
本插件在实现过程中参考了以下开源项目与官方资料,特此致谢:
- 交互设计(dock chip、按文件名搜索真实路径、候选点选、唯一匹配自动登记):参考 gezg/dsh-drag-file(MIT)——本插件在其基础上改为"路径不写入输入框、由 Host 隐藏注入"。
- 隐藏注入机制(
agent/pre-step插入插件 notice 消息,模型可见完整清单、UI 只显示一行摘要):参考 re-ITRT/dsh-file-fix 的附件桥接实现思路。 - DSH 插件形态与契约(
dsh.bundle/dsh.client/ cordis entry / client bundle 包装):参考 DeepSeek Harness 官方文档 cordis-tutorial 与社区 make-dsh-plugin 规范。
License
MIT