dsh-paste-names

DSH PLUGIN视觉与多模态

仓库 PaoMoXML/dsh-paste-names · npm dsh-paste-names

视觉与多模态 L5 · 运行验证通过 安全审查:低风险 可信度:金 可安装插件
安装这个插件

DSH plugin 让在聊天输入框粘贴或拖入非图片文件/文件夹时生成原生 @path 引用或绝对路径文本,替代仅支持图片的报错。

验证等级 L5 L5 · 运行验证通过
GitHub 星标 2 复刻 0 · 未关闭 issue 0
最近更新 2026-09-04 创建于 2026-08-21
README 7.3 KB 正文体量,越大说明说明书写得越细

安装

可安装插件
在 DSH 里执行,装完用 dsh plugin list 确认已挂上;标了 L4 / L5 的命令已在沙盒里真实跑通
dsh plugin --profile web add [email protected]
兼容 DSH 版本0.2.0-rc.2 等 12 个版本版本不匹配时安装会报错
Node.js 要求未标注来自仓库 package.json 的 engines 字段
前置依赖无需要同时安装的同级依赖
npm 包名dsh-paste-names可用 npm view 查看包信息

能做什么

4 项功能
字段来自项目仓库与公开索引,中文说明由本站标注

dsh-paste-names:DeepSeek Harness 的非图片文件粘贴与拖放增强插件

  • 粘贴生成 @path 引用
  • 拖放插入绝对路径
  • 多候选人工选择
  • 深度扫描兜底索引

适用场景

文件读写视觉识别

上游标签

dsh-plugin

验证等级与安全审查

L5 · 运行验证通过
自动化流程结论,不是人工审核
验证等级L5 · 运行验证通过在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来
安全审查低风险静态分析结论,未标注不代表已通过审查
仓库健康度稳定按仓库活跃度与最近更新时间给出
可信度金综合仓库活跃度与验证结果

上面的结论来自上游最近一次自动化验证(2026-10-08): 同一套检查会在插件发新版后重跑,页面显示的是最新一次的逐项结果。

逐项检查结果

L1 · 已找到 ✓ 通过
  • L1.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L2 · 结构化 ✓ 通过
  • L2.0_DEFAULTED_FROM_L3 由 L3 推定 默认通过——L3 安装规范已通过(全库 L3 扫描策略)
L3 · 安装规范 ✓ 通过
  • L3.1_INSTALL_COMMAND_PARSED 安装命令已解析 方式:安装规范解析
  • L3.2_DSH_VERSION_DECLARED DSH 版本已声明 方式:DSH 版本声明
L4 · 安装已测 ✓ 通过
  • L4.1_INSTALL_EXECUTED_CONFINED 受限沙盒内执行安装 方式:沙盒安装执行
  • L4.2_INSTALL_SUCCESS 沙盒安装成功 方式:沙盒安装执行
  • L4.3_ARTIFACT_CONFIRMED 安装产物已确认 方式:沙盒安装执行
L5 · 运行已测 ✓ 通过
  • L5.1_INSTALL_PASSED_SANDBOXED 沙盒安装通过 方式:沙盒安装执行
  • L5.2_WEB_BOOT_READY Web 启动就绪 方式:Web 启动
  • L5.3_HTTP_SERVED HTTP 服务响应 方式:HTTP 请求
  • L5.4_PLUGIN_INVENTORY_ACTIVE 插件清单中已激活 方式:插件清单查询

风险详情

  • 审查结论 通过
  • 结论说明 vet 静态分析未发现可疑行为,判定为干净(clean)。
  • 风险计数 严重 0 / 高 0 / 中 0
  • 风险详情 未发现严重或警告级问题。

仓库档案

视觉与多模态
字段来自项目仓库与公开索引,中文说明由本站标注
作者 / 维护方PaoMoXML仓库 dsh-paste-names · 默认分支 main
分类视觉与多模态vision
收录类型可安装插件声明了 dsh.bundle、可用 dsh plugin add 安装的条目
开发语言JavaScript仓库主语言
许可证MIT商用或二次分发前请确认条款原文
星标 / 复刻 / issue2 / 0 / 0收录时的数值,非实时
创建 / 更新2026-08-21 · 2026-09-04最后推送 2026-09-04
本站收录2026-08-21首次进入本站目录的时间

README 全文

7.3 KB
作者原文,中文版优先;只做安全转义,不改内容

dsh-paste-names

Paste or drop a non-image file/folder into the DSH chat → paste gives a native @path reference, drop inserts the absolute path as plain text.

在 DSH(DeepSeek Harness)Web 聊天输入框里粘贴/拖入非图片文件或文件夹时:

  • 粘贴 → 解析成 DSH 原生 @ 文件引用,替代默认的「仅支持 PNG、JPG、WebP、GIF 格式的图片」报错;
  • 拖放(拖到界面任意位置)→ 直接把绝对路径文本插入输入框。

行为

粘贴

粘贴内容 结果
工作区内的文件 @相对/路径/文件名(与手动 @ 选择完全等价)
工作区内的目录 @目录/(目录引用,带尾斜杠)
含空格的路径 @"my docs/readme.md" 引号语法
解析失败(工作区外 / 无匹配 / 超时) 回退插入纯文件名
截图 / png / jpg / webp / gif 不干预,走 DSH 原生图片附件流程
纯文本 不干预

拖放(v1.3.0 新增)

拖入内容 结果
工作区内的文件 插入绝对路径文本,如 C:\repo\src\index.js
工作区内的文件夹 插入绝对路径 + 尾分隔符,如 C:\repo\docs\
含空格的路径 整体加引号:"C:\my docs\a.txt"
解析失败(工作区外 / 无会话) 回退插入纯文件名
纯图片拖放 不干预,走 DSH 原生图片附件流程

说明:浏览器拖放事件不暴露源文件的绝对路径(安全限制),插件按 basename 反查会话工作区后用「会话根 + 相对路径」拼出绝对路径,因此只对会话工作区内的条目有效。多条目以空格分隔;拖到输入框上插在光标处,拖到界面其他位置追加到末尾。

多条目粘贴时以空格分隔插入。末位是 @ 引用时不补尾随空格:保持 token 未闭合,让 DSH 原生 @ 菜单自动弹出且首选即精确匹配,一次回车即可升级为原生 chip(v1.3.0 行为)。

多候选人工选择(v1.4.0)

粘贴/拖放的条目在工作区内存在多个同名匹配时,不再自动取最短路径,而是弹出一个轻量选择器:

  • 每个多匹配条目一组候选(≤20 条,最短路径优先,默认选中首选);
  • 点击候选改选,插入所选确认后一次性插入全部条目;
  • Esc / 取消 → 放弃本次插入(不写入任何内容);
  • 唯一匹配的条目不参与选择器,仍直接插入;
  • 选择器跟随系统深浅色主题,定位在输入框下方(视口不足时移到上方)。

工作原理

插件分两半:

  • 浏览器半(lib/client.js):在 document 捕获阶段拦截输入框的 paste 事件与全局 dragenter/dragover/drop 事件(先于 DSH 自带处理),识别条目后解析:粘贴以 @ 语法插入草稿,拖放以绝对路径文本插入。会话 id 通过目标元素沿 React fiber 上溯取得。
  • 宿主半(lib/index.js):注册 GET /plugins/dsh-paste-names/resolve 深度解析路由。

路径解析分两级,多条目共享:

  1. 快查:DSH 自带 remote.fileReferences @ 搜索索引(毫秒级;但索引有 10,000 条 BFS 截断,大仓库深层文件覆盖不到)。多条目并发查询;
  2. 深度兜底:宿主半用 node:fs 按 basename 全量扫描会话 cwd(排除 .git / node_modules;400,000 条 / 4 秒双上限;实测约 1s / 78k 条目),弥补索引截断。批量接口(v1.3.0):全部未命中条目打包成一次请求(客户端按每批 40 条分块防 URL 超长),宿主半只扫一次。

深度扫描缓存(v1.3.0)

扫描结果以「basename → 路径」倒排索引形式按工作区根缓存:

  • 30s TTL + stale-while-revalidate:过期后请求立即返回旧索引(毫秒级),后台异步重建;只有每个根的首次请求才等待完整扫描;
  • 并发去重:同一根的并发构建只跑一次 BFS;
  • LRU 上限:最多缓存 8 个工作区根,防止多会话场景内存无界增长;
  • bucket 在构建时预排序(路径短者优先),查询为纯内存操作。

resolve 路由

GET /plugins/dsh-paste-names/resolve?session=&n=&d=<0|1>&n=&d=<0|1>...
→ { ok: true, root: "", results: [{ name, dir, matches: [{ path, kind }, ...] }, ...] }

兼容旧单条形式:name=&dir=<0|1> → { ok: true, root, matches: [...] }
免扫描取根:root=1 且不带 n= → { ok: true, root }(供拖放拼接绝对路径)
失败 → { ok: false, error: "..." }(4xx/5xx)

安装

方式一:dsh plugin add(推荐)

dsh plugin --profile web add git+https://github.com/PaoMoXML/dsh-paste-names.git

(本包的 package.json 声明了 dsh.bundle.patch,dsh plugin add 会自动接线。)

方式二:手动

  1. 克隆仓库到 profile 的插件目录:
git clone https://github.com/PaoMoXML/dsh-paste-names.git ~/.dsh/profiles/web/plugins/dsh-paste-names
  1. 在 ~/.dsh/profiles/web/package.json 的 dependencies 里加一行,然后在该目录执行 pnpm install:
"dsh-paste-names": "link:plugins/dsh-paste-names"
  1. 在 ~/.dsh/profiles/web/cordis.patch.yml 末尾追加:
- insert:
- id: paste-names
name: dsh-paste-names
  1. 重启 dsh web 并硬刷新页面(Ctrl+Shift+R)。

已知取舍

  • 深扫排除 .git / node_modules / target(客户端回退宿主索引时同样过滤),如需增删改 lib/index.js 的 EXCLUDED 与 lib/client.js 的 EXCLUDED_SEGS;
  • 同名多匹配弹出选择器人工确认(v1.4.0);唯一匹配直接插入,末位 @ 引用保持未闭合以唤出原生菜单;
  • 深度解析每个工作区根首次扫描约 1 秒(按仓库规模浮动),此后 30s 内为毫秒级缓存命中,过期后台重建不阻塞;
  • 拖放插入的是绝对路径文本(非 @ 引用):浏览器拖放不暴露源绝对路径(安全限制),只能按 basename 反查会话工作区后拼接。

测试

npm test

22 个回归测试(node:test,无外部依赖),覆盖本轮修过的四类缺陷:

套件 覆盖
test/host-route.test.js resolve 路由契约:单条查询同时返回 results+旧 matches(单文件粘贴落空的宿主侧)、排除目录(target 等)、同名多匹配排序、MAX_MATCHES 截断、错误路径
test/scan-race.test.js 并发 BFS 完整性:8 轮全新构建,30 个唯一标记目录全命中(静默丢子树竞态)、同名目录全量命中、深层可达、缓存稳定
test/client-paste.test.js 浏览器半在 DOM 桩中装载:单条旧形式 {matches} 归一(hainan 场景客户端侧)、回退宿主索引时 target 路径过滤、末位 @ 引用不补空格、纯文件名回退
test/client-chooser.test.js 多候选选择器交互:改选后插入用户所选、默认最短路径、Esc 取消不写入、唯一匹配不弹窗

说明:测试脚本直接顺序执行各文件(沙箱环境禁 node --test 的进程派生);已做过变异验证——把单形状归一化修复临时回退,对应用例立即转红。

License

MIT

常见问题

7 问
答案由本站依据条目字段整理,不引用上游原文
dsh-paste-names 怎么安装?

在 DSH 里执行 `dsh plugin --profile web add [email protected]` 即可。对应的 npm 包名是 `dsh-paste-names`。

dsh-paste-names 的验证等级是什么意思?

L5 · 运行验证通过。在 dsh 沙盒中完成安装与运行冒烟——装得上、跑得起来

dsh-paste-names 安全吗?

低风险。vet 静态分析未发现可疑行为,判定为干净(clean)。

dsh-paste-names 支持哪些 DSH 版本?

上游记录的兼容版本包括 0.2.0-rc.2、0.1.7-rc.2、0.1.7-rc.1、0.1.7-alpha.2、0.1.6-alpha.2、0.1.6-alpha.1、0.1.5-rc.2、0.1.3-alpha.2。版本较多,只列出前 8 个。

dsh-paste-names 用的是什么许可证?

上游标注为 MIT。商用或二次分发前请到仓库确认许可证原文。

dsh-paste-names 有哪些功能?

粘贴生成 @path 引用、拖放插入绝对路径、多候选人工选择、深度扫描兜底索引。

这条记录的数据可靠吗?

本站按仓库名去重后合并整理,字段以作者仓库与 npm 元数据为准;安装命令、仓库地址与 README 保持原文,带 L4 / L5 标记的安装命令已在隔离沙盒里真实跑通。

视觉与多模态
按星标排序,可作替代方案

open-design

open-design

L4 · 沙盒安装通过 10.0 万 星

awesome-gpt-image-2

awesome-gpt-image-2

GPT Image 2 / 2.5 提示词与案例库,530+ 个案例、20+ 套工业级模板与可复用 Skills,新增 2.5 同提示词对比

L3 · 安装规范通过 3.4 万 星

PicGo

PicGo

L3 · 安装规范通过 2.7 万 星

iPolloWork

iPolloWork

L4 · 沙盒安装通过 6,775 星

modlens

modlens

ModLens 是 DeepSeek Harness 的视觉插件,为纯文本模型外挂视觉能力,粘贴图片即得结构化 JSON 证据(OCR、版面

L5 · 运行验证通过 4,207 星

OpenBiliClaw

OpenBiliClaw

本地私有、开源的自进化跨平台 AI 内容发现 Agent:先理解你,再主动从 B站、小红书、抖音、YouTube、X、知乎、Reddit、微

L4 · 沙盒安装通过 3,398 星

插件的元信息来自作者仓库;分类、验证等级与安全结论的中文说明为中文整理,最近核验 2026-10-08。