dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Vendored, hardened fork of dsh-file-explorer (DSH web file explorer): workspace confinement, argv-only launching, CSRF/header gate, English UI, theme-matched panel.
File Explorer for DeepSeek Harness: a right-side, resizable file tree with Markdown rendering, syntax highlighting, in-panel editing, and one-click open in VS Code or the system file manager.
A community plugin for DeepSeek Harness (tagged dsh-plugin). This repository is a
vendored, hardened fork. Upstream is
joejojoking-cloud/dsh-file-explorer;
this fork is frozen (no upstream updates) and adds security fixes, a fully English
UI, and a panel background that matches the Harness theme. See FORK.md for the
provenance and the complete patch list, and AUDIT.md for the security audit.
It is a global file explorer for DeepSeek Harness: every session gets a folder toggle in the header that opens a resizable file-tree panel on the right of the page.
shell.overlay, toggleable). The file tree and the preview
pane collapse independently: each has its own > handle on its left edge.
Collapsing the tree keeps the preview and snaps it to the right edge; collapsing
the preview keeps every tab, and reopening restores it. Drag the left edge to
resize (260 to 900 px).×, and closing the last one hides the pane..git and node_modules,
capped at 300 matches)..md files render Markdown (headings, lists, code blocks, quotes,
links); fenced code blocks are highlighted by language, and other text files are
highlighted by extension (JSON, YAML, JS, TS, Python, C, C++, Java, Go, Rust,
Shell, SQL, TOML, INI, CSS, HTML, and more). The edit icon switches to an editable
textarea and saving writes back to disk; clicking the previewed file again closes
its tab.dsh plugin --profile web add <path-to-this-package-or-npm-name>
Restart the harness afterwards: every session then loads the plugin (host routes
under /plugins/file-explorer/* plus the web client panel).
src/index.ts - host half (built to lib/index.js): the fs service plus the
webServer HTTP routes (list, search, read, write, open-vscode, open-folder).src/client/index.ts - web client half (tsc to lib/client/index.js, then
tsdown to lib/client.js): registers the shell.overlay panel and the
conversation.session.header.actions toggle.cordis.patch.yml - bundle patch that inserts the file-explorer row into the
profile's host composition.pnpm run build # clean && tsc && tsc -p tsconfig.client.json && tsdown
node --check lib/client.js
pnpm test # host half unit tests (node --test)
Never edit the artifacts under lib/ directly: they are generated from src/.
Historically a hand edit put a backtick inside the CSS template literal, which
terminated the template early, produced a SyntaxError in the whole bundle, and
made startup report "loaded without registering"; the next build also overwrites
hand edits. Put style and logic changes in src/.
Convention already in place: the right-hand padding concession on
[data-phase=active] applies instantly (no transition / will-change). An
animated chat column width competes with scroll anchoring while the transcript
streams, which made messages jump, the bottom rise, or the column paint blank.
lib/client.js) is hand-patched here, because the upstream
client build toolchain cannot be installed standalone (its declared
@deepseek-ai/dsh-client-* peers pull an unpublished
@deepseek-ai/dsh-compact). Every client change is mirrored into
src/client/index.ts, so a future build reproduces it.tsc -p tsconfig.json reproduces
lib/index.js byte for byte from src/index.ts (verified).