DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Evidence — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
E

@baseland/dsh-evidence

Evidence

用于安全多文件上传、原生图像、本地文档检索以及支持坐标感知的文本/PDF/DOCX/XLSX/PPTX 读取的独立社区 DeepSeek Harness 插件。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:Cooberped/dsh-evidence#8bc0418593b4349ab4a6987d33cc86a21399a840
README兼容性版本

兼容性与来源证明

Evidence 以 @baseland/dsh-evidence 发布,当前版本为 0.6.0-beta.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/10/16

版本

0.6.0-beta.1beta
2026/9/28
查看其余 2 个版本收起版本
0.6.0-beta.3beta
2026/10/5
0.6.0-beta.2beta
2026/9/28

相关插件

正在加载相关插件…

最新版
0.6.0-beta.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
33
最近提交
2026/10/12
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 search-research 分类下经过校验的插件。

Ab Wechat Scrapedsh-ab-wechat-scrape--- description: "树外 wechat_scrape 工具:获取微信公众号文章,过滤推广区块,并将每篇文章保存为 Markdown 文件,供此机器的 dsh 配置文件维护者使用。" kind: "package-reference" ---Weknora@wxg-prc-cpg/dsh-weknora适用于 DeepSeek Harness (dsh) 的 WeKnora 知识检索工具:通过自有知识库进行语义搜索、文档阅读以及 RAG/代理回答。Free Searchdsh-free-searchDeepSeek Harness 的免费网页搜索:24 个引擎(Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl/Parallel 无需密钥;通过 MCP 使用 Zhihu 全局/站内搜索,以及 Perplexity/SerpBase/DeepSeek/You.com/Baidu/Kimi/Aliyun/Doubao,需密钥;OpenAI/Gemini/ClaudeDejadsh-dejaDeepSeek Harness 的 deja-vu 记忆:其他 40 个编码代理的会话历史,可搜索,并在每个步骤前调用——本地索引,无需 LLM。

README

English | 简体中文

dsh-evidence turns local files into versioned evidence through upload, retrieval, coordinate reads, and native vision.

dsh-evidence

Attach files in DeepSeek Harness and let the model actually read them.

Upload files or a whole folder from the Web composer. Parsing and indexing stay on your machine. The model searches for compact evidence and expands only the exact page, slide, line range or spreadsheet range it needs — instead of pasting whole documents into the prompt or shelling out to Python. Raster images stay on Harness' native vision path.

[!IMPORTANT] Source beta — not published to npm yet. @baseland/dsh-evidence@beta does not exist on npm at this time. Use the source install below.

The GitHub repository stays at Cooberped/dsh-evidence. The npm package is @baseland/dsh-evidence because the npm organization @cooberped could not be claimed.

How it works

  1. Upload once into the active session workspace.
  2. Index locally — no full document enters the model context.
  3. Retrieve compact evidence for a concrete question.
  4. Expand a versioned coordinate only when more context is needed.
  5. Answer from evidence, or say the evidence was not found.

That way, a file becomes evidence you can locate and read back on demand, instead of pasting the whole document into the prompt.

dsh-evidence architecture: composer, local ingest, private retrieval, model tools, and native vision branch.

Install from source

You need the DeepSeek Harness CLI with the web profile (currently tested against npm @deepseek-ai/dsh@0.1.7-rc.2), Node.js >=22.13.0, and pnpm on PATH.

DeepSeek Harness 0.1.7 or higher is required. The current code uses the …Regular icon names and pins the @deepseek-ai/dsh-* peer dependencies at 0.1.7-rc.2. On 0.1.6 and earlier, the upload icons do not match, and neither do the peer dependencies. This repository has no release tag for the older versions; if you still need to run ≤ 0.1.6, use the code from before that change, or upstream taxueseek/dsh-files.

git clone https://github.com/Cooberped/dsh-evidence.git
cd dsh-evidence
pnpm install --frozen-lockfile
pnpm build

dsh plugin --profile web add .      # link this checkout into the web profile
dsh --profile web --dump-config     # confirm the bundle layer is present
dsh web                             # restart

The install is a link to this checkout: after pulling updates, re-run pnpm install --frozen-lockfile && pnpm build and restart. Remove it with dsh plugin --profile web remove @baseland/dsh-evidence.

Future npm beta — not available yet

Once trusted publishing and the license checks before the first publish are finished, installation becomes:

dsh plugin --profile web add @baseland/dsh-evidence@beta
# restart dsh web

This is a future command. It does not work today.

Profile and plugin setup follows the official Harness plugin reference and bundle publishing guide.

Use it

  1. Open the Harness Web composer.
  2. Add files: paperclip for multi-select, the folder button for a directory, or drop anything on the page.
  3. Check that every intended file has its own card showing AI-readable.
  4. Ask a concrete question — the model calls the tools on its own.

Prompts that work well:

Index these three files first. Do not summarize them yet.
Across these files, find the definition and formula for the Q3 retention metric.
Give the source file and exact page, slide, line range, or Sheet!Range for every claim.
Compare the meeting decision with the workbook target.
If the documents do not contain enough evidence, say what is missing instead of guessing.

Recommended model evidence loop: inventory, retrieve, expand, and answer from version-checked evidence.

The two tools

search_documentsread_document
Use it tofind where the answer isread what is at a place
Key inputsfile_paths, optional short queryfile_path + coordinate/version, or offset/limit, or sheet/cell_range/list_sheets
No queryindexes changed content and returns a compact inventory — good for "read these first"—
Returnsranked evidence blocks, each with path, format, text, coordinate and versiona paged window of the document, or one coordinate expanded exactly

Two rules hold the loop together:

  • Coordinates carry a version (source hash + parser/block schema). Supplying a coordinate makes version mandatory, and it is checked before any content is returned. Edit the file and the old coordinate fails loudly instead of quietly reading the wrong lines.
  • Zero recall is not permission to guess. The tool tells the model to retry with different terms, read sequentially when justified, or report that the files contain no evidence.

Formats and honest boundaries

InputText extracted locallyStable coordinateCurrent boundary
TextUTF-8, UTF-16 BOM, high-confidence BOM-less UTF-16, GB18030line:S-E, optional chars:S-EOther encodings and binary files are rejected
PDFText-layer extraction, page-preservingpage:N, optional local line/character rangeNo OCR for scanned or image-only pages
DOCXBody, paragraphs, tables, headers, footers, footnotes, endnotesline:S-E, optional chars:S-ENo image OCR; not a pixel-faithful Word renderer
XLSXSheet inventory, cell values, ranges, row/column coordinatesquoted Sheet!A1:F40No formula calculation, chart/shape interpretation, or macro execution
PPTXSlide-order DrawingML text and speaker notesslide:N, optional local line/character rangeNo slide-image OCR, chart data, SmartArt, animation, or embedded objects
JPEG/PNG/WebP/GIFNative Harness image attachmentHarness attachment identityNeeds a vision-capable model; not parsed by read_document

The format is decided from the bytes, never the extension — an executable renamed to .pdf is rejected. Long output is paged and character-bounded, and every truncation is visible.

Capability details — composer, retrieval, reads, vision handoff

Composer and upload

  • Paperclip multi-select, whole-folder selection, and page-level drag and drop.
  • Finder multi-selection merges DataTransfer.items and DataTransfer.files, so a mixed batch is not silently reduced to the first recognized file.
  • Documents are captured before Harness' image-only drop handler; pure JPEG/PNG/WebP/GIF drops stay on the native image path.
  • Bounded parallel uploads (default 4); one failure does not cancel the batch.
  • Byte-sniffed file cards with uploading / AI-readable / failed states.
  • @ candidates cover uploaded and workspace files, and are shown as workspace-relative paths rather than host absolute paths.
  • Per-session quota, SHA-256 dedup, TTL cleanup, safe file-name normalization, recursive folder cleanup.

Local retrieval

  • CJK runs are indexed as overlapping bigrams and queried as phrases, so 流程绩效 does not match a block containing only 绩效流程. Single characters use a bounded substring fallback; ASCII tokens such as Q3 stay whole.
  • SQLite FTS5 is used only after a startup capability probe succeeds; otherwise the JS memory backend is selected explicitly and the tool result says so.
  • Query persistence is off by default.

Exact document reads

  • XLSX supports workbook inventory, one-based sheet selection, coordinate-preserving A1 ranges, merged headers, hidden/sparse sheets, and explicit detected-value counts.
  • PPTX follows presentation relationship order, not ZIP filename order.
  • The system prompt tells the model to use these tools first and fall back to Python/shell only after an explicit error or unsupported-feature notice.

Native vision handoff

  • JPEG/PNG/WebP/GIF use Harness' native composer attachment rail and the provider-neutral base64 image_url path.
  • The selected model must still declare image input support; this plugin does not make a text-only model visual.

Configuration

The bundle ships conservative defaults in cordis.patch.yml. Harness applies user profile overlays after bundle layers, so inspect the composed result before boot:

dsh --profile web --dump-config
SettingDefaultMeaning
maxFileBytes24 MiBMaximum bytes for one document read
uploadMaxBytes24 MiBMaximum bytes for one upload body
maxUploadBytesPerSession512 MiBSession upload quota; 0 explicitly disables it
readLimit2,000 in the bundled patch; schema fallback 800Maximum lines returned by one read_document call
maxOutputChars24,000Base character window; narrative formats get smaller format-specific windows
maxConcurrentUploads4Admitted upload bodies
uploadTtlMs7 daysUploaded-file retention
retrievalEnabledtrueEnables search_documents; read_document remains available when false
retrievalMaxFiles / retrievalMaxResults12 / 12Files per search call / evidence blocks returned
retrievalQueryLogEnabledfalsePersist normalized model queries for local tuning
trustedHosts[]Additional reverse-proxy authorities; empty means loopback only

Less common settings and their authoritative defaults live in src/index.ts. An explicit retrievalIndexDir must be an absolute private path; ~ is not expanded.

Runtime backend. The package requires Node.js >=22.13.0 (what pdfjs-dist requires), and Node 20 reached end of life on 2026-04-30. A persistent retrieval index also needs the runtime to provide node:sqlite with FTS5 compiled in. When the startup probe finds either missing, the complete but process-local JS backend takes over. The fallback is supported and reported in tool output.

Security and privacy

  • Format from file bytes, not the extension. Extensions are hints only. PDF headers and OOXML ZIP members decide the parser; known foreign binaries and spoofed files are rejected.
  • Bounded OOXML. ZIP member count and name length, declared XML sizes, aggregate XML expansion, workbook rows/cells and sparse-sheet dimensions are all capped before parser allocation.
  • Workspace containment. Reads go through ctx.fs; when a session cwd exists, the target must stay inside the active session workspace.
  • Safe upload storage. Pre-existing symlinks and special files are rejected; creation uses exclusive/no-follow flags where supported; quotas and deletion fail closed.
  • Loopback by default. Upload and workspace endpoints require a loopback host and same-origin checks. trustedHosts exists only for a deployment-controlled reverse proxy.

trustedHosts is not authentication. The current Harness WebServer plugin conventions cannot prove that a supplied session ID belongs to the caller. Do not expose this plugin as an unauthenticated public multi-tenant upload service. Use loopback-only self-hosting, or an authenticated proxy that also constrains session access.

Where data lives, and what leaves the machine
StoreDefaultContainsLifecycle
Uploads<session-workspace>/.dsh-filess/<storageKey>/Uploaded file bytesPer-session quota, SHA-256 dedup, default 7-day TTL sweep
Retrieval index$DSH_HOME/dsh-files/indexIndex contents for search, coordinates, versions; queries only when explicitly enabledPrivate permissions, document/query TTL, JS memory fallback when persistence is unavailable
  • Parsing and indexing are local to the Harness host; the plugin makes no external parsing request of its own.
  • The evidence a tool returns does enter the conversation and may be sent to your configured model provider. Native image attachments are also sent to the selected vision provider.
  • Do not sync the retrieval directory to cloud storage, and do not commit it to Git.
Known limits — what this deliberately does not do
  • Scanned PDFs and images embedded in office files are not OCR'd.
  • Office layout is turned into text and coordinates, not rendered pixel-for-pixel.
  • XLSX formulas are not calculated and macros never execute.
  • PPTX charts, SmartArt, animations and embedded objects are not interpreted.
  • Upload quota locking is process-local, not a cross-process transaction.
  • Portable Node exposes no complete dirfd/openat chain, so a hostile same-UID process racing ancestor replacement remains an OS-isolation boundary.
  • Only Harness versions that have already been tested are covered. A newer version is not guaranteed until it is tested the same way.

Project status

ProjectPublic source beta, independently maintained by Cooberped
Currently tested againstnpm @deepseek-ai/dsh@0.1.7-rc.2 with the web profile
Minimum version0.1.7 or higher. On 0.1.6 and earlier, the upload icons do not match, and neither do the peer dependencies. To run an older Harness, use the code from before that change, or upstream taxueseek/dsh-files. There is no release tag for those older versions
Tested withOpenCode Go — DeepSeek V4 Flash
npmNot published. The install name is @baseland/dsh-evidence@0.6.0-beta.1, under the maintainer's npm account baseland, because the npm organization @cooberped could not be claimed. GitHub remains Cooberped. Trusted publishing and the license checks before the first publish are not finished
CompatibilityNewer Harness source versions have not been tested separately, so compatibility is not guaranteed yet

This is not an official DeepSeek plugin and is not affiliated with or endorsed by DeepSeek.

Relationship to dsh-files

This repository retains the MIT-licensed git history of taxueseek/dsh-files, including attribution and the MIT notice, and is maintained independently (it has left the GitHub fork network). It is not a clean-room rewrite.

Beyond upstream upload and read_document, this repository adds local private retrieval (search_documents), version-checked coordinates, stronger upload/path/OOXML bounds, PPTX text and speaker notes, CJK-aware retrieval, and community release and governance.

Development

pnpm install --frozen-lockfile
pnpm typecheck
pnpm test
pnpm benchmark:retrieval
pnpm license:check
pnpm package:check

pnpm release:check   # everything above, for a final candidate

release:check covers type checking, both bundles, focused regression tests, dual-backend retrieval correctness, license policy, and the package publish requirements. The benchmark uses deterministic synthetic PDF/DOCX/XLSX/PPTX fixtures — real business documents, answer sets and model outputs stay outside the repository (see benchmark/README.md).

Contributing

Issues and pull requests are welcome. Contributions are reviewed and merged by maintainers after required checks; GitHub does not merge community code automatically.

Fixes for Harness UI, peer, or upstream API breakage are especially welcome — the 0.1.7 icon rename to …Regular names is one example. See CONTRIBUTING.md.

Before opening a PR: read CONTRIBUTING.md and sign off commits for DCO; add focused tests for behavior changes; run the smallest relevant checks locally; keep real documents, credentials, private paths and model outputs out of Git; and record every new visual asset in assets/README.md.

Security reports follow SECURITY.md. Release ownership and provenance checks are described in RELEASING.md.

License, lineage and marks

Project code and the original SVG documentation graphics are licensed under the MIT License. Upstream history and copyright notices are retained. Dependency and bundled-data notices are in THIRD_PARTY_NOTICES.md.

DeepSeek, DeepSeek Harness, OpenCode Go and other third-party names or marks belong to their respective owners and are used only to identify compatibility or a test target. Asset provenance is recorded in assets/README.md.