reyesyang/dsh-plugin-file-drop
reyesyang★ 0JavaScript最后同步: 2026-08-14
DSH 文件拖拽上传插件:把本地文件拖到对话框,保存到系统临时目录 dsh-file-drop/ 并写入输入框(支持 Linux/macOS/Windows)
README 摘要
DSH File Drop Plugin(文件拖拽上传插件) DeepSeek Harness(DSH)动态 Cordis 插件:把本地文件直接 拖拽到对话框 ,文件自动保存到系统临时目录下的 dsh-file-drop/ 文件夹(便于系统自动清理),并把绝对路径写入输入框,作为任务输入交给 Agent 处理。 功能 - 拖拽文件到页面任意位置,显示全屏遮罩提示「松开鼠标,添加文件到任务输入」 - 松开后自动上传:文件保存到系统临时目录 dsh-file-drop/ (同名自动追加 -2 、 -3 序号) - 三平台支持:Linux / macOS 用 $TMPDIR (缺省 /tmp ),Windows 用 %TEMP% ,均与沙箱可写根集合一致 - 保存成功后,文件绝对路径自动追加到输入框草稿,用户补充任务描述即可发送 - 右下角 toast 反馈保存结果(成功 / 失败原因) - 文件名安全处理:basename 清洗(防路径穿越)、控制字符剔除、Windows 非法字符( :" ? )替换、保留设备名(CON/NUL 等)规避、80 字符截断 - 写入受会话沙箱策略约束( sandboxPolicy.resolve({ session }) ); workspace-write 模式下系统临时目录本身就在沙箱可写根集合内 限制 项目 限制 单次文件数 ≤ 6 个 单文件大小 ≤ 2MB 合计大小 ≤ 8MB 文件类型 仅 UTF-8 文本文件(二进制文件会明确报错,因为 DSH fs 服务没有字节写入能力) 安装(DSH Web GUI) 1. 打开 DSH Web GUI 的任意会话,向 Agent 发送如下安装指令: 请安装 dsh-file-drop 插件(仓库 https://github.com/reyesyang/dsh-file-drop-plugin): 1. 用 web fetch 读取仓库中的两个文件: - https://raw.githubusercontent.com/reyesyang/dsh-file-drop-plugin/main/host.js - https://raw.githubusercontent.com/reyesyang/dsh-file-drop-plugin/main/client.js (若无法访问网络,我会把两个文件的内容直接粘贴给你) 2. 用 cordis define 定义插件:plugin 为 { kind: "new", idPrefix: "fdrop" },name 填 "File Drop",purpose 填 "把拖入的本地文本文件保存到系统临时目录 dsh-file-drop/ 并回填输入框",code.host 与 code.client 分别填入上述两个文件的内容 3.…
在 GitHub 查看完整 README →