跳到正文
dsh-market 浏览插件 GitHub EN

qwerty-k-de/dsh-attach-picker

DSH Web 输入框工具栏图片按钮:点击调用系统文件选择器直接多选取图,进入与拖拽/粘贴相同的草稿图片栏,并内联校验宿主的图片格式、单条张数与单张大小限制。

Star 数 ★ 0 分类 UI 增强 收录于 2026-09-03 npm dsh-attach-picker

安装

在 DeepSeek Harness 里通过 dsh-market 安装

dsh plugin --profile web add dshmarket

或使用命令行

dsh plugin --profile web add dsh-attach-picker

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络。请先审阅源码,并尽量锁定 commit(github:owner/repo#sha)。

截图

README

给 DeepSeek Harness Web 输入框工具栏加一个图片按钮:点击打开系统文件选择器挑一张或多张图片,不用拖拽也不用粘贴。选中的图片会进入和拖拽/粘贴相同的「草稿图片」栏,随消息一起发送,和普通附件完全一致。

功能

  • 输入框工具栏一键图片按钮(挂在 conversation.input.left 槽)
  • 原生系统文件选择器,支持多选,自动过滤宿主支持的图片格式
  • 遵守宿主的 imageLimits 限制:图片格式、单条消息最大张数、单张大小上限,超限会有内联错误提示(如「一条消息最多 N 张图片」「单张图片不能超过 X MB」)
  • 与拖拽/粘贴走同一条草稿附件管线:conversation.createDrafts(sessionId, files) → inputActions.addAttachments(ids),其它地方无需任何特殊处理
  • 同时兼容 DSH 0.2 与 0.1 两代输入框 API:在渲染时探测宿主提供的能力,哪一代在跑就走哪一代
  • 纯浏览器侧实现,零依赖,体积小

安装

npm 安装(推荐,免构建授权):

dsh plugin --profile web add dsh-attach-picker

GitHub 安装:

dsh plugin --profile web add github:qwerty-k-de/dsh-attach-picker

重启 dsh web(或刷新页面,热更新时即时生效)。

使用

  1. 在 DSH Web 里打开一个会话。
  2. 点击输入框工具栏的图片按钮——系统文件选择器弹出。
  3. 选择一张或多张图片,它们会出现在草稿图片栏。
  4. 发送消息,图片与普通附件一样被发送。

请求进行中时按钮会自动禁用。

原理

  • 通过 package.json 的 dsh.client(platform: "web",exports["./client"])注册为客户端插件。
  • 注入到输入框槽 conversation.input.left,order: -50。
  • 选中文件后:先从宿主投影 imageLimits(mediaTypes、maxImagesPerMessage、maxImageBytes)读取限制,本地先做一次格式/张数/单张大小校验;通过后交给宿主自己的录入管线:
    • DSH 0.2(dsh 0.2.x,公开契约):conversation.createDrafts(sessionId, files) 生成草稿描述符,再用 inputActions.addAttachments(ids) 入栏;addAttachments 返回 false(adjudicating/submitting 阶段)时用 conversation.releaseDraftAttachments(drafts) 回收,避免泄漏;
    • 兜底:父级 composer 条目注入的 addFiles(files, directories)(宿主内部通道,仅在该对动词缺失时使用);
    • DSH 0.1:回退到 conversation.createDraftImages(files) + inputActions.addImages(...)。
  • 最外层元素带 data-dsh-attach-picker="<版本>:<管线>" 标记,便于在 DOM 里确认当前生效的是哪条路径。
  • Node 侧(lib/index.js)有意留空——全部逻辑在浏览器端。

截图

市场(如 dsh-market)以 App Store 风格展示截图。请在本仓库声明:

// screenshots.json
["assets/screenshot-1.png", "assets/screenshot-2.png"]

(1–8 张;路径相对该文件、不得跳出本仓库。不声明时市场会退回到从本 README 提取图片。)

要求

  • DSH Web(dsh web)需带标准 conversation / slots 客户端服务。
  • 0.1.x 与 0.2.x 均可用;0.1.1 起开始适配 0.2 的附件 API。
  • 无运行时依赖。

更新日志

见 CHANGELOG.md。

许可

MIT

内容来自项目 README(GitHub)↗

评论

评论存放在 GitHub Discussions。用 GitHub 账号登录后可发表评论或点表情。