dsh-paste-file
开发工具 活跃维护

dsh-paste-file

lhh666-6/dsh-paste-file

支持将文件粘贴或拖拽至DSH编辑器,自动将文件保存到当前工作空间并插入对应相对路径,无需手动迁移文件、编写路径引用,简化本地资源引入流程。

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

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.left slot,提供按钮、文件选择器,以及 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。
  • 只是为了把文件变成模型可读的路径,不是向模型协议新增通用二进制附件。