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

文件附件与解析 hyper-dsh-plugins/dsh-open-file

DeepSeek Harnessv0.1.2-rc.1
hyper-dsh-plugins58 天前有提交已提供中文文档扫描:含敏感能力

拖入任意文件,读取、OCR 或渲染其内容

31/100
综合分
3
GitHub 星标
157
npm 周下载
—/5
用户评分

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

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

状态速览

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

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

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

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

✓npm 包dsh-open-file @ 0.1.2-rc.1
✓Node 引擎要求 >=22.13.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 06:03:44

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

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 37 处,展示前 37 条)
  • 发起网络请求
    lib/client.js:98
    response = await fetch(url, { ...init, credentials: "same-origin" });
  • 读取本地文件
    lib/skill.js:14
    content: readFileSync(SKILL_URL, "utf8")
  • 读取本地文件
    lib/http/router.js:85
    await pipeline(createReadStream(source.path), response);
  • 删除本地文件
    lib/upload/service.js:80
    await rm(incomingPath, { force: true });
  • 删除本地文件
    lib/upload/service.js:129
    await rm(incomingPath, { force: true }).catch(() => undefined);
  • 删除本地文件
    lib/upload/service.js:207
    await rm(repository.incomingPath(record.uploadId), { force: true });
  • 删除本地文件
    lib/upload/service.js:209
    await rm(this.recordPath(repository, record.uploadId), { force: true });
  • 读取本地文件
    lib/upload/service.js:255
    const names = await readdir(repository.layout.incoming);
  • 读取本地文件
    lib/files/text.js:63
    bytes = await readFile(input.path);
  • 读取本地文件
    lib/ocr/engine.js:12
    await access(this.languagePath);
  • 删除本地文件
    lib/ocr/service.js:26
    await rm(path, { force: true }).catch(() => undefined);
  • 读取本地文件
    lib/pdf/document.js:7
    bytes = await readFile(path);
  • 删除本地文件
    lib/pdf/render.js:52
    await rm(input.outputPath, { force: true }).catch(() => undefined);
  • 读取本地文件
    lib/storage/repository.js:18
    const information = await lstat(path);
  • 读取本地文件
    lib/storage/repository.js:61
    await lstat(finalDirectory);
  • 读取本地文件
    lib/storage/repository.js:72
    const information = await stat(incoming);
  • 写入本地文件
    lib/storage/repository.js:78
    await mkdir(temporaryDirectory, { mode: 0o700 });
  • 写入本地文件
    lib/storage/repository.js:81
    await rename(incoming, source);
  • 写入本地文件
    lib/storage/repository.js:82
    await chmod(source, 0o400).catch(() => undefined);
  • 写入本地文件
    lib/storage/repository.js:107
    await mkdir(join(temporaryDirectory, "parts"), { mode: 0o700 });
  • 写入本地文件
    lib/storage/repository.js:108
    await mkdir(join(temporaryDirectory, "renders"), { mode: 0o700 });
  • 写入本地文件
    lib/storage/repository.js:109
    await rename(temporaryDirectory, finalDirectory);
  • 删除本地文件递归
    lib/storage/repository.js:113
    await rm(temporaryDirectory, { recursive: true, force: true }).catch(() => undefined);
  • 读取本地文件
    lib/storage/repository.js:144
    return readFile(path);
  • 读取本地文件
    lib/storage/repository.js:174
    const information = await stat(path);
  • 删除本地文件递归
    lib/storage/repository.js:195
    await rm(this.fileDirectory(fileId), { recursive: true, force: false });
  • 读取本地文件
    lib/storage/json.js:15
    const information = await lstat(target);
  • 写入本地文件
    lib/storage/json.js:29
    await rename(temporary, target);
  • 删除本地文件
    lib/storage/json.js:33
    await rm(temporary, { force: true }).catch(() => undefined);
  • 读取本地文件
    lib/storage/json.js:39
    const information = await lstat(target);
  • 写入本地文件
    lib/storage/layout.js:21
    await mkdir(path, { mode: 0o700 });
  • 读取本地文件
    lib/storage/layout.js:35
    const information = await lstat(path);
  • 读取本地文件
    lib/storage/layout.js:39
    const canonical = await realpath(path);
  • 读取本地文件
    lib/storage/layout.js:57
    const information = await stat(workspace);
  • 读取本地文件
    lib/storage/layout.js:60
    canonicalWorkspace = await realpath(workspace);
  • 读取本地文件
    lib/storage/layout.js:61
    await access(canonicalWorkspace, constants.R_OK | constants.W_OK);
  • 发起网络请求
    lib/client/api.js:21
    response = await fetch(url, { ...init, credentials: "same-origin" });
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

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

功能亮点

  • 上传任意文件
  • 读取文件内容
  • OCR识别

为 DeepSeek Harness 提供任意文件上传、读取、OCR 和渲染

v0.1.2-rc.12026-09-06
适配 DeepSeek Harness 0.1.2-rc.1,文件附件和消息提交在新版 Web 界面里都能正常用了。
v0.1.1-rc.22026-08-25
· English Fixed an issue where text remained in the chat input after a message was sent. This could leave the composer stuck and prevent subsequent messages from being submitted normally. The file attachment adapter now preserves the original sendSession result and forwards cancellation signals, keeping the submission lifecycle compatible with DSH 0.1.1-rc.2. · 中文 修复了消息发送后文字仍残留在聊天输入框中的问题。该问题可能导致输入框卡住,并使后续消息无法正常提交。 文件附件适配器现在会保留原始 sendSession 提交结果并继续传递取消信号,从而确保提交流程兼容 DSH 0.1.1-rc.2。
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-open-file English · 简体中文 面向 DeepSeek Harness Web 的工作区文件附件、文档读取、本地 OCR 与页面渲染插件。 dsh-open-file 支持把任何格式的文件带入 DeepSeek Harness 会话。随附的 Agent 工具可检查上传内容,并根据任务读取、OCR 或渲染其中可用的信息,形成一套可追溯工作流。 拖入文件即可进入会话把一个或多个文件拖到 DeepSeek Harness Web 的任意位置,即可添加到当前会话。 功能 - 在现有 + 菜单中加入 添加 → 附件 操作。 - 通过系统选择器、全页面拖放与剪贴板粘贴接收多个文件。 - 使用紧凑草稿卡片展示格式图标、上传进度、取消、重试与移除控件。 - 把已发送附件卡片放在对应用户消息下方,保持会话布局整齐。 - 通过同源二进制流把文件写入当前会话工作区。 - 提供四个 Agent 工具:file_inspect、file_read、file_ocr、file_render。 - 读取文本、PDF、DOCX、PPTX、XLSX、受资源边界保护的 ZIP、常见图片格式,以及常规文件元数据。 - 使用随包语言数据执行英文与简体中文 OCR。 - 返回来源哈希、定位信息、游标、解析器与稳定引用,支持可追溯推理。
展开完整文档(README 剩余 1 节)
dsh-open-file

English · 简体中文

面向 DeepSeek Harness Web 的工作区文件附件、文档读取、本地 OCR 与页面渲染插件。

dsh-open-file 支持把任何格式的文件带入 DeepSeek Harness 会话。随附的 Agent 工具可检查上传内容,并根据任务读取、OCR 或渲染其中可用的信息,形成一套可追溯工作流。

拖入文件即可进入会话把一个或多个文件拖到 DeepSeek Harness Web 的任意位置,即可添加到当前会话。

功能

- 在现有 + 菜单中加入 添加 → 附件 操作。
- 通过系统选择器、全页面拖放与剪贴板粘贴接收多个文件。
- 使用紧凑草稿卡片展示格式图标、上传进度、取消、重试与移除控件。
- 把已发送附件卡片放在对应用户消息下方,保持会话布局整齐。
- 通过同源二进制流把文件写入当前会话工作区。
- 提供四个 Agent 工具:file_inspect、file_read、file_ocr、file_render。
- 读取文本、PDF、DOCX、PPTX、XLSX、受资源边界保护的 ZIP、常见图片格式,以及常规文件元数据。
- 使用随包语言数据执行英文与简体中文 OCR。
- 返回来源哈希、定位信息、游标、解析器与稳定引用,支持可追溯推理。

兼容性

| 组件 | 版本或要求 |
| DeepSeek Harness | 0.1.0-rc.6 |
| Node.js | >=22.13.0 |
| 操作系统 | Windows、Linux、macOS |
| 浏览器 API | fetch、XMLHttpRequest、File、拖放、剪贴板文件粘贴 |

Web 集成使用 rc.6 的输入触发器注册、会话渲染器、原生图片流程与客户端运行时 API。主机契约需要关注时,兼容性检查会返回 FILE_WEB_COMPATIBILITY。

安装

适用于 DeepSeek Harness 0.1.2-rc.1:dsh plugin --profile web add dsh-open-file@0.1.2-rc.1。
安装最新 npm 版本:

dsh plugin --profile web add dsh-open-file

安装 0.1.2:

dsh plugin --profile web add dsh-open-file@0.1.2

安装本地审核包:

npm ci
npm pack
dsh plugin --profile web add ./dsh-open-file-0.1.2.tgz

安装包通过 cordis.patch.yml 激活 Host 服务、Web 客户端与 Open File Skill。npm 使用英文 README.md 展示包文档。

快速使用

1. 打开带有活动工作区的 DeepSeek Harness 会话。
2. 选择 + → 添加 → 附件,也可把文件拖入 Web 应用,或从剪贴板直接粘贴文件。
3. 查看草稿卡片并等待就绪状态。
4. 发送消息,生成会话绑定的 dsh-open-file://attachment/v1/... 引用。
5. Assistant 可根据任务选择检查、读取、OCR、渲染或直接作答。

任何格式的文件,只要任务需要,都可以上传文档、数据、源代码、压缩包、图片与其他格式统一进入附件流程。

| 工具 | 职责 |
| file_inspect | 返回元数据、解析器信息与可选择的 part_ref |
| file_read | 使用文本游标或工作表范围读取选定 part |
| file_ocr | 对选定图片 part 执行本地英文与简体中文 OCR |
| file_render | 把选定文档 part 渲染为工作区 PNG |

图片文件接入 DSH 图片流程。文档与常规文件使用工作区附件流程。

配置

0.1.2 使用随包发布默认值。cordis.patch.yml 注册 Host 服务、Web 客户端与 Skill。资源边界列于下表,并纳入公开契约。

权限、数据位置与上传协议

源文件与派生产物位于当前会话工作区:

/.dsh/open-file/v1/sessions//

插件读写该会话目录,并在 DSH Web Host 注册同源上传路由。OCR 使用随包提供的 eng 与 chi_sim 语言数据。

POST /dsh-open-file/v1/uploads/prepare
PUT /dsh-open-file/v1/uploads/ application/octet-stream
POST /dsh-open-file/v1/uploads//commit
DELETE /dsh-open-file/v1/uploads/

工具响应包含来源哈希、解析器、定位信息、游标与规范引用。提取出的文件内容会标记为供后续推理使用的非可信证据。

默认限制

| 限制 | 默认值 |
| 单文件 | 256 MiB |
| 每会话草稿文件数 | 20 |
| 每会话草稿总量 | 512 MiB |
| ZIP 条目数 | 10,000 |
| 单 ZIP 条目展开大小 | 64 MiB |
| ZIP 总展开大小 | 512 MiB |
| ZIP 压缩比 | 100:1 |
| 上传超时 | 300 秒 |
| 解析与渲染超时 | 30 秒 |
| OCR 超时 | 120 秒 |
| 渲染像素 | 40,000,000 |

这些数值构成 0.1.2 的资源边界。

安全说明

- 会话引用、活动 Agent 会话、权威工作区与磁盘元数据共同组成校验链。
- 规范路径边界检查与符号链接感知检查保护工作区托管路径。
- ZIP 校验覆盖路径规范化、链接、加密、重复条目、CRC 完整性、归档深度、展开大小与压缩比。
- Office XML 校验覆盖声明、实体与关系目标。
- 类型识别使用文件魔数与容器结构。
- 已发布源文件保持 immutable;派生产物使用独占创建与原子元数据替换。

安全策略与报告流程详见 SECURITY.md。

常见问题

- 附件入口:确认 Web 客户端插件处于活动状态,并确认 Host 版本为 DeepSeek Harness 0.1.0-rc.6。
- 上传:确认会话状态、工作区权限、同源路由与资源边界。
- OCR:选择图片 part 或 file_render 生成的 PNG,再选择 eng、chi_sim 或两种语言。
- 文档解析:调用 file_inspect 查看检测类型、解析器与可用 part。

稳定错误码由包契约导出,并随工具错误返回,供程序化处理。

卸载

dsh plugin --profile web remove dsh-open-file

安装指定版本可完成版本切换:

dsh plugin --profile web add dsh-open-file@0.1.2

开发与验证

npm ci
npm run typecheck
npm run lint
npm test
npm run build
npm run verify:release
npm pack

发布流程会在 Windows、Linux 与 macOS 上执行类型检查、代码规范检查、完整自动化测试套件、生产构建与 npm 产物检查。

发布闸门

维护者批准两份 README 与生成的 tarball 后,GitHub 与 npm 发布流程即可开始。最终验收覆盖安装包、Web 启动、文件选择、拖放、上传、消息渲染、四个工具、草稿控件与插件移除。

许可证

MIT
预览分享卡片长什么样 ↓hyper-dsh-plugins/dsh-open-file
分享 · DeepSeek Harness Hub
hyper-dsh-plugins/dsh-open-file

拖入任意文件,读取、OCR 或渲染其内容

这是你的仓库?认领条目

回到顶部