# NOTICE `dsh-doc-router` is licensed under the MIT License (see `LICENSE`). This repository contains **no third-party source code or binaries**. It ships one JavaScript plugin, one Python probe script written for this project, and synthetic test fixtures generated by this project. Everything below is either a peer dependency supplied by the DeepSeek Harness host at runtime, or an *optional* external program the user installs and that this plugin invokes **as a separate process over stdio** — it is never bundled, imported, linked, or vendored. --- ## ⚠️ Read this before you redistribute or deploy ### PyMuPDF / pymupdf4llm — AGPL-3.0-or-commercial The `pdf_markdown` tool and the PDF layout probing in `doc_route` are executed by the Python script `lib/docprobe.py`, which imports: | Package | License | Source | |---|---|---| | `pymupdf` | **Dual: GNU AGPL-3.0 or Artifex Commercial License** | https://github.com/pymupdf/pymupdf | | `pymupdf4llm` | **Dual: GNU AGPL-3.0 or Artifex Commercial License** | https://github.com/pymupdf/pymupdf | | `pymupdf_layout` | **Dual: GNU AGPL-3.0 or Artifex Commercial License** | https://github.com/pymupdf/pymupdf | License strings as reported by the installed distributions (`pymupdf-1.28.2.dist-info/METADATA`): ``` License: Dual Licensed - GNU AFFERO GPL 3.0 or Artifex Commercial License ``` **What this means in practice.** * This plugin's own code stays MIT. It does not distribute PyMuPDF and does not link against it; it starts an interpreter as a child process and exchanges JSON on stdio. That is a separate-program boundary, not a derivative work. * **If you redistribute PyMuPDF together with this plugin** — in a container image, an installer, a bundled desktop app, an offline wheelhouse — then *your* distribution includes an AGPL-3.0 program, and you must satisfy AGPL-3.0 for it (source offer, license text, and for a network service the AGPL §13 remote-interaction source offer), or obtain a commercial license from Artifex. * **If you run this plugin as part of a network-accessible service**, AGPL §13 may require you to offer the corresponding source of the AGPL-covered components to users interacting with that service. If that is incompatible with your product, buy the Artifex commercial license. * Without PyMuPDF the plugin still loads and still routes by format and extension-independent magic bytes; only layout-aware PDF reading is disabled. This is a description of upstream licensing, **not legal advice**. Check the upstream license text and take your own counsel before shipping commercially. --- ## Peer dependencies (provided by the DeepSeek Harness host) Declared in `peerDependencies`, never bundled: | Package | License | |---|---| | `@deepseek-ai/dsh-tools` | BSD-3-Clause | | `@deepseek-ai/cordis` | MIT | | `@deepseek-ai/schemastery` | MIT | ## Optional companion tools (not dependencies) Recommended alongside this plugin; installed and licensed separately: | Tool | License | Note | |---|---|---| | `dsh-markitdown` | MIT | Handles the non-PDF formats this router delegates to | | `pypdf` | BSD-3-Clause | Plain-text PDF fallback when PyMuPDF is unavailable | ## Test fixtures Everything under `tests/fixtures/` is **synthetic content generated by `tests/fixtures/generate.py`** for this repository. It contains no third-party document, no published paper, and no personal data. Regenerate it with `python tests/fixtures/generate.py`.