dsh-ws-files:工作空间文件浏览器

在 DeepSeek Harness (DSH) 的开发流程中,直接在 Web 前端查看和编辑本地项目文件通常需要依赖终端或外部工具。dsh-ws-files 插件将文件树、搜索和在线编辑器直接集成到 DSH 的布局系统中,支持在对话/轨迹同级打开标签页进行编辑。该插件由 zhangxiang1993621 维护,遵循 MIT 许可证。

核心功能

  • 布局集成:面板注册进 layout.left 或 layout.right 区域(id 为 ws-files),与 dsh-layout 协同渲染。
  • 树形浏览:支持懒加载目录,文件夹名称加粗,显示文件大小。
  • 搜索:支持按文件名搜索(不区分大小写),可快速定位。
  • 文件操作:点击文件可用系统默认程序打开;在对话/轨迹同级标签页打开,支持关闭。
  • 在线编辑:
    • 自动进入编辑模式。
    • 实时高亮:支持关键词、注释、字符串、数字着色(叠层高亮,不中断输入)。
    • 智能缩进:Enter 自动缩进,Tab/Shift+Tab 反缩进。
    • 自动保存:防抖自动写入,状态栏显示保存状态,支持 Ctrl+S 立即保存。
    • 撤销/重做:Ctrl+Z / Ctrl+Y。
  • 类 IDE 预览:预览模式带行号、代码折叠、按文件类型设置缩进宽度。
  • 多工作区:支持在 workspaceRegistry 已登记的工作区间切换。

安装与启用

在 deepseek-harness 仓库目录下执行以下命令。使用 file:/ 安装发布版本,开发期使用 link:/ 以便热更新。

# 安装发布版本
node --import tsx/esm apps/cli/src/bin.ts plugin --profile web add file:/绝对/路径/dsh-ws-files
# 开发期使用 link(修改源码后刷新页面即生效)
node --import tsx/esm apps/cli/src/bin.ts plugin --profile web add link:/绝对/路径/dsh-ws-files

安装后需重启 DSH Web 服务。

架构与实现

插件分为 Host 和 Client 两部分。

  • Host 端(lib/index.js):通过 Cordis 插件行注入 webServer、fs、workspaceRegistry,提供 /ws-files JSON 路由。
  • Client 端(lib/client.js):通过手工维护的 __ModuleLoader__ 协议加载,注册布局面板和文件标签页槽位。

安全与注意事项

插件对文件读写进行了严格限制:

  • 路径围栏:所有读写操作限制在 workspaceRegistry 已登记的工作区根目录内,越界返回 403。
  • 写沙箱:写入时显式携带 workspace-write 沙箱策略,由宿主 fs 策略层双重把关。
  • 写前确认:浏览器端保存前弹出确认框,不提供删除端点。
  • 只读优先:默认可用 list/read/stat/search/open,write 需用户主动触发。

总结

dsh-ws-files 为 DSH 提供了一个轻量级的、集成了安全沙箱的文件浏览器和编辑器,适合需要在 Web 界面频繁查看和修改工作区代码的开发者。更多细节可查阅插件目录或源码。

羽毛球分组比赛记分
小程序二维码

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

小夜