dsh-fileview:DSH 插件:远程浏览器的 GUI 内文件查看器/编辑器

前言

DeepSeek Harness (DSH) 的原生工作区打开器仅支持循环回环访问。在 DSH 0.1.2 中,文件链接调用 ctx.remote.session.openWorkspacePath({ path });在远程页面上,此原生操作无法在远程设备上打开桌面应用程序。该插件通过包装 Remote 方法并在路径白名单 HTTP 端点支持的 GUI 覆盖层中打开请求路径来解决这个问题。回环页面继续使用原生操作系统打开器。

功能

  1. 点击远程页面上的文件链接打开 GUI 覆盖层查看器(全文本、可滚动、可选择、可编辑、可保存、触控友好)。
  2. 左侧边缘的“文件”手柄打开目录浏览器(多根切换器、面包屑、父级)。
  3. 回环页面保持原生操作系统打开行为。
  4. 编码阶梯:BOM (UTF-8 / UTF-16LE / UTF-16BE) → UTF-8 → GB18030;保存保留原始编码、BOM 和 EOL 样式 (CRLF/LF)。
  5. 二进制文件:图像 (PNG/JPG/GIF/WebP/BMP) 内联显示;其他文件显示提示。
  6. 大文件 (> 2 MB) 以只读分页窗口打开。
  7. 原子保存(临时文件 + 重命名)。

安装与配置

使用 insert 指令插入插件。inject: [webServer] 确保在注册路由前等待 webServer。

- insert:
    - id: fileview
      name: dsh-fileview
      inject: [webServer]
      config:
        roots:
          - 'D:\workspace'
          - 'C:\Users\me\projects'
        writeRoots:
          - 'D:\workspace'

修改 composition 或 Host 代码后需要重启 dsh web。Client-only client.js 变更需要在重新构建/重新加载客户端插件后生效。

典型用法

config.roots 是必需的读写路径白名单(绝对目录;允许子路径,其他所有内容返回 403)。config.writeRoots 可选地将保存范围缩小到子集。

注意事项

此插件已弃用(2026-09-13)。自 DSH 0.1.5 起,内置 Web 侧边栏预览文件(Markdown、代码、HTML、PDF 和图像)并显示模型交付的文件,取代了此插件的核心用例。它不再维护;最后一个目标版本是 DSH 0.1.2。

安全设计:
- 同源保护(Origin 必须匹配 Host;无 Origin 调用者遵循 DSH API 平面姿态)。
- 路径白名单(大小写不敏感的包含检查;根目录外的请求和遍历请求接收 403)。
- 安全未配置状态(没有 config.roots 意味着没有文件路由被注册)。
- 保存限制(6 MB 内容上限;GBK/GB18030 文件拒绝在线保存,因为它们无法无损往返,因此以只读打开)。

参考资料

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

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

小夜