dsh-plugins
Discovereddsh-plugins
DeepSeek Harness(dsh)插件的 monorepo。
包含的插件
@yumemowo/dsh-workspace-plus —— 侧边栏的分组工作区列表
把 dsh Web 侧边栏的工作区列表换成分组视图,在官方列表之上多出两级容器:工作区分组把一组工作区打包管理、只出现在列表最外层;会话分组在单个工作区内部归类会话。此外还有按 cwd 推导的子工作区嵌套、工作区选择器、搜索、添加工作区、会话操作与悬停详情卡片。建组、移入移出、重命名删除、展开折叠都是手动操作,未归组的会话仍平铺在原位,因此一个分组都没建时界面与官方列表一致。
它接替的只是 sidebar.workspaces 一个区域,logo、面板列表、设置与底部操作的插槽不受影响。完整功能清单、与官方组件的复用关系,以及尚未实现的官方功能见该包 README。
安装
从 GitHub 安装
dsh plugin --profile web add "github:yumemowo/dsh-plugins#path:packages/<包名>"
本仓库不提交
lib/,每个包在安装时靠prepare现编译入口,而 pnpm 默认拦截 git 依赖的构建脚本。首次add会失败并打印该包的allowBuilds键,把它加进 profile 的pnpm-workspace.yaml后重跑即可;各包的具体键见对应的包 README。放行等于允许该包在安装时于本机执行代码,只对可信来源使用。
更新要显式指定
dsh plugin --profile web update <包名>
版本兼容
各插件需要 dsh 0.2.0-rc.1 及以上,覆盖整个 0.2.x。
开发
pnpm install # 安装工作区依赖
pnpm run build # 编译各包到 packages/*/lib
pnpm run typecheck # 校验 src 与 test 两个工程,不产出文件
pnpm run test # 逐包执行 vitest run
pnpm run verify:compat # 校验各包的 dsh 兼容声明
pnpm run verify:mount # 组装并启动一个包含各插件的临时 profile
pnpm run check # 以上全部,按顺序执行
环境要求:Node.js ≥ 22.19、pnpm 11(corepack enable pnpm)。pnpm run verify:mount 还需要 PATH 中有 dsh。
verify:mount 会把 DSH_HOME 指向 .tmp/verify-home,不影响真实的 ~/.dsh。它校验的是构建产物:真实的 dsh 启动器能否解析插件入口与 patch、并接受配置 schema,这是单元测试覆盖不到的一环。
dsh-workspace-plus 改完客户端代码后必须重新构建产物,否则 GUI 加载的仍是旧的 lib/client.js;改了宿主半边则要重启 dsh。
目录结构
.
├── packages/
│ ├── dsh-hello/ # 纯宿主参考插件,复制它作为新插件的起点
│ └── dsh-workspace-plus/ # 侧边栏分组插件(宿主 + 浏览器双半)
├── scripts/
│ ├── verify-plugin-compat.mjs # dsh 兼容声明的静态校验
│ └── verify-profile-mount.mjs # 端到端挂载校验
├── pnpm-workspace.yaml # 工作区、依赖 catalog 与 pnpm 设置
└── tsconfig.base.json # 各包继承的编译选项
环境说明
pnpm 11 从 pnpm-workspace.yaml 读取 storeDir / cacheDir,不从 .npmrc 读取,因此本仓库把这两项写在工作区文件里。删掉它们则会回落到 pnpm 默认的全局 store 与 cache。
Comments
Loading…