devacc8/dsh-file-explorer:DSH 环境内的硬核文件管理插件

前言

DeepSeek Harness (DSH) 采用了插件化架构。在开发智能体或管理会话时,开发者经常需要查看项目结构、编辑配置文件或直接打开本地资源。原生环境往往缺乏健壮的文件浏览界面。devacc8/dsh-file-explorer 旨在解决这一需求,它是一个经过加固的文件管理工具,为 DSH 提供了安全、可控的文件访问能力。

插件定位

该插件是 joejojoking-cloud/dsh-file-explorer 的 vendored(打包)和 hardened(加固)fork。上游代码已冻结,该版本在此基础上增加了安全修复、全英文 UI 以及与 Harness 主题匹配的面板背景。它作为 DSH 的全局文件管理器工作,在每一个会话中为用户提供一个位于页面右侧的文件树面板。

布局与交互

插件在页面右侧打开一个名为 shell.overlay 的面板。

  • 尺寸调整:面板宽度可通过拖动左侧边缘调整,范围在 260px 至 900px 之间。
  • 独立折叠:文件树和预览区域拥有独立的折叠手柄(位于各自左侧边缘)。
    • 折叠树形视图会保持预览区域并将其吸附到右侧边缘。
    • 折叠预览区域会保持所有标签页,重新打开时会恢复。
  • 双击聊天区域:双击聊天区域可以同时折叠左右两侧的面板,并应用“项目筛选”功能。此时,标签页中仅保留位于当前项目文件夹内的文件,其余标签页会被关闭;重新展开面板后,筛选状态依然保留。

预览与编辑

  • 标签式预览:支持浏览器风格的标签页,切换时不重新加载文件内容。点击背景标签会滚动标签栏,点击当前标签则切换内容。
  • 语法高亮:支持 Markdown、JSON、YAML、JS、TS、Python、C、C++、Java、Go、Rust、Shell、SQL、TOML、INI、CSS、HTML 等多种语法的文件预览。
  • 面板内编辑:点击编辑图标可将预览切换为可编辑文本框,保存操作会将内容写入磁盘。再次点击预览文件可关闭对应标签页。
  • 限制:文件大小超过 1 MB 时,预览功能不支持。

功能细节

  • 头部工具栏:包含“Files”标签及多个功能图标:
    • VS Code:点击可打开当前整个工作区。
    • 系统文件管理器:根据当前选中状态操作。选中目录则直接打开,选中文件则高亮显示并定位到所在文件夹,未选中则打开项目根目录。
    • 展开/折叠全部:控制文件树的显示状态。
    • 刷新:更新文件列表。
    • 折叠树形视图:仅折叠左侧树形,保留右侧预览。
  • 搜索功能:搜索框支持对工作区进行递归扫描,自动排除 .git 和 node_modules 目录。搜索结果上限为 300 个匹配项。
  • 文件树:默认展开根目录,支持懒加载(点击展开目录),支持点击切换展开/折叠状态。

安装与启用

安装插件需使用官方命令。安装完成后需要重启 Harness。

dsh plugin --profile web add <path-to-this-package-or-npm-name>

安装生效后,插件会挂载到 /plugins/file-explorer/* 路径下,并在会话头部提供文件切换开关。

开发与维护

  • 构建说明:客户端捆绑包 (lib/client.js) 是手工修补的,因为上游的构建工具链无法独立安装(其声明的 peer 依赖包含未发布的包)。主机端则通过 tsc 机械生成。
  • 代码规范:lib/ 目录下的产物为生成文件,请勿直接编辑。所有逻辑和样式修改应在 src/ 目录中进行。历史经验表明,直接编辑 lib/ 下的文件会导致构建覆盖修改,并可能引发语法错误(如 CSS 模板字符串中的反引号问题)。
  • 补丁机制:使用 cordis.patch.yml 文件将插件注入到宿主配置中。

适用场景与注意事项

  • 该插件以当前 DSH 进程的权限运行,请确保安装来源可信,并检查许可证。
  • 由于是上游冻结的 fork,若遇到上游修复的问题,需等待维护者自行合并或提交 PR。
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜