dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Right-side document rail for the DeepSeek Harness web GUI — Markdown/plain-text viewer with light & deep-navy themes, drag-resize, recent files, auto-sync. (中文:dsh web 右侧文档面板,支持浅色/深蓝主题、拖宽、最近文件、自动同步)
A resizable right-side document rail for the DeepSeek Harness web GUI
(dsh web). It shows a Markdown or plain-text file beside your conversation —
the natural home for a session handover note — with:
.md / .txt path (paste a path, or pick from Recent);The panel mounts in the frame-wide shell.overlay seat — additive only, it
never replaces shipped UI.
Sample-content previews (no real documents), light and dark themes:
| Light theme | Dark theme |
|---|---|
dsh web), Node.js >= 24 (the node half is plain
TypeScript run directly; the browser half ships pre-built as lib/client.js).webServer service, so it only activates under the web
profile. Installed into a CLI-only profile it stays inert on purpose.Compatibility note:
dsh-doc-railtargets the web client slot/layout APIs as of this package's development snapshot. If you use a publisheddshrelease, prefer a matching dsh-doc-rail version (see releases) and verify the panel appears once after install.
From the registry (once published):
dsh plugin --profile web add dsh-doc-rail
From a local checkout or tarball instead:
dsh plugin --profile web add /path/to/dsh-doc-rail
# or
dsh plugin --profile web add ./dsh-doc-rail-0.1.0.tgz
Restart the web GUI (dsh web) — the page then boots with the rail on the
right. Click ✕ to collapse it; the small 📄 文档面板 pill reopens it.
The panel starts with a path input and no default file, so it is safe to ship
to anyone. To pin your handover note (or any file), override the row config in
the profile's own cordis.patch.yml:
- replace:
- id: dsh-doc-rail
name: dsh-doc-rail
config:
defaultPath: 'C:/Users/you/Documents/handover.md'
Paths may use / or \\ separators; the file is read as UTF-8 text.
.md, .txt, or any UTF-8 text file) and press Enter,
or click 打开.Everything is local: the node half reads files inside your own dsh web
process and the browser half talks to it over the same-origin JSON routes
/dsh-doc-rail/api/doc and /dsh-doc-rail/api/pref. No network service, no
telemetry, no path leaves your machine.
npm install
npm run typecheck # tsc --noEmit
npm run bundle # tsdown → lib/client.js (lazy-CJS module-table factory)
npm run smoke # structural checks
The browser bundle contract is documented in
packages/client/tsdown.client.ts of the harness checkout (external packages
must replicate it until the preset ships to npm).
package.json # dsh.bundle + dsh.client manifests, exports
cordis.patch.yml # inserts the plugin row by package name
src/index.ts # node half: doc + pref JSON routes over ctx.webServer
src/client/index.ts # browser half: registers shell.overlay
src/client/Rail.tsx # panel UI (themes, resize, path input, markdown render)
src/client/styles.ts # injected stylesheet (CSS variables, no CSS pipeline)
scripts/smoke.mjs # structural smoke check
MIT — see LICENSE.