DeepSeek Harness 插件

dsh-web-text-drop

Text-file drag-and-drop for the dsh web GUI: dropping md/txt/log/code files into the page inserts the content into the composer when it fits (<= 1000 characters), otherwise the host copies the file(英文原文)

跳到安装方式

来源信息

GitHub 仓库
liceses/dsh-web-text-drop
最近更新
2026年8月14日
分类
插件开发工具
GitHub stars
1
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/liceses/dsh-web-text-drop
插件名:dsh-web-text-drop
作者:liceses

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器2 个文件
README.md来源说明 · 只读预览

dsh-text-drop

DSH Web GUI 文本文件拖拽导入插件:把 md / txt / log / 代码等文本文件拖进页面, 按内容长度自动处理 —— 短内容直接进输入框,长内容复制到工作区并粘贴可读路径。

About

DeepSeek Harness(DSH)Web GUI 的文本文件拖拽导入插件。默认的 Web 输入框只接受图片拖拽, 拖入文本文件会被当作"不支持的图片类型"丢弃;本插件补齐了这一环,并把处理方式按内容长度 自动分流:

  • 短文本(<= 1000 字):内容直接插入当前会话输入框,发送前可检查、可编辑。
  • 长文本(> 1000 字):由 Host 端复制到会话工作区的 .dsh/drops/ 目录,输入框粘贴

反引号包裹的绝对路径 —— 文件落在工作区内,模型可直接读取,无需额外授权步骤。

  • 图片拖拽:完全放行原生图片附件通道,行为与默认一致。
  • 拖拽体验:捕获阶段拦截文本拖入,抑制原生"拖拽图片"全屏遮罩,改为轻量中性提示,

松手立即消失、无残留。

技术要点:纯官方 NPM SDK(@deepseek-ai/*)开发,零 DSH 源码改动;Host/Client 双半区 通过 /api/dsh-text-drop/save 路由协作(loopback 信任围栏);文本识别覆盖 70+ 常见 扩展名与 MIME;文件落盘路径由会话工作区决定,重名自动去重,10MB 内容上限保护传输。

行为

拖入内容处理方式
文本文件,内容 <= 1000 字内容直接插入当前会话输入框(可检查后发送)
文本文件,内容 > 1000 字Host 复制到 <会话工作区>/.dsh/drops/ 目录,输入框粘贴反引号包裹的绝对路径;文件落在工作区内,模型可直接读取(workspace-write 策略,无需额外审批)
图片完全放行给原生图片附件通道,行为不变
混合拖入仅导入文本文件,toast 提示图片请单独拖入

其他细节:

  • 文本识别:70+ 常见文本扩展名(md/txt/log/json/yaml/py/ts/...)+ text/* MIME + Makefile/README 等无扩展名惯例名。
  • 拖拽过程中抑制原生"拖拽图片"全屏遮罩(其 dragenter/dragover 被捕获阶段掐断),改为轻量中性提示;松手立即消失,不残留。
  • 大文件路径带重名去重(name.mdname-1.mdname-2.md...)。
  • 内容上限 10MB(超出提示不导入)。
  • 落盘目录 .dsh/drops/ 位于会话工作区内,由会话的 cwd 决定(内存会话 -> 持久化 meta -> sandbox 工作区根,逐级兜底)。

组成

半区入口职责
Hostsrc/index.ts + src/routes.ts注册 /api/dsh-text-drop/save 路由(loopback 信任围栏),把大文件写入工作区 .dsh/drops/
Clientsrc/client/index.tsdocument 级捕获阶段拖拽监听、文本识别、输入框写入、遮罩与 toast(经 shell.overlay / conversation.input.left 插槽)

纯官方 NPM SDK(@deepseek-ai/*)开发,不修改 DSH 源码。

构建

pnpm install
pnpm build        # tsc 类型声明 + tsdown(node 半区 lib/index.js + 浏览器半区 lib/client.js)

安装到 dsh web profile

dsh plugin --profile web add link:D:/developing/DSH-plugin/dsh-text-drop

或手动等价步骤(junction + patch 行):

New-Item -ItemType Junction -Path "$env:USERPROFILE\.dsh\profiles\web\node_modules\@icelily\dsh-text-drop" -Target "D:\developing\DSH-plugin\dsh-text-drop"
# 在 ~/.dsh/profiles/web/cordis.patch.yml 的 insert 列表追加:
#   - id: text-drop
#     name: '@icelily/dsh-text-drop'

然后重启 dsh web(client 端刷新页面即生效;host 端路由重启后加载最新代码)。

卸载

Remove-Item "$env:USERPROFILE\.dsh\profiles\web\node_modules\@icelily\dsh-text-drop"
# 移除 cordis.patch.yml 中的 text-drop 行,重启 dsh web

验证

  • 拖短 md:内容出现在输入框,toast「已将 1 个文本文件内容插入输入框」。
  • 拖长 md:toast「文件较大(...字),已复制到工作区并粘贴路径」,输入框出现反引号路径;文件在 <工作区>/.dsh/drops/ 下。
  • 拖图片:正常进入附件栏,原生图片通道不受影响。
  • 拖拽悬停:中央虚线提示,松手即消失,无残留遮罩。