dsh-doctor
asdf17128
Find what your DeepSeek Harness (dsh) patches silently broke — dead patches, config fields dropped by whole-config repla…
YZz-S/dsh-workspace-files-explorer
A collection of dynamic Cordis plugins for DeepSeek Harness (DSH): token cost metering, balance checks, update checking, and a workspace file explorer with code & Markdown preview. Plain JavaScript, paste-and-run.
PROJECT TOPICS
PROJECT README
Workspace file explorer plugin for the DeepSeek Harness (dsh) Web GUI: browse the file tree of the current session's workspace (cwd) in a floating panel; click a file to preview it — code files with line numbers and syntax highlighting, Markdown files rendered as rich text.
DeepSeek Harness(dsh)Web GUI 的工作区文件浏览器插件:在浮层面板中浏览当前会话工作区(cwd)的文件树,点击文件即可预览——代码文件带行号与语法高亮,Markdown 文件渲染为富文本。


中文 · ← Back to DeepSeekHarnessPlugins
shell.overlay, additive registration — replaces no built-in UI; docks at the top right by defaultrel="noopener noreferrer"cwd (standard useSessions hook); switching sessions resets the panel and loads the new workspace automaticallyThis repo is also an installable dsh plugin package (package.json declares dsh.bundle + dsh.client):
dsh plugin --profile web add github:YZz-S/dsh-workspace-files-explorer
After installation, the "Workspace Files" button appears in the session title-bar action area and the floating panel takes effect automatically. The dynamic usage (cordis_define loading host.js / client.js) is kept; pick either one.
| File | Description |
|---|---|
index.js |
Host half (installed form): webServer routes /api/wsf-explorer/*, read-only file browsing API |
lib/client.js |
Client half (installed form): __ModuleLoader__ browser module, calls Host routes via fetch |
cordis.patch.yml |
Bundle patch: inserts the plugin row into the dsh composition |
host.js |
Host half (dynamic form): for cordis_define, package-private RPC via harness.handle |
client.js |
Client half (dynamic form): for cordis_define, calls Host via host.call |
README.md |
This document |
LICENSE |
MIT license |
package.json |
Package metadata + dsh.bundle / dsh.client declarations |
Define and run in a dsh Web GUI session with the Cordis tools:
cordis_define: paste host.js content as code.host and client.js content as code.client (plugin.kind: 'new', idPrefix of 3–6 lowercase letters)cordis_run to activate and allow authorization in the UINote: a dynamic plugin lives as long as the current dsh process. After restarting dsh you must define and run it again.
See "Installation (dsh.bundle)" above: dsh plugin --profile web add github:YZz-S/dsh-workspace-files-explorer — the plugin persists with the profile, no manual run needed each time.
cwd via the standard hook useSessions((s) => s) and passes it to the Host on every request; falls back to sandboxPolicy.workspaceRoot when there is no sessionfs's resolve / stat / listDir / readText / contains / processPath — no writes at all; every path must pass fs.contains verification to stay inside the workspacehttp/https and enforce rel="noopener noreferrer"; raw HTML never passes throughpath outside the workspace)api[_-]?key, secret, token, password, private-key headers scanned)noopener — no injection surfaceEnglish · ← 返回 DeepSeekHarnessPlugins
DeepSeek Harness(dsh)Web GUI 的工作区文件浏览器插件:在浮层面板中浏览当前会话工作区(cwd)的文件树,点击文件即可预览——代码文件带行号与语法高亮,Markdown 文件渲染为富文本。
shell.overlay,加法式注册,不替换任何自带 UI;默认停靠右上角rel="noopener noreferrer"cwd(useSessions 标准 hook),切换会话时面板自动重置并加载新工作区本仓库同时是可安装的 dsh 插件包(package.json 声明 dsh.bundle + dsh.client):
dsh plugin --profile web add github:YZz-S/dsh-workspace-files-explorer
安装后「会话标题栏动作区」出现「工作区文件」按钮,浮层面板自动生效。
动态用法(cordis_define 加载 host.js / client.js)仍保留,两种方式二选一。
| 文件 | 说明 |
|---|---|
index.js |
Host 半部分(安装版):webServer 路由 /api/wsf-explorer/*,只读文件浏览 API |
lib/client.js |
Client 半部分(安装版):__ModuleLoader__ 浏览器模块,fetch 调用 Host 路由 |
cordis.patch.yml |
bundle 补丁:把插件行插入 dsh 组合 |
host.js |
Host 半部分(动态版):供 cordis_define 使用,harness.handle 包私有 RPC |
client.js |
Client 半部分(动态版):供 cordis_define 使用,host.call 调用 Host |
README.md |
本说明 |
LICENSE |
MIT 许可证 |
package.json |
包元信息 + dsh.bundle / dsh.client 声明 |
在 dsh Web GUI 的会话中,用 Cordis 工具定义并运行:
cordis_define:code.host 粘贴 host.js 的内容,code.client 粘贴 client.js 的内容(plugin.kind: 'new',idPrefix 取 3–6 个小写字母)cordis_run 激活,在界面上允许授权注意:动态插件的生命周期与当前 dsh 进程相同。重启 dsh 后需重新定义运行。
见上文「安装(dsh.bundle)」:dsh plugin --profile web add github:YZz-S/dsh-workspace-files-explorer,插件随 profile 常驻,无需每次手动运行。
useSessions((s) => s) 读取当前会话的 cwd,随每次请求传给 Host;无会话时回退 sandboxPolicy.workspaceRootfs 的 resolve / stat / listDir / readText / contains / processPath,无任何写入;所有路径经 fs.contains 校验必须位于工作区内http/https 协议并强制 rel="noopener noreferrer";原始 HTML 不直通路径超出工作区范围)api[_-]?key、secret、token、password、私钥头等模式)noopener,无注入面CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。