READMESource: main@e351bd5e
dsh-paste-files
GitHub: https://github.com/lhh666-6/dsh-paste-file
npm:
dsh-paste-files
把文件通过「粘贴 / 拖放 / 选择文件」保存到当前 DSH workspace,并在输入框中插入对应的 workspace 相对路径,方便模型用 DSH 自带的文件读取工具继续处理。
行为
在 composer 左侧增加一个 粘贴文件 按钮,可以多选文件。
在输入框内粘贴文件、或把文件拖进窗口时:
- 如果只有图片,保留 DSH 原生图片附件行为,不拦截。
- 只要包含非图片文件,就拦截该次粘贴/拖放,把所有文件上传并保存到当前会话 workspace。
保存位置:
<当前 workspace>/pasted-files/<时间戳>-<短随机>-<文件名>。保存完成后,把 workspace 相对路径以行内代码形式插入当前输入框草稿,例如:
`pasted-files/1724320000000-report.pdf`
架构
- Host 面:注册
/_dsh-paste-files/upload路由,根据sessionId从 DSH SessionStore 读取当前会话cwd,把上传的原始字节写入该 workspace。 - Client 面:注册到
conversation.input.leftslot,提供按钮、文件选择器,以及 document 级 capture 阶段 paste/drop 监听。
开发
npm install
npm run typecheck
npm run build
安装
# npm 安装(推荐,预构建)
dsh plugin --profile web add dsh-paste-files
dsh plugin --profile desktop add dsh-paste-files
# 或直接从 GitHub 安装
dsh plugin --profile web add github:lhh666-6/dsh-paste-file
dsh plugin --profile desktop add github:lhh666-6/dsh-paste-file
安装后重启 DSH(或切换一次 profile)生效。
限制
- 浏览器无法从剪贴板拿到文件的绝对路径,因此插件采用「上传到 workspace 再插入相对路径」的方案。
- 当前默认单文件上限 64 MiB。
- 只是为了把文件变成模型可读的路径,不是向模型协议新增通用二进制附件。
No comments yet. Be the first to write one.