dsh-file-drop-eac
其他 活跃维护

dsh-file-drop-eac

jing-hy/dsh-file-drop-eac

作为EAC生态内置替代插件,接替已弃用的dsh-file-drop功能,支持用户将本地文件或文件夹直接拖入对话窗口完成上传,操作便捷无需额外配置。

0
Stars 标星
0
Forks 分支
0
Watchers 关注
0
Open Issues
JavaScript
主要语言
MIT
开源协议
14 KB
仓库大小
1 个月前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:jing-hy/dsh-file-drop-eac
git clone https://github.com/jing-hy/dsh-file-drop-eac.git
git clone git@github.com:jing-hy/dsh-file-drop-eac.git
README.md master

dsh-file-drop-eac — 拖入文件/文件夹到对话(EAC 特化版)

Deepseek Harness EAC 配套插件:把本地文件/文件夹直接拖进对话输入框,让 agent 处理。
本包是已弃用的 dsh-file-drop 的 EAC 特化重写,针对"拖入图片会与视觉桥重复注入冲突"做了裁剪。

移植来源与移植目标

与 dsh-file-drop 的差异

行为 dsh-file-drop(旧) dsh-file-drop-eac(本包)
文本 / 代码文件 内容注入输入框(≤256 KB) ✅ 保留
二进制 / 超大文件 注入完整路径提示 ✅ 保留
图片 注入路径提示/文本 ❌ 完全不接管:拖图什么都不做,交给视觉桥 / 原生缩略图
文件夹 ❌ 不支持(被静默忽略) ✅ 新增接管:识别并给出可操作降级提示

支持与限制

  • 文本 / 代码文件(.md/.js/.py/.json 等常见文本扩展名与无扩展名文件):
    内容自动注入输入框(上限 256 KB),带 <!-- 拖入文件:<名> --> 文件头。
  • 二进制 / 超大文件:注入完整路径提示,agent 用文件工具按路径直接读取。
  • 图片:不接管(避免与视觉桥/缩略图重复注入冲突)。
  • 文件夹:识别为目录并提示 —— 浏览器 / Electron 出于安全限制拿不到文件夹的磁盘绝对路径
    (webUtils.getPathForFile 只接受 File,文件夹是 webkitGetAsEntry() 返回的目录条目,
    仅带虚拟路径),因此插件降级提示"在文件/项目目录标签打开该目录"或"关键文件逐一拖入"。

Electron 桌面端通过 preload 暴露的 dshDesktop.getPathForFile(webUtils)获取拖入文件的
完整磁盘路径;纯浏览器打开 WebUI 时自动降级为可读提示。

目录结构

dsh-file-drop-eac/
├── lib/
│   ├── index.js     # host half(no-op,让包成为合法 bundle)
│   └── client.js    # 浏览器半边(classic-script,经 __ModuleLoader__.load 注册)
├── test/
│   └── client.test.js  # node:test + vm 沙箱(纯逻辑 + 端到端 drop 注入)
├── README.md
└── package.json

client.js 是 classic-script bundle(官方模块加载器只支持该形式,不能 import),纯逻辑挂在
window.__dshFileDropEacCore 上(生产无副作用),供 node 测试直接评估本文件。

测试

npm test
# 或
node --test

License: MIT。Deepseek Harness EAC 配套插件。