DeepSHPlugins
dsh-files 项目预览
GITHUB / COMMUNITY PROJECT

dsh-files

UI 增强TypeScriptMIT

文件上传(彩色附件卡片、会话隔离存储、sha256 去重、TTL 清扫)+ 内容嗅探的 read_document 文档读取(PDF/DOCX/XLSX/TXT)。

35 Starstaxueseek 更新时间 2026-09-05
访问 GitHub 仓库
dsh-files 项目预览
dsh-files 界面截图dsh-files 界面截图

项目介绍

中文

文件上传(彩色附件卡片、会话隔离存储、sha256 去重、TTL 清扫)+ 内容嗅探的 read_document 文档读取(PDF/DOCX/XLSX/TXT)。

English

File upload with color-coded attachment cards (session-isolated storage, sha256 dedup, TTL sweep) plus a content-sniffing read_document tool for PDF/DOCX/XLSX/TXT.

项目信息与收录信号

快照 2026-09-11
作者 / 组织
taxueseek
仓库
taxueseek/dsh-files
GitHub Stars
35
Forks
10
开发语言
TypeScript
许可证
MIT
最近推送
2026-09-05
Manifest
数据中检测到声明

公开仓库不自动等于可商用;许可证与当前兼容性以原项目文档为准。Manifest 和数据评分不构成安装安全认证。

数据评分

87/ 100
维护活跃
97
文档与实用信息
85
生态关注度
65
安装便捷信号
100
项目声明信号
100

近 6 天仍在更新;README 含完整安装与使用说明;标准命令一键安装。

评分来自已有数据快照的五维模型,仅作浏览参考,不是实际使用评测或安全检测结论。

安装与使用

所有项目资料与许可均以对应 GitHub 仓库为准。

dsh plugin --profile web add github:taxueseek/dsh-files

复制命令不会自动执行。请先阅读仓库文档,确认环境要求与许可证。

项目截图

仓库 README

GitHub 原文

已保存的仓库文档快照;文档抓取时间未记录,可能与上方目录介绍处于不同版本。安装前请核对当前仓库说明。

English | 简体中文

dsh-files: one tool that reads the PDF / DOCX / XLSX the built-in read tool cannot.

dsh-files

A DeepSeek Harness plugin that does exactly one thing: the read_document tool — structured text extraction for binary documents (PDF / DOCX / XLSX) plus enhanced text reading (encoding fallback, paging, sheet-level access) that the built-in read tool rejects.

Upload, images and @ reference were removed in 0.5.0 — harness 0.1.3 ships them natively (universal file upload, the image vision pipeline, unified @file/@session reference), and does it better. This plugin is part of the taxueseek plugin matrix; the flagship is argo.

Why it exists

Native upload in harness 0.1.3 stores files as byte objects and hands the model one handle line (name, size, digest, read-only path) to read with file tools — but the built-in read tool rejects binary content with FS_NOT_TEXT. Structured text extraction for PDF / DOCX / XLSX is the gap the official stack leaves open; this plugin fills it.

Composer toolbar: the folder button sits right next to the native paperclip, visually identical

Capabilities

  • Content sniffing: PDF header / ZIP central-directory members / UTF-8 (fatal) / UTF-16 BOM / GB18030 — decided from bytes, never from extensions; disguised files (an exe renamed .pdf) are rejected. The format hint is only a last resort when bytes are fully unknown
  • Encoding chain: UTF-16 BOM → UTF-8 (fatal, NUL rejected) → GB18030 (fatal) → UTF-16 without BOM (high-confidence guard); GBK Chinese and BOM-less UTF-16 both read
  • Paged reads: line numbers + offset/limit; the per-call character budget differs by format (text full, xlsx 3/4, pdf/docx 1/2), overflow truncates with an explicit remaining-lines marker
  • Line-number policy: text (code/config) carries line numbers for precise edits; PDF/DOCX/XLSX are paragraph flows without line numbers (saves tokens)
  • XLSX sheet-level reads: list_sheets names the sheets, the sheet parameter reads one sheet in full (no row cap), out-of-range errors list the available sheets

After a batch folder upload, files land in the native draft rail as official cards

  • Scanned PDFs are explicit: a PDF with no text layer returns an explicit notice, not an empty string
  • Cooperative cancellation: parsing listens on the execution signal; user cancel / session close aborts immediately
  • Output projection: text results project onto the official card: 'read' file card; reads go through ctx.fs and inherit session sandbox and fs-observation policy
  • Reading restraint: the systemPrompt section instructs "probe structure first, read precisely, stop when you have enough"

Install

Requires harness ≥ 0.1.3-alpha.1.

curl -fsSL https://raw.githubusercontent.com/taxueseek/dsh-files/main/install.sh | sh
# restart dsh web

Manual equivalent:

dsh plugin --profile web add git+https://github.com/taxueseek/dsh-files.git
# restart dsh web
The npm package named dsh-files is an unrelated third-party placeholder — install only via the script or the git command above.

Configuration

- id: files-toolkit
  name: 'dsh-files'
  config:
    maxFileBytes: 25165824        # byte cap for one document read
    readLimit: 2000               # lines returned per call (paging is cheap)
    sheetRowLimit: 200            # rows kept per worksheet
    maxSheets: 5                  # sheets read per workbook
    maxOutputChars: 24000         # per-call window character budget (truncated with a marker)
    readTimeoutMs: 120000         # per-call timeout (raise for huge PDFs)

Security

  • Parsing dependencies are read-only and maintained: pdfjs-dist (Mozilla), mammoth, read-excel-file
  • ZIP central-directory probing never expands members; malicious archives are rejected safely
  • Reads go through ctx.fs, inheriting the session sandbox, same rights as the built-in read tool

Development

pnpm install
pnpm test
pnpm build
npx tsc --noEmit

License

MIT

使用前核对

安装步骤、兼容版本与授权范围以原项目当前文档为准。Stars 和评分是快照中的导航信号。

安装与排错 · 项目问题反馈

同类项目