Bundle
dsh-paste-files
Paste or drop files into the DSH composer: saves them under the current workspace and inserts the paths into your draft.
- Source
- lhh666-6
- License
- MIT
- Updated
- Updated 2 days ago
Readme
# 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 相对路径以行内代码形式插入当前输入框草稿,例如: ```text `pasted-files/1724320000000-report.pdf` ``` ## 架构 - **Host 面**:注册 `/_dsh-paste-files/upload` 路由,根据 `sessionId` 从 DSH SessionStore 读取当前会话 `cwd`,把上传的原始字节写入该 workspace。 - **Client 面**:注册到 `conversation.input.left` slot,提供按钮、文件选择器,以及 document 级 capture 阶段 paste/drop 监听。 ## 开发 ```sh npm install npm run typecheck npm run build ``` ## 安装 ```sh # 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。 - 只是为了把文件变成模型可读的路径,不是向模型协议新增通用二进制附件。
Install
dsh plugin --profile web add github:lhh666-6/dsh-paste-file
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-paste-files from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.