🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

多根工作区 Blackoutta/dsh-multiroot-workspace

DeepSeek Harnessv0.1.0-rc.1
Blackoutta80 天前有提交已提供中文文档扫描:含敏感能力

把多个目录挂成统一工作区,跨根浏览与操作文件

33.7/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/27 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查未通过:engines.node 要求 >=24.11.1 <25,不满足 Node 22.19.0。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Blackoutta/dsh-multiroot-workspace
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么
dsh 原生插件 · market
装得上吗
静态安装检查未通过,可能需要源码安装
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 80 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

engines.node 要求 >=24.11.1 <25,不满足 Node 22.19.0

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✓npm 包dsh-multiroot-workspace @ 0.1.0-rc.1
✗Node 引擎要求 >=24.11.1 <25 · 基线 Node 22.19 不满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/28 15:42:20

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

读写/删除本地文件
查看扫描证据(共 1 处,展示前 1 条)
  • 读取本地文件
    index.js:94
    return await realpath(path)
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-test-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-sidebar@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-client-web-react@deepseek-ai/dsh-fs@deepseek-ai/dsh-storage-domain@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 挂载多目录为工作区
  • 跨根浏览文件
  • 跨根操作文件

DeepSeek Harness 的多根逻辑工作区

README

由 DeepSeek 最新模型翻译生成
dsh-multiroot-workspace 外部 DeepSeek Harness 插件包,提供具有多个命名文件系统根目录的逻辑工作区。它仅在安装期间替换自带的 Workspace UI,使用固定在 UPSTREAM.md 中的源码分支;它不会修改 Harness 仓库文件。 先决条件 首个公开预发布版本专门针对 macOS 和 Linux 上的 DeepSeek Harness 0.1.0-rc.6。当 Harness 加载该插件时,它会提供固定版本的 Cordis、DSH 客户端和 Host 服务、Schemastery、React 以及 ReactDOM 对等依赖;使用者应通过 Harness profile 安装该插件,而不是将这些对等依赖安装到插件包中。源码开发使用 Node.js 24.11.1 和 pnpm 11.9.0。 安装与启动 一条命令,可在任意 DeepSeek Harness 安装中执行: cd deepseek-harness pnpm dsh plugin --profile web add dsh-multiroot-workspace@next pnpm dsh web 然后使用 dsh web 启动 Web UI,并打开 http://127.0.0.1:3080/。
展开完整文档(README 剩余 1 节)
dsh-multiroot-workspace

外部 DeepSeek Harness 插件包,提供具有多个命名文件系统根目录的逻辑工作区。它仅在安装期间替换自带的 Workspace UI,使用固定在 UPSTREAM.md 中的源码分支;它不会修改 Harness 仓库文件。

先决条件

首个公开预发布版本专门针对 macOS 和 Linux 上的 DeepSeek Harness 0.1.0-rc.6。当 Harness 加载该插件时,它会提供固定版本的 Cordis、DSH 客户端和 Host 服务、Schemastery、React 以及 ReactDOM 对等依赖;使用者应通过 Harness profile 安装该插件,而不是将这些对等依赖安装到插件包中。源码开发使用 Node.js 24.11.1 和 pnpm 11.9.0。

安装与启动

一条命令,可在任意 DeepSeek Harness 安装中执行:

cd deepseek-harness
pnpm dsh plugin --profile web add dsh-multiroot-workspace@next
pnpm dsh web

然后使用 dsh web 启动 Web UI,并打开 http://127.0.0.1:3080/。该插件在安装期间仅禁用自带的 Workspace 客户端行;Sessions、其普通的 Host Workspace 成员关系以及所有非 Workspace UI 仍由 Harness 拥有。

捆绑配置保持跨根目录 Bash 处于禁用状态:

- id: multiroot-workspace-tools
config:
crossRootBash: off

若要刻意选择 ancestor 或 unfenced,请将该行放入本地补丁中,并使用 --patch 启动 Web。安全差异在下文“模型工具与权限”中描述。

Host 行还接受一个由部署声明的逻辑工作区:

- id: multiroot-workspace
config:
title: Product repository
roots:
- alias: app
path: /srv/product/app
primary: true
- alias: docs
path: /srv/product/docs
primary: false

roots 必须非空,别名在大小写不敏感的情况下必须唯一,并且必须恰好有一个根目录设置 primary: true。该行会成为只读逻辑工作区 config-roots:无法通过 UI/API 对其进行重命名、编辑、重新排序优先级或删除。路径在启动期间可以不存在,以便部署稍后挂载它们;但在使用时,文件和 shell 操作仍要求所选路径存在。Purge 会清除其 Session 选择项和影子映射,但会保留已声明的记录以及任何已采用的 Host Workspace。启动时会重新应用该配置;之后,如果新 Session 的 cwd 与主根目录匹配,则会创建或采用一个 Host 影子,并附加该 Session。

开发

pnpm install --frozen-lockfile
pnpm run test
pnpm run typecheck
pnpm run build
pnpm exec playwright install chromium
pnpm run test:browser

浏览器检查会打包当前插件,创建一个隔离的临时 DSH home,通过完全公开的 @deepseek-ai/dsh@0.1.0-rc.6 CLI 安装它,并在随机的回环端口上启动 Web。它使用稳定的 fixture 标题、别名和路径后缀来演练公开 UI,然后在 finally 中停止服务器并删除临时 profile 和目录;不使用同级 Harness checkout 或手动管理的 DSH_WEB_URL。

该检查会在 tests/browser/screenshots/ 下写入十张审查截图:宽侧边栏、rail、创建对话框、管理对话框和 Hero 选择器的浅色与深色变体。运行时目录保持为独占的临时路径,而其可见的截图文本被规范化为稳定的显示前缀。这些生成的 PNG 是本地审查产物,故意不随发布提交一起暂存;目录本身由 .gitkeep 保留。

Pull request 和 main 在 GitHub Actions 中运行相同的 Node.js 24.11.1 / pnpm 11.9.0 发布门禁,包括 packed-profile、deterministic-build、client-bundle 和浏览器检查。只有在那个可复用的门禁通过后,v 标签才可以发布 next dist-tag。发布通过 .github/workflows/release.yml 使用 npm Trusted Publishing 和 GitHub OIDC;不使用长期有效的 npm token。

Host API 在 /plugins/multiroot/api 下提供服务。创建一个逻辑 Workspace 会立即创建或采用其主 Host Workspace,并返回 shadowWorkspaceId。浏览器通过该 id 关联逻辑元数据,并让原生 Workspace 列表对 Session 成员关系、搜索、分组、排序和选择保持权威。

ws_cd 将当前根选择存储为以 Session id 为键的插件自有状态,因此它能在插件和 Harness 重启后保留,而无需添加自定义 Session 事件。没有存储选择的 Session 使用其逻辑 Workspace 的主根。删除或清除该逻辑 Workspace 会清除其选择。Fork 出来的 Session 不会继承源 Session 的选择,因此从主根开始。

选择表在存储域版本 4 中是增量添加的。Harness rc.6 没有域迁移 API,并会拒绝更改后的版本戳,而其支持的后端会在现有版本下安全地物化新声明的表;这保留了先前存储的逻辑 Workspace。

模型工具与权限

在逻辑 Workspace 中打开的 Session 会获得以下工具:

- ws_list 列出别名、规范路径以及主/当前标记。
- ws_cd 更改该 Session 的插件自有当前别名。
- ws_read、ws_write 和 ws_edit 访问相对于根的文本文件。这些工具会拒绝词法遍历和所选根之外的规范目标(包括符号链接逃逸);读取限制为 1 MiB。变更使用 Harness 的 read-before-write/version waterfalls,并发布 fs/observed 事件。
- ws_glob 和 ws_grep 在选定的根目录内运行 ripgrep,并将输出限制为 200 行。Ripgrep 退出码 1 表示结果为空;真实的命令失败和取消会被暴露出来。
- ws_bash 默认在一个选定的根目录中运行,并将该确切的根目录传递给活动的沙箱策略。workdir 无法逃逸选定的根目录。

crossRootBash 控制一个显式的非空 roots 列表。默认值 off 会拒绝多个根目录。ancestor 将进程限制在它们最紧密的共同祖先内,这可能会暴露该祖先下的同级内容。unfenced 请求 danger-full-access 且不带 workspaceRoot;仅当部署有意接受不受限的主机访问时才启用它。未知别名始终会在 shell 进程启动之前被拒绝。

UI 行为

- 按工作区 显示普通和逻辑 Workspace 项目行。逻辑行会添加根目录数量和主别名。
- 全部会话 是原生的扁平视图:它隐藏项目行,并将每个可见的 Session 显示一次。
- Workspace 标题栏中的分支图标会打开多根创建。逻辑 Workspace 行的现有操作菜单会打开管理。
- 管理对话框以两列布局显示完整的目录名称和路径。当 Workspace 有许多根目录时,只有根目录列表会滚动;名称字段、添加操作和页脚保持固定。
- 表单使用 Harness Modal、Button、图标和主题原语;不渲染 Unicode 文件夹/归档图标。

存储、清除和移除

逻辑 Workspace 记录、影子所有权以及每个 Session 的当前根目录选择都存放在插件的 multiroot_workspace 存储域中。主路径上现有的 Host Workspace 会被采用;插件永远不会删除已采用的 Workspace。如果不存在合适的 Workspace,插件会创建并拥有一个影子,以便原生 Session 分组继续正常工作。Purge 会删除拥有的影子、用户创建的逻辑记录以及所有当前根目录选择,同时保留已采用的用户 Workspace、Session 以及部署声明的 config-roots 记录。

在 Web 仍在运行的情况下,先清除插件拥有的数据,再移除包:

curl -fsS -X DELETE http://127.0.0.1:3080/plugins/multiroot/api/data
Stop the Web process, then remove the profile dependency.
dsh plugin --profile web remove dsh-multiroot-workspace

未发出 purge 请求就移除,会留下插件的持久记录,供以后重新安装时使用;这并不会让插件隐式删除它们。
预览分享卡片长什么样 ↓Blackoutta/dsh-multiroot-workspace
分享 · DeepSeek Harness Hub
Blackoutta/dsh-multiroot-workspace

把多个目录挂成统一工作区,跨根浏览与操作文件

这是你的仓库?认领条目

回到顶部