🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

拖拽附件 WJZ-P/dsh-attachments

DeepSeek Harnessv1.0.1
WJZ-P75 天前有提交已提供中文文档扫描:含敏感能力

拖入文件或文件夹,保留目录树供模型读取

35.3/100
综合分
6
GitHub 星标
181
npm 周下载
—/5
用户评分

数据截至 2026/9/18 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-attachment
npm 源 · dsh-attachment 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · vision
装得上吗
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 75 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-attachment @ 1.0.1
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 17:43:48

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件发起外部网络请求
查看扫描证据(共 25 处,展示前 22 条)
  • 读取本地文件
    lib/index.mjs:178
    for (const entry of await readdir(directory, { withFileTypes: true })) {
  • 读取本地文件
    lib/index.mjs:182
    const metadata = await stat(path)
  • 写入本地文件
    lib/index.mjs:211
    await mkdir(directory, { recursive: true })
  • 写入本地文件
    lib/index.mjs:222
    await copyFile(file.objectPath, destination, fsConstants.COPYFILE_EXCL)
  • 写入本地文件
    lib/index.mjs:312
    await mkdir(dirname(path), { recursive: true })
  • 写入本地文件
    lib/index.mjs:314
    await mkdir(path)
  • 写入本地文件
    lib/index.mjs:325
    await pipeline(req, createWriteStream(path, { flags: 'wx', mode: 0o600 }))
  • 删除本地文件
    lib/index.mjs:327
    await rm(path, { force: true }).catch(() => {})
  • 读取本地文件
    lib/index.mjs:330
    const metadata = await stat(path)
  • 写入本地文件
    lib/index.mjs:359
    await mkdir(destination, { recursive: true })
  • 删除本地文件
    lib/index.mjs:365
    await rm(destination, { force: true }).catch(() => {})
  • 删除本地文件递归
    lib/index.mjs:406
    await rm(file.objectPath, { recursive: true, force: true })
  • 读取本地文件
    lib/index.mjs:428
    const metadata = kind === 'file' ? await stat(path) : undefined
  • 读取本地文件
    lib/index.mjs:444
    await pipeline(createReadStream(path), res)
  • 读取本地文件
    lib/index.mjs:447
    res.end(await readFile(path))
  • 删除本地文件递归
    lib/index.mjs:465
    files.map(file => rm(file.objectPath, { recursive: true, force: true }).catch(() => {})),
  • 发起网络请求
    lib/client.js:225
    const response = await fetch(`${ROUTE_PREFIX}?${query.toString()}`, {
  • 发起网络请求
    lib/client.js:243
    const createdResponse = await fetch(`${ROUTE_PREFIX}?${createQuery.toString()}`, { method: "POST" });
  • 发起网络请求
    lib/client.js:259
    const response = await fetch(`${ROUTE_PREFIX}/${encodeURIComponent(id)}?${query.toString()}`, {
  • 发起网络请求
    lib/client.js:270
    const finalizeResponse = await fetch(endpoint(sessionId, id), { method: "PATCH" });
  • 发起网络请求
    lib/client.js:277
    await fetch(endpoint(sessionId, id), { method: "DELETE" }).catch(() => {
  • 发起网络请求
    lib/client.js:350
    const response = await fetch(endpoint(sessionId, id), { method: "HEAD", cache: "no-store" });
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-session
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

界面预览

3 张 · 点击查看大图

功能亮点

  • 拖入图片和文件
  • 保留目录树
  • 供模型读取

README

由 DeepSeek 最新模型翻译生成
dsh-attachment 为 DeepSeek Harness 带来直观、持久、低侵入的文件与文件夹附件体验。 拖放即用 · 保留目录树 · 输入区与历史消息一致展示 ฅ( ̳• ·̫ • ̳ฅ) English · 简体中文 CI DSH Plugin Version License ✨ 功能亮点 | 能力 | 表现 | | 📁 文件夹拖放 | 一个文件夹对应一张附件卡片,同时完整保留内部目录树 | | 📄 普通文件 | 支持拖入、预览卡片、持久化历史与流式下载 | | 🖼️ 原生图片共存 | PNG、JPEG、WebP、GIF 继续使用 Harness 原生图片预览、画廊和多模态检查 | | 🧠 模型可读取 | 提交后写入当前工作区的 .deepseek-harness/attachments/,为模型提供明确路径 | | 🧩 低侵入扩展 | 通过公开的输入附件栏 slot、会话定义与 Host 路由完成集成 | | 🪶 原布局保持 | 输入区没有插件附件时,页面布局和原版 Harness 保持一致 | 插件自身不设置附件数量或单文件字节上限;实际可用范围由浏览器、运行环境与目标模型共同决定。 🖼️ 效果预览 拖放界面 拖入文件或文件夹时,只在原界面上方增加清晰的虚线边界,Harness 原生图片接收界面仍然保留。
展开完整文档(README 剩余 1 节)
dsh-attachment

为 DeepSeek Harness 带来直观、持久、低侵入的文件与文件夹附件体验。

拖放即用 · 保留目录树 · 输入区与历史消息一致展示 ฅ( ̳• ·̫ • ̳ฅ)

English · 简体中文

CI
DSH Plugin
Version
License

✨ 功能亮点

| 能力 | 表现 |
| 📁 文件夹拖放 | 一个文件夹对应一张附件卡片,同时完整保留内部目录树 |
| 📄 普通文件 | 支持拖入、预览卡片、持久化历史与流式下载 |
| 🖼️ 原生图片共存 | PNG、JPEG、WebP、GIF 继续使用 Harness 原生图片预览、画廊和多模态检查 |
| 🧠 模型可读取 | 提交后写入当前工作区的 .deepseek-harness/attachments/,为模型提供明确路径 |
| 🧩 低侵入扩展 | 通过公开的输入附件栏 slot、会话定义与 Host 路由完成集成 |
| 🪶 原布局保持 | 输入区没有插件附件时,页面布局和原版 Harness 保持一致 |

插件自身不设置附件数量或单文件字节上限;实际可用范围由浏览器、运行环境与目标模型共同决定。

🖼️ 效果预览

拖放界面

拖入文件或文件夹时,只在原界面上方增加清晰的虚线边界,Harness 原生图片接收界面仍然保留。

图片消息历史

原生图片消息继续显示在持久化会话历史中,并可交给支持多模态输入的模型。

多图片预览

多张原生图片与插件提供的文件、文件夹卡片共用同一条输入附件区域。

🚀 安装

当前版本可直接从 npm 安装到原生 DSH 的 web profile:

dsh plugin --profile web add dsh-attachment

检查组合后的配置并启动 DSH:

dsh --profile web --dump-config
dsh --profile web

移除插件:

dsh plugin --profile web remove dsh-attachment

🧭 工作流程

flowchart LR
A["拖入文件或文件夹"] --> B["输入区附件卡片"]
B --> C["提交用户消息"]
C --> D["持久化附件元数据"]
D --> E["复制到工作区附件目录"]
E --> F["模型读取文件或目录树"]

- 浏览器端负责拖放识别、上传、输入卡片和历史渲染;
- Host 端负责字节传输、持久化元数据、下载路由与工作区落盘;
- 图片继续走 Harness 原生链路,插件只接管普通文件与文件夹;
- 拖入目录时,内部成员按完整目录树传输,不会拆成大量输入卡片。

📦 DSH 插件约定

本仓库是可直接安装的标准 DSH bundle:

- package.json 声明 dsh.bundle.patch;
- cordis.patch.yml 插入 Host 插件行;
- dsh.client.platform 设置为 web;
- exports["./client"] 暴露预构建浏览器 bundle;
- 官方 @deepseek-ai/* 包全部使用 peerDependencies;
- 插件与 Tauri API 解耦,可用于原生 DSH Web profile。

🧪 开发与验证

环境要求:Node.js ^22.19.0 || >=24.0.0、pnpm。

pnpm install
pnpm run build
pnpm test
npm pack --dry-run

当前版本面向 DeepSeek Harness 0.1.0-rc.5 的标准 bundle、Web Client 发现、输入附件栏、会话事件与 Host 路由接口。

🔐 安全与跨平台

- 文件名、MIME 类型、附件 ID 与目录成员路径均按不可信输入校验;
- Windows 盘符、UNC 路径、绝对路径及目录穿越片段会在写入前被拒绝;
- GitHub CI 同时覆盖 Linux 与 Windows,避免路径语义差异造成回归;
- 安全问题报告方式及支持范围见 SECURITY.md。

🛍️ 插件市场

Marketplace 数据模板、截图 URL 和提交前检查项记录在 MARKETPLACE.md,README 图片资源位于 assets/markdown/。

📄 License

MIT

让附件安安静静待在该在的位置,也让模型更轻松地找到它们。 (。•̀ᴗ-)✧
预览分享卡片长什么样 ↓WJZ-P/dsh-attachments
分享 · DeepSeek Harness Hub
WJZ-P/dsh-attachments

拖入文件或文件夹,保留目录树供模型读取

回到顶部