Bundle
dsh-document-reader
DeepSeek Harness (DSH) web plugin: read PDF / Word .docx / PPT .pptx / plain-text & code files straight into the composer via upload or drag-and-drop
- Source
- Yun-tech123
- stars
- 1 stars
- License
- MIT
- Updated
- Updated yesterday
Readme
# dsh-document-reader 一个 [DeepSeek Harness (DSH)](https://github.com/deepseek-ai/deepseek-harness) 网页端插件:在聊天输入框里直接读取 **PDF / Word (.docx) / PPT (.pptx) / 纯文本与代码** 文件,把提取出的文字填入输入框草稿。 A DeepSeek Harness (DSH) web plugin that reads **PDF / Word (.docx) / PPT (.pptx) / plain-text & code** files straight into the composer, by file picker or by dragging a file anywhere on the page. ## 功能 / Features - **上传读取**:输入框工具栏出现「文档」按钮,点击可选择文件(支持多选)。 - **整页拖拽**:把文档拖到页面任意位置,出现「释放以读取文档」遮罩,松手即读取。 - **格式支持**:`.pdf`(服务端 `pdfjs-dist` 精确解析)、`.docx`、`.pptx`、以及 `txt / md / csv / json / yaml / 代码` 等纯文本。 - **输出上限**:单文件 20 万字符,超出自动截断。 - **Upload**: a "文档" button appears in the composer tool row; click to pick files (multi-select supported). - **Drag & drop**: drag a document anywhere on the page and release to read it. - **Formats**: `.pdf` (parsed server-side with `pdfjs-dist`), `.docx`, `.pptx`, and plain text like `txt / md / csv / json / yaml / code`. - **Output cap**: 200k chars per file, truncated with a note. ## 架构 / Architecture - **客户端** (`lib/client.js`):注册到 `conversation.input.left` 插槽,负责 UI、拖拽、以及 `.docx/.pptx`(ZIP + XML)和纯文本的前端解析。 - **服务端** (`lib/index.js`):注册 `POST /read-document/parse` 路由,用 Mozilla `pdfjs-dist` 解析 PDF(正确支持对象流、xref stream、CID 字体、ToUnicode CMap)。 - **Client** (`lib/client.js`): registers into the `conversation.input.left` slot; owns the UI, drag-and-drop, and client-side parsing of `.docx/.pptx` (ZIP + XML) and plain text. - **Server** (`lib/index.js`): registers `POST /read-document/parse`, which parses PDFs with Mozilla `pdfjs-dist` (correctly handles object streams, xref streams, CID fonts, ToUnicode CMaps). ## 安装 / Install > 需要先安装 [dsh](https://github.com/deepseek-ai/deepseek-harness) 并可用 `pnpm`。 ```sh # 1. 安装到 web 配置(会自动注册到 dsh.profile.bundles) dsh plugin --profile web add github:Yun-tech123/dsh-document-reader # 2. 重启 web 服务 dsh web ``` 安装后刷新页面,输入框工具栏即出现「文档」按钮。 `dsh plugin` 需要本机可用 `pnpm`;若未安装,可先 `corepack enable` 或 `npm i -g pnpm`。 ### 手动安装 / Manual install 1. 把本仓库克隆到本地,`dsh plugin --profile web add <本地路径>`。 2. 确认 `package.json` 的 `dsh.profile.bundles` 里已包含 `dsh-document-reader`(`dsh plugin` 会自动加入)。 3. 重启 `dsh web`,刷新页面。 ## 限制 / Limitations - PDF 为文本提取:**纯扫描件(图片型 PDF)** 无文本层,无法提取。 - 老式二进制 `.doc / .xls / .ppt` 暂不支持,请先另存为 `.docx / .pptx`。 - 需要较新浏览器(`.docx/.pptx` 用 `DecompressionStream`,Chrome/Edge/Firefox 2022+ 均可)。 - PDF is text extraction: pure scans (image-only PDFs) have no text layer and cannot be extracted. - Legacy binary `.doc / .xls / .ppt` are not supported; save them as `.docx / .pptx` first. - Requires a modern browser (uses `DecompressionStream` for `.docx/.pptx`; Chrome/Edge/Firefox 2022+). ## License MIT
Install
dsh plugin --profile web add github:Yun-tech123/dsh-document-reader
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-document-reader from the hub
- This source has no pinned commit, so a later push upstream changes what installs. Prefer pinning a commit.