dsh-wsl-workspace-picker

by WilliamShi666

0 UI 增强github 检测到 manifest package.json#dsh 社区精选 收录于 08-17

Enhanced workspace directory browser for DeepSeek Harness web UI: one-click access to /mnt Windows drives under WSL, full breadcrumb ancestry, always-visible path input./DeepSeek Harness Web UI 增强版工作区目录选择器:WSL 下 /mnt Windows 盘符一键直达、完整面包屑层级、常显路径输入框。

安装

dsh plugin --profile web add github:WilliamShi666/dsh-wsl-workspace-picker

GitHub 源码安装:首次需按提示配置 allowBuilds 构建授权后重试

安装与环境配置指引、插件开发教程见 DSH 中文社区文档 ↗

安装即在你的机器上以你的权限运行第三方代码——它可读写文件、使用凭据、访问网络,DSH 的工具审批不会为插件代码加沙箱。「检测到 manifest」仅代表发现 dsh.bundle / dsh.plugin 清单,不构成兼容性或安全审查;安装前请审阅源码,不熟悉的插件先在不含密钥的环境试用。

预览截图

dsh-wsl-workspace-picker 截图

README

目录

DeepSeek Harness Web UI 增强版工作区目录选择器:一键直达 /mnt Windows 盘符、从文件系统根目录开始的完整面包屑、常显路径输入框。

| English |

截图

dsh-wsl-workspace-picker 对话框

增强版"选择工作区目录"对话框:顶部为 /mnt Windows 盘符快捷访问行、常显路径输入框、从 / 开始的完整面包屑。

为什么需要它

DSH 自带的目录选择对话框(侧边栏工作区"+"按钮和对话页工作区选择器背后的对话框)默认打开 Linux 主目录,并且面包屑在"主目录"处截断。在 WSL 下,Windows 盘位于 /mnt/c、/mnt/d……只能通过面包屑旁一个极不显眼的铅笔图标输入路径才能到达——大多数用户根本找不到它,面包屑也永远点不到 /mnt。

本插件以单栏浏览器遮蔽(shadow)原版对话框,让所有路径都触手可及:

  • 快捷访问行 — 主目录、/、/mnt、/mnt/c、/mnt/d、/mnt/e、/mnt/f,WSL 下任意 Windows 盘一键直达。
  • 常显路径输入框 — 直接输入绝对路径(如 /mnt/d/projects)回车跳转。
  • 从 / 开始的完整面包屑 — 整个文件系统上下点击,不再被主目录截断。
  • 新建文件夹 和 显示隐藏文件 开关,与原版一致。

安装

dsh plugin --profile web add dsh-wsl-workspace-picker

重启 dsh web 并刷新浏览器页面。通过侧边栏工作区"+"按钮(或对话页工作区选择器)打开选择器,即可看到增强版对话框。

卸载:

dsh plugin --profile web remove dsh-wsl-workspace-picker

工作原理

本插件(dual-face 包)的浏览器半注册到两个 directoryFlow 槽位(sidebar.workspaces.directoryFlow 与 conversation.hero.workspace.directoryFlow),槽位优先级 −10。DSH 槽位系统是遮蔽制:同槽位中优先级最低的 occupant 生效,因此 −10 会替换原版浏览对话框(优先级 0)。原版插件保持加载、不受影响,卸载本插件即可还原。

目录列表复用 host 端现有的 browse 能力(经客户端运行时 ctx.workspaces.listDirectory / createDirectory)——无任何 host 侧代码,不自行访问文件系统。

dsh-wsl-workspace-picker/
├── package.json      # dsh.bundle.patch + dsh.client(dual-face 声明)
├── cordis.patch.yml  # loader 条目插入
├── scripts/build.mjs # ESBuild:src/ → lib/
├── src/
│   ├── client.tsx    # 浏览器半(TypeScript 源码)
│   ├── styles.ts     # 对话框样式 + 注入
│   └── index.ts      # host 半(空 apply)
└── lib/
    ├── index.js      # host 半(构建产物)
    └── client.js     # 浏览器半(构建产物:__ModuleLoader__ bundle)

浏览器半使用 TypeScript 编写,由 ESBuild 编译(npm run build)。运行时依赖(react、react/jsx-runtime、@deepseek-ai/dsh-client-ui-primitives 等)保持 external,加载时经 web shell 模块表解析,与官方 client bundle 一致。npm run typecheck 执行 tsc --noEmit 类型检查。

兼容性

  • DeepSeek Harness 0.1.0-rc.6 及以上(web profile)
  • 存在 /mnt/<盘符> Windows 挂载的主机(WSL);其他主机上快捷 chip 只是列出可能不存在的目录
  • 语言:English、简体中文(跟随 UI 语言)

安全与范围

纯 UI 插件。无 host 侧行为、不发起任何网络连接,仅通过原版对话框同款的 host browse 能力列目录/建目录,受当前 profile 的文件沙箱策略约束。

许可证

MIT

原始 README: https://github.com/WilliamShi666/dsh-wsl-workspace-picker/blob/main/README.zh.md ↗