Back to home@bleamayaka

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
GitHub repo

Introduction

English · 简体中文

dsh-file-beam

把文件拖入 DSH Web 输入区:解析出文件的真实绝对路径(不复制文件),以附件 chip 登记;发送消息时由 Host 把路径清单隐藏注入给 Agent(UI 只显示一行摘要,输入框内不出现路径文本),Agent 直接读取源文件进行分析。

dsh-plugin License


安装

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 去重、同名去重、连接重建清理、搜索可取消

使用

  1. 把文件(如 report.docxdata.csv)拖入 DSH Web 页面任意位置
  2. 输入框上方出现 chip:先显示「搜索路径中…」,随后列出候选路径按钮
  3. 点选正确路径 → chip 变为「已登记 <文件名>」(可点 × 移除)
  4. 正常输入你的指令并发送 → 输入框内没有路径文本,但 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.dock slot)、候选选择
  • cordis.patch.yml — bundle 层声明(insert 自身)

官方社区

本插件属于 DeepSeek Harness 生态,欢迎到官方社区交流、反馈问题或分享使用体验:


借鉴与致谢

本插件在实现过程中参考了以下开源项目与官方资料,特此致谢:

  • 交互设计(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