dsh-open-workspace:为 DeepSeek Harness Web 添加工作区文件夹入口

前言

DeepSeek Harness (DSH) 采用插件化架构,Web GUI 提供了会话管理界面,但直接从界面打开当前会话所属工作区的文件夹并不原生支持。这通常需要切换到终端或手动拼接路径,操作流被切断。dsh-open-workspace 插件通过注入两个入口,将文件系统操作直接集成到 Web 界面中,解决了这一断层。

功能介绍

该插件为 DeepSeek Harness Web GUI 添加两个「打开工作区」入口,点击后使用系统文件管理器打开当前会话所属工作区的根目录。

  1. 侧边栏会话行菜单:在侧边栏任意会话行的 ⋯ 菜单底部添加「打开工作区」项。
  2. 会话标题栏按钮:在会话顶部标题栏注册「打开工作区」按钮,通过官方 slot conversation.session.header.actions 实现,与「归档」、「移动至工作区」、「删除会话」等官方按钮及其他插件的按钮(如 Session 日志)按顺序并排组合。

核心逻辑为「打开工作区根目录」:
- 标题栏按钮:按 sessionId 找到所属工作区,优先使用工作区 path/cwd,若不存在则使用会话 cwd。
- 侧边栏菜单项:按行所在的工作区分组,优先使用工作区 path/cwd,若不存在则使用同名会话的 cwd,若仍不存在则遍历扁平列表定位当前会话。

在 Windows 系统上,插件直接调用 explorer.exe 并传递 UTF-16 编码的参数,确保中文和非 ASCII 路径可靠打开。操作成功或失败均会在右下角显示提示条。插件宿主端注册了 POST /plugins/dsh-open-workspace/open 和 GET /plugins/dsh-open-workspace/status 接口,激活探针会写入 $DSH_HOME/logs/dsh-open-workspace.probe.log。

安装与启用

安装前请确保目标环境已安装 Node.js ≥ 20、DSH 和 pnpm。

本机安装

在插件源码目录下执行以下命令:

cd <本插件文件夹>
npm pack
dsh plugin --profile web add .\dsh-open-workspace-1.0.0.tgz

执行安装脚本后,重启 dsh web。

远程安装

将插件文件夹拷贝到目标电脑任意位置,目标电脑需安装 Node.js ≥ 20、DSH 和 pnpm。执行安装脚本:

powershell -ExecutionPolicy Bypass -File .\install.ps1

脚本会自动完成环境检查、重复 id 守卫、检测并询问是否停用冲突插件(如 dsh-open-folder、dsh-open-explorer、dsh-open-session-folder),并完成安装和校验。

手动安装时,需确保 dsh.profile.bundles 包含 dsh-open-workspace,若遇到供应链策略拦截,可在 profile 目录下执行 pnpm add <路径>\dsh-open-workspace-1.0.0.tgz --config.minimum-release-age=0。

使用示例

  1. 安装并重启 dsh web 后,访问 Web GUI。
  2. 检查插件加载状态:访问 GET /plugins/dsh-open-workspace/status,返回 {"ok":true,...} 表示宿主已加载。
  3. 在侧边栏会话行点击 ⋯ 菜单,选择底部的「打开工作区」。
  4. 在任意会话顶部标题栏点击「打开工作区」按钮(位于删除按钮与 Session 日志之间)。

注意事项

  1. 避免重复插入:不要在 bundles 层和用户补丁层同时 insert 本插件(同一 id 重复会导致 dsh web 启动即崩)。
  2. 运行环境:「打开工作区」的动作发生在运行 dsh web 的那台电脑上。如果通过远程桌面访问 GUI,文件管理器窗口会直接弹在服务器端的桌面上。
  3. 兼容性:插件兼容 DSH 0.1.2-alpha.5 和 0.1.2-rc.1。升级 DSH 后,插件无需改动即可直接使用。
  4. 许可证:该插件基于 MIT 许可证开源。

结语

dsh-open-workspace 通过两个标准的 Web UI 入口,将文件系统操作无缝融入 DSH 工作流,降低了在 Web 界面下管理智能体工作区目录的门槛。更多细节及源码请访问 GitHub。

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

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

小夜